Agile Modelling in Software Engineering Audrey Nemeth, Vladimir Borisov AM Values • • • • • Communication Simplicity Feedback Courage Humility Source: http://www.agilemodeling.com/values.htm AM Principles • Assume Simplicity • Embrace Change • Enabling the Next Effort is Your Secondary Goal • Incremental Change • Maximize Stakeholder Investment Source: http://www.agilemodeling.com/principles.htm AM Principles • • • • • • Model With a Purpose Multiple Models Quality Work Rapid Feedback Software Is Your Primary Goal Travel Light AM Principles (Supplementary) • Content is More Important Than Representation • Open and Honest Communication AM Practices • • • • • • Active Stakeholder Participation Apply the Right Artifact(s) Collective Ownership Create Several Models in Parallel Create Simple Content Depict Models Simply Source: http://www.agilemodeling.com/practices.htm AM Practices • • • • • • • Display Models Publicly Iterate to Another Artifact Model in Small Increments Model With Others Prove it With Code Single Source Information Use the Simplest Tools How AM Practices Fit Together Source: http://www.agilemodeling.com/essays/practicesFitTogether.htm What is AM used for? • You are taking an agile approach to development in general • You plan to work iteratively and incrementally • The requirements are uncertain or volatile • The primary goal is to develop software • The active stakeholders are supportive and involved • The development team is in control of its destiny • The developers are responsible and motivated • Adequate resources are available for the project AM in Software Development Projects AM is meant to be tailored into other, full-fledged methodologies, enabling you to develop a software process which truly meets your needs. Agile Model Driven Development AM in eXtreme Programming The three most common misconceptions are that software designers: • don’t model • don’t document • if they do model, only use modeling artifacts of UML www.extimeprogramming.com AM in Unified Process In the RUP there are three disciplines that encompass modeling activities for a single project – Business Modeling, Requirements, and Analysis & Design – and the EUP adds Enterprise Business Modeling and Enterprise Architecture AM in Feature-Driven Development How to Save Time • in Modelling – Design models that are just barely good enough – For a given model, use the simplest tool – Effective developers make use of multiple models • in Documentation – Unit tests form much of the detailed design documentation – When dealing with a part of the software that is really complicated, either document it thoroughly or redesign it to make it simpler