February 19, 2016 1 February 19, 2016February 19, 2016February 19, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific.

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,
May 2, May 2, 2015May 2, 2015May 2, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa, CA.
Design Concepts and Principles
Chapter 13 Design Concepts and Principles
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.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.1.
Design Concepts And Principles Software Design -- An iterative process transforming requirements into a “blueprint” for constructing the software.
Component-Level Design
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.
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
CS-499G 8/17/ Design Concepts and Principles.
Design Concepts "You can use an eraser on the drafting table or a sledge hammer on the construction site." Frank Lloyd Wright.
CSE 303 – Software Design and Architecture
Design Issues Practice: A generic View Design 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.
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
Chapter 12 Design Concepts
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.
Drexel University CS 451 Software Engineering Winter Yuanfang Cai Room 104, University Crossings
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.
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.
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 6: Software 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.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Developed by Reneta Barneva, SUNY Fredonia Software Design and Software Engineering.
Chapter 12 설계 개념 Design Concepts
Chapter 1: Design Concepts Prepared by Mohd Kamir Yusof 1.
CS 3610: Software Engineering – Spring 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 9 Design Engineering Highlights of Software Design Concepts and Principles.
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.
1 Chapter 16 Component-Level Design. 2 Component-Level Design  the closest design activity to coding  the approach: review the design description for.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 9: Design Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter.
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.
February 27, February 27, 2016February 27, 2016February 27, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific.
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 9 Design Engineering Highlights of Software Design Concepts and Principles.
March 19, March 19, 2016March 19, 2016March 19, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University,
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.
Software Design Principles
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
Software Quality Engineering
Design Concepts.
CIS 375 Bruce R. Maxim UM-Dearborn
SOFTWARE ENGINEERING Design Concepts Dr. S. Prem Kumar
Chapter 8 Design Concepts
Chapter 8 Design Concepts
Lecture 9- Design Concepts and Principles
Chapter 9 Design Engineering
Design Engineering.
Chapter 8 Design Concepts
Chapter 8 Design Concepts.
Chapter 8 Design Concepts
Chapter 8 Design Concepts
DESIGN CONCEPTS AND PRINCIPLES
COSC 4406 Software Engineering
Presentation transcript:

February 19, February 19, 2016February 19, 2016February 19, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, CS 470 Software Engineering I

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 SE-1-2-3

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU One Goal: Flexible Manufacturing Two Elements : Data and Process Three -abilities : Reuse, Extend, and Flexible SE-1-2-3: Software Design & Implementation

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU SE-1-2-3: Software Design & Implementation We’re poor learners from industrial manufacturing Logical product Hard to repeat Hard to specify Hard of hard

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU SE-1-2-3: Software Design & Implementation We face simple issues but struggle a lot Niklaus Wirth, Author of PASCAL Program = ????

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU SE-1-2-3: Software Design & Implementation We’re smart to convert software into hardware --> OO strategy

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU SE-1-2-3: Software Design & Implementation We’re pursuing three -abilities

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU SE-1-2-3: Software Design & Implementation How to do by digging in more depth

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU SE-1-2-3: Software Design & Implementation A - Abstract D - Data T - Type

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU SE-1-2-3: Software Design & Implementation A - Abstract D - Data T - Type

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU SE-1-2-3: Software Design & Implementation ADT - A model for the problem to be solved ADT - Described by its properties ADT - Generalized by specifying type ADT - Simulated by OOP Code Construction: Modularity

Thank you very much! Questions? February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU SE-1-2-3: Software Design & Implementation

February 19, February 19, 2016February 19, 2016February 19, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, CS 470 Software Engineering I

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Design Engineering

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Design Engineering

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Design Engineering Design and Quality the 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. the design must be a readable, understandable guide for those who generate code and for 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.

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Design Engineering Design Principles The design process should not suffer from ‘tunnel vision.’ The design should be traceable to the analysis model. The design should not reinvent the wheel. The design should “minimize the intellectual distance” [DAV95] between the software and the problem as it exists in the real world. The design should exhibit uniformity and integration. The design should be structured to accommodate change. The design should be structured to degrade gently, even when aberrant data, events, or operating conditions are encountered. Design is not coding, coding is not design. The design should be assessed for quality as it is being created, not after the fact. The design should be reviewed to minimize conceptual (semantic) errors.

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Design Engineering Fundamental Concepts abstraction—data, procedure, control architecture—the overall structure of the software patterns—”conveys the essence” of a proven design solution modularity—compartmentalization of data and function hiding—controlled interfaces Functional independence—single-minded function and low coupling refinement—elaboration of detail for all abstractions Refactoring—a reorganization technique that simplifies the design

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Design Engineering Information Hiding module controlled interface "secret" algorithm algorithm data structure data structure details of external interface details of external interface resource allocation policy resource allocation policy clients a specific design decision

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Design Engineering Why Information Hiding? reduces the likelihood of “side effects” limits the global impact of local design decisions emphasizes communication through controlled interfaces discourages the use of global data leads to encapsulation—an attribute of high quality design results in higher quality software

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Design Engineering Stepwise Refinement open walk to door; reach for knob; open door; walk through; close door. repeat until door opens turn knob clockwise; if knob doesn't turn, then take key out; find correct key; insert in lock; endif pull/push door move out of way; end repeat

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Design Engineering Functional Independence

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Design Engineering The Design Model

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Design Engineering Design Model Elements Data elements –Data model --> data structures –Data model --> database architecture Architectural elements –Application domain –Analysis classes, their relationships, collaborations and behaviors are transformed into design realizations –Patterns and “styles” (Chapter 10) Interface elements –the user interface (UI) – external interfaces to other systems, devices, networks or other producers or consumers of information – internal interfaces between various design components. Component elements Deployment elements

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Design Engineering Design Patterns The best designers in any field have an uncanny ability to see patterns that characterize a problem and corresponding patterns that can be combined to create a solution A description of a design pattern may also consider a set of design forces. –Design forces describe non-functional requirements (e.g., ease of maintainability, portability) associated the software for which the pattern is to be applied. The pattern characteristics (classes, responsibilities, and collaborations) indicate the attributes of the design that may be adjusted to enable the pattern to accommodate a variety of problems.

February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Design Engineering Frameworks A framework is not an architectural pattern, but rather a skeleton with a collection of “plug points” (also called hooks and slots) that enable it to be adapted to a specific problem domain. Gamma et al note that: –Design patterns are more abstract than frameworks. –Design patterns are smaller architectural elements than frameworks –Design patterns are less specialized than frameworks

Thank you very much! Questions? February 19, Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department of Computer Science, Software Engineering in CS at APU CS 470 Design Engineering