版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、軟件工程基礎(chǔ),軟件工程概述劉 馳,2,講授內(nèi)容,軟件工程的基本概念基于計算機的系統(tǒng)工程軟件過程,3,1. 什么是軟件?,Software=program+data+documentCustom softwareGeneric software, Shrink-wrapped softwareEmbedded softwareSafety-critical softwareCOTS(Commercial Off-th
2、e-Shelf)I will create a software to update the database.(a piece of software, or a software system)可以按功能、規(guī)模、工作方式、可靠性高低等進行劃分,4,2. 什么是軟件工程?,1968年秋季,NATO(北約)的科技委員會召集了近50名一流的編程人員、計算機科學家和工業(yè)界巨頭,討論和制定擺脫“軟件危機”的對策。Fritz Bauer
3、在會議上首次提出“軟件工程”概念。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, 1968,5,IEEE:軟件工程是(1)將系
4、統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運行和維護的過程,即將工程化思想應(yīng)用于軟件開發(fā)過程中(2)上述方法的研究。軟件工程的目標: 低成本, 高質(zhì)量, 按時交付,6,軟件工程的本質(zhì)特性,關(guān)注大型程序的構(gòu)造如何控制復(fù)雜性軟件需求不斷變化旨在提高軟件開發(fā)的效率團隊合作是軟件工程順利實施的關(guān)鍵軟件必須有效支持它的用戶由一種文化背景的人替另一種文化背景的人創(chuàng)造產(chǎn)品(設(shè)計者、使用者),7,3. SW and CS,計算機科學
5、研究的是構(gòu)成計算機和軟件系統(tǒng)基礎(chǔ)的有關(guān)理論和方法,而軟件工程則研究軟件制作中的實際問題。理論上,所有軟件工程都應(yīng)該以計算機科學理論作為堅實的基礎(chǔ),但對付實際的、復(fù)雜的問題時需要用軟件工程的方法來解決。,8,4. SW and Systems Engineering,系統(tǒng)工程的產(chǎn)生比軟件工程早?;谟嬎銠C的系統(tǒng)工程,研究由軟件起主導(dǎo)作用的、有關(guān)負責系統(tǒng)的開發(fā)和進化的方方面面,包括硬件開發(fā)、系統(tǒng)決策、過程設(shè)計、系統(tǒng)實施和軟件過程等。,
6、9,5. 什么是軟件過程?,軟件過程是指開發(fā)軟件產(chǎn)品的一組活動及其結(jié)果。所有的軟件過程都包含4項基本的活動:軟件描述、軟件開發(fā)、軟件有效性驗證和軟件進化。不同的軟件過程以不同的方式組織這4項活動,活動的結(jié)果會影響活動的進度。不同的機構(gòu)可能用不同的過程來制作同一類產(chǎn)品。,10,為什么要定義軟件過程?,一個過程定義了為達到確定的目標,需要什么人在什么時間以何種方式做何種工作(Goal,Who,When,How,What)對于 Cus
7、tomer, User, Developer, Manager,一個廣泛適用的過程使得所有涉眾更好地理解自己所扮演的角色、更清楚地知道自己及他人在什么時間做什么。促使過程的有機結(jié)合和改善,以獲得“最好過程”可以使公司內(nèi)部的培訓(xùn)標準化。由于過程的可重復(fù)性,利于開發(fā)進度的安排,利于成本估算。,11,6. 什么是軟件過程模型?,模型與建模軟件過程模型是從一特定的角度對軟件過程的本質(zhì)描述。軟件過程模型包括構(gòu)成軟件過程的各種活動、軟件產(chǎn)
8、品以及所有涉眾(stakeholder),12,從不同的角度對軟件過程的描述,就得到不同的過程模型種類。如:工作流模型:描述軟件過程中各種活動的序列及其輸入、輸出和相互依賴型。其中的活動皆為人的活動。數(shù)據(jù)流或活動模型:把軟件過程描述成一組活動,其中每個活動都完成一定的數(shù)據(jù)轉(zhuǎn)換。該模型中的活動層次低于工作流模型。角色/動作模型:描述參與軟件過程的不同角色及其所負責的活動。,13,通用模型或范型(Paradigm, Methodolo
9、gy),Waterfall ModelWaterfall Model with Maintenance CircleWaterfall Model with PrototypingSpiral Model(瀑布模型+原型模型)V ModelPhased Development ModelIncremental and Iterative ModelRUP,14,7. 軟件工程的成本及成本分布,軟件成本分布取決于所采用的軟件
10、過程和所開發(fā)的軟件類型。一般的成本分布:描述:設(shè)計:開發(fā):集成與測試(15:25:20:40)需求極高的軟件系統(tǒng)的集成與測試成本50%軟件進化的成本軟件維護的成本基于Web的電子商務(wù)系統(tǒng)的成本模型,15,8. 軟件工程方法 (Method),結(jié)構(gòu)化分析方法(Structured Method, DeMarco,1978, Yourdon E.和Constantine L. 等)JSD方法(Jackson System
11、Development,1983)OO方法(Object-Oriented Method, Booch, 1994;Rumbaugh等, 1991)? 設(shè)計模式,16,Tendency for Change when Using OO Paradigm (Jacobson et al. 1995),17,UML (Unified Modeling Language),1994,OO思想已經(jīng)貫穿整個軟件生存期,具有影響的OOA&a
12、mp;D方法達50余種。UML是一種對軟件密集型系統(tǒng)進行可視化、詳述、構(gòu)造和文檔化的建模語言,主要用于分析和設(shè)計階段的系統(tǒng)建模。,18,UML 2.0,1994Booch方法Rumbaugh OMT Coad/YourdonFire Smith 方法 Jacobson OOSE……,1995.10發(fā)布Unified Method 0.8,,,1996.6發(fā)布UML 0.9不包含過程指導(dǎo),,,Rational聯(lián)合12家公
13、司成立UML組織,形成UML 1.0,1997.1提交給OMG,,,1997.11.4, OMG采納UML 1.1,,2002發(fā)布UML 2.0,19,10. 優(yōu)良軟件的屬性,功能屬性 (Functional)非功能屬性 (Non-Functional),20,11. 軟件工程所面臨的主要問題,遺留系統(tǒng)的挑戰(zhàn) (Legacy systems)交付上的挑戰(zhàn)復(fù)雜性與大量的細節(jié)(火星探測器的失?。┘夹g(shù)的不確定性(技術(shù)的發(fā)展與開發(fā)人員
14、對技術(shù)的理解程度都不同)由于交流障礙而引起的需求不確定性需求是持續(xù)變化的不斷的修改所帶來的錯誤使得軟件退化人為和市場的風險軟件費用、可靠性、生產(chǎn)率、重用問題難以解決,21,講授內(nèi)容,軟件工程的基本概念基于計算機的系統(tǒng)工程軟件過程,22,1. 系統(tǒng)總體特性,功能特性非功能特性,如可靠性、安全性、保密性等。與系統(tǒng)總體可靠性緊密關(guān)聯(lián)的3個方面:硬件可靠性軟件可靠性操作可靠性,23,2. 系統(tǒng)及其環(huán)境,系統(tǒng)都是在一定的環(huán)
15、境中存在的。系統(tǒng)環(huán)境必將影響系統(tǒng)的功能和性能。環(huán)境包含一系列相互作用的其它系統(tǒng),有時,環(huán)境可能被看作是一個獨立的系統(tǒng)。系統(tǒng)工程師一定要了解系統(tǒng)環(huán)境在許多情況下,系統(tǒng)的目的就是要改變環(huán)境。一個系統(tǒng)的功能要受到環(huán)境變化的影響,這種影響可能很難估計。,24,3. 系統(tǒng)建模,系統(tǒng)建模作為系統(tǒng)需求和設(shè)計活動的一部分,描述組成系統(tǒng)的組件以及組件之間的關(guān)系(系統(tǒng)體系結(jié)構(gòu))系統(tǒng)體系結(jié)構(gòu)通常以方塊圖來描述。一個系統(tǒng)體系結(jié)構(gòu)可以以功能為單
16、位劃分成子系統(tǒng)或功能組件,而不必關(guān)心由硬件還是軟件實現(xiàn)。,25,功能組件可以分為六類:傳感器組件:收集來自系統(tǒng)環(huán)境的信息。執(zhí)行機構(gòu)組件:引起一些系統(tǒng)環(huán)境的變化。計算組件:給定輸入,執(zhí)行計算并產(chǎn)生輸出。通信組件:實現(xiàn)系統(tǒng)組件之間的彼此通信。調(diào)度組件:協(xié)調(diào)組件間的操作。接口組件:將一個組件中的表示轉(zhuǎn)換成另一個組件中的表示。,26,4. 系統(tǒng)工程過程,,,需求定義,系統(tǒng)設(shè)計,組件開發(fā),系統(tǒng)集成,系統(tǒng)安裝,系統(tǒng)進化,系統(tǒng)退役,27,
17、系統(tǒng)需求定義注重三種類型的需求:抽象的功能需求系統(tǒng)特性系統(tǒng)一定不能具有的性質(zhì)系統(tǒng)設(shè)計所包括的活動有:分割需求(通常有多種分割方法,可以產(chǎn)生不同的方案)識別子系統(tǒng)為子系統(tǒng)分配需求(通常由于外購COTS子系統(tǒng)帶來的限制而需要修改需求)描述子系統(tǒng)的功能定義子系統(tǒng)的接口,28,子系統(tǒng)開發(fā)所常見的問題:通??梢圆⑿虚_發(fā)不同的子系統(tǒng)一些超出子系統(tǒng)范圍的修改經(jīng)常發(fā)生,但是對已經(jīng)實現(xiàn)的硬件工程的修改往往帶來非常昂貴的代價,這時修改
18、往往落在軟件上(軟件的固有柔性,flexible),說明軟件需求的變化更大更頻繁。系統(tǒng)集成最好采取增量式過程,其理由是:子系統(tǒng)的開發(fā)時間通常無法預(yù)計增量式集成可以減少錯誤定位的成本(錯誤定位可能引起不同子系統(tǒng)的承包商之間的爭論,解決問題的談判須花費時日),29,講授內(nèi)容,軟件工程的基本概念基于計算機的系統(tǒng)工程軟件過程,30,1. 軟件過程模型,一個軟件過程模型是軟件過程的一個抽象表示。一般使用過程模型區(qū)分或解釋不同的軟件開發(fā)
19、方法。在實際的軟件開發(fā)中,很少單獨使用單一的過程模型,4類軟件過程模型生命周期模型(瀑布模型)進化式開發(fā)模型形式化系統(tǒng)開發(fā)模型面向復(fù)用的開發(fā)模型,31,瀑布模型,瀑布模型(Waterfall)軟件生存周期模型(Classic Life Cycle Model)線性順序模型(Linear Sequential Model),32,瀑布模型的三個特點,階段間具有順序性和依賴性推遲實現(xiàn)的觀點質(zhì)量保證的觀點,33,瀑布模型的優(yōu)
20、點,開發(fā)過程基本上是線性順序的,便于管理基于“明確、完備的需求”,可以獲得好的開發(fā)效果,34,Cost of changes,After release,,,The Impact of Changes,Definition,Development,1.5~6x,,,,,??????,1x,60~100x,35,Waterfall Model with Maintenance Circle,36,進化式開發(fā)模型,進化式開發(fā)的思想:基于
21、最初的需求,先開發(fā)一個原型系統(tǒng)給用戶使用,然后,根據(jù)用戶的反饋意見不斷地修改這個系統(tǒng),直到形成最后成熟的軟件產(chǎn)品。所強調(diào)的是,需求可以不斷地被補充和完善。進化式開發(fā)有種方式探索式開發(fā):其目標是與用戶一起工作,共同探索需求,直到最后交付系統(tǒng)。拋棄式原型:開發(fā)原型的目標是理解用戶需求。,37,從工程學和管理學角度看,進化式開發(fā)有三方面的問題:過程不可見系統(tǒng)結(jié)構(gòu)通常較差快速原型工具和技術(shù)往往與主流的工具和技術(shù)不相容實際使用的過程
22、模型通常是混合模型Waterfall Model with PrototypingV ModelPhased Development ModelIncremental and Iterative ModelSpiral Model,38,Waterfall Model with Prototyping,39,V-Model,40,Phased Development Model,41,The Incremental and
23、Iterative Model,,,,,,Incremental Development,Iterative Development,,,,42,Examples in Agile,43,增量開發(fā)的優(yōu)點,能在較短的時間內(nèi)向用戶提交可以完成主要功能的產(chǎn)品逐步增加產(chǎn)品的功能,使用戶有充裕的時間學習和適應(yīng)新產(chǎn)品,減少一個全新的產(chǎn)品給客戶組織帶來的沖擊,44,Spiral Model,45,螺旋模型的優(yōu)點,有利于已有軟件的重用有助于把軟件質(zhì)
24、量作為軟件開發(fā)的一個重要目標減少了過多測試或測試不足所帶來的風險軟件維護與軟件開發(fā)沒有本質(zhì)區(qū)別,46,統(tǒng)一過程(RUP),Rational Unified Process是 Rational 公司開發(fā)和維護的過程產(chǎn)品。 RUP的突出特點用例驅(qū)動(系統(tǒng)功能)以體系結(jié)構(gòu)/架構(gòu)為中心(表現(xiàn)形式)迭代和增量開發(fā)(過程實施)由UML方法和工具支持,47,Iterative and incremental development
25、Use-case driven,,,,,Project Management,Environment,Business Modeling,Implementation,Test,Analysis & Design,Preliminary Iteration(s),Iter.#1,,,,,,,Phases,Process Workflows,Iterations,Supporting Workflows,Iter.#2,It
26、er.#n,Iter.#n+1,Iter.#n+2,Iter.#m,Iter.#m+1,Deployment,,,,Configuration & Change Mgmt,Requirements,,,,,Elaboration,Transition,Inception,Construction,48,2. 軟件描述,可行性研究需求導(dǎo)出和分析需求描述需求有效性驗證,49,3. 軟件設(shè)計與實現(xiàn),體系結(jié)構(gòu)設(shè)計子系統(tǒng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件開發(fā)崗位舉證模板_資深軟件開發(fā)
- 軟件開發(fā)崗位舉證模板_助理軟件開發(fā)
- 軟件開發(fā)崗位舉證模板_高級軟件開發(fā)
- 軟件開發(fā)
- 軟件開發(fā)模型
- 軟件開發(fā)合同
- 軟件開發(fā)合同
- 軟件開發(fā)規(guī)范
- 軟件開發(fā)協(xié)議
- 軟件開發(fā)合同
- 軟件開發(fā)合同
- 第1章軟件開發(fā)方法(三)軟件開發(fā)技術(shù)
- 軟件開發(fā)合同
- 軟件開發(fā)合同
- 軟件開發(fā)合同
- 軟件開發(fā)協(xié)議
- 軟件開發(fā)服務(wù)
- 軟件開發(fā)合同
- 軟件開發(fā)合同
- 軟件開發(fā)周期
評論
0/150
提交評論