《軟件工程》教案(本科)_第1頁(yè)
《軟件工程》教案(本科)_第2頁(yè)
《軟件工程》教案(本科)_第3頁(yè)
《軟件工程》教案(本科)_第4頁(yè)
《軟件工程》教案(本科)_第5頁(yè)
已閱讀5頁(yè),還剩50頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、學(xué)習(xí)好資料歡迎下載軟件工程教案(本科)課件資料下載:2019年11月目錄第一章軟件工程概述 4§1.1 軟件的概念、特點(diǎn)及分類 4§1.2 軟件危機(jī)5§1.3 軟件工程7§1.4 小結(jié) 12第二章系統(tǒng)分析13§2.1 系統(tǒng)分析(項(xiàng)目計(jì)劃) 13§2.2 問(wèn)題定義13迎.3可行性研究 14一.4小結(jié) 19一.5補(bǔ)充實(shí)例19第三章需求分析22§3.1 需求分析概述 22§3.2 結(jié)構(gòu)化分析方法 24§3.3 驗(yàn)證軟件需求 28§3.4 小結(jié) 28§3.5

2、補(bǔ)充知識(shí)28§3.6 補(bǔ)充實(shí)例31第四章軟件設(shè)計(jì)概述 35§4.1 軟件設(shè)計(jì)概述 35§4.2 軟件設(shè)計(jì)的策略 35§4.3 概要設(shè)計(jì)40§4.4 結(jié)構(gòu)化系統(tǒng)設(shè)計(jì) 42§4.5 小結(jié) 52§4.6 補(bǔ)充實(shí)例52第五章詳細(xì)設(shè)計(jì)53§5.1 詳細(xì)設(shè)計(jì)概述 53§5.2 結(jié)構(gòu)化程序設(shè)計(jì) 54§5.3 詳細(xì)設(shè)計(jì)的描述工具 55§5.4 其它的軟件設(shè)計(jì)方法(面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法) 60§5.5 程序復(fù)雜度的定量度量 61§5.6 小結(jié) 63§5.7 補(bǔ)充實(shí)例63第

3、六章編碼 67§6.1 編碼的目的 67§6.2 編碼的風(fēng)格 67§6.3 程序設(shè)計(jì)語(yǔ)言 69§6.4 小結(jié) 70§6.5 補(bǔ)充實(shí)例70第七章測(cè)試71第八章維護(hù)87第九章面向?qū)ο蠓治雠c設(shè)計(jì) 90第十章軟件質(zhì)量保證97第十一章軟件項(xiàng)目計(jì)劃與管理 98第十二章99第十三章 100第十四章101第一章 軟件工程概述引論:隨著計(jì)算機(jī)的普及與深化,軟件數(shù)量急劇膨脹,同時(shí)軟件成本也在逐年上 開(kāi),質(zhì)量得不到可靠的保證。軟件開(kāi)發(fā)的生產(chǎn)率也遠(yuǎn)遠(yuǎn)跟不上普及計(jì)算機(jī) 應(yīng)用的要求。由此產(chǎn)生了 “軟件危機(jī)”。軟件工程正是在此情況下產(chǎn)生的 一門(mén)新興學(xué)科。學(xué)習(xí)軟件工程,鍛煉思

4、維能力及解決問(wèn)題的能力。學(xué)習(xí)軟件工程,努力成為軟件界的“白領(lǐng)”。§ 1.1 件的概念、特點(diǎn)及分類一.軟件的定義:軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。其中,程序是按事先設(shè)計(jì)的功能和性 能要求執(zhí)行的指令序列;數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu); 文檔是與程序開(kāi)發(fā)、維護(hù)和使用有關(guān)的圖文材料。二.軟件的特點(diǎn):1 .軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體。2 .軟件的生產(chǎn)與硬件不同。(無(wú)明顯的制造過(guò),存在軟件產(chǎn)品的保護(hù)問(wèn) 題。)3 .在軟件的運(yùn)行和使用期間,沒(méi)有硬件那樣的機(jī)械磨損、老化等問(wèn)題。4 .軟件的開(kāi)發(fā)和運(yùn)行常常受到計(jì)算機(jī)系統(tǒng)的限制,對(duì)計(jì)

5、算機(jī)系統(tǒng)有著 不同程度的依賴性。5 .軟件的開(kāi)發(fā)至今尚未完全擺脫手工藝的開(kāi)發(fā)方式。6 .軟件是復(fù)雜的。(軟件復(fù)雜性來(lái)源于它所反映的實(shí)際問(wèn)題的復(fù)雜性。)7 .軟件成本相當(dāng)昂貴。(定制產(chǎn)品、手工開(kāi)發(fā).成本高)8 .相當(dāng)多的軟件工作涉及到社會(huì)問(wèn)題。三.軟件的分類:1 .按軟件功能劃分:學(xué)習(xí)好資料歡迎下載1)系統(tǒng)軟件:使計(jì)算機(jī)系統(tǒng)各個(gè)部件、相關(guān)軟件和數(shù)據(jù)協(xié)調(diào)、高效 的工作的軟件。(如:操作系統(tǒng),數(shù)據(jù)庫(kù)管理系統(tǒng),設(shè) 備驅(qū)動(dòng)程序等)2)支撐軟件:協(xié)助用戶開(kāi)發(fā)軟件的工具性軟件。(如:文本編輯程序,集成開(kāi)發(fā)工具,圖形軟件包等)3)應(yīng)用軟件:在特定領(lǐng)域內(nèi)開(kāi)發(fā)為特定目的服務(wù)的一類軟件。2 .按軟件規(guī)模劃分:微型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)實(shí)時(shí)處理軟件:在事件或數(shù)據(jù)產(chǎn)生時(shí),立即予以處理,并及時(shí)反 饋信號(hào)。2)分時(shí)軟件:允許每個(gè)聯(lián)機(jī)用戶同時(shí)使用計(jì)算機(jī)。3)交互時(shí)軟件:能實(shí)現(xiàn)人通信的軟件。4)批處理軟件:把一組輸入作業(yè)或一批數(shù)據(jù)以成批處理的方式一次 運(yùn)行,按順序逐個(gè)處理完的軟件。4.按軟件服務(wù)對(duì)象的范圍劃分:1)項(xiàng)目軟件2)產(chǎn)品軟件§ 1.2 件危機(jī)一.軟件危機(jī):指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中

7、所遇到的一系列嚴(yán)重問(wèn)題。1.軟件危機(jī)包含的問(wèn)題:學(xué)習(xí)好資料歡迎下載1)如何開(kāi)發(fā)軟件,以滿足對(duì)軟件日益增長(zhǎng)的需求。(提高生產(chǎn)率)2)如何維護(hù)數(shù)量不斷膨脹的已有軟件2.軟件危機(jī)的表現(xiàn)形式:1)對(duì)軟件開(kāi)發(fā)的成本和進(jìn)度的估計(jì)常常不準(zhǔn)確。導(dǎo)致:成本提高,工程延期,影響信譽(yù)。權(quán)益之計(jì):損害軟件質(zhì)量,又會(huì)引起用戶不滿。2)用戶對(duì)“以完成”的軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。原因:對(duì)用戶需求不確切,缺少溝通,倉(cāng)促上陣,閉門(mén)造車。導(dǎo)致:不符合用戶要求。3)軟件產(chǎn)品質(zhì)量往往靠不住。原因:軟件可靠性和質(zhì)量保證未認(rèn)真執(zhí)行。導(dǎo)致:軟件質(zhì)量問(wèn)題。4)軟件常常是不可維護(hù)的。原因:程序結(jié)構(gòu)固定、死板、變更困難、錯(cuò)誤、難以改正,無(wú)

8、法 增加新的功能和適應(yīng)新的環(huán)境。5)軟件通常沒(méi)有適當(dāng)?shù)奈臋n資料。項(xiàng)目負(fù)責(zé)人:用以控制整體狀態(tài),把握工程進(jìn)度;開(kāi)發(fā)者:用以相互交流;維護(hù)人員:維護(hù)的依據(jù)。6)軟件成本在計(jì)算機(jī)系統(tǒng)中成本所占比例率上升。微電子技術(shù)的進(jìn)步和自動(dòng)化程度的不斷提高,導(dǎo)致硬件成本下降;軟件需要手工勞動(dòng),且大規(guī)模和數(shù)量不斷的擴(kuò)大,導(dǎo)致軟件 成本上升。7)軟件開(kāi)發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)普及、深入的趁 勢(shì)。“供不應(yīng)求”,無(wú)法充分利用硬件。二 軟件危機(jī)產(chǎn)生的原因:1 .與軟件自身的特點(diǎn)有關(guān):邏輯實(shí)體、手工開(kāi)發(fā)、復(fù)雜度高、成本昂貴。2 .與開(kāi)發(fā)、維護(hù)方法不正確有關(guān):忽視用戶需求,輕視軟件維護(hù)。三.解決軟件危機(jī)的途徑:1

9、.技術(shù)措施:方法和工具2 .組織管理措施:從管理角度進(jìn)行審查、控制。軟件工程正是從技術(shù)和管理兩方面研究如何更好地開(kāi)發(fā)和維護(hù)計(jì)算機(jī)軟 件的一門(mén)新興學(xué)科。§ 1.3 件工程一.軟件工程:是采用工程的概念、原理、技術(shù)和方法來(lái)指導(dǎo)軟件開(kāi)發(fā)和維護(hù) 的工程學(xué)科。1.軟件工程的基本原理:(七條)是確保軟件產(chǎn)品質(zhì)量和開(kāi)發(fā)效率的原理的最小的完備的集合。1)用分階段的生命周期計(jì)劃嚴(yán)格管理。2)堅(jiān)持進(jìn)行階段評(píng)審。進(jìn)行相應(yīng)的質(zhì)量保證、盡早發(fā)現(xiàn)錯(cuò)誤。3)實(shí)行嚴(yán)格的產(chǎn)品控制。實(shí)行基準(zhǔn)配置(給過(guò)階段評(píng)審后的軟件配置成分,包括文檔、程 序等)管理,涉及對(duì)基準(zhǔn)配置的參數(shù),必須按嚴(yán)格規(guī)程審批。4)采用現(xiàn)代的程序設(shè)計(jì)技術(shù)

10、。如:結(jié)構(gòu)化分析與設(shè)計(jì)、面向?qū)ο蟮姆治雠c設(shè)計(jì)。5)結(jié)果應(yīng)能清楚地審查。規(guī)定開(kāi)發(fā)組織的責(zé)任和產(chǎn)品標(biāo)準(zhǔn),提高軟件開(kāi)發(fā)過(guò)程的可見(jiàn)性。6)開(kāi)發(fā)小組的人員應(yīng)該少而精。開(kāi)發(fā)小組人員的素質(zhì)和數(shù)量是影響產(chǎn)品質(zhì)量和開(kāi)發(fā)效率的重要 因素。學(xué)習(xí)好資料歡迎下載7)承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性。積極采納新技術(shù),不斷總結(jié)經(jīng)驗(yàn)。2.軟件工程的三要素:方法、工具和過(guò)程。1)方法:“如何做”,常采用某種特殊的語(yǔ)言或圖形的表達(dá)方法及一 套質(zhì)量保證標(biāo)準(zhǔn)。2)工具:為方法提供的軟件支撐環(huán)境。(計(jì)算機(jī)輔助軟件工程CASE 3)過(guò)程:將方法和工具綜合起來(lái)以達(dá)到合理、及時(shí)地進(jìn)行計(jì)算機(jī)軟件開(kāi)發(fā)的目的。3.軟件工程項(xiàng)目的基本目標(biāo):1)付出

11、較低的開(kāi)發(fā)成本。2)達(dá)到要求的軟件功能。3)取得較好的軟件性能。4)開(kāi)發(fā)的軟件易于移植。5)需要較低的維護(hù)費(fèi)用。6)能按時(shí)完成開(kāi)發(fā)工作,及時(shí)交付使用。4.軟件工程的原則:1)抽象2)信息隱藏3)模塊化4)局部化5) 一致性6)完全性7)可驗(yàn)證性,軟件工程的傳統(tǒng)途徑:1.軟件工程的傳統(tǒng)途徑:生命周期方法學(xué)從時(shí)間角度對(duì)軟件開(kāi)發(fā)和維護(hù)的復(fù)雜問(wèn)題講行分解,劃分為若 干個(gè)階段,每個(gè)階段有相對(duì)獨(dú)立的任務(wù),是在階段結(jié)束時(shí)進(jìn)行技術(shù) 審杳和管理復(fù)審,最后產(chǎn)后相應(yīng)的文檔資料。1)三個(gè)時(shí)期:軟件定義:確定工程總目標(biāo):可行性、采用的策略,需求完 成的功能,需要的資源和成本,工程進(jìn)度表。 包括:?jiǎn)栴}定義,可行性研究,需

12、求分析。軟件開(kāi)發(fā):具體設(shè)計(jì)和實(shí)現(xiàn)。包括:概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)(系統(tǒng)設(shè)計(jì)),編碼和 單元測(cè)試、綜合測(cè)試(系統(tǒng)實(shí)現(xiàn))軟件維護(hù):使軟件持久地滿足用戶需要。改正錯(cuò)誤,適應(yīng)新環(huán)境,滿足新需求。2)八個(gè)階段:?jiǎn)栴}定義:“要解決的問(wèn)題是什么?”提出關(guān)于問(wèn)題性質(zhì)、工程目標(biāo)和規(guī)模的全面報(bào)告。可行性研究:”對(duì)上一個(gè)階段所確定的問(wèn)題有行的通解決辦法嗎?”研究問(wèn)題的范圍,進(jìn)行成本/效率分析,探索問(wèn)題 是否值得解和如何解。需求分析:“為了解決問(wèn)題,目標(biāo)系統(tǒng)必須做到什么?”確定目標(biāo)系統(tǒng)所應(yīng)具備的功能,建立系統(tǒng)邏輯模型 (數(shù)據(jù)流圖、數(shù)據(jù)字典、簡(jiǎn)要算法)概要設(shè)計(jì):概括地談,應(yīng)該如何解決問(wèn)題提出幾種設(shè)計(jì)方案:低成本,中等成本,高

13、成本(“十 全十美”),確定解決系統(tǒng)的方案和目標(biāo)系統(tǒng)需要那 些程序,設(shè)計(jì)軟件的結(jié)構(gòu),確定程序模塊及模塊問(wèn) 關(guān)系(層次圖或結(jié)構(gòu)圖)。詳細(xì)設(shè)計(jì):應(yīng)該怎樣具體地實(shí)現(xiàn)系統(tǒng)把解決具體化,設(shè)計(jì)出程序的詳細(xì)規(guī)格說(shuō)明(HIPO 圖或PDL語(yǔ)言)編碼和單元測(cè)試:編寫(xiě)程序模塊的實(shí)現(xiàn)代碼,并對(duì)其進(jìn)行測(cè)綜合測(cè)試:通過(guò)各種類型的測(cè)試使軟件達(dá)到預(yù)定要求。集成測(cè)試:根據(jù)設(shè)計(jì)的軟件結(jié)構(gòu),將單元模塊按某種策略裝配起來(lái)進(jìn)行聯(lián)合測(cè)試。驗(yàn)收測(cè)試:由用戶根據(jù)需求規(guī)格說(shuō)明書(shū)對(duì)目標(biāo)系統(tǒng)進(jìn)行整體驗(yàn)收。軟件維護(hù):通過(guò)各種必要的維護(hù)活動(dòng)使系統(tǒng)持久滿足用戶需要。改正性維護(hù)(21%適應(yīng)性維護(hù)(25%完善性維護(hù)(50%預(yù)防性維護(hù)(4%3)目的和實(shí)質(zhì):

14、控制開(kāi)發(fā)工作的復(fù)雜性,通過(guò)有限的確定步驟,把用戶需求 從抽象的邏輯概念轉(zhuǎn)化為具體的物理實(shí)現(xiàn)。3.軟件生存期模型:瀑布模型,演化模型,螺旋模型,噴泉模型,智能模型。1)瀑布模型:系統(tǒng)的生命周期方法學(xué)用瀑布模型來(lái)進(jìn)行模擬。各階段間具有順序性和依賴性前階段結(jié)束一 后階段開(kāi)始。前階段輸出文檔一 后階段輸入文檔。推遲實(shí)現(xiàn)的觀點(diǎn):設(shè)置系統(tǒng)分析與設(shè)計(jì)、推遲物理實(shí)現(xiàn)。質(zhì)量保證的觀點(diǎn):每個(gè)階段必須完成規(guī)定的文檔每個(gè)階段結(jié)束前要對(duì)文檔評(píng)審,以便盡早發(fā)現(xiàn)問(wèn)題,改正錯(cuò)誤。2)演化模型:(原型模型)能夠克服瀑布模型的缺點(diǎn)、適當(dāng)?shù)臏p少由于軟件需求不明確而給開(kāi)發(fā)工作帶來(lái)的風(fēng)險(xiǎn)。3)螺旋模型:將瀑布模型與演化模型結(jié)合起來(lái),

