5@introduction To Software Engineering
5@introduction To Software Engineering
2
Software Crisis
success
failure 16%
31%
over budget
53%
Engineering
Cancelled –
Today! 23%
5
Software Crisis
Hw cost
Sw cost
1960 Year
1999
Relative Cost of Hardware and Software
6
Software Crisis
• Unlike Hardware
– Moore’s law: processor speed/memory capacity doubles
every two years
7
Software Crisis
8
Factors Contributing to the Software
Crisis
• Larger problems,
• Lack of adequate training in software
engineering,
• Increasing skill shortage,
• Low productivity improvements.
9
Some Software failures
Ariane 5
It took the European Space Agency 10
years and $7 billion to produce Ariane 5,
a giant rocket capable of hurling a pair of
three-ton satellites into orbit with each
launch and intended to give Europe
overwhelming supremacy in the
commercial space business.
Y2K problem:
12
Some Software failures
The Patriot Missile
o First time used in Gulf war
o Used as a defence from Iraqi Scud
missiles
o Failed several times including one that
killed 28 US soldiers in Dhahran,
Saudi Arabia
Reasons:
A small timing error in the system’s clock
accumulated to the point that after 14
hours, the tracking system was no longer
accurate. In the Dhahran attack, the
system had been operating for more than
13
100 hours.
Some Software failures
The Space Shuttle
Part of an abort scenario for the
Shuttle requires fuel dumps to
lighten the spacecraft. It was
during the second of these
dumps that a (software) crash
occurred.
...the fuel management module,
which had performed one
dump and successfully exited,
restarted when recalled for the
second fuel dump...
14
Some Software failures
15
“No Silver Bullet”
17
Software Myths (Management
Perspectives)
As long as there are good standards and clear procedures in my
company, I shouldn’t be too concerned.
The environment is
only one of the several factors
that determine the quality
of the end software product!
Software Myths (Management
Perspectives)
When my schedule slips, what I have to do is to start a
fire-fighting operation: add more software specialists,
those with higher skills and longer experience - they
will bring the schedule back on the rails!
Unfortunately,
software business does not
entertain schedule compaction
beyond a limit!
Software Myths (Management
Perspectives)
21
Software Myths (Management
Perspectives)
22
Software Myths (Customer
Perspectives)
• A general statement of objectives is sufficient to get started
with the development of software. Missing/vague requirements
can easily be incorporated/detailed out as they get concretized.
24
Software Myths (Developer
Perspectives)
28
What is software?
29
What is software?
Programs
Documentatio Operating
n Procedures
Software=Program+Documentation+Operating Procedures
Components of software
30
Documentation consists of different types of
manuals are Formal Specification
Analysis Context-
/Specification Diagram
Data Flow
Diagrams
Flow Charts
Design
Entity-Relationship
Documentation Diagram
Manuals
Source Code Listings
Implementation Cross-Reference
Listing
Test Data
Testing
Test Results
31
List of documentation manuals
Documentation consists of different types of
manuals are System Overview
User Beginner’s Guide
Manuals Tutorial
Reference Guide
Operating
Procedures
Installation Guide
Operationa
l Manuals
System
Administration Guide
33
Software Product
is a product designated for delivery to the user
source
source documents
documents
codes
codes reports
reports
manuals
manuals
object
object plans
plans
codes
codes
data
data
test test
testresults
results
testsuites
suites prototypes
prototypes
What is software engineering?
• Lack of knowledge
37
Software Process
• Wrong motivations
• Insufficient commitment
Improved future state
Process improvement
begins
Initial state
state
Productivity
Learning curve
Time
38
Software Characteristics:
39
Software Characteristics:
40
Software Characteristics:
Comparison of constructing a bridge vis-à-vis writing a program.
Sr. Constructing a bridge Writing a program
No
1. Only some parts of the problem are
The problem is well understood
understood, others are not
2. Every program is different and designed for
There are many existing bridges
special applications.
3. The requirement for a bridge typically do Requirements typically change during all
not change much during construction phases of development.
4. The strength and stability of a bridge can be Not possible to calculate correctness of a
calculated with reasonable precision program with existing methods.
5. When a bridge collapses, there is a When a program fails, the reasons are often
detailed investigation and report unavailable or even deliberately concealed.
6. Engineers have been constructing bridges Developers have been writing programs
for thousands of years for 50 years or so.
7. Materials (wood, stone,iron, steel) and Hardware and software changes rapidly.
techniques (making joints in wood, carving
stone, casting iron) change slowly.
41
Some Terminologies
The milestones are the events that are used to ascertain the status of
the project. Finalisation of specification is a milestone. Completion of
design documentation is another milestone. The milestones are
essential for project planning and management.
42
Some Terminologies
Product and Process
Product: What is delivered to the customer, is called a product. It
may include source code, specification document, manuals,
documentation etc. Basically, it is nothing but a set of deliverables
only.
If the process is weak, the end product will undoubtedly suffer, but
an obsessive over reliance on process is also dangerous.
43
Some Terminologies
44
Some Terminologies
45
Some Terminologies
46
Some Terminologies
There are many definitions of the term module. They range from “a
module is a FORTRAN subroutine” to “a module is an Ada
Package”, to “Procedures and functions of PASCAL and C”, to “C+
+ Java classes” to “Java packages” to “a module is a work
assignment for an individual developer”. All these definition are
correct. The term subprogram is also used sometimes in place of
module.
47
Some Terminologies
48
Some Terminologies
49
Software Applications
System Real
Software Time
Software
Engineering Embedded
and Scientific Software
Software
50
Role of Management in Software
Development
Factors
People Project
Product Process
51
Role of Management in Software
Development
People
Project Dependency
4 2 Product
Order
Process 52
Multiple Choice Questions
Note: Select most appropriate answer of the following questions:
1.1 Software is
(a) Superset of programs (b) subset of programs
(c) Set of programs (d) none of the above
1.2 Which is NOT the part of operating procedure manuals?
(a) User manuals (b) Operational manuals
(c) Documentation manuals (d) Installation manuals
1.3 Which is NOT a software characteristic?
(a) Software does not wear out (b) Software is flexible
(c) Software is not manufactured (d) none of the above
1.4 Product is
(a) Deliverables (b) User expectations
(c) Organisation’s effort in development (d) none of the above
1.5 To produce a good quality product, process should be
(a) Complex (b) Efficient
(c) Rigorous (d) none of the above 53
Multiple Choice Questions
Note: Select most appropriate answer of the following questions:
1.6 Which is not a product metric?
(a) Size (b) Reliability
(c) Productivity (d) Functionality
1.7 Which is NOT a process metric?
(a) Productivity (b) Functionality
(c) Quality (d) Efficiency
1.8 Effort is measured in terms of:
(a) Person-months (b) Rupees
(c) Persons (d) Months
1.9 UML stands for
(a) Uniform modeling language (b) Unified modeling language
(c) Unit modeling language (d) Universal modeling
language
1.10 An independently deliverable piece of functionality providing access to its
services through interface is called
(a) Software measurement (b) Software composition
54
(c) Software measure (d) Software component
Multiple Choice Questions
Note: Select most appropriate answer of the following questions:
1.11 Infrastructure software are covered under
(a) Generic products (b) Customised products
(c) Generic and Customised products (d) none of the above
1.12 Management of software development is dependent on
(a) people (b) product
(c) process (d) all of the above
1.13 During software development, which factor is most crucial?
(a) People (b) Product
(c) Process (d) Project
1.14 Program is
(a) subset of software (b) super set of software
(c) software (d) none of the above
1.15 Milestones are used to
(a) know the cost of the project (b) know the status of the
project
55
(c) know user expectations (d) none of the above
Multiple Choice Questions
Note: Select most appropriate answer of the following questions:
1.16 The term module used during design phase refers to
(a) Function (b) Procedure
(c) Sub program (d) All of the above
1.17 Software consists of
(a) Set of instructions + operating system
(b) Programs + documentation + operating procedures
(c) Programs + hardware manuals (d) Set of programs
1.18 Software engineering approach is used to achieve:
(a) Better performance of hardware (b) Error free software
(c) Reusable software (d) Quality software product
1.19 Concept of software engineering are applicable to
(a) Fortran language only (b) Pascal language only
(c) ‘C’ language only (d) All of the above
1.20 CASE Tool is
(a) Computer Aided Software Engineering (b) Component Aided Software Engineering
(c) Constructive Aided Software Engineering (d)Computer Analysis Software Engineering
56
Exercises
1.1 Why is primary goal of software development now shifting from
producing good quality software to good quality maintainable software?
1.2 List the reasons for the “software crisis”?Why are CASE tools not
normally able to control it?
1.3 “The software crisis is aggravated by the progress in hardware
technology?” Explain with examples.
1.4 What is software crisis? Was Y2K a software crisis?
1.5 What is the significance of software crisis in reference to software
engineering discipline.
1.6 How are software myths affecting software process? Explain with the
help of examples.
1.7 State the difference between program and software. Why have documents
and documentation become very important.
1.8 What is software engineering? Is it an art, craft or a science? Discuss.
57
Exercises
1.9 What is aim of software engineering? What does the discipline of
software engineering discuss?
1.10 Define the term “Software engineering”. Explain the major differences
between software engineering and other traditional engineering disciplines.
1.11 What is software process? Why is it difficult to improve it?
1.12 Describe the characteristics of software contrasting it with a diagram
that the software does not wear out.
1.13 Write down the major characteristics of a software. Illustrate with a
diagram that the software does not wear out.
1.14 What are the components of a software? Discuss how a software
differes from a program.
1.15 Discuss major areas of the applications of the software.
1.16 Is software a product or process? Justify your answer with example
58
Exercises
1.17 Differentiate between the following
(i) Deliverables and milestones (ii) Product and process
(iii) Measures, metrics and measurement
1.18 What is software metric? How is it different from software measurement
1.19 Discuss software process and product metrics with the help of expales.
59
Exercises
1.23 Describe the role of management in software development with the help
of examples.
1.24 What are various factors of management dependency in software
development. Discuss each factor in detail.
60