© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Engineering Design Resolution & Design Principles.

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,
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall A.1.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Modeling Notations.
Software Engineering and Design Principles Chapter 1.
Architecture is More Than Just Meeting Requirements Ron Olaski SE510 Fall 2003.
A Brief Introduction to Software Design and Design Quality By Laura Leventhal.
The Architecture Design Process
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Chapter 1 Principles of Programming and Software Engineering.
WEL COME PRAVEEN M JIGAJINNI PGT (Computer Science) MCA, MSc[IT], MTech[IT],MPhil (Comp.Sci), PGDCA, ADCA, Dc. Sc. & Engg.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering CSE470: Systems Engineering 35 Computer System Engineering Computer System Engineering is a problem-solving activity. Itemize desired.
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
SWE Introduction to Software Engineering
Course Instructor: Aisha Azeem
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Interaction Design Process and Heuristics.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Context of Software Product Design.
Systems Analysis and Design in a Changing World, Fifth Edition
Chapter 5CSA 217 Design in Construction Chapter 5 1.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Design.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Detailed Design Overview and Mid-Level Class Modeling.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
An Introduction to Software Architecture
CSE 303 – Software Design and Architecture
The Architecture Business Cycle. Software Architecture Definition The software architecture of a program or computing system is the structure or structures.
Architecture Business Cycle
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
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.
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.
Low-Level Detailed Design SAD (Soft Arch Design) Mid-level Detailed Design Low-Level Detailed Design Design Finalization Design Document.
SE: CHAPTER 7 Writing The Program
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Systems Analysis and Design in a Changing World, 3rd Edition
Chapter 7 Software Engineering Introduction to CS 1 st Semester, 2015 Sanghyun Park.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Part VII: Design Continuous
Software Design: Principles, Process, and Concepts Getting Started with Design.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Software Engineering Design Resolution Goal of developing a Design Resolution is to develop a design of the solution to the problem stated in the requirements.
Csci 490 / Engr 596 Special Topics / Special Projects Software Design and Scala Programming Spring Semester 2010 Lecture Notes.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
CSE 303 – Software Design and Architecture
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
1 Unified Modeling Language, Version 2.0 Chapter 2.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Product Design Alternative Generation, Evaluation, and Selection.
Engr 691 Special Topics in Engineering Science Software Architecture Spring Semester 2004 Lecture Notes.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
Basic Characteristics of Object-Oriented Systems
Welcome to OBJECT ORIENTED PROGRAMMING Prepared By Prepared By : VINAY ALEXANDER PGT(CS) KV jhagrakhand.
WELCOME TO OUR PRESENTATION UNIFIED MODELING LANGUAGE (UML)
Software Design.
CompSci 280 S Introduction to Software Development
CHAPTER 5 GENERAL OOP CONCEPTS.
Lecture 9- Design Concepts and Principles
The Object Oriented Approach to Design
Chapter 19: Interfaces and Components
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Lecture 9- Design Concepts and Principles
An Introduction to Software Architecture
Chapter 19: Interfaces and Components
Presentation transcript:

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Engineering Design Resolution & Design Principles

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2 Objectives  To distinguish architectural and detailed design  To catalog the contents of architectural and detailed design specifications  To present acronyms for design specifications  To present engineering design principles  To arrange these principles in a taxonomy to help understand and remember them

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 3 Topics  Architectural and detailed design in the engineering design process  Architectural design specifications  Detailed design specifications  Engineering design principles  Basic principles  Constructive principles  A software engineering design principles taxonomy

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 4 A Generic Software Engineering Design Process

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 5 Architectural Design  High-level design  Black boxes  Every program has an architecture Architectural design is the activity of specifying a program’s major parts; their responsibilities, properties, and interfaces; and the relationships and interactions among them.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 6 Detailed Design  Mid- and low-level design  Black boxes  Detailed design shades into coding Detailed design is the activity of specifying the internal elements of all major program parts; their structure, relationships, and processing; and often their algorithms and data structures.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7 Architectural Design Specifications  Decomposition—Program parts or modules  Responsibilities—Data and behavior  Interfaces—An interface is a boundary across which entities communicate.  Collaborations—Who does what when?  Relationships—Uses, dependencies, etc.  Properties—Performance, reliability, etc.  States and Transitions—Externally visible DeSCRIPTR

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8 Detailed Design Specifications  Decomposition—Sub-system parts or units  Responsibilities—Data and behavior  Interfaces—Public features  Collaborations—Who does what when?  Relationships—Inheritance, associations, etc.  Properties—Performance, reliability, etc.  States and Transitions—Externally visible  Packaging and Implementation—Scope, visibility, etc.  Algorithms, Data Structures, and Types—Maybe DeSCRIPTR-PAID

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 Engineering Design Principles Design principles are statements about what makes a design better. Basic principles state characteristics that make a design better able to meet stakeholder needs and desires. Constructive principles state, based on experience, that certain engineering design characteristics make a design better.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 10 Basic Principles  Feasibility—A design is acceptable only if it can be realized.  Adequacy—Designs that meet more stakeholder needs and desires, subject to constraints, are better.  Economy—Design that can be built for less money, in less time, with less risk, are better.  Changeability—Design that make a program easier to change are better.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 11 Constructive Principles  Modularity principles—Good design are modular; these principles help evaluate whether designs specify good modules.  Implementability principles—Good designs are easier to build; these principles help evaluate whether designs will be easy to implement.  Aesthetic principles—Good design are beautiful; these principles help pick out beautiful designs.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 12 Modularity A modular program is composed of well-defined, conceptually simple, and independent units that communicate through well-defined interfaces.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 13 Advantages of Modularity  Easier to understand and explain  Easier to document  Easier to change  Easier to test and debug  More reusable  Easier to tune

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 14 What Is a Module?  Immediate parts are those directly below the whole in the parts hierarchy.  Program Sub-programs or sub-systems  Packages, compilation units  Classes, functions » Attributes, operations, blocks - Lines of code A module is a program unit with parts.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 15 Modularity Principles 1  Small Modules—Designs with small modules are better.  Information Hiding—Each module should shield the details of its internal structure and processing from other modules.  Least Privilege—Modules should not have access to unneeded resources.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 16 Modularity Principles 2  Coupling—Module coupling should be minimized. Coupling is the degree of connection between pairs of modules.  Cohesion—Modules cohesion should be maximized. Cohesion is the degree to which a module’s parts are related to one another.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 17 Implementability Principles  Simplicity—Simpler designs are better.  Software reuse is the use of existing artifacts to build new software products; reusable artifacts are called assets.  Design with Reuse—Designs that reuse existing assets are better.  Design for Reuse—Designs that produce reusable assets are better.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 18 Aesthetic Principles  Beauty—Beautiful (simple and powerful) design are better.  Are there other aesthetic principles? Symmetry Balance Proportion

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 19 Relationships Among Principles  Some principles usually support one another. Cohesion, Coupling, Information Hiding Simplicity, Beauty Simplicity, Small Modules  Some principles are often in conflict. Simplicity, Design for Reuse Small Modules, Design for Reuse Cohesion, Small Modules  Support or conflict may depend on the case at hand.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 20 Design Principles Taxonomy

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 21 Summary 1  Architectural design is high-level specification of major program parts.  Detailed design is mid-level and low-level specification of program units.  DeSCRIPTR specifications for architectural design  DeSCRIPTR-PAID specifications for detailed design

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 22 Summary 2  The basic principles of Adequacy, Economy, Feasibility, and Changeability are about meeting stakeholder needs.  The constructive principles are based on engineering experience. Modularity principles: Small Modules, Information Hiding, Least Privilege, Coupling, and Cohesion Implementability principles: Simplicity, and Design with and for Reuse. Aesthetic principle: Beauty.