SlideShare a Scribd company logo
Software Engineering
KCS-601, Unit-I, 1.1
Dr APJ Abdul Kalam Technical
University, Lucknow
By
Dr Anuranjan Misra
1
Dr Anuranjan Misra
innovation
Ambassador
Ministry of Education,
Government of India
& Professor & Dean,
GNIOT, Greater Noida
SOFTWARE ENGINEERING – KCS-601
UNIT I SOFTWARE PROCESS MODELS
Introduction to Software Engineering, Software Process,
Perspective and Specialized Process Models – Waterfall model –
Spiral Model – V shaped model – RAD model – Iterative Model –
Prototype model.
2
UNIT-II REQUIREMENTS ANALYSIS AND SPECIFICATION
Software Requirements: Functional and Non-Functional, User
requirements, System requirements, Software Requirements
Document – Requirement Engineering Process: Feasibility Studies,
Requirements elicitation and analysis, requirements validation,
requirements management-Classical analysis: Structured system
Analysis, Petri Nets- Data Dictionary.
SOFTWARE ENGINEERING – KCS-601
UNIT-III SOFTWARE DESIGN
Design process – Design Concepts-Design Model– Design Heuristic –
Architectural Design - Architectural styles, Architectural Design,
Architectural Mapping using Data Flow- User Interface Design: Interface
analysis, Interface Design –Component level Design: Designing Class
based components, traditional Components.
3
based components, traditional Components.
UNIT-IV TESTING AND MAINTENANCE
Software testing fundamentals-Internal and external views of Testing-
white box testing - basis path testing-control structure testing-black box
testing- Regression Testing – Unit Testing – Integration Testing –
Validation Testing – System Testing and Debugging –Software
Implementation Techniques: Coding practices-Refactoring-Maintenance
and Reengineering-BPR model-Reengineering process model-Reverse
and Forward Engineering – Software Configuration Management.
SOFTWARE ENGINEERING – KCS-601
UNIT-V PROJECT MANAGEMENT
Software Project Management: Estimation – LOC, FP Based Estimation,
Make/Buy Decision COCOMO I & II Model – Project Scheduling –
Scheduling, Earned Value Analysis Planning – Project Plan, Planning
Process, RFP Risk Management – Identification, Projection - Risk
Management-Risk Identification-RMMM Plan-CASE TOOLS-Introduction
to Agility: Extreme programming, Scrum, DevOps
4
to Agility: Extreme programming, Scrum, DevOps
TEXT BOOKS
1. Roger S. Pressman, Bruce R.Maxim―Software Engineering – A
Practitioner’s Approach, Eight Edition, McGraw-Hill International Edition,
2015.
2. 2. IanSommerville, ―Software Engineering, 9th Edition, Pearson Education
Asia, 2011.
3. 3. Gene Kim, Jez Humble, Patrick Debois, and John Willis, The DevOps
Handbook- How to Create World-Class Agility, Reliability, & Security in
Technology Organizations, IT Revolution Press,2nd Edition,2016
5
Introduction to Software
Engineering
Engineering
6
7
Activity
Think about all the devices and systems
that you encounter in your everyday life
which have software controlling them…
Virtually all countries
depend on complex
computer-based
systems.
which have software controlling them…
List as many as you can
8
Software
Software is:
(1) Instructions (computer programs) that when executed
provide desired features, function, and performance;
provide desired features, function, and performance;
(2) Data structures that enable the programs to adequately
manipulate information,
(3) Descriptive information in both hard copy and virtual forms
that describes the operation and use of the programs.
Programs
Programs
9
What is Software?
Software
Software
Documentation
Documentation
Data
Data
System
Documentation
User
Documentation
10
Attributes of good software
 Functional attributes (performance; what the system does).
 Non-functional attributes (quality; how the system does it).
Product Characteristic Description
Maintainability Evolution qualities such as Testability, extensibility.
Dependability Reliability, security, safety.
Efficiency Response time, processing time, memory utilization.
Usability Easy to learn how to use the system by target users.
Efficient to use the system by users to accomplish a task.
Satisfying to use by intended users.
11
Activity
 What are the key attributes for..
