BIT-8 Software Engineering (2+1). 2 Some Basic Definitions Software -- Computer programs,...
-
Upload
harvey-craig -
Category
Documents
-
view
216 -
download
0
Transcript of BIT-8 Software Engineering (2+1). 2 Some Basic Definitions Software -- Computer programs,...
2
Some Basic DefinitionsSoftware -- 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.
3
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).
Nature of SoftwareSoftware 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.
Easier to modify.
Dissatisfies user needs.
Error prone.
Harder to use.
Harder to modify.
7
Why do we need Software Eng. ?The “Software Crisis”
First identified at NATO Conference, Garmisch, Germany, 1968
Characterized by software which isof poor qualityover budgetlate
8
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 …..
9
The Crisis PersistsMore than 30 years later, the software
“crisis” is still with usMajor problems are still the same:
poor quality (correctness, bugs, usability, maintainability, etc)
over budgetdelivered late, or not at all
10
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
11
Schedule/Cost ProblemsAn example -- U.S. Internal Revenue
ServiceHired 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.
12
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.
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 beGeneric - developed to be sold to a range of different customersBespoke (custom) - developed for a single customer according
to their specification
Software: In a NutshellSoftware 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?
MaintainabilitySoftware must evolve to meet changing needs
Dependability (reliability, security, safety)Software must be trustworthyShould not cause physical or economical damage.
EfficiencySoftware should not make wasteful use of system resources
UsabilitySoftware must be usable by the users for which it was
designed
The software should deliver the required functionality and performance to the user and should be
maintainable, dependable and usable
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 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.
Software: Costs
Software ApplicationsGeneric 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 complexityMany sources, but size is key:
UNIX contains 4 million lines of codeWindows 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
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
theory fundamentals
Algorithms, date structures, complexity theory, numerical methods
the practicalities of developing delivering useful software
SE deals with practical problems incomplex software products
Key challenges faced by software engineering
Software engineering in the 21st century faces three key challenges:
Legacy systemsOld, valuable systems must be maintained and updated
HeterogeneitySystems are distributed and include
a mix of hardware and software Delivery
There is increasing pressure for faster delivery of software
Trends — Software Demand
several hundred billion dollars/year spent worldwide and growing
essential part of almost all organizations
key part of many products embedded systems
Soft
ware
Dem
and
1950
1960
1970
1980
1990
2000
Personal computing,information,education
Commercial
Scientific & Technical
Trends — Software Effort (Cost)
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]
Man-m
onth
s
100 200 300 400 500 600
2000
4000
6000
8000
1000’s of language statements
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).
Course outline up gradationSNO Topics Duration
1 Introduction to Software Engineering 1
2 Software Process and Its Models 2
3 Agility Concepts and Models 1
4 PSP, TSP, Extreme Programming Model (XP) 1
5
OHT – 1
5 Object Oriented SE Concepts and Principles
6 Modeling with UML
7 Object Oriented Software Requirement Engineering
OHT-2
8 Object Oriented Analysis
9 System Design: Decomposing the system, Addressing design goal
Total Weeks