Object-Oriented Systems Development: Using the Unified Modeling Language

Similar documents
Object-Oriented Systems Development: Using the Unified Modeling Language

Chapter 4. Sahaj Computer Solutions Object Oriented Systems Development 1

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

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

OBJECT ORIENTED ANALYSIS AND DESIGN

Software Development Methodologies

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

CISC 322 Software Architecture

Object Oriented Analysis and Design: An Overview

Software Development Methodologies

UNIT-I. Introduction:

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview

Object-Oriented Systems Development: Using the Unified Modeling Language

Introduction. Chapter 1. What Is Visual Modeling? The Triangle for Success. The Role of Notation. History of the UML. The Role of Process

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR

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

CSC 330 Object Oriented Software Design. Software Analysis Phase

CSC 330 Object Oriented Software Design Software Analysis Phase Object-Oriented Paradigm Object-Oriented Analysis cont d

An Introduction To Object Modeling System Concept for Object Modeling The Overall View Components of UML Diagram

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

INTERACTION ARCHITECTURAL MODELING. Lecture 9 Interaction Architectureal Modeling

Unified Modelling Language

Programming Language Constructs as Basis for Software Architectures

OO Analysis and Design with UML 2 and UP

Object Oriented System Development

Programming Language Constructs as Basis for Software Architectures. Stefan Resmerita, WS2015

CASE TOOLS LAB VIVA QUESTION

References: Jacquie Barker,Beginning Java Objects; Martin Fowler,UML Distilled, 9/25/ UML

Software Engineering from a

UNIT-I Introduction of Object Oriented Modeling

Object-Oriented Analysis and Design Using UML

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

References: Jacquie Barker,Beginning Java Objects; Martin Fowler,UML Distilled, 1/13/ UML

History of object-oriented approaches

KINGS COLLEGE OF ENGINEERING

Research Review on Basic Principles of Unified Modelling Language

3.0 Object-Oriented Modeling Using UML

02291: System Integration

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

Session 8: UML The Unified Modeling (or the Unstructured Muddling) language?

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR

Ans 1-j)True, these diagrams show a set of classes, interfaces and collaborations and their relationships.

Representing System Architecture

02291: System Integration

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

Chapter 12 (revised by JAS)

Software Development Methodologies

Systems Analysis and Design in a Changing World, Fourth Edition

Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

CHAPTER 1. Objects, UML, and Java

Software Development Methodologies

Introduction... ix. Chapter 1: Exploring Fundamental Programming Concepts... 1

Software Design And Modeling BE 2015 (w. e. f Academic Year )

Design Patterns. Hausi A. Müller University of Victoria. Software Architecture Course Spring 2000

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

Software Service Engineering

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

Object Oriented Processes. R.K.Joshi Dept of Computer Science and Engg. IIT Bombay

Software Architectures

CSC Advanced Object Oriented Programming, Spring Overview

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD TM : ,

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

Software Development Methodologies

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

An Introduction to the UML and the Unified Process

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

1 OBJECT-ORIENTED ANALYSIS

Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page:

Guide to applying the ESA software engineering standards to projects using Object-Oriented Methods

Software Engineering

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

UML: Unified Modeling Language

UML Modeling. Sumantra Sarkar. 29 th June CIS 8090 Managing Enterprise Architecture

Getting a Quick Start with RUP

OBJECT-ORIENTED SOFTWARE DEVELOPMENT Using OBJECT MODELING TECHNIQUE (OMT)

Software Development. Modular Design and Algorithm Analysis

A Comparison of the Booch Method and Shlaer-Mellor OOA/RD

Information Systems Development Methodologies

Rational Software White paper

Vidyalankar. T.Y. Diploma : Sem. VI [IF/CM] Object Oriented Modeling and Design Prelim Question Paper

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

Introduction to Software Engineering. 5. Modeling Objects and Classes

LESSON PLAN SUB NAME : OBJECT ORIENTED ANALYSIS AND DESIGN UNIT SYLLABUS