15、并且加入兩種模型都忽略了的 風(fēng)險(xiǎn)分析,以彌補(bǔ)兩者的不足。螺旋模型沿著螺旋線旋轉(zhuǎn),在笛卡兒坐標(biāo)的四個(gè)象限上分別表達(dá) 四個(gè)方面的活動(dòng):制定計(jì)劃:確定軟件目標(biāo),選定實(shí)施方案,弄清項(xiàng)目開(kāi)發(fā)的 限制條件。風(fēng)險(xiǎn)分析:分析所選方案,考慮如何識(shí)別和取消風(fēng)險(xiǎn)。實(shí)施工程:實(shí)施軟件開(kāi)發(fā)。客戶評(píng)估:評(píng)價(jià)開(kāi)發(fā)工作,提出修正意見(jiàn)。4)噴泉模型:“噴泉” 一詞體現(xiàn)了迭代和無(wú)間隙特性。系統(tǒng)某個(gè)部分常常 重復(fù)工作多次,相關(guān)功能在每次迭代中隨之加入演進(jìn)的系統(tǒng), 無(wú)間隙是指在開(kāi)發(fā)活動(dòng),即分析、設(shè)計(jì)和編碼之間不存在明 顯的邊界。支持軟件復(fù)用,支持面向?qū)ο蟮拈_(kāi)發(fā)方法。5)智能模型:基于知識(shí)的軟件開(kāi)發(fā)模型智能模型綜合了其他模型,并把專家

16、系統(tǒng)結(jié)合在一起。該模型應(yīng) 用于基于規(guī)則的系統(tǒng),采用規(guī)約和推理機(jī)制,幫助軟件人員完成 開(kāi)發(fā)工作,并使維護(hù)在系統(tǒng)規(guī)格說(shuō)明一級(jí)完成。三.技術(shù)審查和管理復(fù)審:1 .技術(shù)審查:保證軟件質(zhì)量,控制錯(cuò)誤的積累和放大,以降低軟件成本。技術(shù)審查的標(biāo)準(zhǔn)和方法:從前導(dǎo)和后續(xù),兩個(gè)階段進(jìn)行考慮。前導(dǎo):提出解法。后續(xù):實(shí)現(xiàn)解法。步驟:準(zhǔn)備簡(jiǎn)要介紹情況閱讀被審查文檔開(kāi)審查會(huì)返工復(fù)查2 .管理復(fù)審:對(duì)工程項(xiàng)目的成本、經(jīng)費(fèi)、投資回收前景,項(xiàng)目進(jìn)度等經(jīng)濟(jì)因 素,從管理角度進(jìn)行審查。§ 1.4 結(jié)學(xué)習(xí)好資料歡迎下載第二章系統(tǒng)分析§ 2.1 統(tǒng)分析(項(xiàng)目計(jì)劃)1 .兩個(gè)階段:?jiǎn)栴}定義可行性研究2 .目標(biāo):1 .

17、識(shí)別用戶要求2 .評(píng)價(jià)系統(tǒng)的可行性3 .進(jìn)行經(jīng)濟(jì)分析和技術(shù)分析4 .把功能分配給硬件、軟件、人、數(shù)據(jù)庫(kù)和其它系統(tǒng)元素5 .建立成本和進(jìn)度限制6 .生成系統(tǒng)規(guī)格說(shuō)明,形成所有后續(xù)工程的基礎(chǔ)§ 2.2 題定義1 .目的:弄清用戶需要計(jì)算機(jī)解決的問(wèn)題根本所在,以及項(xiàng)目所需的經(jīng) 費(fèi)和資源的文檔。2 .主要任務(wù):是在向用戶調(diào)查的基礎(chǔ)上,編寫(xiě)一個(gè)叫做系統(tǒng)目標(biāo)與范圍說(shuō) 明書(shū)的文檔。這個(gè)說(shuō)明經(jīng)用戶同意后,就作為下一步一可行性分 析的依據(jù)。3 .文檔:系統(tǒng)目標(biāo)與范圍說(shuō)明書(shū)1 .項(xiàng)目名稱2 .問(wèn)題說(shuō)明:當(dāng)前工作中存在的問(wèn)題3 .項(xiàng)目目標(biāo):用戶對(duì)新系統(tǒng)的目標(biāo)學(xué)習(xí)好資料歡迎下載4 .項(xiàng)目范圍:指出解決這一項(xiàng)

18、目所需的投資范圍5 .初步想法:對(duì)系統(tǒng)功能提出一些初步設(shè)想6 .可行性研究計(jì)劃:對(duì)可行性研究的時(shí)間、費(fèi)用進(jìn)行估算§ 2.3 行性研究一.可行性研究1 .目的:用最少的代價(jià),在盡可能短的時(shí)間內(nèi)弄清所定義的項(xiàng)目是不是 可能實(shí)現(xiàn)和值得進(jìn)行。(不是解決問(wèn)題,而是確定問(wèn)題是否可能解決 和值得去解)2 .實(shí)質(zhì):是進(jìn)行一次大大簡(jiǎn)化了的系統(tǒng)分析和設(shè)計(jì)的過(guò)程,即在較高層 次上以較抽象的方式進(jìn)行的系統(tǒng)分析和設(shè)計(jì)的過(guò)程。3 .研究問(wèn)題解法的可行性:技術(shù)可行性:使用現(xiàn)有技術(shù)能實(shí)現(xiàn)這個(gè)系統(tǒng)嗎?經(jīng)濟(jì)可行性:這個(gè)系統(tǒng)的經(jīng)濟(jì)效益能超過(guò)它的開(kāi)發(fā)成本嗎?操作可行性:系統(tǒng)的操作方式在這個(gè)用戶組織內(nèi)行得通嗎?4 .根本任務(wù)

19、:對(duì)以后的行動(dòng)方針提出建議5 .步驟:1)復(fù)查系統(tǒng)規(guī)模和目標(biāo)改正含糊或不正確的敘述,清晰的描述目標(biāo)系統(tǒng)的一切限制和約 束,確保正在解決的問(wèn)題,確實(shí)是要求解決的問(wèn)題。2)研究目前正在使用的系統(tǒng)了解現(xiàn)有系統(tǒng)的功能,閱讀文檔資料和使用手冊(cè),確定目標(biāo)系統(tǒng)必須完成的基本功能,并解決現(xiàn)有系統(tǒng)中存在的問(wèn)題。3)導(dǎo)出新系統(tǒng)的高層邏輯模型設(shè)計(jì)過(guò)程:現(xiàn)有物理系統(tǒng)一 現(xiàn)有系統(tǒng)邏輯模型一 目標(biāo)系統(tǒng)邏輯模型一 新物理系統(tǒng)4)重新定義問(wèn)題重新復(fù)查問(wèn)題定義,工程規(guī)模和目標(biāo)5)導(dǎo)出和評(píng)價(jià)供選擇的解法技術(shù)可行性,經(jīng)濟(jì)可行性,操作可行性。6)推薦行動(dòng)方針是否值得開(kāi)發(fā),選擇最好的解法,說(shuō)明理由。7)草擬開(kāi)發(fā)計(jì)劃開(kāi)發(fā)計(jì)劃:工程進(jìn)度表

20、,開(kāi)發(fā)人員,各種資源,使用時(shí)間,系統(tǒng) 生命周期各階段成本。8)書(shū)寫(xiě)文檔并提交審查成本/效益分析:通過(guò)估計(jì)開(kāi)發(fā)成本,運(yùn)行費(fèi)用和經(jīng)濟(jì)效益,從而達(dá)到從經(jīng)濟(jì)角 度分析開(kāi)發(fā)一個(gè)特定的新系統(tǒng)是否劃算,幫助使用部門(mén)負(fù)責(zé)人正確 的做出是否投資這項(xiàng)工程開(kāi)發(fā)的決定。6 .成本估計(jì):軟件開(kāi)發(fā)成本主要表現(xiàn)為人力消耗:人力消耗乂平均工資=開(kāi)發(fā)費(fèi)用成本估計(jì)技術(shù):代碼行技術(shù):源代碼行數(shù)x每行代碼平均成本=開(kāi)發(fā)成本任務(wù)分解技術(shù):按開(kāi)發(fā)階段劃分任務(wù)(每個(gè)相對(duì)獨(dú)立的開(kāi)發(fā)任務(wù)的)成本累加和 =開(kāi)發(fā)成本 自動(dòng)估計(jì)成本技術(shù):軟件工具。7 .運(yùn)行費(fèi)用:系統(tǒng)操作費(fèi)用(操作員人數(shù),工作時(shí)間,消耗的物資等)維護(hù)費(fèi)用。8 .經(jīng)濟(jì)效益:因使用新系

21、統(tǒng)增加的收入可以節(jié)省的運(yùn)行費(fèi)用9 .度量效益的方法:1)貨幣的時(shí)間價(jià)值:設(shè)年利率為i ,現(xiàn)已存入P元,則n年后所得:F= P*(1 + i)n ,即為P元錢(qián)在n年后的價(jià)值。反之,若n年后能收入F元, 則其在現(xiàn)在的價(jià)值為:P= F/(1 + i) n02)投資回收期:是使累計(jì)的經(jīng)濟(jì)效益等于最初的投資所需要的時(shí)間,是衡量一個(gè)開(kāi)發(fā)工程價(jià)值的經(jīng)濟(jì)指標(biāo)。投資回收期越短,就能越快獲得 利潤(rùn),所以工程就越值得投資。3)純收入:是在整個(gè)生存期之內(nèi)系統(tǒng)的累計(jì)經(jīng)濟(jì)效益(折合成現(xiàn)在植) 與投資之差。4)投資回收率:設(shè)P為現(xiàn)在的投資的投資額,F(xiàn)i為第i年底的效益(i =1, 2,n), n為系統(tǒng)的使用壽命,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三.技術(shù)分析:評(píng)價(jià)系統(tǒng)概念的技術(shù)價(jià)值,同時(shí)收集有關(guān)性能,可靠性,可維護(hù)性及生產(chǎn)率方面 的信息。1 .目的:對(duì)系統(tǒng)的技術(shù)可行性進(jìn)行評(píng)估,指明為完成系統(tǒng)的功能和性能 需要什么技術(shù)?需要哪些新材料、方法、算法或者過(guò)程?有什么開(kāi) 發(fā)風(fēng)險(xiǎn)?這些技術(shù)問(wèn)題對(duì)成本的影響如何?2 .方法:模型化方法(數(shù)學(xué)模型、物理模型)優(yōu)化技術(shù)概率和統(tǒng)計(jì)排隊(duì)論控制論等。4 .系統(tǒng)結(jié)構(gòu)的模型化:系統(tǒng)流程圖1 .系統(tǒng)流程圖:是用來(lái)描述系統(tǒng)物理模型的一種傳統(tǒng)工具,基本思

23、想是用圖形 符號(hào)、黑盒子形式描繪系統(tǒng)里面的每個(gè)部件(程序、文件、數(shù)據(jù)庫(kù)、 表格、人工過(guò)程等),它所表達(dá)的是信息在系統(tǒng)各部件之間的流動(dòng)情 況,而不是對(duì)信息進(jìn)行加工處理的控制過(guò)程。2 .描述符號(hào):(書(shū):P25)1)基本符號(hào):(如表2.1 )符號(hào)名稱說(shuō)明處理能改變數(shù)據(jù)值或數(shù)據(jù)位置的加工或部件,例如:程序、處理機(jī)、人工加工等口輸入/輸出表小輸入或輸出(或既輸入又輸出),是,個(gè)廣 義的不指明具體設(shè)備的符號(hào)O-連接指出轉(zhuǎn)到圖的另一部分或從圖的另一部分轉(zhuǎn) 來(lái),通常在同一頁(yè)上口換頁(yè)連接指出轉(zhuǎn)到另一貝圖上或由另一貝圖轉(zhuǎn)來(lái)數(shù)據(jù)流用來(lái)連接其他符號(hào),指明數(shù)據(jù)流動(dòng)方向表2.12)系統(tǒng)符號(hào):(如表2.2)符號(hào)名稱說(shuō)明穿孔

24、卡片表示穿孔卡片輸入或輸出,也可表不一個(gè)穿孔 卡片文件L-文檔通常表示打印輸出,也可表示用打印終端輸入 數(shù)據(jù)Q磁帶磁帶車入/輸出,或表示一個(gè)磁帶文件聯(lián)機(jī)存儲(chǔ)表示任何種類的聯(lián)機(jī)存儲(chǔ),包括磁盤(pán)、磁鼓、 軟盤(pán)和海量存儲(chǔ)器件等B磁盤(pán)磁盤(pán)車入/輸出,也可表示存儲(chǔ)在磁盤(pán)上的文件 或數(shù)據(jù)庫(kù)c_o磁鼓磁鼓車入/輸出,也口表小仔,儲(chǔ)在磁鼓上的文件 或數(shù)據(jù)庫(kù)顯示CRT終端或類似的顯示部件,可用于輸入或輸 出,也可既輸入又輸出人工輸入人工輸入數(shù)據(jù)的脫機(jī)處理,例如:填寫(xiě)表格等人工操作人工完成的處理,例如:會(huì)計(jì)在工資支票上簽 名輔助操作使用設(shè)備進(jìn)行的脫機(jī)操作通信鏈路通過(guò)遠(yuǎn)程通信線路或鏈路傳送數(shù)據(jù)表2.23 .實(shí)例:(書(shū)

25、:P25-26)5 .文檔:1 .可行性分析報(bào)告:1)系統(tǒng)概述:當(dāng)前現(xiàn)有系統(tǒng)分析:系統(tǒng)描述及存在問(wèn)題目標(biāo)系統(tǒng)分析:系統(tǒng)功能和性能描述。(物理模型:系統(tǒng)流程 圖)當(dāng)前系統(tǒng)與目標(biāo)系統(tǒng)比較:目標(biāo)系統(tǒng)的優(yōu)越性。2)可行性分析:技術(shù)可行性經(jīng)濟(jì)可行性操作可行性。3)結(jié)論意見(jiàn):可著手組織開(kāi)發(fā)須待若干條件(如資源、人力、設(shè)備等)具備后才能開(kāi)發(fā)需對(duì)開(kāi)發(fā)目標(biāo)進(jìn)行修改不能進(jìn)行或不必進(jìn)行(如技術(shù)不成熟、經(jīng)濟(jì)上不合算等)其它一2 .項(xiàng)目開(kāi)發(fā)計(jì)劃:1)系統(tǒng)概述:包括項(xiàng)目目標(biāo),主要功能,系統(tǒng)特點(diǎn),以及關(guān)于開(kāi)發(fā)工作的安排。2)系統(tǒng)資源:包括開(kāi)發(fā)和運(yùn)行該軟件系統(tǒng)所需要的各種資源。 如:硬件、軟件、人員、組織、機(jī)構(gòu)等。3)費(fèi)用預(yù)

26、算:分階段的人員費(fèi)用,機(jī)時(shí)費(fèi)用及其它費(fèi)用。4)進(jìn)度安排:各階段起止時(shí)間,完成文檔及驗(yàn)證方式。5)要交付的產(chǎn)品清單§ 2.4 結(jié)§ 2.5 充實(shí)例一.庫(kù)存清單系統(tǒng):1 .系統(tǒng)說(shuō)明:某裝配廠有一座存放零件的倉(cāng)庫(kù),倉(cāng)庫(kù)中現(xiàn)有的各種零件的數(shù) 量以及每種零件的庫(kù)存量臨界值等記錄在庫(kù)存清單主文件中。當(dāng)倉(cāng) 庫(kù)中零件數(shù)量有變化時(shí),應(yīng)該及時(shí)修改庫(kù)存清單主文件,如果那種 零件的庫(kù)存量少于它的庫(kù)存量臨界值,則應(yīng)該報(bào)告給采購(gòu)部門(mén)以便 訂貨,規(guī)定每天向采購(gòu)部門(mén)送一次訂貨報(bào)告。該裝配廠使用一臺(tái)小型計(jì)算機(jī)處理更新庫(kù)存清單主文件和產(chǎn)生 定貨報(bào)告的任務(wù)。零件庫(kù)存量的每一次變化稱為一個(gè)事務(wù),由放在 倉(cāng)庫(kù)中的C

