Presentation is loading. Please wait.

Presentation is loading. Please wait.

SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 7 Requirements and Domain Classes SWE 316: Software Design and Architecture.

Similar presentations


Presentation on theme: "SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 7 Requirements and Domain Classes SWE 316: Software Design and Architecture."— Presentation transcript:

1 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 7 Requirements and Domain Classes SWE 316: Software Design and Architecture  Understand distinctions:  OO analysis vs. design  Traditional application development vs. OO analysis & design  Domain vs. non-domain classes Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission. Ch 13

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 OO Analysis and DesignObtaining Domain Classes1- Use Cases2- Sequence Diagrams3- Harvesting 2/22

3 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Relation of software architecture to other development tasks Applied Software Architecture by C. Hofmeister et al. 2000 OO Analysis and DesignObtaining Domain Classes1- Use Cases2- Sequence Diagrams3- Harvesting 3/22

4 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser The Activities of Application Development 1.Gather requirements Specify Customer-oriented requirements specs Specify Developer-oriented requirement specs 2.Create design Select architecture Specify detailed design 3.Implement design Sec 13.1 OO Analysis and DesignObtaining Domain Classes1- Use Cases2- Sequence Diagrams3- Harvesting 4/22

5 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Characteristics of OO Analysis & Design  Approach is initially through the application’s domain classes (its “ingredients”) -- rather than its required functionality  Like starting a recipe by listing the ingredients  Typically obtain from introducing use cases then transforming these into sequence diagrams  Introduces domain classes at requirements time  Remaining classes at design time  Supports iterative development processes OO Analysis and Design Obtaining Domain Classes1- Use Cases2- Sequence Diagrams3- Harvesting 5/22

6 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser The basic OOA&D approach  Emphasis is on objects (state and behavior) [ingredients]  What is the application about?  Individual words (nouns) that answer the question are the domain classes 13.1.1 OO Analysis and Design Obtaining Domain Classes1- Use Cases2- Sequence Diagrams3- Harvesting 6/22

7 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser The Basic OOA&D Approach 1.State the main use cases 2.Convert the use cases to sequence diagrams 3.Select the resulting (“domain”) classes refine select OO Analysis and Design Obtaining Domain Classes1- Use Cases2- Sequence Diagrams3- Harvesting 7/22

8 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Jacobson et al. list of the differences between OO analysis and design AnalysisDesign 1. Conceptual & abstract1. Concrete: implementation blueprint 2. Applicable to several designs2. Specific for an implementation 3. «control», «entity» & «boundary» stereotypes 3. No limit on class stereotypes 4. Less formal4. More formal 5. Less expensive to develop 5. More expensive to develop (  5×) 6. Outlines the design6. Manifests the design 7. Emerges from conceptual thinking7. May use tools (e.g. visual, round-trip engineering) 8. Few layers8. Several layers 9. Relatively unconstrained9. Constrained by the analysis & architecture OO Analysis and Design Obtaining Domain Classes1- Use Cases2- Sequence Diagrams3- Harvesting 8/22

9 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Seek domain classes from other sourcesGather domain classes Develop use cases with customer Convert use cases to sequence diagrams Introduce design patterns or components Finalize design (class model, use case model, ….) I. Requirements analysis phase II. Architecture phase III. Detailed Design phase Determine architecture Consider Framework (existing, modified, or new) OOA&D Roadmap (to be explained) OO Analysis and Design Obtaining Domain Classes1- Use Cases2- Sequence Diagrams3- Harvesting 9/22

10 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Case Study: Encounter (1/2)  Summary Specification:  Role-playing game which simulates all or part of the lifetime of the player's character.  Game characters not under the player’s control called "foreign" characters.  Game characters have a number of qualities such as strength, speed, patience etc.  Each quality has a value  Characters engage each other when in the same area. OO Analysis and DesignObtaining Domain Classes1- Use Cases2- Sequence Diagrams3- Harvesting 10/22

11 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Case Study: Encounter (2/2)  Summary Specification:  The result of an engagement depends on the area in which it takes place, and on the values of the characters’ relevant qualities  Players may reallocate the values of their qualities when the foreign character is absent  Reallocation takes effect after a delay  Success is measured by life points accumulated, by living as long as possible etc. OO Analysis and DesignObtaining Domain Classes1- Use Cases2- Sequence Diagrams3- Harvesting 11/22

