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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、軟件工程與實踐第1章 軟件工程概述1.1 軟件1.1.1 軟件的定義與特征1軟件的定義 程序設計階段(19461956年),“軟件”的含義就是“程序”。 程序系統(tǒng)階段(19561968年)。這個階段的生產方式是作坊式的 小集團合作生產,生產工具是高級語言,開發(fā)方法仍就靠個人技巧,但開始提出結構化方法。 該階段的后期,隨著軟件需求量、規(guī)模及復雜度的增大,生產作坊的方式已經不能夠適應軟件生產的需要,出現了所謂的“軟件危機”。這個階段“軟件”的含義就是“程序和使用說明書”。 軟件工程階段(1968年至今)。此階段的主要任務是為了克服軟件危機,適應軟件發(fā)展的需要,而在軟件生產中采用“工程化的生產” 方

2、式進行開發(fā)。這個階段“軟件”的含義就是“程序、文檔、數據”。2軟件的特征有計算機軟件就有計算機硬件,二者共同組成計算機系統(tǒng)。軟件的特征是:(1)軟件是一種邏輯實體。它的存在是保存在一種媒介上面,例如:紙張,磁盤,內存,磁帶,光盤等。(2)軟件是綠色產品,沒有污染,它的運行不會出現磨損和對空氣、土地等對人體有害的物質。(3)軟件的研制是一種高智力勞動。計算機軟件既是作品,又是工具,是作品性與工具性緊密結合的智力成果。(4)計算機軟件開發(fā)工作最大、成本高,但復制容易、成本極低。計算機軟件是開發(fā)者智力勞動的結晶,具有原創(chuàng)性質。1.1.2 軟件系統(tǒng)數據通信軟件數據通信軟件是指按著網絡協議的要求,完成通

3、信功能的軟件。網絡操作系統(tǒng)網絡操作系統(tǒng)是指能夠控制和管理網絡資源的軟件。 網絡應用軟件(4) 網絡信息系統(tǒng)網絡信息系統(tǒng)是指以計算機網絡為基礎開發(fā)的信息系統(tǒng)。 1.2 軟件工程的知識體系1.3.1 軟件工程的產生 當軟件開發(fā)技術的進步不能跟上硬件技術的進步,未能滿足發(fā)展的要求,致軟件開發(fā)中遇到的問題找不到解決的辦法,使問題積累起來,形成了尖銳的矛盾,因而導致了軟件危機。主要表現為:經費預算經常突破,完成時間一再拖延;開發(fā)的軟件不能滿足用戶要求;開發(fā)的軟件可維護性差;開發(fā)的軟件可靠性差。造成軟件危機的原因是由于軟件產品本身的特點以及開發(fā)軟件的方式、方法、技術和人員引起的。1.3.2軟件工程的定義

4、美國電氣與電子工程師學會IEEE對軟件工程的定義:(1)應用系統(tǒng)化的、學科化的、定量的方法來開發(fā)、運行和維護軟件,即,將工程應用到軟件;(2)對(1)中的各種方法的研究。 軟件工程是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科。 它應用計算機科學、數學及管理科學等原理,采用工程的概念、原理、技術和方法來開發(fā)與維護軟件,把正確的管理技術和目前最有效的技術與方法結合起來去開發(fā)、生產、維護軟件,以達到提高質量,降低成本的目的。軟件工程的三要素 軟件工程的方法、工具和過程構成了軟件工程的三要素。(1)軟件工程方法。 (2)軟件工具。 (3)軟件工程過程。 1.4 軟件工程的原則(1

5、)抽象性。 (2)信息隱蔽性。(3)模塊化。 (4)局部化(5)確定性(6)一致性(7)完備性(7)可驗證性。 1.5 軟件工程的目標 軟件工程的目標可以用四個字總結:多、快、好、省。 “多”指的是功能齊全; “快”指的是提高生產率,按照項目計劃提前完成任務; “好”指的是取得較好軟件性能的,滿足用戶需要的高質量軟件產品; “省”指的是節(jié)省成本。1.6 軟件工程的基本原理1 用分階段的生命周期計劃嚴格管理 。2 堅持進行階段評審 3 實行嚴格的產品控制 。4 采用現代程序設計技術。 5結果可審查 6 開發(fā)小組的人員應少而精。 7 軟件實踐不斷改進。1.7 軟件工程思維的培養(yǎng)1考慮整個項目或者產

6、品的市場前景。 2從用戶的角度來考慮問題。 3從技術的角度考慮問題。 4合理進行模塊的分割。 5人員的組織和調度。 6開發(fā)過程中文檔的編寫。 7充分考慮實施時可能遇到的問題。 再見!第2章 軟件生命周期與開發(fā)模型2.1 軟件生命周期 軟件生存周期一般劃分為三個階段:(1)計劃時期;(2) 開發(fā)時期;(3) 運行與維護時期。2.1.1計劃時期這個時期的任務是:(1)確定軟件開發(fā)工程必須完成的總目標;(2)確定工程的可行性;(3)導出實現工程目標應該采用的策略及軟件必須具有的功能;(4)估算完成該項開發(fā)工程需要的資源和成本,并且制定工程進度表。 可行性研究的步驟一般有如下幾個步驟: 1關鍵人員訪談

7、: 可行性研究分析人員找到項目干系人中的關鍵人員, 了解如下幾方面的內容:(1)項目的規(guī)模有多大;(2)項目目標是什么;(3) 目前系統(tǒng)的信息來源于何處;(4)目前系統(tǒng)的優(yōu)點和缺點;(5)目前系統(tǒng)與國內外同類產品的比較,優(yōu)勢和劣勢分別是什么。 2找出邏輯模型: 3找出多種方案。 4寫出可行性研究報告。 5寫出需求分析報告。 6進行審查。 2.1.2 開發(fā)時期一個軟件的開發(fā)包括四個步驟:(1)需求分析;(2)概要設計;(3)詳細設計;(4)編碼和測試。這兩個過程是同步進行的。2.1.3 運行與維護時期 軟件的維護一般包括改正性維護、適應性維護、完善性維護和預防性維護等四個方面。 2.2 軟件開發(fā)

