全套課件·《軟件工程(第二版)_第1頁
全套課件·《軟件工程(第二版)_第2頁
全套課件·《軟件工程(第二版)_第3頁
全套課件·《軟件工程(第二版)_第4頁
全套課件·《軟件工程(第二版)_第5頁
已閱讀5頁,還剩429頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件工程(第二版)前言 本書是依據(jù)教育部高職高專教育基礎(chǔ)課程教學(xué)的基本要求和高職高專教育專業(yè)人才培養(yǎng)目標(biāo)與規(guī)格編寫而成。 全書共分十四章。 第一、二章是軟件工程基礎(chǔ),主要討論軟件工程的發(fā)展歷程、軟件工程的結(jié)構(gòu)與分類和概要論述系統(tǒng)建設(shè)的基本思路與主要方法,以作為后續(xù)各章的預(yù)備知識和概念基礎(chǔ)。 第三、四章論述計算機工程及需求分析流程改革。 第五、六、七、八、九章討論軟件系統(tǒng)分析、設(shè)計與系統(tǒng)實施的方法軟件工程開發(fā)的項目管理與運行維護的基本知識。盡管一些新的方法有了很大發(fā)展,結(jié)構(gòu)化方法作為信息系統(tǒng)建設(shè)中比較成熟的方法與技術(shù),仍然在軟件工程建設(shè)中得到廣泛應(yīng)用,是本專業(yè)學(xué)生應(yīng)該掌握的基本方法與技能。前言

2、第十、十一、十二章討論面向?qū)ο蠓椒?。?0年來,在軟件工程領(lǐng)域,面向?qū)ο蠓椒ㄓ辛溯^大的發(fā)展,統(tǒng)一建模語言(UML)和統(tǒng)一過程(RUP)的建立和日趨完善使得面向?qū)ο蠓椒ㄔ趹?yīng)用上有了實際的工業(yè)標(biāo)準(zhǔn)。 第十三、十四章構(gòu)成本書的最后一部分,專門介紹比較新穎、頗具發(fā)展?jié)摿Φ能浖_發(fā)技術(shù),包括:快速原型技術(shù)、重用技術(shù)。第一章 軟件危機與軟件工程學(xué)習(xí)要點:軟件工程是在20世紀(jì)60年代末期提出的。這一概念的提出,其目的是倡導(dǎo)以工程的原理、原則和方法進行軟件開發(fā),以期解決當(dāng)時出現(xiàn)的“軟件危機”。本章介紹軟件危機和軟件工程的基本概念。第1章 軟件危機與軟件工程1.1 軟件危機1.2 軟件工程1.3 本章小結(jié) 1.

3、1軟件危機 軟件包括了使計算機運行所需要的各種程序及其有關(guān)的文檔資料。其中,程序是計算機任務(wù)的處理對象和處理規(guī)則的描述;文檔是為了理解程序所需的闡述性資料。 20世紀(jì)60至70年代,“軟件危機”一詞在計算機界廣為流傳,其主要針對當(dāng)時存在的軟件代價高和軟件錯誤多的現(xiàn)象。 1.1軟件危機1.1.1 軟件代價高1.1.2 軟件開發(fā)和維護中的嚴重問題退出1.1.3產(chǎn)生軟件危機的原因1.1.1軟件代價高計算機系統(tǒng)硬件/軟件成本變化趨勢在開發(fā)一個新型計算機系統(tǒng)或修改一個現(xiàn)有系統(tǒng)的過程中,最大部分的資金是用在軟件系統(tǒng)開發(fā)方面。二十年來軟件技術(shù)的發(fā)展硬件技術(shù) 計算速度容量增高成本下降 計算能力106-108倍

4、。 主頻 4.7M2G 內(nèi)存 256K-512MB, 2-4GB 外存 360K-680M 一張光盤1.5萬頁A4文字 40冊400頁書1.1.2 軟件開發(fā)和維護中的嚴重問題計算機系統(tǒng)發(fā)展的早期時代所形成的錯誤概念與做法,已經(jīng)嚴重阻礙了計算機軟件的開發(fā),更嚴重的是:用錯誤方法開發(fā)的軟件幾乎根本無法維護,只好提前報廢。1、軟件危機2、有那些軟件開發(fā)的錯誤方法和觀念(3)軟件產(chǎn)品的質(zhì)量量化分析不夠。(1) 軟件開發(fā)成本與進度估計不準(zhǔn)確。(2)閉門造車。軟件開發(fā)人員倉促上陣,編寫程序。(4)軟件重用性差。(5)軟件沒有適當(dāng)?shù)奈臋n資料。(6)軟件成本逐年上升。(1)建設(shè)環(huán)境的復(fù)雜性 軟件工程結(jié)構(gòu)復(fù)雜,

5、要涉及到用戶組織內(nèi)部與外部環(huán)境(2)用戶需求的多樣性 軟件開發(fā)失敗最主要的原因是:用戶對軟件需求描述 不精確,可能有遺漏、有二義性、有錯誤。 (3)建設(shè)內(nèi)容的復(fù)雜性 軟件是邏輯部件:試制階段難衡量;開發(fā)質(zhì)量較難評 價,開發(fā)過程管理和控制較難。(4)技術(shù)手段的復(fù)雜性 軟件設(shè)計、實施、維護技術(shù)手段的復(fù)雜性 。(5)建設(shè)所需資源的密集性 軟件系統(tǒng)是資金、勞動、智力、知識密集型大型項目, 各類的信息交流不及時是產(chǎn)生軟件危機的主要原因。1.1.3產(chǎn)生軟件危機的原因關(guān)于軟件危機的總結(jié)1、軟件是邏輯部件:試制階段難衡量;開發(fā)質(zhì)量較難評價,開發(fā)過程管理和控制較難;運行過程才能暴露沒有檢測出來的事故,相當(dāng)于修改

6、設(shè)計,軟件維護困難;2、軟件規(guī)模龐大,有技術(shù)問題,也有管理方法問題。3、早期開發(fā)的個體化;忽視需求分析;認為軟件開發(fā)寫程序;輕視維護,對用戶不了解,4、對前期工作不能忽視,做好軟件定義時期的工作,這是降低成本,提高件質(zhì)量的關(guān)鍵。5、嚴重性:在軟件開發(fā)的不同階段修改付出代價(后期是前期的2-3個數(shù)量級),軟件維護是極端艱巨復(fù)雜的工作,占55%70%)1. 2 軟件工程1.2.1 軟件工程的定義與基本原理1.2.2 軟件工程的目標(biāo)1.2.3 軟件工程框架及原則退出什么是軟件工程軟件工程是指把系統(tǒng)的、規(guī)范化的、可以度量的方法運用于軟件的開發(fā)、運行和維護的過程;簡言之,工程化在軟件方面的作用。以工程的

7、方法制作軟件項目project或產(chǎn)品product的全過程(從立項到交付)工程方法:人們利用技術(shù)(或工具)、技能通過有組織活動完成契約規(guī)定的目標(biāo),即按預(yù)定完工期交付合格成品。工程要素:人力、資金、技術(shù)工程目標(biāo):在給定的資金、限制的時間內(nèi),完成符合相應(yīng)標(biāo)準(zhǔn)的產(chǎn)品。1、軟件工程的七條基本原理(1)用分階段的生命周期計劃進行嚴格管理(2)堅持進行階段評審(3)實行嚴格的產(chǎn)品控制(4)采用現(xiàn)代程序設(shè)計技術(shù)(5)結(jié)果應(yīng)能清楚地審查(6)開發(fā)小組的人員應(yīng)該少而精(7)承認不斷改進軟件工程實踐的必要性1.2.2 軟件工程的目標(biāo)軟件工程的目標(biāo)可概括為:在給定成本、進度的前提下,開發(fā)出具有可修改性、有效性、可靠

8、性、可理解性、可維護性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性并滿足用戶需要的軟件產(chǎn)品。應(yīng)該特別指出;“可靠性”這個目標(biāo)在軟件工程中有著重要的意義。廣義上講,它涉及到產(chǎn)品設(shè)計的一系列問題,從而使產(chǎn)品能在相當(dāng)長的期間內(nèi)穩(wěn)定工作。狹義上講,可靠性是軟件成功運行的概率度量,可靠性分析和可靠性測試可作為衡量軟件質(zhì)量和其他開發(fā)過程的最重要的方法之一。1.2.3 軟件工程框架及原則原則:一、選取適宜的開發(fā)模型; 二、采用合適設(shè)計方法;三、提供高質(zhì)量工程支持; 四、重視開發(fā)過程管理。第2章 軟件生命周期及軟件開發(fā)模型學(xué)習(xí)要點: 軟件生命周期表明軟件從功能確定、設(shè)計,到開發(fā)成功投入使用,并在使用中

