FSE Chap 1
FSE Chap 1
FSE Chap 1
Chapter- One
Introduction
1
What is software?
Computer programs and associated documentation
2
Why Software Engineering ?
1950s and 1960s, Systems Development was
unstructured & unorganized
Leap-year bug
A supermarket was fined $1000 for having meat around 1 day too long, on February 29, 1988.
Interface misuse
On April 10, 1990, in London, an underground train left the station without its driver.
Security
On November 2, 1988, a self-propagating program, subsequently called the Internet Worm, An estimated
10% of all Internet nodes were affected. The infection took several days to eradicate.
3
Cont…
Late and over budget
In 1995, bugs in the automated luggage system of the new Denver International Airport caused
suitcases to be chewed up. The airport opened 16 months late, $3.2 billion over-budget, with a mostly
manual luggage system.
On-time delivery
After 18 months of development, a $200 million system was delivered to a health insurance company in
Wisconsin in 1984. However, the system did not work correctly: $60 million in overpayments were
issued. The system took 3 years to fix.
Unnecessary complexity
The C-17 cargo plane by McDonnell Douglas ran $500 million over budget because of problems with its
avionics software. The C-17 included 19 onboard computers, 80 microprocessors, and 6 different
programming languages.
4
Cont..
SE introduced first in 1968 – conference about “software
crisis” when the introduction of third generation computer
hardware led more complex software systems then before
Early approaches based on informal methodologies leading
to
◦ Delays in software delivery
◦ Higher costs than initially estimated
◦ Unreliable, difficult to maintain software
5
However …
Important progress:
Ability to produce more complex software has
increased
New technologies have led to new SE approaches
A better understanding of the activities involved in
software development
Effective methods to specify, design and implement
software have been developed
New notations and tools have been produced
6
I. What is Software Engineering?
Software engineering is the establishment and use of sound engineering
principles in order to obtain economically software that is reliable and works
efficiently on real machines.
7
Cont..
1. Modeling Activity:
A model is an abstract representation of a system that enables us to answer
questions about the system.
Software engineers deal with complexity through modeling, by focusing at any
one time on only the relevant details and ignoring everything else.
Models are useful when dealing with systems that are too large, too small, too
complicated, or too expensive to experience firsthand.
8
Cont…
2. Problem solving
Engineering is a problem-solving activity. It is not algorithmic. In its
simplest form, the engineering method includes five steps:
1. formulate the problem
2. analyze the problem
3. search for solutions
4. decide on the appropriate solution
5. specify the solution
9
Cont…
3. Knowledge acquisition
In modeling the application and solution domain, software engineers collect
data, organize it into information, and formalize it into knowledge.
10
Cont…
4. Rationale management
When acquiring knowledge and making decisions about the system or its
application domain, software engineers also need to capture the context in
which decisions were made and the rationale behind these decisions.
◦ Enables software engineers to understand the implication of a proposed change when
revisiting a decision.
11
What is the difference between software
engineering and computer science?
Computer Science Software Engineering
is concerned with
theory the practicalities of developing
fundamentals delivering useful software
12
Software Engineering Body of Knowledge
Source: http://www.sei.cmu.edu/pub/documents/99.reports/pdf/99tr004.pdf
13
What is a software process?
SP is a set of activities whose goal is the development or
evolution of software
Fundamental activities in all software processes are:
◦ Specification - what the system should do
and its development constraints
◦ Development - production of the software system
(design and implementation)
◦ Validation - checking that the software is what the customer wants
◦ Evolution - changing the software in response to changing
demands
14
What is a software process model?
SPM is a simplified representation of a software process, presented
from a specific perspective
15
What is CASE ?
(Computer-Aided Software Engineering)
Software systems which are intended to provide
automated support for software process activities,
such as requirements analysis, system modelling,
debugging and testing
Upper-CASE
◦ Tools to support the early process activities of
requirements and design
Lower-CASE
◦ Tools to support later activities such as programming, debugging and testing
16
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
◦ Software must be trustworthy
Efficiency
◦ Software should not make wasteful use of system resources
Usability
◦ Software must be usable by the users for which it was designed
17
What are the key challenges
facing 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
a mix of hardware and software
Delivery
◦ There is increasing pressure
for faster delivery of software
18
Thank You!
Q?
19