A Comparison of the Essence 1.0 and SPEM 2.0 Specifications for Software Engineering Methods Brian Elvesæter1, Gorka Benguria2 and Sylvia Ilieva3 1 SINTEF ICT, P. O. Box 124 Blindern, N-0314 Oslo, Norway brian.elvesater@sintef.no 2 TECNALIA R&I, Ed 202, Zamudio 48170, Spain gorka.benguria@tecnalia.com 3 IICT-BAS, acad., G. Bonchev str., bl. 25A, Sofia 1113, Bulgaria sylvia@acad.bg ICT Outline Background and Motivation The Agile REMICS Methodology Evaluation of Essence Comparison Main language concepts Different Kernel starting points Illustrative Example (Authoring capabilities) Enactment capabilities Mapping of SPEM and Essence Concepts Conclusions and Future Work ICT 2 Background and Motivation The REMICS Methodology Evaluation of Essence Tool-supported agile methodology "Essence – Kernel and Language for model-driven modernization of legacy applications to service clouds. Initial release followed a traditional approach developed using the Eclipse Process Framework (EPF). The focus during the last phase of the project has been on introducing agile practices and techniques. REMICS participated in the OMG FACESEM [8] standardization process in OMG. for Software Engineering Methods" [7] specification endorsed March 2013. Essence promises better support for definition of agile practices and method enactment compared to SPEM. EssWork Practice Workbench tooling has been made available. Currently evaluating the Essence approach for selected parts of the REMICS Methodology. [7] OMG, "Essence - Kernel and Language for Software Engineering Methods", OMG Document ad/2013-02-01, 18 February 2013. http://semat.org/wp-content/uploads/2013/02/Essence_final_submission_18Feb13.pdf [8] OMG, "A Foundation for the Agile Creation and Enactment of Software Engineering Methods RFP", OMG Document ad/2011-06-26, 23 June 2011. http://www.omg.org/members/cgi-bin/doc?ad/11-06-26.pdf ICT 3 Extending the REMICS Methodology with Agile Practices First release (traditional) Second release (agile) Modernization Practices Agile Practices and Techniques Requirements Scrum Recover Modelling by Two Migrate Pair Modelling Validate Continuous Modelling Control and Supervise Collective Model Ownership Withdrawal Pair Programming Interoperability Continuous Integration Collective Code Ownership ICT 4 Main language concepts SPEM 2.0 Kernel: Stripped-down, light-weight model of the essential aspects of software engineering Essence 1.0 (draft) Practice: Description of how to handle a specific aspect of a software engineering endeavour ICT 5 Different Kernel starting points SPEM 2.0 SPEM does not specify a standard kernel. But proprietary kernels exist,e.g. OpenUP that comes with the EPF Library Essence 1.0 (draft) Alphas: Things to work with Standard categories, e.g., Disciplines Activity Spaces: Things to do Roles, e.g, basic roles, business roles, etc. Competencies ICT 6 Illustrative Example: Scrum in EPFC Structure of the Scrum practice in the EPF Composer (EPFC) Agile REMICS Methodology Scrum Practice [9] Tasks and Work Products Definition of Scrum Roles, Scrum of Scrums Definition of the Sprint Scrum Capability Practice Pattern Guidance element Scrum team (roles) Product Owner Development Team (of developers) Scrum Master Scrum artifacts Product Backlog Sprint Backlog Increment Scrum events The Sprint Sprint Planning Meeting Daily Scrum Sprint Review Sprint Retrospective [9] K. Schwaber and J. Sutherland, "The Scrum Guide", Scrum.org, October 2011. http://www.scrum.org/storage/scrumguides/Scrum_Guide.pdf ICT 7 Illustrative Example: Scrum in EWPW Identify relevant Kernel Alphas Structure of the Scrum practice in the EssWork Practice Workbench (EWPW) new and bind Work Products Definition Defining ofDefine Work Alphas, Activities, Patterns, Product, e.g. e.g. e.g. Sprint e.g. Product Sprint Product (sub-Alpha Planning Owner Backlog Meeting of Work) Add new sub-Alphas Identify relevant Kernel Activity Spaces Define and bind Activities ICT 8 Enactment capabilities SPEM 2.0 Two common ways [4]: "Mapping the processes into Project Plans and enacting these with project planning and enactment systems such as IBM Rational Portfolio Manager or Microsoft Project (Section 16.1). Mapping the process to a business flow or execution language and then executing this representation of the processes using a workflow flow engine such as a BPELbased workflow engine (Section 16.2)." Essence 1.0 (draft) Language features Alpha States Activities with Completion Criteria Checkpoints Task Management Kernel extension Task sub-alpha (of Work) Team Member sub-alpha (of Team) Practice Adoption sub-alpha (of Way of Working) [4] OMG, "Software & Systems Process Engineering Meta-Model Specification, Version 2.0", Document formal/2008-04-01, April 2008. http://www.omg.org/spec/SPEM/2.0/PDF/ (Section 16, Page 147] ICT 9 Alpha States with Checkpoints ICT 10 Activity and Completion Criterion An Activity should define at least one Completion Criterion 1. To define the objective of the activity, in terms of the "progress" of the endeavour 2. To generate advice on what to do next An Activity provides guidance on how 1. To progress the state of an Alpha 2. To create or update a Work Product [7] OMG, "Essence - Kernel and Language for Software Engineering Methods", OMG Document ad/2013-02-01, 18 February 2013. http://semat.org/wp-content/uploads/2013/02/Essence_final_submission_18Feb13.pdf (Figure 26, Page 102) ICT 11 Alpha State as Completion Criterion The Sprint Planning Meeting activity provides guidance on how to achieve the Planned state of the Sprint. ICT 12 Task Management Kernel Extension Task (sub-alpha of Work) Task is a unit of Work Activity is only guidance During enactment a Task instance "Sprint Planning Meeting for Project XY" is created This Task references the Activity "Sprint Planning Meeting" that provides guidance on how to perform the Task The Task results in the state update "Planned" on the Sprint alpha instance Team Member (sub-alpha of Team) During enactment an instance of the Team alpha is created representing the Scrum Team Each member is represented by an instance of the Team Member sub-alpha One Team Member is assigned the Role (pattern) Product Master Another Team Member is assigned the Role (pattern) Product Owner ICT 13 Mapping of SPEM and Essence concepts SPEM Task Essence Activity Comment Work Product Work Product Similar in concepts, but a Work Product in Essence additionally defines levels of details (not discussed in the illustrative example) to specify different ranges of details required. Role n/a Category Tag Guidance all elements Practice Practice … Resource or Pattern Activity Activity Space Capability Pattern and Activity Delivery Process n/a Alpha Similar in concepts, but an Activity in Essence additionally defines completion criteria. Role allows to author responsibilities of work products and performers of tasks in SPEM. Essence does not specify the concept of a role and advices to use the Pattern concept to define roles. The rationale is that definitions of roles may differ from method to method. Categories (both default and custom) are used to structure the elements of SPEM content, e.g. to support navigability in the published guidance. Essence provides the concept of a Tag (not discussed in the illustrative example) that allows adding user defined or tool specific information. The Essence language does not differentiate between a specific guidance concept and other concepts such as Activity (which basically contains guidance for performing the work). SPEM defines Practice as a specific type of Guidance that can reference any element defined in SPEM. Essence on the other hand introduces Practice as a specific concept in the language which allows more operational semantics to support composition etc. to be formalized and better supported by tooling. If additional guidance types are needed the advice is to use Patterns or Resources. The Activity, Capability Pattern and Delivery Process concepts in SPEM allows to define work breakdown structures and reusable process content. The Essence language allows activity associations between abstract activities (which are either Activity Spaces or Activities) to represent a relationship or dependency between activities. The Alpha concept does not have an equivalent in the SPEM 2.0 specification, and is essential to the underlying method architecture of the Essence language to monitor, track and drive method enactment based on alpha states and completion criteria. ICT 14 Conclusions and Future Work Similarities in the authoring capabilities Main difference related to Role Responsibility assignment Representing competency Future work Finalize migration of selected practices (mid-summer) Feedback to Finalization Task Force (FTF) Differences in enactment Alpha States and Checkpoints Activities with Completion Criteria Task Management Kernel Extension Clarification of Role Pattern and Competency (Essence) wrt. Role (SPEM) Practice authoring guidelines Relating sub-Alphas to parent Alphas Defining good sub-Alpha states Defining good completion criteria for Activities Link with enactment tools (project management tools) ICT 15 Thanks for your attention! Questions? Email: brian.elvesater@sintef.no REMICS project website: http://www.remics.eu/ REMICS Methodology Wiki http://epf.remics.eu/wikis/remic s/index.htm REMICS Methodology source https://github.com/SINTEF- 9012/remics-library The EssWork Practice Workbench source will also be made available on GitHub (during the summer) ICT 16