An_Introduction_to_EPF.ppt

advertisement
Introduction to the Eclipse Process
Framework
1
The EPF Project: Overview
• 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”
Made available under EPL v1.0
2
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
Made available under EPL v1.0
3
SPEM 2.0
4
EPF uses SPEM 2.0
• SPEM = Software Process Engineering Meta-model
• Although the title implies Software Processes, any
process can be represented using SPEM.
5
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.
OpenUP Library
DSDM Plug-in for
OpenUP
extends
OpenUP Plug-in
depends on
• Method Configuration
– a logical subset of a Method
Library
Base Concepts Plug-in
• Delivery Process
– a complete and integrated
approach for performing a
specific type of project.
6
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
7
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
Made available under EPL v1.0
8
SPEM 2.0
Method Content
9
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
10
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
11
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
12
Basic Concepts - Guidance
• Guidance may be
associate with Roles,
Tasks, and Work Products.
• Different types of Guidance
depending upon purpose.
Types of Guidance:
• Checklist
• Concept
• Example
• Guideline
• Estimate
• Use Guidance for detailed
methodology and
supporting information.
This will simplify tailoring.
• Considerations
– For example, Tasks
should tell you “what”
needs to be done,
Guidelines provide
detailed “how to”.
• Reusable Asset
• Practice
• Report
• Roadmap
• Supporting Material
• Template
• Term Definition
• Tool Mentor
Made available under EPL v1.0
• Whitepaper
13
Basic Concepts – Guidance Examples
Hmmm…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
14
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).
Made available under EPL v1.0
15
SPEM 2.0
Process Content
16
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)
Task Descriptor
(instance of Task)
Role Descriptor
(instance of a Role)
Work Product
Descriptor
(instance of a WP)
Made available under EPL v1.0
17
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
18
Basic Concepts: Delivery Process
• Defined using Work
Breakdown Structures
and/or Activity
Diagrams.
• Defines end-end fulllifecycle 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
19
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 plugin 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
20
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 21
Made
available
under
EPL v1.0
Advanced Concepts
Process 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
22
EPF Composer Introduction
Made available under EPL
v1.0
23
EPF Composer
24
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
25
EPF Composer
Authoring Perspective
Authoring
Perspective
Library
View
Task Editor
(form based)
Configuration
View
Made available under EPL v1.0
26
EPF Composer
Authoring Perspective
Form based
plain text or…
…Rich Text
editors
Made available under EPL v1.0
27
EPF Composer
Browsing Perspective
Browsing
Perspective
Configuration
View
Preview View
Made available under EPL v1.0
28
Basic Concepts
Configuration: Plug-in and Package Selection
• Select sub-set of method library for publishing to
HTML or exporting to MS Project or XML
Configurations
Select
Content
Made available under EPL v1.0
29
Basic Concepts
Configuration: View Definition
• Categories group related elements
• Views defined by selecting Categories
Standard
Categories
Custom
Categories
Define
Views
Made available under EPL v1.0
30
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
31
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 plugins
Made available under EPL v1.0
32
Creating a Plug-in (2/2)
• New plug-in created with default (empty) structure
• Editor opens to permit you to change/update the
plug-in description.
New Plugin
Made available under EPL v1.0
33
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
34
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
35
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
36
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
37
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
38
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.
Made available under EPL v1.0
39
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
40
Creating a Delivery Process (2/5)
• New Delivery Process is created
• Editor opens to permit you to change/update content
New Delivery
Process
Made available under EPL v1.0
41
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
42
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
43
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
44
EPF Composer Publishing
• Configuration | Publish to start the Publish Method Wizard
• Various publishing options
Made available under EPL v1.0
45
Resulting Website
Made available under EPL v1.0
46
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 redefine 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.
Made available under EPL v1.0
47
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
48
EPF Composer Export
• File | Export to start the Export Wizard
• Can export a Configuration, a plug-in, raw XML or MS
Project Template
Made available under EPL v1.0
49
Download