Object-Oriented and Conventional Analysis and Design Methodologies comparison and Critique Authors:...

54
Analysis and Design Methodologies comparison and Critique Authors: Robert G.Fichman and Chris F.Kemerer MIT IEEE Computer , 1992, (Oct.):p:22~39 Presentation BY: Jingkui Yang

Transcript of Object-Oriented and Conventional Analysis and Design Methodologies comparison and Critique Authors:...

Object-Oriented and Conventional Analysis and Design Methodologies

comparison and Critique

Authors: Robert G.Fichman and Chris F.Kemerer

MITIEEE Computer , 1992,(Oct.):p:22~39

Presentation BY: Jingkui Yang

Contents

Brief Introduction Analysis Methodologies, tools and

comparison Conventional Object-oriented

Design Methodologies,Tools and comparison Object-oriented Conventional

Transition from analysis to design Overall Critique

TransitionAnalysis

Tools

Methodologies

Design

Object-Oriented Conventional

Diagram of Content

1.Introduction

Object-Orientation programming: 20 years ago. OOA OOD Object-Orientation contains many novel concepts: called New paradigm for software Development Debate: Object_Orientation: Radical Change ? Conventional : Structured analysis?

Emerge start few years ago

1,Introduction(cont’d)

Yourdon:

Object-Oriented methodologists

Revolutionaries

Synthesis

OO is a radical change that renders conventionalMethodologies and ways of thinking aboutDesign obsolete

OO as simply an accumulation of sound Software engineering principles that adoptersCan graft onto their existing methodologies with relative case

Different thinking way,discovery processAnd communication between user and analyst

OOSDM :essentially an elaboration foundation: structured design

1,Introduction(cont’d)

Object-oriented approach is a refinement of some of the best software engineering ideas of the past Not a Evolutionary approach !!!

Incremental : minor changeRadical : different principles, draw new tech.and problem-solving skills

1,Introduction(cont’d)OO A&D:Radical change: strong negative impact greater expense risk different management strategies More maturity conventional methods existedRadical or incremental is a crucial to the future of OO and formulating a transition strategy.

1, Introduction (cont’d)No comprehensive comparing analysis between OOM and conventional MethodologiesSome comparing on analysis & design of OO.

Loy: insightful commentary on OO versus Conventional methodologies

Now This research: fill the gap left by others by analysis several leading Conventional and OO ADM, point-by-point comparison. 6 analysis+ 5 design

2, Analysis MethodologiesConventional DeMacro Structured analysis Yourdon modern structured analysis Martin Information engineering analysis

Object-Oriented Coad and Yourdon Object-oriented analysis Shlaer and Mellor Object-oriented analysis Bailin Object –oriented requirements

specifications

2.1 Conventional Methodologies

Late 1960s: system development life cycle(SDLC)

-- Evolution of modern methodologiesHardware performanceAdoption of high level language

SDLC : bring new order to develop process

Larger/complicated System built

2.1.1 Structured methodologies

SDLC give develop a measure of control, but little help in improve the productivity and quality of analysis and design.1970’s: structured methodologies developed to promote more effective analysis and more stable /maintainable designs.Early : more largely process-oriented:minor on modeling of entities and data.Critical contributions: Yourdon/Constantine, Demarco, Ward/Meller

2.1.1.1 Tools for structured methodologies

Dataflow diagram(DFD): Process/flow of dataData_dictionary : definition, ”encyclopedias”Entity relationship diagram(ERD):Hierarchy diagram: simple top-down connectionMini-spec: English specification of logic, processState-transition diagram: possible statesStructure chart : architecture of system

2.1.1.2 Three main Structured methodologies in conventionally

Yourdon/Constanine:Demarco’s:Ward& Meller:

2.1.1.2 Yourdon Constanine

Provided a method for developing a system architecture that conformed to following engineering principles: Loosely coupled modules Module cohesionStructure chart : primary tool for modeling a system designDataFlow diagram: Modeling processHierarchy diagram: Defining data structure

2.1.1.2 DeMarco’s

