版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟件工程與實(shí)踐第1章 軟件工程概述1.1 軟件1.1.1 軟件的定義與特征1軟件的定義 程序設(shè)計(jì)階段(19461956年),“軟件”的含義就是“程序”。 程序系統(tǒng)階段(19561968年)。這個(gè)階段的生產(chǎn)方式是作坊式的 小集團(tuán)合作生產(chǎn),生產(chǎn)工具是高級(jí)語(yǔ)言,開(kāi)發(fā)方法仍就靠個(gè)人技巧,但開(kāi)始提出結(jié)構(gòu)化方法。 該階段的后期,隨著軟件需求量、規(guī)模及復(fù)雜度的增大,生產(chǎn)作坊的方式已經(jīng)不能夠適應(yīng)軟件生產(chǎn)的需要,出現(xiàn)了所謂的“軟件危機(jī)”。這個(gè)階段“軟件”的含義就是“程序和使用說(shuō)明書(shū)”。 軟件工程階段(1968年至今)。此階段的主要任務(wù)是為了克服軟件危機(jī),適應(yīng)軟件發(fā)展的需要,而在軟件生產(chǎn)中采用“工程化的生產(chǎn)” 方
2、式進(jìn)行開(kāi)發(fā)。這個(gè)階段“軟件”的含義就是“程序、文檔、數(shù)據(jù)”。2軟件的特征有計(jì)算機(jī)軟件就有計(jì)算機(jī)硬件,二者共同組成計(jì)算機(jī)系統(tǒng)。軟件的特征是:(1)軟件是一種邏輯實(shí)體。它的存在是保存在一種媒介上面,例如:紙張,磁盤(pán),內(nèi)存,磁帶,光盤(pán)等。(2)軟件是綠色產(chǎn)品,沒(méi)有污染,它的運(yùn)行不會(huì)出現(xiàn)磨損和對(duì)空氣、土地等對(duì)人體有害的物質(zhì)。(3)軟件的研制是一種高智力勞動(dòng)。計(jì)算機(jī)軟件既是作品,又是工具,是作品性與工具性緊密結(jié)合的智力成果。(4)計(jì)算機(jī)軟件開(kāi)發(fā)工作最大、成本高,但復(fù)制容易、成本極低。計(jì)算機(jī)軟件是開(kāi)發(fā)者智力勞動(dòng)的結(jié)晶,具有原創(chuàng)性質(zhì)。1.1.2 軟件系統(tǒng)數(shù)據(jù)通信軟件數(shù)據(jù)通信軟件是指按著網(wǎng)絡(luò)協(xié)議的要求,完成通
3、信功能的軟件。網(wǎng)絡(luò)操作系統(tǒng)網(wǎng)絡(luò)操作系統(tǒng)是指能夠控制和管理網(wǎng)絡(luò)資源的軟件。 網(wǎng)絡(luò)應(yīng)用軟件(4) 網(wǎng)絡(luò)信息系統(tǒng)網(wǎng)絡(luò)信息系統(tǒng)是指以計(jì)算機(jī)網(wǎng)絡(luò)為基礎(chǔ)開(kāi)發(fā)的信息系統(tǒng)。 1.2 軟件工程的知識(shí)體系1.3.1 軟件工程的產(chǎn)生 當(dāng)軟件開(kāi)發(fā)技術(shù)的進(jìn)步不能跟上硬件技術(shù)的進(jìn)步,未能滿(mǎn)足發(fā)展的要求,致軟件開(kāi)發(fā)中遇到的問(wèn)題找不到解決的辦法,使問(wèn)題積累起來(lái),形成了尖銳的矛盾,因而導(dǎo)致了軟件危機(jī)。主要表現(xiàn)為:經(jīng)費(fèi)預(yù)算經(jīng)常突破,完成時(shí)間一再拖延;開(kāi)發(fā)的軟件不能滿(mǎn)足用戶(hù)要求;開(kāi)發(fā)的軟件可維護(hù)性差;開(kāi)發(fā)的軟件可靠性差。造成軟件危機(jī)的原因是由于軟件產(chǎn)品本身的特點(diǎn)以及開(kāi)發(fā)軟件的方式、方法、技術(shù)和人員引起的。1.3.2軟件工程的定義
4、美國(guó)電氣與電子工程師學(xué)會(huì)IEEE對(duì)軟件工程的定義:(1)應(yīng)用系統(tǒng)化的、學(xué)科化的、定量的方法來(lái)開(kāi)發(fā)、運(yùn)行和維護(hù)軟件,即,將工程應(yīng)用到軟件;(2)對(duì)(1)中的各種方法的研究。 軟件工程是一門(mén)研究用工程化方法構(gòu)建和維護(hù)有效的、實(shí)用的和高質(zhì)量的軟件的學(xué)科。 它應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,采用工程的概念、原理、技術(shù)和方法來(lái)開(kāi)發(fā)與維護(hù)軟件,把正確的管理技術(shù)和目前最有效的技術(shù)與方法結(jié)合起來(lái)去開(kāi)發(fā)、生產(chǎn)、維護(hù)軟件,以達(dá)到提高質(zhì)量,降低成本的目的。軟件工程的三要素 軟件工程的方法、工具和過(guò)程構(gòu)成了軟件工程的三要素。(1)軟件工程方法。 (2)軟件工具。 (3)軟件工程過(guò)程。 1.4 軟件工程的原則(1
5、)抽象性。 (2)信息隱蔽性。(3)模塊化。 (4)局部化(5)確定性(6)一致性(7)完備性(7)可驗(yàn)證性。 1.5 軟件工程的目標(biāo) 軟件工程的目標(biāo)可以用四個(gè)字總結(jié):多、快、好、省。 “多”指的是功能齊全; “快”指的是提高生產(chǎn)率,按照項(xiàng)目計(jì)劃提前完成任務(wù); “好”指的是取得較好軟件性能的,滿(mǎn)足用戶(hù)需要的高質(zhì)量軟件產(chǎn)品; “省”指的是節(jié)省成本。1.6 軟件工程的基本原理1 用分階段的生命周期計(jì)劃嚴(yán)格管理 。2 堅(jiān)持進(jìn)行階段評(píng)審 3 實(shí)行嚴(yán)格的產(chǎn)品控制 。4 采用現(xiàn)代程序設(shè)計(jì)技術(shù)。 5結(jié)果可審查 6 開(kāi)發(fā)小組的人員應(yīng)少而精。 7 軟件實(shí)踐不斷改進(jìn)。1.7 軟件工程思維的培養(yǎng)1考慮整個(gè)項(xiàng)目或者產(chǎn)
6、品的市場(chǎng)前景。 2從用戶(hù)的角度來(lái)考慮問(wèn)題。 3從技術(shù)的角度考慮問(wèn)題。 4合理進(jìn)行模塊的分割。 5人員的組織和調(diào)度。 6開(kāi)發(fā)過(guò)程中文檔的編寫(xiě)。 7充分考慮實(shí)施時(shí)可能遇到的問(wèn)題。 再見(jiàn)!第2章 軟件生命周期與開(kāi)發(fā)模型2.1 軟件生命周期 軟件生存周期一般劃分為三個(gè)階段:(1)計(jì)劃時(shí)期;(2) 開(kāi)發(fā)時(shí)期;(3) 運(yùn)行與維護(hù)時(shí)期。2.1.1計(jì)劃時(shí)期這個(gè)時(shí)期的任務(wù)是:(1)確定軟件開(kāi)發(fā)工程必須完成的總目標(biāo);(2)確定工程的可行性;(3)導(dǎo)出實(shí)現(xiàn)工程目標(biāo)應(yīng)該采用的策略及軟件必須具有的功能;(4)估算完成該項(xiàng)開(kāi)發(fā)工程需要的資源和成本,并且制定工程進(jìn)度表。 可行性研究的步驟一般有如下幾個(gè)步驟: 1關(guān)鍵人員訪(fǎng)談
7、: 可行性研究分析人員找到項(xiàng)目干系人中的關(guān)鍵人員, 了解如下幾方面的內(nèi)容:(1)項(xiàng)目的規(guī)模有多大;(2)項(xiàng)目目標(biāo)是什么;(3) 目前系統(tǒng)的信息來(lái)源于何處;(4)目前系統(tǒng)的優(yōu)點(diǎn)和缺點(diǎn);(5)目前系統(tǒng)與國(guó)內(nèi)外同類(lèi)產(chǎn)品的比較,優(yōu)勢(shì)和劣勢(shì)分別是什么。 2找出邏輯模型: 3找出多種方案。 4寫(xiě)出可行性研究報(bào)告。 5寫(xiě)出需求分析報(bào)告。 6進(jìn)行審查。 2.1.2 開(kāi)發(fā)時(shí)期一個(gè)軟件的開(kāi)發(fā)包括四個(gè)步驟:(1)需求分析;(2)概要設(shè)計(jì);(3)詳細(xì)設(shè)計(jì);(4)編碼和測(cè)試。這兩個(gè)過(guò)程是同步進(jìn)行的。2.1.3 運(yùn)行與維護(hù)時(shí)期 軟件的維護(hù)一般包括改正性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù)等四個(gè)方面。 2.2 軟件開(kāi)發(fā)
8、方法綜述2.2.1 結(jié)構(gòu)化方法 結(jié)構(gòu)化開(kāi)發(fā)方法是由E.Yourdon 和 L.L.Constantine 提出的,即所謂的SASD 方 法, 也可稱(chēng)為面向功能的軟件開(kāi)發(fā)方法或面向數(shù)據(jù)流的軟件開(kāi)發(fā)方法。Yourdon方法是80年代 使用最廣泛的軟件開(kāi)發(fā)方法。它首先用結(jié)構(gòu)化分析(SA)對(duì)軟件進(jìn)行需求分析,然后用結(jié)構(gòu)化設(shè)計(jì)(SD)方法進(jìn)行總體設(shè)計(jì),最后是結(jié)構(gòu)化編程(SP)。它給出了兩類(lèi)典型的軟件結(jié)構(gòu)(變換型和事務(wù)型)使軟件開(kāi)發(fā)的成功率大大提高。 2.2.2 面向數(shù)據(jù)結(jié)構(gòu)的軟件開(kāi)發(fā)方法 Jackson方法是最典型的面向數(shù)據(jù)結(jié)構(gòu)的軟件開(kāi)發(fā)方法,Jackson方法把問(wèn)題分解為可由三種基本結(jié)構(gòu)形式表示的各部
9、分的層次結(jié)構(gòu)。 三種基本的結(jié)構(gòu)形式就是順序、選擇和重復(fù)。三種數(shù)據(jù)結(jié)構(gòu)可以進(jìn)行組合,形成復(fù)雜的結(jié)構(gòu)體系。這一方法從目標(biāo)系統(tǒng)的輸入、輸出數(shù)據(jù)結(jié)構(gòu)入手,導(dǎo)出程序框架結(jié)構(gòu),再補(bǔ)充其它細(xì)節(jié),就可得到完整的程序結(jié)構(gòu)圖。 2.2.3 面向問(wèn)題的分析法(PAM) 面向問(wèn)題的分析法(PAM,Problem Analysis Method)是80年代末由日立公司提出的一種軟件開(kāi)發(fā)方法。 它的基本思想是考慮到輸入、輸出數(shù)據(jù)結(jié)構(gòu),指導(dǎo)系統(tǒng)的分解,在系統(tǒng)分析指導(dǎo)下逐步綜 合。 這一方法的具體步驟是:從輸入、輸出數(shù)據(jù)結(jié)構(gòu)導(dǎo)出基本處理框;分析這些處理框之間的先后關(guān)系;按先后關(guān)系逐步綜合處理框,直到畫(huà)出整個(gè)系統(tǒng)的PAD圖2.
10、2.4 面向?qū)ο蟮拈_(kāi)發(fā)方法 面向?qū)ο笙到y(tǒng)采用了自底向上的歸納、自頂向下的分解的方法,它通過(guò)對(duì)對(duì)象模型的建立,能夠真正建立基于用戶(hù)的需求,而且系統(tǒng)的可維護(hù)性大大改善。當(dāng)前業(yè)界關(guān)于面向?qū)ο蠼5臉?biāo)準(zhǔn)是UML .2.2.5、原型化方法 產(chǎn)生原型化方法的原因很多,主要隨著我們系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)的增多,我們也發(fā)現(xiàn)并非所有的需求都能夠預(yù)先定義而且反復(fù)修改是不可避免的。 當(dāng)然能夠采用原型化方法是因?yàn)殚_(kāi)發(fā)工具的快速發(fā)展,比如用VB,DELPHI等工具我們可以迅速的開(kāi)發(fā)出一個(gè)可以讓用戶(hù)看的見(jiàn)、摸的著的系統(tǒng)框架,這樣,對(duì)于計(jì)算機(jī)不是很熟悉的用戶(hù)就可以根據(jù)這個(gè)樣板提出自己的需求。2.2.6 可視化開(kāi)發(fā)方法 可視化開(kāi)發(fā)并不
11、能單獨(dú)的作為一種開(kāi)發(fā)方法,更加貼切的說(shuō)可以認(rèn)為它是一種輔助工具,比如: S-Design,PowerDesigner,PowerBuilder,VB,DELPHI,C+ Builder等。 再見(jiàn)!2.3 軟件開(kāi)發(fā)模型2.3.1 瀑布模型 將軟件生命周期劃分為制定計(jì)劃、需求分析、軟件設(shè)計(jì)、程序編寫(xiě)、軟件測(cè)試和運(yùn)行維護(hù)等六個(gè)基本活動(dòng),并且規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級(jí)下落。 2.3.2 螺旋模型 螺旋模型沿著螺線(xiàn)進(jìn)行若干次迭代,圖2-5中的四個(gè)象限代表了以下活動(dòng). 螺旋模型沿著螺線(xiàn)旋轉(zhuǎn),每個(gè)螺旋推進(jìn)的過(guò)程都是漸進(jìn)的實(shí)現(xiàn)過(guò)程,整個(gè)過(guò)程的實(shí)現(xiàn),按照”制定計(jì)劃、風(fēng)險(xiǎn)分析、實(shí)施
12、工程和客戶(hù)評(píng)估”四個(gè)步驟循環(huán)實(shí)施。 (1)制定計(jì)劃:確定軟件目標(biāo),選定實(shí)施方案,弄清項(xiàng)目開(kāi)發(fā)的限制條件。定義資源、進(jìn)度及其他相關(guān)項(xiàng)目信息所需要的任務(wù),以調(diào)整項(xiàng)目的目標(biāo)和改善系統(tǒng)實(shí)施的效率。(2) 風(fēng)險(xiǎn)分析:分析評(píng)估所選方案,考慮如何識(shí)別和消除風(fēng)險(xiǎn)。從風(fēng)險(xiǎn)角度分析方案的開(kāi)發(fā)策略,努力排除各種潛在的風(fēng)險(xiǎn),有時(shí)需要通過(guò)建造原型來(lái)完成。如果某些風(fēng)險(xiǎn)不能排除,該方案立即終止,否則啟動(dòng)下一個(gè)開(kāi)發(fā)步驟。基于上述目標(biāo),評(píng)估技術(shù)及管理的風(fēng)險(xiǎn),以決定如何實(shí)施項(xiàng)目。(3) 實(shí)施工程:實(shí)施軟件開(kāi)發(fā)和驗(yàn)證。包括系統(tǒng)需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程、單元測(cè)試、系統(tǒng)測(cè)試和驗(yàn)證測(cè)試等項(xiàng)目具體實(shí)施的各種任務(wù)。(4) 客戶(hù)評(píng)估
13、:評(píng)價(jià)開(kāi)發(fā)工作,提出修正建議,制定下一步計(jì)劃。 螺旋模型的缺點(diǎn)是: (1)它可能難以使用戶(hù)相信演化方法是可控的; (2)瀑布模型要求在軟件開(kāi)發(fā)的初期就完全確定軟件的需求,這在很多情況下往往是無(wú)法實(shí)現(xiàn)的。螺旋模型加入了瀑布模型所忽略的風(fēng)險(xiǎn)分析,從而彌補(bǔ)了瀑布模型的不足。 螺旋模型也有一定的限制條件,這些限制條件是: 1)螺旋模型強(qiáng)調(diào)風(fēng)險(xiǎn)分析,但要求許多客戶(hù)接受和相信這種分析,并做出相關(guān)反應(yīng)是不容易的,因此,這種模型往往適應(yīng)于內(nèi)部的大規(guī)模軟件開(kāi)發(fā)。 2) 如果執(zhí)行風(fēng)險(xiǎn)分析將大大影響項(xiàng)目的利潤(rùn),那么進(jìn)行風(fēng)險(xiǎn)分析毫無(wú)意義,因此,螺旋模型只適合于大規(guī)模軟件項(xiàng)目。 3) 軟件開(kāi)發(fā)人員應(yīng)該擅長(zhǎng)尋找可能的風(fēng)險(xiǎn)
14、,準(zhǔn)確地分析風(fēng)險(xiǎn),否則將會(huì)帶來(lái)更大的風(fēng)險(xiǎn)。2.3.3 增量模型 增量模型和瀑布模型之間的本質(zhì)區(qū)別是:瀑布模型屬于整體開(kāi)發(fā)模型,它規(guī)定在開(kāi)始下一個(gè)階段的工作之前,必須完成前一階段的所有細(xì)節(jié)。 而增量模型屬于非整體開(kāi)發(fā)模型,它推遲某些階段或所有階段中的細(xì)節(jié),從而較早的產(chǎn)生工作軟件。 增量模型是在項(xiàng)目的開(kāi)發(fā)過(guò)程中以一系列的增量方式開(kāi)發(fā)系統(tǒng)。 增量方式包括增量開(kāi)發(fā)和增量提交。 增量模型也存在以下缺陷:(1)由于各個(gè)構(gòu)件是逐漸并入已有的軟件體系結(jié)構(gòu)中的,所以加入構(gòu)件必須不破壞已構(gòu)造好的系統(tǒng)部分,這需要軟件具備開(kāi)放式的體系結(jié)構(gòu)。(2)在開(kāi)發(fā)過(guò)程中,需求的變化是不可避免的。增量模型的靈活性可以使其適應(yīng)這種變
15、化的能力大大優(yōu)于瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟件過(guò)程的控制失去整體性。2.3.4 噴泉模型 該模型表明軟件刻畫(huà)活動(dòng)需要多次重復(fù)。 例如,在編碼之前,(實(shí)踐之后),再次進(jìn)行分析和設(shè)計(jì),其間添加有關(guān)功能,使系統(tǒng)得以演化。 同時(shí),該模型還表明活動(dòng)之間沒(méi)有明顯的間隙,例如在分析和設(shè)計(jì)之間沒(méi)有明顯的界限。2.3.5 RAD模型RAD模型包含如下幾個(gè)開(kāi)發(fā)階段 (1) 業(yè)務(wù)建模:業(yè)務(wù)活動(dòng)中的信息流被模型化。通過(guò)回答以下問(wèn)題來(lái)實(shí)現(xiàn):什么信息驅(qū)動(dòng)業(yè)務(wù)流程?生成什么信息?誰(shuí)生成該信息?該信息流往何處?誰(shuí)處理它? (2) 數(shù)據(jù)建模:業(yè)務(wù)建模階段定義的一部分信息流被細(xì)化,形成一系列支持
16、該業(yè)務(wù)所需的數(shù)據(jù)對(duì)象。標(biāo)識(shí)出每個(gè)對(duì)象的屬性,并定義這些對(duì)象間的關(guān)系。 (3) 處理建模:數(shù)據(jù)建模階段定義的數(shù)據(jù)對(duì)象變換成要完成一個(gè)業(yè)務(wù)功能所需的信息流。創(chuàng)建處理描述以便增加、修改、刪除或獲取某個(gè)數(shù)據(jù)對(duì)象。 (4) 應(yīng)用生成:RAD過(guò)程不是采用傳統(tǒng)的第三代程序設(shè)計(jì)語(yǔ)言來(lái)創(chuàng)建軟件,而是使用4GL技術(shù)或軟件自動(dòng)化生成輔助工具,復(fù)用已有的程序構(gòu)件(如果可能的話(huà))或是創(chuàng)建可復(fù)用的構(gòu)件(如果需要的話(huà))。 (5) 測(cè)試及反復(fù):因?yàn)镽AD過(guò)程強(qiáng)調(diào)復(fù)用,許多程序構(gòu)件已經(jīng)是測(cè)試過(guò)的,這減少了測(cè)試時(shí)間。但新構(gòu)件必須測(cè)試,所有接口也必須測(cè)到。 RAD模型還有一種改進(jìn)型(見(jiàn)圖 2-9),將”編碼”從V字型的頂點(diǎn)移到左側(cè)
17、,和單元測(cè)試對(duì)應(yīng),從而構(gòu)成水平的對(duì)應(yīng)關(guān)系。 (1)從水平對(duì)應(yīng)關(guān)系看 左邊是設(shè)計(jì)和分析,右邊是驗(yàn)證和測(cè)試。右邊是對(duì)左邊結(jié)果的檢驗(yàn),即對(duì)設(shè)計(jì)和分析的結(jié)果進(jìn)行測(cè)試,以確認(rèn)是否滿(mǎn)足用戶(hù)的需求。 (2) 從圖形看 RAD模型避免了瀑布模型所帶來(lái)的誤區(qū)軟件測(cè)試是在代碼完成之后進(jìn)行。RAD模型說(shuō)明軟件測(cè)試的工作很早就可以開(kāi)始了,項(xiàng)目一啟動(dòng),軟件測(cè)試的工作也就啟動(dòng)了。 (3)從垂直方向看 水平虛線(xiàn)上部表明,其需求分析、功能設(shè)計(jì)和驗(yàn)收測(cè)試等主要工作是面向用戶(hù),要和用戶(hù)進(jìn)行充分的溝通和交流,或者是和用戶(hù)一起完成。水平虛線(xiàn)下部的大部分工作,相對(duì)來(lái)說(shuō),都是技術(shù)工作,在開(kāi)發(fā)組織內(nèi)部進(jìn)行,由工程師完成。圖 2-9 RAD
18、 改進(jìn)型 2.3.6 迭代式模型迭代模型是RUP(統(tǒng)一軟件開(kāi)發(fā)過(guò)程)推薦的周期模型。 在RUP中,迭代被定義為:迭代包括產(chǎn)生產(chǎn)品發(fā)布(穩(wěn)定、可執(zhí)行的產(chǎn)品版本)的全部開(kāi)發(fā)活動(dòng)和要使用該發(fā)布必需的所有其他外圍元素。 所以,在某種程度上,迭代開(kāi)發(fā)是一次完整地重復(fù)所有工作流程的過(guò)程:需求工作流程、分析設(shè)計(jì)工作流程、實(shí)施工作流程和測(cè)試工作流程。 迭代過(guò)程具有以下優(yōu)點(diǎn): 1)降低了在一個(gè)增量上的開(kāi)支風(fēng)險(xiǎn)。如果開(kāi)發(fā)人員重復(fù)某個(gè)迭代,那么損失只是這一個(gè)有問(wèn)題的迭代的花費(fèi)。 2)降低了產(chǎn)品進(jìn)入市場(chǎng)的風(fēng)險(xiǎn)。通過(guò)在開(kāi)發(fā)早期就確定風(fēng)險(xiǎn),可以盡早來(lái)解決這個(gè)風(fēng)險(xiǎn),而不至于在開(kāi)發(fā)后期匆匆忙忙。 3)加快了整個(gè)開(kāi)發(fā)工作的進(jìn)度
19、。因?yàn)殚_(kāi)發(fā)人員清楚問(wèn)題的焦點(diǎn)所在,他們的工作會(huì)更有效率。 4)容易適應(yīng)需求的變化。 2.4 快速原型開(kāi)發(fā) 軟件原型化方法是指,在獲得一組基本需求說(shuō)明后,經(jīng)過(guò)快速分析構(gòu)造出一個(gè)小型的軟件系統(tǒng)(原型系統(tǒng)),滿(mǎn)足用戶(hù)的基本要求。用戶(hù)試用該原型系統(tǒng),從中得到感受和啟發(fā),并對(duì)該原型系統(tǒng)做出反映和評(píng)價(jià),然后開(kāi)發(fā)者根據(jù)用戶(hù)的意見(jiàn)對(duì)原型加以改進(jìn)。 隨著不斷地實(shí)驗(yàn)、糾錯(cuò)、使用、評(píng)價(jià)和修改,不斷獲得新的原型版本。如此反復(fù),逐步減少分析和通信中的誤解,彌補(bǔ)不足,進(jìn)一步確定各種需求細(xì)節(jié),適應(yīng)需求的變更,從而提高最終產(chǎn)品的質(zhì)量。 2.4.2軟件原型的分類(lèi)1. 廢棄型 也稱(chēng)為快速建立需求規(guī)格原型RSP法。先構(gòu)造一個(gè)功能簡(jiǎn)
20、單而且質(zhì)量要求不高的模型系統(tǒng),針對(duì)這個(gè)模型系統(tǒng)反復(fù)進(jìn)行分析修改,從而形成較好設(shè)計(jì)思想。 2. 追加型 也稱(chēng)為快速建立漸進(jìn)原型RCP法。采用循環(huán)漸進(jìn)的開(kāi)發(fā)方式,對(duì)系統(tǒng)模型作連續(xù)精化,即先構(gòu)造一個(gè)功能簡(jiǎn)單而且質(zhì)量要求不高的模型系統(tǒng),作為最終系統(tǒng)的核心,將系統(tǒng)需要具備的性質(zhì)逐步添加上去,通過(guò)不斷地?cái)U(kuò)充修改,逐步追加新的要求,直至所有性質(zhì)全部滿(mǎn)足,此時(shí)的原型模型也就是最終的產(chǎn)品。2.4.3. 原型軟件的周期1原型分析 原型分析是指在分析者和用戶(hù)的緊密配合下,快速確定軟件系統(tǒng)的基本要求。根據(jù)原型所要體現(xiàn)的特性(或總體結(jié)構(gòu)、處理功能,模擬性能、界面形式等),描述基本需求規(guī)格說(shuō)明,以滿(mǎn)足開(kāi)發(fā)原型的需要。當(dāng)在
21、分析階段使用原型化方法時(shí),必須從系統(tǒng)結(jié)構(gòu)、邏輯結(jié)構(gòu)、用戶(hù)特征、應(yīng)用約束、項(xiàng)目管理和項(xiàng)目環(huán)境等多方面來(lái)考慮,以決定是否采用原型化方法。2原型構(gòu)造 在原型分析的基礎(chǔ)上,根據(jù)基本需求規(guī)格說(shuō)明,忽略細(xì)節(jié),只考慮主要特性,快速構(gòu)造一個(gè)可運(yùn)行的系統(tǒng)。為此需要強(qiáng)有力的軟件工具的支持。 3原型運(yùn)行與評(píng)價(jià) 原型運(yùn)行與評(píng)價(jià)階段是軟件開(kāi)發(fā)人員與用戶(hù)頻繁通訊、發(fā)現(xiàn)問(wèn)題、消除誤解的重要階段。其目的是驗(yàn)證原型的正確程度,進(jìn)而開(kāi)發(fā)新的并修改原有的需求。4原型修正 對(duì)于原型系統(tǒng),一定要根據(jù)修改意見(jiàn)進(jìn)行修正。如果原型運(yùn)行的結(jié)果沒(méi)能滿(mǎn)足需求規(guī)格說(shuō)明中的需求,那么就反映出對(duì)需求規(guī)格說(shuō)明存在著不一致的理解或?qū)崿F(xiàn)方案不夠合理。若因?yàn)閲?yán)
22、重的理解錯(cuò)誤而使正常操作的原型與用戶(hù)要求相違背時(shí),就有可能產(chǎn)出廢品,因此應(yīng)當(dāng)立即放棄。 5判定原型完成 如果原型經(jīng)過(guò)修正或和改進(jìn),獲得了參與者的一致認(rèn)可,那么原型開(kāi)發(fā)的迭代過(guò)程可以結(jié)束。為此,應(yīng)判斷有關(guān)應(yīng)用的實(shí)質(zhì)是否已經(jīng)掌握,迭代周期是否可以結(jié)束等。 判定的結(jié)果有兩個(gè)不同的轉(zhuǎn)向:一個(gè)是繼續(xù)迭代驗(yàn)證;另一個(gè)是進(jìn)行詳細(xì)說(shuō)明,比如將需求轉(zhuǎn)化為報(bào)表,給出統(tǒng)計(jì)數(shù)字等。對(duì)于那些不能通過(guò)模型進(jìn)行說(shuō)明的成分,如果必要,須提供說(shuō)明,并利用屏幕等進(jìn)行討論和確定。 6判定原型效果 考察用戶(hù)新加入的需求信息和細(xì)部說(shuō)明信息,看其對(duì)模型效果有何影響?是否會(huì)影響模塊的有效性?如果使模型效果受到影響,甚至導(dǎo)致模型實(shí)效,則要進(jìn)
23、行修正和改進(jìn)。7整理原型和提供文檔 整理原型的目的是為進(jìn)一步開(kāi)發(fā)提供依據(jù)。原型的初期需求模型是一個(gè)自動(dòng)的文檔。2.4.4 快速原型的優(yōu)點(diǎn)1、增進(jìn)了軟件開(kāi)發(fā)人員和用戶(hù)對(duì)系統(tǒng)需求的理解,便于將用戶(hù)模糊的功能需求明確化。2、為用戶(hù)提供了一種強(qiáng)有力的學(xué)習(xí)手段。3、易于確定系統(tǒng)的性能,是理解和確認(rèn)軟件需求規(guī)格說(shuō)明的良好工具。4、按照快速建立漸進(jìn)原型(RCP) 法建立的原型即為最終的產(chǎn)品。2.5 常用開(kāi)發(fā)模型比較分析(1)瀑布模型不滿(mǎn)足客戶(hù)的需求。(2)快速原型模型關(guān)注滿(mǎn)足客戶(hù)需求,可能導(dǎo)致系統(tǒng)設(shè)計(jì)差、效率低,難于維護(hù)。原型模型的優(yōu)點(diǎn)是使用戶(hù)能夠感受到實(shí)際的系統(tǒng),使開(kāi)發(fā)者能夠快速地構(gòu)造出系統(tǒng)的框架。 (3
24、)增量模型開(kāi)發(fā)早期反饋及時(shí),易于維護(hù)需要開(kāi)放式體系結(jié)構(gòu),可能會(huì)設(shè)計(jì)差、效率低。(4) 螺旋模型風(fēng)險(xiǎn)驅(qū)動(dòng)風(fēng)險(xiǎn)分析人員需要有經(jīng)驗(yàn)且經(jīng)過(guò)充分訓(xùn)練。(5)漸增式模型實(shí)質(zhì)就是分段的線(xiàn)性模型。 再見(jiàn)!第3章 可行性研究與項(xiàng)目計(jì)劃 3.1 可行性研究3.1.1 可行性研究的任務(wù)(1)經(jīng)濟(jì)可行性研究 。(2)社會(huì)可行性研究 。(3)工作量的估計(jì) 。(4) 技術(shù)性研究 。(5) 國(guó)內(nèi)外同類(lèi)產(chǎn)品的水平比較 。(6) 風(fēng)險(xiǎn)性研究 。(7) 法律性研究 。(8) 市場(chǎng)前景的研究。3.1.2 可行性研究的步驟 1確定項(xiàng)目規(guī)模和目標(biāo) 可行性研究分析人員找到項(xiàng)目干系人中的關(guān)鍵人員, 了解如下幾方面的內(nèi)容:(1)項(xiàng)目的規(guī)模有
25、多大;(2)項(xiàng)目目標(biāo)是什么;(3) 目前系統(tǒng)的信息來(lái)源于何處;(4)目前系統(tǒng)的優(yōu)點(diǎn)和缺點(diǎn);(5)目前系統(tǒng)與國(guó)內(nèi)外同類(lèi)產(chǎn)品的比較,優(yōu)勢(shì)和劣勢(shì)分別是什么。2 建立新系統(tǒng)的高層邏輯模型。 從現(xiàn)有的物理系統(tǒng)出發(fā), 從而導(dǎo)出系統(tǒng)的高層邏輯。方法是用數(shù)據(jù)流圖來(lái)描述邏輯模型,然后對(duì)導(dǎo)出的邏輯模型進(jìn)行研究, 最后根據(jù)開(kāi)發(fā)的目標(biāo)得到新系統(tǒng)的邏輯模型。3找出多種方案。 分析員從新系統(tǒng)的邏輯模型出發(fā),導(dǎo)出幾種高層次的物理解決方案供選擇。4寫(xiě)出可行性研究報(bào)告。5進(jìn)行審查。 1引言2項(xiàng)目組織3 參考資料4 術(shù)語(yǔ)5 .可行性研究的前提6條件、假定和限制7產(chǎn)品方案8 銷(xiāo)售重點(diǎn)3.2 可行性分析報(bào)告書(shū)寫(xiě)規(guī)范 9對(duì)現(xiàn)有系統(tǒng)的分
26、析10所建議的系統(tǒng)在技術(shù)上的可行性分析11 可選擇的其他系統(tǒng)方案12 市場(chǎng)分析13 技術(shù)可行性評(píng)價(jià)14 投資及效益分析15社會(huì)和法律因素方面的可行性16結(jié)論 3.3 項(xiàng)目立項(xiàng)3.4.1 項(xiàng)目工作計(jì)劃項(xiàng)目工作計(jì)劃具體包括以下幾項(xiàng)內(nèi)容:(1)項(xiàng)目概況;(2)項(xiàng)目進(jìn)度;(3)人員構(gòu)成;(4)項(xiàng)目組聯(lián)系方式;(5)費(fèi)用支出;(6)客戶(hù)資料。3.4.2 硬件資源規(guī)劃1服務(wù)器。 2網(wǎng)絡(luò)設(shè)備。3. 開(kāi)發(fā)機(jī)。 4測(cè)試機(jī)。5運(yùn)行機(jī)。3.4.3 軟件資源規(guī)劃1開(kāi)發(fā)平臺(tái)2第三方支持軟件3. 項(xiàng)目管理工具 4 開(kāi)發(fā)工具 軟件開(kāi)發(fā)時(shí)用到的解決工作效率問(wèn)題的工具,它們是: 項(xiàng)目設(shè)計(jì)工具: 如RATIONAL, PROJE
27、CT2000等; 軟件設(shè)計(jì)繪圖工具: 如VISIO等; 測(cè)試工具:C+TEST, Mcabe,Rational ClearCase,LoadRunner等等 BUG 管理工具:BMS 等。 服務(wù)器上傳軟件FTP軟件; 軟件配置軟件: CVS, VSS, ROSE 等。 再見(jiàn)!第4章 軟件需求分析4.1 軟件需求分析的目標(biāo)和任務(wù)4.1.1需求分析的目標(biāo) 需求分析要回答的問(wèn)題是“系統(tǒng)做什么”。 軟件需求分析是把軟件計(jì)劃期間建立的軟件可行性分析求精和細(xì)化,分析各種可能的解法,并且分配給各個(gè)軟件元素。它位于軟件開(kāi)發(fā)的前期,是軟件生命周期中重要的一步,也是最關(guān)鍵的一步。 軟件需求分析的基本任務(wù)是確定系統(tǒng)
28、必須完成什么工作,也就是對(duì)目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。4.1.2 需求分析的任務(wù) (1)確定系統(tǒng)的綜合要求;(2)分析系統(tǒng)的數(shù)據(jù)和信息要求;(3)模型分析-導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型(4)修正系統(tǒng)開(kāi)發(fā)計(jì)劃;(5)開(kāi)發(fā)原型系統(tǒng)。4.2 軟件需求分析的過(guò)程(1)功能需求(2)環(huán)境需求 (3)性能需求 (4)可靠性需求(5)安全保密要求 (6)用戶(hù)界面需求 (7)資源使用需求 (8)軟件成本消耗與開(kāi)發(fā)進(jìn)度需求 4.2.1 問(wèn)題識(shí)別 獲取需求的形式和溝通類(lèi)型: 建立分析所需要的通信途徑,以保證能順利地對(duì)問(wèn)題進(jìn)行分析。交流的方式可以是會(huì)議、電話(huà)、電子郵件、小組討論、模擬演示等不同形式。需要注意
29、的是,每一次交流一定要有記錄,對(duì)于交流的結(jié)果還可以進(jìn)行分類(lèi),便于后續(xù)的分析活動(dòng)。4.2.2分析與綜合 系統(tǒng)分析員需要從信息流和信息結(jié)構(gòu)出發(fā),逐步細(xì)化所有的軟件功能,找出系統(tǒng)各元素之間的聯(lián)系、接口特性和設(shè)計(jì)上的約束,分析它們是否滿(mǎn)足功能要求,是否合理。依據(jù)功能需求、性能需求、運(yùn)行環(huán)境需求等,去除其不合理的部分,增加其需要的部分。最終綜合成系統(tǒng)的解決方案,給出目標(biāo)系統(tǒng)的詳細(xì)邏輯模型。 4.2.3編制需求分析文檔 (1)軟件需求規(guī)格說(shuō)明書(shū) 。(2)數(shù)據(jù)要求說(shuō)明書(shū) 。(3)初步的用戶(hù)手冊(cè) 。(4)修改、完善與確定軟件開(kāi)發(fā)實(shí)施計(jì)劃。4.2.4、綜合評(píng)審 (1)設(shè)計(jì)方案正確性、先進(jìn)性、可行性和經(jīng)濟(jì)性;(2
30、)系統(tǒng)組成、系統(tǒng)要求及接口協(xié)調(diào)的合理性;(3)系統(tǒng)與各子系統(tǒng)間技術(shù)接口的協(xié)調(diào)性;(4)采用設(shè)計(jì)準(zhǔn)則、規(guī)范和標(biāo)準(zhǔn)的合理性;(5)系統(tǒng)可靠性、維修性、安全性要 求是否合理;(6)關(guān)鍵技術(shù)的落實(shí)解決情況;(7)編制的質(zhì)量計(jì)劃是否可行。4.2.5 需求變更管理(1)不要輕易答應(yīng)用戶(hù)進(jìn)行修改;(2)即使可能修改,也要用戶(hù)方書(shū)面寫(xiě)出變更申請(qǐng)書(shū),在項(xiàng)目組討論確定之后進(jìn)行變更; 影響分析。在用戶(hù)向項(xiàng)目組遞交變更申請(qǐng)書(shū)后,項(xiàng)目組要進(jìn)行影響分析和評(píng)價(jià),評(píng)價(jià)的結(jié)果可能是“批準(zhǔn)”,也可能“駁回”變更申請(qǐng)書(shū)的變更。 重計(jì)劃。如果批準(zhǔn)變更,有可能對(duì)項(xiàng)目的計(jì)劃進(jìn)度或人員等進(jìn)行相應(yīng)變更,所以要進(jìn)行重新計(jì)劃。 變更執(zhí)行。下面的
31、步驟就是執(zhí)行變更計(jì)劃了。 再見(jiàn)!4.3 數(shù)據(jù)流圖 數(shù)據(jù)流圖(簡(jiǎn)稱(chēng)DFD)是描述系統(tǒng)中數(shù)據(jù)變換的圖形工具。 數(shù)據(jù)流圖從數(shù)據(jù)傳遞和處理的角度,以圖形的方式刻畫(huà)數(shù)據(jù)流從輸入到輸出的傳輸變換過(guò)程。圖中沒(méi)有任何具體的物理元素,它僅僅描繪數(shù)據(jù)在系統(tǒng)中流動(dòng)和被處理的情況。 設(shè)計(jì)數(shù)據(jù)流圖時(shí)只需考慮系統(tǒng)必須完成的基本邏輯功能,而不必考慮如何實(shí)現(xiàn)這些功能。因此,它也是進(jìn)行軟件設(shè)計(jì)的一個(gè)很好的出發(fā)點(diǎn)。數(shù)據(jù)流圖的畫(huà)法 數(shù)據(jù)流圖有四種成分:源點(diǎn)或終點(diǎn)、處理、數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)流?;舅枷耄?自頂向下,由外向里,逐步分解 。 找出外部實(shí)體的輸出數(shù)據(jù)流和輸入數(shù)據(jù)流; 從外部實(shí)體的輸出數(shù)據(jù)流出發(fā),逐步畫(huà)出一系列邏輯處理,直到找出
32、外部實(shí)體所需的輸入數(shù)據(jù)流,形成數(shù)據(jù)流的封閉; 重復(fù)上面的步驟,細(xì)化各部分邏輯處理,畫(huà)出第二層或更下一級(jí)的數(shù)據(jù)流圖。繪制數(shù)據(jù)流圖的步驟(1)確定所開(kāi)發(fā)的系統(tǒng)的外部項(xiàng)(外部實(shí)體),即系統(tǒng)的數(shù)據(jù)來(lái)源和去處。(2)確定整個(gè)系統(tǒng)的輸出數(shù)據(jù)流和輸入數(shù)據(jù)流,把系統(tǒng)作為一個(gè)加工環(huán)節(jié),畫(huà)出關(guān)聯(lián)圖。(3)確定系統(tǒng)的主要信息處理功能,按此將整個(gè)系統(tǒng)分解成幾個(gè)加工環(huán)節(jié)(子系統(tǒng))確定每個(gè)加工的輸出與輸入數(shù)據(jù)流以及與這些加工有關(guān)的數(shù)據(jù)存儲(chǔ)。 (4)根據(jù)自頂向下,逐層分解的原則,對(duì)上層圖中全部或部分加工環(huán)節(jié)進(jìn)行分解。(5)重復(fù)步驟(4),直到逐層分解結(jié)束。(6)對(duì)圖進(jìn)行檢查和合理布局,主要檢查分解是否恰當(dāng)、徹底,DFD中各
33、層是否有遺漏、重復(fù)、沖突之處,各層DFD及同層DFD之間關(guān)系是否爭(zhēng)取及命名、編號(hào)是否確切、合理等,對(duì)錯(cuò)誤與不當(dāng)之處進(jìn)行修改。(7)和用戶(hù)進(jìn)行交流,在用戶(hù)完全理解數(shù)據(jù)圖的內(nèi)容的基礎(chǔ)上征求用戶(hù)的意見(jiàn)。數(shù)據(jù)流圖的實(shí)例數(shù)據(jù)流圖有關(guān)的說(shuō)明1.處理到處理,實(shí)體到處理通常應(yīng)標(biāo)明數(shù)據(jù)流,處理到數(shù)據(jù)存儲(chǔ)可省去數(shù)據(jù)流。2.數(shù)據(jù)守恒。3.數(shù)據(jù)存儲(chǔ)必須有流入的數(shù)據(jù)流和流出的數(shù)據(jù)流。4.數(shù)據(jù)流致少有一端是處理框,數(shù)據(jù)流不能從外部實(shí)體直接到數(shù)據(jù)存儲(chǔ)或反之,不能在外部實(shí)體之間或數(shù)據(jù)存儲(chǔ)之間流動(dòng)。 下面是一個(gè)銀行儲(chǔ)蓄業(yè)務(wù)的數(shù)據(jù)流圖(圖11-7)。 儲(chǔ)戶(hù)拿上存折或者存單到銀行辦理業(yè)務(wù),銀行首先檢驗(yàn)真?zhèn)?,如果是真的,那么進(jìn)行扣帳
34、登記,然后取款給儲(chǔ)戶(hù),如果是假的,把信息返回給儲(chǔ)戶(hù)。分解實(shí)例課堂作業(yè)1 由需購(gòu)置設(shè)備的部門(mén)填寫(xiě)申購(gòu)表格,將此表格送交設(shè)備科,設(shè)備科填寫(xiě)預(yù)算表格送財(cái)務(wù)處,財(cái)務(wù)處核對(duì)后,將資金返回設(shè)備科,設(shè)備科利用資金購(gòu)買(mǎi)設(shè)備,購(gòu)得設(shè)備送需購(gòu)設(shè)備的部門(mén),將收據(jù)送財(cái)務(wù)處。課堂作業(yè)2 車(chē)間填寫(xiě)領(lǐng)料單給倉(cāng)庫(kù)要求領(lǐng)料,庫(kù)長(zhǎng)根據(jù)用料計(jì)劃審批領(lǐng)料單,未批準(zhǔn)的退回車(chē)間,已批準(zhǔn)的領(lǐng)料單送到倉(cāng)庫(kù)保管員處,由他查閱庫(kù)存帳。若帳上有貨則通知車(chē)間前來(lái)領(lǐng)料,否則將缺貨通知采購(gòu)人員。課下作業(yè)請(qǐng)給出錄取業(yè)務(wù)的最高層數(shù)據(jù)流圖 再見(jiàn)!4.4 數(shù)據(jù)字典4.4.1 數(shù)據(jù)字典的用途 數(shù)據(jù)字典是分析階段的工具,這是數(shù)據(jù)字典最重要的用途用戶(hù)通過(guò)它可以清楚地
35、了解分析員隊(duì)系統(tǒng)數(shù)據(jù)和處理的詳細(xì)說(shuō)明。不同的開(kāi)發(fā)人員或不同的開(kāi)發(fā)小組之間可以通過(guò)數(shù)據(jù)字典對(duì)數(shù)據(jù)做出嚴(yán)密一致的定義,從而避免定義得混亂。 數(shù)據(jù)字典對(duì)處理的描述是很有價(jià)值的,如果改變了某個(gè)數(shù)據(jù)的定義,則很容易看出對(duì)處理所所產(chǎn)生的影響,并能夠?qū)κ艿接绊懙奶幚碜龀鱿鄳?yīng)的改變。數(shù)據(jù)字典也是下一步設(shè)計(jì)得依據(jù),如果要求所有開(kāi)發(fā)人員都根據(jù)數(shù)據(jù)字典的定義去設(shè)計(jì)模塊,則能避免許多麻煩的接口問(wèn)題。4.4.2 數(shù)據(jù)字典的內(nèi)容數(shù)據(jù)流編號(hào):數(shù)據(jù)流名稱(chēng):說(shuō)明:簡(jiǎn)要介紹作用即其產(chǎn)生的原因和結(jié)果數(shù)據(jù)流來(lái)源:從哪里來(lái)數(shù)據(jù)流去向:到那里去數(shù)據(jù)流組成:數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)元素編號(hào):數(shù)據(jù)元素名稱(chēng): 類(lèi)型:數(shù)字(連續(xù)值、離散值),字符(編碼類(lèi)
36、型)長(zhǎng)度:取值范圍:相關(guān)的數(shù)據(jù)元素即數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)存儲(chǔ)編號(hào):數(shù)據(jù)存儲(chǔ)名稱(chēng):簡(jiǎn)述:存放的是什么數(shù)據(jù)輸入數(shù)據(jù): 輸出數(shù)據(jù):數(shù)據(jù)存儲(chǔ)組成:數(shù)據(jù)結(jié)構(gòu) 存儲(chǔ)方式:順序、直接、關(guān)鍵碼處理編號(hào):反映該處理的層次處理名稱(chēng):簡(jiǎn)要描述:處理邏輯及功能簡(jiǎn)述輸入數(shù)據(jù)流:輸出數(shù)據(jù)流:處理邏輯:簡(jiǎn)述處理程序、處理順序 外部實(shí)體 編號(hào):外部實(shí)體名稱(chēng):簡(jiǎn)要描述:什么外部實(shí)體從外部實(shí)體輸入:向外部實(shí)體輸出: 由數(shù)據(jù)元素組成數(shù)據(jù)(即數(shù)據(jù)結(jié)構(gòu))的方式有以下四種基本類(lèi)型:(1)順序:即以確定次序連接兩個(gè)或多個(gè)分量。(2)選擇:即從兩個(gè)或多個(gè)可能的數(shù)據(jù)元素中選取一個(gè)。(3)重復(fù):即把指定的分量重復(fù)零次或多次。(4)可選:即一個(gè)分量是可
37、有可無(wú)的(重復(fù)零次或一次)4.4.3定義數(shù)據(jù)的方法符號(hào)含 義 及 解 釋=等價(jià)于(或被定義為)+和(即,連接兩個(gè)分量);X=a + b 表示X由a 和 b 組成 選擇符號(hào),表示對(duì) 中列舉的值可以任選其一;X=a|b 表示X由 a或 b組成 重復(fù)符號(hào),表示對(duì) 中的內(nèi)容可視需要重復(fù)使用 ;X=a 表示X由 0個(gè)或多個(gè) a 組成( )可選符號(hào),表示對(duì)( )中的內(nèi)容可由設(shè)計(jì)者決定取舍;X=(a) 表示 a 可在X中出現(xiàn),也可不出現(xiàn)M N 為連接符號(hào),表示取值范圍在M到N之間;X=1 9 表示X可取1到9中的任意一個(gè)值“”基本數(shù)據(jù)元素;X=“a” 表示X是取值為字符a 的數(shù)據(jù)元素*注釋符號(hào),表示兩個(gè)*之
38、間的內(nèi)容是對(duì)條目的注釋舉例 某程序設(shè)計(jì)語(yǔ)言規(guī)定,變量標(biāo)識(shí)符是長(zhǎng)度不超過(guò)10個(gè)字符的字符串,第一個(gè)字符必須是字母字符,隨后的字符既可以是字母字符也可以是數(shù)字字符。根據(jù)上面講述的符號(hào),定義標(biāo)識(shí)符如下:標(biāo)識(shí)符=字母字符+字母數(shù)字串字母數(shù)字串=0字母或數(shù)字9字母或數(shù)字=字母字符數(shù)字字符4.5 需求分析報(bào)告書(shū)寫(xiě)規(guī)范1.目的和對(duì)象2. 項(xiàng)目背景描述 3. 調(diào)研情況介紹:4. 用戶(hù)特點(diǎn)5. 任務(wù)概述 6. 運(yùn)行環(huán)境7. 功能需求 8. 數(shù)據(jù)描述9. 性能需求10. 運(yùn)行需求11.不確定的問(wèn)題12. 同類(lèi)產(chǎn)品簡(jiǎn)介 (限自主產(chǎn)品)13. 用戶(hù)手冊(cè):14. 特殊要求 。15. 參考資料 再見(jiàn)!第5章 結(jié)構(gòu)化軟件設(shè)
39、計(jì)5.1 概要設(shè)計(jì)綜述5.1.1 概要設(shè)計(jì)的內(nèi)容結(jié)構(gòu)化概要設(shè)計(jì)的步驟如下:(1)確定體系結(jié)構(gòu);(2)進(jìn)行模塊劃分;(3)確定系統(tǒng)接口;(4)制定設(shè)計(jì)規(guī)范;(5)確定用戶(hù)主界面;(6)確定主要的算法;(7)異常處理設(shè)計(jì);(8)書(shū)寫(xiě)概要設(shè)計(jì)說(shuō)明書(shū)5.1.2 軟件體系結(jié)構(gòu)1 層次體系結(jié)構(gòu)2 C/S結(jié)構(gòu)3 B/S 結(jié)構(gòu)4 B/S和C/S比較1. C/S的優(yōu)點(diǎn)(1)能充分發(fā)揮客戶(hù)端PC的處理能力,很多工作可以在客戶(hù)端處理后再提交給服務(wù)器。對(duì)應(yīng)的優(yōu)點(diǎn)就是客戶(hù)端響應(yīng)速度快。(2)可以減輕服務(wù)器端壓力,如果用戶(hù)的需求特別復(fù)雜,用C/S。2. C/S的缺點(diǎn):(1)只適用于局域網(wǎng)。而隨著互聯(lián)網(wǎng)的飛速發(fā)展,移動(dòng)辦公
40、和分布式辦公越來(lái)越普及,這需要我們的系統(tǒng)具有擴(kuò)展性。這種方式遠(yuǎn)程訪(fǎng)問(wèn)需要專(zhuān)門(mén)的技術(shù),同時(shí)要對(duì)系統(tǒng)進(jìn)行專(zhuān)門(mén)的設(shè)計(jì)來(lái)處理分布式的數(shù)據(jù)。(2)客戶(hù)端需要安裝專(zhuān)用的客戶(hù)端軟件。系統(tǒng)軟件升級(jí)時(shí),每一臺(tái)客戶(hù)機(jī) 需要重新安裝,其維護(hù)和升級(jí)成本非常高。2. B/S的優(yōu)點(diǎn) (1)可以在任何地方進(jìn)行操作而不用安裝任何專(zhuān)門(mén)的軟件。只要有一臺(tái)能上網(wǎng)的電腦就能使用,客戶(hù)端零維護(hù)。 (2)B/S架構(gòu)的軟件對(duì)一個(gè)稍微大一點(diǎn)單位來(lái)說(shuō),系統(tǒng)管理人員不需要在幾百甚至上千部電腦之間來(lái)回奔跑,只需要管理服務(wù)器就行了,所有的客戶(hù)端只是瀏覽器,根本不需要做任何的維護(hù)。 (3) B/S 建立在廣域網(wǎng)上, 面向不同的用戶(hù)群, 分散地域, 這
41、是C/S無(wú)法作到的. 與操作系統(tǒng)平臺(tái)關(guān)系最小.B/S架構(gòu)的軟件系統(tǒng)的擴(kuò)展非常容易,只要能上網(wǎng),系統(tǒng)管理員分配一個(gè)用戶(hù)名和密碼,還可以在線(xiàn)申請(qǐng)等。5.2.1 結(jié)構(gòu)化設(shè)計(jì)原則 (1)模塊化。 模塊一般具有如下三個(gè)屬性:(1)功能:指該模塊實(shí)現(xiàn)什么功能,解決什么需求。此處的功能指該模塊本身的功能與它所調(diào)用的所有子模塊功能之合。(2)邏輯:即描述模塊內(nèi)部如何做,即模塊內(nèi)部的執(zhí)行過(guò)程。(3)狀態(tài):即該模塊使用時(shí)的環(huán)境和條件。5.2 概要設(shè)計(jì)原則(2)模塊規(guī)模應(yīng)該適中;(3)適當(dāng)選擇深度、寬度、扇出和扇入;(4)模塊的作用域應(yīng)該在控制域之內(nèi);(5)力爭(zhēng)降低模塊接口的復(fù)雜程度;(6)設(shè)計(jì)單入口單出口的模塊;
42、(7)模塊功能應(yīng)該可以預(yù)測(cè)。(8)自頂向下逐步求精。(9)信息隱蔽和局部化。 5.2.2 模塊獨(dú)立性 所謂兩個(gè)模塊彼此完全獨(dú)立指其中任何一個(gè)模塊在運(yùn)行時(shí),與另一個(gè)模塊的存在無(wú)關(guān)。 模塊之間具有較高的獨(dú)立性是設(shè)計(jì)軟件系統(tǒng)的一個(gè)關(guān)鍵,其重要性主要體現(xiàn)在以下幾個(gè)方面 : (1) 系統(tǒng)容易開(kāi)發(fā)。由于模塊之間接口簡(jiǎn)單, 當(dāng)許多人分工合作開(kāi)發(fā)同一個(gè)軟件時(shí), 可以簡(jiǎn)化合作者之間的協(xié)調(diào)工作,提高系統(tǒng)開(kāi)發(fā)的效率。(2)系統(tǒng)可靠性高。模塊之間的相互影響小,當(dāng)一個(gè)模塊出錯(cuò)時(shí),由于模塊之間的聯(lián)系小,其他模塊受到的錯(cuò)誤波及也小,從而提高了系統(tǒng)的可靠性。(3) 系統(tǒng)易于測(cè)試和維護(hù)。 模塊的獨(dú)立程度可以由兩個(gè)定性標(biāo)準(zhǔn)衡量,
43、即模塊間的耦合性和模塊的內(nèi)聚性。 耦合性衡量不同模塊彼此間互相連接的緊密程度;內(nèi)聚性衡量一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度。為保證模塊的獨(dú)立性,在模塊設(shè)計(jì)時(shí)要盡量做到六個(gè)字:“高內(nèi)聚低耦合”。 在進(jìn)行物理模型設(shè)計(jì)時(shí)就遵循這兩條原則: (1)一個(gè)模塊內(nèi)部各個(gè)元素之間的聯(lián)系越緊密越好,即要使模塊具有較高的內(nèi)聚性。 (2)各個(gè)模塊之間的信息聯(lián)系要盡可能地減少,即模塊的耦合性要盡可能的低。 耦合是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)各個(gè)模塊之間相互關(guān)聯(lián)的度量。模塊間耦合的強(qiáng)弱取決于模塊間接口的復(fù)雜程度、調(diào)用模塊的方式以及通過(guò)模塊間接口的信息。5.3.1 IPO 圖5.3 概要設(shè)計(jì)工具輸入數(shù)據(jù)處理過(guò)程輸出結(jié)果輸入處理輸
44、出 一個(gè)IPO圖僅能夠描述單個(gè)處理功能的輸入數(shù)據(jù)、數(shù)據(jù)處理和輸出數(shù)據(jù)之間的關(guān)系,對(duì)于整個(gè)軟件系統(tǒng)的總體結(jié)構(gòu)不能進(jìn)行清晰的描述。因此在軟件設(shè)計(jì)中,我們通常將HIPO圖和IPO圖相結(jié)合,利用這兩個(gè)工具同共來(lái)表達(dá)系統(tǒng)的總體結(jié)構(gòu)和模塊的處理功能。 HIPO圖稱(chēng)為層次結(jié)構(gòu)圖,即分層的IPO圖,是系統(tǒng)設(shè)計(jì)的描述工具,是IBM公司于70年代中期在層次結(jié)構(gòu)圖的基礎(chǔ)上推出的一種描述系統(tǒng)結(jié)構(gòu)和模塊內(nèi)部處理功能的工具。HIPO圖由以下兩部分組成:(1)層次結(jié)構(gòu)圖:描述整個(gè)系統(tǒng)的設(shè)計(jì)結(jié)以及各類(lèi)模塊之間的關(guān)系。 (2)IPO圖:描述某個(gè)特定模塊內(nèi)部的處理過(guò)程和輸入/輸出關(guān)系。檢 索2 題名檢索1 ISBN號(hào)檢索3 作者
45、檢索圖5-5 HIPO圖圖5-6 IPO圖 5.3.2 模塊結(jié)構(gòu)圖模塊名模塊:用矩形框表示,并用模塊的名字標(biāo)記。調(diào)用關(guān)系:箭頭從調(diào)用模塊指被調(diào)用模塊。被調(diào)用模塊執(zhí)行完成后,控制又返回到調(diào)用模塊。模塊間的數(shù)據(jù)傳遞:用尾端帶有空心圓的短箭頭表示數(shù)據(jù)信息。模塊間的控制信息傳遞:用尾端帶有實(shí)心圓短箭頭表示控制信息。循環(huán)調(diào)用下層模塊:選擇調(diào)用下層模塊:數(shù)據(jù)存儲(chǔ):模塊結(jié)構(gòu)圖的三種基本結(jié)構(gòu) 模塊之間的調(diào)用關(guān)系主要有三種:直接調(diào)用、選擇調(diào)用和循環(huán)調(diào)用。 模塊結(jié)構(gòu)圖中的模塊類(lèi)型(1) 傳入模塊 傳入模塊從下屬模塊取得數(shù)據(jù), 經(jīng)過(guò)某些處理, 再將其傳送給上級(jí)模塊。見(jiàn)圖6-14(a)。變換型數(shù)據(jù)流程圖的輸入模塊以及
46、事務(wù)型數(shù)據(jù)流圖中的接受事務(wù)模塊均屬于此類(lèi)模塊。(2) 傳出模塊 傳出模塊從上級(jí)模塊中獲取數(shù)據(jù), 進(jìn)行某些處理, 再將其傳送給下屬模塊。見(jiàn)圖6-14(b)。如變換型數(shù)據(jù)流圖及事務(wù)型數(shù)據(jù)流圖中的輸出模塊均屬于此類(lèi)模塊。(3) 變換模塊 也叫加工模塊, 它從上級(jí)模塊取得數(shù)據(jù), 進(jìn)行特定的處理, 轉(zhuǎn)換成其他形式, 再傳送回上級(jí)模塊。見(jiàn)圖6.14(c)。如事務(wù)型數(shù)據(jù)流圖中的調(diào)度模塊就屬于此類(lèi)模塊。(4) 協(xié)調(diào)模塊 對(duì)所有的下屬模塊進(jìn)行協(xié)調(diào)和管理的模塊, 在一個(gè)較好的模塊結(jié)構(gòu)圖中, 該模塊應(yīng)在較高層出現(xiàn)。見(jiàn)圖6-14(d)。如變換型數(shù)據(jù)流圖的總控模塊以及事務(wù)型數(shù)據(jù)流圖中的事務(wù)中心塊均屬于此類(lèi)模塊。 模塊間
47、調(diào)用的規(guī)則(1)每個(gè)模塊有自身的任務(wù),只有接收到上級(jí)模塊的調(diào)用命令時(shí)才能執(zhí)行。(2)模塊之間的通信只限于其直接上、下級(jí)模塊,任何模塊不能直接與其他上下級(jí)模塊或同級(jí)模塊發(fā)生通信聯(lián)系。(3)若有某模塊要與非直接上、下級(jí)的其他模塊發(fā)生通信聯(lián)系,必須通過(guò)其上下級(jí)模塊進(jìn)行傳遞。(4)模塊調(diào)用順序?yàn)樽陨隙隆?模塊結(jié)構(gòu)圖的示例 模塊結(jié)構(gòu)圖的改進(jìn) (1)完善模塊的功能(2)提高模塊獨(dú)立性 (3) 合理確定模塊結(jié)構(gòu)的規(guī)模,盡可能減少高扇出的結(jié)構(gòu),隨深度增加而增大扇入。 模塊的規(guī)模包括兩個(gè)方面:模塊結(jié)構(gòu)的深度和模塊結(jié)構(gòu)的寬度。 深度表示模塊結(jié)構(gòu)中的層數(shù), 它往往能粗略地標(biāo)志一個(gè)系統(tǒng)的大小和復(fù)雜程度。模塊結(jié)構(gòu)圖一
48、般不要超過(guò)7層。 寬度是模塊結(jié)構(gòu)圖內(nèi)同一個(gè)層次上的模塊總數(shù)的最大值。一般來(lái)說(shuō),寬度越大系統(tǒng)越復(fù)雜。 一個(gè)模塊的扇入指直接調(diào)用該模塊的上級(jí)模塊的數(shù)目。扇入越大則共享該模塊的上級(jí)模塊數(shù)目越多。 如果一個(gè)模塊的扇入數(shù)過(guò)大,例如超過(guò)8,而這個(gè)模塊又不是公用模塊,說(shuō)明該模塊包含多個(gè)功能,這時(shí)應(yīng)對(duì)它進(jìn)行功能分解。(4)模塊的作用范圍應(yīng)該在控制范圍之內(nèi) (5) 模塊大小應(yīng)該適中(6) 設(shè)計(jì)單入口單出口的模塊單入口單出口的模塊可以降低模塊接口的復(fù)雜程度,設(shè)計(jì)的軟件也是易理解、易維護(hù)的,因此不要使模塊間出現(xiàn)內(nèi)容藕合。(7) 模塊功能應(yīng)該能夠預(yù)測(cè),同時(shí)要防止模塊功能過(guò)于受局限。 5.4 概要設(shè)計(jì)說(shuō)明書(shū)格式1引言2
49、編寫(xiě)目的 3 項(xiàng)目背景4任務(wù)概述5 定義6 運(yùn)行環(huán)境7 需求概述8 條件與限制;9 總體設(shè)計(jì)10 接口設(shè)計(jì) 11 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 12 運(yùn)行設(shè)計(jì) 13出錯(cuò)處理設(shè)計(jì) 14 安全保密設(shè)計(jì)15 參考資料 再見(jiàn)!5.5 詳細(xì)設(shè)計(jì)5.5.1 詳細(xì)設(shè)計(jì)的內(nèi)容詳細(xì)設(shè)計(jì)階段的基本任務(wù)有:1. 為每個(gè)模塊進(jìn)行詳細(xì)的算法設(shè)計(jì)。確定模塊采用的算法, 寫(xiě)出模塊的詳細(xì)過(guò)程性描述。即為每個(gè)模塊確定采用的算法, 選擇某種適當(dāng)?shù)墓ぞ弑磉_(dá)算法的過(guò)程, 寫(xiě)出模塊的詳細(xì)過(guò)程性描述。2為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì)。確定每一模塊使用的數(shù)據(jù)結(jié)構(gòu)。3對(duì)數(shù)據(jù)庫(kù)進(jìn)行物理設(shè)計(jì),即確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。4 網(wǎng)絡(luò)設(shè)計(jì)。5其它設(shè)計(jì):根據(jù)軟件系統(tǒng)類(lèi)型,還可
50、能要進(jìn)行用戶(hù)界面設(shè)計(jì)、輸入/輸出格式設(shè)計(jì)。包括對(duì)系統(tǒng)外部的接口, 對(duì)系統(tǒng)內(nèi)部其他模塊的接口, 以及模塊輸入數(shù)據(jù)、輸出數(shù)據(jù)及局部數(shù)據(jù)的全部細(xì)節(jié)。 接口設(shè)計(jì)注意以下原則:統(tǒng)一性;簡(jiǎn)明易學(xué);靈活性;嚴(yán)謹(jǐn)性。6編寫(xiě)詳細(xì)設(shè)計(jì)說(shuō)明書(shū);評(píng)審。1. 中小型主機(jī)方案與微機(jī)網(wǎng)絡(luò)方案的選取2. 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)3. 互連結(jié)構(gòu)及通信介質(zhì)的選型4. 網(wǎng)絡(luò)計(jì)算模式5. 網(wǎng)絡(luò)操作系統(tǒng)及網(wǎng)絡(luò)協(xié)議等的選擇6. 網(wǎng)絡(luò)計(jì)算模式: 客戶(hù)機(jī)/服務(wù)器(C/S)模式還是B/W/D模式。隨著Internal技術(shù)的發(fā)展和廣泛應(yīng)用,MIS的網(wǎng)絡(luò)計(jì)算模式開(kāi)始更多的采用瀏覽器/Web服務(wù)器/數(shù)據(jù)庫(kù)服務(wù)器(B/W/D)模式。5.5.2 網(wǎng)絡(luò)設(shè)計(jì)內(nèi)容1 引
51、言2 編寫(xiě)目的 3 項(xiàng)目背景與需求概述 4 定義5 參考資料 6 軟件結(jié)構(gòu) 7 程序描述8 接口9 存儲(chǔ)結(jié)構(gòu)10數(shù)據(jù)庫(kù)設(shè)計(jì) 11 限制條件12 測(cè)試要點(diǎn):給出測(cè)試模塊的主要測(cè)試要求。13尚未解決的問(wèn)題 5.3.3 詳細(xì)設(shè)計(jì)說(shuō)明書(shū)格式 再見(jiàn)!第6章 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)環(huán)境一般有兩種情況: (1)軟件(DBMS)和硬件未確定的情況,這樣的環(huán)境只能從用戶(hù)的應(yīng)用環(huán)境出發(fā),先進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)然后再提出軟件(包括DBMS)需求和硬件需求;(2)計(jì)算機(jī)軟件與硬件環(huán)境以及DBMS已經(jīng)確定,在此環(huán)境下進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)工作。這種情況屬于普遍情況。6.1數(shù)據(jù)庫(kù)設(shè)計(jì)的重要性 (1) 數(shù)據(jù)庫(kù)設(shè)計(jì)直接影響軟件編程質(zhì)量, 從
52、而導(dǎo)致開(kāi)發(fā)走很多不應(yīng)該走的彎路. 反過(guò)來(lái)講, 如果設(shè)計(jì)的好,可以提高軟件編程效率.(2) 數(shù)據(jù)庫(kù)設(shè)計(jì)的好與差直接影響系統(tǒng)的維護(hù)性能。數(shù)據(jù)庫(kù)設(shè)計(jì)分為四個(gè)階段:(1) 需求分析階段;(2) 概念設(shè)計(jì)階段;(3) 邏輯設(shè)計(jì)階段;(4) 物理設(shè)計(jì)階段。 需求分析階段數(shù)據(jù)庫(kù)設(shè)計(jì)的任務(wù)是: 1. 調(diào)查和搜集客戶(hù)需求。在調(diào)查過(guò)程中,可以根據(jù)不同的問(wèn)題和條件,使用不同的調(diào)查方法。常用的調(diào)查方法有:(1) 跟班作業(yè)。通過(guò)親身參加業(yè)務(wù)工作來(lái)了解業(yè)務(wù)活動(dòng)的情況。這種方法可以比較準(zhǔn)確的理解用戶(hù)的需求,但比較耗費(fèi)時(shí)間。(2) 開(kāi)調(diào)查會(huì)。通過(guò)與用戶(hù)座談來(lái)了解業(yè)務(wù)活動(dòng)情況及用戶(hù)需求。座談時(shí),參加者之間可以相互啟發(fā)。(3)
53、請(qǐng)專(zhuān)人介紹。(4) 詢(xún)問(wèn)。對(duì)某些調(diào)查中的問(wèn)題,可以找專(zhuān)人詢(xún)問(wèn)。(5) 設(shè)計(jì)調(diào)查表,根據(jù)表的內(nèi)容與用戶(hù)交流或者請(qǐng)用戶(hù)填寫(xiě)(見(jiàn)表61)。如果調(diào)查表設(shè)計(jì)得合理,這種方法是很有效,也易于為用戶(hù)接受。(6) 查閱記錄。查閱與原系統(tǒng)有關(guān)的數(shù)據(jù)記錄。6.2 需求分析階段的設(shè)計(jì)序號(hào)問(wèn)題名稱(chēng)描述數(shù)據(jù)要求約束包括:時(shí)間、預(yù)算、人員和其他因素表 6-1 需求調(diào)查表2. 了解企業(yè)業(yè)務(wù)情況,包括手工業(yè)務(wù)流程,輸出什么報(bào)表等,搞清楚輸入的數(shù)據(jù)是哪些,報(bào)表輸出的格式是什么。讓用戶(hù)可以提供一些報(bào)表樣本。 3 創(chuàng)建數(shù)據(jù)字典。 4 創(chuàng)建數(shù)據(jù)流圖。6.2.1 數(shù)據(jù)流圖示例 某倉(cāng)庫(kù)管理系統(tǒng)按以下步驟進(jìn)行信息處理,試畫(huà)出數(shù)據(jù)流圖。(1
54、) 保管員根據(jù)當(dāng)日的出庫(kù)單和入庫(kù)單通過(guò)出庫(kù)處理和入庫(kù)處理分別將數(shù)據(jù)輸入到“出庫(kù)流水帳”和“入庫(kù)流水帳”,并修改“庫(kù)存臺(tái)帳”。(2) 根據(jù)庫(kù)存臺(tái)帳由統(tǒng)計(jì)、打印程序輸出庫(kù)存日?qǐng)?bào)表。(3) 需要查詢(xún)時(shí),可利用查詢(xún)程序在輸入查詢(xún)條件后,到庫(kù)存臺(tái)帳去查找,顯示查詢(xún)結(jié)果。出庫(kù)處理出庫(kù)流水賬入庫(kù)處理入庫(kù)單出庫(kù)單入庫(kù)流水賬庫(kù)存臺(tái)賬統(tǒng)計(jì)打印查詢(xún)庫(kù)存查詢(xún)結(jié)果庫(kù)存日?qǐng)?bào)表例子 車(chē)間填寫(xiě)領(lǐng)料單給倉(cāng)庫(kù)要求領(lǐng)料,庫(kù)長(zhǎng)根據(jù)用料計(jì)劃審批領(lǐng)料單,未批準(zhǔn)的退回車(chē)間,已批準(zhǔn)的領(lǐng)料單送到倉(cāng)庫(kù)保管員處,由他查閱庫(kù)存帳。若帳上有貨則通知車(chē)間前來(lái)領(lǐng)料,否則將缺貨通知采購(gòu)人員。用料計(jì)劃采購(gòu)員庫(kù)存賬審批領(lǐng)料單車(chē)間查閱庫(kù)存帳未批準(zhǔn)的領(lǐng)料單已批準(zhǔn)領(lǐng)
55、料單缺貨通知領(lǐng)料通知領(lǐng)料單6.2.2數(shù)據(jù)字典示例下面以實(shí)例說(shuō)明數(shù)據(jù)字典的應(yīng)用。(1)數(shù)據(jù)流條目:例如, 某圖書(shū)管理系統(tǒng),其功能包括圖書(shū)的購(gòu)入、借閱、歸還和注銷(xiāo)。在此系統(tǒng)中,入庫(kù)單、借書(shū)單、還書(shū)單、注銷(xiāo)單等都是數(shù)據(jù)流,現(xiàn)對(duì)“借書(shū)單”說(shuō)明如下:借書(shū)單=讀者編號(hào)+分類(lèi)目錄號(hào)+借閱日期(2)數(shù)據(jù)存儲(chǔ)條目在上例的圖書(shū)管理系統(tǒng)中,“讀者文件”是個(gè)數(shù)據(jù)存儲(chǔ),對(duì)它說(shuō)明如下:文件名:借書(shū)單組成:讀者編號(hào)+姓名+所在部門(mén)數(shù)據(jù)存儲(chǔ)組織:按讀者編號(hào)遞增順序排列存儲(chǔ)方式:關(guān)鍵碼(3)數(shù)據(jù)元素(即數(shù)據(jù)項(xiàng))條目 在上例的圖書(shū)管理系統(tǒng)中,“讀者編號(hào)”是個(gè)數(shù)據(jù)項(xiàng),對(duì)它說(shuō)明如下:數(shù)據(jù)元素名稱(chēng):讀者編號(hào)類(lèi)型:數(shù)字(連續(xù)值)長(zhǎng)度:8
56、位取值范圍: “00000001” “99999999”(4)處理?xiàng)l目 處理?xiàng)l目就是“處理小說(shuō)明”。一般應(yīng)單獨(dú)列出。6.3 概念設(shè)計(jì)階段 6.3.1 概念模型的表示方法 通常我們用E-R圖來(lái)表示數(shù)據(jù)庫(kù)的概念模型。E-R圖的構(gòu)成要素為:實(shí)體、屬性和聯(lián)系。在E-R圖中的基本圖形符號(hào)為:表示實(shí)體,框中填寫(xiě)實(shí)體名。表示實(shí)體間聯(lián)系,框中填寫(xiě)聯(lián)系名。表示實(shí)體或聯(lián)系的屬性,圈中填寫(xiě)屬性名。連接以上三種圖形,構(gòu)成具體概念模型。例子 如果要表示圖書(shū)實(shí)體的屬性關(guān)系如圖6-2(a)所示的E-R圖;要表示作者實(shí)體的屬性關(guān)系如圖6-2(b)所示的E-R圖;要表示作者實(shí)體與圖書(shū)實(shí)體之間聯(lián)系如圖6-2(c)所示的E-R圖。
57、6.3.2 E-R圖的繪制步驟1. 進(jìn)行數(shù)據(jù)分析與抽象,確定實(shí)體、屬性和聯(lián)系。2. 設(shè)計(jì)局部E-R圖,也稱(chēng)用戶(hù)視圖。 3. 綜合各局部E-R圖,形成總的E-R圖,即用戶(hù)視圖的集成。 1數(shù)據(jù)分析與抽象數(shù)據(jù)抽象方法 :(1)分類(lèi)。定義某一類(lèi)概念作為現(xiàn)實(shí)世界中一組對(duì)象的類(lèi)型,這些對(duì)象具有某些共同的特性和行為,它抽象了對(duì)象值和型之間的“is member of”的語(yǔ)義,在E-R模型中,實(shí)體型就是這種抽象。 (2)聚集。定義某一類(lèi)型的組成成分,它抽象了對(duì)象內(nèi)部類(lèi)型和成分之間“is part of”的語(yǔ)義,在E-R模型中若干屬性的聚集組成了實(shí)體型,就是這種抽象。 (3)概括。定義類(lèi)型之間的一種子集聯(lián)系,它
58、抽象了類(lèi)型之間的“is subset of”的語(yǔ)義,概括有一個(gè)很重要的性質(zhì):繼承性。子類(lèi)繼承超類(lèi)上定義的所有抽象(圖6-3)。 圖6-4 子類(lèi)繼承超類(lèi) 如何抽象實(shí)體和屬性 區(qū)分實(shí)體與屬性一般原則是: 實(shí)體:是一個(gè)有著一系列顯著的、易辨認(rèn)的屬性的客觀(guān)對(duì)象?,F(xiàn)實(shí)世界中一組具有某些共同特性和行為的對(duì)象就可以抽象為一個(gè)實(shí)體。對(duì)象和實(shí)體之間是“is member of”的關(guān)系。 屬性:對(duì)象類(lèi)型的組成成分可以抽象為實(shí)體的屬性。組成成分與對(duì)象類(lèi)型之間是“is part of的關(guān)系。例:學(xué)號(hào)、姓名、專(zhuān)業(yè)、年級(jí)等可以抽象為學(xué)生實(shí)體的屬性。其中學(xué)號(hào)為標(biāo)識(shí)學(xué)生實(shí)體的碼。例子 職稱(chēng)通常作為教師實(shí)體的屬性,但在涉及住房
59、分配時(shí),由于分房與職稱(chēng)有關(guān),也就是說(shuō)職稱(chēng)與住房實(shí)體之間有聯(lián)系,這時(shí)把職稱(chēng)作為實(shí)體來(lái)處理會(huì)更合適些(圖6-5)。職工職工號(hào)姓名年齡職稱(chēng)職工職稱(chēng)聘任n1職工號(hào)姓名性別年齡職稱(chēng)代碼工資住房標(biāo)準(zhǔn)附加福利例子 倉(cāng)庫(kù),貨物和職工,貨物存放在倉(cāng)庫(kù),職工管理倉(cāng)庫(kù)。所以倉(cāng)庫(kù),貨物和職工分別作為實(shí)體比較好(圖6-6)。 例子 教學(xué)管理系統(tǒng)應(yīng)對(duì)學(xué)校中的教師,學(xué)生,課程進(jìn)行管理, 掌握課程設(shè)置和教師配備情況以及學(xué)生成績(jī)的管理。 通過(guò)需求分析后, 可知該系統(tǒng)涉及的實(shí)體包括: 教師、系、學(xué)生和課程。對(duì)于每一個(gè)實(shí)體集, 根據(jù)系統(tǒng)輸出數(shù)據(jù)的要求, 抽象出如下的實(shí)體與屬性:)系(系號(hào),系名,專(zhuān)業(yè),職稱(chēng),性別,年齡) )教師(教
60、師號(hào),姓名,性別,出生日期,專(zhuān)業(yè)) )學(xué)生(課程號(hào), 課程名,學(xué)時(shí),類(lèi)別)2確定局部E-R圖 對(duì)于學(xué)校來(lái)說(shuō),作為一個(gè)系統(tǒng)內(nèi)的實(shí)體集, 這些實(shí)體間并不完全相互獨(dú)立, 而存在一定聯(lián)系, 我們對(duì)實(shí)體間的聯(lián)系進(jìn)行分析: 假定在一個(gè)學(xué)校內(nèi):1個(gè)系有多名教師, 而一個(gè)教師只能屬于一個(gè)系, 因此系和教師之間是1對(duì)多的關(guān)系;1個(gè)系有多名學(xué)生, 而一個(gè)學(xué)生只能屬于一個(gè)系, 因此系和學(xué)生之間是1對(duì)多的關(guān)系;1個(gè)教師可以講多門(mén)課程, 而一個(gè)課程可以由多個(gè)學(xué)生講, 因此課程和教師之間是多對(duì)多的關(guān)系;1個(gè)學(xué)生可以選修多門(mén)課程, 而一門(mén)課程師可以被多個(gè)學(xué)生選修, 因此學(xué)生和課程之間是多對(duì)多的關(guān)系; 局部的E-R圖如圖6-
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版高科技農(nóng)業(yè)設(shè)施租賃服務(wù)合同范本3篇
- 2025年中國(guó)工業(yè)用紙行業(yè)市場(chǎng)深度分析及投資戰(zhàn)略規(guī)劃報(bào)告
- 2025版烤鴨店學(xué)員招募及學(xué)費(fèi)支付合同2篇
- 2024版交通服務(wù)合同范文
- 二零二五年度7月上市企業(yè)債券發(fā)行還款協(xié)議范本2篇
- 2024水路貨物運(yùn)輸合同船舶維護(hù)保養(yǎng)與定期檢修細(xì)則3篇
- 2025年度杭州數(shù)據(jù)中心租賃合同2篇
- 2024年男方權(quán)益突出離婚合同模板版B版
- 2025版物業(yè)管理糾紛調(diào)解服務(wù)合同3篇
- 2025年度智能家居產(chǎn)品包銷(xiāo)合同模板2篇
- 2025年中國(guó)社會(huì)科學(xué)院外國(guó)文學(xué)研究所專(zhuān)業(yè)技術(shù)人員招聘3人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 【9歷期末】安徽省淮北市2023-2024學(xué)年九年級(jí)上學(xué)期期末歷史試題
- 2024年度物流園區(qū)運(yùn)營(yíng)承包合同范本3篇
- 第五單元第四節(jié) 全球發(fā)展與合作 教學(xué)實(shí)錄-2024-2025學(xué)年粵人版地理七年級(jí)上冊(cè)
- 貴州省部分學(xué)校2024-2025學(xué)年高三年級(jí)上冊(cè)10月聯(lián)考 化學(xué)試卷
- 期末綜合試卷(試題)2024-2025學(xué)年人教版數(shù)學(xué)五年級(jí)上冊(cè)(含答案)
- 2024-2025學(xué)年上學(xué)期武漢小學(xué)語(yǔ)文六年級(jí)期末模擬試卷
- 2023-2024學(xué)年貴州省貴陽(yáng)外國(guó)語(yǔ)實(shí)驗(yàn)中學(xué)八年級(jí)(上)期末數(shù)學(xué)試卷(含答案)
- 《爭(zhēng)做文明班級(jí)》課件
- 遼寧省大連市沙河口區(qū)2022-2023學(xué)年八年級(jí)上學(xué)期物理期末試卷(含答案)
- 2024年新能源汽車(chē)概論考試題庫(kù)
評(píng)論
0/150
提交評(píng)論