software development life cycle models
In this article today learn software development life cycle model previous tutorial provides a what is software
project management.
software development cycle
Software development cycle is used to break the entire application
development into a number of processes (Figure 1.1). Small and manageable
processes can be better controlled and monitored. These allow a methodical and
systematic approach for development. An exact number of processes will depend on
the size of the projects and also varies from organization to organization. In
the same organization, depending on the skill of team members, the maturity of
processes and the development cycle.can also vary. Sometimes-processes are
combined to make it shorter. In all the cases, a development cycle would at
least consist of the following software development life cycle model processes:
Pre-sales:
In this process, the vendor prepares the technical and financial
capabilities of the organization. The pre-sales team understands the business model
of the prospects and the likely area where there is a business need for
developing a software application. The pre-sales team makes research in the
domain as well as on the business need of the prospect and interacts with
other researching organizations such as Gartner to get valuable inputs related
to their field of research. This information is then used to prepare a proposal
to the prospect. Sometimes, looking at the need, the prospect may himself ask
for a proposal from the vendor. This is known as "request for
proposal" or RFP and is usually sent to a number of competing vendors. The
proposal, in response to this RFP, will contain estimation (ballpark based
rough estimation), quality processes adopted in the organizations to show
predictability and quality of end deliverables from the vendor, financial
proposals, and past record of completing similar projects for other customers.
Requirement Analysis:
Requirements from the customers are gathered and analyzed. A team from
the software development team would meet the customer and would ask questions
about the features and functionalities that are needed to be developed. These
requirements are recorded and then reviewed again by the team along with the
customer. A feasibility study is carried out to understand the viability of
developing these requirements into software applications. The findings of this
feasibility study are discussed with customers. Once the customer signs off
this document, this process is complete. At the end of this process, the
customer should give a go-ahead for the application development and the project
is kicked off. The formal document that is usually expected at the end of this
process is a purchase order, work order, LOI, or any such document indicating
that the project execution has been awarded to the vendor. It is a good
practice that the customer indicates the details of the quality of the deliverables
with an acceptable limit for defects, delivery schedule expected, and budget
allocated for the project. This practice ensures that all the objectives of the
project are mentioned tacitly, and the project team can follow the same during
execution.
Kick-Off or Initiation:
Once the objectives are determined and the go-ahead is obtained from the
customer, the management from vendor organization should appoint a PM for
execution. The PM, now, has the responsibility to successfully execute the
project to completion. At this stage, when he/she has the LOI or any such
document from the customer, he/she identifies all the stakeholders in this
project. He/she then calls for a meeting with these stakeholders. The
stakeholders could be infrastructure representative (for providing hardware and
software resources required for the project), HR representative (for recruiting
personnel for the project), a quality representative (for setting the quality
process and objectives for the team), visa representative (for arranging visa
for overseas travel), technical architects (to provide technical design and assistance),
training department (to provide required domain and technical training to the
team members), identified team members for the project (to share and make them
understand the objectives of the project), etc. Depending on the nature of the project, there could be more stakeholders such as the legal department a representative who would appraise the team about legal points related to
particular project in question. For examples, legal points related to the
country
Software Project Management where the application is to be installed
and statutory need for maintaining data and back up for transactions.
Design:
This stage is the next step after the requirement analysis stage. The
entry criteria for this stage is the signed off requirement document from the
customer. The activities in this stage are converting the functional
requirements stated in the requirement document to design specifications. These
specifications are arrived at by looking into hardware and software
constraints, for example, if PCs with lower memory are to be used, then design
needs to take care of performance-related issues. Here, the design will be made
such that processing time for the CPU will be reduced. This will ensure that
the final output from the application is available within the performance criteria
mentioned in the requirement document.
Point to be noted that during the design stage the design team usually
breaks the entire requirements into manageable sınall modules. These modules
can be developed in parallel so as to reduce the development cycle. The idea of
breaking the requirements into small modules is to make manageable, independent
modules that can be developed in parallel, thus, saving time.
Construction:
On the basis of functional design specifications, the development team
writes code, does unit self-testing, and then integrates all modules. Here, the
team needs to take care that all specifications mentioned in the design
documents are met. Periodic reviews are carried out to ensure that the code
complies with the defined standard and also meets design specifications.
Testing:
The team prepares a testing strategy. The strategy shows the type of
testing that needs to be done, the stage when testing needs to be carried out,
and the participants in that testing. It also explains the criteria as to when
testing should be stopped. A test plan is also prepared, which will indicate
all test cases and the expected results from this testing. While testing,
proper environment set up (which includes test data set up, creation of IDs for
testing, if required) is also done so that a proper simulated condition is
created
Acceptance Testing and Warranty
After proper testing is done and dies results
are validated against the requirements, the development team would deliver the
application to the customer. The customer would then test the application using
the test plan that he has prepared. This testing by a customer is called
acceptance testing and is carried out by a customer or his representatives. Once
the customer is happy with the quality of the application, the development team
would install the application on the customer machines The team also supports
the customer and application after acceptance testing. The period of this
support warranty will depend on the contract signed with the customer at the
beginning of the project. After successfully testing the application, and
migrating data to the new database, if required, the application "goes
live." "Go live" implies the application is ready to be used in
the production and used for business transactions. It also means that all the required
end users are trained and well versed with the new application and can use them
on a regular basis.
Maintenance:
This process starts after the application is installed and goes to
production and the warranty period is
ver. The project team enters into an agreement with a customer to fix bugs
and issues coming out of production (maintenance), enhance existing features,
and add new features as well. The maintenance is usually carried out by
contract.
No comments:
Post a Comment