© Bennett, McRobb and Farmer 2005 1 Requirements Analysis Based on Chapter 7 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.

Slides:



Advertisements
Similar presentations
Systems Analysis and Design with UML Version 2.0, Second Edition
Advertisements

© 2010 Bennett, McRobb and Farmer1 Requirements Analysis 1: Requirements and Classes Based on Chapter 7 of Bennett, McRobb and Farmer: Object Oriented.
Systems Analysis and Design in a Changing World, Fourth Edition
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 5: Restaurant.
Object-Oriented Analysis and Design. Priorities in O-O Analysis and Design Understanding a system in terms of objects and associations between them. Representing.
03/12/2001 © Bennett, McRobb and Farmer 2002 Refining the Requirements Model Based on Chapter 8 of Bennett, McRobb and Farmer: Object Oriented Systems.
Slide 1 Systems Analysis & Design CS183 Spring Semester 2008 Dr. Jonathan Y. Clark Course Website:
Slide 1 Chapter 7 Structural Modeling. Slide 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business.
03/12/2001 © Bennett, McRobb and Farmer What Are Information Systems? Based on Chapter 1 of Bennett, McRobb and Farmer: Object Oriented Systems.
HCI Designing Interface Objects. The presentation layer How prototyping can be used to try out different interface designs How to model boundary classes.
03/12/2001 © Bennett, McRobb and Farmer Modelling Concepts Based on Chapter 5 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.
03/12/2001 © Bennett, McRobb and Farmer Object Interaction Based on Chapter 9 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.
PowerPoint Presentation for Dennis, Wixom & Tegarden Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
Requirements Analysis 2 What objects collaborate to achieve the goal of a use case?
Requirements Analysis
03/12/2001 © Bennett, McRobb and Farmer Activity Diagrams Based on Chapter 5 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.
03/12/2001 © Bennett, McRobb and Farmer What Is Object-Orientation? Based on Chapter 4 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
WXGC6102: Object-Oriented Techniques Object Interaction – Sequence Diagrams References: Chapter 9 of Bennett, McRobb and Farmer: Object Oriented Systems.
03/12/2001 © Bennett, McRobb and Farmer Use Case Diagrams Based on Chapter 6 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.
PowerPoint Presentation for Dennis, Wixom & Tegarden Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
Design in IS Development. IS Design in general The satisfaction of new information requirements. Considering the interaction between humans and the new.
Domain Modeling (with Objects). Motivation Programming classes teach – What an object is – How to create objects What is missing – Finding/determining.
IS0514 Lecture Week 3 Use Case Modelling.
Chapter 7: The Object-Oriented Approach to Requirements
Refining the Requirements Model
University of Toronto at Scarborough © Bennett, McRobb and Farmer 2005 CSCC40 classes 1 Use CasesUse Case Model Campaign Management PackageModelSub-system.
What Is Object-Orientation?
03/12/2001 © Bennett, McRobb and Farmer Object Interaction Based on Chapter 9 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.
SYSC 3100 System Analysis and Design Classes Diagrams: Class features.
Asst.Prof. Dr. Surasak Mungsing. 3 Learning Objectives Explain the purpose and various phases of the systems development life cycle (SDLC) Explain when.
1 Analysis Extracting from Use Cases to Create Diagrams.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
Slide 1 Structural Modeling Chapter 7. Slide 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business.
IS0514Slide 1 IS0514 Lecture - Week 1 (Semester 2) Business Systems Development Tools and Techniques.
Systems Analysis and Design in a Changing World, 3rd Edition
10/27/20151 WXGC6102: Object-Oriented Techniques Requirements Analysis References: Chapter 7 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
03/12/2001 © Bennett, McRobb and Farmer 2005 Refining the Requirements Model Based on Chapter 8 of Bennett, McRobb and Farmer: Object Oriented Systems.
03/12/2001 © Bennett, McRobb and Farmer 2002 Refining the Requirements Model Based on Chapter 8 of Bennett, McRobb and Farmer: Object Oriented Systems.
© Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
Slide 1 Systems Analysis and Design with UML Version 2.0, Second Edition Alan Dennis, Barbara Haley Wixom, and David Tegarden Chapter 7: Structural Modeling.
Slide 12A.1 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
Structural Modeling Chapter 7. Key Ideas A structural or conceptual model describes the structure of the data that supports the business processes in.
1 Structural Modeling Chapter 7. 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business processes.
© 2010 Bennett, McRobb and Farmer1 Object Interaction – Interaction Overview Diagrams Timing Diagrams Based on Chapter 09 Bennett, McRobb and Farmer Object.
University of Toronto at Scarborough © Bennett, McRobb and Farmer 2005 CSCC40 communication and sequence diagrams : listCampaigns *[For.
WXGC6102: Object-Oriented Techniques Object Interaction – Interaction Overview Diagrams Timing Diagrams References: Chapter 9 of Bennett, McRobb and Farmer:
© 2010 Bennett, McRobb and Farmer1 Requirements Analysis 2: Realizing Use Cases Based on Chapter 7 of Bennett, McRobb and Farmer: Object Oriented Systems.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 classes 1 classes a class describes a group of objects with: similar properties (attributes)
Systems Analysis and Design in a Changing World, Fourth Edition
PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
Slide 1 Systems Analysis and Design with UML Version 2.0, Second Edition Alan Dennis, Barbara Haley Wixom, and David Tegarden Chapter 7: Structural Modeling.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
© Bennett, McRobb and Farmer Object Interaction – Sequence Diagrams Based on Chapter 9 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
Slide 1 Systems Analysis and Design with UML Version 2.0, Second Edition Alan Dennis, Barbara Haley Wixom, and David Tegarden Chapter 7: Structural Modeling.
7 Systems Analysis – ITEC 3155 The Object Oriented Approach – Use Cases.
Object Interaction – Interaction Overview Diagrams Timing Diagrams
WXGC6102: Object-Oriented Techniques
CIS511 Information System Architecture
Modelling Concepts Based on Chapter 5 Bennett, McRobb and Farmer
Object-Oriented Analysis
IS0514 Lecture Week 3 Use Case Modelling.
Object Interaction – Sequence Diagrams
Software Design Lecture : 15.
Systems Analysis and Design I
Systems Analysis and Design I
Systems Analysis and Design I
Systems Analysis and Design I
Refining the Requirements Model
Presentation transcript:

© Bennett, McRobb and Farmer Requirements Analysis Based on Chapter 7 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design Using UML, (3 rd Edition), McGraw Hill, 2005.

© Bennett, McRobb and Farmer In This Lecture You Will Learn: n Why we analyse requirements n Technical terms used with class diagrams n How the UML class diagram expresses a detailed model of user requirements n How to realize use cases with collaboration diagrams and class diagrams n How the CRC technique helps identify classes and allocate responsibilities

© Bennett, McRobb and Farmer Why Analyse Requirements? n Use case model alone is not enough –There may be repetition –Some parts may already exist as standard components n Analysis aims to identify: –Common elements –Pre-existing elements –Interaction between different requirements

© Bennett, McRobb and Farmer What a Requirements Model Must Do A requirements model meets two main needs: n Confirms what users want a new system to do –Must be understandable for users –Must be correct and complete n Specifies what designers must design –Must be unambiguous

© Bennett, McRobb and Farmer What a Requirements Model Must Do n Describes what the software should do n Represents people, things and concepts important to understand what is going on n Shows connections and interactions among these people, things and concepts n Shows the business situation in enough detail to evaluate possible designs n Is organized so as to be useful for designing the software

© Bennett, McRobb and Farmer How We Model the Analysis n The main tool used for analysing requirements is the class diagram n Two main ways to produce this: –Directly based on knowledge of the application domain (a Domain Model) –By producing a separate class diagram for each use case, then assembling them into a single model (an Analysis Class Model)

© Bennett, McRobb and Farmer Class Diagram: Stereotypes n Analysis class stereotypes differentiate the roles objects can play: –Boundary objects model interaction between the system and actors (and other systems) –Entity objects represent information and behaviour in the application domain –Control objects co-ordinate and control other objects

© Bennett, McRobb and Farmer Class Diagram: Stereotypes User Interface::AddAdvertUI startInterface( ) assignStaff( ) selectClient( ) selectCampaign( ) > User Interface::AddAdvertUI startInterface( ) assignStaff( ) selectClient( ) selectCampaign( ) Alternative notations for boundary class:

© Bennett, McRobb and Farmer Class Diagram: Stereotypes Alternative notations for entity class: Campaign title campaignStartDate campaignFinishDate getCampaignAdverts( ) addNewAdvert( ) > Campaign title campaignStartDate campaignFinishDate getCampaignAdverts( ) addNewAdvert( )

© Bennett, McRobb and Farmer Class Diagram: Stereotypes Alternative notations for control class: AddAvert Control::AddAdvert showClientCampaigns( ) showCampaignAdverts( ) createNewAdvert( ) > Control::AddAdvert showClientCampaigns( ) showCampaignAdverts( ) createNewAdvert( )

© Bennett, McRobb and Farmer Class Diagram: Class Symbol Client companyAddress company companyFax companyName companyTelephone Class name compartment Attributes compartment Operations compartment

© Bennett, McRobb and Farmer Class Diagram: Instance Symbol FoodCo:Client companyAddress=Evans Farm, Norfolk companyFax= companyName=FoodCo companyTelephone= Object name compartment Attribute values Instances do not have operations

© Bennett, McRobb and Farmer Class Diagram: Attributes Attributes are: n Part of the essential description of a class n The common structure of what the class can ‘know’ n Each object has its own value for each attribute in its class

© Bennett, McRobb and Farmer Class Diagram: Links FoodCo:Client Yellow Partridge:Client Soong Motor Co:Client Grace Chia:StaffMember Carlos Moncada:StaffMember A link is a logical connection between two objects

© Bennett, McRobb and Farmer Class Diagram: Associations Associations represent: n The possibility of a logical relationship or connection between objects of one class and objects of another n If two objects can be linked, their classes have an association

© Bennett, McRobb and Farmer Class Diagram: Associations StaffMember staffName staffNo staffStartDate Client companyAddress company companyFax companyName companyTelephone liaises with staffContact Association role Association Association name Direction in which name should be read

© Bennett, McRobb and Farmer Class Diagram: Multiplicity n Associations have multiplicity n Multiplicity is the range of permitted cardinalities of an association n Represent enterprise (or business) rules n For example: –Any bank customer may have one or more accounts –Every account is for one, and only one, customer

© Bennett, McRobb and Farmer Class Diagram: Multiplicity StaffMember staffName staffNo staffStartDate Client companyAddress company companyFax companyName companyTelephone 1 0..* liaises with Multiplicities Exactly one staff member liaises with each client A staff member may liaise with zero, one or more clients

© Bennett, McRobb and Farmer Class Diagram: Operations Operations are: n An essential part of the description of a class n The common behaviour shared by all objects of the class n Services that objects of a class can provide to other objects

© Bennett, McRobb and Farmer Class Diagram: Operations n Operations describe what instances of a class can do: –Set or reveal attribute values –Perform calculations –Send messages to other objects –Create or destroy links Campaign actualCost campaignFinishDate campaignStartDate completionDate datePaid estimatedCost title checkCampaignBudget ( ) getCampaignContribution ( ) recordPayment ( ) setCompleted ( )

© Bennett, McRobb and Farmer From Requirements to Classes n Start with one use case n Identify the likely classes involved (the use case collaboration) n Draw a collaboration diagram that fulfils the needs of the use case n Translate this collaboration into a class diagram n Repeat for other use cases

© Bennett, McRobb and Farmer From Requirements to Classes Campaign Manager Add a new advert to a campaign Advert setCompleted() createNewAdvert() > User Interface::AddAdvertUI startInterface() createNewAdvert() selectClient() selectCampaign() > Campaign title campaignStartDate campaignFinishDate getCampaignAdverts() addNewAdvert() > 10..* conducted by Client companyAddress companyName companyTelephone companyFax company getClientCampaigns() getClients() > 10..* places Control::AddAdvert showClientCampaigns() showCampaignAdverts() createNewAdvert() > Add a new advert to a campaign :Advert :Campaign :Clien t :AddAdver t :AddAdvert UI : listCampaigns *[For all client’s campaigns]: getCampaignDetails : Advert *[For all campaign’s adverts]: getAdvertDetails :AddAdvertUI :AddAdvert :Client :Campaign :Advert 3.1: showClientCampaigns 3: selectClient 4: selectCampaign 4.1: showCampaignAdverts 5: createNewAdvert 5.1: addNewAdvert newAd:Advert 2: startInterface 1 *[For all clients]: getClient :CampaignManager sd Add a new advert to a campaign 5.1.1: addNewAdvert 4.1.1: listAdverts

© Bennett, McRobb and Farmer : listCampaigns *[For all client’s campaigns]: getCampaignDetails : Advert *[For all campaign’s adverts]: getAdvertDetails :AddAdvertUI :AddAdvert :Client :Campaign :Advert 3.1: showClientCampaigns 3: selectClient 4: selectCampaign 4.1: showCampaignAdverts 5: createNewAdvert 5.1: addNewAdvert newAd:Advert 2: startInterface 1 *[For all clients]: getClient :CampaignManager sd Add a new advert to a campaign 5.1.1: addNewAdvert 4.1.1: listAdverts

© Bennett, McRobb and Farmer Reasonability Checks for Candidate Classes n A number of tests help to check whether a candidate class is reasonable –Is it beyond the scope of the system? –Does it refer to the system as a whole? –Does it duplicate another class? –Is it too vague? –(More on next slide)

© Bennett, McRobb and Farmer Reasonability Checks for Candidate Classes (cont’d) –Is it too tied up with physical inputs and outputs? –Is it really an attribute? –Is it really an operation? –Is it really an association? n If any answer is ‘Yes’, consider modelling the potential class in some other way (or do not model it at all)

© Bennett, McRobb and Farmer CRC Cards n Class–Responsibility–Collaboration cards help to model interaction between objects n For a given scenario (or use case): –Brainstorm the objects –Allocate to team members –Role play the interaction

© Bennett, McRobb and Farmer CRC Cards Class Name: CollaborationsResponsibilities Responsibilities of a class are listed in this section. Collaborations with other classes are listed here, together with a brief description of the purpose of the collaboration.

© Bennett, McRobb and Farmer Class Name Client ResponsibilitiesCollaborations Provide client information. Campaign provides campaign details. Class Name Campaign ResponsibilitiesCollaborations Provide campaign information. Provide list of adverts. Add a new advert. Advert provides advert details. Advert constructs new object. Class Name Advert ResponsibilitiesCollaborations Provide advert details. Construct adverts. Provide list of campaigns.

© Bennett, McRobb and Farmer CRC Cards n Effective role play depends on an explicit strategy for distributing responsibility among classes n For example: –Each role player tries to be lazy –Persuades other players their class should accept responsibility for a given task n May use ‘Paper CASE’ to document the associations and links

© Bennett, McRobb and Farmer Summary In this lecture you have learned: n Why we analyse requirements n Technical terms used with class diagrams n How the UML class diagram expresses a detailed model of user requirements n How to realize use cases with collaboration diagrams and class diagrams n How the CRC technique helps identify classes and allocate responsibilities

© Bennett, McRobb and Farmer References n Wirfs-Brock (1990) gives a good exposition of CRC cards (For full bibliographic details, see Bennett, McRobb and Farmer)