Enlarge structure approach to encompass analysisStructured analysis: modeling of existed systems( in DFD) modeling of the system to be developed (DFD, MS, DD)Emphasis on: modeling processGoal: top-down decomposition of the functions to be performed by the target system

2.1.1.2 Ward& Meller’s

Continuing the structure traditionSignificant extensions to structured analysis to better support modeling of real-time systemAdded ERD and STD to structured analysis

2.1.1.3 modern Structured Analysis

Yourdon update: different from DeMarco’s No longer recommends modeling of current implemented system Adds a preliminary phase to develop an “

essential model” of the system Substitutes a technique” event

partitioning” for top-down functional decomposition as the preferred technique for constructing DFD

Places more emphasis on info. Modeling(ERD) and behavior modeling(STD)

Encourages prototyping

2.1.2 Information Engineering

Late 1970’s~early 1980s, planning and modeling of data

More central role in system development. culminating in the development of data-oriented methodologies : information engineering

1970s relational database model,entity-relationship modeling eling

2.1.2.1 Assumptions of Information Engineering

Two assumptions: Organizational data provides a more stable foundation for a system design than organizational procedure.Data should be viewed as an organizational resources independent of the systems that(current) process the data.

Creation of anew info. Systems subfunction, data administrationTo help analyze, define, store, control organizational data.

2.1.2.2 Martin Info.Engineering

A comprehensive methodology : Extends the data –oriented approach across the entire development life cycle. Evolved forward through the life cycle from

planning and analysis (Structured , backward from programming)

Four Phases:( p25)

Information strategy planning, Business area analysis System design Construction

Project specific

Business Unit

2.1.2.2 Martin Info. Engineering

Much broader range of analysis techniques and modeling tools:

Enterprise modelingCritical-success-factors analysis

Data modelingProcess modeling

Joint-requirements planningJoint application designTime-box methodology

Prototyping

2.1.2.2 Tools of Martin Info.Engineering

Action diagram : detailed procedural logic/structured EnglishBubble chart : low-level diagram, aide to normalizationDataflow diagram:Data_model diagram: Entities/relational, ERDData-Structure diagram:data structure in format appropriateEncyclopedia: more comprehensive data dictionaryEnterprise model: high level define the functional areas of Org.Entity-Process matrix: cross reference to entities and process Process-decomposition diagram: hierarchical chartProcess-dependency diagram:processes diagram with lablesState-transition diagram:

2.2 Object-Oriented Analysis Methodologies

Goal: development of an accurate and complete representation of the problem domain.Quite young: too early to predict as standardThree methodologies: in single point in time ( from 1980~1990), not comprehensive review

2.2.1 Three OO analysis methodologies

Bailin Object_oriented requirements specification(OOS) response to a perceived: incompatibility between conventional structured analysis and object-oriented design.Coad and Yourdon object-oriented analysis Upon the best concepts from Info.modeling, OOPL, knowledge-based systemShlaer and Mellor Object-oriented analysis based on the courses of several years of consulting practice in information modeling

2.2.2 Tools for 3 OO methodologies : Bailin’s

Entity-relationship diagram Entity_dataflow diagram(EDFD) variant on conventional DFD each process contains either an active entity or some function related to an active entityEntity dictionary: a repository of entity names & descriptions

2.2.2. Tools for 3 OO Methodologies: Coad & Yourdon’s

Class and object diagram: 5 layers class & object; structure; subjects; attributes; service.Object-state diagram: simple diagram shows all possible states of an object and the transitions between states.Service chart: flowchart-like diagram of logic within an individual service

2.2.2 Tools for 3 OO methodologies: Shlaer & Mellor’s

Action_dataflow diagramDomain Chart: domains to the implementation of OOAInformation structure diagram:variant of ERD show objectsObject and attributes description: text description of objectObject-Access Model: synchronous interactions state at global system level

Object-communication Model:asynchronous interactionsProcess description: a narrative description of processRelationship Specification: text description of each relationshipState Model: conform the conventional notation for STD.Subsystem access Model: synchronous interaction between OAMSubsystem communication model: asynchronous interaction OCMSubsystem relationship model: relationship of info. Models