Interactive game Banking system
Cardiac monitor in an ICU
unit
Players, score, scenes, Client accounts, stocks heart rate, temperature,
Players, score, scenes,
theme.
Client accounts, stocks
bonds, money transfers.
heart rate, temperature,
blood pressure.
12
Software Development Crises
Projects were:
• Late.
• Over budget.
• Unreliable.
• Difficult to maintain.
• Performed poorly.
13
Software errors….the cost
Errors in computer software can have
devastating effects.
devastating effects.
14
Software Crisis
Example 1: 2009,Computer glitch delays flights
Saturday 3rd October 2009-London, England (CNN)
• Dozens of flights from the UK were delayed Saturday after
• Dozens of flights from the UK were delayed Saturday after
a glitch in an air traffic control system in Scotland, but the
problem was fixed a few hours later.
• The agency said it reverted to backup equipment as
engineering worked on the system.
• The problem did not create a safety issue but could cause
delays in flights.
• Read more at:
http://edition.cnn.com/2009/WORLD/europe/10/03/uk.fl
ights.delayed
15
Software Crisis
Example 2: Ariane 5 Explosion
• European Space Agency spent 10 years and $7
billion to produce Ariane 5.
• Crash after 36.7 seconds.
• Caused by an overflow error. Trying to store a 64-bit
number into a 16-bit space.
• Watch the video:
http://www.youtube.com/watch?v=z-r9cYp3tTE
16
Software Crisis
Example 3: 1992, London Ambulance Service
• Considered the largest ambulance service in the
world.
• Overloaded problem.
• It was unable to keep track of the ambulances
and their statuses. Sending multiple units to some
locations and no units to other locations.
• Generates many exceptions messages.
• 46 deaths.
17
Therefore…
A well-disciplined approach to software
development and management is
development and management is
necessary. This is called engineering.
18
Software Engineering
“An engineering discipline that is concerned with all aspects of
software production from the early stages of system specification
to maintaining the system after it has gone into use.” Sommerville,
to maintaining the system after it has gone into use.” Sommerville,
pg.7
The IEEE definition:
Software Engineering: The application of a systematic, disciplined,
quantifiable approach to the development, operation, and
maintenance of software; that is, the application of engineering to
software.
19
QUICK LOOKS
 What is it?
 Who does it?
 Why is it important?
 What are the steps?
 What are the steps?
 What is the work product?
 How do I ensure that I’ve done it right?
