中國海洋大學(xué)考研復(fù)習(xí)軟工復(fù)習(xí)整理_第1頁
中國海洋大學(xué)考研復(fù)習(xí)軟工復(fù)習(xí)整理_第2頁
中國海洋大學(xué)考研復(fù)習(xí)軟工復(fù)習(xí)整理_第3頁
中國海洋大學(xué)考研復(fù)習(xí)軟工復(fù)習(xí)整理_第4頁
中國海洋大學(xué)考研復(fù)習(xí)軟工復(fù)習(xí)整理_第5頁
已閱讀5頁,還剩88頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

各階段的基本任務(wù):

1.問題定義必須回答的關(guān)鍵問題是:“要解決的問題是什么?”2.可行性研究必須回答的關(guān)鍵問題是:“對(duì)于上一個(gè)階段所確定的問題有行得通的解決辦法嗎?”3.需求分析準(zhǔn)確的確定“為了解決這個(gè)問題,目標(biāo)系統(tǒng)必須做什么”,主要是確定目標(biāo)系統(tǒng)必須具備那些功能。

4.總體設(shè)計(jì)必須回答的關(guān)鍵問題是:“概括地說,應(yīng)該如何解決這個(gè)問題?”。有兩個(gè)任務(wù):(1)考慮幾種可能的解決方案。低成本解決方案;中等成本解決方案;高成本“十全十美”的系統(tǒng);(2)設(shè)計(jì)軟件結(jié)構(gòu),即確定程序由哪些模塊組成以及模塊間的關(guān)系。5.詳細(xì)設(shè)計(jì)關(guān)鍵問題是:“應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)?”

6.編碼和單元測試關(guān)鍵任務(wù)是寫出正確的容易理解、容易維護(hù)的程序模塊。7.綜合測試關(guān)鍵任務(wù)是通過各種類型的測試(及相應(yīng)的調(diào)試)使軟件達(dá)到預(yù)定的要求。8.軟件維護(hù)關(guān)鍵任務(wù)是,通過各種必要的維護(hù)活動(dòng)使系統(tǒng)持久地滿足用戶的需要。維護(hù)類型:改正性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)、預(yù)防性維護(hù)。

1.4.1瀑布模型把生命周期劃分為階段的目的及實(shí)質(zhì)是:控制開發(fā)工作的復(fù)雜性;通過有限的確定步驟,把用戶需求從抽象的邏輯概念逐步轉(zhuǎn)化為具體的物理實(shí)現(xiàn)。圖1.2傳統(tǒng)的瀑布模型問題定義總體設(shè)計(jì)需求分析可行性研究詳細(xì)設(shè)計(jì)綜合測試編碼與單元測試軟件維護(hù)按照傳統(tǒng)的瀑布模型開發(fā)軟件,有如下幾個(gè)特點(diǎn):1.階段間具有順序性和依賴性這個(gè)特點(diǎn)由兩重含義:(1)必須等前一階段的工作完成之后,才能開始后一階段的工作;(2)前一階段的輸出文檔就是后一階段的輸入文檔,因此只有前一階段的輸出文檔正確,后一階段的工作才能獲得正確的結(jié)果。2.推遲實(shí)現(xiàn)地觀點(diǎn)3.質(zhì)量保證的觀點(diǎn)在瀑布模型的每個(gè)階段都應(yīng)該堅(jiān)持兩個(gè)重要做法:(1)每個(gè)階段都必須完成規(guī)定的文檔,沒有交出合格的文檔就是沒有完成該階段的任務(wù)。(2)每個(gè)階段結(jié)束前都要對(duì)所完成的文檔進(jìn)行評(píng)審,以便及早發(fā)現(xiàn)問題,改正錯(cuò)誤。

圖1.3實(shí)際的瀑布模型需求分析驗(yàn)證規(guī)格說明驗(yàn)證設(shè)計(jì)驗(yàn)證編碼測試綜合測試維護(hù)變化的需求驗(yàn)證1.4.2快速原型模型所謂快速原型是快速建立起來的可以在計(jì)算機(jī)上運(yùn)行的程序,它所能完成的功能一般是最終產(chǎn)品能完成的功能的一個(gè)子集。如圖1.4所示。

快速原型驗(yàn)證規(guī)格說明驗(yàn)證設(shè)計(jì)驗(yàn)證編碼測試綜合測試維護(hù)變化的需求驗(yàn)證圖1.4快速原型模型注:實(shí)線箭頭表示開發(fā)過程虛線箭頭表示維護(hù)過程

從圖1.4可以看出,快速原型模型是不帶反饋環(huán)的,這正是這種過程模型的主要優(yōu)點(diǎn):軟件產(chǎn)品的開發(fā)基本上是線性順序進(jìn)行的。(1)原型系統(tǒng)已經(jīng)通過與用戶交互而得到驗(yàn)證,據(jù)此產(chǎn)生的規(guī)格說明文檔正確地描述了用戶需求,因此,在開發(fā)過程的后續(xù)階段不會(huì)因?yàn)榘l(fā)現(xiàn)了規(guī)格說明文檔的錯(cuò)誤而進(jìn)行較大的返工。(2)開發(fā)人員通過建立原型已經(jīng)掌握很多東西。因此,在設(shè)計(jì)和編碼階段發(fā)生錯(cuò)誤的可能性也較小,這自然減少后續(xù)階段修改前面錯(cuò)誤的可能性。1.4.3增量模型增量模型也稱為漸增模型,如圖1.5所示。圖1.5增量模型需求分析驗(yàn)證規(guī)格說明驗(yàn)證概要設(shè)計(jì)驗(yàn)證針對(duì)每個(gè)構(gòu)件,完成詳細(xì)設(shè)計(jì)、編碼和集成,經(jīng)測試后交付給用戶維護(hù)

