1. FOOD: Coursework 3
1. You should implement a system for holding and outputting records of astronomical objects. The
types of object include:
a. stars, which each have a name, a type and a distance from the sun.
• star types include a a size “dwarf", “giant" or “normal", and a colour, “red", “white" or
“yellow"
b. galaxies, which each have a name, a type, and a distance from the sun.
• galaxy types include “spiral”, “elliptical” and “irregular”
c. planets, which each have a reference to the star they orbit, a name, a type, a radius, a time to
orbit, and a distance from the star.
• planet types include: “icy”, “rocky” and “gaseous”.
The system will hold a database of records, and support various kinds of output. A simple output
will just list all the names of the objects in the database. Alternative outputs will include the
distance, the type, an identification number; any combination of these outputs may be requested.
(You should either print output to the screen, or save it to a file.)
e.g. an output of just names:
Mars
Jupiter
Sirius
Andromeda Galaxy
an output including an identification number and type:
1 Mars, Rocky
2 Jupiter, Gaseous
3 Sirius, white dwarf
4 Andromeda Galaxy, spiral
You should complete the following steps:
1. UML design for system (5 marks)
2. Implement your system, including at least two ways of creating the output
(10 marks)
3. Write junit tests (7 marks)
4. Add a GUI to the system, supporting at least: (18 marks)
a. screen to input a new record
b. display screen listing all the information stored
c. controls to output the data, with some means of selecting the output styles
2. 5. Explain all aspects of your design and demonstrate it working (10 marks)
Marks will be awarded for:
• Quality of the code design, including use of appropriate design patterns and Java libraries.
• Correct working of the system.
• Comprehensive use of junit tests.
• Use of a variety of widgets within the GUI. (Note: you must write the code for the GUI
yourself, using the examples from the module materials; automatically generated code will
be awarded 0 marks.)
Total: 50 marks
2. Write an essay on agile development processes, relating the ideas to a concrete example of
developing a program, such as from section 1.3.4 of the module notes. Describe XP and test-driven
development as examples of agile development processes. Summarise those aspects most important
for an individual programmer working on a project by him or herself, and which aspects are most
important for a large software project, involving many programmers.
Use citations and references for any material that you use. Write between 1500 and 2000 words.
Marks awarded for:
1. Description of main methodologies. (10 marks)
2. Relation of methodologies to coding example. (7 marks)
3. Summary of differing aspects. (5 marks)
4. Clear English and references. (3 marks)
Total: 25 marks