ICONIX
Encyclopedia
ICONIX is a software development methodology which predates both the Rational Unified Process
Rational Unified Process
The Rational Unified Process is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003...

 (RUP), Extreme Programming
Extreme Programming
Extreme programming is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements...

 (XP) and Agile software development
Agile software development
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams...

. Like RUP, the ICONIX process is UML
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

 Use Case
Use case
In software engineering and systems engineering, a use case is a description of steps or actions between a user and a software system which leads the user towards something useful...

 driven but more lightweight than RUP. Unlike the XP and Agile approaches, ICONIX provides sufficient requirement and design documentation, but without analysis paralysis
Analysis paralysis
The term "analysis paralysis" or "paralysis of analysis" refers to over-analyzing a situation, so that a decision or action is never taken, in effect paralyzing the outcome. A decision can be treated as over-complicated, with too many detailed options, so that a choice is never made, rather than...

. 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
Domain model
A domain model in problem solving and software engineering can be thought of as a conceptual model of a domain of interest which describes the various entities, their attributes, roles and relationships, plus the constraints that govern the integrity of the model elements comprising that problem...

. 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
Requirements analysis
Requirements analysis in systems engineering and software engineering, encompasses those tasks that go into determining the needs or conditions to meet for a new or altered product, taking account of the possibly conflicting requirements of the various stakeholders, such as beneficiaries or users...

 done. From this analysis use cases can be identified, a domain model
Domain model
A domain model in problem solving and software engineering can be thought of as a conceptual model of a domain of interest which describes the various entities, their attributes, roles and relationships, plus the constraints that govern the integrity of the model elements comprising that problem...

 produced and some prototype
Prototype
A prototype is an early sample or model built to test a concept or process or to act as a thing to be replicated or learned from.The word prototype derives from the Greek πρωτότυπον , "primitive form", neutral of πρωτότυπος , "original, primitive", from πρῶτος , "first" and τύπος ,...

  GUIs
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

 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
Software developer
A software developer is a person concerned with facets of the software development process. Their work includes researching, designing, developing, and testing software. A software developer may take part in design, computer programming, or software project management...

 with something to show the Customer
Customer
A customer is usually used to refer to a current or potential buyer or user of the products of an individual or organization, called the supplier, seller, or vendor. This is typically through purchasing or renting goods or services...

 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
Class diagram
In software engineering, a class diagram in the Unified Modeling Language is a type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, operations , and the relationships among the classes.- Overview :The class diagram is the main...

 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.

Related Concepts

  • Dynamic Systems Development Method
    Dynamic Systems Development Method
    Dynamic systems development method is an agile project delivery framework, primarily used as a software development method. DSDM was originally based upon the rapid application development method. In 2007 DSDM became a generic approach to project management and solution delivery...

     (DSDM)
  • Extreme Programming
    Extreme Programming
    Extreme programming is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements...

  • Rational Unified Process
    Rational Unified Process
    The Rational Unified Process is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003...

  • URDAD, the Use Case Driven Analysis and Design methodology is a methodology for technology neutral design.
  • RATF
    RATF
    RATF is a software development methodology acting as a plug in to the Rational Unified Process , ICONIX, Extreme Programming and Agile software development...

    , using Robustness Analysis in combination with Technology Forecasting, to further investigate future software evolution alternatives.

External links



The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK