0% found this document useful (0 votes)
171 views68 pages

Week 1 PPT

1. The document discusses the evolving role of software and different types of software processes models. 2. It covers traditional waterfall models, agile development, DevOps, cloud computing, artificial intelligence, and the importance of software quality. 3. The document defines system software as intermediate layers between users and hardware, and application software as programs that help users complete tasks.

Uploaded by

Hik Hjkk
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)
171 views68 pages

Week 1 PPT

1. The document discusses the evolving role of software and different types of software processes models. 2. It covers traditional waterfall models, agile development, DevOps, cloud computing, artificial intelligence, and the importance of software quality. 3. The document defines system software as intermediate layers between users and hardware, and application software as programs that help users complete tasks.

Uploaded by

Hik Hjkk
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/ 68

Subject Name: Software Engineering

Unit No:1 Unit Name : Software Process


Models

Faculty Name Mr. Ganesh Ingale


Index

Lecture 1 – Evolving role of software, Type of Software,


SW Components:4 Ps (Process, People, Project, Product), 3

Lecture 2 – SDLC methods/models: Build & Fix, Waterfall, Prototype (Evolutionary &
Throw-away) 14

Lecture 3 – V model, Incremental iterative, Spiral, RAD 25

38

2 Software Process Models


Unit No:1 Unit Name: Introduction to Software Engineering and
Process Models

Lecture No: 1
Evolving role of software,
Type of Software
The Evolving Role of Software

Software plays a critical role in today's technological


landscape, powering various industries and driving innovation.

In this presentation, we will explore the evolving role of


software and how it has transformed over time.

We'll discuss key developments, methodologies, and


technologies that have shaped the software engineering field.

4 Software Process Models


Traditional Software Development (1970s - 1990s)

Traditional software development approaches, such as the


waterfall model, dominated the industry during the 1970s to
1990s.

These methods involved sequential phases like requirements


gathering, design, coding, testing, and deployment.

While effective in certain scenarios, traditional approaches had


limitations such as long development cycles and limited
adaptability.

5 Software Process Models


Agile Software Development (2001 - Present)

Agile software development emerged in 2001 as a response to


the drawbacks of traditional approaches.

Agile embraces flexibility, collaboration, and iterative


development to deliver value to customers faster.

It emphasizes continuous feedback, adaptation, and close


collaboration between developers, testers, and stakeholders.

6 Software Process Models


DevOps and Continuous Integration/Continuous Delivery (CI/CD) (2008
- Present)

DevOps has revolutionized software development by bridging the


gap between development and operations teams.

It emphasizes collaboration, communication, and automation to


achieve faster and more reliable software delivery.

Continuous Integration/Continuous Delivery (CI/CD) practices


ensure frequent and automated software builds, testing, and
deployment.

7 Software Process Models


Cloud Computing and Software as a Service (SaaS) (Late 2000s -
Present)

Cloud computing has transformed the way software is


developed, deployed, and accessed.

It offers scalability, flexibility, and cost-efficiency by leveraging


remote servers and resources.

Software as a Service (SaaS) allows users to access software


applications over the internet, eliminating the need for local
installations.

8 Software Process Models


Artificial Intelligence and Machine Learning (1956 - Present)

Artificial Intelligence (AI) and Machine Learning (ML) have


become integral to modern software engineering.

AI technologies enable software to learn, adapt, and


perform complex tasks traditionally reserved for humans.

Applications of AI and ML include natural language


processing, computer vision, and predictive analytics.

9 Software Process Models


Internet of Things (IoT) and Embedded Software (1999 - Present)

The Internet of Things (IoT) has revolutionized software


development by connecting everyday objects and devices.

Embedded software plays a crucial role in controlling and


managing IoT devices and their interactions.

IoT applications span various domains, including smart


homes, wearable devices, and industrial IoT.

10 Software Process Models


Software Quality and Testing

Ensuring software quality is vital for reliable and user-friendly


applications.

Modern testing approaches focus on automation, continuous


testing, and early bug detection.

Test-driven development (TDD) and behavior-driven


development (BDD) promote a test-first mindset and
collaboration between developers and testers.

11 Software Process Models


1. Introduction

What is Software?
The product that software professionals build and then support over the long
term.

Software encompasses:
1. instructions (computer programs) that when executed provide desired
features, function, and performance;
2. data structures that enable the programs to adequately store and
manipulate information and ?????
3. documentation that describes the operation and use of the
programs.

12 Software Process Models


Software Product

• Stand-alone systems that are marketed and sold to


Generic any customer who wishes to buy them.
• Examples – PC software such as editing, graphics

products programs, project management tools; CAD software;


software for specific markets such as appointments
systems for dentists.

Customized • Software that is commissioned by a specific customer


to meet their own needs.

products • Examples – embedded control systems, air traffic


control software, traffic monitoring systems

13 Software Process Models


Why Software is important?

The economies of ALL developed nations are dependent


on software.

More and more systems are software controlled


(transportation, medical, telecommunications, military,
industrial, entertainment)

Software engineering is concerned with theories,


methods and tools for professional software
development.

14 Software Process Models


Software Cost

Software costs often dominate computer system costs.


The costs of software on a PC are often greater than
the hardware cost.

Software costs more to maintain than it does to


develop. For systems with a long life, maintenance
costs may be several times development costs.

Software engineering is concerned with cost-effective


software development.

15 Software Process Models


Types of Software

Typically, there are two major classifications of


software, namely System Software and
Application Software.

System software

Application Software

16 Software Process Models


System Software

A system software aids the user and the hardware to function and interact with each other. Basically,
it is a software to manage computer hardware behaviour so as to provide basic functionalities that
are required by the user.

In simple words, we can say that system software is an intermediate or a middle layer between the
user and the hardware.

These computer software sanction a platform or environment for the other software to work in.

When you first turn on the computer, it is the system software that gets initialized and gets loaded in
the memory of the system. The system software runs in the background and is not used by the end-
users. This is the reason why system software is also known as ‘low-level software’.

17 Software Process Models


Some common system software examples are:

Operating System

Device Drivers:

Programming Language Translators

Utility

18 Software Process Models


Application Software

Application Software, also known as end-user programs or productivity programs


are software that helps the user in completing tasks such as doing online research,
jotting down notes, setting an alarm, designing graphics, keeping an account log,
doing calculations or even playing games.

They lie above the system software. Unlike system software, they are used by the
end-user and are specific in their functionality or tasks and do the job that they are
designed to do.

For example, a browser is an application designed specifically for browsing the


internet or MS PowerPoint is an application used specifically for making
presentations.

19 Software Process Models


Application Software

Word Processors

Database Software:

Multimedia Software:

Education and Reference Software

Graphics Software

Web Browsers

20 Software Process Models


Software Applications

Embedded software:
resides within a
product or system.
System software: (key pad control of a
such as compilers, microwave oven,
editors, file digital function of
management dashboard display in
utilities. a car).

Application Product-line
software: stand- software focus on a
alone programs for limited marketplace
specific needs. to address mass
consumer market.
(word processing,
graphics, database
management).

21 Software Process Models


Software Applications

6. AI software uses non-


numerical algorithm to solve
complex problem. Robotics,
expert system, pattern
recognition game playing.

5. WebApps (Web
applications) network centric
software. As web 2.0
emerges, more sophisticated
computing environments is
supported integrated with
remote database and
business applications.

22 Software Process Models


Software Engineering

“Software Engineering is a discipline in which theories, methods


and tools are applied to develop professional software product.”

In SE, Systematic and organized approach is adopted. Based on


nature of the problem and development constraints various tools
and techniques are applied in order to develop quality software.

Software product may be :

• Generic –developed to be sold to a range of different customers.


• Custom –developed for a single customer according to their specification.

23 Software Process Models


SW Components:4 Ps (Process, People, Project, Product),

Product

Software
Project Components
Process

People

24 Software Process Models


People

The most important component of a product and its successful


implementation is human resources. In building a proper product, a
well-managed team with clear-cut roles defined for each
person/team will lead to the success of the product.

We need to have a good team in order to save our time, cost, and
effort. Some assigned roles in software project planning are project
manager, team leaders, stakeholders, analysts, and other IT
professionals. Managing people successfully is a tricky process
which a good project manager can do.

25 Software Process Models


Product

As the name inferred, this is the deliverable or the result of the


project. The project manager should clearly define the product
scope to ensure a successful result, control the team members, as
well technical hurdles that he or she may encounter during the
building of a product.

The product can consist of both tangible or intangible such as


shifting the company to a new place or getting a new software in a
company.

26 Software Process Models


Process

In every planning, a clearly defined process is the key


to the success of any product. It regulates how the
team will go about its development in the respective
time period.

The Process has several steps involved like,


documentation phase, implementation phase,
deployment phase, and interaction phase.

27 Software Process Models


Project

The last and final P in software project planning is Project. In


this phase, the project manager plays a critical role.

They are responsible to guide the team members to achieve


the project’s target and objectives, helping & assisting them
with issues, checking on cost and budget, and making sure
that the project stays on track with the given deadlines.

28 Software Process Models


Unit No:1 Unit Name: Software Process Models

Lecture No: 2
SDLC methods/models:
Waterfall, Prototype
(Evolutionary &
Throw-away)
Five Activities of a software Process framework

Communication: communicate with customer to understand


objectives and gather requirements

Planning: creates a “map” defines the work by describing the tasks,


risks and resources, work products and work schedule.

Modeling: Create a “sketch”, what it looks like architecturally, how


the constituent parts fit together and other characteristics.

Construction: code generation and the testing.

Deployment: Delivered to the customer who evaluates the products


and provides feedback based on the evaluation.

30 Software Process Models


Five Activities of a Generic Process framework

 These five framework activities can be used to all software


development regardless of the application domain, size of the project,
complexity of the efforts etc., though the details will be different in each
case.

 For many software projects, these framework activities are applied


iteratively as a project progresses. Each iteration produces a
software increment that provides a subset of overall software features
and functionality.

31 Software Process Models


Software Process Framework

Framework- Standard way to build and


deploy applications
Software framework is foundation of
complete software engineering process
Includes no. of framework activities that
are applicable to all software projects

32 Software Process Models


Common Process Framework Continue…

33 Software Process Models


Software Process Model

Software Processes is a coherent set of activities for specifying, designing, implementing and testing
software systems.

A software process model is an abstract representation of a process that presents a description of a process
from some particular perspective. There are many different software processes but all involve:

Specification – defining what the system should do;

Design and implementation – defining the organization of the system and implementing the system;

Validation – checking that it does what the customer wants;

Evolution – changing the system in response to changing customer needs.

34 Software Process Models


Types of Software Process Model

35 Software Process Models


Waterfall Model

• The waterfall model is a breakdown of project activities into linear


sequential phases, where each phase depends on the deliverables of the
previous one and corresponds to a specialization of tasks.

• Sometimes called the classic life cycle or, the linear sequential model

• The phases include:

Communication

Planning

Modeling

Construction

Deployment

36 Software Process Models


Waterfall Model

Communication: This framework activity involves heavy communication and

collaboration with the customer (and other stakeholders) and encompasses

requirements gathering and other related activities.

37 Software Process Models


Waterfall Model

Planning: This activity establishes a plan for the software engineering work that

follows. It describes the technical tasks to be conducted, the risks that are likely, the

resources that will be required, the work products to be produced, and a work

schedule.

38 Software Process Models


Waterfall Model

Modeling: This activity encompasses the creation of models that allow the

developer and the customer to better understand software requirements and the

design that will achieve those requirements.

39 Software Process Models


Waterfall Model

Construction: This activity combines code generation (either manual or auto


mated) and the testing that is required to uncover errors in the code.

40 Software Process Models


Waterfall Model

Deployment: The software (as a complete entity or as a partially completed


increment) is delivered to the customer who evaluates the delivered product and
provides feedback based on the evaluation.

41 Software Process Models


Waterfall Model

Benefits of Waterfall Model

 Simple to implement

 Useful for implementation of small systems

42 Software Process Models


Waterfall Model

Drawbacks of Waterfall Model

 Real projects rarely follow the sequential flow that the model proposes.
Iteration always occurs and creates problems in the application of the model.

 It is difficult for the client to state all requirements explicitly. The


classic life cycle requires this and it is thus difficult to accommodate the
natural uncertainty that occurs

 A working version of the program is not available until late in the


project time span. A major blunder may remain undetected until the working
program is reviewed which is potentially disastrous.

43 Software Process Models


The Prototyping Model

• Communication: Prototyping begins


with requirements gathering. The
developer and the client meet and define
the overall objectives for the software,
identify the requirements.

• Quick Plan: A prototyping iteration is


planned quickly and modeling (in form of
a “quick design”) occurs.

44 Evolutionary Process Models


The Prototyping Model

• Modeling & Quick Design: The quick


design focuses on a representation of
those aspects of the software that will be
visible to the customer/user (e.g., input
approaches and output formats).

• Construction: Quick Design leads to


the construction of a prototype.

• Deployment: The prototype is deployed


and evaluated by the customer/user and
used to refine requirements for the
software to be developed.

45 Evolutionary Process Models


The Prototyping Model

Advantages:

 It serves as the mechanism for


identifying the requirements.

 The developer use the existing program


fragments means it helps to generate the
software quickly.

 Continuous developer – Consumer


communication is available.

46 Evolutionary Process Models


The Prototyping Model

Disadvantages:

 Customer considers the prototype as a


original working version of the software.

 Developer makes implementation


compromise in order to get prototype
working quickly.

 This model is time consuming.

47 Evolutionary Process Models


Unit No:1 Unit Name: Software Process Models

Lecture No: 3 V model,


Incremental iterative,
Spiral, RAD.
Verification – Are we building software right?
Validation – Are we building right software?
V Model

 The V-model is an SDLC model where execution of processes happens in


a sequential manner in a V-shape. It is also known as Verification and
Validation model.

 The V-Model is an extension of the waterfall model and is based on the


association of a testing phase for each corresponding development stage.

 This means that for every single phase in the development cycle, there is
a directly associated testing phase.

 This is a highly-disciplined model and the next phase starts only after
completion of the previous phase

49 V Model
V- Model

Requirement Analysis
• This phase involves detailed
communication with the customer to
understand his expectations and
exact requirement.

• The acceptance test design


planning is done at this stage as
business requirements can be used
as an input for acceptance testing.

50 V Model
V- Model

System Design

• The system design will have the


understanding and detailing the
complete hardware and
communication setup for the product
under development
• The system test plan is developed
based on the system design. Doing
this at an earlier stage leaves more
time for the actual test execution
later.

51 V Model
V- Model

Architectural Design
• The system design is broken down
further into modules taking up different
functionality. This is also referred to
as High Level Design (HLD).
• The data transfer and communication
between the internal modules and with
the outside world (other systems) is
clearly understood and defined in this
stage.
• With this information, integration tests
can be designed and documented during
this stage.
52 V Model
V- Model

Module Design
• In this phase, the detailed internal design
for all the system modules is specified,
referred to as Low Level Design (LLD).
• The unit tests are an essential part of
any development process and helps
eliminate the maximum faults and errors
at a very early stage. These unit tests
can be designed at this stage based on
the internal module designs.

53 V Model
V- Model

Coding Phase

• The actual coding of the system modules


designed in the design phase is taken up
in the Coding phase. The best suitable
programming language is decided based
on the system and architectural
requirements.
• The code goes through numerous code
reviews and is optimized for best
performance before the final build is
checked into the repository.

54 V Model
V Model

Advantages:

• This is a highly disciplined model and Phases are completed one at a


time.

• V-Model is used for small projects where project requirements are clear.

• Simple and easy to understand and use.

Disadvantages:

• High risk and uncertainty.

• It is not a good for complex and object-oriented projects.

• It is not suitable for projects where requirements are not Clear and
contains high risk of changing.


55 V Model
Incremental Process Models

• Linear sequential model is not suited for projects which are iterative
in nature.
• Initial model with limited functionality is created as per user’s
understanding about the s/w product.
• Functionality expanded further in later releases.
• Software is developed in increments.
• Types:
1. Increment Model
2. Rapid Application Model (RAD Model)

56 Software Process Models


Increment Model

 Software releases in
increments.
 1st increment constitutes
Core product. Basic
requirements are
implemented and in
subsequent increments
new requirements are
added.
 Example – Word
processing software
package.

57 Software Process Models


Increment Model - Benefits

 Particularly useful when staffing is inadequate for a complete implementation


by the business deadline.

 Early increments can be implemented with fewer people. If the core


product is well received, additional staff can be added to implement the next
increment.

 Increments can be planned to manage technical risks. For example, the


system may require availability of some hardware that is under development. It
may be possible to plan early increments without the use of this hardware,
thus enabling partial functionality and avoiding unnecessary delay.

58 Software Process Models


Rapid Application Model (RAD Model)

 An incremental software process model.

 Having a short development cycle.

 High-speed adoption of the waterfall model using a component based


construction approach.

 Creates a fully functional system within a very short span time of 60 to 90


days.

 Multiple software teams work in parallel on different functions.

59 Software Process Models


Rapid Application Model (RAD Model)

1. Communication

(Requirement gathering)

2. Planning (Analysis and

Planning)

3. Modeling(Design)

4. Construction (Build)

5. Deployment

60 Software Process Models


Rapid Application Model (RAD Model)

• Advantages:

– Modularized approach to development

– Creation and use of reusable components

– Drastic reduction in development time

61 Software Process Models


Rapid Application Model (RAD Model)

• Disadvantages:
 For large projects, sufficient human resources are needed to
create the right number of RAD teams.
 Not all types of applications are appropriate for RAD. If a
system cannot be modularized, building the necessary
components for RAD will be difficult.
 Not appropriate when the technical risks are high. For
example, when an application makes heavy use of new
technology or when the software requires a high degree of
interoperability with existing programs.

62 Software Process Models


Spiral Model

• Spiral model is a risk driven process


model.

• In spiral model, an alternate solution is


provided if the risk is found in the risk
analysis, then alternate solutions are
suggested and implemented.

• It is a combination of prototype and


sequential model or waterfall model.

• In one iteration all activities are done, for


large project's the output is small.

63 Evolutionary Process Models


Spiral Model

• Communication - tasks required to


establish effective communication between
developer and customer.

• Planning - tasks required to define


resources, timelines, to assess both
technical and management risks.

• Modeling - creation of models to


understand software requirements and the
design that will achieve those
requirements.

64 Evolutionary Process Models


Spiral Model

• Construction - combines code generation


and the testing that is required to uncover
errors in the code.

• Deployment: customer evaluates the


delivered product and provides feedback.

65 Evolutionary Process Models


Spiral Model

• Advantages:
– Enables developers and clients to
understand and react to risks at an
evolutionary level.
– It uses the systematic approach suggested
by the classic life cycle method but
incorporates it into an iterative framework
that is more realistic.
– This model demands an evaluation of risks
at all stages and should reduce risks before
they become problematic, if properly
applied.

66 Evolutionary Process Models


Spiral Model

• Disadvantages:

 It may be difficult to convince clients that

the evolutionary approach is controllable.

 It demands considerable risk assessment

expertise and relies on this for success.

 If major risk is not uncovered, problems

will undoubtedly occur.

67 Evolutionary Process Models


Thank You

You might also like