27、RT終端輸入到計(jì)算機(jī)中;系統(tǒng)中的庫(kù)存清單程序?qū)κ聞?wù) 進(jìn)行處理,更新存儲(chǔ)在磁盤(pán)上的庫(kù)存清單主文件,并且把必要的訂 貨信息寫(xiě)在磁帶上。最后,每天由報(bào)告生成程序讀一次磁帶,并且打印出定貨報(bào)告。2 .系統(tǒng)流程圖:(如圖2.5.1所示)事務(wù)報(bào)告生成程序定貨報(bào)告圖2.5.1庫(kù)存清單系統(tǒng)的系統(tǒng)流程圖二教材購(gòu)銷系統(tǒng):1 .系統(tǒng)說(shuō)明:在教材的銷售過(guò)程中,首先學(xué)生拿著購(gòu)書(shū)申請(qǐng)到會(huì)計(jì)處審查并 開(kāi)具購(gòu)書(shū)發(fā)票,然后到出納處交款,并開(kāi)具領(lǐng)書(shū)單,學(xué)生拿著領(lǐng)書(shū) 單到書(shū)庫(kù)領(lǐng)書(shū);在開(kāi)具購(gòu)書(shū)發(fā)票的過(guò)程中,若教材存量不夠,則需 要進(jìn)行缺書(shū)統(tǒng)計(jì),然后書(shū)庫(kù)根據(jù)缺書(shū)情況去采購(gòu)缺書(shū),并通知學(xué)生 補(bǔ)購(gòu)教材。2 .系統(tǒng)流程圖:(如圖2.5.2所

28、示)補(bǔ)購(gòu)?fù)ㄖ睍?shū)登記缺書(shū)單 一缺書(shū)統(tǒng)計(jì)購(gòu)書(shū)單領(lǐng)書(shū)單審查并開(kāi)發(fā)票i.各班學(xué)生 用書(shū)表, 教材 存量表開(kāi)領(lǐng)書(shū)單發(fā)票收訖圖2.5.2教材購(gòu)銷系統(tǒng)的系統(tǒng)流程圖第三章需求分析§3.1 需求分析概述一.需求分析的任務(wù):1 .基本任務(wù):回答“系統(tǒng)必須做什么”?確定目標(biāo)系統(tǒng)功能和性能。2 .具體任務(wù):1)確定對(duì)系統(tǒng)的綜合要求:功能要求;性能要求;運(yùn)行要求;將來(lái) 可能提出的要求。2)分析系統(tǒng)的數(shù)據(jù)要求:E-R圖(概念模型)。3)導(dǎo)出系統(tǒng)的邏輯模型:數(shù)據(jù)流圖,數(shù)據(jù)字典,加工處理說(shuō)明書(shū)等。4)修正系統(tǒng)開(kāi)發(fā)計(jì)劃。5)開(kāi)發(fā)原型系統(tǒng):使用戶對(duì)目標(biāo)系統(tǒng)有一個(gè)更直接、更具體的概念, 從而能更準(zhǔn)確提出用戶需求。(關(guān)鍵

29、的困難在于成本)二.需求分析的過(guò)程:1.問(wèn)題識(shí)別:確定軟件的需求。1)功能2)性能3)環(huán)境4)可靠性5)安全保密6)界面7)資源8)成本進(jìn)度9)目標(biāo)2.分析與綜合:從數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)出發(fā),逐步細(xì)化軟件功能,找出各元素之 間的聯(lián)系,接口特性和設(shè)計(jì)上的限制,給出目標(biāo)系統(tǒng)的詳細(xì)邏輯模 型。3.編制需求分析文檔:需求規(guī)格說(shuō)明書(shū)1)任務(wù)概述:系統(tǒng)目標(biāo),運(yùn)行環(huán)境,條件與限制2)數(shù)據(jù)描述:概念模型:E-R圖邏輯模型:數(shù)據(jù)流圖數(shù)據(jù)定義:數(shù)據(jù)字典,加工說(shuō)明數(shù)據(jù)庫(kù)描述:名稱和類型3)功能描述:軟件功能要求4)性能描述:軟件性能要求(處理速度、響應(yīng)時(shí)間、安全限制等)5)運(yùn)行描述:用戶界面、硬件接口、軟件接口、故障處

30、理等。6)質(zhì)量保證:闡明軟件在交付使用前需要進(jìn)行的功能測(cè)試和性能測(cè) 試,并且規(guī)定源程序和文檔遵守的各種標(biāo)準(zhǔn)。4.技術(shù)審查和管理復(fù)審。三.需求分析的原則:1 .必須能夠表達(dá)和理解問(wèn)題的數(shù)據(jù)域和功能域1)數(shù)據(jù)域:數(shù)據(jù)流,數(shù)據(jù)內(nèi)容和數(shù)據(jù)結(jié)構(gòu)。2)功能域:加工變換。2 .必須按自頂向下,逐層分解的方式對(duì)問(wèn)題進(jìn)行分解和不斷細(xì)化。3 .要給出系統(tǒng)的邏輯視圖和物理視圖。1)邏輯視圖:給出軟件要達(dá)到的功能和要處理的數(shù)據(jù)之間的關(guān)系。2)物理視圖:給出處理功能和數(shù)據(jù)結(jié)構(gòu)的實(shí)際表示形式。四.需求分析的方法:1 .需求分析方法:是由對(duì)軟件的數(shù)據(jù)域和功能域的系統(tǒng)分析過(guò)程及其表示方法組成。包括:面向數(shù)據(jù)流,面向數(shù)據(jù)結(jié)構(gòu)。

31、2 .不同的需求分析方法具有的共性:1)支持?jǐn)?shù)據(jù)域分析的機(jī)制:所有方法都直接或間接地涉及到數(shù)據(jù)流,數(shù)據(jù)內(nèi)容或數(shù)據(jù)結(jié)構(gòu)等 數(shù)據(jù)域的屬性。2)功能表示的方法:一般用數(shù)據(jù)變換或加工來(lái)表示。3)接口的定義:是數(shù)據(jù)表示和功能表示的直接產(chǎn)物。(功能間的接口一數(shù)據(jù)流)4)問(wèn)題分解的機(jī)制以及對(duì)抽象的支持:在不同抽象層次上表示數(shù)據(jù)域和功能域,以逐層細(xì)化的手段建立 分層結(jié)構(gòu)。5)邏輯視圖和物理視圖:6)系統(tǒng)抽象模型:是對(duì)現(xiàn)實(shí)世界中存在的有關(guān)實(shí)體和活動(dòng)的抽象和精化。§ 3.2 構(gòu)化分析方法1 .結(jié)構(gòu)化分析方法:是面向數(shù)據(jù)流進(jìn)行需求分析的方法,是用抽象模型的概念,按 軟件內(nèi)部數(shù)據(jù)傳遞、變換的關(guān)系,自頂向下逐

32、層分解,直到找到滿 足功能要求的所有可實(shí)現(xiàn)的軟件為止。2 .數(shù)據(jù)流圖:1 .數(shù)據(jù)流圖(DFD:是軟件系統(tǒng)邏輯模型的一種圖形表示、是從數(shù)據(jù)傳遞和加工的 角度,以圖形的方式刻畫(huà)數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過(guò)程的工 具。2 .組成符號(hào):(書(shū):P24)數(shù)據(jù)存儲(chǔ)數(shù)據(jù)流表3.12)附加符號(hào):(如表3.2)符號(hào)說(shuō)明A二、C*口>B數(shù)據(jù)A和數(shù)據(jù)B同時(shí)輸入才能變換成數(shù)據(jù)C9.入7* C數(shù)據(jù)A變換成B和C、Ab+:t)C 數(shù)據(jù)A或B,或A和B同時(shí)輸入變換成 CB .f-AQ+ c、數(shù)據(jù)A變換成B或C,或B和C7、A京)B 4-JC 只有數(shù)據(jù)A或只有數(shù)據(jù)B (但不能A B同時(shí)) 輸入時(shí)變換成CB T C *數(shù)

33、據(jù)A變換成B或C,但不能變換成 B和C表3.23 .性質(zhì):1)數(shù)據(jù)流圖中的箭頭僅能表示在系統(tǒng)中流動(dòng)的數(shù)據(jù),而不是物質(zhì)流2)數(shù)據(jù)流圖與程序流程圖不同,它不能表示程序的控制結(jié)構(gòu)。(如:選擇或循環(huán))3)數(shù)據(jù)流圖表現(xiàn)的范圍具有很大的靈活性,可以畫(huà)分層DFD4 .分層DFD由頂向下,逐層分解,逐步細(xì)化。1)優(yōu)點(diǎn): 便于實(shí)現(xiàn):逐層細(xì)化,有利于控制問(wèn)題的復(fù)雜度。便于使用:使用戶中的不同業(yè)務(wù)人員只選擇與自身有關(guān)的圖 形,不必閱讀全圖。2)畫(huà)分層DFD的指導(dǎo)原則:第一層DFD應(yīng)當(dāng)是基本系統(tǒng)模型注意父圖和子圖的平衡,維護(hù)信息的連續(xù)性區(qū)分局部文件和局部外部項(xiàng) 掌握分解的速度,上快下慢 遵守加工編號(hào)原則5 .舉例:(

34、書(shū):P25 27)三.數(shù)據(jù)字典:1 .數(shù)據(jù)字典:是關(guān)于數(shù)據(jù)的信息的集合,是對(duì) DF9的所有元素定義的集合。2 .組成符號(hào):(如表3.3)符號(hào)含義說(shuō)明=被定義為十與例:x=a+b,表示x由a和b組成,或|或例:x=a,b , x=a|b,表tn x 由 a或由b組成重復(fù)例:x=a,表示x由0個(gè)或多個(gè) a 組成mn重復(fù)例:x=3a8 ,表示x中至少出現(xiàn) 3 次a,至多出現(xiàn)8次a()可選例:x=(a),表示a 口在x中出現(xiàn), 也可以不出現(xiàn)“”基本數(shù)據(jù)兀素例:x= a ,表7K x為取值為a的 數(shù)據(jù)元素連接符例:x=1.9 ,表示x可取1到9中的 值表3.33 .內(nèi)容:名稱,別名,編號(hào),分類,描述,定