使用增量模型開發(fā)軟件時(shí),把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計(jì)、編碼、集成和測試。每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠完成特定的功能。使用增量模型時(shí),第一個(gè)增量構(gòu)件往往實(shí)現(xiàn)軟件的基本需求,提供最核心的功能。

圖1.5所示的增量模型表明,必須在開始實(shí)現(xiàn)各個(gè)構(gòu)件之前就全部完成需求分析、規(guī)格說明和概要設(shè)計(jì)的工作。由于在開始構(gòu)建第一個(gè)構(gòu)件之前就已經(jīng)有了總體設(shè)計(jì),因此風(fēng)險(xiǎn)較小。圖1.6描繪一種風(fēng)險(xiǎn)更大的增量模型:一旦確定了用戶需求之后,就著手?jǐn)M定第一個(gè)構(gòu)件的規(guī)格說明文檔,完成后規(guī)格說明組將轉(zhuǎn)向第二個(gè)構(gòu)件的規(guī)格說明,與此同時(shí)設(shè)計(jì)組開始設(shè)計(jì)第一個(gè)構(gòu)件…用這種方式開發(fā)軟件,不同的構(gòu)件將并行的構(gòu)建,因此有可能加快工程進(jìn)度。但是,使用這種方法將冒構(gòu)件無法集成到一起的風(fēng)險(xiǎn)。規(guī)格說明設(shè)計(jì)編碼和集成交付客戶規(guī)格說明設(shè)計(jì)編碼和集成交付客戶規(guī)格說明設(shè)計(jì)編碼和集成交付客戶構(gòu)件1:構(gòu)件2:構(gòu)件n:圖1.6風(fēng)險(xiǎn)更大的增量模型1.4.4螺旋模型

軟件開發(fā)總要冒一定風(fēng)險(xiǎn),項(xiàng)目越大,軟件越復(fù)雜,承擔(dān)該項(xiàng)目所冒的風(fēng)險(xiǎn)也越大。軟件風(fēng)險(xiǎn)可能在不同程度上損害軟件開發(fā)過程和軟件產(chǎn)品質(zhì)量。因此,在軟件開發(fā)過程中必須及時(shí)識(shí)別和分析風(fēng)險(xiǎn),并且采取適當(dāng)措施以消除或減少風(fēng)險(xiǎn)的危害。螺旋模型的基本思想是,使用原型及其他方法來盡量降低風(fēng)險(xiǎn)。理解這種模型的簡便方法是,把它看作在每個(gè)階段之前都增加了風(fēng)險(xiǎn)分析過程的快速原型模型,如圖1.7所示。風(fēng)險(xiǎn)分析快速原型驗(yàn)證風(fēng)險(xiǎn)分析規(guī)格說明驗(yàn)證風(fēng)險(xiǎn)分析設(shè)計(jì)驗(yàn)證風(fēng)險(xiǎn)分析編碼測試風(fēng)險(xiǎn)分析綜合測試維護(hù)風(fēng)險(xiǎn)分析變化的需求驗(yàn)證圖1.7簡化的螺旋模型圖1.8完整的螺旋模型1.4.5噴泉模型迭代是軟件開發(fā)過程中普遍存在的一種內(nèi)在屬性。經(jīng)驗(yàn)表明,軟件過程各個(gè)階段之間的迭代或一個(gè)階段內(nèi)各個(gè)工作步驟之間的迭代,在面向?qū)ο蠓缎椭斜仍诮Y(jié)構(gòu)化范型中更常見。圖1.9所示的噴泉模型,是典型的面向?qū)ο蟮能浖^程模型。“噴泉”這個(gè)詞體現(xiàn)了面向?qū)ο筌浖_發(fā)過程迭代和無縫的特性。維護(hù)期進(jìn)一步開發(fā)運(yùn)行狀態(tài)集成和測試階段編碼階段面向?qū)ο笤O(shè)計(jì)階段面向?qū)ο蠓治鲭A段需求階段圖1.9噴泉模型

圖中代表不同階段的圓圈相互重疊,這明確表示兩個(gè)活動(dòng)之間存在交疊。圖中在一個(gè)階段內(nèi)的向下箭頭代表該階段內(nèi)的迭代(或求精)。為避免使用噴泉模型開發(fā)軟件時(shí)開發(fā)過程過分無序,應(yīng)該把一個(gè)線性過程(如圖1.9中的中心垂線)作為總目標(biāo)。1.最佳實(shí)踐迭代式開發(fā)管理需求使用基于構(gòu)件的體系結(jié)構(gòu)可視化建模驗(yàn)證軟件質(zhì)量控制軟件變更1.4.6Rational統(tǒng)一過程Rational統(tǒng)一過程(RationalUnifiedProcess,RUP)是由Rational公司推出的一種軟件過程。

