




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