SlideShare a Scribd company logo
Made available under EPL v1.0 1
Introduction to EPF Agenda
• The EPF Project
• OpenUP Overview
• SPEM 2.0 – Basic Concepts
– Basic Concepts
– Advanced Concepts
• EPF Composer Introduction
Made available under EPL v1.0 2
Introduction to the Eclipse Process
Framework
Made available under EPL v1.0 3
The EPF Project
Made available under EPL v1.0 4
The EPF is a Sub-Project Under the “Technology”
Project
Tools
Non-Java
Programming tools
Web Tools
Platform
J2EE
Programming tools
Test &
Performance
Tools Platform
Business
Intelligence
and Reporting
Tools
Eclipse
Modeling
Project
Data Tools
Platform
Device Software
Development
Platform
SOA Tools
Technology
Eclipse Project
There are a total of Total of 71 projects. 5 proposed projects.
http://www.eclipse.org/projects
Made available under EPL v1.0 5
• 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 6
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 7
OpenUP Introduction
Made available under EPL v1.0 8
• “An Agile Inspired process with its roots in the UP”
• An iterative software development process that is minimal,
complete, and extensible
– Minimal - Contains vital roles, tasks and guidance
– Complete - Complete for small co-located teams
– Extensible - Serves as a foundation that can be extended and tailored
What is OpenUP
Made available under EPL v1.0 9
OpenUP is based on a set of mutually supporting core principles:
• Collaborate to align interests and share understanding
• Evolve to continuously obtain feedback and improve
• Balance competing priorities to maximize stakeholder value
• Focus on articulating the architecture
Core Principles
Made available under EPL v1.0 10
Collaboration: Some key practices
• Maintain a common understanding
– Key artifacts: Vision, requirements, architecture notebook, iteration
plan
• Foster a high-trust environment
– Manage by intent, tear down walls, understand the perspectives of
others
• Share responsibility
– Everybody owns the product, help each other
• Learn continuously
– Develop technical and interpersonal skills, be a student and a
teacher
• Organize around the architecture
– The architecture provides a shared understanding of the solution
and forms the basis for partitioning work.
Made available under EPL v1.0 11
Evolve: Some key practices
• Develop your project in iterations
– Use time-boxed iterations that deliver incremental value and
provide frequent feedback.
• Focus iterations on meeting the next management milestone
– Divide the project into phases with clear goals and focus iterations
on meeting those goals.
• Manage risks
– Identify and eliminate risk early.
• Embrace and manage change
– Adapt to changes.
• Measure progress objectively
– Deliver working software, get daily status, and use metrics.
• Continuously re-evaluate what you do
– Assess each iteration and perform process retrospectives.
Made available under EPL v1.0 12
Balance: Some key practices
• Know your audience & create a shared understanding of the
domain.
– Identify stakeholders early and establish a common language
• Separate the problem from the solution
– Understand the problem before rushing into a solution.
• Use scenarios and use cases to capture requirements
– Capture requirements in a form that stakeholders understand
• Establish and maintain agreement on priorities
– Prioritize work to maximize value and minimize risk early
• Make trade-offs to maximize value
– Investigate alternative designs and re-factor to maximize value
• Manage scope
– Assess the impact of changes and set expectations accordingly.
Made available under EPL v1.0 13
Focus: Some key practices
• Create the architecture for what you know today
– Keep it as simple as possible and anticipate change
• Leverage the architecture as a collaborative tool
– A good architecture facilitates collaboration by communicating the
“big-picture” and enabling parallelism in development.
• Cope with complexity by raising the level of abstraction
– Use models to raise the level of abstraction to focus on important
high-level decisions.
• Organize the architecture into loosely coupled, highly cohesive
components
– Design the system to maximize cohesion and minimize coupling to
improve comprehension and increase flexibility.
• Reuse existing assets
– Don’t re-invent the wheel.
Made available under EPL v1.0 14
OpenUP is Agile and Unified
• OpenUP incorporates a number of agile practices…
– Test-First Design
– Continuous Integration
– Agile Estimation
– Daily Standup, Iteration Assessment, Iteration Retrospective
– Self-organizing teams
• …within the context of an iterative, incremental lifecycle
(UP).
Made available under EPL v1.0 15
Core principles mapping to Agile
manifesto
OpenUP/Basic Key principles Agile manifesto
Collaborate to align interests and
share understanding
Individuals and interactions over
process and tools
Evolve to continuously obtain feedback
and improve
Responding to change over
following a plan
Balance competing priorities to
maximize stakeholder value
Customer collaboration over
contract negotiation
Focus on articulating the architecture Working software over
comprehensive documentation
Made available under EPL v1.0 16
Governance Model – Balancing Agility and
Discipline
• OpenUP incorporates a three-tiered governance model
to plan, execute, and monitor progress.
• These tiers correspond to personal, team and
stakeholder concerns and each operates at a different
time scale and level of detail.
Made available under EPL v1.0 17
OpenUP Project Lifecycle
• OpenUP uses an iterative, incremental lifecycle.
• Proper application of this lifecycle directly addresses the first
core principle (Evolve).
• The lifecycle is divided into 4 phases, each with a particular
purpose and milestone criteria to exit the phase:
– Inception: To understand the problem.
– Elaboration: To validate the solution architecture.
– Construction: To build and verify the solution in increments.
– Transition: To transition the solution to the operational
environment and validate the solution.
Made available under EPL v1.0 18
OpenUP Iteration Lifecycle
• Phases are further decomposed into a number of iterations.
• At the end of each iteration a verified build of the system increment is
available.
• Each iteration has its own lifecycle, beginning with planning and
ending in a stable system increment, Iteration Review (did we achieve
the iteration objectives) and a Retrospective (is there a better
process).
• Progress on completion of micro-increments is monitored daily via
“Scrums” and the iteration burndown chart to provide timely feedback.
Made available under EPL v1.0 19
Micro-Increments
• Micro-increments are small steps towards the goals of
the iteration.
• Should be small enough to be completed in a day or two
– Identify Stakeholders is a micro-increment (one step of a task).
– Determine Technical Approach for Persistency is a micro-
increment (a task with a specific focus)
– Develop Solution Increment for UC 1 Main Flow is a micro-
increment (a task with a specific focus)
• Micro-increments are defined and tracked via the work
items list.
• Work items reference requirements and process tasks
as needed to provide required inputs to complete the
micro-increment.
Made available under EPL v1.0 20
OpenUP Lifecycle WBS
Made available under EPL v1.0 21
OpenUP Lifecycle – Inception
Phase
• The primary purpose of the Inception Phase is to understand
the scope of the problem and feasibility of a solution.
• More specifically, the objectives and associated process
activities are:
Phase objectives
Activities that address
objectives
Define a Vision Initiate Project
Identify key system functionality Identify and Refine
Requirements
Determine at least one possible
solution
Agree on Technical Approach
Understand the cost, schedule, and
risks associated with the project
Initiate Project
Plan and Manage Iteration
• At the Lifecycle Objectives Milestone, progress towards
meeting these objectives are assessed and a decision to
proceed with the same scope, change the scope, or terminate
the project is made.
Made available under EPL v1.0 22
OpenUP Lifecycle – Elaboration
Phase
• The primary purpose of the Elaboration Phase is to validate the
solution architecture (feasibility and trade-offs).
• More specifically, the objectives and associated process
activities are:
• At the Lifecycle Architecture Milestone, progress towards
meeting these objectives are assessed and a decision to
proceed with the same scope, change the scope, or terminate
the project is made.
Phase objectives
Activities that address
objectives
Get a more detailed understanding
of the requirements
Identify and Refine
Requirements
Design, implement, validate, and
baseline an architecture
Develop the Architecture
Develop Solution
Increment
Test Solution
Mitigate essential risks, and
produce accurate schedule and
cost estimates
Plan and Manage Iteration
Ongoing Tasks
Made available under EPL v1.0 23
OpenUP Lifecycle – Construction
Phase
• The primary purpose of the Construction Phase is to develop
and verify the solution incrementally.
• More specifically, the objectives and associated process
activities are:
• At the Initial Operational Capability Milestone, progress towards
meeting these objectives is assessed and a decision to deploy
the solution to the operation environment is made.
Phase objectives
Activities that address
objectives
Iteratively develop a complete
product that is ready to transition to
the user community
Identify and Refine
Requirements
Develop Solution Increment
Test Solution
Minimize development costs and
achieve some degree of parallelism
Plan and Manage Iteration
Ongoing Tasks
Made available under EPL v1.0 24
OpenUP Lifecycle – Transition
Phase
• The primary purpose of the Transition Phase is to deploy the
solution to the operational environment and validate it.
• More specifically, the objectives and associated process
activities are:
• At the Product Release Milestone, progress towards meeting
these objectives are assessed and a decision to make the
product generally available is made.
Phase objectives
Activities that address
objectives
Beta test to validate that user
expectations are met
Ongoing Tasks
Develop Solution
Increment
Test Solution
Achieve stakeholder concurrence
that deployment is complete
Plan and Manage
Iteration
Test Solution
Improve future project performance
through lessons learned
Plan and Manage
Iteration
Made available under EPL v1.0 25
OpenUP Disciplines
• A discipline is a collection of tasks that are related to a major
"area of concern" within the overall project.
• Within the lifecycle, tasks are performed concurrently across
several disciplines.
• Separating tasks into distinct disciplines is simply an effective
way to organize content that makes comprehension easier.
• OpenUP defines the following Disciplines:
Made available under EPL v1.0 26
Architecture Discipline
• This discipline consists
of 2 tasks and 17
guidance elements.
• Primary Roles:
– Architect
• Associated Work
Products:
– Architecture Notebook
Made available under EPL v1.0 27
Configuration and Change Management
Discipline
• This discipline consists of
2 tasks and 9 guidance
elements.
• Primary Roles:
– Any Role
– Developer
• Associated Work Products:
– None
Made available under EPL v1.0 28
Development Discipline
• This discipline consists
of 4 tasks and 18
guidance elements.
• Primary Roles:
– Developer
• Associated Work
Products:
– Build
– Design
– Developer Test
– Implementation
Made available under EPL v1.0 29
Project Management Discipline
• This discipline consists
of 4 tasks and 17
guidance elements.
• Primary Roles:
– Project Manager
• Associated Work
Products:
– Iteration Plan
– Project Plan
– Risk List
– Work Items List
Made available under EPL v1.0 30
Requirements Discipline
• This discipline consists
of 3 tasks and 21
guidance elements.
• Primary Roles:
– Analyst
• Associated Work
Products:
– Glossary
– Supporting
Requirements
Specification
– Use Case
– Use-Case Model
– Vision
Made available under EPL v1.0 31
Test Discipline
• This discipline consists
of 3 tasks and 7
guidance elements.
• Primary Roles:
– Tester
• Associated Work
Products:
– Test Case
– Test Log
– Test Script
Made available under EPL v1.0 32
OpenUP Roles
• Roles define a set of related skills, competencies and
responsibilities.
• OpenUP defines the following Roles:
Made available under EPL v1.0 33
Analyst Role
• The person in this role represents customer and end-user concerns
by gathering input from stakeholders to understand the problem to
be solved and by capturing and setting priorities for requirements
Made available under EPL v1.0 34
Any Role Role
• Anyone on a team can fill this role of performing
general tasks.
Made available under EPL v1.0 35
Architect Role
• This role is responsible for defining the software
architecture, which includes making the key technical
decisions that constrain the overall design and
implementation of the project.
Made available under EPL v1.0 36
Developer Role
• This role is responsible for developing a part of the system,
including designing it to fit into the architecture, possibly prototyping
the user-interface, and then implementing, unit-testing, and
integrating the components that are part of the solution.
Made available under EPL v1.0 37
Project Manager Role
• Leads the planning of the project, coordinates interactions
with the stakeholders, and keeps the project team focused
on meeting the project objectives.
Made available under EPL v1.0 38
Stakeholder Role
• This role represents interest groups whose needs
must be satisfied by the project. It is a role that may
be played by anyone who is (or potentially will be)
materially affected by the outcome of the project.
Made available under EPL v1.0 39
Tester Role
• This role is responsible for the core activities of the test
effort. Those activities include identifying, defining,
implementing, and conducting the necessary tests, as well
as logging the outcomes of the testing and analyzing the
results.
Made available under EPL v1.0 40
A Typical Task Description
• Tasks typically have an
associated concept,
guideline and checklist.
• If one needs to perform a
task
– one reads the concept to
understand the context,
– reads the steps to determine
what needs to be done,
– reads the guideline to
determine how to do it,
– then reads the checklist to
validate completion.
Made available under EPL v1.0 41
A Typical Artifact Description
• Typically artifacts have
associated templates and
checklists.
• The template provides
additional guidance on
completing the artifact and
• The checklist helps check
the quality of the resulting
artifact.
Made available under EPL v1.0 42
Some Key Practices from OpenUP
Made available under EPL v1.0 43
3 Levels of Planning
Made available under EPL v1.0 44
Stakeholder
Satisfaction Space
Project Starting Point
Level 1 – Project Plan
Your goal is to find a Path from
Here to There
•The Project Plan provides a course grain plan to complete.
•Time-scale of months.
•Defines number of iterations (initial estimate) and major milestones
•Main artifacts: Project Plan
Made available under EPL v1.0 45
Stakeholder
Satisfaction Space
Divide One Big Problem into a Series of
Smaller Problems (Iterations)
1 2 3 4 5 6
Initial
Project Plan
PlannedPlanned
CompletionCompletion
PlannedPlanned
CompletionCompletion
Planned Path
IterationsIterationsIterationsIterations
Made available under EPL v1.0 46
Stakeholder
Satisfaction Space
Define When Key Milestones Can Be
Achieved
1 2 3 4 5 6
Do we
understand
the problem?
(LCO)
Do we
understand
the solution?
(LCA)
Feature
complete?
(IOC)
Release
ready?
(PR)
PlannedPlanned
CompletionCompletion
PlannedPlanned
CompletionCompletion
Planned Path
Inception Elaboration Construction
Transition
Made available under EPL v1.0 47
Level 2 – Iteration Plan
Work Item List
High Priority
Low Priority
New work items can be
added at any time
Work items can be
removed at any time
Work items can be
reprioritized at any time
High-priority work items
should be well-defined
Low-priority work items
can be vague
Each iteration implements the
highest-priority work items
•The Iteration Plan provides a fine grain plan for an iteration.
•Time-scale of weeks.
•Defines number of work items to complete in this iteration.
•Main artifacts: Iteration Plan, Work Item List
Made available under EPL v1.0 48
Key Concepts: Agile Estimation
• Size (points):
– For each work item, we estimate how big it is. We focus on
relative size, so key is to be consistent within your work items
list.
• Velocity
– A measurement of how many points are delivered in each
iteration
• Effort (days or hours):
– Estimate of actual effort.
Made available under EPL v1.0 49
Plan Your Iteration
• Specify target velocity and outline iteration objectives in iteration
plan
• Analyze top priority Work Item
– Estimate effort in hours
– If too big to fit within iteration, break down into smaller work items
– Add to Iteration Plan
– Analyze next work item in priority order until Iteration Plan is “full”
• Specify test and other assessment criteria
Work Item List
•Iteration objectives
•Iteration Work Item List
•Measure / test results
Estimate and add
to iteration plan
Iteration Plan
Made available under EPL v1.0 50
Level 3 - Creating a Solution for a
Work Item
• Select a work item assigned to the current iteration
• Collaborate with team if it needs breakdown
– Time-scale of days
• Identify requirements closure
– Attachments: use case, supporting requirement, bug information,
test case
– Gather additional information
• Repeat until complete
– Build a small solution verified with developer tests
• Verify completion with system tests
Made available under EPL v1.0 51
Assessments
• OpenUP promotes daily stand-up meetings to track day-
day progress.
• An Iteration Assessment is conducted at the end of each
iteration to determine if objectives have been achieved.
• Main input to iteration assessment is a working prototype
(Artifact: Build)
• Project Burndown and Iteration Burndown charts based
on Work Item List used to monitor progress
• Retrospective conducted at the end of each iteration to
assess the process
Made available under EPL v1.0 52
Planned Path
Use Iteration Assessments to Change
Direction
Actual Path
1 2 3 4 5 6
1 2 3
4
5 6
7Updated
Project Plan
PlannedPlanned
CompletionCompletion
PlannedPlanned
CompletionCompletion
Stakeholder
Satisfaction Space
Made available under EPL v1.0 53
Forms of Requirements
• Vision defines stakeholder’s view of product
• Use Cases define user scenarios
– Any scenario-based requirements would do
– Defines consistent set of requirements for an increment of the
system
• Supporting Requirements cover technical and other non-
usage issues
• Work Items reference requirement work products for
more detail
Made available under EPL v1.0 54
Iterative Requirements Development
• Vision defines product
• Use-case identification scopes release
• Use-case detail drives work in an iteration
• Supporting requirements are managed across the lifecycle
• OpenUP promotes a breadth-before-depth, approach to
requirements development:
– Identify use cases (name and brief desc only).
– Prioritize use cases
– Detail main scenario of high priority use case
– Implement and verify
– Detail alternate scenarios of same use case or main scenario of another
use case
• This is accomplished by iterative application of tasks Find and
Outline Requirements and Detail Requirements for each increment.
Made available under EPL v1.0 55
Test Cases
• Test Case
– Aligned with requirements
– Specifies the conditions to be validated
– Outlines necessary data
• Contrasted with Test Script
– Aligned with Test Cases
– Explicit step-by-step instructions
– Supplemented by test data
– Best if automated
• Test Cases are a form of Test First Design (TFD)
Made available under EPL v1.0 57
Test-first Design
• Developer testing
straddles the
implementation of
the solution
– Unit Test
– Integration Test
• Continuous
integration built
into the process.
Made available under EPL v1.0 58
Continuous Integration
• Team members integrate their work with completed Change
Sets from other developers, and test the application, before
making their work available to others.
• This results in early detection of errors, while the work is still
fresh in the minds of developers.
• OpenUP incorporates Continuous integration into the process
and provides guidance that describe CI, outline the benefits,
and provide tips for effective CI.
• For more information see:
– Concept: Continuous Integration
– Guideline: Continuous Integration
• A very good description of CI may be found at:
– http://www.martinfowler.com/articles/continuousIntegration.html
Made available under EPL v1.0 59
SPEM 2.0
“...by relieving the brain of all unnecessary work, a good
notation sets it free to concentrate on more advanced
problems, and in effect, increases the mental power of the
race.”
Alfred North Whitehead
British mathematician,
logician and philosopher
Made available under EPL v1.0 60
EPF uses SPEM 2.0
• SPEM = Software Process Engineering Meta-model
• Although the title implies Software Processes, any
process can be represented using SPEM.
Made available under EPL v1.0 61
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 62
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 63
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)
– End-End 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 64
SPEM 2.0
Method Content
Made available under EPL v1.0 65
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 66
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 67
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 68
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 69
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 70
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 71
SPEM 2.0
Process Content
Made available under EPL v1.0 72
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 73
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 74
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 75
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 76
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 77
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 78
EPF Composer Introduction
Made available under EPL v1.0 79
EPF Composer
• EPF Composer is built upon the Eclipse platform
• Supports many of the Eclipse plug-ins
– For example, Mylar
• 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 80
EPF Composer
Authoring Perspective
Library
View
Configuration
View
Task Editor
(form based)
Authoring
Perspective
Made available under EPL v1.0 81
EPF Composer
Authoring Perspective
Form based
plain text or…
…Rich Text
editors
Made available under EPL v1.0 82
EPF Composer
Browsing Perspective
Configuration
View
Preview View
Browsing
Perspective
Made available under EPL v1.0 83
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
Select
Content
Select
Content
Made available under EPL v1.0 84
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 85
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.
Scenario A
Instructions
Made available under EPL v1.0 86
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 87
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 88
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 89
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 90
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 91
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 92
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 93
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 94
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 95
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 96
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 97
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 98
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 99
EPF Composer Publishing
• Configuration | Publish to start the Publish Method Wizard
• Various publishing options
Made available under EPL v1.0 100
Resulting Website
Made available under EPL v1.0 101
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 102
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 103
EPF Composer Export
• File | Export to start the Export Wizard
• Can export a Configuration, a plug-in, raw XML or MS
Project Template

More Related Content

What's hot

The six phase comprehensive project life cycle model-2013
The six phase comprehensive project life cycle model-2013The six phase comprehensive project life cycle model-2013
The six phase comprehensive project life cycle model-2013Russell Archibald
 
Use of RUP for Small Projects
Use of RUP for Small ProjectsUse of RUP for Small Projects
Use of RUP for Small ProjectsMahesh Panchal
 
PMI-ACP: Domain 2 - Value-driven_delivery_v2.2_lite_2_54_pages
PMI-ACP: Domain 2 - Value-driven_delivery_v2.2_lite_2_54_pagesPMI-ACP: Domain 2 - Value-driven_delivery_v2.2_lite_2_54_pages
PMI-ACP: Domain 2 - Value-driven_delivery_v2.2_lite_2_54_pagesPhuocNT (Fresher.VN)
 
Elico Solutions' Odoo ERP Project Management Implementation Approach
Elico Solutions' Odoo ERP Project Management Implementation ApproachElico Solutions' Odoo ERP Project Management Implementation Approach
Elico Solutions' Odoo ERP Project Management Implementation ApproachElico Solutions Singapore
 
HKG15-904: Scrum and Kanban 101
HKG15-904: Scrum and Kanban 101HKG15-904: Scrum and Kanban 101
HKG15-904: Scrum and Kanban 101Linaro
 
An Introduction to Agile
An Introduction to AgileAn Introduction to Agile
An Introduction to AgileDavidMcLachlan1
 
PMI - ACP: Domain 6 - Problem Detection and resolution-v2.2_lite_2_60_pages
PMI - ACP: Domain 6 - Problem Detection and resolution-v2.2_lite_2_60_pagesPMI - ACP: Domain 6 - Problem Detection and resolution-v2.2_lite_2_60_pages
PMI - ACP: Domain 6 - Problem Detection and resolution-v2.2_lite_2_60_pagesPhuocNT (Fresher.VN)
 
1. Introduction to Project Management and the Project Management Framework
1. Introduction to Project Management and the Project Management Framework1. Introduction to Project Management and the Project Management Framework
1. Introduction to Project Management and the Project Management FrameworkMeshack Shack
 
PMI-ACP Domain VII - Continuous Improvement v1.0
PMI-ACP Domain VII - Continuous Improvement v1.0PMI-ACP Domain VII - Continuous Improvement v1.0
PMI-ACP Domain VII - Continuous Improvement v1.0PhuocNT (Fresher.VN)
 
Rational unified process lecture-5
Rational unified process lecture-5Rational unified process lecture-5
Rational unified process lecture-5MujiAhsan
 
An Overview of RUP methodology
An Overview of RUP methodologyAn Overview of RUP methodology
An Overview of RUP methodologyMasoud Kalali
 
pmp training
pmp trainingpmp training
pmp trainingsanfrrans
 
Rational Unified Process(Rup)
Rational Unified Process(Rup)Rational Unified Process(Rup)
Rational Unified Process(Rup)pawanonline83
 
State of DevOps Report Key Findings
State of DevOps Report Key FindingsState of DevOps Report Key Findings
State of DevOps Report Key FindingsEficode
 
PMI-ACP Domain VI: Problem Detection and Resolution v1.0
PMI-ACP Domain VI: Problem Detection and Resolution v1.0PMI-ACP Domain VI: Problem Detection and Resolution v1.0
PMI-ACP Domain VI: Problem Detection and Resolution v1.0PhuocNT (Fresher.VN)
 
A Comparative study of Rational Unified process( RUP ), Agile & Microsoft Fra...
A Comparative study of Rational Unified process( RUP ), Agile & Microsoft Fra...A Comparative study of Rational Unified process( RUP ), Agile & Microsoft Fra...
A Comparative study of Rational Unified process( RUP ), Agile & Microsoft Fra...shailesh.bohra
 
Rational Unified Process by Vincent Prince Mutimbanyoka
Rational Unified Process by Vincent Prince MutimbanyokaRational Unified Process by Vincent Prince Mutimbanyoka
Rational Unified Process by Vincent Prince MutimbanyokaVincent Prince Mutimbanyoka
 

What's hot (19)

The six phase comprehensive project life cycle model-2013
The six phase comprehensive project life cycle model-2013The six phase comprehensive project life cycle model-2013
The six phase comprehensive project life cycle model-2013
 
Use of RUP for Small Projects
Use of RUP for Small ProjectsUse of RUP for Small Projects
Use of RUP for Small Projects
 
PMI-ACP: Domain 2 - Value-driven_delivery_v2.2_lite_2_54_pages
PMI-ACP: Domain 2 - Value-driven_delivery_v2.2_lite_2_54_pagesPMI-ACP: Domain 2 - Value-driven_delivery_v2.2_lite_2_54_pages
PMI-ACP: Domain 2 - Value-driven_delivery_v2.2_lite_2_54_pages
 
Elico Solutions' Odoo ERP Project Management Implementation Approach
Elico Solutions' Odoo ERP Project Management Implementation ApproachElico Solutions' Odoo ERP Project Management Implementation Approach
Elico Solutions' Odoo ERP Project Management Implementation Approach
 
HKG15-904: Scrum and Kanban 101
HKG15-904: Scrum and Kanban 101HKG15-904: Scrum and Kanban 101
HKG15-904: Scrum and Kanban 101
 
An Introduction to Agile
An Introduction to AgileAn Introduction to Agile
An Introduction to Agile
 
PMI - ACP: Domain 6 - Problem Detection and resolution-v2.2_lite_2_60_pages
PMI - ACP: Domain 6 - Problem Detection and resolution-v2.2_lite_2_60_pagesPMI - ACP: Domain 6 - Problem Detection and resolution-v2.2_lite_2_60_pages
PMI - ACP: Domain 6 - Problem Detection and resolution-v2.2_lite_2_60_pages
 
1. Introduction to Project Management and the Project Management Framework
1. Introduction to Project Management and the Project Management Framework1. Introduction to Project Management and the Project Management Framework
1. Introduction to Project Management and the Project Management Framework
 
PMI-ACP Domain VII - Continuous Improvement v1.0
PMI-ACP Domain VII - Continuous Improvement v1.0PMI-ACP Domain VII - Continuous Improvement v1.0
PMI-ACP Domain VII - Continuous Improvement v1.0
 
Rational unified process lecture-5
Rational unified process lecture-5Rational unified process lecture-5
Rational unified process lecture-5
 
An Overview of RUP methodology
An Overview of RUP methodologyAn Overview of RUP methodology
An Overview of RUP methodology
 
1 project management framework
1  project management framework1  project management framework
1 project management framework
 
pmp training
pmp trainingpmp training
pmp training
 
Rational Unified Process(Rup)
Rational Unified Process(Rup)Rational Unified Process(Rup)
Rational Unified Process(Rup)
 
State of DevOps Report Key Findings
State of DevOps Report Key FindingsState of DevOps Report Key Findings
State of DevOps Report Key Findings
 
PMI-ACP Domain VI: Problem Detection and Resolution v1.0
PMI-ACP Domain VI: Problem Detection and Resolution v1.0PMI-ACP Domain VI: Problem Detection and Resolution v1.0
PMI-ACP Domain VI: Problem Detection and Resolution v1.0
 
A Comparative study of Rational Unified process( RUP ), Agile & Microsoft Fra...
A Comparative study of Rational Unified process( RUP ), Agile & Microsoft Fra...A Comparative study of Rational Unified process( RUP ), Agile & Microsoft Fra...
A Comparative study of Rational Unified process( RUP ), Agile & Microsoft Fra...
 
Rational Unified Process by Vincent Prince Mutimbanyoka
Rational Unified Process by Vincent Prince MutimbanyokaRational Unified Process by Vincent Prince Mutimbanyoka
Rational Unified Process by Vincent Prince Mutimbanyoka
 
Pl Pr3
Pl Pr3Pl Pr3
Pl Pr3
 

Similar to An introduction to_epf

04. Project Management
04. Project Management04. Project Management
04. Project ManagementBhuWan Khadka
 
Phases in Agile Development- 9.pptx
Phases in Agile Development- 9.pptxPhases in Agile Development- 9.pptx
Phases in Agile Development- 9.pptxAlishaFida1
 
CEN6070-Chapter7.1.ppt
CEN6070-Chapter7.1.pptCEN6070-Chapter7.1.ppt
CEN6070-Chapter7.1.pptnabeenbeen
 
CEN6070-Chapter7.1.ppt
CEN6070-Chapter7.1.pptCEN6070-Chapter7.1.ppt
CEN6070-Chapter7.1.pptfsfsdffs
 
11.Unified Process Modelling.pdf srs pdf
11.Unified Process Modelling.pdf srs pdf11.Unified Process Modelling.pdf srs pdf
11.Unified Process Modelling.pdf srs pdfnikhildonthula914
 
SDLC Methodologies
SDLC MethodologiesSDLC Methodologies
SDLC MethodologiesSunil-QA
 
Chapter 1,2,3,4 notes
Chapter 1,2,3,4 notesChapter 1,2,3,4 notes
Chapter 1,2,3,4 notesAruna M
 
2 approaches to system development
2 approaches to system development2 approaches to system development
2 approaches to system developmentcymark09
 
Object Oriented Analysis and Design Unit-1
Object Oriented Analysis and Design Unit-1Object Oriented Analysis and Design Unit-1
Object Oriented Analysis and Design Unit-1SangeethaSubramaniam14
 

Similar to An introduction to_epf (20)

ID, UP, & RUP.pptx
ID, UP, & RUP.pptxID, UP, & RUP.pptx
ID, UP, & RUP.pptx
 
Unified Process
Unified ProcessUnified Process
Unified Process
 
Managing Technology Projects
Managing Technology ProjectsManaging Technology Projects
Managing Technology Projects
 
04. Project Management
04. Project Management04. Project Management
04. Project Management
 
what-is-devops.ppt
what-is-devops.pptwhat-is-devops.ppt
what-is-devops.ppt
 
Phases in Agile Development- 9.pptx
Phases in Agile Development- 9.pptxPhases in Agile Development- 9.pptx
Phases in Agile Development- 9.pptx
 
Rup
RupRup
Rup
 
CEN6070-Chapter7.1.ppt
CEN6070-Chapter7.1.pptCEN6070-Chapter7.1.ppt
CEN6070-Chapter7.1.ppt
 
CEN6070-Chapter7.1.ppt
CEN6070-Chapter7.1.pptCEN6070-Chapter7.1.ppt
CEN6070-Chapter7.1.ppt
 
CEN6070-Chapter7.1.ppt
CEN6070-Chapter7.1.pptCEN6070-Chapter7.1.ppt
CEN6070-Chapter7.1.ppt
 
CEN6070-Chapter7.1.ppt
CEN6070-Chapter7.1.pptCEN6070-Chapter7.1.ppt
CEN6070-Chapter7.1.ppt
 
Unified process
Unified processUnified process
Unified process
 
Ch11.pptx
Ch11.pptxCh11.pptx
Ch11.pptx
 
Day 5
Day 5Day 5
Day 5
 
11.Unified Process Modelling.pdf srs pdf
11.Unified Process Modelling.pdf srs pdf11.Unified Process Modelling.pdf srs pdf
11.Unified Process Modelling.pdf srs pdf
 
SDLC Methodologies
SDLC MethodologiesSDLC Methodologies
SDLC Methodologies
 
Chapter 1,2,3,4 notes
Chapter 1,2,3,4 notesChapter 1,2,3,4 notes
Chapter 1,2,3,4 notes
 
SDLC Final (1)
SDLC Final (1)SDLC Final (1)
SDLC Final (1)
 
2 approaches to system development
2 approaches to system development2 approaches to system development
2 approaches to system development
 
Object Oriented Analysis and Design Unit-1
Object Oriented Analysis and Design Unit-1Object Oriented Analysis and Design Unit-1
Object Oriented Analysis and Design Unit-1
 

Recently uploaded

Danfoss NeoCharge Technology -A Revolution in 2024.pdf
Danfoss NeoCharge Technology -A Revolution in 2024.pdfDanfoss NeoCharge Technology -A Revolution in 2024.pdf
Danfoss NeoCharge Technology -A Revolution in 2024.pdfNurvisNavarroSanchez
 
İTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering WorkshopİTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering WorkshopEmre Günaydın
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationRobbie Edward Sayers
 
Introduction to Casting Processes in Manufacturing
Introduction to Casting Processes in ManufacturingIntroduction to Casting Processes in Manufacturing
Introduction to Casting Processes in Manufacturingssuser0811ec
 
Arduino based vehicle speed tracker project
Arduino based vehicle speed tracker projectArduino based vehicle speed tracker project
Arduino based vehicle speed tracker projectRased Khan
 
Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.PrashantGoswami42
 
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...Amil baba
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwoodseandesed
 
A case study of cinema management system project report..pdf
A case study of cinema management system project report..pdfA case study of cinema management system project report..pdf
A case study of cinema management system project report..pdfKamal Acharya
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Dr.Costas Sachpazis
 
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptxCloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptxMd. Shahidul Islam Prodhan
 
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical EngineeringIntroduction to Machine Learning Unit-4 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical EngineeringC Sai Kiran
 
ASME IX(9) 2007 Full Version .pdf
ASME IX(9)  2007 Full Version       .pdfASME IX(9)  2007 Full Version       .pdf
ASME IX(9) 2007 Full Version .pdfAhmedHussein950959
 
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical EngineeringIntroduction to Machine Learning Unit-5 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical EngineeringC Sai Kiran
 
LIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.pptLIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.pptssuser9bd3ba
 
Fruit shop management system project report.pdf
Fruit shop management system project report.pdfFruit shop management system project report.pdf
Fruit shop management system project report.pdfKamal Acharya
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacksgerogepatton
 
Top 13 Famous Civil Engineering Scientist
Top 13 Famous Civil Engineering ScientistTop 13 Famous Civil Engineering Scientist
Top 13 Famous Civil Engineering Scientistgettygaming1
 
Online blood donation management system project.pdf
Online blood donation management system project.pdfOnline blood donation management system project.pdf
Online blood donation management system project.pdfKamal Acharya
 

Recently uploaded (20)

Danfoss NeoCharge Technology -A Revolution in 2024.pdf
Danfoss NeoCharge Technology -A Revolution in 2024.pdfDanfoss NeoCharge Technology -A Revolution in 2024.pdf
Danfoss NeoCharge Technology -A Revolution in 2024.pdf
 
İTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering WorkshopİTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering Workshop
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
 
Introduction to Casting Processes in Manufacturing
Introduction to Casting Processes in ManufacturingIntroduction to Casting Processes in Manufacturing
Introduction to Casting Processes in Manufacturing
 
Arduino based vehicle speed tracker project
Arduino based vehicle speed tracker projectArduino based vehicle speed tracker project
Arduino based vehicle speed tracker project
 
Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.
 
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwood
 
A case study of cinema management system project report..pdf
A case study of cinema management system project report..pdfA case study of cinema management system project report..pdf
A case study of cinema management system project report..pdf
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
 
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptxCloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
 
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical EngineeringIntroduction to Machine Learning Unit-4 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical Engineering
 
ASME IX(9) 2007 Full Version .pdf
ASME IX(9)  2007 Full Version       .pdfASME IX(9)  2007 Full Version       .pdf
ASME IX(9) 2007 Full Version .pdf
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
 
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical EngineeringIntroduction to Machine Learning Unit-5 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-5 Notes for II-II Mechanical Engineering
 
LIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.pptLIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.ppt
 
Fruit shop management system project report.pdf
Fruit shop management system project report.pdfFruit shop management system project report.pdf
Fruit shop management system project report.pdf
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
 
Top 13 Famous Civil Engineering Scientist
Top 13 Famous Civil Engineering ScientistTop 13 Famous Civil Engineering Scientist
Top 13 Famous Civil Engineering Scientist
 
Online blood donation management system project.pdf
Online blood donation management system project.pdfOnline blood donation management system project.pdf
Online blood donation management system project.pdf
 

An introduction to_epf

  • 1. Made available under EPL v1.0 1 Introduction to EPF Agenda • The EPF Project • OpenUP Overview • SPEM 2.0 – Basic Concepts – Basic Concepts – Advanced Concepts • EPF Composer Introduction
  • 2. Made available under EPL v1.0 2 Introduction to the Eclipse Process Framework
  • 3. Made available under EPL v1.0 3 The EPF Project
  • 4. Made available under EPL v1.0 4 The EPF is a Sub-Project Under the “Technology” Project Tools Non-Java Programming tools Web Tools Platform J2EE Programming tools Test & Performance Tools Platform Business Intelligence and Reporting Tools Eclipse Modeling Project Data Tools Platform Device Software Development Platform SOA Tools Technology Eclipse Project There are a total of Total of 71 projects. 5 proposed projects. http://www.eclipse.org/projects
  • 5. Made available under EPL v1.0 5 • 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
  • 6. Made available under EPL v1.0 6 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
  • 7. Made available under EPL v1.0 7 OpenUP Introduction
  • 8. Made available under EPL v1.0 8 • “An Agile Inspired process with its roots in the UP” • An iterative software development process that is minimal, complete, and extensible – Minimal - Contains vital roles, tasks and guidance – Complete - Complete for small co-located teams – Extensible - Serves as a foundation that can be extended and tailored What is OpenUP
  • 9. Made available under EPL v1.0 9 OpenUP is based on a set of mutually supporting core principles: • Collaborate to align interests and share understanding • Evolve to continuously obtain feedback and improve • Balance competing priorities to maximize stakeholder value • Focus on articulating the architecture Core Principles
  • 10. Made available under EPL v1.0 10 Collaboration: Some key practices • Maintain a common understanding – Key artifacts: Vision, requirements, architecture notebook, iteration plan • Foster a high-trust environment – Manage by intent, tear down walls, understand the perspectives of others • Share responsibility – Everybody owns the product, help each other • Learn continuously – Develop technical and interpersonal skills, be a student and a teacher • Organize around the architecture – The architecture provides a shared understanding of the solution and forms the basis for partitioning work.
  • 11. Made available under EPL v1.0 11 Evolve: Some key practices • Develop your project in iterations – Use time-boxed iterations that deliver incremental value and provide frequent feedback. • Focus iterations on meeting the next management milestone – Divide the project into phases with clear goals and focus iterations on meeting those goals. • Manage risks – Identify and eliminate risk early. • Embrace and manage change – Adapt to changes. • Measure progress objectively – Deliver working software, get daily status, and use metrics. • Continuously re-evaluate what you do – Assess each iteration and perform process retrospectives.
  • 12. Made available under EPL v1.0 12 Balance: Some key practices • Know your audience & create a shared understanding of the domain. – Identify stakeholders early and establish a common language • Separate the problem from the solution – Understand the problem before rushing into a solution. • Use scenarios and use cases to capture requirements – Capture requirements in a form that stakeholders understand • Establish and maintain agreement on priorities – Prioritize work to maximize value and minimize risk early • Make trade-offs to maximize value – Investigate alternative designs and re-factor to maximize value • Manage scope – Assess the impact of changes and set expectations accordingly.
  • 13. Made available under EPL v1.0 13 Focus: Some key practices • Create the architecture for what you know today – Keep it as simple as possible and anticipate change • Leverage the architecture as a collaborative tool – A good architecture facilitates collaboration by communicating the “big-picture” and enabling parallelism in development. • Cope with complexity by raising the level of abstraction – Use models to raise the level of abstraction to focus on important high-level decisions. • Organize the architecture into loosely coupled, highly cohesive components – Design the system to maximize cohesion and minimize coupling to improve comprehension and increase flexibility. • Reuse existing assets – Don’t re-invent the wheel.
  • 14. Made available under EPL v1.0 14 OpenUP is Agile and Unified • OpenUP incorporates a number of agile practices… – Test-First Design – Continuous Integration – Agile Estimation – Daily Standup, Iteration Assessment, Iteration Retrospective – Self-organizing teams • …within the context of an iterative, incremental lifecycle (UP).
  • 15. Made available under EPL v1.0 15 Core principles mapping to Agile manifesto OpenUP/Basic Key principles Agile manifesto Collaborate to align interests and share understanding Individuals and interactions over process and tools Evolve to continuously obtain feedback and improve Responding to change over following a plan Balance competing priorities to maximize stakeholder value Customer collaboration over contract negotiation Focus on articulating the architecture Working software over comprehensive documentation
  • 16. Made available under EPL v1.0 16 Governance Model – Balancing Agility and Discipline • OpenUP incorporates a three-tiered governance model to plan, execute, and monitor progress. • These tiers correspond to personal, team and stakeholder concerns and each operates at a different time scale and level of detail.
  • 17. Made available under EPL v1.0 17 OpenUP Project Lifecycle • OpenUP uses an iterative, incremental lifecycle. • Proper application of this lifecycle directly addresses the first core principle (Evolve). • The lifecycle is divided into 4 phases, each with a particular purpose and milestone criteria to exit the phase: – Inception: To understand the problem. – Elaboration: To validate the solution architecture. – Construction: To build and verify the solution in increments. – Transition: To transition the solution to the operational environment and validate the solution.
  • 18. Made available under EPL v1.0 18 OpenUP Iteration Lifecycle • Phases are further decomposed into a number of iterations. • At the end of each iteration a verified build of the system increment is available. • Each iteration has its own lifecycle, beginning with planning and ending in a stable system increment, Iteration Review (did we achieve the iteration objectives) and a Retrospective (is there a better process). • Progress on completion of micro-increments is monitored daily via “Scrums” and the iteration burndown chart to provide timely feedback.
  • 19. Made available under EPL v1.0 19 Micro-Increments • Micro-increments are small steps towards the goals of the iteration. • Should be small enough to be completed in a day or two – Identify Stakeholders is a micro-increment (one step of a task). – Determine Technical Approach for Persistency is a micro- increment (a task with a specific focus) – Develop Solution Increment for UC 1 Main Flow is a micro- increment (a task with a specific focus) • Micro-increments are defined and tracked via the work items list. • Work items reference requirements and process tasks as needed to provide required inputs to complete the micro-increment.
  • 20. Made available under EPL v1.0 20 OpenUP Lifecycle WBS
  • 21. Made available under EPL v1.0 21 OpenUP Lifecycle – Inception Phase • The primary purpose of the Inception Phase is to understand the scope of the problem and feasibility of a solution. • More specifically, the objectives and associated process activities are: Phase objectives Activities that address objectives Define a Vision Initiate Project Identify key system functionality Identify and Refine Requirements Determine at least one possible solution Agree on Technical Approach Understand the cost, schedule, and risks associated with the project Initiate Project Plan and Manage Iteration • At the Lifecycle Objectives Milestone, progress towards meeting these objectives are assessed and a decision to proceed with the same scope, change the scope, or terminate the project is made.
  • 22. Made available under EPL v1.0 22 OpenUP Lifecycle – Elaboration Phase • The primary purpose of the Elaboration Phase is to validate the solution architecture (feasibility and trade-offs). • More specifically, the objectives and associated process activities are: • At the Lifecycle Architecture Milestone, progress towards meeting these objectives are assessed and a decision to proceed with the same scope, change the scope, or terminate the project is made. Phase objectives Activities that address objectives Get a more detailed understanding of the requirements Identify and Refine Requirements Design, implement, validate, and baseline an architecture Develop the Architecture Develop Solution Increment Test Solution Mitigate essential risks, and produce accurate schedule and cost estimates Plan and Manage Iteration Ongoing Tasks
  • 23. Made available under EPL v1.0 23 OpenUP Lifecycle – Construction Phase • The primary purpose of the Construction Phase is to develop and verify the solution incrementally. • More specifically, the objectives and associated process activities are: • At the Initial Operational Capability Milestone, progress towards meeting these objectives is assessed and a decision to deploy the solution to the operation environment is made. Phase objectives Activities that address objectives Iteratively develop a complete product that is ready to transition to the user community Identify and Refine Requirements Develop Solution Increment Test Solution Minimize development costs and achieve some degree of parallelism Plan and Manage Iteration Ongoing Tasks
  • 24. Made available under EPL v1.0 24 OpenUP Lifecycle – Transition Phase • The primary purpose of the Transition Phase is to deploy the solution to the operational environment and validate it. • More specifically, the objectives and associated process activities are: • At the Product Release Milestone, progress towards meeting these objectives are assessed and a decision to make the product generally available is made. Phase objectives Activities that address objectives Beta test to validate that user expectations are met Ongoing Tasks Develop Solution Increment Test Solution Achieve stakeholder concurrence that deployment is complete Plan and Manage Iteration Test Solution Improve future project performance through lessons learned Plan and Manage Iteration
  • 25. Made available under EPL v1.0 25 OpenUP Disciplines • A discipline is a collection of tasks that are related to a major "area of concern" within the overall project. • Within the lifecycle, tasks are performed concurrently across several disciplines. • Separating tasks into distinct disciplines is simply an effective way to organize content that makes comprehension easier. • OpenUP defines the following Disciplines:
  • 26. Made available under EPL v1.0 26 Architecture Discipline • This discipline consists of 2 tasks and 17 guidance elements. • Primary Roles: – Architect • Associated Work Products: – Architecture Notebook
  • 27. Made available under EPL v1.0 27 Configuration and Change Management Discipline • This discipline consists of 2 tasks and 9 guidance elements. • Primary Roles: – Any Role – Developer • Associated Work Products: – None
  • 28. Made available under EPL v1.0 28 Development Discipline • This discipline consists of 4 tasks and 18 guidance elements. • Primary Roles: – Developer • Associated Work Products: – Build – Design – Developer Test – Implementation
  • 29. Made available under EPL v1.0 29 Project Management Discipline • This discipline consists of 4 tasks and 17 guidance elements. • Primary Roles: – Project Manager • Associated Work Products: – Iteration Plan – Project Plan – Risk List – Work Items List
  • 30. Made available under EPL v1.0 30 Requirements Discipline • This discipline consists of 3 tasks and 21 guidance elements. • Primary Roles: – Analyst • Associated Work Products: – Glossary – Supporting Requirements Specification – Use Case – Use-Case Model – Vision
  • 31. Made available under EPL v1.0 31 Test Discipline • This discipline consists of 3 tasks and 7 guidance elements. • Primary Roles: – Tester • Associated Work Products: – Test Case – Test Log – Test Script
  • 32. Made available under EPL v1.0 32 OpenUP Roles • Roles define a set of related skills, competencies and responsibilities. • OpenUP defines the following Roles:
  • 33. Made available under EPL v1.0 33 Analyst Role • The person in this role represents customer and end-user concerns by gathering input from stakeholders to understand the problem to be solved and by capturing and setting priorities for requirements
  • 34. Made available under EPL v1.0 34 Any Role Role • Anyone on a team can fill this role of performing general tasks.
  • 35. Made available under EPL v1.0 35 Architect Role • This role is responsible for defining the software architecture, which includes making the key technical decisions that constrain the overall design and implementation of the project.
  • 36. Made available under EPL v1.0 36 Developer Role • This role is responsible for developing a part of the system, including designing it to fit into the architecture, possibly prototyping the user-interface, and then implementing, unit-testing, and integrating the components that are part of the solution.
  • 37. Made available under EPL v1.0 37 Project Manager Role • Leads the planning of the project, coordinates interactions with the stakeholders, and keeps the project team focused on meeting the project objectives.
  • 38. Made available under EPL v1.0 38 Stakeholder Role • This role represents interest groups whose needs must be satisfied by the project. It is a role that may be played by anyone who is (or potentially will be) materially affected by the outcome of the project.
  • 39. Made available under EPL v1.0 39 Tester Role • This role is responsible for the core activities of the test effort. Those activities include identifying, defining, implementing, and conducting the necessary tests, as well as logging the outcomes of the testing and analyzing the results.
  • 40. Made available under EPL v1.0 40 A Typical Task Description • Tasks typically have an associated concept, guideline and checklist. • If one needs to perform a task – one reads the concept to understand the context, – reads the steps to determine what needs to be done, – reads the guideline to determine how to do it, – then reads the checklist to validate completion.
  • 41. Made available under EPL v1.0 41 A Typical Artifact Description • Typically artifacts have associated templates and checklists. • The template provides additional guidance on completing the artifact and • The checklist helps check the quality of the resulting artifact.
  • 42. Made available under EPL v1.0 42 Some Key Practices from OpenUP
  • 43. Made available under EPL v1.0 43 3 Levels of Planning
  • 44. Made available under EPL v1.0 44 Stakeholder Satisfaction Space Project Starting Point Level 1 – Project Plan Your goal is to find a Path from Here to There •The Project Plan provides a course grain plan to complete. •Time-scale of months. •Defines number of iterations (initial estimate) and major milestones •Main artifacts: Project Plan
  • 45. Made available under EPL v1.0 45 Stakeholder Satisfaction Space Divide One Big Problem into a Series of Smaller Problems (Iterations) 1 2 3 4 5 6 Initial Project Plan PlannedPlanned CompletionCompletion PlannedPlanned CompletionCompletion Planned Path IterationsIterationsIterationsIterations
  • 46. Made available under EPL v1.0 46 Stakeholder Satisfaction Space Define When Key Milestones Can Be Achieved 1 2 3 4 5 6 Do we understand the problem? (LCO) Do we understand the solution? (LCA) Feature complete? (IOC) Release ready? (PR) PlannedPlanned CompletionCompletion PlannedPlanned CompletionCompletion Planned Path Inception Elaboration Construction Transition
  • 47. Made available under EPL v1.0 47 Level 2 – Iteration Plan Work Item List High Priority Low Priority New work items can be added at any time Work items can be removed at any time Work items can be reprioritized at any time High-priority work items should be well-defined Low-priority work items can be vague Each iteration implements the highest-priority work items •The Iteration Plan provides a fine grain plan for an iteration. •Time-scale of weeks. •Defines number of work items to complete in this iteration. •Main artifacts: Iteration Plan, Work Item List
  • 48. Made available under EPL v1.0 48 Key Concepts: Agile Estimation • Size (points): – For each work item, we estimate how big it is. We focus on relative size, so key is to be consistent within your work items list. • Velocity – A measurement of how many points are delivered in each iteration • Effort (days or hours): – Estimate of actual effort.
  • 49. Made available under EPL v1.0 49 Plan Your Iteration • Specify target velocity and outline iteration objectives in iteration plan • Analyze top priority Work Item – Estimate effort in hours – If too big to fit within iteration, break down into smaller work items – Add to Iteration Plan – Analyze next work item in priority order until Iteration Plan is “full” • Specify test and other assessment criteria Work Item List •Iteration objectives •Iteration Work Item List •Measure / test results Estimate and add to iteration plan Iteration Plan
  • 50. Made available under EPL v1.0 50 Level 3 - Creating a Solution for a Work Item • Select a work item assigned to the current iteration • Collaborate with team if it needs breakdown – Time-scale of days • Identify requirements closure – Attachments: use case, supporting requirement, bug information, test case – Gather additional information • Repeat until complete – Build a small solution verified with developer tests • Verify completion with system tests
  • 51. Made available under EPL v1.0 51 Assessments • OpenUP promotes daily stand-up meetings to track day- day progress. • An Iteration Assessment is conducted at the end of each iteration to determine if objectives have been achieved. • Main input to iteration assessment is a working prototype (Artifact: Build) • Project Burndown and Iteration Burndown charts based on Work Item List used to monitor progress • Retrospective conducted at the end of each iteration to assess the process
  • 52. Made available under EPL v1.0 52 Planned Path Use Iteration Assessments to Change Direction Actual Path 1 2 3 4 5 6 1 2 3 4 5 6 7Updated Project Plan PlannedPlanned CompletionCompletion PlannedPlanned CompletionCompletion Stakeholder Satisfaction Space
  • 53. Made available under EPL v1.0 53 Forms of Requirements • Vision defines stakeholder’s view of product • Use Cases define user scenarios – Any scenario-based requirements would do – Defines consistent set of requirements for an increment of the system • Supporting Requirements cover technical and other non- usage issues • Work Items reference requirement work products for more detail
  • 54. Made available under EPL v1.0 54 Iterative Requirements Development • Vision defines product • Use-case identification scopes release • Use-case detail drives work in an iteration • Supporting requirements are managed across the lifecycle • OpenUP promotes a breadth-before-depth, approach to requirements development: – Identify use cases (name and brief desc only). – Prioritize use cases – Detail main scenario of high priority use case – Implement and verify – Detail alternate scenarios of same use case or main scenario of another use case • This is accomplished by iterative application of tasks Find and Outline Requirements and Detail Requirements for each increment.
  • 55. Made available under EPL v1.0 55 Test Cases • Test Case – Aligned with requirements – Specifies the conditions to be validated – Outlines necessary data • Contrasted with Test Script – Aligned with Test Cases – Explicit step-by-step instructions – Supplemented by test data – Best if automated • Test Cases are a form of Test First Design (TFD)
  • 56. Made available under EPL v1.0 57 Test-first Design • Developer testing straddles the implementation of the solution – Unit Test – Integration Test • Continuous integration built into the process.
  • 57. Made available under EPL v1.0 58 Continuous Integration • Team members integrate their work with completed Change Sets from other developers, and test the application, before making their work available to others. • This results in early detection of errors, while the work is still fresh in the minds of developers. • OpenUP incorporates Continuous integration into the process and provides guidance that describe CI, outline the benefits, and provide tips for effective CI. • For more information see: – Concept: Continuous Integration – Guideline: Continuous Integration • A very good description of CI may be found at: – http://www.martinfowler.com/articles/continuousIntegration.html
  • 58. Made available under EPL v1.0 59 SPEM 2.0 “...by relieving the brain of all unnecessary work, a good notation sets it free to concentrate on more advanced problems, and in effect, increases the mental power of the race.” Alfred North Whitehead British mathematician, logician and philosopher
  • 59. Made available under EPL v1.0 60 EPF uses SPEM 2.0 • SPEM = Software Process Engineering Meta-model • Although the title implies Software Processes, any process can be represented using SPEM.
  • 60. Made available under EPL v1.0 61 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
  • 61. Made available under EPL v1.0 62 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
  • 62. Made available under EPL v1.0 63 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) – End-End 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
  • 63. Made available under EPL v1.0 64 SPEM 2.0 Method Content
  • 64. Made available under EPL v1.0 65 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.
  • 65. Made available under EPL v1.0 66 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.
  • 66. Made available under EPL v1.0 67 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.
  • 67. Made available under EPL v1.0 68 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
  • 68. Made available under EPL v1.0 69 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?
  • 69. Made available under EPL v1.0 70 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).
  • 70. Made available under EPL v1.0 71 SPEM 2.0 Process Content
  • 71. Made available under EPL v1.0 72 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)
  • 72. Made available under EPL v1.0 73 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)
  • 73. Made available under EPL v1.0 74 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.
  • 74. Made available under EPL v1.0 75 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.
  • 75. Made available under EPL v1.0 76 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
  • 76. Made available under EPL v1.0 77 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.).
  • 77. Made available under EPL v1.0 78 EPF Composer Introduction
  • 78. Made available under EPL v1.0 79 EPF Composer • EPF Composer is built upon the Eclipse platform • Supports many of the Eclipse plug-ins – For example, Mylar • 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
  • 79. Made available under EPL v1.0 80 EPF Composer Authoring Perspective Library View Configuration View Task Editor (form based) Authoring Perspective
  • 80. Made available under EPL v1.0 81 EPF Composer Authoring Perspective Form based plain text or… …Rich Text editors
  • 81. Made available under EPL v1.0 82 EPF Composer Browsing Perspective Configuration View Preview View Browsing Perspective
  • 82. Made available under EPL v1.0 83 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 Select Content Select Content
  • 83. Made available under EPL v1.0 84 Basic Concepts Configuration: View Definition • Categories group related elements • Views defined by selecting Categories Standard Categories Custom Categories Define Views
  • 84. Made available under EPL v1.0 85 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. Scenario A Instructions
  • 85. Made available under EPL v1.0 86 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
  • 86. Made available under EPL v1.0 87 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.
  • 87. Made available under EPL v1.0 88 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
  • 88. Made available under EPL v1.0 89 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
  • 89. Made available under EPL v1.0 90 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
  • 90. Made available under EPL v1.0 91 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
  • 91. Made available under EPL v1.0 92 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
  • 92. Made available under EPL v1.0 93 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
  • 93. Made available under EPL v1.0 94 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
  • 94. Made available under EPL v1.0 95 Creating a Delivery Process (2/5) New Delivery Process • New Delivery Process is created • Editor opens to permit you to change/update content
  • 95. Made available under EPL v1.0 96 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.
  • 96. Made available under EPL v1.0 97 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
  • 97. Made available under EPL v1.0 98 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.
  • 98. Made available under EPL v1.0 99 EPF Composer Publishing • Configuration | Publish to start the Publish Method Wizard • Various publishing options
  • 99. Made available under EPL v1.0 100 Resulting Website
  • 100. Made available under EPL v1.0 101 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
  • 101. Made available under EPL v1.0 102 EPF Composer Import • File | Import to start the Import Wizard • Can import a Configuration, a plug-in, or raw XML.
  • 102. Made available under EPL v1.0 103 EPF Composer Export • File | Export to start the Export Wizard • Can export a Configuration, a plug-in, raw XML or MS Project Template

