A Brief History of ICONIX Process

In this section, Doug explains the history and background of ICONIX Process.

ICONIX Process originated several years before the UML and the Unified Process as a synthesis and distillation of the best techniques from the original methodologies that formed the UML: Jim Rumbaugh’s Object Modeling Technique (OMT), Ivar Jacobson’s Objectory method, and Grady Booch’s Booch method.

We attempted a synthesis of these three very different schools of object-oriented (OO) thought because the strengths and weaknesses of these methodologies seemed to complement each another. OMT was useful for problem domain (analysis-level) modeling, but it was not as strong for solution space (detailed design) class modeling, while the Booch method was strong at the detailed level but unintuitive at the analysis level. The Objectory method took Booch’s concept of a dynamic model and extended it with a step-by-step approach that leads cleanly from a use case view to a detailed design (sequence diagram) view of the runtime behavior. Both OMT and the Booch method were stronger for static (class) modeling, while the Objectory method is mostly focused on dynamic runtime behavior. Booch also introduced component and deployment views of the system.

Rather than taking the complete contents of three 400-page methodology books and encompassing everything about everything (see The Unified Modeling Language User Guide[4.]), we preferred to focus on a core subset of these techniques that removed the redundancy and overlap from the notations. For example, both sequence and collaboration diagrams show essentially the same thing: a runtime view of object collaboration. These views are so redundant that you can draw a sequence diagram in Rational Rose, press F5, and automatically generate a collaboration diagram. Over the decade or so that we’ve been teaching this material, we discovered that most people generally prefer learning (and using) a smaller set of diagrams over a larger set, and we were able to consistently get good results by focusing our students more intensively on a smaller set of diagrams.[5.] Ultimately, we wound up with a UML core subset consisting of the following:

  • Class diagrams, at both an analysis (problem domain) and design (Booch) level of abstraction.

  • Use cases (diagrams and text).

  • Sequence diagrams. We skipped collaboration diagrams because they were redundant, and we deemphasized state diagrams because we discovered that many projects needed fewer of them than we anticipated if project teams rigorously created sequence diagrams.

  • Robustness diagrams. We “rescued” these from Jacobson’s Objectory work because we discovered that use case–driven development simply worked better with these diagrams than without them.

[4.]Grady Booch, James Rumbaugh, and Ivar Jacobson, The Unified Modeling Language User Guide (New York: Addison-Wesley, 1998).

[5.]We’re happy to note that some enlightened visual modeling tool vendors have recognized that the UML is just too big for many folks and that a core subset is much easier to work with. For example, the Enterprise Architect tool from Sparx Systems, which fully supports UML2, and which we used for the example project in this book, offers an “ICONIX Process visual layout” that hides about 70% of the UML from users who prefer a minimalist, streamlined approach to modeling.



Agile Development with ICONIX Process. People, Process, and Pragmatism
Agile Development with ICONIX Process: People, Process, and Pragmatism
ISBN: 1590594649
EAN: 2147483647
Year: 2005
Pages: 97

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net