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

PPTX
software engineering introduction is a gateway of engineer
PPT
OOSE Unit 1 PPT.ppt
PPT
Oose unit 1 ppt
PPT
SE Lecture 1.ppt
PPT
SE Lecture 1.ppt
PPT
Introduction to Software Engineering.ppt
PPT
Rekayasa Perangkat Lunak Pertemuan 1 RPL
software engineering introduction is a gateway of engineer
OOSE Unit 1 PPT.ppt
Oose unit 1 ppt
SE Lecture 1.ppt
SE Lecture 1.ppt
Introduction to Software Engineering.ppt
Rekayasa Perangkat Lunak Pertemuan 1 RPL

Similar to Introduction to Software Engineering Notes (20)

PDF
Software Engineering Introduction by Dr M Zhu
PDF
CS-326 Software Engineering for computer.pdf
PPT
Chapter 01
PPT
Chapter 01
PPT
ch1_introduction.pptgtsytrsytryhtrhgrreqreedwds
PPT
Software Engineering
PPT
ch1_introduction.ppt
PPT
ch1_introduction (1).ppt
PPT
ch1_introduction (2).ppt
PPT
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
PPT
Chapter 01
PPTX
Week1.pptx
PDF
FSE Chap 1.pdf best ppt for second year software engineering student frist se...
PPTX
20CS4103 SE UNIT 1-1.pptx software engineering
PPT
SE-Lecture1.ppt
PPT
Week_01-Intro to Software Engineering-1.ppt
PPTX
S.E. Unit 1 introduction to software engineering
PDF
lecture 1.pdf
PDF
Software Engineering Lecture for Computer Science.pdf
Software Engineering Introduction by Dr M Zhu
CS-326 Software Engineering for computer.pdf
Chapter 01
Chapter 01
ch1_introduction.pptgtsytrsytryhtrhgrreqreedwds
Software Engineering
ch1_introduction.ppt
ch1_introduction (1).ppt
ch1_introduction (2).ppt
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
Chapter 01
Week1.pptx
FSE Chap 1.pdf best ppt for second year software engineering student frist se...
20CS4103 SE UNIT 1-1.pptx software engineering
SE-Lecture1.ppt
Week_01-Intro to Software Engineering-1.ppt
S.E. Unit 1 introduction to software engineering
lecture 1.pdf
Software Engineering Lecture for Computer Science.pdf
Ad

More from Dr Anuranjan Misra (7)

PDF
Introduction to Data Analytics, AKTU - UNIT-1
PDF
Software Engineering Software Project Management
PDF
Software Engineering TESTING AND MAINTENANCE
PDF
Software Engineering - SOFTWARE DESIGN Process
PDF
Software Engineering REQUIREMENTS ANALYSIS AND SPECIFICATION
PDF
Software Engineering Perspective and Specialized Process Models
PDF
Various Process of Software Engineering notes
Introduction to Data Analytics, AKTU - UNIT-1
Software Engineering Software Project Management
Software Engineering TESTING AND MAINTENANCE
Software Engineering - SOFTWARE DESIGN Process
Software Engineering REQUIREMENTS ANALYSIS AND SPECIFICATION
Software Engineering Perspective and Specialized Process Models
Various Process of Software Engineering notes
Ad

Recently uploaded (20)

PPTX
sap open course for s4hana steps from ECC to s4
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Electronic commerce courselecture one. Pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
Cloud computing and distributed systems.
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Encapsulation theory and applications.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Approach and Philosophy of On baking technology
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
KodekX | Application Modernization Development
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPT
Teaching material agriculture food technology
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Spectroscopy.pptx food analysis technology
sap open course for s4hana steps from ECC to s4
Reach Out and Touch Someone: Haptics and Empathic Computing
Electronic commerce courselecture one. Pdf
Programs and apps: productivity, graphics, security and other tools
Cloud computing and distributed systems.
MYSQL Presentation for SQL database connectivity
Mobile App Security Testing_ A Comprehensive Guide.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Encapsulation theory and applications.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Approach and Philosophy of On baking technology
Per capita expenditure prediction using model stacking based on satellite ima...
Digital-Transformation-Roadmap-for-Companies.pptx
KodekX | Application Modernization Development
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Teaching material agriculture food technology
Dropbox Q2 2025 Financial Results & Investor Presentation
Unlocking AI with Model Context Protocol (MCP)
Empathic Computing: Creating Shared Understanding
Spectroscopy.pptx food analysis technology

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.