to apply
proven software development life cycle practices.
- Requirements gathering and use-case modeling
Requirements
can come from many sources, but the system’s analysts and architects
must consolidate these into requirements documentation and manage
these requirements. From the requirements, your team can draw system use
cases and high-level system behavior.
Teams that use Rational RequisitePro® can
use the Requirements Management perspective to map existing requirements
definitions to existing UML model elements, such as use cases. You
can also create requirements from existing model elements, or create
model elements from existing requirements definitions.
The
software architect creates a use-case model to define system use
cases and behavior, and actors on the system, as well as to specify
user workflows.
- Domain analysis
Analysts and architects describe the system
domain by defining a high-level functional model of the system.
The analysis phase identifies the data that will be stored in the
system and how it will be processed.
The architect creates
an analysis model to describe a logical view of the functional requirements.
This model defines high-level objects in the system and their interactions.
- Detailed architectural design
The architect, in conjunction
with the software development team, designs the system architecture
at a detailed level.
During detailed design, the development
team takes the high-level model that was created during analysis
activities and creates the design model. The developers add details
to the model to describe the implementation of the system, such
as programming constructs and technologies that are used for persistence,
security, logging, and deployment.
The design model can be
further refined by applying proven design patterns and automated
model-to-model transformations.
- Implementation
The development team uses the
approved design to implement the application.
Developers transition
from design to implementation by using automated transformations
to convert the model to code (such as Java™,
Enterprise JavaBeans (EJB), C++, or CORBA IDL) and by continuing
to develop and deploy the application by using software and Web
development, debugging, testing and deployment capabilities.
Developers
of Java applications can take advantage of additional structure
analysis and control features to ensure that the code conforms with
predefined and user-defined structural rules. In addition, developers
can search Java code for known structural patterns by using an automated
pattern mining feature called Architectural Discovery.