Object-Oriented Systems Development: Using the Unified Modeling Language

Similar documents
THE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9)

Object-Oriented Systems Development: Using the Unified Modeling Language. Chapter 1: An Overview of Object- Oriented Systems Development

Object-Oriented Systems Development: Using the Unified Modeling Language

Object Oriented Analysis and Design: An Overview

Unit-4. Design axioms Designing Classes Access Layer - Object Storage & Object Interoperability

CASE TOOLS LAB VIVA QUESTION

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR

A Data Modeling Process. Determining System Requirements. Planning the Project. Specifying Relationships. Specifying Entities

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR

MC9244 OBJECT ORIENTED ANALYSIS AND DESIGN MCA

CS 1042 OBJECT ORIENTED ANALYSIS AND DESIGN. UNIT 1 INRODUCTION 1.1 An Overview of Object Oriented System and Development

Object-Oriented Design

KINGS COLLEGE OF ENGINEERING

MC9244 OBJECT ORIENTED ANALYSIS AND DESIGN L T P C UNIT I INTRODUCTION

SDC Design patterns GoF

NOORUL ISLAM COLLEGE OF ENGINEERING, KUMARACOIL DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING SEVENTH SEMESTER

Object-Oriented Systems. Development: Using the Unified Modeling Language

Appendix A - Glossary(of OO software term s)

Applying Design Patterns to accelerate development of reusable, configurable and portable UVCs. Accellera Systems Initiative 1

Design Engineering. Dr. Marouane Kessentini Department of Computer Science

Design. Eric McCreath

Software Architectures

E.G.S.PILLAY ENGINEERING COLLEGE NAGAPATTINAM DEPARTMENT OF MCA

SHRI ANGALAMMAN COLLEGE OF ENGINEERING & TECHNOLOGY (An ISO 9001:2008 Certified Institution) SIRUGANOOR,TRICHY

Design Pattern. CMPSC 487 Lecture 10 Topics: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, et al.)

Metabase Metadata Management System Data Interoperability Need and Solution Characteristics

Chapter 4. Sahaj Computer Solutions Object Oriented Systems Development 1

Idioms and Design Patterns. Martin Skogevall IDE, Mälardalen University

Object-Oriented Design

Sorting. Sorting. Selection sort

Business Modelling. PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e. Early phase of development Inputs: Activities: informal specification

Object-Oriented Software Engineering Practical Software Development using UML and Java

CMPT 354 Database Systems I

SEZ6C/SEE6C/PED2A OBJECT ORIENTED ANALYSIS AND DESIGN. Unit : I -V

The Analysis and Design of the Object-oriented System Li Xin 1, a

Object-Oriented Systems Analysis and Design Using UML

3 Product Management Anti-Patterns by Thomas Schranz

Software Engineering with Objects and Components Open Issues and Course Summary

JOURNAL OF OBJECT TECHNOLOGY

CSE 70 Final Exam Fall 2009

Fast Track to Core Java 8 Programming for OO Developers (TT2101-J8) Day(s): 3. Course Code: GK1965. Overview

Object Oriented Programming

Design Patterns. Design Patterns 1. Outline. Design Patterns. Bicycles Simulator 10/26/2011. Commonly recurring patterns of OO design

SRI VENKATESWARA COLLEGE OF ENGINERRING AND TECHNOLOGY THIRUPACHUR,THIRUVALLUR UNIT I OOAD PART A

Produced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar

Using Design Patterns in Java Application Development

Object Relationships

Chapter 8: Class and Method Design

Object-Oriented Introduction

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.

CHAPTER 5 GENERAL OOP CONCEPTS

From MDD back to basic: Building DRE systems

Systems Analysis and Design in a Changing World, Fourth Edition

Tuesday, October 4. Announcements

SOFTWARE ENGINEERING SOFTWARE EVOLUTION. Saulius Ragaišis.

Software Design Fundamentals. CSCE Lecture 11-09/27/2016

Design Patterns

Lethbridge/Laganière 2005 Chapter 9: Architecting and designing software 6

Software Design COSC 4353/6353 D R. R A J S I N G H

Relational Database Design Part II. Announcements. E/R model: review. CPS 116 Introduction to Database Systems

A number of optimizations are already in use by the majority of companies in industry, notably:

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Metrics and OO. SE 3S03 - Tutorial 12. Alicia Marinache. Week of Apr 04, Department of Computer Science McMaster University

