The stages of software engineering that are sequenced in a structured and well-defined for development of the desired software product is Software Development Life Cycle (SDLC).
A software product is designed and developed efficiently by following a series of steps provided by SDLC. The steps of SDLC are as follows -
The very first step of SDLC where a request for the desired software product is made by the user. The service provider is contacted and the terms are negotiated. The request is then in writing submitted to the service providing organization.
The project is carried on and started by the software development team. The information related to the user requirement is gathered by having discussions with the various stakeholders from the problem domain. The requirements are categorized into different categories such as user requirements, system requirements and functional requirements. A variety of practices are used for collecting the requirements. They are -
A rough plan of the software process is drafted by the team. At this stage, the software is analyzed on the grounds that, whether it satisfies the user requirements or whether the software turns out to be no more used. It is also identified if it is financially, practically and technologically feasible for organization in taking up the project. The feasibility of the software project can be derived by using many algorithms.
A roadmap of the plan is developed and decided by the developers and the software model that best suits the project is tried to built. The limitations of the software product are understood, the system related problems are learnt and the existing system is changed beforehand. The project scope is analyzed and the resources for the plan are accordingly scheduled.
In the next step the software product is designed by having a complete knowledge of the requirements and analysis and put them in writing. The inputs for this step are the user inputs and the gathered requirements. This step develops two designs – logical design and physical design. Data dictionaries, logical diagrams, data-flow diagrams are produced by the engineers.
At this programming phase, the programming code is written in the desired programming language and error-free executable programs are developed.
The process of software development needs to be tested. The testing may be helpful from removal at the initial stages. While the developers are busy with coding, the software is tested and at various levels of codes, testing is done by the testing experts. Testing at different levels include module testing, program testing, product testing, in-house testing and testing the product at user’s end. A software is reliable when the errors are discovered at early stages and the remedy is taken.
The next step is to integrate the software with the databases, libraries and other programs. In other words, the software is integrated with the other entities of the world.
Implementation step enables the software to be installed on the machines of the user. Sometimes, user may require post-installation configurations. The testing is done in the aspects of portability and adaptability and during this step of implementation; the issues related to integration are solved.
This step ensures in facilitating a more efficient and error free software operation. Training on the operation of the software is provided to the users. In accordance with the changes in the technology and the user end environment, the software is updated and maintained. The real bugs and unidentified problems need to be phased at this step.
The performance of the software can be declined as the time passes. Intense up gradation might be an immediate step or sometimes may go obsolete. This step includes activities such as planning of the disposition activity, at appropriate end-of-system time, terminating the system etc.
The strategy that is required for developing the software is selected by developer, which is facilitated by the software development paradigm. There are different set of methods, tools and procedures of software development paradigm. Some of the different software development paradigms or the processes are as follows -
In this simplest model of software development paradigm, the SDLC phases will function one after the other in a linear pattern. The second phase starts only when the first phase is finished.
This model is based on the assumption that in the previous stage everything was carried out as planned in a perfect manner. If there are any left over issues at previous phase, the model does not work properly. This model does not facilitate in going back and undo or redo the actions.
This model best suits in cases where the similar software was developed and used by the developers in the past.
The software development is processed in iterations. The development process is projected in a cyclic manner, after each cycle of the SDLC process, every step is repeated.
Initially the software is developed on small scale considering the entire step to be followed. Later on more features, modules are designed, coded, tested and added to the software upon each of the iteration. Complete software is produced by every cycle with more features than that of the previous one.
The next iteration is prepared by working on the risk management of each of the iteration. More resources are consumed by this model as it involves a cycle of complete process but the management of development process is made easy.
A combination of iterative model with any one of the SDLC models is known as spiral model. One SDLC model is combined with the cyclic process, which is considered as an iterative model.
The risk that is usually un-noticed by other SDLC models is identified and considered by this model. At the start of the first iteration, the objectives and constraints of the software are determined. Then the software is prototyped by using risk analysis. Then the software is build by using any one standard SDLC model.
The drawback of the waterfall model is that the next stage is started only once the previous stage is completed and there are no chances of undo or redo. This drawback is overcome by V-model which facilitates in reverse pattern software testing at each stage.
The product is verified and validated in accordance with the requirement of the stage by creating test plans and test cases. For instance, at the stage of requirement gathering, all the test cases are prepared in accordance with the requirements. The software is verified against its validity with respect to the requirement by using the test cases of this stage.
It implies that verification and validation are both done parallel and hence the model is also known as verification and validation model.
Big Bang model involves lot of programming and funds but requires less planning. The model is based on the concept of big bang of the universe. As the big bang theory led to the evolution of galaxies, planets and starts, it is based on this concept that the best software product can be achieved by combining lots of funds and programming.
Any specific process is not followed in this model in other words there is no clarity on the customer about the future needs and requirements and thus lead to arbitrary input requirements.
The model is best suited for the purpose of experimenting and learning and does not suit for large software projects.
Software Engineering Related Interview Questions
|Java Script Interview Questions||ASP.NET Interview Questions|
|MySQL Interview Questions||Manual Testing Interview Questions|
|Artificial Intelligence Interview Questions||Java Interview Questions|
|Software testing Interview Questions||Test Cases Interview Questions|
|Software Development Lifecycle (SDLC) Interview Questions||Software Process Engineer Interview Questions|
|Software Architecture and Design Interview Questions|
Software Engineering Tutorial
All rights reserved © 2018 Wisdom IT Services India Pvt. Ltd
Wisdomjobs.com is one of the best job search sites in India.