+ All Categories
Home > Documents > 2004 by SEC Software Engineering. 2 2004 by SEC Preface and Introduction (cont’d) The objective...

2004 by SEC Software Engineering. 2 2004 by SEC Preface and Introduction (cont’d) The objective...

Date post: 11-Jan-2016
Category:
Upload: vernon-chase
View: 214 times
Download: 0 times
Share this document with a friend
36
2004 by SEC Software Engineering
Transcript
Page 1: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

2004 by SEC

Software Engineering

Page 2: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

2

2004 by SEC

Preface and Introduction (cont’d)

The objective of this course is to explain and provide an easy and practical introduction to the important characteristics of software engineering. After taking this course, students will understand

此課程的目標是描述及介紹軟體工程的重要性及特色,學生將學會 :– what is software engineering;

– why software engineering is important;

– how to develop software and manage a software project by using the software engineering in detail.

– 何謂軟體工程– 為什麼軟體工程那麼重要– 如何使用軟體工程管理及開發軟體專案

Page 3: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

3

2004 by SEC

Prerequisites Introduction to Computer Science

Programming Skills

電腦科學 程式設計

Page 4: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

4

2004 by SEC

References

[Pressman 2004] Roger S. Pressman. Software Engineering: a practitioner’s approach, 6th edition. McGRAW-HILL.

[Sommerville 2004] Ian Sommerville. Software Engineering, 7th edition. Addison Wesley.

[Rumbaugh et al.1991] J. Rumbaugh, M. Blaha, W. Premeerlani, F. Eddy, and W. Lorensen. Object-Oriented Modeling and Design. PRENTICE HALL, 1991.

[DIL1994] A. Diller. Z: An Introduction to Formal Methods, 2nd Edition. John Wiley & Sons, 1994

[WOO88] J. Woodcock and M. Loomes. Software Engineering Mathematics: Formal Methods Demystified. Pitman Publishing. 1988

[WOR92] J.B. Wordsworth. Software Development with Z: A Practical Approach to Formal Methods in Software Engineering. Addision-Welsey Publishing Company. 1992

Page 5: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

5

2004 by SEC

References (cont’d)

[Beizer 1990] B. Beizer, Software Testing Techniques, 2nd Edition, Van Nostrand-Reinhold, 1990.

[Boehm 1981] B. Boehm, Software Engineering Economics, Prentice-Hall, 1981.

[Davis 1995] A. Davis, 201 Principles of Software Development, McGraw-Hill, 1995.

[Gao 2003] Jerry Gao, Jacob Tsao, and Ye Wu, Testing and Quality Assurance for Component-Based Software, Artech House, 2003.

[Kaner 1993] C. Kaner, J. Falk, and H. Q. Nguyen, Testing Computer Software, 2nd Edition, Van Nostrand-Reinhold, 1993.

[Myers 1979] G. Myers, The Art of Software Testing, Wiley, 1979.

[Brooks 1987] F. Brooks. No Silver Bullet: Essence and Accidents of Software Engineering. Computer, 20(4):10–19, April 1987.

[Balzer 1985] Robert Balzer, A 15 year perspective on automatic programming, IEEE Transactions on Software Engineering, vol. SE-11, no. 11, pp. 1257-1267, Nov. 1985.

Page 6: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

2004 by SEC

Chapter 1 An Overview of Software Engineering

軟體工程總覽

Page 7: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

7

2004 by SEC

Table of Contents章節表

1.1 Software Crisis 軟體危機1.2 Software Myths 軟體迷思1.3 What is Software Engineering? 什麼是軟體工程 ?

1.4 The Evolution of Software Industry 軟體工業的演進Exercises

Page 8: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

2004 by SEC

1.1 Software Crisis軟體危機

Page 9: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

9

2004 by SEC

What is the Problem? 問題是甚麼 ? 84 % of all software projects do not finish on time and within budget (Survey conducted by

Standish Group)– 8000 projects in US in 1995– More than 30 % of all projects were cancelled – 189 % over budget

84% 的軟體專案未準時且在預算內完成– 統計 1995 年在美國的 8000 個專案– 超過 30% 的專案被取消– 預算超出 189%

Key issues:– Software firms are always pressured to perform under unrealistic deadlines.– The clients ask for new features, just before the end of the project,

and unclear requirements. ( 見下圖 )– Software itself is awfully complex.– Uncertainties throughout the development project.

重要議題 :– 軟體公司常被迫要求在不切實際的時程下完成– 使用者常在專案完成前要求加入新功能,且需求不明確– 軟體本身非常複雜– 專案充滿不確定性

Page 10: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

10

2004 by SEC

The Cost of Change

Definition Development After release

1x

1.5-6x

60-100x

軟體越早修改,所需的成本越低。

Time

Cost

Page 11: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

11

2004 by SEC

Real Cases 真實案例 Bank of America Master Net System

– Trust business. 1982.– Spend 18 months in deep research & analysis of the target system.

Original budget: 20 millions. Original Schedule: 9 months, due on 1984/12/31. Not until March-1987, and spent 60 millions. Lost 600 million business

– Eventually, gave up the software system and 34 billion trust accounts transferred. 美國銀行的主要網路系統

– 於 1982 年開發信託業務系統 . – 花費 18 個月深入研究及分析系統

原始預算 : 2 千萬 原先時程 : 9 個月 , 1984/12/31 完工 直到 1987 年 3 月完成 , 花費 6 千萬 失去 6 億的商機

– 結果,放棄整個系統並轉走 340 億的信託帳戶 Other cases: 其他案例

– Explosion of Ariane 5 prototype in 1996 1996 年 Ariane 5 號原型機的爆炸– Explosion of Boeing’s Delta III rocket. 波音 Delta III 火箭的爆炸

Page 12: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

12

2004 by SEC

Problems of Software 軟體的問題 General issues 一般議題

– HW vs. SW 硬體與軟體的比較– Productivity: build new programs from scratch 生產力 : 從頭寫程式 – Maintenance: maintain existing programs 維護 : 維護現存的程式

Page 13: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

13

2004 by SEC

Characteristics of Software 軟體的特性

Software Hardware

logical system element邏輯系統元素developed/engineered被開發 / 工程化

Not ware out but deteriorate不會磨損但會退化

Usually custom-built通常為客製的

physical system element實體系統元素Manufactured被生產ware out 會磨損

assembled from existing Component 從現有元件組裝而成

-no spare parts 沒有備用零件

-yes, with spare parts有備用零件

Page 14: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

14

2004 by SEC

Failure Curve for Hardware 硬體故障曲線(Ware out 磨損 )

圖1-3. 硬體破損率曲線

時間

破損率

Time

Failurerate

Page 15: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

15

2004 by SEC

Failure Curve for Software (Deterioration Not Ware Out 退化但不會磨

損 )

idealized curve

change

actual curve

Failurerate

Time

increased failurerate due to side effects

Page 16: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

2004 by SEC

1.2 Software Myths軟體迷思

Page 17: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

17

2004 by SEC

Software Myths Management Myths

– We already have a book that’s full of standards and procedures for building software. Won’t that provide my people with everything they need to know?

– My people do have state-of-the-art software development tools; after all, we buy them the newest computers.

– If we get behind schedule, we can add more programmers and catch up.

管理的迷思– 我們已有寫滿建立軟體的標準及流程的書籍,難道不能提供我們

的員工所需要的知識嗎?– 我們的員工有最先進的軟體開發工具;而且,畢竟我們也買給他

們最新電腦。– 如果我們進度落後,只要再加入幾個程式設計師就可以趕上

Page 18: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

18

2004 by SEC

Software Myths (cont’d) Customer Myths

– A general statement of objectives is sufficient to begin writing programs – we can fill in the details later

– Project requirements continually change, but change can be easily accommodated because software is flexible

客戶的迷思– 一般性敘述的目的已經足以開始寫程式 ─ 至於細節,我們可以在

往後再填入。– 專案需求雖不斷改變,但是沒關係,修改很容易,因為軟體是很

有彈性的。

Page 19: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

19

2004 by SEC

Software Myths (cont’d) Practitioner’s Myths

– Once we write the program and get it to work, our job is done.

– Until I get the program “running” I really have no way of assessing its quality.

– The only deliverable for a successful project is the working program.

開發者的迷思– 只要程式寫好能執行,專案就算完成了。– 唯有程式能夠執行,否則我無法評估其品質。– 一個成功的專案唯一交出的,就是一個能運作的程式。

Page 20: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

2004 by SEC

1.3 What is Software Engineering?什麼是軟體工程 ?

Page 21: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

21

2004 by SEC

What is Software? Software includes

– computer programs

– documents

– data & data structures

軟體包含– 電腦程式– 文件– 資料及資料結構

Page 22: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

22

2004 by SEC

What is Software Engineering?

Real World Software World

Software Engineering

Page 23: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

23

2004 by SEC

What is Software Engineering? (cont’d) Software engineering is a discipline that integrates methods, tools, and

procedures for the development of computer software.

– Method: introduce a way to build software

– Tool: automatic, semi-auto support for methods

– Procedure: define the sequence in which methods will be applied, the controls that help ensure quality and coordinate changes.

軟體工程是整合方法、工具及流程來軟體開發的一門學科。– 方法 : 介紹建構軟體的方法– 工具 : 自動、半自動支援上述的方法– 流程 : 定義了使用方法,控制品管,協調改變的順序

