What is Software Development Life Cycle?



"Acquiring wisdom is great but it is not the goal, applying it is."

Hello Friend, In this post we will be discussing about the Software, Software Development Life Cycle and each phases associated to it. In the last post, we have discussed about SoftwareTesting.

Lets start off Jouney in Software Testing  hence including basic terms used and their meaning so that a Beginner(like me few years back) can get along.

Table of contents

What is Software?

Software is collection of computer programs, data or instructions that accomplish a defined tasks.

It contains procedures and routines linked with Operation of Computer System.

What is Hardware?

On the hand, Hardware -a physical system component which are connected to perform a task. For eg: Monitor for display, Router for Internet connectivity.

We can say Hardware is Physical entity or computer parts which we can see and connect to make computer system perform as desired. And Software is Logical entity which can be installed or configured after we have all Hardware in Place.

Types of Software:

1.    1.System Related Software: Software which are used to run the computer on basic level like Operating system. Without OS a user cannot work and load any files in the computer. Many other System Related Software are required and considered to be the Pre-requiste for a working machine like Device drivers, File System.

2.    2.Programming Software: Software which are required for running and building a application. When we code a program on our local machine to execute we need respective Compiler. Examples of programming software are: Interpreter, compiler.

3.    3.Application Software: Software made to run any Web Application like browser, Net-banking and Mobile app like Swiggy ola, Desktop application like – SQL, Notepad

 Software Development Life Cycle (SDLC)

ISO/IEC 12207 is an international standard for software life-cycle processes. It is the standard that defines all the tasks required for developing and maintaining software.

A set of phases used to Plan, Create,Develop, Test,Integrate and Deploy an information system.

It can be also called as Application Development Life Cycle.

It mainly aim to deliver high quality with meeting customer expectation based on customer requirement.

Each phase of the SDLC has specific activities and method followed and recorded.

 


Why SDLC?

We should be a standard which help to do development in disciplined manner.

This enables every phase of the SDLC clear understanding about what are activities ongoing and responsibilities of the team member to finish

This also help in better understand what the ETA to finish a task assigned.It help to decide entry and exit criteria for each phases.

Stages of SDLC

1.Requirement Analysis and Planning

Requirements or Product related customer expectation is recorded in this Phase. Generally in this phase all the team member but most importantly the senior technical team and project management member discuss with Client to understand the requirement and what are the expectation in terms of what function it should, what are the user it targets to , what is the environment it should work and what is the technical technologies they expect the product/service to be developed.

Once the Requirement is recorded or understood then analysis is done to understand the feasibility to develop the product.Then round of discussion is done to finalise what is achievable and discussed with the customer. Finally with agreement from both parties project development team and Client Software Requirement Specification document is created with is base reference to all project development, Testing team and also for Customer. Based on this document, design and development activities are carried forward. 



2.Design Phase

After lots of discussion and clarification finally we have a approved set of requirements from Software Requirement Specification ðŸ˜Š So what we waiting for....

We now know how to kick start with. So comes the design which decides what archeitecture to be used and how functionality to be development accordingly to archeitecture. In this phase project archeiture and UI designs are planned.

 We have two types of artifacts made:

1.High -Level-Design-Generally archeitect develop this document.All the flow related, what are the backend, to middle ware communication, API used are discussed in this document.

2.Low-level-Design-Senior developers or team member take care of this document. Here we discuss internal flow for each features

3.Development/Implementation

1.In this phase based on Design documents development start coding and building the product.

2.All the requirement are broken down into small features which can be achievable.

3.Based of the Software model company decided the releases are discussed and implemented.

4.Based on the agreement, many a times a POC is shared for some important features with client to understand their review.

4.Testing

All the developed features in thisphase is tested.

Testcases are executed in this phase.

Any issues or bugs observed is raised as an issue in bug logging tool like JIRA, BugZilla.

Testing is carried out either manually or using automated tools to make sure all the features are tested thoroughly and no hidden bugs.

Stability and confidence on the release build is calculated by test leads and test management team.

Test artifacts like Test execution report, Bug list, Tracibility matrix are maintained for each and every test cycle.

When QA confirm the stability and product is Bug free or very minimal bug product then release to client is decided.

5.Deployment and Maintenance Phase.

After Testing and making sure no Major blocker or Bugs with High priority,Release of the build to the customer.Deployment is done by QA in the internal environment with real services and tested in developed environment by Client or Deployment engineer.

Once the test is successful then the deployed build is testing in client environment by few selected users(Beta users). Customer confirms the launch of the product in the market and if any change request will be taken care in the maintenance phase.

Change request is small requirement changes which customer received from end-user.Based on the change request customer comes back with changes to be incorporated in existing product. Development and Regression testing is done to make sure the small change did not impact any existing functionality of the product.Here SLA(Service level Agreement) is maintained to ensure clarity on the support to be given by developer and QA to make the changes in existing product.

Conclusion

So guys I hope this article would have given an idea how a Software/Product development happens in phases and each phases has its activities’ the next article I will be discussing about the what are software Development Models so please stay Tuned, Happy Learning and Testing ðŸ˜Š


Comments

  1. What is Software Development Life Cycle?

    Very informative post... software development life cycle... Good post for software developers & learners..

    Well, we are here to share our services -

    Software Testing Services Company

    QA Software Testing Services

    ReplyDelete
  2. Informative article on SDLC. Thank you for sharing this.
    Software QA Jobs

    ReplyDelete

Post a Comment