© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.

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.
Lecture # 2 : Process Models
Ch 3 System Development Environment
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
© 2005 Prentice Hall6-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Mastering Object-Oriented Analysis and Design with UML Module 4: Analysis and Design Overview.
Introduction To System Analysis and Design
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Chapter 1 Principles of Programming and Software Engineering.
© Copyright Eliyahu Brutman Programming Techniques Course.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Chapter.
SE 555 – Software Requirements & Specifications Introduction
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
System Engineering Instructor: Dr. Jerry Gao. System Engineering Jerry Gao, Ph.D. Jan System Engineering Hierarchy - System Modeling - Information.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Introduction to Systems Analysis and Design
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Structured Vs. Object Oriented Analysis and Design SAD Vs. OOAD
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Chapter 1 The Systems.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's.
Introduction To System Analysis and design
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Context of Software Product Design.
CPTE 209 Software Engineering Summary and Review.
Nature of Software Design
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Design.
An Introduction to Software Architecture
Chapter 1: Introduction to Systems Analysis and Design
Eng. Mohammed Timraz Electronics & Communication Engineer University of Palestine Faculty of Engineering and Urban planning Software Engineering Department.
Introduction to Software Design Chapter 1. Chapter Objectives  To become familiar with the software challenge and the software life cycle  To understand.
Introduction To System Analysis and Design
OBJECT ORIENTED SYSTEM ANALYSIS AND DESIGN. COURSE OUTLINE The world of the Information Systems Analyst Approaches to System Development The Analyst as.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
SOFTWARE DESIGN.
Chapter 9 Moving to Design
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
1 Introduction to Software Engineering Lecture 1.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
Systems Analysis and Design in a Changing World, Fourth Edition
Modeling as a Design Technique Chapter 2 Part 1: Modeling Concepts Object-Oriented Modeling and Design Byung-Hyun Ha
Software Design Process
© 2005 Prentice Hall1-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
© 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.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
 CMMI  REQUIREMENT DEVELOPMENT  SPECIFIC AND GENERIC GOALS  SG1: Develop CUSTOMER Requirement  SG2: Develop Product Requirement  SG3: Analyze.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Modern Systems Analysis and Design Third Edition Chapter 2 Succeeding as a Systems Analyst 2.1.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
Chapter 2 Principles of Programming and Software Engineering.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 4: Analysis and Design Overview.
Software Design Requirements Design Code-Implementation Test Case Design Builds Testing Rel. Maintenance Reqs. may be from customer or “home invented”
1 7 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 7 The Object-Oriented Approach to Requirements.
Systems Architectures System Integration & Architecture.
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
An Introduction to Software Architecture
Baisc Of Software Testing
Presentation transcript:

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2 Objectives  To explain what design is and how various types of design deal with different aspects of a product  To present design as problem solving and outline the roles of abstraction and modeling in design  To place design in the software life cycle  To survey software engineering design methods

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 3 Topics  Software products and software design  Abstraction and modeling  Varieties of design  Software design in the life cycle  Software engineering design methods

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 4 Importance of Software Design  We live in a designed world.  Design is economically important and effects our quality of life.  Software is becoming ubiquitous.  The quality of software design has important consequences that software designers should be aware of and take seriously.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 5 Software Products A software product is an entity comprised of one or more programs, data, and supporting materials and services that satisfies client needs and desires either as an independent artifact or as essential ingredient in some other artifact.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 6 Software Design Defined Software designers do what designers in other disciplines do, except they do it for software products. Software design is the activity of specifying the mature and composition of software products that satisfy client needs and desire, subject to constraints.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7 Design as Problem Solving  An especially fruitful way to think about design is as problem solving.  Advantages Suggests partitioning information between problem and solution Emphasizes that there may be more than one good solution (design) Suggests techniques such as changing the problem, trial and error, brainstorming, etc.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8 Abstraction Abstraction is an important problem-solving technique, especially in software design. Abstraction is suppressing or ignoring some properties of objects, events, or situations in favor of others.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 Importance of Abstraction  Problem simplification Abstracting allows us to focus on the most important aspects of a problem in (partially) solving it.  Structuring problem solving Top-down strategy : Solve an abstract version of the problem, then add details ( refinement ) Bottom-up strategy : Solve parts of a problem and connect them for a complete solution

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 10 Modeling A model represents a target by having model parts corresponding to target parts, with relationships between model parts corresponding to relationships between target parts.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 11 Modeling in Design  Modeling is used for the following purposes: Problem understanding Design creation Design investigation Documentation  Modeling work because models abstract details of the target.  Models can fail if important and relevant details are left out.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 12 Static and Dynamic Models  Static model examples include class and object models.  Dynamic model examples include state diagrams and sequence diagrams. A static model represents aspects of programs that do not change during program execution. A dynamic model represents what happens during program execution. A static model represents aspects of programs that do not change during program execution. A dynamic model represents what happens during program execution.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 13 Product vs. Engineering Design  Product designers are concerned with styling and aesthetics, function and usability, manufacturability and manageability. Industrial designers, (building) architects, interior designers, graphic designers, etc.  Engineering designers are concerned with technical mechanisms and workings. Structural, mechanical, chemical, and electrical engineers  Design teams often include both product and engineering designers.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 14 Software Product Design Requires skills in user interface and interaction design, communications, industrial design, and marketing Software product design is the activity of specifying software product features, capabilities, and interfaces to satisfy client needs and desires.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 15 Software Engineering Design Requires skills in programming, algorithms, data structures, software design principles, practices, processes, techniques, architectures, and patterns Software engineering design is the activity of specifying programs and sub-systems, and their constituent parts and workings, to meet software product specifications.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 16 Waterfall Life Cycle Model The waterfall model captures the logical, but not the temporal, relationships between software development activities.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 17 Design Across the Life Cycle

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 18 “What” Versus “How”  Traditional way to make the distinction between requirements and design activities  Not adequate because Many “what” specifications turn out to be design decisions Many “how” specifications turn out to be client or customer needs or desires  Distinguish requirements from design based on problem solving: requirements activity formulates a problem solved in design

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 19 Design Problems and Solutions

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 20 Software Design Method A software design method is an orderly procedure for generating a precise and complete software design solution that meets clients needs and constraints.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 21 Design Method Components  Design Process—A collection of related tasks that transforms a set of inputs into a set of outputs  Design Notations—A symbolic representational system  Design Heuristics—Rules providing guidance, but no guarantee, for achieving some end  Design methods also use design principles stating characteristics of design that make them better or worse.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 22 Design Method Timeline 1971Niklaus Wirth introduces stepwise refinement. 1974Stevens, Myers, Constantine introduce structured design. Late 1970s to early 1980s Structured analysis and design methods are dominant. Late 1980s Object-oriented analysis and design methods rise to prominence. 1995UML 0.8 is released. 2004UML 2.0 is released.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 23 Summary  Software design is important.  Software design is best thought of as problem solving.  Abstraction is a fundamental design technique.  Modeling (which relies on abstraction) is a basic design tool.  Software design comprises both product and engineering design.  Product design occurs mainly in the requirements specification phase; engineering design mainly in the design and implementation phases.  OO analysis and design methods are now dominant.