Towards tool support for situational engineering of agile methodology

25
Towards Tool Support for Situational Engineering of Agile Methodologies BY PONMOZHI T(09MSE152) SANDHIYA R(09MSE162) SWATHI S(09MSE172)

Transcript of Towards tool support for situational engineering of agile methodology

Page 1: Towards tool support for situational engineering of agile methodology

Towards Tool Support for Situational Engineering of Agile Methodologies

BYPONMOZHI T(09MSE152)

SANDHIYA R(09MSE162)SWATHI S(09MSE172)

Page 2: Towards tool support for situational engineering of agile methodology

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

Page 3: Towards tool support for situational engineering of agile methodology

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

Page 4: Towards tool support for situational engineering of agile methodology

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.

Page 5: Towards tool support for situational engineering of agile methodology

Various Agile Methods

• Extreme Programming (XP)• Scrum• Agile Modeling• Adaptive Software Development• Feature Driven Development• Lean Software Development

Page 6: Towards tool support for situational engineering of agile methodology

AGILE WORK PRODUCTS

Page 7: Towards tool support for situational engineering of agile methodology

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.

Page 8: Towards tool support for situational engineering of agile methodology

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.

Page 9: Towards tool support for situational engineering of agile methodology

Overall High level SME

Page 10: Towards tool support for situational engineering of agile methodology

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 [9] that support the development of agile methodologies

Page 11: Towards tool support for situational engineering of agile methodology

• 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.

Page 12: Towards tool support for situational engineering of agile methodology

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.

Page 13: Towards tool support for situational engineering of agile methodology

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.

Page 14: Towards tool support for situational engineering of agile methodology

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.

Page 15: Towards tool support for situational engineering of agile methodology

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.

Page 16: Towards tool support for situational engineering of agile methodology

• 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.

Page 17: Towards tool support for situational engineering of agile methodology

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.

Page 18: Towards tool support for situational engineering of agile methodology

OMG

Page 19: Towards tool support for situational engineering of agile methodology

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.

Page 20: Towards tool support for situational engineering of agile methodology

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

Page 21: Towards tool support for situational engineering of agile methodology

21

Professional

Desires: - Simplicity - Templates - Examples - Guidance

Who Uses EPF?

Process Author

Produces: - Base methods - Plug ins

Management

Requires: - Realistic consistency - Viable governance - Improved ROI

Service Provider

Provides: - Training - Consulting - Mentoring - Adoption services

Wants to: - Build tools - Sell tools - Sell services

Tool Provider

Needs: - Teachable material - Teach process development - Use in student projects - Bring research to mainstream

Academia

Process Coach

Performs: - Tailoring - Publishing - Support - Training

Page 22: Towards tool support for situational engineering of agile methodology

• 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

Basic Concepts - EPF

Page 23: Towards tool support for situational engineering of agile methodology

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)

Page 24: Towards tool support for situational engineering of agile methodology

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.

Page 25: Towards tool support for situational engineering of agile methodology

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