The methodology we follow during the software
development life cycle ensures active
client involvement at every step of the
process. The six core process workflows
for software development and delivery
are as follows:
Business Modeling
– document business processes
using business use cases. The business
use cases are analyzed to understand
how the business should support the
business processes. This is documented
in a business object model. This step
is optional for some projects.
Requirements –
describe what the system should do and
allow the developers and the client
to agree on that description. To achieve
this we elicit, organize and document
the required functionality and constraints.
A vision document is created and stakeholder
needs are elicited. Use cases are identified
to represent the behavior of the system.
The use cases function as a unifying
thread throughout the system’s
development cycle. The same use case
model is used during requirements capture,
analysis & design and testing. The
deliverable at the end of this phase
is the Functional Requirements Specifications
document.
Analysis & Design
– determine how the system will
be realized in the implementation phase.
Analysis & Design results in a design
model. The design model serves as an
abstraction of the source code. The
design model consists of design classes
and design subsystems with well defined
interfaces, representing what will become
components in the implementation. The
deliverable at the end of this phase
is the System Requirements Specification
document.
Implementation –
the system is realized through the implementation
of components. The purpose of this workflow
is:
 |
To define the organization of
code, in terms of implementation
subsystems |
 |
To implement objects and classes
in terms of subsystems |
 |
To test the developed components
as units |
 |
To integrate the results produced
by individual implementers (or teams)
into an executable system |
Test – The purpose
of this workflow is:
 |
To verify the integration between
components |
 |
To verify the proper integration
of all components |
 |
To verify that all requirements
have been correctly implemented |
 |
To identify and ensure defects
are addressed prior to the deployment
of the software |
Testing is an iterative process, which
means that testing is performed throughout
the project. Tests are carried out along
three quality dimensions – reliability,
functionality, application performance
and system performance. The deliverable
at the end of this phase is testing
documentation for the test procedures
implemented.
Deployment –
successfully deliver the project to
the end user. Main activities include:
 |
Installation |
 |
Support |
 |
Planning and conducting beta tests |
 |
Formal acceptance |
Typically, the deliverables at the
end of deployment include application
source code, user manuals and support
documentation.