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

SDL Lecture 1 Notes

The document discusses various software development paradigms and models including object-oriented, imperative, functional, logical paradigms as well as waterfall, iterative, agile, spiral and V models. It also covers the software development life cycle and its benefits such as management control, improved quality, collaboration and risk management.

Uploaded by

ericabelarmino3
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views

SDL Lecture 1 Notes

The document discusses various software development paradigms and models including object-oriented, imperative, functional, logical paradigms as well as waterfall, iterative, agile, spiral and V models. It also covers the software development life cycle and its benefits such as management control, improved quality, collaboration and risk management.

Uploaded by

ericabelarmino3
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Software Design Lec: Programming languages such as Java, C#, and

Structures and Paradigm Python.


• Example:
// Software Paradigm
o Class: dog
• Software paradigm refers to method o Attributes: height, weight,
and steps, which are taken while food
designing the software. o Objects: name
• Software paradigm is a theoretical o Methods: run, play, eat
framework that serves as a guide for // Functional Paradigm
the development and structure of a
software system. • This paradigm is based on the idea
• Programming paradigm is a subset that a program is a set of
of software design paradigm which mathematical functions that
is future for other a subset of transform inputs into outputs. It is
software development paradigm. often used in languages such as
• Software is a collection of Haskell, Lisp, and ML.
executable programming code, • No variables involved, no actions to
associated libraries, and be described, pure calculations.
documentation.
// Logic Paradigm
• Software development paradigm is
also known as software • This paradigm is based on the idea
engineering, all the engineering that a program is a set of logical
concepts pertaining to statements that can be used to infer
developments software applied. new information. It is often used in
• It consists of the following parts as languages such as Prolog and
Requirement Gathering, Software Mercury.
design, Programming, etc. The • Integrates data and control
software design paradigm is a part structures.
of software development.
• It includes design, maintenance, and
programming. // Software Development Life Cycle
(SDLC)
// Imperative Paradigm
• SDLC is a process that software
• This is the most common paradigm
developers use to plan, design,
and is based on the idea that a
develop, test, deploy, and maintain
program is a set of instructions that
software systems.
tell a computer what to do. It is often
• SDLC is the acronym for software
used in languages such as C and
development life cycle.
C++.
• It is also called the software
• An imperative program is a
development process.
sequence of commands.
• All the tasks required for
// Object-Oriented Paradigm developing and maintaining
software.
• This paradigm is based on the idea
• It consists of a plan describing how
of objects, which are self-contained
to develop, maintain, replace, and
units that contain both data and
alter specific software.
behavior. It is often used in
• It is a process for planning, creating,
testing, and information systems.
• It is a framework of describes the
activity performed at each stage of
software development.
• It is a process used by a system
analyst to develop an information
system including requirements,
validation, training, and ownership.
// Waterfall Model
• This model is based on the idea that
software development is a linear
process, with each phase building
on the previous one.
// Iterative Model
• It is repetition incarnate. In short, it
is breaking down the software
development of large applications
into smaller pieces.

// Agile Model

• This model is based on the idea that


software development is an iterative // Spiral Model
process.
• It helps the group to adopt elements
of one or more process models. To
develop strategies that solve
uncertainty and risk.
1. It allowed the highest level of
management control.
2. Everyone understands the cost and
resources required.
3. To improve the application quality
and monitor the application.
4. It performs at every stage of the
software development life cycle.
5. Better communication: the software
development life cycle provides a
structured framework for
communication between
stakeholders, including developers,
// V-Model project managers, and end-users.
This helps to ensure that everyone is
• It is known as the verification and
on the same page and that
validation model. It is characterized
requirements are clearly defined.
by a corresponding testing phase for
6. Improved Time Management: The
the development stage. V model
software development life cycle
joins by coding phase.
helps to improve time management
by breaking down the development
process into manageable stages.
This allows developers to focus on
one stage at a time and ensures that
deadlines are met.
7. Enhanced Collaboration: The
software development life cycle
encourages collaboration between
developers, testers, and other
stakeholders. This helps to ensure
// Big Bang Model that everyone is working towards
• It focuses on all types of resources the same goal and that issues are
in software development and identified and addressed early in the
coding. Small project with smaller process.
size development team which are 8. Better Risk Management: The
working together. software development life cycle
helps to identify potential risks and
issues early in the process, allowing
them to be addressed before they
become major problems. This helps
to reduce the risk of project failure
and ensures that the final product
meets quality standards.
9. Improved Testing: The software
development life cycle includes
// Benefits of SDLC multiple stages of testing, ensuring
that the final product is thoroughly
tested and meets quality standards.
This helps to reduce the risk of bugs 3. Developing product: In this phase
and errors, ensuring that the final of SDLC, you will see how the
product is stable and reliable. product will be developed. It is one
10. Increased Customer Satisfaction: of the crucial parts of SDLC, it is
The software development life also called the Implementation
cycle ensures that the final product phase.
meets customer requirements and 4. Product testing and integration: in
expectations, leading to increased this phase, we will integrate the
customer satisfaction. This can help modules and will test the overall
to improve customer loyalty and product by using different testing
increase revenue for the techniques.
organization. 5. Deployment and maintenance: in
this phase, the actual deployment of
// Stages of SDLC Model
the product, or you can say the final
1. Requirement gathering: The product will be deployed, and we
feasibility report is positive towards will do maintenance of product for
the project and the next phase starts any future update and release of
with gathering requirements from new features.
the user. Engineers communicate
// Advantages of using paradigm
with the client and end-users to
know their idea, and which features • Provide a consistent structure for
they want software to include. developing software systems.
2. Software design: It is a process to • Help developers understand the
transform user requirements into a problem they are trying to solve.
suitable form. It helps programmers • Help developers design and
in software coding. There is a need implement solutions more
for more specific and detailed effectively.
requirements in software. The • Help developers organize and reuse
output of the process can directly be code more efficiently.
used in implementation in a
• Help developers create more
programming language. There are
reliable and maintainable software.
three design levels as follows.
a. Architectural: it is the // Disadvantages of using a paradigm
highest abstract version of
the system. In a software • Can be difficult to learn and
system, many components understand for new developers.
interact with each other. • Can be limiting if a problem does
b. High-level: it focuses on not fit well into a specific paradigm.
how the system along with • Can make it difficult to integrate
all its components and its systems developed using different
can be implemented inform paradigms.
of modules. • Can make it difficult to adapt to new
c. Detailed: it defines the technologies or changing
logical structure of each requirements.
module and its interface to
// Advantages of SDLC
communicate with each
module. • Provides a structured approach to
software development, which helps
to ensure that important steps are the changing needs of the customer
not overlooked. or end-user.
• Helps to identify and manage risks • Compliance: The SDLC can help
early in the development process. organizations to comply with
• Helps to deliver software on time regulatory requirements and
and within budget. industry standards by ensuring that
• Helps to ensure that software meets software is developed in a
the needs of the customer or end- controlled and structured manner.
user. // Disadvantages of SDLC
• Helps to improve communication
and collaboration among team • Can be inflexible, making it
members. difficult to accommodate changes
• Better Resource Management: The or unexpected events.
SDLC helps to ensure that • Can be time-consuming and costly,
resources, such as personnel, particularly in the early stages of
equipment, and materials, are development.
allocated effectively throughout the • Can lead to delays or increased
development process. This helps to costs if requirements change during
ensure that the project stays on development.
schedule and within budget. • Can lead to a focus on
• Quality Assurance: The SDLC documentation rather than working
includes multiple stages of quality software.
assurance, including testing, • Can lead to a lack of customer
validation, and verification. This involvement during development,
helps to ensure that the final product which can result in a product that
is free of bugs and errors and meets does not meet the customer’s needs.
quality standards. • Limited scope for creativity: The
• Flexibility: The SDLC can be SDLC is a structured approach to
adapted to suit the needs of different software development that can be
types of projects and organizations. quite rigid in its processes and
This flexibility allows organizations procedures. This can limit the
to choose the SDLC methodology ability of developers to be creative
that works best for them. and come up with innovative
• Improved Documentation: The solutions.
SDLC requires documentation at • Overemphasis on planning: The
every stage of the development SDLC places a great deal of
process. This helps to ensure that emphasis on planning and
important information is captured documentation, which can
and can be referred to later if sometimes result in too much time
needed. and resources being spent on these
• Continuous Improvement: The activities at the expense of
SDLC encourages continuous developing the software.
improvement by providing • Difficulty in handling complex or
opportunities for feedback and large projects: The SDLC can be
evaluation throughout the difficult to manage for complex or
development process. This helps to large projects, as it involves a lot of
ensure that the final product meets coordination and communication
among team members and
stakeholders.
• Risk of waterfall model: The SDLC
follows a sequential process, often
referred to as the waterfall model.
This means that each stage of the
development process must be
completed before moving on to the
next stage. This can result in delays
and increased costs if problems are
encountered later in the
development process.
• Can be too rigid for agile projects:
The SDLC is not well suited for
agile development methodologies,
which require a more flexible and
iterative approach to software
development.
• May not be suitable for all types of
software: The SDLC may not be
suitable for all types of software,
particularly those that require a
rapid development cycle or frequent
updates

You might also like