THE DESIGN WORKFLOW  Object-oriented design  The design workflow  The test workflow: Design  CASE tools for design  Challenges of the design workflow.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Ch 3: Unified Process CSCI 4320: Software Engineering.
Object-Oriented Software Development CS 3331 Fall 2009.
CS3500 Software Engineering Legacy Systems (1) Legacy systems are software (and sometimes hardware) systems that have been developed sometime in the past.
Software Process Models
Design CS 524 – Software Engineering I Fall I 2007 – Sheldon X. Liang, PH.D. Jeff Nogy.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 9 Slide 1 Appendix 3 Object-Oriented Analysis and Design.
Design. Overview Design and abstraction Action-oriented design Data flow analysis Transaction analysis Data-oriented design Object-oriented design Challenges.
Software Testing and Quality Assurance
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
Component-Level Design
Moving from Analysis to Design. Overview ● What is the difference between analysis and design? ● Logical v. physical design ● System v. detailed design.
Design Xiaojun Qi.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Slide 9.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Slide 8A.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
SwE 313 Introduction to Rational Unified Process (RUP)
Slide 6A.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
Slide 14.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition,
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
*Object-Oriented Design (Schach Chap 14)
Objects What are Objects Observations
Implementation & Integration Phase Implementation, then integration: Implementation, then integration:  Each module is implemented by member of programmer.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
Object Oriented Analysis and Design Introduction.
Slide 12.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen.
Software Engineering Chapter 8 Fall Analysis Extension of use cases, use cases are converted into a more formal description of the system.Extension.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
DESIGN.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Software Engineering SI334 Lessons 24, 26 – 28 & 30: Classical & Object-Oriented Design October 6, 8, 10, 15, 2014.
Slide 10.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition,
I Power Higher Computing Software Development The Software Development Process.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Slide 13B.22 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
ANALYSIS - II REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Slide 20.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
Software Engineering COSC 4460 Class 4 Cherry Owen.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Slide 13.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach.
Slide 13.1 © The McGraw-Hill Companies, 2007 Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach.
THE ANALYSIS WORKFLOW  The specification document  Informal specifications  The analysis workflow  Extracting the entity classes  Functional modeling:
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
ANU COMP2110 Software Design in 2003 Lecture 10Slide 1 COMP2110 Software Design in 2004 Lecture 12 Documenting Detailed Design How to write down detailed.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Slide 12F.135 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
Design CS 470 – Software Engineering I Sheldon X. Liang, PH.D.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Software Design and Development Development Methodoligies Computing Science.
1 of 53 THE OBJECT-ORIENTED DESIGN WORKFLOW. 2 of 53 Overview The Design Workflow Traditional versus Object-Oriented Design Formats of the Attributes.
Slide 10.1 CHAPTER 10 OVERVIEW OF THE PREVIOUS CHAPTERS.
Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R
CHAPTER 14 DESIGN.
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Design Yaodong Bi.
From Use Cases to Implementation
Presentation transcript:

THE DESIGN WORKFLOW

 Object-oriented design  The design workflow  The test workflow: Design  CASE tools for design  Challenges of the design workflow

 Operation-oriented design ◦ The emphasis is on the operations ◦ Weakness: The data are of secondary importance  Data-oriented design ◦ The emphasis is on the data ◦ Weakness: The operations are of secondary importance  Object-oriented design ◦ Gives equal weight to data and operations

 Aim ◦ Design the product in terms of the classes extracted during the analysis workflow  If we are using a language without inheritance (e.g., C, Ada 83) ◦ Use abstract data type design  If we are using a language without a type statement (e.g., FORTRAN, COBOL) ◦ Use data encapsulation

 OOD consists of two steps:  Step 1.Complete the class diagram ◦ Determine the formats of the attributes ◦ Assign each method, either to a class or to a client that sends a message to an object of that class  Step 2.Perform the detailed design ◦ Determine algorithms ◦ Determine data structures

 Step 1. Complete the class diagram  The final class diagram is shown in the next slide ◦ Date Class is needed for C++ ◦ Java has built-it functions for handling dates

Figure 12.6

 Example: setAssetNumber, getAssetNumber ◦ From the inheritance tree, these accessor/mutator methods should be assigned to Asset Class ◦ So that they can be inherited by both subclasses of Asset Class (Investment Class and Mortgage Class) Figure 12.8

 Assigning the other methods is equally straightforward ◦ See Appendix F

 Step 2. Perform the detailed design  Determine what each method does  Represent the detailed design in an appropriate format ◦ Tabular format for method find of class Mortgage ◦ PDL (pseudocode) for method computeEstimatedFunds of class EstimatedFundsForWeek

Figure 12.1

 We can also write a detailed design in a program description language (PDL) ◦ Formerly called pseudocode  Next slide: Java-like PDL description of detailed design of ◦ Method computeEstimatedFunds of class EstimatedFundsForWeek

 Summary of the design workflow: ◦ The analysis workflow artifacts are iterated and incremented until the programmers can utilize them  Decisions to be made include: ◦ Implementation language ◦ Reuse ◦ Portability

 The idea of decomposing a large workflow into independent smaller workflows (packages) is carried forward to the design workflow  The objective is to break up the upcoming implementation workflow into manageable pieces ◦ Subsystems  It does not make sense to break up the MSG Foundation case study into subsystems — it is too small

 Why the product is broken into subsystems: ◦ It is easier to implement a number of smaller subsystems than one large system ◦ If the subsystems are independent, they can be implemented by programming teams working in parallel  The software product as a whole can then be delivered sooner

 The architecture of a software product includes ◦ The various components ◦ How they fit together ◦ The allocation of components to subsystems  The task of designing the architecture is specialized ◦ It is performed by a software architect

 The architect needs to make trade-offs ◦ Every software product must satisfy its functional requirements (the use cases) ◦ It also must satisfy its nonfunctional requirements, including  Portability, reliability, robustness, maintainability, and security ◦ It must do all these things within budget and time constraints  The architect must assist the client by laying out the trade-offs

 It is usually impossible to satisfy all the requirements, functional and nonfunctional, within the cost and time constraints ◦ Some sort of compromises have to be made  The client has to ◦ Relax some of the requirements; ◦ Increase the budget; and/or ◦ Move the delivery deadline

 The architecture of a software product is critical ◦ The requirements workflow can be fixed during analysis workflow ◦ The analysis workflow can be fixed during design workflow ◦ The design workflow can be fixed during implementation workflow  But there is no way to recover from a suboptimal architecture ◦ The architecture must immediately be redesigned

 Design reviews must be performed ◦ The design must correctly reflect the specifications ◦ The design itself must be correct  Even if no faults are found, the design may be changed during the implementation workflow

 It is critical to check that the design artifacts incorporate all aspects of the analysis ◦ To handle analysis and design artifacts we therefore need upperCASE tools  UpperCASE tools ◦ Are built around a data dictionary ◦ They incorporate a consistency checker, and ◦ Screen and report generators ◦ Management tools are sometimes included, for  Estimating  Planning

 Examples of tools for the design workflow ◦ Commercial tools  Software through Pictures  IBM Rational Rose  Together ◦ Open-source tool  ArgoUML

 The design team should not do too much ◦ The detailed design should not become code  The design team should not do too little ◦ It is essential for the design team to produce a complete detailed design

 We need to “grow” great designers  Potential great designers must be ◦ Identified, ◦ Provided with a formal education, ◦ Apprenticed to great designers, and ◦ Allowed to interact with other designers  There must be a specific career path for these designers, with appropriate rewards