software development...

23
Software Development Methodologies Lecturer: Raman Ramsin Lecture 5 Integrated Object-Oriented Methodologies: OPM and Catalysis Department of Computer Engineering 1 Sharif University of Technology

Upload: others

Post on 08-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies

Lecturer: Raman Ramsin

Lecture 5 Integrated Object-Oriented Methodologies: OPM and Catalysis

Department of Computer Engineering1

Sharif University of Technology

Page 2: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies – Lecture 5

Object Process Methodology (OPM)Object Process Methodology (OPM)Introduced by Dori in 1995

Primarily intended as a novel approach to analysis modeling, combining the classic process-oriented modeling approach with object-oriented modeling techniquesmodeling techniques

Has evolved into a full-lifecycle methodology

Only one type of diagram is used for modeling the structure, function and behaviour of the system.

Single-model approach avoids the problems of model multiplicity, but the model produced can be complex and hard to grasp.

OPM process is little more than an abstract framework, and resembles the generic software development process.

Department of Computer Engineering2

Sharif University of Technology

g p p

Page 3: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies – Lecture 5

OPM: Process

Consists of three high-level subprocesses:Consists of three high level subprocesses:

Initiating: preliminary analysis of the system, g p y y y ,determining the scope of the system, the required resources, and the high-level requirements

Developing: with the focus on detailed analysis, design and implementation of the system

Deploying: Introduction of the system into the user environment and subsequent maintenance activitiesenvironment, and subsequent maintenance activities performed during the operational life of the system

Department of Computer Engineering3

Sharif University of Technology

Page 4: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies – Lecture 5

OPM: Initiatingg

Identifying: the needs and/or opportunities justifying y g pp j y gthe development of the system are determined.

Conceiving: the system is “conceived” through determining its scope and ensuring that the resources necessary for the development effort areresources necessary for the development effort are available.

Initializing: the high-level requirements of the system are determined.

Department of Computer Engineering4

Sharif University of Technology

Page 5: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies – Lecture 5

OPM: Developingp g

Analyzing: typically involves: eliciting the requirementseliciting the requirementsmodeling the problem domain and the system in Object Process Diagrams (OPD) and their Object Process Language (OPL) equivalentsselecting a skeletal architecture for the system

Designing: typically involves: adding implementation-specific details to the models

fi i th hit t f th t b d t i i it h drefining the architecture of the system by determining its hardware, middleware and software componentsdesigning the software components by detailing the process logic, the database organization, and the user interface

Implementing: constructing the components of the system and linking them together; typically involves:

di d t ti th ft tcoding and testing the software componentssetting up the hardware architectureinstalling the software platform (including the middleware)

Department of Computer Engineering5

Sharif University of Technology

Page 6: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies – Lecture 5

OPM: Deployingp y gAssimilating: introducing the implemented system into the user environment, mainly involving:

TrainingTraininggeneration of appropriate documentsdata and system conversionacceptance testingacceptance testing.

Using and Maintaining

Evaluating Functionality: [typically performed during the Using-and-Maintaining activity] checking that the current system possesses the f ti lit d d t ti f th i tfunctionality needed to satisfy the requirements

Terminating:declaring the current system as deadapplying the usual post-mortem proceduresprompting the generation of a new system

Department of Computer Engineering6

Sharif University of Technology

Page 7: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies – Lecture 5

Object Process Diagram (OPD)j g ( )Uses elements of types object and process to model the structural, functional and behavioural aspects

Notation was later expanded to also include elements of type state, which were particularly useful in modeling real-time systems

Every OPD can also be expressed in textual form, using a constrained natural language called the OPL (Object-Process Language)

A set of OPDs is built for the system being developed, typically forming a hierarchy

Multi-dimensional nature makes it difficult to focus on a particular aspect of the system without being distracted by other aspects.

Some important behavioural aspects (such as object interactions, especially with regard to message sequencing) cannot be adequately captured

Department of Computer Engineering7

Sharif University of Technology

Page 8: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies – Lecture 5

Object Process Diagramj g

OPD

Department of Computer Engineering8

Sharif University of Technology

[Dori 2002]

Page 9: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies – Lecture 5

Object Process Languagej g g