8、方法綜述2.2.1 結構化方法 結構化開發(fā)方法是由E.Yourdon 和 L.L.Constantine 提出的,即所謂的SASD 方 法, 也可稱為面向功能的軟件開發(fā)方法或面向數據流的軟件開發(fā)方法。Yourdon方法是80年代 使用最廣泛的軟件開發(fā)方法。它首先用結構化分析(SA)對軟件進行需求分析,然后用結構化設計(SD)方法進行總體設計,最后是結構化編程(SP)。它給出了兩類典型的軟件結構(變換型和事務型)使軟件開發(fā)的成功率大大提高。 2.2.2 面向數據結構的軟件開發(fā)方法 Jackson方法是最典型的面向數據結構的軟件開發(fā)方法,Jackson方法把問題分解為可由三種基本結構形式表示的各部

9、分的層次結構。 三種基本的結構形式就是順序、選擇和重復。三種數據結構可以進行組合,形成復雜的結構體系。這一方法從目標系統(tǒng)的輸入、輸出數據結構入手,導出程序框架結構,再補充其它細節(jié),就可得到完整的程序結構圖。 2.2.3 面向問題的分析法(PAM) 面向問題的分析法(PAM,Problem Analysis Method)是80年代末由日立公司提出的一種軟件開發(fā)方法。 它的基本思想是考慮到輸入、輸出數據結構,指導系統(tǒng)的分解,在系統(tǒng)分析指導下逐步綜 合。 這一方法的具體步驟是:從輸入、輸出數據結構導出基本處理框;分析這些處理框之間的先后關系;按先后關系逐步綜合處理框,直到畫出整個系統(tǒng)的PAD圖2.

10、2.4 面向對象的開發(fā)方法 面向對象系統(tǒng)采用了自底向上的歸納、自頂向下的分解的方法,它通過對對象模型的建立,能夠真正建立基于用戶的需求,而且系統(tǒng)的可維護性大大改善。當前業(yè)界關于面向對象建模的標準是UML .2.2.5、原型化方法 產生原型化方法的原因很多,主要隨著我們系統(tǒng)開發(fā)經驗的增多,我們也發(fā)現并非所有的需求都能夠預先定義而且反復修改是不可避免的。 當然能夠采用原型化方法是因為開發(fā)工具的快速發(fā)展,比如用VB,DELPHI等工具我們可以迅速的開發(fā)出一個可以讓用戶看的見、摸的著的系統(tǒng)框架,這樣,對于計算機不是很熟悉的用戶就可以根據這個樣板提出自己的需求。2.2.6 可視化開發(fā)方法 可視化開發(fā)并不

11、能單獨的作為一種開發(fā)方法,更加貼切的說可以認為它是一種輔助工具,比如: S-Design,PowerDesigner,PowerBuilder,VB,DELPHI,C+ Builder等。 再見!2.3 軟件開發(fā)模型2.3.1 瀑布模型 將軟件生命周期劃分為制定計劃、需求分析、軟件設計、程序編寫、軟件測試和運行維護等六個基本活動,并且規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落。 2.3.2 螺旋模型 螺旋模型沿著螺線進行若干次迭代,圖2-5中的四個象限代表了以下活動. 螺旋模型沿著螺線旋轉,每個螺旋推進的過程都是漸進的實現過程,整個過程的實現,按照”制定計劃、風險分析、實施

12、工程和客戶評估”四個步驟循環(huán)實施。 (1)制定計劃:確定軟件目標,選定實施方案,弄清項目開發(fā)的限制條件。定義資源、進度及其他相關項目信息所需要的任務,以調整項目的目標和改善系統(tǒng)實施的效率。(2) 風險分析:分析評估所選方案,考慮如何識別和消除風險。從風險角度分析方案的開發(fā)策略,努力排除各種潛在的風險,有時需要通過建造原型來完成。如果某些風險不能排除,該方案立即終止,否則啟動下一個開發(fā)步驟。基于上述目標,評估技術及管理的風險,以決定如何實施項目。(3) 實施工程:實施軟件開發(fā)和驗證。包括系統(tǒng)需求分析、概要設計、詳細設計、編程、單元測試、系統(tǒng)測試和驗證測試等項目具體實施的各種任務。(4) 客戶評估

13、:評價開發(fā)工作,提出修正建議,制定下一步計劃。 螺旋模型的缺點是: (1)它可能難以使用戶相信演化方法是可控的; (2)瀑布模型要求在軟件開發(fā)的初期就完全確定軟件的需求,這在很多情況下往往是無法實現的。螺旋模型加入了瀑布模型所忽略的風險分析,從而彌補了瀑布模型的不足。 螺旋模型也有一定的限制條件,這些限制條件是: 1)螺旋模型強調風險分析,但要求許多客戶接受和相信這種分析,并做出相關反應是不容易的,因此,這種模型往往適應于內部的大規(guī)模軟件開發(fā)。 2) 如果執(zhí)行風險分析將大大影響項目的利潤,那么進行風險分析毫無意義,因此,螺旋模型只適合于大規(guī)模軟件項目。 3) 軟件開發(fā)人員應該擅長尋找可能的風險

14、,準確地分析風險,否則將會帶來更大的風險。2.3.3 增量模型 增量模型和瀑布模型之間的本質區(qū)別是:瀑布模型屬于整體開發(fā)模型,它規(guī)定在開始下一個階段的工作之前,必須完成前一階段的所有細節(jié)。 而增量模型屬于非整體開發(fā)模型,它推遲某些階段或所有階段中的細節(jié),從而較早的產生工作軟件。 增量模型是在項目的開發(fā)過程中以一系列的增量方式開發(fā)系統(tǒng)。 增量方式包括增量開發(fā)和增量提交。 增量模型也存在以下缺陷:(1)由于各個構件是逐漸并入已有的軟件體系結構中的,所以加入構件必須不破壞已構造好的系統(tǒng)部分,這需要軟件具備開放式的體系結構。(2)在開發(fā)過程中,需求的變化是不可避免的。增量模型的靈活性可以使其適應這種變

15、化的能力大大優(yōu)于瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟件過程的控制失去整體性。2.3.4 噴泉模型 該模型表明軟件刻畫活動需要多次重復。 例如,在編碼之前,(實踐之后),再次進行分析和設計,其間添加有關功能,使系統(tǒng)得以演化。 同時,該模型還表明活動之間沒有明顯的間隙,例如在分析和設計之間沒有明顯的界限。2.3.5 RAD模型RAD模型包含如下幾個開發(fā)階段 (1) 業(yè)務建模:業(yè)務活動中的信息流被模型化。通過回答以下問題來實現:什么信息驅動業(yè)務流程?生成什么信息?誰生成該信息?該信息流往何處?誰處理它? (2) 數據建模:業(yè)務建模階段定義的一部分信息流被細化,形成一系列支持

