![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Introduction
OverviewTo successfully develop software in today's market, the project team members need to:
- Produce high-quality software that satisfies the customer's requirements for functionality, performance, reliability, maintainability, and extensibility
- Develop the software within the constraints of the budget
- Deliver the software in a timely manner, either to meet contractual obligations or to meet the demands of the marketplace
These challenges are rooted in complexity and change. A software system's complexity increases with the magnitude of its requirements —— software that must do a lot (and do it quickly and reliably) tends to have a large number of constituent modules that combine and interact in numerous ways. As a project's complexity increases:
- Software changes become more difficult to design, implement, integrate, validate, and track. In short, the software becomes increasingly resistant to change.
- Parallel development becomes more difficult to achieve.
Left unchecked, these difficulties quickly translate into longer schedules and higher costs, and ultimately jeopardize the success of the project.
Making changes to complex software can also give rise to a host of problems that pose serious risks to achieving high quality within the constraints of schedule and budget. On a large enough project, these problems become the dominant factors determining success or failure. Some of the most common problems are:
- Decreased comprehensibility
- Design degradation
- Long turnaround time for changes
- Impediments to parallel development and validation
- Proliferation of versions to manage
Apex helps meet these challenges by reducing complexity and minimizing the impact of change through:
- The design choices made at the architectural level
- The process used to develop the design
- The process used to develop the software
- The process used to release the software
Apex/Summit includes Rational Summit/TM, Rational's task management system. It provides a framework for automated process control that simplifies and improves management insight as well as engineering productivity and coordination. It helps control the software process by keeping track of the work (or tasks) necessary to complete a project. Additional information can be found in Task Management (Apex/Summit).
The goal of this manual is to present the concepts and processes that can be used to manage a software development effort.
This manual consists of two main parts. The chapters in the first part describe how Apex components are used to support the entire development and release life cycle of a software system:
- What software architecture is
- How subsystems (high-level components) are used in the software architecture
- How the architecture is enforced by controlling access to units in other subsystems using imports and exports
- How the version control and configuration management aid in the development and release of software
- How unit development is assisted by the Apex development environment components: language-sensitive editors, smart compilers and linkers, and a powerful debugger
The chapters in the second part discuss one method for developing software. The steps in the Software Development Process illustrated in Figure 1. This process may be used with Apex/Summit. For information on the process when using Apex ClearCase, please see Developing Software withClearCase and Managing Software with ClearCase. ClearCase 4.0 and higher provides a complete process via UCM.
Figure 1 The Software Development Process
The steps to set up, develop, and release a system using Apex are described on a high level. Details of all the commands can be found in the Online Reference and the Command Reference.![]()
Rational Software Corporation http://www.rational.com support@rational.com techpubs@rational.com Copyright © 1993-2002, Rational Software Corporation. All rights reserved. |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |