320 likes | 413 Views
The Eclipse Process Framework. Breno Machado. The Eclipse Process Framework. EPF is an Open Source project within the Eclipse Foundation Goals: An extensible framework and tooling for authoring, configuring and publishing processes Exemplary Process – first delivered is OpenUP EPF is NOT :
E N D
The Eclipse Process Framework Breno Machado
The Eclipse Process Framework EPF is an Open Source project within the Eclipse Foundation Goals: An extensible framework and tooling for authoring, configuring and publishing processes Exemplary Process – first delivered is OpenUP EPF is NOT: Only applicable for Eclipse Java development. Intended to create the “perfect process” EPF is based in SPEM 2.0 (Software Process Engineering Metamodel)
The Eclipse Process Framework EPF is for 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
Basic Concepts - EPF Method Library All Method Elements are stored in a Method Library Method Plug-in Physical container for Method Packages and Process Packages Method Configuration A logical subset of a Method Library Delivery Process A complete and integrated approach for performing a specific type of project
Basic Concepts - EPF 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
Basic Concepts - EPF 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
Method Content - EPF Role Set of related skills, competencies and responsabilities Are NOT individuals Individuals may play multiple roles Perform Tasks Are responsible for Work Products Work Product Tangible things used, modified or produced by a Task Roles use and produce Work Product performing tasks Are responsability of a Role 3 types Artifact Deliverable Outcome • Task • Define a assignableunitof work • Perfomedby Roles • Describe a work step-by-step to achieve a goal. • Modifyorproduce Work Products • Don’t define WHEN they are performed in thelifecicle.
Method Content - EPF Guidance May be associate with Roles, Tasks and Work Products Different types depending upon purpose Detailed methodology and supporting information Tasks say “what” Guidance say “how-to” • Categories • Grouprelatedmethodelements • Five Standard Categories • Discipline • Domain • Work ProductKind • Role Set • Tool • Maybenested • Can define customcategories • Used to build views in publishedwebsite • Types: • Checklist • Concept • Example • Guideline • Estimate • Considerations • Practice • Report • Reusable Asset • Roadmap • Supporting Material • Template • Term Definition • Tool Mentor • Whitepaper
Process Content - EPF Capability Patterns Sequence of related tasks, performed to achieve a greater purpose Tasks can be specialized for the given context TaskDescriptor (instanceofTask) Role Descriptor (instanceof Role) Work Product Descriptor (instanceof Work Product)
Process Content - EPF Capability Patterns Capability Patterns may be nested and viewed graphically An Activity is an instance of a Capability Pattern Activity (Instanceof Capability Patterns)
Process Content - EPF Delivery Process Defined using Work Breakdown Structure and/or Activity Diagrams Define end-end full lifecycle process May include Iterations, Phases, Milestones (type of Activity)
EPF Composer – Authoring Perspective Authoring Perspective Library View Task Editor (form based) Configuration View
EPF Composer – Authoring Perspective Form based plain text or… …Rich Text editors
Processes Available as Reusable EPF Specification EPF available s examples of process to use OpenUP SCRUM XP http://www.eclipse.org/epf/downloads/downloads.php
Interesting Aspects of OpenUPSpecified in EPF “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
OpenUP – Core Principles 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 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).
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.
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:
OpenUP - Roles Roles define a set of related skills, competencies and responsibilities. OpenUP defines the following Roles:
Interesting Aspects of XPSpecified in EPF eXtreme Programming is a development process that can be used by medium and small sized times in the face of vague or rapidly changing requirements. Customer create “stories” that is a very lightweight use-cases Development is done iteratively and incrementally Every two weeks delivers working stories to the customer Programmers work on their programming tasks in pairs
XP Values Communication XP emphasizes face-to-face communication Simplicity XP presumes that it is better to do the simple thing today Feedback Continuous feedback allows the customer to steer the project to success Courage Perhaps a better name for this value is trust
Interesting Aspects of SCRUMSpecified in EPF Is a mechanism in the sport of rugby for getting an out-of-play ball back into play Scrum focuses on the social and collective aspect of development Scrum Goal is to improve quality and productivity, with an empirical approach, relying on autonomous teaming Empirism An empirical process requires a good visibility 2 regulation cycles During Daily Scrums During Sprint Reviews Scope not describe all the software development activities - analysis, design, coding, testing