. Concurrency is the tendency of events or actions to happen simultaneously. In software, when
two or more processes execute simultaneously, they are called concurrent processes.
In networking, SDLC stands for Synchronous Data Link Control that is a protocol used for communication. It is developed by IBM and is a layer 2 protocol.
The spiral model is just like the iterative model but incorporates risk analysis. It consists of 4 different phases including planning, risk analysis, engineering, and evaluation. In each development, the software will pass through these four phases in iterations (also called spiral). This model is a combination of prototyping and waterfall models.
1. This model is not suitable for low risk analyzed projects.
2. It is difficult to define aims and variable milestone.
The Deployment phase is the product is delivered for consumer needs.
The Big Bang model obeys no particular process, and a very few amounts of time is spent on planning. Even the consumer is not certain about what exactly they want and the requirements are implemented. This is typically used for petty projects and not suitable for complex projects.
In iterative modeling, development starts with specifying and implementing different parts of the software, which can be reviewed farther to recognize requirements. This process will repeat and make a new version of the software for each sprint of the model. It is easy to understand and use.
1. High skilled resources are needed for skill analysis.
2. This model is not useful for small projects.
The implementation phase consists of the coding, testing, integration, and installation of the software product. The product is coded according to the DDS (Design Document Specification).
Test cases are used to analyze if the software works according to the user’s needs. After the errors and bugs are fixed, the product is then installed to check its performance.
After the software product is tested and it passes through every level of the testing phase, it is formally launched in the deployment phase. It may be released as a demo or prototype for getting user reviews, upon which the product will be improved further.
The formalities like handing over the ownership of the product, deployment preparation and closing the phase are carried out in this stage.
The various type of prototype models are
* Patch-Up Prototype
* Non-operational Prototype
* First-of-a-Series Prototype
* Selected Features Prototype
Non-functional requirements are implicit and are related to security, performance, look and feel
of user interface, interoperability, cost etc.
It is a model prepared for reviewing a part of the software to gain knowledge and a clear view of the upcoming requirements. This process is also repeated to produce a new update of the software for every period of the project.
In this phase, the actual code for the software is written here based on the information gathered from the DDS (Design Document Specification) and the SRS (Software Requirement Specification). Based on the type of software product, the programming language is chosen like Python, Java or C#.
Functional requirements are functional features and specifications expected by users from the
proposed software product
JAD (Joint Application Design) session is used to gain data and information about the system.
We can measure project execution by means of Activity Monitoring, Status Reports and
In Low-Level Design, High-Level Design is broken down into modules and programs. Logic design is developed for every program, and it will be documented as program specifications.
It is a system in which computers perform some procedures.
During the Evolution and Maintenance phase, the system is continuously monitored.
During the implementation phase
The scope of the project is nothing but, the goals, objectives, and expectations of the project. Software scope is a well-defined boundary, which includes all the process which are performed to develop and deliver the software product. The software scope consists of all functionalities and artifacts to be delivered to the software system. The software scope also helps to identifies what the system will do and what it will not do.
The agile model is very effective to use as it follows a realistic and quick approach to provide software with some functional requirements within 15 to 20 days. The model works on iterative and incremental development. In each sprint, requirement, design, development, and testing stages are performed. In this process, testers and developers work together as a cross-functional team. The advantage is - this model performs constant changes based on customers’ feedback.
1. It has a lack of empathy for the necessary design and documentation.
2. It can be difficult to maintain a long cross-functional team.
There is no best SDLC model present, as these models are considered based on the requirements of the development process. Different models follow unique features for developing software. Hence, selecting an SDLC model varies software-to-software. However, in these recent years, the agile model is popular and adapted by several software organizations.
It is a process to estimate various aspects of software product in order to calculate the cost of
development in terms of efforts, time and resources. This estimation can be derived from past
experience, by consulting experts or by using pre-defined formulas.
The different phases involved in the Agile model are Planning, Requirements, Analysis, Design, Coding, Unit Testing, System Integration Testing, Non-Functional Testing, and Acceptance Testing. The Agile model will be followed using any Agile boards such as Scrum or Kanban. There will be a number of Sprints to be followed and all the deliverables will be done in the form of Story Points.
It is basically a procedure which involves refining and documenting the needful. It serves as an agreement between the developer and the consumer. It includes all kinds of requirements that a project has like design, software, hardware, and functions.
The demands or needs of a project are taken into consideration in terms of data and output, profit analysis and plan of the project. Basically, bringing out all the requirements.
Software scope is a well-defined boundary, which encompasses all the activities that are done
to develop and deliver the software product.
The software scope clearly defines all functionalities and artifacts to be delivered as a part of the
software. The scope identifies what the product will do and what it will not do, what the end product
will contain and what it will not contain.
* Simple and easy to use.
* Each phase has specific
* V model is more successful because of the early development of test plans. This reduces the cost of bug fixes
* Works most effective with small projects where requirements are small
Feasibility allows assessing how viable software project development will be for any organization. The software analyst does the complete study to understand the operational, economic, and technical feasibility of any project.
The testing phase is very important to check whether the developed code is matching with a design document. This stage ensures that the developed product meets the desired requirements of customers. This time, different types of tests are done including unit testing, acceptance testing, system testing, etc. The software testing team makes a collaboration with developers to identify and resolve software bugs.
The LLD (Low-Level Design) and HLD (High-level Design) are used to analyze and understand the project in a high level and low-level overview to different types of team members to the customers depending on the technical or business knowledge of the person. The Low-level Design is a detailed design implementation which will be helpful in the development process for the Developers whereas the High-Level Design will be given by Architects to proceed with the development process initially. This will be easier to know or look at a glance to understand about the project easily.
The different team members or key members involved in Waterfall model development process are Technical Manager, Developers, Senior Developers, Business analyst, Technical Lead or System Architect or Solutions Architect or Technical Architect in the Design Phase and the Developers, Senior Developers in the Coding phase. Testers or Analysts in the Testing Phase. Project Manager, Program Manager, and Maintenance Team will be in the Maintenance phase of the Software Development Life Cycle process. The team members involved in the different project phases also depends on the structure of the organization and the roles and responsibilities being followed or maintained by the particular organization.
The CMM (Capability Maturity Model) is a standard or benchmark which is used in the process of the development model in an organization to study or know the maturity of the processes being followed in an organization. The CMMI level is used to determine the quality or maturity of a software development process in an organization i.e. either software or hardware. It will be used to assess the organization on a scale of five different levels and the processes being followed in the organization. The five different levels are Initial, Repeatable, Defined, Capable (Managed) and Efficient (Optimizing).
In this phase, the designed document that is made in the design phase will be converted into an executable programing language. As output, source code is considered and this source code will work as input in the next phase i.e. testing.
In this phase, the previously made SRS is used to change into a logical structure that needs to be implemented following a particular programming language. Designing a system helps to specify hardware and system requirements in terms of system architecture. As the output of this phase, a design document will come out in order to act as input for further process.
The feasibility study is involved in assessing how practical and beneficial software development will be for a company. A software analyst performs a complete analysis to understand the economic, technical, and operational feasibility of a project.
The different phases of SDLC are:
1. Requirement analysis and planning
6. Deployment and maintenance
SRS stands for Software Requirement Specification. It is a document produced at the time of the planning stage. It is also considered as a step of selecting desired requirements and documenting them. SRS acts as an agreement between the development team and clients.
In this stage, developers concentrate on the basic requirements of software development and build a plan according to the user’s requirement to achieve the desired goals. The possible risks such as unexpected outcomes, cost-benefit analysis, scheduling of the project are also discussed in this initial stage.
The first step of the SDLC is requirement analysis of the software. Based on customer requirements and sales data, the developers chalk out the basic approach needed for the software project. A technical, economic, social and operational feasibility study is carried out in this phase. The possible risks associated with the software project are also identified here.
The various advantaged of the agile model in an SDLC are as follows;
* It is fairly simple and requires less effort to learn, use and execute.
* It has speedy deliverables which are scheduled by looking on to sprints which ensure best quality deliverables
* It works best in both cases, be it smaller or larger, easy or complex projects ending up in the efficient project deliveries.
Waterfall model follows a very systematic approach. It does not direct elsewhere, following in a particular sequence. It only begins with the next stage once the former stage has been completed. This method follows a very clear path from the beginning to end. Each step is effectively planned. There are various steps involved in this model making it even more efficient.
The design phase aids us to specify requirements concerning with software and hardware. It also provides with the facility of describing the complete structure or architecture of the given project.
When a model goes through various rectifications for the search of errors existing in the software. There are many techniques now for this particular phase and can be customized as per one's needs.
. A computer program is piece of programming code which performs a well defined task where
as software includes programming code, its documentation and user guide.
Some of the major benefits of using the V-model
* It provides us with the early growth of test plans, making it more successful.
* It works fairly well even with low scale projects with fewer requirements.
* It is very straightforward and requires comparatively fewer efforts.
In the coding phase, the design document is converted into an executable programming language. The output of the coding stage is the source code which can act as input for testing and maintenance phase.
The requirements is specified in the form of a document. It is then converted into a logical structure which needs to be implemented in a specific programming language. The design phase is also helpful for specifying hardware & system requirements. It also allows defining complete system architecture. The output is designed to document that acts as an input for all the subsequent SDLC phases.
The five-main phase of waterfall model are:
* Requirements gathering
* Implementation & Maintenance
* Waterfall model
* Rapid Application Development(RAD) model
* Agile model
* Iterative model
* Spiral model
SDLC is an abbreviation of Software Development Life Cycle. SDLC is series of steps that offers a defined model for the development and lifecycle management of an application.