RUP總結(jié)了6條最有效的軟件開發(fā)經(jīng)驗(yàn),這些經(jīng)驗(yàn)被稱為“最佳實(shí)踐”。2.RUP軟件開發(fā)生命周期

RUP軟件開發(fā)生命周期是一個(gè)二維的生命周期模型。如下圖所示。圖中縱軸代表核心工作流,橫軸代表時(shí)間。(1)核心工作流

RUP中有9個(gè)核心工作流,其中前6個(gè)為核心過程工作流(CoreProcessWorkflows),后3個(gè)為核心支持工作流(CoreSupportingWorkflows)。業(yè)務(wù)建模(BusinessModeling)

需求(Requirements)

分析和設(shè)計(jì)(Analysis&Design)

實(shí)現(xiàn)(Implementation)

測試(Test)

部署(Deployment)

配置和變更管理(Configuration&ChangeManagement)

項(xiàng)目管理(ProjectManagement)

環(huán)境(Environment)(2)工作階段

RUP中的軟件生命周期在時(shí)間上被分解為四個(gè)連續(xù)的階段,每個(gè)階段都有明確的目標(biāo),并且定義了用來評(píng)估是否達(dá)到這些目標(biāo)的里程碑。如果評(píng)估結(jié)果令人滿意的話,可以允許項(xiàng)目進(jìn)入下一個(gè)階段。

四個(gè)階段的工作目標(biāo)分別是:初始階段(Inception):建立業(yè)務(wù)模型,定義最終產(chǎn)品視圖,并且確定項(xiàng)目的范圍。精化階段(Elaboration):設(shè)計(jì)并確定系統(tǒng)的體系結(jié)構(gòu),制定項(xiàng)目計(jì)劃,確定資源需求。構(gòu)建階段(Construction):開發(fā)出所有構(gòu)件和應(yīng)用程序,把它們集成為客戶需要的產(chǎn)品,并且詳盡地測試所有功能。移交階段(Transition):把開發(fā)出的產(chǎn)品提交給用戶使用。(3)RUP迭代式開發(fā)RUP強(qiáng)調(diào)采用迭代和漸增的方式來開發(fā)軟件,整個(gè)項(xiàng)目開發(fā)過程由多個(gè)迭代過程組成。一個(gè)迭代是一個(gè)完整的開發(fā)循環(huán),產(chǎn)生一個(gè)可執(zhí)行的產(chǎn)品版本,是最終產(chǎn)品的一個(gè)子集,它增量式地發(fā)展,從一個(gè)迭代過程到另一個(gè)迭代過程到成為最終的系統(tǒng)。RUP重復(fù)一系列組成軟件生命周期的循環(huán),但是,在不同的迭代過程中是以不同的工作重點(diǎn)和強(qiáng)度對(duì)這些核心工作流程進(jìn)行訪問的。1.4.7敏捷過程與極限編程1.敏捷過程為了使軟件開發(fā)團(tuán)隊(duì)具有高效工作和快速響應(yīng)變化的能力,17位著名的軟件專家于2001年2月聯(lián)合起草了敏捷軟件開發(fā)宣言,它由4格簡單的價(jià)值觀聲明組成。(1)個(gè)體和交互勝過過程和工具(2)可以工作的軟件勝過面面俱到的文檔(3)客戶合作勝過合同談判(4)響應(yīng)變化勝過遵循計(jì)劃2.極限編程極限編程(eXtremeProgramming,XP)是敏捷過程中最富盛名的一個(gè),其名稱中‘極限’二字的含義是指把好的開發(fā)實(shí)踐運(yùn)用到極致。目前,極限編程已經(jīng)成為一個(gè)典型的開發(fā)方法,廣泛應(yīng)用于需求模糊且經(jīng)常改變的場合。(1)極限編程的有效實(shí)踐客戶作為開發(fā)團(tuán)隊(duì)的成員使用用戶素材(正在進(jìn)行的關(guān)于需求的談話內(nèi)容的助記符。)使用用戶素材可以合理安排實(shí)現(xiàn)該項(xiàng)需求的時(shí)間短交付周期驗(yàn)收測試結(jié)對(duì)編程測試驅(qū)動(dòng)開發(fā)集體所有持續(xù)集成:一天之內(nèi)多次集成,不斷回歸測試可持續(xù)的開發(fā)速度開放的工作空間及時(shí)調(diào)整計(jì)劃簡單的設(shè)計(jì)重構(gòu):在不改變系統(tǒng)行為的前提下,重新調(diào)整和優(yōu)化系統(tǒng)內(nèi)部結(jié)構(gòu),以降低復(fù)雜性、消除冗余、增加靈活性和提高性能。使用隱喻:描述系統(tǒng)如何運(yùn)作,用何種方式加入新功能。(2)極限編程的整體開發(fā)過程

圖1.11描述了極限編程的整體開發(fā)過程。圖1.11XP項(xiàng)目的整體開發(fā)過程(3)極限編程的迭代過程圖1.12描述了極限編程的迭代開發(fā)過程。圖1.12XP迭代開發(fā)過程

