Design Concepts ch-8

Slides:



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

Design Concepts and Principles
Design Phase What’s design?
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.1.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter 9 Design Engineering
Lecture 8: Chapter 8 Design Concepts
Chapter 9 Design Engineering
Design Concepts "You can use an eraser on the drafting table or a sledge hammer on the construction site." Frank Lloyd Wright.
Chapter 9 Design Engineering
Ch:10 Component Level Design Unit 4. What is Component? A component is a modular building block for computer software Because components reside within.
SOFTWARE DESIGN.
SOFTWARE DESIGN Design Concepts Design is a meaningful engineering representation of something that is to be built It can be traced to a customer’s requirements.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Drexel University CS 451 Software Engineering Winter Yuanfang Cai Room 104, University Crossings
Chapter : Design Engineering. Design Engineering It covers the set of principles, concepts, and practices that lead to the development of a high quality.
Systems Analysis and Design in a Changing World, 3rd Edition
Design Concepts and Principles Instructor: Dr. Jerry Gao.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.
Chapter 13 Design Concepts and Principles Software Engineering: A Practitioner's Approach, 5/e.
1 Chapter 9 Design Engineering. 2 Analysis Model -> Design Model.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
ARCHITECTURAL DESIGN. Why is Architecture Important? Representations of software architecture are an enabler for communication between all parties (stakeholders)
Software Design: Principles, Process, and Concepts Getting Started with Design.
Chapter 1: Design Concepts Prepared by Mohd Kamir Yusof 1.
Software Design Process
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 11a: Component-Level Design Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Dr D. Greer, Queens University Belfast )Chapter Six 1 Software Engineering Chapter Six Software Design Quality Learning Outcomes.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
Software Engineering B.Tech IT/II Sem-II Term: Unit-4 PPT SLIDES Text Books:1.Software Engineering, A practitioner’s approach Roger s. Pressman.
CHAPTER 3 MODELING COMPONENT-LEVEL DESIGN.
Component Design Elaborating the Design Model. Component Design Translation of the architectural design into a detailed (class-based or module- based)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter : 8 Design Concepts
Basic Characteristics of Object-Oriented Systems
DESIGN PROCESS AND CONCEPTS. Design process s/w design is an iterative process through which requirements are translated into a “blueprint” for constructing.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter 9 Design Engineering
CompSci 280 S Introduction to Software Development
Chapter 12 Design Concepts
Design engineering Prepared By:Jay A.Dave..
Design and Implementation
Software Engineering: A Practitioner’s Approach, 6/e Chapter 9 Design Engineering copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For.
Lecture 9- Design Concepts and Principles
For University Use Only
Software Engineering: A Practitioner’s Approach, 6/e Chapter 11 Component-Level Design copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Quality Engineering
Design Concepts.
Chapter 13 Logical Architecture.
CIS 375 Bruce R. Maxim UM-Dearborn
Component-Level Design
SOFTWARE ENGINEERING Design Concepts Dr. S. Prem Kumar
Chapter 8 Design Concepts
Chapter 9 Design Engineering
Object-Oriented Design
Chapter 8 Design Concepts
Lecture 9- Design Concepts and Principles
Starting Design: Logical Architecture and UML Package Diagrams
Chapter 9 Design Engineering
Chapter 13 Logical Architecture.
An Introduction to Software Architecture
Design Engineering.
Chapter 8 Design Concepts
Chapter 8 Design Concepts.
Chapter 8 Design Concepts
Chapter 8 Design Concepts
Logical Architecture & UML Package Diagrams
Chapter 10 – Component-Level Design
Presentation transcript:

TOPICS TO BE COVERED :  Abstraction  Architecture  Aspects  Cohesion  Data Design  Design Process  Functional independence  Good design  Information Hiding  Modularity  Object Oriented Design  Pattern  Quality Attributes  Quality Guidelines  Refactoring  Separation of concern  Software design  Stepwise Refinements