20
Why is Software Engineering important?
Complex systems need a disciplined approach for
designing, developing and managing them. you can have it
fast, you can have it right, or you can have it cheap. Pick
two!”
two!”
• Software is developed or engineered, it is not
manufactured in the classical sense.
• Software is custom built
• Software should achieve a good quality in
Characteristics of software
• Software should achieve a good quality in
design and meet all the specifications of the
customer.
• Software does not wear out i.e. it does not
lose the material.
21
• Software should be inherently complex.
• Software must be efficient i.e. the ability of
the software to use system resources in an
effective and efficient manner.
Characteristics of software
effective and efficient manner.
• Software must be integral i.e. it must prevent
from unauthorized access to the software or
data
22
23
Types of Software
Seven Broad Categories of software are challenges for software
engineers
• System software- System software is a collection of programs
written to service other programs. System software: such as
compilers, editors, file management utilities.
compilers, editors, file management utilities.
• Application software: stand-alone programs for specific needs. This
software are used to controls business needs. Ex: Transaction
processing.
• Artificial intelligence software- Artificial intelligence (AI) software
makes use of nonnumeric algorithms to solve complex problems.
Application within this area include robotics, pattern recognition,
game playing.
24
Types of Software
• Engineering and scientific software -Engineering and scientific
software have been characterized by "number crunching"
algorithm.
• Embedded software resides within a product or system. (key pad
control of a microwave oven, digital function of dashboard display
in a car)
in a car)
• Product-line software focus on a limited marketplace to address
mass consumer market. (word processing, graphics, database
management)
• WebApps (Web applications) network centric software. As web
2.0 emerges, more sophisticated computing environments is
supported integrated with remote database and business
applications.
25
Software engineering - Layered technology
• Software engineering is a fully layered technology.
• To develop a software, we need to go from one layer to
another.
• All these layers are related to each other and each layer
demands the fulfillment of the previous layer.
demands the fulfillment of the previous layer.
26
Software engineering - Layered technology
Quality focus
The characteristics of good quality software are:
• Correctness of the functions required to be performed
by the software.
by the software.
• Maintainability of the software
• Integrity i.e. providing security so that the
unauthorized user cannot access information or data.
• Usability i.e. the efforts required to use or operate the
software.
27
Software engineering - Layered technology
Quality focus
The characteristics of good quality software are:
• Correctness of the functions required to be performed
by the software.
by the software.
• Maintainability of the software
• Integrity i.e. providing security so that the
unauthorized user cannot access information or data.
• Usability i.e. the efforts required to use or operate the
software.
28
Software engineering - Layered technology
2. Process
• It is the base layer or foundation layer for the software
engineering.
• The software process is the key to keep all levels
together.
• It defines a framework that includes different activities
and tasks.
• In short, it covers all activities, actions and tasks
required to be carried out for software development.
29
Software engineering - Layered technology
3. Methods
• The method provides the answers of all 'how-to' that
are asked during the process.
• It provides the technical way to implement the
software.
• It includes collection of tasks starting from
communication, requirement analysis, analysis and
design modelling, program construction, testing and
support.
30
Software engineering - Layered technology
4. Tools
• The software engineering tool is an automated
support for the software development.
• The tools are integrated i.e the information created
by one tool can be used by the other tool.
• For example: The Microsoft publisher can be
used as a web designing tool.
Case Study – An Insulin Pump Control System
A personal insulin pump
– An embedded system in an insulin pump used by diabetics to
maintain blood glucose control.
Insulin pump control system
Insulin pump control system
– Collects data from a blood sugar sensor and calculates the amount
of insulin required to be injected.
– Calculation based on the rate of change of blood sugar levels.
– Sends signals to a micro-pump to deliver the correct dose of
insulin.
– Safety-critical system as low blood sugars can lead to brain
malfunctioning, coma and death; high-blood sugar levels have
long-term consequences such as eye and kidney damage.
17
Insulin pump hardware architecture
22
Activity model of the insulin pump
19
Case Study
An Embedded System for Smart Card
34
35
The Cost of Software Engineering
 Depends on:
 The process used, and
 The type of software being developed.
 The type of software being developed.
 Each generic approach has a different profile of cost distribution.
 Roughly 60% of costs are development costs, 40% are testing costs.
 For custom software, evolution costs often exceed development
costs.
36
Challenges facing software engineering
Challenge Why? Software needs to ..
Heterogeneity
Different computers, different
Cope with this variability.
Heterogeneity
Different computers, different
platforms, different support systems.
Cope with this variability.
Delivery
Businesses are more responsive
 supporting software needs to
evolve as rapidly.
Be delivered in shorter time
without compromising quality.
Trust
Software is a part of many aspects of
our lives (work, study, leisure).
Demonstrate that it can be
trusted by users.
Question Answer
What is software? Computer programs and associated documentation. Software
products may be developed for a particular customer or may
be developed for a general market.
What are the attributes of good software? Good software should deliver the required functionality and
performance to the user and should be maintainable,
Frequently asked questions about software
engineering
37
performance to the user and should be maintainable,
dependable and usable.
What is software engineering? Software engineering is an engineering discipline that is
concerned with all aspects of software production.
What are the fundamental software
engineering activities?
Software specification, software development, software
validation and software evolution.
What is the difference between software
engineering and computer science?
Computer science focuses on theory and fundamentals;
software engineering is concerned with the practicalities of
developing and delivering useful software.
What is the difference between software
engineering and system engineering?
System engineering is concerned with all aspects of
computer-based systems development including hardware,
software and process engineering. Software engineering is
part of this more general process.
Frequently asked questions about software
engineering
Question Answer
What are the key challenges facing software
engineering?
Coping with increasing diversity, demands for reduced delivery
times and developing trustworthy software.
What are the costs of software engineering? Roughly 60% of software costs are development costs, 40% are
testing costs. For custom software, evolution costs often
exceed development costs.
38
exceed development costs.
What are the best software engineering
techniques and methods?
While all software projects have to be professionally managed
and developed, different techniques are appropriate for
different types of system. For example, games should always be
developed using a series of prototypes whereas safety critical
control systems require a complete and analyzable
specification to be developed. You can’t, therefore, say that
one method is better than another.
What differences has the web made to
software engineering?
The web has led to the availability of software services and the
possibility of developing highly distributed service-based
systems. Web-based systems development has led to
important advances in programming languages and software
reuse.

