Assessment Title |
Assessment 3 |

SWE30003 Detailed Design and Implementation:
In Assignment 2, you were given the task to come up an initial object-oriented design of a the Long Chau Pharmacy Management System (LC-PMS) . Based on that initial design, in this assignment (Assignment 3), you are required to (1) carry out a detailed design and implementation for the system, and then (2) reflect on the initial design based on your experience with the detailed design and implementation.
Here are a few ground rulesfor this assignment:
(1)Detailed Design and Reflection
- Refine and extend the initial high-level object-oriented design from Assignment 2, to arrive at a detailed design suitable for direct object-oriented implementation. This may include, but not limited to, refining/adjusting the existing design, adding UI design and adding database design (all in an object oriented manner).
- You are also allowed to further change the design if, during the implementation process, you find that the initial or extended design is incomplete, incorrect, or inadequate for the problem at hand.
- All changes to the original design (from Assignment 2) during the detailed design stage and the implementation stage must be justified and documented accordingly. Please note that changes, in general, do not only affect the static structure of your design (i.e., the class diagram or similar), but may also affect class responsibilities, the bootstrap process, and/or interaction patterns/scenarios at runtime.
- You must provide a reflection on the quality of your initial design from Assignment 2.
This may include, but is not limited to, the following:
- Which aspects of the problem did your initial design address adequately?
- Which aspects were missing from your initial design?
- What errors were introduced in the initial design?
- How much interpretation of the initial design was required (i.e., how ambiguous was the initial design)?
- How did you change the initial design to address the omissions, errors and/or ambiguities (if applicable)?
- Lessons learnt: Given the experience gained from your detailed design and implementation, how would you tackle a high-level initial design problem differently next time?
(2)Implementation
- The implementation can be completed in an object-oriented language of your choice. The source code of your implementation must be included in your submission.
- No particular coding standard is prescribed for use in your implementation, but make sure that your code follows a 'standard' required for professionally developed software (and provide a reference) - part of the marks will be allocated to the use of a suitable coding standard!
- As a simplification, the implementation does not need to support payment options as we cannot have a banking system to validate transactions. The implementation must allow the users to carry out their activities (except for the actual payments, for which some simple message will be sufficient).
- To further simplify the implementation task, you may choose to implement part of the system. However, the implementation needs to cover at least four (4) areas of business operation fully and state them clearly in your submission(see the case study description for Assignment 1); in this regard, you need to consider the dependency between these implemented areas, so that the chosen areas are fully functional, even with dependency on other areas.
- A simple user interface (graphical or textual) will be sufficient. It may help to label each of the input requirements clearly and provide appropriate validation on inputs. For example, name field cannot be blank, and correct data type should be used.
- If preferred, files may also be used for persistent data storage, instead of using databases.
- You may develop the system as a web-based application or a separate desktop/mobile application.
(3) Execution and Operation
- Use a number of scenarios to demonstrate all the (implemented) system capabilities. Provide brief descriptions of how the user(s) can enter various information required for the different scenarios and steps, including various options (if applicable).
- To demonstrate that your implementation works correctly, for each scenario, provide screen shots of your application that, amongst others, illustrate
(i) an'empty' UI (graphical or textual) at the beginning of the scenario,
(ii) takes correct input,
(iii) validation of incorrect input,
(iv) change or deletion of input when the customer/user had a change of mind, and
(v) successful completion of the scenario.
(For the payment step, only need to give some message indicating that it has been processed, and no need to carry out actual payment processing). Note that instead of using screen shorts, you may record a short video that shows all the required scenarios and steps with narration in a structured way.
- You must explicitly state which platform(operating system, IDE etc.) you used for development and testing of your implementation, and provide a brief description of how your program is to be deployed and run.
- You must provide evidence that your implementation compiles, runs, and correctly follows the requirements. Only in exceptional circumstances will a marker re-compile and run your code.
It is your responsibility to provide, in the submission, sufficient evidence that the code compiles correctly, the system accepts only correct inputs, and the relevant user requests can be processed as expected.
Note that any clarification questions should be posted to the Assignment 3 discussion forum on Canvas, and emailed questions will not be answered unless it is of a personal nature.