CIS016-2 Object Oriented Programming and Software Engineering
Question:
Demonstrate the following knowledge and understanding
- Systematically categorize the concepts, principles and techniques for object-oriented programming and software engineering process.
Demonstrate the following skills and abilities
- Analyse a complex problem and apply a programming language to design, develop and critically evaluate a software solution to the given problem; and analyse and apply a range of concepts, principles and techniques to the software development process.
Task:
Task 1: To create a GUI which contains
- Two request buttons corresponding to the two floors, respectively
- One control panel with two buttons and a display window
- Two display areas that display the status of the elevator, i.e. which floor the elevator currently stays, one is of each floor
- A log button, which trigger the historical information of the elevator operation to be displayed
Task 2: To create a control program that processes the events published by the GUI.
- When any request button is pressed,
The elevator appears in the corresponding floor
Then the display areas and the display window on the control panel show the corresponding floor number at the same time
- When the floor number buttons on the control panel are pressed,
The elevator appears to the corresponding floor
Then the display areas and the display window on the control panel show the corresponding floor number at the same time
Task 3: To create a log which record all operations.
- The corresponding status of the elevator and the time information is stored in a database (it can be MS Access or other equivalent databases)
- To display the information which has been stored in the database on the GUI
Task 4: To animate the events described in Task 2 using delegation and timer
Task 5: To optimise the programs developed in Tasks 1 to 4.
- Optimise the portability by using relative path instead of absolute path
- Optimise the maintainability by avoiding any duplication among the event handlers over the database related functions
- Optimise the robustness by eliminating logical errors and handling exception
- Optimise the efficiency of GUI by implementing multiple tasks concurrently via BackgroundWorker
- The elevator might have more than two floors, apply the “state design pattern” in the program to accommodate future changes of the requirement. The state is expected to be dispatched dynamically rather than determined by if/switch
Task 6: To prepare a test report, the “Marking Matrix with Self-Assessment” table (which is listed at the end of document) should be included in the report