CS540 Software Design Lecture 2 1 Lecture 2: Software Design Methods Anita S. Malik Adapted from Budgen (2003) Chapter 3 and Schach.

Slides:



Advertisements
Similar presentations
Overview and History of Software Engineering
Advertisements

Prescriptive Process models
Ch 3: Unified Process CSCI 4320: Software Engineering.
Object-Oriented Software Development CS 3331 Fall 2009.
Software Process Models
Chapter 4 Design Approaches and Methods
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
Software Process Models
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
COMP 6710 Course NotesSlide 2-0 Auburn University Computer Science and Software Engineering Course Notes Set 2: Software Process Models Computer Science.
Lecture 13 Revision IMS Systems Analysis and Design.
Slide 1.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
Chapter 1 Principles of Programming and Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Software Life Cycle Model
Slide 1.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill,
Chapter 6 View Alignment Techniques and Method Customization (Part I) Object-Oriented Technology From Diagram to Code with Visual Paradigm for UML Curtis.
Slide 1.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill,
1 Introduction Chapter 1. 2 Key Ideas Many failed systems were abandoned because analysts tried to build wonderful systems without understanding the organization.
Chapter 2 The process Process, Methods, and Tools
Lecture # 04 & 05 CS314 Introduction To Software Development Software Development Process (SDP) Instructor :Muhammad Janas khan
1 BTEC HNC Systems Support Castle College 2007/8 Systems Analysis Lecture 9 Introduction to Design.
Slide 1.1 CHAPTER 1 INTRODUCTION TO SOFTWARE ENGINEERING.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
PROJECT MILESTONES Group Presentations: ~ 5 mins presentations.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
1 SYS366 Lecture 1: Introduction to Systems. 2 What is Software Development? Software Development implies developing some software – but it does not involve.
OHTO -99 SOFTWARE ENGINEERING LECTURE 5 Today: - An overview to OO Analysis and OO Design - Introduction of Assignment 2.
Prescriptive Process Models
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Lecture 14 & 15: Object- Oriented Analysis Anita S. Malik Adapted from Schach (2004) Chapter 12.
CS540 Software Design Lecture 5 1 Lecture 5: High Level Requirements Specification Anita S. Malik Adapted from Schach (2004) Chapter.
1 Introduction to Software Engineering Lecture 1.
Software Engineering MCS-2 Lecture # 6
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
1.1/46 Scope Of Software Engineering 1.2/46 Prologue… ‘Have you any idea what happened to our computers! Pay $0.00 bill, …, Pay the $0.00 bill within.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
CS251 – Software Engineering Lecture 9: Software Design Slides by Mohammad El-Ramly, PhD
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
Software Waterfall Life Cycle
Developed by Reneta Barneva, SUNY Fredonia The Process.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Dr. DEVENDRA TAYAL– THE SCOPE OF SOFTWARE ENGINEERING.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
1 - 1 Systems Analysis and Design, Key Ideas Many failed systems were abandoned because analysts tried to build wonderful systems without understanding.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
From the customer’s perspective the SRS is: How smart people are going to solve the problem that was stated in the System Spec. A “contract”, more or less.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill Stephen R. Schach 1.
2. Software Development Processes. Software Engineering Outline Historical aspects Economic aspects Maintenance aspects Requirements, analysis, and design.
CS223: Software Engineering Lecture 32: Software Maintenance.
CS646: Software Design and Architectures Introduction and Overview †  Definitions.  The general design process.  A context for design: the waterfall.
Announcements/Assignments
Lecture 3 Prescriptive Process Models
Software Process Models
HCI in the software process
Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach
Software Process Models
HCI in the software process
HCI in the software process
Logical Architecture & UML Package Diagrams
Presentation transcript:

CS540 Software Design Lecture 2 1 Lecture 2: Software Design Methods Anita S. Malik Adapted from Budgen (2003) Chapter 3 and Schach (2002) Chapter 1

