Object-Oriented Software Construction Bertrand Meyer 2nd ed., Prentice Hall, 1997.

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,
© Bertrand Meyer and Yishai Feldman Notice Some of the material is taken from Object-Oriented Software Construction, 2nd edition, by Bertrand Meyer (Prentice.
Design Concepts and Principles
Design Phase What’s design?
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall A.1.
Software Engineering Software Design Slide 1 Software Engineering Software Design.
Software Design Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
The Architecture Design Process
Chapter 6 Database Design
NJIT More GRASP Patterns Chapter 22 Applying UML and Patterns Craig Larman Prepared By: Krishnendu Banerjee.
©2003 Prentice Hall Business Publishing, Accounting Information Systems, 9/e, Romney/Steinbart 18-1 Accounting Information Systems 9 th Edition Marshall.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
Chair of Software Engineering ATOT - Lecture 3, 7 April Advanced Topics in Object Technology Bertrand Meyer.
1 SOFTWARE QUALITY ASSURANCE Basic Principles. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance SW Quality:
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
Software Engineering CSE470: Systems Engineering 35 Computer System Engineering Computer System Engineering is a problem-solving activity. Itemize desired.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Chair of Software Engineering OOSC - Summer Semester Object-Oriented Software Construction Bertrand Meyer.
Data Structures and Programming.  John Edgar2.
MADALINA CROITORU Software Engineering week 4 Madalina Croitoru IUT Montpellier.
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.
CSE 303 – Software Design and Architecture
© Bertrand Meyer and Yishai Feldman Notice Some of the material is taken from Object-Oriented Software Construction, 2nd edition, by Bertrand Meyer (Prentice.
Ceg860 (Prasad)L6MR1 Modularity Extendibility Reusability.
© Bertrand Meyer and Yishai Feldman Notice Some of the material is taken from Object-Oriented Software Construction, 2nd edition, by Bertrand Meyer (Prentice.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Ranga Rodrigo. The purpose of software engineering is to find ways of building quality software.
Vladimir Misic: Design111:43:34 AM Software design.
SOFTWARE DESIGN.
© Bertrand Meyer and Yishai Feldman Notice Some of the material is taken from Object-Oriented Software Construction, 2nd edition, by Bertrand Meyer (Prentice.
Drexel University CS 451 Software Engineering Winter Yuanfang Cai Room 104, University Crossings
© Bertrand Meyer and Yishai Feldman Notice Some of the material is taken from Object-Oriented Software Construction, 2nd edition, by Bertrand Meyer (Prentice.
Ceg860 (Prasad)L1SQ1 Software Quality Object-Oriented Programming Paradigm.
CSE 303 – Software Design and Architecture LECTURE 4.
Design Concepts and Principles Instructor: Dr. Jerry Gao.
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 2 (Part II) Operating System Overview.
Software Design Process
PRINCIPLES OF GOOD DESIGN 12/7/ Assignment 4 – Deadline 28 Nov.  Read an article placed in generalshare course folder  Point: Design Patterns.
Thanks for Coming l WEB. Principles of Good Design SEI, SJTU WEB APPS and SERVICES.
Lecture 2 Quality as the motivation for Software Design References:Braude, Chapters 0 and 1 My 2001 lecture notes on Quality Budgen Software Design Meyer.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
CS 1120: Computer Science II Software Life Cycle Slides courtesy of: Prof. Ajay Gupta and Prof. James Yang (format and other minor modifications by 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.
Object-Oriented Design Concepts University of Sunderland.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
Chapter 29: Program Security Dr. Wayne Summers Department of Computer Science Columbus State University
© Bertrand Meyer and Yishai Feldman Notice Some of the material is taken from Object-Oriented Software Construction, 2nd edition, by Bertrand Meyer (Prentice.
1.3 Operating system services An operating system provide services to programs and to the users of the program. It provides an environment for the execution.
© Bertrand Meyer and Yishai Feldman Notice Some of the material is taken from Object-Oriented Software Construction, 2nd edition, by Bertrand Meyer (Prentice.
TOTAL QUALITY MANAGEMENT
Cmpe 589 Spring 2006.
Programming III Introduction.
Chapter ? Quality Assessment
McCall’s Quality Factors
Object-Oriented Design
Appendix A Object-Oriented Analysis and Design
CS 1120: Computer Science II Software Life Cycle
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Chapter 29: Program Security
Principles of Good Design
CS 1120: Computer Science II Software Life Cycle
Appendix A Object-Oriented Analysis and Design
Principles of Good Design
Software Development Chapter 1.
Appendix A Object-Oriented Analysis and Design
ISO/IEC Systems and software Quality Requirements and Evaluation
Presentation transcript:

Object-Oriented Software Construction Bertrand Meyer 2nd ed., Prentice Hall, 1997

© Bertrand Meyer and Yishai Feldman Notice Some of the material is taken from Object-Oriented Software Construction, 2nd edition, by Bertrand Meyer (Prentice Hall). Included here by permission of ISE, for the benefit of IDC students. Other uses, duplication or distribution require permission from ISE. For more material see

© Bertrand Meyer and Yishai Feldman Factors for Software Quality

© Bertrand Meyer and Yishai Feldman Correctness Correctness is the ability of software products to perform their exact tasks, as defined by their specification.

© Bertrand Meyer and Yishai Feldman Robustness Robustness is the ability of software systems to react appropriately to abnormal conditions.

© Bertrand Meyer and Yishai Feldman Extendibility Extendibility is the ease of adapting software products to changes of specification.

© Bertrand Meyer and Yishai Feldman Reusability Reusability is the ability of software elements to serve for the construction of many different applications.

© Bertrand Meyer and Yishai Feldman Compatibility Compatibility is the ease of combining software elements with others.

© Bertrand Meyer and Yishai Feldman Efficiency Efficiency is the ability of a software system to place as few demands as possible on hardware resources, such as processor time, space occupied in internal and external memories, bandwidth used in communication devices.

© Bertrand Meyer and Yishai Feldman Portability Portability is the ease of transferring software products to various hardware and software environments.

© Bertrand Meyer and Yishai Feldman Ease of Use Ease of use is the ease with which people of various backgrounds and qualifications can learn to use software products and apply them to solve problems. It also covers the ease of installation, operation and monitoring.

© Bertrand Meyer and Yishai Feldman User Interface Design Principle Do not pretend you know the user; you don’t.

© Bertrand Meyer and Yishai Feldman Functionality Functionality is the extent of possibilities provided by a system.

© Bertrand Meyer and Yishai Feldman Timeliness Timeliness is the ability of a software system to be released when or before its users want it.

© Bertrand Meyer and Yishai Feldman Economy Economy, the companion of timeliness, is the ability of a system to be completed on or below its assigned budget.

© Bertrand Meyer and Yishai Feldman Verifiability Verifiability is the ease of preparing acceptance procedures, especially test data, and procedures for detecting failures and tracing them to errors during the validation and operation phases.

© Bertrand Meyer and Yishai Feldman Integrity Integrity is the ability of software systems to protect their various components (programs, data) against unauthorized access and modification.

© Bertrand Meyer and Yishai Feldman Reparability Reparability is the ability to facilitate the repair of defects.

© Bertrand Meyer and Yishai Feldman Criteria for Modularity u Decomposability u Composability u Understandability u Continuity u Protection

© Bertrand Meyer and Yishai Feldman Modular Decomposability A software construction method satisfies Modular Decomposability if it helps in the task of decomposing a software problem into a small number of less complex subproblems, connected by a simple structure, and independent enough to allow further work to proceed separately on each of them

© Bertrand Meyer and Yishai Feldman Top-Down Design

© Bertrand Meyer and Yishai Feldman Modular Composability A method satisfies Modular Composability if it favors the production of software elements which may then be freely combined with each other to produce new systems, possibly in an environment quite different from the one in which they were initially developed.

© Bertrand Meyer and Yishai Feldman Modular Understandability A method favors Modular Understandability if it helps produce software in which a human reader can understand each module without having to know the others, or, at worst, by having to examine only a few of the others.

© Bertrand Meyer and Yishai Feldman Modular Continuity A method satisfies Modular Continuity if, in the software architectures that it yields, a small change in a problem specification will trigger a change of just one module, or a small number of modules.

© Bertrand Meyer and Yishai Feldman Modular Protection A method satisfies Modular Protection if it yields architectures in which the effect of an abnormal condition occurring at run time in a module will remain confined to that module, or at worst will only propagate to a few neighboring modules.

© Bertrand Meyer and Yishai Feldman Rules for Modularity u Direct Mapping u Few Interfaces u Small Interfaces (weak coupling) u Explicit Interfaces u Information Hiding

© Bertrand Meyer and Yishai Feldman Direct Mapping The modular structure devised in the process of building a software system should remain compatible with any modular structure devised in the process of modeling the problem domain.

© Bertrand Meyer and Yishai Feldman Few Interfaces Every module should communicate with as few others as possible.

© Bertrand Meyer and Yishai Feldman Small Interfaces If two modules communicate, they should exchange as little information as possible

© Bertrand Meyer and Yishai Feldman Explicit Interfaces Whenever two modules A and B communicate, this must be obvious from the text of A or B or both.

© Bertrand Meyer and Yishai Feldman Information Hiding The designer of every module must select a subset of the module’s properties as the official information about the module, to be made available to authors of client modules.

© Bertrand Meyer and Yishai Feldman Principles for Modularity u Linguistic Modular Units u Self Documentation u Uniform Access u Open-Closed u Single Choice

© Bertrand Meyer and Yishai Feldman Linguistic Modular Units Principle Modules must correspond to syntactic units in the language used.

© Bertrand Meyer and Yishai Feldman Self-Documentation Principle The designer of a module should strive to make all information about the module part of the module itself.

© Bertrand Meyer and Yishai Feldman Uniform Access Principle All services offered by a module should be available through a uniform notation, which does not betray whether they are implemented through storage or through computation.

© Bertrand Meyer and Yishai Feldman Open-Closed Principle Modules should be both open and closed.

© Bertrand Meyer and Yishai Feldman Hint: Open-Closed Principle Achieved by Inheritance

© Bertrand Meyer and Yishai Feldman Single Choice Principle Whenever a software system must support a set of alternatives, one and only one module in the system should know their exhaustive list.