Model Driven Rational Unified Process Extreme Programming Waterfall Development
Development (MDD) (RUP) (XP) Methodology
Application MDA (Model-Oriented) Rational (Iterative Agile Development Linear framework type
Model Development)
Developer OMG IBM
Pros Iterative process that Early return on software Disciplined
Better quality of the
allows changes development Document-driven
delivered applications
Support OOP Ideal for supporting less
Higher rate of acceptance
development in experiences project team
More technical tasks of
functional requirements Progress of system
testing, maintenance and
evolution with more Well support by tools development is
measurable.
effective at the
conceptual level than at Conserves resources.
the physical level
Quickly re-generate code
Easier to understand and
maintain
More productive and
economical
System design and
specification is more
intuitive
Systematic reuse of
Cons The abstraction level can Expensive to maintain Has not yet been widely Result may not satisfy
be made by skilled people High training costs used client
The competition keeps Used downstream with Inflexible, slow, costly
vendors away from using RSDM and cumbersome to
the standard significant structure and
tight control
Difficult to respond to
changes
Depending upon early
identification and
specification of
requirements
Lify Cycle Capture user Inception Requirements
Phases
Exploration
requirements Elaboration Planning Design
PIM Context Definition Iterations to Release Implementation
Construction
PIM Requirements Productionizing Verification
Transition
Specification Maintenance Maintenance
PIM Analysis Death
Design
Coding & Integration
Testing
Deployment
Best Practice Automating many steps Develop software Test-driven development
needed to convert one iteratively Planning game
model representation to Manage requirement Whole team
another. Use component-based Pair programming
Tracing between model architecture Continues integration
elements. Visually model software Design improvement
Analyzing important Continuously verify
Small release
characteristics of the software quality Simple release simple
models. Control changes to design
software Metaphor