1 Introduction. 1.1 Introduction

On UML2.0 s Abandonment of the Actors-Call-Use-Cases Conjecture

HyperFrame - A Framework for Hypermedia Authoring

Introduction to the UML

i219 Software Design Methodology 1. Overview of software design methodology Kazuhiro Ogata (JAIST) Outline of lecture

The Process of Software Architecting

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

Software Design Using CRC Cards

System Analysis and Design

UML Modeling I. Instructor: Yongjie Zheng September 3, CS 490MT/5555 Software Methods and Tools

TTool Training. I. Introduction to UML

Architecture-Centric Evolution in Software Product Lines:

UML Fundamental. OutLine. NetFusion Tech. Co., Ltd. Jack Lee. Use-case diagram Class diagram Sequence diagram

The Unified Modeling Language User Guide

Methods for requirements engineering

Requirements and Design Overview

Introduction to Software Engineering (ESE : Einführung in SE) Prof. O. Nierstrasz

Transcription:

Object-Oriented Systems Development: Using the Unified Modeling Language Chapter 4: Object-Oriented Methodologies

Goals Object-Oriented Methodologies The Rumbaugh et al. OMT The Booch methodology Jacobson's methodologies

Goals (Con t) Patterns Frameworks Unified Approach (UA) layered Architecture

Basic Definitions A methodology is explained as the science of methods. A method is a set of procedures in which a specific goal is approached step by step.

Too Many Methodologies 1986: Booch came up with the object-oriented design concept, the Booch method. 1987: Sally Shlaer and Steve Mellor came up with the concept of the recursive design approach.

Too Many Methodologies (Con t) 1989: Beck and Cunningham came up with class-responsibilitycollaboration (CRC) cards. 1990: Wirfs-Brock, Wilkerson, and Wiener came up with responsibilitydriven design. 1991: Peter Coad and Ed Yourdon developed the Coad lightweight and prototype-oriented approach.

Too Many Methodologies (Con t) 1991: Jim Rumbaugh led a team at the research labs of General Electric to develop the object modeling technique (OMT). 1994: Ivar Jacobson introduced the concept of the use case.

Survey of Some of the Object- Oriented Methodologies Many methodologies are available to choose from for system development. Here, we look at the methodologies developed by Rumbaugh et al., Booch, and Jacobson which are the origins of the Unified Modeling Language (UML) and the bases of the UA.

Rumbaugh et. al. s Object Modeling Technique (OMT) OMT describes a method for the analysis, design, and implementation of a system using an object-oriented technique.

OMT (Con t) OMT consists of four phases, which can be performed iteratively: 1. Analysis. The results are objects and dynamic and functional models. 2. System design. The result is a structure of the basic architecture of the system.

OMT (Con t) 3. Object design. This phase produces a design document, consisting of detailed objects and dynamic and functional models. 4. Implementation. This activity produces reusable, extendible, and robust code.

OMT Modeling OMT separates modeling into three different parts: 1. An object model, presented by the object model and the data dictionary. 2. A dynamic model, presented by the state diagrams and event flow diagrams. 3. A functional model, presented by data flow and constraints.

OMT Object Model Client firstname lastname pincode ClientAccount number balance Account deposit withdraw createtransaction AccountTransaction Transaction transdate transtime transtype amount postbalance CheckingAccount Withdraw CheckingSavingAccount SavingsAccount

OMT Dynamic Model No account has been selected Nothing is selected Account has been selected Select Checking or saving account Select Checking account Select transaction type (withdraw, deposit, transfer) Enter the amount Confirmation

OMT Functional Model Data Store Process Client Account Data Flow Card Reader PIN Code Process PIN Code External Entity

The Booch Methodology The Booch methodology covers the analysis and design phases of systems development. Booch sometimes is criticized for his large set of symbols.

The Booch Methodology (Con t) The Booch method consists of the following diagrams: Class diagrams Object diagrams State transition diagrams Module diagrams Process diagrams Interaction diagrams

