Agile Modeling
Encyclopedia
Agile Modeling is a practice-based methodology for modeling and documentation of software-based systems. It is intended to be a collection of values, principles, and practices for Modeling software that can be applied on a software development project in a more flexible manner than traditional Modeling methods.
Agile Modeling is a supplement to other Agile
methodologies such as:
In which it is used to replace the more standard UML
, or other standard design tools.
The principles and values of Agile Modeling practices are intended to help mitigate the perceived flaws of Agile Software Development
. The principle "Maximize stakeholder value" aims to inspire the developer to collaborate with the customer in providing an adequate level of documentation.
The principle "Model with others" attempts to involve project stakeholders such as the client or customer in the Modeling process to attempt to bring the model more into line with the end user requirements
.
offerings that respect the tenets of Agile software development
may significantly reduce or even eliminate most of these concerns.
Agile Modeling is a supplement to other Agile
Agile software development
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams...
methodologies such as:
- Extreme ProgrammingExtreme ProgrammingExtreme programming is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements...
- Agile Unified ProcessAgile Unified ProcessAgile Unified Process is a simplified version of the IBM Rational Unified Process developed by Scott Ambler. It describes a simple, easy to understand approach to developing business application software using agile techniques and concepts yet still remaining true to the RUP...
- ScrumScrum (development)Scrum is an iterative, incremental framework for project management often seen in agile software development, a type of software engineering....
In which it is used to replace the more standard UML
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...
, or other standard design tools.
Answers to criticisms
The principles and values of Agile Modeling practices are intended to help mitigate the perceived flaws of Agile Software Development
Agile software development
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams...
. The principle "Maximize stakeholder value" aims to inspire the developer to collaborate with the customer in providing an adequate level of documentation.
The principle "Model with others" attempts to involve project stakeholders such as the client or customer in the Modeling process to attempt to bring the model more into line with the end user requirements
Requirements analysis
Requirements analysis in systems engineering and software engineering, encompasses those tasks that go into determining the needs or conditions to meet for a new or altered product, taking account of the possibly conflicting requirements of the various stakeholders, such as beneficiaries or users...
.
Limitations
There is significant dependence on personal communication and customer collaboration. Agile Modeling disciplines can be difficult to apply where there are large teams (in Agile methodologies 'large' is typically considered as anything more than around 8), team members are unable to share and collaborate on models, or modeling skills are weak or lacking. However, the emergence of cloud modelingCloud computing
Cloud computing is the delivery of computing as a service rather than a product, whereby shared resources, software, and information are provided to computers and other devices as a utility over a network ....
offerings that respect the tenets of Agile software development
Agile software development
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams...
may significantly reduce or even eliminate most of these concerns.
External links
- The Agile Alliance Homepage
- agileModeling.com
- Agile Model Driven Development (AMDD)
- Agilian - All-in-one Modelling Tool supporting Agile Modelling. Support latest UML, BPMN, ERD, DFD and Textual Analysis
- NReco: Agile MDD framework for .NET
- Agile and Smart Modelling with UML/SysML on the basis of your project vision