9、不斷地修改、增補和完善,直至被新的需要所替代而停止該軟件的使用的全過程。軟件開發(fā)模型是從軟件項目需求定義直至軟件經(jīng)使用后廢棄為止,跨越整個生存期的系統(tǒng)開發(fā)、運作和維護所實施的全部過程、活動和任務(wù)的結(jié)構(gòu)框架。第2章 軟件生命周期及軟件開發(fā)模型2.1 軟件生命周期2.2 軟件開發(fā)模型退出 軟件生命周期:軟件定義、軟件設(shè)計、軟件使用與維護三階段,而又可以具體分成幾個子階段。(1)可行性研究(2)需求分析和定義(3)總體設(shè)計(4)詳細設(shè)計(5)編碼(實現(xiàn))(6)軟件測試、運行維護2.1軟件生命周期2。2軟件開發(fā)生命周期過程和活動 軟件生命周期過程的IEEE(美國電氣電子工程師學(xué)會 IEEE)標(biāo)準(zhǔn)描述了

10、一系列活動和過程,對于IEEE Std1074-1995的軟件的開發(fā)和和維護來說這些活動是強制性的。它的目標(biāo)是為開發(fā)生命周期模型建立一個通用框架。在這一節(jié),我們描述由這一標(biāo)準(zhǔn)引入的主要過程和活動。 過程是一系列朝著特定目標(biāo)(例如,需求、管理、發(fā)布)執(zhí)行的活動。IEEE標(biāo)準(zhǔn)一共列出了17個過程(見表2.1)。把過程分組成更高層的抽象稱為過程組(process group)。過程組的例子是項目管理、前期開發(fā)、開發(fā)和后期開發(fā)。表2.1 IEEE 1074的軟件過程2。2軟件開發(fā)生命周期過程和活動 過程組 過程生命周期建模 選擇生命周期模型項目管理 項目啟動項目監(jiān)控和控制軟件質(zhì)量管理前期開發(fā) 概念探討

11、 系統(tǒng)配置開發(fā) 需求設(shè)計 實現(xiàn)后期開發(fā) 安裝 操作和支持 維護 報廢整體過程 驗證并確認 軟件配置管理 文檔開發(fā)培訓(xùn)2。2軟件開發(fā)生命周期過程和活動 最早出現(xiàn)的軟件開發(fā)模型是1970年WRoyce提出的瀑布模型,而后隨著軟件工程學(xué)科的發(fā)展和軟件開發(fā)的實踐,相繼提出了原型模型、演化模型、增量模型、噴泉模型等。 問題計劃 開發(fā)時期 運行時期圖2.2 瀑布模型問題定義可行性需求分析總體設(shè)計詳細設(shè)計編碼測試維護2.2.1 瀑布模型2.2.2 演化模型需求設(shè)計編碼測試集成需求設(shè)計編碼 測試集成需求設(shè)計編碼測試集成2.2.3 原型模型2.2.4 螺旋模型2.2.5 噴泉模型 關(guān)于 模型小結(jié) 螺旋模型是由上

12、面四個部分組成的迭代模型。螺旋模型的每一周期都包括需求定義、風(fēng)險分析、工程實現(xiàn)和評審四個階段。開發(fā)過程每迭代一次,螺旋線就增加一周,軟件開發(fā)又前進一個層次,系統(tǒng)又生成一個新版本,而軟件開發(fā)的時間和成本又有了新的投入。最后得到一個客戶滿意的軟件版本。 噴泉模型該模型表明軟件開發(fā)活動之間沒有明顯的間隙,用于支持面向?qū)ο箝_發(fā)過程。由于對象概念的引入,使分析、設(shè)計、實現(xiàn)之間的表達沒有明顯間隙。并且,這一表達自然地支持復(fù)用。第3章 計算機系統(tǒng)工程3.1 基于計算機的系統(tǒng)3.2 可行性研究 3.3 系統(tǒng)開發(fā)過程的新體系結(jié)構(gòu)快速原型與面向?qū)ο?3.4 本章小結(jié) 基于計算機的系統(tǒng)第3章 計算機系統(tǒng)工程 計算機

13、軟件工程和硬件工程可以看作是一門更廣義的學(xué)科“計算機系統(tǒng)工程”內(nèi)的活動。它們所要做的都是按一定的次序開發(fā)基于計算機的系統(tǒng)。計算機系統(tǒng)工程是指與構(gòu)造基于計算機系統(tǒng)有關(guān)的過程、方法和技術(shù)。它是一種問題求解活動。計算機系統(tǒng)工程的任務(wù)是:組織并指導(dǎo)系統(tǒng)工程師定義全系統(tǒng)各層次中的所有基于計算機系統(tǒng)的要素。 20世紀(jì)60年代開始發(fā)展起來的計算機系統(tǒng)工程,是計算機硬件、軟件、數(shù)據(jù)通信裝置、數(shù)據(jù)存儲設(shè)備、規(guī)章制度和有關(guān)人員的統(tǒng)一體。軟件工程在各個領(lǐng)域有著廣泛的應(yīng)用,如計算機輔助設(shè)計(CAD)系統(tǒng)、計算機輔助制造(CAM)系統(tǒng)、計算機輔助教學(xué)系統(tǒng)、計算機輔助醫(yī)療系統(tǒng)、軍用的計算機指揮系統(tǒng)、通信軟件工程、公用或?qū)?/p>

14、用的現(xiàn)代通信系統(tǒng)和信息服務(wù)系統(tǒng)都各具特色。管理軟件是一類最具代表性的軟件工程。 3.1 基于計算機的系統(tǒng)基于計算機的系統(tǒng)是“某些要素的一個集合,這些要素被組織起來以實現(xiàn)某種方法、過程或借助處理信息進行控制?!眻D3.1給出了基于計算機系統(tǒng)的系統(tǒng)要素及相互之間關(guān)系。圖3.1 基于計算機系統(tǒng)的系統(tǒng)要素及相互之間關(guān)系 3.1.1 計算機系統(tǒng)工程 計算機系統(tǒng)工程是一個問題求解活動,目的是揭示、分析所期望的功能,并把它們分配到各個單獨的系統(tǒng)要素中去。計算機系統(tǒng)開發(fā)設(shè)計周期見圖3.2。圖3.2 系統(tǒng)開發(fā)設(shè)計周期在系統(tǒng)的功能規(guī)范確立之后,下一步要對系統(tǒng)的功能進行認真、仔細的分析,問題的焦點集中于功能、性能、信

15、息流和容量上。一個計算機系統(tǒng)方案應(yīng)包括以下幾個方面的內(nèi)容: (1)任務(wù)的來源,技術(shù)要求,質(zhì)量指標(biāo)和經(jīng)費 . (2)采取的技術(shù)途徑。 (3)方案的規(guī)模,子系統(tǒng)的劃分。 (4)系統(tǒng)的數(shù)據(jù)庫結(jié)構(gòu)。 (5)預(yù)計系統(tǒng)的各項指標(biāo)。 (6)所需的設(shè)備、儀器、關(guān)鍵元器件、工藝工具 等 的購置情況及保證條件。 (7)研制周期、異常情況的處理等等。用戶中心設(shè)計UCD方法在某種程度上代表了當(dāng)今的計算機系統(tǒng)技術(shù)發(fā)展水平,使用該方法能設(shè)計極具競爭力的產(chǎn)品,UCD方法適合一切項目。現(xiàn)將傳統(tǒng)設(shè)計方法與用戶中心設(shè)計UCD方法加以比較。 傳統(tǒng)的設(shè)計方法技術(shù)驅(qū)動以組件為中心有限的多學(xué)科協(xié)作注重產(chǎn)品的內(nèi)部體系結(jié)構(gòu)沒有專門考慮用戶體

16、驗競爭意識不強開發(fā)先于用戶評價產(chǎn)品缺陷質(zhì)量觀不重視用戶測量只考慮現(xiàn)有用戶 UCD方法用戶驅(qū)動以解決方案為中心多學(xué)科小組成員協(xié)同工作注重產(chǎn)品的外部設(shè)計專門考慮用戶體驗以競爭為目標(biāo)由用戶評價設(shè)計方案后才開發(fā)用戶質(zhì)量觀很重視用戶測量考慮當(dāng)前和將來所有用戶圖3.3 UCD方法和傳統(tǒng)設(shè)計方法的比較 3.1.2 硬件和硬件工程 基于計算機的系統(tǒng)離不開計算機硬件的支撐。計算機系統(tǒng)工程師根據(jù)系統(tǒng)需求為硬件系統(tǒng)指派任務(wù),產(chǎn)生硬件需求。 21世紀(jì)以來,信息可以很方便地通過計算機網(wǎng)絡(luò)實現(xiàn)共享。作為網(wǎng)絡(luò)文件服務(wù)器的計算機,可以給分布在網(wǎng)絡(luò)上不同站點的客戶提供共享的公用程序和數(shù)據(jù),這就是客戶服務(wù)器計算模式。計算機的硬件

17、工程是在幾十年電子設(shè)計經(jīng)驗的基礎(chǔ)上發(fā)展起來的,一般將硬件工程分為三個階段。硬件工程階段需解決的問題成果(一)硬件研制計劃需求分析根據(jù)功能可選擇、采購的硬件?哪幾種硬件接口?必須制造的硬件?潛在的問題及資源?確定項目成本估計、工程進度估計、硬件規(guī)格說明(二)硬件設(shè)計硬件實現(xiàn)確定硬件元素中的所有元件精確的功能、性能和接口需求。設(shè)計約束條件(如尺寸,環(huán)境)及測試準(zhǔn)則;必要時建造原型并對原型進行測試;畫出生產(chǎn)圖、硬件規(guī)格說明書、對規(guī)格說明書評審和修改(三)生產(chǎn)、銷售售后服務(wù)質(zhì)量如何得到保證?產(chǎn)品的維護和修理如何實現(xiàn)?建立質(zhì)量保證方法、建立產(chǎn)品銷售機構(gòu)、儲備備件,售后服務(wù)表3.1 硬件工程三個階段 3.

18、1.3 軟件和軟件工程 從系統(tǒng)工程的角度來看,軟件與硬件、軟件工程與硬件工程分別是基于計算機系統(tǒng)和基于計算機的系統(tǒng)工程的重要組成部分。系統(tǒng)工程的論證階段應(yīng)該確定系統(tǒng)的軟硬件功能和性能。系統(tǒng)對軟件提出的功能和性能要求將成為軟件需求分析的基礎(chǔ)?;谟嬎銠C系統(tǒng)的軟件要素由程序、數(shù)據(jù)和文檔組成。它們分為兩類應(yīng)用軟件與系統(tǒng)軟件:應(yīng)用軟件實現(xiàn)信息處理,系統(tǒng)軟件完成使應(yīng)用軟件能與其他系統(tǒng)要素交互的控制功能。 一個基于計算機的系統(tǒng)可以用輸入處理輸出(IPO)模型來表示。軟件要素在這個模型的各個方面都起著一定的作用。 (1)軟件從系統(tǒng)的外部實體或其他系統(tǒng)要素(包括宏要素)接收輸入信息。 (2)軟件還用于建立數(shù)據(jù)

19、庫的接口,使程序能夠存取預(yù)先存儲的數(shù)據(jù)。(3)軟件實現(xiàn)系統(tǒng)功能所需要的計算方法。(4)在實際使用中,軟件必須產(chǎn)生輸出,把數(shù)據(jù)轉(zhuǎn)換成某種能適合于輸出介質(zhì)的格式,或適合于輸出設(shè)備接口的格式。軟件工程三個階段軟件工程階段必須完成的步驟階段成果(一)軟件定義制定軟件項目規(guī)劃;需求分析和定義;確定軟件性能和資源約束;軟件要素定義驗收標(biāo)準(zhǔn)成本、工程進度估計;通過軟件原型化信息域分析獲得軟件規(guī)格說明;對軟件規(guī)格說明技術(shù)評審(二)軟件開發(fā)、實現(xiàn)軟件總體結(jié)構(gòu)設(shè)計軟件模塊結(jié)構(gòu);數(shù)據(jù)設(shè)計、過程設(shè)計接口及信息結(jié)構(gòu);編碼生成源程序代碼確定一些有效性準(zhǔn)則;對規(guī)格說明書評審修改;根據(jù)準(zhǔn)則判斷軟件質(zhì)量(三)檢驗、發(fā)行、維護測

20、試軟件,找出錯誤:進行單元測試調(diào)試,組裝測試調(diào)試;開發(fā)用戶文檔;把軟件發(fā)行給終端用戶對測試文檔、測試用例和測試結(jié)果進行評審;建立配置管理機制;整個使用壽命中維護軟件;3.1.4 人機工程 人機工程是應(yīng)用從心理學(xué)和方法論導(dǎo)出的知識來確定和設(shè)計高質(zhì)量HCI(人機界面)的多學(xué)科活動。人機工程過程包括以下步驟:(1)活動分析。 (2)語義分析和設(shè)計: (3)語法和詞法設(shè)計: (4)用戶環(huán)境設(shè)計: (5)原型: 人機工程的關(guān)鍵要素是設(shè)計一個整體解決方案,它應(yīng)該對用戶而言: 易于購買、易于安裝 、易于學(xué)習(xí)、易于使用、直觀、吸引人、 有用3.1.5 數(shù)據(jù)庫和數(shù)據(jù)庫工程 數(shù)據(jù)庫系統(tǒng)是基于計算機系統(tǒng)的重要組成部

21、分,它將有關(guān)的硬件、軟件、數(shù)據(jù)和數(shù)據(jù)庫管理人員組合起來,為用戶提供信息服務(wù)。開發(fā)、運行和管理一個數(shù)據(jù)庫系統(tǒng)是一項復(fù)雜的數(shù)據(jù)庫工程,人們也常稱之為數(shù)據(jù)庫工程。 階段任務(wù)結(jié)果(一)需求分析、可行性研究調(diào)查用戶信息需求、處理要求進行可行性論證;提出成本預(yù)算和工作計劃(二)選擇硬件和軟件應(yīng)確定數(shù)據(jù)管理系統(tǒng);支持數(shù)據(jù)庫查詢、維護和分析確定運行的操作系統(tǒng)、網(wǎng)絡(luò)環(huán)境(三)數(shù)據(jù)庫設(shè)計與實現(xiàn)根據(jù)需求分析和數(shù)據(jù)分析;概念設(shè)計;邏輯設(shè)計;物理設(shè)計;評審、測試;產(chǎn)生需求說明和數(shù)據(jù)說明;產(chǎn)生數(shù)據(jù)庫概念模型;產(chǎn)生邏輯模型;產(chǎn)生數(shù)據(jù)軟件工程的原則;生成各種文檔(四)運行和管理及時補充、修改和更新數(shù)據(jù)庫;數(shù)據(jù)的收集、整理、分

22、類;儲存數(shù)據(jù)庫的管理和維護對數(shù)量大、類型多、關(guān)系復(fù)雜的數(shù)據(jù)存儲應(yīng)有利于數(shù)據(jù)的查詢、修改并盡量減少數(shù)據(jù)的冗余;為用戶提供培訓(xùn)及有關(guān)資料表3.4 數(shù)據(jù)庫工程的階段 不同的數(shù)據(jù)存儲管理模式有不同的特點,適用范圍也不相同。 3.2 可行性研究 可行性研究的目的就是用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決。 在討論一個項目是否可行,需要從市場可行性、技術(shù)可行性、經(jīng)濟可行性、法律可行性分析幾個方面著手進行考慮。3.2.1 可行性研究的任務(wù) 圖3.4表明了可行性研究的步驟 3.2.2 市場可行性 要求在項目啟動時定位目標(biāo)市場,清楚在這個市場中的所有用戶及他們的特點,并且清楚大部分目標(biāo)用戶當(dāng)前所采用

23、的解決方案,從而掌握產(chǎn)品競爭形勢。必須在項目一開始就得到這些信息。如果沒有這些信息或信息不全,那么接下來的設(shè)計活動是否有效就值得懷疑了。3.2.3 經(jīng)濟可行性 基于計算機系統(tǒng)的成本效益分析是可行性研究的重要內(nèi)容,它用于評估基于計算機系統(tǒng)的經(jīng)濟合理性,給出系統(tǒng)開發(fā)的成本論證,并將估算的成本與預(yù)期的利潤進行對比。計算機系統(tǒng)的成本由四個部分組成: 購置并安裝軟硬件及有關(guān)設(shè)備的費用; 系統(tǒng)開發(fā)費用; 系統(tǒng)安裝、運行和維護費用; 人員培訓(xùn)費用。在系統(tǒng)分析和設(shè)計階段只能得到上述費用的預(yù)算,即估算成本。在系統(tǒng)開發(fā)完畢并交付用戶運行后,上述費用的統(tǒng)計結(jié)果就是實際成本。 系統(tǒng)效益包括經(jīng)濟效益和社會效益兩部分。經(jīng)

24、濟效益指應(yīng)用系統(tǒng)為用戶增加的收入,可以通過直接的或統(tǒng)計的方法估算。社會效益只能用定性的方法估算。1成本估計 (1)代碼行技術(shù) (2)任務(wù)分解技術(shù) 2成本效益分析 成本效益分析的第一步是估計開發(fā)成本、運行費用和新系統(tǒng)將帶來的經(jīng)濟效益。3貨幣的時間價值通常用利率的形式表示貨幣的時間價值。假設(shè)年利率為i,如果現(xiàn)在存入P元,則n年后可以得到的錢數(shù)為:F=P(1i)n這也就是P元錢在n年后的價值。反之,如果n年后能收入F元錢,那么這些錢的現(xiàn)在價值是:P=F/(li)n 假定年利率為12,利用上面計算貨幣現(xiàn)在價值的公式可以算出修改庫存清單系統(tǒng)后每年預(yù)計節(jié)省的錢的現(xiàn)在價值,如表所示。年將來值(元)(li)n

25、現(xiàn)在值(元)累計的現(xiàn)在值(元)125001.122232.142232.14225001.251992.984225.12325001.401779.456004.57425001.571588.807593.37525001.761418.579011.944投資回收期 所謂投資回收期就是使累計的經(jīng)濟效益等于最初投資所需要的時間。投資回收期越短就越能獲得利潤。例如,修改庫存清單系統(tǒng):兩年以后可以節(jié)省4225.12元,比最初的投資(5000元)還少774.88元; 三年以后將再節(jié)省1779.45元,774.881779.45=0.44,因此,投資回收期是2.44年。 5純收入 衡量工程價值的另

26、一項經(jīng)濟指標(biāo)是工程的純收入,也就是在整個生命周期之內(nèi)系統(tǒng)的累計經(jīng)濟效益(折合成現(xiàn)在值)與投資之差。 3.2.4 技術(shù)可行性 技術(shù)可行性的評估必須在軟件系統(tǒng)分析和定義過程中進行,當(dāng)技術(shù)可行性確定后,就可以完成在規(guī)格說明書。一般地,技術(shù)可行性要考慮的情況包括: 開發(fā)風(fēng)險:在分析時給出的各種約束條件下,系統(tǒng)能否被設(shè)計出來,并實現(xiàn)必需的功能和性能?資源有效性:可用于開發(fā)系統(tǒng)元素的人員是否存在問題?是否具備用于建立系統(tǒng)的其他資源(硬件、軟件)?技術(shù):相關(guān)技術(shù)的發(fā)展是否能支持這個系統(tǒng)?3.2.5 方案選擇 系統(tǒng)分析任務(wù)完成后,系統(tǒng)工程師開始研究問題求解方案。通常系統(tǒng)工程師將一個大的復(fù)雜系統(tǒng)分解為若干個子系

27、統(tǒng);精確地定義子系統(tǒng)的界面、功能和性能;給出各子系統(tǒng)之間的關(guān)系。這樣可以降低解決方案的復(fù)雜性,有利于人員的組織和分工,提高系統(tǒng)開發(fā)效率和工作質(zhì)量??尚行匝芯康慕Y(jié)果可作為系統(tǒng)規(guī)格說明書的一個附件。 項目背景:問題描述;實現(xiàn)環(huán)境;限制條件;管理概要與注意事項:重要的研究結(jié)果;說明;注意事項;影響;候選方案:候選系統(tǒng)的配置;選擇最終方案的準(zhǔn)則;系統(tǒng)描述:簡略的范圍描述;分配元素的可行性;市場可行性 :項目是否有潛在市場,以及市場的變化對項目影響經(jīng)濟可行性(成本效益分析):經(jīng)費概算;預(yù)期的經(jīng)濟效益;技術(shù)可行性(技術(shù)風(fēng)險評價):技術(shù)實力;已有工作基礎(chǔ);設(shè)備條件;法律可行性:系統(tǒng)開發(fā)可能導(dǎo)致的侵權(quán)、違法和

28、責(zé)任;用戶使用可行性:用戶單位的行政管理、工作制度;使用人員的素質(zhì);其他與項目有關(guān)的問題:其他方案介紹;未來可能的變化。表3.7 可行性研究報告目錄 3.3 系統(tǒng)開發(fā)過程的新體系結(jié)構(gòu)快速原型與面向?qū)ο?1存在的問題 (1)有些類型的系統(tǒng)需求是模糊的 (2)項目參與者之間存在通信鴻溝 (3)預(yù)先定義的需求可能是過時的 2解決問題的途徑 為克服傳統(tǒng)方法的缺點,人們在實踐中逐漸創(chuàng)造出快速原型法和面向?qū)ο蠓椒ǖ溶浖こ痰男峦緩健?面向?qū)ο蟮慕y(tǒng)一軟件開發(fā)方法迭代開發(fā)模式3.4 本章小結(jié)計算機系統(tǒng)工程是指與構(gòu)造基于計算機系統(tǒng)有關(guān)的過程、方法和技術(shù)。它是一種問題求解活動。計算機系統(tǒng)工程的任務(wù)是:組織并指導(dǎo)系

29、統(tǒng)工程師定義全系統(tǒng)各層次中的所有基于計算機系統(tǒng)的要素(硬件、軟件、人、數(shù)據(jù)庫、文檔、過程)。本章首先闡述了計算機系統(tǒng)工程的總體設(shè)計方案的內(nèi)容及要點:硬件工程、軟件工程、人機工程和數(shù)據(jù)庫工程。然后進一步闡述了計算機系統(tǒng)工程可行性研究的目的:應(yīng)確定問題是否值得去解;任務(wù)是從市場、經(jīng)濟、技術(shù)、法律、開發(fā)方案的選擇性四方面研究計算機系統(tǒng)工程可能性;強調(diào)了技術(shù)可行性研究應(yīng)給以高度重視,這一階段決策的失誤將會給開發(fā)工作帶來災(zāi)難性的影響。介紹了系統(tǒng)結(jié)構(gòu)模板的概念與使用要點。第4章 需求分析軟件需求分析就是把軟件計劃期間建立的軟件可行性分析求精和細化,分析各種可能的解法,并且分配給各個軟件元素。需求分析是軟件

30、定義階段中的最后一步,是確定系統(tǒng)必須完成哪些工作,也就是對目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。在本章首先我們介紹需求分析的基礎(chǔ),然后介紹結(jié)構(gòu)化需求分析方法,最后介紹其它分析方法與圖形工具分析方法。第4章 需求分析4.1 需求分析基礎(chǔ) 4.4 實體關(guān)系圖 4.6 本章小結(jié) 4.5 需求規(guī)格說明與評審 4.3 其它分析方法與圖形工具 4.2 結(jié)構(gòu)化分析方法 4.1 需求分析基礎(chǔ) 4.1.1 分析的任務(wù)與原則 4.1.2 初步需求獲取技術(shù) 4.1.3 需求建模 4.1.4 開發(fā)原型系統(tǒng) 4.1.1 分析的任務(wù)與原則 軟件需求分析的任務(wù)是:深入描述軟件的功能和性能,確定軟件設(shè)計的約束和軟件同其他

31、系統(tǒng)元素的接口細節(jié),定義軟件的其他有效性需求,借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)邏輯模型,解決目標(biāo)系統(tǒng)“做什么”的問題。需求分析任務(wù)與其實現(xiàn)步驟如圖4.1所示。需求分析可分為需求提出、需求分析描述及需求評審三個階段。圖4.1 需求提出和分析的結(jié)果需求提出需求提出主要集中于描述系統(tǒng)目的。需求提出和分析僅僅集中在使用者對系統(tǒng)的觀點上。用戶、開發(fā)人員和用戶確定一個問題領(lǐng)域,并定義一個描述該問題的系統(tǒng)。這樣的定義稱作系統(tǒng)規(guī)格說明,并且它在用戶和開發(fā)人員之間充當(dāng)合同。 需求分析描述 在問題分析階段分析人員的主要任務(wù)是:對用戶的需求進行鑒別、綜合和建模,清除用戶需求的模糊性、歧義性和不一致性,分析系統(tǒng)的

32、數(shù)據(jù)要求,為原始問題及目標(biāo)軟件建立邏輯模型。分析人員的主要做法是:要將對原始問題的理解與軟件開發(fā)經(jīng)驗結(jié)合起來,以便發(fā)現(xiàn)哪些要求是由于用戶的片面性或短期行為所導(dǎo)致的不合理要求,哪些是用戶尚未提出但具有真正價值的潛在需求。 需求評審 在需求評審階段,分析人員要在用戶和軟件設(shè)計人員的配合下對自己生成的需求規(guī)格說明和初步的用戶手冊進行復(fù)核,以確保軟件需求的完整、準(zhǔn)確、清晰、具體,并使用戶和軟件設(shè)計人員對需求規(guī)格說明和初步的用戶手冊的理解達成一致。一旦發(fā)現(xiàn)遺漏或模糊點,必須盡快更正,再行檢查。 4.1.2 初步需求獲取技術(shù) 為了完成軟件需求任務(wù),分析人員必須掌握一些基本技術(shù),主要有:初步需求獲取技術(shù)、需

33、求建模、以及用于需求分析的快速原型技術(shù);一些公共的技術(shù)包括:采訪、觀察、先前的系統(tǒng)版本的測試和系統(tǒng)分析。作為一個好的需求獲取技術(shù)的顯著特征是:方便通信(可以通過易于理解的語言)。提供定義系統(tǒng)模塊的方法。鼓勵分析員用問題空間的術(shù)語而不是軟件術(shù)語去思考問題和編制文檔。允許并提醒分析員有多種可供選擇的設(shè)計方案。適應(yīng)需求的變化。4.1.3 需求建模 由于用戶群體的各個用戶往往會從不同的角度、不同的抽象級別上闡述他們對原始問題的理解和對目標(biāo)軟件的需求,因此,有必要為原始問題及目標(biāo)軟件解建立模型。這種模型一方面用于精確地記錄用戶從各個視點、不同抽象級別上對原始問題及目標(biāo)軟件的描述;另一方面,它也將幫助分析

34、人員去偽存真、由此及彼、由表及里挖掘用戶需求。建模的步驟是: (1)獲得當(dāng)前系統(tǒng)的物理模型 (2)抽象出當(dāng)前系統(tǒng)的邏輯模型。 (3)建立目標(biāo)系統(tǒng)的邏輯模型。 圖4.2 軟件需求建模的任務(wù) 4.1.4 開發(fā)原型系統(tǒng) 快速原型方法核心思想是:在軟件開發(fā)的早期快速建立目標(biāo)軟件的原型,讓用戶對原型進行評估并提出修改意見,當(dāng)原型幾經(jīng)改進最終確定后,它將由軟件設(shè)計和編碼階段進化成軟件產(chǎn)品;或者設(shè)計和編碼人員遵循原型所確立的外部特征實現(xiàn)軟件產(chǎn)品。把建立原型系統(tǒng)作為一種可能采取的策略的主要理由如下:(1)由于用戶與軟件設(shè)計人員認識上的局限,不能預(yù)先指定所有要求,因此在開發(fā)過程中重復(fù)和反復(fù)是必要的和不可避免的;

35、(2)在用戶和系統(tǒng)分析員之間存在固有的通信鴻溝,用戶需要一個“活的”系統(tǒng)模型,以便獲得實踐經(jīng)驗,以便溝通;(3)目前有快速建立原型系統(tǒng)的工具可供選用。4.2 結(jié)構(gòu)化分析方法此方法基于模塊化的思想,采用“自頂向下,逐步求精”的技術(shù)對系統(tǒng)進行劃分。結(jié)構(gòu)化方法是結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計和結(jié)構(gòu)化編程的總稱。結(jié)構(gòu)化方法由于具有簡單易懂、使用方便的特點,且出現(xiàn)較早,所以獲得了廣泛的應(yīng)用。4.2 結(jié)構(gòu)化分析方法4.2.1 結(jié)構(gòu)化分析的策略 4.2.2 數(shù)據(jù)流圖 4.2.3 數(shù)據(jù)字典 4.2.4 小說明 4.2.5 結(jié)構(gòu)化分析實施步驟 4.2.1 結(jié)構(gòu)化分析的策略 一旦基于計算機系統(tǒng)的功能被分配到各個系統(tǒng)元素,

36、系統(tǒng)分析員就能夠據(jù)此建立起一個模型,用以表達系統(tǒng)元素之間的相互關(guān)系,并為今后的需求分析和設(shè)計奠定基礎(chǔ)。為了開發(fā)系統(tǒng)模型,使用一個“結(jié)構(gòu)模板”。 圖4.3 結(jié)構(gòu)模板的格式 下圖給出傳送帶在線貨物分類系統(tǒng)的總體結(jié)構(gòu)關(guān)系圖 4.2.2 數(shù)據(jù)流圖 數(shù)據(jù)流圖描繪系統(tǒng)的邏輯模型,圖中沒有任何具體的物理元素,只是描繪信息在系統(tǒng)中流動和處理的情況。數(shù)據(jù)流圖的特點是:它是邏輯系統(tǒng)的圖形表示,容易理解,是極好的通信工具,設(shè)計數(shù)據(jù)流圖只需考慮系統(tǒng)必須完成的基本邏輯功能,不需要考慮如何實現(xiàn)這些功能,是軟件設(shè)計很好的出發(fā)點。1符號數(shù)據(jù)源點或終點:正方形(或立方體)。變換數(shù)據(jù)處理:圓角矩形(或圓形)。數(shù)據(jù)存儲:開口矩形(

37、或兩條平行橫線)。數(shù)據(jù)流:箭頭表示,即信息與數(shù)據(jù)的流動方向。 數(shù)據(jù)流圖有四種基本符號。2例子 假設(shè)一家工廠的采購部每天需要一張定貨報表,報表按零件編號排序,表中列出所有需要再次定貨的零件。對于每個再次定貨的零件應(yīng)該列出下述數(shù)據(jù): 零件編號,零件名稱,定貨數(shù)量,目前價格,主要供應(yīng)者,次要供應(yīng)者。零件入庫或出庫被稱為事務(wù),通過放在倉庫中的CRT終端把事務(wù)報告給定貨系統(tǒng)。當(dāng)某種零件的庫存數(shù)量少于庫存量臨界值時就應(yīng)該再次定貨。定貨系統(tǒng)的數(shù)據(jù)流圖的成份 源點/終點處理采購員倉庫管理員產(chǎn)生報表處理事務(wù)數(shù)據(jù)流數(shù)據(jù)存儲定貨報表零件編號零件名稱定貨數(shù)量目前價格主要供應(yīng)者次要供應(yīng)者定貨信息(定貨報表)庫存清單*零

38、件編號*庫存量庫存量臨界值事務(wù)零件編號*事務(wù)類型數(shù)量*定貨系統(tǒng)基本系統(tǒng)模型把處理事務(wù)功能進一步分解后的數(shù)據(jù)流圖 3命名 數(shù)據(jù)流圖中每個成份的命名是否恰當(dāng),直接影響數(shù)據(jù)流圖的可理解性。 為數(shù)據(jù)流命名:(1)名字應(yīng)代表整個數(shù)據(jù)流(或數(shù)據(jù)存儲)的內(nèi)容,而不是僅僅反映它的某些成份。(2)不要使用空洞的、缺乏具體含義的名字(如“數(shù)據(jù)”、“信息”、“輸入”之類)。(3)如果在為某個數(shù)據(jù)流(或數(shù)據(jù)存儲)起名字時遇到了困難,則很可能是因為對數(shù)據(jù)流圖分解不恰當(dāng)造成的,應(yīng)該試試重新分解,看是否能克服這個困難。為處理命名: (1)通常先為數(shù)據(jù)流命名,然后再為與之相關(guān)聯(lián)的處理命名 (2)名字應(yīng)該反映整個處理的功能,而

39、不是它的一部分功能。 (3)名字最好由一個具體的及物動詞,加上一個具體的賓語組成。 (4)通常名字中僅包括一個動詞,如果必須用兩個動詞才能描述整個處理的功能,則把它再分解成兩個處理可能更恰當(dāng)些。(5)如果在為某個處理命名時遇到困難,則很可能是發(fā)現(xiàn)了分解不當(dāng)?shù)嫩E象,應(yīng)考慮重新分解。4用途 畫數(shù)據(jù)流圖的基本目的是利用它作為交流信息的工具。 數(shù)據(jù)流圖的另一個主要用途是作為分析和設(shè)計的工具。 4.2.3 數(shù)據(jù)字典 1數(shù)據(jù)字典的內(nèi)容 (1)數(shù)據(jù)流 (2)數(shù)據(jù)流分量(即數(shù)據(jù)元素) (3)數(shù)據(jù)存儲 (4)處理 2定義數(shù)據(jù)的方法 由數(shù)據(jù)元素組成數(shù)據(jù)的方式有下述幾種基本類型:(1)順序:即以確定次序連接兩個或多

40、個分量。(2)選擇:即從兩個或多個可能的元素中選取一個。(3)重復(fù):即把指定的分量重復(fù)零次或多次。3實例 (1)數(shù)據(jù)流條目一個完整的數(shù)據(jù)流條目應(yīng)該包括以下內(nèi)容:名稱描述頻率和數(shù)據(jù)量數(shù)據(jù)結(jié)構(gòu)例如,“圖書管理系統(tǒng)”中的“入庫單”是一個數(shù)據(jù)流,對它的說明如下:入庫單=分類目錄號+數(shù)量+書名+作者+內(nèi)容摘要+價格+購書日期(2)數(shù)據(jù)存儲條目名稱描述數(shù)據(jù)存儲方式關(guān)鍵碼頻率和數(shù)據(jù)量安全性要求數(shù)據(jù)結(jié)構(gòu)例如,同樣圖書管理系統(tǒng)中的“目錄文件”是個數(shù)據(jù)存儲,對它的說明如下:文件名:目錄文件 組成:分類目錄號+書名+作者+內(nèi)容摘要+價格+入庫日期+總數(shù)+庫存數(shù)+圖書流水號4.2.4 小說明 小說明是用來描述加工的。

41、集中描述一個加工“做什么”,即加工邏輯,也包括其他一些和加工有關(guān)的信息,如執(zhí)行條件、優(yōu)先級、執(zhí)行頻率、出錯處理等。 目前小說明一般用自然語言、結(jié)構(gòu)化自然語言、判定表和判定樹等來描述。在描繪復(fù)雜的關(guān)系時,圖形比文字敘述優(yōu)越得多,它形象直觀,一目了然。4.2.5 結(jié)構(gòu)化分析實施步驟 第一步,確定系統(tǒng)邊界,畫出系統(tǒng)環(huán)境圖。 第二步,自頂向下,畫出各層數(shù)據(jù)流圖。分層數(shù)據(jù)流圖和圖中的加工進行編號規(guī)則 (1)頂層圖不參與數(shù)據(jù)流圖編號,頂層圖中的惟一加工也不編號。(2)從0層圖開始的所有子圖和加工均需編號,子圖的編號為分解的父圖中相應(yīng)加工編號。(3)加工的編號由相應(yīng)的子圖號、小數(shù)點、加工在子圖中的順序號組成

42、。第三步,定義數(shù)據(jù)字典。 第四步,定義小說明。 第五步,匯總前面各步驟的結(jié)果。 注意事項:(1)模型平衡規(guī)則 數(shù)據(jù)流圖中所有的圖形元素必須根據(jù)它們的用法規(guī)則正確使用。 數(shù)據(jù)字典中的定義使用合法的邏輯構(gòu)造符號。 數(shù)據(jù)流圖中最底層的加工必須在小說明中有定義。父圖和子圖必須平衡。 小說明和數(shù)據(jù)流圖的圖形表示必須一致。 (2)控制復(fù)雜性的一些規(guī)則 上層數(shù)據(jù)流可以打包(打包的數(shù)據(jù)流作特殊標(biāo)記),上、下層數(shù)據(jù)流的對應(yīng)關(guān)系用數(shù)據(jù)字典描述(編號對應(yīng)),同層的數(shù)據(jù)流也可編號對應(yīng),避免形成復(fù)雜的連線;只有一點限制,數(shù)據(jù)流的性質(zhì)(輸入、輸出)必須一致。 4.3 其它分析方法與圖形工具 1結(jié)構(gòu)化自然語言結(jié)構(gòu)化自然語言

43、的語法通常分為內(nèi)外兩層,外層語法描述操作的控制結(jié)構(gòu),如順序、選擇、循環(huán)等,這些控制結(jié)構(gòu)將加工中的各個操作連接起來。內(nèi)層語法一般沒有什么限制,就用自然語言描述。 2層次方框圖 層次方框圖用樹形結(jié)構(gòu)的一系列多層次的矩形框描繪數(shù)據(jù)的層次結(jié)構(gòu)。樹形結(jié)構(gòu)的頂層是一個單獨的矩形框,它代表完整的數(shù)據(jù)結(jié)構(gòu),下面的各層矩形框代表這個數(shù)據(jù)的子集,最底層的各個框代表組成這個數(shù)據(jù)的實際數(shù)據(jù)元素(不能再分割的元素)。 例如,描繪一家計算機公司全部產(chǎn)品的數(shù)據(jù)結(jié)構(gòu)可以用圖中的層次方框圖表示。這家公司的產(chǎn)品由硬件、軟件和服務(wù)三類產(chǎn)品組成,軟件產(chǎn)品又分為系統(tǒng)軟件和應(yīng)用軟件,系統(tǒng)軟件又進一步分為操作系統(tǒng)、編譯程序和軟件工具。3W

44、arnier圖 用Warnier圖可以表明信息的邏輯組織 軟件產(chǎn)品系統(tǒng)軟件應(yīng)用軟件操作系統(tǒng)(P1)編譯程序(P2)軟件工具編譯程序(P3)測試驅(qū)動程序(P4)設(shè)計輔助工具(P5)4IPO圖 IPO圖是輸入處理輸出圖的簡稱 ,它的基本形式是在左邊的框中列出有關(guān)的輸入數(shù)據(jù),在中間的框內(nèi)列出主要的處理,在右邊的框內(nèi)列出產(chǎn)生的輸出數(shù)據(jù)。 圖4.11 IPO圖的一個例子 圖4.12 改進的IPO圖5判定表 判定表常用來描述一些不易用語言表達清楚或需要很大篇幅才能用語言表達清楚的加工。旅游時間79,12月l6,10,11月定票量20202020折扣量5%15%20%30%表4.2 旅游價格表 在表4.2中

45、,I區(qū)的條件類別有兩個:旅游時間和訂票量,區(qū)內(nèi)列出所有四種條件組合,區(qū)內(nèi)只有一個操作,區(qū)標(biāo)明在某種條件組合下操作的執(zhí)行情況。I 條件類別 條件組合III 操作 操作的執(zhí)行表4.3 判定表 4.4 實體關(guān)系圖 4.4.1 數(shù)據(jù)對象、屬性與關(guān)系 4.4.2 E-R方法和實體模型 4.4.3 數(shù)據(jù)結(jié)構(gòu)的規(guī)范化 4.4.1 數(shù)據(jù)對象、屬性與關(guān)系 對象可以是人、是物,還可以是實際的東西或概念的東西,例如,大學(xué)、城市等。對象還可以指事物與事物間的聯(lián)系。屬性則是指事物的性質(zhì)或特征,數(shù)據(jù)對象由其屬性刻畫。 例如,學(xué)生文件就由多個記錄組成,這些記錄放在一起構(gòu)成一個二維表。表中每一橫排叫做一個記錄或元組,每一縱列

46、叫做一個屬性,參看表4.4。 表4.4 學(xué)生文件學(xué)號姓名性別年齡專業(yè)951136鄭楓女19計算機科學(xué)與技術(shù)951137雷昊男18計算機科學(xué)與技術(shù)951138李博達男18機械工程為確保模型的一致性并消除數(shù)據(jù)冗余,分析人員要掌握以下規(guī)范化規(guī)則:(1)數(shù)據(jù)對象的任何實例對每個屬性必須有且僅有一個屬性值。(2)屬性是原子數(shù)據(jù)項,不能包含內(nèi)部數(shù)據(jù)結(jié)構(gòu)。(3)如果數(shù)據(jù)對象的關(guān)鍵屬性多于一個,那么其他的非關(guān)鍵屬性必須表示整個數(shù)據(jù)對象而不是部分關(guān)鍵屬性的特征。(4)所有的非關(guān)鍵屬性必須表示整個對象而不是部分屬性的特征。4.4.2 E-R方法和實體模型 實體關(guān)系圖是表示數(shù)據(jù)對象及其關(guān)的圖形語言機制。l方框表示實

47、體型。在框內(nèi)寫上實體名,如“學(xué)生”實體型。l橢圓框表示實體有關(guān)的屬性。橢圓內(nèi)標(biāo)記屬性的名字。l 箭頭表示實體與屬性之間的聯(lián)系。 l菱形框表示實體之間的聯(lián)系。 一對一的聯(lián)系(1:1)即一個實體在此種聯(lián)系下只能對應(yīng)一個實體;一對多的聯(lián)系(1:n)即一個實體在此種聯(lián)系下可對應(yīng)其他一個以上的實體;多對多的聯(lián)系(m:n)即一個實體類型中的多個實體與另一個實體類型中的多個實體相聯(lián)系。通常實體聯(lián)系有三種類型:例如,在教學(xué)管理中,學(xué)校開設(shè)若干門課程,一個教師可以教授其中的一門或多門課程,每位學(xué)生也需要學(xué)習(xí)其中的幾門課程。因此,教學(xué)管理中涉及的對象(實體型)有學(xué)生、教師和課程。用E-R圖描述它們之間的聯(lián)系,如圖

48、所示。其中,學(xué)生與課程是多對多的聯(lián)系,而教師與課程的聯(lián)系是一對多。 教學(xué)管理E-R圖4.4.3 數(shù)據(jù)結(jié)構(gòu)的規(guī)范化 下面用圖所示的教學(xué)管理的例子說明如何進行規(guī)范化。有三個實體類型,即:課程、學(xué)生和教師,用三個關(guān)系分別保存它們的有關(guān)信息: 教師(職工號,姓名,年齡,職稱,工資級別,工資)課程(課程號,課程名,學(xué)分,學(xué)時,課程類型)選課(學(xué)號,課程號,聽課出勤率,作業(yè)完成率,分數(shù))教課(職工號,課程號) (1)關(guān)系中所有屬性都是“單純域”,即不出現(xiàn)“表中有表”。(2)非主屬性完全函數(shù)依賴于關(guān)鍵字。(3)非主屬性相互獨立,即任何非主屬性間不存在函數(shù)依賴。如果一個關(guān)系連條件(1)都不滿足,則這個關(guān)系是非

49、規(guī)范化的。如果一個關(guān)系僅滿足條件(1),則這個關(guān)系滿足第一范式(1NF)。如果一個關(guān)系滿足條件(1)、(2),但不滿足(3),則這個關(guān)系滿足第二范式(2NF)。如果一個關(guān)系同時滿足條件(1)、(2)和(3),則這個關(guān)系滿足第三范式(3NF)判斷規(guī)范化程度的條件是:4.5 需求規(guī)格說明與評審 4.5.1 需求規(guī)格說明書的目標(biāo)與內(nèi)容4.5.2 需求評審 4.5.1 需求規(guī)格說明書的目標(biāo)與內(nèi)容 需求規(guī)格說明書主要起以下作用:(1)軟件開發(fā)機構(gòu)和用戶之間一份事實上的技術(shù)合同書。(2)軟件開發(fā)機構(gòu)下一步進行設(shè)計和編碼的基礎(chǔ)。(3)測試和驗收目標(biāo)系統(tǒng)的依據(jù)。需求規(guī)格說明書的主要作用:(1)軟件開發(fā)機構(gòu)和用

50、戶之間一份事實上的技術(shù)合同書。(2)軟件開發(fā)機構(gòu)下一步進行設(shè)計和編碼的基礎(chǔ)。(3)測試和驗收目標(biāo)系統(tǒng)的依據(jù)。4.5.2 需求評審 正確性 無二義性 完整性 可驗證性 一致性 可理解性可修改性 可跟蹤性 4.6 本章小結(jié) 需求分析是軟件定義階段中的最后一步,是確定系統(tǒng)必須完成哪些工作,也就是對目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。需求分析活動可按照需求提出、需求分析與描述及需求評審三個子階段進行。需求分析的結(jié)果是系統(tǒng)開發(fā)的基礎(chǔ),必須用行之有效的方法對軟件需求進行嚴格的審查驗證。5.1 總體設(shè)計的過程 5.2 軟件設(shè)計基本原理 5.3 設(shè)計準(zhǔn)則 5.4 總體設(shè)計的圖形描述工具 5.5 結(jié)構(gòu)化設(shè)

51、計方法 退出第五章 總體設(shè)計5.1 總體設(shè)計的過程5.1.1 設(shè)計供選擇的方案5.1.2 推薦最佳實現(xiàn)方案退出5.1.3 設(shè)計軟件結(jié)構(gòu) 5.1.4 數(shù)據(jù)庫設(shè)計 5.1.5 制定測試計劃 5.1.1 設(shè)計供選擇的方案需求分析階段得出的數(shù)據(jù)流圖是總體設(shè)計的根本出發(fā)點。 通常,選取的這些方案中至少應(yīng)包括低成本、中成本和高成本的三種方案類型。對每個合理方案要提供以下幾方面資料:(1)系統(tǒng)流程圖;(2)數(shù)據(jù)字典;(3)成本效益分析;(4)實現(xiàn)這個系統(tǒng)的進度計劃。5.1.2 推薦最佳方案分析員從合理方案中選擇一個最佳方案向用戶推薦,并為推薦的方案制定詳細的實現(xiàn)計劃。對于分析員推薦的最佳方案,用戶和有關(guān)專家

52、應(yīng)該認真審查。如果確認該方案確實符合用戶的需要,并且在現(xiàn)有條件下完全能夠?qū)崿F(xiàn),則應(yīng)該提請使用部門負責(zé)人進一步審批。在使用部門負責(zé)人也接受了分析員所推薦的方案之后,方可進入總體設(shè)計過程的下一步工作,即結(jié)構(gòu)設(shè)計階段。 過程設(shè)計:確定每個模塊的處理過程。結(jié)構(gòu)設(shè)計:確定系統(tǒng)由哪些模塊組成,以及這些模塊之間的相互關(guān)系。5.1.3 設(shè)計軟件結(jié)構(gòu) 對于大型系統(tǒng)的設(shè)計,通常分為兩個階段:結(jié)構(gòu)設(shè)計和過程設(shè)計。其中,結(jié)構(gòu)設(shè)計是總體設(shè)計階段的任務(wù),而過程設(shè)計則是詳細設(shè)計階段的任務(wù)。5.1.4 數(shù)據(jù)庫設(shè)計 數(shù)據(jù)庫的應(yīng)用越來越廣泛,目前大多數(shù)的系統(tǒng)都要用到數(shù)據(jù)庫技術(shù)。數(shù)據(jù)庫設(shè)計是一項專門的技術(shù),包括模式設(shè)計、子模式設(shè)計

53、、完整性和安全性設(shè)計和優(yōu)化處理等。 5.1.5 制定測試計劃 在軟件開發(fā)的早期階段提前考慮軟件的測試計劃是很有必要的。這樣能促使軟件設(shè)計人員在設(shè)計時注意到軟件的測試問題,從而有利于提高軟件的可測試性。 總體設(shè)計階段的文檔(1)總體設(shè)計說明書(包括系統(tǒng)實現(xiàn)方案和軟件模塊結(jié)構(gòu));(2)測試計劃(包括測試策略、測試方案、預(yù)測的測試結(jié)果、測試進度計劃等);(3)用戶手冊(根據(jù)總體設(shè)計階段的結(jié)果,編寫的初步的用戶操作手冊);(4)詳細的實現(xiàn)計劃;(5)數(shù)據(jù)庫設(shè)計結(jié)果。5. 2 軟件設(shè)計基本原理5.2.1 模塊化5.2.2 抽象5.2.3 信息隱蔽退出5.2.4 模塊獨立性模塊:又稱構(gòu)件,是能夠單獨命名并

54、獨立地完成一定功能的程序語句的集合。例如高級語言中的過程、函數(shù)、子程序等都可作為模塊。5.2.1 模塊化模塊化是軟件的一個重要屬性。模塊化的特性提供了人們處理復(fù)雜的問題的一種方法,同時也使得軟件能夠被有效地管理。 這種“分而治之”的思想提供了模塊化的根據(jù):把復(fù)雜的問題分解成許多容易解決的小問題,原來的問題也就容易解決了。 根據(jù)前面的結(jié)論,我們可以得出下面的不等式:E(P1P2)E(P1)E(P2)這個不等式表明:單獨解決問題P1和P2所需的工作量之和,比把P1和P2合起來作為一個問題來解決時所需的工作量要少。 有兩個函數(shù):C(x)表示問題x的復(fù)雜程度;E(x)表示解決問題x所需要的工作量(時間

55、)。對于兩個問題P1和P2,如果:C(P1)C(P2)則:E(P1)E(P2)另一個有趣的特性是:C(P1P2)C(P1)C(P2)模塊化和軟件成本的關(guān)系我們在考慮問題時,集中考慮和當(dāng)前問題有關(guān)的方面,而忽略和當(dāng)前問題無關(guān)的方面,這就是抽象。或者說抽象就是抽出事物的本質(zhì)特性而暫時不考慮它們的細節(jié)。 5.2.2 抽象軟件工程過程的每一步,都是對軟件解法的抽象層次的一次細化。在可行性研究階段,軟件被看作是一個完整的系統(tǒng)部分;在需求分析期間,我們使用在問題環(huán)境中熟悉的術(shù)語來描述軟件的解法;當(dāng)我們由總體設(shè)計階段轉(zhuǎn)入詳細設(shè)計階段時,抽象的程度進一步減少;最后,當(dāng)源程序?qū)懗鰜頃r,也就達到了抽象的最低層。

56、信息隱蔽原理認為:模塊所包含的信息(過程和數(shù)據(jù))對于其他模塊來說應(yīng)該是隱蔽的。也就是說,模塊應(yīng)當(dāng)被這樣規(guī)定和設(shè)計,使得包含在模塊中的信息(過程或數(shù)據(jù))對于其它不需要這些信息的模塊來說,是不能訪問的,或者說是“不可見”的。 5.2.3 信息隱蔽信息隱蔽對于軟件的測試與維護都有很大的好處。因為對于軟件的其它部分來說,絕大多數(shù)數(shù)據(jù)和過程都是隱蔽的,這樣,在修改期間由于疏忽而引入的錯誤所造成的影響就可以局限在一個或幾個模塊內(nèi)部,不至波及到軟件的其他部分。 模塊的獨立性是軟件質(zhì)量的關(guān)鍵:(1)模塊化程度較高的軟件容易開發(fā);(2)模塊化程度較高的軟件也比較容易測試和維護。5.2.4 模塊獨立性模塊的獨立性

57、的度量標(biāo)準(zhǔn):耦合和內(nèi)聚。 1、耦合耦合:軟件結(jié)構(gòu)中各個模塊之間相互關(guān)聯(lián)程度的度量。常見的耦合:(1)非直接耦合(2)數(shù)據(jù)耦合(3)標(biāo)記耦合(4)控制耦合(5)公共耦合(6)內(nèi)容耦合設(shè)計原則:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共耦合的范圍,避免使用內(nèi)容耦合。2、內(nèi)聚內(nèi)聚:模塊內(nèi)部各個元素彼此結(jié)合的緊密程度的度量。常見的內(nèi)聚:(1)偶然內(nèi)聚(2)邏輯內(nèi)聚(3)時間內(nèi)聚(4)過程內(nèi)聚(5)通信內(nèi)聚(6)順序內(nèi)聚(7)功能內(nèi)聚5. 3 設(shè)計準(zhǔn)則1盡力提高模塊獨立性2選擇合適的模塊規(guī)模3模塊的深度、寬度、扇出和扇入應(yīng)適當(dāng)4模塊的作用范圍應(yīng)該在控制范圍之內(nèi)5降低模塊接口的復(fù)雜程度6設(shè)計單入口單出口的模

58、塊,避免“病態(tài)連接”5. 4 總體設(shè)計的圖形描述工具5.4.1 層次圖5.4.2 HIPO圖5.4.3 結(jié)構(gòu)圖退出5.4.1 層次圖 正文加工系統(tǒng)的層次圖5.4.2 HIPO圖帶編號的層次圖(H圖)5.4.3 結(jié)構(gòu)圖軟件結(jié)構(gòu)圖的基本符號產(chǎn)生最佳解的結(jié)構(gòu)圖5. 5 結(jié)構(gòu)化設(shè)計方法5.5.1 數(shù)據(jù)流圖的類型5.5.2 設(shè)計步驟5.5.3 變換設(shè)計退出5.5.4 事務(wù)設(shè)計5.5.5 設(shè)計的后處理5.5.1 數(shù)據(jù)流圖的類型1、變換型數(shù)據(jù)流圖2、事務(wù)型數(shù)據(jù)流圖5.5.2 設(shè)計步驟5.5.3 變換設(shè)計我們通過一個汽車數(shù)字儀表板的設(shè)計來介紹變換分析的過程。假設(shè)儀表板的功能如下:(1)通過模數(shù)(AD)轉(zhuǎn)換實現(xiàn)

59、傳感器和微處理機接口;(2)在發(fā)光二極管(LCD)面板上顯示數(shù)據(jù);(3)指示每小時英里數(shù)(mph),行駛的里程,每加侖油行駛的英里數(shù)(mpg)等等;(4)指示加速或減速;(5)超速警告:如果車速超過55英里小時,則發(fā)出超速警告鈴聲。在軟件需求分析階段,應(yīng)該對上述每項性能和其它要求進行全面的分析,并建立起相應(yīng)的文檔資料,得出數(shù)據(jù)流圖。具體的設(shè)計步驟如下:1、復(fù)查基本系統(tǒng)模型2、復(fù)查并精化數(shù)據(jù)流圖3、確定數(shù)據(jù)流圖的類型這一步的任務(wù)是確定數(shù)據(jù)流圖是變換型數(shù)據(jù)流圖還是事務(wù)型數(shù)據(jù)流圖。從上圖中可以看出,數(shù)據(jù)沿著兩條輸入通路(旋轉(zhuǎn)信號和燃料流量傳感器信號)進入系統(tǒng),然后沿著五條通路(4個顯示,一個警告鈴聲

60、)離開,沒有明顯的事務(wù)中心(雖然變換“計算mph與超速值”可以看作是一個事務(wù)中心)。因此,可以認為這個數(shù)據(jù)流圖的類型是變換型數(shù)據(jù)流圖。4、確定輸入流和輸出流的邊界,從而孤立出變換中心5、進行“第一級分解”第一級分解的方法第一級分解的結(jié)果6、進行“第二級分解”第二級分解的方法第二級分解的結(jié)果: 未經(jīng)精化的輸入結(jié)構(gòu) 未經(jīng)精化的變換結(jié)構(gòu) 未經(jīng)精化的輸出結(jié)構(gòu)7、使用設(shè)計度量和設(shè)計準(zhǔn)則對第一次分割得到的軟件結(jié)構(gòu)進一步精化 對于從前面的設(shè)計步驟得到的軟件結(jié)構(gòu),還可以進行許多修改:(1)輸入結(jié)構(gòu)中的模塊“轉(zhuǎn)換成rpm”和“收集sps”可以合并;(2)模塊“確定加速減速”可以放在模塊“計算mph”下面,以減少

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論