Software Development Life Cycle: The systems development life cycle (SDLC), also referred to as the application development life-cycle, is a term used in systems engineering, information systems and software engineering to describe a process for planning, creating, testing, and deploying an information system. The systems development lifecycle concept applies to a range of hardware and software configurations, as a system can be composed of hardware only, software only, or a combination of both. Suppose, you are assigned a task, to develop a custom software for a client. Now, irrespective of your technical background, try and make an educated guess about the sequence of steps you will follow, to achieve the task.
The correct sequence would be. Different phases of Software Development Cycle Activities performed in each stage Requirement Gathering stage Gather as much information as possible about the details & specifications of the desired software from the client. This is nothing but the Requirements gathering stage. Design Stage Plan the programming language like Java, PHP,.net; database like Oracle, MySQL, etc. Which would be suited for the project, also some high-level functions & architecture. Built Stage After design stage, it is built stage, that is nothing but actually code the software Test Stage Next, you test the software to verify that it is built as per the specifications given by the client.
Deployment stage Deploy the application in the respective environment Maintenance stage Once your system is ready to use, you may require to change the code later on as per customer request All these levels constitute the waterfall method of software development lifecycle. As you may observe, that testing in the model starts only after implementation is done. But if you are working in the large project, where the systems are complex, it's easy to miss out the key details in the requirements phase itself. In such cases, an entirely wrong product will be delivered to the client and you might have to start afresh with the project OR if you manage to note the requirements correctly but make serious mistakes in design and architecture of your software you will have to redesign the entire software to correct the error. Assessments of thousands of projects have shown that defects introduced during requirements & design make up close to half of the total number of defects. Also, the costs of fixing a defect increases across the development life cycle. The earlier in life cycle a defect is detected, the cheaper it is to fix it. As the say, "A stitch in time saves a nine." To address this concern, the V model of testing was developed where for every phase, in the Development life cycle there is a corresponding Testing phase
The left side of the model is Software Development Life Cycle - SDLC The right side of the model is Software Test Life Cycle - STLC The entire figure looks like a V, hence the name V - model Apart from V model, there are iterative development models, where development is carried in phases, with each phase adding a functionality to the software. Each phase comprises of its independent set of development and testing activities. Good examples of Development lifecycles following iterative method are Rapid Application Development, Agile Development Here are the Key Terms again: SDLC: SDLC is Software Development Life Cycle. It is the sequence of activities carried out by Developers to design and develop high-quality software. Though SDLC uses the term Development, it does not involve just coding tasks done by developers but also incorporates the tasks contributed by testers and stakeholders. In SDLC, test cases are created. STLC: STLC is Software Testing Life Cycle. It consists of series of activities carried out by Testers methodologically to test your software product. Though STLC uses the term testing it does not involve just testers, at some instances, they have to involve developers as well.
In STLC Test cases are executed. Waterfall Model: Waterfall model is a sequential model divided into different phases of software development activity. Each stage is designed for performing specific activity during SDLC phase. Testing phase in waterfall model starts only after implementation of the system is done. Testing is done within the SDLC. V- Model: V- model is an extension of the waterfall model. Unlike waterfall model, In V-model, there is a corresponding testing phase for each software development phase. Testing in V-model is done in parallel to SDLC stage. Testing is done as a sub project of SDLC. Role of Business Analyst during SDLC Process BA is involved in driving business requirement and converting them to solution requirements. He is involved in translating the solution features into software requirements. Then leads in analysis and designing phase, dictates in code development, then follows the testing phase during bug fixing as a change agent in the project team and ultimately fulfills the customer requirements.
The role of a business analyst in an IT Project can be multi fold. It is possible for project team members to have multiple roles and responsibilities. In some projects, the BA may take on the roles of the Business Intelligence Analyst, Database Designer, Software Quality Assurance Specialist, Tester, and/or Trainer when there are limited resources available. It is also possible for a Project Coordinator, or an Application Development Lead, or a Developer to take on the role of the Business Analyst in specific projects. Business Analysis overlaps heavily with analysis of requirements of the business to function as usual and to optimize how they function. Key Responsibilities of a Business Analyst: The responsibility set of a business analyst would require him to fulfill different duties in different phases of a project and they are elucidated below Initiation Phase This phase will mark the beginning of a new project and a business analyst will vary out the following responsibilities Assist in carrying out the cost-benefit analysis of the project. Understand the business case. Ascertain the feasibility of the solution/project/product. Help in creating the project charter. Identify the stakeholders in the project. Planning Phase
This phase will involve gathering the requirements and planning, how the project will be executed and managed. His responsibilities will include the below functions Eliciting the requirements Analyze, organize and document requirements. Manage requirements by creating Use-cases, RTM, BRD, SRS, etc. Assess proposed solutions. Liaise and enhance communications with stakeholders. Assist in formulating the project management plans. Help in finding the project s scope, constraints, assumptions and risks. Assist in designing the user experience of the solution. Executing Phase This phase marks the development of the solution as per the requirements gathered. The responsibilities include Explain requirements to the IT/development team. Clarify doubts, concerns regarding the proposed solution to be developed. Discuss and prioritize project scope changes and gain agreement. Create beta tests scripts for initial testing. Sharing the developing modules with stakeholders and solicit their feedback. Following deadlines and manage stakeholder s expectations. Resolving conflicts and manage communications with the project team.
Monitoring and Controlling Phase In this phase, the project is measured and controlled for any deviations from the initial plans. This phase runs simultaneously to the execution phase. Developing test scripts and conducting comprehensive module and integration testing. Conducting UAT (use acceptance testing) and creating testing reports. Gain acceptance/approval of the deliverables from the client. Explain the change requests to the development team. Monitor the development of the change requests and verify their implementation as per the project s objective. Closing Phase This phase marks the closure of the project. The responsibilities are Presenting the completed project to the client and gain their acceptance. Create user-training manuals, any functional material and other instructional guides. Conduct elaborate integration testing in production environment. Create final product documentations, document project lessons learned. Requirement Life Cycle: Requirement lifecycle involves a number of phases and at times it can be a complicated process. The nature of the process depends on the methodology you choose for your software
development like Agile, Waterfall, Incremental, etc. Each phase may involve a lot of paperwork and approval procedure. It also deals with the project documents like a project proposal, project management plan, project scope, and the business case. Let see some of the common requirement lifecycle required to know for a Business Analyst. Requirement Definition It is one of the primary phases of the requirement gathering process commonly known as Requirement extraction. Once the requirement is gathered, it can be organized in folders logically as per product release or sprint. These requirements are analyzed further to prepare facts and figures for a business analyst to track possible result based on analysis. This procedure is referred as Impact Assessment. Requirement Validation The requirement validation phase includes analyzing the needs or conditions required to meet a new or altered product considering needs of the various stakeholders. For the success of any project, validating requirements is very important. Requirement validation includes checking the specification, wireframe, High Fidelity Simulation, Traceability Analysis, etc. There are requirement validation tools that do validation with very less human intervention. Requirement Documentation Requirement documents should cover following things Project stakeholders requirement Business analysis plan Current state analysis
Scope statement specification Requirement Management Requirement Management process includes planning, monitoring, analyzing, communicating and managing of those requirements. If the requirement is not managed well, the end product will get affected adversely. There are requirement management tool available online which help you to manage the requirement with minimum hurdles.