Editor's Notes

  1. <number>
  2. Eclipse is an open source community, whose projects are focused on building an open development platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across the lifecycle. The Eclipse Foundation is a not-for-profit, member supported corporation that hosts the Eclipse projects and helps cultivate both an open source community and an ecosystem of complementary products and services. The Eclipse Project was originally created by IBM in November 2001 and supported by a consortium of software vendors. The Eclipse Foundation was created in January 2004 as an independent not-for-profit corporation to act as the steward of the Eclipse community. The independent not-for-profit corporation was created to allow a vendor neutral and open, transparent community to be established around Eclipse. Today, the Eclipse community consists of individuals and organizations from a cross section of the software industry. Graphic Shows top level projects only: Business Intelligence and Reporting Tools Project Data Tools Platform Project (4 sub-projects) Device Software Development Project (5 sub-projects) Eclipse Project (5 sub-projects) Eclipse Modeling Project (8 sub-projects) SOA Tools Project Eclipse Technology Project (28 sub-projects) Tools Project (10 sub-projects) Eclipse Test and Performance Tools Project (4 sub-projects) Eclipse Web Tools Platform Project (5 sub-projects) Total of 71 projects. 5 proposed projects. For more info see http://www.eclipse.org/projects
  3. <number> The Eclipse Process Framework (EPF) aims at producing a customizable software process enginering framework, with exemplary process content and tools, supporting a broad variety of project types and development styles. Project Goals The Process Framework Project has two goals: To provide an extensible framework and exemplary tools for software process engineering - method and process authoring, library management, configuring and publishing a process. To provide exemplary and extensible process content for a range of software development and management processes supporting iterative, agile, and incremental development, and applicable to a broad set of development platforms and applications.
  4. <number>
  5. Now that we have a basic understanding of the language, lets have a look at an example process from the perspective of a process consumer (someone that will view the published process to get help performing their job). We will look at OpenUP. This will give you an good appreciation for what a process defined in EPF looks like to process consumers.
  6. OpenUP is the example process that ships with EPF Composer. It was co-developed by the organizations shown on the slide. The scope of OpenUP is a single release of a software application created by a relatively small, co-located team with easy access to stakeholders. These are important considerations in determining how much process is needed. Since the team is small and co-located, collaboration and informal communications can be exploited, removing much of the overhead that would be required in larger, distributed teams. The goal in developing OpenUP was to create a light-weight process that can easily be extended to meet the needs of projects/organizations that need more process.
  7. OpenUP is based on four core principles, each supported by a number of best practices. We will look at each of these, and the supporting practices, one-by-one.
  8. The collaboration core principle is an overarching principle that is primarily about human behavior. This is the principle that motivated much of the guidance in the process, mostly in the Project Management area, such as Agile Estimation, Prioritizing Work Items, Self Organizing Work Assignment. This principle also influenced which roles would participate in tasks and which work products were included. Maintain a common understanding Everyone on the team should participate in planning and understand the Vision and priorities. Foster a high-trust environment Ensure that people are not intimidated to raise issues at the daily status meeting and throughout the day. Let people volunteer for work items vs. being assigned work. Share Responsibility Roles are not job titles, if you have the skills and the time, play the role and get the work done. Multiple roles will have to collaborate with the primary role on any particular task. Learn continuously Mentor and coach others (so they can play a different role if needed). Organize around the architecture Everyone should understand how their work fits into the big picture. This will help with optimization and coordination of effort.
  9. The evolve core principle is supported by several best practices related to iterative, incremental development. The goal is to deliver value and minimize risk as early as possible on the project by producing working software in each iteration that can be demonstrated to stakeholders to get early feedback. It recognizes that one cannot know everything up front, and even if you did, things will change. Iterations fit within the context of phases to ensure we don’t “iterate forever”. Develop your project in iterations Time-box iterations. If you can’t accomplish everything it is better to de-scope and hit the milestone so you can get feedback. Delaying feedback builds up risk. Focus on the next milestone Project phases focus work on the important areas so you don’t iterate forever. Manage Risk Risk and stakeholder value are the drivers in selecting what should be done next. Never forget about risk, or it will materialize. Make risk visible to stakeholders so they understand and accept why you are not implementing functionality in their initial order of priority. Embrace Change Changes can happen at any time, but the impact must be known and agreed by all…but see Balance core principle for managing scope. Measure progress Daily status meetings, monthly iteration assessments (product status) and retrospectives (process status), and metrics (project and iteration burndown) are critical to identify problems early and adapt. Working software demonstrations at the end of each iteration are critical. Continuously re-evaluate what you do Continuous process improvement is the key to agile organizations. Perform a retrospective (process review) at the end of each iteration to capture lessons learned and improve the process.
  10. The balance key principle is about maximizing stakeholder value given the realities of limited time and money. It captures some key requirements management best practices that help you understand stakeholder needs and prioritize requirements for implementation. Know your audience Identify all stakeholders to ensure all perspectives are captured. If you miss an important stakeholder until late in development, re-work may be significant. Separate the problem from the solution Understand the problem before rushing into a solution that really isn’t optimal. There are many ways to skin a cat…just make sure you have to skin a cat before you pick one. In order to be able to make trade-offs, you need to be able to separate the problem from the solution in order to gain the required degree of freedom to change HOW to provide the WHAT. Use scenarios and use cases to capture requirements Scenarios and use cases provide context for requirements and are easy for stakeholder to understand. They also provide the right level of granularity (ie. Capabilities) for prioritization, implementation and verification and help ensure you capture complete, consistent sub-sets of the requirements for incremental implementation. Establish and maintain agreement on priorities Work closely with stakeholder to agree on priorities. Prioritize at the right level of abstraction and granularity (i.e. use case or scenario level vs. individual system requirement level) to simplify incremental development. Make trade-offs to maximize value Investigate alternative designs make the trades to maximize value (and minimize risk). Re-factor as required to stay on track. Manage Scope Understand the impact (cost, schedule, risk) of changes before making them. Don’t change course mid-iteration, assign approved changes to future iterations so the team can work without de-stabilizing change.
  11. The focus core principle promotes a common understanding of the solution architecture. Without a solid architecture the system will evolve in an inefficient and haphazard way. Ensure everyone understands the big picture so they know how their piece fits and can provide additional input for optimization. Create an architecture for what you know today Don’t over-engineer or gold-plate the solution. Create robust and flexible architectures that can accommodate change and be prepared to re-factor. Leverage architecture as a collaborative tool Lack of a common understanding by developers about a system leads to indecision and contrary opinions among developers, and can quickly paralyze the project. Developers may have different mental models of the system and work at cross purposes to each other. Create and evolve the system architecture with the intention of using it to align the developers' competing mental models of the system. A good architecture facilitates collaboration by providing a common vocabulary for all discussions regarding the system under development. Cope with complexity by raising the level of abstraction Software is complex, and people have a limited capacity for coping with complexity. As a system gets larger, it is difficult for the team to develop a common understanding of the system, because it's hard to see the bigger picture. Use models to raise the level of abstraction to focus on important high-level decisions, such as relationships and patterns, rather than getting bogged down in details. Modeling raises the level of abstraction, and allows the system to be more easily understood from different perspectives. Organize the architecture into loosely coupled, highly cohesive components Tight coupling between components makes a system fragile and difficult to understand. Software is expensive to create, so if existing components can be reused, that may reduce effort required to create a system. Organize the architecture of the system into components to maximize cohesion and minimize coupling. This improves comprehension, and increases flexibility and opportunities for re-use. Reuse existing assets It is wasteful to build what you can simply reuse, download, or even buy. Make every effort to reuse existing assets. Developers are often reluctant to reuse assets, because those assets do not exactly meet their needs, or those assets are of poor quality. Be prepared to balance the savings you can realize using an existing asset, even if the asset requires you to make some accommodation in the architecture or relax a constraint.
  12. <number>
  13. <number> It is generally recognized the key to delivering value and reducing risk as early as possible , while minimizing re-work and maintaining ability to quickly respond to change is to follow an iterative incremental lifecycle. There are several implementations of this practice (Scrum sprints, UP iterations, etc.). OpenUP uses a three-tiered governance model to balance agility and discipline. The following, taken from the “Introduction to OpenUP” webpage describes the model: Personal effort on an OpenUP project is organized in micro-increments. These represent short units of work that produce a steady, measurable pace of project progress (typically measured in hours or a few days). The process applies intensive collaboration as the system is incrementally developed by a committed, self-organized team. These micro-increments [are defined by the work items, and] provide an extremely short feedback loop that drives adaptive decisions within each iteration. OpenUP divides the project into iterations: planned, time-boxed intervals typically measured in weeks. Iterations focus the team on delivering incremental value to stakeholders in a predictable manner. The iteration plan defines what should be delivered within the iteration [by assigning work items to the iteration], and the result is a demo-able or shippable build. OpenUP teams self-organize around how to accomplish iteration objectives and commit to delivering the results. They do that by defining and "pulling" fine-grained tasks from a work items list. OpenUP applies an iteration lifecycle that structures how micro-increments are applied to deliver stable, cohesive builds of the system that incrementally progresses towards the iteration objectives. OpenUP structures the project lifecycle into four phases: Inception, Elaboration, Construction, and Transition. The project lifecycle provides stakeholders and team members with visibility and decision points throughout the project. This enables effective oversight, and allows you to make "go or no-go" decisions at appropriate times. A project plan defines the lifecycle, and the end result is a released application.
  14. <number> The project lifecycle is the course-grain plan and associated milestones for successful software development.
  15. <number>
  16. <number> This is the OpenUP Lifecycle. It consists of four phases and associated milestones and an iteration template for each phase that outlines the key activities. Part of the project planning (Initiate Project) is to specialize this to the needs of the project by defining the number of iterations that will be performed in each phase. Guidance on project planning provide help in determining the number of iterations. We will look at each phase in detail.
  17. <number>
  18. <number>
  19. <number>
  20. <number>
  21. <number>
  22. <number>
  23. <number>
  24. <number>
  25. <number>
  26. <number>
  27. This section of the presentation will outline some of the key practices from OpenUP.
  28. <number> We already discussed the governance lifecycle. Let’s look at each of the three levels in more detail to see the best practices embodied in each.
  29. <number>
  30. <number>
  31. <number>
  32. <number>
  33. <number>
  34. The work item can be broken down to be sliced by context.
  35. <number>
  36. Design solution Defines interface to be tested Create test for solution Completed test should run and fail Implement solution Test should run and pass In as small of increments as possible
  37. <number> Continuous integration provides the following benefits: Improved feedback. Continuous integration shows constant and demonstrable progress. Improved error detection. Continuous integration enables you to detect and address errors early, often minutes after they’ve been injected into the product. Effective continuous integration requires automated unit testing with appropriate code coverage. Improved collaboration. Continuous integration enables team members to work together safely. They know that they can make a change to their code, integrate the system, and determine very quickly whether or not their change conflicts with others. Improved system integration. By integrating continuously throughout your project you know that you can actually build the system, thereby mitigating integration surprises at the end of the lifecycle. Reduced number of parallel changes that need to be merged and tested. Reduced number of errors found during system testing. All conflicts are resolved prior to making new change sets available, by the person who is in the best position to resolve them. Reduced technical risk. You always have an up-to-date system against which to test. Reduced management risk. By continuously integrating your system you know exactly how much functionality that you’ve built to date, improving your ability to predict when and if you’re actually going to be able to deliver the necessary functionality. The detailed application of continuous integration depends on which tools you use (configuration management system, automated build tool, automated test tool, and so forth). However, these are the basic steps: A developer, let’s call her Jane, selects a work item to work on. Jane updates her Workspace to include the most recent Implementation from the integration workspace. Jane makes her changes in her workspace to both her developer tests and to the implementation, and then she tests the changes. Before committing the changes, Jane updates her workspace again (because other developers may have introduced conflicting changes) and reruns her developer tests. If these tests are successful, the changes are promoted (see Guideline: Promoting Changes) to the integration workspace. A complete Build of the application is performed by using the implementation from the integration workspace, and the entire suite of developer tests is run on this build. If any of these tests fail, the team is notified, and the failed test should be addressed as soon as possible. This process repeats as the team develops and continuously integrates and tests functionality in small increments. Constraints Conceptually, continuous integration can be performed manually (see [SHO06] for example). However, in practice, there are several constraints that must be respected for it to be effective: All changes must be introduced into a tested configuration that you know to be good. The integrate-build-test cycle must be fast enough so that it can be completed quickly and the team notified of the results. Many published guidelines promote a 10-minute cycle. Keep the Change Sets small enough so that the work can be completed and integration performed several times per day. Many published guidelines promote a 2- to 4-hour cycle between integrations. These constraints imply the need for a configuration management (CM) repository to maintain configuration information (Item 1 listed previously), automated build and test tools to meet the turnaround constraints (Item 2), and proper planning and discipline by developers to ensure that their work items and change sets are small enough to complete quickly (Item 3). For a more detailed description of continuous integration, see [FOW06] or [WIKP-CI].
  38. Now lets look at EPF from the perspective of a process engineer. Before we look at EPF Composer in detail, we need some basic concepts from SPEM 2.0.
  39. <number> The Software Process Engineering Meta-model defines a formal language for describing development processes. Despite the name, the meta-model is very general and may be used to describe any development process in any domain. The Final Adopted specification was released in March 2007.
  40. SPEM defines the elements used in describing a process as well as elements used for structuring and managing this information. These are the basic elements used to structure and manage the information: Method Library, Method Plug-in, Method Package, Process Package, Method Configuration. A method library is a collection of method plug-ins and method configurations. A method plug-in is a container for content that can be independently imported and exported from a library (i.e. they can “plug-in” to the library). Method plug-ins can re-use information in other plug-ins. Method Plug-ins are further sub-divided into method packages and process package to simplify managing the information. A Method Configuration defines a logical sub-set of a method library (i.e. which plug-ins and packages) that will be published or exported. You can think of a method configuration as a ‘filter’ applied to the library that gives you only what you need for your particular purpose.
  41. This shows an example of the top-level structure of a method library, using a screen-shot from EPF Composer. This is the OpenUP library that ships with EPF Composer. It consists of three Method Plug-ins and two configurations. The openup plug-in defines one delivery process (openup_lifecycle) and the dsdm_openup plug-in (which extends openup with additional guidance and roles from the Dynamic Systems Development Method) defines another delivery process.
  42. <number> SPEM makes a clear separation of concerns between Method Content and Process. Method Content defines highly re-useable content. Process re-uses this content to create end-to-end processes or re-usable process “components”. We will look at each of these separately, however the important thing to understand is that the method content does not define when roles perform the tasks, but rather the relationships between roles, tasks, work products and associated guidance for these. Processes define the timing of tasks (and predecessor/successor relationships).
  43. This slide is intended to make the method content/process content differentiation clear.
  44. SPEM 2.0 Semantics A Role Definition defines a set of related skills, competencies, and responsibilities of an individual or a set of individuals. Roles are not individuals or resources. Individual members of the development organization will wear different hats, or perform different roles. The mapping from individual to Role, performed by the project manager when planning and staffing for a project, allows different individuals to act as several different roles, and for a role to be played by several individuals (also refer to Section 13.3’).
  45. SPEM 2.0 Semantics Work Products are in most cases tangible work products consumed, produced, or modified by Tasks. They may serve as a basis for defining reusable assets. Roles use Work Products to perform Tasks and produce Work Products in the course of performing Tasks. Work Products are the responsibility of Role Definitions, making responsibility easy to identify and understand, and promoting the idea that every piece of information produced in the method requires the appropriate set of skills. Even though one Role Definition might “own” a specific type of Work Product, other roles can still use the Work Product for their work, and perhaps even update them if the Role Definition instance has been given permission to do so.
  46. SPEM 2.0 Semantics A Task Definition describes an assignable unit of work. Every Task Definition is assigned to specific Role Definitions. The granularity of a Task Definition is generally a few hours to a few days. It usually affects one or only a small number of work products. A Task Definition is used as an element of defining a process. Tasks Definition are further used for planning and tracking progress; therefore, if they are defined too fine-grained, they will be neglected, and if they are too large, progress would have to be expressed in terms of a Task Definition’s parts (e.g., Steps, which is not recommended). A Task Definition has a clear purpose in which the performing roles achieve a well defined goal. It provides complete step-by-step explanations of doing all the work that needs to be done to achieve this goal. This description is completely independent of when in a process lifecycle the work would actually be done. It therefore does not describe when you do what work, but describes all the work that gets done throughout the development lifecycle that contributes to the achievement of this goal. When the Task Definition instance is applied in a process, then this process application (defined as Task Use in Section 13.14) provides the information of which pieces of the Task Definition will actually be performed at any particular point in time. This assumes that the Task Definition will be performed in the process over and over again, but each time with a slightly different emphasis on different steps or aspects of the task description (also see Section 6.3.1 summarizing the difference between Method Content and Process). For example, a Task Definition such as “Develop Use Case Model” describes all the work that needs to be done to develop a complete use case model. This would be comprised of the identification and naming of use cases and actors, the writing of a brief description, the modeling of use cases and their relationships in diagrams, the detailed description of a basic flow, the detailed description of alternative flows, performing of walkthroughs workshops and reviews, etc. All of these parts contribute to the development goal of developing the use case model, but the parts will be performed at different points in time in a process. Identification, naming, and brief descriptions would be performed early in a typical development process versus the writing of detailed alternative flows which would be performed much later. All these parts or steps within the same Task define the “method” of Developing a Use Case Model. Applying such a method in a lifecycle (i.e., in a process) is defining which steps are done when going from one iteration to the next.
  47. ChecklistIdentifies a series of items that need to be completed or verified. Checklists are often used in reviews such as walkthroughs or inspections. ConceptOutlines key ideas associated with basic principles underlying the referenced item. Concepts normally address more general topics than guidelines and span several work product and/or tasks or activities. ExampleProvides an example of a completed work product or performed tasks and activities. GuidelineProvides additional detail on how to perform a particular task or grouping of tasks, or that provides additional detail, rules, and recommendations on work products and their properties. PracticeRepresents a proven way or strategy of doing work to achieve a goal that has a positive impact on work product or process quality. Practices are defined orthogonal to methods and processes. They could summarize aspects that impact many different parts of a method or specific process. ReportA template for an automatically generated description with extracted content one or several work products. Reusable AssetLinks a prepackaged solution to a problem for a given context. Examples of asset are design patterns or mechanisms, solution frameworks, etc. RoadmapA linear walkthrough of a complex process or activity. (This is process specific guidance.) Supporting MaterialA catch-all for other types of guidance not specifically defined elsewhere. It can be related to all kinds of content elements. TemplateFor a work product, provides a predefined table of contents, sections, packages, and/or headings, a standardized format, as well as descriptions on how the sections and packages are supposed to be used and completed. Term DefinitionDefines terminology and is used to build up the Glossary. Tool MentorShows how to use a specific tool to accomplish some piece of work, either in the context of, or independent from, a task or activity. WhitepaperSimilar to concept, but has been externally reviewed or published and can be read and understood in isolation of other content elements and guidance.
  48. ChecklistIdentifies a series of items that need to be completed or verified. Checklists are often used in reviews such as walkthroughs or inspections. ConceptOutlines key ideas associated with basic principles underlying the referenced item. Concepts normally address more general topics than guidelines and span several work product and/or tasks or activities. ExampleProvides an example of a completed work product or performed tasks and activities. GuidelineProvides additional detail on how to perform a particular task or grouping of tasks, or that provides additional detail, rules, and recommendations on work products and their properties. PracticeRepresents a proven way or strategy of doing work to achieve a goal that has a positive impact on work product or process quality. Practices are defined orthogonal to methods and processes. They could summarize aspects that impact many different parts of a method or specific process. ReportA template for an automatically generated description with extracted content one or several work products. Reusable AssetLinks a prepackaged solution to a problem for a given context. Examples of asset are design patterns or mechanisms, solution frameworks, etc. RoadmapA linear walkthrough of a complex process or activity. (This is process specific guidance.) Supporting MaterialA catch-all for other types of guidance not specifically defined elsewhere. It can be related to all kinds of content elements. TemplateFor a work product, provides a predefined table of contents, sections, packages, and/or headings, a standardized format, as well as descriptions on how the sections and packages are supposed to be used and completed. Term DefinitionDefines terminology and is used to build up the Glossary. Tool MentorShows how to use a specific tool to accomplish some piece of work, either in the context of, or independent from, a task or activity. WhitepaperSimilar to concept, but has been externally reviewed or published and can be read and understood in isolation of other content elements and guidance.
  49. SPEM 2.0 Semantics Categories can be used to categorize content based on the user’s criteria as well as to define whole tree-structures of nested categories allowing the user to systematically navigate and browse method content and processes based on these categories. For example, one could create a Category to logically organize content relevant for the user’s development organization departments; e.g., a “Testing” category that groups together all Roles, Work Products, Tasks, and Guidance elements relevant to testing. Another example would be Categories that express licensing levels of the content, grouping freely distributable method content versus content that represents intellectual property and requires a purchased license for use. Whereas Kinds are limited to one Kind instance per meta-model instance and stored as properties of the Extensible Element, Categories store the relationships to Describable Elements. Describable Elements can be categorized by as many Categories as needed. Categories can categorize Categories as well as can be hierarchical.
  50. This slide is intended to make the method content/process content differentiation clear.
  51. <number> Capability patterns define the sequence of work (i.e. the sequence of tasks) to achieve a particular purpose. They are similar to the work breakdown structures used in project management tools and define the timing of tasks, including any predecessor/successor relationships. In practice, capability patterns are created in EPF Composer by drag/drop tasks (from the method content) into a WBS to create instances of the task (called task descriptors). Because of the relationships defined in the method content, the associated roles and input/output work products are automatically included (as role descriptors and work product descriptors, respectively). The elements of the WBS can be specialized within the context of a Capability Pattern. For example, in a particular capability pattern, perhaps we only perform some of the steps of a task and only produce a subset of the output work products.
  52. <number> Capability patterns may be nested, to build up larger building blocks. Just as tasks are drag/dropped into a capability pattern to create the task descriptors, capability patterns can be drag/dropped into a capability pattern to create Activities. Capability Patterns (and Activities) may also be shown graphically, using activity diagrams.
  53. <number> A delivery process defines an end-to-end specification for achieving a goal (ex. release a new version of a software application). You can think of it as the “top-level” activity. In addition to activities, delivery processes may contain milestones, phases, and iterations.
  54. Method variability permits one to tailor an existing process without modifying the original. This is an essential capability if you are tailoring a process that is not under your control. You don’t want to change the original, because any updates would over-write your changes. By exploiting variability you can update the original with minimal re-work to your tailored version. The concept is similar to inheritance in OO programming (re-use and specialize.
  55. There are four types of method variability. These are defined, along with examples on the slide.
  56. <number>
  57. <number>
  58. <number>
  59. <number> Use “Content” selections for course grain (Plug-in and package level) configuration. Use “Add/Subtract these Categories” for fine grain (element level) configuration.
  60. <number>
  61. Customization scenarios - create a new configuration; publish a new process that is a subset of the OOTB process (e.g. by removing the visual modeling specific content) - create a new plug-in; create a method content that enhances existing content around a solution by adding more guidance specific to your team (e.g. CRC Cards to replace Visual Modeling) - consider adding contributing task with a new step, a guidance - on the new plug-in, use pieces from OpenUP CPs to create a delivery process resembling agile methods (iteration 0, iteration n) Note: These are examples of customization scenarios. Not all possibilities have been explored due to lack of time for this tutorial.
  62. <number>
  63. <number>
  64. <number>
  65. <number>
  66. <number>
  67. <number>
  68. <number>
  69. Customization scenarios - create a new configuration; publish a new process that is a subset of the OOTB process (e.g. by removing the visual modeling specific content) - create a new plug-in; create a method content that enhances existing content around a solution by adding more guidance specific to your team (e.g. CRC Cards to replace Visual Modeling) - consider adding contributing task with a new step, a guidance - on the new plug-in, use pieces from OpenUP CPs to create a delivery process resembling agile methods (iteration 0, iteration n) Note: These are examples of customization scenarios. Not all possibilities have been explored due to lack of time for this tutorial.
  70. <number>
  71. <number>
  72. <number>
  73. <number>
  74. <number>
  75. <number>
  76. The Work Items List keeps everything together. Intent is mapped to work items, which are prioritized and managed, and drives development and test.
  77. Customization scenarios - create a new configuration; publish a new process that is a subset of the OOTB process (e.g. by removing the visual modeling specific content) - create a new plug-in; create a method content that enhances existing content around a solution by adding more guidance specific to your team (e.g. CRC Cards to replace Visual Modeling) - consider adding contributing task with a new step, a guidance - on the new plug-in, use pieces from OpenUP CPs to create a delivery process resembling agile methods (iteration 0, iteration n) Note: These are examples of customization scenarios. Not all possibilities have been explored due to lack of time for this tutorial.
  78. <number>
  79. <number>