2.2.3 Procedures of 3 OO Analysis Methodologies:Bailin’s

Groups functions together only if they “operate on the same data abstraction”Distinguishes between entities & functionsDistinguishes between two classes of entities: active (important operations) passive(lesser important: black box).7 steps procedure: End result of OOS is an entity relationship diagram with a hierarchy of entity DFD.

2.2.3 Procedures of 3 OO analysis methodologies: Bailin’s

(1) Identify key problem domain entities(2) Distinguish between active and passive

entities(3) Establish dataflows between active

entities(4) Decompose entities (or functions)into

subentities and /or functions.(5) Check for new entities(6) Group functions under new entities(7) Assign entities to appropriate domains.

2.2.3 Procedures of 3 OO analysis Methodologies:Coad & Yourdon

OOA results in 5 layers model of the problem domain where each level built on previous layersDefine objects and classes:Define structures: relationship Define subject areasDefine attributes: characteristics of objectsDefine services: Primary Tools: class& object diagrams,service chartsSimilar to: modern structured analysis, Info.ModelingDiffers: providing constructs for modeling exclusive services and message connection

2.2.3 procedures of 3 OO Analysis Methodologies :Shlaer & Mellor’s

Foundation was: Information ModelingTwo other views of target system: state model & a process modelThree way view of the system(info., state, process) is proposed as a complete description of the problem domain.Support 3 essential principles of OO:Classification, inheritance encapsulationSix –step procedure

2.2.3 Procedures of 3 OOAnalysis methodologies: Shlaer& Mellor

6 steps:(1) Develop an information model(2) Define Object life cycle(3) Define the dynamics of

relationships:Time(4) Define system dynamics: time &

control(5) Develop process(4) models(6) Define domains(4) and subsystems.

2.4 Comparison of analysis methodologies

11 modeling dimensions:OO versus conventional analysis: stem from the OO requirement of encapsulated operations Conventional: provide tools to create a functional decomposition of operations, and to model end-to-end processing sequences. Not true in OOA.

All OOA recognize a need to develop some sort of model of system operations

2.4 Comparison of analysisOOA SimilaritiesOverlap significantly(same concept but different notations, terminology)Entities(object) and relationship establish a foundation for later stage of analysisSimilar RED contentsCoad & Yourdon refer explicitly to: OO concepts : inheritance and object decomposition

2.4 Comparison of analysis Methodologies

OOA Differences: 3 areasDepiction of entity states Emphasis in Shlaer & Mellor Coad & Yourdon some Bailin: no formal means ( STD ????)Definition of exclusive servicesCoad&Yourdon, Shlaer most detailed Bailin: less details Attention to attribute modeling: Bailin low emphasis, but Coad & Yourdon did more

2.4 Comparison of OO analysis Methodologies

OOA Differences Shlaer & Mellor support some concepts not address by Coad/Yourdon , or BailinA distinction between asynchronous and synchronous controlThe use of timers to generate future eventsThe concepts of a dynamic relationship and its role in handling contention between concurrent processes.

2.4 Comparison of Analysis Methodologies

OOA: incremental versus radical change radical departure from older process-oriented : in DeMarco structured analysisOnly incremental change from: data-oriented : Martin Information engineeringHere all OOA contain heavy information modeling component.Significant change: Shlaer & Mellor OOA emphasis on modeling object life cycle.

3, Design Methodologies

Design: the process of mapping system requirements defined during analysis to an abstract representation of a specific system-based implementation .meeting cost and performance constraints.

Wasserman et.al. OO structured design(OOSD)Booch OO DesignWirfs-Brock et.al. Responsibility driven design(RDD)

3, Design Methodologies

Conventioal Design Yourdon and Constrantines structured

design Martin information engineering designObject-Oriented Design Wasserman et al. object-oriented

structured design Booch object-oriented design Wirfs-brock et al. responsibility driven

design

3.1 Tools and procedures steps of OOD: Wasserman’s OOSD

OO Structured Design:Goal: Provide a standard design notation that can support every software design( OO & conventional approach both) Provide Detailed notation for describing an architectural design.Primary Tool: OO structured chart ( classical structure chart+ notations )

