




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、學習好資料歡迎下載軟件工程教案(本科)課件資料下載:2019年11月目錄第一章軟件工程概述 4§1.1 軟件的概念、特點及分類 4§1.2 軟件危機5§1.3 軟件工程7§1.4 小結 12第二章系統分析13§2.1 系統分析(項目計劃) 13§2.2 問題定義13迎.3可行性研究 14一.4小結 19一.5補充實例19第三章需求分析22§3.1 需求分析概述 22§3.2 結構化分析方法 24§3.3 驗證軟件需求 28§3.4 小結 28§3.5
2、補充知識28§3.6 補充實例31第四章軟件設計概述 35§4.1 軟件設計概述 35§4.2 軟件設計的策略 35§4.3 概要設計40§4.4 結構化系統設計 42§4.5 小結 52§4.6 補充實例52第五章詳細設計53§5.1 詳細設計概述 53§5.2 結構化程序設計 54§5.3 詳細設計的描述工具 55§5.4 其它的軟件設計方法(面向數據結構的設計方法) 60§5.5 程序復雜度的定量度量 61§5.6 小結 63§5.7 補充實例63第
3、六章編碼 67§6.1 編碼的目的 67§6.2 編碼的風格 67§6.3 程序設計語言 69§6.4 小結 70§6.5 補充實例70第七章測試71第八章維護87第九章面向對象分析與設計 90第十章軟件質量保證97第十一章軟件項目計劃與管理 98第十二章99第十三章 100第十四章101第一章 軟件工程概述引論:隨著計算機的普及與深化,軟件數量急劇膨脹,同時軟件成本也在逐年上 開,質量得不到可靠的保證。軟件開發的生產率也遠遠跟不上普及計算機 應用的要求。由此產生了 “軟件危機”。軟件工程正是在此情況下產生的 一門新興學科。學習軟件工程,鍛煉思
4、維能力及解決問題的能力。學習軟件工程,努力成為軟件界的“白領”。§ 1.1 件的概念、特點及分類一.軟件的定義:軟件是計算機系統中與硬件相互依存的另一部分,它包括程序、數據及相關文檔的完整集合。其中,程序是按事先設計的功能和性 能要求執行的指令序列;數據是使程序能正常操縱信息的數據結構; 文檔是與程序開發、維護和使用有關的圖文材料。二.軟件的特點:1 .軟件是一種邏輯實體,而不是具體的物理實體。2 .軟件的生產與硬件不同。(無明顯的制造過,存在軟件產品的保護問 題。)3 .在軟件的運行和使用期間,沒有硬件那樣的機械磨損、老化等問題。4 .軟件的開發和運行常常受到計算機系統的限制,對計
5、算機系統有著 不同程度的依賴性。5 .軟件的開發至今尚未完全擺脫手工藝的開發方式。6 .軟件是復雜的。(軟件復雜性來源于它所反映的實際問題的復雜性。)7 .軟件成本相當昂貴。(定制產品、手工開發.成本高)8 .相當多的軟件工作涉及到社會問題。三.軟件的分類:1 .按軟件功能劃分:學習好資料歡迎下載1)系統軟件:使計算機系統各個部件、相關軟件和數據協調、高效 的工作的軟件。(如:操作系統,數據庫管理系統,設 備驅動程序等)2)支撐軟件:協助用戶開發軟件的工具性軟件。(如:文本編輯程序,集成開發工具,圖形軟件包等)3)應用軟件:在特定領域內開發為特定目的服務的一類軟件。2 .按軟件規模劃分:微型1
6、人1 4周0.5K小型1人1 6月12K25人1 2年550K5 20 人23年50100K甚大型1001000 人45年1M極大型2000- 5000人510 年1M-10M微型1人1 4周0.5K3 .按軟件的工作方式劃分:1)實時處理軟件:在事件或數據產生時,立即予以處理,并及時反 饋信號。2)分時軟件:允許每個聯機用戶同時使用計算機。3)交互時軟件:能實現人通信的軟件。4)批處理軟件:把一組輸入作業或一批數據以成批處理的方式一次 運行,按順序逐個處理完的軟件。4.按軟件服務對象的范圍劃分:1)項目軟件2)產品軟件§ 1.2 件危機一.軟件危機:指在計算機軟件的開發和維護過程中
7、所遇到的一系列嚴重問題。1.軟件危機包含的問題:學習好資料歡迎下載1)如何開發軟件,以滿足對軟件日益增長的需求。(提高生產率)2)如何維護數量不斷膨脹的已有軟件2.軟件危機的表現形式:1)對軟件開發的成本和進度的估計常常不準確。導致:成本提高,工程延期,影響信譽。權益之計:損害軟件質量,又會引起用戶不滿。2)用戶對“以完成”的軟件系統不滿意的現象經常發生。原因:對用戶需求不確切,缺少溝通,倉促上陣,閉門造車。導致:不符合用戶要求。3)軟件產品質量往往靠不住。原因:軟件可靠性和質量保證未認真執行。導致:軟件質量問題。4)軟件常常是不可維護的。原因:程序結構固定、死板、變更困難、錯誤、難以改正,無
8、法 增加新的功能和適應新的環境。5)軟件通常沒有適當的文檔資料。項目負責人:用以控制整體狀態,把握工程進度;開發者:用以相互交流;維護人員:維護的依據。6)軟件成本在計算機系統中成本所占比例率上升。微電子技術的進步和自動化程度的不斷提高,導致硬件成本下降;軟件需要手工勞動,且大規模和數量不斷的擴大,導致軟件 成本上升。7)軟件開發生產率提高的速度,遠遠跟不上計算機普及、深入的趁 勢。“供不應求”,無法充分利用硬件。二 軟件危機產生的原因:1 .與軟件自身的特點有關:邏輯實體、手工開發、復雜度高、成本昂貴。2 .與開發、維護方法不正確有關:忽視用戶需求,輕視軟件維護。三.解決軟件危機的途徑:1
9、.技術措施:方法和工具2 .組織管理措施:從管理角度進行審查、控制。軟件工程正是從技術和管理兩方面研究如何更好地開發和維護計算機軟 件的一門新興學科。§ 1.3 件工程一.軟件工程:是采用工程的概念、原理、技術和方法來指導軟件開發和維護 的工程學科。1.軟件工程的基本原理:(七條)是確保軟件產品質量和開發效率的原理的最小的完備的集合。1)用分階段的生命周期計劃嚴格管理。2)堅持進行階段評審。進行相應的質量保證、盡早發現錯誤。3)實行嚴格的產品控制。實行基準配置(給過階段評審后的軟件配置成分,包括文檔、程 序等)管理,涉及對基準配置的參數,必須按嚴格規程審批。4)采用現代的程序設計技術
10、。如:結構化分析與設計、面向對象的分析與設計。5)結果應能清楚地審查。規定開發組織的責任和產品標準,提高軟件開發過程的可見性。6)開發小組的人員應該少而精。開發小組人員的素質和數量是影響產品質量和開發效率的重要 因素。學習好資料歡迎下載7)承認不斷改進軟件工程實踐的必要性。積極采納新技術,不斷總結經驗。2.軟件工程的三要素:方法、工具和過程。1)方法:“如何做”,常采用某種特殊的語言或圖形的表達方法及一 套質量保證標準。2)工具:為方法提供的軟件支撐環境。(計算機輔助軟件工程CASE 3)過程:將方法和工具綜合起來以達到合理、及時地進行計算機軟件開發的目的。3.軟件工程項目的基本目標:1)付出
11、較低的開發成本。2)達到要求的軟件功能。3)取得較好的軟件性能。4)開發的軟件易于移植。5)需要較低的維護費用。6)能按時完成開發工作,及時交付使用。4.軟件工程的原則:1)抽象2)信息隱藏3)模塊化4)局部化5) 一致性6)完全性7)可驗證性,軟件工程的傳統途徑:1.軟件工程的傳統途徑:生命周期方法學從時間角度對軟件開發和維護的復雜問題講行分解,劃分為若 干個階段,每個階段有相對獨立的任務,是在階段結束時進行技術 審杳和管理復審,最后產后相應的文檔資料。1)三個時期:軟件定義:確定工程總目標:可行性、采用的策略,需求完 成的功能,需要的資源和成本,工程進度表。 包括:問題定義,可行性研究,需
12、求分析。軟件開發:具體設計和實現。包括:概要設計、詳細設計(系統設計),編碼和 單元測試、綜合測試(系統實現)軟件維護:使軟件持久地滿足用戶需要。改正錯誤,適應新環境,滿足新需求。2)八個階段:問題定義:“要解決的問題是什么?”提出關于問題性質、工程目標和規模的全面報告。可行性研究:”對上一個階段所確定的問題有行的通解決辦法嗎?”研究問題的范圍,進行成本/效率分析,探索問題 是否值得解和如何解。需求分析:“為了解決問題,目標系統必須做到什么?”確定目標系統所應具備的功能,建立系統邏輯模型 (數據流圖、數據字典、簡要算法)概要設計:概括地談,應該如何解決問題提出幾種設計方案:低成本,中等成本,高
13、成本(“十 全十美”),確定解決系統的方案和目標系統需要那 些程序,設計軟件的結構,確定程序模塊及模塊問 關系(層次圖或結構圖)。詳細設計:應該怎樣具體地實現系統把解決具體化,設計出程序的詳細規格說明(HIPO 圖或PDL語言)編碼和單元測試:編寫程序模塊的實現代碼,并對其進行測綜合測試:通過各種類型的測試使軟件達到預定要求。集成測試:根據設計的軟件結構,將單元模塊按某種策略裝配起來進行聯合測試。驗收測試:由用戶根據需求規格說明書對目標系統進行整體驗收。軟件維護:通過各種必要的維護活動使系統持久滿足用戶需要。改正性維護(21%適應性維護(25%完善性維護(50%預防性維護(4%3)目的和實質:
14、控制開發工作的復雜性,通過有限的確定步驟,把用戶需求 從抽象的邏輯概念轉化為具體的物理實現。3.軟件生存期模型:瀑布模型,演化模型,螺旋模型,噴泉模型,智能模型。1)瀑布模型:系統的生命周期方法學用瀑布模型來進行模擬。各階段間具有順序性和依賴性前階段結束一 后階段開始。前階段輸出文檔一 后階段輸入文檔。推遲實現的觀點:設置系統分析與設計、推遲物理實現。質量保證的觀點:每個階段必須完成規定的文檔每個階段結束前要對文檔評審,以便盡早發現問題,改正錯誤。2)演化模型:(原型模型)能夠克服瀑布模型的缺點、適當的減少由于軟件需求不明確而給開發工作帶來的風險。3)螺旋模型:將瀑布模型與演化模型結合起來,
15、并且加入兩種模型都忽略了的 風險分析,以彌補兩者的不足。螺旋模型沿著螺旋線旋轉,在笛卡兒坐標的四個象限上分別表達 四個方面的活動:制定計劃:確定軟件目標,選定實施方案,弄清項目開發的 限制條件。風險分析:分析所選方案,考慮如何識別和取消風險。實施工程:實施軟件開發。客戶評估:評價開發工作,提出修正意見。4)噴泉模型:“噴泉” 一詞體現了迭代和無間隙特性。系統某個部分常常 重復工作多次,相關功能在每次迭代中隨之加入演進的系統, 無間隙是指在開發活動,即分析、設計和編碼之間不存在明 顯的邊界。支持軟件復用,支持面向對象的開發方法。5)智能模型:基于知識的軟件開發模型智能模型綜合了其他模型,并把專家
16、系統結合在一起。該模型應 用于基于規則的系統,采用規約和推理機制,幫助軟件人員完成 開發工作,并使維護在系統規格說明一級完成。三.技術審查和管理復審:1 .技術審查:保證軟件質量,控制錯誤的積累和放大,以降低軟件成本。技術審查的標準和方法:從前導和后續,兩個階段進行考慮。前導:提出解法。后續:實現解法。步驟:準備簡要介紹情況閱讀被審查文檔開審查會返工復查2 .管理復審:對工程項目的成本、經費、投資回收前景,項目進度等經濟因 素,從管理角度進行審查。§ 1.4 結學習好資料歡迎下載第二章系統分析§ 2.1 統分析(項目計劃)1 .兩個階段:問題定義可行性研究2 .目標:1 .
17、識別用戶要求2 .評價系統的可行性3 .進行經濟分析和技術分析4 .把功能分配給硬件、軟件、人、數據庫和其它系統元素5 .建立成本和進度限制6 .生成系統規格說明,形成所有后續工程的基礎§ 2.2 題定義1 .目的:弄清用戶需要計算機解決的問題根本所在,以及項目所需的經 費和資源的文檔。2 .主要任務:是在向用戶調查的基礎上,編寫一個叫做系統目標與范圍說 明書的文檔。這個說明經用戶同意后,就作為下一步一可行性分 析的依據。3 .文檔:系統目標與范圍說明書1 .項目名稱2 .問題說明:當前工作中存在的問題3 .項目目標:用戶對新系統的目標學習好資料歡迎下載4 .項目范圍:指出解決這一項
18、目所需的投資范圍5 .初步想法:對系統功能提出一些初步設想6 .可行性研究計劃:對可行性研究的時間、費用進行估算§ 2.3 行性研究一.可行性研究1 .目的:用最少的代價,在盡可能短的時間內弄清所定義的項目是不是 可能實現和值得進行。(不是解決問題,而是確定問題是否可能解決 和值得去解)2 .實質:是進行一次大大簡化了的系統分析和設計的過程,即在較高層 次上以較抽象的方式進行的系統分析和設計的過程。3 .研究問題解法的可行性:技術可行性:使用現有技術能實現這個系統嗎?經濟可行性:這個系統的經濟效益能超過它的開發成本嗎?操作可行性:系統的操作方式在這個用戶組織內行得通嗎?4 .根本任務
19、:對以后的行動方針提出建議5 .步驟:1)復查系統規模和目標改正含糊或不正確的敘述,清晰的描述目標系統的一切限制和約 束,確保正在解決的問題,確實是要求解決的問題。2)研究目前正在使用的系統了解現有系統的功能,閱讀文檔資料和使用手冊,確定目標系統必須完成的基本功能,并解決現有系統中存在的問題。3)導出新系統的高層邏輯模型設計過程:現有物理系統一 現有系統邏輯模型一 目標系統邏輯模型一 新物理系統4)重新定義問題重新復查問題定義,工程規模和目標5)導出和評價供選擇的解法技術可行性,經濟可行性,操作可行性。6)推薦行動方針是否值得開發,選擇最好的解法,說明理由。7)草擬開發計劃開發計劃:工程進度表
20、,開發人員,各種資源,使用時間,系統 生命周期各階段成本。8)書寫文檔并提交審查成本/效益分析:通過估計開發成本,運行費用和經濟效益,從而達到從經濟角 度分析開發一個特定的新系統是否劃算,幫助使用部門負責人正確 的做出是否投資這項工程開發的決定。6 .成本估計:軟件開發成本主要表現為人力消耗:人力消耗乂平均工資=開發費用成本估計技術:代碼行技術:源代碼行數x每行代碼平均成本=開發成本任務分解技術:按開發階段劃分任務(每個相對獨立的開發任務的)成本累加和 =開發成本 自動估計成本技術:軟件工具。7 .運行費用:系統操作費用(操作員人數,工作時間,消耗的物資等)維護費用。8 .經濟效益:因使用新系
21、統增加的收入可以節省的運行費用9 .度量效益的方法:1)貨幣的時間價值:設年利率為i ,現已存入P元,則n年后所得:F= P*(1 + i)n ,即為P元錢在n年后的價值。反之,若n年后能收入F元, 則其在現在的價值為:P= F/(1 + i) n02)投資回收期:是使累計的經濟效益等于最初的投資所需要的時間,是衡量一個開發工程價值的經濟指標。投資回收期越短,就能越快獲得 利潤,所以工程就越值得投資。3)純收入:是在整個生存期之內系統的累計經濟效益(折合成現在植) 與投資之差。4)投資回收率:設P為現在的投資的投資額,Fi為第i年底的效益(i =1, 2,n), n為系統的使用壽命,j為投資回
22、收率。則 (P(1 +j) F1)(1 +j) F2)(1 +j)一Fn = 0即 P= F1/(1 +j) +F2/(1 +j) 2+-+ Fn/(1 +j) n0三.技術分析:評價系統概念的技術價值,同時收集有關性能,可靠性,可維護性及生產率方面 的信息。1 .目的:對系統的技術可行性進行評估,指明為完成系統的功能和性能 需要什么技術?需要哪些新材料、方法、算法或者過程?有什么開 發風險?這些技術問題對成本的影響如何?2 .方法:模型化方法(數學模型、物理模型)優化技術概率和統計排隊論控制論等。4 .系統結構的模型化:系統流程圖1 .系統流程圖:是用來描述系統物理模型的一種傳統工具,基本思
23、想是用圖形 符號、黑盒子形式描繪系統里面的每個部件(程序、文件、數據庫、 表格、人工過程等),它所表達的是信息在系統各部件之間的流動情 況,而不是對信息進行加工處理的控制過程。2 .描述符號:(書:P25)1)基本符號:(如表2.1 )符號名稱說明處理能改變數據值或數據位置的加工或部件,例如:程序、處理機、人工加工等口輸入/輸出表小輸入或輸出(或既輸入又輸出),是,個廣 義的不指明具體設備的符號O-連接指出轉到圖的另一部分或從圖的另一部分轉 來,通常在同一頁上口換頁連接指出轉到另一貝圖上或由另一貝圖轉來數據流用來連接其他符號,指明數據流動方向表2.12)系統符號:(如表2.2)符號名稱說明穿孔
24、卡片表示穿孔卡片輸入或輸出,也可表不一個穿孔 卡片文件L-文檔通常表示打印輸出,也可表示用打印終端輸入 數據Q磁帶磁帶車入/輸出,或表示一個磁帶文件聯機存儲表示任何種類的聯機存儲,包括磁盤、磁鼓、 軟盤和海量存儲器件等B磁盤磁盤車入/輸出,也可表示存儲在磁盤上的文件 或數據庫c_o磁鼓磁鼓車入/輸出,也口表小仔,儲在磁鼓上的文件 或數據庫顯示CRT終端或類似的顯示部件,可用于輸入或輸 出,也可既輸入又輸出人工輸入人工輸入數據的脫機處理,例如:填寫表格等人工操作人工完成的處理,例如:會計在工資支票上簽 名輔助操作使用設備進行的脫機操作通信鏈路通過遠程通信線路或鏈路傳送數據表2.23 .實例:(書
25、:P25-26)5 .文檔:1 .可行性分析報告:1)系統概述:當前現有系統分析:系統描述及存在問題目標系統分析:系統功能和性能描述。(物理模型:系統流程 圖)當前系統與目標系統比較:目標系統的優越性。2)可行性分析:技術可行性經濟可行性操作可行性。3)結論意見:可著手組織開發須待若干條件(如資源、人力、設備等)具備后才能開發需對開發目標進行修改不能進行或不必進行(如技術不成熟、經濟上不合算等)其它一2 .項目開發計劃:1)系統概述:包括項目目標,主要功能,系統特點,以及關于開發工作的安排。2)系統資源:包括開發和運行該軟件系統所需要的各種資源。 如:硬件、軟件、人員、組織、機構等。3)費用預
26、算:分階段的人員費用,機時費用及其它費用。4)進度安排:各階段起止時間,完成文檔及驗證方式。5)要交付的產品清單§ 2.4 結§ 2.5 充實例一.庫存清單系統:1 .系統說明:某裝配廠有一座存放零件的倉庫,倉庫中現有的各種零件的數 量以及每種零件的庫存量臨界值等記錄在庫存清單主文件中。當倉 庫中零件數量有變化時,應該及時修改庫存清單主文件,如果那種 零件的庫存量少于它的庫存量臨界值,則應該報告給采購部門以便 訂貨,規定每天向采購部門送一次訂貨報告。該裝配廠使用一臺小型計算機處理更新庫存清單主文件和產生 定貨報告的任務。零件庫存量的每一次變化稱為一個事務,由放在 倉庫中的C
27、RT終端輸入到計算機中;系統中的庫存清單程序對事務 進行處理,更新存儲在磁盤上的庫存清單主文件,并且把必要的訂 貨信息寫在磁帶上。最后,每天由報告生成程序讀一次磁帶,并且打印出定貨報告。2 .系統流程圖:(如圖2.5.1所示)事務報告生成程序定貨報告圖2.5.1庫存清單系統的系統流程圖二教材購銷系統:1 .系統說明:在教材的銷售過程中,首先學生拿著購書申請到會計處審查并 開具購書發票,然后到出納處交款,并開具領書單,學生拿著領書 單到書庫領書;在開具購書發票的過程中,若教材存量不夠,則需 要進行缺書統計,然后書庫根據缺書情況去采購缺書,并通知學生 補購教材。2 .系統流程圖:(如圖2.5.2所
28、示)補購通知缺書登記缺書單 一缺書統計購書單領書單審查并開發票i.各班學生 用書表, 教材 存量表開領書單發票收訖圖2.5.2教材購銷系統的系統流程圖第三章需求分析§3.1 需求分析概述一.需求分析的任務:1 .基本任務:回答“系統必須做什么”?確定目標系統功能和性能。2 .具體任務:1)確定對系統的綜合要求:功能要求;性能要求;運行要求;將來 可能提出的要求。2)分析系統的數據要求:E-R圖(概念模型)。3)導出系統的邏輯模型:數據流圖,數據字典,加工處理說明書等。4)修正系統開發計劃。5)開發原型系統:使用戶對目標系統有一個更直接、更具體的概念, 從而能更準確提出用戶需求。(關鍵
29、的困難在于成本)二.需求分析的過程:1.問題識別:確定軟件的需求。1)功能2)性能3)環境4)可靠性5)安全保密6)界面7)資源8)成本進度9)目標2.分析與綜合:從數據流和數據結構出發,逐步細化軟件功能,找出各元素之 間的聯系,接口特性和設計上的限制,給出目標系統的詳細邏輯模 型。3.編制需求分析文檔:需求規格說明書1)任務概述:系統目標,運行環境,條件與限制2)數據描述:概念模型:E-R圖邏輯模型:數據流圖數據定義:數據字典,加工說明數據庫描述:名稱和類型3)功能描述:軟件功能要求4)性能描述:軟件性能要求(處理速度、響應時間、安全限制等)5)運行描述:用戶界面、硬件接口、軟件接口、故障處
30、理等。6)質量保證:闡明軟件在交付使用前需要進行的功能測試和性能測 試,并且規定源程序和文檔遵守的各種標準。4.技術審查和管理復審。三.需求分析的原則:1 .必須能夠表達和理解問題的數據域和功能域1)數據域:數據流,數據內容和數據結構。2)功能域:加工變換。2 .必須按自頂向下,逐層分解的方式對問題進行分解和不斷細化。3 .要給出系統的邏輯視圖和物理視圖。1)邏輯視圖:給出軟件要達到的功能和要處理的數據之間的關系。2)物理視圖:給出處理功能和數據結構的實際表示形式。四.需求分析的方法:1 .需求分析方法:是由對軟件的數據域和功能域的系統分析過程及其表示方法組成。包括:面向數據流,面向數據結構。
31、2 .不同的需求分析方法具有的共性:1)支持數據域分析的機制:所有方法都直接或間接地涉及到數據流,數據內容或數據結構等 數據域的屬性。2)功能表示的方法:一般用數據變換或加工來表示。3)接口的定義:是數據表示和功能表示的直接產物。(功能間的接口一數據流)4)問題分解的機制以及對抽象的支持:在不同抽象層次上表示數據域和功能域,以逐層細化的手段建立 分層結構。5)邏輯視圖和物理視圖:6)系統抽象模型:是對現實世界中存在的有關實體和活動的抽象和精化。§ 3.2 構化分析方法1 .結構化分析方法:是面向數據流進行需求分析的方法,是用抽象模型的概念,按 軟件內部數據傳遞、變換的關系,自頂向下逐
32、層分解,直到找到滿 足功能要求的所有可實現的軟件為止。2 .數據流圖:1 .數據流圖(DFD:是軟件系統邏輯模型的一種圖形表示、是從數據傳遞和加工的 角度,以圖形的方式刻畫數據流從輸入到輸出的移動變換過程的工 具。2 .組成符號:(書:P24)數據存儲數據流表3.12)附加符號:(如表3.2)符號說明A二、C*口>B數據A和數據B同時輸入才能變換成數據C9.入7* C數據A變換成B和C、Ab+:t)C 數據A或B,或A和B同時輸入變換成 CB .f-AQ+ c、數據A變換成B或C,或B和C7、A京)B 4-JC 只有數據A或只有數據B (但不能A B同時) 輸入時變換成CB T C *數
33、據A變換成B或C,但不能變換成 B和C表3.23 .性質:1)數據流圖中的箭頭僅能表示在系統中流動的數據,而不是物質流2)數據流圖與程序流程圖不同,它不能表示程序的控制結構。(如:選擇或循環)3)數據流圖表現的范圍具有很大的靈活性,可以畫分層DFD4 .分層DFD由頂向下,逐層分解,逐步細化。1)優點: 便于實現:逐層細化,有利于控制問題的復雜度。便于使用:使用戶中的不同業務人員只選擇與自身有關的圖 形,不必閱讀全圖。2)畫分層DFD的指導原則:第一層DFD應當是基本系統模型注意父圖和子圖的平衡,維護信息的連續性區分局部文件和局部外部項 掌握分解的速度,上快下慢 遵守加工編號原則5 .舉例:(
34、書:P25 27)三.數據字典:1 .數據字典:是關于數據的信息的集合,是對 DF9的所有元素定義的集合。2 .組成符號:(如表3.3)符號含義說明=被定義為十與例:x=a+b,表示x由a和b組成,或|或例:x=a,b , x=a|b,表tn x 由 a或由b組成重復例:x=a,表示x由0個或多個 a 組成mn重復例:x=3a8 ,表示x中至少出現 3 次a,至多出現8次a()可選例:x=(a),表示a 口在x中出現, 也可以不出現“”基本數據兀素例:x= a ,表7K x為取值為a的 數據元素連接符例:x=1.9 ,表示x可取1到9中的 值表3.33 .內容:名稱,別名,編號,分類,描述,定
35、義,位置等1)數據流的描述:數據流名:說明:簡要介紹作用,即它產生的原因和結果來源:來自何方去向:去向何處組成:數據結構備注:2)數據元素(數據項)的描述:數據元素名:類型:數值,文字,長度:取值范圍:相關的數據元素及數據結構:備注:3)數據存儲(數據文件)的描述:數據文件名:簡述:存放的是什么數據組成:數據結構存儲方式:排列順序,關鍵碼等備注:4)數據源(終)點描述:名稱:外部實體名簡要描述:什么外部實體 有關數據流:四.加工說明:1 .加工說明:是對DFD中的加工所做的描述,包括:輸入數據、加工邏輯、 輸出數據等。2 .內容:加工名稱加工編號輸入數據流輸出數據流加工邏輯執行次數3 .加工邏
36、輯:闡明把輸入數據轉換為輸出數據的策略,是加工說明的主體,在需求分析階段,僅需要指出要加工“做什么”。而不是“怎樣去做”, 描述方法:結構話語言,判定表,判定樹。1)結構化語言(PDD:又稱過程設計語言,偽碼;它是一種介于自然語言與程序設 計語言之間的語言,即具有結構化程序的清晰易讀的優點,又具 有自然語言的靈活性,不受程序設計語言那樣嚴格的語法約束。2)判定表:采用表格化的形式,適于表達含有復雜判斷的加工邏輯。實例:(書:P86)3)判定樹:是判定表的圖形表示,其適用場合與判定表相同。實例:(書:P87)§ 3.3 證軟件需求一致性:所有需求必須一致,不能互相矛盾。完整性:需求必須
37、完整,包含用戶需要的所有功能和性能。現實性:指定需求用現有的軟、硬件技術基本上可以實現。有效性:必須證明需求是正確有效的,確實能解決用戶面對的問題§ 3.4 結§ 3.5 充知識概念模型1 .數據模型的表示圖3-5數據模型的表示2 .概念模型的表示方法:實體聯系方法(Entity-Relationship ): E-R 圖3 . E-R 圖:1)主要概念:實體:客觀存在并相互區分的事物屬性:實體所具有的某一特性 聯系:現實世界的事物之間的聯系在信息世界的反映一對一聯系:(1:1)一對多聯系:(1:n)多對多聯系:(m:n)2)符號表示:用長方形表示實體型,在框內寫上實體名。
38、用橢圓形表示實體的屬性,并用無向邊把實體與其屬性連 接起來。用菱形表示實體間的聯系,菱形框內寫上聯系名。用無向 邊把菱形分別與有關實體相連接, 在無向邊旁標上聯系的 類型。若實體之間的聯系也具有屬性,則把屬性和菱形也用無向邊連接上。3)實體聯系類型符號表示:實體型A實體型B圖3-6實體聯系的表示4)特點:兩個實體型間允許多種聯系多個實體型間可以有一個聯系 一個實體型可以和自身聯系E-R圖與具體的DBM洸關,是概念模型中最常用的一種5)舉例:用E-R圖表示某個工廠的物資管理的概念模型涉及的實體:倉庫:倉庫號,倉庫面積,電話號碼零件:零件號,名稱,規格,單價,描述供應商:供應商號,名稱,地址,電話
39、號碼,帳號項目:項目號,預算,開工日期職工:職工號,姓名,年齡,職稱實體間的聯系:一個倉庫可以存放多種零件,一種零件可以存放在多個倉庫中一個倉庫有多個職工當倉庫保管員,一個職工只能在 一個倉庫工作 職工之間具有領導和被領導關系,即倉庫主任領導若 干保管員E-R圖表示:圖3-7某工廠物資管理E-R圖§ 3.6 充實例一.庫存清單系統:1 .系統說明:某裝配廠有一座存放零件的倉庫,倉庫中現有的各種零件的數 量以及每種零件的庫存量臨界值等記錄在庫存清單主文件中。當倉 庫中零件數量有變化時,應該及時修改庫存清單主文件,如果那種 零件的庫存量少于它的庫存量臨界值,則應該報告給采購部門以便 訂貨
40、,規定每天向采購部門送一次訂貨報告。該裝配廠使用一臺小型計算機處理更新庫存清單主文件和產生 定貨報告的任務。零件庫存量的每一次變化稱為一個事務,由放在 倉庫中的CRT終端輸入到計算機中;系統中的庫存清單程序對事務 進行處理,更新存儲在磁盤上的庫存清單主文件,并且把必要的訂 貨信息寫在磁帶上。最后,每天由報告生成程序讀一次磁帶,并且 打印出定貨報告。2 .數據流圖:1)頂層數據流圖頂層數據流圖-庫存清單系統采 購 員倉庫管理員2)第一層數據流圖倉庫管理員第一層數據流圖-庫存清單系統子系統劃分3)第二層數據流圖第二層數據流圖-分解后的庫存清單系統采 購 員倉庫管理員二教材購銷系統:1 .系統說明:
41、在教材的銷售過程中,首先學生拿著購書申請到會計處審查并 開具購書發票,然后到出納處交款,并開具領書單,學生拿著領書 單到書庫領書;在開具購書發票的過程中,若教材存量不夠,則需 要進行缺書統計,然后書庫根據缺書情況去采購缺書,并通知學生 補購教材。2 .數據流圖:1)頂層數據流圖:2)學生書庫管理員頂層數據流圖-教材購銷系統第一層數據流圖:第一層數據流圖-教材購銷系統子系統劃分書 庫 管 理 員3)第二層數據流圖:銷售子系統(1)F凄書登記表補售書單無效書單<購書單F1教材存量表領書單F略班學生用書表F稽書登記表第二層數據流圖-銷售子系統米購子系統(2)第二層數據流圖-采購子系統第四章軟件
42、設計概述 4.1 軟件設計概述1 .軟件設計的任務:把需求階段所產生的軟件需求說明轉換為用適當手段表示的軟 件設計文檔。“做什么”一一 > “怎么做”。2 .軟件設計劃分兩個階段:概要設計:確定軟件的結構,即軟件組成,以及各組成成分(子 系統或模塊)之間的相互轉換。詳細設計:確定模塊內部算法和數據結構,產生描述各模塊程序 的詳細設計文檔。3 .軟件設計的方法:面向數據流,面向數據結構。 4.2 4.2軟件設計的策略一.模塊化設計:1 .模塊、模塊化:模塊:是數據說明,可執行語句等程序對象的集合。例:過程, 函數,子程序,宏等。模塊化:是把程序劃分成若干個模塊,每個模塊完成一個子功能, 把
43、這些模塊集中起來組成一個整體,可以完成指定的功能,滿足 問題的要求。2 .分解:將一個復雜的問題,劃分為幾個較小問題。1) “將一個復雜的問題分解為許多小問題,可以減少解決問題的工作量。使原來的問題也就容易解決了。 ” -這是模塊化設計的依 據。論證:假設C(P)是度量對一個問題 P理解復雜性的函數。Z(P) 是度量為解決問題P所需工作量(用時間計算)的函數,則給定 問題 P1 , P2 ,如果 C(P1)>C(P2),那么有 Z(P1)>Z(P2),即一個問題越復雜,解決它所需要的工作 量就越大,需要花費更多的時間。根據人們解決一般問題的實踐的經驗,有下面一條客觀規律存在:C(P
44、1+P2)>C(P1) + C(P2)則可得到:Z(P1 + P2)>Z(P1) + Z(P2)2) “無限分解軟件,最后為了開發軟件而需要的工作量小的可以忽 略”不成立。論證:隨著模塊數目增加,每個模塊的規模減少,成本降低。但 相應的設計模塊間的接口成本將增加,使得軟件總成本呈拋物線形狀,存在最小成本區。(如圖所示)模塊數目模塊分解論證3.信息隱蔽:指每個模塊的實現細節對于其他模塊來說是隱蔽的,即 模塊中所包含的信息(數據與過程)。應不允許其他不需要這些信息 的模塊使用(即隱蔽起來)。只有為了完成軟件的總體功能而必須在 模塊間交換的信息。才允許在模塊間進行傳遞。目的:是軟件的修改
45、或錯誤局限在一個或幾個模塊內部,不會涉及 軟件其他部分。4.模塊獨立性:模塊具有獨立功能:H和其他模塊之間沒有過多的相塊之間的關系很簡單。是軟件劃分模塊時要遵守的準則,也是判斷 模塊構造是否合理的標準。1)度量模塊獨立性的準則:內聚、耦合。內聚:是模塊功能強度(即一個模塊內部各個元素彼此結合 的緊密程度)的度量。模塊內部各元素之間聯系越緊密,內 聚性越強。耦合:是模塊之間相對獨立性(即互相連接的緊密程度)的 度量。模塊間連接越緊密,聯系越多,耦合性越強。模塊的獨立性越高,其塊內聯系越緊密(內聚性強),塊間聯 系越弱(耦合性越弱)2)內聚:弱 強偶然內聚邏輯內聚時間內聚過程內聚通信內聚順序內聚功
46、能內聚彳氐內聚中內聚高內聚偶然內聚:模塊內部各組成成分在功能上是互不相關的例:幾個模塊都需要執行“讀A”,“寫B'等相同的一組操作, 為避免重復書寫,可把這些操作記成一個模塊,供有關模 塊調用。邏輯內聚:通常由若干個邏輯功能相似的成分組成。例:一個用于計算機全班學生平均分和最高分的模塊,無論 計算那種分數,都要經過讀入全班學生分數。進行計算、 輸出計算結果等步驟,除了中間計算外均相同。(兩種邏輯相似的功能放入同一模塊省去程序中的重復。但卻引入用作判斷的開關量,增加了塊間耦合)。時間內聚:模塊所包含的成分是由相同的執行時間聯結在一 起的。例:初始化模塊中可能包含“為變量賦初值”,“打開某
47、個文 件”等為正式處理做準備的功能。過程內聚:一個模塊內部的處理是相關的,是必須按某一特 定次序執行。例:打開文件,讀寫文件,關閉文件。通信內聚:模塊內部各個成分都使用同一個輸入數據。或者 產生同一個輸出數據。借共用數據聯系在一起。例:順序內聚:模塊中各組成成分是順序執行的,一個處理框的 輸出是下一處理框的輸入。例:讀入分數,計算平均分,輸出結果。功能內聚:模塊中的所有成分結合在一起,用于完成一個單 一的功能。例:對一個數開平方;求一組數的最大值;從鍵盤讀入一行 字符等。3)耦合:弱> 強非直接耦合數據耦合特征耦合控制耦合外部耦合公共耦合內容耦合弱耦合中耦合較強耦合強耦合非直接耦合:模塊
48、之間沒有直接關系,它們之間的聯系完全是通過主模塊的調用和控制來實現的。數據耦合:模塊間通過簡單變量所組成的參數表(不是控制參數,數據結構或外部變量)交換數據。特征耦合:模塊間通過數據結構所組成的參數表交換數據。例:房租水電=房租+用水量+用電量(傳遞參數)。控制耦合:一個模塊通過傳遞開關,標志,名稱等控制信息,明顯地控制選擇另一個模塊功能。例:計算平均分,最高分。外部耦合:一組模塊都訪問同一個全局簡單變量。(不是數據 結構,而且不是通過參數表傳遞的該全局變量的信息)。公共耦合:一組模塊都訪問同一個公共數據環境(全局數據 結構、共享的通信區內存的公共覆蓋區等)。內容耦合:兩個模塊之間發生以下情形
49、。(匯編語言中較多, 高級語言中已基本度絕)。一個模塊直接訪問另一個模塊的內部數據。一個模塊不通過正常入口轉到另一模塊內部。兩個模塊有一部分代碼重疊。一個模塊有多個入口。4)為什么說“模塊獨立性是模塊劃分時要遵守的準則”,即在模塊 劃分時,為什么要強調模塊獨立性。論證:假設把一個問題P分解為兩個部分P1和P2,如果這兩部 分不互相獨立,用I1表示P1對P2的相互作用因子,I2 表示P2對P1的相互作用因子,則解決整個問題的實際工 作量為:Z(P1 + I1 X P1) + Z(P2+ I2 XP2)0當系統的兩部分之間聯系很松散,即模塊獨立性很強時,I1 , I2都非常小(一0 ), 則有:Z
50、(P1 + I1 XP1) + Z(P2+I2 XP2) = Z(P1)+Z(P2) 根據模塊分解的論證,有:Z(P)>Z(P1) +Z(P2)則,可得到:Z(P)> Z(P1 +I1 XP1) + Z(P2+I2 XP2)否則,如果系統的兩部分之間聯系緊密,即模塊獨立性很 弱時,I1 , I2都很大,則:Z(P)> Z(P1 +I1 XP1) + Z(P2+I2 XP2)未必成立。二.自頂向下、逐步細化:1 .自定向下設計:首先要對所設計的系統有一個全面的理解,然后從 頂層開始連續地逐層向下分解,直到系統的所有模塊都小到便于掌 握為止。2 .逐步細化設計:“細化”的實質,就
51、是分解;而“逐步”則強調每一 步分解較其前一步增加“少量”的細節,使得相鄰兩步之間只有微 小的變化,從而容易理解和驗證有效性。§ 4.3 要設計一.概要設計階段需要完成的工作:1 .制定規范:軟件開發組在設計時應共同遵守的標準。1)規定設計文檔的編制標準(文檔體系、用紙、樣式、記述詳細程 序、圖形畫法等)。2)規定編碼的信息形式(代碼體系),與硬件、操作系統的接口規 約,命名規則等。2 .軟件結構的總體設計:決定軟件的總體結構。1)采用某種設計方法,將一個復雜的系統按功能劃分成模塊的層次 結構。2)確定每一個模塊的功能,建立與已確定的軟件需求的對應關系。3)確定模塊間的調用關系。4)
52、確定模塊間的接口,即模塊間傳遞的信息,設計接口的信息結構5)評估模塊劃分的質量及導出模塊結構的規則。3 .數據結構的設計:決定文件系統的結構或數據庫的模式,子模式以及數據完整性,安全性設計。1)確定輸入、輸出文件的詳細的數據結構。2)模式設計:確定物理數據庫結構。3)子模式設計:確定用戶使用的數據視圖。4)數據的完整性,安全性設計。5)數據優化:改進模式與子模式,以優化數據的存取。4 .編寫文檔:概要設計說明書1)引言:編寫目的,背景,參數資料等。2)系統概述:目標,運行環境,需求概述。3)結構設計:軟件的總體結構。模塊的外部設計:(包括關于各模塊功能,性能及接口的簡要 描述)。4)數據結構設計:文件系統結構,數據庫模式,子模式,完整性,安全性,訪問方法,存儲要求等。5)初步測試計劃:對測試的策略,方法和步驟提出要求。5 .技術審查和管理復審。系統結構描述:(HIPO圖)1. HIPO圖:即H+ IPO。由一張HC圖加一組IPO圖組成。2. HC圖:(層次圖)。用于表示軟件的層次結構。3. IPO圖:用來描述HC圖中的每一個模塊,由輸入、處理和輸出三個 框組成。需要時可增加一個數據文件(庫)框。圖形表示:系統的IPO圖,改進的IPO圖(如圖所示)。輸入處理輸出HIPCS (典型)作者:日期:系統:模塊:編號:HIPC® (改進)概述區分輸入和. 驗出分支
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 歐洲招商活動方案
- 武侯區法治教育活動方案
- 永年過年活動方案
- 畢業年級教研活動方案
- 汽修洗車策劃活動方案
- 樓盤銀行圈層活動方案
- 氏族祭祖活動方案
- 汽貿店圣誕活動方案
- 母親節活動糕點活動方案
- 水頭志愿活動方案
- 黑龍江省2024年普通高校招生體育類本科批院校專業組投檔分數線(歷史類)
- 水閘地基施工方案
- 企業數字化轉型服務協議
- 《建立合適邊界:親子教育課件》
- DB37-T 4516-2022 高速公路邊坡光伏發電工程技術規范
- 變電所設備更換申請報告
- 2023年遺傳學考試題庫(含答案)
- 課題申報參考:基于多模態大數據的大學生心理危機預警機制研究
- 《消費者行為學》教學大綱
- 《礦井扇風機》課件
- 布氏桿菌護理查房
評論
0/150
提交評論