CS540 Software Design 2Lecture 2 Recap – Lecture 1 Design (Verb): Process of Design Design (Verb): Process of Design Design (Noun): Result of the Design Process, a blue print for the system to be developed Design (Noun): Result of the Design Process, a blue print for the system to be developed Design Process in non-analytical Design Process in non-analytical Software Design Phase takes the ‘what’ part and produces the ‘how’ part; takes system from ‘problem’ domain to ‘solution’ domain Software Design Phase takes the ‘what’ part and produces the ‘how’ part; takes system from ‘problem’ domain to ‘solution’ domain Software Design is perhaps the most critical factor affecting the quality of the system; it has a major impact on later phases particularly maintenance Software Design is perhaps the most critical factor affecting the quality of the system; it has a major impact on later phases particularly maintenance

CS540 Software Design 3Lecture 2 Software Design Methods Design methods provide guidelines on the choices to be made during the design process Design methods provide guidelines on the choices to be made during the design process Structured Methods, Formal Methods and Object-Oriented Methods Structured Methods, Formal Methods and Object-Oriented Methods

CS540 Software Design 4Lecture 2 What Support do Design Methods Provide? Knowledge transfer mechanism Knowledge transfer mechanism Common standards, guidelines, techniques, criteria and goals to be used by the entire design team Common standards, guidelines, techniques, criteria and goals to be used by the entire design team Recording decisions and reasons in a systematic manner Recording decisions and reasons in a systematic manner Make sure all factors involved in a problem are considered (all design elements can be traced to some requirements) Make sure all factors involved in a problem are considered (all design elements can be traced to some requirements) Identify important progress milestones Identify important progress milestones

CS540 Software Design 5Lecture 2 Why Methods Don’t Work Miracles? Design methods provide guidance and advice Design methods provide guidance and advice By focusing on a particular domain of problems e.g., data-processing, real time systems, it is possible to provide tighter guidance. By focusing on a particular domain of problems e.g., data-processing, real time systems, it is possible to provide tighter guidance. Cooking recipe analogy – designing a software is like writing a cooking recipe Cooking recipe analogy – designing a software is like writing a cooking recipe Most methods are applied to different domains to optimize their use that results from familiarity with method Most methods are applied to different domains to optimize their use that results from familiarity with method

CS540 Software Design 6Lecture 2 Software Life-cycle 1.Requirements phase 2.Specification phase 3.Design phase 4.Implementation phase 5.Integration phase (in parallel with 4) 6.Maintenance phase 7.Retirement

CS540 Software Design 7Lecture 2 Software Development Process If institutionalized can constrain creativity rather than support it If institutionalized can constrain creativity rather than support it Many forms and variations of development process Many forms and variations of development process Presence of feedback loops between the various stages of software process Presence of feedback loops between the various stages of software process

CS540 Software Design 8Lecture 2 Linear Development Process Mainly based on the waterfall model Mainly based on the waterfall model Provides a strong management framework for planning, monitoring and controlling Provides a strong management framework for planning, monitoring and controlling Transform model and its limitations (Formal approaches) Transform model and its limitations (Formal approaches)

CS540 Software Design 9Lecture 2 Incremental Development Process (non linear process) Limitations of linear development process Limitations of linear development process Prototypes – constructed to explore an idea more completely before the actual construction starts Prototypes – constructed to explore an idea more completely before the actual construction starts Evolutionary Evolutionary Experimental Experimental Exploratory Exploratory Reactive development Reactive development

CS540 Software Design 10Lecture 2 Context for Design Ref: (Fig 3.1 Chapter 3 Budgen 2003) Regardless of how the software development tasks are organized, design is strongly linked to the tasks that precede it – Requirements Specification and Analysis Regardless of how the software development tasks are organized, design is strongly linked to the tasks that precede it – Requirements Specification and Analysis

CS540 Software Design 11Lecture 2 Approximate Relative Cost of Each Phase 1976–1981 data 1976–1981 data Maintenance constitutes 67% of total cost Maintenance constitutes 67% of total cost

CS540 Software Design 12Lecture 2 Good and Bad Software Good software is maintained—bad software is discarded Good software is maintained—bad software is discarded Different types of maintenance Different types of maintenance Corrective maintenance [about 20%] Corrective maintenance [about 20%] Enhancement Enhancement Perfective maintenance [about 60%] Perfective maintenance [about 60%] Adaptive maintenance [about 20%] Adaptive maintenance [about 20%]

