版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
(建筑施工;為;米;千米;
考試)安徽省公務員考試計
算機軟件工程
2020年4月
多年的企業(yè)咨詢顧問經驗,經過實蟋畫以落地執(zhí)行的卓越管理方案,值得您下載擁有!
軟件工程
自從1968年首次提出軟件工程一詞以來,軟件工程已成為計算機軟件的一個重要分支和研
究方向。軟件工程建筑施工;為;米;千米;指應用計算機科學、數(shù)學及管理科學等原理,
以工程化的原則和方法來解決軟件問題的工程。其目的建筑施工;為;米;千米;提高軟件
生產率、提高軟件質量、降低軟件成本。
一、軟件工程基本概念
早期的軟件主要指程序。程序的開發(fā)采用個體工作方式,開發(fā)工作主要依賴于開發(fā)人員的個
人技能和程序設計技巧。當時的軟件通常缺少與程序有關的文檔,軟件開發(fā)的實際成本和進
度往往與預計的相差甚遠,軟件的質量得不到保證,開發(fā)出來的軟件常常不能使用戶滿意。
隨著計算機應用的需求不斷增長,軟件的規(guī)模也越來越大,然而軟件開發(fā)的生產率遠遠跟不
上計算機應用的迅速增長。此外,由于軟件開發(fā)時缺少好的方法指導和工具輔助,同時又缺
少有關的文檔,使得大量已有的軟件難以維護。上述這些問題嚴重地阻礙了軟件的發(fā)展,20
世紀60年代中期,人們把上述軟件開發(fā)和維護中的各種問題稱為“軟件危機"。1968年在
德國召開的NATO會議上,首次提出了“軟件工程"一詞,希望用工程化的原則和方法來
克服軟件危機。在此以后,人們開展了軟件開發(fā)模型、開發(fā)方法、工具與環(huán)境的研究,提出
了瀑布模型、演化模型、螺旋模型、噴泉模型等開發(fā)模型,出現(xiàn)了面向數(shù)據(jù)流方法、面向數(shù)
據(jù)結構的方法、面向對象方法等開發(fā)方法,以及一批CASE(computeraidedsoftware
engineering)工具和環(huán)境。
(-)軟件生存周期
如同人的一生要經歷嬰兒期、少年期、老年期直至死亡這樣一個全過程一樣,任何一個軟件
產品或軟件系統(tǒng)也都要經歷軟件定義、軟件開發(fā)、軟件維護直至被淘汰這樣一個全過程,我
們把軟件的這一全過程稱為軟件生存周期。軟件定義、軟件開發(fā)、軟件維護等階段還可分為
若干個階段,每個階段相對獨立又彼此有聯(lián)系,上一階段的工作結果建筑施工;為;米;干
米;下一階段工作的依據(jù),下一階段建筑施工;為;米;千米;上一階段的進化,它更接近
于問題的解。
1.軟件定義
軟件定義階段主要解決的問題建筑施工;為;米;千米;待開發(fā)的軟件要"做什么",也就
建筑施工;為;米;千米;要確定軟件的處理對象,軟件與外界的接口,軟件的功能和性能,
界面以及有關的約束和限制。軟件定義階段通常可分成系統(tǒng)分析、軟件項目it劃、需求分析
等階段。
(1)系統(tǒng)分析這里講的系統(tǒng)建筑施工;為;米;千米;指計算機系統(tǒng),包括計算機硬件、
軟件和使用計算機的人。系統(tǒng)分析的任務建筑施工;為;米;千米;確定待開發(fā)軟件的總體
要求和適用范圍,以及與之有關的硬件、支撐軟件的要求。系統(tǒng)分析階段的參加人員有用戶、
項目負責人、系統(tǒng)分析員。該階段產生的文檔可合并在軟件項目計劃階段的文檔(項目計劃
書)中。
(2)軟件項目計劃軟件項目計劃的任務建筑施工;為;米;千米;確定待開發(fā)軟件的目標,
對其進行可行性分析,并對資源分配、進度安排等做出合理的計劃。軟件項目計劃階段的參
加人員有用戶、項目負責人、系統(tǒng)分析員。該階段所產生的文檔有可行性分析報告、項目計
劃書。
(3)需求分析需求分析的任務建筑施工;為;米;千米;確定待開發(fā)軟件的功能、性能、
數(shù)據(jù)、界面等要求,從而確定系統(tǒng)的邏輯模型。需求分析階段的參加人員有用戶、項目負責
人系統(tǒng)分析員。該階段產生的文檔有需求規(guī)約(requirementsspecification),習慣上稱
它為需求規(guī)格說明書。
2.軟件開發(fā)
軟件開發(fā)階段主要解決的問題建筑施工;為;米;千米;該軟件"怎么做",包括數(shù)據(jù)結構
和軟件結構的設計,算法設計,編寫程序,測試,最后得到可交付使用的軟件。軟件開發(fā)階
段通常可分成軟件設計、編碼、軟件測試等階段。
(1)軟件設計軟件設計通常還可分成概要設計和詳細設計。概要設計的任務建筑施工;為;
米;千米;模塊分解,確定軟件的結構,模塊的功能和模塊間的接口,以及全局數(shù)據(jù)結構的
設計。詳細設計的任務建筑施工;為;米;千米;設計每個模塊的實現(xiàn)細節(jié)和局部數(shù)據(jù)結構
的設計。概要設計階段的參加人員有系統(tǒng)分析員和高級程序員,詳細設計階段的參加人員有
高級程序員和程序員。設計階段產生的文檔有設計規(guī)約(designspecification),也稱為
設計說明書,它也可分為概要設計說明書和詳細設計說明書。根據(jù)需要還可產生數(shù)據(jù)說明書
和模塊開發(fā)卷宗。
(2)編碼編碼的任務建筑施工;為;米;千米;用某種程序語言為每個模塊編寫程序。編
碼階段的參加人員有高級程序員和程序員,產生的文檔有程序清單。
(3)軟件測試軟件測試的任務建筑施工;為;米;千米;發(fā)現(xiàn)軟件中的錯誤,并加以絹正。
軟件測試階段的參加人員通常由另一部門(或單位)的高級程序員或系統(tǒng)分析員承擔,該階
段產生的文檔有軟件測試計劃和軟件測試報告。
3.軟件維護
軟件開發(fā)階段結束后,軟件即可交付使用。軟件的使用通常要持續(xù)幾年甚至幾十年,在整個
使用期間,都可能因為某種原因而修改軟件,這便建筑施工;為;米;千米;軟件維護。引
起修改軟件的原因主要有三種:一建筑施工;為;米;千米;在軟件運行過程中發(fā)現(xiàn)了軟件中
隱藏的錯誤而修改軟件;二建筑施工;為;米;千米;為了適應變化了的環(huán)境而修改軟件;三
建筑施工;為;米;千米;為修改或擴充原有軟件的功能而修改軟件。因此軟件維護的任務
就建筑施工;為;米;千米;為使軟件適應外界環(huán)境的變化、實現(xiàn)功能的擴充和質量的改善
而修改軟件。軟件維護階段的參加人員建筑施工;為;米;千米;維護人員,該階段產生的
文檔有維護計劃和維護報告。目前,軟件生存周期各階段的劃分尚不統(tǒng)一,有的分得粗些,
有的分得細些。許多場合軟件開發(fā)階段都建筑施工;為;米;千米;從需求分析階段開始的。
本書中,我們也將需求分析看作為軟件開發(fā)的開始階段。
(-)軟件開發(fā)模型
為了指導軟件的開發(fā),用不同的方式將軟件生存周期中的所有開發(fā)活動組織起來,形成不同
的軟件開發(fā)模型。常見的軟件開發(fā)模型有瀑布模型、演化模型、螺旋模型、噴泉模型等。瀑
布模型如下圖所示,它建筑施工;為;米;千米;1970年由W.Royce提出的。該模型給出
了軟件生存周期各階段的固定順序,上一階段完成后才能進入到下一階段,整個過程就像流
水下瀉,故稱之為瀑布模型。圖中的虛線部分表示在某一階段發(fā)現(xiàn)錯誤時,其錯誤可能建筑
施工;為;米;千米;由上一階段造成的,因此開發(fā)過程可能要反饋到上一階段。在瀑布模
型中,各階段結束后,都要進行嚴格的評審。
(三)軟件開發(fā)方法
軟件開發(fā)過程模型規(guī)定軟件開發(fā)活動的組合應用方式,要保證開發(fā)活動的高質量,還需要有
相應的軟件開發(fā)方法作為技術支持。近10年來,軟件工作者研制出了許多工程化的軟件開
發(fā)方法,例如70年代初提出的用于編寫程序的結構化程序設計方法,確實起到了提高效率,
減少錯誤的效果。但建筑施工;為;米;千米;70年代中期,軟件工作者認識到編寫程序
僅僅建筑施工;為;米;千米;軟件開發(fā)的一個環(huán)節(jié),而合理地建立系統(tǒng)結構比編定程序更
為重要。所以研究的重點前移到設計階段,出現(xiàn)了設計階段的結構化設計(SD)方法和JA
CKSON等方法,到了70年代后期,人們又發(fā)現(xiàn)事先對用戶的要求進行分析更為重要,故
又把重點前移到分析階段。出現(xiàn)了用于分析階段的結構化分析(SA)方法、結構化分析與設
計技術(SADT)等。隨著計算機技術的迅速發(fā)展,在80年代初期的實時、并發(fā)和網絡等軟
件的開發(fā)過程中,特別建筑施工;為;米;干米;在第五代計算機研究工作中,又提出了面
向對象的設計方法.現(xiàn)在流行的方法有多種,它們的適用范圍也各不相同。有的適用于一般
的數(shù)據(jù)處理系統(tǒng),如SA、SD(兩者統(tǒng)稱為結構化分析與設計方法,即Yourdon方法)、J
ACKSON方法;有的適用于大型的復雜系統(tǒng),如SADT技術;有的適用于實時事務處理系統(tǒng),
如FSM方法;有的適用于并發(fā)軟件系統(tǒng),如PETRI網方法;作為90年代代表作的面向對象方
法,其應用已幾乎遍布各個領域。這些方法除了適用范圍不同外,方法形成的基礎、處理規(guī)
則和對所開發(fā)軟件風格的要求等都各有側重。用什么方法來說明用戶的要求、用什么方法來
設計軟件以及用什么方法對軟件進行測試和維護,直接影響所開發(fā)軟件的質量。
(四)軟件開發(fā)工具
早期的軟件開發(fā)除了一般的程序設計語言外尚缺少工具的支持,致使編程工作量大,質量和
進度卻難以保證,導致人們將很多的精力和時間花費在程序的編制和調試上;相比之下,在更
重要的軟件的需求和設計上反而得不到必要的精力和時間投入。軟件開發(fā)工具的發(fā)展促進了
軟件開發(fā)的高速度和高質量。工具的發(fā)展建筑施工;為;米;千米;從單項工具的開發(fā)逐步
走向集成的工具發(fā)展的。同時,軟件開發(fā)方法的有效應用也必須得到相應工具的支持,否則
方法將難以有效的實施。工具的完善和發(fā)展將促進軟件開發(fā)的進步和完善。原型化方法的實
施基礎就建筑施工;為;米;千米;得到了開發(fā)工具的支持。快速原型化之所以能夠實現(xiàn)的
基礎就建筑施工;為;米;千米;原型化人員在快速建模時得到了工具的支持,否則原型化
方法建筑施工;為;米;千米;無法實施的。
(五)軟件開發(fā)環(huán)境
軟件工程環(huán)境或稱軟件開發(fā)環(huán)境建筑施工;為;米;千米;全面支持軟件開發(fā)全過程的軟件
工具集合。這些軟件工具按照一定的方法或模式組合起來,并能支持軟件開發(fā)生命周期的各
個階段和各項任務的完成。CASE,即計算機輔助軟件工程環(huán)境建筑施工;為;米;千米;
當前軟件開發(fā)環(huán)境中富于特色的研究工作和發(fā)展方向,它的成功將最大限度地降低軟件工程
的技術難度并使軟件開發(fā)的質量得到保證。
二、結構化生命周期方法
結構化分析與設計方法在軟件工程中應用已很普遍,并且越來越成熟。有許多大、中型項目
都采用了這種方法進行開發(fā)并取得了顯著的成果。按B.W.Boehm的描述,瀑布模型的的軟
件生命周期可劃分七個階段:系統(tǒng)需求分析、軟件需求分析、概要分析、詳細設計、編碼、測
試和運行維護。
(-)系統(tǒng)需求
"系統(tǒng)需求"包括:問題定義、可行性研究及軟件計劃。
1.問題定義
軟件開發(fā)的第一步就建筑施工;為;米;千米;進行問題定義。問題定義階段必須回答的關
鍵問題:"軟件要解決的問題建筑施工;為;米;千米;什么?"如果不知道問題建筑施工;
為;米;千米;什么就試圖解決這個問題,顯然建筑施工;為;米;千米;盲目的,只會白
白浪費時間和金錢,最終得出的結果很可能建筑施工;為;米;千米;毫無意義的。盡管確
切地定義問題的必要性建筑施工;為;米;千米;十分明顯的,但建筑施工;為;米;千米;
在實踐中它卻可能建筑施工;為;米;千米;最常被忽視的一個步驟。這里所說的問題,就
建筑施工;為;米;千米;指用戶的基本要求。說得通俗些,問題定義實際上就建筑施工;
為;米;千米;了解用戶到底要建立什么系統(tǒng),并確定分析員下一步應該做什么。因此,問
題定義的來源建筑施工;為;米;千米;用戶。通過問題定義階段的工作,系統(tǒng)分析員應該
提出關于問題性質、工程目標和規(guī)模的書面報告。這一階段的分析員應盡可能站在較高的角
度去抽象、概括所要干的事情,不要拘泥于問題實現(xiàn)的細節(jié)。盡管用戶可能總建筑施工;為;
米;千米;習慣于這樣做,但分析員在這一階段必須超脫出來,居高臨下鳥瞰系統(tǒng)的全貌。
通過對系統(tǒng)的實際用戶和使用部門負責人的訪問調查,分析員扼要地寫出他對問題的理解,
并在使用部門負責人的會議上認真討論這份書面報告,澄清含糊不清的地方,改正理解不正
確的地方,最后得出一份雙方都滿意的文檔。當用戶的要求不建筑施工;為;米;千米;很
多并且不太復雜時,一兩個分析員用上一兩天就可以完成這一工作了。但當系統(tǒng)比較大,且
復雜時,恐怕就要組織一個問題定義小組,花上一兩個星期,甚至數(shù)月來定義用戶的問題。
如果分析員和用戶及使用部門的負責人對所要解決的問題取得完全一致的看法,而且使用部
門的負責人同意開發(fā)工程繼續(xù)進行下去,那么開發(fā)工程將轉入生命周期的下一個階段------
可行性研究。
2.可行性研究
并不建筑施工;為;米;千米;所有問題都有簡單明顯的解決辦法,事實上,許多問題不能
在預定的系統(tǒng)規(guī)模之內解決。如果問題沒有可行的解,那么花費在這項開發(fā)工程上的任何時
間、資源、人力和經費和都建筑施工;為;米;千米;無謂的浪費??尚行匝芯康哪康脑谟?/p>
用最小的代價確定在問題定義階段所確定的系統(tǒng)的目標和規(guī)模建筑施工;為;米;千米;否
現(xiàn)實,所確定的問題建筑施工;為;米;千米;否可以解決,系統(tǒng)方案在經濟上、技術上和
操作上建筑施工;為;米;千米;否可以接受??尚行匝芯恐貙θ缦戮唧w方案考慮:
(1)經濟可行性。估計開發(fā)費用以及新系統(tǒng)可能帶來的收益,將兩者進行權衡,看結果建
筑施工;為;米;千米;否可以接受。
(2)技術可行性。對要求的功能、性能以及限制條件進行分析,建筑施工;為;米;千米;
否能夠做成一個可接受的系統(tǒng)。所考慮的因素通常還應包括開發(fā)的風險,建筑施工;為;米;
千米;否能夠得到需要的軟件和硬件資源和一個熟練的有能力的開發(fā)隊伍,與系統(tǒng)開發(fā)有關
的技術建筑施工;為;米;千米;否足以支持系統(tǒng)的研制。技術可行性的估計,需要有經驗
的人員去完成。
(3)操作可行性判斷系統(tǒng)的操作方式在該用戶組織內建筑施工;為;米;千米;否可行。
分析、設計人員應以新系統(tǒng)的目標和作用范圍為依據(jù)提出一種以上的設計方案,從技術可行
性、經濟可行性、操作可行性等方面進行比較,并選擇出綜合最優(yōu)的方案。根據(jù)可行性研究
結果要做出的決定建筑施工;為;米;千米;:建筑施工;為;米;千米;否繼續(xù)按預定目標
進行這項開發(fā)工程,可行性分析人員必須清楚地表明他對這個關鍵性決定的建議。如果認為
值得繼續(xù)進行這項開發(fā)工程,則應提供選擇一種最好的解法并說明理由??尚行苑治鼋ㄖ?/p>
工;為;米;千米;在問題的目標和約束之間的一種權衡,還可能有的結果則建筑施工;為;
米;千米;修改目標或放寬約束。
3.軟件計劃
分析人員應該為推薦的系統(tǒng)草擬T分軟件計劃,其中描述的建筑施工;為;米;千米;為了
成功地進行一個軟件項目,其所需要做的工作、需要的資源、需要的工作量和費用以及應遵
循的進度安排。軟件計劃由兩項任務組成:分析和估算。分析建筑施工;為;米;千米;對系
統(tǒng)內各軟件功能的界限的劃定。估算建筑施工;為;米;千米;指根據(jù)已有的定性數(shù)據(jù)和已
往的經驗對系統(tǒng)開發(fā)的資源、費用和進度進行定量的估計。軟件開發(fā)項目的進度安排可以從
兩種觀點來考慮:一建筑施工;為;米;千米;項目的交付日期已定,負責開發(fā)工作的軟件機
構被限制在一個規(guī)定的時間范圍內分配其工作量。二建筑施工;為;米;千米;項目最后的
交付日期由軟件機構自已確定,可以從最佳的利用各種資源的角度出發(fā)來分配工作量,項目
最后的交付日期經過對軟件各部分仔細分析后才確定。在多數(shù)項目中,遇到的往往建筑施工;
為;米;千米;第一種情況。軟件計劃的閱讀者可以包括軟件主管部門、用戶和技術人員。
所確定的成本與進度可供主管部門復審。它同時也給出了整個軟件生命周期的基本成本預算
的進度安排。
(-)軟件需求分析
軟件需求分析工作建筑施工;為;米;千米;軟件生存期中重要的一步,也建筑施工;為;
米;千米;決定性的一步。只有通過軟件需求分析,才能把軟件功能和性能的總體概念描述
為具體的軟件需求規(guī)格說明,從而奠定軟件開發(fā)的基礎。軟件需求分析工作也建筑施工;為;
米;千米;一個不斷認識和逐步細化的過程。該過程將軟件設計階段所確定的軟件范圍(工
作域)逐步細化到可詳細定義的程度,并分析出各種不同的軟件元素,然后為這些元素找到
可行的解決方法。制定軟件的需求規(guī)格說明不只建筑施工;為;米;千米;軟件開發(fā)人員的
事,用戶也起著至關重要的作用。用戶必須對軟件功能和性能提出初步要求,并澄清一些模
糊概念。而軟件分析人員則要認真了解用戶的要求,細致地進行調查分析,把用戶"做什么"
的要求最終轉換成一個完全的、精細的軟件邏輯模型并寫出軟件的需求規(guī)格說明,準確地表
達用戶的要求。
1.軟件需求分析任務
需求分析所要做的工作建筑施工;為;米;千米;深入描述軟件的功能和性能,確定軟件設
計的限制和軟件同其他系統(tǒng)元素的接口細節(jié)。定義軟件的其他有效性需求。分析員通過需求
分析,逐步細化對軟件的要求,描述軟件要處理的數(shù)據(jù)域,并給軟件開發(fā)提供一種可轉化為
數(shù)據(jù)設計、結構設計和過程設計的數(shù)據(jù)與功能表示。在軟件完成后,制定的軟件需求規(guī)格說
明還要為評價軟件質量提供依據(jù)。需求分析階段研究的對象建筑施工;為;米;千米;軟件
項目的用戶要求。需要注意的建筑施工;為;米;千米;,必須理解用戶的各項要求,但又
不能全盤接受所有的要求。因為并非所有用戶要求都建筑施工;為;米;千米;合理的。對
其中模糊的要求還需要澄清,然后才能決定建筑施工;為;米;千米;否可以采納。對于那
些無法實現(xiàn)的要求應向用戶做充分的解釋,以求得諒解。準確地表達所接受的用戶要求,建
筑施工;為;米;千米;需求分析的另一個重要方面。只有經過確切描述的軟件需求才能成
為軟件設計基礎。通常軟件開發(fā)項目建筑施工;為;米;千米;要實現(xiàn)目標系統(tǒng)的物理模型,
即確定待開發(fā)軟件系統(tǒng)的系統(tǒng)元素,并將功能和數(shù)據(jù)結構分配到這些系統(tǒng)元素中。它建筑施
工;為;米;千米;軟件實現(xiàn)的基礎。但建筑施工;為;米;千米;目標系統(tǒng)的具體物理模
型建筑施工;為;米;千米;由它的邏輯模型經實例化,即具體到某個業(yè)務領域而得到的。
與物理模型不同,邏輯模型忽視實現(xiàn)機制與細節(jié),只描述系統(tǒng)要完成的功能和要處理的數(shù)據(jù)。
作為目標系統(tǒng)的參考,需求分析的任務就建筑施工;為;米;千米;借助于當前系統(tǒng)的邏輯
模型導出目標系統(tǒng)的邏輯模型,解決目標系統(tǒng)的“做什么”的問題。
(1)獲得當前系統(tǒng)的物理模型。當前系統(tǒng)可能建筑施工;為;米;千米;需要改進的某個
已在計算機運行的數(shù)據(jù)處理系統(tǒng),也可能建筑施工;為;米;千米;一個人工的數(shù)據(jù)處理過
程。在這一步首先分析、理解當前系統(tǒng)建筑施工;為;米;千米;如何運行的,了解當前系
統(tǒng)的組織機構、輸入輸出、資源利用情況和日常數(shù)據(jù)處理過程,并用一個具體模型來反映自
己對當前系統(tǒng)的理解。這一模型應客觀地反映現(xiàn)實世界的實際情況。
(2)抽象出當前系統(tǒng)的邏輯模型。在理解當前系統(tǒng)"怎樣做”的基礎上,抽取其"做什么"
的本質,從而從當前系統(tǒng)的物理模型抽象出當前系統(tǒng)的邏輯模型。在物理模型中有許多物理
因素,隨著分析工作的深入,有些非本質的物理因素就成為不必要的負擔,因而需要對物理
模型進行分析,區(qū)分出本質的和非本質的因素,去掉那些非本質的因素即可獲得反映系統(tǒng)本
質的邏輯模型。
(3)建立目標系統(tǒng)的邏輯模型。分析目標系統(tǒng)與當前系統(tǒng)邏輯上的差別,明確目標系統(tǒng)統(tǒng)
到底要"做什么",從當前系統(tǒng)的邏輯模型導出目標系統(tǒng)的邏輯模型。(4)為了對目標系
統(tǒng)做完整的描述,還需要對得到的邏輯模型做一些補充。①說明目標系統(tǒng)的用戶界面。根據(jù)
目標系統(tǒng)所處的應用環(huán)境及它與外界環(huán)境的相互關系,研究所有可能與它發(fā)生聯(lián)系和作用的
部分,從而決定人機界面。②說明至今尚未詳細考慮的細節(jié)。這些細節(jié)包括系統(tǒng)的啟動和結
束、出錯處理、系統(tǒng)的輸入輸出和系統(tǒng)性能方面的需求。③其他。例如系統(tǒng)的其他必須滿足
的性能和限制等等。
2.需求分析的過程
需求分析階段的工作,可以分成以下4個方面:對問題的識別、分析與綜合、制定規(guī)格說明和
評審。
(1)問題識別首先系統(tǒng)分析人員要研究計劃階段產生的可行性分析報告(如果有的話)和
軟件項目實施計劃。主要建筑施工;為;米;千米;從系統(tǒng)的角度來理解軟件并評審用于產
生計劃估算的軟件范圍建筑施工;為;米;千米;否恰當。確定對目標系統(tǒng)的綜合要求,即
軟件的需求。并提出這些需求實現(xiàn)條件,以及需求應達到的標準。也就建筑施工;為;米;
千米;要求所開發(fā)軟件做什么,做到什么程度。這些需求包括:
?功能需求:列舉出所開發(fā)軟件在職能上應做什么。這建筑施工;為;米;千米;最主要的需
求。
?性能需求:給出所開發(fā)軟件的技術性能指標,包括存儲容量限制、運行時間限制、安全保密
性等。
?環(huán)境需求:這建筑施工;為;米;千米;對軟件系統(tǒng)運行時所處環(huán)境的要求。例如在硬件方
面,采用什么機型、有什么外部設備、數(shù)據(jù)通信接口等等。在軟件方面,采用什么支持系統(tǒng)
運行的系統(tǒng)軟件(指操作系統(tǒng)、網絡軟件、數(shù)據(jù)庫管理系統(tǒng)等).在使用方面,需要使用部
門在制度上、操作人員的技術水平上應具備什么樣的條件等等。
?可靠性需求:各種軟件在運行時,失效的影響各不相同.在需求分析時,應對所開發(fā)軟件在
投入運行后不發(fā)生故障的概率,按實際的運行環(huán)境提出要求,對于那些重要的軟件,或建筑
施工;為;米;千米;運行失效會造成嚴重后果的軟件,應當提出較高的可靠性要求,以期
在開發(fā)的過程中采取必要的措施,使軟件能夠高度可靠地穩(wěn)定運行,避免因運行事故而帶來
的損失。
?安全保密要求:工作在不同環(huán)境的軟件對其安全,保密的要求顯然建筑施工;為;米;千米;
不同的。應當把這方面的需求恰當?shù)刈龀鲆?guī)定,以便對所開發(fā)的軟件給予特殊的設計,使其
在運行中其安全方面的性能得到必要的保證。
?用戶界面需求:軟件與用戶界面的友好性建筑施工;為;米;千米;用戶能夠方便、有效、
愉快地使用該軟件的關鍵之一。從市場角度來看,具有友好用戶界面的軟件有很強的競爭力。
因此,必須在需求分析時,為用戶界面細致地規(guī)定達到的要求。
?資源使用需求:這建筑施工;為;米;千米;指所開發(fā)軟件運行時所需的數(shù)據(jù)、軟件、內存
空間等各項資源外,軟件開發(fā)時所需的人力、支撐軟件、開發(fā)設備等則屬于軟件開發(fā)的資源,
需要在需求分析時加以確定。
?軟件成本消耗與開發(fā)進度需求:在軟件項目立項后,要根據(jù)合同規(guī)定,對軟件開發(fā)的進度和
步驟的費用提出要求,作為開發(fā)管理的依據(jù)。
?預先估計以后系統(tǒng)可能達到的目標。這樣,在開發(fā)過程中,可對系統(tǒng)將來可能擴駐與修改
做準備。一旦需要時,就比較容易進行補充和修改。
?功能性需求建筑施工;為;米;千米;人們普遍關注的,但常常忽視對非功能性需求的分
析。其實非功能性需求并不建筑施工;為;米;千米;無關緊要的,它們涉及到的方面多而
廣,因而容易被忽略。如果在進行需求分析之前沒有做過可行性分析,那么補充完成這部分
工作往往建筑施工;為;米;千米;必要的。從問題定義和調查研究入手,與用戶密切聯(lián)系,
詳細了解問題提出的背景,弄清要解決什么問題。然后從軟件系統(tǒng)特性和用戶目標出發(fā),做
市場調查和現(xiàn)場考察。仔細收集信息之后進行數(shù)據(jù)分析和功能分析,建立系統(tǒng)的高層邏輯模
型,再進一步做成本/效益分析。最后提交一份可行性分析報告,從技術、經濟、社會效應
等方面論證可行性,以確認軟件開發(fā)的目標建筑施工;為;米;千米;否可行。問題識別的
另一項工作建筑施工;為;米;千米;建立分析所需要的通信途徑,以保證能順利地對問題
進行分析。分析員必須與用戶、軟件開發(fā)機構的管理部門、軟件開發(fā)組的人員建立聯(lián)系。項
目負責人在此過程中起協(xié)調人的作用。分析員通過這種通信途徑與各方商討,以便能滿足用
戶的要求。
(2)分析與綜合需求分析的第二步工作建筑施工;為;米;千米;問題分析和方案的綜合。
分析員需從數(shù)據(jù)流和數(shù)據(jù)結構出發(fā),逐步細化所有的軟件功能,找出系統(tǒng)各元素之間的聯(lián)系、
接口特性和設計上的限制,分析它們建筑施工;為;米;千米;否滿足功能要求,建筑施工;
為;米;千米;否合理。依據(jù)功能需求、性能需求、運行特性和設計上的限制分析它們建筑
施工;為;米;千米;否滿足功能要求,建筑施工;為;米;千米;否合理。依據(jù)功能需求、
性能需求、運行環(huán)境需求等,剔除其不合理的部分,增加其需要的部分。最終綜合成系統(tǒng)的
解決方案,給出目標系統(tǒng)的詳細邏輯模型。在這個步驟中,分析和綜合工作反復地進行。在
對現(xiàn)行問題和期望的信息(輸入和輸出)進行分析的基礎上,分析員開始綜合出一個或幾個
解決方案,然后檢查這些方案建筑施工;為;米;千米;否符合軟件計劃中規(guī)定的范圍等等,
再進行修改??傊?,對問題進行分析和綜合的過程將一直持續(xù)到分析員與用戶雙方都感到有
把握正確地制定該軟件的規(guī)格說明為止。常用的分析方法有面向數(shù)據(jù)流的結構化分析方法
(簡稱SA)、面向數(shù)據(jù)結構的Jackson方法(簡稱JSD)、面向對象的分析方法(簡稱0
0A)等,以及用于建立動態(tài)、模型的狀態(tài)遷移圖或Petri網等。這些方法都采用圖文結合的
方式,可以直觀地描述軟件的邏輯模型。
(3)編制需求分析的文檔已經確定的需求應當?shù)玫角逦鷾蚀_的描述。通常把描述需求的文
檔叫做軟件需求規(guī)格說明書。同時,為了確切表達用戶對軟件的輸入輸出要求,還需要制定
數(shù)據(jù)要求說明書及編寫初步的用戶手冊,著重反映被開發(fā)軟件的用戶界面和用戶使用的具體
要求。此外,依據(jù)在需求分析階段對系統(tǒng)的進一步分析,從目標系統(tǒng)的精細模型出發(fā),可以
更確切地估計所開發(fā)項目的成本與進度,從而修改、完善與確定軟件開發(fā)的實施計劃。
(4)需求分析評審作為需求分析階段工作的復查手段,在需求分析的最后一步,應該對功
能的正確性、完整性和清晰性,以及其他需求給予評價。評審的主要內容建筑施工;為;米;
千米;:
?系統(tǒng)定義的目標建筑施工;為;米;千米;否與用戶的要求一致;
?系統(tǒng)需求分析階段提供的文檔資料建筑施工;為;米;千米;否齊全;
?文檔中的所有描述建筑施工;為;米;千米;否完整、清晰、準確所反映用戶要求;
?與所在其他系統(tǒng)成分的重要接口建筑施工;為;米;千米;否都已經描述;
?所開發(fā)項目的數(shù)據(jù)流與數(shù)據(jù)結構建筑施工;為;米;千米;否足夠,確定;
?所有圖表建筑施工;為;米;千米;否清楚,在不補充說明時能否理解;
?主要功能建筑施工;為;米;千米;否已包括在規(guī)定的軟件范圍之內,建筑施工;為;米;
千米;否都已充分說明;
?設計的約束條件或限制條件建筑施工;為;米;千米;否符合實際;
?開發(fā)的技術風險建筑施工;為;米;千米;什么
?建筑施工;為;米;千米;否考慮過軟件需求的其他方案;
?建筑施工;為;米;千米;否考慮過將來可能會提出的軟件需求;
?建筑施工;為;米;千米;否詳細制定了檢驗標準,它們能否對系統(tǒng)定義建筑施工;為;
米;千米;否成功進行確認;
?有沒有遺漏、重復或不一致的地方;
?用戶建筑施工;為;米;千米;否審查了初步的用戶手冊;
?軟件開發(fā)計劃中的估算建筑施工;為;米;千米;否受到了影響。為保證軟件需求定義的
質量,評審應以專門指定的人員負責,并按規(guī)程嚴格進行。評審結束應有評審負責人的結論
意見及簽字。除分析員之外,用戶,開發(fā)部門的管理者,軟件設計、實現(xiàn)、測試的人員都應
當參加評審工作。通常,評審的結果都包括了一些修改意見,待修改完成后再經評審通過,
才可進入設計階段。
3.軟件需求分析的原則
近年來已提出了許多軟件分析與說明的方法,雖然各種分析方法都有其獨特的描述方法,但
總的看來,所有分析方法還建筑施工;為;米;千米;有它們共同適用的基本原則。
(1)必須能夠表達和理解問題的數(shù)據(jù)域和功能域所有軟件定義與開發(fā)工作最終建筑施工;
為;米;千米;為了解決數(shù)據(jù)處理問題,就建筑施工;為;米;千米;將一種形式的數(shù)據(jù)轉
換成另一種形式的數(shù)據(jù)。其轉換過程必定經歷輸入、加工數(shù)據(jù)和產生結果數(shù)據(jù)等步驟。對于
計算機程序處理的數(shù)據(jù),其數(shù)據(jù)域應包括數(shù)據(jù)流、數(shù)據(jù)內容和數(shù)據(jù)結構。數(shù)據(jù)流即數(shù)據(jù)通過
一個系統(tǒng)時的數(shù)據(jù)存儲(如磁盤文件或內存緩沖區(qū))中引入附加數(shù)據(jù)。對數(shù)據(jù)進行轉換建筑
施工;為;米;千米;程序中應有的功能或子功能。兩個轉換功能之間的數(shù)據(jù)傳遞就確定了
功能間的接口。數(shù)據(jù)內容即數(shù)據(jù)項。例如,學生名冊包含了班級、人數(shù)、每個學生的學號、
姓名、性別、各科成績等。學生名冊的內容由它所包含的項定義。為了理解對學生名冊的處
理,必須要理解它的數(shù)據(jù)內容。數(shù)據(jù)結構即各種數(shù)據(jù)項的邏輯組織。數(shù)據(jù)建筑施工;為;米;
千米;組織成表格,還建筑施工;為;米;千米;組織成有層次的樹型結構?在結構中數(shù)據(jù)
項與其他哪些數(shù)據(jù)項相關?所有數(shù)據(jù)建筑施工;為;米;千米;在一個數(shù)據(jù)結構中,還建筑
施工;為;米;千米;在幾個數(shù)據(jù)結構中?一個結構中的數(shù)據(jù)與其他結構中的數(shù)據(jù)如何聯(lián)系?
這些問題都由數(shù)據(jù)結構分析來解決。
(2)必須按自項向下、逐層分解的方式對問題進行分解和不斷細化如果將軟件要處理的問
題作為一個整體來看,顯得太大太復雜很難理解。如果把問題以某種方式分解為幾個較易理
解的部分,并確定各部分間的接口,從而實現(xiàn)整體功能。在需求分析階段,軟件的功能域和
信息域都能做進一步的分解。這種分解可以建筑施工;為;米;干米;同一層次上的,稱為
橫向分解;也可以建筑施工;為;米;千米;多層次的縱向分解。例如,把一個功能分解成幾
個子功能,并確定這些子功能與父功能的接口,就屬于橫向分解。但如果繼續(xù)分解,把某些
子功能又分解為小的子功能,某個小的子功能又分解為更小的功能,這就屬于縱向分解了。
(3)要給出系統(tǒng)的邏輯視圖和物理視圖給出系統(tǒng)的邏輯視圖(邏輯模型)和物理視圖(物
理模型),這對系統(tǒng)滿足處理需求所提出的邏輯限制條件和系統(tǒng)中其他成分提出的物理限制
條件建筑施工;為;米;千米;必不可少的。軟件需求的邏輯視圖給出軟件要達到的功能和
要處理的數(shù)據(jù)之間的關系,而不建筑施工;為;米;千米;實現(xiàn)的細節(jié)。例如,一個商店的
銷售處理系統(tǒng)要從顧客那里獲取訂單,系統(tǒng)讀取訂單的功能并不關心訂單數(shù)據(jù)的物理形式和
用什么設計讀入,也就建筑施工;為;米;千米;說無需關心輸入的機制,只建筑施工;為;
米;千米;讀取顧客的訂單而已。類似的,系統(tǒng)中檢查庫存的功能只關心庫存文件的數(shù)據(jù)結
構,而不關心在計算機中的具體存儲方式。軟件需求的邏輯描述建筑施工;為;米;千米;
軟件設計的基礎。軟件需求的物理視圖給出處理功能和數(shù)據(jù)結構的實際表示形式,這往往建
筑施工;為;米;千米;由設備決定的,如一些軟件靠終端鍵盤輸入數(shù)據(jù),另一些軟件靠模
擬數(shù)據(jù)轉換設備提供數(shù)據(jù)。分析員必須弄清系統(tǒng)元素對軟件的限制并考慮功能和信息結構的
物理表示。
4.軟件需求分析方法
需求分析方法由對軟件的數(shù)據(jù)域和功能域的系統(tǒng)分析過程及其表示方法組成。大多數(shù)的需求
分析方法建筑施工;為;米;千米;由數(shù)據(jù)驅動的,也就建筑施工;為;米;千米;說,這
些方法提供了一種表示數(shù)據(jù)域的機制。分析員根據(jù)這種表示,確定軟件功能及其他特性,最
終建立一個待開發(fā)軟件的抽象模型,即目標系統(tǒng)的邏輯模型。數(shù)據(jù)域具有3種屬性:數(shù)據(jù)流、
數(shù)據(jù)內容和數(shù)據(jù)結構。通常,一種需求分析方法總要利用其中的一種或幾種屬性。目前已經
出現(xiàn)了許多需求分析方法,每一種分析方法都引入了不同的記號和分析策略。但建筑施工;
為;米;千米;它們仍具有以下的共性。
(1)支持數(shù)據(jù)域分析的機制
盡管每種方法進行數(shù)據(jù)域分析的方式不同,但它們仍有一些共同點。所有的方法都直接或間
接地涉及到數(shù)據(jù)流、數(shù)據(jù)內容或數(shù)據(jù)結構域的屬性。在多數(shù)情況下,數(shù)據(jù)流特征建筑施工;
為;米;千米;用將輸入轉換成輸出的變換(功能)過程來描述的,數(shù)據(jù)內容可以用數(shù)據(jù)詞
典機制明確表示,或者通過描述數(shù)據(jù)或數(shù)據(jù)對象的層次結構隱含地表示。
(2)功能表示的方法
功能一般用數(shù)據(jù)變換或加工來表示,每項功能可用規(guī)定的記號(圓圈或方框)標識。功能的
說明可以用自然語言文本來表達,也可以用形式化的規(guī)格說明語言來表達,還可以用上述的
兩種方式的混合方式------結構化語言來描述。
(3)接口的定義
接口的說明通常建筑施工;為;米;千米;數(shù)據(jù)表示和功能表示的直接產物。某個具體功能
的流進和流出數(shù)據(jù)流應建筑施工;為;米;千米;其他相關功能的流出或流入的數(shù)據(jù)流。因
此,通過數(shù)據(jù)流的分析可以確定功能間的接口。
(4)問題分解的機制以及對抽象的支持
問題分解和抽象主要依靠分析員在不同抽象層次上表示數(shù)據(jù)域和功能域,以逐層細化的手段
建立分層結構來實現(xiàn)。例如,無論使用哪種分析方法,都能表示"計算職工每月工資"之類
的功能,并在這個抽象層次上操縱這個功能。另外,所有的分析方法都提供逐層分解的機制,
把"計算職工每月工資”功能劃分成一些子功能,如計算房租、計算用電費、計算用水費、
計算養(yǎng)老保險費等等。其中,每項子功能還可以在更低的一級抽象層次上表示。
(5)邏輯視圖和物理視圖
大多數(shù)方法允許分析員在著手問題的邏輯解決方案之前先分析物理視圖。通常,同一種表示
法既可用來表示邏輯視圖,也可用來表示物理視圖。
(6)系統(tǒng)抽象模型
為了能夠上匕較精確地定義軟件需求,可以建立待開發(fā)軟件的一個抽象的模型,用基于抽象模
型的術語來描述軟件系統(tǒng)的功能和性能,形成軟件需求規(guī)格說明。這種抽象的模型建筑施工;
為;米;千米;從外部現(xiàn)實世界的問題領域抽象而來,在高級層次上描述和定義系統(tǒng)的服務。
對于比較簡單的問題,不必建立抽象系統(tǒng)模型?;蛘呖梢哉J為,系統(tǒng)模型在分析員頭腦中形
成,直接由分析員寫成規(guī)格說明。但對于比較復雜的問題,僅有在頭腦中想象的模型建筑施
工;為;米;千米;不夠的,必須建立適當?shù)谋容^形式化的抽象系統(tǒng)模型,才能準確全面地
反映問題領域中各種復雜的要求。不同類型的問題有不同的需要解決的中心問題,因而要建
立不同類型的系統(tǒng)模型。對于數(shù)學軟件,設計的中心問題建筑施工;為;米;千米;算法,
軟件人員主要力量要花在數(shù)學模式算法的考慮上。對于數(shù)據(jù)通信軟件,中心問題建筑施工;
為;米;千米;數(shù)據(jù)傳送和過程控制,實現(xiàn)算法簡單,采用數(shù)據(jù)流模型比較合適。對于涉及
大量數(shù)據(jù)的數(shù)據(jù)處理軟件,中心問題建筑施工;為;米;千米;數(shù)據(jù)處理,包括數(shù)據(jù)的采集、
數(shù)據(jù)的傳送、存儲、變換、輸出等,一旦了解了數(shù)據(jù)結構,與它相關的算法就很簡單了。如
果系統(tǒng)要求有數(shù)據(jù)支持,通過數(shù)據(jù)庫獲取和存放信息,還需要考慮數(shù)據(jù)在數(shù)據(jù)庫中的組織方
式和存取方法,建立數(shù)據(jù)庫模型。因此,在分析過程中數(shù)據(jù)模型建筑施工;為;米;千米;
首先要集中精力考慮的問題。系統(tǒng)模型的建立建筑施工;為;米;千米;對現(xiàn)實世界中存在
的有關實體和活動的抽象和精化,其建立過程包括觀察分析、模型表示和模型檢查3個階段。
首先,分析員和用戶合作,從各方面觀察現(xiàn)實世界中的有關實體和活動,建立理解的共同基
準,分清哪些概念與系統(tǒng)相關,必須納入系統(tǒng)模型,哪些建筑施工;為;米;千米;系統(tǒng)模
型不必關心的,分析員和用戶在共同理解的基礎上,建立系統(tǒng)模型,包括系統(tǒng)提供的各種系
統(tǒng)服務,模型表示的細節(jié)應有:系統(tǒng)輸入、系統(tǒng)輸出、系統(tǒng)數(shù)據(jù)處理、系統(tǒng)控制等。建立系統(tǒng)
模型以后,還要進行檢查。除了靜態(tài)檢查之外,系統(tǒng)描述可以部分地模擬執(zhí)行,將執(zhí)行情況
與對外部現(xiàn)實世界系統(tǒng)觀察得到的系統(tǒng)跟蹤信息進行對照,檢查模型建筑施工;為;米;千
米;否符合要求。這種建立系統(tǒng)模型并模擬執(zhí)行和檢查的方法叫做系統(tǒng)原型開發(fā)。
(三)結構化分析方法
結構化分析建筑施工;為;米;千米;面向數(shù)據(jù)流進行需求分析的方法。20世紀70年代末,
經YourdonE.,Con-stantineL.,DeMarcoT.等人提出和發(fā)展,至今已得到廣泛應用。
結構化分析方法的一些重要概念也滲透在其他開發(fā)方法中。例如,結構化分析與設計技術(S
tructuredAnalysisandDesignTechnique,SADT)、面向對象技術(Object-Oreint
edTechnique,GOT),IDEF方法等。結構化分析方法適合于數(shù)據(jù)處理類型軟件的需求分
析。由于利用圖形表達需求,顯得清晰、簡明,易于學習和掌握。具體來說,結構化分析方
法就建筑施工;為;米;千米;用抽象模型的概念,按照軟件內部數(shù)據(jù)傳遞、變換的關系,
自頂向下逐層分解,直到找到滿足功能要求的所有可實現(xiàn)的軟件為止。根據(jù)DeMarco的論
述,結構化分析方法使用的工具有:數(shù)據(jù)流圖、數(shù)據(jù)詞典、結構化英語、判定表、判定樹。結
構化分析方法有兩個明顯特點:
(1)自頂向下逐層分解。采用簡明易懂、直觀的描述方式
1.數(shù)據(jù)流圖
數(shù)據(jù)流圖也稱為BubbleChartpgdataFlowGraph.建筑施工;為;米;千米;描述數(shù)
據(jù)處理過程的工具。數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,以圖形的方式刻畫數(shù)據(jù)流從輸入到
輸出的移動變換過程。
(1)數(shù)據(jù)流圖
的主要圖形元素從數(shù)據(jù)流圖中可知,數(shù)據(jù)流圖的基本圖形元素有4種。數(shù)據(jù)流建筑施工;為;
米;千米;沿箭頭方向傳送數(shù)據(jù)的通道,它們大多建筑施工;為;米;千米;在加工之間傳
輸加工數(shù)據(jù)的命名通道,也有連接數(shù)據(jù)存儲文件和加工的沒有命名的數(shù)據(jù)通道。這些數(shù)據(jù)流
雖然沒有命名,但因聯(lián)接著有名加工和有名文件,所以其含意也建筑施工;為;米;千米;
清楚的。同一數(shù)據(jù)流圖上不能有同名的數(shù)據(jù)流。多個數(shù)據(jù)流可以指向同個加工,也可以從一
個加工散發(fā)出許多數(shù)據(jù)流。加工建筑施工;為;米;千米;以數(shù)據(jù)結構或數(shù)據(jù)內容作為加工
對象的。加工的名字通常建筑施工;為;米;千米;一個動詞短語,簡明扼要地表明完成的
建筑施工;為;米;千米;什么加工。文件在數(shù)據(jù)流圖中起保存數(shù)據(jù)的作用,因而稱為數(shù)據(jù)
存儲(DataStore)。它可以建筑施工;為;米;千米;數(shù)據(jù)庫文件或任何形式的數(shù)據(jù)組織。
指向文件的數(shù)據(jù)流可理解為寫入文件或查詢文件,從文件中引出的數(shù)據(jù)流可理解為從文件讀
取數(shù)據(jù)或得到查詢結果。數(shù)據(jù)流圖中第4種元素建筑施工;為;米;千米;數(shù)據(jù)源點或匯點,
它表示圖中要處理數(shù)據(jù)的輸入來源及處理結果要送往何處。由于它在圖中的出現(xiàn)僅僅建筑施
工;為;米;千米;一個符號,并不需要以軟件的形式進行設計和實現(xiàn),因而,它只建筑施
工;為;米;千米;數(shù)據(jù)流圖的外圍環(huán)境中的實體,故稱外部實體。在實際問題中它可能建
筑施工;為;米;干米;計算機外圍設備或建筑施工;為;米;千米;傳感裝置。
(2)數(shù)據(jù)流與加工之間的關系在數(shù)據(jù)流圖中,如果有兩個以上的數(shù)據(jù)流指向一個加工,或
建筑施工;為;米;千米;從一個加工中引出兩個以上的數(shù)據(jù)流,這些數(shù)據(jù)流之間往往存在
一定的關系。
(3)分層的數(shù)據(jù)流圖為了表達數(shù)據(jù)處理過程的數(shù)據(jù)加工情況,用一個數(shù)據(jù)流圖建筑施工;
為;米;千米;不夠的。為表達稍為復雜的實際問題需要按照問題的層次結構進行逐步分解,
并以分層的數(shù)據(jù)流圖反映這種結構關系。先把整個數(shù)據(jù)處理過程暫且看成一個加工,它的輸
入數(shù)據(jù)和輸出數(shù)據(jù)實際上反映了系統(tǒng)與外界環(huán)境的接口。這就建筑施工;為;米;千米;分
層數(shù)據(jù)圖的頂層。但只此一圖并未表明數(shù)據(jù)的加工要求,需要進一步細化。如果這個數(shù)據(jù)處
理包括3個子系統(tǒng),就可以畫出表示這3個子系統(tǒng)1、2、3的加工及其相關的數(shù)據(jù)流。這
建筑施工;為;米;千米;頂層下面的第一層數(shù)據(jù)流圖,記為DFD/L1.繼續(xù)分解這3個子
系統(tǒng),可得到第二層數(shù)據(jù)流圖DFD/L2.1.DFD/L2.2,及DFD/L2.3,它們分別建筑施工;
為;米;千米;子系統(tǒng)。1、2和3的細化。僅以DF/2為例,其中的4個加工的編號均可聯(lián)
系到其上層圖中的子系統(tǒng)這樣得到的多層數(shù)據(jù)流圖可十分清晰地表達整個數(shù)據(jù)加工系統(tǒng)
20
的真實情況。對任何一層數(shù)據(jù)流圖來說,稱它的上層圖為父圖,在它下一層的圖則稱為子圖。
在多層數(shù)據(jù)流圖中,可以把頂層流圖、底層流圖和中間層流圖區(qū)分開。頂層流圖僅包含一個
加工,它代表被開發(fā)系統(tǒng)。它的輸入流建筑施工;為;米;千米;該系統(tǒng)的輸入數(shù)據(jù),輸出
流建筑施工;為;米;千米;系統(tǒng)的輸出數(shù)據(jù)。頂層流圖的作用在于表明被開發(fā)系統(tǒng)的范圍,
以及它和周圍環(huán)境的數(shù)據(jù)交換關系。底層流圖建筑施工;為;米;千米;指其加工不須再做
分解的數(shù)據(jù)流圖,其加工稱為"原子加工"。中間層流圖則表示對其上層父圖的細化。它的
每一加工可以繼續(xù)細化,形成子圖。中間層次的多少視系統(tǒng)的復雜程度而定。
(4)數(shù)據(jù)流圖畫法畫數(shù)據(jù)流圖的基本步驟概括地說,就建筑施工;為;米;千米;自外向
內,自頂向下,逐層細化,完善求精。具體步驟可按如下來做。
①先找系統(tǒng)的數(shù)據(jù)源點與匯點。它們建筑施工;為;米;千米;外部實體,由它們確定系統(tǒng)
與外界的接口。
②找出外部實體的輸出數(shù)據(jù)流與輸入數(shù)據(jù)流。
③在圖的邊上畫出系統(tǒng)的外部實體。
④從外部實體的輸出數(shù)據(jù)流(即系統(tǒng)的源點)出發(fā),按照系統(tǒng)的邏輯需要,逐步畫出一系列
邏輯加工,直到找到外部實體所需的輸入數(shù)據(jù)流(即系統(tǒng)的匯點),形成數(shù)據(jù)流的封閉。
⑤按照下面所給的原則進行檢查和修改。
⑥按照上述步驟,再從各加工出發(fā),畫出所需的子圖。
(5)進行檢查和修改的原則
①數(shù)據(jù)流圖上所有圖形符號只限于前述四種基本圖形元素。
②數(shù)據(jù)流的主圖必須包括前述4種基本元素,缺一不可。
③數(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ù)流圖建筑施工;為;米;千米;實際業(yè)務流程的客
觀映象,說明系統(tǒng)"做什么"而不建筑施工;為;米;千米;要表明系統(tǒng)"如何做",因此
不建筑施工;為;米;千米;系統(tǒng)的執(zhí)行順序,不建筑施工;為;米;千米;程序流程圖。
⑨初畫時可以忽略瑣碎的細節(jié),以集中精力于主要數(shù)據(jù)流。在需求分析期間,有時會要求修
改系統(tǒng)的某些方面。使用數(shù)據(jù)流圖可以很容易地把需要修改的區(qū)域分離出來。只要清楚地了
解穿過要修改區(qū)域邊界的數(shù)據(jù)流,就可以為將來的修改做好充分的準備,而且在修改時能夠
不打亂系統(tǒng)的其他部分。
2.數(shù)據(jù)詞典
數(shù)據(jù)詞典的任務建筑施工;為;米;千米;對于數(shù)據(jù)流圖中出現(xiàn)的所有被命名的圖形元素在
數(shù)據(jù)詞典中作為一個詞條加以定義,使得每一個圖形元素的名字都有一個確切的解釋。數(shù)據(jù)
詞典中所有的定義應建筑施工;為;米;千米;嚴密的、精確的,不可有半點含糊,不可有
二義性。
(1)數(shù)據(jù)詞典的定義
對在數(shù)據(jù)流圖中每一個命名的圖形元素均給予定義,其內容有圖形元素的名字、別名或編號、
分類、描述、定義、位置等。以下建筑施工;為;米;千米;不同詞條應給出的內容。
①數(shù)據(jù)流詞條描述數(shù)據(jù)流建筑施工;為;米;千米;數(shù)據(jù)結構在系統(tǒng)內傳播的路徑。一個數(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ù)詞典中給出描述。其描述需要以下信息:數(shù)據(jù)元
素名類型:數(shù)字(離散值,連續(xù)值),文字S(編碼類型)。長度。取值范圍。相關的數(shù)據(jù)元
素及數(shù)據(jù)結構。數(shù)據(jù)元素的取值可分數(shù)字型與文字型。數(shù)字型又有離散值與連續(xù)值之分。離
散值或建筑施工;為;米;千米;枚舉的,或建筑施工;為;米;千米;介于上界的一組數(shù);
連續(xù)值一般建筑施工;為;米;千米;有取值范圍的實數(shù)集。對于文字型,需給予編碼類型,
文字值需加以定義。
③數(shù)據(jù)文件詞條描述數(shù)據(jù)文件建筑施工;為;米;千米;數(shù)據(jù)結構保存的地方。一個數(shù)據(jù)文
件詞條應有以下幾項內容。數(shù)據(jù)文件名。簡述:存放的建筑施工;為;米;千米;什么數(shù)據(jù)。
輸入數(shù)據(jù)。輸出數(shù)據(jù)。數(shù)據(jù)文件組成:數(shù)據(jù)結構。存儲方式:N頁序,直接,關鍵碼。存取頻率。
④加工邏輯詞條描述加工比較復雜,它到后來就建筑施工;為;米;千米;一段程序。加工
的表達方式有判定表,判定樹和結構化英語等等,它們要全部寫在一個詞條中建筑施工;為;
米;千米;有困難的。主要描述有。加工名。加工編號:反映該加工的層次。簡要描述:加工
邏輯及功能簡述。輸入數(shù)據(jù)流。輸出數(shù)據(jù)流。加工邏輯:簡述加工程序,加工順序。
⑤源點及匯(終)點詞條描述對于一個數(shù)據(jù)處理系統(tǒng)來說,源點和匯點應當比較少。如果過
多就缺少獨立性,人一機界面太復雜,這時就要考慮減少,提高系統(tǒng)獨立性。定義源點和匯
點時,應包括。名稱:外部實體名。簡要描述:什么外部實體。有關數(shù)據(jù)流。數(shù)目。
(2)數(shù)據(jù)詞典的使用在結構化分析的過程中,可以通過名字,方便地查閱數(shù)據(jù)的定義:同時
可按各種要求,隨時列出各種表,以滿足分析員的需要。還可以按描述內容(或定義)來查
詢數(shù)據(jù)的名字,通過檢查各個加工的邏輯功能,可以實現(xiàn)和檢查在數(shù)據(jù)與程序之間的一致性
和完整性,在以后的設計與實現(xiàn)階段,以至于到維護階段。都需要參考數(shù)據(jù)詞典進行設計、
修改和查詢。
(3)數(shù)據(jù)結構的描述在數(shù)據(jù)詞典的編制中,分析員最常用的描述數(shù)據(jù)結構的方式有定義式
或Warnier圖。
①定義式在數(shù)據(jù)流圖中,數(shù)據(jù)流和數(shù)據(jù)文件都具有一定的數(shù)據(jù)結構。因此必須以一種清晰、
準確、無二義性方式來描述數(shù)據(jù)結構。這種定義方法建筑施工;為;米;千米;自頂向下,
逐級給出定義式,直到最后給出基本數(shù)據(jù)元素為止。
②Warnjer圖Warnjer圖建筑施工;為;米;千米;表示
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家有萌寵出游更添樂趣的秘訣
- 2025年度大學外籍教師聘請與跨文化教學服務合同
- 二零二五年度生物制藥原料質量控制與追溯服務合同3篇
- 二零二五年度食品包裝OEM生產合作協(xié)議書3篇
- 科技賦能下的家庭教育新模式與德育工作創(chuàng)新
- 二零二五年度車輛抵押擔保車輛拍賣合同模板3篇
- 二零二五年度財務顧問與內部控制建設合同3篇
- 2025版智慧社區(qū)裝修設計施工一體化合同2篇
- 網絡環(huán)境下的家庭教育問題及解決方案
- 科技在家庭急救箱中的應用與發(fā)展
- 環(huán)境監(jiān)測對環(huán)境保護的意義
- 2023年數(shù)學競賽AMC8試卷(含答案)
- 神經外科課件:神經外科急重癥
- 2024年低壓電工證理論考試題庫及答案
- 2023年十天突破公務員面試
- 《瘋狂動物城》中英文對照(全本臺詞)
- 醫(yī)院住院醫(yī)師規(guī)范化培訓證明(樣本)
- 小學六年級語文閱讀理解100篇(及答案)
- 氣功修煉十奧妙
- 安徽省物業(yè)服務標準
- 勾股定理的歷史與證明課件
評論
0/150
提交評論