SDLC (Software Development Life Cycle) Phases, Process, Models – Complete guide

Introduction

Software Development Life Cycle (SDLC) may be a method employed by the software industry to style, develop and check high-quality software. The SDLC aims to supply high-quality software that meets or exceeds client expectations, reaches completion among times and price estimates.

SDLC is that the acronym of Software Development Life Cycle.

It is conjointly referred to as the software development method.

SDLC may be a framework process task performed at every step within the software development method.

ISO/IEC 12207 is a world quality software life-cycle process. It aims to be the quality that defines all the tasks needed for developing and maintaining software.

What is Software Development Lifecycle (SDLC)?

The software Development Life Cycle (SDLC) could be a structured method that permits the assembly of high-quality, low-priced software, within the shortest attainable production time. The goal of the SDLC is to provide superior software that meets and exceeds all client expectations and demands.

SDLC may be a method followed for a software project, inside a software organization. It consists of an in-depth setup describing the way to develop, maintain, replace and alter or enhance specific software. The life cycle defines a strategy for improving the standard of software and also the overall development method.

Why SDLC is important for developing a software system?

SDLC permits developers to research the necessities. It helps in reducing unnecessary prices throughout development. It allows developers to style and builds high-quality software products. This can be as a result of them following a scientific method that permits them to check the software before it’s extended.

  • Forms the foundation for project planning and scheduling
  • Helps estimate cost and time
  • Includes the project activities and deliverables of each phase
  • Boosts the transparency of the entire project and the development process
  • Enhance the speed and accuracy of development
  • Minimizes the risk potential and maintenance during any given project
  • Its defined standard improves client relations

What are the Benefits of the Software Development Lifecycle?

  • It makes it clear what the problem or goal is. It is easy to get ahead of yourself when taking on a large project. With the SDLC you can clearly see the goals and the problems so that the plan is implemented with precision and relevance.
  • The project is designed with clarity. Project members cannot move from one stage to another until the prior stage is completed and signed off on by the project manager. A formal review is created at the end of each stage, which allows the project manager to have maximum management control.
  • It will be properly tested before being installed. The installation in a project that is executed using an SDLC has the necessary checks and balances so that it will be tested with precision before entering the installation stage.
  • If a key project member leaves, a new member can pick up where they left off. The SDLC gives you a well-structured and well-documented paper trail of the entire project that is complete with records of everything that occurs.
  • Without the SDLC, the loss of a project member will set you back and probably ruin the project. If paperwork is missing or incomplete, the new project member can have to be compelled to begin from the start and even probably amendment the project to create sense of it. With a well-designed SDLC, everything is so as in order that a replacement project member will continue the method while not complications.
  • The project manager will properly manage a project if deliverables are completed on time and among the budget. sticking to a budget is simpler with a well-organized arrange during which you’ll see all the timetables and prices. Project members will submit their work to an integrated system that flags something that’s past due. Once the project manager will pay less time micromanaging, he or she will be able to pay longer improving potency and production.
  • The project can continuously loop around until it is perfect. The stages are meant to feed back into the earlier stages, so the SDLC model provides the project with flexibility.
  • When designing and implementing a project, a software development life cycle is the solution. It’s the best way to ensure optimal control, minimize problems, and allow the project manager to run production without having to micromanage the project members.

Stages of the SDLC:

Every software development company goes through an array of stages as they embark on a systematic process of development. From planning to design and development, here is a brief glance at the six essential stages of SDLC required to create flawless software:

Planning

Without a clear, visionary plan in place, it is difficult to align everything with your project goals and judge all its strengths, scope, and challenges involved.

The planning is to ensure the development goes easy and smooth, meets its purpose, and achieves its desired progress within the given time limit.

Analysis

Analyzing the requirements and performance of the software through its multiple stages is key to deriving process efficiency.

Analysis always helps be in the know of where you exactly stand in the process and where you need to be and what it takes to pass through the next step down the path.

Design

After the analytical part is complete, the design is the next step that needs to look forward to. The basic aim in this phase is to create a strong, viable architecture of the software process.

As it works by standard adherence, it helps eliminate any flaws or errors that may possibly hinder the operation.

Development

Once the design is ready, the development takes over along with efficient data management and recording. This is a complicated phase where clarity and focus are of great significance.

Post-development, implementation comes into the picture to check whether or not the product functions as expected.

Testing

The testing phase that comes now is inevitable as it studies and examines the software for any errors and bugs that may cause trouble.

Maintenance

If the software has performed well through all the previous five steps, it comes to this final stage called maintenance. The product here is properly maintained and upgraded as and when needed to make it more adaptive to the target market.

How many SDLC models are there?

Today, there are more than 50 recognized SDLC models in use. None of them is perfect, and each brings its favorable aspects and disadvantages for a specific software development project or a team.

Waterfall

Through all development stages (analysis, design, coding, testing, deployment), the method moves in a very cascade model. Every stage has concrete deliverables and is strictly documented. The consecutive stage cannot begin before the previous one is totally completed. Thus, as an example, software needs cannot be re-evaluated any in development. There’s additionally no ability to check and take a look at the software until the last development stage is finished, which ends up in high project risks and unpredictable project results. Testing is usually rushed, and errors are expensive to repair.

SDLC Waterfall model is used when:

  • Requirements are stable and not changed frequently.
  • An application is small.
  • There is no requirement which is not understood or not very clear.
  • The environment is stable
  • The tools and techniques used is stable and is not dynamic
  • Resources are well trained and are available.

V-model (Validation and Verification model)

The V-model is another linear model with every stage having a corresponding testing activity. Such workflow organization implies exceptional internal control, however, at constant time, it makes the V-model one among the foremost costly and long models. Moreover, although mistakes in needs specifications, code, and design errors will be detected early, changes throughout development are still costly and tough to implement. As within the waterfall case, all needs are gathered at the beginning and can’t be modified.

V model is applicable when:

  • The requirement is well defined and not ambiguous
  • Acceptance criteria are well defined.
  • Project is short to medium in size.
  • Technology and tools used are not dynamic.

Incremental and Iterative model

Incremental: An incremental approach breaks the software development process down into small, manageable portions known as increments.

 Iterative: An iterative model means software development activities are systematically repeated in cycles known as iterations.

Use cases: Large, mission-critical enterprise applications that preferably consist of loosely coupled parts, such as microservices or web services.

Spiral model

The Spiral model puts concentrates on thorough risk assessment. Thus, to reap the advantages of the model to the fullest, you’ll have to be compelled to have interaction with people with a powerful background in risk evaluation. A typical Spiral iteration lasts around six months and starts with four important activities – thorough designing, risk analysis, prototypes creation, and evaluation of the antecedently delivered part. Continual spiral cycles seriously extend project timeframes.

Uses of the spiral model:

  • projects in which frequent releases are necessary;
  • projects in which changes may be required at any time;
  • long term projects that are not feasible due to altered economic priorities;
  • medium to high risk projects;
  • projects in which cost and risk analysis is important;
  • projects that would benefit from the creation of a prototype; and
  • projects with unclear or complex requirements.

The Rational Unified Process (RUP)

The Rational Unified Process (RUP) is also a mixture of linear and reiterative frameworks. The model divides the software development process into four phases – inception, elaboration, construction, and transition. Every phase however inception is typically done in many iterations. All basic activities (requirements, design, etc) of the development process are done in parallel across these four RUP phases, although with completely different intensities.

RUP helps to make stable and, at a similar time, versatile solutions, but still, this model isn’t as fast and adaptable because of the pure Agile cluster (Scrum, Kanban, XP, etc.). The degree of client involvement, documentation intensity, and iteration length could vary betting on the project wants.

Use cases: Large and high-risk projects, especially, use-case-based development and fast development of high-quality software.

Scrum

Scrum is probably the most popular Agile model. The iterations (‘sprints’) are usually 2-4 weeks long and they are preceded with thorough planning and previous sprint assessment. No changes are allowed after the sprint activities have been defined.

Extreme Programming (XP)

With Extreme Programming (XP), a typical iteration lasts 1-2 weeks. The model permits changes to be introduced even once the iteration’s launch if the team hasn’t begun to work with the relevant software piece yet. Such flexibility considerably complicates the delivery of quality software. To mitigate the matter, XP needs the utilization of try programming, test-driven development and test automation, continuous integration (CI), little releases, easy software style and prescribes to follow the coding standards.

Kanban

As for Kanban, its key distinguishing feature is that the absence of pronounced iterations. If used, they’re unbroken very short (‘daily sprints’). Instead, the emphasis is placed on arranged visualization. The team uses the Kanban Board tool that has a transparent illustration of all project activities, their variety, responsible persons, and progress. Such increased transparency helps to estimate the foremost urgent tasks a lot accurately. Also, the model has no separate strategy planning stage, thus a new modification request will be introduced at any time. Communication with the client is in progress, they’ll check the work results whenever they like, and therefore the meetings with the project team will happen even daily because of its nature, the model is usually employed in projects on software support and evolution.

What are the different phases of the SDLC life cycle?

I have explained all these Software Development Life Cycle Phases

  1. Requirement collection and analysis

The requirement is the first stage in the SDLC process. It is conducted by the senior team members with inputs from all the stakeholders and domain experts in the industry. Planning for the quality assurance requirements and recognization of the risks involved is also done at this stage.

2. Feasibility study

Once the requirement analysis phase is completed the next SDLC step is to define and document software needs. This process was conducted with the help of the ‘Software Requirement Specification’ document also known as the ‘SRS’ document. It includes everything which should be designed and developed during the project life cycle.

3. Design

In this third phase, the system and software design documents are prepared as per the requirement specification document. This helps define the overall system architecture.

This design phase serves as input for the next phase of the model.

There are two kinds of design documents developed in this phase:

High-Level Design (HLD)

  • Brief description and name of each module
  • An outline about the functionality of every module
  • Interface relationship and dependencies between modules
  • Database tables identified along with their key elements
  • Complete architecture diagrams along with technology details

Low-Level Design(LLD)

  • Functional logic of the modules
  • Database tables, which include type and size
  • Complete detail of the interface
  • Addresses all types of dependency issues
  • Listing of error messages
  • Complete input and outputs for every module

4. Coding

Once the system design phase is over, the next phase is coding. In this phase, developers start to build the entire system by writing code using the chosen programming language. In the coding phase, tasks are divided into units or modules and assigned to the various developers. It is the longest phase of the Software Development Life Cycle process.

In this phase, the developer needs to follow certain predefined coding guidelines. They also need to use programming tools like compilers, interpreters, debuggers to generate and implement the code.

5. Testing

Once the software is complete, and it is deployed in the testing environment. The testing team starts testing the functionality of the entire system. This is done to verify that the entire application works according to the customer’s requirements.

During this phase, QA and testing team may find some bugs/defects which they communicate to developers. The development team fixes the bug and sends it back to QA for a re-test. This process continues until the software is bug-free, stable, and working according to the business needs of that system.

6.Installation/Deployment

Once the software testing phase is over and no bugs or errors are left in the system then the final deployment process starts. Based on the feedback given by the project manager, the final software is released and checked for deployment issues if any.

7. Maintenance

Once the system is deployed, and customers start using the developed system, the following 3 activities occur

Bug fixing – bugs are reported because of some scenarios which are not tested at all

Upgrade – Upgrading the application to the newer versions of the Software.

Enhancement – Adding some new features into the existing software.

Which SDLC Model is Best?

Agile is that the best SDLC methodology and conjointly one in every of the foremost used SDLC within the tech trade as per the annual State of Agile report. At RnF Technologies, Agile is that the most loved software development life cycle model. Here’s why. Agile is very adaptive that making it totally different from all alternative SDLC.

Conclusion
The software development life cycle is a resourceful tool for developing high-quality software products. This tool provides a framework for guiding developers in the process of software development. Organizations can use various SDLC strategies such as waterfall, V-model, iterative, spiral, and agile models.
You should consider consulting with a resourceful IT company before embracing an SDLC approach for your team from the list above.
DevOpsSchool has enough expertise to help you know how different models come in handy in certain business scenarios and industry environments. From our experience, we will guide you to the best fit for your software product.

Tagged : / / / / / / /

Define PHP and How to work?

Type of website:-

A static page is called that in which the information that is there is in the name of every user. You cannot change anything in a static page. It is only used to see information.

Dynamic website:-

Dynamic website is user-friendly, user can interact with it. The page in which the user can interact is called a dynamic website. Like submitting a form by filling in a web page. In this, each user gives different information, the user who enters the information gets the same result.

How PHP works?

There is a client who sends a request or works to visit a website.

web server

The webserver provides us this facility which will be there for 24 hours. So that your client will be able to send that request by any time difference and its corresponding web server will be able to respond to it. A server will run in the webserver which you call Apache server.

This is the web server, this is your small storage in which you have a database created. In which your own server is running which supports PHP. As a programmer, whatever site he has developed is the content of the whole site or is it accessories, They give way by storing them in their web server. You will also create a database so that the user can access it anytime.

client > apache> PHP> database> PHP> Apache> client

Development environment

Operating system – Windows, Linux, Mac, etc.

Web server – XAMP, WAMP, MAMP etc.

Editor/IDE- Notepad, Notepad++, notepad, brackets, eclipse etc.

Web browser – chrome, Firefox etc.

MySQL

MySQL ek database management system hai, is a kind of software in which you write MySQL. MySQL is a software and SQL is a language.

When you install XAMPP, you get:
Apache + MariaDB + PHP + Perl

Apache + MySQL + PHP + Perl

The basic structure of PHP

<?php   opening markup/ Opening tag

php codes;

?> closing markup/ closing tag

Whatever is written between these two is called php code.

We can write Php with HTML

<!DOCTYPE html>
<html>
	<body>
		<h1><body>DevOpsSchool</h1>
	<?php
		echo'hello devopsschool';
	?>
	
	</body>
</html>

How to run on the local server

If you have to run the PHP file in the local server, then first you have to open the XAMMP control panel, then you have to open apache and MySQL in it, this is the first thing. After that you have to go to this puck, then where you have saved the XAMMP file, you have to open the sump file, after that you have to open the htdos. After that you have to go to this PC, then open the file where you have saved XAMPP. After that htdcos has to be opened. Your project will have to create a file, all your files will be made from PHP, HTML, ccs, javascript, audio, images, videos, etc. Then go to your browser and open localhost, then type the name of your project in it and open it. After that, your PHP file will start running.

Tagged : / / / /

Software Development with Team Foundation Server 2015

Introduction
  • Understanding the Feature Path from TFS 2013
  • Introduction
  • Overview
  • TFS 2013 Update Timeline
  • Agile Tools
  • Demo: Agile Tools
  • Git
  • Demo: Git Improvements
  • Demo: Git CodeLens
  • Demo: Pull Requests
  • Testing
  • Demo: Testing Features
  • Summary
Installing and Configuring TFS 2015
  • Introduction
  • Install Options
  • TFS Pre-upgrade Tool
  • Demo: Pre-upgrade Process
  • Upgrading to TFS 2015
  • Demo: Upgrade from TFS 2013 to TFS 2015 Update2
  • Demo: Verify the Upgrade
  • Demo: Project Rename
  • Summary
Working with New Kanban Board Features
  • Introduction
  • Portfolio Management
  • Demo: Epics
  • Demo: Features
  • Product Backlog
  • Demo: Product Backlog
  • Kanban
  • Demo: Kanban Board Intro
  • Demo: Kanban Columns
  • Demo: Kanban Swimlanes
  • Demo: Kanban – Working with Tasks
  • Customizations
  • Demo: Customizing the Cumulative Flow Diagram
  • Demo: Customizing Working Days
  • Demo: Customizing Bugs on the Backlog
  • Productivity
  • Demo: Creating Work Item Templates
  • Demo: Quick Search
  • Sprint Planning
  • Demo: Capacity Planning
  • Demo: Sprint Planning
  • Demo: Sprint Progress
  • Tracking Work
  • Demo: Charts and Alerts
  • Dashboards
  • Demo: Working with Dashboards
  • Summary
Working with New Version Control Features
  • Introduction
  • Version Control Enhancements
  • Demo: Git Branching Enhancements
  • Demo: Working with Git Branches
  • Git Rebase
  • Demo: Git Rebase
  • Git Branch Policies
  • Demo: Configure Branch Policies
  • Demo: Create a Pull Request
  • Demo: Resolve Branch Policy Issues
  • Quick Code Edit
  • Demo: Quick Code Edit
  • Summary
Building Software
  • Introduction
  • Build Agent
  • Demo: Configure a Build Agent
  • Demo: Build Capabilities
  • Build Definition
  • Demo: Create a Build Definition
  • Running a Build
  • Demo: Running a Build
  • Build Customization
  • Demo: Customize a Build and View Test Results
  • Demo: Customize with Build Steps
  • Demo: Multiple Configurations and Parallel Builds
  • Demo: Build Triggers – Continuous Integration and Pull Requests
  • Demo: Capabilities and Demands
  • Demo: Build Definition History
  • Demo: Build Definition Templates
  • Summary
Testing Software
  • Introduction
  • Test Hub1
  • Demo: Create a Test Plan
  • Demo: Create Test Suites
  • Demo: Create Test Cases
  • Demo: Create Test Cases from the Grid View
  • Demo: Shared Steps
  • Demo: Test Parameters
  • Demo: Shared Parameters
  • Demo: Running Tests
  • Demo: Test Run Analysis
  • Demo: Export Test Plans
  • Exploratory Testing Extension
  • Demo: Install Exploratory Testing Extension
  • Demo: Exploratory Testing
  • Demo: Exploratory Testing Results
  • Kanban Integration
  • Demo: Creating Test Cases from the Kanban Board
  • Summary
Integrating with TFS 2015
  • Introduction
  • Marketplace
  • Demo: Installing Marketplace Extensions
  • Demo: Working with Extensions
  • Demo: Manage Extensions
  • Creating Extensions
  • Demo: Create an Extension
  • Demo: Packaging Extensions
  • Demo: Install an Extension
  • TFS 2015 API
  • Demo: TFS 2015 API
  • Service Hooks
  • Demo: Service Hooks
  • Summary
Tagged : / / / / / / / / / / /

The symptoms of our software development malaise

software-development-malaise

Software development has traditionally suffered from producing end products with a definite lack of inherent quality. The symptoms of this quality lack are listed here:

  • Software development projects are often delivered late and over budget.
  • Often the delivered product does not meet customer requirements and is never used.
  • Software products simply do not work right.

As we look into the symptoms of our software development malaise, five principal issues related to software development arise.

Lack of Visibility
Software is conceptual in nature. Unlike a bridge, a building, or another physical structure, it is not easy to look at software and assess how close it is to completion. Without strong project management, “software is 90% complete 90% of the time.” Through the adoption of SCM policy and the definition of the configuration management model of the software under development, all CIs, components, and subcomponents are immediately visible for versions, releases, and product families.


Lack of Control
Because software is inherently intangible, it is also more difficult to control. Without an accurate assessment of progress, schedules slip and budgets are overrun. It is hard to assess what has been accomplished and what remains to be done. SCM provides the mechanism for controlling the project through measuring the amount of effort compared to the project management plan and estimating the future effort based on past work.

Lack of Traceability
A lack of linkage between project events contributes to project failures. The main benefit of SCM is providing the traceability among versions, releases, and product families. The value of this traceability is enormous when a problem arises in one release or product family that impacts other client releases and products. Making one change and promoting that through the entire product software base is an incredible cost savings in time, money, and client good will. A lack of linkage between project events contributes to project failures where solving one problem either exacerbates a problem in another area or fails to fix the same problem elsewhere. A traceability thread allows management to examine the chain of events that caused a project to encounter difficulty as an integral process within the auditing capability of SCM. A project becomes a year late one day at a time unless the effort reported on the schedule maps to the actual work being done and traced within the software configuration management system.

Lack of Monitoring
Without traceability and visibility, monitoring of software development projects becomes extremely difficult. Management cannot make informed decisions, and thus schedules slip further and costs continue to exceed budget.
There is no way to monitor a project when the project manager has no tools to look into the actual product development within the project. SCM provides the tools that open up the process to external monitoring. With SCM in place and a policy of traceability and visibility accepted, monitoring of software development projects becomes a simple part of the overall project management task. Management makes informed decisions avoiding schedule slips and budget excesses through the monitoring available with SCM tools and the integral workings of the CCB.

Uncontrolled Change
Software is very malleable; it is idea-stuff, and customers constantly have new ideas for it. People would rarely ask a bridge constructor to make the kinds of changes midproject that software customers tend to request. The impact of such changes can be just as great. All SCM tools, along with the CCB, support a mechanism for appropriate change control.

SCM Interacts with Verification and Validation
SCM is most important, and most often neglected, during V&V activities, which include software testing. It is employed in tracking which module versions are included in a particular system build, as well as which tests have been run. The results of the tests are tied directly to the modules or subcomponents being tested. Many times there are “action items” resulting from the tests. SCM tracks the action item status, so overall system status can be assessed well before final builds and releases are done.
Verification and validation testing are supported through the four basic SCM processes: identification, control, auditing, and status accounting. Let’s look at examples of V&V testing in the context of each of these components.

SCM Identification Benefits to V&V

  • Automatic preparation of release notes
  • List of changed software modules
  • Definition of development baseline
  • Generation of incident reports
  • Definition of operational baseline
  • Control of the configuration item identification
  • Management of CCB meetings
  • Prioritization of test and incident issues
  • Establishment of turnover dates
  • Approval of audit and test reports
  • Approval of incident report resolutions

SCM Auditing Benefits to V&V

  • Comparison of new baseline to previous baseline
  • Assurance that standards have been met
  • Audit trail of the testing process (verification, validation, and acceptance) of the software system
  • Documentation of experience with technical aspects of system engineering or software engineering

SCM Status Accounting Benefits to V&V

  • Logging and tracking of incident reports
  • Publication of CCB minutes

With all of these potential benefits of SCM, project managers must address real-world considerations. Management commitment is the real key to implementing SCM on a specific project in a given organization. By treating the implementation of SCM as a project, the project plan must start at the top to secure commitment to checks and balances. Now is the time to bring out the organization’s list of project disasters to draw on management experience with their previous software project difficulties. If there are no historic disasters in the organization, or if it is inappropriate to discuss them, refer to literature articles that provide accounts of project disasters (refer to the Web resources at the end of this chapter). Finally, after putting a notional return-on-investment financial argument in place, explain the intangible benefits of SCM.
One of the major sources intangible benefits is auditing. Auditing can be a heavy consumer of configuration management resources, and management may question the benefit of this kind of expenditure. Auditing pays for itself through the avoidance of larger, unnecessary expenses. Savings of 100:1 (large projects) or 4–6:1 (small projects) are obtained by finding and fixing problems early in the life cycle. The auditing process in SCM uncovers the areas where a little more effort or control will result in higher-quality software products and lower overall project costs.
There can be audit compromises to reduce costs. As a project manager, plan audits based on both the phases of the life cycle and the frequency of builds, versions, releases, and product families. Auditing each baseline in a project while reducing the depth of each audit maintains some traceability with loss of visibility.
Eliminating one or more audits (installation baseline, for example) maintains visibility but slightly impacts traceability.

Tagged : / / / / / / / / / / / / / / / /