 2004 by SEC Chapter 4 Software Design. 2  2004 by SEC Chapter 4 Software Design 4.1 Design Fundamentals 4.2 Design Method 4.3 Architecture Design 4.3.1.

Slides:



Advertisements
Similar presentations
Software Design Fundamentals
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Lecture 10 Software Design: Architecture, Interface, Procedural
Chapter 10: The Traditional Approach to Design
Systems Analysis and Design in a Changing World, Fifth Edition
Design Concepts and Principles
1 Software Design Introduction  The chapter will address the following questions:  How do you factor a program into manageable program modules that can.
Chapter 13 Design Concepts and Principles
Design Phase What’s design?
Design Concepts And Principles Software Design -- An iterative process transforming requirements into a “blueprint” for constructing the software.
Traditional Approach to Design
Chapter 10 The Traditional Approach to Design
Chapter 9: The Traditional Approach to Design Chapter 10 Systems Analysis and Design in a Changing World, 3 rd Edition.
CS /32 Illinois Institute of Technology CS487 Software Engineering Component Level Design & Design Documentation Instructor: David A. Lash.
Software Design Deriving a solution which satisfies software requirements.
© Copyright 2011 John Wiley & Sons, Inc.
Component-Level Design
Chapter 14: Design Method --- data and architectural design Design -- A multistep process in which representations of data structure, program structure,
Software Architecture Design Instructor: Dr. Jerry Gao.
Jump to first page 1 System Design (Finalizing Design Specifications) Chapter 3d.
Chapter 10: Architectural Design
Architectural Design.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system design 1 what is systems design? preparation of the system’s specifications with.
Ch:10 Component Level Design Unit 4. What is Component? A component is a modular building block for computer software Because components reside within.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
SOFTWARE DESIGN.
1 Software Design Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13, 5 th edition and Ch. 10, 6 th edition.
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.
10 ITK261 The traditional approach to design Reading: Chapter 10 Oct 9, 11.
Sommerville, Mejia-Alvarez, 2009Software Engineering, Slide 1 Software Design u Deriving a solution which satisfies software 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.
Software Design Deriving a solution which satisfies software requirements.
1 Software Design Overview Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13.
Chapter : Design Engineering. Design Engineering It covers the set of principles, concepts, and practices that lead to the development of a high quality.
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.
SIM3302 SOFTWARE DESIGN & TESTING
Design Concepts By Deepika Chaudhary.
CCSB223/SAD/CHAPTER131 Chapter 13 Designing the System Internals.
1 CMPT 275 High Level Design Phase Modularization.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Software Design: Principles, Process, and Concepts Getting Started with Design.
Developed by Reneta Barneva, SUNY Fredonia Software Design and Software Engineering.
Design Methods Instructor: Dr. Jerry Gao. Software Design Methods Design --> as a multistep process in which we design: a) data structureb) program structure.
Architectural Design Introduction Design has been described as a multistep process in which representations of data and program structure,
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter : 9 Architectural Design
Chapter : 8 Design Concepts
Architectural Complexity  A useful technique for assessing the overall complexity of a proposed architecture is to consider dependencies between components.
DESIGN PROCESS AND CONCEPTS. Design process s/w design is an iterative process through which requirements are translated into a “blueprint” for constructing.
SOFTWARE DESIGN & SOFTWARE ENGINEERING Software design is a process in which data, program structure, interface and their details are represented by well.
Chapter 9 Architectural Design. Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software.
Systems Analysis and Design in a Changing World, Fourth Edition
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Design Concepts ch-8
7. Modular and structured design
Coupling and Cohesion Rajni Bhalla.
Software Design Principles
Design engineering Prepared By:Jay A.Dave..
Lecture 9- Design Concepts and Principles
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
CIS 375 Bruce R. Maxim UM-Dearborn
Component-Level Design
Component-Level Design
Lecture 9- Design Concepts and Principles
Chapter 9 Architectural Design.
Presentation transcript:

 2004 by SEC Chapter 4 Software Design

