CO4403 Object-Oriented Software Development - University of

Post New Homework

Object-Oriented Software Development

Assignment: Development Task

Learning Outcome 1: Explain and use key programming constructs to create correct and efficient programs

Learning Outcome 2: Design, and implement Object-Oriented programs

Learning Outcome 3:Develop applications with graphical user-interfaces

Learning Outcome 4:Develop technical software solutions to complex problems


Problem 1 - The Smart Tic Tac Toe game

This game aims to win the game on a 3 x 3 grid with the victory of three identical symbols (X or O) on horizontal, diagonal, or vertical lines. The players will play alternately. This game has two options: player one against player two or human against computer. When a human plays against the computer, there are two options: (a) Random logic, where the computer randomly selects one of the empty boxes on the grid and places a symbol on that box (X if the computer starts the game first, O if human starts the game first). (b) Smart logic that follows the steps below:

1) If the computer can win the game in one move, it makes a move, and the game ends. So, if there is one line with two symbols given by the computer and an empty box, the computer must place a symbol in the empty box.
2) If the computer can block with one move, it makes a move, and the opponent cannot win the game in the next move. So, if there is a line with two symbols given by a human and an empty box, the computer must place a symbol in the box.
3) If there is no possibility of winning or the computer cannot block the opponent, then the movement is carried out in this order: the middlebox, one of the four corner boxes, or one of the four side squares (the order is important)

The game should display a scoreboard with players' names and scores (e.g., [name of human user] vs computer). The scoreboard should be accessible while playing the game so players can keep track of their score. Every time a user wins (get 3 of their symbols in a row (up, down, diagonally)), 1 point should be added to their total score.

Problem 2 - The Preston Athletic Club

The Preston Athletic Club are organising their first international marathon in the spring of next year. A field comprising world-ranking professionals and amateur runners (some in fancy dress) will compete on the 26.2-mile route around Preston. Each amateur runner fundraises for a charity and has a sponsorship form. A sponsorship form has the number of sponsors, a list of the sponsors, and a list of amounts sponsored. You must design a software system to manage all aspects of the race efficiently, including registration and volunteer management. The functional requirements for the system are the following:

1) The system would allow registering participants (runners and volunteers) for the marathon;
2) The system would maintain each runner's number (e.g., "Runner 10", where ten is their number), result status ("Not finished" or "Finished"), and time finished (recorded in hours, minutes, and seconds);
3) For each professional runner, the system must show the world ranking (e.g., Runner 200 (Ranking 6));
4) For each amateur runner, the system must show a list of sponsors and the associated amounts;

5) The system would allow adding a sponsor and associated amounts for each amateur runner;
6) The system would allow printing a collection list for an amateur runner from their sponsorship form;
7) The system must display an amateur runner with a costume (e.g., "Runner 406 (Snow White)")
8) The system must allow creating and listing of different volunteer types (e.g., drink station, marshalling) and their schedules;
9) The system must allow creating and printing personalised certificates for each participant (runners and volunteers).

Problem 3 - Message management system

Giannis owns a small shop close to the University of Central Lancashire, selling a range of stationery, office supplies, and printing and laminating services.

Giannis plans to acquire an LCD message display board mounted above the shopfront to show scrolling text messages. Giannis intends to use this to advertise his products and offers and provide a message display service for fee-paying clients (e.g., local events, staff required, etc.)

Each client is given a unique ID string (e.g., "Andreas4") and has a name, an address, a phone number and an amount of credit in "credit units". A book of clients is maintained to which clients can be added, and we can look up a client by their ID.

Each message is for a specific client and comprises the text to be displayed, the number of days it should be displayed and the cost of that message in units. No duplicate messages (i.e., the same text for the same client) are permitted.

A set of current messages is to be maintained: new messages can be added, the message set can be displayed on the display board, and at the end of each day, a purge is performed - each message has its days remaining decremented and its client's credit reduced by the cost of the message, and any messages which have expired or whose client has no more credit are deleted from the message set.

The software is to be written before the display board is installed. Therefore, the connection to the board should be via a well-defined interface and a dummy display board implemented in software for testing purposes.

Task details:

You will need to analyse, model and program a solution in .NET C# for your selected problem. Specifically, you must:

Task 1: Create a UML Class diagram based on the requirements of your selected problem. Your diagram should show all the potential classes, their associated methods, properties and relationships between classes. You should create your UML diagram electronically and fully annotate it.

Task 2: Implement your class diagram in .NET C#. You should demonstrate using OOP and programming concepts as your selected problem requires.

Task 3: Create a GUI .NET C# application which implements the functionalities defined in your selected problem. You should design your GUI using Windows Forms or WPF.NET (see marking scheme for more details).

Task 4: You can meet one or more requirements of your selected problem using external files or a database (e.g., MySQL for Visual Studio). You should include the file(s) or DB in your project to ensure I can run the application.

Task 5: Test your software using a standard technique (e.g., Blackbox, Unit). You must show evidence that you tested your app during the demonstration to your tutor.

Task 6: Demonstrate your work to your tutor. During the demonstration, you should explain how your work meets the requirements of your selected problem. Demos are strictly limited to 10 minutes and will include questions from your tutor. Students must only present materials which communicate how their work satisfies the marking scheme. A PowerPoint may support this if necessary

Assignment: Programming paradigms presentation

Learning Outcome 1: Explain and use key programming constructs to create correct and efficient programs
Learning Outcome 2: Critique and compare different software development approaches

In this assignment, you must create a PowerPoint presentation of no more than ten content slides. Each slide should have a voice-over recording (maximum 30 seconds) and a note (maximum 200 words) explaining the slide. In this presentation, you must:

Task 1 (Research): Research the following programming paradigms:

• Procedural
• Object Oriented
• Aspect Oriented
• Functional programming
• Distributed programming

Task 2 (Presentation): Outline the pros and cons of each paradigm in the context of your chosen computing problem (see part 1 of the assignment). For each approach, you should also explain why it is or it is not a better choice to solve your chosen computational problem.

Structure of the presentation:

You may choose what to include on each slide; a suggested structure is using slides 1-5 to list (using a table) the pros and cons of each programming paradigm. Then use slides 6-10 to explain why each paradigm is or is not a better choice to solve your chosen computational problem. Finally, use as many slides as necessary to provide a complete list of references. You should use IEEE referencing style to cite and reference your resources. Finally, you may want to use code snippets for each paradigm to support your arguments.

Post New Homework
Captcha

Looking tutor’s service for getting help in UK studies or college assignments? Order Now