Object Oriented Features. Inheritance. Inheritance. CS257 Computer Science I Kevin Sahr, PhD. Lecture 10: Inheritance

History of object-oriented approaches

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802

Chapter 5 Object-Oriented Programming

Interpretations and Models. Chapter Axiomatic Systems and Incidence Geometry

CSCD01 Engineering Large Software Systems. Design Patterns. Joe Bettridge. Winter With thanks to Anya Tafliovich

GRASP Design Patterns A.A. 2018/2019

COURSE 2 DESIGN PATTERNS

CS487 Midterm Exam Summer 2005

Analysis of Cohesion and Coupling Metrics for Object Oriented System

Object- Oriented Design with UML and Java Part I: Fundamentals

Components vs. Objects

Software Engineering

Marking Guidelines for MVK Projects. MVK12. Version 6.2 (PPD, URD, RURD, ADD and software demo)

Architectural Blueprint

Object Oriented Paradigm

17. GRASP: Designing Objects with Responsibilities

CAS 703 Software Design

Technical Metrics for OO Systems

Requirements and Design Overview

Semantic Analysis Type Checking

Expanding Our Horizons. CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 9 09/25/2011

UML Views of a System

Classes and Objects. Object Orientated Analysis and Design. Benjamin Kenwright

Agile Model-Driven Development with UML 2.0 SCOTT W. AM BLER. Foreword by Randy Miller UNIFIED 1420 MODELING LANGUAGE. gile 1.

Accessibility. EEC 521: Software Engineering. Classes and Objects. Inheritance. Classes and Objects (OO Analysis)

Applying the Decorator Design Pattern

Design Concepts and Principles

Domain Engineering And Variability In The Reuse-Driven Software Engineering Business.

Using Metrics To Manage Software Risks. 1. Introduction 2. Software Metrics 3. Case Study: Measuring Maintainability 4. Metrics and Quality

Darshan Institute of Engineering & Technology for Diploma Studies

Topics in Object-Oriented Design Patterns

Object-Oriented Systems Development: Using the Unified Modeling Language

Lecture Chapter 2 Software Development

Introducing the UML Eng. Mohammed T. Abo Alroos

Transcription:

Object-Oriented Systems Development: Using the Unified Modeling Language Chapter 9: The Object-Oriented Design Process and Design Axioms

Goals The object-oriented design process. Object-oriented design axioms and corollaries. Design patterns.

Object-Oriented Design Process in the Unified Approach OO Design Design classes, methods, attributes, and associations Apply design axioms Refine UML Class diagrams Design view/ access layers and prototype Continuos testing User satisfaction and usability test based on use cases

OO Design Process 1. Apply design axioms to design classes, their attributes, methods, associations, structures, and protocols. 1.1. Refine and complete the static UML class diagram (object model) by adding details to the UML class diagram. This step consists of the following activities: 1.1.1. Refine attributes. 1.1.2. Design methods and protocols by utilizing a UML activity diagram to represent the method's algorithm. 1.1.3. Refine associations between classes (if required). 1.1.4. Refine class hierarchy and design with inheritance (if required). 1.2. Iterate and refine again.

OO Design Process (Con t) 2. Design the access layer 2.1. Create mirror classes. For every business class identified and created, create one access class. 2.2. define relationships among access layer classes. 2.3. Simplify the class relationships. The main goal here is to eliminate redundant classes and structures. 2.3.1. Redundant classes: Do not keep two classes that perform similar translate request and translate results activities. Simply select one and eliminate the other. 2.3.2. Method classes: Revisit the classes that consist of only one or two methods to see if they can be eliminated or combined with existing classes. 2.4. Iterate and refine again.

OO Design Process (Con t) 3. Design the view layer classes. 3.1. Design the macro level user interface, identifying view layer objects. 3.2. Design the micro level user interface, which includes these activities: 3.2.1. Design the view layer objects by applying the design axioms and corollaries. 3.2.2. Build a prototype of the view layer interface. 3.3. Test usability and user satisfaction (Chapters 13 and 14). 3.4. Iterate and refine. 4. Iterate and refine the preceding steps. Reapply the design axioms and, if needed, repeat the preceding steps.

Object-Oriented Design Axioms, Theorems and Corollaries An axiom is a fundamental truth that always is observed to be valid and for which there is no counterexample or exception. A theorem is a proposition that may not be self-evident but can be proven from accepted axioms.