2  2004 by SEC Chapter 4 Software Design 4.1 Design Fundamentals 4.2 Design Method 4.3 Architecture Design Architecture Patterns 4.4 Data Design 4.5 Interface Design 4.6 Procedural Design

 2004 by SEC 4.1 Design Fundamentals

4  2004 by SEC Design Fundamentals l Design Step Procedures l Software Design vs. Requirement Analysis –Software design: requirements  a representation of software –requirement analysis: create a model to represent the requirements functional requirement information model functional model behavioral model data designdata structure architecture design procedure design relationship between structure components depict structure component ie. a procedural description of software nonfunctional requirement design constrain performance Cost … { {

5  2004 by SEC Design Fundamentals (cont’d) l Common Characteristics –A mechanism for the translation of information domain representation into design representation –A notation for representing functional components and their interfaces –Heuristics for refinement and partitioning l Design Quality –Design is the place where quality is fostered in software engineering. –Design provides us with representations of software that can be assessed for quality.

6  2004 by SEC Design Fundamentals (cont’d) l Fundamental Concepts –Abstraction l l procedural abstraction –a named sequence of instruction that has a specific function l data abstraction –a named collection of data that describes a data object –can refer to all the data by stating the name of the data abstraction –original abstraction data type is used as a template or generic data structure from which the data structure can be instructed. Level of abstraction Highest level. Low level. Lowest level Language used Problem-oriented terminology. Procedural-oriented terminology. Implementation-oriented terminology

7  2004 by SEC Design Fundamentals (cont’d) –Refinement l A top-down design strategy l A hierarchy is developed by decomposing a statement of function ( a procedural abstraction) in a stepwise fashion until programming statements are reached. –Every refinement step implies some design decisions l A process of elaboration –begins with a statement of function (or description of data) without the internal working of the function (or internal structure of the data). –provides more and more details as each successive refinement occurs.

8  2004 by SEC Design Fundamentals (cont’d) l Abstraction and refinement are complementary concepts. l Abstraction enables a designer to specify procedure and data, and even suppress low-level details. l Refinement on the other hand helps the designer revel low-level details as design progresses. l Both concepts aid the designer in creating a complete design model as the design evolves.

9  2004 by SEC Design Fundamentals (cont’d) –Modularity l Modules: software is divided into separately named and addressable components, sometimes called modules. l Modules vs. Interfaces between modules –Avoid overmodularity & undermodularity; notice the relationship between modules (the number of interfaces will increase exponentially with the number of modules.) –trade-offs

10  2004 by SEC Design Fundamentals (cont’d) optimal number of modules of modules cost of cost of software software number of modules moduleintegrationcost module development cost What is the right number of modules for a software design?

11  2004 by SEC Design Fundamentals (cont’d) –Software architecture l It is the structure of program components, the manner in which these components interacts, and the structure of data used by the components. l It relates elements of a software solution to parts of a real-world problem.

12  2004 by SEC Design Fundamentals (cont’d) –Control hierarchy (program structure) l The organization of program components & implies a hierarchy of control –Does not represent procedural aspects of software (iteration, condition, sequence) l Depth / width / fan-in / fan-out / superordinate / subordinate l Two characteristic of software architecture –Visibility: program components may be invoked or used as data by given component (indirectly) (e.g. M4 is visible to M1) –Connectivity: program components are directly invoked or used as data by given component (e.g. M2 is connected to M1) l A module that directly causes another module to begin execution is connected to it M1M2 M3M4

13  2004 by SEC Design Fundamentals (cont’d) –Software procedure focuses on the processing details of each module individually (sequence, iteration, condition) l a procedural representation of software is layered –Information hiding l Modules should be specified and designed so that information (procedure & data) contained within a module are inaccessible to other modules that have no need for such information. l Hiding implies that effective modularity design can be achieved by defining a set of independent modules. l Hiding defines access constraints to both procedural detail within a module and local data structure used by the module. l Provides the greatest benefits when program modification are required.

 2004 by SEC 4.2 Design Method

15  2004 by SEC Effective Modular Design l Effective Modular Design –A modular design reduces complexity, facilitates changes, results in an easier implementation. –Classification (based on temporal aspect) monolithic program module program object-oriented program code-and-fix sequential/ incremental/ parallel subroutines/ coroutines/ conroutines Without apparent interruption / Can be interrupted before completion / execute simultaneously with another module

16  2004 by SEC Effective Modular Design (cont’d) –A typical control hierarchy may not be encountered when coroutines or conroutines are used –Functional independence (independent effective modules) l Effective modularity: function compartmentalized and interfaces simplified

17  2004 by SEC Effective Modular Design (cont’d) –Cohesion: relative functional strength of a module l Types of Cohesion: –coincidental : tasks relate to each other loosely inside a module –logical : performing tasks related logically ( all output ) –temporal : all tasks executed with the same span of time –procedural : must be executed in a specific order –communicational : concentrate on one area of a data structure –sequential –functional High (good) low

18  2004 by SEC Effective Modular Design (cont’d) –Coupling: interconnection among modules l depends on the interface complexity between modules, entry point or reference to a module, what data passes across the interface l Types of Coupling: –No direct coupling : module subordinate to different modules –Data coupling : data passed via argument list –Stamp coupling : data structure passed via argument list –control coupling : passes control data –external coupling : modules are tied to an external environment –common coupling : refer to a global data area –content coupling : l one module makes use of data or control information maintained within the boundary of another module. l branches are made into the middle of a module high (Good) low

 2004 by SEC 4.3 Architectural Design

20  2004 by SEC Architectural Design l Program architecture, domain specific software architecture –Develop a modular program structure –Represent the control relationship between modules l Control hierarchy connecting modules –Define interface that enable data to flow throughout the program –System organization –DSSA (Domain-Specific Software Architecture) l Pipes & filters –I: a stream of inputs –O: a stream of outputs (1) program structure (2) domain-specific Software architecture

21  2004 by SEC Architecture Patterns l Layered systems: –System organized hierarchically with each layer providing service to the layer above it l Rule-based system l Blackboard systems: a central data structure represents the current state of the computation, a collection of knowledge sources. System Basic Core Knowledge Base RBFact Rule & data element Rule interpreter Working Memory Input Outputselected rules/data Blackboard

22  2004 by SEC 4.4 Data Design –Define data abstractions –Select an appropriate data structure to implement the abstraction –Using entity-relationship modeling depict relationship between objects data abstraction data structure data modeling

 2004 by SEC 4.5 Procedural Design

24  2004 by SEC Procedural Design l Structure programming –logical constructs: sequence, conditional, iteration –to limit the procedural design to a small number of predictable operations l reduce program complexity l lead to more readable, testable code l Flow charts –Graphical representation for procedural design –Limitation l Introduce inefficiency when an escape from a set of nested loops or nested conditions is required l Additional complications of logical tests

25  2004 by SEC Procedural Design (cont’d) l Program design language (PDL) –Structured English (pseudocode) l Uses the vocabulary of English l Overall syntax of a structure programming language –Difference between PDL and programming language l The use of narrative text embedded directly within PDL statements l PDL cannot be compiled but can be translated into a graphical structure l Why design language –can be embedded with source code –can be a derivative of the high order language. e.g. Ada PDL –easy to review –can be represented in great detail

26  2004 by SEC PDL l Data structure –TYPE IS l eg. TYPE table IS INSTANCE OF symboltable l Abstract data type: data abstraction –Generic data structure (template) from which other data structures can be instantiated –e.g. TYPE table IS INSTANCE OF symboltable –Block structure BEGIN END

27  2004 by SEC PDL (cont’d) –Conditional -IF THEN ELSE ENDIF –Iteration -REPEAT UNTIL ENDREP -DO WHILE ENDDO -DO FOR ENDFOR -CASE OF WHEN SELECT. DEFAULT: ENDCASE