SlideShare uma empresa Scribd logo
1 de 64
Baixar para ler offline
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
1
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
2
Why Software Engineering ?Why Software Engineering ?Why Software Engineering ?Why Software Engineering ?
Change in nature & complexity of software
Ready for change
Concept of one “guru” is over
We all want improvement
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
3
Software industry is in Crisis!
Source: The Standish Group International, Inc. (CHAOS research)
over budget
53%
success
16%failure
31%
The Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of Software
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
4
• Data on 28,000 projects
completed in 2000
This is the
SORRY state
of Software
Engineering
Today!
Completed
Late, over
budget, and/or
with features
missing – 49%
Cancelled –
23%
Successful –
28%
The Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of Software
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
5
The Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of Software
As per the IBM report, “31%of the project get
cancelled before they are completed, 53% over-
run their cost estimates by an average of 189%
and for every 100 projects, there are 94 restarts”.
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
6
The Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of Software
Year
Hw cost
Sw cost
Relative Cost of Hardware and Software
1960 1999
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
7
• Unlike Hardware
– Moore’s law: processor speed/memory capacity doubles
every two years
The Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of Software
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
8
Managers and Technical Persons are asked:
Why does it take so long to get the program finished?
The Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of Software
Why are costs so high?
Why can not we find all errors before release?
Why do we have difficulty in measuring progress of software
development?
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
9
Factors Contributing to the Software CrisisFactors Contributing to the Software CrisisFactors Contributing to the Software CrisisFactors Contributing to the Software Crisis
• Larger problems,
• Lack of adequate training in software engineering,
• Increasing skill shortage,
• Low productivity improvements.
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
10
Some Software failuresSome Software failuresSome Software failuresSome Software failures
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.
Ariane 5
The rocket was destroyed after 39 seconds
of its launch, at an altitude of two and a
half miles along with its payload of four
expensive and uninsured scientific
satellites.
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
11
When the guidance system’s own
computer tried to convert one
piece of data the sideways velocity
of the rocket from a 64 bit format
to a 16 bit format; the number was
too big, and an overflow error
resulted after 36.7 seconds. When
the guidance system shutdown, it
passed control to an identical,
redundant unit, which was there to
provide backup in case of just such
a failure. Unfortunately, the second
unit, which had failed in the
identical manner a few
milliseconds before.
Some Software failuresSome Software failuresSome Software failuresSome Software failures
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
12
Y2K problem:
It was simply the ignorance about the
adequacy or otherwise of using only
last two digits of the year.
The 4-digit date format, like 1964,
was shortened to 2-digit format, like
64.
Some Software failuresSome Software failuresSome Software failuresSome Software failures
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
13
The Patriot MissileThe Patriot MissileThe Patriot MissileThe Patriot Missile
o First time used in Gulf war
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
100 hours.
o Used as a defense from Iraqi Scud
missiles
o Failed several times including one that
killed 28 US soldiers in Dhahran,
Saudi Arabia
Some Software failuresSome Software failuresSome Software failuresSome Software failures
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
14
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...
The Space Shuttle
Some Software failuresSome Software failuresSome Software failuresSome Software failures
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
15
A simple fix took care of the problem…but the
programmers decided to see if they could come up with a
systematic way to eliminate these generic sorts of bugs in
the future. A random group of programmers applied this
system to the fuel dump module and other modules.
Seventeen additional, previously unknown problems
surfaced!
Some Software failuresSome Software failuresSome Software failuresSome Software failures
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
16
Some Software failuresSome Software failuresSome Software failuresSome Software failures
Many companies have experienced failures in their
accounting system due to faults in the software itself. The
failures range from producing the wrong information to
the whole system crashing.
Financial Software
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
17
Some Software failuresSome Software failuresSome Software failuresSome Software failures
Windows XP
o Microsoft released Windows XP on October 25, 2001.
o On the same day company posted 18 MB of
compatibility patches on the website for bug fixes,
compatibility updates, and enhancements.
o Two patches fixed important security holes.
This is Software Engineering.
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
18
The hardware cost continues to decline
drastically.
““““No Silver BulletNo Silver BulletNo Silver BulletNo Silver Bullet””””
However, there are desperate cries for a
silver bullet something to make software
costs drop as rapidly as computer hardware
costs do.
But as we look to the horizon of a decade,
we see no silver bullet. There is no single
development, either in technology or in
management technique, that by itself
promises even one order of magnitude
improvement in productivity, in reliability
and in simplicity.
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
19
The hard part of building software is the specification, design and
testing of this conceptual construct, not the labour of representing it
and testing the correctness of representation.
While there is no royal road, there is a path forward.
Is reusability (and open source) the new silver bullet?
““““No Silver BulletNo Silver BulletNo Silver BulletNo Silver Bullet””””
We still make syntax errors, to be sure, but they are trivial as
compared to the conceptual errors (logic errors) in most systems.
That is why, building software is always hard and there is inherently
no silver bullet.
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
20
““““No Silver BulletNo Silver BulletNo Silver BulletNo Silver Bullet””””
The blame for software bugs belongs to:
• Software companies
• Software developers
• Legal system
• Universities
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
21
What is software?What is software?What is software?What is software?
• Computer programs and associated
documentation
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
22
Programs
Operating
Procedures
Documentation
Software=Program+Documentation+Operating Procedures
Components of software
What is software?What is software?What is software?What is software?
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
23
Documentation
Manuals
Analysis
/Specification
Design
Implementation
Testing
Formal Specification
Context-
Diagram
Data Flow
Diagrams
Flow Charts
Entity-Relationship
Diagram
Source Code Listings
Cross-Reference
Listing
Test Data
Test Results
Documentation consists of different types of manuals areDocumentation consists of different types of manuals areDocumentation consists of different types of manuals areDocumentation consists of different types of manuals are
List of documentation manuals
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
24
Operating
Procedures
User
Manuals
Operational
Manuals
System Overview
Beginner’s Guide
Tutorial
Reference Guide
Installation Guide
System
Administration Guide
List of operating procedure manuals.
Documentation consists of different types of manuals areDocumentation consists of different types of manuals areDocumentation consists of different types of manuals areDocumentation consists of different types of manuals are
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
25
• Software products may be developed for a particular
customer or may be developed for a general market
Software ProductSoftware ProductSoftware ProductSoftware Product
• Software products may be
–Generic - developed to be sold to a range of different
customers
–Bespoke (custom) - developed for a single customer according
to their specification
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
26
Software product is a product designated for
delivery to the user
source
codes
source
codes
object
codes
object
codes
plansplans
reportsreports
manualsmanuals
documentsdocuments
test suitestest suites
prototypesprototypes
datadata
test resultstest results
Software ProductSoftware ProductSoftware ProductSoftware Product
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
27
What is software engineering?What is software engineering?What is software engineering?What is software engineering?
Software engineering is an engineering discipline which
is concerned with all aspects of software production
Software engineers should
– adopt a systematic and organised approach to their
work
– use appropriate tools and techniques depending on
• the problem to be solved,
• the development constraints and
– use the resources available
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
28
At the first conference on software engineering in 1968, Fritz Bauer
defined software engineering as “The establishment and use of
sound engineering principles in order to obtain economically
developed software that is reliable and works efficiently on real
machines”.
Stephen Schach defined the same as “A discipline whose aim is the
production of quality software, software that is delivered on time,
within budget, and that satisfies its requirements”.
Both the definitions are popular and acceptable to majority.
However, due to increase in cost of maintaining software, objective
is now shifting to produce quality software that is maintainable,
delivered on time, within budget, and also satisfies its requirements.
What is software engineering?What is software engineering?What is software engineering?What is software engineering?
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
29
Software ProcessSoftware ProcessSoftware ProcessSoftware Process
The software process is the way in which we produce
software.
Why is it difficult to improve software process ?
• Not enough time
• Lack of knowledge
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
30
Learning curve
Do not quit here!
Improved future state
Process improvement
begins
Initial state
state
Productivity
Time
• Wrong motivations
Software ProcessSoftware ProcessSoftware ProcessSoftware Process
• Insufficient commitment
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
31
Software Characteristics:Software Characteristics:Software Characteristics:Software Characteristics:
Software does not wear out.
Useful life
phase
Wear out
phase
Burn-in
phase
FailureIntensity
Time
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
32
Software is not manufactured
Software Characteristics:Software Characteristics:Software Characteristics:Software Characteristics:
Reusability of components
Software is flexible
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
33
Comparison of constructing a bridge vis-à-vis writing a program.
7.
6.
5.
4.
3.
2.
1.
Writing a programConstructing a bridgeSr.
No
Software Characteristics:Software Characteristics:Software Characteristics:Software Characteristics:
The problem is well understood
Only some parts of the problem are
understood, others are not
There are many existing bridges
The requirement for a bridge typically do
not change much during construction
The strength and stability of a bridge can be
calculated with reasonable precision
When a bridge collapses, there is a
detailed investigation and report
Engineers have been constructing bridges
for thousands of years
Materials (wood, stone,iron, steel) and
techniques (making joints in wood, carving
stone, casting iron) change slowly.
Every program is different and designed for
special applications.
Requirements typically change during all
phases of development.
Not possible to calculate correctness of a
program with existing methods.
When a program fails, the reasons are often
unavailable or even deliberately concealed.
Developers have been writing programs
for 50 years or so.
Hardware and software changes rapidly.
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
34
System
Software
Real
Time
Software
Embedded
Software
Engineering
and Scientific
Software
Web based
Software
Artificial
Intelligence
Software
Personal
Computer
Software
Business
Software
The Changing Nature of SoftwareThe Changing Nature of SoftwareThe Changing Nature of SoftwareThe Changing Nature of Software
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
35
The Changing Nature of SoftwareThe Changing Nature of SoftwareThe Changing Nature of SoftwareThe Changing Nature of Software
Trend has emerged to provide source code to the
customer and organizations.
Software where source codes are available are known
as open source software.
Examples
Open source software: LINUX, MySQL, PHP, Open office,
Apache webserver etc.
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
36
Management may be confident about good
standards and clear procedures of the company.
But the taste of any food item
is in the eating;
not in the Recipe !
Software Myths (Management PerspectivesSoftware Myths (Management PerspectivesSoftware Myths (Management PerspectivesSoftware Myths (Management Perspectives)
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
37
Company has latest computers and state-of-
the-art software tools, so we shouldn’t worry
about the quality of the product.
The infrastructure is
only one of the several factors
that determine the quality
of the product!
Software Myths (Management PerspectivesSoftware Myths (Management PerspectivesSoftware Myths (Management PerspectivesSoftware Myths (Management Perspectives)
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
38
Addition of more software specialists, those
with higher skills and longer experience may
bring the schedule back on the track!
Unfortunately,
that may further delay the schedule!
Software Myths (Management PerspectivesSoftware Myths (Management PerspectivesSoftware Myths (Management PerspectivesSoftware Myths (Management Perspectives)
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
39
Software is easy to change
The reality is totally different.
Software Myths (Management PerspectivesSoftware Myths (Management PerspectivesSoftware Myths (Management PerspectivesSoftware Myths (Management Perspectives)
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
40
Computers provide greater reliability than
the devices they replace
This is not always true.
Software Myths (Management PerspectivesSoftware Myths (Management PerspectivesSoftware Myths (Management PerspectivesSoftware Myths (Management Perspectives)
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
41
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.
If we do so, we are heading
towards a disaster.
Software Myths (Customer PerspectivesSoftware Myths (Customer PerspectivesSoftware Myths (Customer PerspectivesSoftware Myths (Customer Perspectives)
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
42
Software with more features is better
software
Software can work right the first time
Both are only myths!
Software Myths (Customer PerspectivesSoftware Myths (Customer PerspectivesSoftware Myths (Customer PerspectivesSoftware Myths (Customer Perspectives)
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
43
Once the software is demonstrated, the job is done.
Usually, the problems just begin!
Software Myths (Developer PerspectivesSoftware Myths (Developer PerspectivesSoftware Myths (Developer PerspectivesSoftware Myths (Developer Perspectives)
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
44
Software quality can not be assessed before
testing.
However, quality assessment techniques
should be used through out the
software development life cycle.
Software Myths (Developer PerspectivesSoftware Myths (Developer PerspectivesSoftware Myths (Developer PerspectivesSoftware Myths (Developer Perspectives)
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
45
The only deliverable for a software
development project is the tested code.
Tested code is only one of the deliverable!
Software Myths (Developer PerspectivesSoftware Myths (Developer PerspectivesSoftware Myths (Developer PerspectivesSoftware Myths (Developer Perspectives)
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
46
Aim is to develop working programs
Those days are over. Now objective is to
develop good quality maintainable
programs!
Software Myths (Developer PerspectivesSoftware Myths (Developer PerspectivesSoftware Myths (Developer PerspectivesSoftware Myths (Developer Perspectives)
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
47
Some TerminologiesSome TerminologiesSome TerminologiesSome Terminologies
Deliverables and Milestones
Different deliverables are generated during software development.
The examples are source code, user manuals, operating procedure
manuals etc.
The milestones are the events that are used to ascertain the status of
the project. Finalization of specification is a milestone. Completion of
design documentation is another milestone. The milestones are
essential for project planning and management.
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
48
Product and Process
Some TerminologiesSome TerminologiesSome TerminologiesSome Terminologies
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.
Process: Process is the way in which we produce software. It is the
collection of activities that leads to (a part of) a product. An efficient
process is required to produce good quality products.
If the process is weak, the end product will undoubtedly suffer, but
an obsessive over reliance on process is also dangerous.
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
49
Some TerminologiesSome TerminologiesSome TerminologiesSome Terminologies
Measures, Metrics and Measurement
A measure provides a quantitative indication of the extent,
dimension, size, capacity, efficiency, productivity or reliability of
some attributes of a product or process.
Measurement is the act of evaluating a measure.
A metric is a quantitative measure of the degree to which a system,
component or process possesses a given attribute.
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
50
Some TerminologiesSome TerminologiesSome TerminologiesSome Terminologies
Software Process and Product Metrics
Process metrics quantify the attributes of software development
process and environment;
whereas product metrics are measures for the software product.
Examples
Process metrics: Productivity, Quality, Efficiency etc.
Product metrics: Size, Reliability, Complexity etc.
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
51
Productivity and Effort
Productivity is defined as the rate of output, or production per unit of
effort, i.e. the output achieved with regard to the time taken but
irrespective of the cost incurred.
Hence most appropriate unit of effort is Person Months (PMs),
meaning thereby number of persons involved for specified months.
So, productivity may be measured as LOC/PM (lines of code
produced/person month)
Some TerminologiesSome TerminologiesSome TerminologiesSome Terminologies
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
52
Some TerminologiesSome TerminologiesSome TerminologiesSome Terminologies
Module and Software Components
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.
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
53
“An independently deliverable piece of functionality providing
access to its services through interfaces”.
“A component represents a modular, deployable, and replaceable
part of a system that encapsulates implementation and exposes a set
of interfaces”.
Some TerminologiesSome TerminologiesSome TerminologiesSome Terminologies
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
54
Some TerminologiesSome TerminologiesSome TerminologiesSome Terminologies
Generic and Customized Software Products
Generic products are developed for anonymous customers. The target
is generally the entire world and many copies are expected to be sold.
Infrastructure software like operating system, compilers, analyzers,
word processors, CASE tools etc. are covered in this category.
The customized products are developed for particular customers.
The specific product is designed and developed as per customer
requirements. Most of the development projects (say about
80%)come under this category.
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
55
Role of Management in Software Development
Factors
People
Product Process
Project
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
56
Dependency
Order
Project Product
Process
People
1
2
3
4
Role of Management in Software Development
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
57
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) Software is always correct
1.4 Product is
(a) Deliverables (b) User expectations
(c) Organization's effort in development (d) none of the above
Multiple Choice Questions
Note: Select most appropriate answer of the following questions:
1.5 To produce a good quality product, process should be
(a) Complex (b) Efficient
(c) Rigorous (d) none of the above
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
58
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
Multiple Choice Questions
Note: Select most appropriate answer of the following questions:
1.1 An independently deliverable piece of functionality providing access to
its services through interface is called
(a) Software measurement (b) Software composition
(c) Software measure (d) Software component
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
59
1.11 Infrastructure software are covered under
(a) Generic products (b) Customized products
(c) Generic and Customized 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
Multiple Choice Questions
Note: Select most appropriate answer of the following questions:
1.15 Milestones are used to
(a) know the cost of the project (b) know the status of the project
(c) know user expectations (d) none of the above
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
60
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
Multiple Choice Questions
Note: Select most appropriate answer of the following questions:
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
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
61
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.
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
62
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 the
characteristics of hardware.
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 differs
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
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
63
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 examples.
1.20 What is productivity? How is it related to effort. What is the unit of
effort.
1.21 Differentiate between module and software component.
1.22 Distinguish between generic and customized software products. Which
one has larger share of market and why?
1.23 Is software a product or process? Justify your answer with example
Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007
64
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.
1.25 What is more important: Product or process? Justify your answer.
Exercises

Mais conteúdo relacionado

Destaque (8)

Lecture 6 agile software development
Lecture 6   agile software developmentLecture 6   agile software development
Lecture 6 agile software development
 
Agile Software Development - making programming fun again
Agile Software Development - making programming fun againAgile Software Development - making programming fun again
Agile Software Development - making programming fun again
 
Ch04
Ch04Ch04
Ch04
 
03 fse agiledevelopment
03 fse agiledevelopment03 fse agiledevelopment
03 fse agiledevelopment
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
SE chapter 4
SE chapter 4SE chapter 4
SE chapter 4
 
Unit1
Unit1Unit1
Unit1
 
software engineering
software engineeringsoftware engineering
software engineering
 

Semelhante a Chapter 1 introduction

Chapter 1 introduction
Chapter 1 introductionChapter 1 introduction
Chapter 1 introduction
Piyush Gogia
 
40 fucking characters are you fucking crazy I hate this site just let me down...
40 fucking characters are you fucking crazy I hate this site just let me down...40 fucking characters are you fucking crazy I hate this site just let me down...
40 fucking characters are you fucking crazy I hate this site just let me down...
maccdx
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software design
Nancy Bakshi
 

Semelhante a Chapter 1 introduction (20)

Software engineering notes for AKTU B.Tech students
Software engineering notes for AKTU B.Tech studentsSoftware engineering notes for AKTU B.Tech students
Software engineering notes for AKTU B.Tech students
 
[slides] Software Engineering Third Edition - Aggarwal, Singh.pdf
[slides] Software Engineering Third Edition - Aggarwal, Singh.pdf[slides] Software Engineering Third Edition - Aggarwal, Singh.pdf
[slides] Software Engineering Third Edition - Aggarwal, Singh.pdf
 
Chapter 1 introduction
Chapter 1 introductionChapter 1 introduction
Chapter 1 introduction
 
Software engineering unit 1
Software engineering  unit 1Software engineering  unit 1
Software engineering unit 1
 
Chapter 4 software project planning
Chapter 4 software project planningChapter 4 software project planning
Chapter 4 software project planning
 
Chapter 2 software development life cycle models
Chapter 2 software development life cycle modelsChapter 2 software development life cycle models
Chapter 2 software development life cycle models
 
SDD.pdf
SDD.pdfSDD.pdf
SDD.pdf
 
Chapter 7 software reliability
Chapter 7 software reliabilityChapter 7 software reliability
Chapter 7 software reliability
 
40 fucking characters are you fucking crazy I hate this site just let me down...
40 fucking characters are you fucking crazy I hate this site just let me down...40 fucking characters are you fucking crazy I hate this site just let me down...
40 fucking characters are you fucking crazy I hate this site just let me down...
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software design
 
Chapter 8 software testing
Chapter 8 software testingChapter 8 software testing
Chapter 8 software testing
 
ENHANCED SOFTWARE DESIGN FOR BOOSTED CONTINUOUS SOFTWARE DELIVERY
ENHANCED SOFTWARE DESIGN FOR BOOSTED CONTINUOUS SOFTWARE DELIVERYENHANCED SOFTWARE DESIGN FOR BOOSTED CONTINUOUS SOFTWARE DELIVERY
ENHANCED SOFTWARE DESIGN FOR BOOSTED CONTINUOUS SOFTWARE DELIVERY
 
Chapter 6 software metrics
Chapter 6 software metricsChapter 6 software metrics
Chapter 6 software metrics
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software design
 
Testing tutorials important
Testing tutorials importantTesting tutorials important
Testing tutorials important
 
SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docSE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.doc
 
SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docSE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.doc
 
Chapter 10 software certification
Chapter 10 software certificationChapter 10 software certification
Chapter 10 software certification
 
Introduction to Software Reverse Engineering
Introduction to Software Reverse EngineeringIntroduction to Software Reverse Engineering
Introduction to Software Reverse Engineering
 
software engineering.docx
software engineering.docxsoftware engineering.docx
software engineering.docx
 

Chapter 1 introduction

  • 1. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 1
  • 2. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 2 Why Software Engineering ?Why Software Engineering ?Why Software Engineering ?Why Software Engineering ? Change in nature & complexity of software Ready for change Concept of one “guru” is over We all want improvement
  • 3. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 3 Software industry is in Crisis! Source: The Standish Group International, Inc. (CHAOS research) over budget 53% success 16%failure 31% The Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of Software
  • 4. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 4 • Data on 28,000 projects completed in 2000 This is the SORRY state of Software Engineering Today! Completed Late, over budget, and/or with features missing – 49% Cancelled – 23% Successful – 28% The Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of Software
  • 5. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 5 The Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of Software As per the IBM report, “31%of the project get cancelled before they are completed, 53% over- run their cost estimates by an average of 189% and for every 100 projects, there are 94 restarts”.
  • 6. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 6 The Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of Software Year Hw cost Sw cost Relative Cost of Hardware and Software 1960 1999
  • 7. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 7 • Unlike Hardware – Moore’s law: processor speed/memory capacity doubles every two years The Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of Software
  • 8. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 8 Managers and Technical Persons are asked: Why does it take so long to get the program finished? The Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of SoftwareThe Evolving Role of Software Why are costs so high? Why can not we find all errors before release? Why do we have difficulty in measuring progress of software development?
  • 9. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 9 Factors Contributing to the Software CrisisFactors Contributing to the Software CrisisFactors Contributing to the Software CrisisFactors Contributing to the Software Crisis • Larger problems, • Lack of adequate training in software engineering, • Increasing skill shortage, • Low productivity improvements.
  • 10. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 10 Some Software failuresSome Software failuresSome Software failuresSome Software failures 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. Ariane 5 The rocket was destroyed after 39 seconds of its launch, at an altitude of two and a half miles along with its payload of four expensive and uninsured scientific satellites.
  • 11. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 11 When the guidance system’s own computer tried to convert one piece of data the sideways velocity of the rocket from a 64 bit format to a 16 bit format; the number was too big, and an overflow error resulted after 36.7 seconds. When the guidance system shutdown, it passed control to an identical, redundant unit, which was there to provide backup in case of just such a failure. Unfortunately, the second unit, which had failed in the identical manner a few milliseconds before. Some Software failuresSome Software failuresSome Software failuresSome Software failures
  • 12. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 12 Y2K problem: It was simply the ignorance about the adequacy or otherwise of using only last two digits of the year. The 4-digit date format, like 1964, was shortened to 2-digit format, like 64. Some Software failuresSome Software failuresSome Software failuresSome Software failures
  • 13. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 13 The Patriot MissileThe Patriot MissileThe Patriot MissileThe Patriot Missile o First time used in Gulf war 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 100 hours. o Used as a defense from Iraqi Scud missiles o Failed several times including one that killed 28 US soldiers in Dhahran, Saudi Arabia Some Software failuresSome Software failuresSome Software failuresSome Software failures
  • 14. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 14 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... The Space Shuttle Some Software failuresSome Software failuresSome Software failuresSome Software failures
  • 15. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 15 A simple fix took care of the problem…but the programmers decided to see if they could come up with a systematic way to eliminate these generic sorts of bugs in the future. A random group of programmers applied this system to the fuel dump module and other modules. Seventeen additional, previously unknown problems surfaced! Some Software failuresSome Software failuresSome Software failuresSome Software failures
  • 16. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 16 Some Software failuresSome Software failuresSome Software failuresSome Software failures Many companies have experienced failures in their accounting system due to faults in the software itself. The failures range from producing the wrong information to the whole system crashing. Financial Software
  • 17. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 17 Some Software failuresSome Software failuresSome Software failuresSome Software failures Windows XP o Microsoft released Windows XP on October 25, 2001. o On the same day company posted 18 MB of compatibility patches on the website for bug fixes, compatibility updates, and enhancements. o Two patches fixed important security holes. This is Software Engineering.
  • 18. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 18 The hardware cost continues to decline drastically. ““““No Silver BulletNo Silver BulletNo Silver BulletNo Silver Bullet”””” However, there are desperate cries for a silver bullet something to make software costs drop as rapidly as computer hardware costs do. But as we look to the horizon of a decade, we see no silver bullet. There is no single development, either in technology or in management technique, that by itself promises even one order of magnitude improvement in productivity, in reliability and in simplicity.
  • 19. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 19 The hard part of building software is the specification, design and testing of this conceptual construct, not the labour of representing it and testing the correctness of representation. While there is no royal road, there is a path forward. Is reusability (and open source) the new silver bullet? ““““No Silver BulletNo Silver BulletNo Silver BulletNo Silver Bullet”””” We still make syntax errors, to be sure, but they are trivial as compared to the conceptual errors (logic errors) in most systems. That is why, building software is always hard and there is inherently no silver bullet.
  • 20. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 20 ““““No Silver BulletNo Silver BulletNo Silver BulletNo Silver Bullet”””” The blame for software bugs belongs to: • Software companies • Software developers • Legal system • Universities
  • 21. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 21 What is software?What is software?What is software?What is software? • Computer programs and associated documentation
  • 22. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 22 Programs Operating Procedures Documentation Software=Program+Documentation+Operating Procedures Components of software What is software?What is software?What is software?What is software?
  • 23. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 23 Documentation Manuals Analysis /Specification Design Implementation Testing Formal Specification Context- Diagram Data Flow Diagrams Flow Charts Entity-Relationship Diagram Source Code Listings Cross-Reference Listing Test Data Test Results Documentation consists of different types of manuals areDocumentation consists of different types of manuals areDocumentation consists of different types of manuals areDocumentation consists of different types of manuals are List of documentation manuals
  • 24. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 24 Operating Procedures User Manuals Operational Manuals System Overview Beginner’s Guide Tutorial Reference Guide Installation Guide System Administration Guide List of operating procedure manuals. Documentation consists of different types of manuals areDocumentation consists of different types of manuals areDocumentation consists of different types of manuals areDocumentation consists of different types of manuals are
  • 25. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 25 • Software products may be developed for a particular customer or may be developed for a general market Software ProductSoftware ProductSoftware ProductSoftware Product • Software products may be –Generic - developed to be sold to a range of different customers –Bespoke (custom) - developed for a single customer according to their specification
  • 26. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 26 Software product is a product designated for delivery to the user source codes source codes object codes object codes plansplans reportsreports manualsmanuals documentsdocuments test suitestest suites prototypesprototypes datadata test resultstest results Software ProductSoftware ProductSoftware ProductSoftware Product
  • 27. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 27 What is software engineering?What is software engineering?What is software engineering?What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software production Software engineers should – adopt a systematic and organised approach to their work – use appropriate tools and techniques depending on • the problem to be solved, • the development constraints and – use the resources available
  • 28. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 28 At the first conference on software engineering in 1968, Fritz Bauer defined software engineering as “The establishment and use of sound engineering principles in order to obtain economically developed software that is reliable and works efficiently on real machines”. Stephen Schach defined the same as “A discipline whose aim is the production of quality software, software that is delivered on time, within budget, and that satisfies its requirements”. Both the definitions are popular and acceptable to majority. However, due to increase in cost of maintaining software, objective is now shifting to produce quality software that is maintainable, delivered on time, within budget, and also satisfies its requirements. What is software engineering?What is software engineering?What is software engineering?What is software engineering?
  • 29. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 29 Software ProcessSoftware ProcessSoftware ProcessSoftware Process The software process is the way in which we produce software. Why is it difficult to improve software process ? • Not enough time • Lack of knowledge
  • 30. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 30 Learning curve Do not quit here! Improved future state Process improvement begins Initial state state Productivity Time • Wrong motivations Software ProcessSoftware ProcessSoftware ProcessSoftware Process • Insufficient commitment
  • 31. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 31 Software Characteristics:Software Characteristics:Software Characteristics:Software Characteristics: Software does not wear out. Useful life phase Wear out phase Burn-in phase FailureIntensity Time
  • 32. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 32 Software is not manufactured Software Characteristics:Software Characteristics:Software Characteristics:Software Characteristics: Reusability of components Software is flexible
  • 33. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 33 Comparison of constructing a bridge vis-à-vis writing a program. 7. 6. 5. 4. 3. 2. 1. Writing a programConstructing a bridgeSr. No Software Characteristics:Software Characteristics:Software Characteristics:Software Characteristics: The problem is well understood Only some parts of the problem are understood, others are not There are many existing bridges The requirement for a bridge typically do not change much during construction The strength and stability of a bridge can be calculated with reasonable precision When a bridge collapses, there is a detailed investigation and report Engineers have been constructing bridges for thousands of years Materials (wood, stone,iron, steel) and techniques (making joints in wood, carving stone, casting iron) change slowly. Every program is different and designed for special applications. Requirements typically change during all phases of development. Not possible to calculate correctness of a program with existing methods. When a program fails, the reasons are often unavailable or even deliberately concealed. Developers have been writing programs for 50 years or so. Hardware and software changes rapidly.
  • 34. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 34 System Software Real Time Software Embedded Software Engineering and Scientific Software Web based Software Artificial Intelligence Software Personal Computer Software Business Software The Changing Nature of SoftwareThe Changing Nature of SoftwareThe Changing Nature of SoftwareThe Changing Nature of Software
  • 35. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 35 The Changing Nature of SoftwareThe Changing Nature of SoftwareThe Changing Nature of SoftwareThe Changing Nature of Software Trend has emerged to provide source code to the customer and organizations. Software where source codes are available are known as open source software. Examples Open source software: LINUX, MySQL, PHP, Open office, Apache webserver etc.
  • 36. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 36 Management may be confident about good standards and clear procedures of the company. But the taste of any food item is in the eating; not in the Recipe ! Software Myths (Management PerspectivesSoftware Myths (Management PerspectivesSoftware Myths (Management PerspectivesSoftware Myths (Management Perspectives)
  • 37. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 37 Company has latest computers and state-of- the-art software tools, so we shouldn’t worry about the quality of the product. The infrastructure is only one of the several factors that determine the quality of the product! Software Myths (Management PerspectivesSoftware Myths (Management PerspectivesSoftware Myths (Management PerspectivesSoftware Myths (Management Perspectives)
  • 38. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 38 Addition of more software specialists, those with higher skills and longer experience may bring the schedule back on the track! Unfortunately, that may further delay the schedule! Software Myths (Management PerspectivesSoftware Myths (Management PerspectivesSoftware Myths (Management PerspectivesSoftware Myths (Management Perspectives)
  • 39. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 39 Software is easy to change The reality is totally different. Software Myths (Management PerspectivesSoftware Myths (Management PerspectivesSoftware Myths (Management PerspectivesSoftware Myths (Management Perspectives)
  • 40. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 40 Computers provide greater reliability than the devices they replace This is not always true. Software Myths (Management PerspectivesSoftware Myths (Management PerspectivesSoftware Myths (Management PerspectivesSoftware Myths (Management Perspectives)
  • 41. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 41 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. If we do so, we are heading towards a disaster. Software Myths (Customer PerspectivesSoftware Myths (Customer PerspectivesSoftware Myths (Customer PerspectivesSoftware Myths (Customer Perspectives)
  • 42. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 42 Software with more features is better software Software can work right the first time Both are only myths! Software Myths (Customer PerspectivesSoftware Myths (Customer PerspectivesSoftware Myths (Customer PerspectivesSoftware Myths (Customer Perspectives)
  • 43. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 43 Once the software is demonstrated, the job is done. Usually, the problems just begin! Software Myths (Developer PerspectivesSoftware Myths (Developer PerspectivesSoftware Myths (Developer PerspectivesSoftware Myths (Developer Perspectives)
  • 44. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 44 Software quality can not be assessed before testing. However, quality assessment techniques should be used through out the software development life cycle. Software Myths (Developer PerspectivesSoftware Myths (Developer PerspectivesSoftware Myths (Developer PerspectivesSoftware Myths (Developer Perspectives)
  • 45. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 45 The only deliverable for a software development project is the tested code. Tested code is only one of the deliverable! Software Myths (Developer PerspectivesSoftware Myths (Developer PerspectivesSoftware Myths (Developer PerspectivesSoftware Myths (Developer Perspectives)
  • 46. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 46 Aim is to develop working programs Those days are over. Now objective is to develop good quality maintainable programs! Software Myths (Developer PerspectivesSoftware Myths (Developer PerspectivesSoftware Myths (Developer PerspectivesSoftware Myths (Developer Perspectives)
  • 47. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 47 Some TerminologiesSome TerminologiesSome TerminologiesSome Terminologies Deliverables and Milestones Different deliverables are generated during software development. The examples are source code, user manuals, operating procedure manuals etc. The milestones are the events that are used to ascertain the status of the project. Finalization of specification is a milestone. Completion of design documentation is another milestone. The milestones are essential for project planning and management.
  • 48. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 48 Product and Process Some TerminologiesSome TerminologiesSome TerminologiesSome Terminologies 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. Process: Process is the way in which we produce software. It is the collection of activities that leads to (a part of) a product. An efficient process is required to produce good quality products. If the process is weak, the end product will undoubtedly suffer, but an obsessive over reliance on process is also dangerous.
  • 49. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 49 Some TerminologiesSome TerminologiesSome TerminologiesSome Terminologies Measures, Metrics and Measurement A measure provides a quantitative indication of the extent, dimension, size, capacity, efficiency, productivity or reliability of some attributes of a product or process. Measurement is the act of evaluating a measure. A metric is a quantitative measure of the degree to which a system, component or process possesses a given attribute.
  • 50. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 50 Some TerminologiesSome TerminologiesSome TerminologiesSome Terminologies Software Process and Product Metrics Process metrics quantify the attributes of software development process and environment; whereas product metrics are measures for the software product. Examples Process metrics: Productivity, Quality, Efficiency etc. Product metrics: Size, Reliability, Complexity etc.
  • 51. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 51 Productivity and Effort Productivity is defined as the rate of output, or production per unit of effort, i.e. the output achieved with regard to the time taken but irrespective of the cost incurred. Hence most appropriate unit of effort is Person Months (PMs), meaning thereby number of persons involved for specified months. So, productivity may be measured as LOC/PM (lines of code produced/person month) Some TerminologiesSome TerminologiesSome TerminologiesSome Terminologies
  • 52. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 52 Some TerminologiesSome TerminologiesSome TerminologiesSome Terminologies Module and Software Components 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.
  • 53. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 53 “An independently deliverable piece of functionality providing access to its services through interfaces”. “A component represents a modular, deployable, and replaceable part of a system that encapsulates implementation and exposes a set of interfaces”. Some TerminologiesSome TerminologiesSome TerminologiesSome Terminologies
  • 54. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 54 Some TerminologiesSome TerminologiesSome TerminologiesSome Terminologies Generic and Customized Software Products Generic products are developed for anonymous customers. The target is generally the entire world and many copies are expected to be sold. Infrastructure software like operating system, compilers, analyzers, word processors, CASE tools etc. are covered in this category. The customized products are developed for particular customers. The specific product is designed and developed as per customer requirements. Most of the development projects (say about 80%)come under this category.
  • 55. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 55 Role of Management in Software Development Factors People Product Process Project
  • 56. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 56 Dependency Order Project Product Process People 1 2 3 4 Role of Management in Software Development
  • 57. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 57 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) Software is always correct 1.4 Product is (a) Deliverables (b) User expectations (c) Organization's effort in development (d) none of the above Multiple Choice Questions Note: Select most appropriate answer of the following questions: 1.5 To produce a good quality product, process should be (a) Complex (b) Efficient (c) Rigorous (d) none of the above
  • 58. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 58 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 Multiple Choice Questions Note: Select most appropriate answer of the following questions: 1.1 An independently deliverable piece of functionality providing access to its services through interface is called (a) Software measurement (b) Software composition (c) Software measure (d) Software component
  • 59. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 59 1.11 Infrastructure software are covered under (a) Generic products (b) Customized products (c) Generic and Customized 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 Multiple Choice Questions Note: Select most appropriate answer of the following questions: 1.15 Milestones are used to (a) know the cost of the project (b) know the status of the project (c) know user expectations (d) none of the above
  • 60. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 60 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 Multiple Choice Questions Note: Select most appropriate answer of the following questions: 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
  • 61. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 61 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.
  • 62. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 62 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 the characteristics of hardware. 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 differs 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
  • 63. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 63 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 examples. 1.20 What is productivity? How is it related to effort. What is the unit of effort. 1.21 Differentiate between module and software component. 1.22 Distinguish between generic and customized software products. Which one has larger share of market and why? 1.23 Is software a product or process? Justify your answer with example
  • 64. Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh, Copyright © New Age International Publishers, 2007 64 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. 1.25 What is more important: Product or process? Justify your answer. Exercises