16、該業(yè)務所需的數據對象。標識出每個對象的屬性,并定義這些對象間的關系。 (3) 處理建模:數據建模階段定義的數據對象變換成要完成一個業(yè)務功能所需的信息流。創(chuàng)建處理描述以便增加、修改、刪除或獲取某個數據對象。 (4) 應用生成:RAD過程不是采用傳統(tǒng)的第三代程序設計語言來創(chuàng)建軟件,而是使用4GL技術或軟件自動化生成輔助工具,復用已有的程序構件(如果可能的話)或是創(chuàng)建可復用的構件(如果需要的話)。 (5) 測試及反復:因為RAD過程強調復用,許多程序構件已經是測試過的,這減少了測試時間。但新構件必須測試,所有接口也必須測到。 RAD模型還有一種改進型(見圖 2-9),將”編碼”從V字型的頂點移到左側

17、,和單元測試對應,從而構成水平的對應關系。 (1)從水平對應關系看 左邊是設計和分析,右邊是驗證和測試。右邊是對左邊結果的檢驗,即對設計和分析的結果進行測試,以確認是否滿足用戶的需求。 (2) 從圖形看 RAD模型避免了瀑布模型所帶來的誤區(qū)軟件測試是在代碼完成之后進行。RAD模型說明軟件測試的工作很早就可以開始了,項目一啟動,軟件測試的工作也就啟動了。 (3)從垂直方向看 水平虛線上部表明,其需求分析、功能設計和驗收測試等主要工作是面向用戶,要和用戶進行充分的溝通和交流,或者是和用戶一起完成。水平虛線下部的大部分工作,相對來說,都是技術工作,在開發(fā)組織內部進行,由工程師完成。圖 2-9 RAD

18、 改進型 2.3.6 迭代式模型迭代模型是RUP(統(tǒng)一軟件開發(fā)過程)推薦的周期模型。 在RUP中,迭代被定義為:迭代包括產生產品發(fā)布(穩(wěn)定、可執(zhí)行的產品版本)的全部開發(fā)活動和要使用該發(fā)布必需的所有其他外圍元素。 所以,在某種程度上,迭代開發(fā)是一次完整地重復所有工作流程的過程:需求工作流程、分析設計工作流程、實施工作流程和測試工作流程。 迭代過程具有以下優(yōu)點: 1)降低了在一個增量上的開支風險。如果開發(fā)人員重復某個迭代,那么損失只是這一個有問題的迭代的花費。 2)降低了產品進入市場的風險。通過在開發(fā)早期就確定風險,可以盡早來解決這個風險,而不至于在開發(fā)后期匆匆忙忙。 3)加快了整個開發(fā)工作的進度

19、。因為開發(fā)人員清楚問題的焦點所在,他們的工作會更有效率。 4)容易適應需求的變化。 2.4 快速原型開發(fā) 軟件原型化方法是指,在獲得一組基本需求說明后,經過快速分析構造出一個小型的軟件系統(tǒng)(原型系統(tǒng)),滿足用戶的基本要求。用戶試用該原型系統(tǒng),從中得到感受和啟發(fā),并對該原型系統(tǒng)做出反映和評價,然后開發(fā)者根據用戶的意見對原型加以改進。 隨著不斷地實驗、糾錯、使用、評價和修改,不斷獲得新的原型版本。如此反復,逐步減少分析和通信中的誤解,彌補不足,進一步確定各種需求細節(jié),適應需求的變更,從而提高最終產品的質量。 2.4.2軟件原型的分類1. 廢棄型 也稱為快速建立需求規(guī)格原型RSP法。先構造一個功能簡

20、單而且質量要求不高的模型系統(tǒng),針對這個模型系統(tǒng)反復進行分析修改,從而形成較好設計思想。 2. 追加型 也稱為快速建立漸進原型RCP法。采用循環(huán)漸進的開發(fā)方式,對系統(tǒng)模型作連續(xù)精化,即先構造一個功能簡單而且質量要求不高的模型系統(tǒng),作為最終系統(tǒng)的核心,將系統(tǒng)需要具備的性質逐步添加上去,通過不斷地擴充修改,逐步追加新的要求,直至所有性質全部滿足,此時的原型模型也就是最終的產品。2.4.3. 原型軟件的周期1原型分析 原型分析是指在分析者和用戶的緊密配合下,快速確定軟件系統(tǒng)的基本要求。根據原型所要體現的特性(或總體結構、處理功能,模擬性能、界面形式等),描述基本需求規(guī)格說明,以滿足開發(fā)原型的需要。當在

21、分析階段使用原型化方法時,必須從系統(tǒng)結構、邏輯結構、用戶特征、應用約束、項目管理和項目環(huán)境等多方面來考慮,以決定是否采用原型化方法。2原型構造 在原型分析的基礎上,根據基本需求規(guī)格說明,忽略細節(jié),只考慮主要特性,快速構造一個可運行的系統(tǒng)。為此需要強有力的軟件工具的支持。 3原型運行與評價 原型運行與評價階段是軟件開發(fā)人員與用戶頻繁通訊、發(fā)現問題、消除誤解的重要階段。其目的是驗證原型的正確程度,進而開發(fā)新的并修改原有的需求。4原型修正 對于原型系統(tǒng),一定要根據修改意見進行修正。如果原型運行的結果沒能滿足需求規(guī)格說明中的需求,那么就反映出對需求規(guī)格說明存在著不一致的理解或實現方案不夠合理。若因為嚴

22、重的理解錯誤而使正常操作的原型與用戶要求相違背時,就有可能產出廢品,因此應當立即放棄。 5判定原型完成 如果原型經過修正或和改進,獲得了參與者的一致認可,那么原型開發(fā)的迭代過程可以結束。為此,應判斷有關應用的實質是否已經掌握,迭代周期是否可以結束等。 判定的結果有兩個不同的轉向:一個是繼續(xù)迭代驗證;另一個是進行詳細說明,比如將需求轉化為報表,給出統(tǒng)計數字等。對于那些不能通過模型進行說明的成分,如果必要,須提供說明,并利用屏幕等進行討論和確定。 6判定原型效果 考察用戶新加入的需求信息和細部說明信息,看其對模型效果有何影響?是否會影響模塊的有效性?如果使模型效果受到影響,甚至導致模型實效,則要進

23、行修正和改進。7整理原型和提供文檔 整理原型的目的是為進一步開發(fā)提供依據。原型的初期需求模型是一個自動的文檔。2.4.4 快速原型的優(yōu)點1、增進了軟件開發(fā)人員和用戶對系統(tǒng)需求的理解,便于將用戶模糊的功能需求明確化。2、為用戶提供了一種強有力的學習手段。3、易于確定系統(tǒng)的性能,是理解和確認軟件需求規(guī)格說明的良好工具。4、按照快速建立漸進原型(RCP) 法建立的原型即為最終的產品。2.5 常用開發(fā)模型比較分析(1)瀑布模型不滿足客戶的需求。(2)快速原型模型關注滿足客戶需求,可能導致系統(tǒng)設計差、效率低,難于維護。原型模型的優(yōu)點是使用戶能夠感受到實際的系統(tǒng),使開發(fā)者能夠快速地構造出系統(tǒng)的框架。 (3

24、)增量模型開發(fā)早期反饋及時,易于維護需要開放式體系結構,可能會設計差、效率低。(4) 螺旋模型風險驅動風險分析人員需要有經驗且經過充分訓練。(5)漸增式模型實質就是分段的線性模型。 再見!第3章 可行性研究與項目計劃 3.1 可行性研究3.1.1 可行性研究的任務(1)經濟可行性研究 。(2)社會可行性研究 。(3)工作量的估計 。(4) 技術性研究 。(5) 國內外同類產品的水平比較 。(6) 風險性研究 。(7) 法律性研究 。(8) 市場前景的研究。3.1.2 可行性研究的步驟 1確定項目規(guī)模和目標 可行性研究分析人員找到項目干系人中的關鍵人員, 了解如下幾方面的內容:(1)項目的規(guī)模有

25、多大;(2)項目目標是什么;(3) 目前系統(tǒng)的信息來源于何處;(4)目前系統(tǒng)的優(yōu)點和缺點;(5)目前系統(tǒng)與國內外同類產品的比較,優(yōu)勢和劣勢分別是什么。2 建立新系統(tǒng)的高層邏輯模型。 從現有的物理系統(tǒng)出發(fā), 從而導出系統(tǒng)的高層邏輯。方法是用數據流圖來描述邏輯模型,然后對導出的邏輯模型進行研究, 最后根據開發(fā)的目標得到新系統(tǒng)的邏輯模型。3找出多種方案。 分析員從新系統(tǒng)的邏輯模型出發(fā),導出幾種高層次的物理解決方案供選擇。4寫出可行性研究報告。5進行審查。 1引言2項目組織3 參考資料4 術語5 .可行性研究的前提6條件、假定和限制7產品方案8 銷售重點3.2 可行性分析報告書寫規(guī)范 9對現有系統(tǒng)的分

26、析10所建議的系統(tǒng)在技術上的可行性分析11 可選擇的其他系統(tǒng)方案12 市場分析13 技術可行性評價14 投資及效益分析15社會和法律因素方面的可行性16結論 3.3 項目立項3.4.1 項目工作計劃項目工作計劃具體包括以下幾項內容:(1)項目概況;(2)項目進度;(3)人員構成;(4)項目組聯系方式;(5)費用支出;(6)客戶資料。3.4.2 硬件資源規(guī)劃1服務器。 2網絡設備。3. 開發(fā)機。 4測試機。5運行機。3.4.3 軟件資源規(guī)劃1開發(fā)平臺2第三方支持軟件3. 項目管理工具 4 開發(fā)工具 軟件開發(fā)時用到的解決工作效率問題的工具,它們是: 項目設計工具: 如RATIONAL, PROJE

27、CT2000等; 軟件設計繪圖工具: 如VISIO等; 測試工具:C+TEST, Mcabe,Rational ClearCase,LoadRunner等等 BUG 管理工具:BMS 等。 服務器上傳軟件FTP軟件; 軟件配置軟件: CVS, VSS, ROSE 等。 再見!第4章 軟件需求分析4.1 軟件需求分析的目標和任務4.1.1需求分析的目標 需求分析要回答的問題是“系統(tǒng)做什么”。 軟件需求分析是把軟件計劃期間建立的軟件可行性分析求精和細化,分析各種可能的解法,并且分配給各個軟件元素。它位于軟件開發(fā)的前期,是軟件生命周期中重要的一步,也是最關鍵的一步。 軟件需求分析的基本任務是確定系統(tǒng)

