Introduction To Software Engineering
Introduction To Software Engineering
Introduction To Software Engineering
Introduction to
Software Engineering
Sources of Material
What is software?
Software engineering
Software costs
Number of Jobs
Lockheed Martin
(Feb. 2005)
Dependability
Efficiency
Acceptability
Critical Systems
Safety-critical systems
Importance of dependability
Business-critical systems
Mission-critical systems
System dependability
Maintainability
Survivability
Dependability vs Performance
Dependability costs
Dependability economics
Cost
Low
Medium
High
Very
high
Ultra-high
Dependability
Programming vs Software
Engineering
Question:
Where does
programming
fit in?
http://www.computer.org/certification/
Before taking exam, candidate needs:
Examples of Failures
State of California:
$40M DMV project
$44M Prison software system
$100M State child support system
Software Crisis
The tragedy of software engineering is not
that we dont know how to plan and
conduct software projects, but that we
know how and just dont do it.
Richard E. Fairley
Software Engineering
Software Crisis
We can successfully build large
reliable systems. Software
engineering has worked!
Ian Sommerville
2000
System Engineering
A Programming
System
A Program
3X
3X
A Programming
Product
(Documentation,
maintenance, testing,
(interfaces, system
integration,
9X at least an order of
magnitude more work !!
A Software
System Product
Without
Software
Engineering
Procedural
(e.g. Fortran)
Effort
Effort
With
Software
Engineering
OOP
(e.g. C++)
IEEE-Std 1074-1997
IEEE-Std 1012-1998
IEEE-Std 829-1998
IEEE-Std 830-1998
IEEE-Std 12207.0-1996
IEEE-Std 12207.1-1997
IEEE-Std 12207.2-1998
Waterfall;
Iterative development;
Component-based software engineering.
Waterfall model
Model Emphasis
Waterfall (conventional)
Project Phases
Incremental
Evolving Product
Evolutionary
Exploratory Development
Spiral
Risk Management
Coding
Spiral model of
requirements/design
Delivery
Trust
Issues of professional
responsibility
Ethics vs Law
Issues of professional
responsibility
Computer misuse
Confidentiality
Competence
5. MANAGEMENT
Software engineering managers and leaders shall subscribe to
and promote an ethical approach to the management of
software development and maintenance.
6. PROFESSION
Software engineers shall advance the integrity and reputation of
the profession consistent with the public interest.
3. PRODUCT
Software engineers shall ensure that their products and related
modifications meet the highest professional standards possible.
8. SELF
Software engineers shall participate in lifelong
learning regarding the practice of their profession
and shall promote an ethical approach to the practice
of the profession.
Ethical dilemmas
Key points
Key points
Summary