Towards tool support for situational engineering of agile methodology
1. Towards Tool Support for
Situational Engineering of Agile
Methodologies
BY
PONMOZHI T(09MSE152)
SANDHIYA R(09MSE162)
SWATHI S(09MSE172)
2. 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
3. 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
4. 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.
5. Various Agile Methods
• Extreme Programming (XP)
• Scrum
• Agile Modeling
• Adaptive Software Development
• Feature Driven Development
• Lean Software Development
7. 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.
8. 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.
10. 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
11. • 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.
12. 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.
13. 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.
14. 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.
15. 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.
16. • 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.
17. 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.
19. 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.
20. 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
21. 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 Coach
Service
Provider 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
22. 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
23. 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)
24. 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.
25. 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