Software Development Life Cycle
Analysis and Planning
Release & Maintenance
In the above SDLC process, the single stage of testing is available and conducting the testing by developers. Due to this reason organizations are concentrating on multiple stages of testing and separate testing teams for achieving quality
The totality of functionality and features of a software product that bear on its ability to satisfy stated or implied needs. [After ISO9126]
Ø Meet customer requirements (In terms of Functionality)
Ø Meet customer expectations (In terms of usability, performance etc…)
Ø Cost to purchase license
Ø Time to release
Software Quality Assurance
Software QA involves the entire software development PROCESS –monitoring and improving the process, making sure that any agreed-upon standards and procedures are followed, and ensuring that problems are found and dealt with. It is oriented to ‘prevention’.
Monitoring and measuring the strength of development process, called as software quality assurance or verification.
Software Quality Control:
The validation of software respect to customer requirements, called as product with software quality control or validation or testing.
Verification typically involves reviews and meetings to evaluate documents, plans, code, requirements, and specifications. This can be done with checklists, issues lists, walkthroughs, and inspection meetings.
Validation typically involves actual testing and takes place after verifications are completed. The term ‘IV & V’ refers to independent verification and validation.
This is an initial stage in SDLC; in this stage business analyst category people gather requirements from the customer and document them, the document called BRS (Business requirements specification) or CRS (customer requirements specification) or URS (user requirements specification) or PRD (product requirements specification) or BDD (business design document)
. Document name may vary from one company to another but process is same
. In software application development BA category people gather requirements from a specific customer
. In software product development BA category people gather requirements from model customers in the market
Analysis and Planning
Project management conducts a review on the requirements to verify weather they are complete and correct requirements are not; reasonable requirements are no; achievable requirements are not.
After the review and its following modifications, system analyst category people prepare software requirements specification (SRS) based on finalized BRS here the process is converting user requirements into software requirements. SRS consist of 2 subject documents
1) System requirements specification-software + hardware requirements
2) Functional requirements specification
Project manager forms the project team, prepares project schedule and prepare project plan. Technology selection also takes place in the phase.
In designing phase, system architect category people prepare software design document based on finalized SRS.
SSD consists of two types of design documents high level design (HLD) & Low level design (LLD)
High level design (HLD) or global design: the overall architecture of the software is called HLD
Low level design (LLD) or detailed design: internal architecture of a component or module or unit of the software is called LLD.
Output of this phase is SSD (software design document)
Coding or implementation:
In this phase developers or programmers coding the software in specified technology based on finalized design document and they follow coding standards.
Output of this coding phase is software code document.
In this phase testers conduct testing on software build with respect to requirements, if at all any defects found, send them for rectification, after rectification conform weather those defects correctly fixed or not.
Output of this stage is tested software
Release & maintenance:
After completion of acceptance testing and modifications, project management forms release team to release software to customer.
The release team consists of few programmers, few testers, and few hardware engineers.
This team organizes bellow tasks in the customer site.
Ø Complete Installation
Ø Overall functionality
Ø Handling Input & Output devices
Ø Secondary storage devices handling
Ø OS Error handling
Ø Coexistence with Other Software
After release of the Software, Customer starts utilization (Production). During Production (Usage of Software), If any failures then Customer site people send Software Change Requests(SCR) to Development Organization. These requests are viewed by special team called Change Control Board (CCB). This team consists of a few developers, few testers, Project management executives, and hardware engineer etc..
The software lifecycle typically includes a concept phase, requirements phase, design phase, implementation phase, test phase, installation and checkout phase, operation and maintenance phase, and sometimes, retirement phase. Note these phases may overlap or be performed iteratively.
A condition or capability needed by a user to solve a problem or achieve an objective that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed document. [After IEEE 610]
The process consisting of all lifecycle activities, both static and dynamic, concerned with planning, preparation and evaluation of software products and related work products to determine that they satisfy specified requirements, to demonstrate that they are fit for purpose and to detect defects.