Unit - 3 OBJECT ORIENTED DESIGN PROCESS AND AXIOMS

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design- IT0207 III Semester UNIT-IV.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Database Systems: Design, Implementation, and Management Tenth Edition
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Object-Oriented Metrics. Characteristics of OO ● Localization ● Encapsulation ● Information hiding ● Inheritence ● Object abstraction.
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
Jump to first page 1 System Design (Finalizing Design Specifications) Chapter 3d.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Systems Design. Analysis involves understanding and documenting user requirements in a clear and unambiguous way. It focuses on the business side and.
The Design Discipline.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
CSCI-383 Object-Oriented Programming & Design Lecture 9.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
CSE 303 – Software Design and Architecture
Database Management System Prepared by Dr. Ahmed El-Ragal Reviewed & Presented By Mr. Mahmoud Rafeek Alfarra College Of Science & Technology Khan younis.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Systems Analysis and Design in a Changing World, 3rd Edition
CSC480 Software Engineering Lecture 11 September 30, 2002.
GRASP: Designing Objects with Responsibilities
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
CIS 112 Exam Review. Exam Content 100 questions valued at 1 point each 100 questions valued at 1 point each 100 points total 100 points total 10 each.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Software Design: Principles, Process, and Concepts Getting Started with Design.
OBJECT ORIENTED AND FUNCTION ORIENTED DESIGN 1 Chapter 6.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Internet and Intranet Protocols and Applications Lecture 5a: HTTP Client-Server Design and Implementation February 15, 2005 Arthur Goldberg Computer Science.
Dr D. Greer, Queens University Belfast )Chapter Six 1 Software Engineering Chapter Six Software Design Quality Learning Outcomes.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
The Object-Oriented Design Process and Design Axioms
Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 5th Edition Copyright © 2015 John Wiley & Sons, Inc. All rights.
 Description of Inheritance  Base Class Object  Subclass, Subtype, and Substitutability  Forms of Inheritance  Modifiers and Inheritance  The Benefits.
Basic Characteristics of Object-Oriented Systems
UA. Unified Approach ( UA ) It combines best practices, methods process, guidelines & methodology (Rumbaugh, Booch and Jacobson) along with UML notations.
CHAP-1 OBJECT ORIENTED SYSTEM DESIGN (IT-703)
Principles of Programming & Software Engineering
Object Oriented Systems Design
UNIT-IV Designing Classes – Access Layer ‐ Object Storage ‐ Object Interoperability.
GRASP – Designing Objects with Responsibilities
A Hierarchical Model for Object-Oriented Design Quality Assessment
Cmpe 589 Spring 2006.
IS301 – Software Engineering Dept of Computer Information Systems
Entity Relationship (E-R) Modeling
Chapter 12: Collaboration Diagram - PART2
Introduction to Design Patterns
which satisfies software requirements
Part 3 Design What does design mean in different fields?
TK2023 Object-Oriented Software Engineering
Object oriented system development life cycle
OBJECT RELATIONSHIPS, ATTRIBUTES, AND METHODS
TIM 58 Chapter 8: Class and Method Design
The Object Oriented Approach to Design
INFS 6225 – Object-Oriented Systems Analysis & Design
Object-Oriented Design
Object-Oriented Analysis
Introduction to Design Patterns Part 1
Software Engineering Lecture #8.
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Chapter 4 Entity Relationship (ER) Modeling
Chapter 20 Object-Oriented Analysis and Design
Chapter Objectives You should be able to define and understand
Software Design Lecture : 8
Chapter 22 Object-Oriented Systems Analysis and Design and UML
CIS 375 Bruce R. Maxim UM-Dearborn
Cohesion and Coupling.
Agenda Software development (SD) & Software development methodologies (SDM) Orthogonal views of the software OOSD Methodology Why an Object Orientation?
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
Logical Architecture & UML Package Diagrams
Presentation transcript:

Unit - 3 OBJECT ORIENTED DESIGN PROCESS AND AXIOMS

Design Analysis- What needs to be done Objects discovered serve as the framework for design Identified objects, attributes, methods, associations must be designed for implementation as a data type expressed in the implementation language Emphasis from application domain to implementation and computer concepts (user interface, access layer) Good design simplifies the implementation and maintenance of a project Axiomatic approach is to formalize the design process and assist in establishing a scientific foundation for the OOD process

THE OOD PROCESS The classes are viewed in the implementation point of view. New classes and attributes can be added if required The following activities are followed Apply design axioms to design classes, their attributes, methods, associations, structures and protocols 1.1 Refine and complete the static UML class diagram 1.1.1 Refine attributes. 1.1.2 Design methods and protocols using UML activity diagram 1.1.3 Refine the associations 1.1.4 Refine class hierarchy and design with inheritance 1.2 Iterate and refine again

