Chapter 13 Requirements and Domain Classes. Process Phases Discussed in This Chapter Requirements Analysis Design Implementation ArchitectureFrameworkDetailed.

Slides:



Advertisements
Similar presentations
Chapter 10: Designing Databases
Advertisements

Ch 3 System Development Environment
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Chapter 1 Object Oriented Analysis and Design. UML, Patterns, and Object-Oriented Analysis and Design  The essential skills for the creation of well-designed,
Use Case Diagram © copyright 2001 SNU OOPSLA Lab..
Introduction To System Analysis and Design
Introduction to System Analysis and Design
Object Oriented Design OOD. OOD characteristics - I conceptual compatibility with OOA notational consistency with OOA clean traceability of OOA results.
Design 15 February. Software Engineering: Elaborated Steps Concept (contract, intro on web site) Requirements (use cases, requirements) Architecture Design.
Object-Orientated Design Unit 3: Objects and Classes Jin Sa.
The case study ‘Encounter’ Section ‘About case studies’ 4 th Workshop “Software Engineering Education and Reverse Engineering” Zagreb, 5 – 12 September.
Chapter 8 Structuring System Data Requirements
9 1 Chapter 9 Database Design Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 10 Structuring.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Software Engineering 2003 Jyrki Nummenmaa 1 USE CASES In this lecture: Use cases - What are use cases? - Why to use use cases? - How to write.
System Analysis & Design
Introduction To System Analysis and design
Computer System Analysis Chapter 10 Structuring System Requirements: Conceptual Data Modeling Dr. Sana’a Wafa Al-Sayegh 1 st quadmaster University of Palestine.
Lesson 7 Guide for Software Design Description (SDD)
REQUIREMENTS ANALYSIS II
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa USE CASES In this lecture: Use cases - What are use.
Chapter 10 Introduction to Components. Process Phases Discussed in This Chapter Requirements Analysis Design Implementation ArchitectureFramework Detailed.
Chapter 5 Design Principles II: Flexibility, Reusability, and Efficiency.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
REQUIREMENTS ANALYSIS. Initialize Use Case for Encounter Encounter foreign character player designer Set rules actors Encounter Travel to adjacent area.
Chapter 5 Design Principles II: Flexibility, Reusability, and Efficiency.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 7 Requirements and Domain Classes SWE 316: Software Design and Architecture.
Organizing Your Information
Introduction To System Analysis and Design
UML Diagrams: Class Diagrams The Static Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
Software Design Deriving a solution which satisfies software requirements.
CS 4310: Software Engineering Lecture 4 System Modeling The Analysis Stage.
Structural Modeling. Objectives O Understand the rules and style guidelines for creating CRC cards, class diagrams, and object diagrams. O Understand.
Systems Analysis and Design in a Changing World, 3rd Edition
1. The Context of Software Engineering. Definition of “Engineering” The profession in which a knowledge of the mathematical and natural sciences gained.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
SWE 316: Software Design and Architecture Objectives Lecture # 18 Introduction to Components SWE 316: Software Design and Architecture To learn:  benefits.
ANU comp2110 Software Design lecture 5 COMP2110 Software Design in 2003 lecture 5 Requirements Specifications lecture 3 of 3 The Encounter game case study.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Rational Unified Process Fundamentals Module 7: Process for e-Business Development Rational Unified Process Fundamentals Module 7: Process for e-Business.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Internet and Intranet Protocols and Applications Lecture 5a: HTTP Client-Server Design and Implementation February 15, 2005 Arthur Goldberg Computer Science.
© 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
ANU comp2110 Software Design lecture 8 COMP2110 Software Design in 2004 lecture 8 Software Architecture 1 of 2 (design, lecture 3 of 6) Goal of this small.
Chapter 7 Creational Design Pattern. Process Phases Discussed in This Chapter Requirements Analysis Design Implementation ArchitectureFrameworkDetailed.
CSC480 Software Engineering Lecture 7 September 16, 2002.
4 REQUIREMENTS ANALYSIS II. Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap:
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 10 Structuring.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
REQUIREMENTS ANALYSIS II. Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap:
CSC 480 Software Engineering
Logical Database Design and the Rational Model
UML Diagrams: Class Diagrams The Static Analysis Model
UNIT 1.
Modelling Concepts Based on Chapter 5 Bennett, McRobb and Farmer
COMP2110 Software Design in 2004 lecture 09 High level design
Chapter 13 Requirements and Domain Classes
4 REQUIREMENTS ANALYSIS CASE STUDY
Need for the subject.
Classes for Encounter Video Game
Initialize Use Case for Encounter
Presentation transcript:

Chapter 13 Requirements and Domain Classes

Process Phases Discussed in This Chapter Requirements Analysis Design Implementation ArchitectureFrameworkDetailed Design x Key:= secondary emphasis x = main emphasis Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Learning Goals for This Chapter  OO a nalysis vs. d esign  Traditional application development vs. OO analysis & design  Domain vs. non-domain classes  … determine basic Use Cases  … create sequence diagrams  … select domain classes  … use domain classes to organize requirements Be able to … Understand distinctions: Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

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 Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Characteristics of OO Analysis & Design  Approach is initially through the application’s domain classes (its “ingredients”) -- rather than its required functionality o Like starting a recipe by listing the ingredients o Typically obtain from introducing use cases then transforming these into sequence diagrams  Introduces domain classes at requirements time o Remaining classes at design time  Supports iterative development processes Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

WinHelp Example: Requirements WinHelp shall advise novice Windows TM users on their difficulties using this operating system. Input: Problem description Process: Determine user’s difficulty match with solution database Output: Up to 3 possible solutions Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Non -OO Design of WinHelp key: = data flow Get description Match Report Solution database XXX = functional component problem description solution Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Non -OO Design of WinHelp: Top-Down Organization Control Get descriptionMatchReport Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Module 1Module 2Module 3 Require- ment 1783 showName()computeBalance()getInterest() 1784 showAccount()computeBalance()showBalance() Requirements Traceability Matrix Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Disadvantages of Functional Methods o Whole application must be specified first - to do top-down design o Usage hard to change o Code does not match the application well o Traceability difficult o Re-use low Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

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 Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Design Goal At Work:  Reusability  Because we want to reuse classes, we identify domain classes early in the process. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Analysis 1. Conceptual & abstract 2. Applicable to several designs 3. «control», «entity» & «boundary» stereotypes 4. Less formal 5. Less expensive to develop 1. Concrete: implementation blueprint 2. Specific for an implementation 3. No limit on class stereotypes 4. More formal 5. More expensive to develop (  5 × ) After Jacobson et al: USDP Design 1/2 Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

6. Outlines the design 7. Emerges from conceptual thinking 8. Few layers 9. Relatively unconstrained 6. Manifests the design 7. May use tools (e.g. visual, round-trip engineering) 8. Several layers 9. Constrained by the analysis & architecture Analysis After Jacobson et al : USDP Design 2/2 Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

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) Use to classify requirements Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Key Concept:  The Object-Oriented Approach …  … is to begin with ingredients rather than functionality. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Case Study Summary Specification: Encounter (1/2)  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. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Case Study Summary Specification: Encounter (2/2)  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. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Encounter Area Configuration Dressing room Courtyard DungeonStudy Key:= connection Living room Kitchen Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Foreign Character Freddie’s Image Graphics reproduced with permission from Corel.Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

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: Parts Discussed in This Section Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Initialize Use Case for Encounter Case Study Engage foreign character player designer 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 titlesUse case detail Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Engage Foreign Character Use Case player designer Initialize Encounter Travel to adjacent area Set rules Engage Foreign Character 1. Application displays the foreign character in the same area as the player’s. 2. Application exchanges quality values between the two characters. 3. Application displays the results of the engagement. 4. Application displays player’s character in a random area. Engage foreign character Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Travel To Adjacent Area Use Case player designer 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 Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Key Concept:  Use Cases …  … are a beginning point for requirements and analysis. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

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 Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

