Towards tool support for situational engineering of agile methodology
Towards Tool Support forSituational Engineering of Agile Methodologies BY PONMOZHI T(09MSE152) SANDHIYA R(09MSE162) SWATHI S(09MSE172)
What is Agile ?• Agile proponents believe – Current software development processes are too heavyweight or cumbersome • Too many things are done that are not directly related to software product being produced – Current software development is too rigid • Difficulty with incomplete or changing requirements • Short development cycles (Internet applications) – More active customer involvement needed • CMM focuses on process
Cont..• Agile methods are considered – Lightweight – People-based rather than Plan-based• Several agile methods – No single agile method – XP most popular• No single definition• Agile Manifesto closest to a definition – Set of principles – Developed by Agile Alliance
What Do We Mean by Agile Manifesto?• The Agile Manifesto is a set of guiding values and principles that have been shown to be valuable in software development.• There is an emphasis on team-work and involving the customer in development.• There is an expectation that requirements will change, and this should influence how we design software.• There is an emphasis on doing the simplest thing that will work now, rather than on trying to anticipate the uncertain future.• These are principles, not rules - individual and team judgment must always play a role.
Various Agile Methods• Extreme Programming (XP)• Scrum• Agile Modeling• Adaptive Software Development• Feature Driven Development• Lean Software Development
SME & CAME• There exists no single method which fits all project situations. This has resulted in the advent of Situational Method Engineering (SME) approaches.• Tool support has become an essential prerequisite for widespread adoption of software engineering methods, provision of Computer-Aided Method Engineering (CAME) tools has become a priority.
SME• Situational Method Engineering(SME) approaches, which are used for developing software methodologies that are tailored to fit the specific circumstances of the project situation at hand.
CAME TOOL• While the theory of Situational Method Engineering (SME) becomes increasingly solid, very few engineering tools have been developed to support the application of its research results.• On analysing the requirements for a tool and detecting the capabilities that are not yet provided by existing tools we focus on the role of the method process enactment mechanism which is generally omitted in such kind of tools.• It guides the way to use the method in order to accomplish the development of corresponding schemas.• Tool support has thus become indispensable, especially through specialized CAME (Computer-Aided Method Engineering) tools  that support the development of agile methodologies
• Situational Method Engineering (SME) aims to resolve this problem and to provide techniques allowing to construct project- specific methods ‘on the fly’.• It focuses of the formalization of methods in terms of reusable method components and the definition of assembly techniques allowing to construct new methods by reusing these components.
METHOD• Method. Generally speaking, a method describes a regular and systematic way how to accomplish something.• In the domain of Information Systems engineering, Brinkkemper defines a method as “an approach to perform a systems development project, based on a specific way of thinking, consisting of directions and rule,• Structured in a systematic way in development activities with corresponding development product” .• In more structured way, a method is made up of a product part and a process part. The product part represents the concepts that are used in the method, relationships between these concepts as well as constraints that they have to satisfy. The process part represents the way to accomplish the development of the corresponding product.
TOOLS FOR CAME METHODS• Different kinds of tools are needed to support the engineering of situational methods.• The first tool is a methods repository also called METHODS BASE. In this tool method chunks are stored together with their descriptors.• The biggest challenge of this tool is to provide a high level method chunks classification mechanism.• Chunks have to be well described in order to know what the method chunk is doing without the need to look inside its specification.
SECOND TOOL• The second tool is the computer-aided methods engineering tool (CAME).• This tool is based on the method meta-model• It is responsible for method chunks specification, i.e. their product and process parts definition.• Method chunks specification can be done “from scratch”, by assembly or by modification.
CASE’S• In the first case product and process models of the method chunk are defined by instantiating the method meta-model used by the tool.• In the second case method chunks are assembled in order to satisfy some specific situation.• In the third case method chunks are obtained by modification of other method chunks in order to better satisfy the method goal.• Depending to the method meta-model, the CAME tool should offer graphical modelling facilities and special features.
• The last tool is the method INSTANTIATION tool.• This tool or this family of tools have to be able to perform the enactment of the constructed method.• In other words, the tool has to support the development and elaboration of products according to the method process specification.• It has to guide the method user in the application of a selected method chunk and to offer different features for the manipulation of the products to be constructed by using this method chunk.• Therefore, the instantiation tool has to understand the process model of the method chunk and be able to execute it.• In order to support product construction, this tool has to understand the product model of the corresponding method chunk and to support its instantiation.
EPFC & SPEM• The ultimate goal is to provide CAME-tool support for developing the methodologies.• The definition of the method base should conform to a standard formalism. To address this requirement, we have adopted the Eclipse Process Framework Composer (EPFC)• EPFC conforms to the OMG’s Software and System Process Engineering Metamodel (SPEM 2.0) in the decomposition of software processes into their building blocks.
EPFC• EPFC is an open source SME tool platform that addresses formalism.• EPFC provides an extensible platform for assembly-based method engineering, and is fully extensible through provision of facilities for adding new method plug-ins, method packages, and libraries.
What is EPFC?• Provide an open and collaborative ecosystem for evolving software development processes• Provide sample practices, process tooling and a metamodel, that can be used as the foundation for a large variety of processes to address IT needs• Uses the Eclipse community to gain wide acceptance of the framework
Who Uses EPF? 21 Requires: Produces: - Realistic consistency - Base methods - Viable governance - Plug ins - Improved ROI Process Author Management Performs: Desires: - Tailoring Provides: - Simplicity - Publishing - Training - Templates - Support - Consulting - Examples Process - Training - Mentoring Professional - Guidance - Adoption services CoachServiceProvider Needs: Wants to: - Teachable material - Build tools - Teach process development - Sell tools - Use in student projects - Sell services - Bring research to mainstream Tool Provider Academia
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
Why Should Agile Community Care About EPF?• Facilitate development of a consolidated agile framework – Let the community evolve content to reflect what works – Combine the best from different processes• Make agile development mainstream in large organizations – Documented and auditable processes – Powerful delivery platform – Large organizations participating in EPF provides assurance• Move from big documented processes to ‘instrumented’ micro- processes – Intelligent and non-intrusive process facilitation (compare Java Developer Tools Quick-fix)
SPEM• SPEM 2.0, processes are composed of standard reusable components that constitute the method content.• The method content is composed of elements of three types: roles, work products, and tasks• SPEM 2.0 incorporates the notions of lifecycle, phase, activity, task and technique – in descending order of granularity.
CONCLUSION• Therefore in the development of the proposed agile method chunks,SPEM-2.0 conventions have been followed the processes therefore been decomposed into three types of elements: tasks, roles, and work products.• This enhances the usability of the proposed method base in CAME tools that conform to the SPEM-2.0 metamodel, including the EPFC.• The validity of the integrated framework will be examined in the context of a concrete SME project