12
AGILE SOFTWARE DEVELOPMENT AND UML John O. Iyaniwura BSc (Hons), MSc New Vision Labs Thursday 11 th October, 2012

Agile software development and UML

  • Upload
    johnoai

  • View
    4.812

  • Download
    0

Embed Size (px)

DESCRIPTION

A presentation on Agile Software Development with UML, showing the features, principles and benefits of the combination of agility with

Citation preview

Page 1: Agile software development and UML

AGILE SOFTWARE DEVELOPMENT AND UML

John O. Iyaniwura BSc (Hons), MScNew Vision Labs

Thursday 11th October, 2012

Page 2: Agile software development and UML

Agile Software Development With UML 2

Overview

• Agile Software Development, What Is It?• Agile Methodology, Why Adopt It?• Agile Software Development, Main Features• UML- Unified Modeling Language• Benefits Of Adopting UML • UML- Key Components• Agile + UML = Pragmatic Software Development• Summary• References• Questions?

Page 3: Agile software development and UML

Agile Software Development With UML 3

Agile Software Development, What Is It?• An approach to developing software• February 2001, 17 Software developers, Snowbird, Utah, USA• Manifesto for Agile Software Development• ‘We are uncovering better ways of developing

software by doing it and helping others do it.Through this work we have come to value:

• Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a plan

• That is, while there is value in the items onthe right, we value the items on the left more’.

• Source: http://agilemanifesto.org/ Accessed: 09/10/2012

Page 4: Agile software development and UML

Agile Software Development With UML 4

Agile Methodology, Why Adopt It?• Agile software development is:• incremental - software not delivered in a ‘big-

bang!’• Iterative - development process repeated many

times till the desired end-result is achieved.• Flexible- changes from clients are accommodated• Adaptable- lean more to right than left & vice-versa• Transparent - encourages client/user involvement• Simple - easily adopted by development teams

Page 5: Agile software development and UML

Agile Software Development With UML 5

Agile Software Development, Main Features

Page 6: Agile software development and UML

Agile Software Development With UML 6

UML – Unified Modeling Language

• ‘The Unified Modeling Language™ - UML - is OMG's most-used specification, and the way the world models not only application structure, behavior, and architecture, but also business process and data structure.’ - Object Management Group (OMG)

• UML – ‘a notation, both visual and textual, used to model (i.e. describe) various aspects of software and business systems as well processes.’ – John O. Iyaniwura.

Page 7: Agile software development and UML

Agile Software Development With UML 7

Benefits Of Adopting UML

• Reduction in time/effort required to enhance software

• Reduction in cost of correcting errors, i.e. ‘bugs’• Reduction in time spent building software: re-use• Increase in the quality of delivered software• Enables communication as design ‘lingua franca’• Benefits from automated support, reducing

errors/bugs, correctness: CASE tools.

Page 8: Agile software development and UML

Agile Software Development With UML 8

UML, Key Components• UML Structure

Page 9: Agile software development and UML

Agile Software Development With UML 9

Agile + UML = Pragmatic Software Development• Software developed with an agile approach together

with UML models results in– customer satisfaction through early and continuous delivery

of valuable software– the accommodation of changing requirements even late in

development– frequent delivery of working software, from a couple of

weeks to a couple of months– the promotion of sustainable development

• The pragmatism of this approach has endeared it to software development teams wary of heavy-weight processes e.g. SDLC, Waterfall, Unified Process etc.

Page 10: Agile software development and UML

Agile Software Development With UML 10

Summary

• Agile software development is a light-weight development process

• Agile software development yields software incrementally and in iterations

• The Unified Modelling Language (UML) is a notation for creating models of software artefacts

• UML is globally adopted, supported by CASE tools, and improves software quality

• The combination of agile software development and UML results in software that more closely meets the requirements of clients

Page 11: Agile software development and UML

Agile Software Development With UML 11

References

• Agile Manifesto: http://agilemanifesto.org/ • Principles behind Agile development:

http://agilemanifesto.org/principles.html• The Unified Modeling Language:

http://www.uml.org/• Agile Modeling: http://www.agilemodeling.com/• Scrum: http://www.scrum.org/• All last accessed on 09/10/2012

Page 12: Agile software development and UML

Agile Software Development With UML 12

Questions?