綜上所述,以極限編程為杰出代表的敏捷過程,具有對(duì)變化和不確定性的更快速,更敏捷的反映特性,而且在快速的同時(shí)仍然能保持可持續(xù)的開發(fā)速度。上述這些特點(diǎn)使得敏捷過程能夠較好的適應(yīng)商業(yè)競爭環(huán)境下對(duì)小型項(xiàng)目提出的有限資源和有限開發(fā)時(shí)間的約束。項(xiàng)目計(jì)劃應(yīng)該兼顧未來的不確定因素用有效的風(fēng)險(xiǎn)管理來減少不確定因素的影響經(jīng)常生成并快速地測試軟件地過渡版本,從而提高產(chǎn)品地穩(wěn)定性和可預(yù)測性1.4.8微軟過程

作為世界上最大的同時(shí)也是最成功的軟件公司之一,Microsoft(微軟)公司擁有自己獨(dú)特的軟件開發(fā)過程,幾十年的實(shí)踐證明微軟過程是非常成功和行之有效的。

1、微軟過程準(zhǔn)則微軟過程遵循下述的基本準(zhǔn)則:采用快速循環(huán),遞進(jìn)地開發(fā)過程用創(chuàng)造性地工作來平衡產(chǎn)品特性和產(chǎn)品成本項(xiàng)目進(jìn)度表應(yīng)該具有較高穩(wěn)定性和權(quán)威性使用小型項(xiàng)目組并發(fā)地完成開發(fā)工作在項(xiàng)目早期把軟件配置項(xiàng)基線化,項(xiàng)目后期則凍結(jié)產(chǎn)品使用原型驗(yàn)證概念,對(duì)項(xiàng)目進(jìn)行早期論證把零缺陷作為追求的目標(biāo)里程碑評(píng)審會(huì)的目的是改進(jìn)工作,切忌相互指責(zé)2.微軟軟件生命周期微軟過程把軟件生命周期劃分成5個(gè)階段。圖1.13描繪了生命周期的階段及每個(gè)階段的主要里程碑。規(guī)劃階段項(xiàng)目目標(biāo)得到認(rèn)可設(shè)計(jì)階段開發(fā)階段穩(wěn)定階段發(fā)布階段完成產(chǎn)品設(shè)計(jì)完成開發(fā)工作準(zhǔn)備好可發(fā)布版本完成產(chǎn)品發(fā)布圖1.13微軟軟件生命周期階段劃分和主要里程碑(1)規(guī)劃階段主要任務(wù)是,根據(jù)從市場上獲得的用戶情況和客戶需求等信息,在調(diào)查、統(tǒng)計(jì)和分析的基礎(chǔ)上,完成下述工作。

確定產(chǎn)品目標(biāo)。獲取競爭對(duì)手的信息。完成對(duì)客戶和市場的調(diào)研分析。確定新版本產(chǎn)品應(yīng)具備的主要特征。確定相對(duì)于前一版本而言,新版本應(yīng)該解決的問題和需要增加的功能。(2)設(shè)計(jì)階段主要工作如下:

根據(jù)產(chǎn)品目標(biāo)編寫系統(tǒng)的特性規(guī)格說明書。主要描述軟件特性、系統(tǒng)結(jié)構(gòu)、各構(gòu)件間的相關(guān)性以及接口標(biāo)準(zhǔn)。從系統(tǒng)高層著手開始進(jìn)行系統(tǒng)設(shè)計(jì),主要完成:系統(tǒng)設(shè)計(jì)方案,描繪系統(tǒng)結(jié)構(gòu)圖,確定系統(tǒng)中存在的風(fēng)險(xiǎn)因素,分析系統(tǒng)的可重用性。劃分出系統(tǒng)的子系統(tǒng),給出各自系統(tǒng)和各個(gè)構(gòu)件的規(guī)格說明。根據(jù)產(chǎn)品特性規(guī)格說明書制定產(chǎn)品開發(fā)計(jì)劃。(3)開發(fā)階段主要任務(wù)是,完成產(chǎn)品中所有構(gòu)件的開發(fā)工作,包括編寫程序代碼和書寫文檔。(4)穩(wěn)定階段主要任務(wù)是對(duì)產(chǎn)品進(jìn)行測試和調(diào)試,以確保已經(jīng)正確地實(shí)現(xiàn)了整個(gè)解決方案,產(chǎn)品可以發(fā)布了。(5)發(fā)布階段

發(fā)布產(chǎn)品或解決方案,并把項(xiàng)目移交到運(yùn)營和支持人員手中,以獲得最終用戶對(duì)項(xiàng)目的認(rèn)可。3.微軟過程模型微軟過程的每一個(gè)生命周期發(fā)布一個(gè)遞進(jìn)的軟件版本,各個(gè)生命周期持續(xù),快速地迭代循環(huán)。如圖1.14所示。圖1.12微軟過程的生命周期模型

2.2可行性研究的過程步驟如下:1.復(fù)查系統(tǒng)規(guī)模和目標(biāo)2.研究目前正在使用的系統(tǒng)從兩個(gè)方面出發(fā):(1)原系統(tǒng)的功能和優(yōu)點(diǎn);(2)原系統(tǒng)存在的缺陷。3.導(dǎo)出新系統(tǒng)的高層邏輯模型優(yōu)秀的設(shè)計(jì)通常按以下步驟進(jìn)行:現(xiàn)有的物理系統(tǒng)現(xiàn)有系統(tǒng)的邏輯模型新的物理系統(tǒng)目標(biāo)系統(tǒng)的邏輯模型4.進(jìn)一步定義問題:新系統(tǒng)必須做什么?分析員和用戶看法一致。5.導(dǎo)出和評(píng)價(jià)供選擇的解法首先從技術(shù)角度提出一些可能的物理系統(tǒng)后,應(yīng)根據(jù)技術(shù)可行性的考慮初步排除一些不現(xiàn)實(shí)的系統(tǒng)。其次,考慮操作方面的可行性。最后應(yīng)該考慮經(jīng)濟(jì)方面的可行性。6.推薦行動(dòng)方針:是否繼續(xù)開發(fā)?是則推薦最佳方案7.草擬開發(fā)計(jì)劃包括:工程進(jìn)度表、各種開發(fā)人員和各種資源的需求情況、下一階段(需求分析)的詳細(xì)進(jìn)度表和成本估計(jì)。8.書寫文檔提交審查

數(shù)據(jù)字典定義中用到的符號(hào):=意思是等價(jià)于(或定義為);+意思是和(即,連接兩個(gè)分量);[]意思是或(即,從方括號(hào)內(nèi)列出的若干個(gè)分量中選擇一個(gè));{}意思是重復(fù)(即,重復(fù)花括號(hào)內(nèi)的分量);()意思是可選(即,圓括號(hào)內(nèi)的分量可有可無);

3.2與用戶溝通獲取需求的方法3.2.1訪談訪談是最早開始使用的獲取用戶需求的技術(shù),也是迄今為止仍然廣泛使用的需求分析技術(shù)。訪談?dòng)袃煞N基本形式,分別是正式的和非正式的。在訪問用戶的過程中,使用情景分析技術(shù)往往非常有效。所謂情景分析就是對(duì)用戶將來使用目標(biāo)系統(tǒng)解決某個(gè)具體問題的方法和結(jié)果進(jìn)行分析。

情景分析技術(shù)的用處主要體現(xiàn)在下述兩個(gè)方面:它能在某種程度上演示目標(biāo)系統(tǒng)的行為,從而便于用戶理解,而且還可能進(jìn)一步揭示出一些分析員目前還不知道的需求。由于情景分析較易為用戶所理解,使用這種技術(shù)能保證用戶在需求分析過程中始終扮演一個(gè)積極主動(dòng)地角色。3.2.2面向數(shù)據(jù)流自頂向下求精

結(jié)構(gòu)化分析方法(SA)就是面向數(shù)據(jù)流自頂向下逐步求精進(jìn)行需求分析的方法。其過程如下圖示:圖3.1面向數(shù)據(jù)流自頂向下求精過程

分析追蹤數(shù)據(jù)流圖用戶復(fù)查細(xì)化數(shù)據(jù)流圖有補(bǔ)充修正無補(bǔ)充修正需要分解不需要分解3.2.3簡易的應(yīng)用規(guī)格說明技術(shù)(P60)面向團(tuán)隊(duì)的需求收集法,用戶與開發(fā)者密切合作3.2.4快速建立軟件原型快速原型應(yīng)該具備的第一個(gè)特性是“快速”??焖僭蛻?yīng)該具備的第二個(gè)特性是“容易修改”。為了快速地構(gòu)建和修改軟件,通常使用下述幾種方法和工具:(1)第四代技術(shù)

(2)可重用的軟件構(gòu)件(3)形式化規(guī)格說明和原型環(huán)境3.3.2軟件需求規(guī)格說明軟件需求規(guī)格說明,應(yīng)包括以下內(nèi)容:系統(tǒng)規(guī)格說明:主要描述目標(biāo)系統(tǒng)的概貌、功能要求、性能要求、可靠性和可用性要求、約束和將來可能提出的要求等。數(shù)據(jù)要求:主要包括數(shù)據(jù)字典、描繪數(shù)據(jù)結(jié)構(gòu)的層次方框圖或Warnier圖。用戶系統(tǒng)描述:一份初步的用戶手冊(cè)。主要包括對(duì)系統(tǒng)功能和性能的扼要描述,使用系統(tǒng)的主要步驟和方法,以及系統(tǒng)用戶的責(zé)任等。

3.7其他圖形工具3.7.1層次方框圖層次方框圖用樹形結(jié)構(gòu)的一系列的矩形框描繪數(shù)據(jù)的層次結(jié)構(gòu)。

產(chǎn)品硬件軟件服務(wù)處理機(jī)存儲(chǔ)器外部設(shè)備系統(tǒng)軟件應(yīng)用軟件軟件服務(wù)硬件服務(wù)培訓(xùn)圖3.5層次方框圖例子3.7.2Warnier圖軟件產(chǎn)品系統(tǒng)軟件應(yīng)用軟件操作系統(tǒng)(P1)編譯程序(P2)軟件工具編輯程序(P3)測試驅(qū)動(dòng)程序(P4)設(shè)計(jì)輔助工具(P5)圖3.6Warnier圖例子Warnier圖也用樹形結(jié)構(gòu)描繪信息,它可以表明信息的邏輯組織,即它可以指出一類信息或一個(gè)信息元素是重復(fù)出現(xiàn)的,也可以表示信息有條件出現(xiàn)。舊的主文件事務(wù)文件1.校驗(yàn)主記錄2.校驗(yàn)事務(wù)記錄3.更新主記錄有效的主記錄有效的事務(wù)記錄更新后的主文件輸入處理輸出圖3.7IPO圖的一個(gè)例子IPO表系統(tǒng):____________ 作者:_________模塊:____________ 日期:_________編號(hào):____________

