Patterns in Software Engineering

Similar documents
Software Development Methodologies

Object Oriented Hybrid Software Engineering Process (SEP) model for Small Scale Software Development Firms

Patterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering

Process Patterns for Component-Based Software Development

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

Design Patterns for Complex Event Processing

An Introduction to Process Patterns

PROJECT MANAGEMENT METHODOLOGY OF OBJECT- ORIENTED SOFTWARE DEVELOPMENT

The Living Software Development Process 1

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

U III 5. networks & operating system o Several competing DOC standards OMG s CORBA, OpenDoc & Microsoft s ActiveX / DCOM. Object request broker (ORB)

Evaluating OO-CASE tools: OO research meets practice

Object Oriented Design

A Framework for Virtual Enterprise Support Services

Ontological Representations of Software Patterns

Applying Object-Oriented Principles to the Analysis and Design of Learning Objects

Object-oriented design methodologies

Foundations of Model-Driven Software Engineering

Software Engineering. System Models. Based on Software Engineering, 7 th Edition by Ian Sommerville

Analysis and Design Techniques for Service-Oriented Development and Integration

A Software process engineering course

Presented by Tony Simons

Construction Principles and Design Patterns. Flyweight, Bridge, Builder

Research of Service Granularity Base on SOA in Railway Information Sharing Platform

Software Development Methodologies

Chain of Responsibility

Configuration Management Patterns

Agile Modeling: A Brief Overview

Project Management and Software Development Processes: Integrating PMBOK and OPEN

Change Pattern-Driven Traceability of Business Processes

ProGUM-Web: Tool Support for Model-Based Development of Web Applications

Concern Driven Software Development

Structural Design Patterns Used in Data Structures Implementation


UML: Classes -- Association

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Research Topics in Software Engineering

System development lifecycle waterfall model

Chapter 10 Practical Database Design Methodology and Use of UML Diagrams

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

1.. This UI allows the performance of the business process, for instance, on an ecommerce system buy a book.

Johannes Sametinger. C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria

Software Requirements Specification of A University Class Scheduler

Meta-Model specification V2 D

A comparison of BON and Hodge-Mock. oriented software development methodologies

COCOVILA Compiler-Compiler for Visual Languages

Umbrella: A New Component-Based Software Development Model

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN

IV. The (Extended) Entity-Relationship Model

Background: Business Value of Enterprise Architecture TOGAF Architectures and the Business Services Architecture

And the Models Are System/Software Development Life Cycle. Why Life Cycle Approach for Software?

JOURNAL OF OBJECT TECHNOLOGY

Common Warehouse Metamodel (CWM): Extending UML for Data Warehousing and Business Intelligence

Lecture 9: Requirements Modelling

AMFIBIA: A Meta-Model for the Integration of Business Process Modelling Aspects

How To Develop A Multi Agent System (Mma)

Model-Driven Development - From Frontend to Code

Exercise 8: SRS - Student Registration System

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT

OMG EDA Standards Review

Pattern. seconda parte. Types of patterns. ...other good guidance... some GRASP. design patterns (software design) Types of software patterns

A Framework for Classifying and Comparing Graphical Object Oriented Modeling Languages

Chapter 8 The Enhanced Entity- Relationship (EER) Model


Domain Modeling of Software Process Models

PATTERN-BASED BUSINESS-DRIVEN ANALYSIS AND DESIGN OF SERVICE ARCHITECTURES

Lecture 12: Entity Relationship Modelling

Di 6.1a. Warum naive SOA scheitert Ein Erfahrungsbericht. Adam Bien. January 26-30, 2009, Munich, Germany ICM - International Congress Centre Munich

Designing Real-Time and Embedded Systems with the COMET/UML method

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

Business Administration and Business Informatics for other study programs

11 Tips to make the requirements definition process more effective and results more usable

A Brief Analysis of Web Design Patterns

Using Ontology Search in the Design of Class Diagram from Business Process Model

Database Design Methodology

Chapter -5 SCALABILITY AND AVAILABILITY

TDDC88 Lab 2 Unified Modeling Language (UML)

JOURNAL OF OBJECT TECHNOLOGY

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

4. Multiagent Sys stems Design. Part 2: The PROMETHEUS methodology.

How to contribute to the joint course on software engineering by case studies

GOAL-BASED INTELLIGENT AGENTS

SOMA, RUP and RMC: the right combination for Service Oriented Architecture

TOGAF usage in outsourcing of software development

A Pattern-based Approach to Business Process Modeling and Implementation in Web Services

CMMI and IBM Rational Unified Process

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note

Existing OO Process-Focussed Methods: A Critique of RUP and OPEN from a PM perspective. University of Technology, Sydney Broadway, NSW, Australia

Three Stages for SOA and Service Governance

Approvals Management Engine R12 (AME) Demystified

CONTENT-DRIVEN DESIGN AND ARCHITECTURE OF E-LEARNING APPLICATIONS

SysML Modelling Language explained

Applying Agile Methods in Rapidly Changing Environments

XXI. Object-Oriented Database Design

A pattern based approach to defining the dynamic infrastructure of UML 2.0

Activity Diagram Patterns for Modeling Quality Constraints in Business Processes

Université du Québec à Montréal. Financial Services Logical Data Model for Social Economy based on Universal Data Models. Project

How To Draw A Cell Phone Into A Cellphone In Unminimal Diagram (Uml)

Architecture. Reda Bendraou

Transcription:

Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 15 Process Patterns 1

Process Patterns Results of applying abstraction to recurring processes and process components Create means for developing methodologies through composition of appropriate pattern instances Reflect the state of the practice and are based on wellestablished, refined concepts 2

Process Patterns: Coplien The first recorded reference to the term Process Pattern was made by Coplien in his landmark paper in 1994. Coplien defined process patterns as the patterns of activity within an organization (and hence within its project). Almost all his patterns are relatively fine-grained techniques for exercising better organizational and management practices. Do not constitute a comprehensive, coherent whole for defining a software development process. 3

Process Patterns: Ambler Ambler is the author of the only books so far written on objectoriented process patterns. Defines a process pattern as a pattern which describes a proven, successful approach and/or series of actions for developing software Defines an object-oriented process pattern as a collection of general techniques, actions, and/or tasks (activities) for developing object-oriented t software. 4

Ambler's Process Patterns: Types In the ascending order of abstraction level: 1. Task Process Pattern: depicting the detailed steps to execute a specific task of the process. 2. Stage Process Pattern: depicting the steps that need to be done in order to perform a stage of the process. A stage process pattern is usually made up of several task process patterns. 3. Phase Process Pattern: depicting the interaction of two or more stage process patterns in order to execute the phase to which they belong. In any process, phases are performed in serial order, whereas the stage patterns inside them can be executed iteratively. Ambler proposes many patterns of each type, complete with detailed steps and guidelines for integrating and shaping the patterns into a comprehensive e e process. 5

Ambler's Process Patterns: Task Example Technical Review 6 [Ambler 1998]

Ambler's Process Patterns: Stage Example Program 7 [Ambler 1998]

Ambler's Process Patterns: Phase Example Construct 8 [Ambler 1998]

Object Oriented Software Process (OOSP) [Ambler 1998] 9

Object-oriented Process, Environment and Notation (OPEN) First introduced in 1996 as the result of the integration of four methodologies: MOSES, SOMA, Synthesis and Firesmith; later deeply influenced by BON and OOram Presented as a framework called OPF (OPEN Process Fame Framework) ok) Contains a process component library individual process-component instances can be selected and put together to create a specific process instance Some process components are in fact process patterns 10

OPEN Process Framework (OPF) A process metamodel defining five classes of components and guidelines for constructing customized OPEN processes 11 [Firesmith and Henderson-Sellers 2001]

OPF: Component Classes Work Products: any significant thing of value (document, diagram, model, class, application) developed during the project. Languages: the media used to document work products, such as natural languages, modeling languages such as UML or OML, and implementation languages such as Java, SQL, or CORBA-IDL. Producers: active entities (human or nonhuman) that t develop the work products. Work Units: operations that are performed by producers when developing work products. One or more producers develop a work product during the execution of one or more work units. Stages: durations or points in time that provide a high-level organization to the work units. 12

OPF: Work Units Activity: a major work unit consisting of a related collection of jobs that produce a set of work products Coarse-grained descriptions of what needs to be done Some important instances defined by OPEN are: Project Initiation, Requirements Engineering, Analysis and Model Refinement, Project Planning, and Build Task: Smallest atomic unit of work Small-scale jobs associated with and comprising the activities Resulting in the creation, modification, or evaluation of one or more work products Technique: Define how the jobs are to be done Ways of doing the tasks and activities 13

OPF Repository Contains a range of predefined instances for each class and subclass in the OPF metamodel; e.g.: 30 predefined instances of Activity 160 instances of Task 200 instances of Techniques 76 instances of Role 14

OPEN: Process Instantiation The following tasks are performed (through applying the guidelines proposed by OPF) in order to instantiate, tailor and extend an OPEN process: 1. Instantiating the OPEN library of predefined component-classes to produce actual process components 2. Choosing the most suitable process components from the set of instantiated components 3. Adjusting the fine detail inside the chosen process components 4. Extending the existing class library of predefined process components to enhance reusability 15

OPF: Task-Activity Matrix 16 [Henderson-Sellers 2003]

OPF: Technique-Task Task Matrix 17 [Henderson-Sellers 2003]

References Coplien, J. O., A development process generative pattern language. In Proceedings of the First Annual Conference on Pattern Languages of Programming g (PLoP), 1994. Ambler, S. W., Process Patterns: Building Large-Scale Systems Using Object Technology. Cambridge University Press, 1998. Firesmith, D., Henderson-Sellers, B., The OPEN Process Framework: An Introduction. Addison-Wesley, 2001. Henderson-Sellers, B., Method engineering for OO systems development. CACM 46, 10 (October), 73-78, 2003. 18