![軟件工程-01軟件工程概述課件_第1頁](http://file4.renrendoc.com/view/46c2913e4ad5639dddac9a7e92fee7fd/46c2913e4ad5639dddac9a7e92fee7fd1.gif)
![軟件工程-01軟件工程概述課件_第2頁](http://file4.renrendoc.com/view/46c2913e4ad5639dddac9a7e92fee7fd/46c2913e4ad5639dddac9a7e92fee7fd2.gif)
![軟件工程-01軟件工程概述課件_第3頁](http://file4.renrendoc.com/view/46c2913e4ad5639dddac9a7e92fee7fd/46c2913e4ad5639dddac9a7e92fee7fd3.gif)
![軟件工程-01軟件工程概述課件_第4頁](http://file4.renrendoc.com/view/46c2913e4ad5639dddac9a7e92fee7fd/46c2913e4ad5639dddac9a7e92fee7fd4.gif)
![軟件工程-01軟件工程概述課件_第5頁](http://file4.renrendoc.com/view/46c2913e4ad5639dddac9a7e92fee7fd/46c2913e4ad5639dddac9a7e92fee7fd5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
授課教師:梁麗軟件工程授課教師:梁麗軟件工程1第一章 軟件工程概述內(nèi)容要點:
本章概括地講述了軟件、軟件危機、軟件工程、軟件生產(chǎn)、軟件生存周期、軟件開發(fā)模型、軟件開發(fā)方法及軟件開發(fā)工具。
教學(xué)重點:軟件危機的產(chǎn)生、表現(xiàn)和原因軟件工程的定義、性質(zhì)、目標(biāo)、內(nèi)容和面臨的問題軟件生存周期各階段的特點和內(nèi)容教學(xué)難點:幾種主要的軟件開發(fā)模型主要的軟件開發(fā)方法第一章 軟件工程概述內(nèi)容要點:2本章的知識結(jié)構(gòu)圖本章的知識結(jié)構(gòu)圖3
軟件是由計算機程序的發(fā)展而形成的一種概念,是計算機系統(tǒng)中與硬件相互依存的另一部分。程序是按既定算法,用某種計算機語言所規(guī)定的指令或語句編寫的一系列指令或語句的集合。軟件是程序再加上程序?qū)崿F(xiàn)和維護(hù)程序時所必須的文檔的總稱。(一)
軟件工程的產(chǎn)生1.軟件
軟件是由計算機程序的發(fā)展而形成的一種概念,是計算機系統(tǒng)中與4軟件被普遍接受的軟件的定義是:軟件(software)是計算機系統(tǒng)中與硬件(hardware)相互依存的另一部分,它包括程序(program)、相關(guān)數(shù)據(jù)(data)及其說明文檔(document)。其中程序是按照事先設(shè)計的功能和性能要求執(zhí)行的指令序列;數(shù)據(jù)是是程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)維護(hù)和使用有關(guān)的各種圖文資料。
軟件被普遍接受的軟件的定義是:5軟件中國大百科全書中對軟件的定義是:軟件是計算機系統(tǒng)中的程序和有關(guān)文件(文檔)。根據(jù)國際標(biāo)準(zhǔn)化組織的定義,軟件是"與計算機系統(tǒng)操作有關(guān)的程序、過程、規(guī)則、及任何有關(guān)的文檔資料"。軟件中國大百科全書中對軟件的定義是:軟件是計算機系統(tǒng)中的程序6(一)
軟件工程的產(chǎn)生
在信息處理和計算機領(lǐng)域內(nèi),一般認(rèn)為軟件是計算機程序、各種相關(guān)的文檔和數(shù)據(jù)的集合,如下圖所示。(一)軟件工程的產(chǎn)生7(一)
軟件工程的產(chǎn)生文檔就是為了委托、購入、使用、開發(fā)、維護(hù)軟件,以及管理開發(fā)過程所需要的文書和資料,是有關(guān)計算機程序功能、設(shè)計、編制、使用的文字或圖形資料。一般文檔可分為面向管理人員的文檔、面向開發(fā)人員的文檔、面向用戶的文檔和面向使用維護(hù)人員的文檔。
程序是計算任務(wù)的處理對象和處理規(guī)則的描述。數(shù)據(jù)包括使系統(tǒng)初始運行所必須的數(shù)據(jù),如數(shù)據(jù)庫和表的結(jié)構(gòu)及初始數(shù)據(jù)、系統(tǒng)運行中所需要的各種代碼表、各種標(biāo)志等。
(一)軟件工程的產(chǎn)生文檔就是為了委托、購入、使用、開發(fā)、維8(一)
軟件工程的產(chǎn)生2.軟件的特點
軟件既是知識產(chǎn)品,又是與汽車、建筑物一樣的工業(yè)產(chǎn)品,此外,軟件還具有類似藝術(shù)、學(xué)術(shù)那樣的知識性創(chuàng)造的特點,因此,可以說軟件就是知識性工業(yè)產(chǎn)品,它具有一些獨特的性質(zhì): ①軟件是邏輯產(chǎn)品,它具有無形性,這個特點使它與其它工程對象有著明顯的差異。人們可以把它記錄在紙上、內(nèi)存、和磁盤、光盤上,但卻無法看到軟件本身的形態(tài),必須通過觀察、分析、思考、判斷,才能了解它的功能、性能等特性。通過計算機的執(zhí)行才能體現(xiàn)它的功能和作用。
(一)軟件工程的產(chǎn)生2.軟件的特點9②軟件在使用過程中,不存在磨損和消耗問題。軟件在生存周期后期不會因為磨損而老化,但會為了適應(yīng)硬件、環(huán)境以及需求的變化而進(jìn)行修改,而這些修改有不可避免的引入錯誤,導(dǎo)致軟件失效率升高,從而使得軟件退化。當(dāng)修改的成本變得難以接受時,軟件就被拋棄。②軟件在使用過程中,不存在磨損和消耗問題。軟件在生存周期后期10③軟件沒有明顯的制造過程。其成本主要體現(xiàn)在軟件的開發(fā)和研制上,一旦研制開發(fā)成功,就可以大量拷貝同一內(nèi)容的副本。所以對軟件的質(zhì)量控制,必須著重在軟件開發(fā)方面下工夫。④軟件對硬件和環(huán)境有著不同程度的依賴性。這導(dǎo)致了軟件移植的問題。 ⑤軟件是復(fù)雜的,而且以后會更加復(fù)雜。軟件是人類有史以來生產(chǎn)的復(fù)雜度最高的工業(yè)產(chǎn)品。軟件涉及人類社會的各行各業(yè)、方方面面,軟件開發(fā)常常涉及其它領(lǐng)域的專門知識,這對軟件工程師提出了很高的要求。
③軟件沒有明顯的制造過程。其成本主要體現(xiàn)在軟件的開發(fā)和11⑥開發(fā)和維護(hù)成本高。軟件開發(fā)需要投入大量、高強度的腦力勞動,成本非常高,風(fēng)險也大?,F(xiàn)在軟件的開銷已大大超過了硬件的開銷。⑦軟件的開發(fā)至今尚未完全擺脫手工作坊式的開發(fā)方式,生產(chǎn)效率低。⑧軟件工作牽涉到很多社會因素。許多軟件的開發(fā)和運行涉及機構(gòu)、體制和管理方式等問題,還會設(shè)計到人們的觀念和心理。這些人的因素,常常成為軟件開發(fā)的困難所在,直接影響到項目的成敗。⑥開發(fā)和維護(hù)成本高。軟件開發(fā)需要投入大量、高強度的腦力勞動,12軟件工程ppt-01軟件工程概述課件13軟件技術(shù)面臨的問題規(guī)模復(fù)雜性
生產(chǎn)率
軟件技術(shù)面臨的問題規(guī)模14例:?Windows95有1000萬行代碼
?Windows2000有5000萬行代碼,
3000多個工程師,幾百個小團(tuán)隊。Exchange2000和Windows2000開發(fā)人員結(jié)構(gòu)Exchange2000Windows2000項目經(jīng)理25人約250人開發(fā)人員140人約1700人測試人員350人約3200人例:?Windows95有1000萬行代碼Exchange215美國IBM公司在1963年至1966年開發(fā)IBM360機的操作系統(tǒng)。這一項目花了5000人一年的工作量,最多時有1000人投入開發(fā)工作,寫出了近100萬行源程序。......據(jù)統(tǒng)計,這個操作系統(tǒng)每次發(fā)行的新版本都是從前一版本中找出1000個程序錯誤而修正的結(jié)果。......這個項目的負(fù)責(zé)人F.D.Brooks事后總結(jié)了他在組織開發(fā)過程中的沉痛教訓(xùn)時說:“......正像一只逃亡的野獸落到泥潭中做垂死的掙扎,越是掙扎,陷得越深,最后無法逃脫滅頂?shù)臑?zāi)難。......程序設(shè)計工作正像這樣一個泥潭,......一批批程序員被迫在泥潭中拼命掙扎,......誰也沒有料到問題竟會陷入這樣的困境......”。IBM360操作系統(tǒng)的歷史教訓(xùn)成為軟件開發(fā)項目的典型事例為人們所記取。(一)
軟件工程的產(chǎn)生美國IBM公司在1963年至1966年開發(fā)IBM360機的操16(一)
軟件工程的產(chǎn)生3.軟件生產(chǎn)的發(fā)展
軟件生產(chǎn)的發(fā)展經(jīng)歷了程序設(shè)計時代、程序系統(tǒng)時代和軟件工程時代。
程序設(shè)計時代(60年中期以前): 生產(chǎn)方式是個體手工勞動,使用的工具是機器語言、匯編語言,主要通過編程來實現(xiàn),不重視程序設(shè)計方法。
程序系統(tǒng)時代(60-70年代): 生產(chǎn)方式是作坊式小集團(tuán)生產(chǎn),生產(chǎn)工具是高級語言(Pascal、C、Ada語言),開始提出結(jié)構(gòu)化方法,但開發(fā)技術(shù)還沒有根本性突破,開發(fā)人員素質(zhì)和開發(fā)技術(shù)不適應(yīng)規(guī)模大、結(jié)構(gòu)復(fù)雜的軟件開發(fā),導(dǎo)致了軟件危機的產(chǎn)生。
軟件工程時代: 生產(chǎn)方式是工程化生產(chǎn),提出具有廣泛應(yīng)用前景的面向?qū)ο蠓椒ê拖嚓P(guān)的語言(Smalltalk、C++),使用數(shù)據(jù)庫、開發(fā)工具、開發(fā)環(huán)境、網(wǎng)絡(luò)、先進(jìn)的開發(fā)技術(shù)和方法,使生產(chǎn)率大大提高,但未能完全擺脫軟件危機。(一)軟件工程的產(chǎn)生3.軟件生產(chǎn)的發(fā)展174.軟件危機
1)概念
指在計算機軟件開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題,這是軟件生產(chǎn)與市場需求極不適應(yīng)的嚴(yán)重現(xiàn)象。 包含兩方面的問題:一是如何開發(fā)軟件,怎樣滿足對軟件的日益增長的需求;二是如何維護(hù)數(shù)量不斷膨脹的已有軟件。
4.軟件危機182)軟件危機的表現(xiàn)
(1)對軟件開發(fā)成本和進(jìn)度的估計常常不準(zhǔn)確,軟件生產(chǎn)進(jìn)度無法控制。開發(fā)成本超出預(yù)算,實際進(jìn)度比預(yù)定計劃一再拖延的現(xiàn)象并不罕見。
2)軟件危機的表現(xiàn)19(2)軟件需求定義不準(zhǔn)確,易偏離用戶需求。用戶對“已完成”系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。
軟件危機的表現(xiàn)(2)軟件需求定義不準(zhǔn)確,易偏離用戶需求。用戶對“已完20(3)軟件的可維護(hù)程度非常之低。很多程序的錯誤是很難改正的,不能根據(jù)用戶的需求變化在原有程序中增加新的功能。
軟件危機的表現(xiàn)(3)軟件的可維護(hù)程度非常之低。很多程序的錯誤是很難改正的,21(4)軟件通常沒有適當(dāng)?shù)奈臋n資料。管理人員可以使用這些文檔作為管理何評價軟件開發(fā)工程的進(jìn)展情況;軟件開發(fā)人員可以利用他們作為信息交換工具;對于軟件維護(hù)人員文檔更是必不可少。
軟件危機的表現(xiàn)(4)軟件通常沒有適當(dāng)?shù)奈臋n資料。管理人員可以使用這些文檔作22(5)軟件的成本不斷提高。隨著技術(shù)的進(jìn)步硬件成本不斷降低,而軟件成本隨著人力資源成本的增高、軟件規(guī)模的增大而不斷上漲。在美國1985年的軟件成本已經(jīng)占到計算機系統(tǒng)總成本的90%。(6)軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和人們需求的增長。(7)軟件可維護(hù)性差。詳見教材P2(5)軟件的成本不斷提高。隨著技術(shù)的進(jìn)步硬件成本不斷降低,而23
成功的標(biāo)準(zhǔn):用戶在用用戶可很容易做完要做的事
失敗的根本原因:開發(fā)人員寫出的東西達(dá)不到用戶要求(人的問題.技術(shù)問題)成功的標(biāo)準(zhǔn):用戶在用24問題出在哪里??
⑴項目沒有被很好地理解;計劃不周,最終導(dǎo)致進(jìn)度拖延。⑵沒有充分的文檔資料(documentation)(3)軟件可靠性(reliability)缺少度量的標(biāo)準(zhǔn),質(zhì)量無法保證。如何保證軟件產(chǎn)品的質(zhì)量,是非常復(fù)雜困難的問題,特別對于規(guī)模龐大的軟件。⑷軟件難以維護(hù)(maintainability)、不易升級(evolvability)問題出在哪里??
⑴項目沒有被很好地理解;計劃不周,最終導(dǎo)25產(chǎn)生軟件危機的原因:在軟件開發(fā)過程中出現(xiàn)的嚴(yán)重問題主要與:軟件本身有關(guān)。軟件開發(fā)與維護(hù)的方法不正確有關(guān)。產(chǎn)生軟件危機的原因:在軟件開發(fā)過程中出現(xiàn)的嚴(yán)重問題主要與:26產(chǎn)生軟件危機的原因:
軟件與硬件不同,是邏輯部件。軟件開發(fā)過程的進(jìn)展情況難以衡量。軟件開發(fā)的質(zhì)量也難以評價。管理與控制軟件開發(fā)過程相當(dāng)困難。修改或改正軟件設(shè)計等軟件維護(hù)比較困難。產(chǎn)生軟件危機的原因:軟件與硬件不同,是邏輯部件。27產(chǎn)生軟件危機的原因:
軟件不同于一般的程序,其規(guī)模龐大。需要多人協(xié)作完成,會涉及諸多技術(shù)問題,比如:分析方法、設(shè)計方法、形式說明方法、版本控制等。需要嚴(yán)格、科學(xué)的管理。產(chǎn)生軟件危機的原因:軟件不同于一般的程序,其規(guī)模龐大。28
軟件本身的特點也給開發(fā)和維護(hù)帶來一些客觀困難。軟件開發(fā)與維護(hù)中長期形成的錯誤認(rèn)識與作法。比如:忽視軟件的需求分析,急于動手編寫程序;輕視軟件的維護(hù)等。軟件本身的特點也給開發(fā)和維護(hù)帶來一些客觀困難。軟件開發(fā)與29二是軟件專業(yè)人員自身的缺陷(軟件開發(fā)人員——沒有掌握正確的軟件開發(fā)方法,對軟件開發(fā)和維護(hù)存在許多模糊、錯誤認(rèn)識;軟件管理人員——軟件管理技術(shù)落后,軟件質(zhì)量管理沒有依據(jù))(4)解決途徑
詳見教材P5二是軟件專業(yè)人員自身的缺陷(軟件開發(fā)人員——沒有掌握正確的軟30(一)
軟件工程的產(chǎn)生
軟件工程的定義軟件工程這一術(shù)語首次出現(xiàn)在1968年的NATO會議上。是指導(dǎo)計算機軟件開發(fā)和維護(hù)的工程學(xué)科。FritzBauer在NATO會議上給出的定義:
“軟件工程是為了經(jīng)濟(jì)地獲得可靠的和能在實際機器上高效運行的軟件而確立和使用的健全的工程原理(方法)?!?/p>
(一)軟件工程的產(chǎn)生
軟件工程的定義軟件工程這一術(shù)語首次出31軟件工程的定義
IEEE【IEE83】給出的軟件工程定義:
“軟件工程是開發(fā)、運行、維護(hù)和修復(fù)軟件的系統(tǒng)方法?!避浖こ痰亩xIEEE【IEE83】給出的軟件工程32軟件工程的定義
IEEE【IEE93】給出了一個更加綜合的定義:
“將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運行和維護(hù)的過程,即將工程化應(yīng)用于軟件中?!?/p>
軟件工程的定義IEEE【IEE93】給出了一個更加綜合33軟件工程的定義
軟件工程是應(yīng)用計算機科學(xué)、數(shù)學(xué)及管理科學(xué)等原理開發(fā)軟件的工程。它借鑒傳統(tǒng)工程的原則、方法,以提高質(zhì)量,降低成本為目的。其中:
計算機科學(xué)、數(shù)學(xué)——用于構(gòu)造軟件系統(tǒng)模型與算法;
工程科學(xué)——用于制定規(guī)范、標(biāo)準(zhǔn);
管理科學(xué)——用于計劃、資源、成本、質(zhì)量控制。
目標(biāo):追求軟件產(chǎn)品的正確性、可用性和軟件生產(chǎn)的效率
工程活動:需求分析、設(shè)計、實現(xiàn)、測試確認(rèn)、維護(hù)支持
方法學(xué)問題:開發(fā)模型、設(shè)計方法、支持過程、管理過程
軟件工程的定義軟件工程是應(yīng)用計算機科學(xué)、數(shù)學(xué)及管理科34什么是軟件工程?
是指導(dǎo)計算機軟件開發(fā)和維護(hù)的工程學(xué)科。它采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,并把正確的管理技術(shù)與當(dāng)前最好的技術(shù)方法結(jié)合起來。什么是軟件工程?35軟件工程學(xué)自軟件工程的概念形成以來,在這一研究領(lǐng)域吸引了眾多的科學(xué)和技術(shù)人員,并開展了大量的理論和技術(shù)性的研究,從而形成了“軟件工程學(xué)”這一計算機科學(xué)中的分支。軟件工程學(xué)自軟件工程的概念形成以來,在這一研究領(lǐng)36軟件工程學(xué)軟件工程學(xué)就是研究"如何借助科學(xué)的理論和現(xiàn)代工程上的技術(shù)來指導(dǎo)軟件的開發(fā),從而達(dá)到用較少的投資獲得高質(zhì)量的、可靠的軟件的目的。"的科學(xué)。它涉及到軟件的全部活動、廣泛的知識領(lǐng)域及其技術(shù);包括:計算機科學(xué)、數(shù)學(xué)、管理學(xué)、經(jīng)濟(jì)學(xué)、心理學(xué)、認(rèn)知學(xué)、行為學(xué)、美學(xué)、藝術(shù)、可靠性理論和通信技術(shù)等多個學(xué)科。具體而言,軟件工程學(xué)提出了對開發(fā)理論、開發(fā)方法、開發(fā)工具的研究領(lǐng)域。軟件工程學(xué)軟件工程學(xué)就是研究"如何借助科學(xué)的理論和現(xiàn)代工程上37軟件工程學(xué)軟件工程學(xué)的發(fā)展經(jīng)歷了三個時期:程序設(shè)計時期、軟件時期、軟件工程時期。
軟件工程學(xué)軟件工程學(xué)的發(fā)展經(jīng)歷了三個時期:程序設(shè)計時期、軟件38軟件工程學(xué)軟件工程學(xué)所包含的內(nèi)容可概括為:軟件開發(fā)技術(shù)軟件工程(項目)管理軟件工程學(xué)軟件工程學(xué)所包含的內(nèi)容可概括為:39軟件工程學(xué)軟件開發(fā)技術(shù)所包含的內(nèi)容可概括為:軟件開發(fā)方法學(xué)軟件工具軟件工程環(huán)境軟件工程學(xué)軟件開發(fā)技術(shù)所包含的內(nèi)容可概括為:40軟件工程學(xué)軟件工程(項目)管理主要包括軟件管理軟件工程經(jīng)濟(jì)學(xué)軟件項目管理包括軟件度量、項目估算、進(jìn)度控制、人員組織、配置管理、項目計劃等。軟件工程學(xué)軟件工程(項目)管理主要包括41軟件工程學(xué)統(tǒng)計數(shù)據(jù)表明,大多數(shù)軟件開發(fā)項目的失敗,并不是由于軟件開發(fā)技術(shù)方面的原因。它們的失敗是由于不適當(dāng)?shù)墓芾碓斐傻摹_z憾的是,盡管人們對軟件項目管理重要性的認(rèn)識有所提高,但在軟件管理方面的進(jìn)步遠(yuǎn)比在設(shè)計方法學(xué)和實現(xiàn)方法學(xué)上的進(jìn)步小,至今還提不出一套管理軟件開發(fā)的通用指導(dǎo)原則軟件工程學(xué)統(tǒng)計數(shù)據(jù)表明,大多數(shù)軟件開發(fā)項目的失敗,并不是由于42“軟件工程”課程
與其它軟件專業(yè)課的區(qū)別(1)立足于系統(tǒng)的整體。(2)講授系統(tǒng)分析、系統(tǒng)設(shè)計、測試及維護(hù)的理論和方法。(3)構(gòu)筑一個軟件系統(tǒng),實踐軟件開發(fā)全過程。
“軟件工程”課程
與其它軟件專業(yè)課的區(qū)別(1)43“軟件工程”課程教學(xué)與實踐的目標(biāo)
轉(zhuǎn)變對軟件開發(fā)的認(rèn)識:上升
程序系統(tǒng)轉(zhuǎn)變思維定式:上升
程序員系統(tǒng)工程師
(系統(tǒng)分析員)
工程化訓(xùn)練“軟件工程”課程教學(xué)與實踐的目標(biāo)轉(zhuǎn)變對軟件開發(fā)的認(rèn)識:44系統(tǒng)分析員的地位用戶分析員程序員系統(tǒng)分析員的地位用戶分析員程序員45“一個好的工業(yè),應(yīng)有一套
良好的標(biāo)準(zhǔn)來配套”軟件的工業(yè)化生產(chǎn)過程應(yīng)具備的特點:明確的工作步驟詳細(xì)具體的規(guī)范化文檔明確的質(zhì)量評價標(biāo)準(zhǔn)“一個好的工業(yè),應(yīng)有一套
良好的標(biāo)準(zhǔn)來配套”軟件的工業(yè)化生產(chǎn)46軟件工程技術(shù)的兩個明顯特點:
強調(diào)規(guī)范化強調(diào)文檔化軟件工程技術(shù)的兩個明顯特點:強調(diào)規(guī)范化47(一)
軟件工程的產(chǎn)生6.軟件工程的基本原理用分階段的生命周期計劃嚴(yán)格管理。堅持進(jìn)行階段評審。實行嚴(yán)格的產(chǎn)品管理。采用現(xiàn)代程序設(shè)計技術(shù)。結(jié)果應(yīng)該清楚地審查。開發(fā)小組成員應(yīng)該少而精。承認(rèn)不斷改進(jìn)的軟件工程實踐的必要性。(一)軟件工程的產(chǎn)生6.軟件工程的基本原理48(二)軟件工程過程和軟件生存周期1.軟件工程過程
軟件工程過程就是在獲取、供應(yīng)、開發(fā)、操作和維護(hù)軟件時,要實施的過程、活動和任務(wù),它包含獲取過程、供應(yīng)過程、開發(fā)過程、操作過程、維護(hù)過程、管理過程和支持過程等。2.軟件生存周期(SoftwareLiveCycle
)
軟件生存周期是指一個軟件從立項開始,經(jīng)過制造、測試、使用和維護(hù)直到軟件廢棄為止的整個時期。其方法是從時間角度對軟件開發(fā)和維護(hù)的整個復(fù)雜的過程進(jìn)行分解,依次劃分為若干個階段,每個階段都有明確并且相對獨立的任務(wù)和完成標(biāo)志,一個階段的任務(wù)完成后,再進(jìn)入下一階段。(二)軟件工程過程和軟件生存周期1.軟件工程過程49軟件工程的開發(fā)傳統(tǒng)途徑:采用生命周期法,從時間角度對軟件開發(fā)和維護(hù)的復(fù)雜問題進(jìn)行分解,把軟件的生命周期依次劃分為若干個階段,每個階段有相對獨立的任務(wù),然后逐步完成每個階段的任務(wù)。軟件工程的開發(fā)傳統(tǒng)途徑:采用生命周期法,從50軟件工程的開發(fā)傳統(tǒng)途徑:前一階段任務(wù)完成是開始后一階段工作的前提和基礎(chǔ)。后一階段任務(wù)的完成是前一階段的進(jìn)一步具體化。每一階段的開始與結(jié)束都有嚴(yán)格的標(biāo)準(zhǔn)。在每一階段結(jié)束之前必須進(jìn)行正式嚴(yán)格的技術(shù)審查與管理復(fù)審。軟件工程的開發(fā)傳統(tǒng)途徑:前一階段任務(wù)完成是開51(二)軟件工程過程和軟件生存周期
劃分軟件生存周期的方法有多種,大致可分為需求分析與計劃、設(shè)計、制造、測試、使用與維護(hù)等。在國家標(biāo)準(zhǔn)“計算機軟件開發(fā)規(guī)范”中,把軟件生存周期劃分為8個階段,即可行性研究與計劃、需求分析、概要設(shè)計、詳細(xì)設(shè)計、實現(xiàn)、綜合測試、確認(rèn)測試、使用與維護(hù),對每個階段,都明確規(guī)定了該階段的任務(wù)、實施方法、實施步驟和完成標(biāo)志,其中特別規(guī)定了每個階段需要產(chǎn)生的文檔。 本書中采用的階段劃分為:可行性研究、需求分析、概要設(shè)計、詳細(xì)設(shè)計、編碼、測試、維護(hù)。
(二)軟件工程過程和軟件生存周期 劃分軟件生存周期的方法有52生命周期各階段的基本任務(wù):軟件的生命周期分為:
軟件定義軟件開發(fā)
軟件維護(hù)軟件定義時期包括:
問題定義、可行性研究、需求分析。軟件開發(fā)時期包括:總體設(shè)計、詳細(xì)設(shè)計、編碼、測試。生命周期各階段的基本任務(wù):軟件的生命周期分為:53生命周期各階段的基本任務(wù):問題定義
描述我們面向的系統(tǒng)到底要解決什么問題?并提出問題的性質(zhì)、工程目標(biāo)和規(guī)模的書面報告。生命周期各階段的基本任務(wù):問題定義54生命周期法各階段的基本任務(wù):可行性研究
對所定義的問題,研究其范圍,是否值得取解,是否有可行的解決辦法。成果:系統(tǒng)高層邏輯模型(數(shù)據(jù)流圖)。成本/效益分析(工程的規(guī)模與目標(biāo)、系統(tǒng)成本與效益)。生命周期法各階段的基本任務(wù):可行性研究55生命周期法各階段的基本任務(wù):需求分析
確定目標(biāo)系統(tǒng)應(yīng)具備哪些功能。提出并確認(rèn)系統(tǒng)邏輯模型(數(shù)據(jù)流圖、數(shù)據(jù)字典、算法描述)。成果:
對提出的需求進(jìn)行分析并給出詳細(xì)的定義。
編寫軟件需求說明書或系統(tǒng)功能說明書及初步的系統(tǒng)用戶手冊
提交管理機構(gòu)評審生命周期法各階段的基本任務(wù):需求分析56生命周期法各階段的基本任務(wù):總體設(shè)計
對所定義的問題,研究其范圍,是否值得去解,是否有可行的解決辦法。
把各項需求轉(zhuǎn)換成軟件的體系結(jié)構(gòu)。結(jié)構(gòu)中每一組成部分都是意義明確的模塊,每個模塊都和某些需求相對應(yīng)。成果:系統(tǒng)高層邏輯模型(數(shù)據(jù)流圖)。成本/效益分析(工程的規(guī)模與目標(biāo)、系統(tǒng)成本與效益)。系統(tǒng)結(jié)構(gòu)(層次圖或結(jié)構(gòu)圖)。生命周期法各階段的基本任務(wù):總體設(shè)計57生命周期法各階段的基本任務(wù):詳細(xì)設(shè)計
具體地實現(xiàn)這個系統(tǒng)。設(shè)計出程序的詳細(xì)規(guī)格說明。對每個模塊要完成的工作進(jìn)行具體的描述,為源程序編寫打下基礎(chǔ)。成果:編碼規(guī)格說明(HIPO圖或PDL)。生命周期法各階段的基本任務(wù):詳細(xì)設(shè)計58生命周期法各階段的基本任務(wù):編碼
把對軟件的詳細(xì)設(shè)計轉(zhuǎn)換成計算機可以接受的程序代碼,即寫成以某一種特定程序設(shè)計語言表示的“源程序清單” 寫出的程序應(yīng)當(dāng)是結(jié)構(gòu)良好、清晰易讀的,且與設(shè)計相一致的生命周期法各階段的基本任務(wù):編碼59生命周期法各階段的基本任務(wù):軟件測試單元測試:查找各模塊在功能和結(jié)構(gòu)上存在的 問題并加以糾正。組裝測試:將已測試過的模塊按一定順序組裝 起來。 按規(guī)定的各項需求,逐項進(jìn)行有效性測試,決定已開發(fā)的軟件是否合格,能否交付用戶使用。生命周期法各階段的基本任務(wù):軟件測試60生命周期法各階段的基本任務(wù):軟件維護(hù)改正性維護(hù):運行中發(fā)現(xiàn)了軟件中的錯誤需要 修正。適應(yīng)性維護(hù):為了適應(yīng)變化了的軟件工作環(huán) 境,需做適當(dāng)變更。完善性維護(hù):為了增強軟件的功能需做變更。預(yù)防性維護(hù):修改軟件為將來的維護(hù)活動預(yù)先 做準(zhǔn)備。生命周期法各階段的基本任務(wù):軟件維護(hù)61軟件工程ppt-01軟件工程概述課件62(三)軟件生存周期模型、方法和工具1.軟件生存周期模型
20世紀(jì)60年代后期,當(dāng)人們以工程學(xué)的觀點來研究軟件的開發(fā)方法時,借鑒在其他工程領(lǐng)域活動中所使用的方法提出了軟件開發(fā)模型,這就把軟件開發(fā)工程變成可視過程,受到了軟件開發(fā)人員和項目管理人員的歡迎.
軟件生存期模型是跨越整個生存期的系統(tǒng)開發(fā)、運作和維護(hù)所實施的全部過程、活動和任務(wù)的結(jié)構(gòu)框架(三)軟件生存周期模型、方法和工具1.軟件生存周期模型63軟件的生命周期模型:
軟件生命周期模型是跨越整個生命周期的系統(tǒng)開發(fā)、運作和維護(hù)所實施的全部過程、活動和任務(wù)的結(jié)構(gòu)框架。
瀑布模型
演化模型
螺旋模型
噴泉模型
智能模型軟件的生命周期模型:軟件生命周期模型是跨越整個生命周64瀑布模型瀑布模型規(guī)定了生存期各項軟件活動,包括開發(fā)計劃、需求分析、系統(tǒng)設(shè)計、測試、維護(hù)。并且規(guī)定它們自上而下、相互銜接的固定次序。所有過程模型的祖宗項目從開始到結(jié)束按照一定的順序執(zhí)行瀑布模型是文檔驅(qū)動的,各個階段不連續(xù)也不交叉瀑布模型瀑布模型規(guī)定了生存期各項軟件活動,包括開發(fā)計劃、需求65軟件的生命周期模型:瀑布模型軟件的生命周期模型:瀑布模型66瀑布模型
特點(詳見教材P12) (1)階段間具有順序性和依賴性 (2)推遲實現(xiàn)的觀點 (3)質(zhì)量保證的觀點 瀑布模型是60~70年代為克服軟件危機提出的主要軟件開發(fā)模型,它在糾正軟開發(fā)人員的錯誤觀點,認(rèn)識軟件開發(fā)與程序設(shè)計的本質(zhì)區(qū)別,在克服軟件危機方面能起到一定作用。瀑布模型 67適用場合:當(dāng)有一個穩(wěn)定的產(chǎn)品定義和很容易被理解的技術(shù)解決方案時,純瀑布模型特別合適當(dāng)你對一個定義得很好的版本進(jìn)行維護(hù)或?qū)⒁粋€產(chǎn)品移植到一個新的平臺上,瀑布模型也特別合適。純瀑布模型能夠降低管理費用,因為你可以預(yù)先完成所有計劃。對于那些容易理解但很復(fù)雜的項目,采用純瀑布模型比較合適,因為可以用順序方法處理問題。在質(zhì)量需求高于成本需求和進(jìn)度需求的時候,它尤為出色。當(dāng)開發(fā)隊伍的技術(shù)力量比較弱或者缺乏經(jīng)驗時,瀑布模型更為適合。適用場合:68優(yōu)點:
a.強調(diào)開發(fā)的階段性;
b.強調(diào)早期計劃及需求調(diào)查;
c.強調(diào)產(chǎn)品測試。缺點:a.依賴于早期進(jìn)行的唯一一次需求調(diào)查,不能適應(yīng)需求的變化;b.由于是單一流程,開發(fā)中的經(jīng)驗教訓(xùn)不能反饋應(yīng)用于本產(chǎn)品的過程;c.風(fēng)險往往遲至后期的開發(fā)階段才顯露,因而失去及早糾正的機會。優(yōu)點:69軟件的生命周期模型:
由于在項目開發(fā)的初始階段人們對軟件的需求認(rèn)識常常不夠清晰,因而使得開發(fā)項目難于做到一次開發(fā)成功,出現(xiàn)返工再開發(fā)在所難免,所以做兩次。
第一次只是試驗開發(fā),其目標(biāo)只是在于探索可行性,弄清軟件需求。
第二次則在此基礎(chǔ)上獲得較為滿意的軟件產(chǎn)品。軟件的生命周期模型:70該模型主要針對事先不能完整定義需求的軟件開發(fā)。用戶可以給出待開發(fā)系統(tǒng)的核心需求,并且當(dāng)看到核心需求實現(xiàn)后,能夠有效地提出反饋,以支持系統(tǒng)的最終設(shè)計和實現(xiàn)。軟件開發(fā)人員根據(jù)用戶的需求,首先開發(fā)核心系統(tǒng)。當(dāng)該核心系統(tǒng)投入運行后,用戶試用之,完成他們的工作,并提出精化系統(tǒng)、增強系統(tǒng)能力的需求。軟件開發(fā)人員根據(jù)用戶的反饋,實施開發(fā)的迭代過程。每一迭代過程均由需求、設(shè)計、編碼、測試、集成等階段組成,為整個系統(tǒng)增加一個可定義的、可管理的子集。如圖所示。演化模型演化模型71演化模型圖演化模型圖72演化模型優(yōu)點任何功能一經(jīng)開發(fā)就能進(jìn)入測試以便驗證是否符合產(chǎn)品需求。幫助導(dǎo)引出高質(zhì)量的產(chǎn)品要求。如果沒有可能在一開始就弄清楚所有的產(chǎn)品需求,它們可以分批取得。而對于已提出的產(chǎn)品需求,則可根據(jù)對現(xiàn)階段原型的試用而作出修改。風(fēng)險管理可以在早期就獲得項目進(jìn)程數(shù)據(jù),可據(jù)此對后續(xù)的開發(fā)循環(huán)作出比較切實的估算。提供機會去采取早期預(yù)防措施,增加項目成功的機率。大大有助于早期建立產(chǎn)品開發(fā)的配置管理,產(chǎn)品構(gòu)建(build),自動化測試,缺陷跟蹤,文檔管理。均衡整個開發(fā)過程的負(fù)荷。演化模型優(yōu)點73開發(fā)中的經(jīng)驗教訓(xùn)能反饋應(yīng)用于本產(chǎn)品的下一個循環(huán)過程,大大提高質(zhì)量與效率。如果風(fēng)險管理發(fā)現(xiàn)資金或時間已超出可承受的程度,則可以決定調(diào)整后續(xù)的開發(fā),或在一個適當(dāng)?shù)臅r刻結(jié)束開發(fā),但仍然有一個具有部分功能的,可工作的產(chǎn)品。心理上,開發(fā)人員早日見到產(chǎn)品的雛型,是一種鼓舞。使用戶可以在新的一批功能開發(fā)測試后,立即參加驗證,以便提供非常有價值的反饋??墒逛N售工作有可能提前進(jìn)行,因為可以在產(chǎn)品開發(fā)的中后期取得包含了主要功能的產(chǎn)品原型去向客戶作展示和試用。開發(fā)中的經(jīng)驗教訓(xùn)能反饋應(yīng)用于本產(chǎn)品的下一個循環(huán)過程,大大提高74演化模型缺點如果所有的產(chǎn)品需求在一開始并不完全弄清楚的話,會給總體設(shè)計帶來困難及削弱產(chǎn)品設(shè)計的完整性,并因而影響產(chǎn)品性能的優(yōu)化及產(chǎn)品的可維護(hù)性。如果缺乏嚴(yán)格的過程管理的話,這個生命周期模型很可能退化為一種原始的無計劃的“試-錯-改”模式。心理上,可能產(chǎn)生一種影響盡最大努力的想法,認(rèn)為雖然不能完成全部功能,但還是造出了一個有部分功能的產(chǎn)品。如果不加控制地讓用戶接觸開發(fā)中尚未測試穩(wěn)定的功能,可能對開發(fā)人員及用戶都產(chǎn)生負(fù)面的影響。演化模型缺點如果所有的產(chǎn)品需求在一開始并不完全弄清楚的話,會75螺旋模型
瀑布模型與演化模型相結(jié)合,并加入兩者所忽略的風(fēng)險分析所建立的一種軟件開發(fā)模型。該模型于1998年由美國TRW公司(B.W.Boehm)提出。軟件項目風(fēng)險的大小作為指引軟件過程的一個重要因素,引入這一概念有可能使得軟件開發(fā)被看作一種元模型,因為它能包容任何一個開發(fā)過程模型。螺旋模型瀑布模型與演化模型相結(jié)合,并加入兩者所忽略的風(fēng)險分76軟件的生命周期模型:螺旋模型
螺旋模型將開發(fā)過程分為幾個螺旋周期,在每個螺旋周期內(nèi)分為制定計劃、風(fēng)險分析、開發(fā)實施、用戶評估四個步驟。開發(fā)實施基本和瀑布模型相吻合。螺旋模型適合大型軟件的開發(fā),其特征是在項目的開發(fā)階段中找出管理上的問題點,問題點分析之后,開始各個生存期。各生存期結(jié)束后進(jìn)行審查,以決定是否應(yīng)進(jìn)入下一個螺旋周期。軟件的生命周期模型:螺旋模型77螺旋模型沿著螺線旋轉(zhuǎn),在四個象限上分別表達(dá)四個方面的活動,即:
制定計劃──確定軟件目標(biāo),選定實施方案,弄清項目開發(fā)的限制條件風(fēng)險分析──分析所選方案,考慮如何識別和消除風(fēng)險開發(fā)實施──實施軟件開發(fā)客戶評估──評價開發(fā)工作,提出修正建議螺旋模型沿著螺線旋轉(zhuǎn),在四個象限上分別表達(dá)四個方面的活78螺旋模型螺旋模型79風(fēng)險分析工程實施用戶通信用戶評估產(chǎn)品維護(hù)項目產(chǎn)品增強項目新產(chǎn)品開發(fā)項目概念開發(fā)項目計劃建造及發(fā)布風(fēng)險工程用戶通信用戶產(chǎn)品維護(hù)項目產(chǎn)品增強項目新產(chǎn)品開發(fā)項目概80螺旋模型優(yōu)缺點優(yōu)點:
強調(diào)嚴(yán)格的全過程風(fēng)險管理。強調(diào)各開發(fā)階段的質(zhì)量。提供機會檢討項目是否有價值繼續(xù)下去。適合大型軟件的開發(fā),是開發(fā)大型軟件最實際的方法。缺點:
引入非常嚴(yán)格的風(fēng)險識別,風(fēng)險分析,和風(fēng)險控制,這對風(fēng)險管理的技能水平提出了很高的要求。這需要人員,資金,和時間的投入。使許多用戶接受和相信此方法并不容易。螺旋模型出現(xiàn)晚,不如瀑布模型普及。螺旋模型優(yōu)缺點優(yōu)點:81軟件的生命周期模型:噴泉模型該模型是由B.H.Sollers和J.M.Edwards于1990年提出的一種新的開發(fā)模型。主要用于采用對象技術(shù)的軟件開發(fā)項目。它克服了瀑布模型不支持軟件重用和多項開發(fā)活動集成的局限性,噴泉模型使開發(fā)過程具有迭代性和無間隙性。迭代重復(fù)演進(jìn)無間隙各階段間無明顯界限
它是一種以用戶需求為動力,以對象為驅(qū)動的模型,適合于面向?qū)ο蟮拈_發(fā)方法。軟件的生命周期模型:噴泉模型它是一種以用戶82其特點如下:
1、開發(fā)過程有分析、系統(tǒng)設(shè)計、軟件設(shè)計和實現(xiàn)4個階段。2、各階段相互重疊,它反映了軟件過程并行性的特點。3、以分析為基礎(chǔ),資源消耗成塔型。4、反映了軟件過程迭代性的自然特性,從高層返回低層無資源消耗。5、強調(diào)增量開發(fā),整個過程是一個迭代的逐步提煉的過程。
分析系統(tǒng)設(shè)計軟件設(shè)計實現(xiàn)圖1.5噴泉模型其特點如下:分析系統(tǒng)設(shè)計軟件設(shè)計實現(xiàn)圖1.83原型化方法(Prototyping)原型是項目系統(tǒng)中的一個方面或者多個方面的工作模型適用于用戶驅(qū)動的系統(tǒng)(即需求模糊或隨時間變化的系統(tǒng))拋棄型原型:用于試驗?zāi)承└拍?,試驗完系統(tǒng)將無用處進(jìn)化型原型:原型系統(tǒng)不斷被開發(fā)和被修正,最終它變?yōu)橐粋€真正的系統(tǒng)。PrototypeModificationFeedback原型化方法(Prototyping)原型是項目系統(tǒng)中的一個方84原型的工作模型是一個循環(huán)的模型??焖僭头ò匆韵虏襟E循環(huán)執(zhí)行:
1、快速分析快速確定軟件系統(tǒng)的基本要求,確定原型所要體現(xiàn)的特征(界面,總體結(jié)構(gòu),功能,性能)
2、構(gòu)造原型在快速分析的基礎(chǔ)上,根據(jù)基本規(guī)格說明,忽略細(xì)節(jié),只考慮主要特征,快速構(gòu)造一個可運行的系統(tǒng)。有三類原型:用戶界面原型,功能原型,性能原型。
3、運行和評價原型用戶試用原型并與開發(fā)者之間頻繁交流,發(fā)現(xiàn)問題,目的是驗證原型的正確性。
4、修改與改進(jìn)對原型進(jìn)行修改、增刪。原型的工作模型評價
構(gòu)造快速分析或修改運行原型的工作模型是一個循環(huán)的模型。原型的工作模型評價構(gòu)造快85構(gòu)造原型運行/評價原型原型完成否要細(xì)部說明否嚴(yán)格說明細(xì)部效果滿意否整理原型提供文檔修正改進(jìn)原型YYNN快速分析,確定初步規(guī)格說明YN細(xì)化的快速原型模型構(gòu)造原型運行/評價原型原型完成否要細(xì)部說明否嚴(yán)格說明細(xì)部效果86原型的好處從實踐中學(xué)習(xí)(Learningbydoing)改善的通信改善的用戶參與使部分已知的需求清晰化展示描述的一致性和完整性可能可以減少文檔減少了維護(hù)成本特征約束(利用工具構(gòu)造原型可以將某些特性落到實處,而非在紙上寫的那樣容易失誤)試驗是否能產(chǎn)生期待的結(jié)果原型的好處87原型法的缺點用戶有時誤解了原型的角色,例如他們可能誤解原型應(yīng)該和真實系統(tǒng)一樣可靠缺少項目標(biāo)準(zhǔn),進(jìn)化原型法有點像編碼修正缺少控制,由于用戶可能不斷提出新要求,因而原型迭代的周期很難控制額外的花費:研究結(jié)果表明構(gòu)造一個原型可能需要10%額外花費運行效率可能會受影響原型法要求開發(fā)者與用戶密切接觸,有時這是不可能的。例如外包軟件。原型法的缺點88(三)軟件生存周期模型、方法和工具2.軟件開發(fā)方法
軟件開發(fā)方法包括分析方法、設(shè)計方法、程序設(shè)計方法、設(shè)計描述方法、測試方法、文檔生成方法等,其中分析設(shè)計方法是軟件開發(fā)的基礎(chǔ),在某種程度上決定了軟件開發(fā)的成與敗、質(zhì)量的好與壞、效率的高與低。自軟件工程誕生以來,人們提出了許多軟件分析設(shè)計方法,目前應(yīng)用最廣的是結(jié)構(gòu)化方法和面向?qū)ο蠓椒ǎ€有面向數(shù)據(jù)結(jié)構(gòu)設(shè)計法、面向控制結(jié)構(gòu)設(shè)計法、TopDown設(shè)計法、維也納設(shè)計法等。(三)軟件生存周期模型、方法和工具2.軟件開發(fā)方法89(三)軟件生存周期模型、方法和工具(1)結(jié)構(gòu)化分析設(shè)計方法
自1972年提出結(jié)構(gòu)化程序設(shè)計方法、1974年提出結(jié)構(gòu)化設(shè)計方法以來,結(jié)構(gòu)化分析設(shè)計方法得到了廣泛的應(yīng)用和普及。該方法是一種面向數(shù)據(jù)流的開發(fā)方法,其實質(zhì)就是功能分解和抽象。從對象系統(tǒng)的整體功能入手,自頂向下逐步求精,分解成若干個具有合適大小和功能的模塊并對各個模塊進(jìn)行定義和描述。作為圖形表示方法有數(shù)據(jù)流圖和模塊層次結(jié)構(gòu)圖。(三)軟件生存周期模型、方法和工具(1)結(jié)構(gòu)化分析設(shè)計方法90一、結(jié)構(gòu)化開發(fā)方法的組成
70年代初結(jié)構(gòu)化程序設(shè)計方法SP法(StructuredProgram)
70年代中結(jié)構(gòu)化設(shè)計方法SD法(StructuredDesign)
70年代末結(jié)構(gòu)化分析方法SA法(StructuredAnalysis)
SA,SD,SP法相互銜接,形成了一整套開發(fā)方法。若將SA,SD法結(jié)合起來,又稱為結(jié)構(gòu)化分析與設(shè)計技術(shù)(SADT技術(shù))。結(jié)構(gòu)化方法的工作模型—瀑布模型(WaterfallModel)但從80年代開始,逐漸發(fā)現(xiàn)其不足,軟件開發(fā)過程是個充滿回朔的過程。而瀑布模型將其分割為獨立的幾個階段,不能從本質(zhì)上反映軟件開發(fā)過程本身的規(guī)律。此外,過分強調(diào)復(fù)審,并不能完全避免較為頻繁的變動。盡管如此,瀑布模型仍然是開發(fā)軟件產(chǎn)品的一個行之有效的工程模型。二、結(jié)構(gòu)化方法的工作模型一、結(jié)構(gòu)化開發(fā)方法的組成結(jié)構(gòu)化方法的工作模型—瀑布模91(三)軟件生存周期模型、方法和工具(2)面向?qū)ο蠓治鲈O(shè)計方法
面向?qū)ο蠓椒▽W(xué)是20世紀(jì)90年代發(fā)展起來的軟件分析設(shè)計方法。該方法把客觀世界的事物或?qū)嶓w都看成對象,把對象作為分析設(shè)計的基本元素,把所有對象都劃分成對象類,類可以派生和繼承,對每個對象類都定義一組數(shù)據(jù)和方法。面向?qū)ο蠓椒ò嫦驅(qū)ο蠓治?、面向?qū)ο笤O(shè)計和面向?qū)ο髮崿F(xiàn),是近年來取得迅速發(fā)展并具有強大生命力的軟件開發(fā)方法。(三)軟件生存周期模型、方法和工具(2)面向?qū)ο蠓治鲈O(shè)計方92一面向?qū)ο箝_發(fā)方法的組成
OOSD由三部分組成:
OOA(Object-OrientedAnalysis)面向?qū)ο蟮姆治?/p>
OOD(Object-OrientedDesign)面向?qū)ο蟮脑O(shè)計
OOP(Object-OrientedProgram)面向?qū)ο蟮某绦蛟O(shè)計OOA強調(diào)的是對一個系統(tǒng)中的對象特征和行為的定義。建立系統(tǒng)的三類模型。OOD與OOA密切配合順序?qū)崿F(xiàn)對現(xiàn)實世界的進(jìn)一步建模。OOP是面向?qū)ο蟮募夹g(shù)中發(fā)展最快的,使用面向?qū)ο蟮某绦蛟O(shè)計語言,進(jìn)行編碼。一面向?qū)ο箝_發(fā)方法的組成OOSD由三部分組成:OOA強調(diào)931、OOA法就是要解決“作什么”的問題。OOA
法的基本任務(wù)就是要建立三種模型:狀態(tài)模型(動態(tài)模型)
描述任何時刻對象的聯(lián)系及其聯(lián)系的改變,即時序。常用狀態(tài)圖,事件追蹤圖描述。處理模型(函數(shù)模型)
描述系統(tǒng)內(nèi)部數(shù)據(jù)的傳送處理。顯然,在三大模型中,最重要的是對象模型。對象模型(信息模型)定義構(gòu)成系統(tǒng)的類和對象,它們的屬性與操作。1、OOA法狀態(tài)模型(動態(tài)模型)顯然,在三大模型中,最重942、OOD
法
在需求分析的基礎(chǔ)上,進(jìn)一步解決“如何作”的問題,OOD法也分為概要設(shè)計和詳細(xì)設(shè)計。
概要設(shè)計:細(xì)化對象行為,添加新對象,認(rèn)定類,組類庫,確定外部接口及主要數(shù)據(jù)結(jié)構(gòu)詳細(xì)設(shè)計:加細(xì)對象描述3、OOP
法使用面向?qū)ο蟮某绦蛟O(shè)計語言,如C++進(jìn)行程序設(shè)計。
Coad和Yourdon給出一個面向?qū)ο蟮亩x:
面向?qū)ο?對象+類+繼承+消息如果一個軟件系統(tǒng)是按照這樣四個概念設(shè)計和實現(xiàn)的,則可以認(rèn)為這個軟件系統(tǒng)是面向?qū)ο蟮摹?、OOD法95面向?qū)ο蟮姆椒ǖ拇硇猿晒校?、B.Henderson-sellers和J.m.Edwards提出的面向?qū)ο筌浖嫫趪娙P图懊嫦驅(qū)ο蟮南到y(tǒng)開發(fā)方法。2、G.Booch提出的面向?qū)ο蟮拈_發(fā)方法。3、P.Coad和E.Yourd提出的OOA和OOD法。4、J.Rumbaugh等人提出的對象建模技術(shù)(OMT)。5、Jacobson提出的面向?qū)ο蟮能浖こ?OOSE)。6、G.boochJ.RumboughJacobson等人在Booch方法、OMT和OOSE的基礎(chǔ)上推出了統(tǒng)一建模語言UML。面向?qū)ο蟮姆椒ǖ拇硇猿晒校?6(三)軟件生存周期模型、方法和工具(3)Jackson方法
Jackson方法是一種面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法,它首先分析數(shù)據(jù)的層次結(jié)構(gòu),生成輸入、輸出數(shù)據(jù)結(jié)構(gòu)圖,把處理模塊化,并在此基礎(chǔ)上進(jìn)行詳細(xì)設(shè)計和編程。Jackson方法有
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 歷史街區(qū)石材裝修配送協(xié)議
- 親子酒店裝修項目合同
- 校園裝修合同樣本-@-1
- 鎮(zhèn)江彩鋼瓦防腐施工方案
- 木材加工配送合同模板
- 化工原料特種運輸協(xié)議
- 2025年度網(wǎng)絡(luò)安全技術(shù)顧問聘用協(xié)議
- 國際旅游業(yè)務(wù)居間協(xié)議
- 魚塘合作管理方案
- 象山消防通風(fēng)排煙施工方案
- 徐金桂行政法與行政訴訟法新講義
- 瀝青拌合設(shè)備結(jié)構(gòu)認(rèn)知
- GB/T 13234-2018用能單位節(jié)能量計算方法
- (課件)肝性腦病
- 北師大版五年級上冊數(shù)學(xué)教學(xué)課件第5課時 人民幣兌換
- 工程回訪記錄單
- 住房公積金投訴申請書
- 高考物理二輪專題課件:“配速法”解決擺線問題
- 檢驗科生物安全風(fēng)險評估報告
- 京頤得移動門診產(chǎn)品輸液
- 如何做一名合格的帶教老師PPT精選文檔
評論
0/150
提交評論