軟件工程筆記整理_第1頁
軟件工程筆記整理_第2頁
軟件工程筆記整理_第3頁
軟件工程筆記整理_第4頁
軟件工程筆記整理_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、軟件工程概論1、軟件危機(jī)1)、軟件工程的目的:倡導(dǎo)以工程的原理、原則和方法進(jìn)行軟件開發(fā),以解決當(dāng)時出現(xiàn)的軟件危機(jī)。2)、軟件危危機(jī):指在計(jì)計(jì)算機(jī)軟件開開發(fā)和維護(hù)過過程中所遇到到的一系列問問題。A、如何開發(fā)軟軟件以滿足對對軟件日益增增長的需求。B、如何維護(hù)護(hù)數(shù)量不斷增增長的已有軟軟件。3)、軟件危機(jī)機(jī)的主要表現(xiàn)現(xiàn)形式A、軟件開發(fā)成成本高,研制制進(jìn)度無法準(zhǔn)準(zhǔn)確估計(jì),用用戶不滿意。B、軟件產(chǎn)品品的可靠性得得不到保證。C、軟件產(chǎn)品難難以維護(hù)。D、軟件發(fā)展展跟不上硬件件的發(fā)展和用用戶的要求,硬硬件成本逐年年下降,軟件件成本越來越越昂貴。2、軟件工程概概念1)、軟件:計(jì)算機(jī)系統(tǒng)統(tǒng)中的程序及及其文檔。程程序

2、是計(jì)算任任務(wù)的處理對對象和處理規(guī)規(guī)則的描述;文檔是為了了便于理解程程序所需的闡闡明性資料。細(xì)細(xì)言之,軟件件有三層含義義:A、個體含義:即指計(jì)算機(jī)機(jī)系統(tǒng)中的程程序及其文檔檔。B、整體含義:即指在特定定計(jì)算機(jī)系統(tǒng)統(tǒng)中所有上述述個體含義下下的軟件的總總稱。C、學(xué)科含義義:即指在研研究、開發(fā)、維維護(hù)以及使用用前述含義下下的軟件所涉涉及的理論、方方法、技術(shù)所所構(gòu)成的學(xué)科科。2)、工程:將理論和所所學(xué)的知識應(yīng)應(yīng)用于實(shí)踐的的科學(xué)。3)、軟件工程程:應(yīng)用計(jì)算算機(jī)科學(xué)、數(shù)數(shù)學(xué)及管理科科學(xué)等原理,開開發(fā)軟件的工工程。它借鑒鑒傳統(tǒng)工程的的原則、方法法,以提高質(zhì)質(zhì)量,降低成成本為目的。其其中,計(jì)算機(jī)機(jī)科學(xué)、數(shù)學(xué)學(xué)用于

3、構(gòu)造模模型與算法,工工程科學(xué)用于于制定規(guī)范、設(shè)設(shè)計(jì)范型、評評估成本及確確定權(quán)衡,管管理科學(xué)用于于計(jì)劃、資源源、質(zhì)量、成成本等管理。33、軟件工程程框架(參見見附圖軟件工工程框架示意意圖)1)、軟件工工程目標(biāo):生生產(chǎn)具有正確確性、可用性性和開銷合宜宜的產(chǎn)品。A、正確性:是指軟件產(chǎn)產(chǎn)品達(dá)到預(yù)期期功能的程度度。B、可用性:是是指軟件基本本結(jié)構(gòu)、實(shí)現(xiàn)現(xiàn)以及文檔為為用戶可用的的程度。C、開銷合宜宜:是指軟件件開發(fā)、運(yùn)行行的整個開銷銷滿足用戶要要求的程度。2)、軟件開開發(fā)活動:生生產(chǎn)一個最終終滿足需求且且達(dá)到工程目目標(biāo)的軟件產(chǎn)產(chǎn)品所需要的的活動。軟件件開發(fā)的基本本活動包括:需求、設(shè)計(jì)計(jì)、實(shí)現(xiàn)、確確認(rèn)、和支

4、持持。A、需求:就是是定義問題。B、設(shè)計(jì):在在需求的基礎(chǔ)礎(chǔ)上,給出被被建系統(tǒng)的軟軟件設(shè)計(jì)方案案。CC、實(shí)現(xiàn):在在軟件設(shè)計(jì)的的基礎(chǔ)上,編編碼被建系統(tǒng)統(tǒng)軟件體系結(jié)結(jié)構(gòu)中的每一一模塊或構(gòu)件件。DD、確認(rèn):需需求復(fù)審、設(shè)設(shè)計(jì)復(fù)審及程程序測試。E、支持:為系系統(tǒng)的運(yùn)行提提供糾錯性維維護(hù)和完善性性維護(hù)。3)、軟件工程程原則:圍繞繞軟件開發(fā),提提出了以下基基本原則。A、選取適宜宜的開發(fā)范型型:在系統(tǒng)設(shè)設(shè)計(jì)中,經(jīng)常常需要權(quán)衡軟軟件需求、硬硬件需求以及及其它因素之之間的相互制制約和影響,適適應(yīng)需求的易易變性。選用用適宜的開發(fā)發(fā)范型,以保保證軟件開發(fā)發(fā)的可持續(xù)性性,并使最終終的軟件產(chǎn)品品滿足客戶的的要求。B、采用

5、好的設(shè)設(shè)計(jì)方法:在在軟件設(shè)計(jì)中中,通常需要要考慮軟件的的模塊化、信信息隱蔽、局局部化、一致致性以及適應(yīng)應(yīng)性等問題。采采用合適的設(shè)設(shè)計(jì)方法,支支持這些問題題的解決和實(shí)實(shí)現(xiàn)。C、提供高質(zhì)量量的工程支持持:如其它工工程一樣,需需要提供高質(zhì)質(zhì)量的工程支支持,例如配配置管理、質(zhì)質(zhì)量保證等,才才能按期交付付高質(zhì)量的軟軟件產(chǎn)品。D、有效的軟件件工程管理:軟件工程的的管理,直接接影響可用資資源的有效利利用,提高軟軟件組織的生生產(chǎn)能力。僅僅當(dāng)對軟件過過程實(shí)施有效效管理時,才才能實(shí)現(xiàn)有效效的軟件工程程。4)、軟件工程程學(xué)科研究的的內(nèi)容:軟件件開發(fā)模型、軟軟件開發(fā)方法法、軟件過程程、軟件工具具、軟件開發(fā)發(fā)環(huán)境、計(jì)算

6、算機(jī)輔助軟件件工程以及軟軟件經(jīng)濟(jì)學(xué)等等。5)、軟件開開發(fā)方法學(xué):是一種已定定義好的技術(shù)術(shù)集和符號表表示習(xí)慣,來來組織軟件開開發(fā)的過程,一一般表示為一一系列步驟,包包括結(jié)構(gòu)化方方法、面向?qū)ο蠓椒?、JJacksoon方法、Warrnier方方法、PAMM方法、可視視化方法等。軟件開發(fā)模型 1、軟件開發(fā)發(fā)模型:軟件件開發(fā)全部過過程、活動、任任務(wù)的結(jié)構(gòu)框框架。2、軟件生存周周期:軟件產(chǎn)產(chǎn)品從定義開開始,經(jīng)過開開發(fā)、使用和和維護(hù),直到到最后被淘汰汰的整個過程程。3、軟件過程:是為了獲得得高質(zhì)量的軟軟件所需要完完成的一系列列任務(wù)的框架架,它規(guī)定了了完成各項(xiàng)任任務(wù)的工作步步驟。4、瀑布模型(參參見瀑布模型

7、型示意圖)1)、概述:將軟件生存存周期的各項(xiàng)項(xiàng)活動規(guī)定為為依固定順序序連接的若干干階段工作,形形如瀑布流水水,最終得到到軟件產(chǎn)品,是是一種線性模模型。2)、各階段活活動:提出系系統(tǒng)需求、提提出軟件需求求、需求分析析、設(shè)計(jì)、編編碼、測試和和運(yùn)行。33)、每一階階段的特征A、從上一階段段接受本階段段工作的對象象,作為輸入入。B、對上述輸輸入實(shí)施本階階段的活動。C、給出本階階段的工作成成果,作為輸輸出傳入下一一階段。DD、對本階段段工作進(jìn)行評評審,若本階階段工作得到到確認(rèn),則繼繼續(xù)下階段工工作;否則返返回前一階段段,甚至更前前階段。4)、優(yōu)缺點(diǎn)A、優(yōu)點(diǎn):在支支持結(jié)構(gòu)化軟軟件開發(fā)、控控制軟件開發(fā)發(fā)的復(fù)

8、雜性、促促進(jìn)軟件開發(fā)發(fā)工程化等方方面起著顯著著作用。B、缺點(diǎn):缺缺乏靈活性,無無法通過開發(fā)發(fā)活動澄清本本來不夠確切切的軟件需求求。5、演化模型型(參見演化化模型示意圖圖)1)、概述:演演化模型主要要針對事先不不能完整定義義需求的軟件件開發(fā)。2)、開發(fā)過程程:首先開發(fā)發(fā)核心系統(tǒng),當(dāng)當(dāng)核心系統(tǒng)投投入運(yùn)行后,開開發(fā)人員根據(jù)據(jù)用戶的反饋饋,實(shí)施開發(fā)發(fā)的迭代過程程。每一迭代代過程均由需需求、設(shè)計(jì)、編編碼、測試、集集成等階段組組成,直到軟軟件開發(fā)結(jié)束束。3)、優(yōu)點(diǎn):一一定程度上減減少了軟件開開發(fā)活動的盲盲目性。6、螺旋模型型(參見螺旋旋模型示意圖圖)1)、概述:在瀑布模型型和演化模型型的基礎(chǔ)上,加加入兩者

9、所忽忽略的風(fēng)險分分析所建立的的一種軟件開開發(fā)模型。2)、特點(diǎn):沿沿螺旋模型順順時針方向,依依次表達(dá)了四四個方面的活活動,制定計(jì)計(jì)劃、風(fēng)險分分析、實(shí)施工工程、客戶評評估。7、噴泉模型:它體現(xiàn)了軟軟件創(chuàng)建所固固有的迭代和和無間隙特征征。主要用于于面向?qū)ο箝_開發(fā)過程。(參參見噴泉模型型示意圖)8、增量模型:在設(shè)計(jì)了軟軟件系統(tǒng)整體體體系結(jié)構(gòu)之之后,首先完完整的開發(fā)系系統(tǒng)的一個初初始子集,繼繼之,根據(jù)這這一子集,建建造一個更加加精細(xì)的版本本,如些不斷斷地進(jìn)行系統(tǒng)統(tǒng)的增量開發(fā)發(fā)。(參見增增量模型示意意圖)9、各種模型型之間的區(qū)別別與聯(lián)系1)、瀑布模型型、演化模型型、螺旋模型型之間的異同同。A、相同點(diǎn):都都

10、分為多個階階段。B、不同點(diǎn):瀑瀑布模型一次次完成軟件;演化模型分分為多次完成成,每次迭代代完成軟件的的一個部分;螺旋模型也也分為多次完完成,每次完完成軟件的一一個新原型,并并考慮風(fēng)險分分析。2)、演化模模型和增量模模型的區(qū)別AA、演化模型型:首先開發(fā)發(fā)核心系統(tǒng),每每次迭代為系系統(tǒng)增加一個個子集,整個個系統(tǒng)是增量量開發(fā)和增量量提交。B、增量模型:首先完整的的開發(fā)系統(tǒng)的的一個初始子子集,然后不不斷的建造更更精細(xì)的版本本。3)、需要完整整定義需求的的模型:瀑布布模型、增量量模型。4)、屬于迭代代風(fēng)范的模型型:演化模型型、增量模型型、噴泉模型型、螺旋模型型。第三章 結(jié)構(gòu)化化需求分析1、需求分析1)、基

11、本任任務(wù):準(zhǔn)確定定義未來系統(tǒng)統(tǒng)的目標(biāo),確確定為了滿足足用戶的需要要系統(tǒng)必須做做什么。2)、承擔(dān)者:系統(tǒng)分析員員。3)、兩個階段段:需求獲取取和需求規(guī)約約。22、需求獲取取1)、目的:清楚地理解解所要解決的的問題,完整整地獲取用戶戶需求。2)、主要活活動:通過學(xué)學(xué)習(xí)、請教領(lǐng)領(lǐng)域?qū)<?、向向用戶提問等等?)、三大挑戰(zhàn)戰(zhàn):問題空間間理解;人與與人之間的通通信;需求的的不斷變化。4)、分類及及內(nèi)容A、功能性需需求:定義系系統(tǒng)做什么。B、非功能性需需求:定義系系統(tǒng)工作時的的特性。5)、原則AA、劃分:捕捕獲問題空間間的“整體/部分”關(guān)系系。B、抽象:捕捕獲問題空間間的“一般/特殊”或“特特例”關(guān)系。C、

12、投影:捕捕獲問題空間間的多維“視視圖”。6)、技術(shù)A、一種好的的需求獲取技技術(shù)應(yīng)具備的的基本特征。提供方便的通通信;提供定義系統(tǒng)統(tǒng)邊界的方法法;提供支持抽象象的基本機(jī)制制;鼓勵分析員使使用問題空間間的術(shù)語思考考問題,編寫寫文檔;為分析析員提供多種種可供選擇的的設(shè)計(jì)方案;適應(yīng)需求求的變化。B、Jacobbson提出出的用況法基基本符合以上上特征,詳見見“第五章 面向?qū)ο蠓椒椒ā钡摹?HYPERLINK /post.php?action=reply&fid=10&tid=98&extra=page%3D1#用況圖 l 用況圖 用用況圖”。3、需求規(guī)約約:對需求陳陳述進(jìn)行分析析,解決其中中存在的二義

13、義性和不一致致性,并以一一種系統(tǒng)化的的形式準(zhǔn)確地地表達(dá)用戶的的需求,形成成所謂的需求求規(guī)格說明書書。4、結(jié)構(gòu)化方法法:是一種系系統(tǒng)化開發(fā)軟軟件的方法,該該方法基于模模塊化的思想想,采用“自自頂向下,逐逐步求精”的的技術(shù)對系統(tǒng)統(tǒng)進(jìn)行劃分,分分解和抽象是是它的兩個基基本手段,結(jié)結(jié)構(gòu)化方法是是結(jié)構(gòu)化分析析、結(jié)構(gòu)化設(shè)設(shè)計(jì)和結(jié)構(gòu)化化編程的總稱稱。6、結(jié)構(gòu)化分分析1)、基本步步驟A、通過對現(xiàn)實(shí)實(shí)系統(tǒng)的了解解和分析,或或基于需求陳陳述,建立該該系統(tǒng)的數(shù)據(jù)據(jù)流圖;B、基于得到到的數(shù)據(jù)流圖圖,建立該系系統(tǒng)的數(shù)據(jù)字字典;C、基于得到到的數(shù)據(jù)流圖圖,對最低層層的加工給出出其控制結(jié)構(gòu)構(gòu)描述;DD、依據(jù)需求求,建立人機(jī)

14、機(jī)接口和其他他性能描述;EE、通過分析析和驗(yàn)證,建建立系統(tǒng)完整整的需求規(guī)約約。2)、結(jié)構(gòu)化化分析模型:數(shù)據(jù)流圖(DFD)是一種描述數(shù)據(jù)變換的圖形工具,是結(jié)構(gòu)化分析方法最普遍采用的表示手段,數(shù)據(jù)字典和小說明為數(shù)據(jù)流圖提供了補(bǔ)充,并用以驗(yàn)證圖形表示的正確性、一致性和完整性,以上三者構(gòu)成了結(jié)構(gòu)化分析的模型。A、數(shù)據(jù)流圖:是一種描述述數(shù)據(jù)變換的的圖形工具,系系統(tǒng)接受輸入入的數(shù)據(jù),經(jīng)經(jīng)過一系列的的變換(或稱稱加工),最最后輸出結(jié)果果數(shù)據(jù)。包括括加工、數(shù)據(jù)據(jù)流、數(shù)據(jù)存存儲、數(shù)據(jù)源源和數(shù)據(jù)潭。加工:是對數(shù)數(shù)據(jù)進(jìn)行處理理的單元;用用圓圈表示;頂層的加工工名就是軟件件系統(tǒng)的名字字,加工的名名字最好使用用動賓詞組

15、(e.g.計(jì)算費(fèi)用),也可用主謂詞組(e.g.費(fèi)用計(jì)算),不要使用意義空洞的動詞作為加工名(e.g.計(jì)算)。數(shù)據(jù)流:表示示數(shù)據(jù)(由一一組數(shù)據(jù)項(xiàng)組組成)和數(shù)據(jù)據(jù)流向(三種種流向:從加加工流向加工工;從數(shù)據(jù)源源流向加工或或從加工流向向數(shù)據(jù)潭;從從加工流向數(shù)數(shù)據(jù)存儲或從從數(shù)據(jù)存儲流流向加工。兩兩個加工之間間可以有多個個數(shù)據(jù)流,這這些數(shù)據(jù)流之之間沒有任何何聯(lián)系,數(shù)據(jù)據(jù)流圖不表明明它們的先后后次序);用用箭頭表示;用名詞或名名詞詞組命名名,盡量選用用現(xiàn)實(shí)系統(tǒng)中中已有的名字字。數(shù)據(jù)據(jù)存儲:表示示信息的靜態(tài)態(tài)存儲;用兩兩條平行線表表示;其命名名方法同數(shù)據(jù)據(jù)流。數(shù)據(jù)據(jù)源:數(shù)據(jù)的的來源;用矩矩形表示;數(shù)據(jù)潭:數(shù)

