Software Development with UML

by Ken Lunn

Student zone

Read sample chapters from the book


Downloadable case studies

Useful Websites

The Unified Modelling Language (UML)

The Rational Web Site contains lots of useful reading and the UML Resource Centre. Rational supply some of the leading CASE tools, and the key players who initiated UML (Rumbaugh, Booch and Jacobson) have a strong involvement with this company. You will find lots of white papers on UML, and OO methods. They also market the "Rational Unified Process" (RUP), which is a precursor to the Unified Software Development Process, and which is being developed alongside USDP.

The Object Management Group (OMG) is the standards group responsible for defining UML. Read about UML and why OMG think it is important. The OMG "was founded in April 1989 by eleven companies, including 3Com Corporation, American Airlines, Canon, Inc., Data General, Hewlett-Packard, Philips Telecommunications N.V., Sun Microsystems and Unisys Corporation. In October 1989, the OMG began independent operations as a not-for-profit corporation" (OMG web site). It has been responsible for a number of important technology developments and standards. You will find the latest specifications for UML here.

Schaum's Outline of UML , by Simon Bennett, John Skelton and Ken Lunn, McGraw-Hill 2001, ISBN: 0077096738. This is a very compact and cheap summary of the UML language, going into the fine details of UML. It has a substantial set of examples. It is focussed on notation, not on method, though there are some useful method guidelines in there.

You might find the following helpful for Rational Rose, but the OO stuff is a bit thin: Visual Modeling with Rational Rose 2000 and UML (The Addison-Wesley Object Technology Series) by Terry Quatrani, Grady Booch (Contributor). It is a nice, concise textbook that introduces the use of Rational Rose alongside UML, but it is expensive and has very few examples and is not really a book for methods.

For a more academic treatment of object-oriented analysis and design, consider Object-oriented Systems Analysis and Design Using UML by Simon Bennett, Steve McRobb, Ray Farmer, McGraw-Hill 2002, ISBN 0077098641. This is an excellent source of references, and

The following textbooks are not for the faint-hearted or the poor, but they are the definitive texts.

Booch G, Rumbaugh J, The Unified Modeling Language User Guide, Jacobson I ISBN: 0-201-57168-4, Addison-Wesley, 1999

Jacobson I, Booch G, The Unified Software Development Process, Rumbaugh J ISBN: 0-201-57169-2, Addison-Wesley, 1999

Jacobson I, Griss M, Software Reuse - Architecture, Process and Organisation for, Johnson P Business Success, ISBN: 0-201-92476-5, Addison-Wesley, 1997

Booch G, Object Solutions: Managing the Object-Oriented Project, ISBN: 0-8053-0594-7, Addison-Wesley, 1996

Rumbaugh J, Jacobson I, Booch G, The Unified Modeling Language Reference Manual, ISBN: 0-201-30998-X, Addison-Wesley, 1999

Jacobson I, Christerson M, Object-Oriented Software-Engineering: A Use Case Driven Approach, ISBN: 0-201-54435-0, Addison-Wesley, 1992

CASE tools

Probably the lead player in CASE tools are Rational, and I have used the Rational Rose CASE tools as part of my teaching, very successfully, for a number of years. They offer a short-term evaluation license. They do a good academic site license, though the tool is expensive for commercial use. It is fairly reliable, and there are a number of supporting CASE tools available for supporting the development process.

I have used the SELECT CASE tools in commercial settings, and found their approach to tools and methods very appealing. They are owned by Aonix, and from their site you can find a good set of white papers on development methods, with a strong emphasis on component-based development. The reason I have not used it in teaching is that it is very much oriented for team use, which is good in a commercial setting, but can be a problem in some teaching situations.

Of course, you don't have to "buy" a CASE tool these days. There are a number of free ones around. Have a look at Argo UML from tigris.org : "Tigris.org provides information resources for software engineering professionals and students, and a home for open source software engineering tool projects. We also promote software engineering education ..."

In fact, if you do a web search on UML and CASE tools, you will find a number of suppliers, some of which offer cut-down free versions.

Organisations

A lot of the success of software development depends on an understanding of the organisation within which a system is to be developed or deployed. Two thinkers have influenced me greatly on this. Charles Handy has a good informal approach to the description of different organisational types. See "Gods of Management" published by Arrow, 1995, ISBN: 0099548410. He has lots of other accessible books on organisation and change. Peter Senge is a widely respected guru of systems thinking, and his book "The Fifth Discipline: The Art and Practice of The Learning Organization (1990)", Random House Business Books; ISBN: 0712656871, gives a wonderful insight into large organisation behaviour. Anther lead thinker in this area, that my colleagues would not forgive me for omitting, is Peter Checkland, who has pioneered work on soft systems, though I am less familiar with his work.

Project Management

Probably the most comprehensive framework for project management available is Prince, "Managing Successful Projects with PRINCE2 (PRINCE Guidance)", The Stationery Office Books (2002), ISBN: 0113308914. There is a lot of online material at their website. This is used widely in the UK, not only in government projects. If you are looking for source material for defining a methodological framework for large systems development, you should look here.

The Dynamic System Development Method was developed as a standard for managing large systems development using an iterative approach. From it comes a lot of the ideas on project organisation, prioritisation (Moscow), and a lot of the iterative control notions.

The Rational Unified Process is a commercial version of the Unified Software Development Process. You may like to examine Rational's web site for papers on this.

At the other end of the management spectrum, Extreme Programming is an approach to development without substantial use of intermediate models.

Discussion Group

If you want to make comments or ask questions, please use the discussion group set up for this: http://groups.yahoo.com/group/softdevuml/