注釋:被調(diào)用:調(diào)用:輸入:輸出:處理:局部數(shù)據(jù)元素:圖3.8改進(jìn)的IPO圖的形式

1.耦合耦合的種類:數(shù)據(jù)耦合控制耦合特征耦合公共環(huán)境耦合內(nèi)容耦合

數(shù)據(jù)耦合:如果兩個(gè)模塊彼此間通過參數(shù)交換信息,而且交換的信息僅僅是數(shù)據(jù),那么這種耦合稱為數(shù)據(jù)耦合。這是一種低耦合。控制耦合:如果兩個(gè)模塊彼此間通過參數(shù)交換信息,并且傳遞的信息中有控制信息(盡管有時(shí)這種控制信息以數(shù)據(jù)的形式出現(xiàn)),那么這種耦合稱為控制耦合。是中等程度的耦合??刂岂詈贤嵌嘤嗟?,把模塊適當(dāng)分解后通常可用數(shù)據(jù)耦合代替它。特征耦合:當(dāng)把整個(gè)數(shù)據(jù)結(jié)構(gòu)作為參數(shù)傳遞而被調(diào)用的模塊只需要使用其中一部分元素時(shí),就出現(xiàn)了特征耦合。這時(shí),被調(diào)用模塊可以使用的數(shù)據(jù)多于它確實(shí)需要的數(shù)據(jù),將導(dǎo)致對(duì)數(shù)據(jù)的訪問失控,從而給計(jì)算機(jī)犯罪提供機(jī)會(huì)。公共環(huán)境耦合:當(dāng)兩個(gè)或多個(gè)模塊通過一個(gè)公共數(shù)據(jù)環(huán)境相互作用時(shí),它們之間的耦合稱為公共環(huán)境耦合。公共環(huán)境可以是全程變量、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等。

公共環(huán)境耦合的復(fù)雜程度隨耦合的模塊數(shù)目而變化,當(dāng)耦合的模塊個(gè)數(shù)增加時(shí)復(fù)雜程度顯著增加。如果只有兩個(gè)模塊有公共環(huán)境,這種耦合有以下兩種可能:(1)一個(gè)模塊往公共環(huán)境送數(shù)據(jù),另一個(gè)模塊從公共環(huán)境取數(shù)據(jù)。這是數(shù)據(jù)耦合的一種形式,是較松散的耦合。(2)兩個(gè)模塊都既往公共環(huán)境送數(shù)據(jù),又從里面取數(shù)據(jù)。這種耦合比較緊密,介于數(shù)據(jù)耦合和控制耦合之間。內(nèi)容耦合:如果出現(xiàn)下列情況之一,兩個(gè)模塊間就發(fā)生了內(nèi)容耦合:一個(gè)模塊訪問另一個(gè)模塊的內(nèi)部數(shù)據(jù);一個(gè)模塊不通過正常入口而轉(zhuǎn)到另一個(gè)模塊的內(nèi)部;兩個(gè)模塊有一部分程序代碼重疊(只可能出現(xiàn)在匯編程序中);一個(gè)模塊有多個(gè)入口(這意味著一個(gè)模塊有幾種功能)。

內(nèi)容耦合是最高程度的耦合,應(yīng)堅(jiān)決避免使用。

2.內(nèi)聚衡量一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度。

模塊化設(shè)計(jì)期望產(chǎn)生高內(nèi)聚的模塊低內(nèi)聚中內(nèi)聚高內(nèi)聚0分1分3分5分7分9分10分內(nèi)聚的種類:偶然內(nèi)聚邏輯內(nèi)聚時(shí)間內(nèi)聚過程內(nèi)聚通信內(nèi)聚順序內(nèi)聚功能內(nèi)聚

偶然內(nèi)聚:如果一個(gè)模塊完成一組任務(wù),這些任務(wù)彼此間即使有關(guān)系,關(guān)系也是很松散的,就叫做偶然內(nèi)聚。

邏輯內(nèi)聚:如果一個(gè)模塊完成的任務(wù)在邏輯上屬于相同或相似的一類,則稱為邏輯內(nèi)聚。例如,一個(gè)模塊產(chǎn)生各種類型的全部輸出。