16、據(jù)的最終終目的地;用用矩形表示。B、數(shù)據(jù)字典:以一種準(zhǔn)確確的和無二義義的方式定義義所有被加工工引用的數(shù)據(jù)據(jù)流和數(shù)據(jù)存存儲。包括數(shù)數(shù)據(jù)流條目、數(shù)數(shù)據(jù)存儲條目目、數(shù)據(jù)項(xiàng)條條目。常用邏邏輯操作符:“=”等價于(定定義為)、“+”與(順序結(jié)構(gòu))、“”重復(fù)(循環(huán)結(jié)構(gòu))、“|”或(選擇結(jié)構(gòu))、“()”任選、“m.n”界域。CC、小說明:用于描述底底層加工,集集中描述一個個加工的輸入入數(shù)據(jù)和輸出出數(shù)據(jù)的邏輯輯關(guān)系,即加加工邏輯,并并不描述具體體的加工過程程。一般用自自然語言、結(jié)結(jié)構(gòu)化自然語語言、判定表表和判定樹等等描述。結(jié)結(jié)構(gòu)化自然語語言:分為內(nèi)內(nèi)外兩層,外外層語法描述述操作的控制制結(jié)構(gòu),內(nèi)層層語法用自然然

17、語言描述。如如:在飛機(jī)票票預(yù)訂系統(tǒng)中中在旅游旺季的779,12月 如果 訂票超過200張 優(yōu)惠惠票價的155% 如如果 訂票20張以下 優(yōu)優(yōu)惠票價的55%在旅游淡季季的16,10,11月份 如果 訂票超過200張 優(yōu)優(yōu)惠30% 如果 訂票20張以下 優(yōu)優(yōu)惠20%判定定表:分四個個區(qū),一區(qū)列列出所有的條條件類別,二二區(qū)列出所有有的條件組合合,三區(qū)列出出所有的操作作,四區(qū)列出出在相應(yīng)的組組合條件下某某個操作是否否執(zhí)行或執(zhí)行行情況。如:旅游時間79,12月月16,10,11月訂票量2020折扣量5%15%20%30%判定樹:用圖形形式式描述加工邏邏輯。3)、建立結(jié)構(gòu)構(gòu)化分析模型型的步驟(附附實(shí)例)A

18、、確定系統(tǒng)統(tǒng)邊界,畫出出系統(tǒng)環(huán)境圖圖(參見系統(tǒng)統(tǒng)環(huán)境示意圖圖)B、自頂向下下,畫出各層層數(shù)據(jù)流圖功功能分解(參參見功能分解解示意圖)數(shù)數(shù)據(jù)流的分派派(參見數(shù)據(jù)據(jù)流分派示意意圖)文件件引入與精化化(參見精化化示意圖)如果有有必要,從開始對分解解后的加工再再次進(jìn)行分解解,建立更下下一層的數(shù)據(jù)據(jù)流圖C、定義數(shù)據(jù)字字典D、定義小說明明E、匯總前面面各步驟的結(jié)結(jié)果4)、注意事事項(xiàng)A、模型平衡原原則數(shù)據(jù)流流圖中所有的的圖形元素必必須根據(jù)它們們的用法規(guī)則則正確使用;每個數(shù)據(jù)流流和數(shù)據(jù)存儲儲都要在數(shù)據(jù)據(jù)字典中有定定義,數(shù)據(jù)字字典將包括各各層數(shù)據(jù)流圖圖中數(shù)據(jù)元素素的定義;數(shù)據(jù)字字典中的定義義使用合法的的邏輯構(gòu)造

19、符符號;數(shù)數(shù)據(jù)流圖中最最底層的加工工必須在小說說明中有定義義;父圖和子圖必必須平衡,即即父圖中某加加工的輸入輸輸出(數(shù)據(jù)流流)和分解這這個加工的子子圖的輸入輸輸出(數(shù)據(jù)流流)必須完全全一致;小說明和數(shù)數(shù)據(jù)流圖的圖圖形表示必須須一致。B、控制復(fù)雜雜性的一些規(guī)規(guī)則上層數(shù)據(jù)流可可以打包,上上、下層數(shù)據(jù)據(jù)流的對應(yīng)關(guān)關(guān)系用數(shù)據(jù)字字典描述,同同層的數(shù)據(jù)流流也可編號對對應(yīng)在,包內(nèi)內(nèi)流的性質(zhì)(輸輸入/輸出)必須須一致;為便于理解,一一幅圖中的圖圖元個數(shù)控制制在72以以內(nèi);檢檢查同每個加加工相關(guān)的數(shù)數(shù)據(jù)流,并尋尋找是否有其其他可降低界界面復(fù)雜性的的劃分方法;分析數(shù)據(jù)內(nèi)容容,確定是否否所有輸入信信息都用于產(chǎn)產(chǎn)生輸

20、出信息息;相應(yīng)地,由由一個加工產(chǎn)產(chǎn)生的所有信信息是否都能能由進(jìn)入該加加工的信息導(dǎo)導(dǎo)出。7、需求驗(yàn)證:就是對軟件件需求規(guī)格說說明書(SRRS)加以驗(yàn)驗(yàn)證,需要從從以下方面進(jìn)進(jìn)行:正確性性,無二義性性,完整性,可可驗(yàn)證性,一一致性,可理理解性,可修修改性,可被被跟蹤性,可可跟蹤性,設(shè)設(shè)計(jì)無關(guān)性,注注釋。8、需求規(guī)格說說明書1)、概述:是是需求分析階階段產(chǎn)生的一一份最重要的的文檔,它以以一種一致的的、無二義的的方式準(zhǔn)確的的表達(dá)用戶的的需求。2)、作用A、作為軟件件開發(fā)機(jī)構(gòu)和和用戶之間一一份事實(shí)上的的技術(shù)合同書書;B、作為軟件開開發(fā)機(jī)構(gòu)下一一步進(jìn)行設(shè)計(jì)計(jì)和編碼的基基礎(chǔ);C、作為測試和和驗(yàn)收目標(biāo)系系統(tǒng)的

21、依據(jù)。33)、基本結(jié)結(jié)構(gòu):引言、概概述、數(shù)據(jù)流流圖與數(shù)據(jù)字字典、接口、性性能需求、屬屬性、其他需需求。99、需求分析析階段的另外外兩份文檔:初步測試計(jì)計(jì)劃和用戶系系統(tǒng)描述。結(jié)構(gòu)化設(shè)計(jì)1、軟件設(shè)計(jì)計(jì)階段:需求求分析階段的的主要任務(wù)是是確定系統(tǒng)必必須“做什么么”,形成軟軟件的需求規(guī)規(guī)格說明書,軟軟件設(shè)計(jì)階段段主要任務(wù)是是確定系統(tǒng)“怎怎么做”,從從軟件需求規(guī)規(guī)格說明書出出發(fā),形成軟軟件的具體設(shè)設(shè)計(jì)方案,軟軟件設(shè)計(jì)可以以采用多種方方法,如結(jié)構(gòu)構(gòu)化設(shè)計(jì)方法法、面向數(shù)據(jù)據(jù)結(jié)構(gòu)的設(shè)計(jì)計(jì)方法、面向向?qū)ο蟮脑O(shè)計(jì)計(jì)方法等,結(jié)結(jié)構(gòu)化軟件設(shè)設(shè)計(jì)可以分為為總體設(shè)計(jì)和和詳細(xì)設(shè)計(jì)兩兩個階段。2、數(shù)據(jù)流圖圖的類型1)、變換型

22、數(shù)數(shù)據(jù)流圖:具具有較明顯的的輸入、變換換、輸出界面面的數(shù)據(jù)流圖圖。(參見變變換型數(shù)據(jù)流流圖示意圖)2)、事務(wù)型數(shù)數(shù)據(jù)流圖:當(dāng)當(dāng)數(shù)據(jù)到達(dá)一一個處理T后,該處理理T根據(jù)輸入數(shù)數(shù)據(jù)的類型或或數(shù)據(jù)值,在在其后的若干干動作序列(稱稱為一個事務(wù)務(wù))中選出一一個來執(zhí)行。(參參見事務(wù)型數(shù)數(shù)據(jù)流圖示意意圖)3、設(shè)計(jì)類型型(以上面兩兩圖為實(shí)例)1)、變換設(shè)計(jì)計(jì):對應(yīng)于變變換型數(shù)據(jù)流流圖。其步驟驟如下:A、確定輸入入、變換、輸輸出的邊界:邏輯輸入就就是離物理輸輸入端最遠(yuǎn)的的,但仍被看看作是系統(tǒng)輸輸入的數(shù)據(jù)流流;邏輯輸出出就是離物理理輸出端最遠(yuǎn)遠(yuǎn)的,但仍被被看作是系統(tǒng)統(tǒng)輸出的數(shù)據(jù)據(jù)流。B、“第一級分分解”-系統(tǒng)模塊結(jié)

23、結(jié)構(gòu)圖頂層和和第一層的設(shè)設(shè)計(jì):主模塊塊位于最頂層層,一般以所所建系統(tǒng)的名名字命名;輸輸入模塊部分分,一般有幾幾個不同的邏邏輯輸入,就就設(shè)計(jì)幾個輸輸入模塊;變變換模塊部分分;輸出模塊塊部分,一般般有幾個不同同的邏輯輸出出,就設(shè)計(jì)幾幾個輸出模塊塊。(參見變變換設(shè)計(jì)之第第一級分解示示意圖)C、“第二級分分解”-自頂向下,逐逐步求精:輸輸入模塊部分分,通??煞址纸鉃閮蓚€下下屬模塊:一一個是接收數(shù)數(shù)據(jù)模塊,另另一個是把接接收的數(shù)據(jù)變變換成它的上上級模塊所需需的數(shù)據(jù)的模模塊,繼之,對對下屬的輸入入模塊以同樣樣方式進(jìn)行分分解,直到一一個輸入模塊塊為物理輸入入為止;輸出出模塊部分,通通常也可分解解為兩個下屬屬

24、模塊:一個個將得到的數(shù)數(shù)據(jù)向輸出形形式轉(zhuǎn)換的模模塊,另一個個將轉(zhuǎn)換后的的數(shù)據(jù)輸出,對對下屬的模塊塊以同樣方式式進(jìn)行分解,直直到一個輸出出模塊為物理理輸出為止;中心變換模模塊,通常依依據(jù)數(shù)據(jù)流圖圖的具體情況況,并以功能能分解的原則則,考慮如何何對中心變換換模塊進(jìn)行分分解。這樣就就得到了初始始模塊結(jié)構(gòu)圖圖。(參見變變換設(shè)計(jì)之第第二級分解示示意圖)D、使用設(shè)計(jì)計(jì)度量和啟發(fā)發(fā)式規(guī)則,對對初始模塊結(jié)結(jié)構(gòu)圖進(jìn)行精精化。(參見見變換設(shè)計(jì)之之精化示意圖圖)2)、事務(wù)設(shè)設(shè)計(jì):對應(yīng)于于事務(wù)型數(shù)據(jù)據(jù)流圖,其步步驟如下:A、確定事務(wù)務(wù)處理中心。B、“第一級分分解”-系統(tǒng)模塊結(jié)結(jié)構(gòu)圖頂層和和第一層的設(shè)設(shè)計(jì):首先為為事務(wù)

25、中心設(shè)設(shè)計(jì)一個主模模塊;然后,為為每一條活動動路徑設(shè)計(jì)一一個事務(wù)處理理模塊;一般般來說,事務(wù)務(wù)型數(shù)據(jù)流圖圖都有輸入部部分,對其輸輸入部分設(shè)計(jì)計(jì)一個輸入模模塊;如果一一個事務(wù)型數(shù)數(shù)據(jù)流圖的各各活動路徑又又集中于一個個加工,則為為此設(shè)計(jì)一個個輸出模塊;如果各活動動路徑是發(fā)散散的,則在第第一層設(shè)計(jì)中中就不必為其其設(shè)計(jì)輸出模模塊。(參見見事務(wù)設(shè)計(jì)之之第一級分解解示意圖)C、“第二級級分解”-自頂向下,逐逐步求精:關(guān)關(guān)于輸入模塊塊、輸出模塊塊的細(xì)化,如如同變換設(shè)計(jì)計(jì)對輸入模塊塊、輸出模塊塊的細(xì)化。關(guān)關(guān)于各條活動動路徑的細(xì)化化,則要根據(jù)據(jù)具體情況進(jìn)進(jìn)行。D、使用設(shè)計(jì)計(jì)度量和啟發(fā)發(fā)式規(guī)則,對對初始的模塊塊結(jié)

26、構(gòu)圖進(jìn)行行精化。4、設(shè)計(jì)評價價準(zhǔn)則1)、模塊化:把一個待開開發(fā)的軟件分分解成若干簡簡單的模塊,即即為模塊化。2)、信息隱隱蔽:在自頂頂向下逐步求求精時,其較較低層的設(shè)計(jì)計(jì)細(xì)節(jié)都被“隱隱蔽”起來,只只給出模塊的的接口,這樣樣不僅使功能能的執(zhí)行機(jī)制制被隱蔽起來來,而且控制制流程的細(xì)節(jié)節(jié)和一些數(shù)據(jù)據(jù)也被隱蔽起起來。3)、模塊:是執(zhí)行一個個特殊任務(wù)或或?qū)崿F(xiàn)一個特特殊的抽象數(shù)數(shù)據(jù)類型的一一組例程和數(shù)數(shù)據(jù)結(jié)構(gòu)。通通常由兩部分分組成:接口口和實(shí)現(xiàn)模塊塊功能的執(zhí)行行機(jī)制。4)、評價軟軟件設(shè)計(jì)的基基本準(zhǔn)則是“高高內(nèi)聚”、“低低耦合”。5)、耦合:是對不同模模塊之間相互互依賴程度的的度量。緊密密耦合是指兩兩個模塊

27、之間間存在著很強(qiáng)強(qiáng)的依賴關(guān)系系;松散耦合合是指兩個模模塊之間存在在一些依賴關(guān)關(guān)系,但它們們之間的連接接比較弱;無無耦合是指模模塊之間根本本沒有任何連連接。A、耦合的強(qiáng)度度依賴的因素素一個模塊對對另一個模塊塊的引用。一個模塊向另另一個模塊傳傳遞的數(shù)據(jù)量量。一個模塊施施加到另一個個模塊的控制制的數(shù)量。模塊之間接口口的復(fù)雜程度度。B、耦合從強(qiáng)到到弱分類內(nèi)容耦合:一一個模塊直接接修改或操作作另一個模塊塊的數(shù)據(jù),就就發(fā)生了內(nèi)容容耦合,被修修改的模塊完完全依賴于修修改它的模塊塊。公共耦合:兩個以上的的模塊共同引引用一個全局局?jǐn)?shù)據(jù)項(xiàng)就稱稱為公共耦合合,對全局?jǐn)?shù)數(shù)據(jù)項(xiàng)的修改改作用于所有有訪問該數(shù)據(jù)據(jù)項(xiàng)的模塊,

28、所所以模塊間的的依賴關(guān)系依依舊存在。控制耦合:一個模塊在在界面上傳遞遞一個信號控控制另一個模模塊,接收信信號的模塊的的動作根據(jù)信信號值進(jìn)行調(diào)調(diào)整,稱為控控制耦合。標(biāo)記耦合:若若兩個模塊至至少有一個通通過界面?zhèn)鬟f遞的公共參數(shù)數(shù)包含內(nèi)部結(jié)結(jié)構(gòu),則為標(biāo)標(biāo)記耦合。數(shù)據(jù)耦合:模模塊間通過參參數(shù)傳遞基本本類型的數(shù)據(jù)據(jù)。C、原則:如如果模塊間必必須存在耦合合,就盡量使使用數(shù)據(jù)耦合合,少用控制制耦合,限制制公共耦合的的范圍,堅(jiān)決決避免使用內(nèi)內(nèi)容耦合。6)、內(nèi)聚:度度量的是一個個模塊內(nèi)部各各成分之間相相互關(guān)聯(lián)的強(qiáng)強(qiáng)度。A、從低到高分分類偶然內(nèi)聚:一個模塊的的各成分之間間毫無關(guān)系。邏輯內(nèi)聚:幾個邏輯上上相關(guān)的功能

29、能被放在同一一模塊中。時間內(nèi)聚:如如果一個模塊塊完成的功能能必須在同一一時間內(nèi)執(zhí)行行(如初始化化系統(tǒng)或一組組變量),但但這些功能只只是因?yàn)闀r間間因素關(guān)聯(lián)在在一起。過程內(nèi)聚:如如果一個模塊塊內(nèi)部的處理理成分是相關(guān)關(guān)的,而且這這些處理必須須以特定的次次序進(jìn)行。通信內(nèi)聚:如果一個模模塊的所有成成分都操作同同一數(shù)據(jù)集或或生成同一數(shù)數(shù)據(jù)集。順序內(nèi)聚:如果一個模模塊的各個成成分和同一個個功能密切相相關(guān),而且一一個成分的輸輸出作為另一一個成分的輸輸入,則稱為為順序內(nèi)聚。功能內(nèi)聚:模塊的所有有成分對于完完成單一的功功能都是基本本的。5、啟發(fā)式規(guī)則則1)、改進(jìn)軟件件結(jié)構(gòu)提高模模塊獨(dú)立性。2)、模塊規(guī)規(guī)模應(yīng)該適中

