Download presentation
Presentation is loading. Please wait.
1
Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS System Design Lecture 12 Päivi Ovaska
2
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 2 System Design From previous lecture How to decompose the system How to distribute use cases among subsystems Where to store data How to achieve access control and ensure security This lecture Identifying boundary conditions Reviewing system design Managing system design
3
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 3 Identifying Boundary Conditions Modify the analysis model to include the use cases, which considers how the sysem is started, initialized, and shut down how we deal with major failures Possible changes to subsystem decomposition Also need to investigate exceptional use cases Exception is an unexpected event or error that occurs during the execution of the system a user error a hardware error software bug Exception handling is the mechanism by which a system treats an exception Examples: in the case of a user error, the system should display a meaningful error message to the user in the case of network link failure, the system needs to save its temporary state in order to recover once the network comes back on line
4
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 4 Reviewing System Design Evolutionary and iterative activity Many ways to organise the review process: use the developers who were not involved in the system design to act as use the developers from other project System design model should be correct complete consistent realistic readable
5
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 5 Review questions Correctnes Can every subsystem be traced back to a use case or a nonfunctional requirement? Can every use case be mapped to a set of subsystems? Can every design goal be traced back to a nonfunctional requirement? Is every nonfunctional requirement addressed in the system design model? Does each actor have an access policy? Is it consistent with the nonfunctional security requirement? Completenes Have the boundary conditions been handled? Was there a walkthrough of the use cases to identify missing functionality in the system design Have all use cases been examined and assigned a control object? Have all aspects of system design (i.e. harware allocation, persistent storage, access control, legacy code, boundary conditions) been addressed? Do all subsystems have definitions?
6
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 6 Review questions Consistency Are conflicting design goals prioritozed? Are there design goals that violate a nonfunctional requirement? Are there multiple subsystems or classes with the same name? Are collections of objects exchanged among subsystems in a consistent manner? Realistic Are there any new technologies of components in the system? Were there any studies to evaluate the appropriateness or robustness of these technologies or components? Have performance and realiability requirements been reviewed int he context of the subsystem decomposition? For example, is there a network connection on the critical path of the system? Have concurrency issues been addressed? Readable Are subsystem names understandable Do entities with similar names denote similar phenomena? Are all entities described at the same level of detail?
7
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 7 Managing System Design Maintain consistency The software architecture should describe a single coherent systems understandable by a single person Documenting system design Assigning responsibilities Communicating about system design
8
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 8 Assigning Responsibilities Architect main role of the system design ensures the consistency in design decisions and interface styles ensures the consistency of the design in the configuration management and testing functions Architecture team in big systems the number of subsystem determines the size of the architecture team For complex systems, an architecture team is introduced for each level of abstraction Single individual architect should be responsible of consistency of the whole system
9
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 9 Communicating about System Design Identify and prioritize the design goals for the system and make them explicit Make the current version of the system decomposition available to all concerned Maintain an up-to-date glossary Confront design problems Iterate, make prototypes
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.