More Related Content

Similar to Introduction to Software Engineering Notes

Chapter 01
Chapter 01Chapter 01
Chapter 01
ans ali raza
 
ch1_introduction (1).ppt
ch1_introduction (1).pptch1_introduction (1).ppt
ch1_introduction (1).ppt
AleksandraArsic6
 
ch1_introduction (2).ppt
ch1_introduction (2).pptch1_introduction (2).ppt
ch1_introduction (2).ppt
AleksandraArsic6
 
ch1_introduction.ppt
ch1_introduction.pptch1_introduction.ppt
ch1_introduction.ppt
BhargaviChaitanya2
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
MrsRBoomadeviIT
 
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SESE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
AbhishekTripathi709328
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
AlenaDion
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
MarriamNawaz
 
SE-Lecture1.ppt
SE-Lecture1.pptSE-Lecture1.ppt
SE-Lecture1.ppt
vishal choudhary
 
Week_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.pptWeek_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.ppt
23017156038
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
lecture 1.pdf
lecture 1.pdflecture 1.pdf
lecture 1.pdf
ssuser2d043c
 
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMIEvolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
nimmik4u
 
SWE-610-Lec-1-Software-Intro duction(1).pptx
SWE-610-Lec-1-Software-Intro duction(1).pptxSWE-610-Lec-1-Software-Intro duction(1).pptx
SWE-610-Lec-1-Software-Intro duction(1).pptx
nohaaalrajhi
 
Lect 01
Lect 01Lect 01
Lect 01
SaudSkh
 
Unit 1 importance ofsoftengg_b.tech iii year
Unit 1  importance ofsoftengg_b.tech iii yearUnit 1  importance ofsoftengg_b.tech iii year
Unit 1 importance ofsoftengg_b.tech iii year
Preeti Mishra
 
Unit 1 introduction tosoftengg_mba tech ii year
Unit 1  introduction tosoftengg_mba tech ii yearUnit 1  introduction tosoftengg_mba tech ii year
Unit 1 introduction tosoftengg_mba tech ii year
Preeti Mishra
 
Unit1
Unit1Unit1
Unit1
anuragmbst
 
sw1.pdf
sw1.pdfsw1.pdf
sw1.pdf
Samehegazy2
 
SE_Lec 01_ Introduction to Software Enginerring
SE_Lec 01_ Introduction to Software EnginerringSE_Lec 01_ Introduction to Software Enginerring
SE_Lec 01_ Introduction to Software Enginerring
Amr E. Mohamed
 

Similar to Introduction to Software Engineering Notes (20)

Chapter 01
Chapter 01Chapter 01
Chapter 01
 
ch1_introduction (1).ppt
ch1_introduction (1).pptch1_introduction (1).ppt
ch1_introduction (1).ppt
 
ch1_introduction (2).ppt
ch1_introduction (2).pptch1_introduction (2).ppt
ch1_introduction (2).ppt
 
ch1_introduction.ppt
ch1_introduction.pptch1_introduction.ppt
ch1_introduction.ppt
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SESE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
 
SE-Lecture1.ppt
SE-Lecture1.pptSE-Lecture1.ppt
SE-Lecture1.ppt
 
Week_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.pptWeek_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.ppt
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
lecture 1.pdf
lecture 1.pdflecture 1.pdf
lecture 1.pdf
 
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMIEvolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
 
SWE-610-Lec-1-Software-Intro duction(1).pptx
SWE-610-Lec-1-Software-Intro duction(1).pptxSWE-610-Lec-1-Software-Intro duction(1).pptx
SWE-610-Lec-1-Software-Intro duction(1).pptx
 
Lect 01
Lect 01Lect 01
Lect 01
 
Unit 1 importance ofsoftengg_b.tech iii year
Unit 1  importance ofsoftengg_b.tech iii yearUnit 1  importance ofsoftengg_b.tech iii year
Unit 1 importance ofsoftengg_b.tech iii year
 
Unit 1 introduction tosoftengg_mba tech ii year
Unit 1  introduction tosoftengg_mba tech ii yearUnit 1  introduction tosoftengg_mba tech ii year
Unit 1 introduction tosoftengg_mba tech ii year
 
Unit1
Unit1Unit1
Unit1
 
sw1.pdf
sw1.pdfsw1.pdf
sw1.pdf
 
SE_Lec 01_ Introduction to Software Enginerring
SE_Lec 01_ Introduction to Software EnginerringSE_Lec 01_ Introduction to Software Enginerring
SE_Lec 01_ Introduction to Software Enginerring
 

More from Dr Anuranjan Misra

Software Engineering Software Project Management
Software Engineering Software Project ManagementSoftware Engineering Software Project Management
Software Engineering Software Project Management
Dr Anuranjan Misra
 
Software Engineering TESTING AND MAINTENANCE
Software Engineering TESTING AND MAINTENANCESoftware Engineering TESTING AND MAINTENANCE
Software Engineering TESTING AND MAINTENANCE
Dr Anuranjan Misra
 
Software Engineering - SOFTWARE DESIGN Process
Software Engineering - SOFTWARE DESIGN ProcessSoftware Engineering - SOFTWARE DESIGN Process
Software Engineering - SOFTWARE DESIGN Process
Dr Anuranjan Misra
 
Software Engineering REQUIREMENTS ANALYSIS AND SPECIFICATION
Software Engineering REQUIREMENTS ANALYSIS AND SPECIFICATIONSoftware Engineering REQUIREMENTS ANALYSIS AND SPECIFICATION
Software Engineering REQUIREMENTS ANALYSIS AND SPECIFICATION
Dr Anuranjan Misra
 
Software Engineering Perspective and Specialized Process Models
Software Engineering Perspective and Specialized Process ModelsSoftware Engineering Perspective and Specialized Process Models
Software Engineering Perspective and Specialized Process Models
Dr Anuranjan Misra
 
Various Process of Software Engineering notes
Various Process of Software Engineering notesVarious Process of Software Engineering notes
Various Process of Software Engineering notes
Dr Anuranjan Misra
 

More from Dr Anuranjan Misra (6)

Software Engineering Software Project Management
Software Engineering Software Project ManagementSoftware Engineering Software Project Management
Software Engineering Software Project Management
 
Software Engineering TESTING AND MAINTENANCE
Software Engineering TESTING AND MAINTENANCESoftware Engineering TESTING AND MAINTENANCE
Software Engineering TESTING AND MAINTENANCE
 
Software Engineering - SOFTWARE DESIGN Process
Software Engineering - SOFTWARE DESIGN ProcessSoftware Engineering - SOFTWARE DESIGN Process
Software Engineering - SOFTWARE DESIGN Process
 
Software Engineering REQUIREMENTS ANALYSIS AND SPECIFICATION
Software Engineering REQUIREMENTS ANALYSIS AND SPECIFICATIONSoftware Engineering REQUIREMENTS ANALYSIS AND SPECIFICATION
Software Engineering REQUIREMENTS ANALYSIS AND SPECIFICATION
 
Software Engineering Perspective and Specialized Process Models
Software Engineering Perspective and Specialized Process ModelsSoftware Engineering Perspective and Specialized Process Models
Software Engineering Perspective and Specialized Process Models
 
Various Process of Software Engineering notes
Various Process of Software Engineering notesVarious Process of Software Engineering notes
Various Process of Software Engineering notes
 

Recently uploaded

Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 

Recently uploaded (20)

Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 

Introduction to Software Engineering Notes

  • 1. Software Engineering KCS-601, Unit-I, 1.1 Dr APJ Abdul Kalam Technical University, Lucknow By Dr Anuranjan Misra 1 Dr Anuranjan Misra innovation Ambassador Ministry of Education, Government of India & Professor & Dean, GNIOT, Greater Noida
  • 2. SOFTWARE ENGINEERING – KCS-601 UNIT I SOFTWARE PROCESS MODELS Introduction to Software Engineering, Software Process, Perspective and Specialized Process Models – Waterfall model – Spiral Model – V shaped model – RAD model – Iterative Model – Prototype model. 2 UNIT-II REQUIREMENTS ANALYSIS AND SPECIFICATION Software Requirements: Functional and Non-Functional, User requirements, System requirements, Software Requirements Document – Requirement Engineering Process: Feasibility Studies, Requirements elicitation and analysis, requirements validation, requirements management-Classical analysis: Structured system Analysis, Petri Nets- Data Dictionary.
  • 3. SOFTWARE ENGINEERING – KCS-601 UNIT-III SOFTWARE DESIGN Design process – Design Concepts-Design Model– Design Heuristic – Architectural Design - Architectural styles, Architectural Design, Architectural Mapping using Data Flow- User Interface Design: Interface analysis, Interface Design –Component level Design: Designing Class based components, traditional Components. 3 based components, traditional Components. UNIT-IV TESTING AND MAINTENANCE Software testing fundamentals-Internal and external views of Testing- white box testing - basis path testing-control structure testing-black box testing- Regression Testing – Unit Testing – Integration Testing – Validation Testing – System Testing and Debugging –Software Implementation Techniques: Coding practices-Refactoring-Maintenance and Reengineering-BPR model-Reengineering process model-Reverse and Forward Engineering – Software Configuration Management.
  • 4. SOFTWARE ENGINEERING – KCS-601 UNIT-V PROJECT MANAGEMENT Software Project Management: Estimation – LOC, FP Based Estimation, Make/Buy Decision COCOMO I & II Model – Project Scheduling – Scheduling, Earned Value Analysis Planning – Project Plan, Planning Process, RFP Risk Management – Identification, Projection - Risk Management-Risk Identification-RMMM Plan-CASE TOOLS-Introduction to Agility: Extreme programming, Scrum, DevOps 4 to Agility: Extreme programming, Scrum, DevOps TEXT BOOKS 1. Roger S. Pressman, Bruce R.Maxim―Software Engineering – A Practitioner’s Approach, Eight Edition, McGraw-Hill International Edition, 2015. 2. 2. IanSommerville, ―Software Engineering, 9th Edition, Pearson Education Asia, 2011. 3. 3. Gene Kim, Jez Humble, Patrick Debois, and John Willis, The DevOps Handbook- How to Create World-Class Agility, Reliability, & Security in Technology Organizations, IT Revolution Press,2nd Edition,2016
  • 6. 6
  • 7. 7 Activity Think about all the devices and systems that you encounter in your everyday life which have software controlling them… Virtually all countries depend on complex computer-based systems. which have software controlling them… List as many as you can
  • 8. 8 Software Software is: (1) Instructions (computer programs) that when executed provide desired features, function, and performance; provide desired features, function, and performance; (2) Data structures that enable the programs to adequately manipulate information, (3) Descriptive information in both hard copy and virtual forms that describes the operation and use of the programs.
  • 10. 10 Attributes of good software  Functional attributes (performance; what the system does).  Non-functional attributes (quality; how the system does it). Product Characteristic Description Maintainability Evolution qualities such as Testability, extensibility. Dependability Reliability, security, safety. Efficiency Response time, processing time, memory utilization. Usability Easy to learn how to use the system by target users. Efficient to use the system by users to accomplish a task. Satisfying to use by intended users.
  • 11. 11 Activity  What are the key attributes for.. Interactive game Banking system Cardiac monitor in an ICU unit Players, score, scenes, Client accounts, stocks heart rate, temperature, Players, score, scenes, theme. Client accounts, stocks bonds, money transfers. heart rate, temperature, blood pressure.
  • 12. 12 Software Development Crises Projects were: • Late. • Over budget. • Unreliable. • Difficult to maintain. • Performed poorly.
  • 13. 13 Software errors….the cost Errors in computer software can have devastating effects. devastating effects.
  • 14. 14 Software Crisis Example 1: 2009,Computer glitch delays flights Saturday 3rd October 2009-London, England (CNN) • Dozens of flights from the UK were delayed Saturday after • Dozens of flights from the UK were delayed Saturday after a glitch in an air traffic control system in Scotland, but the problem was fixed a few hours later. • The agency said it reverted to backup equipment as engineering worked on the system. • The problem did not create a safety issue but could cause delays in flights. • Read more at: http://edition.cnn.com/2009/WORLD/europe/10/03/uk.fl ights.delayed
  • 15. 15 Software Crisis Example 2: Ariane 5 Explosion • European Space Agency spent 10 years and $7 billion to produce Ariane 5. • Crash after 36.7 seconds. • Caused by an overflow error. Trying to store a 64-bit number into a 16-bit space. • Watch the video: http://www.youtube.com/watch?v=z-r9cYp3tTE
  • 16. 16 Software Crisis Example 3: 1992, London Ambulance Service • Considered the largest ambulance service in the world. • Overloaded problem. • It was unable to keep track of the ambulances and their statuses. Sending multiple units to some locations and no units to other locations. • Generates many exceptions messages. • 46 deaths.
  • 17. 17 Therefore… A well-disciplined approach to software development and management is development and management is necessary. This is called engineering.
  • 18. 18 Software Engineering “An engineering discipline that is concerned with all aspects of software production from the early stages of system specification to maintaining the system after it has gone into use.” Sommerville, to maintaining the system after it has gone into use.” Sommerville, pg.7 The IEEE definition: Software Engineering: The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.
  • 19. 19 QUICK LOOKS  What is it?  Who does it?  Why is it important?  What are the steps?  What are the steps?  What is the work product?  How do I ensure that I’ve done it right?
  • 20. 20 Why is Software Engineering important? Complex systems need a disciplined approach for designing, developing and managing them. you can have it fast, you can have it right, or you can have it cheap. Pick two!” two!”
  • 21. • Software is developed or engineered, it is not manufactured in the classical sense. • Software is custom built • Software should achieve a good quality in Characteristics of software • Software should achieve a good quality in design and meet all the specifications of the customer. • Software does not wear out i.e. it does not lose the material. 21
  • 22. • Software should be inherently complex. • Software must be efficient i.e. the ability of the software to use system resources in an effective and efficient manner. Characteristics of software effective and efficient manner. • Software must be integral i.e. it must prevent from unauthorized access to the software or data 22
  • 23. 23 Types of Software Seven Broad Categories of software are challenges for software engineers • System software- System software is a collection of programs written to service other programs. System software: such as compilers, editors, file management utilities. compilers, editors, file management utilities. • Application software: stand-alone programs for specific needs. This software are used to controls business needs. Ex: Transaction processing. • Artificial intelligence software- Artificial intelligence (AI) software makes use of nonnumeric algorithms to solve complex problems. Application within this area include robotics, pattern recognition, game playing.
  • 24. 24 Types of Software • Engineering and scientific software -Engineering and scientific software have been characterized by "number crunching" algorithm. • Embedded software resides within a product or system. (key pad control of a microwave oven, digital function of dashboard display in a car) in a car) • Product-line software focus on a limited marketplace to address mass consumer market. (word processing, graphics, database management) • WebApps (Web applications) network centric software. As web 2.0 emerges, more sophisticated computing environments is supported integrated with remote database and business applications.
  • 25. 25 Software engineering - Layered technology • Software engineering is a fully layered technology. • To develop a software, we need to go from one layer to another. • All these layers are related to each other and each layer demands the fulfillment of the previous layer. demands the fulfillment of the previous layer.
  • 26. 26 Software engineering - Layered technology Quality focus The characteristics of good quality software are: • Correctness of the functions required to be performed by the software. by the software. • Maintainability of the software • Integrity i.e. providing security so that the unauthorized user cannot access information or data. • Usability i.e. the efforts required to use or operate the software.
  • 27. 27 Software engineering - Layered technology Quality focus The characteristics of good quality software are: • Correctness of the functions required to be performed by the software. by the software. • Maintainability of the software • Integrity i.e. providing security so that the unauthorized user cannot access information or data. • Usability i.e. the efforts required to use or operate the software.
  • 28. 28 Software engineering - Layered technology 2. Process • It is the base layer or foundation layer for the software engineering. • The software process is the key to keep all levels together. • It defines a framework that includes different activities and tasks. • In short, it covers all activities, actions and tasks required to be carried out for software development.
  • 29. 29 Software engineering - Layered technology 3. Methods • The method provides the answers of all 'how-to' that are asked during the process. • It provides the technical way to implement the software. • It includes collection of tasks starting from communication, requirement analysis, analysis and design modelling, program construction, testing and support.
  • 30. 30 Software engineering - Layered technology 4. Tools • The software engineering tool is an automated support for the software development. • The tools are integrated i.e the information created by one tool can be used by the other tool. • For example: The Microsoft publisher can be used as a web designing tool.
  • 31. Case Study – An Insulin Pump Control System A personal insulin pump – An embedded system in an insulin pump used by diabetics to maintain blood glucose control. Insulin pump control system Insulin pump control system – Collects data from a blood sugar sensor and calculates the amount of insulin required to be injected. – Calculation based on the rate of change of blood sugar levels. – Sends signals to a micro-pump to deliver the correct dose of insulin. – Safety-critical system as low blood sugars can lead to brain malfunctioning, coma and death; high-blood sugar levels have long-term consequences such as eye and kidney damage. 17
  • 32. Insulin pump hardware architecture 22
  • 33. Activity model of the insulin pump 19
  • 34. Case Study An Embedded System for Smart Card 34
  • 35. 35 The Cost of Software Engineering  Depends on:  The process used, and  The type of software being developed.  The type of software being developed.  Each generic approach has a different profile of cost distribution.  Roughly 60% of costs are development costs, 40% are testing costs.  For custom software, evolution costs often exceed development costs.
  • 36. 36 Challenges facing software engineering Challenge Why? Software needs to .. Heterogeneity Different computers, different Cope with this variability. Heterogeneity Different computers, different platforms, different support systems. Cope with this variability. Delivery Businesses are more responsive  supporting software needs to evolve as rapidly. Be delivered in shorter time without compromising quality. Trust Software is a part of many aspects of our lives (work, study, leisure). Demonstrate that it can be trusted by users.
  • 37. Question Answer What is software? Computer programs and associated documentation. Software products may be developed for a particular customer or may be developed for a general market. What are the attributes of good software? Good software should deliver the required functionality and performance to the user and should be maintainable, Frequently asked questions about software engineering 37 performance to the user and should be maintainable, dependable and usable. What is software engineering? Software engineering is an engineering discipline that is concerned with all aspects of software production. What are the fundamental software engineering activities? Software specification, software development, software validation and software evolution. What is the difference between software engineering and computer science? Computer science focuses on theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software. What is the difference between software engineering and system engineering? System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this more general process.
  • 38. Frequently asked questions about software engineering Question Answer What are the key challenges facing software engineering? Coping with increasing diversity, demands for reduced delivery times and developing trustworthy software. What are the costs of software engineering? Roughly 60% of software costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs. 38 exceed development costs. What are the best software engineering techniques and methods? While all software projects have to be professionally managed and developed, different techniques are appropriate for different types of system. For example, games should always be developed using a series of prototypes whereas safety critical control systems require a complete and analyzable specification to be developed. You can’t, therefore, say that one method is better than another. What differences has the web made to software engineering? The web has led to the availability of software services and the possibility of developing highly distributed service-based systems. Web-based systems development has led to important advances in programming languages and software reuse.