The Booch Methodology (Con t) Car color manufacturer cost superclass inherits Ford inherits Mustang Taurus Escort

The Booch Methodology (Con t) Operator::TurnOffAlarm Enabled Silenced SoundAlarm SilenceAlarm Sounding Enable Disable AlarmFixed Disabled

The Booch Methodology (Con t) The Booch methodology prescribes A macro development process A micro development process.

The Macro Development Process The macro development process consists of the following steps: 1. Conceptualization 2. Analysis and development of the model. 3. Design or create the system architecture. 4. Evolution or implementation. 5. Maintenance.

The Micro Development Process The micro development process consists of the following steps: 1. Identify classes and objects. 2. Identify class and object semantics. 3. Identify class and object relationships. 4. Identify class and object interfaces and implementation.

The Jacobson et al. Methodologies The Jacobson et al. methodologies (e.g., OOBE, OOSE, and Objectory) cover the entire life cycle and stress traceability between the different phases.

Use Cases Use cases are scenarios for understanding system requirements. A use case is an interaction between users and a system. The use-case model captures the goal of the user and the responsibility of the system to its users.

The use case description must contain: Use Cases (Con t) How and when the use case begins and ends. The interaction between the use case and its actors, including when the interaction occurs and what is exchanged.

Use Cases (Con t) How and when the use case will store data in the system. Exceptions to the flow of events.

Library Checking out books Getting an Interlibrary loan Doing research Member Reading books, Newspapers Purchasing Supplies Supplier

Object-Oriented Software Engineering: Objectory Object-oriented software engineering (OOSE), also called Objectory, is a method of objectoriented development with the specific aim to fit the development of large, real-time systems.

Objectory (Con t) Objectory is built around several different models: Use case model. Domain object model. Analysis object model. Implementation model. Test model.

Object-Oriented Business Engineering (OOBE) Object-oriented business engineering (OOBE) is object modeling at the enterprise level. Use cases again are the central vehicle for modeling, providing traceability throughout the software engineering processes.

Use-case model Express in Tested in Realized by Structured by Implemented by OK NOT OK Domain Object model Analysis model Design modelimplementation model Testing model

OOBE (Con t) OOBE consists of : Analysis phase Design Implementation phases and Testing phase.

Patterns A pattern is an instructive information that captures the essential structure and insight of a successful family of proven solutions to a recurring problem that arises within a certain context and system of forces.

Patterns (Con t) The main idea behind using patterns is to provide documentation to help categorize and communicate about solutions to recurring problems. The pattern has a name to facilitate discussion and the information it represents.

Patterns (Con t) A good pattern will do the following: It solves a problem. Patterns capture solutions, not just abstract principles or strategies. It is a proven concept. Patterns capture solutions with a track record, not theories or speculation.

Patterns (Con t) The solution is not obvious. The best patterns generate a solution to a problem indirectly a necessary approach for the most difficult problems of design. It describes a relationship. Patterns do not just describe modules, but describe deeper system structures and mechanisms.

Patterns (Con t) The pattern has a significant human component. All software serves human comfort or quality of life; the best patterns explicitly appeal to aesthetics and utility.

Capturing Patterns Guidelines for capturing patterns: Focus on practicability. Aggressive disregard of originality. Nonanonymous review. Writers' workshops instead of presentations. Careful editing.

Frameworks A framework is a way of presenting a generic solution to a problem that can be applied to all levels in a development. A single framework typically encompasses several design patterns and can be viewed as the implementation of a system of design patterns.

Differences Between Design Patterns and Frameworks Design patterns are more abstract than frameworks. Design patterns are smaller architectural elements than frameworks. Design patterns are less specialized than frameworks.

The Unified Approach The idea behind the UA is not to introduce yet another methodology. The main motivation here is to combine the best practices, processes, methodologies, and guidelines along with UML notations and diagrams.

