1 Introduction to the Eclipse Process Framework. Made available under EPL v1.0 2 EPF is an Open...

49
1 Introduction to the Eclipse Process Framework

Transcript of 1 Introduction to the Eclipse Process Framework. Made available under EPL v1.0 2 EPF is an Open...

1

Introduction to the Eclipse Process Framework

Made available under EPL v1.0 2

• EPF is an Open Source project within the Eclipse Foundation

• The goals of EPF are to provide:– An extensible framework and tooling for authoring, configuring and

publishing processes

– Exemplary processes - first delivered is OpenUP

• EPF Project initiated in January 2006.

• EPF is NOT:– Only applicable for Eclipse Java development.

– Intended to create the “perfect process”

The EPF Project: Overview

Made available under EPL v1.0 3

The EPF Project: Two Audiences

• Process Authors and Coaches (Process Management Team)– Tooling for creating and publishing processes– Foundational process for starting point– Libraries of additional content that can be plugged-in

• Process Consumers (Project Team)– Published website of process content for simple browsing– Guidance in the form of checklists, concepts, guidelines– Browse the content adapted to your experience level

4

SPEM 2.0

5

EPF uses SPEM 2.0

• SPEM = Software Process Engineering Meta-model• Although the title implies Software Processes, any

process can be represented using SPEM.

6

Basic Concepts – Method Library• Method Library

– All Method Elements are stored in a Method Library

• Method Plug-in– A Method Plug-in represents a

physical container for Method Packages and Process Packages. It defines a largest granularity level for the modularization and organization of method content and processes.

• Method Configuration– a logical subset of a Method

Library

• Delivery Process– a complete and integrated

approach for performing a specific type of project.

Base Concepts Plug-in

OpenUP Plug-in

DSDM Plug-in for OpenUP

depends on

extends

OpenUP Library

Made available under EPL v1.0 7

Basic Concepts - Method Library• Libraries contain

– Method plug-ins– Configurations

• The OpenUP library has:– Three method plug-ins

• base_concepts• dsdm_openup• openup

– Two delivery processes • Openup_DSDM• openup_lifecycle

– Two configurations • OpenUP• OpenUPDSDM

Made available under EPL v1.0 8

Basic Concepts – Method Content, Process

• Method Content (Who, What, Why, How)– Highly re-useable information– Definition of Roles, Tasks, Work

Products and associated relationships

– Includes Guidance and Categories– No timing information

• Process (When)– Sequence of Phases, Iterations,

Activities and Milestones that define the development lifecycle.

– Defines When tasks are performed via Activity Diagrams and/or Work Breakdown Structures

9

SPEM 2.0

Method Content

Made available under EPL v1.0 10

Basic Concepts - Role

• Roles define a set of related skills, competencies and responsibilities.

• Roles are not individuals

• Individuals on the development team may play multiple roles.

• Roles Perform Tasks

• Roles are Responsible for Work Products.

Made available under EPL v1.0 11

Basic Concepts – Work Product• Work Products (in most cases)

represent the tangible things used, modified or produced by a Task.

• Roles use Work Products to perform tasks and produce Work Products in the course of performing tasks.

• Work Products are the responsibility of a Role.

• There are three types of work products:

• Artifact: typically a configuration managed item

• Deliverable: required customer/stakeholder deliverable

• Outcome: “intangible” result of a task such as an installed server or tool.

Made available under EPL v1.0 12

Basic Concepts - Task• A Task defines an assignable

unit of work (usually a few hours to a few days in length).

• Tasks are performed by Roles (one primary, and optionally additional supporting roles).

• Tasks have a clear purpose, and provide step-by-step descriptions of the work that needs to be done to achieve the goal.

• Tasks modify or produce Work Products.

• Tasks do not define when they are performed in the lifecycle.

Made available under EPL v1.0 13

Basic Concepts - Guidance• Guidance may be

associate with Roles, Tasks, and Work Products.

• Different types of Guidance depending upon purpose.

• Use Guidance for detailed methodology and supporting information. This will simplify tailoring.– For example, Tasks should

tell you “what” needs to be done, Guidelines provide detailed “how to”.

Types of Guidance:

• Checklist

• Concept

• Example

• Guideline

• Estimate

• Considerations

• Practice

• Report

• Reusable Asset

• Roadmap

• Supporting Material

• Template

• Term Definition

• Tool Mentor

• Whitepaper

Made available under EPL v1.0 14

Basic Concepts – Guidance ExamplesHmmm…so I need to plan the project?

What’s Agile Estimation?

What should be in the Project Plan?

Walk me through planning?

Show me an example.

Did I forget anything?

Made available under EPL v1.0 15

Basic Concepts - Categories

• Categories– Used to group related method

elements.– There are 5 Standard Categories