Design the access layer 2.1 Create mirror classes for the access layer as business layer 2.2 Identify access layer class relationship 2.3 Simplify classes and their relationships 2.3.1 Avoid redundant classes 2.3.2 Delete classes that have only 1 or 2 methods. Try to add in other classes 2.4 Iterate and refine again

Design the view layer 3.1 Design the macro level user interface, identifying view layer objects 3.2 Design the micro level user interface, which includes the following activities 3.2.1 Design the view layer objects by applying the design axioms and corollaries 3.2.2 Build the prototype of the view layer 3.3 Test usability and user satisfaction 3.4 Iterate and refine Iterate and refine the whole design. Reapply the design axioms and repeat the preceding steps.

OOD Axioms Axiom is a fundamental truth that is always observed to be valid and for which there is no counterexample or exception. They cannot be proven or derived. A theorem is a preposition that may not be self evident but can be proven by accepted axioms. It is a law or principle. Theorem is valid if its referent axioms and deductive steps are valid.

There are two axioms followed. Axiom 1: The independence Axiom. (relationships between components) Maintain the independence of components Axiom 2: The Information Axiom. ( complexity of design) Minimize the information content of the design

Axiom 1: The independence Axiom This Axiom states that, during the design process, as we go from requirements to a system component, each component must satisfy that requirement without affecting other requirements E.g.., designing a refrigerator door with two requirements: Door should provide access to the food Minimal loss of energy on opening and closing it (opening the door is independent of loss of energy) Requirements are coupled Vertical door – coupled This can be designed by providing horizontally as like chest-type freezers. Which satisfies both the requirements, without violating the first axiom

Axiom 2: The Information Axiom. This Axiom is concerned with simplicity Each fact should be with a minimum amount of complexity and maximum simplicity and straightforwardness. Minimal complexity produces the most easily maintained and enhance application OOS- to use inheritance, system’s built in classes to minimize complexity

COROLLARIES A Corollary is a proposition that follows from an axiom or another proposition that has been proven Can be valid or invalid as theorems They are also called as design rules. Derived from design axioms Useful in making design decisions , since they are applied to actual situations more easily than original axioms

From the two axioms, the following corollaries are formed Uncoupled design with less information content Highly cohesive objects can improve coupling because only a minimal amount of information need to be passed between objects Single purpose Each Class must have a single, clearly defined purpose Large number of simple classes Allows reusability Strong mapping Strong association between the analysis object and design object Standardization Promote standardization by designing interchangeable components and reusing existing classes or components Design with inheritance

Corollary 1: Uncoupled design with less information content The main goal here is to maximize objects cohesiveness among objects and software components in-order to improve coupling Coupling This is the measure of strength of association established by a connection from one object or software component to another Change to one component of the system should have minimal impact on the other system.

Strong coupling among the objects complicates the system. The degree of coupling is a function of How complicated the connection is Whether the connection refers to the object itself or something inside it What is being sent or received OOD – Interaction and Inheritance coupling Interaction Coupling involves the amount and complexity of the messages between the components Hence its better to keep the messages simple Also reduce the number of messages sent & received by an object (infrequent as possible) Inheritance coupling: coupling between super and sub classes A subclass is coupled with its super class in terms of attributes and methods High inheritance coupling is desirable If the sub class is overriding all of the methods (low inheritance coupling)

Types of coupling among different objects or components Content coupling – degree is very high Common coupling – degree is high Control coupling – degree is medium Stamp coupling – degree is low Data coupling – degree is very low

Refers to the “single-purposeness” of an object Cohesion This is the measure of strength of interaction within a single object or a software component Refers to the “single-purposeness” of an object Highly cohesive object have minimal coupling, because it needs only minimum amount of messages to be passed between others. Types of cohesion Method cohesion Method should carry only one function Multiple functions is undesirable Class cohesion Class’s methods and attributes must be highly cohesive Used by internal methods or derived classes Inheritance cohesion How interrelated are the classes? Does specialization portray or arbitrary?

Corollary 2: Single purpose Each class must have a purpose During documentation, it should be possible to write the purpose of the class within one or two sentence If it’s not possible, then think such that, responsibilities can be divided into different classes. Method must provide only one service Keep the classes simple

Corollary 3: Large number of simple classes The classes created should be simple and more general This is useful for reusing the classes for the future If the class is complex, try to divide the class, such that there are large number of small classes Focus on reusability (higher productivity)

Corollary 4: Strong Mapping This is used to link the classes analyzed during the analysis phase and the classes designed during the design phase

Corollary 5: Standardization The class libraries used in several object oriented programming must in a standard form to enable reusability. Store it in repository Provide easy search through the repository

Corollary 6: Designing with inheritance When a class is implemented, it is necessary to determine its ancestors. What attribute it will have, and what messages it will understand. Inheritance is used in-order to minimize the amount of coding in the program