




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
我國(guó)各大院校一般都把國(guó)內(nèi)外通用的權(quán)威教科書作為本科生和研張海藩所著的《軟件工程導(dǎo)論》(第6版,清華大學(xué)出版社)是我國(guó)高校采用較多的計(jì)算機(jī)1.整理名校筆記,濃縮內(nèi)容精華。在參考了國(guó)內(nèi)外名校名師講授張海藩《軟件工程導(dǎo)論》2.解析課后習(xí)題,提供詳盡答案。本書參考大量軟件工程導(dǎo)論相關(guān)資料對(duì)該教材的重難點(diǎn)課(章)后習(xí)題進(jìn)行了詳細(xì)的分析和解答,并對(duì)相關(guān)重要知識(shí)點(diǎn)進(jìn)行了延伸和歸納。要深深牢記:考研不同一般考試,概念題(名詞解釋)要當(dāng)作簡(jiǎn)答題來回答,簡(jiǎn)答題要當(dāng)作優(yōu)秀的論文(其實(shí)很多考研真題就是選自一篇專題論文),完全需要當(dāng)作論文來回答!計(jì)算機(jī)類()提供全國(guó)各高校計(jì)算機(jī)類專業(yè)考研考博輔導(dǎo)班【保過班、網(wǎng)授班、3D電子書、3D題庫等】、全套資料(歷年真題及答案、筆記講義等)、計(jì)算機(jī)類國(guó)內(nèi)外經(jīng)典教材1.互動(dòng)學(xué)習(xí):搖一搖,找學(xué)友,交友學(xué)習(xí)兩不誤頻、語音等形式),交友學(xué)習(xí)兩不誤;學(xué)習(xí)圈內(nèi)有學(xué)霸解答本書學(xué)習(xí)中的問題,并配有專職2.720度立體旋轉(zhuǎn):好用好玩的全新學(xué)習(xí)體驗(yàn)3.手機(jī)掃碼即可閱讀,精彩內(nèi)容,輕松分享掃碼即可在手機(jī)閱讀,隨處隨學(xué)??梢圆挥每?.質(zhì)量保證:每本e書都經(jīng)過圖書編輯隊(duì)伍多次反復(fù)修改,年年升級(jí)5.免費(fèi)升級(jí):更新并完善內(nèi)容,終身免費(fèi)升級(jí)6.功能強(qiáng)大:記錄筆記、答案遮擋等十大功能(1)知識(shí)點(diǎn)串聯(lián)列舉——相同知識(shí)點(diǎn)內(nèi)容列表呈現(xiàn),便于讀者記憶和復(fù)習(xí),舉一反三,觸(2)劃線添加筆記——使用顏色筆工具,劃一條線,寫筆記,提交糾錯(cuò)?!惊?dú)家推出】(3)答案遮擋——先看題后看答案,學(xué)習(xí)效果好。【獨(dú)家推出】(4)全文檢索輸入關(guān)鍵詞,本書相關(guān)內(nèi)容一覽無余?!惊?dú)家推出】7.多端并用:電腦手機(jī)平板等多平臺(tái)同步使用本書一次購(gòu)買,多端并用,可以在PC端(在線和下載)、手機(jī)(安卓和蘋果)、平板(安卓和蘋果)等多平臺(tái)同步使用。同一本書,使用不同終端登錄,可實(shí)現(xiàn)云同步,即更換不同()是一家為全國(guó)各類考試和專業(yè)課學(xué)習(xí)提供輔導(dǎo)方案【保過班、網(wǎng)授班、3D電子書、3D題庫】的綜合性學(xué)習(xí)型視頻學(xué)習(xí)網(wǎng)站,擁有近100種考試(含418個(gè)考試科目)、194種經(jīng)典教材(含英語、經(jīng)濟(jì)、管理、證券、金融等共16大類),合計(jì)近萬小時(shí)的面授班、網(wǎng)授于時(shí)間和水平,書中難免存有不足之處,敬請(qǐng)廣大讀者批評(píng)指正!詳情訪問:(計(jì)算機(jī)類)第1章軟件工程學(xué)概述1.1復(fù)習(xí)筆記1.2課后習(xí)題詳解第2章可行性研究第4章形式化說明技術(shù)4.1復(fù)習(xí)筆記4.2課后習(xí)題詳解5.2課后習(xí)題詳解7.1復(fù)習(xí)筆記8.2課后習(xí)題詳解第9章面向?qū)ο蠓椒▽W(xué)引論第10章面向?qū)ο蠓治?0.1復(fù)習(xí)筆記第11章面向?qū)ο笤O(shè)計(jì)第12章面向?qū)ο髮?shí)現(xiàn)第13章軟件項(xiàng)目管理第1章軟件工程學(xué)概述1.軟件危機(jī)的介紹(1)概念(2)典型表現(xiàn)件質(zhì)量保證技術(shù)(審查、復(fù)審、程序正確性證明和測(cè)試)還沒有堅(jiān)持不懈地應(yīng)用到軟件開發(fā)2.產(chǎn)生軟件危機(jī)的原因(1)客觀原因(2)主觀原因3.消除軟件危機(jī)的途徑(1)應(yīng)該對(duì)計(jì)算機(jī)軟件有一個(gè)正確的認(rèn)識(shí)。應(yīng)該徹底消除在計(jì)算機(jī)系統(tǒng)早期發(fā)展階段形成(2)應(yīng)該充分認(rèn)識(shí)到軟件開發(fā)是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完成(3)應(yīng)該推廣使用在實(shí)踐中總結(jié)出來的開發(fā)軟件的成功的技術(shù)和方法,并且研究探索更好(4)應(yīng)該開發(fā)和使用更好的軟件工具。在軟件開發(fā)的每個(gè)階段都有許多繁瑣重復(fù)的工作需1.軟件工程的介紹(1)概念(2)產(chǎn)生為了更有效地開發(fā)與維護(hù)軟件,軟件工作者在20世紀(jì)60年代后期開始認(rèn)真研究消除軟件危機(jī)的途徑,從而逐漸形成了一門新興的工程學(xué)科—計(jì)算機(jī)軟件工程學(xué)((3)本質(zhì)特征⑦軟件工程領(lǐng)域由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品2.軟件工程的基本原理(1)七條基本原理a.一切有關(guān)修改軟件的建議,特別是涉及對(duì)基準(zhǔn)配置的修改建議,都必須按照嚴(yán)格的規(guī)程b.絕對(duì)不能誰想修改軟件(包括尚在開發(fā)過程中的軟件),就隨意進(jìn)行修改。(2)意義3.軟件工程方法學(xué)(1)概念(2)三要素軟件工程方法學(xué)包括3個(gè)要素:方法、工具和過程。(3)傳統(tǒng)方法學(xué)(生命周期方法學(xué)或結(jié)構(gòu)化范型)采用結(jié)構(gòu)化技術(shù)(結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)和結(jié)構(gòu)化實(shí)現(xiàn))來完成軟件開發(fā)的各項(xiàng)任務(wù),并②開發(fā)步驟a.從對(duì)問題的抽象邏輯分析開始,一個(gè)階段一個(gè)階段地順序進(jìn)行開發(fā)。b.前一個(gè)階段任務(wù)的完成是開始進(jìn)行后一個(gè)階段工作的前提和基礎(chǔ),而后一階段任務(wù)的完c.每一個(gè)階段的開始和結(jié)束都有嚴(yán)格標(biāo)準(zhǔn),對(duì)于任何兩個(gè)相鄰的階段而言,前一階段的結(jié)d.在每一個(gè)階段結(jié)束之前都必須進(jìn)行正式嚴(yán)格的技術(shù)審查和管理復(fù)審,從技術(shù)和管理兩個(gè)③優(yōu)點(diǎn)a.把軟件生命周期劃分成若干個(gè)階段,每個(gè)階段的任務(wù)相對(duì)獨(dú)立,而且比較簡(jiǎn)單,便于不b.在軟件生命周期的每個(gè)階段都采用科學(xué)的管理技術(shù)和良好的技術(shù)方法,且在每個(gè)階段結(jié)④缺點(diǎn)a.當(dāng)軟件規(guī)模龐大,或者對(duì)軟件的需求是模糊的或會(huì)隨時(shí)間變化而變化的時(shí)候,傳統(tǒng)方法b.結(jié)構(gòu)化范型技術(shù)要么面向行為,要么面向數(shù)據(jù),沒有既面向數(shù)據(jù)又面向行為的結(jié)構(gòu)化技(4)面向?qū)ο蠓椒▽W(xué)③要點(diǎn)a.把對(duì)象作為融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為的統(tǒng)一的軟件構(gòu)件b.把所有對(duì)象都劃分成類c.繼承性d.對(duì)象彼此間僅能通過發(fā)送消息互相聯(lián)系a.傳統(tǒng)方法學(xué)強(qiáng)調(diào)自頂向下順序地完成軟件開發(fā)的各階b.用面向?qū)ο蠓椒▽W(xué)開發(fā)軟件的過程,是一個(gè)主動(dòng)地多次反復(fù)迭代的演化過程。面向?qū)ο蠓椒ㄔ诟拍詈捅硎痉椒ㄉ系囊恢滦?,保證了在各項(xiàng)開發(fā)活動(dòng)之間的平滑(即無縫)過渡。⑤優(yōu)點(diǎn)b.提高了軟件的可理解性;d.提高了軟件的可重用性。軟件生命周期由軟件定義、軟件開發(fā)和運(yùn)行維護(hù)(也稱為軟件維護(hù))3個(gè)時(shí)期組成,每個(gè)時(shí)(1)軟件定義軟件定義時(shí)期通常進(jìn)一步劃分成3個(gè)階段,即問題定義、可行性(2)軟件開發(fā)通常由下述4個(gè)階段組成:總體設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼和單元測(cè)試,(3)運(yùn)行和維護(hù)2.軟件生命周期各階段的基本任務(wù)。(1)問題定義(2)可行性研究(3)需求分析(3)表示需求規(guī)格說明書(SRS)。(4)總體設(shè)計(jì)(概要設(shè)計(jì))(5)詳細(xì)設(shè)計(jì)(模塊設(shè)計(jì))(6)編碼和單元測(cè)試(7)綜合測(cè)試a.集成測(cè)試是根據(jù)設(shè)計(jì)的軟件結(jié)構(gòu),把經(jīng)過單元測(cè)試檢驗(yàn)的模塊按某種選定的策略裝配起b.驗(yàn)收測(cè)試則是按照軟件需求規(guī)格說明書的規(guī)定,由用戶對(duì)目標(biāo)系統(tǒng)進(jìn)行驗(yàn)收。(8)軟件維護(hù)(1)定義做什么事(what)以及怎樣(how)做這些事以實(shí)現(xiàn)某一個(gè)特定的具體目標(biāo)。在完成開發(fā)任(2)構(gòu)成使用生命周期模型簡(jiǎn)潔地描述軟件過程。生命周期模型(過程模型)規(guī)定了把生命周期劃分成哪些階段及各個(gè)階段的執(zhí)行順序。2.典型軟件過程模型(1)瀑布模型在20世紀(jì)80年代之前,瀑布模型一直是唯一被廣泛采用的生命周期模型,現(xiàn)在它仍然是軟件工程中應(yīng)用得最廣泛的過程模型。傳統(tǒng)軟件工程方法學(xué)的軟件過程,基本上可以用瀑布模型來描述。①傳統(tǒng)的瀑布模型傳統(tǒng)軟件工程方法學(xué)的軟件過程,基本上可以用瀑布模型來描述,如圖1-1所示為傳統(tǒng)的瀑布模型。需求分析需求分析驗(yàn)證規(guī)格說明驗(yàn)證設(shè)計(jì)驗(yàn)證編碼測(cè)試綜合測(cè)試維護(hù)圖1-1傳統(tǒng)的瀑布模型第一,階段間具有順序性和依賴性必須等前一階段的工作完成之后,才能開始后一階段的工作;前一階段的輸出文檔是后一階段的輸入文檔,即只有前一階段的輸出文檔正確,后一階段的工作才能獲得正確的結(jié)果。第二,推遲實(shí)現(xiàn)的觀點(diǎn)瀑布模型在編碼之前設(shè)置了系統(tǒng)分析與系統(tǒng)設(shè)計(jì)的各個(gè)階段,分析與設(shè)計(jì)階段的基本任務(wù)規(guī)定,在這兩個(gè)階段主要考慮目標(biāo)系統(tǒng)的邏輯模型,不涉及軟件的物理實(shí)現(xiàn)。清楚地區(qū)分邏輯設(shè)計(jì)與物理設(shè)計(jì),盡可能推遲程序的物理實(shí)現(xiàn),是按照瀑布模型開發(fā)軟件的一條重要的指導(dǎo)思想。第三,質(zhì)量保證的觀點(diǎn)為了保證所開發(fā)的軟件的質(zhì)量,在瀑布模型的每個(gè)階段都必須完成規(guī)定的文檔,沒有交出合格的文檔就是沒有完成該階段的任務(wù)。完整、準(zhǔn)確的合格文檔不僅是軟件開發(fā)時(shí)期各類人員之間相互通信的媒介,也是運(yùn)行時(shí)期對(duì)軟件進(jìn)行維護(hù)的重要依據(jù)。越是早期階段犯下的錯(cuò)誤,暴露出來的時(shí)間就越晚,排除故障改正錯(cuò)誤所需付出的代價(jià)也越高。因此,及時(shí)審查,是保a.定義圖1-2實(shí)際的瀑布模型b.優(yōu)點(diǎn)(2)快速原型模型能完成的功能的一個(gè)子集。如圖1-3所示(圖中實(shí)線箭頭表示開發(fā)過程,虛線箭頭表示維護(hù)過程)??焖僭偷谋举|(zhì)是“快速”。UNIXShell、超文本、第四代語言(4GL)都是廣泛使用的快速原型語言。圖1-3快速原型模型②原理快速原型模型的第一步是快速建立一個(gè)能反映用戶主要需求的原型系統(tǒng),讓用戶通過實(shí)踐來了解目標(biāo)系統(tǒng)的概貌。通常,用戶試用原型系統(tǒng)之后會(huì)提出許多修改意見,開發(fā)人員按照用戶的意見快速地修改原型系統(tǒng),然后再次請(qǐng)用戶試用,一旦用戶認(rèn)為這個(gè)原型系統(tǒng)確實(shí)能做他們所需要的工作,開發(fā)人員便可據(jù)此書寫規(guī)格說明文檔,根據(jù)這份文檔開發(fā)出的軟件便可以滿足用戶的真實(shí)需求。③優(yōu)點(diǎn)快速原型模型是不帶反饋環(huán)的,這正是這種過程模型的主要優(yōu)點(diǎn),即軟件產(chǎn)品的開發(fā)基本上是線性順序進(jìn)行的。能基本上做到線性順序開發(fā)的主要原因如下:a.原型系統(tǒng)已經(jīng)通過與用戶交互而得到驗(yàn)證,產(chǎn)生的規(guī)格說明文檔正確地描述了用戶需求。因此,在開發(fā)過程的后續(xù)階段不會(huì)因?yàn)榘l(fā)現(xiàn)了規(guī)格說明文檔的錯(cuò)誤而進(jìn)行較大的返工。b.開發(fā)人員通過建立原型系統(tǒng)已經(jīng)學(xué)到了許多東西。因此,在設(shè)計(jì)和編碼階段發(fā)生錯(cuò)誤的可能性也比較小,減少了在后續(xù)階段需要改正前面階段所犯錯(cuò)誤的可能性。(3)增量模型①原理增量模型也稱為漸增模型,如圖1-4所示。使用增量模型開發(fā)軟件時(shí),把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計(jì)、編碼、集成和測(cè)試。每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠完成特定的功能。使用增量模型時(shí),第一個(gè)增量構(gòu)件往往實(shí)現(xiàn)軟件的基本需求,提供最核心的功能。把軟件產(chǎn)品分解成增量構(gòu)件時(shí),應(yīng)該使構(gòu)件的規(guī)模適中。分解時(shí)唯一必須遵守的約束條件是:當(dāng)把新構(gòu)件集成到現(xiàn)有軟件中時(shí),所形成的產(chǎn)品必須是可測(cè)試的。圖1-4增量模型③優(yōu)點(diǎn)a.能在較短時(shí)間內(nèi)向用戶提交可完成部分工b.逐步增加產(chǎn)品功能可以使用戶有較充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品,減少了一個(gè)全新的軟a.在把每個(gè)新的增量構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)中時(shí),必須不破壞原來已經(jīng)開發(fā)出的產(chǎn)b.增量模型本身是自相矛盾的。它一方面要求開發(fā)人員把軟件看作一個(gè)整體,另一方面又圖1-5是一種風(fēng)險(xiǎn)更大的增量模型。用這種方式開發(fā)軟件,不同的構(gòu)件將并行地構(gòu)建,因此圖1-5風(fēng)險(xiǎn)更大的增量模型(4)螺旋模型前都增加了風(fēng)險(xiǎn)分析過程的快速原型模型,如圖1-6所示。圖1-6簡(jiǎn)化的螺旋模型完整的螺旋模型如圖1-7所示。圖中帶箭頭的點(diǎn)劃線的長(zhǎng)度代表當(dāng)圖1-7完整的螺旋模型③應(yīng)用④優(yōu)點(diǎn)a.對(duì)可選方案和約束條件的強(qiáng)調(diào)有利于已有軟件的重用,有助于把軟件質(zhì)量作為軟件開發(fā)b.減少了過多測(cè)試(浪費(fèi)資金)或測(cè)試不足(產(chǎn)品故障多)所帶來的風(fēng)險(xiǎn);c.在螺旋模型中維護(hù)只是模型的另一個(gè)周期,在維⑤缺點(diǎn)(5)噴泉模型無縫過渡。圖中在一個(gè)階段內(nèi)的向下箭頭代表該階段內(nèi)的迭代(或求精)。圖中較小的圓圈圖1-8噴泉模型③要求(6)Rational統(tǒng)一過程Rational統(tǒng)一過程(RationalUnifiedProcess,RUP)是由Rational軟件公司推出的一種完整a.迭代式開發(fā)i.迭代式開發(fā)允許在每次迭代過程中需求都可以有變化,這種開發(fā)方法通過一系列細(xì)化來ii.采用迭代式開發(fā)方法,每個(gè)迭代過程以完成可執(zhí)行版本結(jié)束,這不僅使最終用戶可以不b.管理需求RUP描述了如何提取、組織系統(tǒng)的功能性需求和約束條件并把它們文檔化。使用用例和腳c.使用基于構(gòu)件的體系結(jié)構(gòu)件組成,因此構(gòu)件使軟件重用成為可能。RUP提供了d.可視化建模e.驗(yàn)證軟件質(zhì)量f.控制軟件變更②RUP軟件開發(fā)生命周期RUP軟件開發(fā)生命周期是一個(gè)二維的生命周期模型,如圖1-9所示。圖中縱軸代表核心工作RUP中有九個(gè)核心工作流,前三個(gè)為核心過程工作流程,a.業(yè)務(wù)建模:了解使用目標(biāo)系統(tǒng)的機(jī)構(gòu)及其商業(yè)運(yùn)作,評(píng)估系統(tǒng)對(duì)使用它的機(jī)構(gòu)的影響。b.需求:捕獲客戶的需求,并且使開發(fā)人員和用戶達(dá)成對(duì)需求描述的共識(shí)。c.分析與設(shè)計(jì):把需求分析的結(jié)果轉(zhuǎn)化成分析模型與設(shè)計(jì)模型。d.實(shí)現(xiàn):把設(shè)計(jì)模型轉(zhuǎn)換成實(shí)現(xiàn)結(jié)果,形式化地定義代碼結(jié)構(gòu),用構(gòu)件實(shí)現(xiàn)類和對(duì)象,對(duì)e.測(cè)試:檢查各個(gè)子系統(tǒng)的交互與集成,驗(yàn)證所有需求是否都被正確地實(shí)現(xiàn)了,識(shí)別、確f.部署:成功地生成目標(biāo)系統(tǒng)的可運(yùn)行的g.配置與變更管理:跟蹤并維護(hù)在軟件開發(fā)過程中產(chǎn)生的所有制品的完整性和一致性。h.項(xiàng)目管理:提供項(xiàng)目管理框架,為軟件開發(fā)項(xiàng)目制定計(jì)劃、人員配備、執(zhí)行和監(jiān)控等方i.環(huán)境:向軟件開發(fā)機(jī)構(gòu)提供軟件開發(fā)環(huán)境,包括過程管理和工具支持。RUP把軟件生命周期劃分成4個(gè)連續(xù)的階段。每個(gè)階段都有明確的目標(biāo),并且定義了用來定,要么中止該項(xiàng)目,要么重做該階段的工作。這4個(gè)階段的工作目標(biāo)如下。a.初始階段:建立業(yè)務(wù)模型,定義最終產(chǎn)品視圖,并且確定項(xiàng)目的范圍。b.精化階段:設(shè)計(jì)并確定系統(tǒng)的體系結(jié)構(gòu),制定項(xiàng)目計(jì)劃,確定資源需求。c.構(gòu)建階段:開發(fā)出所有構(gòu)件和應(yīng)用程序,把它們集成為客戶需要的產(chǎn)品,并且詳盡地測(cè)⑤RUP迭代式開發(fā)RUP強(qiáng)調(diào)采用迭代和漸增的方式來開發(fā)軟件,整個(gè)項(xiàng)目開發(fā)過程由多個(gè)迭代過程組成。在等工作,每次迭代都是在系統(tǒng)已完成部分的基礎(chǔ)上進(jìn)行的,每次給系統(tǒng)增加些N的功能,b.特點(diǎn)域,開發(fā)著或大或小的項(xiàng)目,這表明了RUP的多功能性和廣泛適用性。(7)敏捷過程敏捷過程能夠較好地適應(yīng)商業(yè)競(jìng)爭(zhēng)環(huán)境下對(duì)小型項(xiàng)目提出的有限(8)極限編程a.客戶作為開發(fā)團(tuán)隊(duì)的成員b.使用用戶素材c.短交付周期每?jī)芍芡瓿梢淮蔚牡^程實(shí)現(xiàn)了用戶的一些需求,d.驗(yàn)收測(cè)試e.結(jié)對(duì)編程f.測(cè)試驅(qū)動(dòng)開發(fā)g.集體所有h.持續(xù)集成極限編程主張?jiān)谝惶熘畠?nèi)多次集成系統(tǒng),而且隨著需求i.可持續(xù)的開發(fā)速度開發(fā)人員以能夠長(zhǎng)期維持的速度努力工作。XP規(guī)定開發(fā)人員每周工作時(shí)間不超過40小時(shí),j.開放的工作空間XP項(xiàng)目的全體參與者(開發(fā)人員、客戶等)一起在一個(gè)開放的場(chǎng)所中工作,項(xiàng)目組成員在k.及時(shí)調(diào)整計(jì)劃1.簡(jiǎn)單的設(shè)計(jì)m.重構(gòu)n.使用隱喻圖1-10描述了極限編程的整體開發(fā)過程。具體開發(fā)過程如下:b.項(xiàng)目組在隱喻和用戶故事的基礎(chǔ)上,根據(jù)客戶設(shè)定的優(yōu)先級(jí)制訂交付計(jì)劃;c.開始多個(gè)迭代過程,在迭代期內(nèi)產(chǎn)生的新用戶故事不在本次迭代內(nèi)解決,以保證本次開a.項(xiàng)目組根據(jù)交付計(jì)劃和項(xiàng)目速率,選擇需要優(yōu)先完成的用戶故事或待消除的差錯(cuò),將其分解成可在1~2天內(nèi)完成的任務(wù),制訂出本次迭代計(jì)劃;c.進(jìn)行代碼共享式的開發(fā)工作。所開發(fā)出的新功能必須100%通過單元測(cè)試,并且立即進(jìn)行d.開發(fā)人員與客戶代表交流此次代碼共享式編程的情況,討論所發(fā)現(xiàn)的問題,提出新的用圖1-11描述了極限編程的迭代開發(fā)過程。⑤特點(diǎn)a.極限編程為代表的敏捷過程,具有對(duì)變化和不確定性的更快速、更敏捷b.在快速的同時(shí)仍然能夠保持可持續(xù)的開發(fā)速度。(9)微軟過程a.項(xiàng)目計(jì)劃應(yīng)該兼顧未來的不確定因素。b.用有效的風(fēng)險(xiǎn)管理來減少不確定因素的影響。c.經(jīng)常生成并快速地測(cè)試軟件的過渡版本,從而提高產(chǎn)品的穩(wěn)定性和可預(yù)測(cè)性。d.采用快速循環(huán)、遞進(jìn)的開發(fā)過程。e.用創(chuàng)造性的工作來平衡產(chǎn)品特性和產(chǎn)品成本。g.使用小型項(xiàng)目組并發(fā)地完成開發(fā)工作。h.在項(xiàng)目早期把軟件配置項(xiàng)基線化,項(xiàng)目后期則凍結(jié)產(chǎn)品。i.使用原型驗(yàn)證概念,對(duì)項(xiàng)目進(jìn)行早期論證。j.把零缺陷作為追求的目標(biāo)。k.里程碑評(píng)審會(huì)的目的是改進(jìn)工作,切忌相互指責(zé)。②微軟軟件生命周期微軟過程把軟件生命周期劃分成五個(gè)階段,圖1-12描繪了生命周期的階段及每個(gè)階段的主圖1-12微軟軟件生命周期階段劃分和主要里程碑a(chǎn).規(guī)劃階段b.設(shè)計(jì)階段當(dāng)項(xiàng)目團(tuán)隊(duì)已經(jīng)確定了70%以上的產(chǎn)品需求時(shí),開發(fā)工作就可以進(jìn)入設(shè)計(jì)階段了,主要工c.開發(fā)階段d.穩(wěn)定階段e.發(fā)布階段圖1-13描繪了微軟過程的生命周期模型。微軟過程的每一個(gè)生命周期發(fā)布一個(gè)遞進(jìn)的軟件圖1-13微軟過程的生命周期模型b.特點(diǎn)第二,微軟過程也有某些不足之處,例如,對(duì)方法、工具和產(chǎn)品等方面的論述不如RUP和過程與RUP和敏捷過程結(jié)合起來,取長(zhǎng)補(bǔ)短.針對(duì)不同項(xiàng)目的具體情況進(jìn)行定制。1.什么是軟件危機(jī)?它有哪些典型表現(xiàn)?為什么會(huì)出現(xiàn)軟件危機(jī)?答:(1)軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。軟件(2)軟件危機(jī)的典型表現(xiàn):③軟件產(chǎn)品的質(zhì)量往往靠不??;④軟件常常是不可維護(hù)的;⑤軟件通常沒有適當(dāng)?shù)奈臋n資料;⑥軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升;⑦軟件開發(fā)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢(shì)。(3)軟件危機(jī)出現(xiàn)的原因:①軟件是計(jì)算機(jī)系統(tǒng)中的邏輯部件而不是物理部件;②軟件顯著特點(diǎn)是規(guī)模龐大;③對(duì)軟件開發(fā)和維護(hù)還有不少糊涂觀念,采用了錯(cuò)誤的方法和技術(shù);④存在與軟件開發(fā)和維護(hù)有關(guān)的許多錯(cuò)誤認(rèn)識(shí)和做法;⑤對(duì)用戶要求沒有完整準(zhǔn)確的認(rèn)識(shí)就匆忙著手編寫程序;⑥一個(gè)軟件從定義、開發(fā)、使用和維護(hù),直到最終被廢棄,要經(jīng)歷一個(gè)漫長(zhǎng)的時(shí)期;⑦一個(gè)軟件產(chǎn)品必須由一個(gè)完整的配置組成,要包括程序、文檔和數(shù)據(jù)等成分;⑧在軟件開發(fā)的不同階段進(jìn)行修改需要付出的代價(jià)是很不相同的;⑨輕視維護(hù)。2.假設(shè)自己是一家軟件公司的總工程師,當(dāng)把圖1-14給手下的軟件工程師們觀看,告訴他們及早發(fā)現(xiàn)并改正錯(cuò)誤的重要性時(shí),有人不同意這個(gè)觀點(diǎn),認(rèn)為要求在錯(cuò)誤進(jìn)入軟件之前就清除它們是不現(xiàn)實(shí)的,并舉例說:“如果一個(gè)故障是編碼錯(cuò)誤造成的,那么,一個(gè)人怎么能在設(shè)計(jì)階段清除它呢?”應(yīng)該怎么反駁他?圖1-14引人同一變動(dòng)付出的代價(jià)隨時(shí)間變化的趨勢(shì)答:可以從以下兩方面來反駁他:(1)在軟件開發(fā)的不同階段進(jìn)行修改需要付出的代價(jià)是很不相同的,在早期引入變動(dòng),涉及的面較少,因而代價(jià)也比較低;而在開發(fā)的中期,軟件配置的許多成分已經(jīng)完成,引入一個(gè)變動(dòng)要對(duì)所有已完成的配置成分都做相應(yīng)的修改,不僅工作量大,而且邏輯上也更復(fù)雜,因此付出的代價(jià)劇增。(2)在軟件“已經(jīng)完成”時(shí)再引入變動(dòng),當(dāng)然需要付出更高的代價(jià)。在后期引入一個(gè)變動(dòng)比在早期引入相同變動(dòng)所需付出的代價(jià)高2~3個(gè)數(shù)量級(jí)。3.什么是軟件工程?它有哪些本質(zhì)特性?怎樣用軟件工程消除軟件危機(jī)?答:(1)軟件工程定義:軟件工程是是從管理和技術(shù)兩方面研究如何更好地開發(fā)和維護(hù)計(jì)算機(jī)軟件的一門新興學(xué)科。采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它,這就是軟件工程。(2)軟件工程本質(zhì)特征:①軟件工程關(guān)注于大型程序的構(gòu)造;②軟件工程的中心課題是控制復(fù)雜性;③軟件經(jīng)常變化;④開發(fā)軟件的效率非常重要;⑤和諧地合作是開發(fā)軟件的關(guān)鍵;⑥軟件必須有效地支持它的用戶;⑦由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品。(3)消除軟件危機(jī)的方法:①應(yīng)該對(duì)計(jì)算機(jī)軟件有一個(gè)正確的認(rèn)識(shí);②應(yīng)該充分認(rèn)識(shí)到軟件開發(fā)是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完成的工③應(yīng)該推廣使用在實(shí)踐中總結(jié)出來的開發(fā)軟件的成功的技術(shù)和方法,并且研究探索更好更有效的技術(shù)和方法;④應(yīng)該開發(fā)和使用更好的軟件工具。4.簡(jiǎn)述結(jié)構(gòu)化范型和面向?qū)ο蠓缎偷囊c(diǎn),并分析它們的優(yōu)缺點(diǎn)。答:(1)結(jié)構(gòu)化范型①要點(diǎn)結(jié)構(gòu)化范型屬于傳統(tǒng)方法學(xué)。傳統(tǒng)的軟件開發(fā)方法大部分采用瀑布模型。這種模型要求每一階段都以前一階段形成的文檔為基礎(chǔ)完成工作。每一階段將要完成時(shí),都要求開發(fā)人員進(jìn)行驗(yàn)證或確認(rèn)。②優(yōu)點(diǎn)把軟件生命周期劃分成基干個(gè)階段,每個(gè)階段的任務(wù)相對(duì)獨(dú)立,而且比較簡(jiǎn)單,便于不同人員分工協(xié)作,從而降低了整個(gè)軟件開發(fā)過程的困難程度。③缺點(diǎn)當(dāng)軟件規(guī)模龐大時(shí),或者對(duì)軟件的需求是模糊的或會(huì)承受時(shí)間而變化時(shí),開發(fā)出的軟件往往不成功;而且維護(hù)起來仍然很困難。(2)面向?qū)ο蠓缎廷僖c(diǎn)a.軟件中的任何元素都是對(duì)象,復(fù)雜的軟件對(duì)象由簡(jiǎn)單的軟件對(duì)象組合而成。b.所有對(duì)象劃分成各種對(duì)象類,每個(gè)對(duì)象都定義了一組數(shù)據(jù)和一組方法。c.按照子類和父類的關(guān)系,把若干個(gè)對(duì)象類組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)。d.對(duì)象彼此之間僅能通過傳遞消息互相聯(lián)系。②優(yōu)點(diǎn)a.按照人類習(xí)慣的思維方法,對(duì)軟件開發(fā)過程所有階段進(jìn)行綜合考慮。b.軟件生存期各階段所使用的方法、技術(shù)具有高度的連續(xù)性。c.軟件開發(fā)各個(gè)階段有機(jī)集成,有利于系統(tǒng)的穩(wěn)定性。5.根據(jù)歷史數(shù)據(jù)可以進(jìn)行如下的假設(shè)。對(duì)計(jì)算機(jī)存儲(chǔ)容量的需求大致按下面公式描述的趨存儲(chǔ)器的價(jià)格按下面公式描述的趨勢(shì)逐年下降:如果計(jì)算機(jī)字長(zhǎng)為16位,則存儲(chǔ)器價(jià)格下降的趨勢(shì)為:P?=0.048×0.72Y-197(美元/字)在上列公式中y代表年份,M是存儲(chǔ)容量(字?jǐn)?shù)),(1)在1985年對(duì)計(jì)算機(jī)存儲(chǔ)容量的需求估計(jì)是多少?如果字長(zhǎng)為16位,這個(gè)存儲(chǔ)器的價(jià)格(2)假設(shè)在1985年一名程序員每天可開發(fā)出10條指令,程序員的平均工資是每月4000(3)假設(shè)在1995年存儲(chǔ)器字長(zhǎng)為32位,一名程序員每天可開發(fā)出30條指令,程序員的月平均工資為6000美元,重復(fù)(1)、(2)題。答:(1)在1985年對(duì)計(jì)算機(jī)存儲(chǔ)容量的需求,估計(jì)是:如果字長(zhǎng)為16位,則這個(gè)存儲(chǔ)器的價(jià)格是:(2)如果一條指令的長(zhǎng)度為一個(gè)字,則使存儲(chǔ)器裝滿程序共需4474263條指令。如果每月有20個(gè)工作日,則每人每月可開發(fā)200條指令。需要的工作量是:4474263/200=22371(人月)程序員的月平均工資是4000美元,開發(fā)出4474263條指令的成本是:22371*4000=8948400(美元)(3)在1995年對(duì)存儲(chǔ)容量的需求估計(jì)為:如果字長(zhǎng)為32位,則這個(gè)存儲(chǔ)器的價(jià)格是:如果一條指令的長(zhǎng)度為一個(gè)字,則使存儲(chǔ)器裝滿程序共需73577679條指令。如果每月有20個(gè)工作日,則每人每月可開發(fā)600條指令。需要的工作量是:73577679/600=122629(人月)122629*6000=735776790(美元)6.什么是軟件過程?它與軟件工程方法學(xué)有何關(guān)系?答:(1)軟件過程是為了開發(fā)出高質(zhì)量的軟件產(chǎn)品所需完成的一系列任務(wù)的框架,它規(guī)定7.什么是軟件生命周期模型?試比較瀑布模型、快速原型答:(1)瀑布模型①優(yōu)點(diǎn)b.嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔;c.要求每個(gè)階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細(xì)驗(yàn)證;d.對(duì)文檔的約束,使軟件維護(hù)變得容易一些,且能降低軟件預(yù)算。a.開發(fā)過程一般不能逆轉(zhuǎn),否則代價(jià)太大;b.實(shí)際的項(xiàng)目開發(fā)很難嚴(yán)格按該模型進(jìn)行;c.客戶往往很難清楚地給出所有的需求;d.軟件的實(shí)際情況必須到項(xiàng)目開發(fā)的后期客戶才能看到。③適用范圍a.用戶的需求非常清楚全面,且在開發(fā)過程中沒d.開發(fā)工作對(duì)用戶參與的要求很低。(2)快速原型模型①優(yōu)點(diǎn)a.可以得到比較良好的需求定義,容易適應(yīng)b.有利于開發(fā)與培訓(xùn)的同步;c.開發(fā)費(fèi)用低、開發(fā)周期短且對(duì)用戶更友好。②缺點(diǎn)b.準(zhǔn)確的原型設(shè)計(jì)比較困難;c.不利于開發(fā)人員的創(chuàng)新。b.項(xiàng)目招投標(biāo)時(shí),可以以原型模型作為軟件的開發(fā)模型;c.進(jìn)行產(chǎn)品移植或升級(jí)時(shí),或?qū)σ延挟a(chǎn)品原型進(jìn)行客戶化工作時(shí)。(3)增量模型①優(yōu)點(diǎn)b.逐步增加功能,減少了全新的軟件可能給客戶組織帶來的沖擊。②缺點(diǎn)a.并行開發(fā)構(gòu)件有可能遇到不能集成的風(fēng)險(xiǎn),軟件必須具備開放式的體系結(jié)構(gòu);b.增量模型的靈活性很容易退化為邊做邊改模型,從而是軟件過程的控制失去整體性。c.對(duì)所開發(fā)的領(lǐng)域比較熟悉而且已有原型系統(tǒng)。(4)螺旋模型①優(yōu)點(diǎn)c.在螺旋模型中維護(hù)只是模型的另一個(gè)周期,在維護(hù)和開發(fā)之間并沒有本質(zhì)區(qū)別。②缺點(diǎn)a.需要豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專門知識(shí),如果未能夠及b.過多的迭代次數(shù)會(huì)增加開發(fā)成本,延遲提交時(shí)間。8.為什么說噴泉模型較好地體現(xiàn)了面向?qū)ο筌浖_發(fā)過程無縫和迭代的特性?一個(gè)階段內(nèi)的向下箭頭代表該階段內(nèi)的迭代(或求精)。9.試討論Rational統(tǒng)一過程的優(yōu)缺點(diǎn)。(2)缺點(diǎn)RUP只是一個(gè)開發(fā)過程,并沒有涵蓋軟件過程的全部?jī)?nèi)容,例如它缺少關(guān)于軟件運(yùn)行和支答:Rational統(tǒng)一過程(RUP)系統(tǒng)增加些N的功能,如此循環(huán)往復(fù)地進(jìn)行下去,直至完成最終項(xiàng)目。它適用于大型的需11.說明敏捷過程的適用范圍。12.說明微軟過程的適用范圍。第2章可行性研究1.可行性研究的目的2.可行性研究的任務(wù)(1)對(duì)以后的行動(dòng)方針提出建議。如果問題沒有可行的解,分析員應(yīng)該建議停止這項(xiàng)開發(fā)(2)必須分析幾種主要的候選解法的利弊,從而判斷原定的系統(tǒng)目標(biāo)和規(guī)模是否現(xiàn)實(shí),系(3)對(duì)每種可能的解決方案都應(yīng)該仔細(xì)研究它的可行性,通常,至少?gòu)南率鋈齻€(gè)方面研究3.可行性研究過程(1)復(fù)查系統(tǒng)規(guī)模和目標(biāo)(2)研究目前正在使用的系統(tǒng)個(gè)系統(tǒng)可以做什么,為什么這樣做,還要了解使用這個(gè)系統(tǒng)的代價(jià)。(3)導(dǎo)出新系統(tǒng)的高層邏輯模型的邏輯模型,設(shè)想目標(biāo)系統(tǒng)的邏輯模型,最后根據(jù)目(4)進(jìn)一步定義問題法呢?分析員應(yīng)該和用戶一起再次復(fù)查問題定義、工程規(guī)模和目標(biāo),這次復(fù)查應(yīng)該把數(shù)據(jù)流(5)導(dǎo)出和評(píng)價(jià)供選擇的解法分析員應(yīng)該從他建議的系統(tǒng)邏輯模型出發(fā),導(dǎo)出若干個(gè)較高層次的(較抽象的)物理解法供(6)推薦行動(dòng)方針根據(jù)可行性研究結(jié)果應(yīng)該決定的一個(gè)關(guān)鍵性問題是:是否繼續(xù)進(jìn)行這(7)草擬開發(fā)計(jì)劃開發(fā)人員(例如,系統(tǒng)分析員、程序員)和各種資源(計(jì)算機(jī)硬件、軟件工具等)的需要情本。最后應(yīng)該給出下一個(gè)階段(需求分析)的詳細(xì)進(jìn)度表和成本估計(jì)。(8)書寫文檔提交審查。2.基本思想系統(tǒng)流程圖的基本思想是用圖形符號(hào)以黑盒子形式描繪組成系統(tǒng)的每個(gè)部件(程序、文檔、數(shù)據(jù)庫、人工過程等)。系統(tǒng)流程圖表達(dá)的是數(shù)據(jù)在系統(tǒng)各部件之3.符號(hào)(1)以概括的方式抽象地描繪實(shí)際系統(tǒng)時(shí),使用圖2-1中列出的基本符號(hào)就足夠了。圖2-1基本符號(hào)(2)需要更具體地描繪一個(gè)物理系統(tǒng)時(shí),還需要使用圖2-2中列出的系統(tǒng)符號(hào)。圖2-2系統(tǒng)符號(hào)4.實(shí)例分析例1:件和產(chǎn)生訂貨報(bào)告的任務(wù)。零件庫存量的每一次變化稱為一個(gè)事務(wù),由放在倉(cāng)庫中的CRT輯路徑(信息流動(dòng)路徑)。5.分層1.概念(1)定義受的變換。(2)特點(diǎn)2.符號(hào)(1)表示a.正方形(或立方體):表示數(shù)據(jù)的源點(diǎn)或終點(diǎn)。c.開口矩形(或兩條平行橫線):代表數(shù)據(jù)存儲(chǔ)。+號(hào)表示只能從中選一個(gè)(互斥的關(guān)系)。圖2-4數(shù)據(jù)流圖的符號(hào)(2)注意事項(xiàng)⑦代表同一事物的符號(hào)出現(xiàn)在n個(gè)地方,在這個(gè)符號(hào)的角上畫(n-1)條短斜線做標(biāo)記。3.實(shí)例分析例2:的CRT終端把事務(wù)報(bào)告給訂貨系統(tǒng)。當(dāng)某種零件的庫存數(shù)量少于庫存量臨界值時(shí)就應(yīng)該再(1)第一步可以從問題描述中提取數(shù)據(jù)流圖的4種成分:表2-1總結(jié)了上面分析的結(jié)果,其中加星號(hào)標(biāo)記的是在問題描述中隱含的成分。表2-1組成數(shù)據(jù)流圖的元素可以從描述問題的信息中提取源點(diǎn)/終點(diǎn)采購(gòu)員倉(cāng)庫管理員事務(wù)類型訂貨信息(見訂貨報(bào)表)(2)畫數(shù)據(jù)流圖任何系統(tǒng)的基本模型都由若干個(gè)數(shù)據(jù)源點(diǎn)/終點(diǎn)以及一個(gè)處理組成,這對(duì)數(shù)據(jù)加工變換的基本功能??梢援嫵鰣D2-5這樣的基本系統(tǒng)模型。圖2-5訂貨系統(tǒng)的基本系統(tǒng)模型的數(shù)據(jù)相同。在圖2-6中給處理和數(shù)據(jù)存儲(chǔ)都加編號(hào),這樣做的目的是便于引用和追蹤。圖2-6訂貨系統(tǒng)的功能級(jí)數(shù)據(jù)流圖訂貨"(圖2-7)。圖2-7把處理事務(wù)的功能進(jìn)一步分解后的數(shù)據(jù)流圖⑤檢查a.對(duì)數(shù)據(jù)流圖分層細(xì)化時(shí)必須保持信息連續(xù)性;b.注意對(duì)處理進(jìn)行編號(hào)的方法。4.命名規(guī)則(1)為數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))命名①名字應(yīng)代表整個(gè)數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))的內(nèi)容,而不是只反映它的某些成分。③如果在為某個(gè)數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))起名字時(shí)遇到了困難,則很可能是因?yàn)閷?duì)數(shù)據(jù)流圖分(2)為處理命名(3)為數(shù)據(jù)源點(diǎn)/終點(diǎn)命名數(shù)據(jù)源點(diǎn)/終點(diǎn)并不需要在開發(fā)目標(biāo)系統(tǒng)的過程中設(shè)計(jì)和實(shí)現(xiàn),它5.用途(1)目的①作為交流信息的工具(基本目的)(2)自動(dòng)化邊界邊界可能意味著一個(gè)不同的物理系統(tǒng),因此可以根據(jù)①考慮圖2-7,事務(wù)隨時(shí)可能發(fā)生,故處理1.1("接收事務(wù)")必須是聯(lián)機(jī)的;采購(gòu)員每天需要一次訂貨報(bào)表,因此處理2(“產(chǎn)生報(bào)表”)應(yīng)該以批量方式進(jìn)行放入隊(duì)列中,然而更新庫存清單、處理訂貨和產(chǎn)生報(bào)表以批量方式進(jìn)行(圖2-8)。圖2-8這種劃分自動(dòng)化邊界的方法暗示以批量方式更新庫存清單②改變自動(dòng)化邊界,把處理1.1,1.2和1.3放在同一邊界內(nèi)(圖2-9),這個(gè)系統(tǒng)將聯(lián)機(jī)地接收事務(wù)、更新庫存清單和處理訂貨及輸出訂貨信息;處理2將以批量方式產(chǎn)生訂貨報(bào)表。圖2-9另一種劃分自動(dòng)化邊界的方法建議以聯(lián)機(jī)方式更新庫存清單(1)定義(2)意義(1)一般來說,數(shù)據(jù)字典應(yīng)該由對(duì)下列4類元素的定義組成。(2)數(shù)據(jù)元素的別名就是該元素的其他等價(jià)的名字,出現(xiàn)別名主要是以下3個(gè)原因引起的。③兩個(gè)分析員分別分析同一個(gè)數(shù)據(jù)流時(shí),使用了不同的名字。3.定義數(shù)據(jù)的方法(1)數(shù)據(jù)元素組成數(shù)據(jù)的方式④可選即一個(gè)分量是可有可無的(重復(fù)零次或一次)。(2)數(shù)據(jù)元素組成數(shù)據(jù)的符號(hào)表示①=意思是等價(jià)于(或定義為);②+意思是和(即連接兩個(gè)分量);③[]意思是或(即從方括弧內(nèi)列出的若干個(gè)分量中選擇一個(gè));④|意思是隔開供選擇的分量;⑤{}意思是重復(fù)(即重復(fù)花括弧內(nèi)的分量);⑥()意思是可選(即圓括弧里的分量可有可無)。⑦使用上限和下限進(jìn)一步注釋表示重復(fù)的花括弧,例如:5{A}和1{A}5含義相同。4.數(shù)據(jù)字典的用途(1)作為分析階段的工具(最重要)。(2)數(shù)據(jù)字典中包含的每個(gè)數(shù)據(jù)元素的控制信息是很有價(jià)值的。數(shù)據(jù)字典列出了使用一個(gè)給定的數(shù)據(jù)元素的所有程序(或模塊),所以很容易估計(jì)改變一個(gè)(3)數(shù)據(jù)字典是開發(fā)數(shù)據(jù)庫的第一步,而且是很有價(jià)值的一步。(1)開發(fā)大型軟件系統(tǒng)是建議使用數(shù)據(jù)字典處理程序。(2)在開發(fā)小型軟件系統(tǒng)時(shí)建議采用卡片形式書寫數(shù)據(jù)字典,如圖2-10,給出了幾個(gè)數(shù)據(jù)圖2-10數(shù)據(jù)字典卡片五、成本/效益分析成本/效益分析的目的是從經(jīng)濟(jì)角度分析開發(fā)一個(gè)特定的新系統(tǒng)是2.成本估計(jì)的方法軟件開發(fā)成本主要表現(xiàn)為人力消耗(乘以平均工資則得到開發(fā)費(fèi)用)。成本估計(jì)不是精確的科學(xué),因此應(yīng)該使用幾種不同的估計(jì)技術(shù)以便相互校驗(yàn)。成本估計(jì)可(1)代碼行技術(shù)(2)任務(wù)分解技術(shù)b.分別估計(jì)每個(gè)單獨(dú)的開發(fā)任務(wù)的成本,先估計(jì)完成該項(xiàng)任務(wù)需要用的人力(以人月為單位),再乘以每人每月的平均工資而得出每個(gè)任務(wù)的成本;c.最后累加起來得出軟件開發(fā)工程的總成本。典型環(huán)境下各個(gè)開發(fā)階段需要使用的人力的百分比大致如表2-2所示。表2-2典型環(huán)境下各個(gè)開發(fā)階段需要使用的人力的百分比(3)自動(dòng)估計(jì)成本技術(shù)采用自動(dòng)估計(jì)成本的軟件工具可以減輕人的勞動(dòng),并且使得估計(jì)的結(jié)果更客觀。但是,采用這種技術(shù)必須有長(zhǎng)期搜集的大量歷史數(shù)據(jù)為基礎(chǔ),并且需要有良好的數(shù)據(jù)庫系統(tǒng)支持。3.成本/效益分析的方法(1)方法步驟①估計(jì)開發(fā)成本、運(yùn)行費(fèi)用和新系統(tǒng)將帶來的經(jīng)濟(jì)效益。a.運(yùn)行費(fèi)用取決于系統(tǒng)的操作費(fèi)用和維護(hù)費(fèi)用。b.系統(tǒng)的經(jīng)濟(jì)效益等于因使用新系統(tǒng)而增加的收入加上新系統(tǒng)可以節(jié)省的運(yùn)行費(fèi)用。c.在進(jìn)行成本/效益分析時(shí)一律假設(shè)生命周期為5年。②比較新系統(tǒng)的開發(fā)成本和經(jīng)濟(jì)效益,以便從經(jīng)濟(jì)角度判斷這個(gè)系統(tǒng)是否值得投資。但是,投資是現(xiàn)在進(jìn)行的,效益是將來獲得的,不能簡(jiǎn)單地比較成本和效益,應(yīng)該考慮貨幣的時(shí)間(2)影響經(jīng)濟(jì)效益的因素①貨幣的時(shí)間價(jià)值通常用利率的形式表示貨幣的時(shí)間價(jià)值。假設(shè)年利率為i,如果現(xiàn)在存入P元,則n年后可以得到的錢數(shù)為:這也就是P元錢在n年后的價(jià)值。反之,如果n年后能收入F元錢,那么這些錢的現(xiàn)在價(jià)②投資回收期通常用投資回收期衡量一項(xiàng)開發(fā)工程的價(jià)值。所謂投資回收期就是使累計(jì)的經(jīng)濟(jì)效益等于最初投資所需要的時(shí)間。投資回收期越短就能越快獲得利潤(rùn),那么這項(xiàng)工程也就越值得投資。投資回收期僅僅是一項(xiàng)經(jīng)濟(jì)指標(biāo),為了衡量一項(xiàng)開發(fā)工程的價(jià)值,還應(yīng)該考慮其他經(jīng)濟(jì)指標(biāo)。③純收入工程的純收入是在整個(gè)生命周期之內(nèi)系統(tǒng)的累計(jì)經(jīng)濟(jì)效益(折合成現(xiàn)在值)與投資之差。如果純收人為零,則工程的預(yù)期效益和在銀行存款一樣,但是開發(fā)一個(gè)系統(tǒng)要冒風(fēng)險(xiǎn),因此這項(xiàng)工程可能是不值得投資的。如果純收入小于零,那么這項(xiàng)工程顯然不值得投資。④投資回收率計(jì)算投資回收率,用它衡量投資效益的大小,并且可以把它和年利率相比較,在衡量工程的經(jīng)濟(jì)效益時(shí),它是最重要的參考數(shù)據(jù)。其中,P是現(xiàn)在的投資額;Fi是第i年年底的效益(i=1,2,…,n);n是系統(tǒng)的使用j是投資回收率。2.2課后習(xí)題詳解1.在軟件開發(fā)的早期階段為什么要進(jìn)行可行性研究?應(yīng)該從哪些方面研究目標(biāo)系統(tǒng)的可行性?答:(1)進(jìn)行可行性研究的目的(2)從下述三個(gè)方面研究每種解決方案的可行性2.為方便儲(chǔ)戶,某銀行擬開發(fā)計(jì)算機(jī)儲(chǔ)蓄系統(tǒng)。儲(chǔ)戶填寫的存款單或取款單由業(yè)務(wù)員輸入答:(1)問題定義住址(或電話號(hào)碼)、身份證號(hào)碼、存款類型、存款日期、利率等信息,完成后由系統(tǒng)打印(2)可行性研究方法條件、假定和限制①建議開發(fā)軟件運(yùn)行的最短壽命:5年。②進(jìn)行系統(tǒng)方案選擇比較的期限:2個(gè)月。據(jù)庫,各個(gè)銀行網(wǎng)點(diǎn)都有安好的PC機(jī),安裝有Windows2000及以上的操作系統(tǒng)。⑤建議開發(fā)軟件投入使用的最遲時(shí)間:開發(fā)完成后試運(yùn)行1個(gè)月。(3)可行性研究方法(4)處理流程和數(shù)據(jù)流程a.存款(如圖2-11)圖2-11存款系統(tǒng)流程圖b.取款(如圖2-12)圖2-12取款系統(tǒng)流程圖②數(shù)據(jù)流圖(如圖2-13)圖2-13銀行業(yè)務(wù)數(shù)據(jù)流圖(5)分析影響因素⑤局限性工作效率底下,不能符合大量群眾的及時(shí)需求,給群眾的生活帶來不便。這是現(xiàn)有系統(tǒng)辦理業(yè)務(wù)的流程中出現(xiàn)的一個(gè)嚴(yán)重問題。具體問題如下:a.當(dāng)前銀行使用的銀行儲(chǔ)蓄系統(tǒng)在辦理業(yè)務(wù)時(shí)僅僅靠手工操作,人工業(yè)務(wù)占據(jù)了全部,要求銀行業(yè)務(wù)員辦理業(yè)務(wù)時(shí)細(xì)心耐心,對(duì)數(shù)字敏感,算術(shù)水平高。嚴(yán)重影響了工作效率,且出錯(cuò)率高,儲(chǔ)戶辦理事務(wù)時(shí)需要等待時(shí)間過長(zhǎng),需要大量的銀行業(yè)務(wù)員才能滿足日益增長(zhǎng)的存取款要求。b.用紙張記錄保存用戶存款記錄查找繁瑣,耗時(shí)久,不方便,且容易丟失。且人工記錄不能保證萬無一失,容易出現(xiàn)數(shù)據(jù)錄入錯(cuò)誤。c.存款記錄保密性差,任何一個(gè)業(yè)務(wù)員都可以隨意更改查閱用戶數(shù)據(jù),用戶的資料容易泄漏,帶來安全隱患。d.業(yè)務(wù)員服務(wù)的時(shí)間有限,不能24小時(shí)辦理業(yè)務(wù),沒有應(yīng)急處理。e.所有客戶的業(yè)務(wù)都由業(yè)務(wù)員手工辦理,浪費(fèi)人力資源。簡(jiǎn)單的業(yè)務(wù)經(jīng)改進(jìn)可由機(jī)器完成,完全不用人工參與,這樣節(jié)約了人力成本,也提高效率。f.對(duì)現(xiàn)有系統(tǒng)的改進(jìn)維護(hù)只能依靠增多業(yè)務(wù)員數(shù)量,增多銀行分行數(shù)目,提高業(yè)務(wù)員業(yè)務(wù)素質(zhì)來實(shí)現(xiàn)。增多業(yè)務(wù)員數(shù)量會(huì)導(dǎo)致銀行人員支出大大增多,同時(shí)需要多選址建設(shè)分行,或者擴(kuò)大分行規(guī)模,費(fèi)用代價(jià)巨大。業(yè)務(wù)員的業(yè)務(wù)素質(zhì)需要培養(yǎng),不能短期見成效,這又浪費(fèi)資金和人力資源。對(duì)現(xiàn)用系統(tǒng)的改進(jìn)型維護(hù)已經(jīng)不能解決儲(chǔ)戶越來越多、儲(chǔ)戶時(shí)間越來越長(zhǎng)3.為方便旅客,某航空公司擬開發(fā)一個(gè)機(jī)票預(yù)訂系統(tǒng)。旅行社把預(yù)訂機(jī)票的旅客信息(姓名、性別、工作單位、身份證號(hào)碼、旅行時(shí)間、旅行目的地等)輸入進(jìn)該系統(tǒng),系統(tǒng)為旅客安排航班,印出取票通知和賬單,旅客在飛機(jī)起飛的前一天憑取票通知和賬單交款取票,系統(tǒng)校對(duì)無誤即印出機(jī)票給旅客。寫出問題定義并分析此系統(tǒng)的可行性。①目標(biāo):在一個(gè)月內(nèi)建立一個(gè)高效率,無差錯(cuò)的航空公司機(jī)票預(yù)定系統(tǒng)。②存在的主要問題:人工不易管理,手續(xù)繁瑣。(2)可行性分析①經(jīng)濟(jì)可行性打印機(jī)一臺(tái)(2000元)+開發(fā)費(fèi)(3500元)=5500元b.效益估算該系統(tǒng)有很好的社會(huì)效益,提高了公司售票效率,方便旅客,售票方便、科學(xué)。②技術(shù)可行性經(jīng)過調(diào)查分析,得到目前航空公司機(jī)票預(yù)定系統(tǒng)流程圖如圖2-14和2-15。圖2-14訂票系統(tǒng)流程圖圖2-15訂票系統(tǒng)流程圖③操作的可行性比較以上兩圖看出,與人工系統(tǒng)相比,計(jì)算機(jī)保留了原有的主要工作流程,可以看出計(jì)算機(jī)系統(tǒng)是人工系統(tǒng)的優(yōu)化,操作也不復(fù)雜,工作人員在短時(shí)間經(jīng)過培訓(xùn)就可熟練掌握。④結(jié)論由于經(jīng)濟(jì)、技術(shù)、操作三方面的可行性分析都通過,因此此技術(shù)系開發(fā)航空公司機(jī)票預(yù)定系統(tǒng)是可行的。4.目前住院病人主要由護(hù)士護(hù)理,這樣做不僅需要大量護(hù)士,而且由于不能隨時(shí)觀察危重病人的病情變化,還可能會(huì)延誤搶救時(shí)機(jī)。某醫(yī)院打算開發(fā)一個(gè)以計(jì)算機(jī)為中心的患者監(jiān)護(hù)系統(tǒng),試寫出問題定義,并且分析開發(fā)這個(gè)系統(tǒng)的可行性。醫(yī)院對(duì)患者監(jiān)護(hù)系統(tǒng)的基本要求是隨時(shí)接收每個(gè)病人的生理信號(hào)(脈搏、體溫、血壓、心電圖等),定時(shí)記錄病人情況以形成患者日志,當(dāng)某個(gè)病人的生理信號(hào)超出醫(yī)生規(guī)定的安全范圍時(shí)向值班護(hù)士發(fā)出警告信息,此外,護(hù)士在需要時(shí)還可以要求系統(tǒng)印出某個(gè)指定病人的病情報(bào)告。答:(1)問題定義①本系統(tǒng)的數(shù)據(jù)源點(diǎn)是“病人”和“護(hù)士”,他們分別提供生理信號(hào)和要求病情報(bào)告的信息。從系統(tǒng)應(yīng)該“定時(shí)記錄病人情況以形成患者日志”這項(xiàng)要求可以想到,還應(yīng)該有一個(gè)提供日期和②本系統(tǒng)的數(shù)據(jù)終點(diǎn)是接收警告信息和病情報(bào)告的護(hù)士。系統(tǒng)對(duì)病人生理信號(hào)的處理功能主(2)分析可行性為了分析病人生理信號(hào)是否超出了醫(yī)生規(guī)定的安全范圍,應(yīng)該存儲(chǔ)“患者安全范圍”信息。此外,定時(shí)記錄病人生理信號(hào)所形成的“患者日志”顯然也是一個(gè)數(shù)據(jù)存儲(chǔ)。本系統(tǒng)的基本系統(tǒng)模型如圖2-16所示,圖2-17是本系統(tǒng)的功能級(jí)數(shù)據(jù)流圖。時(shí)鐘系統(tǒng)警告信息護(hù)士圖2-16患者監(jiān)護(hù)系統(tǒng)的基本系統(tǒng)模型6D2患者日志病人生理信5時(shí)間筆信41圖2-17患者監(jiān)護(hù)系統(tǒng)的功能級(jí)數(shù)據(jù)流圖5.北京某高??捎玫碾娫捥?hào)碼有以下幾類:校內(nèi)電話號(hào)碼由4位數(shù)字組成,第1位數(shù)字不是0;校外電話又分為本市電話和外地電話兩類,撥校外電話需先撥0,若是本市電話則再接著撥8位數(shù)字(第1位不是0),若是外地電話則撥3位區(qū)碼再撥8位電話號(hào)碼(第1位用定義數(shù)據(jù)的方法,定義上述的電話號(hào)碼。答:(1)電話號(hào)碼=[校內(nèi)電話號(hào)碼|校外電話號(hào)碼](2)校內(nèi)電話號(hào)碼=非零數(shù)字+3位數(shù)字(3)校外電話號(hào)碼=[本市號(hào)碼外地號(hào)碼](4)本市號(hào)碼=數(shù)字零+8位數(shù)字(5)外地號(hào)碼=數(shù)字零+3位數(shù)字+8位數(shù)字(7)數(shù)字零=0(8)3位數(shù)字=3{數(shù)字}3(9)8位數(shù)字=非零數(shù)字+7位數(shù)字(10)7位數(shù)字=7{數(shù)字}7(6)約束2.必要性3.準(zhǔn)則求分析的結(jié)果。進(jìn)行需求分析必須遵循以下4條準(zhǔn)則。(1)必須理解并描述問題的信息域,根據(jù)這條準(zhǔn)則應(yīng)該建立數(shù)據(jù)模型。(2)必須定義軟件應(yīng)完成的功能,這條準(zhǔn)則要求建立功能模型。(3)必須描述作為外部事件結(jié)果的軟件行為,這條準(zhǔn)則要求建立行為模型。(4)必須對(duì)描述信息、功能和行為的模型進(jìn)行分解,用層次的方式展示細(xì)節(jié)。1.確定對(duì)系統(tǒng)的綜合要求(1)功能需求(2)性能需求性能需求指定系統(tǒng)必須滿足的定時(shí)約束或容量約束,通常包括速度(響應(yīng)時(shí)間)、信息量速(3)可靠性和可用性需求(4)出錯(cuò)處理需求(5)接口需求(7)逆向需求(8)將來可能提出的要求2.分析系統(tǒng)的數(shù)據(jù)要求(1)意義(2)工具用的圖形工具有層次方框圖和Warnier圖。(3)規(guī)范3.導(dǎo)出系統(tǒng)的邏輯模型4.修正系統(tǒng)開發(fā)計(jì)劃(1)基本形式(2)技術(shù)方法a.概念b.作用2.面向數(shù)據(jù)流自頂向下求精(1)定義(2)原理①通常從數(shù)據(jù)流圖的輸出端著手分析。輸出數(shù)搞清這個(gè)問題。每個(gè)輸出數(shù)據(jù)元素又是從哪里來的呢?沿?cái)?shù)據(jù)流圖從輸出端往輸入端回溯,錄在IPO圖中。通過分析而補(bǔ)充的數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)和處理,應(yīng)該添加到數(shù)據(jù)流圖的適當(dāng)經(jīng)過提問和解答的反復(fù)循環(huán),最終得到對(duì)系統(tǒng)數(shù)據(jù)和功能要求的滿意3.簡(jiǎn)易的應(yīng)用規(guī)格說明技術(shù)(1)定義(2)應(yīng)用過程a.討論的第一個(gè)問題是,是否需要這個(gè)新產(chǎn)品,一旦確實(shí)需要這個(gè)新產(chǎn)品,每位與會(huì)者就b.共同創(chuàng)建一張組合列表。在組合列表中消去了冗余項(xiàng),加入了在展示過程中產(chǎn)生的新想c.一旦得出了意見一致的列表,就把與會(huì)者分成更小的小組,每個(gè)小組的工作目標(biāo)是為每d.每個(gè)小組都向全體與會(huì)者展示他們制定的小型規(guī)格說明。通過討論可能會(huì)增加或刪除一(3)優(yōu)點(diǎn)4.快速建立軟件原型(1)定義(2)特性(3)使用的方法和工具。①第四代技術(shù)使用一組已有的軟件構(gòu)件(組件)來裝配原型。軟件構(gòu)件可以是數(shù)據(jù)結(jié)構(gòu)(或數(shù)據(jù)庫),或軟件體系結(jié)構(gòu)構(gòu)件(程序),或過程構(gòu)件(模塊)。必須把軟件構(gòu)件設(shè)計(jì)成能在不知其內(nèi)部在過去的20多年中,人們已經(jīng)研究出許多形式化規(guī)格說明語言和工具,用于替代自然語言1.分析建模(1)模型(2)建模過程2.軟件需求規(guī)格說明1.數(shù)據(jù)模型的定義2.數(shù)據(jù)模型的構(gòu)成數(shù)據(jù)模型中包含3種相互關(guān)聯(lián)的信息:數(shù)據(jù)對(duì)象、數(shù)據(jù)對(duì)象的屬性(1)數(shù)據(jù)對(duì)象②特點(diǎn)a.可以由一組屬性來定義的實(shí)體都可以被認(rèn)為是數(shù)b.數(shù)據(jù)對(duì)象彼此間是有關(guān)聯(lián)的。c.數(shù)據(jù)對(duì)象只封裝了數(shù)據(jù)而沒有對(duì)施加于數(shù)據(jù)上的操作的引用,這也是數(shù)據(jù)對(duì)象與面向?qū)?1)必要性(2)屬性(3)聯(lián)系以下3種類型。①一對(duì)一聯(lián)系(1:1)②一對(duì)多聯(lián)系(1:N)一個(gè)數(shù)據(jù)對(duì)象可以同時(shí)對(duì)應(yīng)多個(gè)數(shù)據(jù)對(duì)象,例如,某校教師③多對(duì)多聯(lián)系(M:N)兩個(gè)數(shù)據(jù)對(duì)象之間的聯(lián)系是多對(duì)多的。例如,學(xué)生與課程問的聯(lián)系("學(xué)")是多對(duì)多的,即3.實(shí)體—聯(lián)系圖的符號(hào)(1)定義使用實(shí)體聯(lián)系圖來建立數(shù)據(jù)模型??梢园褜?shí)體—聯(lián)系圖簡(jiǎn)稱為E—R圖,把用E—R圖描繪的數(shù)據(jù)模型稱為E—R模型。E—R圖中包含了實(shí)體(數(shù)據(jù)對(duì)象)、關(guān)系和屬性3種基本成分,通常用矩形框代表實(shí)體,用連接相關(guān)實(shí)體的菱形框表示關(guān)系,用橢圓形或圓角矩形表示實(shí)體(或關(guān)系)的屬性,并用直線把實(shí)體(或關(guān)系)與其屬性連接起來。例如,圖3-2是某學(xué)校教學(xué)管理的E—R圖。圖3-2某校教學(xué)管理E—R圖(2)優(yōu)點(diǎn)(2)范式特點(diǎn)(3)各范式的定義。1.定義2.狀態(tài)(1)定義系統(tǒng)對(duì)事件的響應(yīng)方式。系統(tǒng)對(duì)事件的響應(yīng),既可以是做一個(gè)(或一系列)動(dòng)作,也可以是(2)分類狀態(tài)主要有:初態(tài)(初始狀態(tài))、終態(tài)(最終狀態(tài))和中間狀態(tài)。在一張狀態(tài)圖中只能有一個(gè)初態(tài),而終態(tài)則可以有0至多個(gè)。(3)表示①描繪循環(huán)運(yùn)行過程:通常并不關(guān)心循環(huán)是3.事件事件是在某個(gè)特定時(shí)刻發(fā)生的事情,它是對(duì)引起系統(tǒng)做動(dòng)作或(和)從一個(gè)狀態(tài)轉(zhuǎn)換到另一個(gè)狀態(tài)的外界事件的抽象。簡(jiǎn)而言之,事件就是引起系統(tǒng)做動(dòng)作或(和)轉(zhuǎn)換狀態(tài)的控制信4.狀態(tài)圖的符號(hào)(1)符號(hào)的表示方法②終態(tài):用一對(duì)同心圓(內(nèi)圓為實(shí)心圓)表示。③中間狀態(tài):用圓角矩形表示??梢杂脙蓷l水平橫線把它分成上、中、下3個(gè)部 (2)組成部分圖3-3給出了狀態(tài)圖中使用的主要組成部分和符號(hào)表示。圖3-3狀態(tài)圖中使用的主要符號(hào)事件名(參數(shù)表)/動(dòng)作表達(dá)式事件說明[守衛(wèi)條件]/動(dòng)作表達(dá)式其中,事件說明的語法為:事件名(參數(shù)表)。守衛(wèi)條件是一個(gè)布爾表達(dá)式。如果同時(shí)使用5.實(shí)例分析圖3-4是電話系統(tǒng)的狀態(tài)圖。圖中表明,沒有人打電話時(shí)電話處于閑置狀態(tài);有人拿的人改變主意不想扣了,他把聽筒放下(掛斷),電話重又回到閑置狀態(tài);如果拿起聽筒很長(zhǎng)時(shí)間不撥號(hào)(超時(shí)),則進(jìn)入超時(shí)狀態(tài)。圖3-4電話系統(tǒng)的狀態(tài)圖1.層次方框圖(1)定義(2)實(shí)例分析例如,描繪一家計(jì)算機(jī)公司全部產(chǎn)品的數(shù)據(jù)結(jié)構(gòu)可以用圖3-5中的層司的產(chǎn)品由硬件、軟件和服務(wù)3類產(chǎn)品組成,軟件(1)定義圖3-5層次方框圖的一個(gè)例子(3)特點(diǎn)2.Warnier圖(1)定義Warnier圖是法國(guó)計(jì)算機(jī)科學(xué)家Warnier提出的表示信息層次結(jié)構(gòu)的另外一種圖像工具,它(2)實(shí)例分析圖3-6是用Warnier圖描繪一類軟件產(chǎn)品的例子。圖中花括號(hào)用來區(qū)分?jǐn)?shù)據(jù)結(jié)構(gòu)的層次,在一個(gè)花括號(hào)內(nèi)的所有名字都屬于同一類信息;異或符號(hào)(+)表明一類信息或一個(gè)數(shù)據(jù)元素一個(gè)名字下面(或右邊)的圓括號(hào)中的數(shù)字指明了這個(gè)名字代表的信息類(或元素)在這個(gè)圖中表示了一種軟件產(chǎn)品要么是系統(tǒng)軟件要么是應(yīng)用軟件。系統(tǒng)軟件中有P1種操作系統(tǒng),P2種編譯程序,此外還有軟件工具。軟件工具是系統(tǒng)軟件的一種,它又可以進(jìn)一步細(xì)分為(2)用法有效的主記錄有效的事務(wù)記錄更新后的主文件處理1.校驗(yàn)主記錄2.校驗(yàn)事務(wù)記錄3.更新主記錄輸入舊的主文件事務(wù)文件(3)改進(jìn)的IPO圖圖3-8改進(jìn)的IPO圖的形式(4)優(yōu)點(diǎn)1.驗(yàn)證軟件需求的正確性(1)驗(yàn)證需求正確性的目的需求分析階段的工作結(jié)果是開發(fā)軟件系統(tǒng)的重(2)進(jìn)行驗(yàn)證的四個(gè)方面2.驗(yàn)證軟件需求的方法(1)驗(yàn)證需求的一致性(2)驗(yàn)證需求的現(xiàn)實(shí)性(3)驗(yàn)證需求的完整性和有效性3.用于需求分析的軟件工具(1)要求①必須有形式化的語法(或表),因此可以用計(jì)算機(jī)自動(dòng)處理使用這種語法說明的內(nèi)容。③必須提供分析(測(cè)試)規(guī)格說明書的不一致性和冗余性的手段,并且應(yīng)該能夠產(chǎn)生一組報(bào)PSL是用來描述系統(tǒng)的形式語言,PSA是處理PSL描述的分析程序。用PSL描述的系統(tǒng)屬b.創(chuàng)建一個(gè)數(shù)據(jù)庫保存對(duì)該信息系統(tǒng)的描述符;c.對(duì)描述符施加增加、刪除和更改等操作;d.產(chǎn)生格式化的文檔和關(guān)于規(guī)格說明書的各種分析報(bào)告。a.改進(jìn)了文檔質(zhì)量,能保證文檔具有完整性、一致性和無二義性,從而可以減少管理和維b.數(shù)據(jù)存放在數(shù)據(jù)庫中,便于增加、刪除和更改。1.為什么要進(jìn)行需求分析?通常對(duì)軟件系統(tǒng)有哪些需求?答:(1)需求分析的原因(2)對(duì)軟件系統(tǒng)的需求2.怎樣與用戶有效地溝通以獲取用戶的真實(shí)需求?3.銀行計(jì)算機(jī)儲(chǔ)蓄系統(tǒng)的工作過程大致如下:儲(chǔ)戶填寫的存款單或取款單由業(yè)務(wù)員輸入系統(tǒng),如果是存款則系統(tǒng)記錄存款人姓名、住址(或電話號(hào)碼)、身份證號(hào)碼、存款類型、存款日期、到期日期、利率及密碼(可選)等信息,并印出存單給儲(chǔ)戶;如果是取款而且存款答:(1)數(shù)據(jù)流圖,如圖3-9所示。圖3-9銀行計(jì)算機(jī)儲(chǔ)蓄系統(tǒng)數(shù)據(jù)流圖是多對(duì)多(M:N)關(guān)系。M存取款身份證號(hào)碼N訂票旅客取票機(jī)票預(yù)定系統(tǒng)處理旅客圖3-12購(gòu)票系統(tǒng)E—R圖5.分析習(xí)題2第4題所述的患者監(jiān)護(hù)系統(tǒng)。試用實(shí)體聯(lián)系圖描繪本系統(tǒng)中的數(shù)據(jù)對(duì)象,畫圖3-13患者監(jiān)護(hù)系統(tǒng)ER圖6.復(fù)印機(jī)的工作過程大致如下:未接到復(fù)印命令時(shí)處于閑置狀態(tài),一旦接到復(fù)印命令則進(jìn)答:狀態(tài)轉(zhuǎn)換圖,如圖3-14所示。圖3-14復(fù)印機(jī)工作狀態(tài)轉(zhuǎn)換圖第4章形式化說明技術(shù)按照形式化的程度,可以把軟件工程使用的方法劃分成非形式化、半形式化和形式化3類。是典型的半形式化方法。所謂形式化方法,是描述系統(tǒng)1.非形式化方法的缺點(diǎn)(1)矛盾:一組相互沖突的陳述。(2)二義性:指讀者可以用不同方式理解的陳述。(3)含糊性:指沒有指明任何有用信息的籠統(tǒng)的陳述。(4)不完整性:指沒有指明具體功能的陳述。(5)抽象層次混亂:指非抽象的陳述中混進(jìn)了一些關(guān)于細(xì)節(jié)的低層次陳述。2.形式化方法的優(yōu)點(diǎn)(1)能夠簡(jiǎn)潔準(zhǔn)確地描述物理現(xiàn)象、對(duì)象或動(dòng)作的結(jié)果。準(zhǔn)確到幾乎沒有二義性,而且可 (2)可以在不同的軟件工程活動(dòng)之間平滑地過渡。不僅功能規(guī)格說明,而且系統(tǒng)設(shè)計(jì)也可(3)提供了高層確認(rèn)的手段??梢允褂脭?shù)學(xué)方法證明,設(shè)計(jì)符合規(guī)格說明,程序代碼正確3.應(yīng)用形式化方法的準(zhǔn)則(1)應(yīng)該選用適當(dāng)?shù)谋硎痉椒?2)應(yīng)該形式化,但不要過分形式化(3)應(yīng)該估算成本(4)應(yīng)該有形式化方法顧問隨時(shí)提供咨詢(5)不應(yīng)該放棄傳統(tǒng)的開發(fā)方法(6)應(yīng)該建立詳盡的文檔(7)不應(yīng)該放棄質(zhì)量標(biāo)準(zhǔn)形式化方法并不能保證軟件的正確性,它們只不過是有助于開發(fā)出高質(zhì)量軟 (8)不應(yīng)該盲目依賴形式化方法求到形式化規(guī)格說明的轉(zhuǎn)換是正確的,因此,必須用其他方法(例如評(píng)審、測(cè)試)來驗(yàn)證軟(9)應(yīng)該測(cè)試、測(cè)試再測(cè)試(10)應(yīng)該重用(1)引入一個(gè)保險(xiǎn)箱上裝了一個(gè)復(fù)合鎖,鎖有3個(gè)位置,分別標(biāo)記為1、2、3,轉(zhuǎn)盤可向左(L)或向右(R)轉(zhuǎn)動(dòng)。在任意時(shí)刻轉(zhuǎn)盤都有6種可能的運(yùn)動(dòng),即1L、1R、2L、2R、3L和3R。保險(xiǎn)箱的組合密碼是1L、3R、2L轉(zhuǎn)盤的任何其他運(yùn)動(dòng)都將引起報(bào)警。圖4-1描繪了保險(xiǎn)箱的狀態(tài)轉(zhuǎn)換情況。有一個(gè)初始態(tài),即保險(xiǎn)箱鎖定狀態(tài)。若輸入為1L,則下一個(gè)狀態(tài)為A,的序列為從保險(xiǎn)箱鎖定到A再到B,最后到保險(xiǎn)箱解鎖,即另外一個(gè)終態(tài)。圖4-1是一個(gè)有窮狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換圖。狀態(tài)轉(zhuǎn)換并不一定要用圖形方式圖4-1保險(xiǎn)箱的狀態(tài)轉(zhuǎn)換圖表4-1保險(xiǎn)箱的狀態(tài)轉(zhuǎn)換表(2)構(gòu)成一個(gè)有窮狀態(tài)機(jī)包括下述5個(gè)部分:狀態(tài)集J、輸入集K、由當(dāng)前狀態(tài)和當(dāng)前輸入確定下一個(gè)狀態(tài)(次態(tài))的轉(zhuǎn)換函數(shù)T、初始態(tài)S和終態(tài)集F。一個(gè)有窮狀態(tài)機(jī)可以表示為一個(gè)5元②輸入集K:{1L,1R,2L,2R,3L,3R}。③轉(zhuǎn)換函數(shù)T:如表4-1所示。④初始態(tài)S:保險(xiǎn)箱鎖定。⑤終態(tài)集F:{保險(xiǎn)箱解鎖,報(bào)警}。(3)狀態(tài)轉(zhuǎn)換(4)擴(kuò)展對(duì)有窮狀態(tài)機(jī)做一個(gè)擴(kuò)展,即在前述的5元組中加入第6個(gè)組件—謂詞集P,從而把有窮狀態(tài)機(jī)擴(kuò)展為一個(gè)6元組,其中每個(gè)謂詞都是系統(tǒng)全局狀態(tài)Y的函數(shù)。轉(zhuǎn)換函數(shù)T現(xiàn)在是一個(gè)從(J-F)×K×P到J的函數(shù)?,F(xiàn)在的轉(zhuǎn)換規(guī)則形式如下:當(dāng)前狀態(tài)[菜單]+事件[所選擇的項(xiàng)]+謂詞畫下個(gè)狀態(tài)2.評(píng)價(jià)(1)優(yōu)點(diǎn)①有窮狀態(tài)機(jī)方法采用了一種簡(jiǎn)單的格式來描述規(guī)格說明:當(dāng)前狀態(tài)+事件+謂詞回下個(gè)狀(2)缺點(diǎn)①在開發(fā)一個(gè)大系統(tǒng)時(shí),三元組(即狀態(tài)、事件、謂詞)的數(shù)量會(huì)迅速增長(zhǎng)。(1)功能(2)構(gòu)成Petri網(wǎng)包含4種元素:一組位置P、一組轉(zhuǎn)換T、輸入函數(shù)I,以及輸出函數(shù)0。圖4-2舉例說明了Petri網(wǎng)的組成。a.一組位置P為{P?,P?,P?,P?},在圖中用圓圈代表位置。b.一組轉(zhuǎn)換T為{Ti,T?}在圖中用短直線表示轉(zhuǎn)換。c.兩個(gè)用于轉(zhuǎn)換的輸入函數(shù),用由位置指向轉(zhuǎn)換的箭頭表示,它們是:d.兩個(gè)用于轉(zhuǎn)換的輸出函數(shù),用由轉(zhuǎn)換指向位置的箭頭表示,注意:輸出函數(shù)O(t?)中有兩個(gè)P3,是因?yàn)橛袃蓚€(gè)箭頭由t?指向P3。c.I:T→P為輸入函數(shù),是由轉(zhuǎn)換到位置無序單位組(bags)的映射。d.O:T→P為輸出函數(shù),是由轉(zhuǎn)換到位置無序單位組的映射。(3)分配權(quán)標(biāo)在圖4-3中有4個(gè)權(quán)標(biāo),其中一個(gè)在P?中,兩個(gè)在P?中,P?中沒有,還有一個(gè)在P?中。標(biāo)記可以用向量(1,2,0,1)表示。由于P?和P?中有權(quán)標(biāo),因此t?啟動(dòng)(即被激發(fā))。當(dāng)?shù)模谶@個(gè)例子中兩個(gè)權(quán)標(biāo)被移出,而P?上只能增加一個(gè)權(quán)標(biāo)。圖4-3帶標(biāo)記的Petri網(wǎng)在圖4-3中P?上有權(quán)標(biāo),因此t?也可以被激發(fā)。當(dāng)t?被激發(fā)時(shí),P?上將移走一個(gè)權(quán)標(biāo),而則其中任意一個(gè)都可以被激發(fā)。圖4-3所示Petri網(wǎng)的標(biāo)記為(1,2,0,1),t?和t?都可以被激發(fā)。假設(shè)t?被激發(fā)了,則結(jié)果如圖4-4所示,標(biāo)記為(2,1,0,0)。此時(shí),只有t?可以被激發(fā)。如果t?也被激發(fā)了,則權(quán)標(biāo)從P?中移出,兩個(gè)新權(quán)標(biāo)被放在P?上,結(jié)果如圖4-5所示,標(biāo)記為(2,0,2,0)。更形式化地說,Petri網(wǎng)C=(P,T,I,O,M)中的標(biāo)記M,是由一組位置P到一組非負(fù)整圖4-4t?被激發(fā)后的情況圖4-5圖t?被激發(fā)后的情況如圖4-6所示,禁止線是用一個(gè)小圓圈而不是用箭頭標(biāo)記的輸至少有一個(gè)權(quán)標(biāo),而禁止線上沒有權(quán)標(biāo)的時(shí)候,相應(yīng)的轉(zhuǎn)換才是允許的。在圖4-6中,P3上有一個(gè)權(quán)標(biāo)而P?上沒有權(quán)標(biāo),因此轉(zhuǎn)換t?可以被激發(fā)。圖4-6含禁止線的Petri網(wǎng)使用Z語言需要具備集合論、函數(shù)、數(shù)理邏輯等方面的知識(shí)。即使用戶已經(jīng)掌握了所需要還使用一些特殊符號(hào)。用Z語言描述的、最(1)給定的集合一個(gè)Z規(guī)格說明從一系列給定的初始化集合開始。所謂初始化集合就是不需要詳細(xì)定義的(2)狀態(tài)定義圖4-7Z格S的格式(3)初始狀態(tài)(4)操作2.評(píng)價(jià)(1)可以比較容易地發(fā)現(xiàn)用Z寫的規(guī)格說明的錯(cuò)誤,特別是在自己審查規(guī)格說明,及根據(jù)(2)要求十分精確地使用Z說明符寫規(guī)格說明。減少了模糊性、不一致性和遺漏。(3)Z是一種形式化語言,在需要時(shí)開發(fā)者可以嚴(yán)格地驗(yàn)證規(guī)格說明的正確性。(4)只用比較短的時(shí)間就能夠讓開發(fā)人員學(xué)會(huì)編寫Z規(guī)格說明。(5)使用Z語言通過減少開發(fā)過程所需要的總時(shí)間來降低軟件開發(fā)費(fèi)用。(6)用戶可以依據(jù)Z規(guī)格說明用自然語言重寫比直接用自然語言寫出的非形式化規(guī)格說明1.舉例對(duì)比形式化方法和欠形式化方法的優(yōu)缺點(diǎn)。答:(1)欠形式化方法的缺點(diǎn)如果在規(guī)格說明書中對(duì)一個(gè)命令的功能沒有更多的描述,那么,這個(gè)命令的細(xì)節(jié)是嚴(yán)重不完(2)形式化方法的優(yōu)點(diǎn)在理想情況下,分析員可以寫出系統(tǒng)的數(shù)學(xué)規(guī)格說明,它準(zhǔn)確到幾乎沒有二義性,而且可以用數(shù)學(xué)方法來驗(yàn)證,以發(fā)現(xiàn)存在的矛盾和不完整性,在這樣的規(guī)格說明中完全沒有含糊性。②可以在不同的軟件工程活動(dòng)之間平滑地過渡。③提供了高層確認(rèn)的手段。可以使用數(shù)學(xué)方法證明,設(shè)計(jì)符合規(guī)格說明,程序代碼正確地實(shí)現(xiàn)了設(shè)計(jì)結(jié)果。2.在什么情況下應(yīng)該使用形式化說明技術(shù)?使用形式化說明技術(shù)時(shí)應(yīng)遵守哪些準(zhǔn)則?答:(1)人們?cè)诶斫庥米匀徽Z言描述的規(guī)格說明時(shí),容易產(chǎn)生二義性。為了克服非形式化方法的缺點(diǎn),人們把數(shù)學(xué)引入軟件工程。創(chuàng)造了基于數(shù)學(xué)的形式化說明技術(shù)。(2)應(yīng)用形式化方法的準(zhǔn)則:①應(yīng)該選用適當(dāng)?shù)谋硎痉椒?。②?yīng)該形式化,但不要過分形式化。③應(yīng)該估算成本。④應(yīng)該有形式化方法顧問隨時(shí)提供咨詢。⑤不應(yīng)該放棄傳統(tǒng)的開發(fā)方法。⑥應(yīng)該建立詳盡的文檔。⑦不應(yīng)該放棄質(zhì)量標(biāo)準(zhǔn)。⑧不應(yīng)該盲目依賴形式化方法。⑨應(yīng)該測(cè)試、測(cè)試再測(cè)試。⑩應(yīng)該重用。3.一個(gè)浮點(diǎn)二進(jìn)制數(shù)的構(gòu)成是:一個(gè)可選的符號(hào)(+或-),后跟一個(gè)或多個(gè)二進(jìn)制位,再跟上一個(gè)字符E,再加上另一個(gè)可選符號(hào)(+或-)及一個(gè)或多個(gè)二進(jìn)制位。例如,下列的字符串都是浮點(diǎn)二進(jìn)制數(shù):更形式化地,浮點(diǎn)二進(jìn)制數(shù)定義如下:符號(hào)::=表示定義為;符號(hào)[….]表示可選項(xiàng);假設(shè)有這樣一個(gè)有窮狀態(tài)機(jī):以一串字符為輸入,判斷字符串中是否含有合法的浮點(diǎn)二進(jìn)制數(shù)。試對(duì)這個(gè)有窮狀態(tài)機(jī)進(jìn)行規(guī)格說明。答:(1)自然語言描述入尾數(shù)”狀態(tài)若接收到二進(jìn)制位,則保持該狀態(tài)不變;若接收到字符“E”,則進(jìn)入“等待輸入(2)形式化圖,如圖4-8所示。圖4-8有窮機(jī)形式化圖4.考慮下述的自動(dòng)化圖書館流通系統(tǒng):每本書都有一個(gè)條形碼,每個(gè)借閱人都有一個(gè)帶有的條形碼,然后在計(jì)算機(jī)終端上輸入C;當(dāng)歸還一本書時(shí),圖書管理員將再做一次掃描,并輸入R。圖書管理員可以把一些書加到(+)圖書集合中,也可以刪除(-)它們。借閱人可以在終端上查找到某個(gè)作者所有的書(輸入“A=”和作者名字),或具有指定標(biāo)題的所有書籍(輸入"T="和標(biāo)題),或?qū)儆谔囟ㄖ黝}范圍內(nèi)的所有圖書(輸入“S=”加主題范圍)。最時(shí)把書留給預(yù)約的借閱人(輸入"H="加書號(hào))。(1)圖書狀態(tài)的有窮狀態(tài)機(jī)描述狀態(tài)機(jī)J:{書在圖書館S1,書被借出S2,書被預(yù)約S3}輸入集K:{書上條形碼,借閱卡條形碼,終端輸入各種命令}轉(zhuǎn)換函數(shù)T:如圖4-9所示。初始態(tài)S:{書在圖書館S1,書被借出S2}終態(tài)集F:{書被借出S2,書被預(yù)約S3}圖4-9圖書狀態(tài)轉(zhuǎn)換函數(shù)狀態(tài)機(jī)J:{管理員設(shè)置狀態(tài),書入庫,書出庫(刪除),預(yù)約}輸入集K:{終端輸入管理員命令,書的各種狀態(tài)(S1,S2,S3)}轉(zhuǎn)換函數(shù)T:如圖4-10所示。初始態(tài)S:{管理員設(shè)置狀態(tài)}終態(tài)集F:{書入庫,書出庫(刪除),預(yù)約,}轉(zhuǎn)換函數(shù)T:如圖4-11所示C及R。第5章總體設(shè)計(jì)總體設(shè)計(jì)的基本目的就是回答“系統(tǒng)應(yīng)該如何實(shí)現(xiàn)”這個(gè)問題,總體設(shè)計(jì)又稱為概要設(shè)計(jì)或初步設(shè)計(jì)。2.主要任務(wù)(1)劃分出組成系統(tǒng)的物理元素程序、文件、數(shù)據(jù)庫、人工過程和文檔等,但是每個(gè)物理元素仍然處于黑盒子級(jí),這些黑盒子里的具體內(nèi)容將在以后仔細(xì)設(shè)計(jì)。(2)設(shè)計(jì)軟件的結(jié)構(gòu),也就是要確定系統(tǒng)中每個(gè)程序是由哪些模塊組成的,以及這些模塊相互間的關(guān)系。①尋找實(shí)現(xiàn)目標(biāo)系統(tǒng)的各種不同的方案,需求分析階段得到的數(shù)據(jù)流圖是設(shè)想各種可能方案的基礎(chǔ)。②分析員從這些供選擇的方案中選取若干個(gè)合理的方案,為每個(gè)合理的方案都準(zhǔn)備一份系統(tǒng)流程圖,列出組成系統(tǒng)的所有物理元素,進(jìn)行成本/效益分析,并且制定實(shí)現(xiàn)這個(gè)方案的進(jìn)度計(jì)劃。③進(jìn)行必要的數(shù)據(jù)庫設(shè)計(jì),確定測(cè)試要求并且制定測(cè)試計(jì)劃。4.必要性可以站在全局高度上,花較少成本,從較抽象的層次上分析對(duì)比多種可能的系統(tǒng)實(shí)現(xiàn)方案和軟件結(jié)構(gòu),從中選出最佳方案和最合理的軟件結(jié)構(gòu),從而用較低成本開發(fā)出較高質(zhì)量的軟件二、設(shè)計(jì)過程總體設(shè)計(jì)過程通常由兩個(gè)主要階段組成:系統(tǒng)設(shè)計(jì)階段,確定系統(tǒng)的具體實(shí)現(xiàn)方案;結(jié)構(gòu)設(shè)計(jì)階段,確定軟件結(jié)構(gòu)。典型的總體設(shè)計(jì)過程包括下述9個(gè)步驟。1.設(shè)想供選擇的方案在總體設(shè)計(jì)階段應(yīng)該考慮各種可能的實(shí)現(xiàn)方案,并且力求從中選出最佳方案。在總體設(shè)計(jì)階段開始時(shí)只有系統(tǒng)的邏輯模型,分析員有充分的自由分析比較不同的物理實(shí)現(xiàn)方案,一旦選出了最佳的方案,將能大大提高系統(tǒng)的性能/價(jià)格比需求分析階段得出的數(shù)據(jù)流圖是總體設(shè)計(jì)的極好的出發(fā)點(diǎn)。常用的方法是,設(shè)想把數(shù)據(jù)流圖中的處理分組的各種可能的方法,拋棄在技術(shù)上行不通的分組方法,余下的分組方法代表可能的實(shí)現(xiàn)策略,并且可以啟示供選擇的物理系統(tǒng)。2.選取合理的方案應(yīng)該從前一步得到的一系列供選擇的方案中選取若干個(gè)合理的方案,通常至少選取低成本、中等成本和高成本的3種方案。對(duì)每個(gè)合理的方案,都應(yīng)該準(zhǔn)備下列4份資料:(1)系統(tǒng)流程圖。(2)組成系統(tǒng)的物理元素清單。(3)成本/效益分析。(4)實(shí)現(xiàn)這個(gè)系統(tǒng)的進(jìn)度計(jì)劃。3.推薦最佳方案應(yīng)該綜合分析對(duì)比各種合理方案的利弊,推薦一個(gè)最佳的方案,并且為推薦的方案制定詳細(xì)的實(shí)現(xiàn)計(jì)劃。用戶和有關(guān)的技術(shù)專家應(yīng)該認(rèn)真審查分析員所推薦的最佳系統(tǒng),如果該系統(tǒng)確實(shí)符合用戶的需要,并且是在現(xiàn)有條件下完全能夠?qū)崿F(xiàn)的,則應(yīng)該提請(qǐng)使用部門負(fù)責(zé)人進(jìn)一步審批。在使用部門的負(fù)責(zé)人也接受了分析員所推薦的方案之后,將進(jìn)入總體設(shè)計(jì)過程的下一個(gè)重要階段—結(jié)構(gòu)設(shè)計(jì)。4.功能分解(1)定義5.設(shè)計(jì)軟件結(jié)構(gòu)6.設(shè)計(jì)數(shù)據(jù)庫7.制定測(cè)試計(jì)劃8.書寫文檔(1)系統(tǒng)說明,主要包括用系統(tǒng)流程圖描繪的系統(tǒng)構(gòu)成方案,組成系統(tǒng)的物理元素清單,成本/效益分析;對(duì)最佳方案的概括描述,精化的數(shù)據(jù)流圖,用層次圖或結(jié)構(gòu)圖描繪的軟件結(jié)構(gòu),用IPO圖或其他工具(例如,PDL語言)簡(jiǎn)要描述的各個(gè)模塊的算法,模塊問的接口(2)用戶手冊(cè)。(3)測(cè)試計(jì)劃,包括測(cè)試策略,測(cè)試方案,預(yù)期的測(cè)試結(jié)果,測(cè)試進(jìn)度計(jì)劃等。(4)詳細(xì)的實(shí)現(xiàn)計(jì)劃。(5)數(shù)據(jù)庫設(shè)計(jì)結(jié)果。9.審查和復(fù)審1.模塊化(1)模塊(2)模塊化(3)優(yōu)點(diǎn)2.抽象(1)定義(2)原理(3)層次分析(4)在軟件工程中的應(yīng)用(5)優(yōu)點(diǎn)3.逐步求精(1)定義(2)要求同時(shí)處理7個(gè)以上知識(shí)塊。(3)原理②求精實(shí)際上是細(xì)化過程。人們從在高抽象級(jí)別定義的功能陳述(或信息描述)開始,也就(4)抽象與求精4.信息隱藏和局部化信息隱藏原理是在設(shè)計(jì)和確定的模塊中,使一個(gè)模塊內(nèi)包含的信息(過程和數(shù)據(jù))對(duì)于不需(2)局部化與信息隱藏(3)優(yōu)點(diǎn)5.模塊獨(dú)立(1)定義開發(fā)具有獨(dú)立功能而且和其他模塊之間沒有過多的相(2)重要性(3)耦合①定義的可理解性、可測(cè)試性、可靠性和可維護(hù)性。耦合衡量不同模塊彼此之間互相依賴(連接)a.完全獨(dú)立b.數(shù)據(jù)耦合c.控制耦合如果兩個(gè)模塊彼此間通過參數(shù)交換信息,并且傳遞的信息中包以以數(shù)據(jù)的形式出現(xiàn)),則稱它們是控制耦合??刂岂詈鲜侵械瘸潭鹊鸟詈希黾恿讼到y(tǒng)d.特征耦合e.公共環(huán)境耦合f.內(nèi)容耦合(4)內(nèi)聚a.內(nèi)聚和耦合是密切相關(guān)的,模塊內(nèi)的高內(nèi)聚往往意味著模塊間的b.內(nèi)聚和耦合都是進(jìn)行模塊化設(shè)計(jì)的工具,但內(nèi)聚更重要,應(yīng)該把更多注意力集中到提高a.低內(nèi)聚b.中內(nèi)聚c.高內(nèi)聚1.改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性2.模塊規(guī)模應(yīng)該適中(1)過大的模塊往往是由于分解不充分,但是進(jìn)一步分解必須符合問題結(jié)構(gòu),分解后不應(yīng)(2)過小的模塊開銷大于有效操作,而且模塊數(shù)目過多將使系統(tǒng)接口復(fù)雜。因此過小的模3.深度、寬度、扇出和扇入都應(yīng)適當(dāng)(1)深度(2)寬度(3)扇出③一個(gè)設(shè)計(jì)得好的典型系統(tǒng)的平均扇出通常是3或4。(4)扇入去(底層模塊有高扇入)。4.模塊的作用域應(yīng)該在控制域之內(nèi)(1)定義(2)規(guī)則(3)修改方法5.力爭(zhēng)降低模塊接口的復(fù)雜程度并且和模塊的功能一致。接口復(fù)雜或不一致(即看起來傳遞的數(shù)據(jù)之間沒有聯(lián)系)是緊耦合6.設(shè)計(jì)單入口單出口的模塊7.模塊功能應(yīng)該可以預(yù)測(cè)(1)可預(yù)測(cè)(2)過分局限1.層次圖(1)定義調(diào)用關(guān)系而不像層次方框圖那樣表示組成關(guān)系。圖5-1是層次圖的圖5-1正文加工系統(tǒng)的層次圖(2)適用性(1)定義最頂層的方框之外,每個(gè)方框都加了編號(hào)。圖5-1加了編號(hào)后得到圖5-2。圖5-2帶編號(hào)的層次圖(H圖)(2)特征3.結(jié)構(gòu)圖(1)定義b.方框之間的箭頭(或直線)表示模塊的調(diào)用關(guān)系;b.表示模塊M循環(huán)調(diào)用模塊A、B和C,如圖5-5所示。圖5-4判定為真時(shí)調(diào)用A,為假時(shí)調(diào)用B圖5-5模塊M循環(huán)調(diào)用模塊A、B、C(2)與層次圖的共性(3)適用性利用IPO圖或數(shù)據(jù)字典中的信息得到模塊調(diào)用時(shí)傳遞的信息,從而由層次圖導(dǎo)出結(jié)構(gòu)圖的(1)定義(2)目標(biāo)(3)信息流的類型①變換流圖5-6變換流圖5-6是一個(gè)標(biāo)準(zhǔn)的變換流,變換流具有如下特征:b.進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理后沿輸出通路變成外部形式離開軟件系。②事務(wù)流圖5-7事務(wù)流入數(shù)據(jù)的類型在若干個(gè)動(dòng)作序列中選出一個(gè)來執(zhí)行。圖5-7中的處理T稱為事務(wù)中心,它完b.分析每個(gè)事務(wù)以確定它的類型;c.根據(jù)事務(wù)類型選取一條活動(dòng)通路。2.設(shè)計(jì)過程圖5-8說明了使用面向數(shù)據(jù)流方法逐步設(shè)計(jì)的過程。圖5-8面向數(shù)據(jù)流方法的設(shè)計(jì)過程3.變換分析(1)例子③指示每小時(shí)英里數(shù)(mph),行駛的里程,每加侖油行駛的英里數(shù)(mpg)等。⑤超速警告:如果車速超過55英里/小時(shí),則發(fā)出超速警告鈴聲。(2)設(shè)計(jì)步驟b.實(shí)際操作假設(shè)在需求分析階段產(chǎn)生的數(shù)字儀表板系統(tǒng)的數(shù)據(jù)流圖如圖5-9所示圖5-9數(shù)字儀表板系統(tǒng)的數(shù)據(jù)流圖a.方法b.實(shí)際操作從圖5-9可以看出,數(shù)據(jù)沿著兩條輸入通路進(jìn)入系統(tǒng),然后沿著5條通路離開,沒有明顯的④確定輸入流和輸出流的邊界,從而孤立出變換中心b.實(shí)際操作對(duì)于汽車數(shù)字儀表板的例子,設(shè)計(jì)人員確定的流的邊界如圖5-10所示。圖5-10具有邊界的數(shù)據(jù)流圖圖5-11第一級(jí)分解的方法圖5-11說明了第一級(jí)分解的方法。位于軟件結(jié)構(gòu)最頂層的控制模塊Cm協(xié)調(diào)下述從屬的控第一,輸入信息處理控制模塊Ca,協(xié)調(diào)對(duì)所有輸入數(shù)據(jù)的接收。第二,變換中心控制模塊Ct,管理對(duì)內(nèi)部形式的數(shù)據(jù)的所有操作。第三,輸出信息處理控制模塊Ce,協(xié)調(diào)輸出信息的產(chǎn)生過程。c.實(shí)際操作對(duì)于數(shù)字儀表板的例子,第一級(jí)分解得出的結(jié)構(gòu)如圖5-12所示。每個(gè)控制模塊的名字表明圖5-12數(shù)字儀表板系統(tǒng)的第一級(jí)分解a.定義圖5-13表示進(jìn)行第二級(jí)分解的普遍途徑。圖5-13第二級(jí)分解的方法構(gòu)中Ca控制下的一個(gè)低層模塊;第二,沿輸出通路向外移動(dòng),把輸出通路中每個(gè)處理映射成直接或間接受模塊Ce控制的一第三,最后把變換中心內(nèi)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 新興科技在地理中的應(yīng)用試題及答案
- 2024年監(jiān)理工程師考試須知事項(xiàng)試題及答案
- 全媒體運(yùn)營(yíng)師平臺(tái)分析試題及答案
- 2024年投資咨詢工程師政策法規(guī)試題及答案
- 二年級(jí)信息技術(shù)下冊(cè) 文章標(biāo)題更醒目 1教學(xué)實(shí)錄 泰山版
- 2023四年級(jí)語文上冊(cè) 第三單元 11 蟋蟀的住宅配套教學(xué)實(shí)錄 新人教版
- 全國(guó)粵教清華版初中信息技術(shù)八年級(jí)下冊(cè)第2單元第1節(jié)《認(rèn)識(shí)智能生活》教學(xué)設(shè)計(jì)
- 山東省膠南市理務(wù)關(guān)鎮(zhèn)中心中學(xué)七年級(jí)信息技術(shù) 圖文并茂的作文教學(xué)實(shí)錄
- 2025年孔隙水壓力計(jì)項(xiàng)目建議書
- 第四章第二節(jié)世界的語言和宗教教學(xué)設(shè)計(jì)2023-2024學(xué)年人教版地理七年級(jí)上冊(cè)
- 農(nóng)業(yè)機(jī)械學(xué)育苗移栽機(jī)械
- 澳大利亞PSC檢查經(jīng)過
- 01-14江蘇大學(xué)車輛工程考研復(fù)試真題答案
- TMYZX 001-2021 釀酒專用小麥原糧
- 2023年湖北國(guó)土資源職業(yè)學(xué)院高職單招(數(shù)學(xué))試題庫含答案解析
- GB/T 37910.1-2019焊縫無損檢測(cè)射線檢測(cè)驗(yàn)收等級(jí)第1部分:鋼、鎳、鈦及其合金
- 雷鋒叔叔你在哪里教學(xué)反思
- (新版)國(guó)家統(tǒng)計(jì)執(zhí)法證資格考試備考題庫(含答案)
- 項(xiàng)目驗(yàn)收單標(biāo)準(zhǔn)模板
- 小學(xué) 三年級(jí) 心理健康《最好的老師-興趣的作用》教學(xué)設(shè)計(jì)
- DB12T 1040-2021 建筑工程規(guī)劃管理技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論