• Discipline: grouping of related tasks• Domain: grouping of related WP• Work Product Kind: similar to Domain• Role Set: Grouping of related Roles• Tool: Grouping of Tools

– Categories may be nested

– You can define your own Custom Categories

– Elements can be categorized via their property editor, or via Category properties.

– Used to build views in published website (we will see this later).

16

SPEM 2.0

Process Content

Made available under EPL v1.0 17

Basic Concepts: Capability Patterns

• Capability Patterns define the sequence of related Tasks, performed to achieve a greater purpose.

• Task can be specialized for the given context (ex. suppress steps, work products)

Role Descriptor

(instance of a Role)

Task Descriptor

(instance of Task)

Work Product Descriptor

(instance of a WP)

Made available under EPL v1.0 18

Basic Concepts: Capability Patterns

• Capability Patterns may be nested and viewed graphically• An Activity is an instance of a Capability Pattern.

Activity

(instance of a capability pattern)

Made available under EPL v1.0 19

Basic Concepts: Delivery Process

• Defined using Work Breakdown Structures and/or Activity Diagrams.

• Defines end-end full-lifecycle process

• May include Iterations, Phases, Milestones (types of Activities)

• This is just one example, any other lifecycle can be defined.

Made available under EPL v1.0 20

Advanced Concepts: Method Variability

• Mechanism that allows you to customize method content without directly modifying the original content.

• Similar to inheritance in OO programming.– Permits re-use with specialization.

• For example, if plug-in B that extends elements in plug-in A:– Original elements in plug-in A are intact - all the changes are

defined in your plug-in B• Content variability is useful, for example:

– To change the description of an existing role

– To add steps to an existing task

– To add guidance to an existing task, and so on.

Made available under EPL v1.0 21

Advanced Concepts: Method Variability

• There are four types of method variability:– Contribute: The contributing element adds content to the base element.

Resulting published element is the base element + contributing element.– Extends: The contributing element inherits the content of the base element

and specialized some or all of it. Both the base element and the extending element are published.

– Replace: The replacing element replaces the base element. The resulting published element is the replacing element.

– Extends-Replace: Similar to extends, however the base element is not published.

*Examples taken from “Integrating Personal Practices into a Development Process” by Brian Lyons, NumberSix Software

Made available under EPL v1.0 22

Advanced ConceptsProcess Variability

• Similar re-use mechanism are available for Process content as well.

• In addition, Activities may also be created from CPs in the following ways:

– Extends: The activity inherits the properties of the capability pattern. Updates to the capability pattern are automatically reflected in the activity (Green colour in WBS in EPF Composer).

– Copy: An activity is created based on the capability pattern. It is not synchronized with the capability pattern (Black colour in WBS).

– Deep Copy: Similar to copy, but applied recursively to activities.

– Local Variability: When a capability pattern is defined (either by Extends or Copy) local variability may be done (ex. Suppress steps in a task descriptor, change performing role, etc.).

Made available under EPL v1.0

23

EPF Composer Introduction

EPF Composer

24

Made available under EPL v1.0 25

EPF Composer

• EPF Composer is built upon the Eclipse platform

• Supports many of the Eclipse plug-ins

• Different Views present specific information

– For example, Library view shows plug-ins and their content

• Perspectives group related views to support a workflow

• Standard Perspectives are:

– Authoring: for editing method content

– Browsing: for previewing published elements

Made available under EPL v1.0 26

EPF ComposerAuthoring Perspective

Library View

Configuration View

Task Editor (form based)

Authoring Perspective

Made available under EPL v1.0 27

EPF ComposerAuthoring Perspective

Form based plain text or…

…Rich Text editors

Made available under EPL v1.0 28

EPF ComposerBrowsing Perspective

Configuration View

Preview View

Browsing Perspective

Made available under EPL v1.0 29

Basic ConceptsConfiguration: Plug-in and Package Selection• Select sub-set of method library for publishing to HTML or exporting to

MS Project or XML

Configurations

Select ContentSelect

ContentSelect

Content

Made available under EPL v1.0 30

Basic ConceptsConfiguration: View Definition• Categories group related elements• Views defined by selecting Categories

Standard Categories

Custom Categories

Define Views

Made available under EPL v1.0 31

Customization Scenario A

• In this scenario, you are going to leverage the existing content without major customizations.

• You have reviewed the OpenUP content and feel that it would meet your needs with a minor change to remove the visual modeling aspects of the process.

• You are going to create a new configuration – based on an existing one - then pick and choose content packages that make sense for your team.

• Let’s try it:

Note: These are examples of customization scenarios.Not all possibilities have been explored due to lack of time for this tutorial.

Made available under EPL v1.0 32

Creating a Plug-in (1/2)

• Right-click on any existing element in the library– Select New Method

Plug-in

• In the ‘Create a new method plug-in’ dialogue enter:– Name (lower case, no

spaces)