35、義,位置等1)數(shù)據(jù)流的描述:數(shù)據(jù)流名:說(shuō)明:簡(jiǎn)要介紹作用,即它產(chǎn)生的原因和結(jié)果來(lái)源:來(lái)自何方去向:去向何處組成:數(shù)據(jù)結(jié)構(gòu)備注:2)數(shù)據(jù)元素(數(shù)據(jù)項(xiàng))的描述:數(shù)據(jù)元素名:類型:數(shù)值,文字,長(zhǎng)度:取值范圍:相關(guān)的數(shù)據(jù)元素及數(shù)據(jù)結(jié)構(gòu):備注:3)數(shù)據(jù)存儲(chǔ)(數(shù)據(jù)文件)的描述:數(shù)據(jù)文件名:簡(jiǎn)述:存放的是什么數(shù)據(jù)組成:數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)方式:排列順序,關(guān)鍵碼等備注:4)數(shù)據(jù)源(終)點(diǎn)描述:名稱:外部實(shí)體名簡(jiǎn)要描述:什么外部實(shí)體 有關(guān)數(shù)據(jù)流:四.加工說(shuō)明:1 .加工說(shuō)明:是對(duì)DFD中的加工所做的描述,包括:輸入數(shù)據(jù)、加工邏輯、 輸出數(shù)據(jù)等。2 .內(nèi)容:加工名稱加工編號(hào)輸入數(shù)據(jù)流輸出數(shù)據(jù)流加工邏輯執(zhí)行次數(shù)3 .加工邏

36、輯:闡明把輸入數(shù)據(jù)轉(zhuǎn)換為輸出數(shù)據(jù)的策略,是加工說(shuō)明的主體,在需求分析階段,僅需要指出要加工“做什么”。而不是“怎樣去做”, 描述方法:結(jié)構(gòu)話語(yǔ)言,判定表,判定樹(shù)。1)結(jié)構(gòu)化語(yǔ)言(PDD:又稱過(guò)程設(shè)計(jì)語(yǔ)言,偽碼;它是一種介于自然語(yǔ)言與程序設(shè) 計(jì)語(yǔ)言之間的語(yǔ)言,即具有結(jié)構(gòu)化程序的清晰易讀的優(yōu)點(diǎn),又具 有自然語(yǔ)言的靈活性,不受程序設(shè)計(jì)語(yǔ)言那樣嚴(yán)格的語(yǔ)法約束。2)判定表:采用表格化的形式,適于表達(dá)含有復(fù)雜判斷的加工邏輯。實(shí)例:(書(shū):P86)3)判定樹(shù):是判定表的圖形表示,其適用場(chǎng)合與判定表相同。實(shí)例:(書(shū):P87)§ 3.3 證軟件需求一致性:所有需求必須一致,不能互相矛盾。完整性:需求必須

37、完整,包含用戶需要的所有功能和性能?,F(xiàn)實(shí)性:指定需求用現(xiàn)有的軟、硬件技術(shù)基本上可以實(shí)現(xiàn)。有效性:必須證明需求是正確有效的,確實(shí)能解決用戶面對(duì)的問(wèn)題§ 3.4 結(jié)§ 3.5 充知識(shí)概念模型1 .數(shù)據(jù)模型的表示圖3-5數(shù)據(jù)模型的表示2 .概念模型的表示方法:實(shí)體聯(lián)系方法(Entity-Relationship ): E-R 圖3 . E-R 圖:1)主要概念:實(shí)體:客觀存在并相互區(qū)分的事物屬性:實(shí)體所具有的某一特性 聯(lián)系:現(xiàn)實(shí)世界的事物之間的聯(lián)系在信息世界的反映一對(duì)一聯(lián)系:(1:1)一對(duì)多聯(lián)系:(1:n)多對(duì)多聯(lián)系:(m:n)2)符號(hào)表示:用長(zhǎng)方形表示實(shí)體型,在框內(nèi)寫(xiě)上實(shí)體名。

38、用橢圓形表示實(shí)體的屬性,并用無(wú)向邊把實(shí)體與其屬性連 接起來(lái)。用菱形表示實(shí)體間的聯(lián)系,菱形框內(nèi)寫(xiě)上聯(lián)系名。用無(wú)向 邊把菱形分別與有關(guān)實(shí)體相連接, 在無(wú)向邊旁標(biāo)上聯(lián)系的 類型。若實(shí)體之間的聯(lián)系也具有屬性,則把屬性和菱形也用無(wú)向邊連接上。3)實(shí)體聯(lián)系類型符號(hào)表示:實(shí)體型A實(shí)體型B圖3-6實(shí)體聯(lián)系的表示4)特點(diǎn):兩個(gè)實(shí)體型間允許多種聯(lián)系多個(gè)實(shí)體型間可以有一個(gè)聯(lián)系 一個(gè)實(shí)體型可以和自身聯(lián)系E-R圖與具體的DBM洸關(guān),是概念模型中最常用的一種5)舉例:用E-R圖表示某個(gè)工廠的物資管理的概念模型涉及的實(shí)體:倉(cāng)庫(kù):倉(cāng)庫(kù)號(hào),倉(cāng)庫(kù)面積,電話號(hào)碼零件:零件號(hào),名稱,規(guī)格,單價(jià),描述供應(yīng)商:供應(yīng)商號(hào),名稱,地址,電話

39、號(hào)碼,帳號(hào)項(xiàng)目:項(xiàng)目號(hào),預(yù)算,開(kāi)工日期職工:職工號(hào),姓名,年齡,職稱實(shí)體間的聯(lián)系:一個(gè)倉(cāng)庫(kù)可以存放多種零件,一種零件可以存放在多個(gè)倉(cāng)庫(kù)中一個(gè)倉(cāng)庫(kù)有多個(gè)職工當(dāng)倉(cāng)庫(kù)保管員,一個(gè)職工只能在 一個(gè)倉(cāng)庫(kù)工作 職工之間具有領(lǐng)導(dǎo)和被領(lǐng)導(dǎo)關(guān)系,即倉(cāng)庫(kù)主任領(lǐng)導(dǎo)若 干保管員E-R圖表示:圖3-7某工廠物資管理E-R圖§ 3.6 充實(shí)例一.庫(kù)存清單系統(tǒng):1 .系統(tǒng)說(shuō)明:某裝配廠有一座存放零件的倉(cāng)庫(kù),倉(cāng)庫(kù)中現(xiàn)有的各種零件的數(shù) 量以及每種零件的庫(kù)存量臨界值等記錄在庫(kù)存清單主文件中。當(dāng)倉(cāng) 庫(kù)中零件數(shù)量有變化時(shí),應(yīng)該及時(shí)修改庫(kù)存清單主文件,如果那種 零件的庫(kù)存量少于它的庫(kù)存量臨界值,則應(yīng)該報(bào)告給采購(gòu)部門(mén)以便 訂貨

40、,規(guī)定每天向采購(gòu)部門(mén)送一次訂貨報(bào)告。該裝配廠使用一臺(tái)小型計(jì)算機(jī)處理更新庫(kù)存清單主文件和產(chǎn)生 定貨報(bào)告的任務(wù)。零件庫(kù)存量的每一次變化稱為一個(gè)事務(wù),由放在 倉(cāng)庫(kù)中的CRT終端輸入到計(jì)算機(jī)中;系統(tǒng)中的庫(kù)存清單程序?qū)κ聞?wù) 進(jìn)行處理,更新存儲(chǔ)在磁盤(pán)上的庫(kù)存清單主文件,并且把必要的訂 貨信息寫(xiě)在磁帶上。最后,每天由報(bào)告生成程序讀一次磁帶,并且 打印出定貨報(bào)告。2 .數(shù)據(jù)流圖:1)頂層數(shù)據(jù)流圖頂層數(shù)據(jù)流圖-庫(kù)存清單系統(tǒng)采 購(gòu) 員倉(cāng)庫(kù)管理員2)第一層數(shù)據(jù)流圖倉(cāng)庫(kù)管理員第一層數(shù)據(jù)流圖-庫(kù)存清單系統(tǒng)子系統(tǒng)劃分3)第二層數(shù)據(jù)流圖第二層數(shù)據(jù)流圖-分解后的庫(kù)存清單系統(tǒng)采 購(gòu) 員倉(cāng)庫(kù)管理員二教材購(gòu)銷系統(tǒng):1 .系統(tǒng)說(shuō)明:

41、在教材的銷售過(guò)程中,首先學(xué)生拿著購(gòu)書(shū)申請(qǐng)到會(huì)計(jì)處審查并 開(kāi)具購(gòu)書(shū)發(fā)票,然后到出納處交款,并開(kāi)具領(lǐng)書(shū)單,學(xué)生拿著領(lǐng)書(shū) 單到書(shū)庫(kù)領(lǐng)書(shū);在開(kāi)具購(gòu)書(shū)發(fā)票的過(guò)程中,若教材存量不夠,則需 要進(jìn)行缺書(shū)統(tǒng)計(jì),然后書(shū)庫(kù)根據(jù)缺書(shū)情況去采購(gòu)缺書(shū),并通知學(xué)生 補(bǔ)購(gòu)教材。2 .數(shù)據(jù)流圖:1)頂層數(shù)據(jù)流圖:2)學(xué)生書(shū)庫(kù)管理員頂層數(shù)據(jù)流圖-教材購(gòu)銷系統(tǒng)第一層數(shù)據(jù)流圖:第一層數(shù)據(jù)流圖-教材購(gòu)銷系統(tǒng)子系統(tǒng)劃分書(shū) 庫(kù) 管 理 員3)第二層數(shù)據(jù)流圖:銷售子系統(tǒng)(1)F凄書(shū)登記表補(bǔ)售書(shū)單無(wú)效書(shū)單<購(gòu)書(shū)單F1教材存量表領(lǐng)書(shū)單F略班學(xué)生用書(shū)表F稽書(shū)登記表第二層數(shù)據(jù)流圖-銷售子系統(tǒng)米購(gòu)子系統(tǒng)(2)第二層數(shù)據(jù)流圖-采購(gòu)子系統(tǒng)第四章軟件

42、設(shè)計(jì)概述 4.1 軟件設(shè)計(jì)概述1 .軟件設(shè)計(jì)的任務(wù):把需求階段所產(chǎn)生的軟件需求說(shuō)明轉(zhuǎn)換為用適當(dāng)手段表示的軟 件設(shè)計(jì)文檔?!白鍪裁础币灰?> “怎么做”。2 .軟件設(shè)計(jì)劃分兩個(gè)階段:概要設(shè)計(jì):確定軟件的結(jié)構(gòu),即軟件組成,以及各組成成分(子 系統(tǒng)或模塊)之間的相互轉(zhuǎn)換。詳細(xì)設(shè)計(jì):確定模塊內(nèi)部算法和數(shù)據(jù)結(jié)構(gòu),產(chǎn)生描述各模塊程序 的詳細(xì)設(shè)計(jì)文檔。3 .軟件設(shè)計(jì)的方法:面向數(shù)據(jù)流,面向數(shù)據(jù)結(jié)構(gòu)。 4.2 4.2軟件設(shè)計(jì)的策略一.模塊化設(shè)計(jì):1 .模塊、模塊化:模塊:是數(shù)據(jù)說(shuō)明,可執(zhí)行語(yǔ)句等程序?qū)ο蟮募稀@哼^(guò)程, 函數(shù),子程序,宏等。模塊化:是把程序劃分成若干個(gè)模塊,每個(gè)模塊完成一個(gè)子功能, 把

43、這些模塊集中起來(lái)組成一個(gè)整體,可以完成指定的功能,滿足 問(wèn)題的要求。2 .分解:將一個(gè)復(fù)雜的問(wèn)題,劃分為幾個(gè)較小問(wèn)題。1) “將一個(gè)復(fù)雜的問(wèn)題分解為許多小問(wèn)題,可以減少解決問(wèn)題的工作量。使原來(lái)的問(wèn)題也就容易解決了。 ” -這是模塊化設(shè)計(jì)的依 據(jù)。論證:假設(shè)C(P)是度量對(duì)一個(gè)問(wèn)題 P理解復(fù)雜性的函數(shù)。Z(P) 是度量為解決問(wèn)題P所需工作量(用時(shí)間計(jì)算)的函數(shù),則給定 問(wèn)題 P1 , P2 ,如果 C(P1)>C(P2),那么有 Z(P1)>Z(P2),即一個(gè)問(wèn)題越復(fù)雜,解決它所需要的工作 量就越大,需要花費(fèi)更多的時(shí)間。根據(jù)人們解決一般問(wèn)題的實(shí)踐的經(jīng)驗(yàn),有下面一條客觀規(guī)律存在:C(P

44、1+P2)>C(P1) + C(P2)則可得到:Z(P1 + P2)>Z(P1) + Z(P2)2) “無(wú)限分解軟件,最后為了開(kāi)發(fā)軟件而需要的工作量小的可以忽 略”不成立。論證:隨著模塊數(shù)目增加,每個(gè)模塊的規(guī)模減少,成本降低。但 相應(yīng)的設(shè)計(jì)模塊間的接口成本將增加,使得軟件總成本呈拋物線形狀,存在最小成本區(qū)。(如圖所示)模塊數(shù)目模塊分解論證3.信息隱蔽:指每個(gè)模塊的實(shí)現(xiàn)細(xì)節(jié)對(duì)于其他模塊來(lái)說(shuō)是隱蔽的,即 模塊中所包含的信息(數(shù)據(jù)與過(guò)程)。應(yīng)不允許其他不需要這些信息 的模塊使用(即隱蔽起來(lái))。只有為了完成軟件的總體功能而必須在 模塊間交換的信息。才允許在模塊間進(jìn)行傳遞。目的:是軟件的修改

45、或錯(cuò)誤局限在一個(gè)或幾個(gè)模塊內(nèi)部,不會(huì)涉及 軟件其他部分。4.模塊獨(dú)立性:模塊具有獨(dú)立功能:H和其他模塊之間沒(méi)有過(guò)多的相塊之間的關(guān)系很簡(jiǎn)單。是軟件劃分模塊時(shí)要遵守的準(zhǔn)則,也是判斷 模塊構(gòu)造是否合理的標(biāo)準(zhǔn)。1)度量模塊獨(dú)立性的準(zhǔn)則:內(nèi)聚、耦合。內(nèi)聚:是模塊功能強(qiáng)度(即一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合 的緊密程度)的度量。模塊內(nèi)部各元素之間聯(lián)系越緊密,內(nèi) 聚性越強(qiáng)。耦合:是模塊之間相對(duì)獨(dú)立性(即互相連接的緊密程度)的 度量。模塊間連接越緊密,聯(lián)系越多,耦合性越強(qiáng)。模塊的獨(dú)立性越高,其塊內(nèi)聯(lián)系越緊密(內(nèi)聚性強(qiáng)),塊間聯(lián) 系越弱(耦合性越弱)2)內(nèi)聚:弱 強(qiáng)偶然內(nèi)聚邏輯內(nèi)聚時(shí)間內(nèi)聚過(guò)程內(nèi)聚通信內(nèi)聚順序內(nèi)聚功

46、能內(nèi)聚彳氐內(nèi)聚中內(nèi)聚高內(nèi)聚偶然內(nèi)聚:模塊內(nèi)部各組成成分在功能上是互不相關(guān)的例:幾個(gè)模塊都需要執(zhí)行“讀A”,“寫(xiě)B(tài)'等相同的一組操作, 為避免重復(fù)書(shū)寫(xiě),可把這些操作記成一個(gè)模塊,供有關(guān)模 塊調(diào)用。邏輯內(nèi)聚:通常由若干個(gè)邏輯功能相似的成分組成。例:一個(gè)用于計(jì)算機(jī)全班學(xué)生平均分和最高分的模塊,無(wú)論 計(jì)算那種分?jǐn)?shù),都要經(jīng)過(guò)讀入全班學(xué)生分?jǐn)?shù)。進(jìn)行計(jì)算、 輸出計(jì)算結(jié)果等步驟,除了中間計(jì)算外均相同。(兩種邏輯相似的功能放入同一模塊省去程序中的重復(fù)。但卻引入用作判斷的開(kāi)關(guān)量,增加了塊間耦合)。時(shí)間內(nèi)聚:模塊所包含的成分是由相同的執(zhí)行時(shí)間聯(lián)結(jié)在一 起的。例:初始化模塊中可能包含“為變量賦初值”,“打開(kāi)某

