|
Controlled iterative development |
Smaller increments of change can be edited, built, tested and deployed |
Reduces risk, improves time-to-market |
|
Object-oriented technology |
Environment supports notion of encapsulating information, and restricting access and manipulation to only meaningful operations |
Simplifies communication about real-world constructs. Improves reliability of accessing and changing data. |
|
Architecture-based design |
Includes facilities for creating software structures (subsystems) larger than that provided by the programming language itself |
Fosters large-scale software reuse. Creates software that is adaptable in response to changing operational conditions. |
|
Iterative testing throughout the development lifecycle |
Testing tools provided directly within development environment allow for frequent developer-led testing |
Bugs are found sooner, corrected more cost-efficiently |
|
Integrated development environment |
All tools needed for the developer are organized as integral parts of the development environment |
Less switching between multiple disparate tools |
|
Integrated configuration management |
CM commands and facilities built into development environment |
Manages parallel development simply and without high overhead. CM system more transparent to developers, less intrusive to work activities. |
|
Architectural control |
Manages dependencies between source files at a level higher than that provided by the programming language itself |
Maintains architectural integrity of application amidst changes. New features are introduced with less side-effects. |