Object-Oriented Software Engineering - The professional Developer’s Guide(on OMG’s OOA/OOD proposal) George Wilkie.

Slides:



Advertisements
Similar presentations
K. Ingram1November 2000 Object Orientated Analysis and Design - Contents When to use OO? What is OO? Unified Modelling Language OO Methodologies: –Object.
Advertisements

UML an overview.
Database Systems: Design, Implementation, and Management Tenth Edition
Chapter 4 - Object-Oriented Analysis and Design in a Nutshell1 Chapter 4 Object-Oriented Analysis and Design in a Nutshell.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall A.1.
Object-Oriented Systems Development: survey of structured methods by A G Sutcliffe Presented by: Nestor Rivera EEL6883 UCF Spring 07.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Introduction To System Analysis and Design
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
Itntroduction to UML, page 1 Introduction to UML.
9 1 Chapter 9 Database Design Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Chapter 1 The Systems Development Environment
UML and Object Oriented Concepts
Chapter 9 Architecture Alignment. 9 – Architecture Alignment 9.1 Introduction 9.2 The GRAAL Alignment Framework  System Aspects  The Aggregation.
System Analysis & Design
Introduction To System Analysis and design
OO Analysis and Design CMPS OOA/OOD Cursory explanation of OOP emphasizes ▫ Syntax  classes, inheritance, message passing, virtual, static Most.
UML - Development Process 1 Software Development Process Using UML (2)
Object Oriented Analysis By: Don Villanueva CS 524 Software Engineering I Fall I 2007 – Sheldon X. Liang, Ph. D.
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Chapter 1 The Systems Development Environment
CSCI-383 Object-Oriented Programming & Design Lecture 9.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Object-Oriented Analysis and Design OVERVIEW. Objectives  Describe Information Systems  Explain the role of a systems analyst  Introduce object-oriented.
Topic 1: Approaches to System Development
ITEC 3220M Using and Designing Database Systems
Database Systems: Design, Implementation, and Management Ninth Edition
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Ch:10 Component Level Design Unit 4. What is Component? A component is a modular building block for computer software Because components reside within.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
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.
Unified Modeling Language, Version 2.0
1 Object orientation. 2 What benefits does OO give? Primarily –Encapsulation (Associates data & operations) –Types & specialisation –Software re-use.
Introduction To System Analysis and Design
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Object Oriented Analysis & Design Software Engineering Lab. Sharif University of Technology.
Software Design Deriving a solution which satisfies software requirements.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
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.
Software Design Process
Internet and Intranet Protocols and Applications Lecture 5a: HTTP Client-Server Design and Implementation February 15, 2005 Arthur Goldberg Computer Science.
The Systems Development Environment Systems Analysis and Design II.
CHAPTER 3 MODELING COMPONENT-LEVEL DESIGN.
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
04 - OOD Intro.CSC4071 Software Design ‘Requirements’ defines –The goals the system needs to satisfy. ‘Specification’ defines –The externally-observable.
Object-Oriented Systems. Goals Object-Oriented Methodologies – The Rumbaugh et al. OMT – The Booch methodology – Jacobson's methodologies.
Session 1 What Is the UML? Written by Thomas A. Pender Published by Wiley Publishing, Inc. October 5, 2011 Presented by Kang-Pyo Lee.
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
Basic Characteristics of Object-Oriented Systems
SWE 214 (071) Introduction to UML Slide 1 Introduction to UML.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
Outline Object-Oriented Concepts Modeling Components Structured Method Evaluation Procedure Object-Oriented Methods Structured Methods Review of Object.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Introduction to UML.
Systems Analysis and Design With UML 2
Contents Why should I consider OOA&D OO analysis OO design
Introduction to Unified Modeling Language (UML)
University of Houston-Clear Lake
Introduction to UML.
Object-Oriented Design
Software Design Methodologies and Testing
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Presentation transcript:

Object-Oriented Software Engineering - The professional Developer’s Guide(on OMG’s OOA/OOD proposal) George Wilkie

Contents Why should I consider OOA&D OO analysis OO design A reference model for OOA&D Summary of some OOA&D methods. Experience with OOA&D Choosing an OOA&D method Summary and conclusion.

4.1 Why should I consider OO analysis and design OO approaches are seeking to resolve some problems that tranditional structured analysis and design. The Objects model in OOA&D provide a more realistic representation, which an end user can more readily understand. OOA&D provides a consistent approach which maps cleanly onto a physical design and implementation. OOA&D provides a framework which supports reuse and extensibility.

4.2 OO analysis The result of analysis are requirements specifications which clearly describe what the software external behavior should be, without any prejudgement about how the software will produce this exact behaviour. Phases of analysis and design. (P74 figure 4.2)

4.2.1 Essence of OO analysis Class relationship diagrams Class inheritance diagrams. Object interaction diagrams Object state tables. User access diagrams. Textual specification documents.

4.2.2 OO analysis vs Structured analysis OO technique provides a more consistent approach to system modelling. OO view more closely reflects the real world where humans are used to thinking in terms of things which possess both attributes and behaviours. OO provides reuse possibility from the class hierarchy views of the system. OO analysis is able to model the user interface to a system.

4.2.3 Shortcomings of OOA OO analysis techniques are still the subject of much debate and research. The mixing of analysis and design methods is a problem with OO techniques.

4.3 OO design. The difference between OO analysis and design is not always very clear. Design considerationsinclude hardware and software issues.

4.3.1 Problem with traditional structured design It fails to take the evolutionary nature of software systems into accounts. Often the data structure aspect is neglected. Working top-down does not promote reusability.

4.3.2 Class and application design Class design –Identify classes. –Identify subclass within each class. –Identify abstract behaviour of each class –Identify common behavior –Identify specific types of behavior Application design is a top-down adn bottom-up process, designing teh application from the existign building blocks.

4.3.3 Benefits from OO design Information hidding. Weak coupling Strong cohesion Exensibility

4.3.4 Shortcomings of OOD Identifying class. Blurred boundaries between design and both analysis and implemetation. Variable degrees of OO support in existing CASE tools. Elaborate and complex notations.

4.4 A reference Model for analysis and design A reference model is defined in order to compare OO analysis and design methods. P99 Figure 4.12 P100 Figure 4.13

4.5 Summary of some OO analysis and design methods OO analysis and design Booch method OOSE OSMOSYS OO systems analysis OMT RDD OORASS HOOD OOSD Object-Oriented software development

4.5.1 OO analysis and design (Coad and Yourdon) Analysis process: five layers P108 notation Design process: four components Pragramtics: CASE tool support Discussion: Simplcity of notation, design phase is sketchy and need evlove.

4.5.2 Booch method Design process: Incremental design, a spiral development model. Notation: rich in symbols. Pragmatics: Rational Rose. Discussion: complicated notation, a set of techniques without a well-defined process.

4.5.3 OOSE The method encompass analysis and design. From requirements models to implementation models. Notation: P122 P123 Pragmatic: CASE tool, documentation and published text. Discussion: Two stage analysis procedure provides a more robust model.(use-case, analysis model)

4.5.4 OSMOSYS A propretary method The process: Two development apporaches: Functional approach and OO approach. Notation: 8 main diagrams. Pragmatic: A toolset. Discussion: well-documented process and the tool support. Concentrated on teh techniques and overall process.

4.5.5 Object-oriented systems analysis An adaptation of traditional structured methods using entity modelling. The analysis process: three steps. Notation: different diagrams at different stages. Discussion: most applicable to real-time systems. Lack design procedure and process

4.5.6 OMT The process: three phase (analysis, system design and object design) Notation: P134 Fig 4.30 Pragmatic: OMTool. Published text. Discussion: place more emphasis on specifying what an object is rather than how it is used.

4.5.7 RDD A revolutionary approach. The process: The process requires that a written specificaton existes and concentrates on analysing these requirements. Notation: CRC (class, responsibility and collaboration) Pragmatic: CRC is limited in use to about classes. Discussion: Truely OO approach to analysis. In RDD the analysis phase is part of design.

4.5.8 OORASS The concepts and techniques used in OORASS is quite different from others. Concepts: Role and role modelling. Role models focus on describing patterns of interaction without connecting the interactionto particular objects. Process: Iterative, 6 steps. Notation: P141 Fig 4.33, text notation exists. Pragmatic: published articles. CASE tool, courses. Discussion: A proprietary method. Using roles to view analysis.

4.5.9 OOSD Notation:elaborate notations. Pragmatic: CASE tool (from IDE) Discussion: Only a notation for OO design.

HOOD method Grew out of Ada community Map its features directly to Ada concepts. Not properly Object-oriented.

The Object-oriented software development method The process: requirement analysis, preliminary design and detailed design. Notation: interaction, hierarchy and class diagrams, P148 Fig 4.34 Pragmatic: a highly extensible CASE tool Discussion: well suited to the development of real time applications.Object interaction diagrams are the best feature, while class diagrams are not well defined.

4.6 Experience with OO analysis and design A foundamental objective of OO analysis and design is to derive a good class hierarchy. Four basic kind of class can be identified during the developement. –Foundation class. –Application framework classes. –Business classes. –Application classes.

4.7 Choosing a OO analysis and design method Conceptual issues. General method issues. Techniques.

4.8 summary Introduced techniques adn tools to support OO analysis and design. Discussed the relative merits and problems with OO compared to structured techniques. Some methods are strong on process adn techniques but weak on notation while other others are strong on notation but the process is almost non-existent.