軟件工程基礎(chǔ)_第1頁(yè)
軟件工程基礎(chǔ)_第2頁(yè)
軟件工程基礎(chǔ)_第3頁(yè)
軟件工程基礎(chǔ)_第4頁(yè)
軟件工程基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩65頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

程序設(shè)計(jì)&軟件工程基礎(chǔ)一、程序設(shè)計(jì)的概念

程序設(shè)計(jì):利用計(jì)算機(jī)解決具體問(wèn)題的全過(guò)程。

程序設(shè)計(jì)的基本過(guò)程:①分析所求解的問(wèn)題

②抽象數(shù)學(xué)模型

③設(shè)計(jì)合適的算法和數(shù)據(jù)結(jié)構(gòu)

④編寫(xiě)程序

⑤調(diào)試運(yùn)行

程序設(shè)計(jì)基礎(chǔ)二、程序設(shè)計(jì)方法1.結(jié)構(gòu)化程序設(shè)計(jì)(StructuredProgramming)

為了完成一些大規(guī)模、高復(fù)雜度的程序設(shè)計(jì)任務(wù),SP(和軟件工程)思想被提倡。強(qiáng)調(diào)數(shù)據(jù)類(lèi)型、程序結(jié)構(gòu),強(qiáng)調(diào)可靠性、可維護(hù)性甚于程序的效率。其主要思想如下:(1)注意程序的可讀性(2)采用自頂向下、逐步求精的設(shè)計(jì)方法。(3)程序語(yǔ)言只包括3種結(jié)構(gòu)(單入口,單出口)(4)模塊化程序設(shè)計(jì)基礎(chǔ)基本結(jié)構(gòu): 順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)基礎(chǔ)程序模塊1程序模塊2程序模塊2條件程序模塊1成立不成立條件程序模塊成立不成立2.面向?qū)ο蟪绦蛟O(shè)計(jì)(Object-OrientedProgramming)

