Applied Software Engineering
Learning outcome 1: Understand the notion of software engineering and why it is important
Learning outcome 2: Analyse the risk factors associated with phases of the software development life-cycle and generate possible strategies to mitigate the risks.
Learning outcome 3: To know various techniques and notations for understanding problem domain
Learning outcome 4: To appreciates the role software architecture in software development and be able to characterize some important architectural styles
Learning outcome 5: To understand the role of design patterns and be able to illustrate their properties
Learning outcome 6: To be able to discern desirable properties of a software design
Learning outcome 7: To understand the general flavour of object-oriented analysis and design
Learning outcome 8: To be aware of the major software testing techniques
Learning outcome 9: To be able to discern major causes of maintenance problems and be aware of reverse engineering, its limitations and tools to support it
Case Study - LH Medical Company (LHM)
Design and Implementation
Task details This assignment is accompanied with a case study describing a high level system specification for an application.
Consider the following information and attempt the tasks given.
Repeat prescriptions may automatically be produced by the system if appropriate and are available for collection at any surgery by the patient. At any time, a practitioner may suspend or cancel the prescriptions.
Tasks:
Based on the above specified information, you are required to provide an implementation and associated testing for the outlined system. You may use a suitable object-oriented programming language, such as Java, and may populate the system with appropriate data you have created for testing purposes.
In addition, you are required to produce a report detailing a critical analysis of the system and its development. This report should critique the system using software engineering best practices as considered throughout the module.
Documentary evidence (including diagrams, and source code) should be provided as appropriate within your report.
Assignment Tasks:
Task 1 Implementation
Develop a software application to implement your chosen use case and UML models.
As part of your answer illustrate how the principles of object orientation is implemented.
Task 2
Design patterns
Command pattern encapsulates a request as an object. Consider the following class diagram as the structure for the pattern:
Apply the command pattern (by modifying the classes in the above structure) to your chosen use case and class diagram which you have developed as part of Assignment coursework 1.
Write a software program to implement the command pattern.
Task 3
Object Constraint Language (OCL)
Incorporate OCL to represent the business logic, rules and constraints for the selected use case. As part of your solution include the correct syntax for pre and post conditions, navigation, and multiplicities. Produce a list of appropriate business rules and constraints.
Produce an implementation for the OCL
Task 4 Unit Tests
Produce Software testing, documentation, and verification considerations
Task 5
Design/implementation critique
Discuss and critically evaluate aspects of software engineer that you adopted
Attachment:- Applied Software Engineering.rar