CS540 Software Design 13Lecture 2 Specification and Maintenance Faults 60 to 70 percent of faults are specification and design faults 60 to 70 percent of faults are specification and design faults Data of Kelly, Sherif, and Hops [1992] Data of Kelly, Sherif, and Hops [1992] 1.9 faults per page of specification 1.9 faults per page of specification 0.9 faults per page of design 0.9 faults per page of design 0.3 faults per page of code 0.3 faults per page of code

CS540 Software Design 14Lecture 2 Specification and Maintenance Faults (contd) Data of Bhandari et al. [1994] - Faults at end of the design phase of the new version of the product Data of Bhandari et al. [1994] - Faults at end of the design phase of the new version of the product 13% of faults from previous version of product 13% of faults from previous version of product 16% of faults in new specifications 16% of faults in new specifications 71% of faults in new design 71% of faults in new design

CS540 Software Design 15Lecture 2 Cost to Detect and Correct a Fault

CS540 Software Design 16Lecture 2 Structured Paradigm The structured paradigm had great successes initially The structured paradigm had great successes initially It started to fail with larger products (> 50,000 LOC) It started to fail with larger products (> 50,000 LOC) Maintenance problems (today, up to 80% of effort) Maintenance problems (today, up to 80% of effort) Reason: structured methods are Reason: structured methods are Action oriented (finite state machines, data flow diagrams); or Action oriented (finite state machines, data flow diagrams); or Data oriented (entity-relationship diagrams, Jackson’s method); Data oriented (entity-relationship diagrams, Jackson’s method); But not both But not both

CS540 Software Design 17Lecture 2 The Object-Oriented Paradigm (contd) Both data and actions are of equal importance Both data and actions are of equal importance Object: Object: Software component that incorporates both data and the actions that are performed on that data Software component that incorporates both data and the actions that are performed on that data Example: Example: Bank account Bank account Data: account balance Data: account balance Actions: deposit, withdraw, determine balance Actions: deposit, withdraw, determine balance

CS540 Software Design 18Lecture 2 Structured versus Object-Oriented Paradigm Information hiding Information hiding Responsibility-driven design Responsibility-driven design Impact on maintenance, development Impact on maintenance, development

CS540 Software Design 19Lecture 2 Key Aspects of Object-Oriented Solution Conceptual independence Conceptual independence Encapsulation Encapsulation Physical independence Physical independence Information hiding Information hiding Impact on development Impact on development Physical counterpart Physical counterpart Impact on maintenance Impact on maintenance Independence effects Independence effects

CS540 Software Design 20Lecture 2 Responsibility-Driven Design Also called “Design by Contract” Also called “Design by Contract” Send flowers to your aunt in Iowa City Send flowers to your aunt in Iowa City Call FLOWERS Call FLOWERS Where is FLOWERS? Where is FLOWERS? Which Iowa City florist does the delivery? Which Iowa City florist does the delivery? Information hiding Information hiding Object-oriented paradigm Object-oriented paradigm “Send a message to a method [action] of an object“ “Send a message to a method [action] of an object“

CS540 Software Design 21Lecture 2 Transition From Analysis to Design Structured paradigm: Structured paradigm: Sharp transition between analysis (what) and design (how) Sharp transition between analysis (what) and design (how) Object-oriented paradigm: Object-oriented paradigm: Objects enter from very beginning Objects enter from very beginning

CS540 Software Design 22Lecture 2 Analysis/Design “Hump” Systems analysis Systems analysis Determine what has to be done Determine what has to be done Design Design Determine how to do it Determine how to do it Architectural design—determine modules Architectural design—determine modules Detailed design—design each module Detailed design—design each module

CS540 Software Design 23Lecture 2 Removing the “Hump” Object-oriented analysis Object-oriented analysis Determine what has to be done Determine what has to be done Determine the objects Determine the objects Object-oriented design Object-oriented design Determine how to do it Determine how to do it Design the objects Design the objects

CS540 Software Design 24Lecture 2 In More Detail Objects enter here Objects enter here

CS540 Software Design 25Lecture 2 Warning Do not use the object-paradigm to enhance a product developed using the structured paradigm Do not use the object-paradigm to enhance a product developed using the structured paradigm Water and oil do not mix Water and oil do not mix Exception: if the new part is totally disjoint Exception: if the new part is totally disjoint Example: adding a GUI (graphical user interface) Example: adding a GUI (graphical user interface)