| Software Development Methodology |
METHODOLOGY
Overview
This describes the methodology to be used for Project Planning,
Monitoring and Control. This methodology provides a framework for
software development and software maintenance teams to develop their
project plans. Using the activities detailed in this Project Planning process description and in supporting documents, project teams describe the work they will do, develop estimates of effort, develop a schedule, plan their management and technical approaches, identify measures to gather, and develop a risk management approach. It includes configuration management that is detailed in Chapter 5 titled Configuration Management. The Project Monitoring and Controlling Process is used by project managers to ensure the team is making satisfactory progress towards the project goals. The purpose is to track all major project variables - cost, time, scope, and quality of deliverables. The overall objectives of the process are to:
Process Methodology
Project Planning - Checklists and Templates
Project Monitoring and Control - Checklists and Templates
Methodology for System Development
The Methodology for system development is being illustrated in table below.
Analysis and Design of the System
This is the most important phase in the life cycle of the project since the
functionality to be incorporated in the new system shall be understood
and analyzed at this stage. The study, analysis and design for the
existing system would require special attention, as the final
understanding of the requirements for new system (vis-à-vis existing
system) will determine the approach to be implemented for the new
system development and implementation. Keeping in mind the special needs for the system we have categorized the analysis and design of the systems into two parts. Each phase of study and analysis would be specially treated and would be given important consideration to the fact of each systems impact on the other system. The analysis and design phase will be split into two parts:
Analysis and Design of Existing System
As the functionality and data/content of the existing system has to be
reflected in the new system, the first step towards evolving the system
will be to study, understand (functioning and flow) and analyze the
existing system (if required and possible). The basic purpose of this
whole exercise will be to finally come out with complete understanding
of the existing system in view of the different tasks specified for it.
As the development for the new/enhanced system has to be based on the existing system, the study of the existing system/components of system will be done critically. This will enable to understand the functional requirements of the system and if required suggest the required modification/enhancements. The outcome of this study would enable us to design and develop a robust and optimized system. The existing system would require attention and special treatment keeping the following points in perspective:
Preserving Functional Aspects of Existing System (if applicable)
The new system needs to ensure that functionalities of existing systems are
preserved (if required) and also the existing functional areas of
system are usable. To analyze and understand the existing system the
following information would be required regarding the existing systems:
Prototype
On the successful completion of the Analysis/Understanding and Design
of Systems phase a functional prototype will be readied for the
approval of our understanding of the system. This prototype will comply
with the agreed required specifications of the client. The prototype
developed will incorporate in miniature the basic system and data flow
between the components in the system. The prototype to be developed will be in two phases, namely:
Prototype Beta
Prototype in the beta version will be the first stage development,
making use of the outputs from the Analysis/Understanding and Design of
Systems phase, in entirety. The requirement, functional, and design
specifications formed after the completion of study, for the existing
as well as the new systems will determine the shape of beta prototype. The beta prototype of the system will involve the development of new layouts, content, theme for the website along with the representation of the service/interfaces. The final outcome of the development will be a prototype, which will be considered to be of Beta version and will subsequently be sent for the approval. Any changes, modifications in the beta prototype will be reviewed and incorporated Inputs for the prototype development will be:
Prototype Final
For the beta prototype if any bugs, shortcomings or defects were
reported, these will be resolved. During this period the beta prototype
will pass through the same rigorous testing and version control as
applicable to the normal system development process. On the final
approval/acceptance of beta prototype the specific version of the beta
prototype will be considered as the final prototype. Once beta
prototype accepted as the final prototype of the system will be a set
guideline/benchmark for developing the complete system.
Application Development
This stage shall be the longest in the entire life cycle of the System
development. It shall encompass the development of all modules in
conformance with the functional specifications. The application development will commence only after the final approval of the beta prototype (i.e. with the final prototype). The system to be developed will be as per the set design and standards for the system. Each stage of application development will be monitored closely with the set milestones for each sub-system/sub-element/module. Each successful accomplishment will be followed by the required round of testing (as applicable). The following tasks shall be carried out during this phase:
Unit Level Development Process
Below
are the guidelines to be used during the development process. This is
not intended to be all-inclusive but to be representative of the
development process. While there are many methods or models that could
be used for development, this is the process by which system will work
through. Any problems with the process or deviations to the process
should be brought forward in the quality assurance process. It is
advisable however, when performing QA to follow the methods described
closely as any deviation to those processes could impact the delivery
of the final product.
Documentation
The following documents shall be drafted before the development begins:
Code Development
The process of code development shown below is not absolute. However, it is intended as a guideline.
System Development
Requirement for the system will be understood in the light of the
results of study/understanding of the existing systems. Structure of
system will evolve at the completion of the analysis for new
requirement. The design team shall develop the final design of the
system based on the final requirement understanding, which on approval
from client will be passed on for prototype development at our end. One of the important features of the system development and implementation will be development of required components for the new system and replacement of existing systems with the new systems. The basic point as mentioned in the Analysis/Understanding and Design of Systems phase is the study of the functional aspects of the system with the behavioral impact of system on the data being used in the new system. Also the point to be considered while system development will be of keeping the integrity of the existing systems components intact. At the end of the exercise the system to be developed will be a final amalgamation of the content/functional components and flow of the existing system along with the new required/enhanced functionalities. Acceptance Test
An important exercise in the system development is having a
well-defined testing methodology following the robust QA standards set.
While defining the testing methodology the important aspect considered
is the well understood base requirement and the defined parameters for
the system. This process strengthens our understanding of the system
and also helps in developing a system with more safeguards in place for
the development of robust and efficient system. Each phase of testing will be undertaken as per the concerned stage of application development and will always have a sound process of preparing comprehensive test plans in adherence to the base system requirement catering to the complete (also special - if any) needs of every stage of system/sub-system. The following methodology will be followed for testing as well as test plan preparation:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||






