ELECTRONIC, ELECTRICAL AND SYSTEMS ENGINEERING
MSc Coursework Software and Systems
2018-19
Python Programming: Special Clock (GUI) UML: Car Park Management System
Assignment Format:
This coursework consists of two parts: 1. Python Programming and
2. UML.
You are expected to submit your Python program for the first part and only a report for the second part. The Python code (.py file) and the PDF UML report must be submitted via canvas as two separate files.
The two parts will be marked separately and have equal weightage of 50% each.
PART 1: Python Programming 1. Aims and Objectives
This Python assignment is about implementing a graphical user interface to create a SpecialClock. It has only the following functions:
a) It can display the current time in a digital format.
b) It can be used as a countdown timer.
c) It can be used as a stopwatch.
2. Lab Work
Using the object oriented approach, implement the SpecialClock as a Python application. The application should be able to create a GUI containing all widgets required to run all the functionality. The SpecialClock should at the least have the following:
1. It should display the current time in a digital format hh:mm:ss.
2. It should have the functionality of a stopwatch where the user can start,
stop or reset it.
3. It should have the functionality of a countdown timer where the user can
set the timer either by selecting the time from the dropdown menu or enter the time in the text boxes. The user should be able to start or cancel the timer anytime.
After creating your GUI with all the above widgets, you will then have to bind these to the functions to get your application working.
Handle any exceptions that may arise during its use.
3. Assessment
Marks distribution will be as follows:
a) Display current time. (5%)
b) Stopwatch functionality. (25%)
c) Set timer to given hours, minutes and seconds. (25%)
d) Exception handling. (5%)
e) Code documentation. (15%)
f) GUI design. (25%)
PART 2: OBJECT ORIENTED DESIGN (UML)
1. Specification
Car Park Management System
You are required to design object-oriented software for a car park management system. The management software should control access to car parks and automate charging to pay-rolls. The user should be identified by a personal tagging system, such as an ID card or transponder and each person allowed access to specific car parks. For security reasons it should also be necessary to use the tag to exit the car park.
Charging should operate at a flat rate where up to two charging periods can be specified. It should be possible to provide a no-charge short access option to allow access for those dropping off or collecting passengers. Also provision should be made for paying and non-paying visitors.
Normally the tag, together with a data-base, should determine access that results in the automatic raising and lowering of barriers. Security staff should be able to override barrier operation at any car park from a single remote site.
Careful consideration should be given to avoiding damage to vehicles due to the barrier being lowered prematurely and to avoid the control system slowing down traffic flow.
Consider what sensors are required to achieve the behaviour specified. You may also need to use your own judgement as to the mode of operation that is necessary. This assignment has been selected because it concerns a system for which the requirements are widely understood and do not require expert knowledge. If you are concerned about the appropriateness of any elaboration explain your reasons for the decisions made.
2. Assessment
Assessment is based on a written report not more than 30 pages long. Clearly the report must fully address all relevant issues. The assignment is open-ended and it is possible that you will not complete the design but it is important that all stages of the design process are considered to a reasonable level of detail.
3. Presentation of the report
You are required to submit a written report. The report should be a single pdf file. Use reasonable margins, e.g. 2 cm left right, top and bottom, and a reasonable font size (e.g. 10 pt Arial or 12 pt Times Roman). The figures, tables and pages should be numbered. Captions should be beneath figures and above tables.
As you will not be working in a group you may wish to brain-storm user requirements with friends or family but remember the work submitted must be your own and you should not collaborate with anyone after an initial brain storm session.
The report should contain:
Front cover: includes the statement of originality that the work is your own work.
Contents List: with page numbers.
Introduction: This is the discussion and interpretation of the specification, which should identify any issues that require clarification.
Use-Case Model: This is a formal statement of user requirements with Use-Case views, survey descriptions, class diagrams, CRC cards, simple interaction and state- chart. Remember the diagrams should be in outline form at this stage.
Analysis Model: This is a technical specification. The class descriptions should be detailed with attributes and methods and relationships to define architecture. Detail should be added to the interaction and state-chart diagrams to show events, actions and qualifiers. Non-function requirements should be identified. The analysis model should identify service and analysis packages as appropriate.
Design Model: This should include detailed design classes in which all methods and attributes and their visibility is identified. Arguments and return data types should be identified and defined. Key implementation mechanisms should be defined. Interaction diagrams, state-charts should also be detailed. The mechanisms for the implementation of non-functional requirements should be defined.
You are not required to provide Implementation and Test Models.
4. Resources available
This assignment involves the development of designs on paper. It should be possible to draw good quality design diagrams using Word or other word processing package, adopting the correct notation. There is no need to use any Object-Oriented Design Tools. This is because learning curve associated with object-oriented design tools is normally steep. Many design consultants use graphical design programs and not object-oriented design tools to document designs. Two tools that you might find useful are Visio (might require licence) and ArgoUML (http://argouml.tigris.org/).
5. Submission
The complete report along with the Python Code for PART 1 should be submitted as two separate files by noon on Monday, 3rd December 2018 via Canvas.
Marks distribution will be as follows:
Presentation: 5%
Structure, clarity and presentation of report. Contents page, page numbering, presence of correct front cover, labelling of diagrams.
Introduction and conclusion: 5%
Interpretation of specification. Identification of appropriate elaboration.
Use- Case Model: 40%
Correct use of notation. Complete set of diagrams. Appropriateness of use- case structure, survey descriptions, CRC cards, interaction diagram(s), class diagram, class identification and statechart diagrams. Remember these are outline diagrams.
Analysis Model: 25%
Appropriateness of elaboration. Identification of methods and attributes. Definition of class architecture. Identification of non-functional requirements. Consideration and appropriateness of package diagrams.
Design Model: 20%
Appropriateness of elaboration. The visibility of attributes and methods. The identification of arguments, return data types, class creation and destruction, process forks and joins as appropriate. Definition non-functional requirement implementation
Discretionary Marks: 5%
Evidence of special insight.
A word of caution
¡°Plagiarism will not be tolerated. It is the act of a Student claiming as their own, intentionally or by omission, work which was not done by that Student. Plagiarism also includes a Student deliberately claiming to have done work submitted by the Student for assessment which was never undertaken by that Student, including self-plagiarism and the other breaches. Sanctions of a plagiarism include the Student failing the Programme of study¡±.