|
Software development isn't all about the
code. In fact, coding is part of the overall project
lifecycle. The project phases are a slightly modified
version of the classical sequential model that is
appropriate for a lot of projects. However, you
shouldn't think that this model is universal throughout
the industry and that it can't be modified; on the
contrary, almost each business applying this model
adapts it to the specific needs of real situations.
The typical software project includes the
following
phases: 1. Requirements
Analysis and Definition. System
Overview
2. Estimation
3. Functional
Specification and UI Prototype
4. Software
Architecture and Test Plan
5. Implementation
(Coding) and Testing
6. Release.
Delivery and Installation
7. Operation
and Maintenance
Below you will find a brief description
of these phases:
Requirements
Analysis and Definition. System Overview
You should determine and document the
vision for the target product or system; the user
profile(s); the hardware and software environment; the
most important components, functions, or features the
software must have; the security requirements, etc.
The product of this stage is the general system
requirements (and sometimes, draft user manual). This
document will be modified as the project is
undertaken.
Estimation
This is a phase that is usually obscure to
customers. An estimate should explicitly list what
is included in the price, as well as why and how much
any additional features will cost. The estimate isn't
the only document that results from this phase. The
project contract (or project bid) and rough project
schedule usually come into existence at this point,
too.
Functional
Specification and UI Prototype
A functional specification determines what
exactly the target system must do and the premises for
its implementation. All requirements should be
thoroughly defined and documented. The general system
requirements and other documents created in the first
phase serve as input here. Depending on the nature of
the system, creating a UI prototype in this phase may be
crucially important for the success of the project.
Besides the functional specification and UI
prototype, this phase may also result in creating an
exact project plan that contains the project schedule,
milestones, and human resources.
Software
Architecture and Test Plan
In this phase, it is necessary to
determine the system components covering your
requirements and the way these components will work
together. The software architecture design may be
logically divided into two parts: general design and
detailed design. The general design consists of the
structural design, development strategy, and system
design documentation. Working out the general design,
developers break the target system into high-level
components and describe them in the context of the whole
system. When it comes to the detailed design,
specification and documentation on each component are
developed. The general system requirements, functional
specification, and UI prototype serve as input for this
phase.
Completing this phase, the description of
the software architecture, the algorithmic structure of
the system components and their specifications, the
documentation of all design decisions, and a thorough
test plan should be produced.
Implementation
(Coding) and Testing
The goal of this phase is building the
target system based on the specifications developed in
the previous phases. Transferring the specification
algorithms into a programming language, performing code
reviews and test cases, as well as unit, integration,
and system tests are other key activities of this phase.
Comprehensive testing and correcting any errors
identified ensures that components function together
properly, and that the project implementation meets the
system specification.
Release, Delivery
and Installation
In the release phase, the target product
or system must be transferred to you. The key activities
usually include installation and configuration in the
operational environment, acceptance testing, and
training of the users if necessary.
A crucial
point here is formal acceptance testing which comprises
a series of end-to-end tests. It is performed to confirm
that the product or system fulfills the acceptance
requirements determined by the functional
specification.
After this phase is complete, the
product or system is considered formally delivered and
accepted. If iterative development is used, the next
iteration should be commenced.
Operation and
Maintenance
The Operation and Maintenance phase begins
once you have formally accepted the product or system
delivered by the vendor. The task of this phase is the
proper functioning of the software. To improve a product
or system, it should be continuously maintained.
Software maintenance involves detecting and correcting
errors, as well as extending and improving the software
itself.
Conclusion
The system requirements, user manual,
functional specification, and even software architecture
design often need to be updated and modified throughout
the course of the project implementation. Just be
cautious that any changes introduced in the
documentation are consistent with your initial vision
for the target product or system.
|