30、中。3)、深度、寬寬度、扇出和和扇入應(yīng)適中中。A、深度:表示示軟件結(jié)構(gòu)中中控制的層數(shù)數(shù)。B、寬度:軟件件結(jié)構(gòu)同一個個層次上的模模塊總數(shù)的最最大值。CC、扇出:一一個模塊直接接控制(調(diào)用用)的下級模模塊數(shù)目。D、扇入:表表明有多少個個上級模塊直直接調(diào)用它。4)、模塊的作作用域應(yīng)該在在控制域之內(nèi)內(nèi)。A、作用域:受該模塊內(nèi)內(nèi)一個判定影影響的所有模模塊的集合。B、控制域:這個模塊本本身以及所有有直接或間接接從屬于它的的模塊的集合合。5)、力爭降降低模塊接口口的復(fù)雜性。6)、模塊功能能應(yīng)該可以預(yù)預(yù)測。6、總體設(shè)計(jì)1)、主要任務(wù)務(wù):把系統(tǒng)的的功能需求分分配給軟件結(jié)結(jié)構(gòu),形成軟軟件的模塊結(jié)結(jié)構(gòu)圖(MSSD)

31、。2)、表示工工具A、層次圖:用用來描繪軟件件的層次結(jié)構(gòu)構(gòu),很適合于于在自頂向下下設(shè)計(jì)軟件的的過程中使用用。B、HIPO圖圖:由H圖(層次圖圖)和IPOO圖(輸入/處理/輸出圖)兩兩部分組成。C、結(jié)構(gòu)圖:通通常用帶注釋釋的箭頭表示示模塊調(diào)用過過程中來回傳傳遞的信息,尾尾部是空心圓圓表示傳遞的的是數(shù)據(jù),實(shí)實(shí)心圓表示傳傳遞的是控制制信息。3)、方法:首首先對需求規(guī)規(guī)約所產(chǎn)生的的DFD分類,然然后將不同類類型的DFDD,采用不同同方法進(jìn)行映映射,將DFFD轉(zhuǎn)換為初初始模塊結(jié)構(gòu)構(gòu)圖,再根據(jù)據(jù)基本的模塊塊化設(shè)計(jì)原則則-“高內(nèi)聚,低低耦合”,精精化初始模塊塊結(jié)構(gòu)圖,使使之成為最終終可供詳細(xì)設(shè)設(shè)計(jì)使用的模模

32、塊結(jié)構(gòu)圖。7、結(jié)構(gòu)化程序序設(shè)計(jì):結(jié)構(gòu)構(gòu)化程序設(shè)計(jì)計(jì)技術(shù)采用自自頂向下逐步步求精的設(shè)計(jì)計(jì)方法和單入入口單出口的的控制結(jié)構(gòu),并并且只包含順順序、選擇和和循環(huán)三種結(jié)結(jié)構(gòu),結(jié)構(gòu)化化程序設(shè)計(jì)的的目標(biāo)之一是是使程序的控控制流程線性性化,即程序序的動態(tài)執(zhí)行行順序符合靜靜態(tài)書寫結(jié)構(gòu)構(gòu),結(jié)構(gòu)化程程序設(shè)計(jì)的觀觀點(diǎn)是要求設(shè)設(shè)計(jì)好結(jié)構(gòu)的的程序。8、詳細(xì)設(shè)計(jì)計(jì)1)、目標(biāo):確確定怎樣具體體實(shí)現(xiàn)所要求求的系統(tǒng)。2)、詳細(xì)設(shè)設(shè)計(jì)包含實(shí)現(xiàn)現(xiàn)對應(yīng)的總體體設(shè)計(jì)的模塊塊所需要的處處理邏輯,主主要有,詳細(xì)細(xì)的算法;數(shù)數(shù)據(jù)表示和數(shù)數(shù)據(jù)結(jié)構(gòu),實(shí)實(shí)施的功能和和使用的數(shù)據(jù)據(jù)之間的關(guān)系系。3)、工具A、程序流程程圖(程序框框圖,參見程程序流程圖

33、示示意圖)B、盒圖(N-S圖,參見見盒圖示意圖圖)C、PAD圖(參參見PAD圖圖示意圖)D、類程序設(shè)設(shè)計(jì)語言(PPDL)(偽偽碼)9、軟件方法學(xué)學(xué):是以軟件件方法為研究究對象的學(xué)科科。主要涉及及指導(dǎo)軟件設(shè)設(shè)計(jì)的原理和和原則,以及及基于這些原原理、原則的的方法和技術(shù)術(shù)。狹義的軟軟件方法學(xué)也也指某種特定定的軟件設(shè)計(jì)計(jì)指導(dǎo)原則和和方法體系。面向?qū)ο蠓椒?1、構(gòu)造模塊塊的四種基本本觀點(diǎn)1)、以“過程程”或“函數(shù)數(shù)”為基點(diǎn),使使每一模塊實(shí)實(shí)現(xiàn)一項(xiàng)功能能;2)、以一個“數(shù)數(shù)據(jù)結(jié)構(gòu)”為為基點(diǎn),使每每一模塊實(shí)現(xiàn)現(xiàn)該數(shù)據(jù)結(jié)構(gòu)構(gòu)上的操作功功能;3)、以“事件件驅(qū)動”為基基點(diǎn),使每一一模塊識別一一個事件并對對該事件

34、作出出響應(yīng);4)、以“問題題域中的一個個成分”為基基點(diǎn),使每一一模塊對應(yīng)現(xiàn)現(xiàn)實(shí)世界中的的一個事物。2、用況圖11)、概述:就是由參與與者、用況以以及它們之間間的關(guān)系所構(gòu)構(gòu)成的圖。作作用:主要用用來明確需求求;用來輔助助分析;用來來輔助設(shè)計(jì),特特別是用戶界界面的設(shè)計(jì);用來指導(dǎo)測測試。2)、概念A(yù)、系統(tǒng)邊界:一個系統(tǒng)所所包含的所有有系統(tǒng)成分與與系統(tǒng)以外各各種事物的分分界線。B、參與者:在在系統(tǒng)邊界以以外,與系統(tǒng)統(tǒng)進(jìn)行交互的的事物-人員、設(shè)備備、外系統(tǒng)。一一個參與者定定義了一組功功能上密切相相關(guān)的角色,當(dāng)當(dāng)一個事物與與系統(tǒng)交互時時,該事物可可以扮演這樣樣的角色。C、用況:對對參與者使用用系統(tǒng)的一項(xiàng)項(xiàng)

35、功能時所進(jìn)進(jìn)行的交互過過程的描述。3)、關(guān)系A(chǔ)A、參與者之之間的關(guān)系泛化(繼承承):如果一一組參與者具具有共同的性性質(zhì),可以把把這些性質(zhì)抽抽取出來放在在另一個參與與者中,它們們再從中繼承承。B、用況之間間的關(guān)系泛化(繼承承):子用況況繼承父用況況的行為和含含義;子用況況可以增加或或覆蓋父用況況的行為;子子用況可以出出現(xiàn)在父用況況出現(xiàn)的任何何位置。擴(kuò)展:從用況況A到用況B的擴(kuò)展關(guān)系系是指,用況況B的實(shí)例是可可以被用況AA指定的行為為擴(kuò)充(服從從于在擴(kuò)展中中指定的特定定條件),行行為被插入到到由B中的擴(kuò)展點(diǎn)點(diǎn)定義的位置置。包含:從用用況A到用況B的包含關(guān)系系表明,用況況A的一個實(shí)例例也包含了用用況

36、B所指定的行行為,在用況況A中定義的位位置包含該行行為。擴(kuò)展與包含的的異同同:都是不完整整的;都離不不開基本用況況;都可實(shí)現(xiàn)現(xiàn)為子程序。異:方向向不同;1對多選包含含關(guān)系;多對對1選擴(kuò)展;包包含處理一般般的情況;擴(kuò)擴(kuò)展處理特殊殊的情況。C、參與者與用用況之間的關(guān)關(guān)系關(guān)聯(lián):連接參參與者與用況況之間的線段段,表示參與與者實(shí)例與用用況實(shí)例之間間的交互。4)、實(shí)例(參參見用況圖實(shí)實(shí)例)3、類圖1)、概述:類圖用以表表示模型的靜靜態(tài)結(jié)構(gòu),即即表示靜態(tài)元元素及其之間間各種靜態(tài)關(guān)關(guān)系。為了控控制信息組織織的復(fù)雜性,可可以把類圖組組織成包,但但這并不表示示對構(gòu)成模型型的基本元素素的劃分。2)、概念A(yù)、類:是具