28、必須完成什么工作,也就是對目標系統(tǒng)提出完整、準確、清晰、具體的要求。4.1.2 需求分析的任務 (1)確定系統(tǒng)的綜合要求;(2)分析系統(tǒng)的數據和信息要求;(3)模型分析-導出目標系統(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、的是,每一次交流一定要有記錄,對于交流的結果還可以進行分類,便于后續(xù)的分析活動。4.2.2分析與綜合 系統(tǒng)分析員需要從信息流和信息結構出發(fā),逐步細化所有的軟件功能,找出系統(tǒng)各元素之間的聯系、接口特性和設計上的約束,分析它們是否滿足功能要求,是否合理。依據功能需求、性能需求、運行環(huán)境需求等,去除其不合理的部分,增加其需要的部分。最終綜合成系統(tǒng)的解決方案,給出目標系統(tǒng)的詳細邏輯模型。 4.2.3編制需求分析文檔 (1)軟件需求規(guī)格說明書 。(2)數據要求說明書 。(3)初步的用戶手冊 。(4)修改、完善與確定軟件開發(fā)實施計劃。4.2.4、綜合評審 (1)設計方案正確性、先進性、可行性和經濟性;(2

30、)系統(tǒng)組成、系統(tǒng)要求及接口協調的合理性;(3)系統(tǒng)與各子系統(tǒng)間技術接口的協調性;(4)采用設計準則、規(guī)范和標準的合理性;(5)系統(tǒng)可靠性、維修性、安全性要 求是否合理;(6)關鍵技術的落實解決情況;(7)編制的質量計劃是否可行。4.2.5 需求變更管理(1)不要輕易答應用戶進行修改;(2)即使可能修改,也要用戶方書面寫出變更申請書,在項目組討論確定之后進行變更; 影響分析。在用戶向項目組遞交變更申請書后,項目組要進行影響分析和評價,評價的結果可能是“批準”,也可能“駁回”變更申請書的變更。 重計劃。如果批準變更,有可能對項目的計劃進度或人員等進行相應變更,所以要進行重新計劃。 變更執(zhí)行。下面的

31、步驟就是執(zhí)行變更計劃了。 再見!4.3 數據流圖 數據流圖(簡稱DFD)是描述系統(tǒng)中數據變換的圖形工具。 數據流圖從數據傳遞和處理的角度,以圖形的方式刻畫數據流從輸入到輸出的傳輸變換過程。圖中沒有任何具體的物理元素,它僅僅描繪數據在系統(tǒng)中流動和被處理的情況。 設計數據流圖時只需考慮系統(tǒng)必須完成的基本邏輯功能,而不必考慮如何實現這些功能。因此,它也是進行軟件設計的一個很好的出發(fā)點。數據流圖的畫法 數據流圖有四種成分:源點或終點、處理、數據存儲和數據流?;舅枷耄?自頂向下,由外向里,逐步分解 。 找出外部實體的輸出數據流和輸入數據流; 從外部實體的輸出數據流出發(fā),逐步畫出一系列邏輯處理,直到找出

32、外部實體所需的輸入數據流,形成數據流的封閉; 重復上面的步驟,細化各部分邏輯處理,畫出第二層或更下一級的數據流圖。繪制數據流圖的步驟(1)確定所開發(fā)的系統(tǒng)的外部項(外部實體),即系統(tǒng)的數據來源和去處。(2)確定整個系統(tǒng)的輸出數據流和輸入數據流,把系統(tǒng)作為一個加工環(huán)節(jié),畫出關聯圖。(3)確定系統(tǒng)的主要信息處理功能,按此將整個系統(tǒng)分解成幾個加工環(huán)節(jié)(子系統(tǒng))確定每個加工的輸出與輸入數據流以及與這些加工有關的數據存儲。 (4)根據自頂向下,逐層分解的原則,對上層圖中全部或部分加工環(huán)節(jié)進行分解。(5)重復步驟(4),直到逐層分解結束。(6)對圖進行檢查和合理布局,主要檢查分解是否恰當、徹底,DFD中各

33、層是否有遺漏、重復、沖突之處,各層DFD及同層DFD之間關系是否爭取及命名、編號是否確切、合理等,對錯誤與不當之處進行修改。(7)和用戶進行交流,在用戶完全理解數據圖的內容的基礎上征求用戶的意見。數據流圖的實例數據流圖有關的說明1.處理到處理,實體到處理通常應標明數據流,處理到數據存儲可省去數據流。2.數據守恒。3.數據存儲必須有流入的數據流和流出的數據流。4.數據流致少有一端是處理框,數據流不能從外部實體直接到數據存儲或反之,不能在外部實體之間或數據存儲之間流動。 下面是一個銀行儲蓄業(yè)務的數據流圖(圖11-7)。 儲戶拿上存折或者存單到銀行辦理業(yè)務,銀行首先檢驗真?zhèn)危绻钦娴?,那么進行扣帳

34、登記,然后取款給儲戶,如果是假的,把信息返回給儲戶。分解實例課堂作業(yè)1 由需購置設備的部門填寫申購表格,將此表格送交設備科,設備科填寫預算表格送財務處,財務處核對后,將資金返回設備科,設備科利用資金購買設備,購得設備送需購設備的部門,將收據送財務處。課堂作業(yè)2 車間填寫領料單給倉庫要求領料,庫長根據用料計劃審批領料單,未批準的退回車間,已批準的領料單送到倉庫保管員處,由他查閱庫存帳。若帳上有貨則通知車間前來領料,否則將缺貨通知采購人員。課下作業(yè)請給出錄取業(yè)務的最高層數據流圖 再見!4.4 數據字典4.4.1 數據字典的用途 數據字典是分析階段的工具,這是數據字典最重要的用途用戶通過它可以清楚地

35、了解分析員隊系統(tǒng)數據和處理的詳細說明。不同的開發(fā)人員或不同的開發(fā)小組之間可以通過數據字典對數據做出嚴密一致的定義,從而避免定義得混亂。 數據字典對處理的描述是很有價值的,如果改變了某個數據的定義,則很容易看出對處理所所產生的影響,并能夠對受到影響的處理做出相應的改變。數據字典也是下一步設計得依據,如果要求所有開發(fā)人員都根據數據字典的定義去設計模塊,則能避免許多麻煩的接口問題。4.4.2 數據字典的內容數據流編號:數據流名稱:說明:簡要介紹作用即其產生的原因和結果數據流來源:從哪里來數據流去向:到那里去數據流組成:數據結構 數據元素編號:數據元素名稱: 類型:數字(連續(xù)值、離散值),字符(編碼類

36、型)長度:取值范圍:相關的數據元素即數據結構:數據存儲編號:數據存儲名稱:簡述:存放的是什么數據輸入數據: 輸出數據:數據存儲組成:數據結構 存儲方式:順序、直接、關鍵碼處理編號:反映該處理的層次處理名稱:簡要描述:處理邏輯及功能簡述輸入數據流:輸出數據流:處理邏輯:簡述處理程序、處理順序 外部實體 編號:外部實體名稱:簡要描述:什么外部實體從外部實體輸入:向外部實體輸出: 由數據元素組成數據(即數據結構)的方式有以下四種基本類型:(1)順序:即以確定次序連接兩個或多個分量。(2)選擇:即從兩個或多個可能的數據元素中選取一個。(3)重復:即把指定的分量重復零次或多次。(4)可選:即一個分量是可

37、有可無的(重復零次或一次)4.4.3定義數據的方法符號含 義 及 解 釋=等價于(或被定義為)+和(即,連接兩個分量);X=a + b 表示X由a 和 b 組成 選擇符號,表示對 中列舉的值可以任選其一;X=a|b 表示X由 a或 b組成 重復符號,表示對 中的內容可視需要重復使用 ;X=a 表示X由 0個或多個 a 組成( )可選符號,表示對( )中的內容可由設計者決定取舍;X=(a) 表示 a 可在X中出現,也可不出現M N 為連接符號,表示取值范圍在M到N之間;X=1 9 表示X可取1到9中的任意一個值“”基本數據元素;X=“a” 表示X是取值為字符a 的數據元素*注釋符號,表示兩個*之

38、間的內容是對條目的注釋舉例 某程序設計語言規(guī)定,變量標識符是長度不超過10個字符的字符串,第一個字符必須是字母字符,隨后的字符既可以是字母字符也可以是數字字符。根據上面講述的符號,定義標識符如下:標識符=字母字符+字母數字串字母數字串=0字母或數字9字母或數字=字母字符數字字符4.5 需求分析報告書寫規(guī)范1.目的和對象2. 項目背景描述 3. 調研情況介紹:4. 用戶特點5. 任務概述 6. 運行環(huán)境7. 功能需求 8. 數據描述9. 性能需求10. 運行需求11.不確定的問題12. 同類產品簡介 (限自主產品)13. 用戶手冊:14. 特殊要求 。15. 參考資料 再見!第5章 結構化軟件設

