SRS or Software Requirement Specification is a document produced at the time of requirement gathering process. It can be also seen as a process of refining requirements and documenting them.
SRS is a formal document that acts as a written agreement between the development team and the customer. SRS acts as input to the design phase and includes functional, performance, software, hardware, and network requirements of the project.
BRS is Business Requirement Specification which means the client who want to make the application gives the specification to software development organization and then the organization convert it to SRS (Software requirement Specification) as per the need of the software.
High Level Design gives the overall System Design in terms of Functional Architecture and Database design. It designs the over all architecture of the entire system from main module to all sub module.
The project requirements are analyzed in terms of input data and desired output, processing required to transform input into output, cost-benefit analysis, and schedule of the project. It also includes gathering, analyzing, validating, and specifying requirements.
In agile model, the product or solution is first divided into features which need to be developed. If there are new features identified in the midst of complete product release it again gets planned across sprints. Agile Sprint duration is decided based on feature to be developed. Every sprint goes through the phases of Requirement, Design, Development and Testing phase. The most important of the principles is customer satisfaction by giving rapid and continuous delivery of small and useful software.
RAD (rapid application development) is a concept that products can be developed faster and of higher quality through:
An iterative life cycle model does not attempt to start with a full specification of requirements. Instead, development begins by specifying and implementing just part of the software, which can then be reviewed in order to identify further requirements. This process is then repeated, producing a new version of the software for each cycle of the model.
Capability Maturity Model is a bench-mark for measuring the maturity of an organization’s software process. It is a methodology used to develop and refine an organization’s software development process. CMM can be used to assess an organization against a scale of five process maturity levels based on certain Key Process Areas (KPA). It describes the maturity of the company based upon the project the company is dealing with and the clients. Each level ranks the organization according to its standardization of processes in the subject area being assessed.
There are different methodologies, which are a part of the agile model. The most famous one is scrum methodology. Like all the other agile computer programming, scrum is also an iterative and incremental methodology. This methodology is different than the other methodologies because, the idea of empirical process control was introduced in this process. As a matter of fact, scrum was introduced for software project management. However, it was eventually also used for software maintenance.
The best part of the scrum methodology is that it makes use of real world progress of a project, which is used for planning and scheduling releases. The entire computer software project is divided into small parts known as sprints.
The duration of sprint can range from one week to three weeks. At the end of the duration of the sprint, the team members along with the stakeholders meet. This meeting helps in assessing the progress of the project and chalk out the further plan of action. This assessment helps in taking stalk of the current state of affairs and rework the line of work and complete the project on time and not just speculate or predict the further outcome.
The Waterfall model is a sequential design process, used in software development processes and it is the first process model introduced. It is also known as Classic Life Cycle Model (or) Linear Sequential Model.
In a waterfall model, each phase must be completed fully before the next phase can begin. This type of model is basically used for the project which is small and there are no uncertain requirements. It is very simple to understand and use.
The Big Bang model follows no specific process, and very little time is spent on planning. Even the customer is not sure about what exactly they want and the requirements are implemented on the fly without much analysis. This is typically used for small projects and not recommended for large or complex projects, as it’s a high-risk model; if the requirements are misunderstood in the beginning, you could get to the end and realize the project may have to be started all over again.
A prototype is a model or a program which is not based on strict planning, but is an early approximation of the final product or software system. A prototype acts as a sample to test the process.
A prototype model focuses on developing the software little by little and tested in a real time environment with the customers in mind.
The Maintenance phase includes implementation of changes that software might undergo over a period of time, or implementation of new requirements after the software is deployed at the customer location. The maintenance phase also includes handling the residual errors that may exist in the software even after the testing phase.
SDLC stands for Software Development Life Cycle. A Software Development Life Cycle is essentially a series of steps, or phases, that provide a model for the development and lifecycle management of an application or piece of software.
In other words, it is a conceptual model used in project management that describes the stages involved in an information system development project, from an initial feasibility study through maintenance of the completed application.
The incremental model is an intuitive approach to the waterfall model. Multiple development cycles take place here, making the life cycle a “multi-waterfall” cycle. Cycles are divided up into smaller, more easily managed iterations. Each iteration passes through the requirements, design, implementation and testing phases.
Low Level Design the view of the application developed during the high level design is broken down into modules and programs. Logic design is done for every program and then documented as program specifications. For every program, a unit test plan is created.
SDLC is required in order to have a systematic, planned approach to build a software application for the client.
V- Model means Verification and Validation model and it is a modified version of the Waterfall method. In V-Model developer and tester works parallel. The V-Model demonstrates the relationships between each phase of the development life cycle and its associated phase of testing.
The process of testing software in a well planned and systematic way is known as software testing life cycle(STLC).
Different organizations have different phases in STLC however generic
Software Test Life Cycle (STLC) consists of the following phases:
PM (Project Manager) forms Maintenance Team, Maintenance team consists ofa few developers, testers, and project management executive CCB receives customer change requests and perform required changes Maintenance(3 types)
(ex: windows 98 to Vista/windows 7)
Ms Access to SQL Server/Oracle)
(Ex: IItier application to web application)
PM (Project Manager) forms Release Team, Release team consists of a few developers, testers,project management executive, and system administrator Release Team goes to customer place and deploys software.
Release Team provides some training to the customer site people (if required)
The Deployment phase is nothing but the product is delivered / deployed to the customer for their use after the successful testing.
The Spiral Life Cycle Model is a type of iterative software development model which is generally implemented in high risk projects.
It was first proposed by Boehm. In this system development method, we combine the features of both, waterfall model and prototype model. In Spiral model we can arrange all the activities in the form of a spiral.
The spiral model is similar to the incremental model, but incorporates risk analysis. The spiral model has four phases: Planning, Risk Analysis, Engineering and Evaluation. A software project repeatedly passes through these phases in iterations (called Spirals in this model). The baseline spiral, starting in the planning phase, requirements are gathered and risk is assessed. Each subsequent spiral builds on the baseline spiral. Requirements are gathered during the planning phase.
This model of development combines the features of the prototyping model and the waterfall model. The spiral model is intended for large, expensive, and complicated projects.
The requirements specified in the SRS document is translated into a logical structure that can be implemented in a programming language. System Design helps in specifying hardware, system requirements and in defining overall system architecture. The output of the design phase is a design document that acts as an input for all the subsequent SDLC phases.
It is a measure to assess how practical and beneficial the software project development will be for an organization. The software analyzer conducts a thorough study to understand economic, technical and operational feasibility of the project.
In testing phase, the code developed is tested against the design document to make sure that the product is actually solving the needs addressed and gathered during the requirements phase. During this phase unit testing, integration testing, system testing, acceptance testing are done.
The design specified in the design document is implemented into executable programming language code. The output of the coding phase is the source code for the software that acts as input to the testing and maintenance phase. This is the longest phase of the software development life cycle.