Object-Oriented Analysis and Design

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Architecture Representation
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Software Design Deriving a solution which satisfies software requirements.
Introduction To System Analysis and Design
Seminar /workshop on cognitive attainment ppt Dr Charles C. Chan 28 Sept 2001 Dr Charles C. Chan 28 Sept 2001 Assessing APSS Students Learning.
Ch3: Software Engineering Principles 1 What is a principle?  Definition:  Goals of accounting principles:  Goals of software engineering principles?
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
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.
Principles of High Quality Assessment
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
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.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 4 - System modelling Dr Richard Clayton.
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.
1 On to Object Design Chapter 14 Applying UML and Patterns.
Introduction To System Analysis and Design
GRASP: Designing Objects with Responsibilities
UML diagrams What is UML UML diagrams –Static modeoing –Dynamic modeling 1.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
Design Concepts By Deepika Chaudhary.
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.
OOAD Unit – I OBJECT-ORIENTED ANALYSIS AND DESIGN With applications
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
Formal Methods.
Article Summary of The Structural Complexity of Software: An Experimental Test By Darcy, Kemerer, Slaughter and Tomayko In IEEE Transactions of Software.
CSE 303 – Software Design and Architecture
Introduction to Modeling Extracted from textbook: Object Oriented Modeling and Design with UML M. Blaha, J. Rumbaugh.
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
MANAGING COMPLEXITY Lecture OO01 Introduction to Object-oriented Analysis and Design Abstract Data Types.
Basic Characteristics of Object-Oriented Systems
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Object Oriented Systems Design
Introduction to UML.
Advanced Computer Systems
Unit - 3 OBJECT ORIENTED DESIGN PROCESS AND AXIOMS
7. Modular and structured design
OPERATING SYSTEMS CS 3502 Fall 2017
UML Diagrams By Daniel Damaris Novarianto S..
Course Outcomes of Object Oriented Modeling Design (17630,C604)
The Development Process of Web Applications
Object-Oriented Analysis and Design
Object-Oriented Modeling with UML
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Systems Analysis and Design With UML 2
Unified Modeling Language
Complexity Time: 2 Hours.
Week 10: Object Modeling (1)Use Case Model
Software Design Mr. Manoj Kumar Kar.
Differents between Structured Analysis and UML
University of Central Florida COP 3330 Object Oriented Programming
UML Diagrams Jung Woo.
Business System Development
CSC 205 – Java Programming II
CSC 205 Programming II Lecture 2 Subclassing.
Introduction To System Analysis and Design PART 2
Chapter 1, Introduction to Software Engineering
University of Houston-Clear Lake
Chapter 20 Object-Oriented Analysis and Design
Department of Computer Science Abdul Wali Khan University Mardan
Paper by D.L Parnas And D.P.Siewiorek Prepared by Xi Chen May 16,2003
Software Design Methodologies and Testing
Appendix A Object-Oriented Analysis and Design
Presentation transcript:

Object-Oriented Analysis and Design

References Grady Booch: Object-Oriented Analysis and Design with Applications; Addison Wesley Perdita Stevens, Rob Pooley: Using UML Software Engineering with Objects and Components, Pearson C. Larman : Applying UML and Patterns, Pearson J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, W. Lorensen: Object-Oriented Modeling and Design, PHI

Complexity Why software is inherently complex? Complexity of problem domain Difficulty of managing the development process Flexibility possible through software Problems of Characterizing the behavior of Discrete systems

Consequences “The more complex the system, the more open it is to total breakdown” adding a new sub-basement to an existing 100 storey building - builder VS. software system user – simple matter of programming software crisis time delay – over budget deficient specification than requirement squandering of human resource & loss of opportunities

Complete Dismal? successful systems for significant complexity software Space shuttle large business organization (eg. Microsoft) Study, understand, comprehend the complexity first

Complex System Attribute 1. Frequently, complexity takes the form of 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.

Complex System Attribute 2. The choice of what components in a system are primitive is rarely arbitrary and is largely up to the discretion of the observer of the system.

Complex System Attribute 3. Intracomponent linkages are generally stronger than intercomponent linkages. This fact has the effect of seperating the high-frequency dynamics of the components – involving the internal structure of the components – from the low frequency dynamics – involving interaction among components.

Complex System Attribute 4. Hierarchic systems are usually composed of only a few different kinds of subsystems in various combinations and arrangements.

Complex System Attribute 5. A complex systems that works is invariably found to have evolved from a simple system that worked …. A complex system designed from a scratch never works and cannot be patched up to make it work. Thus, one has to start over, beginning with a working simple system.

Organized-Disorganized Complexity Canonical form of a complex system little orientation - old pilot – new engine aircraft similar skills –already – new to be trained hierarchy not single - rather generalized one “is a” hierarchy - class concept “part of” hierarchy - object concept collectively aka architecture

Organized-Disorganized Complexity Limitation of the human capacity for dealing with complexity intricacy of interaction capability to think about many things at once ? flight case – location, elevation, speed, heading human comprehension is only at order of seven information human mind takes 5 sec to accept new information

Decomposition algorithmic decomposition object oriented decomposition straight, top-down structured structure chart directly from DFD & follows structured design object oriented decomposition depiction of key abstractions of problem domain set of automated agents – collaboration for higher level behaviors through message direction for a action

Role of Decomposition object oriented decomposition yields smaller systems through the reuse of common mechanism provides economy of expression more resilient to change and thus better able to evolve over time – design based upon stable intermediate forms evolve incrementally from smaller systems having already acquired confidence separation of concerns in a large state-space

Role of Abstraction “The span of absolute judgment and the span of immediate memory impose severe limitations on the amount of information that we are able to receive, process and remember. By organizing the stimulus input simultaneously into several dimensions and successively into a sequence of chunk we manage to break … this informational bottleneck” --- Unable to master the entirety of a complex object - ignore its essential details, dealing instead with the generalized, idealized model of the object semantic content

Role of Hierarchy depiction of different object collaboration pattern of interaction – mechanisms highlight common structure and behavior semantic content exposition

Engg : as a science - an art “The conception of a design for a new structure can evolve as much a leap of the imagination and as much a synthesis experience and knowledge as any artist is required to bring to his canvas or paper. And once that design is articulated by the engineer as artist, it must be analyzed by the engineer as scientist in as rigorous an application of the scientific method as any scientist must make” - Petroski – To Engineer is Human - 1985

Design Meaning satisfies a given (perhaps informal) functional specification conforms to limitations of the target medium meets implicit or explicit requirements on performance and resource usage satisfies implicit or explicit design criteria on the form of artifact satisfies restrictions on the design process itself, such as length or cost or the tools available for doing the design

Model Building Importance Follows the principle of decomposition, abstraction and hierarchy Each model within a design describes a specific aspect of the system under consideration Seek to build new models upon old models (which gained confidence already) Opportunity to evaluate each model under both expected and unusual situations

Design Method Elements Notation – Language for expressing each model Process – The activities leading to the ordinarily construction of the system’s model Tools – The artifacts that eliminate the tedium of model building and enforce rules about the models themselves, so that errors and inconsistencies can be exposed A sound design method is based upon a solid theoretical foundation, yet offers degrees of freedom for artistic innovation.

OO Model Logical Physical Dynamic Model Class & Object Structure Module & Process Architecture Static Model