39、計5.1 概要設計綜述5.1.1 概要設計的內容結構化概要設計的步驟如下:(1)確定體系結構;(2)進行模塊劃分;(3)確定系統(tǒng)接口;(4)制定設計規(guī)范;(5)確定用戶主界面;(6)確定主要的算法;(7)異常處理設計;(8)書寫概要設計說明書5.1.2 軟件體系結構1 層次體系結構2 C/S結構3 B/S 結構4 B/S和C/S比較1. C/S的優(yōu)點(1)能充分發(fā)揮客戶端PC的處理能力,很多工作可以在客戶端處理后再提交給服務器。對應的優(yōu)點就是客戶端響應速度快。(2)可以減輕服務器端壓力,如果用戶的需求特別復雜,用C/S。2. C/S的缺點:(1)只適用于局域網。而隨著互聯網的飛速發(fā)展,移動辦公

40、和分布式辦公越來越普及,這需要我們的系統(tǒng)具有擴展性。這種方式遠程訪問需要專門的技術,同時要對系統(tǒng)進行專門的設計來處理分布式的數據。(2)客戶端需要安裝專用的客戶端軟件。系統(tǒng)軟件升級時,每一臺客戶機 需要重新安裝,其維護和升級成本非常高。2. B/S的優(yōu)點 (1)可以在任何地方進行操作而不用安裝任何專門的軟件。只要有一臺能上網的電腦就能使用,客戶端零維護。 (2)B/S架構的軟件對一個稍微大一點單位來說,系統(tǒng)管理人員不需要在幾百甚至上千部電腦之間來回奔跑,只需要管理服務器就行了,所有的客戶端只是瀏覽器,根本不需要做任何的維護。 (3) B/S 建立在廣域網上, 面向不同的用戶群, 分散地域, 這

41、是C/S無法作到的. 與操作系統(tǒng)平臺關系最小.B/S架構的軟件系統(tǒng)的擴展非常容易,只要能上網,系統(tǒng)管理員分配一個用戶名和密碼,還可以在線申請等。5.2.1 結構化設計原則 (1)模塊化。 模塊一般具有如下三個屬性:(1)功能:指該模塊實現什么功能,解決什么需求。此處的功能指該模塊本身的功能與它所調用的所有子模塊功能之合。(2)邏輯:即描述模塊內部如何做,即模塊內部的執(zhí)行過程。(3)狀態(tài):即該模塊使用時的環(huán)境和條件。5.2 概要設計原則(2)模塊規(guī)模應該適中;(3)適當選擇深度、寬度、扇出和扇入;(4)模塊的作用域應該在控制域之內;(5)力爭降低模塊接口的復雜程度;(6)設計單入口單出口的模塊;

42、(7)模塊功能應該可以預測。(8)自頂向下逐步求精。(9)信息隱蔽和局部化。 5.2.2 模塊獨立性 所謂兩個模塊彼此完全獨立指其中任何一個模塊在運行時,與另一個模塊的存在無關。 模塊之間具有較高的獨立性是設計軟件系統(tǒng)的一個關鍵,其重要性主要體現在以下幾個方面 : (1) 系統(tǒng)容易開發(fā)。由于模塊之間接口簡單, 當許多人分工合作開發(fā)同一個軟件時, 可以簡化合作者之間的協調工作,提高系統(tǒng)開發(fā)的效率。(2)系統(tǒng)可靠性高。模塊之間的相互影響小,當一個模塊出錯時,由于模塊之間的聯系小,其他模塊受到的錯誤波及也小,從而提高了系統(tǒng)的可靠性。(3) 系統(tǒng)易于測試和維護。 模塊的獨立程度可以由兩個定性標準衡量,

43、即模塊間的耦合性和模塊的內聚性。 耦合性衡量不同模塊彼此間互相連接的緊密程度;內聚性衡量一個模塊內部各個元素彼此結合的緊密程度。為保證模塊的獨立性,在模塊設計時要盡量做到六個字:“高內聚低耦合”。 在進行物理模型設計時就遵循這兩條原則: (1)一個模塊內部各個元素之間的聯系越緊密越好,即要使模塊具有較高的內聚性。 (2)各個模塊之間的信息聯系要盡可能地減少,即模塊的耦合性要盡可能的低。 耦合是對一個軟件結構內各個模塊之間相互關聯的度量。模塊間耦合的強弱取決于模塊間接口的復雜程度、調用模塊的方式以及通過模塊間接口的信息。5.3.1 IPO 圖5.3 概要設計工具輸入數據處理過程輸出結果輸入處理輸

44、出 一個IPO圖僅能夠描述單個處理功能的輸入數據、數據處理和輸出數據之間的關系,對于整個軟件系統(tǒng)的總體結構不能進行清晰的描述。因此在軟件設計中,我們通常將HIPO圖和IPO圖相結合,利用這兩個工具同共來表達系統(tǒng)的總體結構和模塊的處理功能。 HIPO圖稱為層次結構圖,即分層的IPO圖,是系統(tǒng)設計的描述工具,是IBM公司于70年代中期在層次結構圖的基礎上推出的一種描述系統(tǒng)結構和模塊內部處理功能的工具。HIPO圖由以下兩部分組成:(1)層次結構圖:描述整個系統(tǒng)的設計結以及各類模塊之間的關系。 (2)IPO圖:描述某個特定模塊內部的處理過程和輸入/輸出關系。檢 索2 題名檢索1 ISBN號檢索3 作者

45、檢索圖5-5 HIPO圖圖5-6 IPO圖 5.3.2 模塊結構圖模塊名模塊:用矩形框表示,并用模塊的名字標記。調用關系:箭頭從調用模塊指被調用模塊。被調用模塊執(zhí)行完成后,控制又返回到調用模塊。模塊間的數據傳遞:用尾端帶有空心圓的短箭頭表示數據信息。模塊間的控制信息傳遞:用尾端帶有實心圓短箭頭表示控制信息。循環(huán)調用下層模塊:選擇調用下層模塊:數據存儲:模塊結構圖的三種基本結構 模塊之間的調用關系主要有三種:直接調用、選擇調用和循環(huán)調用。 模塊結構圖中的模塊類型(1) 傳入模塊 傳入模塊從下屬模塊取得數據, 經過某些處理, 再將其傳送給上級模塊。見圖6-14(a)。變換型數據流程圖的輸入模塊以及

