Date post: | 11-Jan-2016 |
Category: |
Documents |
Upload: | vernon-chase |
View: | 214 times |
Download: | 0 times |
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 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.
– 何謂軟體工程– 為什麼軟體工程那麼重要– 如何使用軟體工程管理及開發軟體專案
3
2004 by SEC
Prerequisites Introduction to Computer Science
Programming Skills
電腦科學 程式設計
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
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.
2004 by SEC
Chapter 1 An Overview of Software Engineering
軟體工程總覽
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
2004 by SEC
1.1 Software Crisis軟體危機
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.
重要議題 :– 軟體公司常被迫要求在不切實際的時程下完成– 使用者常在專案完成前要求加入新功能,且需求不明確– 軟體本身非常複雜– 專案充滿不確定性
10
2004 by SEC
The Cost of Change
Definition Development After release
1x
1.5-6x
60-100x
軟體越早修改,所需的成本越低。
Time
Cost
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 火箭的爆炸
12
2004 by SEC
Problems of Software 軟體的問題 General issues 一般議題
– HW vs. SW 硬體與軟體的比較– Productivity: build new programs from scratch 生產力 : 從頭寫程式 – Maintenance: maintain existing programs 維護 : 維護現存的程式
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有備用零件
14
2004 by SEC
Failure Curve for Hardware 硬體故障曲線(Ware out 磨損 )
圖1-3. 硬體破損率曲線
時間
破損率
Time
Failurerate
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
2004 by SEC
1.2 Software Myths軟體迷思
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.
管理的迷思– 我們已有寫滿建立軟體的標準及流程的書籍,難道不能提供我們
的員工所需要的知識嗎?– 我們的員工有最先進的軟體開發工具;而且,畢竟我們也買給他
們最新電腦。– 如果我們進度落後,只要再加入幾個程式設計師就可以趕上
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
客戶的迷思– 一般性敘述的目的已經足以開始寫程式 ─ 至於細節,我們可以在
往後再填入。– 專案需求雖不斷改變,但是沒關係,修改很容易,因為軟體是很
有彈性的。
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.
開發者的迷思– 只要程式寫好能執行,專案就算完成了。– 唯有程式能夠執行,否則我無法評估其品質。– 一個成功的專案唯一交出的,就是一個能運作的程式。
2004 by SEC
1.3 What is Software Engineering?什麼是軟體工程 ?
21
2004 by SEC
What is Software? Software includes
– computer programs
– documents
– data & data structures
軟體包含– 電腦程式– 文件– 資料及資料結構
22
2004 by SEC
What is Software Engineering?
Real World Software World
Software Engineering
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.
軟體工程是整合方法、工具及流程來軟體開發的一門學科。– 方法 : 介紹建構軟體的方法– 工具 : 自動、半自動支援上述的方法– 流程 : 定義了使用方法,控制品管,協調改變的順序
24
2004 by SEC
Generic View of Software Engineering
Definition: What
Development: How
Maintenance: Changes
定義 : what 開發 : how 維護 : changes
25
2004 by SEC
Traditional Software Engineering
Software Design
DataProcess Behavior
Entity-RelationDiagram
Data FlowDiagram
State TransitionDiagram
26
2004 by SEC
Object-Oriented Software Engineering
Software Design
FunctionObject Behavior
Data FlowDiagram
ClassDiagram
State Chart
2004 by SEC
1.4 The Evolution of Software Industry軟體工業的演進
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) 獨立程式設計服務 軟體產品 企業解決方案 給大眾使用的套裝軟體 網路軟體及服務
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 億
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 , 資料庫管理系統的先驅者
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)
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)
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.
34
2004 by SEC
IT Market
Hardwareproducts
Hardwaremaintenance
Software Products& Services
Processing Servicesand Internet Services
EmbeddedSoftware
ProfessionalService
SoftwareProducts
EnterpriseSolution
PackagedMass-MarketSoftware
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
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.
請從課本、論文及網路,儘可能找出越多關於軟體工程的定義。
請調查軟體工程在台灣工業的應用情形。