Home arrow Practices arrow Five-Step UML: OOAD for Short Attention Spans - Define, Refine, Assign

Five-Step UML: OOAD for Short Attention Spans - Define, Refine, Assign

This article introduces the concepts of Five-Step UML, working from beginning to end. It introduces UML notation and goes into great detail. This article covers the first three of five steps. It is from chapter 2 of UML Applied A .NET Perspective, written by Martin L. Shoemaker (Apress, 2004; ISBN: 1590590872).

  1. Five-Step UML: OOAD for Short Attention Spans - Define, Refine, Assign
  2. Do It Yourself UML
  3. Step 1: Define
  4. Step 1 Process in Detail
  5. Step 2: Refine
  6. Step 2 Process in Detail
  7. Step 3: Assign
  8. Step 3 Process in Detail
By: Apress Publishing
Rating: starstarstarstarstar / 21
July 28, 2005

print this article



IN THIS CHAPTER, I値l introduce you to Five-Step UML. We値l work through the whole process from beginning to end, and along the way, I値l be introducing all the UML notation that you値l need to understand the relevant diagrams. I値l also show you how the whole thing works from the point of view of .NET development.

By way of examples, I値l be using lots of diagrams from the Kennel Management System case study, which was introduced at the end of the last chapter. I知 not going to show you everything in exhaustive detail at this stage, however, because we値l be examining that case study more slowly throughout Part Two of the book. The aim of this chapter is simply to give you an overview of the whole process, a feel for how it all fits together, and a chance to get started with some modeling yourself.

So, I値l begin this chapter with an overview of Five-Step UML to give you the big picture. Next we値l focus in on the various steps. With each step, I値l start by showing you the relevant UML notation that you値l need, then walk through the process, and then we値l look at some examples from the KMS.

Using a Process

OOAD and UML form a chicken-and-egg paradox: a good OOAD process requires a good notation; but when you study the notation, the most common question is, 展hy would I do that? where that means drawing a particular diagram to show a particular piece of your model. Often, the answer is, 釘ecause we need it for this stage of the process. The best way to teach UML effectively is to teach a software development process. And that痴 when the groaning begins: Oh, no, not another process!

What痴 Wrong with Process?

Why is it that programmers and process don稚 mix well? Here are some of the common perceptions:

  • We池e too busy. Process means steps to follow, things to do. Well, we池e all overworked already. Who wants yet more work? We致e got code to crank out!

  • It痴 too much hassle. There are too many steps in a process. They just get in our way. The steps are too difficult or too poorly explained. We spent a lot of time learning to write code; now we have to learn all this other stuff, too? This is just make-work imposed on us by 鍍he suits. Let痴 just crank out code!

  • It痴 too complex. Look, we all know how to write code. Why are we making it all so complicated? Let痴 just start cranking out the code.

  • It never works. Every so often, some pointy-haired manager type comes along with a 澱rilliant plan that will 吐ix everything. Then next year, there痴 another plan, and another after that. And nothing ever really changes around here. So why waste time trying? We池e better off just cranking out code.

  • It痴 too boring. Hey, code is fun! Process is work. Which would you rather do?

Whether these perceptions are true or not預nd there痴 some element of truth in each of them葉hey certainly make it harder to teach or learn process.

The Answer: Five-Step UML

In order to learn UML, then, we値l start with Five-Step UML, a lightweight OOAD process that specifically addresses the common perceptions about process:

  • You池e not too busy. Five-Step UML is an aid to thinking about the problem and will give you focus and actually save you time. This isn稚 about extra steps for you to follow; it痴 about saving you steps by getting the design right in advance, so you spend less time rewriting code you致e done wrong.

  • It痴 not a lot of hassle. Although you can use a modeling tool, Five-Step UML can be performed with paper, Post-it notes, and a pencil. It doesn稚 get in your way; it helps you to talk about the problem.

  • It痴 not too complex. Five steps. Four diagram types (five, if you need Deployment Diagrams). Paper, Post-it notes, and pencil. How complex can it be?

  • It will work. Trust me. Or don稚 trust me, and prove me wrong. But give it a try. Five-Step UML should be just enough process to show the benefits of UML, but not so much process as to drag you down.

  • It痴 not boring, it痴 fun! Well, that痴 what I think anyway, and I have a lot of student feedback to support me. But you be the judge.

Now I don稚 want to mislead you: Five-Step UML isn稚 a full-featured OOAD process suitable for the development of complex systems. It has none of the management, testing, documentation, and review features that you expect from a complete process. It痴 only a learning tool, a skeletal process suitable for learning UML, and not much more.