37、有有相同結(jié)構(gòu)、行行為和關(guān)系的的一組對象的的描述符。B、屬性:是是一些有著確確定值的、用用于描述對象象狀態(tài)信息的的數(shù)據(jù)。C、服務(wù):為了了完成某一任任務(wù),一個對對象所提供的的、并體現(xiàn)其其責(zé)任的操作作。D、對象:在在系統(tǒng)分析和和系統(tǒng)構(gòu)造中中,對象是對對客觀世界事事物的一種抽抽象,是由數(shù)數(shù)據(jù)(屬性)和和其上操作(行行為)組成的的封裝體,是是類的一個實(shí)實(shí)例。對象的的特點(diǎn):自治治性,對象具具有一定的獨(dú)獨(dú)立計(jì)算能力力;封閉性,對對象具有信息息隱蔽的能力力;通信性,對對象具有與其其他對象通信信的能力。E、接口:是是指描述類中中提供給另一一個類使用的的一組操作??偨Y(jié):上述五個個概念圍繞一一個問題,即即如何描述客

38、客觀事物-“對象”展展開的:如何何抽象對象的的“結(jié)構(gòu)”:屬性,操作作;如何描述述一組具有相相似性質(zhì)的對對象:類;如如何抽象并描描述在特定環(huán)環(huán)境中對象的的功能:接口口。 F、關(guān)聯(lián):把把對一組具有有相同結(jié)構(gòu)特特性、行為特特性和語義的的鏈的描述稱稱為關(guān)聯(lián)。G、聚合:是一一種特殊的關(guān)關(guān)聯(lián),表示整整體類和部分分類之間的“整整體-部分”關(guān)系系,其中的整整體類稱為聚聚集。H、組合:是一一種關(guān)聯(lián),是是聚合的一種種形式,其部部分和整體之之間具有很強(qiáng)強(qiáng)的“屬于”關(guān)關(guān)系,并且他他們的生存期期是一致的。這這種聚集稱為為組成。I、鏈:是對象象引用的元組組(列表),是是關(guān)聯(lián)的一個個實(shí)例。J、泛化:是一一般元素(父父親)和

39、特殊殊元素(兒子子)之間的一一種分類關(guān)系系,其中特殊殊元素的結(jié)構(gòu)構(gòu)完全與一般般元素一致,并并附加了一些些信息。K、依賴:一一個依賴規(guī)約約了兩個模型型元素(或兩兩個模型元素素集合)之間間的一種語義義關(guān)系,即:對目標(biāo)元素素的改變可能能需要改變該該依賴中的源源元素。總結(jié):給出出了表達(dá)客觀觀事物之間關(guān)關(guān)系的基本概概念:鏈;給給出了關(guān)聯(lián)的的語義;還給給出了一些特特定的關(guān)聯(lián)(分分類),主要要包括:二元元關(guān)聯(lián)與N元關(guān)聯(lián)、聚聚合與組合、泛泛化、依賴。 L、包:模型元元素的一個分分組。M、訪問依賴賴:目標(biāo)包的的內(nèi)容可以被被客戶包引用用,或被遞歸歸嵌套在客戶戶包中的其它它包引用。N、引入依賴:一個引入依依賴獲得訪

40、問問,并將目標(biāo)標(biāo)名字空間中中的那些具有有合適可見性性的名字引入入到客戶包(即即對它們的引引用可不需要要一個路徑名名)。總結(jié):包是控制文文檔組織復(fù)雜雜性的機(jī)制;包也可以作作為“模塊化化”、“構(gòu)件件化”機(jī)制;包之間(在在包的層次上上)存在兩種種依賴:訪問問和引入。O、注釋:是一一個符號項(xiàng),用用以表示某一一語義元素的的一些文本信信息。3)、表示法A、類(參見類類的表示法)B、屬性:可可見性 名稱 多重性:類型表達(dá)達(dá)式 = 初始值值 性質(zhì)串。C、服務(wù):可可見性 名字(參數(shù)數(shù)列表):返返回類型表達(dá)達(dá)式 性質(zhì)字符符串。D、對象(參見見對象的表示示法)E、接口(參見見接口的表示示法)F、關(guān)聯(lián)二元關(guān)聯(lián)(參參見

41、二元關(guān)聯(lián)聯(lián)的表示法)N元關(guān)聯(lián)(參參見N元關(guān)聯(lián)聯(lián)的表示法)G、聚合(參見見聚合的表示示法)H、組合(參見見組合的表示示法)I、鏈(參見見鏈的表示法法)J、泛化(參見見泛化的表示示法)K、依賴(參參見依賴的表表示法)LL、包(參見見包的表示法法)4、順序圖1)、概述:是一種表達(dá)達(dá)對象間交互互的圖,由一一組對象(參參與者)以及及其間順序發(fā)發(fā)送的消息組組成。2)、概念和表表示法A、對象生命命線:在順序序圖中,對象象生命線表示示扮演特定角角色的對象?!皩ο笊€”表表示為垂直虛虛線。B、激活(控制制焦點(diǎn)):表表示一個對象象直接或者通通過從屬例程程執(zhí)行一個行行為的時期。它它既表示了行行為執(zhí)行的持持續(xù)時間

42、,也也表示了活動動和它的調(diào)用用者之間的控控制關(guān)系。用用一個窄長的的矩形表示激激活(活化)。C、消息:是兩兩個對象間的的通訊,這樣樣的通訊用于于傳輸將產(chǎn)生生的動作所需需要的信息。一一個消息會引引起一個被調(diào)調(diào)用的操作,產(chǎn)產(chǎn)生一個信號號,或者引起起一個對象被被創(chuàng)建或者被被消除。在順順序圖中,把把消息表示為為從一個對象象生命線到另另一個對象生生命線的一個個水平實(shí)線箭箭頭。D、轉(zhuǎn)換時間:消息可以指指定幾個不同同的時間(例例如,發(fā)出時時間和接受時時間)。這些些時間可以用用在約束表達(dá)達(dá)式中。用戶戶可以按需要要為特定的目目的給出時間間表達(dá),如eelapseedTimee(占用時間間)和staartExeecu

43、tioonTimee(開始執(zhí)行行時間)??煽梢栽诩s束中中使用這些表表達(dá)式,以給給消息指派有有效的具體時時間約束??煽梢再x予消息息一個名字。把把時間約束寫寫成為一個基基于消息名字字的表達(dá)式。例例如,如果消消息的名字是是stim ,用stimm.senddTime()表表示發(fā)送時間間,用stiim.recceiveTTime()表表達(dá)接收時間間??梢园褧r時間約束表示示在與箭頭對對齊的圖的左左邊上,也可可以通過把布布爾表達(dá)式(可可能包括時間間表達(dá)式)放放在括號中表表示約束。3)、實(shí)例(參參見順序圖實(shí)實(shí)例)5、狀態(tài)圖1)、概述:通通過描述對事事件實(shí)例接收收的響應(yīng),狀狀態(tài)圖描述了了具有動態(tài)行行為能力的實(shí)

44、實(shí)體之行為。通通常用狀態(tài)圖圖描述類的行行為,也可以以用它描述其其它模型實(shí)體體(如用況、參參與者、子系系統(tǒng)、操作或或方法)的行行為。2)、概念與表表示法AA、狀態(tài):一一個狀態(tài)是對對象(類)生生命期的一個個階段,在該該階段中該對對象要滿足一一些特定的條條件,并可從從事特定的活活動。把一個個狀態(tài)表示成成一個四角均均為圓角的矩矩形。B、事件:是是指可以引發(fā)發(fā)狀態(tài)轉(zhuǎn)換的的所發(fā)生的事事情。事件有有信號事件、調(diào)調(diào)用事件、時時間事件、條條件事件。CC、轉(zhuǎn)換:是是兩個狀態(tài)之之間的關(guān)系,表表示當(dāng)一個特特定事件出現(xiàn)現(xiàn)時,如果滿滿足一定的條條件,對象就就從第一個狀狀態(tài)進(jìn)入第二二個狀態(tài),并并執(zhí)行一定的的動作。把轉(zhuǎn)轉(zhuǎn)換表

45、示成從從源狀態(tài)出發(fā)發(fā)并在目標(biāo)狀狀態(tài)上終止的的帶箭頭的實(shí)實(shí)線。33)、舉例(參參見狀態(tài)圖實(shí)實(shí)例)6、面對對象方方法1)、派別A、“方法驅(qū)動動的方法”:在給出符號號體系的基礎(chǔ)礎(chǔ)上,明確規(guī)規(guī)定進(jìn)行的“步步驟”,并在在每一步中給給出“實(shí)現(xiàn)策策略”。如CCoad-YYourdoon方法。B、“模型驅(qū)動動的方法”:給出模型化化概念,即符符號體系以及及目標(biāo)模型;而不明確規(guī)規(guī)定實(shí)現(xiàn)目標(biāo)標(biāo)的“步驟”,但但給出一些必必要的指導(dǎo)。如如D.W.EEmbleyy的OSA方法和和J.Rummbaughh的OMT方法。2)、同結(jié)構(gòu)化化方法的比較較A、結(jié)構(gòu)化方方法:強(qiáng)調(diào)過過程抽象和模模塊化,將現(xiàn)現(xiàn)實(shí)世界映射射為數(shù)據(jù)流和和加工

46、,加工工之間通過數(shù)數(shù)據(jù)流進(jìn)行通通信,數(shù)據(jù)作作為被動的實(shí)實(shí)體被主動地地操作所加工工,是以過程程(或操作)為為中心來構(gòu)造造系統(tǒng)和設(shè)計(jì)計(jì)程序的。B、面向?qū)ο蠓椒椒ǎ喊咽澜缃缈闯墒仟?dú)立立對象的集合合,對象將數(shù)數(shù)據(jù)和操作封封裝在一起,提提供有限的接接口,其內(nèi)部部的實(shí)現(xiàn)細(xì)節(jié)節(jié)、數(shù)據(jù)結(jié)構(gòu)構(gòu)及對它們的的操作是外部部不可見的。能能較好的適應(yīng)應(yīng)復(fù)雜大系統(tǒng)統(tǒng)不斷發(fā)展和和變化的要求求。優(yōu)點(diǎn):更更好的刻畫問問題域,減少少映射誤差,控控制變化性,便便于同用戶交交流,消除或或減少了軟件件開發(fā)各個階階段的鴻溝,便便于復(fù)用。7、Coad-Yourddon方法1)、概述:該方法認(rèn)為為,人類在認(rèn)認(rèn)識和理解現(xiàn)現(xiàn)實(shí)世界的過過程中,普遍

47、遍運(yùn)用著下面面三個構(gòu)造法法則:區(qū)分對對象及其屬性性;區(qū)分整體體對象及其組組成部分;不不同對象類的的形成及區(qū)分分。2)、OOA:利用五個層層次和活動定定義和記錄系系統(tǒng)行為,輸輸入和輸出。A、發(fā)現(xiàn)類及對對象:描述如如何發(fā)現(xiàn)類及及對象。從應(yīng)應(yīng)用領(lǐng)域開始始識別類及對對象,形成整整個應(yīng)用的基基礎(chǔ),然后,據(jù)據(jù)此分析系統(tǒng)統(tǒng)的責(zé)任。兩兩層矩形表示示類及對象:內(nèi)層矩形表表示類,分為為三部分,類類名、屬性名名、服務(wù)名,外外層矩形表示示該類的對象象。B、識別結(jié)構(gòu):該階段分為為兩個步驟。第第一,識別一一般/特殊結(jié)構(gòu),該該結(jié)構(gòu)捕獲了了識別出的類類的層次結(jié)構(gòu)構(gòu);第二,識識別整體/部分結(jié)構(gòu),該該結(jié)構(gòu)用來表表示一個對象象如何

48、成為另另一個對象的的一部分,以以及多個對象象如何組裝成成更大的對象象。C、定義主題題:主題由一一組類及對象象組成,用于于將類及對象象模型劃分為為更大的單位位,便于理解解。精煉主題題可以從問題題域和接口復(fù)復(fù)雜性入手。DD、定義屬性性:其中包括括定義類的實(shí)實(shí)例(對象)之之間的實(shí)例連連接??梢詮膹乃姆矫鏄?biāo)識識屬性:原子子概念,規(guī)范范化,標(biāo)識機(jī)機(jī)制,保持一一個可導(dǎo)出的的屬性。EE、定義服務(wù)務(wù):其中包括括定義對象之之間的消息連連接??偨Y(jié):在面向?qū)ο蠓治鲭A段段,經(jīng)過五個個層次的活動動后的結(jié)果是是一個分成五五個層次的問問題域模型型,包括主題題、類及對象象、結(jié)構(gòu)、屬屬性和服務(wù)五五個層次,由由類及對象圖圖表示

49、。五個個層次活動的的順序并不重重要。3)、OOD:面向向?qū)ο笤O(shè)計(jì)模模型需要進(jìn)一一步區(qū)分以下下四個部分。A、問題域部分分(PDC):面面向?qū)ο蠓治鑫龅慕Y(jié)果直接接放入該部分分。B、人機(jī)交互部部分(HICC):這部分分的活動包括括對用戶分類類,描述人機(jī)機(jī)交互的腳本本,設(shè)計(jì)命令令層次結(jié)構(gòu),設(shè)設(shè)計(jì)詳細(xì)的交交互,生成用用戶界面的原原型,定義HHIC類。C、任務(wù)管理部部分(TMCC):這部分分的活動包括括識別任務(wù)(進(jìn)進(jìn)程)、任務(wù)務(wù)所提供的服服務(wù)、任務(wù)的的優(yōu)先級、進(jìn)進(jìn)程是事件驅(qū)驅(qū)動還是時鐘鐘驅(qū)動、以及及任務(wù)與其它它進(jìn)程和外界界如何通信。D、數(shù)據(jù)管理部部分(DMCC):這一部部分依賴于存存儲技術(shù),是是文件系統(tǒng),

50、還還是關(guān)系數(shù)據(jù)據(jù)庫管理系統(tǒng)統(tǒng),還是面向向?qū)ο髷?shù)據(jù)庫庫管理系統(tǒng)。8、OSA方法1)、OSA模型A、對象關(guān)系系模型:對象象、關(guān)系、對對象類、關(guān)系系集合、約束束。B、對象行為模模型:狀態(tài)、觸觸發(fā)與轉(zhuǎn)換、動動作。C、對象相互互作用模型。22)、特殊的的關(guān)系集合AA、一般關(guān)系系(is aa):一個對對象類中的每每一個對象是是另一對象類類的一個對象象。B、聚合關(guān)系系(is ppart oof):由一一些稱之為成成分的對象構(gòu)構(gòu)成稱之為聚聚合的對象。C、聯(lián)合關(guān)系(is member of):該關(guān)系用于生成一個由對象構(gòu)成的集合,并把該集合看作是一個對象。9、UML11)、UML簡介:UML是一種種通用的可視視化

51、建模語言言,用于對軟軟件進(jìn)行描述述、可視化處處理、構(gòu)造和和建立軟件系系統(tǒng)的文檔。UML融合了許多面向?qū)ο箝_發(fā)方法的基本概念和優(yōu)點(diǎn),具有一致的圖形表示法和語義,同時也出現(xiàn)了許多UML工具,能夠很好地支持軟件開發(fā),例如UML的開發(fā)工具Rational Rose提供了面向?qū)ο蟮姆治龊驮O(shè)計(jì) (OOA 和 OOD)到面向?qū)ο缶幊?(OOP)的平滑過渡機(jī)制,完整地體現(xiàn)了面向?qū)ο蟮能浖こ趟枷搿?)、UML的的靜態(tài)建模機(jī)機(jī)制和動態(tài)建建模機(jī)制:靜靜態(tài)結(jié)構(gòu)定義義了系統(tǒng)中重重要對象的屬屬性和操作以以及這些對象象之間的相互互關(guān)系;動態(tài)態(tài)行為定義了了對象的時間間特性和對象象為完成目標(biāo)標(biāo)任務(wù)而相互互進(jìn)行通信的的機(jī)制。

52、UUML定義了了9種圖用于系系統(tǒng)建模,分分為兩類: 靜態(tài)結(jié)構(gòu)圖圖和動態(tài)行為為圖。A、靜態(tài)結(jié)構(gòu)圖圖:可用于對對系統(tǒng)的靜態(tài)態(tài)方面進(jìn)行可可視化、詳述述、構(gòu)造和文文檔化??梢砸园严到y(tǒng)的靜靜態(tài)方面看作作是對系統(tǒng)的的相對穩(wěn)定的的骨架的表示示,它由類、接接口、協(xié)作、構(gòu)構(gòu)件和節(jié)點(diǎn)等等事物的布局局組成。結(jié)構(gòu)構(gòu)圖包括:類類圖(Claass diiagramm)描述系統(tǒng)統(tǒng)中類的靜態(tài)態(tài)結(jié)構(gòu),它定定義了系統(tǒng)中中類的內(nèi)部結(jié)結(jié)構(gòu)以及類之之間的聯(lián)系,用用來捕獲信息息和事件中的的對象;對象象圖(Objject ddiagraam)是類的的實(shí)例化圖;構(gòu)件圖(CComponnent ddiagraam)描述程程序代碼的物物理結(jié)構(gòu);

53、部部署圖(Deeploymment ddiagraam)描述系系統(tǒng)中軟、硬硬件的物理體體系結(jié)構(gòu),用用于捕獲系統(tǒng)統(tǒng)硬件和軟件件構(gòu)件的部署署關(guān)系。B、動態(tài)行為為圖:用于對對系統(tǒng)的動態(tài)態(tài)方面進(jìn)行可可視化、詳述述、構(gòu)造和文文檔化??梢砸园严到y(tǒng)的動動態(tài)方面看作作是對系統(tǒng)變變化部分的表表示,它由諸諸如隨時間變變化的信息流流和在網(wǎng)絡(luò)上上構(gòu)件的 物理運(yùn)動之之類的事物組組成。行為圖圖包括:用例圖(Usee Casee diaggram)從從用戶的角度度描述系統(tǒng)的的功能,并指指出各功能的的執(zhí)行者,說說明執(zhí)行者與與提供的用例例之間的某種種聯(lián)系;順序序圖(Seqquencee diaggram)描描述幾個對象象之間的

54、動作作協(xié)作關(guān)系;協(xié)作圖(CCollabboratiion diiagramm)從另一個個角度展示對對象之間的動動作協(xié)作關(guān)系系。它可以和和順序圖相互互轉(zhuǎn)換。在RRationnal Roose中可以以由順序圖生生成協(xié)作圖;狀態(tài)圖(SState diagrram)描述述一類對象具具有的所有可可能的狀態(tài)以以及狀態(tài)轉(zhuǎn)移移關(guān)系;活動動圖(Acttive ddiagraam) 描述系統(tǒng)中中各種活動的的執(zhí)行順序。10、RUP(參參見RUP示示意圖)1)、概述:RUP,即Ratiional統(tǒng)統(tǒng)一過程,是是一種適應(yīng)UUML的軟件件生命周期方方法,是一個個通用的過程程框架,可用用于各種不同同類型的軟件件系統(tǒng)、各種種

55、不同的應(yīng)用用領(lǐng)域、各種種不同類型的的組織、各種種不同的功能能級別以及各各種不同的項(xiàng)項(xiàng)目規(guī)模。它它是Use Case驅(qū)驅(qū)動的、以體體系結(jié)構(gòu)為中中心的、迭代代、增量的開開發(fā)。2)、階段:初初始、細(xì)化、構(gòu)構(gòu)造、移交。3)、核心工工作流:捕獲獲需求、分析析、設(shè)計(jì)、實(shí)實(shí)現(xiàn)、測試。軟件測試 1、軟件測試試11)、軟件產(chǎn)產(chǎn)品與其他產(chǎn)產(chǎn)品不同,其其最大的成本本是檢測軟件件錯誤、修正正錯誤的成本本,以及為了了發(fā)現(xiàn)這些錯錯誤所進(jìn)行的的設(shè)計(jì)測試程程序和運(yùn)行測測試程序的成成本。2)、軟件測測試可定義為為:按照特定定規(guī)程,發(fā)現(xiàn)現(xiàn)軟件錯誤的的過程。33)、軟件測測試的目標(biāo):一是預(yù)防錯錯誤;二是發(fā)發(fā)現(xiàn)錯誤。2、軟件測試和和

56、軟件調(diào)試的的區(qū)別1)、測試從一一個側(cè)面證明明程序員的“失失敗”,而調(diào)調(diào)試是為了證證明程序員的的正確。2)、測試以已已知條件開始始,使用預(yù)先先定義的程序序,且有預(yù)知知的結(jié)果,不不可預(yù)見的僅僅是程序是否否通過測試。調(diào)調(diào)試一般是以以不可知的內(nèi)內(nèi)部條件開始始,除統(tǒng)計(jì)性性調(diào)試外,結(jié)結(jié)果是不可預(yù)預(yù)見的。3)、測試是是有計(jì)劃的,并并要進(jìn)行測試試設(shè)計(jì),而調(diào)調(diào)試是不受時時間約束的。4)、測試是是一個發(fā)現(xiàn)錯錯誤、改正錯錯誤、重新測測試的過程,而而調(diào)試是一個個推理過程。5)、測試的執(zhí)執(zhí)行是有規(guī)程程的,而調(diào)試試的執(zhí)行往往往要求程序員員進(jìn)行必要推推理以至知覺覺的“飛躍”。6)、測試經(jīng)經(jīng)常是由獨(dú)立立的測試組在在不了解軟件

57、件設(shè)計(jì)的條件件下完成的,而而調(diào)試必須由由了解詳細(xì)設(shè)設(shè)計(jì)的程序員員完成。7)、大多數(shù)測測試的執(zhí)行和和設(shè)計(jì)可由工工具支持,而而調(diào)試時,程程序員能利用用的工具主要要是調(diào)試器。3、測試過程模模型(參見測測試過程模型型示意圖)1)、程序環(huán)境境包括支持其其運(yùn)行的硬件件、固件和軟軟件。一般來來說,程序環(huán)環(huán)境經(jīng)過了生生產(chǎn)廠家的嚴(yán)嚴(yán)格測試,出出現(xiàn)錯誤的概概率比較小,軟軟件可靠性較較好。因此,對對環(huán)境的抽象象環(huán)境模模型,只考慮慮計(jì)算機(jī)指令令系統(tǒng)、操作作系統(tǒng)宏指令令、操作系統(tǒng)統(tǒng)命令以及高高級語言語句句等。2)、另外,為為了測試,必必須簡化程序序概念,形成成被測試對象象的簡化版本本,即程序模模型。不同測測試技術(shù),對對

58、同一被測對對象程序序,可產(chǎn)生不不同的程序模模型。這一簡簡化或著重于于程序的控制制結(jié)構(gòu),或著著重于處理過過程,于是形形成了所謂的的“白盒”測測試和“黑盒盒”測試。如如果程序的簡簡單模型不能能解釋未料到到的行為,則則必須修改程程序模型,使使其包含更多多的事實(shí)和細(xì)細(xì)節(jié)。如果還還有問題,則則要考慮是否否修改程序。3)、由于參與與軟件開發(fā)的的人員眾多,且且各有各的側(cè)側(cè)重面,因此此,他們對“什什么是錯誤”往往往在認(rèn)識上上是不一致的的。為了統(tǒng)一一認(rèn)識,必須須定義“什么么是錯誤”,即即給出“錯誤誤模型”。4)、在建立了了環(huán)境模型、程程序模型、以以及錯誤模型型的基礎(chǔ)上,才才能執(zhí)行測試試及測試結(jié)果果的比較。如如果

59、預(yù)料結(jié)果果與實(shí)際結(jié)果果不符,就要要考慮是否是是環(huán)境模型、程程序、程序模模型和錯誤模模型的問題。4、軟件測試技技術(shù)1)、軟件測測試技術(shù)大體體上可分為兩兩大類:一類類是白盒測試試技術(shù),典型型的是路徑測測試技術(shù);一一類是黑盒測測試技術(shù),又又稱為功能測測試技術(shù),包包括事務(wù)處理理流程技術(shù)、狀狀態(tài)測試技術(shù)術(shù)、定義域測測試技術(shù)等。2)、白盒測測試技術(shù)依據(jù)據(jù)的是程序的的邏輯結(jié)構(gòu),而而黑盒測試技技術(shù)依據(jù)的是是軟件行為的的描述。3)、軟件錯錯誤可分為結(jié)結(jié)構(gòu)錯誤、數(shù)數(shù)據(jù)錯誤、編編程錯誤和接接口錯誤。44)、測試用用例指的是為為了發(fā)現(xiàn)程序序中的故障而而專門設(shè)計(jì)的的一組或多組組數(shù)據(jù)。5、路徑測試試技術(shù)1)、基本概概念A(yù)

60、、控制流程圖圖:是程序控控制結(jié)構(gòu)的圖圖形表示,其其基本元素是是過程塊、結(jié)結(jié)點(diǎn)、判定。過過程塊是既不不能由判定,也也不能由結(jié)點(diǎn)點(diǎn)分開的一組組程序語句,其其基本屬性是是:如果過程程塊中的某個個語句被執(zhí)行行,那么塊中中的所有語句句都被執(zhí)行。判判定是一個程程序點(diǎn),此處處控制流可以以分叉。結(jié)點(diǎn)點(diǎn)是程序中的的一個點(diǎn),此此處控制流可可以結(jié)合??乜刂屏鞒虉D與與程序流程圖圖之間的差異異是在控制流流程圖中,不不顯示過程塊塊的細(xì)節(jié),而而在程序流程程圖中,著重重于過程屬性性的描述。B、路徑:是是一串指令或或語句。它在在一個入口、結(jié)結(jié)點(diǎn)、判定處處開始,在另另一入口(或或同一入口)、結(jié)結(jié)點(diǎn)、判定或或出口處結(jié)束束。顯然一條

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論