20
Introduction to Introduction to Software Engineering Software Engineering (1/2) (1/2) Moonzoo Kim Moonzoo Kim KAIST KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)

Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)

Embed Size (px)

Citation preview

Page 1: Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)

Introduction to Software Introduction to Software Engineering (1/2)Engineering (1/2)

Moonzoo KimMoonzoo Kim

KAISTKAIST

(slides adapted from CS550 ‘06 taught by prof. D. Bae)

Page 2: Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)

A Main Theme of Software EngineeringA Main Theme of Software Engineering

SE involves various assets of SE involves various assets of technical/social/economic issues fortechnical/social/economic issues for ProfitProfit (money) (money)

ProductivityProductivityHow fastHow fast

MaintenanceMaintenanceReliabilityReliability

2

Page 3: Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)

Role of S/W: Increased in EverywhereRole of S/W: Increased in Everywhere

3

자료출처 : Watts Humphrey 2002

F-4

F-22

0

10

20

30

40

50

60

70

80

90

1960년 1970년 1982년 2000년

Per

cent

of f

unct

ionalit

y pr

ovid

ed b

y

softw

are

Year of introduction

F-35 (8 Mloc)

2012 년

Page 4: Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)

Role of S/W: Increased in Role of S/W: Increased in Everywhere(2/2)Everywhere(2/2)

4

From Deborah Shapely “The Universal Cell Phone” MIT Technology Review, 2001

Page 5: Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)

World S/W Market World S/W Market (4Times larger than Semiconductor)(4Times larger than Semiconductor)

5

unit : US100M

• ’99- 2001 top 10 industry growth rate: IT equipment 29%, S/W 46% • Market growth expectation for next 5 years : H/W 5.1%, S/W 11.8%

Page 6: Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)

World SW Companies Recent World SW Companies Recent Trends(1/2)Trends(1/2)

MS, IBM, Oracle, SAP: a few global companies MS, IBM, Oracle, SAP: a few global companies dominating dominating Top 10 companies market share : 1995, 6% Top 10 companies market share : 1995, 6% 2000, 28% 2000, 28%

Fierce competition among IT companies due to IT Fierce competition among IT companies due to IT market stagnation.market stagnation.

Large enterprise centered SW industry restructuring Large enterprise centered SW industry restructuring through M&A through M&A

R&D investment increased to accommodate fast R&D investment increased to accommodate fast technology changetechnology change High S/W companies investment on R&D: R&D/Revenue, 18%High S/W companies investment on R&D: R&D/Revenue, 18%

6

Page 7: Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)

World SW Companies Recent World SW Companies Recent Trends(2/2)Trends(2/2)

Platform competition Platform competition in ubiquitous environment among international in ubiquitous environment among international companiescompanies MS’s .NET framework, Sun’ Java, IBM’s Linux support MS’s .NET framework, Sun’ Java, IBM’s Linux support

New players entering HW & SW market in New players entering HW & SW market in Post PC Post PC eraera Android OS from Google phone and iOS from Apple Android OS from Google phone and iOS from Apple

New addition: Blurred boundaries between SI companies and traditional New addition: Blurred boundaries between SI companies and traditional embedded system companiesembedded system companies

Nokia and MS lost in the smartphone OS competition Nokia and MS lost in the smartphone OS competition Government’s SW industry supporting policy in R&D, Government’s SW industry supporting policy in R&D,

standardization, trading policy, technology education, intellectual standardization, trading policy, technology education, intellectual property rights, etcproperty rights, etc Open source supported by government Open source supported by government

7

Page 8: Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)

The Business Implications of The Business Implications of Software ChangeSoftware Change

8

Rate ofRate ofchangechange

TimeTime

When it takes longer to change the When it takes longer to change the software than to change the business, the software than to change the business, the business is at riskbusiness is at risk

DegreeDegreeof riskof riskBusiness

Business

SoftwareSoftware

Rate ofRate ofchangechange

TimeTime

When software changes faster than the When software changes faster than the business, the business creates strategic business, the business creates strategic opportunitiesopportunities

OpportunitiesOpportunities

BusinessBusiness

Software

Software

Page 9: Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)

Analogy of SE with Civil EngineeringAnalogy of SE with Civil Engineering

9

There are various kinds of construction from a house to a building complex

Page 10: Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)

Analogy with Civil Analogy with Civil Engineering(Cont.)Engineering(Cont.)

10

When building a small house,...

With simple tools

By small group of novice workers

From just a blueprint

Some failures are endurable

Page 11: Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)

Analogy with Civil Analogy with Civil Engineering(Cont.)Engineering(Cont.)

11

When constructing a building complex,...we must re-think everything

Page 12: Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)

Analogy with Civil Analogy with Civil Engineering(Cont.)Engineering(Cont.)

12

With scalable tools

as well as simple ones

Use different materials

Page 13: Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)

Analogy with Civil Analogy with Civil Engineering(Cont.)Engineering(Cont.)

13

By a big group of various technicians

With collaborationsand guides

Set of blueprints As well as careful plans

Page 14: Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)

Forces Behind the Emergence of S/W Forces Behind the Emergence of S/W EngineeringEngineering

The poor quality The poor quality of the software.of the software. The inability of organizations to The inability of organizations to predictpredict the time, effort, the time, effort,

and cost in software development.and cost in software development. Changes in the ratio of hardware to S/W costs Changes in the ratio of hardware to S/W costs The increasingly important role of The increasingly important role of maintenancemaintenance Advances in hardwareAdvances in hardware Advances in software techniquesAdvances in software techniques Increased demands for softwareIncreased demands for software The demand for larger and more complex S/W systemsThe demand for larger and more complex S/W systems

14

Page 15: Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)

Software CrisisSoftware Crisis

15

A 2%B 3%

C 45 %D 20%

E 30%

A: worked on delivery B: worked after some corrections C: delivered but never successfully used D: used but either extensively reworked or abandoned E: paid for, but never delivered

Page 16: Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)

/5816

Quoted from ``1. Information Technology: Transforming our Society'‘ President's Information Technology Advisory Committee 1999

“…Furthermore, the Nation needs software that is far more usable, reliable, and powerful than what is being produced today. We have become dangerously dependent on large software systems whose behavior is not well understood and which often fail in unpredicted ways ... We need scientifically sound approaches to software development … ”

Software CrisisSoftware Crisis

Quoted from Quoted from ““Science for Global Ubiquitous Computing (GUC)Science for Global Ubiquitous Computing (GUC)““ A 15 year Grand Challenges for Computing Research A 15 year Grand Challenges for Computing Research Supported by UK Computing Research CommitteeSupported by UK Computing Research Committee 2004 2004

“…unless we offer a mathematically sound methodology to supplant the practice of opportunist software creation there will be consequences of the kind we have illustrated, and a further mass of inscrutable legacy software. These consequences will be greatly more damaging than previously, because the GUC is pervasive, self-modifying and complex in the extreme…“

Page 17: Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)

Why Software Project Fail ?Why Software Project Fail ?

17

Lack of s/w mindLack of s/w mind Insufficient software Insufficient software project managementproject management

Lack of appropriate SE skillsLack of appropriate SE skills

Page 18: Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)

Why Software Development is so Why Software Development is so Difficult ?Difficult ?

CharacteristicsCharacteristics Complex Complex FlexibleFlexible Cannot be fully automated; human being involvedCannot be fully automated; human being involved Relatively short historyRelatively short history

DifficultiesDifficulties Hard to guarantee its correctness Hard to guarantee its correctness Scientific disciplines applied hardly in the field Scientific disciplines applied hardly in the field Hard to understandHard to understand

18

Page 19: Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)

Hardware v.s. SoftwareHardware v.s. Software Flexibility leads to low development costFlexibility leads to low development cost

Minimal costs for HW board manufacturing > 20K$Minimal costs for HW board manufacturing > 20K$ Minimal costs for SW development = 0$ Minimal costs for SW development = 0$

Growing popularity leads to complex software systemsGrowing popularity leads to complex software systems Pentium IV (Willamette): 42 million transistorsPentium IV (Willamette): 42 million transistors Windows XP: hundreds million instructionsWindows XP: hundreds million instructions

Much harderMuch harder to validate/verify (V&V) software to validate/verify (V&V) software HW design exploits symmetry, structure, and componentsHW design exploits symmetry, structure, and components

Formal design and V&V tools (e.g. Verilog, VHDL, etc) are popularFormal design and V&V tools (e.g. Verilog, VHDL, etc) are popular Standard property spec. language: OVL, PSL, SVA, etcStandard property spec. language: OVL, PSL, SVA, etc

SW design allows maximal degree of freedom in programsSW design allows maximal degree of freedom in programs Formal principles and techniques have been rarely applied to SW due to Formal principles and techniques have been rarely applied to SW due to

Failure to manage (entire) SW complexityFailure to manage (entire) SW complexity Lack of commercial tools and supportsLack of commercial tools and supports (relatively) High learning curve(relatively) High learning curve

Products of all engineering fields provide Products of all engineering fields provide warrantywarranty except SWexcept SW Ex> Intel CPU provides 3 years warranty Ex> Intel CPU provides 3 years warranty Ex> Microsoft Windows® provides no warranty - Ex> Microsoft Windows® provides no warranty - Use it at your own risk!!!Use it at your own risk!!!

19

Page 20: Introduction to Software Engineering (1/2) Moonzoo Kim KAIST (slides adapted from CS550 ‘06 taught by prof. D. Bae)

Role of SoftwareRole of Software Gluing/Integrating all hardwareGluing/Integrating all hardware

20

SoftwareSoftware