OOAD Unit – I OBJECT-ORIENTED ANALYSIS AND DESIGN With applications

Slides:



Advertisements
Similar presentations
Lecture 6: Software Design (Part I)
Advertisements

ARCHITECTURES FOR ARTIFICIAL INTELLIGENCE SYSTEMS
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
1 OBJECT-ORIENTED CONCEPTS. 2 What is an object?  An object is a software entity that mirrors the real world in some way.  A software object in OOP.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Best-First Search: Agendas
Software Design Deriving a solution which satisfies software requirements.
Introduction To System Analysis and Design
1 Software Testing and Quality Assurance Lecture 12 - The Testing Perspective (Chapter 2, A Practical Guide to Testing Object-Oriented Software)
THE OBJECT-ORIENTED DESIGN WORKFLOW Interfaces & Subsystems.
PROCESS MODELING Transform Description. A model is a representation of reality. Just as a picture is worth a thousand words, most models are pictorial.
Ch3: Software Engineering Principles 1 What is a principle?  Definition:  Goals of accounting principles:  Goals of software engineering principles?
Unified Modeling (Part I) Overview of UML & Modeling
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Overview Objective: refine information gathered
2Object-Oriented Analysis and Design with the Unified Process Events and Use Cases  Use case  Activity the system carries out  Entry point into the.
Lesson-21Process Modeling Define systems modeling and differentiate between logical and physical system models. Define process modeling and explain its.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
1 CS101 Introduction to Computing Lecture 19 Programming Languages.
The chapter will address the following questions:
 Computer Science 1MD3 Introduction to Programming Michael Liut Ming Quan Fu Brandon.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
System Analysis & Design
Introduction To System Analysis and design
Complexity “The more complex the system, the more open it is to total breakdown”. Rarely would a builder think about adding a new sub-basement to an existing.
Introduction to Object-oriented programming and software development Lecture 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.
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Introduction To System Analysis and Design
Quality Software Project Management Software Size and Reuse Estimating.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
GRASP: Designing Objects with Responsibilities
Design Concepts By Deepika Chaudhary.
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO 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.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
CCSB223/SAD/CHAPTER131 Chapter 13 Designing the System Internals.
© 2005 Prentice Hall1-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Copyright ©2004 Virtusa Corporation | CONFIDENTIAL Requirement Engineering Virtusa Training Group 2004 Trainer: Ojitha Kumanayaka Duration : 1 hour.
OOP (Object Oriented Programming) Lecture 1. Why a new paradigm is needed? Complexity Five attributes of complex systems –Frequently, complexity takes.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Problems and Frames III Recap and More Concepts. Definition “A problem frame is a kind of pattern. It define an intuitively identifiable problem in terms.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
Organizations as Socially Constructed Agents in the Agent Oriented Paradigm Guido Boella Leon van der Torre.
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
Basic Characteristics of Object-Oriented Systems
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Object Oriented Analysis & Design By Rashid Mahmood.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
7. Modular and structured design
On the Criteria to Be Used in Decomposing Systems into Modules
Complexity Time: 2 Hours.
Object-Oriented Design
CSC 205 – Java Programming II
CSC 205 Programming II Lecture 2 Subclassing.
Software Engineering Lecture #9.
Chapter 20 Object-Oriented Analysis and Design
Object oriented analysis and design
CS 8532: Advanced Software Engineering
Paper by D.L Parnas And D.P.Siewiorek Prepared by Xi Chen May 16,2003
Software Design Methodologies and Testing
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
Object-Oriented Analysis and Design
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
Presentation transcript:

OOAD Unit – I OBJECT-ORIENTED ANALYSIS AND DESIGN With applications SECOND EDITION Grady Booch Rational, Santa Clara, California

The Five Attributes of a Complex System There are five Attributes (properties/characteristics) common to all Complex Systems. It can be Decomposed; often, in Hierarchy The concept of primitive (simple) component is subjective Intra-Component linkages found stronger than Inter-Components linkages It is created by combining in various ways the Limited, Simple Sub Components It evolves from simple system that worked

The Five Attributes of a Complex System Frequently, complexity takes the form of a hierarchy, whereby a complex system is composed of interrelated subsystems that have in turn their own subsystems, and so on, until some lowest level of elementary components is reached nearly decomposable (not 100% independent) valued added by a system must come from the relationships between the parts, not from the parts

The Five Attributes of a Complex System The choice of what components in a system are primitive is relatively arbitrary (subjective) and is largely up to the discretion of the observer of the system primitive for one observer may be at a much higher level of abstraction for another

The Five Attributes of a Complex System Intra-component linkages are generally stronger than intercommoning linkages. This fact has the effect of separating the high-frequency dynamics of the components - involving the internal structure of the components - from the low-frequency dynamics - involving interaction among components

The Five Attributes of a Complex System Hierarchic systems are usually composed of only a few different kinds of subsystems in various combinations and arrangements cells found in both plants and animals vascular systems found in both plants and animals.

The Five Attributes of a Complex System A complex system that works is invariably found to have evolved from a simple system that worked.... A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over, beginning with a working simple system

1.3 The Role of Decomposition The technique of mastering complexity has been known since ancient times: divide and rule (process). When designing a complex software system, it is essential to decompose it into smaller and smaller parts, each of which we may then refine independently.

1.3 The Role of Decomposition In this manner, we satisfy/fulfill the constraint that exists upon the channel (focus/concentrate) capacity of human cognition (thought/reasoning/understanding): to understand any given level of a system, we need only comprehend a few parts (rather than all parts) at once. The intelligent decomposition directly addresses the inherent complexity of software by forcing a division of a system's state space [into smaller state spaces] - Parnas

1.3 The Role of Decomposition There are two ways of Decomposition: Algorithmic Decomposition and Object-Oriented Decomposition.

1.3 The Role of Decomposition 1.3.1 Algorithmic Decomposition (AD) used extensively in Top down Structured [System Analysis &] Design Methodology each module in the system denotes a major step in some overall process

1.3 The Role of Decomposition 1.3.2 Object-Oriented Decomposition It decomposes the system according to the key abstractions in the problem domain Rather than decomposing the problem into steps such as “Get formatted update” and “Add check sum”, we have identified objects such as “Master File” and “Check Sum”, which derive directly from the vocabulary of the problem domain.

1.3 The Role of Decomposition 1.3.2 Object-Oriented Decomposition In OO decomposition, we view the world as a set of autonomous agents that collaborate to perform some higher level behavior. Each object in our solution represents its own unique behavior, and each one models some object in the real world. Objects do things, and we ask them to perform what they do by sending them a message (calling a method of that object).

1. 3 The Role of Decomposition 1. 3. 3 Algorithmic Decomposition VS 1.3 The Role of Decomposition 1.3.3 Algorithmic Decomposition VS. Object-Oriented Decomposition Although both designs solve the same problem, they do so in quite different ways Which is the right way to decompose a complex system - by algorithms or by objects? Both views are important The algorithmic view highlights the ordering of events, and The object-oriented view emphasizes the agents that either cause action or are the subjects upon which these operations act.

1. 3 The Role of Decomposition 1. 3. 3 Algorithmic Decomposition VS 1.3 The Role of Decomposition 1.3.3 Algorithmic Decomposition VS. Object-Oriented Decomposition However, we cannot construct a complex system in both ways simultaneously (as they are orthogonal views) We must start decomposing a system either by algorithms or by objects, and then use the resulting structure as the framework for expressing the other perspective It is found better to apply the object-oriented view first

Advantages of Object-oriented decomposition yields smaller systems through the reuse of common mechanisms, thus providing an important economy of expression. more resilient to change and thus better able to evolve over time, because their design is based upon stable intermediate forms. greatly reduces the risk of building complex software systems, because they are designed to evolve incrementally from smaller systems in which we already have confidence. directly addresses the inherent complexity of software by helping us make intelligent decisions regarding the separation of concerns in a large state space.

1.4 The Role of Abstraction An individual can comprehend only about seven, plus or minus two, chunks of information at one time   By organizing the stimulus input simultaneously into several dimensions and successively into a sequence of chunks, we manage to break ... this informational bottleneck. In contemporary terms, we call this process chunking, or abstraction. Unable to master the entirety of a complex object, we choose to ignore its inessential details, dealing instead with the generalized, idealized model of the object

1.5 The Role of Hierarchy Another way to increase the semantic content of individual chunks of information is by explicitly recognizing the class and object hierarchies within a complex software system The class structure is equally important, because it highlights common structure and behavior within a system rather than study each individual objects, it is enough to study one such