Or Is It . . . ?

I知 a fan of processes for complex system development. I think you should encourage your team to adopt more than Five-Step UML. But perhaps your team is particularly averse to process. Perhaps after looking at Five-Step UML, they may see it as the maximum process they池e willing to implement.

Is that bad? Not necessarily. According to Scott W. Ambler, 鄭gile Modeling (AM) is a chaordic, practice-based methodology for effective modeling and documentation of software-based systems. 1 Ambler痴 book describes lightweight modeling practices that might be characterized as 屠ust enough: just enough modeling and just enough process to get the job done. Five-Step UML is compatible with many of the Core Practices of Agile Modeling:

  • Apply the Right Artifacts

  • Create Several Models in Parallel

  • Iterate to Another Artifact

  • Model in Small Increments

  • Model with Others

  • Active Stakeholder Participation

  • Collective Ownership

  • Display Models Publicly

  • Create Simple Content

  • Depict Models Simply

  • Use the Simplest Tools

As Ambler says, 鄭M is not a prescriptive process. In other words, it doesn稚 define detailed procedures for how to create a given type of model; instead it provides advice for how to be effective as a modeler. Similarly, you might apply Five-Step UML as a modeling strategy inside of a larger process, whether it be a prescriptive process like the Unified Process or an agile process like Extreme Programming or Scrum.

1. Scott W. Ambler, Agile Modeling: Effective Practices for eXtreme Programming and the Unified Process (John Wiley & Sons, 2002) Chapter 2

Overview of Five-Step UML

Five-Step UML is also an example of what I call Model-Driven Development, in which the models become the central artifacts of the process, the central repository of all that is known about the system.

In this chapter, I値l walk you through the complete process of Five-Step UML, but I won稚 go into a lot of detail or tie together all the tasks outside of modeling, architecture, design, and coding. Later in the book, in Chapters 6 through 11, we値l go though each step in more detail and see how you can tie the models to management, testing, and documentation tasks.

The Five Steps are as follows:

  1. Define. Identify the requirements of your system via Use Case Diagrams. Add other diagrams where they shed light on the use cases.

  2. Refine. Detail the steps in each requirement via scenarios captured in Activity Diagrams. Add other diagrams where they shed light on the activities.

  3. Assign. Use the Activity Diagrams to assign the steps to elements of your system.

  4. Design. Show the relations among the elements with Component Diagrams. Add other diagrams where they shed light on the components.

  5. Repeat/iterate/drill down/divide and conquer. Narrow the scope of your process to individual elements (designed with Class Diagrams); or expand it out to whole systems (designed with Deployment Diagrams). Add other diagrams wherever they help you understand the system. Repeat Steps 1 through 4 as appropriate for the current scope. Like Boehm痴 Spiral development process, Evolutionary Development, and many other modern processes, Five-Step UML is an incremental, recursive approach.

釘ut What I Know Doesn稚 Fit These Steps . . .

What happens when you learn something or know something that doesn稚 吐it your current step in Five-Step UML? Suppose your requirements tell you beyond a doubt that you値l need a Web server, a DB server, and a firewall box? You can稚 model that as a set of use cases.

In that case, read the first guideline in Chapter 3, Do What Works. These steps and the order they are in form a useful set of guidelines, not a rigid set of rules.

You can either read ahead in Five-Step UML to find the right way to handle the information; or you can simply write it down and set it aside, then revisit it until you find a step where you learn how to model the information.

Do What Works usually implies 砥pdate the model and draw the diagrams that fit what you know. But right now, you池e just learning UML, so you can稚 be expected to know how to model every piece of information. Just write it down and move along.

I値l talk about this idea in more detail in the next chapter, along with a whole bunch of pragmatic guidelines to help you find your way through the modeling maze.

>>> More Practices Articles          >>> More By Apress Publishing

blog comments powered by Disqus
escort Bursa Bursa escort Antalya eskort


- Calculating Development Project Costs
- More Techniques for Finding Things
- Finding Things
- Finishing the System`s Outlines
- The System in So Many Words
- Basic Data Types and Calculations
- What`s the Address? Pointers
- Design with ArgoUML
- Pragmatic Guidelines: Diagrams That Work
- Five-Step UML: OOAD for Short Attention Span...
- Five-Step UML: OOAD for Short Attention Span...
- Introducing UML: Object-Oriented Analysis an...
- Class and Object Diagrams
- Class Relationships
- Classes

Developer Shed Affiliates


Dev Shed Tutorial Topics: