0% found this document useful (0 votes)
22 views27 pages

Lecture 02. Software Engineering

Uploaded by

Mohammed Yousry
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)
22 views27 pages

Lecture 02. Software Engineering

Uploaded by

Mohammed Yousry
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/ 27

Software Engineering

1
Software Engineering
OUTLINE
 Introduction.
 What is Software Engineering ?
 Software Evolution.
 Software Development Life Cycle (SDLC).
 Software Development Paradigm.
 How to Become a Software Engineer.
 Difference Between Software Engineer and Software Developer

2
Introduction
Software Engineering plays a critical role in the
development of software systems. Proper Software
Engineering Practices like SDLC, requirements gathering,
software design, and software testing help in ensuring
that Software Development is carried out effectively and
efficiently. By following these practices, Software
Developers can create reliable and high-quality software
systems that meet the expectations of the users.
3
What is Software Engineering ?
 SOFTWARE:
 Software is a collection of executable programming
code, associated libraries, and documentations.

 SOFTWARE ENGINEERING:
 Software Engineering is an engineering branch
associated with the development of software products
using well-defined scientific principles, methods, and
procedures. The outcome of software engineering is an
efficient and reliable software product.
4
What is Software Engineering ?
 Software Engineering is the Process of designing,
developing, testing, and maintaining software.

 It involves various stages like planning, analysis,


design, implementation, and testing.

 Software Engineering also involves the use of various


tools, techniques, and methodologies to ensure
quality and efficiency in software development.
5
Software Evolution
 Software Evolution is the Process of developing a
Software Product using Software Engineering
Principles and Methods.

 This includes the initial development of software and


its maintenance and updates, till the desired software
product is developed, which satisfies the expected
requirements.
6
Software Evolution

7
Software Evolution
 Evolution starts from the requirement gathering process.
 After which, developers create a prototype of the
intended software and show it to the users to get their
feedback at the early stage of the software product
development.
 The users suggest changes, on which several sequential
updates and maintenance keep on changing too.
 This process changes to the Original Software, till the
desired software is accomplished.
8
Software Evolution
Software divided into three different categories

1. Static-type (S-type),
2. Practical-type (P-type),
3. Embedded-type (E-type),

9
Software Evolution
Software divided into three different categories
1. Static-type (S-type):
 This is Software works according to defined specifications and
solutions. The solution and the method to achieve it, both are
immediately understood before coding.
 The s-type software is least subjected to changes hence this is
the simplest of all.
 For example, Calculator Program.

10
Software Evolution
Software divided into three different categories
2. Practical-type (P-type):
 This is Software with a collection of procedures.
 This is defined by exactly what procedures can be done.
 In this Software, the specifications can be described but the
solution is obviously not instant.
 For example, Gaming Software.

11
Software Evolution
Software divided into three different categories
3. Embedded-type (E-type):
 This Software has a high degree of evolution as there are
various changes in laws, taxes etc. in real-world situations.
 For example, Online Trading Software.

12
Software Development Life Cycle (SDLC)
 The Software Development Life Cycle (SDLC) is a Process
used by software development teams to design, develop,
test, and maintain software applications.

 The SDLC consists of a series of phases that are followed


in a specific order (Software Engineering Stages) to
ensure that the software development process is
efficient, effective, and meets the needs of the end-users
to develop the intended software product.

13
Software Development Life Cycle (SDLC)

14
Software Development Life Cycle (SDLC)
The Software Development Process typically involves several stages, including:
1. Requirements Analysis: This stage involves identifying the needs and
requirements of the software users and stakeholders.
2. Design: This stage involves creating a detailed plan for the software,
including its architecture, user interface, and other key features.
3. Implementation: This stage involves writing the code for the software
and integrating it into a functional system.
4. Testing: This stage involves testing the software to ensure that it is
free of defects and meets the requirements of its users.
5. Maintenance: This stage involves making changes to the software as
needed to fix defects, add new features, or adapt to changing user
needs. 15
Software Development Paradigm
A Software Development Paradigm (Software Process Models), also known
as a Software Development Methodology, is a Framework that provides a
structured approach to the software development process. There are
different types of software development paradigms, each with its own set
of principles, practices, and processes. The following are some of the most
popular software development paradigms:
1. Waterfall Model.
2. Iterative Model (Agile).
3. Spiral Model.
4. V – Model.
5. Prototype.
6. Rapid Application Development (RAD).
7. Lean Model.
8. DevOps.
16
Software Development Paradigm
1. Waterfall Model:
 Waterfall - is the simplest model of Software Development Paradigm.
 All the phases of SDLC will function one after another in a linear
manner, where each phase of the development cycle is completed
before moving on to the next.

17
Software Development Paradigm
2. Iterative Model (Agile):
 This model leads the Software Development Process in iterations
[repeating every step].

18
Software Development Paradigm
3. Spiral Model:
 Spiral Model is an iterative model (incremental risk-oriented life cycle
model).
 This model considers risk (Risk-driven model).

19
Software Development Paradigm
4. V – Model:
 V-Model provides means of testing software at each stage in reverse
way. At every stage, test plans and test cases are created to verify and
validate the product according to the requirement of that stage.

20
Software Development Paradigm
5. Prototype:
 This is a software development paradigm that involves building quick,
low-fidelity versions of software to test and refine ideas before
building the final product. The focus is on rapid prototyping and
constant feedback from stakeholders.

21
Software Development Paradigm
6. Rapid Application Development (RAD):
 This is a software development paradigm that emphasizes the use of
prototypes, iterative development, and user feedback to quickly
develop and deliver software applications.

22
Software Development Paradigm
7. Lean Model:
 This is a software development paradigm that emphasizes the
elimination of waste and the maximization of customer value.
 Lean focuses on delivering software quickly, with minimal defects and
waste.

23
Software Development Paradigm
8. DevOps:
 This is a software development paradigm that combines development
and operations teams to streamline the software development process
and to ensure that software can be delivered quickly, reliably, and
with high quality.

24
Software Engineering

25
26
27

You might also like