OPD and OPL

Department of Computer Engineering9

Sharif University of Technology

[Dori 2002]

Page 10: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies – Lecture 5

OPM: Strengths and Weaknesses

Strengths

Simplicity of processSome degree of seamless development and traceability toSome degree of seamless development and traceability to requirements due to the singularity of the model type used (disrupted, though, because of OPD’s limited modeling capacity)Innovative structural and functional modeling in a single type of diagram (OPD)type of diagram (OPD)Strong structural modeling at the inter-object level

Department of Computer Engineering10

Sharif University of Technology

Page 11: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies – Lecture 5

OPM: Strengths and Weaknesses

Weaknesses

Process is defined at a shallow level, with ambiguities and inadequate attention to detailS l d t bilit di t d d t l kSeamlessness and traceability are disrupted due to lack of behavioural models (especially at the inter-object and intra-object levels, directly affecting the identification and d i f l ti )design of class operations)No basis in system-level behaviour and usage scenariosPoor behavioural modelingPoor behavioural modelingNo formalismPoor intra-object structural modelingj gModels are prone to over-complexityNo modeling of physical configuration

Department of Computer Engineering11

Sharif University of Technology

Page 12: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies – Lecture 5

CatalysisCatalysis

Introduced by D’Souza and Wills in 1995, originally as a component-Introduced by D Souza and Wills in 1995, originally as a componentbased formalization of OMT deeply influenced by Fusion, Objectory, Booch and Syntropy

A UML-based, refined version of the methodology appeared in 1998

Based on fractal modeling and gradual refinementBased on fractal modeling and gradual refinement

Proposes a specific process for developing business systems

Proposes a set of process patterns to be selected and applied according to the characteristics of the project in hand

Department of Computer Engineering12

Sharif University of Technology

Page 13: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies – Lecture 5

Catalysis: Business Systems Development Processy y p

1. Identify and Model the Requirements: exploration and modeling of the problem domain and the requirements of the systemproblem domain and the requirements of the system

2. Develop the System Specification: identifying and modeling the functionality and high-level class-structure of the system Designing thefunctionality and high-level class-structure of the system. Designing the User Interface (UI) usually overlaps with this activity.

3 Develop the Architectural Design:3. Develop the Architectural Design: 1. designing the internal component (logical) architecture of the system2. designing the technical (physical) architecture defining the domain-

independent parts of the system such as the hardware and softwareindependent parts of the system, such as the hardware and software platforms

3. designing of the database architecture should also start at this stage

4. Develop the Component Internal Design: designing the internal detail of the components, which are then implemented and tested

Department of Computer Engineering13

Sharif University of Technology

Page 14: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies – Lecture 5

Catalysis: Business Systems Development Processy y p

Department of Computer Engineering14

Sharif University of Technology

[D’Souza and Wills1998]

Page 15: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies – Lecture 5

Catalysis: Business Systems Development Processy y p1. Identify and Model the Requirements

Explore the problem domain and construct the Business Model which contains:Explore the problem domain and construct the Business Model, which contains:class diagrams depicting the object-types (analogous to classes) in the problem domainspecial collaboration diagrams showing the actions that problem domain objects performsequence diagrams showing the sequence of the actions

l li ti th t d t d fi th bl d ia glossary, listing the terms used to define the problem domain

Identify and model the functional requirements of the system: using a System Context Diagram showing the system as an object in the problem domain interacting with g g y j p gother objects. Actions on the system are use cases, and scenarios of interaction are expressed by sequence diagrams

Identify non functional requirements: e g performance reliability and reuseIdentify non-functional requirements: e.g. performance, reliability, and reuse

Identify and model the known platform or architectural constraints: machines, operating systems, middleware, legacy systems, and interoperability requirements areoperating systems, middleware, legacy systems, and interoperability requirements are identified and modeled as package diagrams. Interactions are captured in collaboration diagrams and sequence diagrams

Id tif th j t d l i t i t

Department of Computer Engineering15

Sharif University of Technology

Identify the project and planning constraints

Page 16: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies – Lecture 5

Catalysis: Business Systems Development Processy y p

2. Develop the System Specification

The system specification mainly consists of:

A class (type) diagram showing the system as a type, emphasizing its attributes (internal types) and its associationsemphasizing its attributes (internal types) and its associations with other types in the problem domain

A set of operations, depicting the actions that the system performs (functionality), usually captured in statecharts

Department of Computer Engineering16

Sharif University of Technology

Page 17: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies – Lecture 5

Catalysis: Business Systems Development Processy y p

3. Develop the Architectural Design

Identify the components comprising the system and their architecture:Component (Application) Architecture is usually described with package diagramsdiagrams. Specification types (system attributes) identified during the previous activity are split across different components. Interaction among components is modeled through collaborationInteraction among components is modeled through collaboration diagrams.

Identify the architecture of the domain-independent parts of the system:d l d i th T h i l A hit t i k di dmodeled in the Technical Architecture. using package diagrams and

collaboration diagrams. Components include:hardware and software platforms infrastructure components (such as middleware and databases)infrastructure components (such as middleware and databases)utilities for logging/exception-handling/start-up/shutdowndesign standards and toolsthe choice of component architecture (such as JavaBeans or COM)

Department of Computer Engineering17

Sharif University of Technology

the choice of component architecture (such as JavaBeans or COM)

Page 18: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies – Lecture 5

Catalysis: Business Systems Development Processy y p

4. Develop the Component Internal Design

Each and every component is designed, implemented and tested.

Design is done by identifying the programming language interfaces and classes or pre-existing components thatinterfaces and classes, or pre-existing components, that constitute the component.

Th hit t f th t i id h t iThe architecture of these parts inside each component is modeled using a package diagram.

Interactions are shown by sequence and collaboration diagrams.

Department of Computer Engineering18

Sharif University of Technology

Page 19: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies – Lecture 5

Catalysis: Process Patternsy

Object Development from Scratch: for when there is no i iexisting system

Reengineering: for when the objective is to improve anReengineering: for when the objective is to improve an existing system

Business Process Improvement: for applying object technology to organizations and systems other than

ftsoftware

Separate Middleware from Business Components: forSeparate Middleware from Business Components: for handling legacy systems as well as for insulating a system from certain changes in technology

Department of Computer Engineering19

Sharif University of Technology

Page 20: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies – Lecture 5

Catalysis: Strengths and Weaknesses

Strengths

Based on requirements identified and modeled as system functionality and behaviour in the context of the problem domain: the system is modeled as a class – type – among other classes in the problem domainSeamless development through uniform approach to modelingSeamless development through uniform approach to modeling at different levelsTraceability to requirements via usage scenarios and use-case-Traceability to requirements via usage scenarios and use casebased testingGradual refinement from problem domain to the system boundary, then to the component architecture of the system, and finally to the class architecture of the components

Department of Computer Engineering20

Sharif University of Technology

Page 21: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies – Lecture 5

Catalysis: Strengths and Weaknesses

Strengths (Contd.)

Process patterns identified for different kinds of projectsSpecial attention to non-functional requirementsSpecial attention to non-functional requirements Adequate complexity managementSpecial attention to physical configuration of the system earlySpecial attention to physical configuration of the system early in the processSmooth transition from logical to physical aspectsComponent based approachFractal modelingRich structural and behavioural modeling at all levels. Functional modeling limited to UML’s capabilities

Department of Computer Engineering21

Sharif University of Technology

Page 22: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies – Lecture 5

Catalysis: Strengths and Weaknesses

Weaknesses

Heavy process; fractal modeling and process patterns help, but are not enoughbut are not enough

Focus mostly confined to business systems, more or less y y ,limiting the applicability of the process

Department of Computer Engineering22

Sharif University of Technology

Page 23: Software Development Methodologiesce.sharif.edu/courses/88-89/1/ce724-1/resources/root/Slides/SDM... · Software Development Methodologies – Lecture 5 Object Process Methodology

Software Development Methodologies – Lecture 5

R fReferences

Dori, D., Object-Process Methodology: A Holistic Systems Paradigm. Springer, 2002.

D’Souza, D. F., and Wills, A. C., Objects, Components, and Frameworks with UML: The Catalysis Approach. Addison-W l 1998Wesley, 1998.

Department of Computer Engineering23

Sharif University of Technology