SlideShare a Scribd company logo
Software Engineering
CO’s
CO1 Explain Various Software Characteristics and analyze different Software development
Model.
K1,K2
CO2 Demonstrate the contents of a SRS and apply basic software quality assurance practices
to ensure the design, development meet or exceed applicable standards.
K1,K2
CO3 Compare and contrast various methods for software designs. K2,K3
CO4 Formulate testing strategy for software system, employ techniques such as unit testing,
test driven development and functional testing.
K3
CO5 Manage software development process independently as well as in teams and make
use of various software management tools for development , maintenance and
analysis.
K3
Syllabus
Unit1 : Introduction
Unit2 : Software Requirement Specifications (SRS)
Unit3 : Software Design
Unit4 : Software Testing:
Unit5 : Software Maintenance and Software
Project Management
Introduction to Software Engineering :
Software is a program or set of programs containing
instructions that provide the desired functionality and
preforms a special tasks.
Engineering is the process of designing and building
something that serves a particular purpose and finds a
cost-effective solution to problems.
Thus,
Software engineering is associated with the development of software
using well-defined scientific principles,methods,and procedures.
But,the Picture is more:
Software engineering is not only belongs to development of
software.
But,it also belongs to-
.Pre-Development phase
.Development phase
.Post-Development phase
Pre-Development phase
Development phase
Understanding User’s need and
analysing it and preparing detailed
document according
Post-Development phase
According to need or usecases create
different modules and create data
structure
Includes:Documentation,
Maintainability
Software Engineering is the process of
i. designing,
ii. developing,
iii. testing, and
iv. maintaining software. It is a systematic and
disciplined approach to software development that
aims to create high-quality, reliable, and maintainable
software.
Software Components:
Software
Documents
Data
Program
System
Documentation
User Manual
Evolution of Software Engineering:
1945-65 : ORIGIN
1965-85:CRISIS ERA
1990-99:INTERNET ERA
2000-2015:LIGHTWEIGHT METHOD
21ST
CENTURY:CUTTING EDGE
TECHNOLOGY
First Phase:
• In this phase,software development was primarily done by individuals
or small teams who wrote code based on their own experiences and
knowledge.
• Primarily using Trial and Error Method
• No Formal Method
Second Phase:
• Develop Formal Method for development of softwares.
• Define various Scientific methods, approches and principles.
• In the every phase of development define various formal methods and
approaches.
Next Phase:
• Evolved in next phase
Software Crisis : is inability to develop desired software product due to
certain reasons.
The software crisis was due to using the same workforce, same
methods, and same tools even though rapidly increasing software
demand, the complexity of software, and software challenges. With the
increase in software complexity, many software problems arose
because existing methods were insufficient.
What are the different problems:
1. OverBudget
2. Not Timely Deliver
3. Unreliable
4. Difficulty to maintain
5. Performed Poorly
6. Non-Optimal Utilization of resources
7. Not meet user requirements
Solution
• Reduction in software over budget.
• The quality of the software must be high.
• Less time is needed for a software project.
• Experienced and skilled people working on the software project.
• Software must be delivered.
• Software must meet user requirements.
Characteristics of “Software” in Software Engineering
1. Software is developed or engineered; it is not
manufactured in the classical sense
2. The software doesn’t “wear out.”
3. The software continues to be custom-built
Characteristics of the Software
• It is intangible, meaning it cannot be seen or touched.
• It is non-perishable, meaning it does not degrade over time.
• It is easy to replicate, meaning it can be copied and distributed easily.
• It can be complex, meaning it can have many interrelated parts and
features.
• It can be difficult to understand and modify, especially for large and
complex systems.
• It can be affected by changing requirements, meaning it may need to be
updated or modified as the needs of users change.
• It can be impacted by bugs and other issues, meaning it may need to be
tested and debugged to ensure it works as intended.
Software: A Layered Structure
1. A quality focus:
• It defines the continuous process improvement principles of software.
• It provides integrity means providing security to the software.
• It also focuses on maintainability and usability.
2. Process:
• Foundation or base layer of software engineering.
• The software process covers all the activities, actions, and tasks required to be
carried out for software development.
3. Method:
• In the development phase it answers to all “how-to-do” questions are given by
method.
• It has the information of all the tasks which includes communication,
requirement analysis, design modeling, program construction, testing, and
support.
4. Tools:
• Software engineering tools provide a self-operating system for processes
and methods.
Comparison with conventional engineering
Software Engg.
1. In this process majorily involves in computer
science,IT,Discrete maths.
2. Focus to computers, programming and
building applications.
3. Process construction and development cost
is Low.
4. Focus on quality
5. Developed product is intangible
6. Testing is an integral part of development
process
7. Prototyping is common and helps to
refine requirements.
8. Design requirements may change
throughout the development process.
Conventional Engg.
1. majorly involves science,
mathematics, and empirical
knowledge.
2. Focus on building cars, machines,
hardware, buildings, etc.
3. Compartevly High
4. Emphasis on mass production
5. Tangible product
6. Testing after production
7. Prototyping is less common due to
High cost.
8. Design Requirements are typically
well-defined upfront.
Comparison with conventional engineering
Similarities :
1. Both these processes are making our day-to-day place better.
2. Both these processes have a fixed working time.
3. Both processes must consist of deeper knowledge.
4. Both Processes become automated after some time.
Software Development Life Cycle (SDLC)
• SDLC, or software development life cycle, is a methodology that
defines the entire procedure of software development step-by-step.
• The goal of the SDLC life cycle model is to deliver high-quality,
maintainable software that meets the user’s requirements.
• It ensures that the end product is able to meet the customer’s
expectations and fits within the overall budget.
• SDLC is a collection of these six stages.
First Stage: Planning and Requirement Analysis
• In this same stage, requirement analysis is performed by the developers
of the organization.
• This is attained from customer inputs, and sales department/market
surveys.
• This is a very crucial step as it ensures quality of the project is a result
of planning.
• Thus, in this stage, the basic project is designed with all the available
information.
Second Stage: Defining Requirements
• In this stage, all the requirements for the target software are
specified.
• These requirements get approval from customers, market analysts,
and stakeholders.
• This is a sort of document that specifies all those things that need to
be defined and created during the entire project cycle.
• Here, the final SRS(System requirement specification) is made and this
is the base of the software projects.
• Third Stage: Designing Architecture
• With the requirements defined in SRS, multiple designs for the
product architecture are present in the Design Document Specification
(DDS).
• This DDS is assessed by market analysts and stakeholders.
• After evaluating all the possible factors, the most practical and logical
design is chosen for development.
• Fourth Stage: Developing Product
• At this stage, the fundamental development of the product starts. For
this, developers use a specific programming code as per the design in
the DDS.
• conventional programming tools like compilers, interpreters,
debuggers, etc.
Fifth Stage: Product Testing and Integration
Sixth Stage : Deployment and Maintenance of Products
Software Quality
• Almost everybody says they want software to be of high quality.But,what does the word
Quality mean?
• There is no single answer to this question;Basically it depends upon the different stakeholder
involve in it.
• Every stakeholder has own personal objective and he evaluate quality with own objective.
Software Quality
Customer
Solves Problems at
an acceptable cost in
terms of money paid
and resources used
Management
Sells more and pleases
customers while costing
less to develop and
maintain
Developer
• Easy to design
• Easy to maintain
• Easy to Reuse its
parts
User
• Easy to learn
• Easy to efficiently
• Easily helps to get
work done
Main Quality Attributes Are:
1.Portability: A software is claimed to be transportable, if it may be simply
created to figure in several package environments, in several machines, with
alternative code merchandise, etc.
2. Usability: The ease with which users can learn, operate and navigate the
software.
3. Reusability: A software has smart reusability if completely different modules
of the merchandise will simply be reused to develop new merchandise.
4. Maintainability: A software is reparable, if errors may be simply corrected as
and once they show up, new functions may be simply added to the
merchandise.
5. Reliability: Software is more reliable if it has fewer failures.
6. Efficiency: The more efficient software is, the less it uses of CPU-time,
memory, disk space,network bandwidth and other resources.
Challenges faced in software engineering:
1. Changing Requirements
2. Complexity of projects
3. Time and Budget Constraints
4. Communication Gaps
5. Technical Debt
6. Maintaining quality
7. Rapid technological Changes
8. Scalability Issues
9. Security Vulnerability
10. User Expectation
Waterfall Model
• The Waterfall Model is a classical software development methodology.
• It was first introduced by Winston W. Royce in 1970.
• It is a linear and sequential approach to software development that
consists of several phases.
When to use:
• Well-understood Requirements
• Very Little Changes Expected
• Small to Medium-Sized Projects
• Predictable
• Client Prefers a Linear and Sequential Approach
• Limited Resources
Advantages:
• Easy to Understand: The Classical Waterfall Model is very simple and easy
to understand.
• Individual Processing: Phases in the Classical Waterfall model are
processed one at a time.
• Properly Defined: In the classical waterfall model, each stage in the
model is clearly defined.
• Clear Milestones: The classical Waterfall model has very clear and well-
understood milestones.
• Properly Documented: Processes, actions, and results are very well
documented.
• Reinforces Good Habits: The Classical Waterfall Model reinforces good
habits like define-before-design and design-before-code.
Disadvantages
• No Feedback Path: In this, It assumes that no error is ever committed by developers during any
phase. Therefore, it does not incorporate any mechanism for error correction.
• Difficult to accommodate Change Requests: This model assumes that all the customer
requirements can be completely defined at the beginning of the project, but the customer’s
requirements keep on changing with time. It is difficult to accommodate any change requests
after the requirements specification phase is complete.
• No Overlapping of Phases: This model recommends that a new phase can start only after the
completion of the previous phase. But in real projects, this can’t be maintained. To increase
efficiency and reduce cost, phases may overlap.
• Limited Flexibility: The Waterfall Model is a rigid and linear approach to software development,
which means that it is not well-suited for projects with changing or uncertain requirements.
Once a phase has been completed, it is difficult to make changes or go back to a previous phase.
• Limited Stakeholder Involvement
• Late Defect Detection
• Lengthy Development Cycle: As each phase must be completed before moving on to the next.
This can result in delays and increased costs if requirements change or new issues arise.
Evolutionary Development Models
• The evolutionary model is based
on the concept of making an
initial product and then evolving
the software product over time
with iterative and incremental
approaches with proper
feedback.
• The development is carried out
simultaneously with the feedback
during the development.
Advantages:
1. Customer interaction High
2. Adaptability to Changing
Requirements
3. Chances of error get reduced
4. Making reliable and efficient product
5. Compatible for large scope project
Disadvantages:
1. Communication Difficulties
2. Taking More time
3. Cost leveraged product
4. Dependence on an Expert Group
5. More management attention is
required.
Iterative model
• In the Iterative model, iterative process starts with a simple
implementation of a small set of the software
requirements; and
• Iteratively enhances the evolving versions until the complete
system is implemented and ready to be deployed.
• It does not attempt to start with a full specification of
requirements.
Advantages
1. Results are obtained early and
periodically.
2. Parallel development can be planned.
3. Progress can be measured.
4. Better suited for large and mission-
critical projects.
5. Testing and debugging during smaller
iteration is easy.
6. Easier to manage risk- High risk part is
done first.
7. With every increment, operational
product is delivered.
8. Risk analysis is better.
9. Initial Operating time is less.
Disadvantages
1. More resources may be required.
2. More management attention is
required.
3. System architecture may arise
because not all requirements are
gathered in the beginning of the
entire life cycle.
4. Defining increments may require
definition of the complete system.
5. Not suitable for smaller projects.
6. Highly skilled resources are required
for risk analysis.
7. Projects progress is highly dependent
upon the risk analysis phase.
Prototyping Model
What is Prototyping:Prototyping is defined as the process of
developing a working replication of a product or system that has to be
engineered. It offers a small-scale facsimile of the end product and is
used for obtaining customer feedback.
• Prototyping model is used when the customers do not know the exact
project requirements beforehand.
• In this model, a prototype of the end product is first developed, tested,
and refined as per customer feedback repeatedly till a final acceptable
prototype.
Requirement Gathering
Quick
Design
Refine
Requirment
Customer
evaluation of
problem
Build Prototype
Design
Deploy and
Maintain
Testing
Coding
Advantages of Prototyping Model
1. Ensures customer satisfaction and
comfort.
2. New requirements can be easily
accommodated
3. Missing functionalities can be easily
figured out.
4. Errors can be detected earlier
5. saving effort and cost, besides
enhancing the quality of the software.
6. Flexibility in design.
7. Early feedback from customers ensure
that the final product meets their
needs and expectations.
8. Prototyping can help reduce the risk of
project failure
Disadvantages of the Prototyping Model
1. Resource Intensive
2. Poor Documentation due to continuously changing
customer requirements.
3. Difficult to accommodate all the changes.
4. After seeing an early prototype, the customers demand
the actual product to be delivered soon.
5. The customer might lose interest in the product if
he/she is not satisfied with the initial prototype.
6. The prototype may not consider technical feasibility and
scalability issues that can arise during the final product
development.
spiral model
• The spiral model is a combination of
waterfall and iterative models.
• In this, we focused on risk handling
along with developing the project.
• It is best suited for producing the output
quickly as well as it is good for big
projects.
• This model is used where high reliability
and efficiency is required.
Advantages:
1. Customer interaction High
2. Adaptable to Changing
Requirements
3. Chances of error get detect and
resolve earlier.
4. Making reliable and efficient product
5. Compatible for large scope as well as
complex project.
6. Enhancing flexibility.
Disadvantages:
1. Communication Difficulties
2. Complexity of model is very high
3. Resource intensive
4. Dependence on an Expert Group
5. Project Management Complexity
6. Documentation Challenges
7. The cost of developing a
product is high.

More Related Content

Similar to unit 1 SE.pptx software engineering note (20)

PPTX
Basics of software engineering
Madhav Suratkar
 
PPTX
Lecture 1.pptx
UnknownPerson201264
 
PDF
Project Management (2).pdf
ShivareddyGangam
 
PPTX
Introduction Software Engineering Basics-Module(01).pptx
AbcXyz302255
 
PDF
SE notes by k. adisesha
Prof. Dr. K. Adisesha
 
PPTX
Introduction to Software engineering ch03
YousefYassin5
 
PDF
Software process model
Umar Farooq
 
PPTX
Introduction to Software Engineering Notes.pptx
bscit6
 
PDF
SE UNIT-1 Revised.pdf
Dr. Radhey Shyam
 
PPT
Sdlc model
Dhilsath Fathima
 
PPTX
Software Engineering-Process Models.pptx
SonaShaiju1
 
PPTX
Software Testing - Software Quality
Ajeng Savitri
 
PPTX
An agile privacy preservation solution for iot based smart City t
dudekulamuntaz18
 
PPT
Intoduction to software engineering part 2
Rupesh Vaishnav
 
PPT
1. Introduction to Software Engineering and Software Process.ppt
ssuser000e54
 
PPTX
Introduction To Software Concepts Unit 1 & 2
Raj vardhan
 
PPTX
SDLC in software engineering models outlines the plan for each stage so that ...
OsmanKanu9
 
PPTX
Software engineering (Unit-1 Introduction)
YamunaP6
 
PPTX
Unit 1 OOSE
saranive23
 
PPTX
20CS4103 SE UNIT 1-1.pptx software engineering
shreeabinaya413
 
Basics of software engineering
Madhav Suratkar
 
Lecture 1.pptx
UnknownPerson201264
 
Project Management (2).pdf
ShivareddyGangam
 
Introduction Software Engineering Basics-Module(01).pptx
AbcXyz302255
 
SE notes by k. adisesha
Prof. Dr. K. Adisesha
 
Introduction to Software engineering ch03
YousefYassin5
 
Software process model
Umar Farooq
 
Introduction to Software Engineering Notes.pptx
bscit6
 
SE UNIT-1 Revised.pdf
Dr. Radhey Shyam
 
Sdlc model
Dhilsath Fathima
 
Software Engineering-Process Models.pptx
SonaShaiju1
 
Software Testing - Software Quality
Ajeng Savitri
 
An agile privacy preservation solution for iot based smart City t
dudekulamuntaz18
 
Intoduction to software engineering part 2
Rupesh Vaishnav
 
1. Introduction to Software Engineering and Software Process.ppt
ssuser000e54
 