46、事務型數據流圖中的接受事務模塊均屬于此類模塊。(2) 傳出模塊 傳出模塊從上級模塊中獲取數據, 進行某些處理, 再將其傳送給下屬模塊。見圖6-14(b)。如變換型數據流圖及事務型數據流圖中的輸出模塊均屬于此類模塊。(3) 變換模塊 也叫加工模塊, 它從上級模塊取得數據, 進行特定的處理, 轉換成其他形式, 再傳送回上級模塊。見圖6.14(c)。如事務型數據流圖中的調度模塊就屬于此類模塊。(4) 協調模塊 對所有的下屬模塊進行協調和管理的模塊, 在一個較好的模塊結構圖中, 該模塊應在較高層出現。見圖6-14(d)。如變換型數據流圖的總控模塊以及事務型數據流圖中的事務中心塊均屬于此類模塊。 模塊間

47、調用的規(guī)則(1)每個模塊有自身的任務,只有接收到上級模塊的調用命令時才能執(zhí)行。(2)模塊之間的通信只限于其直接上、下級模塊,任何模塊不能直接與其他上下級模塊或同級模塊發(fā)生通信聯系。(3)若有某模塊要與非直接上、下級的其他模塊發(fā)生通信聯系,必須通過其上下級模塊進行傳遞。(4)模塊調用順序為自上而下。 模塊結構圖的示例 模塊結構圖的改進 (1)完善模塊的功能(2)提高模塊獨立性 (3) 合理確定模塊結構的規(guī)模,盡可能減少高扇出的結構,隨深度增加而增大扇入。 模塊的規(guī)模包括兩個方面:模塊結構的深度和模塊結構的寬度。 深度表示模塊結構中的層數, 它往往能粗略地標志一個系統(tǒng)的大小和復雜程度。模塊結構圖一

48、般不要超過7層。 寬度是模塊結構圖內同一個層次上的模塊總數的最大值。一般來說,寬度越大系統(tǒng)越復雜。 一個模塊的扇入指直接調用該模塊的上級模塊的數目。扇入越大則共享該模塊的上級模塊數目越多。 如果一個模塊的扇入數過大,例如超過8,而這個模塊又不是公用模塊,說明該模塊包含多個功能,這時應對它進行功能分解。(4)模塊的作用范圍應該在控制范圍之內 (5) 模塊大小應該適中(6) 設計單入口單出口的模塊單入口單出口的模塊可以降低模塊接口的復雜程度,設計的軟件也是易理解、易維護的,因此不要使模塊間出現內容藕合。(7) 模塊功能應該能夠預測,同時要防止模塊功能過于受局限。 5.4 概要設計說明書格式1引言2

49、編寫目的 3 項目背景4任務概述5 定義6 運行環(huán)境7 需求概述8 條件與限制;9 總體設計10 接口設計 11 數據結構設計 12 運行設計 13出錯處理設計 14 安全保密設計15 參考資料 再見!5.5 詳細設計5.5.1 詳細設計的內容詳細設計階段的基本任務有:1. 為每個模塊進行詳細的算法設計。確定模塊采用的算法, 寫出模塊的詳細過程性描述。即為每個模塊確定采用的算法, 選擇某種適當的工具表達算法的過程, 寫出模塊的詳細過程性描述。2為模塊內的數據結構進行設計。確定每一模塊使用的數據結構。3對數據庫進行物理設計,即確定數據庫的物理結構。4 網絡設計。5其它設計:根據軟件系統(tǒng)類型,還可

50、能要進行用戶界面設計、輸入/輸出格式設計。包括對系統(tǒng)外部的接口, 對系統(tǒng)內部其他模塊的接口, 以及模塊輸入數據、輸出數據及局部數據的全部細節(jié)。 接口設計注意以下原則:統(tǒng)一性;簡明易學;靈活性;嚴謹性。6編寫詳細設計說明書;評審。1. 中小型主機方案與微機網絡方案的選取2. 網絡拓撲結構3. 互連結構及通信介質的選型4. 網絡計算模式5. 網絡操作系統(tǒng)及網絡協議等的選擇6. 網絡計算模式: 客戶機/服務器(C/S)模式還是B/W/D模式。隨著Internal技術的發(fā)展和廣泛應用,MIS的網絡計算模式開始更多的采用瀏覽器/Web服務器/數據庫服務器(B/W/D)模式。5.5.2 網絡設計內容1 引

51、言2 編寫目的 3 項目背景與需求概述 4 定義5 參考資料 6 軟件結構 7 程序描述8 接口9 存儲結構10數據庫設計 11 限制條件12 測試要點:給出測試模塊的主要測試要求。13尚未解決的問題 5.3.3 詳細設計說明書格式 再見!第6章 數據庫設計數據庫設計環(huán)境一般有兩種情況: (1)軟件(DBMS)和硬件未確定的情況,這樣的環(huán)境只能從用戶的應用環(huán)境出發(fā),先進行數據庫設計然后再提出軟件(包括DBMS)需求和硬件需求;(2)計算機軟件與硬件環(huán)境以及DBMS已經確定,在此環(huán)境下進行數據庫設計工作。這種情況屬于普遍情況。6.1數據庫設計的重要性 (1) 數據庫設計直接影響軟件編程質量, 從

52、而導致開發(fā)走很多不應該走的彎路. 反過來講, 如果設計的好,可以提高軟件編程效率.(2) 數據庫設計的好與差直接影響系統(tǒng)的維護性能。數據庫設計分為四個階段:(1) 需求分析階段;(2) 概念設計階段;(3) 邏輯設計階段;(4) 物理設計階段。 需求分析階段數據庫設計的任務是: 1. 調查和搜集客戶需求。在調查過程中,可以根據不同的問題和條件,使用不同的調查方法。常用的調查方法有:(1) 跟班作業(yè)。通過親身參加業(yè)務工作來了解業(yè)務活動的情況。這種方法可以比較準確的理解用戶的需求,但比較耗費時間。(2) 開調查會。通過與用戶座談來了解業(yè)務活動情況及用戶需求。座談時,參加者之間可以相互啟發(fā)。(3)

