Drexel University CS 451 Software Engineering Winter 2009 1 Yuanfang Cai Room 104, University Crossings 215.895.0298

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,
Design Concepts and Principles
Chapter 13 Design Concepts and Principles
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Design Concepts "You can use an eraser on the drafting table or a sledge hammer on the construction site." Frank Lloyd Wright.
Chapter 2 The process Process, Methods, and Tools
CSE 303 – Software Design and Architecture
1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn.
Design Issues Practice: A generic View Design Principles.
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
Chapter 9 Design Engineering
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.
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.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Chapter : Design Engineering. Design Engineering It covers the set of principles, concepts, and practices that lead to the development of a high quality.
Object-Oriented Design Principles and Patterns. © 2005, James R. Vallino2 How Do You Design? What principles guide you when you create a design? What.
Software Testing and Quality Assurance Software Quality Assurance 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.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
1 Chapter 9 Design Engineering. 2 Analysis Model -> Design Model.
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.
Design Principle & Patterns by A.Surasit Samaisut Copyrights : All Rights Reserved.
1 CMPT 275 High Level Design Phase Modularization.
Software Design: Principles, Process, and Concepts Getting Started with Design.
Developed by Reneta Barneva, SUNY Fredonia Software Design and Software Engineering.
Software Design Process
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 9: Design Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter.
CSE 303 – Software Design and Architecture
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Smart Home Technologies
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 : 8 Design Concepts
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.
 System Requirement Specification and System Planning.
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.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Design Concepts ch-8
Chapter 9 Design Engineering
Design Patterns: MORE Examples
The Development Process of Web Applications
Software Design Principles
Design engineering Prepared By:Jay A.Dave..
Design and Implementation
Lecture 9- Design Concepts and Principles
Software Quality Engineering
CIS 375 Bruce R. Maxim UM-Dearborn
Chapter 9 Design Engineering
Patterns.
Lecture 9- Design Concepts and Principles
Chapter 9 Design Engineering
Design Engineering.
UNIT III Design Engineering
Software Modelling and Design
Informatics 122 Software Design II
DESIGN CONCEPTS AND PRINCIPLES
Presentation transcript:

Drexel University CS 451 Software Engineering Winter Yuanfang Cai Room 104, University Crossings

Drexel University Design within the Context of Software Engineering 2

Drexel University Software Design  Between Requirement and Coding  Including: Data Design Architectural Design Interface Design Component Design Detailed Design  Need to be modeled, analyzed, and reviewed in industrial strength software. 3

Drexel University Translating the Analysis Model into the Design Model 4 Data/Class Design Architecture Design Interface Design Component Design

Drexel University Design Process and Desgin Quality 5

Drexel University Design Engineering  Software design is an iterative process through which requirements are translated into a “blueprint” for constructing software Abstraction Refinement 6

Drexel University Design Engineering  A design must implement all of the explicit requirements contained in the analysis model, and it must accommodate all of the implicit requirements desired by the customer.  A design must be a readable, understandable guide for those who generate code and those who test and subsequently support the software.  The design should provide a complete picture of the software, addressing, the data, functional, and behavioral domains from an implementation perspective. 7

Drexel University Design Quality  FURPS – Functionality, Usability, Reliability, Performance, and Supportability.  Functionality – assessed by evaluating:  the feature set  capabilities of the program.  Usability - assessed by considering:  human factors,  overall aesthetics,  consistency,  end-user documentation. 8

Drexel University Design Quality - Functionality, Usability, Reliability, Performance, and Supportability  Reliability – is evaluated by measuring:  the frequency and severity of failure,  the accuracy, of output results,  the mean-time-to-failure,  the ability to recover from failure,  the predictability of the program.  Performance – is measured by:  processing speed,  response time,  resource consumption,  throughput,  efficiency 9

Drexel University Design Quality - Functionality, Usability, Reliability, Performance, and Supportability  Supportability – combines:  the ability to extend the program (extensibility),  adaptability,  serviceability  testability,  compatibility,  configurability. 10

Drexel University Design Concepts 11

Drexel University Design Concepts  Abstraction Architecture Patterns Data  Modularity Information Hiding Functional Independence Refinement Refactoring  Design Classes 12

Drexel University Design Concepts-Abstraction  “Abstraction is one of the fundamental ways that we as humans cope with complexity.” Grady Booch  “What kinds of things do we abstract?  data  objects  procedures  modules  just about anything 13

Drexel University Design Concepts-Architecture  Software architecture alludes to “the overall structure of the software and the ways in which that structure provides conceptual integrity for a system.  Architecture is:  the structure or organization of program components (modules),  the manner in which these components interact,  the structure of data that are used by the components. 14

Drexel University Design Concepts-Patterns  “A pattern is a named nugget of insight which conveys the essence of a proven solution to a recurring problem within a certain context amidst competing concerns.”  “Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice.” Christopher Alexander 15

Drexel University Design Concepts -Modularity  MODULARITY “Modularity is the single attribute of software that allows a program to be intellectually manageable” Software is divided into separately named and addressable components, sometimes called modules, that are integrated to satisfy problem requirements. 16

Drexel University Design Concepts –Information Hiding  Modules should be specified and designed so that information (algorithms and data) contained within a module is inaccessible to other modules that have no need for such information.  This means that inadvertent errors introduced during modification are less likely to propagate to other locations within the software.  Changes to the internal representation of one module should have not have an effect on other modules. 17

Drexel University Design Concepts-Functional Independence  Functional independence is achieved by developing modules with “single-minded” function and an “aversion” to excessive interaction with other modules.  We want to design software so that each module addresses a specific subfunction of requirements and has a simple interface when viewed from other parts of the program structure. 18

Drexel University Design Concepts-Functional Independence  Independence is assessed by using two qualitative criteria: Cohesion – How related a module is to itself. It should perform a single task and require little interaction with the rest of the program. Coupling is an indication of the interconnectoin among modules in a software structure. 19

Drexel University Design Concepts-Refinement  Stepwise refinement is when a program is developed by successively refining levels of procedural detail.  Refinement is actually the process of elaboration. 20

Drexel University Design Concepts-Refactoring  Refactoring is a reorganizational technique that simplifies the design )of code) of a component without changing its function or behavior. 21

Drexel University Design Concepts-Design Classes  Refine analysis classes by providing design details  Create a new set of design classes that implement a software infrastructure to support the business solution  Five types: User interface classes Business domain classes Process classes Persistent classes System classes 22