47、個(gè)文 件”等為正式處理做準(zhǔn)備的功能。過(guò)程內(nèi)聚:一個(gè)模塊內(nèi)部的處理是相關(guān)的,是必須按某一特 定次序執(zhí)行。例:打開(kāi)文件,讀寫(xiě)文件,關(guān)閉文件。通信內(nèi)聚:模塊內(nèi)部各個(gè)成分都使用同一個(gè)輸入數(shù)據(jù)?;蛘?產(chǎn)生同一個(gè)輸出數(shù)據(jù)。借共用數(shù)據(jù)聯(lián)系在一起。例:順序內(nèi)聚:模塊中各組成成分是順序執(zhí)行的,一個(gè)處理框的 輸出是下一處理框的輸入。例:讀入分?jǐn)?shù),計(jì)算平均分,輸出結(jié)果。功能內(nèi)聚:模塊中的所有成分結(jié)合在一起,用于完成一個(gè)單 一的功能。例:對(duì)一個(gè)數(shù)開(kāi)平方;求一組數(shù)的最大值;從鍵盤(pán)讀入一行 字符等。3)耦合:弱> 強(qiáng)非直接耦合數(shù)據(jù)耦合特征耦合控制耦合外部耦合公共耦合內(nèi)容耦合弱耦合中耦合較強(qiáng)耦合強(qiáng)耦合非直接耦合:模塊

48、之間沒(méi)有直接關(guān)系,它們之間的聯(lián)系完全是通過(guò)主模塊的調(diào)用和控制來(lái)實(shí)現(xiàn)的。數(shù)據(jù)耦合:模塊間通過(guò)簡(jiǎn)單變量所組成的參數(shù)表(不是控制參數(shù),數(shù)據(jù)結(jié)構(gòu)或外部變量)交換數(shù)據(jù)。特征耦合:模塊間通過(guò)數(shù)據(jù)結(jié)構(gòu)所組成的參數(shù)表交換數(shù)據(jù)。例:房租水電=房租+用水量+用電量(傳遞參數(shù))??刂岂詈希阂粋€(gè)模塊通過(guò)傳遞開(kāi)關(guān),標(biāo)志,名稱等控制信息,明顯地控制選擇另一個(gè)模塊功能。例:計(jì)算平均分,最高分。外部耦合:一組模塊都訪問(wèn)同一個(gè)全局簡(jiǎn)單變量。(不是數(shù)據(jù) 結(jié)構(gòu),而且不是通過(guò)參數(shù)表傳遞的該全局變量的信息)。公共耦合:一組模塊都訪問(wèn)同一個(gè)公共數(shù)據(jù)環(huán)境(全局?jǐn)?shù)據(jù) 結(jié)構(gòu)、共享的通信區(qū)內(nèi)存的公共覆蓋區(qū)等)。內(nèi)容耦合:兩個(gè)模塊之間發(fā)生以下情形

49、。(匯編語(yǔ)言中較多, 高級(jí)語(yǔ)言中已基本度絕)。一個(gè)模塊直接訪問(wèn)另一個(gè)模塊的內(nèi)部數(shù)據(jù)。一個(gè)模塊不通過(guò)正常入口轉(zhuǎn)到另一模塊內(nèi)部。兩個(gè)模塊有一部分代碼重疊。一個(gè)模塊有多個(gè)入口。4)為什么說(shuō)“模塊獨(dú)立性是模塊劃分時(shí)要遵守的準(zhǔn)則”,即在模塊 劃分時(shí),為什么要強(qiáng)調(diào)模塊獨(dú)立性。論證:假設(shè)把一個(gè)問(wèn)題P分解為兩個(gè)部分P1和P2,如果這兩部 分不互相獨(dú)立,用I1表示P1對(duì)P2的相互作用因子,I2 表示P2對(duì)P1的相互作用因子,則解決整個(gè)問(wèn)題的實(shí)際工 作量為:Z(P1 + I1 X P1) + Z(P2+ I2 XP2)0當(dāng)系統(tǒng)的兩部分之間聯(lián)系很松散,即模塊獨(dú)立性很強(qiáng)時(shí),I1 , I2都非常小(一0 ), 則有:Z

50、(P1 + I1 XP1) + Z(P2+I2 XP2) = Z(P1)+Z(P2) 根據(jù)模塊分解的論證,有:Z(P)>Z(P1) +Z(P2)則,可得到:Z(P)> Z(P1 +I1 XP1) + Z(P2+I2 XP2)否則,如果系統(tǒng)的兩部分之間聯(lián)系緊密,即模塊獨(dú)立性很 弱時(shí),I1 , I2都很大,則:Z(P)> Z(P1 +I1 XP1) + Z(P2+I2 XP2)未必成立。二.自頂向下、逐步細(xì)化:1 .自定向下設(shè)計(jì):首先要對(duì)所設(shè)計(jì)的系統(tǒng)有一個(gè)全面的理解,然后從 頂層開(kāi)始連續(xù)地逐層向下分解,直到系統(tǒng)的所有模塊都小到便于掌 握為止。2 .逐步細(xì)化設(shè)計(jì):“細(xì)化”的實(shí)質(zhì),就

51、是分解;而“逐步”則強(qiáng)調(diào)每一 步分解較其前一步增加“少量”的細(xì)節(jié),使得相鄰兩步之間只有微 小的變化,從而容易理解和驗(yàn)證有效性。§ 4.3 要設(shè)計(jì)一.概要設(shè)計(jì)階段需要完成的工作:1 .制定規(guī)范:軟件開(kāi)發(fā)組在設(shè)計(jì)時(shí)應(yīng)共同遵守的標(biāo)準(zhǔn)。1)規(guī)定設(shè)計(jì)文檔的編制標(biāo)準(zhǔn)(文檔體系、用紙、樣式、記述詳細(xì)程 序、圖形畫(huà)法等)。2)規(guī)定編碼的信息形式(代碼體系),與硬件、操作系統(tǒng)的接口規(guī) 約,命名規(guī)則等。2 .軟件結(jié)構(gòu)的總體設(shè)計(jì):決定軟件的總體結(jié)構(gòu)。1)采用某種設(shè)計(jì)方法,將一個(gè)復(fù)雜的系統(tǒng)按功能劃分成模塊的層次 結(jié)構(gòu)。2)確定每一個(gè)模塊的功能,建立與已確定的軟件需求的對(duì)應(yīng)關(guān)系。3)確定模塊間的調(diào)用關(guān)系。4)

52、確定模塊間的接口,即模塊間傳遞的信息,設(shè)計(jì)接口的信息結(jié)構(gòu)5)評(píng)估模塊劃分的質(zhì)量及導(dǎo)出模塊結(jié)構(gòu)的規(guī)則。3 .數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì):決定文件系統(tǒng)的結(jié)構(gòu)或數(shù)據(jù)庫(kù)的模式,子模式以及數(shù)據(jù)完整性,安全性設(shè)計(jì)。1)確定輸入、輸出文件的詳細(xì)的數(shù)據(jù)結(jié)構(gòu)。2)模式設(shè)計(jì):確定物理數(shù)據(jù)庫(kù)結(jié)構(gòu)。3)子模式設(shè)計(jì):確定用戶使用的數(shù)據(jù)視圖。4)數(shù)據(jù)的完整性,安全性設(shè)計(jì)。5)數(shù)據(jù)優(yōu)化:改進(jìn)模式與子模式,以優(yōu)化數(shù)據(jù)的存取。4 .編寫(xiě)文檔:概要設(shè)計(jì)說(shuō)明書(shū)1)引言:編寫(xiě)目的,背景,參數(shù)資料等。2)系統(tǒng)概述:目標(biāo),運(yùn)行環(huán)境,需求概述。3)結(jié)構(gòu)設(shè)計(jì):軟件的總體結(jié)構(gòu)。模塊的外部設(shè)計(jì):(包括關(guān)于各模塊功能,性能及接口的簡(jiǎn)要 描述)。4)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì):文件系統(tǒng)結(jié)構(gòu),數(shù)據(jù)庫(kù)模式,子模式,完整性,安全性,訪問(wèn)方法,存儲(chǔ)要求等。5)初步測(cè)試計(jì)劃:對(duì)測(cè)試的策略,方法和步驟提出要求。5 .技術(shù)審查和管理復(fù)審。系統(tǒng)結(jié)構(gòu)描述:(HIPO圖)1. HIPO圖:即H+ IPO。由一張HC圖加一組IPO圖組成。2. HC圖:(層次圖)。用于表示軟件的層次結(jié)構(gòu)。3. IPO圖:用來(lái)描述HC圖中的每一個(gè)模塊,由輸入、處理和輸出三個(gè) 框組成。需要時(shí)可增加一個(gè)數(shù)據(jù)文件(庫(kù))框。圖形表示:系統(tǒng)的IPO圖,改進(jìn)的IPO圖(如圖所示)。輸入處理輸出HIPCS (典型)作者:日期:系統(tǒng):模塊:編號(hào):HIPC® (改進(jìn))概述區(qū)分輸入和. 驗(yàn)出分支

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論