53、請專人介紹。(4) 詢問。對某些調查中的問題,可以找專人詢問。(5) 設計調查表,根據表的內容與用戶交流或者請用戶填寫(見表61)。如果調查表設計得合理,這種方法是很有效,也易于為用戶接受。(6) 查閱記錄。查閱與原系統(tǒng)有關的數據記錄。6.2 需求分析階段的設計序號問題名稱描述數據要求約束包括:時間、預算、人員和其他因素表 6-1 需求調查表2. 了解企業(yè)業(yè)務情況,包括手工業(yè)務流程,輸出什么報表等,搞清楚輸入的數據是哪些,報表輸出的格式是什么。讓用戶可以提供一些報表樣本。 3 創(chuàng)建數據字典。 4 創(chuàng)建數據流圖。6.2.1 數據流圖示例 某倉庫管理系統(tǒng)按以下步驟進行信息處理,試畫出數據流圖。(1

54、) 保管員根據當日的出庫單和入庫單通過出庫處理和入庫處理分別將數據輸入到“出庫流水帳”和“入庫流水帳”,并修改“庫存臺帳”。(2) 根據庫存臺帳由統(tǒng)計、打印程序輸出庫存日報表。(3) 需要查詢時,可利用查詢程序在輸入查詢條件后,到庫存臺帳去查找,顯示查詢結果。出庫處理出庫流水賬入庫處理入庫單出庫單入庫流水賬庫存臺賬統(tǒng)計打印查詢庫存查詢結果庫存日報表例子 車間填寫領料單給倉庫要求領料,庫長根據用料計劃審批領料單,未批準的退回車間,已批準的領料單送到倉庫保管員處,由他查閱庫存帳。若帳上有貨則通知車間前來領料,否則將缺貨通知采購人員。用料計劃采購員庫存賬審批領料單車間查閱庫存帳未批準的領料單已批準領

55、料單缺貨通知領料通知領料單6.2.2數據字典示例下面以實例說明數據字典的應用。(1)數據流條目:例如, 某圖書管理系統(tǒng),其功能包括圖書的購入、借閱、歸還和注銷。在此系統(tǒng)中,入庫單、借書單、還書單、注銷單等都是數據流,現對“借書單”說明如下:借書單=讀者編號+分類目錄號+借閱日期(2)數據存儲條目在上例的圖書管理系統(tǒng)中,“讀者文件”是個數據存儲,對它說明如下:文件名:借書單組成:讀者編號+姓名+所在部門數據存儲組織:按讀者編號遞增順序排列存儲方式:關鍵碼(3)數據元素(即數據項)條目 在上例的圖書管理系統(tǒng)中,“讀者編號”是個數據項,對它說明如下:數據元素名稱:讀者編號類型:數字(連續(xù)值)長度:8

56、位取值范圍: “00000001” “99999999”(4)處理條目 處理條目就是“處理小說明”。一般應單獨列出。6.3 概念設計階段 6.3.1 概念模型的表示方法 通常我們用E-R圖來表示數據庫的概念模型。E-R圖的構成要素為:實體、屬性和聯系。在E-R圖中的基本圖形符號為:表示實體,框中填寫實體名。表示實體間聯系,框中填寫聯系名。表示實體或聯系的屬性,圈中填寫屬性名。連接以上三種圖形,構成具體概念模型。例子 如果要表示圖書實體的屬性關系如圖6-2(a)所示的E-R圖;要表示作者實體的屬性關系如圖6-2(b)所示的E-R圖;要表示作者實體與圖書實體之間聯系如圖6-2(c)所示的E-R圖。

57、6.3.2 E-R圖的繪制步驟1. 進行數據分析與抽象,確定實體、屬性和聯系。2. 設計局部E-R圖,也稱用戶視圖。 3. 綜合各局部E-R圖,形成總的E-R圖,即用戶視圖的集成。 1數據分析與抽象數據抽象方法 :(1)分類。定義某一類概念作為現實世界中一組對象的類型,這些對象具有某些共同的特性和行為,它抽象了對象值和型之間的“is member of”的語義,在E-R模型中,實體型就是這種抽象。 (2)聚集。定義某一類型的組成成分,它抽象了對象內部類型和成分之間“is part of”的語義,在E-R模型中若干屬性的聚集組成了實體型,就是這種抽象。 (3)概括。定義類型之間的一種子集聯系,它

58、抽象了類型之間的“is subset of”的語義,概括有一個很重要的性質:繼承性。子類繼承超類上定義的所有抽象(圖6-3)。 圖6-4 子類繼承超類 如何抽象實體和屬性 區(qū)分實體與屬性一般原則是: 實體:是一個有著一系列顯著的、易辨認的屬性的客觀對象?,F實世界中一組具有某些共同特性和行為的對象就可以抽象為一個實體。對象和實體之間是“is member of”的關系。 屬性:對象類型的組成成分可以抽象為實體的屬性。組成成分與對象類型之間是“is part of的關系。例:學號、姓名、專業(yè)、年級等可以抽象為學生實體的屬性。其中學號為標識學生實體的碼。例子 職稱通常作為教師實體的屬性,但在涉及住房

59、分配時,由于分房與職稱有關,也就是說職稱與住房實體之間有聯系,這時把職稱作為實體來處理會更合適些(圖6-5)。職工職工號姓名年齡職稱職工職稱聘任n1職工號姓名性別年齡職稱代碼工資住房標準附加福利例子 倉庫,貨物和職工,貨物存放在倉庫,職工管理倉庫。所以倉庫,貨物和職工分別作為實體比較好(圖6-6)。 例子 教學管理系統(tǒng)應對學校中的教師,學生,課程進行管理, 掌握課程設置和教師配備情況以及學生成績的管理。 通過需求分析后, 可知該系統(tǒng)涉及的實體包括: 教師、系、學生和課程。對于每一個實體集, 根據系統(tǒng)輸出數據的要求, 抽象出如下的實體與屬性:)系(系號,系名,專業(yè),職稱,性別,年齡) )教師(教

60、師號,姓名,性別,出生日期,專業(yè)) )學生(課程號, 課程名,學時,類別)2確定局部E-R圖 對于學校來說,作為一個系統(tǒng)內的實體集, 這些實體間并不完全相互獨立, 而存在一定聯系, 我們對實體間的聯系進行分析: 假定在一個學校內:1個系有多名教師, 而一個教師只能屬于一個系, 因此系和教師之間是1對多的關系;1個系有多名學生, 而一個學生只能屬于一個系, 因此系和學生之間是1對多的關系;1個教師可以講多門課程, 而一個課程可以由多個學生講, 因此課程和教師之間是多對多的關系;1個學生可以選修多門課程, 而一門課程師可以被多個學生選修, 因此學生和課程之間是多對多的關系; 局部的E-R圖如圖6-

溫馨提示

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

評論

0/150

提交評論