Axioms, Theorems and Corollaries (Con t) A Corollary is a proposition that follows from an axiom or another proposition that has been proven.

Design Axioms Axiom 1 deals with relationships between system components (such as classes, requirements, software components). Axiom 2 deals with the complexity of design.

Axioms Axiom 1. The independence axiom. Maintain the independence of components. Axiom 2. The information axiom. Minimize the information content of the design.

Occam's Razor The best theory explains the known facts with a minimum amount of complexity and maximum simplicity and straightforwardness.

The Origin of Corollaries Corollary 4 Axiom 1 Corollary 1 Corollary 2 Axiom 2 Corollary 3 Corollary 6 Corollary 5

Corollaries Corollary 1. Uncoupled design with less information content. Corollary 2. Single purpose. Each class must have single, clearly defined purpose. Corollary 3. Large number of simple classes. Keeping the classes simple allows reusability.

Corollaries (Con t) Corollary 4. Strong mapping. There must be a strong association between the analysis's object and design's object. Corollary 5. Standardization. Promote standardization by designing interchangeable components and reusing existing classes or components.

Corollaries (Con t) Corollary 6. Design with inheritance. Common behavior (methods) must be moved to superclasses. The superclass-subclass structure must make logical sense.

Coupling and Cohesion Coupling is a measure of the strength of association among objects. Cohesion is interactions within a single object or software component.

Tightly Coupled Object A B C D E F G H I

Corollary 1- Uncoupled Design with Less Information Content The main goal here is to maximize objects (or software components) cohesiveness.

Corollary 2 - Single Purpose Each class must have a purpose, as was explained in a previous chapter. When you document a class, you should be able to easily explain its purpose in a sentence or two.

Corollary 3- Large Number of Simpler Classes, Reusability A great benefit results from having a large number of simpler classes. The less specialized the classes are, the more likely they will be reused.

Corollary 4. Strong Mapping As the model progresses from analysis to implementation, more detail is added, but it remains essentially the same. A strong mapping links classes identified during analysis and classes designed during the design phase.

Corollary 5. Standardization The concept of design patterns might provide a way for standardization by capturing the design knowledge, documenting it, and storing it in a repository that can be shared and reused in different applications.

Corollary 6. Designing with Inheritance Say we are developing an application for the government that manages the licensing procedure for a variety of regulated entities. Let us focus on just two types of entities: motor vehicles and restaurants.

Designing With Inheritance (Con t) MotorVehicle Restaurant PrivateVehicle CommercialVehicle

Designing With Inheritance (Con t) License MotorVehicle Restaurant PrivateVehicle CommercialVehicle

Six Months Later "What about coffee wagons, food trucks, and ice cream vendors? We're planning on licensing them as both restaurants and motor vehicles."

Designing With Inheritance Weak Formal Class MotorVehicle and Restaurant classes do not have much in common. For example, of what use is the gross weight of a diner or the address of a truck?

Designing With Inheritance (Con t) MotorVehicle Restaurant PrivateVehicle CommercialVehicle FoodTruck

Designing With Inheritance (Con t) MotorVehicle PrivateVehicle CommercialVehicle Restaurant FoodTruck

Achieving Multiple Inheritance using Single Inheritance Approach MotorVehicle PrivateVehicle CommercialVehicle FoodTruck Restaurant

Avoid Inheriting Inappropriate Behaviors You should ask the following questions: I. Is the subclass fundamentally similar to its superclass? or, II. Is it entirely a new thing that simply wants to borrow some expertise from its superclass?

Design Patterns Patterns provide a mechanism for capturing and describing commonly recurring design ideas that solve a general design problem.

Design Patterns (Con t) Client Facade Projector Screen Window Something

Design Patterns (Con t) Client Projector Screen Window Something

Summary We studied the object-oriented design process and axioms. The two design axioms are Axiom 1. The independence axiom. Maintain the independence of components. Axiom 2. The information axiom. Minimize the information content of the design.

Summary (Con t) The six design corollaries are Corollary 1. Uncoupled design with less information content. Corollary 2. Single purpose. Corollary 3. Large number of simple classes. Corollary 4. Strong mapping. Corollary 5. Standardization. Corollary 6. Design with inheritance.

Summary (Con t) We also studied the concept of design patterns, which allow systems to share knowledge about their design.