Introduction To Software Concepts Unit 1 & 2
Raj vardhan
 
SDLC in software engineering models outlines the plan for each stage so that ...
OsmanKanu9
 
Software engineering (Unit-1 Introduction)
YamunaP6
 
Unit 1 OOSE
saranive23
 
20CS4103 SE UNIT 1-1.pptx software engineering
shreeabinaya413
 

Recently uploaded (20)

PPTX
How to Setup Automatic Reordering Rule in Odoo 18 Inventory
Celine George
 
PDF
The Power of Compound Interest (Stanford Initiative for Financial Decision-Ma...
Stanford IFDM
 
PPTX
Life and Career Skills Lesson 2.pptxProtective and Risk Factors of Late Adole...
ryangabrielcatalon40
 
PDF
Lean IP - Lecture by Dr Oliver Baldus at the MIPLM 2025
MIPLM
 
PPTX
Lesson 1 Cell (Structures, Functions, and Theory).pptx
marvinnbustamante1
 
PPTX
How to Manage Wins & Losses in Odoo 18 CRM
Celine George
 
PDF
Wikinomics How Mass Collaboration Changes Everything Don Tapscott
wcsqyzf5909
 
PDF
AI-assisted IP-Design lecture from the MIPLM 2025
MIPLM
 
PPTX
Marketing Management PPT Unit 1 and Unit 2.pptx
Sri Ramakrishna College of Arts and science
 
PPTX
ENGLISH 8 REVISED K-12 CURRICULUM QUARTER 1 WEEK 1
LeomarrYsraelArzadon
 
PDF
Lesson 1 - Nature of Inquiry and Research.pdf
marvinnbustamante1
 
PPTX
PLANNING A HOSPITAL AND NURSING UNIT.pptx
PRADEEP ABOTHU
 
PPTX
Elo the Hero is an story about a young boy who became hero.
TeacherEmily1
 
PDF
CAD25 Gbadago and Fafa Presentation Revised-Aston Business School, UK.pdf
Kweku Zurek
 
PDF
Supply Chain Security A Comprehensive Approach 1st Edition Arthur G. Arway
rxgnika452
 
PDF
WATERSHED MANAGEMENT CASE STUDIES - ULUGURU MOUNTAINS AND ARVARI RIVERpdf
Ar.Asna
 
PPTX
PLANNING FOR EMERGENCY AND DISASTER MANAGEMENT ppt.pptx
PRADEEP ABOTHU
 
PPTX
Aerobic and Anaerobic respiration and CPR.pptx
Olivier Rochester
 
PDF
Indian National movement PPT by Simanchala Sarab, Covering The INC(Formation,...
Simanchala Sarab, BABed(ITEP Secondary stage) in History student at GNDU Amritsar
 
PPTX
Ward Management: Patient Care, Personnel, Equipment, and Environment.pptx
PRADEEP ABOTHU
 
How to Setup Automatic Reordering Rule in Odoo 18 Inventory
Celine George
 
The Power of Compound Interest (Stanford Initiative for Financial Decision-Ma...
Stanford IFDM
 
Life and Career Skills Lesson 2.pptxProtective and Risk Factors of Late Adole...
ryangabrielcatalon40
 
Lean IP - Lecture by Dr Oliver Baldus at the MIPLM 2025
MIPLM
 
Lesson 1 Cell (Structures, Functions, and Theory).pptx
marvinnbustamante1
 
How to Manage Wins & Losses in Odoo 18 CRM
Celine George
 
Wikinomics How Mass Collaboration Changes Everything Don Tapscott
wcsqyzf5909
 
AI-assisted IP-Design lecture from the MIPLM 2025
MIPLM
 
Marketing Management PPT Unit 1 and Unit 2.pptx
Sri Ramakrishna College of Arts and science
 
ENGLISH 8 REVISED K-12 CURRICULUM QUARTER 1 WEEK 1
LeomarrYsraelArzadon
 
Lesson 1 - Nature of Inquiry and Research.pdf
marvinnbustamante1
 
PLANNING A HOSPITAL AND NURSING UNIT.pptx
PRADEEP ABOTHU
 
Elo the Hero is an story about a young boy who became hero.
TeacherEmily1
 
CAD25 Gbadago and Fafa Presentation Revised-Aston Business School, UK.pdf
Kweku Zurek
 
Supply Chain Security A Comprehensive Approach 1st Edition Arthur G. Arway
rxgnika452
 
WATERSHED MANAGEMENT CASE STUDIES - ULUGURU MOUNTAINS AND ARVARI RIVERpdf
Ar.Asna
 
PLANNING FOR EMERGENCY AND DISASTER MANAGEMENT ppt.pptx
PRADEEP ABOTHU
 
Aerobic and Anaerobic respiration and CPR.pptx
Olivier Rochester
 
Indian National movement PPT by Simanchala Sarab, Covering The INC(Formation,...
Simanchala Sarab, BABed(ITEP Secondary stage) in History student at GNDU Amritsar
 
Ward Management: Patient Care, Personnel, Equipment, and Environment.pptx
PRADEEP ABOTHU
 
Ad

unit 1 SE.pptx software engineering note

  • 2. CO’s CO1 Explain Various Software Characteristics and analyze different Software development Model. K1,K2 CO2 Demonstrate the contents of a SRS and apply basic software quality assurance practices to ensure the design, development meet or exceed applicable standards. K1,K2 CO3 Compare and contrast various methods for software designs. K2,K3 CO4 Formulate testing strategy for software system, employ techniques such as unit testing, test driven development and functional testing. K3 CO5 Manage software development process independently as well as in teams and make use of various software management tools for development , maintenance and analysis. K3
  • 3. Syllabus Unit1 : Introduction Unit2 : Software Requirement Specifications (SRS) Unit3 : Software Design Unit4 : Software Testing: Unit5 : Software Maintenance and Software Project Management
  • 4. Introduction to Software Engineering : Software is a program or set of programs containing instructions that provide the desired functionality and preforms a special tasks. Engineering is the process of designing and building something that serves a particular purpose and finds a cost-effective solution to problems.
  • 5. Thus, Software engineering is associated with the development of software using well-defined scientific principles,methods,and procedures. But,the Picture is more: Software engineering is not only belongs to development of software. But,it also belongs to- .Pre-Development phase .Development phase .Post-Development phase
  • 6. Pre-Development phase Development phase Understanding User’s need and analysing it and preparing detailed document according Post-Development phase According to need or usecases create different modules and create data structure Includes:Documentation, Maintainability
  • 7. Software Engineering is the process of i. designing, ii. developing, iii. testing, and iv. maintaining software. It is a systematic and disciplined approach to software development that aims to create high-quality, reliable, and maintainable software.
  • 9. Evolution of Software Engineering: 1945-65 : ORIGIN 1965-85:CRISIS ERA 1990-99:INTERNET ERA 2000-2015:LIGHTWEIGHT METHOD 21ST CENTURY:CUTTING EDGE TECHNOLOGY
  • 10. First Phase: • In this phase,software development was primarily done by individuals or small teams who wrote code based on their own experiences and knowledge. • Primarily using Trial and Error Method • No Formal Method Second Phase: • Develop Formal Method for development of softwares. • Define various Scientific methods, approches and principles. • In the every phase of development define various formal methods and approaches. Next Phase: • Evolved in next phase
  • 11. Software Crisis : is inability to develop desired software product due to certain reasons. The software crisis was due to using the same workforce, same methods, and same tools even though rapidly increasing software demand, the complexity of software, and software challenges. With the increase in software complexity, many software problems arose because existing methods were insufficient.
  • 12. What are the different problems: 1. OverBudget 2. Not Timely Deliver 3. Unreliable 4. Difficulty to maintain 5. Performed Poorly 6. Non-Optimal Utilization of resources 7. Not meet user requirements
  • 13. Solution • Reduction in software over budget. • The quality of the software must be high. • Less time is needed for a software project. • Experienced and skilled people working on the software project. • Software must be delivered. • Software must meet user requirements.
  • 14. Characteristics of “Software” in Software Engineering 1. Software is developed or engineered; it is not manufactured in the classical sense 2. The software doesn’t “wear out.” 3. The software continues to be custom-built
  • 15. Characteristics of the Software • It is intangible, meaning it cannot be seen or touched. • It is non-perishable, meaning it does not degrade over time. • It is easy to replicate, meaning it can be copied and distributed easily. • It can be complex, meaning it can have many interrelated parts and features. • It can be difficult to understand and modify, especially for large and complex systems. • It can be affected by changing requirements, meaning it may need to be updated or modified as the needs of users change. • It can be impacted by bugs and other issues, meaning it may need to be tested and debugged to ensure it works as intended.
  • 16. Software: A Layered Structure 1. A quality focus: • It defines the continuous process improvement principles of software. • It provides integrity means providing security to the software. • It also focuses on maintainability and usability. 2. Process: • Foundation or base layer of software engineering. • The software process covers all the activities, actions, and tasks required to be carried out for software development. 3. Method: • In the development phase it answers to all “how-to-do” questions are given by method. • It has the information of all the tasks which includes communication, requirement analysis, design modeling, program construction, testing, and support. 4. Tools: • Software engineering tools provide a self-operating system for processes and methods.
  • 17. Comparison with conventional engineering Software Engg. 1. In this process majorily involves in computer science,IT,Discrete maths. 2. Focus to computers, programming and building applications. 3. Process construction and development cost is Low. 4. Focus on quality 5. Developed product is intangible 6. Testing is an integral part of development process 7. Prototyping is common and helps to refine requirements. 8. Design requirements may change throughout the development process. Conventional Engg. 1. majorly involves science, mathematics, and empirical knowledge. 2. Focus on building cars, machines, hardware, buildings, etc. 3. Compartevly High 4. Emphasis on mass production 5. Tangible product 6. Testing after production 7. Prototyping is less common due to High cost. 8. Design Requirements are typically well-defined upfront.
  • 18. Comparison with conventional engineering Similarities : 1. Both these processes are making our day-to-day place better. 2. Both these processes have a fixed working time. 3. Both processes must consist of deeper knowledge. 4. Both Processes become automated after some time.
  • 19. Software Development Life Cycle (SDLC) • SDLC, or software development life cycle, is a methodology that defines the entire procedure of software development step-by-step. • The goal of the SDLC life cycle model is to deliver high-quality, maintainable software that meets the user’s requirements. • It ensures that the end product is able to meet the customer’s expectations and fits within the overall budget. • SDLC is a collection of these six stages.
  • 20. First Stage: Planning and Requirement Analysis • In this same stage, requirement analysis is performed by the developers of the organization. • This is attained from customer inputs, and sales department/market surveys. • This is a very crucial step as it ensures quality of the project is a result of planning. • Thus, in this stage, the basic project is designed with all the available information.
  • 21. Second Stage: Defining Requirements • In this stage, all the requirements for the target software are specified. • These requirements get approval from customers, market analysts, and stakeholders. • This is a sort of document that specifies all those things that need to be defined and created during the entire project cycle. • Here, the final SRS(System requirement specification) is made and this is the base of the software projects.
  • 22. • Third Stage: Designing Architecture • With the requirements defined in SRS, multiple designs for the product architecture are present in the Design Document Specification (DDS). • This DDS is assessed by market analysts and stakeholders. • After evaluating all the possible factors, the most practical and logical design is chosen for development.
  • 23. • Fourth Stage: Developing Product • At this stage, the fundamental development of the product starts. For this, developers use a specific programming code as per the design in the DDS. • conventional programming tools like compilers, interpreters, debuggers, etc.
  • 24. Fifth Stage: Product Testing and Integration
  • 25. Sixth Stage : Deployment and Maintenance of Products
  • 26. Software Quality • Almost everybody says they want software to be of high quality.But,what does the word Quality mean? • There is no single answer to this question;Basically it depends upon the different stakeholder involve in it. • Every stakeholder has own personal objective and he evaluate quality with own objective. Software Quality Customer Solves Problems at an acceptable cost in terms of money paid and resources used Management Sells more and pleases customers while costing less to develop and maintain Developer • Easy to design • Easy to maintain • Easy to Reuse its parts User • Easy to learn • Easy to efficiently • Easily helps to get work done
  • 27. Main Quality Attributes Are: 1.Portability: A software is claimed to be transportable, if it may be simply created to figure in several package environments, in several machines, with alternative code merchandise, etc. 2. Usability: The ease with which users can learn, operate and navigate the software. 3. Reusability: A software has smart reusability if completely different modules of the merchandise will simply be reused to develop new merchandise. 4. Maintainability: A software is reparable, if errors may be simply corrected as and once they show up, new functions may be simply added to the merchandise. 5. Reliability: Software is more reliable if it has fewer failures. 6. Efficiency: The more efficient software is, the less it uses of CPU-time, memory, disk space,network bandwidth and other resources.
  • 28. Challenges faced in software engineering: 1. Changing Requirements 2. Complexity of projects 3. Time and Budget Constraints 4. Communication Gaps 5. Technical Debt 6. Maintaining quality 7. Rapid technological Changes 8. Scalability Issues 9. Security Vulnerability 10. User Expectation
  • 29. Waterfall Model • The Waterfall Model is a classical software development methodology. • It was first introduced by Winston W. Royce in 1970. • It is a linear and sequential approach to software development that consists of several phases.
  • 30. When to use: • Well-understood Requirements • Very Little Changes Expected • Small to Medium-Sized Projects • Predictable • Client Prefers a Linear and Sequential Approach • Limited Resources
  • 31. Advantages: • Easy to Understand: The Classical Waterfall Model is very simple and easy to understand. • Individual Processing: Phases in the Classical Waterfall model are processed one at a time. • Properly Defined: In the classical waterfall model, each stage in the model is clearly defined. • Clear Milestones: The classical Waterfall model has very clear and well- understood milestones. • Properly Documented: Processes, actions, and results are very well documented. • Reinforces Good Habits: The Classical Waterfall Model reinforces good habits like define-before-design and design-before-code.
  • 32. Disadvantages • No Feedback Path: In this, It assumes that no error is ever committed by developers during any phase. Therefore, it does not incorporate any mechanism for error correction. • Difficult to accommodate Change Requests: This model assumes that all the customer requirements can be completely defined at the beginning of the project, but the customer’s requirements keep on changing with time. It is difficult to accommodate any change requests after the requirements specification phase is complete. • No Overlapping of Phases: This model recommends that a new phase can start only after the completion of the previous phase. But in real projects, this can’t be maintained. To increase efficiency and reduce cost, phases may overlap. • Limited Flexibility: The Waterfall Model is a rigid and linear approach to software development, which means that it is not well-suited for projects with changing or uncertain requirements. Once a phase has been completed, it is difficult to make changes or go back to a previous phase. • Limited Stakeholder Involvement • Late Defect Detection • Lengthy Development Cycle: As each phase must be completed before moving on to the next. This can result in delays and increased costs if requirements change or new issues arise.
  • 33. Evolutionary Development Models • The evolutionary model is based on the concept of making an initial product and then evolving the software product over time with iterative and incremental approaches with proper feedback. • The development is carried out simultaneously with the feedback during the development.
  • 34. Advantages: 1. Customer interaction High 2. Adaptability to Changing Requirements 3. Chances of error get reduced 4. Making reliable and efficient product 5. Compatible for large scope project Disadvantages: 1. Communication Difficulties 2. Taking More time 3. Cost leveraged product 4. Dependence on an Expert Group 5. More management attention is required.
  • 35. Iterative model • In the Iterative model, iterative process starts with a simple implementation of a small set of the software requirements; and • Iteratively enhances the evolving versions until the complete system is implemented and ready to be deployed. • It does not attempt to start with a full specification of requirements.
  • 36. Advantages 1. Results are obtained early and periodically. 2. Parallel development can be planned. 3. Progress can be measured. 4. Better suited for large and mission- critical projects. 5. Testing and debugging during smaller iteration is easy. 6. Easier to manage risk- High risk part is done first. 7. With every increment, operational product is delivered. 8. Risk analysis is better. 9. Initial Operating time is less. Disadvantages 1. More resources may be required. 2. More management attention is required. 3. System architecture may arise because not all requirements are gathered in the beginning of the entire life cycle. 4. Defining increments may require definition of the complete system. 5. Not suitable for smaller projects. 6. Highly skilled resources are required for risk analysis. 7. Projects progress is highly dependent upon the risk analysis phase.
  • 37. Prototyping Model What is Prototyping:Prototyping is defined as the process of developing a working replication of a product or system that has to be engineered. It offers a small-scale facsimile of the end product and is used for obtaining customer feedback. • Prototyping model is used when the customers do not know the exact project requirements beforehand. • In this model, a prototype of the end product is first developed, tested, and refined as per customer feedback repeatedly till a final acceptable prototype.
  • 39. Advantages of Prototyping Model 1. Ensures customer satisfaction and comfort. 2. New requirements can be easily accommodated 3. Missing functionalities can be easily figured out. 4. Errors can be detected earlier 5. saving effort and cost, besides enhancing the quality of the software. 6. Flexibility in design. 7. Early feedback from customers ensure that the final product meets their needs and expectations. 8. Prototyping can help reduce the risk of project failure Disadvantages of the Prototyping Model 1. Resource Intensive 2. Poor Documentation due to continuously changing customer requirements. 3. Difficult to accommodate all the changes. 4. After seeing an early prototype, the customers demand the actual product to be delivered soon. 5. The customer might lose interest in the product if he/she is not satisfied with the initial prototype. 6. The prototype may not consider technical feasibility and scalability issues that can arise during the final product development.
  • 40. spiral model • The spiral model is a combination of waterfall and iterative models. • In this, we focused on risk handling along with developing the project. • It is best suited for producing the output quickly as well as it is good for big projects. • This model is used where high reliability and efficiency is required.
  • 41. Advantages: 1. Customer interaction High 2. Adaptable to Changing Requirements 3. Chances of error get detect and resolve earlier. 4. Making reliable and efficient product 5. Compatible for large scope as well as complex project. 6. Enhancing flexibility. Disadvantages: 1. Communication Difficulties 2. Complexity of model is very high 3. Resource intensive 4. Dependence on an Expert Group 5. Project Management Complexity 6. Documentation Challenges 7. The cost of developing a product is high.