Software Engineering (2+1)
Download
Report
Transcript Software Engineering (2+1)
Software Engineering (2+1)
BIT-8
Some Basic Definitions
Software -- Computer programs, procedures, and possibly
associated documentation and data pertaining to the
operation of a computer system.
Engineering -- Application of systematic, disciplined,
quantifiable approach to some process.
2
Resulting Definition Of Software Engineering
Definition -- The application of systematic, disciplined,
quantifiable approaches to software development, operation
and maintenance.*
* - IEEE Standard 610.12-1990, IEEE Standard Glossary of Software
Engineering Terminology, IEEE Standards Collection Software
Engineering, IEEE (1997).
3
The Software Life Cycle
Development
Operation
Maintenance
Corrective
Enhancement
4
Nature of Software
Software is intangible.
Software is developed or engineered, it is not manufactured in the
classical sense.
Software does not “wear out” but deteriorate.
Although the industry is moving toward component-based
assembly, most software continues to be custom built.
Software Success and Failure
Satisfies user needs.
Performs flawlessly.
Easier to use.
Dissatisfies user needs.
Error prone.
Harder to use.
Harder to modify.
Easier to modify.
Why do we need Software Eng. ?
The “Software Crisis”
First identified at NATO Conference, Garmisch, Germany,
1968
Characterized by software which is
of poor quality
over budget
late
7
Where Is Software Engineering Today ?
Although significant improvements have been made in
specific areas, the rapidly evolving nature of the software
industry has resulted in little overall improvement in the
overall situation -- in fact …..
8
The Crisis Persists
More than 30 years later, the software “crisis” is still with us
Major problems are still the same:
poor quality (correctness, bugs, usability, maintainability, etc)
over budget
delivered late, or not at all
9
Software Quality Problems
Correctness, bugs, usability, etc
Examples - U.S. Strategic Air Command alert (Nov 9, 1979) -- alert
scramble in response to report that Soviet Union had launched
missile attack
Therac 25 medical linear accelerator treatment device -- two
patients died of severe overdoses of radiation (1985-1987)
Gulf War (1991) -- U.S. Patriot missile defense failed to detect
Scud missile due to time error -- 28 Americans died as a result.
Assignment 1: Software Crisis/Failure in History
10
Schedule/Cost Problems
An example -- U.S. Internal Revenue Service
Hired Sperry Corporation to build automated income tax form
processing system (1980-1985) --the resulting system couldn’t
handle the work load, cost almost twice what was expected, and
had to be replaced soon after initial installation. By 1996, the
situation had not improved.
11
Not A Crisis -But A Chronic Condition
Software “Crisis” has lasted too long to be a crisis --
rather, it’s a persistent, chronic condition of the software
business
Software Engineering is the proposed solution to the
problem. Its aims are:
production of fault-free software, delivered on time and within
budget, that satisfies the users’ needs, and is easy to maintain.
12
What is software?
????????
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
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: In a Nutshell
Software is set of items or objects that form a “configuration” that
includes:
Computer programs that produce information.
System documentation that describe the manipulation of information.
User documentation that describe the operation and use of the
programs.
What are the attributes of good software?
The software should deliver the required functionality
and performance to the user and should be
maintainable, dependable and usable
Maintainability
Software must evolve to meet changing needs
Dependability (reliability, security, safety)
Software must be trustworthy
Should not cause physical or economical damage.
Efficiency
Software should not make wasteful use of system resources
Usability
Software must be usable by the users for which it was designed
Importance of Product Characteristics
The relative importance of these characteristics depends on the
product and the environment in which it is to be used.
In some cases, some attributes may dominate
In safety-critical real-time systems, key attributes may be
dependability and efficiency.
Costs tend to rise exponentially if very high levels of any one
attribute are required.
Software: Costs
Software costs often dominate system costs. The costs of
software on a PC are often greater than the hardware cost.
Software costs more to maintain than it does to develop.
Software engineering is concerned with cost-effective
software development.
Efficiency Costs
Cost
Ef ficiency
Software Applications
Generic categorization:
System software,
real-time software
business software,
engineering and scientific software
embedded software,
personal computer software,
web-based software, and
artificial intelligence software etc.
How is the nature of software application determined?
Information content and determinacy.
Software Poses Challenges
How do we ensure the quality of the software that
we produce?
How do we meet growing demand and still
maintain budget control?
How do we upgrade an aging "software plant?"
How do we avoid disastrous time delays?
How do we successfully institute new software
technologies?
Why Software Engineering?
Software development is not an easy Job !
Important to distinguish:
“easy” systems (one developer, one user, experimental use only)
“hard” systems (multiple developers, multiple users, products)
________________________________________________________
The problem is complexity
Many sources, but size is key:
UNIX contains 4 million lines of code
Windows 2000 contains 108 lines of code
Software engineering is about managing this complexity.
Software engineering and computer science?
Computer Science
Software Engineering
is concerned with
theory
fundamentals
Algorithms, date structures,
complexity theory, numerical
methods
SE deals with practical problems in
complex software products
the practicalities of developing
delivering useful software
Computer science theories are currently insufficient to act as a
complete foundation for software engineering, BUT it is a base for
practical aspects of software engineering
Key challenges faced by software engineering
Software engineering in the 21st century faces three key
challenges:
Legacy systems
Old, valuable systems must be maintained and updated
Heterogeneity
Systems are distributed and include
hardware and software
Delivery
There is increasing pressure
for faster delivery of software
a mix of
Trends — Software Demand
Software Demand
Personal computing,
information,
education
Commercial
Scientific & Technical
195
0
196
0
197
0
198
0
199
0
200
0
several hundred billion dollars/year spent worldwide and growing
essential part of almost all organizations
key part of many products embedded systems
Trends — Software Effort (Cost)
Man-months
8000
6000
4000
2000
100
200
300
400
500
1000’s of language statements
sample code sizes:
hand-held bar code scanner: 10-50KLOC [Symbol Technologies Inc.]
cellular telephone: 30KLOC [Motorola]
automated teller network: 600KLOC [IBM]
B-2 Stealth bomber: 3.5MLOC [Leonard Lee]
telephone switch; Windows 95: 15MLOC [Nokia; Ted Lewis]
600
Software Engineering: In a Nutshell
Software engineering (SE) is framework for building software with higher
quality.
Software engineering is an engineering discipline which is concerned with all
aspect of software production form early stage of system specification to
maintaining the system after it has gone into use (Sommerivlle, 2000).
http://www.mydropbox.com/
Click New User link
3vr64278z8sz
Course outline up gradation
SNO
1
2
3
4
5
6
7
8
9
Topics
Introduction to Software Engineering
Software Process and Its Models
Agility Concepts and Models
PSP, TSP, Extreme Programming Model (XP)
OHT – 1
Object Oriented SE Concepts and Principles
Modeling with UML
Object Oriented Software Requirement Engineering
OHT-2
Object Oriented Analysis
System Design: Decomposing the system, Addressing
design goal
Total Weeks
Duration
1
2
1
1
5
Thank You!