版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第2章
軟件問題定義及可行性分析XX大學(xué)XX系XXX軟件工程教程電子科技大學(xué)出版社學(xué)習(xí)目標(biāo)l
理解軟件的生存周期的劃分;l
理解如何進(jìn)行可行性研究;l
理解可行性研究報(bào)告的描述;l
掌握可行性研究的要素;l
掌握可行性研究的含義和任務(wù);l
掌握成本估計(jì)和效益度量的方法;l
掌握怎樣選擇好的方案以及如何決策;l
掌握用來描述系統(tǒng)物理模型的系統(tǒng)流程圖;l
掌握圖形化建模工具--數(shù)據(jù)流圖;l
了解軟件計(jì)劃是軟件開發(fā)前期的一個重要階段(可分為問題定義、可行性研究和需求分析);l
了解新系統(tǒng)的開發(fā)目標(biāo)。010203軟件問題定義目錄可行性研究的任務(wù)可行性研究的步驟系統(tǒng)流程圖040506數(shù)據(jù)流圖數(shù)據(jù)字典成本-效益分析0708本章小結(jié)軟件問題定義01軟件問題定義在軟件工程項(xiàng)目開始時,先進(jìn)行系統(tǒng)定義,它是整個工程的基礎(chǔ)。系統(tǒng)定義所涉及的問題不完全屬于軟件工程的范疇,它為系統(tǒng)提供總體概貌,確定系統(tǒng)硬件、軟件的功能和接口,它的主要任務(wù)具體表現(xiàn)為如下三個方面。(1)充分理解所涉及的問題,對問題的解決辦法進(jìn)行論證;(2)評價解決辦法的不同實(shí)現(xiàn)方案;(3)表達(dá)解決方案,以便進(jìn)行復(fù)審。軟件問題定義系統(tǒng)定義后,軟件的功能初步確定,接下來要進(jìn)行軟件問題定義、可行性研究、制定軟件開發(fā)計(jì)劃和復(fù)審。軟件定義時期是生存周期的第一個時期,也是軟件開發(fā)的基礎(chǔ)。問題定義和可行性研究這兩個階段的主要任務(wù)就是分析用戶要求,在對用戶要求充分了解的前提下,分析新系統(tǒng)(即目標(biāo)系統(tǒng))的主要目標(biāo),分析開發(fā)系統(tǒng)的可行性。參加這個時期工作的人員有用戶和系統(tǒng)分析員。軟件問題定義通過對用戶進(jìn)行詳細(xì)的調(diào)查研究,仔細(xì)閱讀和分析有關(guān)資料,明確所開發(fā)的軟件系統(tǒng)的名稱,該軟件系統(tǒng)同其他系統(tǒng)或其他軟件之間的相互關(guān)系,明確系統(tǒng)的目標(biāo)、規(guī)模和基本要求,并對現(xiàn)有系統(tǒng)進(jìn)行分析,明確開發(fā)新系統(tǒng)的必要性。覆蓋測試明確系統(tǒng)的目標(biāo)、規(guī)模和基本要求在調(diào)查研究的基礎(chǔ)上,弄清擬開發(fā)軟件的基本要求、目標(biāo)、假定、限制、可行性研究的方法、評價尺度等。(1)基本要求。包括軟件的功能、性能、輸入(數(shù)據(jù)的來源、類型、數(shù)量,數(shù)據(jù)的組織以及提供的頻度)、輸出(如報(bào)告、文件或數(shù)據(jù),說明其用途、產(chǎn)生頻度、接口及分發(fā)對象)、處理流程和數(shù)據(jù)流程、安全和保密方面的要求、同本系統(tǒng)相連接的其他系統(tǒng)等。(2)系統(tǒng)目標(biāo)。例如,人力與設(shè)備費(fèi)用的減少;處理速度的提高;控制精度或生產(chǎn)能力的提高;管理信息服務(wù)的改進(jìn);人員利用率的改進(jìn)等。覆蓋測試明確系統(tǒng)的目標(biāo)、規(guī)模和基本要求(3)系統(tǒng)開發(fā)的條件、假定和限制。例如,系統(tǒng)運(yùn)行壽命的最小值;經(jīng)費(fèi)、投資的來源和限制,法律和政策的限制;硬件、軟件、運(yùn)行環(huán)境和開發(fā)環(huán)境的條件及限制;可利用的信息和資源;完成期限等。(4)可行性研究的方法??刹捎谜{(diào)查、加權(quán)、確定模型、建立基準(zhǔn)點(diǎn)或仿真等方法進(jìn)行可行性研究。(5)評價尺度。例如,經(jīng)費(fèi)的多少,各項(xiàng)功能的優(yōu)先次序,開發(fā)時間的長短及使用的難易程度等。問題定義的方法在問題定義階段,需要用戶和系統(tǒng)分析員共同協(xié)作、緊密配合,方能圓滿地完成問題定義報(bào)告。具體步驟如下。(1)系統(tǒng)分析員要針對用戶的要求做詳細(xì)的調(diào)查研究,認(rèn)真聽取用戶對問題的介紹,閱讀與問題有關(guān)的資料,必要時還要深入現(xiàn)場,親自操作;調(diào)查開發(fā)系統(tǒng)的背景;了解用戶對開發(fā)的要求。(2)與用戶反復(fù)討論,以使問題進(jìn)一步確定化。經(jīng)過用戶和系統(tǒng)分析員充分協(xié)商,確定問題定義的內(nèi)容。設(shè)計(jì)新系統(tǒng)可能的解決方案系統(tǒng)分析員在分析現(xiàn)有系統(tǒng)的基礎(chǔ)上,針對新系統(tǒng)的開發(fā)目標(biāo),設(shè)計(jì)出新系統(tǒng)的若干種高層次的可能解法??梢杂酶邔訑?shù)據(jù)流圖和數(shù)據(jù)字典來描述系統(tǒng)的基本功能和處理流程。先從技術(shù)的角度出發(fā)提出不同的解決方案,再從經(jīng)濟(jì)可行性和操作可行性進(jìn)行考慮,優(yōu)化和推薦方案,最后要將上述分析設(shè)計(jì)結(jié)果整理成文檔,供用戶方的決策者選擇?,F(xiàn)在尚未進(jìn)入需求分析階段,對系統(tǒng)的描述不是完整的、詳細(xì)的,只是概括的、高層的。最后寫出雙方均認(rèn)可的問題定義報(bào)告,如例2.1所示。設(shè)計(jì)新系統(tǒng)可能的解決方案例2.1:
某高校教務(wù)處提出用微機(jī)管理教務(wù)工作的要求,經(jīng)過系統(tǒng)分析員的調(diào)查研究并與用戶協(xié)商,寫出了如下問題定義報(bào)告。解:某高校教務(wù)管理系統(tǒng)問題定義報(bào)告如下:設(shè)計(jì)新系統(tǒng)可能的解決方案系統(tǒng)目標(biāo)和范圍說明書1、項(xiàng)目名稱:XX學(xué)院教務(wù)管理系統(tǒng)。2、背景:目前教務(wù)人工管理,效率低,易出錯。3、項(xiàng)目目標(biāo):在網(wǎng)絡(luò)上建立一個高性能的、無差錯的教務(wù)管理系統(tǒng)。4、項(xiàng)目范圍:利用現(xiàn)有的校園網(wǎng),教務(wù)處及各系均配備一臺專用微機(jī),軟件開發(fā)費(fèi)用不超過1萬元。5、初步設(shè)想:在網(wǎng)上實(shí)現(xiàn)上報(bào)各種信息(學(xué)生成績、教師課時費(fèi)等)、排課、下通知等功能??尚行匝芯康娜蝿?wù)02技術(shù)可行性技術(shù)可行性是指對設(shè)備條件、技術(shù)解決方案的實(shí)用性和技術(shù)資源的可用性的度量。在決定采用何種開發(fā)方法和工具時,必須考慮設(shè)備條件,通常選擇實(shí)用的、開發(fā)人員掌握較好的一類;還要考慮用”戶使用可行性和操作可行性。其中,用戶使用可行性是指使用軟件對用戶內(nèi)部組織管理制度的影響程度;用戶操作可行性是指軟件系統(tǒng)所采用的操作方式對用戶來說是否可行。經(jīng)濟(jì)可行性經(jīng)濟(jì)可行性是指以最小的成本開發(fā)出具有最佳經(jīng)濟(jì)效益的軟件產(chǎn)品。它主要進(jìn)行投資及效益分析,內(nèi)容如下。(1)支出。說明所需的費(fèi)用,包括基本建設(shè)投資,移動設(shè)備和固定設(shè)備購置費(fèi)用,操作系統(tǒng)、應(yīng)用軟件、網(wǎng)絡(luò)軟件和數(shù)據(jù)庫管理軟件費(fèi)用,其他一次性支出及非一次性支出費(fèi)用?!保?)收益。包括開支的減少,速度的提高和管理方面的改進(jìn),一次性收益、價值的增加、非一次性收益、不可定量的收益等。(3)收益/投資比。(4)投資回收周期(一般假定為5年)。(5)敏感度分析。社會因素方面的可行性社會因素方面的可行性主要從法律、用戶等方面分析可行性,其中,法律方面的可行性是指要開發(fā)的”項(xiàng)目是否存在任何侵權(quán),妨礙等責(zé)任問題;用戶方面的可行性是指對用戶內(nèi)部組織管理制度的影響程度,用戶操作方式是否可行等。操作可行性要考慮開發(fā)項(xiàng)目的運(yùn)行方式在用戶組織內(nèi)是否行得通,現(xiàn)有管理制度、人員素質(zhì)和操作方式是否可行??尚行匝芯恳诜治龅幕A(chǔ)寫出書面報(bào)告《可行性論證報(bào)告》??尚行苑治霰仨氂幸粋€明確的結(jié)論??尚行匝芯拷Y(jié)”論可能會是下列情形之一。(1)可以進(jìn)行開發(fā);(2)需要等待某些條件(例如資金、人力、設(shè)備等)落實(shí)之后才能開發(fā);或需要對開發(fā)目標(biāo)進(jìn)行某些修改之后才能開發(fā);操作可行性(3)不能進(jìn)行或不必進(jìn)行開發(fā)(例如所需技術(shù)不成熟、經(jīng)濟(jì)上不劃算等)??尚行匝芯侩A段不要急于著手解決問題,其主要目的是得到系統(tǒng)確實(shí)可行的結(jié)論,或及時中止不可行的項(xiàng)目?!笨尚行詧?bào)告要得到用戶單位決策者的認(rèn)可,所提出的結(jié)論要有具體、充分的理由。由用戶單位的決策者根據(jù)可行性報(bào)告,從分析員推薦解決方案中選擇決定所采用的具體解決方案;如果問題沒有可行的解,及時中止不值得投資的工程項(xiàng)目,避免時間、資源、人力和金錢上更大的浪費(fèi)。可行性研究的步驟03可行性研究的步驟在可行性研究時,根據(jù)項(xiàng)目的性質(zhì)、特點(diǎn)及開發(fā)團(tuán)隊(duì)的能力進(jìn)行開發(fā),可行性研究的步驟不是固化的,一般可歸結(jié)為以下八個步驟。系統(tǒng)定義系統(tǒng)定義是一個系統(tǒng)的關(guān)鍵,如果系統(tǒng)沒有定義好,也就是沒有確定系統(tǒng)的邊界,就談不上確定規(guī)模和目標(biāo)??尚行苑治鋈藛T要訪問相關(guān)人員,閱讀分析可以掌握的材料,確認(rèn)用戶需要解決的問題實(shí)質(zhì),對項(xiàng)目的規(guī)模和目標(biāo)進(jìn)行定義和確認(rèn),描述項(xiàng)目的一切限制和約束,進(jìn)而明確系統(tǒng)的目標(biāo)及為了達(dá)到這些目標(biāo)系統(tǒng)所需的各種資源。對現(xiàn)行系統(tǒng)進(jìn)行分析研究現(xiàn)行系統(tǒng)是信息的重要來源,需要研究它的基本功能、性能、環(huán)境、存在的問題,以及運(yùn)行現(xiàn)行系統(tǒng)需要多少費(fèi)用,對新系統(tǒng)有什么新的功能要求,新系統(tǒng)運(yùn)行時能否減少使用費(fèi)用等。具體方法可以實(shí)地考察現(xiàn)行系統(tǒng),收集、研究和分析現(xiàn)行系統(tǒng)的文檔資料,分析員應(yīng)該畫出描繪現(xiàn)有系統(tǒng)的高層系統(tǒng)流程圖,系統(tǒng)數(shù)據(jù)流分析和業(yè)務(wù)流程緊密相連,可以用數(shù)據(jù)流圖和數(shù)據(jù)字典來表示,并請有關(guān)人員檢驗(yàn)他對現(xiàn)有系統(tǒng)的認(rèn)識是否正確。導(dǎo)出新系統(tǒng)的邏輯摸型根據(jù)對現(xiàn)行系統(tǒng)的分析研究,導(dǎo)出現(xiàn)有系統(tǒng)的邏輯模型,設(shè)想目標(biāo)系統(tǒng)的邏輯模型,最后根據(jù)目標(biāo)系統(tǒng)的邏輯模型建造新的物理模型。用建立邏輯模型的工具數(shù)據(jù)流圖和數(shù)據(jù)字典描繪數(shù)據(jù)在系統(tǒng)中流動和處理的情況,從而概括地表達(dá)出對新系統(tǒng)的設(shè)想。設(shè)計(jì)方案新系統(tǒng)的邏輯模型實(shí)質(zhì)上表達(dá)了分析員對新系統(tǒng)必須做什么的看法。用戶是否也有同樣的看法呢?分析員應(yīng)該和用戶一起再次復(fù)查問題定義、工程規(guī)模和目標(biāo),這次復(fù)查應(yīng)該把數(shù)據(jù)流圖和數(shù)據(jù)字典作為討論的基礎(chǔ)。如果分析員對問題有誤解或者用戶曾經(jīng)遺漏了某些要求,那么現(xiàn)在是發(fā)現(xiàn)和改正這些錯誤的時候了。分析員定義問題,分析這個問題,導(dǎo)出一個試探性的解;在此基礎(chǔ)上再次定義問題,再一次分析這個問題,修改這個解;繼續(xù)這個循環(huán)過程,直到提出的邏輯模型完全符合系統(tǒng)目標(biāo)。推薦可行的方案分析員應(yīng)該從他建議的系統(tǒng)邏輯模型出發(fā),導(dǎo)出若干個較高層次的(較抽象的)物理解法供比較和選擇。導(dǎo)出供選擇的解法的最簡單的途徑,是從技術(shù)角度出發(fā)考慮解決問題的不同方案。當(dāng)從技術(shù)角度提出一些可能的物理系統(tǒng)之后,應(yīng)該根據(jù)技術(shù)可行性的考慮初步排除一些不現(xiàn)實(shí)的系統(tǒng)。推薦可行的方案操作可行性方面,分析員應(yīng)該根據(jù)使用部門處理事務(wù)的原則和習(xí)慣檢查技術(shù)上可行的那些方案,去掉其中從操作方式或操作過程的角度看用戶不能接受的方案。經(jīng)濟(jì)可行性方面,分析員應(yīng)該估計(jì)余下的每個可能的系統(tǒng)的開發(fā)成本和運(yùn)行費(fèi)用,并且估計(jì)相對于現(xiàn)有的系統(tǒng)而言這個系統(tǒng)可以節(jié)省的開支或可以增加的收入。在這些估計(jì)數(shù)字的基礎(chǔ)上,對每個可能的系統(tǒng)進(jìn)行成本/效益分析,只有投資預(yù)計(jì)能帶來利潤的系統(tǒng)才值得進(jìn)步考慮。推薦可行的方案根據(jù)技術(shù)可行性、經(jīng)濟(jì)可行性、社會可行性和操作可行性等方面對各種方案進(jìn)行評估,去掉行不通的解法,得到可行的解法。推薦行動方針在對上一步提出的各種方案分析比較的基礎(chǔ)上,分析員向用戶推薦一種最好的方案,并且說明選擇此解決方案的理由,在推薦方案中應(yīng)清楚地表明。(1)本項(xiàng)目的開發(fā)價值;(2)推薦這個方案的理由;(3)制定實(shí)現(xiàn)進(jìn)度表,這個進(jìn)度表不需要也不可能很詳細(xì),通常只需要估計(jì)生存周期每個階段的工作量。草擬開發(fā)計(jì)劃分析員應(yīng)該為所推薦的方案草擬一份開發(fā)計(jì)劃,除了制定工程進(jìn)度表之外還應(yīng)該估計(jì)對各類開發(fā)人員(例如:系統(tǒng)分析員、程序員)
和各種資源(計(jì)算機(jī)硬件、軟件工具等)的需要情況,應(yīng)該指明什么時候使用以及使用多長時間。此外還應(yīng)該估計(jì)系統(tǒng)生存周期每個階段的成本草擬開發(fā)計(jì)劃分析員應(yīng)該為所推薦的方案草擬一份開發(fā)計(jì)劃,除了制定工程進(jìn)度表之外還應(yīng)該估計(jì)對各類開發(fā)人員(例如:系統(tǒng)分析員、程序員)和各種資源(計(jì)算機(jī)硬件、軟件工具等)的需要情況,應(yīng)該指明什么時候使用以及使用多長時間。此外還應(yīng)該估計(jì)系統(tǒng)生存周期每個階段的成本。編寫可行性研究報(bào)告可行性研究的最后一步就是撰寫可行性研究報(bào)告。此報(bào)告包括項(xiàng)目簡介、可行性分析過程和結(jié)論等內(nèi)容,如圖2.1所示:(1)要求、目的、條件與限制、可行性研究方法及評價尺度;(2)處理流程、工作負(fù)荷、費(fèi)用開銷和局限性;(3)處理流程、運(yùn)行環(huán)境和局限性;(4)技術(shù)條件的可行性;(5)經(jīng)濟(jì)方面的可行性;(6)社會條件的可行性;(7)其他可供選擇的系統(tǒng);(8)結(jié)論的順序?qū)懗煽尚行匝芯繄?bào)告??尚行匝芯繄?bào)告1.項(xiàng)目背景編寫可行性研究報(bào)告2.客戶需求3.商務(wù)前景如圖2.1所示,提請用戶和使用部門仔細(xì)審查,從而決定該項(xiàng)目是否進(jìn)行開發(fā),是否接受可行的實(shí)現(xiàn)方案。4.戰(zhàn)略可行性5.操作可行性6.計(jì)劃可行性7.技術(shù)可行性8.社會可行性9.市場可行性10.經(jīng)濟(jì)可行性11.風(fēng)險可行性12.結(jié)論圖2.1可行性研究報(bào)告系統(tǒng)流程圖04系統(tǒng)流程圖在進(jìn)行可行性研究的過程中,需要了解和分析現(xiàn)行系統(tǒng),把新系統(tǒng)的邏輯模型轉(zhuǎn)變成為物理模型,用物理模型對當(dāng)前物理系統(tǒng)和新物理系統(tǒng)進(jìn)行描述,需要描述未來新系統(tǒng)的概貌。那么如何描述系統(tǒng)的概貌?系統(tǒng)流程圖是用來描述系統(tǒng)物理模型的一種傳統(tǒng)工具。系統(tǒng)流程圖的作用用系統(tǒng)流程圖來描述物理系統(tǒng),也就是一個單位、組織的信息處理的具體實(shí)現(xiàn)的系統(tǒng)。在可行性研究中,對于舊系統(tǒng)的理解和新系統(tǒng)的構(gòu)想,可以通過畫出系統(tǒng)流程圖來表示要開發(fā)項(xiàng)目的大概處理流程、范圍和功能等,系統(tǒng)流程圖不僅能用于可行性研究,還能用于需求分析階段。系統(tǒng)流程圖的作用系統(tǒng)流程圖是由一系列圖形符號組成。系統(tǒng)研究初期,項(xiàng)目負(fù)責(zé)人要制定一個系統(tǒng)標(biāo)準(zhǔn)。標(biāo)準(zhǔn)中規(guī)定了各種符號所代表的含義。在畫系統(tǒng)流程圖時,首先要搞清業(yè)務(wù)處理過程以及處理中的各個元素,同時要理解系統(tǒng)流程圖的各個符號的含義,選擇相應(yīng)的符號來代表系統(tǒng)中的各個元素。所畫的系統(tǒng)流程要反映出系統(tǒng)的處理流程。系統(tǒng)流程圖的作用在可行性研究過程中,現(xiàn)行系統(tǒng)的高層邏輯模型一般是用概括的形式描述,并通過概要設(shè)計(jì)變成所建議系統(tǒng)的物理模型。概要設(shè)計(jì)和建議系統(tǒng)的物理模型都可以用系統(tǒng)流程圖來描述。系統(tǒng)流程圖的基本內(nèi)容系統(tǒng)流程圖的基本內(nèi)容如下。(1)用圖形符號以黑盒子形式描述系統(tǒng)內(nèi)的每一個成分(例如:程序、文件、數(shù)據(jù)庫、硬件設(shè)備、人工過程等)。(2)用“→”表示信息在系統(tǒng)各個成分之間的流動情況(不要誤認(rèn)為“→”表示信息的加工和控制過程)。系統(tǒng)流程圖的符號系統(tǒng)流程圖用圖形符號來表示系統(tǒng)中的各個元素。這些符號在不同的文獻(xiàn)中引用也不一樣。但都是用圖形符號表示系統(tǒng)中的各個元素。例如,輸入和輸出、人工處理、數(shù)據(jù)處理、數(shù)據(jù)庫、文件和設(shè)備等,它表達(dá)了系統(tǒng)中各個元素之間的信息流動的情況。系統(tǒng)流程圖的符號一般使用如表2.1所示的內(nèi)容。系統(tǒng)流程圖的符號表2.1系統(tǒng)流程圖符號符
號
名
稱處理說
明能改變數(shù)據(jù)值或位置的加工,例如,程序模塊、處理機(jī)等都是處理表示輸入或輸出,是一個廣義的不指明具體設(shè)備的符號指出轉(zhuǎn)到圖的另一部分或從圖的另一部分轉(zhuǎn)過來,通常在同一頁輸入/輸出連接系統(tǒng)流程圖的符號指出轉(zhuǎn)到另一頁圖上或由另一頁圖轉(zhuǎn)換頁連接數(shù)據(jù)流文檔來用來連接其他符號,指明數(shù)據(jù)流動方向通常表示打印輸出,也可表示用打印終端輸入數(shù)據(jù)表示任何種類的聯(lián)機(jī)存儲,包括磁盤,軟盤和海量存儲器件等聯(lián)機(jī)存儲系統(tǒng)流程圖的符號CRT終端或類似的顯示部件,可用于輸入或輸出,也可既輸入又輸出人工輸入數(shù)據(jù)的脫機(jī)處理,例如填寫表格顯示人工輸入人工完成的處理,例如,會計(jì)在工資支票上簽名人工操作輔助操作使用設(shè)備進(jìn)行的脫機(jī)操作通信鏈接
通過遠(yuǎn)程通信線路或鏈路傳送數(shù)據(jù)系統(tǒng)流程圖的示例例2.2:某圖書館借書流程如圖2.2所示,讀者須先被驗(yàn)明證件后才能進(jìn)入查詢室。讀者在查詢室內(nèi)通過檢書卡或利用終端檢索圖書數(shù)據(jù)庫來查找自己所需的圖書。找到所需圖書并填好索書單后到服務(wù)臺借書。如果所借圖書還有剩余,管理員將填好借書單,從庫房中取出圖書交給讀者。如圖2.2所示的系統(tǒng)流程圖描述了上述系統(tǒng)的概貌。圖中的每個符號定義了組成系統(tǒng)的一個部件,而并沒有指明每個部件的具體工作過程。圖中的箭頭指定了系統(tǒng)中信息的流動路徑。系統(tǒng)流程圖的示例讀者驗(yàn)證取書圖書查詢檢書卡借書圖書數(shù)據(jù)庫借書單索書單圖2.2圖書館借書系統(tǒng)流程圖系統(tǒng)流程圖的示例對于復(fù)雜的系統(tǒng),一個比較好的方法是分層次地描繪這個系統(tǒng)。首先用一張高層次的系統(tǒng)流程圖描繪系統(tǒng)總體概貌,表明系統(tǒng)的關(guān)鍵功能。然后分別把每個關(guān)鍵功能擴(kuò)展到適當(dāng)?shù)脑敿?xì)程度,畫在單獨(dú)的一頁紙上。這種分層次的描繪方法便于閱讀者按從抽象到具體的過程逐步深入地了解一個復(fù)雜的系統(tǒng)。數(shù)據(jù)流圖05數(shù)據(jù)流圖當(dāng)數(shù)據(jù)在軟件系統(tǒng)中移動時,它將被一系列“變換”修改。數(shù)據(jù)流圖(Data
Flow
Diagram,DFD)是一種圖形化建模工具,也是結(jié)構(gòu)化分析的最基本的工具。它描述系統(tǒng)由哪幾部分組成,各部分之間有什么聯(lián)系以及描繪信息流和數(shù)據(jù)從輸入移動到輸出的過程中所經(jīng)歷的變換。在數(shù)據(jù)流圖中沒有任何具體的物理部件,它只是描繪數(shù)據(jù)在軟件中流動和被處理的邏輯過程,是軟件系統(tǒng)邏輯功能的圖形表示。在設(shè)計(jì)數(shù)據(jù)流圖時只需要考慮系統(tǒng)必須完成的基本邏輯功能,完全不需要考慮怎樣具體地實(shí)現(xiàn)這些功能,所以數(shù)據(jù)流圖也是今后進(jìn)行軟件設(shè)計(jì)的很好的出發(fā)點(diǎn)。數(shù)據(jù)流圖的表示符號(1)數(shù)據(jù)流圖的4種基本符號數(shù)據(jù)流圖的基本符號如圖2.3所示有三種不同的表示方法,歸納起來數(shù)據(jù)流圖只有4種基本符號元素,數(shù)據(jù)流(Data
Flow)?數(shù)據(jù)處理(Process)?數(shù)據(jù)存儲(DataStore)和外部實(shí)體(External
Entity)?數(shù)據(jù)流圖的表示符號外部實(shí)體數(shù)據(jù)處理數(shù)據(jù)流數(shù)據(jù)存儲圖2.3數(shù)據(jù)流圖的基本符號數(shù)據(jù)流圖的表示符號1)
數(shù)據(jù)流用箭頭表示數(shù)據(jù)流,箭頭方向表示數(shù)據(jù)流向,數(shù)據(jù)流名標(biāo)在數(shù)據(jù)流線上。數(shù)據(jù)流由一組數(shù)據(jù)項(xiàng)組成,但在數(shù)據(jù)流圖中只有其名稱。所以,應(yīng)盡量準(zhǔn)確地給數(shù)據(jù)流命名。數(shù)據(jù)流是沿箭頭傳送數(shù)據(jù)的通道,是描繪數(shù)據(jù)流圖中各種成分的接口。數(shù)據(jù)流的方向從加工流向加工,從加工流向數(shù)據(jù)存儲,從數(shù)據(jù)存儲流向加工、從源點(diǎn)流向加工或從加工流向終點(diǎn)。數(shù)據(jù)流的含義如下。數(shù)據(jù)流圖的表示符號①數(shù)據(jù)流是一組成分已知的信息包,信息包中可以有一個或多個已知信息;②兩個加工間可以有多個數(shù)據(jù)流;③數(shù)據(jù)流應(yīng)有良好的名字,便于進(jìn)一步地了解系統(tǒng);④同一數(shù)據(jù)流可以流向不同的加工,不同加工可以流出相同的流(合并與分解);數(shù)據(jù)流圖的表示符號⑤
流入或流出到存儲的數(shù)據(jù)流不需要命名,因?yàn)閿?shù)據(jù)存儲的名字已經(jīng)有足夠的信息來表達(dá)數(shù)據(jù)的意義;⑥
數(shù)據(jù)流不代表控制流。數(shù)據(jù)流反映了處理的對象,控制流是一種選擇或用來影響加工的性質(zhì),而不是對它進(jìn)行加工的對象。數(shù)據(jù)流圖的表示符號2)加工加工也稱為數(shù)據(jù)處理,或稱為變換,是對數(shù)據(jù)進(jìn)行處理的單元。數(shù)據(jù)處理名稱寫在方框內(nèi)。它對數(shù)據(jù)流進(jìn)行某些操作或變換,每個加工也要有名字,通常是動詞短語,簡明地描述完成什么加工。在分層的數(shù)據(jù)流圖中,加工還應(yīng)編號。數(shù)據(jù)流圖的表示符號3)數(shù)據(jù)存儲數(shù)據(jù)存儲是由若干數(shù)據(jù)元素組成的,它為數(shù)據(jù)處理提供數(shù)據(jù)處理所需要的輸入流或?yàn)閿?shù)據(jù)處理的輸出數(shù)據(jù)流提供儲存“倉庫”。數(shù)據(jù)流圖的表示符號數(shù)據(jù)存儲在數(shù)據(jù)流中起保存數(shù)據(jù)的作用,可以是數(shù)據(jù)庫文件或任何形式的數(shù)據(jù)組織、可以表示文件、文件的一部分、數(shù)據(jù)庫的元素或記錄的一部分等。在數(shù)據(jù)流圖中要注意指向數(shù)據(jù)文件的箭頭的方向,讀數(shù)據(jù)的箭頭是指向加工處理的,寫數(shù)據(jù)的箭頭是指向數(shù)據(jù)存儲的,如果既有讀又有寫,則是雙向箭頭。數(shù)據(jù)流圖的表示符號4)數(shù)據(jù)源點(diǎn)和終點(diǎn)數(shù)據(jù)源點(diǎn)和終點(diǎn)是數(shù)據(jù)的始發(fā)點(diǎn)和終止點(diǎn),表示系統(tǒng)和環(huán)境的接口,是軟件系統(tǒng)外部環(huán)境中的實(shí)體(包括人員、組織或其他軟件系統(tǒng)),統(tǒng)稱外部實(shí)體,其作用是提供系統(tǒng)和外界環(huán)境之間關(guān)系的注釋性說明。它們是為了幫助理解系統(tǒng)界面而引入的,一般只出現(xiàn)在數(shù)據(jù)流圖的頂層圖中,表示了系統(tǒng)中數(shù)據(jù)的來源和去處,不需要對它進(jìn)行軟件設(shè)計(jì)和實(shí)現(xiàn)。因此,在命名時應(yīng)符合環(huán)境的真實(shí)狀況。數(shù)據(jù)流圖的表示符號有時為了增加數(shù)據(jù)流圖的清晰性,防止數(shù)據(jù)流的箭頭線太長,在一張圖上可重復(fù)畫同名的源/終點(diǎn)(如某個外部實(shí)體既是源點(diǎn)也是終點(diǎn)的情況)。數(shù)據(jù)流圖的表示符號(2)數(shù)據(jù)流圖的幾種附加符號在數(shù)據(jù)流圖中,如果有兩個以上數(shù)據(jù)流指向一個加工,或從一個加工中引出兩個以上的數(shù)據(jù)流,這些數(shù)據(jù)流之間存在一定的關(guān)系。在圖2.4中給出描述這些關(guān)系所用符號及其含義。其中:1)
*
表示相鄰兩個數(shù)據(jù)流之間是“與”的關(guān)系(同時出現(xiàn));2)+表示相鄰兩個數(shù)據(jù)流之間是“或”的關(guān)系;3)⊕表示相鄰兩個數(shù)據(jù)流只能選取其中一個(互斥關(guān)系)。數(shù)據(jù)流圖的表示符號圖2.4數(shù)據(jù)流圖附加符號使用示例數(shù)據(jù)流圖的表示符號(a)數(shù)據(jù)A和數(shù)據(jù)B同時輸入時才能轉(zhuǎn)換成數(shù)據(jù)C(b)數(shù)據(jù)A轉(zhuǎn)換成數(shù)據(jù)B和數(shù)據(jù)C(c)數(shù)據(jù)A或數(shù)據(jù)B,也可以是數(shù)據(jù)A和數(shù)據(jù)B兩者轉(zhuǎn)換成數(shù)據(jù)C(d)數(shù)據(jù)A轉(zhuǎn)換成數(shù)據(jù)B或數(shù)據(jù)C,也可是數(shù)據(jù)B和數(shù)據(jù)C兩者(e)只有數(shù)據(jù)A或只有數(shù)據(jù)B轉(zhuǎn)換成數(shù)據(jù)C(f
)數(shù)據(jù)A轉(zhuǎn)換成數(shù)據(jù)B或數(shù)據(jù)C兩者之一設(shè)計(jì)數(shù)據(jù)流圖的步驟數(shù)據(jù)流圖的基本要點(diǎn)是描述“做什么”,而不考慮“怎么做”。通常數(shù)據(jù)流圖要忽略出錯處理,也不包括諸如打開文件和關(guān)閉文件之類的內(nèi)部處理。繪制數(shù)據(jù)流圖的原則是由外向里,自頂向下描述問題的處理過程,通過一系列的分解步驟,逐步求精地表達(dá)出整個系統(tǒng)功能的內(nèi)部關(guān)系。設(shè)計(jì)數(shù)據(jù)流圖的步驟(1)找出系統(tǒng)的輸入和輸出把整個系統(tǒng)看作一個大的加工,然后根據(jù)系統(tǒng)從外界的哪些源接收什么數(shù)據(jù)流,以及系統(tǒng)輸出的哪些數(shù)據(jù)流送到外界的哪些終點(diǎn),就可以畫出軟件系統(tǒng)頂層數(shù)據(jù)流圖。設(shè)計(jì)數(shù)據(jù)流圖的步驟(2)畫系統(tǒng)內(nèi)部將頂層數(shù)據(jù)流圖中的加工分解成若干個加工,并用數(shù)據(jù)流將這些加工連接起來,使得圖中的輸入數(shù)據(jù)流經(jīng)一連串的加工處理后變換成頂層的輸出數(shù)據(jù)流。從一個加工畫出一張數(shù)據(jù)流圖的過程,就是對這個加工的分解過程。確定數(shù)據(jù)流的方法是:當(dāng)用戶把若干數(shù)據(jù)看作一個整體來處理(這些數(shù)據(jù)一起到達(dá),一起加工)時,可把這些數(shù)據(jù)看成一個數(shù)據(jù)流。通??梢园褜?shí)際工作中的單據(jù)作為一個數(shù)據(jù)流。設(shè)計(jì)數(shù)據(jù)流圖的步驟(3)為每一個數(shù)據(jù)流命名數(shù)據(jù)流命名的好壞與數(shù)據(jù)流圖的可理解性密切相關(guān)。名字要反映整個數(shù)據(jù)流的含義,而不是其中的一部分。避免使用空洞的名字,如“輸入信息”、“輸出數(shù)據(jù)”等不能反映實(shí)質(zhì)性內(nèi)容的名字。設(shè)計(jì)數(shù)據(jù)流圖的步驟(4)為加工命名一般先命名數(shù)據(jù)流,在命名加工,這個次序反映了結(jié)構(gòu)化分析方法的自頂向下的特性。命名應(yīng)注意名字要反映整個加工,而不是它的一部分。名字應(yīng)當(dāng)是一種“動詞+賓語”的形式。數(shù)據(jù)流圖的層次結(jié)構(gòu)(1)分層為了表達(dá)數(shù)據(jù)處理過程中的數(shù)據(jù)加工情況,需要采用層次結(jié)構(gòu)的數(shù)據(jù)流圖,即按照系統(tǒng)的層次結(jié)構(gòu)進(jìn)行逐步分解。以分層的數(shù)據(jù)流圖反映這種結(jié)構(gòu)關(guān)系,能清楚地表達(dá)和容易理解整個系統(tǒng)。數(shù)據(jù)流圖的層次結(jié)構(gòu)在多層數(shù)據(jù)流圖中,頂層數(shù)據(jù)流圖僅包含1個加工,它代表被開發(fā)系統(tǒng)。它的輸入流是該系統(tǒng)的輸入數(shù)據(jù),輸出流是系統(tǒng)所輸出的數(shù)據(jù)。底層流圖是指其加工不需再做分解的數(shù)據(jù)流圖,它處在最底層。中間層流圖則表示對其上層父圖的細(xì)化,它的每一個加工可能繼續(xù)細(xì)化,形成子圖如圖2.5所示。數(shù)據(jù)流圖的層次結(jié)構(gòu)圖2.5分層的數(shù)據(jù)流圖數(shù)據(jù)流圖的層次結(jié)構(gòu)(2)分層的原則①
父圖與子圖的關(guān)系。對任一層數(shù)據(jù)流圖來說,稱其上層圖為它的父圖,其下層圖為它的子圖。要注意平衡相鄰兩層數(shù)據(jù)流圖之間的父子關(guān)系。如果父圖有5個加工處理,就有可能存在≤5個子圖。子圖代表了父圖中某個加工的細(xì)節(jié),父圖表示了子圖之間的接口,兩者代表了同一個內(nèi)容。數(shù)據(jù)流圖的層次結(jié)構(gòu)②
平衡規(guī)則。進(jìn)入子圖的數(shù)據(jù)流與父圖上相應(yīng)加工的數(shù)據(jù)流本質(zhì)上是一致的,所以子圖的輸入/輸出數(shù)據(jù)流和父圖的相應(yīng)加工上的輸入/輸出數(shù)據(jù)流必須一致,這一特點(diǎn)稱為“平衡”規(guī)則。數(shù)據(jù)流圖的層次結(jié)構(gòu)③
分層程度(即底層數(shù)據(jù)流圖的確定)。如果一張圖中有很多加工處理,會影響理解;反之如果每張圖中只有兩三個加工處理,有十幾層,也不容易管理和理解。因此,一般-張數(shù)據(jù)流圖中加工最多不要超過7土2個,這樣才不會因?yàn)榧庸み^多而使人眼花繚亂。但分解應(yīng)力求自然,保證分解后各界面清晰,意義明確。當(dāng)?shù)讓蛹庸さ恼f明能在一頁紙上寫下時,分解細(xì)化即可停止。數(shù)據(jù)流圖的舉例例2.3:某高校教學(xué)管理系統(tǒng)的工作過程如下:在每學(xué)期開學(xué)吋,學(xué)生需要注冊登記,只有注冊成功后才能成為該學(xué)校的正式學(xué)生。學(xué)校實(shí)行校級、系級兩級管理,學(xué)生如果因健康或?qū)W習(xí)跟不上等原因要求休學(xué)、退學(xué)吋,需要先向系里提出申請,系里核實(shí)情況后再提交學(xué)校教處審批,然后將審批結(jié)果通知學(xué)生。每學(xué)期學(xué)生都可以進(jìn)行選課,在得到確認(rèn)后就可以聽課并參加考試。在期末教師要將學(xué)生的考試成績上報(bào)教務(wù)處,教務(wù)處將登記、備案??荚嚥患案裥枰a(bǔ)考,如果超過3門不及格,則要留級或降級。對于優(yōu)秀學(xué)生,學(xué)校還給予獎勵,根據(jù)學(xué)習(xí)成績發(fā)放獎學(xué)金。數(shù)據(jù)流圖的舉例解:(1)數(shù)據(jù)流分析①數(shù)據(jù)源點(diǎn):學(xué)生、系辦、教務(wù)處、教師。②數(shù)據(jù)終點(diǎn):學(xué)生、系辦、教師。③數(shù)據(jù)流:與學(xué)生有關(guān)的數(shù)據(jù)流包括注冊申請、學(xué)籍申請、補(bǔ)考通知、學(xué)籍資格變動通知;與教師有關(guān)的數(shù)據(jù)流包括教學(xué)安排、學(xué)生修課成績;與系辦有關(guān)的數(shù)據(jù)流包括新生名単、學(xué)籍審理意見、獎學(xué)金統(tǒng)計(jì)等;與教務(wù)處有關(guān)的數(shù)據(jù)流包括成績統(tǒng)計(jì)、學(xué)籍審理意見。數(shù)據(jù)流圖的舉例(2)畫出系統(tǒng)頂層數(shù)據(jù)流圖在任何系統(tǒng)都由若干個數(shù)據(jù)源點(diǎn)、終點(diǎn)和一個代表系統(tǒng)對數(shù)據(jù)加工變換的基本功能的處理組成。數(shù)據(jù)流圖的舉例(3)第一步分解基本系統(tǒng)模型的數(shù)據(jù)流圖非常抽象,因此,需要把基本功能細(xì)化,描繪系統(tǒng)的主要功能。我們采用從外向里的方法對教學(xué)管理系統(tǒng)進(jìn)行分解。按功能細(xì)化后可分為“注冊管理”、“成績管理”、“學(xué)籍管理”和“獎勵管理”4個主要功能,同時增加“學(xué)生名冊”和“成績檔案"兩個數(shù)據(jù)存儲,并繪制了細(xì)化的數(shù)據(jù)流,如圖2.7所示。數(shù)據(jù)流圖的舉例圖2.7教學(xué)管理系統(tǒng)數(shù)據(jù)流圖數(shù)據(jù)流圖的舉例(4)第二步細(xì)化對描繪系統(tǒng)的各個功能進(jìn)行細(xì)化,可得到進(jìn)步的數(shù)據(jù)流程描述。例如,對“學(xué)籍管理”
進(jìn)一步細(xì)化,得出底層數(shù)據(jù)流圖,如圖2.8所示。數(shù)據(jù)流圖的舉例圖2.8學(xué)籍管理底層數(shù)據(jù)流圖數(shù)據(jù)流圖的舉例學(xué)籍管理包括“學(xué)籍變動處理”、“留級處理”和“畢業(yè)處理”。而“學(xué)籍變動處理”又細(xì)分為“初步審查學(xué)生申請”?與“審查報(bào)批申請”。學(xué)籍變動需要經(jīng)過兩級審批處理,系里先要進(jìn)行初步審查,核實(shí)學(xué)生申請報(bào)告,了解學(xué)習(xí)成績或身體狀況等情況,提出初審意見上報(bào)教務(wù)處,教務(wù)處綜合考慮學(xué)生的情況后做出最后審批,并將結(jié)果通知學(xué)生本人?!傲艏壧幚怼眲t是直接由系辦根據(jù)學(xué)生考試情況做出決定?!爱厴I(yè)處理”則是由教務(wù)處每年根據(jù)學(xué)生的學(xué)習(xí)情況統(tǒng)一處理,負(fù)責(zé)發(fā)放畢業(yè)證書。數(shù)據(jù)流圖的舉例例2.4:有如下的一個簡單考務(wù)處理系統(tǒng),要求完成一下工作:(1)對考生送來的報(bào)名單進(jìn)行檢查;(2)對合格的報(bào)名單編好準(zhǔn)考證號后將準(zhǔn)考證送給考生,并將匯總后的考生名單送給閱卷站;(3)對閱卷站送來的成績單進(jìn)行檢查,并根據(jù)考試中心制定的合格標(biāo)準(zhǔn)審定合格者;(4)制作考生通知單(含成績及合格/不合格標(biāo)志)送給考生;(5)按地區(qū)進(jìn)行成績分類統(tǒng)計(jì)和試題難度分析,產(chǎn)生統(tǒng)計(jì)分析表。數(shù)據(jù)流圖的舉例解:我們對需求進(jìn)行關(guān)鍵字提取,并用紅色標(biāo)出實(shí)體,綠色標(biāo)出關(guān)鍵的數(shù)據(jù)流。(1)頂層數(shù)據(jù)流圖:系統(tǒng)的輸入輸出(頂層圖)①確定源或宿:考生、閱卷站和考試中心(它們都是既是源又是宿)。②頂層唯一的加工:考務(wù)處理系統(tǒng)。③確定數(shù)據(jù)流:系統(tǒng)的輸入/輸出信息。數(shù)據(jù)流圖的舉例輸入數(shù)據(jù)流:報(bào)名單(來自考生)、成績清單(來自閱卷站)、合格標(biāo)準(zhǔn)(來自考試中心)。輸出數(shù)據(jù)流:準(zhǔn)考證(送往考生)、考生名單(送往閱卷站)、考生通知書(送往考生)、統(tǒng)計(jì)分析表(送往考試中心)。額外的輸出數(shù)據(jù)流(考慮系統(tǒng)的健壯性):報(bào)名單(返回給考生)、錯誤成績單(返回給閱卷站)。通過分析得到考務(wù)處理系統(tǒng)的頂層數(shù)據(jù)流圖,如圖2.9所示:數(shù)據(jù)流圖的舉例圖2.9考務(wù)處理系統(tǒng)的頂層數(shù)據(jù)流圖數(shù)據(jù)流圖的舉例(2)第0層數(shù)據(jù)流圖經(jīng)過分析,考務(wù)業(yè)務(wù)處理主要功能應(yīng)當(dāng)有登記報(bào)名單、統(tǒng)計(jì)成績兩個主要數(shù)據(jù)流,輸入的源點(diǎn)和輸出的終點(diǎn)是考生、考試中心和閱卷站。從輸入端開始,根據(jù)考務(wù)業(yè)務(wù)工作流,畫出數(shù)據(jù)流流經(jīng)的各加工框,逐步畫到輸出端,得到0層數(shù)據(jù)流圖,如圖2.10所示。數(shù)據(jù)流圖的舉例圖2.10考務(wù)處理系統(tǒng)的0層數(shù)據(jù)流圖數(shù)據(jù)流圖的舉例(3)第1層數(shù)據(jù)流圖以0層圖中加工1(登記報(bào)名表)為例,根據(jù)業(yè)務(wù)處理流程來確定加工1的分解,與加工1有關(guān)的業(yè)務(wù)流程:首先檢查考生送來的報(bào)名單,然后編準(zhǔn)考證號,并產(chǎn)生準(zhǔn)考證,最后產(chǎn)生考生名單和考生名冊(文件)。確定加工1分解的3個子加工:檢查報(bào)名單、編準(zhǔn)考證號、登記考生。除了原有數(shù)據(jù)流,增加了“合格報(bào)名單”和“正式報(bào)名單”。加工1的第1層數(shù)據(jù)流圖,如圖2.11所示。數(shù)據(jù)流圖的舉例圖2.11考務(wù)處理系統(tǒng)中加工1細(xì)化的1層數(shù)據(jù)流圖數(shù)據(jù)流圖的舉例同理,得到0層圖中加工2的1層數(shù)據(jù)流圖,如圖2.12所示。圖2.12考務(wù)處理系統(tǒng)中加工2細(xì)化的1層數(shù)據(jù)流圖數(shù)據(jù)字典06數(shù)據(jù)字典數(shù)據(jù)字典(Data
Dictionar
y,
DD)
是結(jié)構(gòu)化分析的另一種有力的工具。數(shù)據(jù)流圖描述了系統(tǒng)的分解,但沒有對圖中各個成分進(jìn)行說明。數(shù)據(jù)字典是為數(shù)據(jù)流圖中的每個數(shù)據(jù)流、數(shù)據(jù)存儲、數(shù)據(jù)處理以及組成數(shù)據(jù)流或文件的數(shù)據(jù)項(xiàng)做出說明。數(shù)據(jù)字典的作用是在軟件分析和設(shè)計(jì)過程提供數(shù)據(jù)描述,是數(shù)據(jù)流必不可少的輔助資料。數(shù)據(jù)流和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型,兩者缺一不可。數(shù)據(jù)字典的內(nèi)容數(shù)據(jù)字典是關(guān)于數(shù)據(jù)信息的集合,是數(shù)據(jù)流圖中所有元素的定義的集合(每個元素對應(yīng)數(shù)據(jù)典中的一個條目)。數(shù)據(jù)字典中的條目應(yīng)按一定次序排列,以方便人們查閱。數(shù)據(jù)字典通常由數(shù)據(jù)元素、數(shù)據(jù)流、數(shù)據(jù)存儲、數(shù)據(jù)處理4類條目組成。數(shù)據(jù)字典的內(nèi)容(1)數(shù)據(jù)元素(數(shù)據(jù)項(xiàng)):是數(shù)據(jù)的最小組成單位,它包含以下內(nèi)容:①數(shù)據(jù)元素的名稱、編號,如學(xué)號、準(zhǔn)考證號;②數(shù)據(jù)元素的別名;③數(shù)據(jù)元素的取值范圍和取值含義;④
數(shù)據(jù)元素的長度定義,應(yīng)便于定義數(shù)據(jù)庫結(jié)構(gòu)。例如,考生成績規(guī)定為5位,小數(shù)點(diǎn)后取1位小數(shù),小數(shù)點(diǎn)占一位,整數(shù)部分取3位;⑤數(shù)據(jù)元素的簡單描述;數(shù)據(jù)字典的內(nèi)容(2)數(shù)據(jù)流:主要包括數(shù)據(jù)流的來源、去處、組成數(shù)據(jù)流的數(shù)據(jù)項(xiàng)、數(shù)據(jù)流的流通量。(3)數(shù)據(jù)存儲:描述文件的結(jié)構(gòu)及數(shù)據(jù)文件中記錄的存取規(guī)則。(4)數(shù)據(jù)處理:數(shù)據(jù)字典中可以描述數(shù)據(jù)處理的邏輯功能計(jì)算法,如計(jì)算公式、簡明的處理描述等。數(shù)據(jù)字典使用的符號在數(shù)據(jù)字典中,通常采用以下符號表示系統(tǒng)中使用數(shù)據(jù)項(xiàng)的情況,以及數(shù)據(jù)項(xiàng)之間的相互關(guān)系。=:表示“等價于”或“定義為”。+:表示“和”,連接兩個數(shù)據(jù)元素。[]:表示“或”,對[]中列舉的各數(shù)據(jù)元素,用“|”分隔,表示可任選其中某一項(xiàng)。數(shù)據(jù)字典使用的符號例如,儲戶到銀行存款時,可選擇存款期限為活期、半年期、1年期、3年期或5年期中的某一種,可表示為存款期限=[活期半年|1年|3年|5年]。其中,{
}:表示“重復(fù)”,對{}中的內(nèi)容可重復(fù)使用。數(shù)據(jù)字典使用的符號(
):表示“可選”,對(
)中的內(nèi)容可選、可不選,各選項(xiàng)之間用“,”號隔開。如果要對{
}表示的重復(fù)次數(shù)加以限制,可將重復(fù)次數(shù)的下限和上限寫在花括號的左右(或在花括號左邊分別用下角標(biāo)和上角標(biāo)表示)。數(shù)據(jù)字典使用的符號例如,成績單=準(zhǔn)考證號+姓名+1{課程名+成績}3,表示最少有1門、最多有3門課程的考試成績。也可寫為:成績單=準(zhǔn)考證號+姓名+
{課程名+成31績}。特別地,1{A}表示A的內(nèi)容至少要出現(xiàn)1次;{B}表示B的內(nèi)容允許重復(fù)零至任意次。數(shù)據(jù)字典的示例圖2.13、圖2.14和圖2.15所示是對“高校教學(xué)管理系統(tǒng)”中數(shù)據(jù)字典的部分?jǐn)?shù)據(jù)條目的定義。數(shù)據(jù)流名:注冊申請簡述:每學(xué)期開學(xué)需要學(xué)生注冊登記別名:無組成:注冊申請=學(xué)號+姓名+入學(xué)日期+注冊日期數(shù)據(jù)量:2000次/開學(xué)-周峰值:第一周每天下午1:00到5:00有300次注釋:到2019年還將增加到3000人圖2.13注冊申請數(shù)據(jù)流條目數(shù)據(jù)字典的示例文件名:成績檔案簡述:包括所有在冊學(xué)生各門課程的考試成績和學(xué)分信息別名:無組成:成績檔案=學(xué)號+姓名+課程名稱+考試成績+學(xué)分?jǐn)?shù)據(jù)量:2000×6次/考試結(jié)束一周內(nèi)峰值:學(xué)期最后一周每天下午1:00到5:00有2000×6次注釋:到2019年還將增加到3000人圖2.14成績檔案存儲條目數(shù)據(jù)字典的示例文件名:學(xué)號簡述:每個在校學(xué)生的編號別名:無組成:學(xué)號=XX+XX+XXX年級專業(yè)序號值類型:7位數(shù)字取值范圍圖2.15學(xué)號數(shù)據(jù)項(xiàng)條目數(shù)據(jù)字典的示例實(shí)現(xiàn)數(shù)據(jù)字典的常見方法有3種:全人工過程、全自動過程和混合過程。全自動過程一般依賴于數(shù)據(jù)字典處理軟件?;旌线^程是指利用已有的實(shí)用程序(例如,正文編輯程序或報(bào)告生成程序等)來輔助人工過程。數(shù)據(jù)字典的示例無論用哪種方法來實(shí)現(xiàn),數(shù)據(jù)字典應(yīng)具有以下特點(diǎn):①通過名字能方便地查閱數(shù)據(jù)定義;②
沒有冗余,盡量不重復(fù)在規(guī)格說明的其他組成部分中已出現(xiàn)的信息;③容易修改和更新;④能單獨(dú)處理描述每個數(shù)據(jù)元素的信息;⑤定義的書寫方法簡便而嚴(yán)格。成本-效益分析07成本-效益分析系統(tǒng)效益包括經(jīng)濟(jì)效益和社會效益。前者是有形的,后者是無形的。成本效益分析的目的是從經(jīng)濟(jì)角度評價開發(fā)一個新的軟件項(xiàng)目是否可行。成本-效益分析首先是估算將要開發(fā)系統(tǒng)的開發(fā)成本,然后與可能取得的效益進(jìn)行比較和權(quán)衡,效益分有形效益和無形效益兩種。有形效益可以用貨幣的時間價值、投資回收期和純收入等指標(biāo)進(jìn)行度量;無形效益主要從性質(zhì)上、心理上進(jìn)行衡量,很難直接進(jìn)行量的比較。成本估計(jì)一個軟件開發(fā)的成本主要表現(xiàn)在人力和時間的消耗。工作量是指在軟件項(xiàng)目建設(shè)過程中需要投入的人力和時間,一般用人月數(shù)進(jìn)行度量。項(xiàng)目的建設(shè)分為開發(fā)階段、實(shí)施階段、運(yùn)行維護(hù)階段。故工作量需要分階段進(jìn)行估算。工作量=開發(fā)工作量+實(shí)施工作量+維護(hù)工作量。由于這種消耗估計(jì)不是精確的科學(xué)計(jì)算,因此可以用幾種方法計(jì)算后相互驗(yàn)證。成本估計(jì)(1)代碼行定量估算方法開發(fā)軟件中實(shí)現(xiàn)每一個功能所需要的源代碼行數(shù)與成本聯(lián)系起來。根據(jù)歷史數(shù)據(jù)和經(jīng)驗(yàn),估計(jì)實(shí)現(xiàn)一個功能需要的源程序行數(shù)。當(dāng)有了源程序的行數(shù)后,再根據(jù)軟件的復(fù)雜度和當(dāng)時的工資水平確定每行代碼的平均成本。每行代碼的平均成本與源程序的總行數(shù)的乘積就是總成本。如果以往開發(fā)過類似的項(xiàng)目或有歷史的數(shù)據(jù)參考,這種方法比較有效。成本估計(jì)(2)開發(fā)階段工作量估算兩種估算方式:功能點(diǎn)估算法和任務(wù)估算法1)功能點(diǎn)估算法:該方法是依據(jù)軟件項(xiàng)目的功能需求來評估開發(fā)工作量。通過分析系統(tǒng)需求計(jì)算項(xiàng)目規(guī)模(功能點(diǎn)數(shù)),再乘以各階段完成每個功能點(diǎn)所需要投入的人工時(開發(fā)成本系數(shù)),就可以計(jì)算出完成項(xiàng)目所需要的人月數(shù)。適用于立項(xiàng)階段需求分析比較詳細(xì)的項(xiàng)目或者用于項(xiàng)目完成階段的最終工作量估算。成本估計(jì)開發(fā)工作量D(人月)=(項(xiàng)目功能點(diǎn)FP*開發(fā)成本系數(shù)k/H/W)其中,H是指國家規(guī)定的一天工作時數(shù),W指一個月工作天數(shù)。開發(fā)成本系數(shù)k主要考慮項(xiàng)目的非技術(shù)難度,如開發(fā)周期,協(xié)調(diào)難度,業(yè)務(wù)的復(fù)雜度,需求的不確定性。k的取指范圍一般如表2.2所示。成本估計(jì)表2.2k取值一般范圍功能點(diǎn)數(shù)(FP)<3000開發(fā)成本系數(shù)(人工時/FP)3.5-4.04.0-4.54.5-5.0(3000,8000)>8000成本估計(jì)2)任務(wù)估算法:任務(wù)估算法是把軟件項(xiàng)目功能分解為若干個相對獨(dú)立的任務(wù),再分別估計(jì)完成每個任務(wù)需要的人員搭配比例及投入時間,每個人員的工作量之和就是該任務(wù)的工作量。最后將各個任務(wù)的工作量累加起來就得出軟件項(xiàng)目的總工作量。該方法適用于立項(xiàng)階段的工作量估算。軟件開發(fā)工作可分為:需求分析、設(shè)計(jì)、編碼、測試。設(shè)計(jì)各個崗位人員工作量可基于以下標(biāo)準(zhǔn)計(jì)算:成本估計(jì)①以程序員的工作量為標(biāo)準(zhǔn);②高級程序員的工作量為標(biāo)準(zhǔn)工作量的1.5倍;③系統(tǒng)分析員的工作量為標(biāo)準(zhǔn)工作量的2.5倍;④測試工程師的工作量為標(biāo)準(zhǔn)工作量;⑤高級測試工程師的工作量為標(biāo)準(zhǔn)工作量的1.5倍;成本估計(jì)⑥項(xiàng)目管理人員的工作量為標(biāo)準(zhǔn)工作量的3倍;⑦市場營銷人員的工作量為標(biāo)準(zhǔn)工作量;⑧技術(shù)支持工程師的工作量為標(biāo)準(zhǔn)工作量;⑨文秘的工作量為標(biāo)準(zhǔn)工作量的0.5倍;⑩
如果遇到類似的項(xiàng)目,就可以比較有把握地進(jìn)行估算。但是在軟件工程中,受到人、問題、過程、生產(chǎn)、資源等因素的影響比較多,因此要得到準(zhǔn)確的結(jié)果并不容易。成本估計(jì)例2.5:以已有項(xiàng)目的經(jīng)驗(yàn),研發(fā)部門每一萬行C語言源代碼形成的源文件(.c和.h文件)約為250K。一個已結(jié)束的研發(fā)項(xiàng)目,經(jīng)過統(tǒng)計(jì),源文件大小為3.75M。該項(xiàng)目投入成本為360萬元,人工價是18000元/人月。問:①該項(xiàng)目的規(guī)模是多少KLOC(源代碼行數(shù))?②工作量是多少人月?③生產(chǎn)率是多少?④每行代碼的價值是多少?成本估計(jì)解:①3.75M/250K=15萬行=150KLOC;②工作量=成本/人工價=360萬元/18000元/人月=200人月;③生產(chǎn)率=規(guī)模/工作量=150KLOC/200人月=750LOC/人月;④360萬元/15萬行=24元/行。貨幣的時間價值成本估算的目的是為了對項(xiàng)目的投資有所了解。經(jīng)過成本估算后,得到項(xiàng)目開發(fā)時需要的費(fèi)用,該費(fèi)用就是項(xiàng)目的投資。另一方面,項(xiàng)目開發(fā)后的經(jīng)濟(jì)效益是使用新系統(tǒng)增加的收入和節(jié)約的運(yùn)行費(fèi)用,而經(jīng)濟(jì)效益和運(yùn)行費(fèi)用在軟件生存周期中都存在,這就是說經(jīng)濟(jì)效益與軟件的生存周期的長度有關(guān),所以應(yīng)該合理地估計(jì)軟件的壽命。在估計(jì)軟件壽命時,估計(jì)使用的時間越長,系統(tǒng)被淘汰的可能性越大。一般生存周期的長度按5年估計(jì)。所以在進(jìn)行成本-效益分析時,就要考慮貨幣的時間價值,通常用利率表示貨幣的時間價值。貨幣的時間價值設(shè)現(xiàn)在存入年利率為i的貨幣P元,則n年后可得錢數(shù)為F,若不計(jì)復(fù)利,則:F=P*(1+i)n(公式2.1)F就是P元在n年后的價值。反之,若n年后能收入F元,那么這些錢現(xiàn)在的價值(現(xiàn)值)為:P=F/(1+i)n(公式2.2)貨幣的時間價值例2.6
修改一個已有的庫存清單系統(tǒng),使它能在每天送給采購員一份定貨報(bào)表。修改已有的庫存清單程序并且編
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)勞動合同范本簡易版
- 2025建筑物資租賃合同(大連安建)
- 2025拆遷合作合同范本
- 課題申報(bào)參考:考慮多減排項(xiàng)目并行的港口作業(yè)設(shè)備綠色轉(zhuǎn)型路徑設(shè)計(jì)與激勵機(jī)制研究
- 教育中的數(shù)字化互動與智能學(xué)習(xí)
- 心理健康課程在學(xué)生教育中的實(shí)施效果評估
- 2024年中尺度自動氣象站系統(tǒng)項(xiàng)目項(xiàng)目投資申請報(bào)告代可行性研究報(bào)告
- 追溯系統(tǒng)在農(nóng)產(chǎn)品質(zhì)量監(jiān)管中的重要作用
- 二零二五年度金融科技產(chǎn)品開發(fā)與應(yīng)用合同范本4篇
- 2025年浙科版七年級科學(xué)上冊階段測試試卷
- 2025河北邯鄲世紀(jì)建設(shè)投資集團(tuán)招聘專業(yè)技術(shù)人才30人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 慈溪高一期末數(shù)學(xué)試卷
- 天津市武清區(qū)2024-2025學(xué)年八年級(上)期末物理試卷(含解析)
- 《徐霞客傳正版》課件
- 江西硅博化工有限公司年產(chǎn)5000噸硅樹脂項(xiàng)目環(huán)境影響評價
- 高端民用航空復(fù)材智能制造交付中心項(xiàng)目環(huán)評資料環(huán)境影響
- 貴州省黔東南州2024年七年級上學(xué)期數(shù)學(xué)期末考試試卷【附答案】
- 量子醫(yī)學(xué)成像學(xué)行業(yè)研究報(bào)告
- DB22T 3268-2021 糧食收儲企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化評定規(guī)范
- 辦事居間協(xié)議合同范例
- 正念減壓療法詳解課件
評論
0/150
提交評論