Agile Software Development
(SE3823)
Ibrar Arhsad
[email protected]
ICONIX INTRODUCTION
• ICONIX is a software development methodology which predates
Ration Unified Process (RUP),Extreme Programming (XP) and Agile
Software Development
• Like RUP, the ICONIX process is UML 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
SE 3823 Agile Software Development 2
ICONIX INTRODUCTION CONT..
• 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
• 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
SE 3823 Agile Software Development 3
ICONIX INTRODUCTION CONT..
SE 3823 Agile Software Development 4
WHY ICONIX?
• The ICONIX process sits somewhere in between the very large
Rational Unified Process (RUP) and the very small eXtreme
programming approach (XP)
• The ICONIX process is use case driven, like the RUP, but
without a lot of the overhead that the RUP brings to the table
• It's also relatively small and tight, like XP, but it doesn't discard
analysis and design like XP does.
SE 3823 Agile Software Development 5
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
• Use cases Identification
• Domain Model
• GUIs
Milestone 2: Preliminary Design Review
• Text is added to use-cases to identify interaction between users and system
• Robust Analysis
Milestone 3: Detailed Design Review
• Class diagram
• Sequence Diagram
Milestone 4: Deployment
• Unit Test
• Code
SE 3823 Agile Software Development 6
ICONIX PROCESS
SE 3823 Agile Software Development 7
ICONIX PROCESS
SE 3823 Agile Software Development 8
ICONIX PROCESS
SE 3823 Agile Software Development 9
ICONIX PROCESS
SE 3823 Agile Software Development 10
ICONIX PROCESS
SE 3823 Agile Software Development 11
ICONIX PROCESS
SE 3823 Agile Software Development 12
ICONIX PROCESS
Introduction to the ICONIX Process of Software Modeling
SE 3823 Agile Software Development http://www.informit.com/articles/article.aspx?p=167902 13
SE 3823 Agile Software Development 14
ICONIX PROCESS
Step 1: Identify your real-world domain objects (domain
modeling).
Step 2: Define the behavioral requirements (use cases).
Step 3: Perform robustness analysis to disambiguate the use
cases and identify gaps in the domain model.
Step 4: Allocate behavior to your objects (sequence diagrams).
Step 5: Finish the static model (class diagram).
Step 6: Write/generate the code (source code).
SE 3823 Agile Software Development 15
ROBUSTNESS ANALYSIS
• Robustness analysis is a way of filling the gap between analysis
(the what) and design (the how)
• Robustness analysis is a preliminary design when designers
make assumptions on the design and start thinking of the
possible technical solutions
This is a nonstandard diagram type in the manner that it is not
described by the UML specification, however, it uses UML concepts
SE 3823 Agile Software Development 16
ROBUSTNESS ANALYSIS DIAGRAM
COMPONENTS
• «boundary»
The interface between the system and the outside world
Boundary objects are typically screens or web pages (i.e., the presentation layer
that the actor interacts with)
• «entity»
Entity objects are usually objects from the domain model
• «control»
Control objects are the “glue” between boundary and entity objects
SE 3823 Agile Software Development 17
ROBUSTNESS ANALYSIS DIAGRAM
COMPONENTS
• It is useful to think of boundary objects and entity objects as
being nouns, and controllers as being verbs. Then the
following rules apply in robustness diagrams:
• Nouns can talk to verbs (and vice versa)
• Nouns can’t talk to other nouns
• Verbs can talk to other verbs.
SE 3823 Agile Software Development 18
https://gyires.inf.unideb.
hu/GyBITT/07/ch03s05.h
tml
SE 3823 Agile Software Development 19