Software Development Methodologies

Similar documents
Software Development Methodologies

Introduction of RUP - The Rational Unified Process

Development Process Bennett, McRobb and Farmer 1

The good news. 34% of software projects succeed. Standish Group, CHAOS Report, 2003

Rational Unified Process

Object-Oriented and Classical Software Engineering

Object-Oriented and Classical Software Engineering THE SOFTWARE PROCESS 9/17/2017. CHAPTER 3 Slide 3.2. Stephen R. Schach. Overview Slide 3.

Software Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

Sistemi ICT per il Business Networking

Software Processes. Objectives. Topics covered. The software process. Waterfall model. Generic software process models

Objectives. The software process. Topics covered. Waterfall model. Generic software process models. Software Processes

Topics covered. Software process models Process iteration Process activities The Rational Unified Process Computer-aided software engineering

Process, Models, Methods, Diagrams Software Development Life Cyles. Part - II

The software process

Software Modeling & Analysis. - Fundamentals of Software Engineering - Software Process Model. Lecturer: JUNBEOM YOO

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

The Unified Software Development Process

Software Development Methodologies. CSC 440: Software Engineering Slide #1

7. Model based software architecture

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

Component-Based Software Engineering. ECE493-Topic 5 Winter Lecture 27 Component Based Development Process (Part A)

DRAFT. Effort = A * Size B * EM. (1) Effort in person-months A - calibrated constant B - scale factor EM - effort multiplier from cost factors

Chapter 1 Software Process

Unified Process and Testing with EasyAccept. Peter Dolog dolog [at] cs [dot] aau [dot] dk E2-201 Information Systems February 22, 2007

Software development activities

RUP and XP Part II: Valuing Differences

Note 10: Software Process

Introduction to Software Engineering

Software Reviews Since Acquisition Reform Architecture-Driven Considerations

Chapter 3 Software Process Model

Lecture 1: Processes, Requirements, and Use Cases

TOWARDS DEFINING SOFTWARE DEVELOPMENT PROCESSES IN DO-178B WITH OPENUP

Chapter. Redesigning The Organization With Information Systems

1fJ.- HEWLETT. Architecting for Large-Scale Systematic Component Reuse. Martin L. Griss Software Technology Laboratories HPL July, 1998

Unifying Systems and Software Teams: A Holistic Approach to Systems Development

Coverage Analysis and Improvement of the Role Definitions of the Bombardier Software Engineering Process

Babu Madhav Institute of Information Technology, UTU 2017

Software Engineering

Requirements Engineering and Agile Methodology

Planning a Project Using the Oracle Unified Method (OUM) An Iterative and Incremental Approach. An Oracle White Paper February 2011

SUSE Unified Delivery Process

CMMI-DEV V1.3 CMMI for Development Version 1.3 Quick Reference Guide

Scaling Up & Scaling Down

SEI Architecture Techniques complementary to the RUP Stuart Kerrigan, Richard van Schelven Principal Engineers Data Networks

Functional requirements and acceptance testing

Softwaretechnik. Lecture 02: Processes. Peter Thiemann SS University of Freiburg, Germany

Incorporating Model-Driven Techniques into Requirements Engineering for the Service-Oriented Development Process

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

Quality Management of Software and Systems

Prof. Dr. Liggesmeyer, 1. Quality Management of Software and. Processes and QM. Systems. QMSS Processes and QM

Software Development Methodologies

An Oracle White Paper February Oracle Unified Method (OUM) Oracle s Full Lifecycle Method for Deploying Oracle-Based Business Solutions

A Guide to the Business Analysis Body of Knowledge (BABOK Guide), Version 2.0 Skillport

Requirements Engineering. Massimo Felici Room 1402, JCMB, KB

A Conceptual Framework for Architecture Alignment Guidelines. Project GRAAL WP1 Whitepaper

Enterprise Architecture: an ideal discipline for use in Supply Chain Management

Software Lifecycle Models

Quality Management of Software and Systems: Processes and QM

A New Divide & Conquer Software Process Model

Project Plan. CxOne Guide

Role of Technical Complexity Factors in Test Effort Estimation Using Use Case Points

03. Perspective Process Models

Workflow-Processing and Verification for Safety- Critical Engineering: Conceptual Architecture Deliverable D6.1

Expanding the Discipline of Enterprise Architecture Modeling to Business Intelligence with EA4BI

Software Engineering II - Exercise

Process-Oriented Requirement Analysis Supporting the Data Warehouse Design Process A Use Case Driven Approach

2/14/2013. Software Engineering. Session 3 Sub-Topic. 1 Strategy Alignment Elicitation Methodology. Dr. Jean-Claude Franchitti

Component-based Development Process and Component Lifecycle

Architecture Practice: a fundamental discipline for information systems

Program Lifecycle Methodology Version 1.7

making money from customer use of kiosk attracting more customers to the store saving money if the kiosk replaces manual operations

Processes and Life- Cycles. Kristian Sandahl

Core Issues Affecting Software Architecture in Enterprise Projects

The Product Creation Process

Software Engineering Modern Approaches

CHAPTER 1. Business Process Management & Information Technology

The Top Thrill Dragster

Pertemuan 2. Software Engineering: The Process

Implementing a Data Warehouse with Microsoft SQL Server

Course Organization. Lecture 1/Part 1

Umeå University Department of Computing Science SE UMEÅ SWEDEN

2. RATIONAL UNIFIED PROCESS (RUP)

Significance of Quality Metrics during Software Development Process

Assessing Quality in SysML Models

UWE has obtained warranties from all depositors as to their title in the material deposited and as to their right to deposit such material.

Introduction to Software Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 06 09/08/2016

[Name] [ ID] [Contact Number]

SWE 211 Software Processes

Product Line Engineering Lecture PL Architectures I

Redesigning the Organization with Information Systems

Command and Control Software Development Lessons Learned. Lt Col Michael D. Sarchet Deputy Director, Space Systems Command and Control Division

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF INFORMATION TECHNOLOGY QUESTION BANK

Global Information Systems: Development Frameworks. Prof. Dr. Jan M. Pawlowski Autumn 2013

Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at

Smart Inventory Management System

Expand application range with respect to consider the whole system. Consider state of the art and adapt actual regulations and standards

Object-Oriented & Classical Soft Engineering

Requirements Engineering

ignoring agile, size and frequency, sales, , 280

Successful Service Virtualization

Transcription:

Software Development Methodologies Lecturer: Raman Ramsin Lecture 4 Integrated Object-Oriented Methodologies: OPM and RUP 1

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 techniques. Later evolved into a full-lifecycle methodology (2002). 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. 2

OPM: Process Consists of three high-level subprocesses: Initiating: preliminary analysis of the system, 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 activities performed during the operational life of the system 3

OPM: Initiating Identifying: the needs and/or opportunities justifying the 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 are available. Initializing: the high-level requirements of the system are determined. 4

OPM: Developing Analyzing: typically involves: eliciting the requirements modeling the problem domain and the system in Object Process Diagrams (OPD) and their Object Process Language (OPL) equivalents selecting a skeletal architecture for the system Designing: typically involves: adding implementation-specific details to the models refining the architecture of the system by determining its hardware, middleware and software components designing 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: coding and testing the software components setting up the hardware architecture installing the software platform (including the middleware) 5

OPM: Deploying Assimilating: introducing the implemented system into the user environment, mainly involving: Training generation of appropriate documents data and system conversion acceptance testing. Using and Maintaining Evaluating Functionality: [typically performed during the Using-and- Maintaining activity] checking that the current system possesses the functionality needed to satisfy the requirements Terminating: declaring the current system as dead applying the usual post-mortem procedures prompting the generation of a new system 6

Object Process Diagram (OPD) 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 7

Object Process Diagram OPD 8 [Dori 2002]

Object Process Language OPD and OPL 9 [Dori 2002]

OPM: Strengths and Weaknesses Strengths Simplicity of process Some 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) Strong structural modeling at the inter-object level 10

OPM: Strengths and Weaknesses Weaknesses Process is defined at a shallow level, with ambiguities and inadequate attention to detail Seamlessness and traceability are disrupted due to lack of behavioural models (especially at the inter-object and intra-object levels, directly affecting the identification and design of class operations) No basis in system-level behaviour and usage scenarios Poor behavioural modeling No formalism Poor intra-object structural modeling Models are prone to over-complexity No modeling of physical configuration 11

Rational Unified Process (RUP) Initial version officially released in 1998 Revised versions introduced in 2000 and 2003 Developed at Rational Corporation by the three principal developers of the OMT, Booch and OOSE (Objectory) methodologies: Rumbaugh, Booch and Jacobson A non-proprietary, somewhat less complex variant called USDP (Unified Software Development Process) was introduced in 1999 12

Rational Unified Process (RUP) UML-based Use case driven, a feature inherited from OOSE Iterative-incremental, with the overall process resembling the Micro-in-Macro process of the Booch methodology Covering the full generic lifecycle 13

RUP: Process Phases Overall development cycle consists of four phases: Inception: defining the scope and objectives of the project, as well as the business case Elaboration: capturing the crucial requirements, developing and validating the architecture of the software system, and planning the remaining phases of the project Construction: implementing the system in an iterative and incremental fashion based on the architecture developed in the previous phase Transition: testing and releasing the system 14

RUP: Process Iterations and Disciplines Each phase can be further broken down into iterations An iteration is a complete development loop resulting in a release of an executable increment to the system Each iteration consists of nine work areas (disciplines) performed during the iteration For each discipline, RUP defines sets of: artefacts (work products) activities (units of work on the artefacts) roles (responsibilities taken on by development team members) 15

RUP: Process Disciplines 1. Business Modeling: concerned with describing business processes and the internal structure of a business. A Business Use Case Model and a Business Object Model are developed. 2. Requirements Management: concerned with eliciting, organizing, and documenting requirements. The Use Case Model is produced. 3. Analysis and Design: concerned with creating the architecture and the design of the software system; results in a Design Model and optionally an Analysis Model. 4. Implementation: concerned with writing and debugging source code, unit testing, and build management. Source code files, executables, and supportive files are produced. 5. Test: concerned with integration-, system- and acceptance testing. 16

RUP: Process Disciplines (Contd.) 6. Deployment: concerned with packaging the software, creating installation scripts, writing end-user documentation and other tasks needed to make the software available to its end-users. 7. Project Management: concerned with project planning, scheduling and control. 8. Configuration and Change Management: concerned with versionand release management and change-request management. 9. Environment: concerned with adapting the process to the needs of a project or an organization, and selecting, introducing and supporting development tools. 17

RUP: Process Disciplines in Iterations 18 [Kruchten 2003]

RUP: Process Disciplines in Iterations and Phases [Kruchten 2003] 19

RUP: Process Inception Phase Tasks include: 1. Describe the initial requirements. 2. Develop and justify the business case for the system. 3. Determine the scope of the system. 4. Identify the people, organizations, and external systems that will interact with the system. 5. Develop initial risk assessment, schedule, and estimates. 6. Configure the initial system architecture. 20

RUP: Process Elaboration Phase Tasks include: 1. Produce an architectural baseline for the system. 2. Evolve the requirements model to 80% completion. 3. Draft a coarse-grained project plan for the construction phase. 4. Ensure that critical tools, processes, standards, and guidelines have been put in place for the construction phase. 5. Understand and eliminate high-priority risks of the project. 21

RUP: Process Construction Phase Tasks include: 1. Describe the remaining requirements. 2. Develop the design of the system. 3. Ensure that the system meets the needs of its users and fits into the organization s overall system configuration. 4. Complete component development and testing, including both the software product and its documentation. 5. Minimize development costs by optimizing resources. 6. Achieve adequate quality. 7. Develop useful versions of the system. 22

RUP: Process Transition Phase Tasks include: 1. Test and validate the complete system. 2. Integrate the system with existing systems. 3. Convert legacy databases and systems to support the new release. 4. Train the users of the new system. 5. Deploy the new system into production. 23

RUP: Strengths and Weaknesses Strengths Iterative-incremental process Well-documented process Based on functional, behavioural, and structural modeling of the problem domain and the system Traceability supported through use cases Seamlessness (though with hiccups, e.g. transforming use cases to sequence diagrams) Architecture-centric process (which necessitates early specification of an architectural blueprint) 24

RUP: Strengths and Weaknesses Strengths (Contd.) Customizability addressed Risk-based development, aimed at mitigating the risks before undertaking the tasks Support for structural, behavioural and functional modeling at all levels (problem domain to objects; logical to physical) Rich modeling language (UML), especially in structural and behavioural modeling features Support for formalism (through UML/OCL) 25

RUP: Strengths and Weaknesses Weaknesses Very complex process The process is confusing to those involved. The iterativeincremental nature of the process further complicates the issue. Although advertised as customizable, configuring the process is a formidable task in itself. Since the process is very complex, not having a maintenance phase, on the grounds that it can be performed by iterating the whole process as a cycle, is not convincing. Prohibitive number of models Strict adherence to UML, which is not necessarily constructive, especially since UML is not perfect and can exacerbate the model inconsistency problem. 26

References Dori, D., Object-Process Methodology: A Holistic Systems Paradigm. Springer, 2002. Kruchten, P., Rational Unified Process: An Introduction, 3rd ed. Addison-Wesley, 2003. 27