© 2010 Bennett, McRobb and Farmer1 Moving into Design Based on Chapter 12 Bennett, McRobb and Farmer Object Oriented Systems Analysis and Design Using.

Slides:



Advertisements
Similar presentations
COMP1007 Introduction to Requirements Analysis © Copyright De Montfort University 2002 All Rights Reserved COMP1007 Introduction to Requirements Analysis.
Advertisements

Chapter 12 Review Questions
Ch 3: Unified Process CSCI 4320: Software Engineering.
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Ch 3 System Development Environment
© 2010 Bennett, McRobb and Farmer1 Requirements Analysis 1: Requirements and Classes Based on Chapter 7 of Bennett, McRobb and Farmer: Object Oriented.
Moving from Analysis to Design. Overview ● What is the difference between analysis and design? ● Logical v. physical design ● System v. detailed design.
Requirements Analysis 8. 1 Storyboarding b508.ppt © Copyright De Montfort University 2000 All Rights Reserved INFO2005 Requirements Analysis Human.
© Bennett, McRobb and Farmer Designing Boundary Classes Based on Chapter 17 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.
© Bennett, McRobb and Farmer System Design Based on Chapter 14 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design Using.
03/12/2001 © Bennett, McRobb and Farmer Transition to Design Based on Chapter 12 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
03/12/2001 © Bennett, McRobb and Farmer Designing Boundary Classes Based on Chapter 17 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
03/12/2001 © Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
03/12/2001 © Bennett, McRobb and Farmer System Design Based on Chapter 13 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
HCI Designing Interface Objects. The presentation layer How prototyping can be used to try out different interface designs How to model boundary classes.
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.
© Bennett, McRobb and Farmer 2005
03/12/2001 © Bennett, McRobb and Farmer Development Process Based on Chapter 5 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.
Objectives Explain the purpose and objectives of object- oriented design Develop design class diagrams Develop interaction diagrams based on the principles.
Chapter 9: Moving to Design
03/12/2001 © Bennett, McRobb and Farmer Use Case Diagrams Based on Chapter 6 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.
1 A Student Guide to Object- Orientated Development Chapter 9 Design.
03/12/2001 © Bennett, McRobb and Farmer Requirements Capture Based on Chapter 6 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
Systems Design. Analysis involves understanding and documenting user requirements in a clear and unambiguous way. It focuses on the business side and.
Chapter 1 Introduction to Databases
Chapter 1 The Systems Development Environment
Chapter 1 The Systems Development Environment
Continuation From Chapter From Chapter 1
Principles of Object Technology Module 1: Principles of Modeling.
Chapter 9 Elements of Systems Design
The Design Discipline.
Why Analysis Process Refer to earlier chapters Models what the system will do makes it easier for understanding no environment considered (hence, system.
1 Shawlands Academy Higher Computing Software Development Unit.
Chapter 1 The Systems Development Environment
1 BTEC HNC Systems Support Castle College 2007/8 Systems Analysis Lecture 9 Introduction to Design.
University of Toronto at Scarborough © Bennett, McRobb and Farmer 2005 CSCC40 classes 1 Use CasesUse Case Model Campaign Management PackageModelSub-system.
ITEC224 Database Programming
An Introduction to Software Architecture
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
1 WXGC6102: Object-Oriented Techniques Requirements Capture References: Chapter 6 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
CSE323 การวิเคราะห์และออกแบบระบบ (Systems Analysis and Design) Lecture 08: Lecture 08: System Architecture.
© 2010 Bennett, McRobb and Farmer1 System Design and Architecture Based on Chapter 13 Bennett, McRobb and Farmer Object Oriented Systems Analysis and Design.
What Is Object-Orientation?
Asst.Prof. Dr. Surasak Mungsing. 3 Learning Objectives Explain the purpose and various phases of the systems development life cycle (SDLC) Explain when.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
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.
© Bennett, McRobb and Farmer Requirements Analysis Based on Chapter 7 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
Lecture # 3 & 4 Chapter # 2 Database System Concepts and Architecture Muhammad Emran Database Systems 1.
© Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
© 2010 Bennett, McRobb and Farmer1 Development Process Based on Chapter 5 Bennett, McRobb and Farmer Object Oriented Systems Analysis and Design Using.
INFO1408 Database Design Concepts Week 15: Introduction to Database Management Systems.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
© 2010 Bennett, McRobb and Farmer1 Requirements Analysis 2: Realizing Use Cases Based on Chapter 7 of Bennett, McRobb and Farmer: Object Oriented Systems.
The Software Development Process
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
© Bennett, McRobb and Farmer 2005
CSE323 การวิเคราะห์และออกแบบระบบ (Systems Analysis and Design) CSE323 การวิเคราะห์และออกแบบระบบ (Systems Analysis and Design) Lecture.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
9 Systems Analysis and Design in a Changing World, Fifth Edition.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Development Process Based on Chapter 5 Bennett, McRobb and Farmer
CIS511 Information System Architecture
Systems Analysis and Design I
Chapter 6: Architectural Design
Presentation transcript:

© 2010 Bennett, McRobb and Farmer1 Moving into Design Based on Chapter 12 Bennett, McRobb and Farmer Object Oriented Systems Analysis and Design Using UML 4 th Edition, McGraw Hill, 2010

2© 2010 Bennett, McRobb and Farmer In This Lecture You Will Learn: The difference between analysis and design The difference between logical and physical design The difference between system and detailed design The characteristics of a good design The need to make trade-offs in design

3© 2010 Bennett, McRobb and Farmer How is Design Different from Analysis? Design states ‘how the system will be constructed without actually building it’ (Rumbaugh, 1997) Analysis identifies ‘what’ the system must do Design specifies ‘how’ it will do it

4© 2010 Bennett, McRobb and Farmer How is Design Different from Analysis? The analyst seeks to understand the organization, its requirements and its objectives The designer seeks to specify a system that will fit the organization, provide its requirements effectively and assist it to meet its objectives

5© 2010 Bennett, McRobb and Farmer How is Design Different from Analysis? As an example, in the Agate case study: –analysis identifies the fact that the Campaign class has a title attribute –design determines how this will be entered into the system, displayed on screen and stored in a database, together with all the other attributes of Campaign and other classes

6© 2010 Bennett, McRobb and Farmer When Does Analysis Stop and Design Start? In a waterfall life cycle there is a clear transition between the two activities In an iterative life cycle the analysis of a particular part of the system will precede its design, but analysis and design may be happening in parallel It is important to distinguish the two activities and the associated mindset We need to know ‘what’ before we decide ‘how’

7© 2010 Bennett, McRobb and Farmer 2. To record the details of each campaign for each client. This will include the title of the campaign, planned start and finish dates, estimated costs, budgets, actual costs and dates, and the current state of completion. RequirementsAnalysisDesign Campaign title campaignStartDate campaignFinishDate estimatedCost completionDate datePaid actualCost getCampaignAdverts() addNewAdvert() createNewCampaign() getCampaignStaff() assignStaff() completeCampaign() getCampaignCost() recordPayment() > Campaign – actualCost : Currency – adverts : Advert[ ] – campaignFinishDate : Date – campaignStaff : StaffMember[ ] – campaignStartDate : Date – client : Client – completionDate : Date – datePaid : Date – estimatedCost : Currency – manager : StaffMember – title : String – uniqueID : GUID + addNewAdvert(Advert) + assignStaff(StaffMember) + checkCampaignBudget( ) : Currency + completeCampaign( ) + getCampaignAdverts( ) : Advert[ ] + getCampaignCost( ) : Currency + getCampaignDetails( ) : String[ ] + getCampaignStaff( ) : StaffMember[ ] + getOverheads( ) : Currency + recordPayment(Currency) Add a new campaign Campaign Manager CREATE TABLE Campaigns (VARCHAR(30) uniqueID PRIMARY KEY NOT NULL, FLOAT actualCost, DATE campaignFinishDate, DATE campaignStartDate, VARCHAR(30) clientID NOT NULL, DATE completionDate, DATE datePaid, FLOAT estimatedCost, VARCHAR(30) managerID, VARCHAR(50) title); CREATE INDEX campaign_idx ON Campaigns (clientID, managerID, title);

8© 2010 Bennett, McRobb and Farmer Traditional Design Making a clear transition from analysis to design has advantages –project management—is there the right balance of activities? –staff skills—analysis and design may be carried out by different staff –client decisions—the client may want a specification of the ‘what’ before approving spending on design –choice of development environment—may be delayed until the analysis is complete

9© 2010 Bennett, McRobb and Farmer Design in the Iterative Life Cycle Advantages of the iterative life cycle include –risk mitigation—making it possible to identify risks earlier and to take action –change management—changes to requirements are expected and properly managed –team learning—all the team can be involved from the start of the project –improved quality—testing begins early and is not done as a ‘big bang’ with no time

10© 2010 Bennett, McRobb and Farmer Seamlessness The same model—the class model—is used through the life of the project During design, additional detail is added to the analysis classes, and extra classes are added to provide the supporting functionality for the user interface and data management Other diagrams are also elaborated in design activities

11© 2010 Bennett, McRobb and Farmer Logical and Physical Design In structured analysis and design a distinction has been made between logical and physical design Logical design is independent of the implementation language and platform Physical design is based on the actual implementation platform and the language that will be used

12© 2010 Bennett, McRobb and Farmer Logical and Physical Design Example Some design of the user interface classes can be done without knowing whether it is to be implemented in Java, C++ or some other language-types of fields, position in windows Some design can only be done when the language has been decided upon — the actual classes for the types of fields, the layout managers available to handle window layout

13© 2010 Bennett, McRobb and Farmer Logical and Physical Design It is not necessary to separate these into two separate activities It may be useful if the software is to be implemented on different platforms Then it will be an advantage to have a platform-independent design that can be tailored to each platform

14© 2010 Bennett, McRobb and Farmer Model Driven Architecture Note the MDA Initiative –Generate platform-specific models (PSMs) from platform-independent models (PIMs) This is discussed in more detail in Chapter 13

15© 2010 Bennett, McRobb and Farmer System Design and Detailed Design System design deals with the high level architecture of the system –structure of sub-systems –distribution of sub-systems on processors –communication between sub-systems –standards for screens, reports, help etc. –job design for the people who will use the system

16© 2010 Bennett, McRobb and Farmer System Design and Detailed Design Traditional detailed design consists of four main activities –designing inputs –designing outputs –designing processes –designing files and database structures

17© 2010 Bennett, McRobb and Farmer System Design and Detailed Design Traditional detailed design tried to maximise cohesion –elements of module of code all contribute to the achievement of a single function Traditional detailed design tried to minimise coupling –unnecessary linkages between modules that made them difficult to maintain or use in isolation from other modules

18© 2010 Bennett, McRobb and Farmer System Design and Detailed Design Object-oriented detailed design adds detail to the analysis model –types of attributes –operation signatures –assigning responsibilities as operations –additional classes to handle user interface –additional classes to handle data management –design of reusable components –assigning classes to packages

19© 2010 Bennett, McRobb and Farmer Enterprise Architecture System Architecture System Design Detailed Design Alignment of IT architecture to business strategy and structure, and existing IT Meeting users’ requirements and determining the high-level structure of the system Agate Control Server Agate Domain Agate Database Agate Boundary Agate Control Client Agate Business Objects Agate Value Objects callSe rver sendRequest packData :Client:Client sd Broker-based client–server communication :ClientSideProxy:ClientSideProxy :Broker:Broker :ServerSideProxy:ServerSideProxy :Server:Server sendRequest findServer requestService unpackData service packData response sendResponse unpackData response Choosing technologies and frameworks, setting standards, and applying patterns Designing user interfaces, interactions, classes, data storage :CheckCampaign Budget CheckCampaignBudget :CheckCampaign BudgetUI ccbUI := CheckCampaignBu dgetUI :ListClients ListClients listAllClients( ccbUI ) addClientName( name ) enable sd Check campa ign budget loop [For all clients] CheckCamp aign BudgetUI( this ) lc := ListClients disableCheckButton disableCampaignList Global Catalogue Local Data Catalogues Data Agate Boundary Agate Control Client Agate Entity CheckCampaignBudgetUI CheckCampaignBudgetClient Agate Control Server ListCampaigns ListClients CheckCampaignBudgetServer Agate Domain Agate Data Management ControllerFactory Campaign Client Advert AdvertBroker CampaignBroker ClientBroker RelationalBroker «interface» ClientLister + addClientName(String) + clearAllClientNames( ) + removeClientName(String) CheckCampaignBudgetUI «use» ListCampaigns + enable( ) + enableCheckButton( ) + getSelectedClient( ) + getSelectedCampaign( ) + setBudget(Currency) + addCampaignName(String) + clearAllCampaignNames( ) + removeCampaignName(String) + addClientName(String) + clearAllClientNames( ) + removeClientName(String) + itemStateChanged(ItemEvent) + listAllCampaigns(CampaignLister) + listCampaigns(CampaignLister, Client) «interface» CampaignLister + addCampaignName(String) + clearAllCampaignNames( ) + removeCampaignName(String) ListClients + listAllClients(ClientLister) «use» «interface» java::awt::event::ItemListener + itemStateChanged(ItemEvent) - clientLabel : JLabel - campaignLabel : JLabel - budgetLabel : JLabel - checkButton : JButton - closeButton : JButton - budgetTextField : JTextField - clientComboBox : JComboBox - campaignComboBox : JComboBox

20© 2010 Bennett, McRobb and Farmer Qualities of Design Reusable Usable Maintainable Manageable Buildable General Flexible Secure Reliable Economical Efficient Functional Agate Design

21© 2010 Bennett, McRobb and Farmer Qualities of Design Functional—system will perform the functions that it is required to Efficient—the system performs those functions efficiently in terms of time and resources Economical—running costs of system will not be unnecessarily high Reliable—not prone to hardware or software failure, will deliver the functionality when the users want it

22© 2010 Bennett, McRobb and Farmer Qualities of Design Secure—protected against errors, attacks and loss of valuable data Flexible—capable of being adapted to new uses, to run in different countries or to be moved to a different platform General—general-purpose and portable (mainly applies to utility programs) Buildable—Design is not too complex for the developers to be able to implement it

23© 2010 Bennett, McRobb and Farmer Qualities of Design Manageable—easy to estimate work involved and to check of progress Maintainable—design makes it possible for the maintenance programmer to understand the designer’s intention Usable—provides users with a satisfying experience (not a source of dissatisfaction) Reusable—elements of the system can be reused in other systems

24© 2010 Bennett, McRobb and Farmer Prioritizing Design Trade-offs Designer is often faced with design objectives that are mutually incompatible. It is helpful if guidelines are prepared for prioritizing design objectives. If design choice is unclear users should be consulted.

25© 2010 Bennett, McRobb and Farmer Trade-offs in Design Design to meet all these qualities may produce conflicts Trade-offs have to be applied to resolve these Functionality, reliability and security are likely to conflict with economy Level of reliability, for example, is constrained by the budget available for the development of the system

26© 2010 Bennett, McRobb and Farmer Trade-offs in Design Design objectives may conflict with constraints imposed by requirements The requirement that the system can be used in different countries by speakers of different languages will mean that designers have to agree a list of all prompts, labels and messages and refer to these by some system of naming or numbering This increases flexibility and maintainability but increases the cost of design

27© 2010 Bennett, McRobb and Farmer Measurable Objectives in Design In Chapter 6, non-functional requirements were described How can we tell whether these have been achieved? Measurable objectives set clear targets for designers Objectives should be quantified so that they can be tested

28© 2010 Bennett, McRobb and Farmer Measurable Objectives in Design To reduce invoice errors by one-third within a year How would you design for this?

29© 2010 Bennett, McRobb and Farmer Measurable Objectives in Design To reduce invoice errors by one-third within a year How would you design for this? –sense checks on quantities –comparing invoices with previous ones for the same customer –better feedback to the user about the items ordered

30© 2010 Bennett, McRobb and Farmer Measurable Objectives in Design To process 50% more orders at peak periods How would you design for this?

31© 2010 Bennett, McRobb and Farmer Measurable Objectives in Design To process 50% more orders at peak periods How would you design for this? –design for as many fields as possible to be filled with defaults –design for rapid response from database –design system to handle larger number of simultaneous users

32© 2010 Bennett, McRobb and Farmer Summary In this lecture you have learned about: The difference between analysis and design The difference between logical and physical design The difference between system and detailed design The characteristics of a good design The need to make trade-offs in design

33© 2010 Bennett, McRobb and Farmer References More detail about design is provided in Chapters 13 to 18 In particular, Chapter 14 covers Class Design (For full bibliographic details, see Bennett, McRobb and Farmer)

34© 2010 Bennett, McRobb and Farmer References Rumbaugh et al (1991) Yourdon (1994) Jacobson et al. (1995) Meyer (1997) Somerville (2007) Pressman (2009) (For full bibliographic details, see Bennett, McRobb and Farmer)