0% found this document useful (0 votes)
21 views

Unit-II - Software Development

The document provides an overview of software development, including methodologies like the Waterfall and Agile models, as well as the Software Development Life Cycle (SDLC) and various types of programming languages. It outlines the steps involved in program development, such as requirements gathering, planning, design, coding, testing, and maintenance. Additionally, it discusses data structures, flowcharts, and algorithms as essential components of software engineering.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views

Unit-II - Software Development

The document provides an overview of software development, including methodologies like the Waterfall and Agile models, as well as the Software Development Life Cycle (SDLC) and various types of programming languages. It outlines the steps involved in program development, such as requirements gathering, planning, design, coding, testing, and maintenance. Additionally, it discusses data structures, flowcharts, and algorithms as essential components of software engineering.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

Software Development

UNIT – II
Software development – waterfall model, Agile, Types of computer languages –
Programming, mark-up, scripting Program Development – steps in program
development, flowcharts, algorithms, data structures – definition, types of data
structures.

INTRODUCTION
The process of software development from the first computer up to today has
completely changed in terms of techniques,processes and technology. Software is used
by people and businesses all over the world for a variety of purposes and benefits.
Today almost everyone uses a computer and software.
Providing a software solution to ever-changing needs and demands is a challenging task
for the organizations that develop software.

What is software development


The set of software engineering activities such as design, development and deployment
is called software development.

WHAT IS SOFTWARE?
Software is a collection of instructions, data or computer programs that are used to run
machines and carry out particular activities. The term software refers to the applications,
scripts and programs that operate the hardware.
There are two broad categories of software: system and application.

System Software
System software directly controls the hardware of the computer and gives users and
other applications the fundamental functions they need to perform properly. It controls
the internal functioning of the hardware such as monitors, printers and storage devices.
It includes an operating system, device drivers, firmware, language translators,
compilers, linkers, loaders and utilities.

Application Software
The most prevalent kind of software is application software, which is a collection of
computer programs that carry out a particular task for the user or another application.
Application software can be generic (word processor, calculator, image editor, etc.) or
specific (payroll, reservation system, etc.).

WHAT IS SOFTWARE ENGINEERING?

The terms software and engineering combine to form the term software engineering.
As discussed in earlier sections, software is a collection of integrated programs.

Engineering is the use of scientific and practical knowledge to create, plan, design, build,
maintain and enhance systems, procedures and other elements.

Software engineering is an engineering branch related to the process of analysing user


needs and then building a software product using well defined scientific principles,
techniques and procedures.
The result of software engineering is an effective and reliable software product.
SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)

SDLC is a systematic process used by a software development organization to build


software that ensures the quality and correctness of the software developed. It
comprises a thorough plan outlining how to create, maintain, replace and modify or
improve a particular software.

Requirements gathering:
In an SDLC, the requirement gathering and analysis stages are the most crucial. Usually,
senior members of the team handle this phase.
This gives a clearer picture of the scope of the entire project/The requirements are
documented in the form of a System Requirements Specification (SRS) document.
This document acts as a bridge between the customer and the product developers.

Planning: The purpose of the planning phase is to come up with the schedule, scope and
resource requirements for the development and release of the product.
This is performed using the SRS document, which contains all the product requirements
that must be created and during the project life cycle.

Design: The purpose of the design phase is to figure out how to satisfy the requirements
enumerated in the SRS document. The design approach clearly defines all the
architectural modules of the product. Design is usually split into two levels:

● High-level design: It describes the overall description/architecture of the


application.
● Low-level design: It provides a detailed description of each module.

Development or coding: The design document created in the design phase acts as a
blueprint for the actual coding to proceed. This development or coding phase comprises
coding the programs in the chosen programming language. It produces software that
meets the requirements.
Testing: When a software product is ready, the testing team starts testing its
functionality as stated in the requirements document. Testing is the process of using the
software product to verify that it works according to the customer's requirements. By
testing the product, an organization identifies and removes as many defects as possible
before shipping it out.

Deployment and maintenance: After a product has undergone testing, users receive it
and use it in their environments. As the users start using the product in their
environments, they may observe discrepancies between the actual behaviour of the
product and what they were given to expect. When consumers start using the software
product in their environments, they could observe differences between the behaviour
of the product and what they had been told in the requirement document. This should
be corrected. After the product is released to the customer, maintenance is carried out
for the existing customer base.

SOFTWARE DEVELOPMENT LIFE CYCLE MODELS


A conceptual framework known as the SDLC model describes all of the project's
activities, from planning of maintenance. There are several models connected to this
process, each with a different set of tasks and activities. These models are also known as
software development process models. Each process model allows a series of phases
unique to its type to ensure success in each step of software development.

 Waterfall Model,
 Rapid application development Model,
 Spiral or iterative Model,
 Incremental Model,
 V Model,
 Agile Model
 Big bang Model
Waterfall Model:

The waterfall is a very simple, easy-to-understand and universally accepted SDLC model.
This was the first SDLC methodology for software development.

Software development in the waterfall model is seen as flowing steadily downwards


(like a waterfall) through the steps of requirements gathering, planning, design,
development or coding, testing, and deployment and maintenance.

Requirements
gathering

Planning

Design

Development or
Coding

Testing and
Deployment

Maintenance

The waterfall approach divides a project into a number of phases.


Each phase is different, meaning that there are distinct boundaries (limits) between
each phase and between their respective functions.
When the first phase of a project is completed, the project goes on to the next step.
When this phase is over, the project moves on to the next one, and so forth. As a result,
the phases are precisely ordered by time.
The project goes through a requirements gathering phase. A System Requirements
Specification (SRS) document is created at the end of requirements gathering.

This becomes the input for the design phase. During the design phase, a detailed design
is produced in the form of a System Design Description (SDD).

The project moves on to the development or coding phase with the SDD as input,
where programmers create the programs required to fulfil the design.

The testing team receives the product from the programmers after they have finished
their coding tasks and tests it before it is released.

This approach may be effective if there are no issues in a particular phase, moving in
one direction (like a waterfall).

Though the waterfall method is easy to understand and enables requirement stability,
the problem with this model is that any phase in the development process begins only if
the previous phase is complete.

In this model, the phases do not overlap. Another flaw in the waterfall approach is the
ineffectiveness of the verification and validation processes due to the delay in feedback
between phases.
Agile model

Agile Methodology: A Flexible Approach to Software Development

Agile methodology is a modern and flexible approach to software development


that emphasizes collaboration, customer feedback, and continuous improvement.

The division of the entire project into smaller parts helps to minimize the
project risk and to reduce the overall project delivery time requirements.

Here are some key principles of Agile methodology:


Customer-Centric: Agile puts the customer at the centre of the development
process. Instead of waiting until the end to deliver a finished product, Agile
involves customers from the beginning, getting their feedback regularly to ensure
the software meets their needs.
Iterative Development: Agile breaks the project into smaller, manageable
parts called "sprints" or "iterations." Each iteration typically lasts 2-4 weeks
and produces a working piece of the software. This allows for early testing
and feedback.

Collaborative Teams: Agile promotes strong teamwork. Developers, testers,


designers, and other stakeholders work closely together to make quick
decisions and adjustments as needed.

Adaptability: Agile is all about adaptability. It acknowledges that


requirements can change, and it's designed to accommodate those changes
without causing major disruptions to the project.

Prioritization: Agile teams focus on delivering the most valuable features


first. This ensures that important functionality is delivered early and can be
refined as needed.

Regular Reflection: At the end of each iteration, the team holds a review
and retrospective to assess what went well, what could be improved, and
how to make the next iteration better.

Working Software: The ultimate goal is to have working, tested software at


the end of each iteration. This means you can potentially release or
demonstrate the software to customers even before the project is complete.
TYPES OF COMPUTER LANGUAGES

Here are the most popular computer programming languages:


 HTML stands for "Hyper Text Mark-up Language" and is utilized for
coding web pages.
 Java.
 C Language.
 Procedural languages.
 Functional languages.
 Machine languages.
 Assembly languages.
 Logic programming languages.

What are the programming languages in modern computer science?


 C Programming Language
 C++ is an object-oriented, intermediate-level coding language.
 C# or C Sharp, is an easy-to-learn object-oriented language, member of
the C family.
 Objective-C.
 Java.
 JavaScript.
 SQL, Swift.
MARKUP

MARKUP language refers to a text-encoding system consisting of a set of


symbols inserted in a text document to control its structure, formatting, or
the relationship between its parts. Markup is often used to control the
display of the document or to enrich its content to facilitate automated
processing.

SCRIPTING

All scripting languages are programming languages. The scripting language is


basically a language where instructions are written for a run time environment.
They do not require the compilation step and are rather interpreted. It brings new
functions to applications and glue complex system together. A scripting
language is a programming language designed for integrating and
communicating with other programming languages.
There are many scripting languages some of them are discussed below:
• bash: It is a scripting language to work in the Linux interface. It is a lot
easier to use bash to create scripts than other programming languages. It
describes the tools to use and code in the command line and create useful
reusable scripts and conserve documentation for other people to work with.
• Node js: It is a framework to write network applications using JavaScript.
Corporate users of Node.js include IBM, Linked In, Microsoft, Netflix, PayPal,
Yahoo for real-time web applications.
• Ruby: There are a lot of reasons to learn Ruby programming language.
Ruby’s flexibility has allowed developers to create innovative software. It is a
scripting language which is great for web development.
• Python: It is easy, free and open source. It supports procedure-oriented
programming and object-oriented programming. Python is an interpreted
language with dynamic semantics and huge lines of code are scripted and is
currently the most hyped language among developers.
• Perl: A scripting language with innovative features to make it different and
popular. Found on all windows and Linux servers. It helps in text
manipulation tasks. High traffic websites that use Perl extensively include
priceline.com, IMDB.
Advantages of scripting languages:
• Easy learning: The user can learn to code in scripting languages quickly,
not much knowledge of web technology is required.
• Fast editing: It is highly efficient with the limited number of data
structures and variables to use.
• Interactivity: It helps in adding visualization interfaces and combinations
in web pages. Modern web pages demand the use of scripting languages. To
create enhanced web pages, fascinated visual description which includes
background and foreground colors and so on.
• Functionality: There are different libraries which are part of different
scripting languages. They help in creating new applications in web browsers
and are different from normal programming languages.

STEPS IN PROGRAM DEVELOPMENT

PROGRAM DEVELOPMENT –

The following are six steps in the Program Development Life Cycle:
• Analyse the problem. The computer user must figure out the problem, then
decide how to resolve the problem - choose a program.

• Design the program.


• Code the program.
• Debug the program.
• Formalize the solution.
• Document and maintain the program.
FLOWCHARTS AND ALGORITHMS
A flowchart is a graphical representation of the steps a program takes to
process data. In this, we can use several geometric patterns to illustrate the
numerous actions the program carries out.

An algorithm is a procedure or set of rules that defines how a program is to be


executed.
DATASTRUCTURES

A data structure is a storage that is used to store and organize data. It is a way of
arranging data on a computer so that it can be accessed and updated efficiently.

TYPES OF DATASTRUCTURES
Rapid Application Development Model
Rapid application development, or RAD, is a model of software development that relies
on prototyping and emphasis is placed on the development tasks. It aims to create
software in a short period.

RAD is one of the most successful software development models available today but
there is no documentation to show what has been carried out in the RAD paradigm and
it is difficult to track progress. It requires highly skilled developers or designers.

Spiral or Iterative Model


The spiral model makes use of both waterfall and prototype models. A prototype is a
basic working model of a product or information system that is typically used in the
creation of software. In the spiral model, the sys tem requirements are designed and a
preliminary system design is created. An initial prototype is designed and tested. Based
on the evaluation of test results, a second prototype is created. Subsequent prototypes
are constructed to ensure customer satisfaction. The final system is evaluated and
tested. It allows for incremental releases of the product or incremental refinement
through each iteration around the spiral (Fig. 5.6).

Difference between waterfall and Agile

Waterfall model Agile methodology

Waterfall is predictive adaptive

If the development plan is 100% correct if you want to do modification at the time
you can use this development of development this model is the best one
methodology to develop the software to develop the software product.
product.

You might also like