DESIGN CONCEPTS? DESIGN CONCEPTS? “Idea behind design” “Idea behind design”

SOME QUICK QUESTIONS: Design? Design? What is it? What is it? Who does it? Who does it? Why is it important? Why is it important? What is design in software engineering? What is design in software engineering?

Quick answers ! “A PLAN OR DRAWING”. “A PLAN OR DRAWING”. According to Dr. Mitch Kapur in DOBBS Journal “It’s where you stand with a foot in two worlds—the world of technology and the world of people and human purposes—and you try to bring the two together”. Design is the place where software quality is established. According to Dr. Mitch Kapur in DOBBS Journal “It’s where you stand with a foot in two worlds—the world of technology and the world of people and human purposes—and you try to bring the two together”. Design is the place where software quality is established. Software engineers. Software engineers. Design allows you to model the system or product that is to be built. Design allows you to model the system or product that is to be built. Software design is the process of implementing software solutions to one or more sets of problems Software design is the process of implementing software solutions to one or more sets of problems

TRANSLATING THE ANALYSIS MODEL INTO THE DESIGN MODEL TRANSLATING THE ANALYSIS MODEL INTO THE DESIGN MODEL

DESIGN PROCESS: Software design is an iterative process through which requirements are translated into a “blueprint” for constructing the software Software design is an iterative process through which requirements are translated into a “blueprint” for constructing the software During the design process the software requirements model is transformed into design models that describe the details of the data structures, system architecture, interface, and components During the design process the software requirements model is transformed into design models that describe the details of the data structures, system architecture, interface, and components

QUALITY ATTRIBUTES OF A GOOD DESIGN : QUALITY ATTRIBUTES OF A GOOD DESIGN: Good software design should exhibit: Firmness: A program should not have any bugs that inhibit its function. Firmness: A program should not have any bugs that inhibit its function. Commodity: A program should be suitable for the purposes for which it was intended Commodity: A program should be suitable for the purposes for which it was intended Delight: The experience of using the program should be pleasurable one Delight: The experience of using the program should be pleasurable one

QUALITY GUIDELINES A design should be modular; that is, the software should be logically partitioned into elements or subsystems. A design should be modular; that is, the software should be logically partitioned into elements or subsystems. A design should contain distinct representations of data, architecture, interfaces, and components A design should contain distinct representations of data, architecture, interfaces, and components A design should lead to data structures that are appropriate for the classes to be implemented and are drawn from recognizable data patterns. A design should lead to data structures that are appropriate for the classes to be implemented and are drawn from recognizable data patterns. A design should lead to components that exhibit independent functional characteristics. A design should lead to components that exhibit independent functional characteristics. A design should lead to interfaces that reduce the complexity of connections between components and with the external environment. A design should lead to interfaces that reduce the complexity of connections between components and with the external environment. A design should be derived using a repeatable method that is driven by information obtained during software requirements analysis. A design should be derived using a repeatable method that is driven by information obtained during software requirements analysis. A design should be represented using a notation that effectively communicates its meaning. A design should be represented using a notation that effectively communicates its meaning.

FUNDAMENTAL DESIGN CONCEPTS: FUNDAMENTAL DESIGN CONCEPTS:  Abstraction  Architecture  Patterns  Separation of concerns  Modularity  Information hiding  Functional independence  Refinement  Aspects Refactoring Refactoring  Object-oriented Design concepts  Design classes

Permits one to concentrate on a problem at some level of abstraction without regard to low level detail Abstraction :

Architecture : Overall structure of the system

Patterns : General reusable solution which can be used again and again.

Separation of concerns: Any complex problem can be more easily handled if it is sub-divided into pieces.

Modularity : Single attribute of software that allows a program to be intellectually manageable.

MODULARITY AND SOFTWARE COST

Information Hiding: The way of hiding the unnecessary details