12 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Encounter Area Configuration Dressing room Courtyard DungeonStudy Key:= connection Living room Kitchen Foreign Character Freddie’s Image OO Analysis and DesignObtaining Domain Classes1- Use Cases2- Sequence Diagrams3- Harvesting 12/22

13 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Obtaining Domain Classes 13.3.1 - Use Case Requirements Description 13.3.2 - Converting Use Cases to Sequence Diagrams 13.3.3 - Harvesting Domain Classes from Sequence Diagrams 13.3 OO Analysis and Design Obtaining Domain Classes 1- Use Cases2- Sequence Diagrams3- Harvesting 13/22

14 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser OOA&D Roadmap: Parts Discussed in This Section OO Analysis and Design Obtaining Domain Classes 1- Use Cases2- Sequence Diagrams3- Harvesting 14/22

15 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Use Case Requirements Description Engage foreign character player Set rules actors Travel to adjacent area Initialize 1. Application displays player’s main character in the dressing room. 2. Application displays a window for setting his character's qualities. 3. Player allocates the qualities of his main character. 4. Player chooses an exit from the dressing room. Initialize Use case titles Use case detail Designer “Initialize” Use Case for Encounter Case Study 13.3.1 OO Analysis and DesignObtaining Domain Classes 1- Use Cases 2- Sequence Diagrams3- Harvesting 15/22

16 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Travel To Adjacent Area Use Case Initialize Encounter Travel to adjacent area Set rules Travel to Adjacent Area 1. Player hits hyperlink connecting displayed area to adjacent area. 2. Application displays the indicated adjacent area, including the player’s character. Engage foreign character Designerplayer Use Cases … are a beginning point for requirements and analysis. OO Analysis and DesignObtaining Domain Classes 1- Use Cases 2- Sequence Diagrams3- Harvesting 16/22

17 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Converting:Use Cases to Sequence Diagrams 13.3.2 Player :Encounter- Game main player character: Player Character 1*.1 create and display 5. move Sequence Diagram for Initialize Use Case * Numbering keyed to use case 1.2 create and display 2. create and display 3.2 set quality values :Player quality window dressing room: Area 4. select exit for character 3.1 set quality values OO Analysis and DesignObtaining Domain Classes1- Use Cases 2- Sequence Diagrams 3- Harvesting 17/22

18 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser User :Connection Hyperlink 1.1 hit 1.2 display other area :AreaConnection :Area 2.1 display 2.2 display :PlayerCharacter Sequence Diagram for Travel to Adjacent Area Use Case OO Analysis and DesignObtaining Domain Classes1- Use Cases 2- Sequence Diagrams 3- Harvesting 18/22

19 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Harvesting Domain Classes from Sequence Diagrams 13.3.3 OO Analysis and DesignObtaining Domain Classes1- Use Cases2- Sequence Diagrams 3- Harvesting 19/22

20 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Classes in Initialize Sequence Diagram EncounterGame - a class with a single object PlayerCharacter - with object mainPlayerCharacter Area - with object dressingRoom, and PlayerQualityWindow - a GUI class included to complete the use case. OO Analysis and DesignObtaining Domain Classes1- Use Cases2- Sequence Diagrams 3- Harvesting 20/22

21 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Harvesting Classes From the Sequence Diagrams Area PlayerForeignCharacter EncounterCharacter GameCharacterEngagement EncounterAreaConnection EngagementDisplay ConnectionHyperlink OO Analysis and DesignObtaining Domain Classes1- Use Cases2- Sequence Diagrams 3- Harvesting 21/22

22 SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Summary of This Chapter  OO Analysis = Requirements analysis + Domain class selection  Product = Complete requirements document + Domain class model + Basic sequence diagrams  OO Design = All other activities except coding  Product = Complete detailed design ready for coding  Traditional application development: Function-oriented  OO analysis & design: “Ingredients-oriented”  Domain classes = “Ingredients”  Obtained via use cases  sequence diagrams, and  Brainstorming / Editing process  Use domain classes to organize requirements OO Analysis and DesignObtaining Domain Classes1- Use Cases2- Sequence Diagrams3- Harvesting 22/22


Download ppt "SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 7 Requirements and Domain Classes SWE 316: Software Design and Architecture."

Similar presentations


Ads by Google