lawrence chung software engineering: introduction 1 module 1: introduction to software engineering
TRANSCRIPT
![Page 1: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/1.jpg)
Lawrence Chung Software Engineering: Introduction 1
Module 1: Introduction to Software Engineering
![Page 2: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/2.jpg)
Lawrence Chung Software Engineering: Introduction 2
Objectives
What is Software Engineering?
Why Software Engineering?
How to do Software Engineering?
![Page 3: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/3.jpg)
Lawrence Chung Software Engineering: Introduction 3
What is Software Engineering?
Software Engineering = Software + Engineering
What is Software?
Software = Soft + ware
Any examples?
What is Engineering?
Engineering = Engine-er-ing
Any examples?
Is this an Engineering discipline? If yes, why? If not, why not?
Is this for an Engineer or a scientist?
![Page 4: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/4.jpg)
Lawrence Chung Software Engineering: Introduction 4
What is Software Engineering?
A historical definition:
“The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines …” [Fritz Bauer, at the 1st NATO Conference on Software Engineering, 1969]
IEEE definition:
“Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.”
A shorter definition: BCFH
![Page 5: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/5.jpg)
Lawrence Chung Software Engineering: Introduction 5
Why Software Engineering?
Used w. extensive rework, but later abandoned20%
Used as delivered 2%
Usable w. rework3%
9 software projects totaling $96.7 million: Where The Money Went [Report to Congress, Comptroller General, 1979]
Delivered, but never successfully used45%
Paid for, but not delivered30% Why?
Software hurtsRequirementsdesign
![Page 6: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/6.jpg)
Lawrence Chung Software Engineering: Introduction 6
What Factors Contribute to Project Success?
10. Other
9. Reliable Estimates
8. Formal Methodology
7. Firm Basic Requirements
6. Standard Software Infrastructure
5. Minimized Scope
4. Clear Business Objectives
3. Experienced Project Manager
2. User Involvement
1. Executive Management Support
The CHAOS CHAOS Ten
Standish Group, ‘01 (www.standishgroup.com)
Project Success Factors
28%
49%
23%
completed on time and on budget
canceled before completion
overran original estimates:-Time overrun averaged 63%- Cost overrun averaged 45%
![Page 7: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/7.jpg)
Lawrence Chung Software Engineering: Introduction 7
What Factors Contribute to Project Failure?
Standish Group, ‘01 (www.standishgroup.com)
The CHAOS CHAOS TenThe CHAOS CHAOS Ten
“The definition of insanity is doing the same thing over and over again and expecting a different result.” [Albert Einstein]
![Page 8: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/8.jpg)
Lawrence Chung Software Engineering: Introduction 8
Why Software Engineering?
Work alone20%
What do software engineers do?
Non-productiveActivities30%
Interaction50%
programming ≠ software engineeringpersonal activity team activity
small, clear problem large, nebulous problem
![Page 9: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/9.jpg)
Lawrence Chung Software Engineering: Introduction 9
Why Software Engineering?
http://www.cis.gsu.edu/~mmoore/CIS3300/handouts/SciAmSept1994.html
http://techdirt.com/articles/20060818/1613226.shtml
Are you aware of any other mishaps?
![Page 10: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/10.jpg)
Lawrence Chung Software Engineering: Introduction 10
Why Software Engineering?
Major symptoms of the “software crises”:
Over budget Schedule slippage Poor quality
Major causes of the “software crises”:
The "software crises" came about when people realized the major problems in software development were … caused by communication difficulties and the management of complexity” [Budd]
![Page 11: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/11.jpg)
Lawrence Chung Software Engineering: Introduction 11
Why SE?
![Page 12: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/12.jpg)
Lawrence Chung Software Engineering: Introduction 12
Systems Engineering
Requirements Analysis
Project Planning
Architectural Design
Detailed Design
Implementation
Release
Maintenance
Quality A
ssurance
Software Lifecycle Review
How to Do Software Engineering?
BCFH - models/languages,
processes/methodologies, tools, …
![Page 13: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/13.jpg)
Lawrence Chung Software Engineering: Introduction 13
To be discussed later on…
![Page 14: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/14.jpg)
Lawrence Chung Software Engineering: Introduction 14
How to do SE?
![Page 15: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/15.jpg)
Lawrence Chung Software Engineering: Introduction 15
How to do SE?
![Page 16: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/16.jpg)
Lawrence Chung Software Engineering: Introduction 16
The Tar Pit
The woes of the craft:Bugs!!!Bugs get harder as testing progressesThe fundamental problem: fixing a bug has a
20%-50% chance of introducing anotherThe product gets obsolete upon or even before
completionWorse: must use others’ programs!
1
22
33
44
55
66
77
88
99
1010
1111
1212
1313
1414
1515
1616
1717
1818
1919
2020
![Page 17: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/17.jpg)
Lawrence Chung Software Engineering: Introduction 17
Genesis 11:1-9 Acts 2:1-4The Tower Of Babel
Let's become famous by building a city with a tower that reaches up to heaven (verse four).
Let's go down and confuse their speech right away, and make it so that they will not understand each other's speech. (verses five through seven).
![Page 18: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/18.jpg)
Lawrence Chung Software Engineering: Introduction 18
Why Did the Tower of Babel Fail?
Bad communication in software projects
is the root of all evil.
![Page 19: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/19.jpg)
Lawrence Chung Software Engineering: Introduction 19
The Mythical Man-Month
Optimism:All programmers are optimists, believing in
happy endings and fairy god-mothers.Because programming tasks are usually
chained end-to-end, the probability that each will go well is very small.
Man-month:Cost vary as a product: men ·
months.
Progress does not: communication overhead!Overhead: intercommunication and training.
11
2
33
44
55
66
77
88
99
1010
1111
1212
1313
1414
1515
1616
1717
1818
1919
2020
![Page 20: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/20.jpg)
Lawrence Chung Software Engineering: Introduction 20
Brook’s Law
Adding manpower to a late software project makes it later.
![Page 21: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/21.jpg)
Lawrence Chung Software Engineering: Introduction 21
Hatching a Catastrophe
Poor Project planning, estimation, controlCoding is “90% finished” for half of the total
coding timeDebugging is “99% complete” most of the
time
![Page 22: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/22.jpg)
Lawrence Chung Software Engineering: Introduction 22
No Silver Bullet – Essence and Accident in Software Engineering
“There is no single development, in either technology or management technique, which by itself promises even one order-of-magnitude improvement within a decade in productivity, in reliability, in simplicity” (1986).
Complexity enormous number of states (orders of magnitude more than in
hardware), so conceiving, describing and testing is hard increases non-linearly with its size introduces a lot of difficulties:
communication among team members enumerating (much less understanding) of all possible states of the
program management problems:
conceptual integrity is hard to achieve learning curve: personnel turnover becomes disaster
others
![Page 23: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/23.jpg)
Lawrence Chung Software Engineering: Introduction 23
The M-MM after 20 years
Answers questions like: What do you now think was wrong when written? What is now obsolete? What is really new in the software engineering world?
11
22
33
44
55
66
77
88
99
1010
1111
1212
1313
1414
1515
1616
1717
1818
19
2020
What was right and still is: Conceptual integrity is the more important
factor in ease of use [There are other factors. Consider Macintosh vs. MS-DOS].It is the central question addresses by M-MM and is central to product quality.
![Page 24: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/24.jpg)
Lawrence Chung Software Engineering: Introduction 24
How to do SE?
![Page 25: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/25.jpg)
Lawrence Chung Software Engineering: Introduction 25
How to do SE?
![Page 26: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/26.jpg)
Lawrence Chung Software Engineering: Introduction 26
How to do SE?
![Page 27: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/27.jpg)
Lawrence Chung Software Engineering: Introduction 27
How to do SE?
![Page 28: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/28.jpg)
Lawrence Chung Software Engineering: Introduction 28
How to do SE?
![Page 29: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/29.jpg)
Lawrence Chung Software Engineering: Introduction 29
How to do SE?
![Page 30: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/30.jpg)
Lawrence Chung Software Engineering: Introduction 30
Why speak about management
rather than technical issues?
![Page 31: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/31.jpg)
Lawrence Chung Software Engineering: Introduction 31
How to do SE?
News Groups:
comp.software-engcomp.software.testing…
Professional Organizations:IEEE: TSE, ICSE, ICRE, …ACM: TOSEM…
![Page 32: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/32.jpg)
Lawrence Chung Software Engineering: Introduction 32
Introduction to SE - Summary
Why Software Crisis due to Communication and Complexity Inherent complexity
What Engineering (large) software, bcfh
How BCFH languages, concepts, models, tools
![Page 33: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/33.jpg)
Lawrence Chung Software Engineering: Introduction 33
![Page 34: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/34.jpg)
Lawrence Chung Software Engineering: Introduction 34
![Page 35: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/35.jpg)
Lawrence Chung Software Engineering: Introduction 35
![Page 36: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/36.jpg)
Lawrence Chung Software Engineering: Introduction 36
![Page 37: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/37.jpg)
Lawrence Chung Software Engineering: Introduction 37
![Page 38: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/38.jpg)
Lawrence Chung Software Engineering: Introduction 38
![Page 39: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/39.jpg)
Lawrence Chung Software Engineering: Introduction 39
![Page 40: Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering](https://reader035.vdocument.in/reader035/viewer/2022081504/56649d345503460f94a0b26e/html5/thumbnails/40.jpg)
Lawrence Chung Software Engineering: Introduction 40
Introduction to SE - Points to Ponder
1. Programming = software engineering?2. What does BCFH really mean? Can you define it
completely?3. What are the similarities, and differences, between
Civil Engineering and Software Engineering? 4. What are the differences between a notation and a
methodology?5. Can we use C# for analysis?6. Can you prove you and I communicate with each
other perfectly?7. Are you a scientist or an engineer?