ICONIX is a software development methodology which predates both the Rational Unified Process (RUP), Extreme Programming (XP) and Agile software development. Like RUP, the ICONIX process is UML Use Case driven but more lightweight than RUP. ICONIX provides more requirement and design documentation than XP, and aims to avoid analysis paralysis. The ICONIX Process uses only four UML based diagrams in a four-step process that turns use case text into working code.
A principal distinction of ICONIX is its use of robustness analysis, a method for bridging the gap between analysis and design. Robustness analysis reduces the ambiguity in use case descriptions, by ensuring that they are written in the context of an accompanying domain model. This process makes the use cases much easier to design, test and estimate.
The ICONIX Process is described in the book Use Case Driven Object Modeling with UML: Theory and Practice.
Essentially, the ICONIX Process describes the core "logical" analysis and design modeling process. However, the process can be used without much tailoring on projects that follow different project management.
Overview of the ICONIX Process
The ICONIX process is split up into four milestones. At each stage the work for the previous milestone is reviewed and updated.
Milestone 1: Requirements review
Milestone 2: Preliminary Design Review
Once use cases have been identified, text can be written describing how the user and system will interact. A robustness analysis is performed to find potential errors in the use case text, and the domain model is updated accordingly. The use case text is important for identifying how the users will interact with the intended system. They also provide the developer with something to show the Customer and verify that the results of the requirements analysis were correct .
Milestone 3: Detailed Design Review
During this stage of the ICONIX process the domain model and use case text from milestone 2 are used to design the system being built. A class diagram is produced from the domain model and the use case text is used to make sequence diagrams.
Milestone 4: Deployment
Unit tests are written to verify the system will match up to the use case text, and sequence diagrams. Finally code is written using the class and sequence diagrams as a guide.
- 1. ^ Rosenberg, D. & Stephens, M. (2007). Use Case Driven Object Modeling with UML: Theory and Practice. Apress. (ISBN 1590597745)
- 2. ^ Rosenberg, D., Stephens, M. & Collins-Cope, M. (2005). Agile Development with ICONIX Process. Apress. (ISBN 1590594649)
- Dynamic Systems Development Method (DSDM)
- Extreme Programming
- Rational Unified Process
- URDAD, the Use Case Driven Analysis and Design methodology is a methodology for technology neutral design.
- RATF, using Robustness Analysis in combination with Technology Forecasting, to further investigate future software evolution alternatives.