– Description (optional)

– Author (optional)

– Referenced Plug-ins

• ‘Referenced Plug-ins’ set the visibility to other plug-ins

Made available under EPL v1.0 33

Creating a Plug-in (2/2)

New Plugin

• New plug-in created with default (empty) structure• Editor opens to permit you to change/update the

plug-in description.

Made available under EPL v1.0 34

Creating a Method Content Package (1/2)

• Right-click on the ‘Content Packages’ Node– Select ‘New Content

Package’

• The new package is created

• The editor will open

Made available under EPL v1.0 35

Creating a Method Content Package (2/2)

• New package created with default (empty) structure– Only appropriate type of element can be created under each node.

• Enter name (lower case, no spaces) and brief description.

New Content Package

Made available under EPL v1.0 36

Creating a Task (1/2)

• Right-click on the ‘Tasks’ node in the desired content package– Select ‘New Task’

• The new task is created

• The editor will open

Made available under EPL v1.0 37

Creating a Task (2/2)

• Each method element has two names:– Name: the internal name, maps to filename (lower case, no

spaces)– Presentation Name: appears in published website

New Task

Made available under EPL v1.0 38

Editing a Task

• The task editor has a number of tabs along the bottom edge:

– Description: to capture general attributes of task and variability

– Steps: to define the steps of the task

– Roles: to define responsible roles for the task

– Work Products: to define input/output work products for the task

– Guidance: to associate guidance elements with the task

– Categories: to categorize the task

– Preview: to preview the task (NOTE: variability not resolved).

• Each tab has a form to capture attributes

• Some fields have Rich Text Editing Capability

– Click the icon to open the RTE.

– The Rich Text Editor also has a tab to view/edit HTML

Made available under EPL v1.0 39

Customization Scenario B

• In this scenario, you are going to add guidance for your team that is not part of the OOTB content.

• Your team wants to apply the CRC cards technique for representing design.

• You are going to create a new plug-in, create a contributing task (using the content variability concept introduced above) and add guidance on Class Responsibility Collaboration (CRC) cards technique.

• Let’s try it:

Note: These are examples of customization scenarios.Not all possibilities have been explored due to lack of time for this tutorial.

Scenario B Instructions

Made available under EPL v1.0 40

Creating a Delivery Process (1/5)

• Right-click on the ‘Delivery Process’ node– Select New Delivery

Process

• The ‘New Process Component’ dialogue will open. Enter:– Name (lower case, no

spaces)– Default configuration

Made available under EPL v1.0 41

Creating a Delivery Process (2/5)

New Delivery Process

• New Delivery Process is created• Editor opens to permit you to change/update content

Made available under EPL v1.0 42

Creating a Delivery Process (3/5)

• The Delivery Process editor has a number of tabs along the bottom edge:

– Description: to capture general attributes of process

– WBS: to define activities of the process and their relationship

– Team Allocation: to view and edit roles

– Work Products Usage: to view and edit work products

– Consolidated View: to view and edit roles, activities, work product roll-up

• Usually we don’t need to edit the last three, they are populated automatically when activities are added to the WBS. They can be edited if one wishes to specialize the activities.

Made available under EPL v1.0 43

Creating a Delivery Process (4/5)

• Drag/Drop capability patterns from the configuration view onto the WBS• Select Extend, Copy, or Deep Copy (see next slide)

Drag/Drop CP

Made available under EPL v1.0 44

Creating a Delivery Process (5/5)

• When adding a capability pattern to a delivery process you can:

– Extend: This will maintain a link to the CP so that any updates to the CP will be reflected in your delivery process.

– Copy: this will make a local copy of the CP. It will not be linked to the original CP.

– Deep Copy: This is similar to copy, but applied recursively to sub-capability patterns.

• The most common is Extend. Copy and Deep Copy will increase maintenance overhead as updates must be made manually.

Made available under EPL v1.0 45

EPF Composer Publishing

• Configuration | Publish to start the Publish Method Wizard

• Various publishing options

Made available under EPL v1.0 46

Resulting Website

Made available under EPL v1.0 47

Customization Scenario C

• In this scenario, you will create a new delivery process for your software development lifecycle.

• You have reviewed the OpenUP delivery process and would rather follow a process that is more like the Scrum lifecycle.

• You realize that you can reuse existing method and process content from OpenUP plug-in and simply re-define the lifecycle.

• Let’s try it:

Note: These are examples of customization scenarios.Not all possibilities have been explored due to lack of time for this tutorial.

Scenario C instructions

Made available under EPL v1.0 48

EPF Composer Import

• File | Import to start the Import Wizard• Can import a Configuration, a plug-in, or raw XML.

Made available under EPL v1.0 49

EPF Composer Export

• File | Export to start the Export Wizard• Can export a Configuration, a plug-in, raw XML or MS Project Template