Functional Independence: Achieved by developing modules with “single minded” function and low coupling. It can be measured using two criteria: -Cohesion -Coupling

A process of elaboration of details of abstraction. A process of elaboration of details of abstraction. Stepwise refinement is a top-down design strategy. Stepwise refinement is a top-down design strategy. Abstraction and refinement are complementary concepts. Abstraction and refinement are complementary concepts. Refinement:

An aspect is a representation of a cross-cutting concern. An aspect is a representation of a cross-cutting concern. Consider two requirements, A and B. Requirement A crosscuts requirement B “if a software refinement has been chosen in which B cannot be satisfied without taking A into account. Consider two requirements, A and B. Requirement A crosscuts requirement B “if a software refinement has been chosen in which B cannot be satisfied without taking A into account. Aspects:

restructuring (rearranging) code… restructuring (rearranging) code… “changing the structure of a program so that the functionality is not changed” “changing the structure of a program so that the functionality is not changed” Refactoring:

“ Design system using self-contained objects and object classes” Objects are abstractions of real world or system entities and manage themselves Objects are abstractions of real world or system entities and manage themselves Objects are independent and encapsulate state and represent information Objects are independent and encapsulate state and represent information System functionality is expressed in terms of object services System functionality is expressed in terms of object services Shared data are eliminated. Objects communicate by message passing Shared data are eliminated. Objects communicate by message passing Object Oriented Design Concepts:

The requirements model defines a set of analysis classes The requirements model defines a set of analysis classes Set of design classes that refine the analysis classes by providing design detail that will enable the classes to be implemented, and implement a software infrastructure that supports the business solution. Set of design classes that refine the analysis classes by providing design detail that will enable the classes to be implemented, and implement a software infrastructure that supports the business solution. Characteristics of Design Classes Characteristics of Design Classes Design Classes:

DESIGN CLASS FOR FLOORPLAN AND COMPOSITE AGGREGATION FOR THE CLASS

DIMENSIONS OF THE DESIGN MODEL

DESIGN MODEL ELEMENTS: Data Design Elements Data Design Elements Architectural Design Elements Architectural Design Elements Interface Design Elements Interface Design Elements Component-Level Design Elements Component-Level Design Elements Deployment-Level Design Elements Deployment-Level Design Elements

Data-model  Data structures Data-model  Data structures Data-model  Database architecture Data-model  Database architecture 1.Data Design Elements

The architectural model [sha96] is derived from three sources: Information about the application domain for the software to be built Information about the application domain for the software to be built Specific requirements model elements such as data flow diagrams of analysis classes, their relationship and collaborations for the problems at hand Specific requirements model elements such as data flow diagrams of analysis classes, their relationship and collaborations for the problems at hand The availability of architectural patterns and styles The availability of architectural patterns and styles 2.Architectural Design Elements

There are three important elements of interface design: User interface (UI) User interface (UI) External interfaces to other systems, devices, networks, or other producers or consumers of information External interfaces to other systems, devices, networks, or other producers or consumers of information Internal interfaces between various design components Internal interfaces between various design components 3. Interface Design Elements

INTERFACE REPRESENTATION FOR CONTROL PANEL

The component-level design for software fully describes the internal detail of each software component The component-level design for software fully describes the internal detail of each software component The component-level design defines data structures for all local data objects and algorithmic detail for all processing that occurs within a component and an interface that allows access to all component operations The component-level design defines data structures for all local data objects and algorithmic detail for all processing that occurs within a component and an interface that allows access to all component operations 4.Component-level Design Elements

5.DEPLOYMENT-LEVEL DESIGN ELEMENTS Deployment-level design elements indicate how software functionality and subsystems will be allocated within the physical computing environment that will support the software Deployment-level design elements indicate how software functionality and subsystems will be allocated within the physical computing environment that will support the software

A UML COMPONENT DIAGRAM

A UML deployment diagram

Nahi Nahi… Nahi Nahi… Any Question ?