ICONIX
   HOME

TheInfoList



OR:

ICONIX is a software development methodology which predates both the
Rational Unified Process The rational unified process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable proc ...
(RUP),
Extreme Programming Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,"Human Centred Technology Workshop 2006 ", 2006, ...
(XP) and
Agile software development Agile software development is an umbrella term for approaches to software development, developing software that reflect the values and principles agreed upon by ''The Agile Alliance'', a group of 17 software practitioners, in 2001. As documented ...
. Like RUP, the ICONIX process is UML
Use Case In both software and systems engineering, a use case is a structured description of a system’s behavior as it responds to requests from external actors, aiming to achieve a specific goal. It is used to define and validate functional requireme ...
driven but more lightweight than RUP. ICONIX provides more requirement and design documentation than XP, and aims to avoid
analysis paralysis Analysis paralysis (or paralysis by analysis) describes an individual or group process where overanalyzing or overthinking a situation can cause forward motion or decision-making to become " paralyzed", meaning that no solution or course of acti ...
. 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 In software engineering, a domain model is a conceptual model of the domain (software engineering), domain that incorporates both behavior and data.Fowler, Martin. "P of EAA - Domain Model"/ref> In ontology engineering, a domain model is a Knowl ...
. 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

Before beginning the ICONIX process there needs to have been some
requirements analysis In systems engineering and software engineering, requirements analysis focuses on the tasks that determine the needs or conditions to meet the new or altered product or project, taking account of the possibly conflicting requirements of the v ...
done. From this analysis use cases can be identified, a
domain model In software engineering, a domain model is a conceptual model of the domain (software engineering), domain that incorporates both behavior and data.Fowler, Martin. "P of EAA - Domain Model"/ref> In ontology engineering, a domain model is a Knowl ...
produced and some
prototype A prototype is an early sample, model, or release of a product built to test a concept or process. It is a term used in a variety of contexts, including semantics, design, electronics, and Software prototyping, software programming. A prototype ...
GUIs made.


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 In sales, commerce, and economics, a customer (sometimes known as a Client (business), client, buyer, or purchaser) is the recipient of a Good (economics), good, service (economics), service, product (business), product, or an Intellectual prop ...
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 In software engineering, a class diagram in the Unified Modeling Language (UML) is a type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, operations (or methods), and the re ...
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.


References

* 1. Rosenberg, D. & Stephens, M. (2007). ''Use Case Driven Object Modeling with UML: Theory and Practice''. Apress. () * 2. Rosenberg, D., Stephens, M. & Collins-Cope, M. (2005). ''Agile Development with ICONIX Process''. Apress. ()


Related Concepts

*
Dynamic Systems Development Method Dynamic systems development method (DSDM) is an Agile management, agile project delivery framework, initially used as a software development methodology, software development method. First released in 1994, DSDM originally sought to provide some ...
(DSDM) *
Extreme Programming Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,"Human Centred Technology Workshop 2006 ", 2006, ...
*
Rational Unified Process The rational unified process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable proc ...
* Robustness diagram * 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.


External links


ICONIX Official Website


{{Webarchive, url=https://web.archive.org/web/20120928074812/http://www.iconixsw.com/JumpStart.html , date=2012-09-28
ICONIX Process website

Introduction to the Iconix Process


Software development process Agile software development