TCS2411 Software Engineering1 Software Design Principles “Producing the software blueprint”

Slides:



Advertisements
Similar presentations
Lecture 6: Software Design (Part I)
Advertisements

Software Design Fundamentals
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Design Concepts and Principles
Chapter 13 Design Concepts and Principles
Design Phase What’s design?
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.
Design Concepts And Principles Software Design -- An iterative process transforming requirements into a “blueprint” for constructing the software.
Software Design Deriving a solution which satisfies software requirements.
TCS2411 Software Engineering1 System Engineering and Analysis “What is the role of the software product?”
Data-Flow Oriented Design
TCS2411 Software Engineering1 Software Maintenance “Taking care of the software”
Software Architecture Design Instructor: Dr. Jerry Gao.
TCS2411 Software Engineering1 Object-Oriented Analysis and Design “A system of objects interacting to perform the given tasks”
TCS2411 Software Engineering1 Software Requirements Analysis “What does the customer want?”
TCS2411 Software Engineering1 Software Design Notations “Documenting the software blueprint”
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
TCS2411 Software Engineering1 Improving the Design “Can the design be better?”
CS-499G 8/17/ Design Concepts and Principles.
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 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.1.
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.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
CSE 303 – Software Design and Architecture
Chapter 9 Design Engineering
 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
UNIT III : Software Design
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
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.
Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed., Addison-Wesley, 2006 and on the Ch11 PowerPoint.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
CSEB233: Fundamentals of Software Engineering Software Design.
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.
1 Introduction to Software Engineering Lecture 1.
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.
Software Engineering Saeed Akhtar The University of Lahore Lecture 6 Originally shared for: mashhoood.webs.com.
SIM3302 SOFTWARE DESIGN & TESTING
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.
Design Concepts By Deepika Chaudhary.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Developed by Reneta Barneva, SUNY Fredonia Software Design and Software Engineering.
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.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 9: Design Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter.
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.
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.
February 19, February 19, 2016February 19, 2016February 19, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific.
Software Design. Introduction Designing engineering encompasses the set of principles concepts and practices that lead to the development of a high quality.
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.
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 and Principles)
Software Design Principles
Chapter ? Quality Assessment
Design engineering Prepared By:Jay A.Dave..
Lecture 9- Design Concepts and Principles
Software Design Mr. Manoj Kumar Kar.
For University Use Only
Software Quality Engineering
CIS 375 Bruce R. Maxim UM-Dearborn
Lecture 9- Design Concepts and Principles
Chapter 9 Design Engineering
Software Modelling and Design
DESIGN CONCEPTS AND PRINCIPLES
Presentation transcript:

TCS2411 Software Engineering1 Software Design Principles “Producing the software blueprint”

TCS2411 Software Engineering2 Lecture Objectives zTo understand the importance of design in developing quality software zTo describe the translation from the requirements analysis model to the design model zTo understand the principles that guide proper design of software

TCS2411 Software Engineering3 Designing A House zIf you are asked to design a house… Room 1 Living Room Kitchen Room 2 D D D D W WW W WC

TCS2411 Software Engineering4 What Is Design? zExplaining the idea/concept of something zUsually with graphical diagrams zWith the intention to build from the explanation zThe design is a representation of a product or a system with sufficient detail for implementation

TCS2411 Software Engineering5 The Second Task Problem Models Solution Analysis Design Development Testing

TCS2411 Software Engineering6 Designing Software zFrom our understanding of the problem, we start building the software zTranslate the analysis model into the design model zMap the information from the analysis model to the design representations - data design, architectural design, interface design, procedural design

TCS2411 Software Engineering7 Translation Model Data Dictionary Entity- Relationship Diagram Data Flow Diagram State-Transition Diagram Data design Architectural design Interface design Procedural design

TCS2411 Software Engineering8 Design Principles zDesign process should not suffer from “tunnel vision” zThe design should be traceable to the analysis model  The design should not reinvent the wheel; Time is short zThe design should “minimize intellectual distance” between the software and the problem in the real world

TCS2411 Software Engineering9 Design Principles (Continued) zThe design should exhibit uniformity and integration zThe design should be structured to accommodate change zThe design should be structured to degrade gently.

TCS2411 Software Engineering10 Design Principles (Continued) zDesign is not coding, coding is not design zThe design should be assessed for quality as it is being created, not after the fact zThe design should be reviewed to minimize conceptual errors

TCS2411 Software Engineering11 Design Concepts zAbstraction zRefinement zModularity zSoftware Architecture zControl Hierarchy zStructural Partitioning zData Structure zSoftware Procedure zInformation Hiding Fundamental concepts which provide foundation to design correctly:

TCS2411 Software Engineering12 Abstraction zIdentifying important features for representation zThere are many levels of abstraction depending on how detailed the representation is required zData abstraction - representation of data objects zProcedural abstraction - representation of instructions

TCS2411 Software Engineering13 Refinement zStepwise refinement - top-down design strategy by Niklaus Wirth zStarting at the highest level of abstraction, every step of refinement ‘decompose’ instructions into more detailed instructions zComplementary to abstraction

TCS2411 Software Engineering14 Modularity zSoftware is divided into separately named and addressable modules z“Divide and conquer” approach - problem is broken into manageable pieces zSolutions for the separate pieces then integrated into the whole system

TCS2411 Software Engineering15 Divide And Conquer S1 S2 S3 S4 S5 P5 P4 P3 P2 P1

TCS2411 Software Engineering16 Software Architecture zModules can be integrated in many ways to produce the system zSoftware architecture is the overall structure of the software zThe hierarchy of components and how they interact, and the structure of data used by the components zUse of framework models, and possible reuse of architectural patterns

TCS2411 Software Engineering17 Software Architecture Patterns zRecurring pattern help designers reuse successful designs by basing new designs on prior experience. zA designer who is familiar with such patterns can apply them immediately to design problems without having to rediscover them.

TCS2411 Software Engineering18 Why use Design Patterns? zReuse successful practices. yNot new – recognised that this is something that engineers have done for years. zImprove communication zStep towards a software engineer’s handbook

TCS2411 Software Engineering19 Examples of Software Architecture S1 S2 S3 S4 S5 S3 S2S4S5 S1 Batch sequential pattern Program structure

TCS2411 Software Engineering20 Control Hierarchy zHierarchy of modules representing the control relationships zA super-ordinate module controls another module zA subordinate module is controlled by another module zMeasures relevant to control hierarchy: depth, width, fan-in, fan-out

TCS2411 Software Engineering21 Structure Terminology ghed i f abc M Fan-out Fan-in Width Depth

TCS2411 Software Engineering22 Structural Partitioning zProgram structure partitioned horizontally and vertically zHorizontal partitioning defines separate branches for each major program function - input, process, output zVertical partitioning (aka factoring) defines control (decision-making) at the top and work at the bottom

TCS2411 Software Engineering23 Software Procedure zProcessing details of individual modules zPrecise specification of processing, including sequence of events, exact decision points, repetitive operations, and data organization/structure zProcedure is layered - subordinate modules must be referenced in processing details

TCS2411 Software Engineering24 Information Hiding zInformation (procedure and data) contained within a module is inaccessible to other modules that have no need for such information zEffective modularity is achieved by independent modules, that communicate only necessary information zEase of maintenance - testing, modification localized and less likely to propagate

TCS2411 Software Engineering25 References z“Software Engineering: A Practitioner’s Approach” 5th Ed. by Roger S. Pressman, Mc-Graw-Hill, 2001 z“Software Engineering” by Ian Sommerville, Addison-Wesley, 2001