Presentation is loading. Please wait.

Presentation is loading. Please wait.

Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS System Design Lecture 12 Päivi Ovaska.

Similar presentations


Presentation on theme: "Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS System Design Lecture 12 Päivi Ovaska."— Presentation transcript:

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


Download ppt "Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS System Design Lecture 12 Päivi Ovaska."

Similar presentations


Ads by Google