Identify Actors Develop Use- Cases, activity diagrams prototyping Develop interaction diagrams Identify classes, relationships, attributes & methods Refine and iterate Construction Component Based Development Continuous Testing User satisfaction usability tests, quality assurance test Design classes, their attributes, methods, association, structure... O-O Analysis Apply Design Axioms Repository of use-cases, analysis, design, UI, and past Experiences Patterns Documentation & Traceability O-O Design Build UML class diagram Layered Approach UML Based Modeling Designv view User satisfaction & and access Usability tests Layers and based on use cases prototypes Continuous Testing

The Unified Approach (UA) The unified approach to software development revolves around (but is not limited to) the following processes and components.

UA Processes (Con t) The processes are: Use-case driven development. Object-oriented analysis. Object-oriented design. Incremental development and prototyping. Continuous testing.

UA Methods and Technology The methods and technology employed includes: Unified modeling language (UML) used for modeling. Layered approach. Repository for object-oriented system development patterns and frameworks. Promoting Component-based development.

UA Object-Oriented Analysis: Use-Case Driven The use-case model captures the user requirements. The objects found during analysis lead us to model the classes. The interaction between objects provide a map for the design phase to model the relationships and designing classes.

UA Object-Oriented Design Booch provides the most comprehensive object-oriented design method. However, Booch methods can be somewhat imposing to learn and especially tricky to figure out where to start. UA realizes this by combining Jacobson et al.'s analysis with Booch's design concept to create a comprehensive design process.

Iterative Development and Continuous Testing The UA encourages the integration of testing plans from day 1 of the project. Usage scenarios or Use Cases can become test scenarios; therefore, use cases will drive the usability testing.

Modeling Based on the Unified Modeling Language The UA uses the unified modeling language (UML) to describe and model the analysis and design phases of system development.

The UA Proposed Repository The requirement, analysis, design, and implementation documents should be stored in the repository, so reports can be run on them for traceability. This allows us to produce designs that are traceable across requirements, analysis, design, implementation, and testing.

The Layered Approach to Software Development Most systems developed with today's CASE tools or client-server application development environments tend to lean toward what is known as two-layered architecture: interface and data.

Two-Layer Architecture In a two-layer system, user interface screens are tied directly to the data through routines that sit directly behind the screens. Name Address Title Owner Data Workstation

Problem With the Two-Layer Architecture This approach results in objects that are very specialized and cannot be reused easily in other projects.

Three-Layer Architecture Your objects are completely independent of how: they are represented to the user (through an interface) or how they are physically stored. Name Address Title Owner Data Workstation

User Interface layer This layer is typically responsible for two major aspects of the applications: Responding to user interaction Displaying business objects.

Business Layer The responsibilities of the business layer are very straightforward: model the objects of the business and how they interact to accomplish the business processes.

Business Layer: Real Objects (Con t) These objects should not be responsible for: Displaying details Data access details

Access Layer The access layer contains objects that know how to communicate with the place where the data actually resides, Whether it be a relational database, mainframe, Internet, or file.

Access Layer The access layer has two major responsibilities: Translate request Translate result

Three-Layered Architecture Access Layer Business Layer View Layer

Summary we looked at current trends in object-oriented methodologies, which have been toward combining the best aspects of today's most popular methods.

Summary (Con t) Each method has its strengths. Rumbaugh et al. have a strong method for producing object models. Jacobson et al. have a strong method for producing user-driven requirement and object-oriented analysis models. Booch has a strong method for producing detailed object-oriented design models.

Summary (Con t) Each method has weakness, too. While OMT has strong methods for modeling the problem domain, OMT models cannot fully express the requirements. Jacobson, although covering a fairly wide range of the life cycle, does not treat object-oriented design to the same level as Booch, who focuses almost entirely on design, not analysis.

Summary (Con t) The UA is an attempt to combine the best practices, processes, and guidelines along with UML notations and diagrams for better understanding of object-oriented concepts and object-oriented system development.