20世紀(jì)80年代OOP由理論轉(zhuǎn)向?qū)嵺`,90年代開(kāi)始盛行。(1)軟件規(guī)模越來(lái)越大,(美國(guó)航天飛機(jī)系統(tǒng)4000萬(wàn)條代碼),人們不得不尋求更高效、更可靠的開(kāi)發(fā)技術(shù)。

(2)OOP抓住軟件開(kāi)發(fā)的本質(zhì),OOP開(kāi)發(fā)的軟件易重用、易修改、易測(cè)試、易擴(kuò)充。程序設(shè)計(jì)基礎(chǔ)

對(duì)象:用來(lái)描述客觀(guān)事物的實(shí)體。每個(gè)對(duì)象有各自的內(nèi)部屬性和操作方法。程序設(shè)計(jì)基礎(chǔ)整個(gè)程序是由一系列相互作用的對(duì)象構(gòu)成的,對(duì)象之間的交互通過(guò)發(fā)送消息來(lái)實(shí)現(xiàn)。屬性:頻道顏色音量方法:調(diào)節(jié)頻道調(diào)節(jié)顏色調(diào)節(jié)音量電視機(jī)電視機(jī)對(duì)象

類(lèi):具有相同的屬性和操作方法,并遵守相同規(guī)則的對(duì)象的集合。

類(lèi)是對(duì)象集合的抽象,規(guī)定了這些對(duì)象的公共屬性(即數(shù)據(jù)結(jié)構(gòu))和方法(操作數(shù)據(jù)的函數(shù))。對(duì)象是類(lèi)的一個(gè)實(shí)例。程序設(shè)計(jì)基礎(chǔ)OOP特點(diǎn):封裝、繼承、多態(tài)性程序設(shè)計(jì)基礎(chǔ)三、程序設(shè)計(jì)語(yǔ)言文章漢語(yǔ)、英語(yǔ)字、詞、語(yǔ)法結(jié)構(gòu)寫(xiě)文章程序計(jì)算機(jī)語(yǔ)言數(shù)據(jù)表示、表達(dá)式、語(yǔ)句結(jié)構(gòu)編程序

計(jì)算機(jī)語(yǔ)言:人與計(jì)算機(jī)通訊的語(yǔ)言

程序:利用計(jì)算機(jī)語(yǔ)言編寫(xiě)的能夠完成一定功能的一組代碼。

程序設(shè)計(jì)語(yǔ)言=計(jì)算機(jī)語(yǔ)言

1.語(yǔ)言的分類(lèi)應(yīng)用范圍通用語(yǔ)言、專(zhuān)用語(yǔ)言系統(tǒng)程序設(shè)計(jì)語(yǔ)言、科學(xué)計(jì)算語(yǔ)言事務(wù)處理語(yǔ)言、實(shí)時(shí)控制語(yǔ)言程序設(shè)計(jì)方法結(jié)構(gòu)化語(yǔ)言模塊化語(yǔ)言面向?qū)ο笳Z(yǔ)言與硬件的聯(lián)系程度機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言→與計(jì)算機(jī)硬件基本無(wú)關(guān)依賴(lài)于計(jì)算機(jī)硬件(低級(jí)語(yǔ)言)程序設(shè)計(jì)基礎(chǔ)

⑴機(jī)器語(yǔ)言

從本質(zhì)上說(shuō),計(jì)算機(jī)只能識(shí)別0和1兩個(gè)數(shù)字,因此,計(jì)算機(jī)能夠直接識(shí)別的指令是由一連串的0和1組合起來(lái)的二進(jìn)制編碼。機(jī)器指令=操作碼+操作數(shù)

機(jī)器語(yǔ)言:指計(jì)算機(jī)能夠直接識(shí)別的指令的集合。即以二進(jìn)制代碼表示的機(jī)器指令集合,它是計(jì)算機(jī)能夠直接識(shí)別和執(zhí)行的語(yǔ)言。程序設(shè)計(jì)基礎(chǔ)優(yōu)點(diǎn):占用內(nèi)存少少,執(zhí)行速度度快;缺點(diǎn):面向機(jī)器,,通用性差,,不易閱讀和和記憶,編程程工作量大,難難以維護(hù)。程序設(shè)計(jì)基礎(chǔ)礎(chǔ)[例]用Intel8086指令系統(tǒng)編編寫(xiě)機(jī)器語(yǔ)言言程序,完成成“9+8””優(yōu)點(diǎn):比機(jī)器語(yǔ)言言程序容易閱閱讀和修改缺點(diǎn):面向機(jī)器,,通用性差。。程序設(shè)計(jì)基礎(chǔ)礎(chǔ)⑵匯編語(yǔ)言匯編語(yǔ)言:用符號(hào)代替替機(jī)器指令所所產(chǎn)生的語(yǔ)言言。例如,8086匯編編語(yǔ)言實(shí)現(xiàn)現(xiàn)“9+8”源程序:用匯編語(yǔ)言言編寫(xiě)的程序序。匯編程序:負(fù)責(zé)翻譯的的軟件。主要作用→源源程序轉(zhuǎn)換成成用二進(jìn)制代代碼表示的目目標(biāo)程序。連接程序:將目標(biāo)程序序與庫(kù)文件或或其他目標(biāo)程程序連接起來(lái)來(lái)形成可執(zhí)行程程序。程序設(shè)計(jì)基礎(chǔ)礎(chǔ)匯編語(yǔ)言源程序目標(biāo)程序可執(zhí)行程序匯編程序連接程序⑶高級(jí)語(yǔ)言高級(jí)語(yǔ)言:用接近自然然語(yǔ)言和數(shù)學(xué)學(xué)語(yǔ)言的語(yǔ)法法、符號(hào)描述基本操作的的程序設(shè)計(jì)語(yǔ)語(yǔ)言FORTRAN、Pascal、C、C++、、Delphi、Java、C#例如用C++實(shí)現(xiàn)“9+8”程序設(shè)計(jì)基礎(chǔ)礎(chǔ)優(yōu)點(diǎn):符合人類(lèi)習(xí)習(xí)慣,簡(jiǎn)單易易學(xué)通用性強(qiáng),便便于維護(hù)源程序:用高級(jí)語(yǔ)言言編寫(xiě)的程序序。翻譯程序:將源程序翻翻譯成用二進(jìn)進(jìn)制代碼表示示的目標(biāo)程序。翻譯程序的工工作方式:①解釋方式::邊解釋邊執(zhí)執(zhí)行②編譯方式::編譯程序、、運(yùn)行程序程序設(shè)計(jì)基礎(chǔ)礎(chǔ)高級(jí)語(yǔ)言源程序執(zhí)行結(jié)果解釋程序解釋方式程序設(shè)計(jì)基礎(chǔ)礎(chǔ)編譯方式可執(zhí)行程序高級(jí)語(yǔ)言源程序編譯程序目標(biāo)程序連接程序2.程序設(shè)計(jì)計(jì)語(yǔ)言的選擇擇選擇編程語(yǔ)言言涉及很多因因素:①人的因素::編程小組精精通這門(mén)語(yǔ)言言嗎?②任務(wù)需要::選擇的語(yǔ)言言能否實(shí)現(xiàn)任任務(wù)的全部功功能?能跨平臺(tái)臺(tái)嗎?有數(shù)據(jù)據(jù)庫(kù)接口功能能嗎?能直接控制聲卡等等硬件嗎?③客戶(hù)指定。。例如要通過(guò)過(guò)串行口控制制一個(gè)外部設(shè)設(shè)備,C+匯編編語(yǔ)言是最明明智的選擇。。了解一些流行行的語(yǔ)言,對(duì)對(duì)于做出合理理選擇會(huì)有幫幫助。程序設(shè)計(jì)基礎(chǔ)礎(chǔ)一、軟件的定定義軟件:計(jì)算機(jī)系統(tǒng)中中的程序及其其文檔。程序:計(jì)算任務(wù)的處處理對(duì)象和處處理規(guī)則的描描述。文檔:為了便于了解解程序所需的的闡明性資料料。程序必須裝入入機(jī)器內(nèi)部才才能工作文檔供人閱閱讀,不一一定裝入機(jī)機(jī)器軟件工程基基礎(chǔ)18IEEE對(duì)對(duì)軟件的定定義(1983)軟件是計(jì)算算機(jī)程序、、方法、規(guī)規(guī)則、相關(guān)關(guān)的文檔資資料以及在在計(jì)算機(jī)上上運(yùn)行的程程序所必需需的數(shù)據(jù)的的集合。程序:是計(jì)算機(jī)機(jī)需要遵照照?qǐng)?zhí)行的一一系列指令令。它作為為一種具有邏輯結(jié)構(gòu)構(gòu)的信息,,精確而完完整地描述述計(jì)算任務(wù)務(wù)中的處理對(duì)象和和處理規(guī)則則。方法、規(guī)則則:通常是在在文檔中說(shuō)說(shuō)明并在程程序中實(shí)現(xiàn)現(xiàn)的。文檔:開(kāi)發(fā)、使使用和維護(hù)護(hù)程序所需需要的圖文文資料。數(shù)據(jù):向一個(gè)程程序提供的的輸入。二、軟件的的發(fā)展過(guò)程程軟件的發(fā)展展受到應(yīng)用用和硬件發(fā)發(fā)展的推動(dòng)動(dòng)和制約,,其發(fā)展過(guò)過(guò)程大致可可分為三個(gè)個(gè)階段:第一階段1946-1958第二階段1956-1968第三階段1968以后從第一個(gè)程序出現(xiàn)到實(shí)用的高級(jí)程序設(shè)計(jì)語(yǔ)言出現(xiàn),這期間重點(diǎn)考慮程序本身,尚未出現(xiàn)“軟件”一詞。實(shí)用的高級(jí)程序設(shè)計(jì)語(yǔ)言出現(xiàn)到軟件工程出現(xiàn),這期間出現(xiàn)軟件一詞,融程序及其有關(guān)的文檔于一體?!败浖C(jī)”軟件工程出現(xiàn)→現(xiàn)在,1968年大西洋公約學(xué)術(shù)會(huì)議提出“軟件工程”的概念。1.軟件危危機(jī)概念觀(guān)點(diǎn)1軟件產(chǎn)品的的生產(chǎn)總是是超出預(yù)算算,落后于計(jì)劃進(jìn)度度,而且產(chǎn)產(chǎn)品質(zhì)量不不可靠。觀(guān)點(diǎn)2在軟件的開(kāi)開(kāi)發(fā)和維護(hù)護(hù)過(guò)程中所所遇到的一系列嚴(yán)重重問(wèn)題。軟件的生產(chǎn)產(chǎn)過(guò)程不像像硬件那樣樣規(guī)范,受受人的因素素和外界影影響很大,,因此在軟軟件生產(chǎn)的的各階段都都會(huì)引入不不同程度的的錯(cuò)誤,致致使成本上上升,甚至至導(dǎo)致軟件件失敗。三、軟件危危機(jī)與軟件件工程2.軟件危危機(jī)的表現(xiàn)現(xiàn)軟件開(kāi)發(fā)和和維護(hù)費(fèi)用用急劇上升升不重視文檔檔資料產(chǎn)品質(zhì)量不不可靠軟件產(chǎn)品成成本高于硬硬件產(chǎn)品3.軟件開(kāi)開(kāi)發(fā)中的問(wèn)問(wèn)題軟件生產(chǎn)技技術(shù)進(jìn)展緩緩慢軟件成本和和質(zhì)量難以以控制對(duì)軟件開(kāi)發(fā)發(fā)的錯(cuò)誤認(rèn)認(rèn)識(shí)難以準(zhǔn)確、、全面把握握用戶(hù)需求求不重視階段段審查和復(fù)復(fù)審軟件復(fù)雜且且規(guī)模龐大大軟件維護(hù)費(fèi)費(fèi)用上升4.軟件工工程概念軟件工程(SoftwareEngineering,SE)一門(mén)研究用用工程化方方法構(gòu)建和和維護(hù)有效效的、實(shí)用用的和高質(zhì)量軟件的的學(xué)科。。軟件工程在軟件開(kāi)發(fā)發(fā)與維護(hù)過(guò)過(guò)程中采用用工程的原原理、方法法、技術(shù)并使用正確確的管理方方法來(lái)指導(dǎo)導(dǎo)軟件生產(chǎn)產(chǎn)的全過(guò)程程。主要內(nèi)容軟件開(kāi)發(fā)方方法軟件開(kāi)發(fā)過(guò)過(guò)程軟件開(kāi)發(fā)工工具軟件管理5.軟件工工程的基本本準(zhǔn)則B.W.Boehm綜合各方方意見(jiàn),于于1983年提出了了軟件工程程的基本準(zhǔn)準(zhǔn)則1.用分階段的的生命周期期計(jì)劃嚴(yán)格格管理?yè)?jù)統(tǒng)計(jì),在在不成功的的軟件項(xiàng)目目中有50%左右是是由于計(jì)劃劃不周造成成的。應(yīng)該該把軟件生生命周期劃劃分為若干干階段,并并制定出相相應(yīng)的切實(shí)實(shí)可行的計(jì)計(jì)劃,嚴(yán)格格按照計(jì)劃劃對(duì)開(kāi)發(fā)和和維護(hù)進(jìn)行行管理。2.堅(jiān)持進(jìn)行階階段評(píng)審設(shè)計(jì)的錯(cuò)誤誤占軟件錯(cuò)錯(cuò)誤的63%,編碼碼錯(cuò)誤只占占37%。。而且在后后期糾正錯(cuò)錯(cuò)誤的代價(jià)價(jià)非常高。。因此,必必須嚴(yán)格堅(jiān)堅(jiān)持階段評(píng)評(píng)審,及早早發(fā)現(xiàn)和糾糾正錯(cuò)誤3.實(shí)行嚴(yán)格的的產(chǎn)品質(zhì)量量控制在現(xiàn)實(shí)中由由于外部原原因要求對(duì)對(duì)需求等進(jìn)進(jìn)行修改是是難免的。。但必須有有嚴(yán)格的管管理制度和和措施。4.采用現(xiàn)代程程序設(shè)計(jì)技技術(shù)和軟件件工程技術(shù)術(shù)如結(jié)構(gòu)化程程序分析(StructuredAnalysis)和結(jié)構(gòu)化化設(shè)計(jì)(StructuredDesign)等。5.結(jié)果應(yīng)能清清楚地審查查由于軟件是是一種看不不見(jiàn)摸不著著的邏輯產(chǎn)產(chǎn)品,對(duì)它它的檢驗(yàn)和和審查很困困難。因此此,應(yīng)提供供可視化的的檢驗(yàn)標(biāo)準(zhǔn)準(zhǔn)和方法。。6.開(kāi)發(fā)人員應(yīng)應(yīng)少而精軟件開(kāi)發(fā)小小組的人員員應(yīng)該是素素質(zhì)高,人人員不宜過(guò)過(guò)多。人員員素質(zhì)低和和人員過(guò)多多,都會(huì)導(dǎo)導(dǎo)致軟件的的錯(cuò)誤率高高,且開(kāi)發(fā)發(fā)效率下降降,成本增增加。7.承認(rèn)不斷改改進(jìn)軟件工工程的必要要性軟件工程是是一門(mén)不斷斷迅速發(fā)展展的學(xué)科,,必須學(xué)習(xí)習(xí)和跟蹤先先進(jìn)的技術(shù)術(shù)和方法,,也要不斷斷總結(jié)經(jīng)驗(yàn)驗(yàn)、改進(jìn)方方法,要不不斷進(jìn)行技技術(shù)創(chuàng)新。。四、軟件生生命周期軟件生命周周期是從時(shí)間的角度出發(fā)發(fā),從軟件件目標(biāo)的提提出、定義義、開(kāi)發(fā)、、維護(hù),直直到最終被被丟棄的整整個(gè)過(guò)程。。計(jì)劃時(shí)期→→開(kāi)發(fā)時(shí)期期→運(yùn)行時(shí)時(shí)期1.計(jì)劃時(shí)時(shí)期問(wèn)題的定義義:提出軟件件項(xiàng)目的目目標(biāo)和規(guī)模??尚行匝芯烤浚簩?duì)項(xiàng)目進(jìn)進(jìn)行可行性性調(diào)研和論論證,確定定項(xiàng)目是否否能夠或者值得開(kāi)發(fā)發(fā)2.開(kāi)發(fā)時(shí)時(shí)期開(kāi)發(fā)時(shí)期要要具體分析析、設(shè)計(jì)和和實(shí)現(xiàn)計(jì)劃劃時(shí)期定義義的軟件。。需求分析:做什么概要設(shè)計(jì):建立目標(biāo)標(biāo)系統(tǒng)的總總體結(jié)構(gòu)詳細(xì)設(shè)計(jì):怎樣做編碼碼:選擇程序序設(shè)計(jì)語(yǔ)言言進(jìn)行描述述。測(cè)試試:?jiǎn)卧獪y(cè)試試、綜合測(cè)測(cè)試、確認(rèn)認(rèn)測(cè)試和系系統(tǒng)測(cè)試或或者驗(yàn)收測(cè)測(cè)試。3.運(yùn)行時(shí)時(shí)期交付使用→→維護(hù)工作作維護(hù)的主要要任務(wù):通過(guò)各種種必要的的維護(hù)活活動(dòng)延長(zhǎng)長(zhǎng)系統(tǒng)的的生命周周期。軟件開(kāi)發(fā)發(fā)的原則則與方法法結(jié)構(gòu)化軟軟件開(kāi)發(fā)發(fā)的原則則結(jié)構(gòu)化::用一組組規(guī)范的的步驟、、準(zhǔn)則和和工具來(lái)來(lái)進(jìn)行工工作最成熟、、最廣泛泛的方法法(1)用用戶(hù)參與與(2)先邏邏輯,后后物理(3)自自頂向下下逐步步求精功功能分分解與抽抽象(4)工工作成果果描述標(biāo)標(biāo)準(zhǔn)化軟件開(kāi)發(fā)發(fā)的方法法(1)系系統(tǒng)流程程圖(2)結(jié)結(jié)構(gòu)分析析法(3)結(jié)結(jié)構(gòu)化設(shè)設(shè)計(jì)法(4)數(shù)數(shù)據(jù)結(jié)構(gòu)構(gòu)法(5)層層次輸入入—處理理—輸出出方法(HIPO法)一、問(wèn)題題定義問(wèn)題是指指用戶(hù)的的基本要要求,就就是確切切地定義義用戶(hù)要要求解決決的問(wèn)題題,即確定問(wèn)題題的性質(zhì)質(zhì)、工程程的目標(biāo)標(biāo)和規(guī)模模。問(wèn)題定義義的目的的是要在在短時(shí)間間內(nèi),對(duì)對(duì)用戶(hù)的的要求有有一個(gè)比比較準(zhǔn)確確的估計(jì)計(jì),對(duì)要要實(shí)現(xiàn)的的系統(tǒng)規(guī)規(guī)模做到到心中有有數(shù)。但但僅有這這些還不不夠,還還要搞清清用戶(hù)不不打算干干什么,,在這個(gè)個(gè)系統(tǒng)中中哪些內(nèi)內(nèi)容不用用實(shí)現(xiàn)。。工作的宗宗旨是搞搞清要做做什么并并劃清要要實(shí)現(xiàn)的的系統(tǒng)的的范圍邊邊界。在問(wèn)題定定義階段段,分析析員應(yīng)盡盡可能站站在較高高的角度度去抽象象、概括括所要做做的事情情。分析員對(duì)對(duì)問(wèn)題有有了明確確認(rèn)識(shí)之之后,應(yīng)應(yīng)該把自自己的認(rèn)認(rèn)識(shí)寫(xiě)成成書(shū)面報(bào)報(bào)告,提提交給用用戶(hù)和使使用部門(mén)門(mén)的負(fù)責(zé)責(zé)人審查查,以檢檢驗(yàn)分析析員對(duì)所所要解決決的問(wèn)題題的理解解是否正正確。因因?yàn)榉治鑫鰡T對(duì)問(wèn)問(wèn)題的理理解為今今后開(kāi)發(fā)發(fā)工作確確定了方方向。分分析員對(duì)對(duì)問(wèn)題理理解正確確與否,,關(guān)系到到系統(tǒng)成成敗。問(wèn)題定義義(續(xù)))在問(wèn)題定定義階段段,分析析員應(yīng)該該對(duì)工程程成本做做出粗略略的預(yù)算算,并對(duì)對(duì)下階段段可行性性研究所所需要時(shí)時(shí)間和成成本做出出較精確確的估計(jì)計(jì)。對(duì)問(wèn)題定定義的書(shū)書(shū)面報(bào)告告應(yīng)該盡盡可能清清楚簡(jiǎn)潔潔,最好好寫(xiě)在一一頁(yè)內(nèi)。。這份報(bào)報(bào)告通常常應(yīng)包括括工程項(xiàng)項(xiàng)目的名名字,對(duì)對(duì)問(wèn)題概概括定義義、項(xiàng)目目的目標(biāo)標(biāo),項(xiàng)目目的規(guī)模模,對(duì)可可行性研研究的具具體建議議(既需需要用的的時(shí)間和和成本)等等。。一旦分析析員和用用戶(hù)及使使用部門(mén)門(mén)的負(fù)責(zé)責(zé)人對(duì)所所要解決決的問(wèn)題題,取得得完全一一致的看看法且在在報(bào)告書(shū)書(shū)上簽了了字,問(wèn)問(wèn)題定義義階段工工作就宣宣告完成成,可行行性研究究就可以以開(kāi)始。。二、可行行性研究究可行性研研究就是是分析員員站在較較高的角角度去調(diào)調(diào)查現(xiàn)行行系統(tǒng)及及用戶(hù)提提出的目目標(biāo),并并尋找是是否有一一種手段段能夠在在現(xiàn)有條條件下實(shí)實(shí)際地達(dá)達(dá)到項(xiàng)目目目標(biāo)。。同時(shí)向向用戶(hù)指指出該系系統(tǒng)實(shí)現(xiàn)現(xiàn)的意義義,使用用戶(hù)去權(quán)權(quán)衡花費(fèi)費(fèi)這樣的的代價(jià)去去實(shí)現(xiàn)這這樣的系系統(tǒng)是否否值得。??尚行匝醒芯康哪磕康木褪鞘怯米钚⌒〉拇鷥r(jià)價(jià)在盡可可能短的的時(shí)間內(nèi)內(nèi),確定定問(wèn)題是是否能夠夠解決,,從而確確定問(wèn)題題是否值值得去解解。如何才能能達(dá)到這這個(gè)目的的呢?進(jìn)進(jìn)行客觀(guān)觀(guān)分析,,通過(guò)對(duì)對(duì)幾種可可能解法法,分析析其利弊弊,才能能判斷原原定系統(tǒng)統(tǒng)的目標(biāo)標(biāo)和規(guī)模模是否現(xiàn)現(xiàn)實(shí),系系統(tǒng)帶來(lái)來(lái)的效益益是否大大到值得得投資開(kāi)開(kāi)發(fā)這個(gè)個(gè)系統(tǒng)。。因此,,可行性性研究實(shí)實(shí)質(zhì)上是是進(jìn)行一一個(gè)大大大壓縮簡(jiǎn)簡(jiǎn)化了的的軟件分分析和設(shè)設(shè)計(jì)過(guò)程程,也就就是在較較高層上上,以較較抽象的的方式進(jìn)進(jìn)行軟件件分析和和設(shè)計(jì)的的過(guò)程。??尚行匝醒芯繎?yīng)在在以下三三方面進(jìn)進(jìn)行:①①技術(shù)可可行性;;②經(jīng)濟(jì)濟(jì)可行性性;③操操作可行行性??尚行匝醒芯浚ɡm(xù)續(xù))1.技術(shù)術(shù)可行性性對(duì)技術(shù)可可行性研研究,首首先應(yīng)從從對(duì)現(xiàn)行行系統(tǒng)進(jìn)進(jìn)行調(diào)查查入手。。因?yàn)楝F(xiàn)現(xiàn)行系統(tǒng)統(tǒng)是信息息的重要要來(lái)源。。新的目目標(biāo)系統(tǒng)統(tǒng)必須能能完成現(xiàn)現(xiàn)行系統(tǒng)統(tǒng)的基本本功能;;另一方方面,新新系統(tǒng)必必須能解解決舊系系統(tǒng)中存存在的問(wèn)問(wèn)題。所所以,應(yīng)應(yīng)先對(duì)現(xiàn)現(xiàn)行系統(tǒng)統(tǒng)的組成成部分、、功能和和存在問(wèn)問(wèn)題進(jìn)行行調(diào)查研研究。但但這種調(diào)調(diào)查研究究不可能能做得很很細(xì),對(duì)對(duì)一些內(nèi)內(nèi)容細(xì)節(jié)節(jié)必須先先暫時(shí)忽忽略,抓抓住主要要的問(wèn)題題。此時(shí)時(shí),分析員應(yīng)把調(diào)調(diào)查到的現(xiàn)行行系統(tǒng)的情況況畫(huà)成高層數(shù)數(shù)據(jù)流程圖。。其次,導(dǎo)出新系統(tǒng)的的高層邏輯模模型(數(shù)據(jù)流流程圖)。新系統(tǒng)的高高層的邏輯模模型建立在現(xiàn)現(xiàn)行系統(tǒng)的高高層數(shù)據(jù)流程程圖的基礎(chǔ)上上。因?yàn)橥ㄟ^(guò)過(guò)前一步的工工作,分析員員對(duì)目標(biāo)系統(tǒng)統(tǒng)(新系統(tǒng))應(yīng)該具的基基本功能和所所受的約束,,已有一定的的了解,使用用數(shù)據(jù)流程圖圖描繪數(shù)據(jù)在在系統(tǒng)中流動(dòng)動(dòng)和處理的情情況,從而概概括地表達(dá)出出對(duì)新系統(tǒng)的的設(shè)想。用數(shù)數(shù)據(jù)流程圖和和數(shù)據(jù)字典來(lái)來(lái)定義新系統(tǒng)統(tǒng)的高層邏輯輯模型??尚行匝芯浚ǎɡm(xù))其三,重新定定義問(wèn)題。新新系統(tǒng)的邏輯輯模型實(shí)質(zhì)上上表達(dá)了分析析員對(duì)新系統(tǒng)統(tǒng)必須做什么么的看法。此此時(shí),分析員員應(yīng)該和用戶(hù)戶(hù)一起復(fù)查問(wèn)問(wèn)題定義、工工程規(guī)模和目目標(biāo)。這次復(fù)復(fù)查應(yīng)該把數(shù)數(shù)據(jù)流程圖和和數(shù)據(jù)字典作作討論的基礎(chǔ)礎(chǔ)。如果分析析員對(duì)問(wèn)題有有誤解或者用用戶(hù)曾經(jīng)遺漏漏了某些要求求,那么現(xiàn)在在是發(fā)現(xiàn)和改改正這些錯(cuò)誤誤的時(shí)候了。。其四,導(dǎo)出供供選擇的解法法。分析員應(yīng)應(yīng)從他所建議議的系統(tǒng)邏輯輯模型出發(fā),,推導(dǎo)出若干干個(gè)較高層次次的解決辦法法,供比較和和選擇。最簡(jiǎn)簡(jiǎn)單的途徑,,是從技術(shù)角角度出發(fā),考考慮解決問(wèn)題題的不同方案案。這些不同同方案可以在在數(shù)據(jù)流程圖圖上劃分不同同的自動(dòng)化邊邊界而得到。。所以分析員員在確定了幾幾組不同的自自動(dòng)化邊界之之后,再針對(duì)對(duì)每組邊界,,考慮如何實(shí)實(shí)現(xiàn)所要求的的系統(tǒng)。當(dāng)從技術(shù)角度度提出了一些些系統(tǒng)模型之之后,應(yīng)根據(jù)據(jù)技術(shù)可行性性的考慮,初初步排除一些些不現(xiàn)實(shí)的系系統(tǒng)。把技術(shù)術(shù)上行不通的的解法(方案案)去掉之后后,就剩下了了一組技術(shù)上上可行的方案案??尚行匝芯浚ǎɡm(xù))一般來(lái)說(shuō),技技術(shù)可行性還還可以從硬件件(包括外圍圍設(shè)備)的性性能要求、軟軟件的性能要要求(包括操操作系統(tǒng)、軟軟件包、數(shù)據(jù)據(jù)庫(kù)管理系統(tǒng)統(tǒng)、各種軟件件工具)能源源及環(huán)境條件件以及軟件系系統(tǒng)所采用的的技術(shù)是否先先進(jìn),實(shí)現(xiàn)的的可能性如何何,實(shí)現(xiàn)軟件件系統(tǒng)的人員員素質(zhì)是否具具備等方面進(jìn)進(jìn)行考慮。2.經(jīng)濟(jì)可行行性研究經(jīng)濟(jì)可行行性,不僅僅僅是了解為完完成用戶(hù)提出出的要求是否有足夠的的資金支持(這是目前很很多分析員重重點(diǎn)要做的事事情),而更主要是把把成本與獲利利分析清楚。也就是對(duì)經(jīng)經(jīng)濟(jì)合理性進(jìn)進(jìn)行評(píng)價(jià),即即帶來(lái)的經(jīng)濟(jì)濟(jì)效益是否超超過(guò)其開(kāi)發(fā)和和維護(hù)所需要要的費(fèi)用。這這工作包括估估計(jì)費(fèi)用和估估計(jì)效益兩個(gè)個(gè)方面??尚行匝芯浚ǎɡm(xù))估計(jì)費(fèi)用。主主要考慮以下下幾部分:設(shè)設(shè)備費(fèi)用,包包括計(jì)算機(jī)硬硬件和軟件的的費(fèi)用;人力力費(fèi)用,包括括開(kāi)發(fā)人員和和維護(hù)人員的的工資;材料料費(fèi)用;管理理費(fèi)用以及維維護(hù)費(fèi)用等。。估計(jì)效益。可可以從以下幾幾個(gè)方面考慮慮:提供了哪哪些以前提供供不了的信息息,提供信息息的速度提高高了多少?質(zhì)質(zhì)量有什么提提高?對(duì)使用用者查詢(xún)和使使用信息的方方便程度有什什么提高,節(jié)節(jié)省多少人力力?對(duì)組織的的領(lǐng)導(dǎo)人和管管理人員正確確做出決策提提供了哪幫助助?…有時(shí)不不能直接用金金錢(qián)來(lái)衡量效效益,如一個(gè)個(gè)郵購(gòu)單位,,由于能夠及及時(shí)、準(zhǔn)確地地處理訂貨,,縮短了顧客客收到貨物的的時(shí)間,從而而在競(jìng)爭(zhēng)中得得到了更多的的顧客。這一一類(lèi)的收益就就不容易用具具體金錢(qián)來(lái)衡衡量,只能由由管理人員根根據(jù)經(jīng)驗(yàn)來(lái)做做出大約的估估計(jì)。在估計(jì)效益時(shí)時(shí),要謹(jǐn)慎把把各種可能影影響效益發(fā)揮揮的各種因素素考慮在內(nèi),,打上折扣。??尚行匝芯浚ǎɡm(xù))3.操作和維維護(hù)可行性人員操作和維維護(hù)可行性的的研究是了解解當(dāng)用戶(hù)所要要求的軟件系系統(tǒng)建立起來(lái)來(lái)之后,用用戶(hù)對(duì)它的操操作是否方便便?管理和維維護(hù)是否容易易?如果對(duì)于于一個(gè)軟件系系統(tǒng)的操作比比原有的手工工系統(tǒng)還麻煩煩,那么它是是不會(huì)受歡迎迎的。另一方方面,如果管管理和維護(hù)這這個(gè)軟件系統(tǒng)統(tǒng)的人員比原原來(lái)的手工系系統(tǒng)還多,素素質(zhì)要求還高高,那么這個(gè)個(gè)系統(tǒng)對(duì)用戶(hù)戶(hù)來(lái)說(shuō)負(fù)擔(dān)太太重了。從上面的討論論中不難看出出,可行性研研究的出發(fā)點(diǎn)點(diǎn)應(yīng)該是從當(dāng)當(dāng)前的物理系系統(tǒng)到新的物物理系統(tǒng)的轉(zhuǎn)轉(zhuǎn)換,它是整整個(gè)可行性研研究的基礎(chǔ),,實(shí)際上也是是整個(gè)系統(tǒng)開(kāi)開(kāi)發(fā)過(guò)程的縮縮影。因?yàn)檎麄€(gè)系統(tǒng)實(shí)現(xiàn)現(xiàn)過(guò)程也就是是把當(dāng)前的手手工系統(tǒng)轉(zhuǎn)化化為可用計(jì)算算機(jī)實(shí)現(xiàn)的新新系統(tǒng)的一個(gè)個(gè)轉(zhuǎn)換過(guò)程,,只不過(guò)這工工作比在可行行性研究階段段更細(xì)致,更更具體罷了。。上述從三個(gè)方方面分別開(kāi)展展的,而實(shí)際際上它們之間間有著密切的的聯(lián)系,因此此還必須對(duì)它它們綜合考慮慮,然后向用用戶(hù)推薦方案案供其選擇。??尚行匝芯浚ǎɡm(xù))當(dāng)用戶(hù)選定方方案之后,分分析員應(yīng)對(duì)在在問(wèn)題定義階階段所規(guī)定的的實(shí)現(xiàn)目標(biāo)進(jìn)進(jìn)行修改。因因?yàn)椋@時(shí)對(duì)對(duì)系統(tǒng)有了更更深入的了解解,原來(lái)的問(wèn)問(wèn)題定義可能能有的不能實(shí)實(shí)現(xiàn),還有些些需要加上去去,也就是說(shuō)說(shuō)原有的問(wèn)題題邊界不夠準(zhǔn)準(zhǔn)確,需要糾糾正,以便今今后有一個(gè)非非常明確的工工作目標(biāo)。這這是一步極有有實(shí)質(zhì)意義的的工作,它使使分析員和用用戶(hù)最后明確確了要解決的的問(wèn)題的邊界界以及它的實(shí)實(shí)現(xiàn)方案。一一般來(lái)說(shuō),可可行性研究的的結(jié)果可導(dǎo)致致以下兩種情情況:(1)可行行(2)不可行行可行性研究結(jié)結(jié)束后,要寫(xiě)寫(xiě)出可行性研研究報(bào)告,提提交有關(guān)專(zhuān)家家論證和上級(jí)級(jí)主管部門(mén)批批準(zhǔn)。可行性性研究報(bào)告作作為所有軟件件文件資料的的基礎(chǔ)材料,,它的格式可可以很不相同同,但大體的的內(nèi)容提綱是是一致的。需求分析的定定義軟件需求分析析是在可行性性研究基礎(chǔ)上上進(jìn)行的更細(xì)細(xì)致的分析工工作。也就是是在對(duì)軟件計(jì)計(jì)劃階段確定定的工作范圍圍內(nèi)進(jìn)一步對(duì)對(duì)目標(biāo)對(duì)象和和環(huán)境作細(xì)致致、深入的調(diào)調(diào)查分析。需需求分析過(guò)程程實(shí)際上是一一個(gè)調(diào)查研究究、分析綜合合的過(guò)程,是是一個(gè)抽象思思維、邏輯推推理的過(guò)程。。通過(guò)調(diào)查研研究和分析,,充分了解用用戶(hù)對(duì)軟件系系統(tǒng)的要求。。在此基礎(chǔ)上上,把用戶(hù)要要求表達(dá)出來(lái)來(lái),解決軟件件系統(tǒng)“做什什么”的問(wèn)題題。也就是建建立起系統(tǒng)的的邏輯輯模模型型,把把軟軟件件功功能能和和性性能能的的總總體體概概念念描描述述成成具具體體的的軟件件規(guī)規(guī)格格說(shuō)說(shuō)明明書(shū)書(shū)。需求求分分析析的的目目標(biāo)標(biāo)(1.理理清清數(shù)數(shù)據(jù)據(jù)流流或或數(shù)數(shù)據(jù)據(jù)結(jié)結(jié)構(gòu)構(gòu);;2.通通過(guò)過(guò)標(biāo)標(biāo)識(shí)識(shí)接接口口細(xì)細(xì)節(jié)節(jié),,深深入入描描述述功功能能,,確確定定設(shè)設(shè)計(jì)計(jì)約約束束和和軟軟件件有有效效性性要要求求;;3.構(gòu)構(gòu)造造一一個(gè)個(gè)完完全全、、精精致致的的目目標(biāo)標(biāo)系系統(tǒng)統(tǒng)邏邏輯輯模模型型。。)需求求分分析析的的任任務(wù)務(wù)(認(rèn)認(rèn)清清問(wèn)問(wèn)題題、、分分析析與與綜綜合合、、邏邏輯輯模模型型導(dǎo)導(dǎo)出出與與復(fù)復(fù)審審))結(jié)構(gòu)構(gòu)化化分分析析方方法法三、、需需求求分分析析結(jié)構(gòu)構(gòu)化化分分析析方方法法結(jié)構(gòu)構(gòu)化化分分析析方方法法的的策策略略基本本的的系系統(tǒng)統(tǒng)模模型型結(jié)構(gòu)構(gòu)化化分分析析方方法法策策略略分分析析.輸入入1....軟件系統(tǒng)輸出1輸出2輸出3輸入N...x1231.12.23.33.13.23.43.5頂層0層1層3.3逐層分解方法示意圖業(yè)務(wù)務(wù)流流程程圖圖結(jié)構(gòu)構(gòu)化化分分析析方方法法((續(xù)續(xù)))————數(shù)數(shù)據(jù)據(jù)流流圖圖數(shù)據(jù)據(jù)流流圖圖的的定定義義數(shù)據(jù)據(jù)流流圖圖的的組組成成要要素素:源源點(diǎn)點(diǎn)、、終終點(diǎn)點(diǎn)、、數(shù)數(shù)據(jù)據(jù)流流、、數(shù)數(shù)據(jù)據(jù)文文件件、、數(shù)數(shù)據(jù)據(jù)變變換換數(shù)據(jù)據(jù)變變換換的的兩兩種種類(lèi)類(lèi)型型:①對(duì)對(duì)數(shù)數(shù)據(jù)據(jù)結(jié)結(jié)構(gòu)構(gòu)的的變變換換,,如如對(duì)對(duì)數(shù)數(shù)據(jù)據(jù)的的格格式式重重新新排排列列。。②②在在原原有有數(shù)數(shù)據(jù)據(jù)內(nèi)內(nèi)容容基基礎(chǔ)礎(chǔ)上上產(chǎn)產(chǎn)生生新新的的數(shù)數(shù)據(jù)據(jù)內(nèi)內(nèi)容容,,如如計(jì)計(jì)算算平平均均值值或或總總計(jì)計(jì)。。數(shù)據(jù)據(jù)流流圖圖的的畫(huà)畫(huà)法法1、、畫(huà)畫(huà)數(shù)數(shù)據(jù)據(jù)流流圖圖的的基基本本原原則則((①數(shù)數(shù)據(jù)據(jù)流流程程圖圖中中的的圖圖形形符符號(hào)號(hào)只只能能包包含含四四種種基基本本元元素素。。②②數(shù)數(shù)據(jù)據(jù)流流程程圖圖主主圖圖上上的的數(shù)數(shù)據(jù)據(jù)流流必必須須封封閉閉在在外外部部實(shí)實(shí)體體((外外部部項(xiàng)項(xiàng)))之之間間,,實(shí)實(shí)體體可可以以是是一一個(gè)個(gè)也也可可是是多多個(gè)個(gè)。。③③變變換換框框上上至至少少有有一一個(gè)個(gè)輸輸出出數(shù)數(shù)據(jù)據(jù)流流和和一一個(gè)個(gè)輸輸入入數(shù)數(shù)據(jù)據(jù)流流。。④④數(shù)數(shù)據(jù)據(jù)流流程程圖圖上上的的每每一一個(gè)個(gè)元元素素都都必必須須有有““名名字字””。。)2、方法法與步驟驟3注意事事項(xiàng)(父父子圖的的平衡、、分解程程度與數(shù)數(shù)據(jù)存儲(chǔ)儲(chǔ)文件,,數(shù)據(jù)流流圖是靜靜態(tài)圖、、與傳統(tǒng)統(tǒng)框圖的的差別、、反復(fù)修修改的過(guò)過(guò)程)數(shù)據(jù)流圖圖數(shù)據(jù)流圖圖數(shù)據(jù)流圖圖數(shù)據(jù)字典典1、數(shù)據(jù)據(jù)字典的的定義((數(shù)據(jù)字典典就是對(duì)對(duì)數(shù)據(jù)流流程圖中中,數(shù)據(jù)據(jù)、變換等進(jìn)進(jìn)行精確確定義。。)2、數(shù)據(jù)據(jù)定義方方法(對(duì)數(shù)據(jù)自自頂向下下的分解解。當(dāng)分分解到不不需要進(jìn)一步定定義,對(duì)對(duì)每個(gè)和和系統(tǒng)有有關(guān)的人人都能清清楚理解解這些數(shù)數(shù)據(jù)項(xiàng)的含含義為止止。)3、數(shù)據(jù)據(jù)定義中中的數(shù)據(jù)據(jù)結(jié)構(gòu)((順序、選選擇、重重復(fù)、可可選)4、數(shù)據(jù)據(jù)字典中中的符號(hào)號(hào)(=表示示等價(jià)、、+表示示和(或或連接兩兩個(gè)分量)、、{}表示示重復(fù)花花括號(hào)內(nèi)內(nèi)的分量量、[|]表表示或即即從方括弧內(nèi)內(nèi)列出的的若干分分量中選選擇一個(gè)個(gè)、()表表示可可選即或括弧里里的量可可有可無(wú)無(wú)、n..m表表示示界域)5、數(shù)據(jù)據(jù)流、數(shù)數(shù)據(jù)存儲(chǔ)儲(chǔ)、數(shù)據(jù)據(jù)變換的的定義加工的描描述要求:準(zhǔn)準(zhǔn)確、清清晰、簡(jiǎn)簡(jiǎn)潔自然語(yǔ)言言結(jié)構(gòu)化語(yǔ)語(yǔ)言決策樹(shù)決策表以上工具具的混合合使用決策樹(shù)、、決策表表、結(jié)構(gòu)構(gòu)化語(yǔ)言言if交交易額額>=2500元元thenif三三個(gè)月無(wú)無(wú)欠款then折折扣15%elseif老顧顧客then折扣扣10%else折扣扣5%else無(wú)折折扣1.研究究目前正正在使用用的系統(tǒng)統(tǒng)現(xiàn)有的系系統(tǒng)(包包括人工工系統(tǒng))是信息息的重要要來(lái)源。。因此,,首先要要去了解解現(xiàn)有系系統(tǒng)能完完成哪些些工作,,而新的的目標(biāo)系系統(tǒng)必須須也能完完成它的的基本功功能;對(duì)現(xiàn)有系系統(tǒng)(人人工系統(tǒng)統(tǒng))的了了解,是是要了解解對(duì)現(xiàn)有有系統(tǒng)能能做什么么,同時(shí)時(shí)畫(huà)出描描繪現(xiàn)有有系統(tǒng)的的高層數(shù)數(shù)據(jù)流程程圖。2.導(dǎo)出出新系統(tǒng)統(tǒng)的高層層數(shù)據(jù)流流程圖(即邏輯輯模型)好的設(shè)計(jì)計(jì),通常??偸菑膹默F(xiàn)有系系統(tǒng)出發(fā)發(fā)導(dǎo)出現(xiàn)現(xiàn)有系統(tǒng)統(tǒng)的邏輯輯模型,,然后參參考現(xiàn)有有系統(tǒng)的的邏輯模模型,設(shè)設(shè)想出新新系統(tǒng)的的邏輯模模型。通常第一一步的工工作,對(duì)對(duì)新的目目標(biāo)系統(tǒng)統(tǒng)應(yīng)該具具有的基基本功能能和所受受的約束束條件,,已有一一定的了了解,把把這些了了解用數(shù)數(shù)據(jù)流程程圖概括括地描繪繪出對(duì)新新系統(tǒng)的的設(shè)想。。同時(shí)定定義系統(tǒng)統(tǒng)中使用用的數(shù)據(jù)據(jù),構(gòu)造造初步的的數(shù)據(jù)字字典。這這樣,數(shù)據(jù)流程程圖和數(shù)數(shù)據(jù)字典典共同定定義了新新的目標(biāo)標(biāo)系統(tǒng)的的高層邏邏輯模型型。結(jié)構(gòu)化分分析步驟驟結(jié)構(gòu)化分分析步驟驟(續(xù)))3.完善善數(shù)據(jù)流流程圖在第二步步畫(huà)出新新系統(tǒng)的的高層數(shù)數(shù)據(jù)流程程圖中,,許多數(shù)數(shù)據(jù)的定定義和一一些細(xì)節(jié)節(jié)都沒(méi)有有考慮進(jìn)進(jìn)去?,F(xiàn)現(xiàn)在應(yīng)著著手解決決這個(gè)問(wèn)問(wèn)題。(1)沿著數(shù)據(jù)據(jù)流程圖圖回溯為了對(duì)數(shù)數(shù)據(jù)流程程圖中的的數(shù)據(jù)流流和數(shù)據(jù)據(jù)存儲(chǔ)進(jìn)進(jìn)行定義義,通常常是從數(shù)數(shù)據(jù)流程程圖的輸輸出端著著手分析析。這是是因?yàn)檐涇浖到y(tǒng)統(tǒng)的目標(biāo)標(biāo)是產(chǎn)生生這些輸輸出,輸輸出數(shù)據(jù)據(jù)確定了了軟件系系統(tǒng)必須須具有的的最基本本的組成成元素。。輸出數(shù)據(jù)據(jù)是由哪哪些數(shù)據(jù)據(jù)項(xiàng)組成成的,通通過(guò)調(diào)查查訪(fǎng)問(wèn)是是不難搞搞清這個(gè)個(gè)問(wèn)題。。那么每每個(gè)輸出出數(shù)據(jù)項(xiàng)項(xiàng)又是從從哪里來(lái)來(lái)的呢?因?yàn)樗切孪迪到y(tǒng)的輸輸出,那那么它們們或者是是從外面面輸入到到系統(tǒng)中中來(lái),或或者是通通過(guò)運(yùn)算算由系統(tǒng)統(tǒng)中產(chǎn)生生出來(lái)的的。為了了弄清這這些,可可以沿著著數(shù)據(jù)流流程圖從從輸出端端往輸入入端回溯溯,能夠夠確定每每個(gè)數(shù)據(jù)據(jù)項(xiàng)的來(lái)來(lái)源,與與此同時(shí)時(shí)也就初初步定義義了有關(guān)關(guān)的算法法。結(jié)構(gòu)化化分析析步驟驟(續(xù)續(xù))在第二二步得得到的的高層層數(shù)據(jù)據(jù)流程程圖中中,許許多具具體細(xì)細(xì)節(jié)沒(méi)沒(méi)有包包括在在里面面。因因此,,當(dāng)沿沿著數(shù)數(shù)據(jù)流流程圖圖回溯溯時(shí),,經(jīng)常常會(huì)遇遇到::為了了得到到某個(gè)個(gè)數(shù)據(jù)據(jù)項(xiàng)需需要用用到數(shù)數(shù)據(jù)流流程圖圖中目目前還還沒(méi)有有的數(shù)數(shù)據(jù)項(xiàng)項(xiàng),或或者得得出這這個(gè)數(shù)數(shù)據(jù)項(xiàng)項(xiàng)要用用的算算法還還不完完全清清楚。。為了了解決決這些些問(wèn)題題,需需要向向用戶(hù)戶(hù)和有有關(guān)人人員請(qǐng)請(qǐng)教,,他們們的回回答使使分析析員對(duì)對(duì)新系系統(tǒng)的的認(rèn)識(shí)識(shí)更具具體更更深入入了。。系統(tǒng)統(tǒng)中更更多的的數(shù)據(jù)據(jù)項(xiàng)被被劃分分出來(lái)來(lái),更更多的的算法法被搞搞清楚楚了。。一般般把分分析過(guò)過(guò)程得得到的的有關(guān)關(guān)數(shù)據(jù)據(jù)項(xiàng)的的信息息、變變換的的算法法簡(jiǎn)明明地記記在數(shù)數(shù)據(jù)字字典中中。(2)用戶(hù)復(fù)復(fù)查通過(guò)沿沿著數(shù)數(shù)據(jù)流流程圖圖的回回溯過(guò)過(guò)程,,把一一些數(shù)數(shù)據(jù)項(xiàng)項(xiàng)和變變換的的算法法記錄錄到數(shù)數(shù)據(jù)字字典中中。這這個(gè)數(shù)數(shù)據(jù)字字典是是否準(zhǔn)準(zhǔn)確完完整?算法法是否否正確確?還還有沒(méi)沒(méi)有必必要的的變換換和數(shù)數(shù)據(jù)項(xiàng)項(xiàng)遺漏漏了?某些些數(shù)據(jù)據(jù)項(xiàng)的的來(lái)源源搞清清楚嗎嗎?………結(jié)構(gòu)化化分析析步驟驟(續(xù)續(xù))對(duì)這些些問(wèn)題題必須須請(qǐng)系系統(tǒng)的的用戶(hù)戶(hù)對(duì)前前面步步驟得得出的的結(jié)果果仔細(xì)細(xì)地進(jìn)進(jìn)行復(fù)復(fù)查。??梢砸越柚跀?shù)數(shù)據(jù)流流程圖圖和數(shù)數(shù)據(jù)字字典,,從輸輸入端端開(kāi)始始向用用戶(hù)解解釋輸輸入數(shù)數(shù)據(jù)怎怎樣一一步一一步地地轉(zhuǎn)變變成輸輸出數(shù)數(shù)據(jù)。。這些些解釋釋集中中反映映了分分析員員通過(guò)過(guò)前面面分析析工作作,所所獲得得的對(duì)對(duì)新目目標(biāo)系系統(tǒng)的的認(rèn)識(shí)識(shí)。這這些認(rèn)認(rèn)識(shí)是是否正正確,,有無(wú)無(wú)遺漏漏?應(yīng)應(yīng)請(qǐng)用用戶(hù)及及時(shí)糾糾正和和補(bǔ)充充分析析員的的認(rèn)識(shí)識(shí)。通通過(guò)復(fù)復(fù)查過(guò)過(guò)程驗(yàn)驗(yàn)證了了已知知的元元素,,補(bǔ)充充了未未知的的元素素。填填補(bǔ)了了文檔檔中的的空白白。由于復(fù)復(fù)查可可能獲獲得新新的知知識(shí),,又可可能引引出新新的問(wèn)問(wèn)題。。這些些需要要進(jìn)一一步的的調(diào)查查訪(fǎng)問(wèn)問(wèn)尋求求對(duì)問(wèn)問(wèn)題的的解答答,而而且還還應(yīng)及及時(shí)修修改和和補(bǔ)充充數(shù)據(jù)據(jù)流程程圖和和數(shù)據(jù)據(jù)字典典,把把對(duì)系系統(tǒng)的的新認(rèn)認(rèn)識(shí)及及時(shí)記記錄下下來(lái)。。所以以,追追蹤數(shù)數(shù)據(jù)流流程圖圖和復(fù)復(fù)查軟軟件系系統(tǒng)的的邏輯輯模型型實(shí)質(zhì)質(zhì)上構(gòu)構(gòu)成一一個(gè)循循環(huán)。。對(duì)數(shù)數(shù)據(jù)流流程圖圖的分分析產(chǎn)產(chǎn)生一一些問(wèn)問(wèn)題,,這些些問(wèn)題題通過(guò)過(guò)復(fù)查查得到到的答答案使使分析析員對(duì)對(duì)系統(tǒng)統(tǒng)有更更深人人更具具體的的認(rèn)識(shí)識(shí),同同時(shí)可可能又又引出出新的的問(wèn)題題,尋尋找這這些新新問(wèn)題題的答答案導(dǎo)導(dǎo)致了了對(duì)新新系統(tǒng)統(tǒng)的更更進(jìn)一一步的的認(rèn)識(shí)識(shí)。,,每經(jīng)經(jīng)過(guò)一一次循循環(huán)都都會(huì)對(duì)對(duì)新系系統(tǒng)了了解更更多的的細(xì)節(jié)節(jié)。結(jié)構(gòu)化分析((續(xù))4.分解細(xì)化化數(shù)據(jù)流程圖圖通過(guò)上面的分分析及用戶(hù)的的復(fù)查,分析析員對(duì)新系統(tǒng)統(tǒng)有了更進(jìn)一一步了解,此此時(shí)可對(duì)數(shù)據(jù)據(jù)流程圖中的的各個(gè)變換進(jìn)進(jìn)行檢查。如如果某個(gè)變換換的功能還比比較復(fù)雜,即即還比較抽象象,就應(yīng)將這這個(gè)變換功能能分解成若干干個(gè)子功能。。這些較低層層的子功能就就成為新的數(shù)數(shù)據(jù)流程圖上上的變換。在在新的數(shù)據(jù)流流程圖中,也也應(yīng)包括自己己的數(shù)據(jù)流和和數(shù)據(jù)存儲(chǔ)。。數(shù)據(jù)流程圖經(jīng)經(jīng)分解之后,,得到一組新新的數(shù)據(jù)流程程圖,不同的軟件件元素之間關(guān)關(guān)系變得更清清楚了。對(duì)這這組新數(shù)據(jù)流流程圖的分析析追蹤可能產(chǎn)產(chǎn)生新的問(wèn)題題,對(duì)這些問(wèn)問(wèn)題的解答,,又可能在數(shù)數(shù)據(jù)字典中增增加一些新的的條目,并且且可能導(dǎo)致新新的或精化的的變換算法的的描述。隨著著分析過(guò)程的的進(jìn)展,經(jīng)過(guò)過(guò)問(wèn)題與解答答的反復(fù)循環(huán)環(huán),分析員越越來(lái)越深入、、具體地定義義了新系統(tǒng)。。通過(guò)上面各各步就可以得得到一套新目目標(biāo)系統(tǒng)的分分層數(shù)據(jù)流程程圖和數(shù)據(jù)字字典,也就是是得到新系統(tǒng)統(tǒng)的邏輯模型型。軟件總體設(shè)計(jì)計(jì)的任務(wù)從軟件需求規(guī)格格說(shuō)明書(shū)出發(fā),將設(shè)計(jì)計(jì)對(duì)象用數(shù)據(jù)據(jù)流或數(shù)據(jù)結(jié)結(jié)構(gòu)的形式表表達(dá)成完整的的抽象實(shí)體。。這個(gè)實(shí)體應(yīng)應(yīng)當(dāng)是一個(gè)結(jié)結(jié)構(gòu)清晰、層層次分明的模模塊組合,應(yīng)應(yīng)當(dāng)可以被評(píng)評(píng)價(jià)和細(xì)化,,也可以被修修改。同時(shí)還還要定義這個(gè)個(gè)實(shí)體與外部部環(huán)境的接口口。軟件總體設(shè)計(jì)計(jì)的目標(biāo)1.軟件實(shí)體應(yīng)當(dāng)當(dāng)具有明顯的的層次結(jié)構(gòu),,便于軟件元元素之間的控制。2.軟件實(shí)體應(yīng)當(dāng)當(dāng)模塊化,這這些摸塊應(yīng)具具有完全獨(dú)立立的功能。3.軟件實(shí)體與環(huán)環(huán)境的界面應(yīng)應(yīng)當(dāng)清晰。4.軟件設(shè)計(jì)計(jì)的最終表示示—軟件設(shè)計(jì)計(jì)規(guī)格說(shuō)明應(yīng)應(yīng)當(dāng)清晰、簡(jiǎn)簡(jiǎn)潔、完整和無(wú)無(wú)岐義。四、軟件總體體設(shè)計(jì)結(jié)構(gòu)化方法從從建立一個(gè)具具有良好結(jié)構(gòu)構(gòu)系統(tǒng)的觀(guān)點(diǎn)點(diǎn)出發(fā),基于于把一個(gè)復(fù)雜雜的系統(tǒng)分解解成相對(duì)對(duì)立立的模塊的原原則,主要研研究了將系統(tǒng)統(tǒng)分解為不同同模塊的方法法與技術(shù),分分析系統(tǒng)分解解師長(zhǎng)生的各各種影響,提提出了評(píng)價(jià)模模塊結(jié)構(gòu)質(zhì)量量的具體標(biāo)準(zhǔn)準(zhǔn),還給出了了從數(shù)據(jù)流圖圖導(dǎo)出模塊結(jié)結(jié)構(gòu)圖的規(guī)則則。結(jié)構(gòu)化設(shè)計(jì)方方法規(guī)定了一一系列模塊的的分解協(xié)調(diào)原原則,提出了了結(jié)構(gòu)化設(shè)計(jì)計(jì)的基礎(chǔ)是模模塊化,即將將整個(gè)協(xié)調(diào)分分解成相對(duì)對(duì)對(duì)立的若干模模塊,通過(guò)對(duì)對(duì)模塊的設(shè)計(jì)計(jì)和模塊之間間關(guān)系的協(xié)調(diào)調(diào)來(lái)實(shí)現(xiàn)整個(gè)個(gè)協(xié)調(diào)的功能能。結(jié)構(gòu)化設(shè)計(jì)方方法系統(tǒng)模塊結(jié)構(gòu)構(gòu)圖模塊化的優(yōu)點(diǎn)點(diǎn)可以獨(dú)立設(shè)計(jì)計(jì)、編碼、測(cè)測(cè)試,控制了了程序的復(fù)雜雜性,減少了了出錯(cuò)。模塊錯(cuò)誤不宜宜擴(kuò)散,提高高了軟件的可可靠性。便于團(tuán)隊(duì)開(kāi)發(fā)發(fā)開(kāi)發(fā)的軟件可可維護(hù)性、開(kāi)開(kāi)放性、通用用性好。1.評(píng)價(jià)軟件件初始結(jié)構(gòu),,調(diào)節(jié)之間的的耦合度和聚聚合度在設(shè)計(jì)初始軟軟件結(jié)構(gòu)以后后,常常會(huì)發(fā)發(fā)現(xiàn)幾個(gè)模塊塊的功能有相相似之處,這這相似部分不不僅增加了編編程和調(diào)試的的工作量,同同時(shí)也給維護(hù)護(hù)過(guò)程帶來(lái)麻麻煩,應(yīng)當(dāng)消消除這樣的重重復(fù)。(1)完全相似這種情況只在在數(shù)據(jù)類(lèi)型上上不一致,可可采用完全合合并,只需在在數(shù)據(jù)類(lèi)型的的描述或變量量定義上加以以改進(jìn)。(2)局部相似兩個(gè)模塊具有有功能類(lèi)似的的組成部分和和不同部分。。可通過(guò)模塊塊分解消除重重復(fù)功能部分分:首先找出出模塊中的功功能相似部分分,分離出來(lái)來(lái),構(gòu)成它們們的一個(gè)公共共的下層模塊塊。如果分解解后余下的模模塊比較簡(jiǎn)單單,則可以同同它們的各自自調(diào)用模塊進(jìn)進(jìn)行合并。這這樣消除了重重復(fù)功能的組組成部分,模模塊間的耦合合較小、模塊塊內(nèi)的聚合較較大。軟件總體設(shè)計(jì)計(jì)準(zhǔn)則(續(xù)))軟件總體設(shè)計(jì)計(jì)準(zhǔn)則(續(xù)))2.模塊功能能的完善一個(gè)完整的功功能模塊應(yīng)具具有以下三個(gè)個(gè)要素:(1)執(zhí)行某某項(xiàng)指定功能能的部分(2)如果需需要返回一系系列的數(shù)據(jù)給給它的調(diào)用者者,應(yīng)在完成成數(shù)據(jù)處理或或結(jié)束時(shí),告告訴它的調(diào)用用者“文件完完”或其他標(biāo)標(biāo)志。(3)出錯(cuò)處處理部分,即即在不能完成成指定任務(wù)時(shí)時(shí),必須將產(chǎn)產(chǎn)生這種例外外情況的原因因(出錯(cuò)標(biāo)志志)通知它的的調(diào)用者。它它們是一個(gè)功功能模塊的有有機(jī)組成部分分,不應(yīng)當(dāng)分分離到其他模模塊中去,否否則會(huì)增加模模塊間的耦合合。軟件總體設(shè)計(jì)計(jì)準(zhǔn)則(續(xù)))3.模塊調(diào)用用個(gè)數(shù)最好不不要超過(guò)五個(gè)個(gè)一個(gè)模塊擁有有的直屬下級(jí)級(jí)模塊的個(gè)數(shù)數(shù)叫模塊的扇扇出數(shù)。如果果一個(gè)模塊扇扇出數(shù)過(guò)大,,這個(gè)模塊就就往往包含過(guò)過(guò)多的功能,,一般是因?yàn)闉槿狈χ虚g層層次的控制模模塊,需要將將其功能進(jìn)行行分解。一個(gè)模塊的直直接上級(jí)模塊塊的個(gè)數(shù)叫模模塊的扇入數(shù)數(shù)。一個(gè)模塊塊的扇入表明明有多少個(gè)上上級(jí)模塊直接接調(diào)用它,扇扇入越大,則則共享該模塊塊的上級(jí)模塊塊數(shù)目越多,,這是有好處處的。但不能能違背模塊獨(dú)獨(dú)立性而單純純追求高扇入入。4.一個(gè)模塊塊的作用范圍圍應(yīng)在其控制制范圍之內(nèi)一個(gè)模塊的作作用范圍就是是這個(gè)模塊內(nèi)內(nèi)一個(gè)判定的的作用范圍。。一個(gè)判定的的作用范圍是是指所有受這這個(gè)判定影響響的那些模塊塊,只要模塊塊中含有一些些依賴(lài)于這個(gè)個(gè)判定的操作作,那么這個(gè)個(gè)模塊就在這這個(gè)判定的作作用范圍之內(nèi)內(nèi)。軟件總體設(shè)計(jì)計(jì)準(zhǔn)則(續(xù)))5.力爭(zhēng)設(shè)計(jì)計(jì)單入口和單單出口的模塊塊,避免“病病態(tài)聯(lián)接”一個(gè)模塊只有有一個(gè)入口和和一個(gè)出口時(shí)時(shí),這個(gè)模塊塊比較容易理理解,有利于于結(jié)構(gòu)化編制制程序,也比比較容易維護(hù)護(hù)。但實(shí)際上上這樣的模塊塊不多。病態(tài)態(tài)聯(lián)接是指轉(zhuǎn)轉(zhuǎn)移到或引用用到另一模塊塊中去的內(nèi)容容耦合。要盡盡量避免這種種病態(tài)聯(lián)接,,以減少模塊塊間的耦合。。6.力爭(zhēng)降低低模塊接口的的復(fù)雜性模塊接口復(fù)雜雜性是軟件發(fā)發(fā)生錯(cuò)誤的一一個(gè)主要原因因。因此,應(yīng)應(yīng)該仔細(xì)設(shè)計(jì)計(jì)模塊接口,,使得信息傳傳遞簡(jiǎn)單并且且和模塊功能能相一致。例如:求一元元二次方程的的根的模塊QUAD-ROOT(TBL,x)其中用數(shù)組組TBL傳送送方程的系數(shù)數(shù),用數(shù)組x回送求得的的根。但是模模塊QUAD-ROOT接口TBL和x意義不不明確,不利利于對(duì)這個(gè)模模塊的理解。。因此可以將將它簡(jiǎn)化如下下:QUAD-ROOT(A,B,C,ROOT1,ROOT2),其其中,A,B,C是方程程系數(shù),ROOT1和ROOT2是是方程的兩個(gè)個(gè)根。軟件的總體設(shè)設(shè)計(jì)準(zhǔn)則(續(xù)續(xù))7.模塊的大大小模塊大小就是是模塊含語(yǔ)句句數(shù)量的多少少。模塊的大大小沒(méi)有統(tǒng)一一的標(biāo)準(zhǔn)。一一般來(lái)說(shuō),模模塊的大小以以一頁(yè)左右為為宜,比較容容易閱讀和理理解。在進(jìn)行行模塊設(shè)計(jì)時(shí)時(shí),首先應(yīng)根根據(jù)模塊的獨(dú)獨(dú)立性來(lái)選取取模塊的規(guī)模模。如果某個(gè)個(gè)模塊功能是是獨(dú)立的,那那怕程序段較較短也不要人人為地加長(zhǎng);;如果程序段段只有一個(gè)獨(dú)獨(dú)立的功能,,那怕程序較較長(zhǎng),也不要要人為地把它它分解成兩個(gè)個(gè)模塊。結(jié)構(gòu)構(gòu)化化設(shè)設(shè)計(jì)計(jì)工工具具::HIPO圖圖用圖圖形形的的方方法法表表示示系系統(tǒng)統(tǒng)的的輸輸入入、、輸輸出出、、功功能能和和層層次次軟件件詳詳細(xì)細(xì)設(shè)設(shè)計(jì)計(jì)的的定定義義對(duì)軟軟件件模模塊塊的的過(guò)過(guò)程程設(shè)設(shè)計(jì)計(jì)。。軟件件詳詳細(xì)細(xì)設(shè)設(shè)計(jì)計(jì)的的任任務(wù)務(wù)對(duì)總總體體設(shè)設(shè)計(jì)計(jì)所所產(chǎn)產(chǎn)生生的的功功能能模模塊塊進(jìn)進(jìn)行行過(guò)過(guò)程程描描述述,,開(kāi)開(kāi)發(fā)發(fā)一一個(gè)個(gè)可可以以直直接接轉(zhuǎn)轉(zhuǎn)換換成成程程序序語(yǔ)語(yǔ)言言代代碼碼的的軟軟件件表表示示。。軟件件詳詳細(xì)細(xì)設(shè)設(shè)計(jì)計(jì)的的步步驟驟1.將總總體體設(shè)設(shè)計(jì)計(jì)產(chǎn)產(chǎn)生生的的構(gòu)構(gòu)成成系系統(tǒng)統(tǒng)的的各各功功能能模模塊塊逐逐步步細(xì)細(xì)化化,,形形成成若干干程序序模模塊塊;2.運(yùn)用用詳詳細(xì)細(xì)設(shè)設(shè)計(jì)計(jì)工工具具對(duì)對(duì)程程序序模模塊塊進(jìn)進(jìn)行行過(guò)過(guò)程程描描述述;;3.確定定各各個(gè)個(gè)模模塊塊間間的的詳詳細(xì)細(xì)接接口口信信息息;;4.編寫(xiě)寫(xiě)詳詳細(xì)細(xì)設(shè)設(shè)計(jì)計(jì)說(shuō)說(shuō)明明書(shū)書(shū);;5.詳詳細(xì)細(xì)設(shè)設(shè)計(jì)計(jì)評(píng)評(píng)審審。。五、、軟軟件件詳詳細(xì)細(xì)設(shè)設(shè)計(jì)計(jì)程序序設(shè)設(shè)計(jì)計(jì)風(fēng)格格效率率測(cè)試試的的目目的的1.測(cè)試試是是一一個(gè)個(gè)程程序序的的執(zhí)執(zhí)行行過(guò)過(guò)程程,,它它的的目目的的在在于于發(fā)發(fā)現(xiàn)現(xiàn)錯(cuò)錯(cuò)誤誤;;2.一個(gè)個(gè)好好的的測(cè)測(cè)試試用用例例是是極極可可能能發(fā)發(fā)現(xiàn)現(xiàn)至至今今未未發(fā)發(fā)現(xiàn)現(xiàn)的的錯(cuò)錯(cuò)誤誤;;3.一一個(gè)個(gè)成成功功的的測(cè)測(cè)試試是是發(fā)發(fā)現(xiàn)現(xiàn)了了至至今今未未發(fā)發(fā)現(xiàn)現(xiàn)的的錯(cuò)錯(cuò)誤誤的的測(cè)測(cè)試試。。測(cè)試試的的原原則則1.避免免由由程程序序編編寫(xiě)寫(xiě)者者自自己己進(jìn)進(jìn)行行測(cè)測(cè)試試,,目目的的在在于于克克服服盲盲目目的的自自信信心心和和對(duì)對(duì)功功能能要要求求誤誤解解的的延延續(xù)續(xù)性性;;2

溫馨提示

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

評(píng)論

0/150

提交評(píng)論