1.1 create; display Sequence Diagram for Engage Foreign Character Use Case 2.1 execute 3 create and show :Engagement Display :Engagement 2.2 change quality values 1.2 create :Player Character :Encounter Game freddie: Foreign Character Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

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 Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

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 Version 2 OOA&D Roadmap: Parts Discussed in This Section Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

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. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Harvesting Classes From the Sequence Diagrams Area PlayerForeignCharacter EncounterCharacter GameCharacterEngagement EncounterAreaConnection EngagementDisplay ConnectionHyperlink Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

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 Version 3 OOA&D Roadmap: Parts Discussed in This Section Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Finding Domain Classes From Other Sources (1)Brainstorm List every reasonable class candidate. See checklist of potential sources. (2) Cut Pare down to a few essential classes. Err on the side of rejecting. (3) Verify Combine with classes from sequence diagrams. Ensure class names classify all requirements. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

PhotoComposer... a program for making compositions of photographs as illustrated... can be used to bring together photographs of individual family members, possibly taken at different times, so that the result has the effect of a family photograph... backgrounds can also be chosen by the user Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Ideas for Brainstorming Domain Classes  Extract nouns from text Booch:  Discovery  Invention Coad & Yourdon:  Structures  Systems  Devices  Events  Roles  Sites  Organizational units Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

PhotoComposer : Brainstorming I Nouns from text (existing documentation) Background, Frame, Composition, Display, Family, Photograph, Portrait, Record, ScrollBar, User Album, Ceremony, Collage, Graphic, Illustration, Memento, Memorial, Souvenir, Visualization Invention (generalization etc.) Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

PhotoComposer : Brainstorming II Sites Monitor Laboratory Organizational units Family InLaws Roles Composer Presenter User Structures PhotoTree FamilyTree Systems PhotoDatabase ImageManipulation Devices Printer Monitor Events Print Store Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

PhotoComposer: Collected Class Candidates Album, Background, Frame, Ceremony, Collage, Composer, Composition, Display, Family, Graphic, Illustration, Image, Laboratory, InLaws, ImageManipulation, Memento, Memorial, Monitor, PhotoDatabase, Photograph, PhotoTree, Position, Portrait, Presenter, Print, Record, ScrollBar, Souvenir, User, Visualization Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Filters for Paring Domain Class Candidates Rumbaugh et al o Stay in domain o Needed? o Several attributes ? o Several operations ? o Several instances ? o Standard entity? o Clear? Coad and Yourdon o Redundant? o Should be attribute ? o Should be operation ? o Should be left for design phase? Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

PhotoComposer Example: Stay in Domain Album, Background, Frame, Ceremony, Collage, Composer, Composition, Display, Family, Graphic, Illustration, Image, Laboratory, InLaws, ImageManipulation, Memento, Memorial, Monitor, PhotoDatabase, Photograph, PhotoTree, Position, Portrait, Presenter, Print, Record, ScrollBar, Souvenir, User, Visualization Underlined: “not in domain” Generic, not special to PhotoComposer. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

PhotoComposer : Needed ? Album, Background, Frame, Ceremony, Collage, Composer, Composition, Display, Family, Graphic, Illustration, Image, Laboratory, InLaws, ImageManipulation, Memento, Memorial, Monitor, PhotoDatabase, Photograph, PhotoTree, Position, Portrait, Presenter, Print, Record, ScrollBar, Souvenir, User, Visualization e.g., not sure applications has to distinguish in-laws. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Clear PhotoComposition: Standard Entity?.... Clear ?.... [ Redundant] ( Should be Attribute) ?.... Ceremony ImageManipulationMementoMemorial PhotoTree, SouvenirVisualization Album, Background, Frame, Ceremony, Collage, Composer, Composition, Display, Family, Graphic, Illustration, [ Image], Laboratory, InLaws, ImageManipulation, Memento, Memorial, Monitor, PhotoDatabase, Photograph, PhotoTree, ( Position), Portrait, Presenter, Print, Record, ScrollBar, Souvenir, User, Visualization e.g., not clear e.g., redundant with Photograph e.g., not standard Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Clear PhotoComposition: Standard Entity?.... Clear ?.... [ Redundant] ( Should be Attribute) ?.... Ceremony ImageManipulationMementoMemorial PhotoTree, SouvenirVisualization Album, Background, Frame, Ceremony, Collage, Composer, Composition, Display, Family, Graphic, Illustration, [ Image], Laboratory, InLaws, ImageManipulation, Memento, Memorial, Monitor, PhotoDatabase, Photograph, PhotoTree, ( Position), Portrait, Presenter, Print, Record, ScrollBar, Souvenir, User, Visualization e.g., not clear e.g., redundant with Photograph e.g., not standard Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

