Subsections
Why has object-oriented programming gone from being ``something to think about'' to being a de-facto standard in the way software is developed today? OOA/OOD/OOP is good for:
- Analyzing user requirements
- Designing software
- Constructing software
- Reusability (reusable components)
- Reliability
- Robustness
- Extensibility
- Maintainability
- Reducing large problems to smaller, more manageable problems
According to the GartnerInstitute ...
- 74% of all IT projects fail, come in over budget, or run past the original deadline.
- 28% fail altogether.
- 52.7% of IT projects cost 189
- Every year $75B is spent on failed IT projects.
The text ``Rational Unified Process, An Introduction'' [9] identifies the following symptoms that characterize failing software development projects.
- Inaccurate understanding of end-user needs.
- Inability to deal with changing requirements.
- Modules that don't fit together.
- Software that's hard to maintain or extend.
- Late discovery of serious projects flaws.
- Poor software quality.
- Unacceptable software performance.
- Team members in each other's way.
- An untrustworthy build and release process.
The same text identifies the root causes of these failures:
- Ad hoc requirements management.
- Ambiguous and imprecise communication.
- Brittle architectures.
- Overwhelming complexity.
- Undetected inconsistencies in requirements, designs, and implementations.
- Insufficient testing.
- Subjective project status assessment.
- Failure to attack risk.
- Uncontrolled change propagation.
- Insufficient automation.
Finally, the same text identifies these best practices:
- Develop software iteratively.
- Manage requirements.
- Use component-based architectures.
- Visually model software.
- Verify software quality.
- Control changes to software.
|
|