Presentation is loading. Please wait.

Presentation is loading. Please wait.

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture # 16 Finalizing the Application Design SWE 316: Software Design and.

Similar presentations


Presentation on theme: "SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture # 16 Finalizing the Application Design SWE 316: Software Design and."— Presentation transcript:

1 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture # 16 Finalizing the Application Design SWE 316: Software Design and Architecture Be able to … complete a detailed design Ch 14b Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

2 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Process Phases Discussed in This Chapter Requirements Analysis Design Implementation ArchitectureFrameworkDetailed Design x Key:= secondary emphasis x = main emphasis Intro Designing ControlDesigning for InterfacesData AccessCompleting the Design 2/24

3 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Relating Use Cases, Architecture, & Detailed Design 1. Use case (part of requirements) Cars should be able to travel from the top of Smith Hill at 65 mph, travel in a straight line, and arrive at Jones Hollow within 3 minutes. 3. Architecure2. Domain classes Auto Road Auto Road 4. Detailed Design Cable Pylon (not specifically required ) added for detailed design GuardrailRoadbed * ** * Use cases used to obtain domain classes. ** Use cases used to verify and test design. Intro Designing ControlDesigning for InterfacesData AccessCompleting the Design 3/24

4 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Completing Detailed Design Design the control of the application, Design for database access Design interaction with outside world. Audit relationships among classes eliminate unnecessary connections, adding requried detail classes clarify all classes Ensure all required methods implemented Intro Designing ControlDesigning for InterfacesData AccessCompleting the Design 4/24

5 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Designing control Controlling an application: organizing the actions and events that it needs to progress through. Global Control: for the entire application Internally driven control Externally driven control Local control: of the parts Intro Designing Control Designing for InterfacesData AccessCompleting the Design 5/24

6 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Architecture Options for Application Control Internally driven Externally driven == event-driven Does nothing until an even occurs e.g., mouse actions Each event causes a method to execute event Application class event … Globally: Event-driven (externally) or internally. … Locally: May collect control in its own class. KEY CONCEPT Control Applications Intro Designing Control Designing for InterfacesData AccessCompleting the Design 6/24

7 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Designing for Interfaces Styles of Object-Oriented Design for Application Interface Internally-driven Interface Design Class by class process Externally-driven Interface Design by use case -- or -- by screen -- or -- by user IntroDesigning Control Designing for Interfaces Data AccessCompleting the Design 7/24

8 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Connecting to Databases 1.Ensure class model supports collection 2.Choose centralized or distributed storage architecture 3.Store data in relational or object-oriented database IntroDesigning ControlDesigning for Interfaces Data Access Completing the Design 8/24

9 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Ensure Object Model Allows Data Capture Mediator for data capture Transaction Account CustomerTeller IntroDesigning ControlDesigning for Interfaces Data Access Completing the Design 9/24

10 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Data Management Architectures Distributed : objects store themselves Central : use specialized storage classes to create instances to destroy instances to make efficient use of space e.g. garbage collection IntroDesigning ControlDesigning for Interfaces Data Access Completing the Design 10/24

11 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Transaction float time Customer* cust CheckAccount* chAcc SavingsAccount* svgAcc store() cassie: Customer 3 Main: addr edward: Teller 54321: empNum Objects store themselves cAcc16: CheckAccount 100: lastWithdrawal sAcc12: SavingsAccount 3003: balance trans129:Transaction time: 0932 Distributed Data Storage IntroDesigning ControlDesigning for Interfaces Data Access Completing the Design 11/24

12 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objects send their contents to a storage utility class or module attribute values Storage store(...) transaction123: Transaction time: 0932 Object…:Class… Data Storage Package Centralized Data Storage IntroDesigning ControlDesigning for Interfaces Data Access Completing the Design 12/24

13 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Transaction time customer account DBMSDBMS Objects re-assembled in memory by application and database. Data, not objects stored. tables Using Relational Databases with OO DBMS: Database Management System IntroDesigning ControlDesigning for Interfaces Data Access Completing the Design 13/24

14 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objects delivered to memory for re-use. Objects, not data, stored. Transaction time customer account OODBMSOODBMS tables OO Databases IntroDesigning ControlDesigning for Interfaces Data Access Completing the Design 14/24

15 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser OO Databases: Relationships Maintained IntroDesigning ControlDesigning for Interfaces Data Access Completing the Design 15/24

16 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Relational DBMS vs. OO DBMS RDBMS based on a data model tables of rows & columns ODBMS based on a programming technology (the OO method) data model defined by the program IntroDesigning ControlDesigning for Interfaces Data Access Completing the Design 16/24

17 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Completing the Design Replace ambiguous associations, Expose all dependencies Split selected classes for improved design We reduce dependencies among classes to promote their reuse in other applications. KEY CONCEPT Design Goal: Reusability IntroDesigning ControlDesigning for InterfacesData Access Completing the Design 17/24

18 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Examining Associations: Many-To-Many... may uncover a required class: an "event-remembered" or mediator (Registration in this case). 1..n 11 e.g. wedding gift registration system: StoreCouple StoreCouple 1..n Registration IntroDesigning ControlDesigning for InterfacesData Access Completing the Design 18/24

19 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Examining Associations: Class-to-Itself... Business JointVenture... may uncover a required class : frequently an "event-remembered" Business Merger 2...n IntroDesigning ControlDesigning for InterfacesData Access Completing the Design 19/24

20 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Examining Aggregations for Short Circuits Item 1..n Shelf 1..n But not every item is on a shelf Add: Supermarket Item 1..n Shelf 1..n Supermarket 0..n looseItem IntroDesigning ControlDesigning for InterfacesData Access Completing the Design 20/24

21 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Consider Splitting Classes Envision system growth Leverage inheritance properly WinProcedureHelp Help WinProcedure IntroDesigning ControlDesigning for InterfacesData Access Completing the Design 21/24

22 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Completing Operations 1. Required by… Class Operations 1.1 Use-case model (sequence diagrams) 1.2 State Model (event handlers; functionality on entering states) 2. Design the algorithm for each operation (activity diagrams? pseudocode?) 1.4 Design Patterns 1.3 Component model IntroDesigning ControlDesigning for InterfacesData Access Completing the Design 22/24

23 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser getCategory() showCategoryOptions() demoExample() WinHelp getProblem() match() u u WinProcedure describe() u Partial Component Model WinProcedureExample demoExample() c WinProblem getCategory() getVisible() savePrimaryParameters() showCategoryOptions() c u s c key: from... u: use case s: from state model c: from component model category String Completing WinHelp Operations IntroDesigning ControlDesigning for InterfacesData Access Completing the Design 23/24

24 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Summary 1. Design for data capture 2. Design control 3. Design interfaces 4. Exploit abstraction 5. Reduce many-to-many associations 6. Finalize design of associations 7. Obtain all functions from use case-, state-, and component models 8. Design individual functions IntroDesigning ControlDesigning for InterfacesData AccessCompleting the Design 24/24


Download ppt "SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture # 16 Finalizing the Application Design SWE 316: Software Design and."

Similar presentations


Ads by Google