CompositionPhotographFramePortrait PhotoComposition Domain Classes Data Dictionary Composition : a collection of photographs whose rendering (e.g. on the monitor) takes place in a specific order Frame : design for the framing of Composition objects Photograph : a digitized photograph Portrait : a photograph having foreground and background Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

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 Version 3 OOA&D Roadmap: Parts Discussed in This Section Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

(1) list every reasonable candidate class you can think of (this list), then (2) drastically cut down to a few essential classes. Candidate Classes for Encounter Game EncounterArea Encounter PlayerCharacter ForeignCharacter PlayerWindow Game EncounterCharacter QualityRoom Door Rule Engagement Result Score ExitChoiceWindow Map Passageway EncounterAreaConnection EngagementDisplay ConnectionHyperlink Above classes: From sequence diagrams, do not cut Exit Combat Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Filtering Candidate Domain Classes 1 o Encounter : Change to EncounterGame to make its purpose clearer o Game : Not a domain class -- too general o GameCharacter : too general to be within the domain o Player : PlayerCharacter is more specific to the domain, and should replace it o ForeignCharacter : OK  act differently from the player character Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Filtering Candidate Domain Classes 2  Quality : OMIT -- try to handle as simple attribute of GameCharacter  Room : OMIT -- not sure if we need this; already have Area  Door : OMIT -- not sure we’ll need it -- see Exit  Exit : Not sure if we need this: leads to neighboring area -- try as simple attribute of Area -- OMIT for now  Rule : OMIT -- not sure we’ll need it  EncounterArea : OK Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

 Engagement : OK  Passageway : Use EncounterAreaConnection  Result : OMIT -- vague  Combat : OMIT -- not sure we’ll need it -- already have Engagement  Score : OMIT -- try as attribute of other classes  PlayerQualityWindow : needed for Initialize u. c.  ExitChoiceWindow : OMIT -- not needed  Map : OMIT -- not required yet  EngagementDisplay : OK -- needed by use case Filtering Candidate Domain Classes 3 Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Domain Classes for Encounter Video Game, Showing Inheritance EncounterArea EncounterGame «singleton» Engagement PlayerCharacter «singleton» ForeignCharacter EncounterCharacter PlayerQualityWindow «singleton» EngagementDisplay EncounterAreaConnectionConnectionHyperlink Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Key Concept:  Domain Classes are found from …  … sequence diagrams and brainstorming / editing. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Design Goal At Work:  Correctness/Modularity  We want to easily match requirements with classes. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Section Heading (e.g., “ Customers” ) Subsection 1. Attributes (required properties) e.g., “ The application shall maintain the names of all customers.” Subsection 2. Instances (specific ones that must exist – if applicable) e.g., “ The application shall accommodate John D. Rockefeller …” Subsection 3. Functionality (the heart of the requirements spec.) e.g., “ The application shall be able to print customer profiles …” Subsection 4. Events (events that instances are sensitive to – if any) e.g., “ Whenever a customer’s address is changed, …” Contents of Each Requirements Paragraph Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Key Concept:  Practical Requirements Organization  -- can be achieved by determining domain classes up front, then using them to organize requirements. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

Summary of This Chapter  OO Analysis = Requirements analysis + Domain class selection o Product = Complete requirements document + Domain class model + Basic sequence diagrams  OO Design = All other activities except coding o Product = Complete detailed design ready for coding  Traditional application development: Function-oriented  OO analysis & design: “Ingredients-oriented”  Domain classes = “Ingredients” o Obtained via use cases  sequence diagrams, and o Brainstorming / Editing process  Use domain classes to organize requirements Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.