Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
21 views6 pages

Software Development

The document outlines the Software Development Life Cycle (SDLC), detailing its structured phases including Requirement Analysis, Design, Implementation, Testing, Deployment, and Maintenance. It discusses various SDLC models such as Waterfall and Agile, highlighting their processes, advantages, and disadvantages. The Agile model, particularly the Scrum methodology, is emphasized for its flexibility and emphasis on team collaboration and rapid delivery.

Uploaded by

Aslam Ansari
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views6 pages

Software Development

The document outlines the Software Development Life Cycle (SDLC), detailing its structured phases including Requirement Analysis, Design, Implementation, Testing, Deployment, and Maintenance. It discusses various SDLC models such as Waterfall and Agile, highlighting their processes, advantages, and disadvantages. The Agile model, particularly the Scrum methodology, is emphasized for its flexibility and emphasis on team collaboration and rapid delivery.

Uploaded by

Aslam Ansari
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

VIII.

Software Development
Before we go in understand Continuous Integration and the tools required to do Continuous
Integration, lets understand how the Software Development happens. Software development is a
structured and well-defined process, which everyone in the development team follows. It has
several phases like Requirement Analysis. Architecture, Implementation, testing etc.

1. Software Development Process


A software development process or life cycle is a structured way of developing a software. Software
Development Life Cycle (SDLC) include well organized steps to deliver a high quality, well tested
product with a dedicated time period.
Nowadays, nearly all organizations are following SDLC for detail planning, maintenance, testing
and delivery of product.

We have numerous types of SDLC models like Waterfall, Agile, Spiral etc.
All these SDLC must follow below mentioned steps to develop software.

• Requirement Gathering & Analysis.


• Designing, software, system & its components.
• Implementation/Development/coding
• Testing
• Deployment
• Maintenance

Visualpath Training & Consulting.


Flat no: 205, Nilgiri Block,Aditya Enclave, Ameerpet, Hyderabad, Phone No: - +91-970 445 5959, 961 824 5689 E-
Mail ID : [email protected], Website : www.visualpath.in.
Requirement Gathering & Analysis
Software Development Life Cycle begins with Requirement Gathering Analysis phase, where the
senior level management (Architect, Developer, DevOps) discuss What are the requirements for the
software product? and How to should be the work flow? that to be adapted to achieve a goal.
The software requirements are description of features and functionalities of the target system.
Requirements convey the expectations of users from the software product. The requirements can be
obvious or hidden, known or unknown, expected or unexpected from client’s point of view.
The process to gather the software requirements from client, analyse and document them is known
as requirement engineering. The goal of requirement engineering is to develop and maintain a
descriptive ‘System Requirements Specification’ document.

Designing
In the design phase, the developers and technical architects start the high-level design of the
software and system to be able to deliver each requirement. Software architects will use all the
information gathered in Requirement phase. They identify what you need in the software/system?
how you will use it? who will use it? etc.
The technical details of the design are discussed with the stakeholders and various parameters such
as risks, technologies to be used, capability of the team, project constraints, time and budget are
reviewed and then the best design approach is selected for the product. Software design is a process
to transform user requirements into some suitable form, which helps the programmer in software
coding and implementation.
For assessing user requirements, an SRS (Software Requirement Specification) document is created
whereas for coding and implementation, there is a need of more specific and detailed requirements
in software terms. The output of this process can directly be used into implementation in
programming languages.

This phase yields three results.

➢ Architectural Design -- A diagrammatic structure


➢ High-level Design -- A diagrammatic structure with technologies specification for developers
➢ Detailed Design -- A detailed doc with a each and Every single feature

Implementation/Development & Coding


In this process, a team of developers are assigned by the organization to work on software
development. This is the phase where actual development starts. The work is divided among the
developers called as Task Allocation.
DB admins create the necessary data in the database, Schemas, and Tables etc. front-end developers
create the necessary interfaces and GUI to interact with the back-end services. Backend developer
the code Backend services and building API to integrate with other party vendors .For developing

Visualpath Training & Consulting.


Flat no: 205, Nilgiri Block,Aditya Enclave, Ameerpet, Hyderabad, Phone No: - +91-970 445 5959, 961 824 5689 E-
Mail ID : [email protected], Website : www.visualpath.in.
all these feature they will use high level programming languages such as C, C++, Pascal, Java and
PHP and Different IDE like Eclipse ,Notepad++ and Idea IntelliJ .
Developers also write unit tests for each component to test the new code that they have written,
review each other’s code.

Testing
After the coding/developing the software or part of software it goes to testing phase where Quality
Analysts (Software testers) test the software by forming various test cases. Experienced testers start
to test the system against the requirements. Software testing comprises of Validation and
Verification.
Validation is process of examining whether or not the software satisfies the user requirements. It is
carried out at the end of the SDLC. If the software matches requirements for which it was made, it
is validated.
Verification is the process of confirming if the software is meeting the business requirements, and
is developed adhering to the proper specifications and methodologies.
Testing could be manual or automated, in any case testers prepares the test cases for different
sections and level of the code. This cycle is repeated until all requirements have been tested and all
the defects have been fixed and the software is ready to be delivered.

Deployment & Maintenance


Once the software has been fully tested and no high priority issues encountered in software, Now it
is time to deploy the software to production where customers can use the product. Once a version
of the software is released to production, there is usually a maintenance team that look after any
post-production issues.
Software maintenance is widely accepted part of SDLC now a days. It comprises for all the
modifications and updations done after the delivery of software product. There are number of
reasons, why modifications are required it could be client requirement, market need, organization
changes, bug fixes, software upgrades etc.

2. Software Development Life Cycle (SDLC)


A software development lifecycle is essentially a series of steps, or phases, that provide a model for
the development and lifecycle management of an application or piece of software. Software
Development Life Cycle (SDLC) is a process used by the software industry to design, develop and
test high quality softwares. The SDLC aims to produce a high-quality software that meets or
exceeds customer expectations, reaches completion within times and cost estimates.
There are various SDLC models like Waterfall, Spiral, iterative Agile and few other.

SDLC- Waterfall model


The Waterfall Model was the first Process Model to be introduced. It is also referred to as a linear-
sequential life cycle model. Waterfall Model considered the classic approach to the Software
development life cycle, the waterfall model describes a development method that is linear and
sequential. It is very simple to understand and use. Waterfall development has distinct goals and
target for each phase of development. In a waterfall model, each phase must be completed before
the next phase can begin and there is no overlapping in the phases.
Visualpath Training & Consulting.
Flat no: 205, Nilgiri Block,Aditya Enclave, Ameerpet, Hyderabad, Phone No: - +91-970 445 5959, 961 824 5689 E-
Mail ID : [email protected], Website : www.visualpath.in.
The Waterfall model is the earliest SDLC approach that was used for software development.
The linear sequential flow waterfall model is too much time consuming because each phase should
after completion another phase. In this waterfall model, the phases do not overlap.

Waterfall Model - Disadvantages


The main disadvantage of waterfall model is This type development of is too much time consuming
and clumsy in test phase. Once an application is in the testing stage and we found something is not
according to client requirement or any new requirement .it is very difficult to go back and change
something that was not well-documented or thought upon in the concept stage.
Few major disadvantages of the Waterfall Model are as follows:

• No working software is produced until end of SDLC.


• Highly vulnerable for the projects where requirements are at a risk of changing. So, risk and
uncertainty is high with this process model.
• Clumsy and Time-consuming model for Big/heavy weight Application.
• It is difficult to measure progress within stages.
• Less adaptive model for changing requirements.
• Bigger chances of losing clients and users with until the project developed and release to
production.

Visualpath Training & Consulting.


Flat no: 205, Nilgiri Block,Aditya Enclave, Ameerpet, Hyderabad, Phone No: - +91-970 445 5959, 961 824 5689 E-
Mail ID : [email protected], Website : www.visualpath.in.
Agile SDLC Model
Agile development model is a type of Iterative Incremental model. This Methods break the
product into small incremental releases, each release is built on previous functionality. These builds
are form iterations. Each release is thoroughly tested to ensure software quality is maintained.
Each iteration typically lasts from about one to three weeks. Every iteration involves cross
functional teams working simultaneously on various areas like:
• Planning
• Requirements Analysis
• Design
• Coding
• Unit Testing and
• Acceptance Testing.
At the end of the iteration, a working product is displayed to the customer. Every software product
is actually list of features and if it's a list it can be further divided into small chunks of list. For
example, if there are 100 features in a product it can be divided into 5 parts, 20 features in every
iteration. Developers and testers will work on 20 features at a time and then move to next iteration
once it's developed and tested.
The agile software development emphasizes majorly on following four core values.
➢ Individual and team interactions over processes and tools
➢ Working software over comprehensive documentation
➢ Customer collaboration over contract negotiation
➢ Responding to change over following a plan
Here is a graphical illustration of the Agile Model:
Every Iteration is having time duration of 1-2 months based on features

Visualpath Training & Consulting.


Flat no: 205, Nilgiri Block,Aditya Enclave, Ameerpet, Hyderabad, Phone No: - +91-970 445 5959, 961 824 5689 E-
Mail ID : [email protected], Website : www.visualpath.in.
The Agile thought process had started early in the software development and started becoming popular
with time due to its flexibility and adaptability.
There are various methods present in agile model one of them is scrum technique given below:
Scrum

SCRUM is an agile development method which concentrates specifically on how to manage tasks
within a team-based development environment. Basically, Scrum process is distinguished from
other agile processes by specific concepts and practices, divided into the three categories of Roles,
Artefacts, and Time Boxes.
Scrum is most often used to manage complex software and product development, using iterative
and incremental practices. Scrum significantly increases productivity and reduces time to benefits
relative to classic “waterfall” processes. Scrum believes in empowering the development team and
advocates working in small teams (say- 7 to 9 members). It consists of three roles, and their
responsibilities are explained as follows:

Scrum Master
Master is responsible for setting up the team, sprint meeting and removes obstacles to progress
Product owner
The Product Owner creates product backlog, prioritizes the backlog and is responsible for the
delivery of the functionality at each iteration
Scrum Team
Team manages its own work and organizes the work to complete the sprint or cycle

Advantages of Agile model:


▪ Fast delivery of software (weeks rather than months).
▪ Customer satisfaction by rapid, continuous delivery of useful software.
▪ People and interactions are emphasized rather than process and tools. Customers, developers
and testers constantly interact with each other.
▪ Better relations and product management to the client.
▪ Continuous attention to technical excellence and good design.
▪ Regular adaptation to changing circumstances.
▪ Even late changes in requirements are adapted according to requirement

Visualpath Training & Consulting.


Flat no: 205, Nilgiri Block,Aditya Enclave, Ameerpet, Hyderabad, Phone No: - +91-970 445 5959, 961 824 5689 E-
Mail ID : [email protected], Website : www.visualpath.in.

You might also like