時(shí)間內(nèi)聚:如果一個(gè)模塊包含的任務(wù)必須在同一段時(shí)間內(nèi)執(zhí)行,就叫時(shí)間內(nèi)聚。例如,模塊完成各種初始化工作。通信內(nèi)聚:如果模塊中所有元素都使用同一個(gè)輸入數(shù)據(jù)(或)產(chǎn)生同一個(gè)輸出數(shù)據(jù),則稱為通信內(nèi)聚。過程內(nèi)聚:如果一個(gè)模塊內(nèi)的處理元素是相關(guān)的,而且必須以特定次序執(zhí)行,則稱為過程內(nèi)聚。按程序流程圖設(shè)計(jì)軟件時(shí),往往得到的是過程內(nèi)聚的模塊。順序內(nèi)聚:如果一個(gè)模塊內(nèi)的處理元素和同一個(gè)功能密切相關(guān),而且這些處理必須順序執(zhí)行(通常一個(gè)處理元素的輸出數(shù)據(jù)是下一個(gè)處理元素的輸入數(shù)據(jù)),則稱為順序內(nèi)聚。按數(shù)據(jù)流圖劃分模塊時(shí),通常得到順序內(nèi)聚的模塊。功能內(nèi)聚:如果模塊內(nèi)所有處理元素屬于一個(gè)整體,完成一個(gè)單一的功能,則稱為功能內(nèi)聚。5.3啟發(fā)式規(guī)則1.改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性

通過模塊分解和合并,力求降低耦合提高內(nèi)聚。2.模塊規(guī)模應(yīng)該適中3.深度、寬度、扇出和扇入都應(yīng)適當(dāng)

深度:表示軟件結(jié)構(gòu)中控制的層數(shù)。

寬度:軟件結(jié)構(gòu)內(nèi)同一個(gè)層次上的模塊總數(shù)的最大值。

扇出:一個(gè)模塊直接控制(調(diào)用)的模塊數(shù)目。扇出大意味著模塊過分復(fù)雜,需控制和協(xié)調(diào)過多的下級(jí)模塊。

扇入:一個(gè)模塊的扇入表明有多少個(gè)上級(jí)模塊直接調(diào)用它。扇入越大則說明共享該模塊的模塊數(shù)目越多,這是好的。但不能為追求高扇入違背模塊獨(dú)立原理。4.模塊的作用域應(yīng)該在控制域之內(nèi)

模塊的作用域:受該模塊內(nèi)一個(gè)判定影響的所有模塊的集合。模塊的控制域:該模塊本身以及所有直接或間接從屬于它的模塊的集合。

圖5.2模塊的作用域和控制域

在上圖中,若A的判定只影響B(tài),則是符合該規(guī)則的;但是,如果A的判定還影響到G,則就不符合該規(guī)則了,可有兩種方法:一是將判定點(diǎn)A上移到M中;另一種方式是將G移到A的下方。MAGBCDEF5.力爭降低模塊接口的復(fù)雜程度6.設(shè)計(jì)單入口單出口的模塊7.模塊功能應(yīng)該可以預(yù)測

如果一個(gè)模塊可以當(dāng)作一個(gè)黑盒子,即只要輸入的數(shù)據(jù)相同就產(chǎn)生同樣的輸出,這個(gè)模塊的功能就是可以預(yù)測的。系統(tǒng)輸入輸出編輯加標(biāo)題存儲(chǔ)檢索編目錄格式化添加刪除插入修改合并列表圖5.3正文加工系統(tǒng)的層次圖例子5.4描繪軟件結(jié)構(gòu)圖形工具

5.4.1層次圖和HIPO圖層次圖是用樹形結(jié)構(gòu)的一系列的矩形框描繪軟件的層次結(jié)構(gòu)。圖5.5結(jié)構(gòu)圖的例子——產(chǎn)生最佳解的一般結(jié)構(gòu)讀輸入編輯輸入顯示結(jié)果結(jié)果格式化產(chǎn)生最佳解得到好輸入計(jì)算最佳解輸出結(jié)果好輸入解好輸入解原始輸入編輯結(jié)果原始輸入格式化的解解格式化的解習(xí)題P141/習(xí)題6第三題畫出右側(cè)偽碼程序的程序流程圖和盒圖習(xí)題P141/習(xí)題6第四題P1P2(a)順序P1P2C(b)選擇P1P2PnX=L1L2Ln…(c)Case型多分支WhileCP(d)while型循環(huán)PUntilC(e)until型循環(huán)(f)語句標(biāo)號(hào)def(g)定義圖6.5PAD圖的基本符號(hào)

圖6.6使用PAD圖提供的定義功能來逐步求精的例子PAD圖補(bǔ)充例子:圖1流程圖abx1x5x2fx6cdex3x4ghix7x8j循環(huán)結(jié)構(gòu)分支結(jié)構(gòu)多分支結(jié)構(gòu)aUntil

X8bX1fX6Until

X7ighXiwhile

X5cdeX2X3X4j對(duì)應(yīng)的PAD圖如下示:循環(huán)體分支結(jié)構(gòu)多分支結(jié)構(gòu)順序結(jié)構(gòu)循環(huán)結(jié)構(gòu)規(guī)則

表6.1用判定表表示計(jì)算行李費(fèi)的算法6.3.5判定樹行李費(fèi)算法行李重量

W﹥30行李重量

W≤30免費(fèi)外國乘客國內(nèi)乘客頭等艙頭等艙

其他艙其他艙殘疾乘客殘疾乘客殘疾乘客殘疾乘客正常乘客正常乘客正常乘客正常乘客(W-30)×2(W-30)×4(W-30)×3(W-30)×6(W-30)×4(W-30)×8(W-30)×6(W-30)×12

圖6.7用判定樹表示計(jì)算行李費(fèi)的算法習(xí)題P142/習(xí)題6第七題由PDL翻譯成的流圖