Page 24: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

24

2004 by SEC

Generic View of Software Engineering

Definition: What

Development: How

Maintenance: Changes

定義 : what 開發 : how 維護 : changes

Page 25: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

25

2004 by SEC

Traditional Software Engineering

Software Design

DataProcess Behavior

Entity-RelationDiagram

Data FlowDiagram

State TransitionDiagram

Page 26: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

26

2004 by SEC

Object-Oriented Software Engineering

Software Design

FunctionObject Behavior

Data FlowDiagram

ClassDiagram

State Chart

Page 27: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

2004 by SEC

1.4 The Evolution of Software Industry軟體工業的演進

Page 28: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

28

2004 by SEC

5 Eras 時期 Independent Programming Service (Era 1) Software Product (Era 2) Enterprise Solution (Era 3) Packaged Software for the Mass (Era 4) Internet Software and Services (Era 5) 獨立程式設計服務 軟體產品 企業解決方案 給大眾使用的套裝軟體 網路軟體及服務

Page 29: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

29

2004 by SEC

Independent Programming Services (Era 1)

Feb 1955, Elmer Kubie and John Sheldon founded CUC

– the First Software Company that devoted to the construction of software especially for hardware company.

– 第一家為硬體寫軟體的公司 Promoting Software Industry: two Major Projects,

– SABRE, airline reservation system, $30 million.

– SAGE, air defense system (1949~1962)

700/1000 programmers in the US. $8 billion.

晉升到軟體工業 :二大專案– SABRE, 航太系統 ,3 千萬– SAGE,防空系統 (1949~1962) 700/1000 程式設計師在美國 , 80 億

Page 30: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

30

2004 by SEC

Software Product (Era 2) 1964 Martin Goetz developed Flowchart Software --

Autoflow for RCA, but rejected. Sale to the customer of RCA & IBM. Develop and market software products not specifically designed

for a particular hardware platform.

– MARK IV, a pre-runner for the database management system.

IBM unbundled software from hardware. 1964 年 Martin Goetz 開發了流程軟體— Autoflow 給 RCA

, 但被拒絕 賣給 RCA 及 IBM 的客戶 開發及市場軟體不再單單只為了硬體 Mark IV , 資料庫管理系統的先驅者

Page 31: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

31

2004 by SEC

Enterprise Solutions (Era 3) Dietmar Hopp. IBM Germany

– Systems, Applications and Products (SAP) $3.3billion (1997)

– Setting up shop in Walldorf, Germany.

– Marked by the emergence of enterprise solutions providers.

e.g. Baan 1978. Netherlands. $680 million (1997)

Oracle 1977. U.S.

Larry Ellison.

– ERP, $45 billion (1997)

Page 32: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

32

2004 by SEC

Packaged Software for the Masses (Era 4)

Software products for the masses. 1979.– VisiCalc, Spreadsheet program.

August 1981: The deal of the century.– Bill Gates bought the first version of the OS from a small firm called

Seattle Computer Products for $50,000 without telling them it was for IBM.

– The development of the IBM PC, 1981, initiated a 4th software era.

PC-based mass-market software. Few additional services are required for installation.

– Microsoft reached revenues of $11.6 billion. Packaged Software Products, $57 billion (1997)

Page 33: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

33

2004 by SEC

Internet Software and Services (Era 5)

網路及加值服務時期 ,1994.W– 網景網路軟體

Internet and value-added services period, 1994. W– with Netscape’s browser software for the internet.

Page 34: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

34

2004 by SEC

IT Market

Hardwareproducts

Hardwaremaintenance

Software Products& Services

Processing Servicesand Internet Services

EmbeddedSoftware

ProfessionalService

SoftwareProducts

EnterpriseSolution

PackagedMass-MarketSoftware

Page 35: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

35

2004 by SEC

Software Products and Services

Enterprise Solutions

IBMOracleComputer AssociatesSAPHPFujitsuHitachiParametric TechnologyPeople SoftSiemens

Packaged Mass-Market Software

MicrosoftIBMComputer AssociatesAdobeNovellSymantecIntuitAutodeskAppleThe Learning Company

Professional Software Services

Anderson ConsultingIBMEDSCSCScience ApplicationsCap GeminiHpDECFujitsuBSO Origin

Page 36: 2004 by SEC Software Engineering. 2  2004 by SEC Preface and Introduction (cont’d) The objective of this course is to explain and provide an easy and.

36

2004 by SEC

Exercises Please find the definition of Software Engineering from the

text books, papers, and Internet as many as possible.

Please survey the software engineering application in industries of TAIWAN.

請從課本、論文及網路,儘可能找出越多關於軟體工程的定義。

請調查軟體工程在台灣工業的應用情形。


Recommended