3.1 Tools & Procedures steps of OO design: Wasserman’s OOSD

OO structure chart: used show multiple inheritance, message passing, polymorphism, dynamic binding.OOSD: supports concept of monitor ( asynchronous processes in real-time systems) Provides a foundation for representing design decisions associated with the physical design

3.1 Tools & Procedures steps for OO design: Booch OOD

Pioneered the field of OODAda Language specific in 1980sExpand and generalize: alternative of structured design not extension of it.Reluctant to prescribe a fixed ordering of phases for OOD. 4 major steps must be performed identify classes and objects Identify the semantics of classes & objects. Identify relationships between classes & objects Implement classes and objects.

3.1, Tools and Procedures of OOD : Booch OOD

Tools:Class diagrams & class templatesModule diagram & templatesObject diagrams: dynamics of some objectsTiming diagram: control and ordering of eventsOperation templates: servicesProcess diagrams & templatesState transition diagram

3.1 Tools and procedures of OOD: Wirfs-Brock: RDD

Responsibility-driven design(RDD)Based on a client-server model of computing Client,servers are different objects.Services and responsibilities correspond to methods.Focus of attention during design on contacts between client and server.More on object interactions and encapsulationTwo phases and 6 steps

3.1 Tools and Procedures of OO Design: Wirfs_Brock RDD

Find classesFind Responsibilities and assign to classesFind collaborations First Exploration phaseDefine hierarchiesDefine subsystemDefine protocols Second analysis Phase

2 phases and 6 steps

3.1 Tools and procedures of OOD: Wrfs_Brock: RRD

ToolsClass cards: physical card to record text describing classesClass Specification : expanded of class cardsCollaborations graph :diagram with pathsHierarchy diagram : inheritance relationshipsSubsystem card : physical card for recordSubsystem specification: same as class specificationVenn diagram : overlap of responsibilities

3.2 Comparison of design Methodologies

OOD versus Conventional DesignNo conventional support: definition of classes, inheritance, methods or message protocols.Both provide tools that define a hierarchy of modulesObject is primary unit of modularity in OOD modules only contain procedural code in conventional design

3.2 Comparison of design methodologies

OOD versus conventional designGreatest overlap: Booch OOD and information Engineering ( tool for defining end-to-end processing sequences) ( detailed definition of procedural logic).

3.2 Comparison of design Methodologies : OOD Differences

In data design Booch detailed procedure for designing data. Wasserman, Wirfs_Brock little on data design.Level of detail in describing the process of OOD Wirfs_Brock: thorough description of design process Booch offers less Wasserman: No procedural descriptionLevel of detail provided by diagram notations Wasserman, Booch :comprehensive notations Wirfs_Brock : less

3.2 Comparison of OOD Incremental /radical change?

OOD: clearly a radical change from process or data-oriented methodologies Important is not whether OO concepts are radically new in some absolute sense, but rather whether they are radically new to the population of potential adopters?

4, Transition from analysis to design

Analysis: a process of extracting and codifying user requirements and establishing an accurate model of the problem domain.Design: process of mapping requirements to a system implementation that conforms to desired cost, performance, and quality parameters

4, Transition from analysis to Design

Blurred line between analysis & designProcess of design leads to better understanding of requirementsCan be performed iteratively, if not concurrently.No direct & obvious mapping exists between structured analysis and structured design.OO, mapping from analysis to design does appear to be potentially more isomorphic.

5, Overall CritiqueOO are less mature than conventional methodologies, none of OO achieved the status of a widely recognized standardThe most coarse-grained ,formally defined entities in OO are objects and classes.None of the OO review here provided a specific model for describe global processes end-to-end.System partitioning, end-to-end process modeling , harvesting reuse appear to be strong candidates for development.

5, Overall CritiqueConventional methodologies fall at different places along the incremental-radical continuum.In Design, all conventional methodologies revert to a process-oriented view in establishing the architecture of program modules. Object orientation will likely be viewed as radical change.Many favors OO as a” better idea” for software development