7.3單元測試單元測試集中檢驗(yàn)軟件設(shè)計(jì)的最小單元-----模塊。單元測試可以使用白盒法,用詳細(xì)設(shè)計(jì)描述做指南,對(duì)重要的執(zhí)行通路進(jìn)行測試,以便發(fā)現(xiàn)模塊內(nèi)部的錯(cuò)誤。單元測試可以對(duì)多個(gè)模塊并行進(jìn)行。

7.4集成測試集成測試是組裝軟件的系統(tǒng)技術(shù),主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。集成測試過程漸增式非漸增式

非漸增式測試:先分別測試每個(gè)模塊,再把所有模塊按設(shè)計(jì)要求放在一起結(jié)合成所要的程序。

漸增式測試:把下一個(gè)要測試的模塊同已經(jīng)測試好的那些模塊結(jié)合起來進(jìn)行測試,測試完以后再把下一個(gè)應(yīng)該測試的模塊結(jié)合起來進(jìn)行測試。

7.5確認(rèn)測試確認(rèn)測試也稱為驗(yàn)收測試,它的目標(biāo)是驗(yàn)證軟件的有效性。驗(yàn)證,指的是保證軟件正確地實(shí)現(xiàn)了某個(gè)特定要求的一系列活動(dòng);確認(rèn)指的是為了保證軟件確實(shí)滿足了用戶需求而進(jìn)行的一系列活動(dòng)。什么是軟件有效性?如果軟件的功能和性能如同用戶所合理地期待的那樣,則軟件是有效的。補(bǔ)充:系統(tǒng)測試系統(tǒng)測試是把軟件、硬件和環(huán)境連在一起全面的測試。測試的內(nèi)容同被測試系統(tǒng)的特點(diǎn)有關(guān)。測試某個(gè)具體系統(tǒng)時(shí),可根據(jù)情況選擇下面其中的幾種:(1)功能測試(FunctionTesting)檢查系統(tǒng)是否真正實(shí)現(xiàn)了需求說明書描述的每一個(gè)功能。(2)容量測試(VolumeTesting)容量測試是讓系統(tǒng)經(jīng)受大數(shù)據(jù)量的考驗(yàn)。例如,讓編譯程序編譯一個(gè)特別長的源程序;讓連結(jié)程序連結(jié)成千個(gè)模塊。課堂練習(xí):課堂練習(xí):課堂練習(xí):7.8調(diào)試

測試本身的目的是盡可能多地暴露程序中的錯(cuò)誤,但是,發(fā)現(xiàn)錯(cuò)誤的最終目的還是為了改正錯(cuò)誤。在成功地測試之后,必須進(jìn)一步診斷和改正程序中的錯(cuò)誤,這就是調(diào)試的任務(wù)。調(diào)試過程由兩個(gè)步驟組成,它從表示程序中存在錯(cuò)誤的某些跡象開始,首先確定錯(cuò)誤的準(zhǔn)確位置,也就是找出是哪個(gè)模塊或哪些接口引起的錯(cuò)誤;然后,仔細(xì)研究這段代碼以確定問題的原因。其中第一個(gè)步驟所需工作量約占調(diào)試總工作量的95%。7.8.1調(diào)試過程

2.對(duì)象的定義(3)定義3:對(duì)象::=<ID,MS,DS,MI>。其中,ID是對(duì)象的標(biāo)識(shí)和名字,MS是對(duì)象的操作集合,DS是對(duì)象的數(shù)據(jù)結(jié)構(gòu),MI是對(duì)象受理的消息名集合(即對(duì)外接口)。這個(gè)定義是個(gè)形式化的定義。對(duì)象是封裝了數(shù)據(jù)結(jié)構(gòu)及可以施加在這些數(shù)據(jù)結(jié)構(gòu)上的操作的封裝體,這個(gè)封裝體有可以唯一的識(shí)別它的名字,而且向外界提供一組服務(wù)(即共有的操作)。9.2.2其他概念1.類(class)

類就是對(duì)具有相同數(shù)據(jù)和相同操作的一組相似對(duì)象的定義,也就是說,類是對(duì)具有相同屬性和行為的一個(gè)或多個(gè)對(duì)象的描述,通常在這種描述中也包括對(duì)怎樣創(chuàng)建該類的新對(duì)象的說明。2.實(shí)例實(shí)例就是由某個(gè)特定的類所描述的一個(gè)具體的對(duì)象。類是對(duì)具有相同屬性和行為的一組相似的對(duì)象的抽象。類是建立對(duì)象時(shí)使用的“樣板”,按照這個(gè)樣板所建立的一個(gè)個(gè)具體的對(duì)象,就是類的實(shí)際例子,通常稱為實(shí)例。3.消息消息就是要求某個(gè)對(duì)象執(zhí)行在定義它的那個(gè)類中所定義的某個(gè)操作的規(guī)格說明。通常,一個(gè)消息有下述3部分組成:接收消息的對(duì)象;消息選擇符(也稱為消息名);零個(gè)或多個(gè)變?cè)yCircle.Show(GREEN)4.方法(method)

方法就是對(duì)象所能執(zhí)行的操作,也就是類中所定義的服務(wù)。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論