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

下載本文檔

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

文檔簡介

1、 程序設(shè)計(jì)&軟件工程基礎(chǔ)一、程序序設(shè)計(jì)的的概念程序設(shè)計(jì)計(jì):利用計(jì)計(jì)算機(jī)解解決具體體問題的的全過程程。程序設(shè)計(jì)計(jì)的基本本過程:分析所所求解的的問題抽象數(shù)數(shù)學(xué)模型型設(shè)計(jì)合合適的算算法和數(shù)數(shù)據(jù)結(jié)構(gòu)構(gòu)編寫程程序調(diào)試運(yùn)運(yùn)行程序設(shè)計(jì)計(jì)基礎(chǔ)二、程序序設(shè)計(jì)方方法1.結(jié)構(gòu)化程程序設(shè)計(jì)計(jì)(Structured Programming)為了完成成一些大大規(guī)模、高復(fù)雜雜度的程程序設(shè)計(jì)計(jì)任務(wù),SP(和軟件件工程)思想被被提倡。強(qiáng)調(diào)數(shù)數(shù)據(jù)類型型、程序序結(jié)構(gòu),強(qiáng)調(diào)可靠靠性、可可維護(hù)性性甚于程程序的效效率。其主要思思想如下下:(1)注意程程序的可可讀性(2)采用自自頂向下下、逐步步求精的的設(shè)計(jì)方方法。(3)程序語語言只包包括

2、3種結(jié)構(gòu)(單入口,單出口口)(4)模塊化化程序設(shè)計(jì)計(jì)基礎(chǔ)基本結(jié)構(gòu)構(gòu):順序結(jié)構(gòu)構(gòu)選擇結(jié)構(gòu)構(gòu)循環(huán)結(jié)構(gòu)構(gòu)程序設(shè)計(jì)計(jì)基礎(chǔ)程序模塊1程序模塊2程序模塊2條件程序模塊1成立不成立條件程序模塊成立不成立2.面向?qū)ο笙蟪绦蛟O(shè)設(shè)計(jì)(Object-Oriented Programming)20世紀(jì)80年代OOP由理論轉(zhuǎn)轉(zhuǎn)向?qū)嵺`踐,90年代開始始盛行。(1)軟件規(guī)規(guī)模越來來越大,(美國國航天飛飛機(jī)系統(tǒng)統(tǒng)4000萬條代碼),人人們不得得不尋求求更高效效、更可可靠的開開發(fā)技術(shù)術(shù)。 (2)OOP抓住軟件件開發(fā)的的本質(zhì),OOP開發(fā)的軟軟件易重重用、易易修改、易測測試、易易擴(kuò)充。程序設(shè)計(jì)計(jì)基礎(chǔ)對象:用來描描述客觀觀事物的的實(shí)

3、體。每個(gè)對對象有各各自的內(nèi)內(nèi)部屬性性和操作作方法。程序設(shè)計(jì)計(jì)基礎(chǔ)整個(gè)程序序是由一一系列相相互作用用的對象象構(gòu)成的的,對象象之間的的交互通通過發(fā)送送消息來來實(shí)現(xiàn)。屬性:頻道顏色音量方法:調(diào)節(jié)頻道調(diào)節(jié)顏色調(diào)節(jié)音量電視機(jī)電視機(jī)對象類:具有相相同的屬屬性和操操作方法法,并遵遵守相同同規(guī)則的對對象的集集合。類是對象象集合的的抽象,規(guī)定了了這些對對象的公公共屬性性(即數(shù)據(jù)結(jié)結(jié)構(gòu))和方法(操作數(shù)據(jù)據(jù)的函數(shù)數(shù))。對象是是類的一一個(gè)實(shí)例例。程序設(shè)計(jì)計(jì)基礎(chǔ)OOP特點(diǎn):封裝、繼承、多態(tài)性性程序設(shè)計(jì)計(jì)基礎(chǔ)三、程序序設(shè)計(jì)語語言文章漢語、英語字、詞、語法結(jié)構(gòu)寫文章程序計(jì)算機(jī)語言數(shù)據(jù)表示、表達(dá)式、語句結(jié)構(gòu)編程序計(jì)算機(jī)語語言

4、:人與計(jì)計(jì)算機(jī)通通訊的語語言程序:利用計(jì)計(jì)算機(jī)語語言編寫寫的能夠夠完成一一定功能能的一組代碼。程序設(shè)計(jì)計(jì)語言計(jì)算機(jī)機(jī)語言1.語言的分分類應(yīng)用范圍通用語言、專用語言系統(tǒng)程序設(shè)計(jì)語言、科學(xué)計(jì)算語言事務(wù)處理語言、實(shí)時(shí)控制語言程序設(shè)計(jì)方法結(jié)構(gòu)化語言模塊化語言面向?qū)ο笳Z言與硬件的聯(lián)系程度機(jī)器語言匯編語言高級語言與計(jì)算機(jī)硬件基本無關(guān)依賴于計(jì)算機(jī)硬件(低級語言)程序設(shè)計(jì)計(jì)基礎(chǔ)機(jī)器語言言從本質(zhì)上上說,計(jì)計(jì)算機(jī)只只能識別別0和1兩個(gè)數(shù)字字,因此此,計(jì)算算機(jī)能夠夠直接識識別的指指令是由由一連串串的0和1組合起來來的二進(jìn)進(jìn)制編碼碼。機(jī)器指令令操作作碼操操作數(shù)機(jī)器語言言:指計(jì)算算機(jī)能夠夠直接識識別的指指令的集集合。即

5、即以二進(jìn)進(jìn)制代碼碼表示的的機(jī)器指指令集合合,它是是計(jì)算機(jī)機(jī)能夠直直接識別別和執(zhí)行行的語言言。程序設(shè)計(jì)計(jì)基礎(chǔ)優(yōu)點(diǎn):占用內(nèi)內(nèi)存少,執(zhí)行速速度快;缺點(diǎn):面向機(jī)機(jī)器,通通用性差差,不易易閱讀和和記憶,編程工作量大大,難以以維護(hù)。程序設(shè)計(jì)計(jì)基礎(chǔ)例用Intel8086指令系統(tǒng)統(tǒng)編寫機(jī)機(jī)器語言言程序,完成“9+8”優(yōu)點(diǎn):比機(jī)器器語言程程序容易易閱讀和和修改缺點(diǎn):面向機(jī)機(jī)器,通通用性差差。程序設(shè)計(jì)計(jì)基礎(chǔ)匯編語言言匯編語言言:用符號號代替機(jī)機(jī)器指令令所產(chǎn)生生的語言言。例如如,8086匯編語言言 實(shí)現(xiàn)現(xiàn) “9+8”源程序:用匯編編語言編編寫的程程序。匯編程序序:負(fù)責(zé)翻翻譯的軟軟件。主要作用用源程程序轉(zhuǎn)換換成用二二

6、進(jìn)制代代碼表示示的目標(biāo)標(biāo)程序。連接程序序:將目標(biāo)標(biāo)程序與與庫文件件或其他他目標(biāo)程程序連接接起來形成可執(zhí)執(zhí)行程序序。程序設(shè)計(jì)計(jì)基礎(chǔ)匯編語言源程序目標(biāo)程序可執(zhí)行程序匯編程序連接程序高級語言言高級語言言:用接近近自然語語言和數(shù)數(shù)學(xué)語言言的語法法、符號號描述基本操操作的程程序設(shè)計(jì)計(jì)語言FORTRAN、Pascal、C、C+、Delphi、Java、C#例如用C+實(shí)現(xiàn)“9+8”程序設(shè)計(jì)計(jì)基礎(chǔ)優(yōu)點(diǎn):符合人人類習(xí)慣慣,簡單單易學(xué)通用性強(qiáng)強(qiáng),便于于維護(hù)源程序:用高級級語言編編寫的程程序。翻譯程序序:將源程程序翻譯譯成用二二進(jìn)制代代碼表示示的目標(biāo)程序序。翻譯程序序的工作作方式:解釋方方式:邊邊解釋邊邊執(zhí)行編譯方

7、方式:編編譯程序序、運(yùn)行行程序程序設(shè)計(jì)計(jì)基礎(chǔ)高級語言源程序執(zhí)行結(jié)果解釋程序解釋方式程序設(shè)計(jì)計(jì)基礎(chǔ)編譯方式可執(zhí)行程序高級語言源程序編譯程序目標(biāo)程序連接程序2.程序設(shè)計(jì)計(jì)語言的的選擇選擇編程程語言涉涉及很多多因素:人的因因素:編編程小組組精通這這門語言言嗎?任務(wù)需需要:選選擇的語語言能否否實(shí)現(xiàn)任任務(wù)的全全部功能?能跨跨平臺嗎嗎?有數(shù)數(shù)據(jù)庫接接口功能能嗎?能能直接控制聲聲卡等硬硬件嗎?客戶指指定。例例如要通通過串行行口控制制一個(gè)外外部設(shè)備,C+匯編語言言是最明明智的選選擇。了解一些些流行的的語言,對于做做出合理理選擇會會有幫助助。程序設(shè)計(jì)計(jì)基礎(chǔ)一、軟件件的定義義軟件:計(jì)算機(jī)系系統(tǒng)中的的程序及及其文檔

8、檔。程序:計(jì)算任務(wù)務(wù)的處理理對象和和處理規(guī)規(guī)則的描描述。文檔:為了便于于了解程程序所需需的闡明明性資料料。程序必須須裝入機(jī)機(jī)器內(nèi)部部才能工工作文檔供人人閱讀,不一定定裝入機(jī)機(jī)器軟件工程程基礎(chǔ)18IEEE對軟件的的定義(1983)軟件是計(jì)計(jì)算機(jī)程程序、方方法、規(guī)規(guī)則、相相關(guān)的文文檔資料料以及在在計(jì)算機(jī)機(jī)上運(yùn)行行的程序序所必需需的數(shù)據(jù)據(jù)的集合合。程序:是計(jì)算算機(jī)需要要遵照執(zhí)執(zhí)行的一一系列指指令。它它作為一一種具有邏輯結(jié)結(jié)構(gòu)的信信息,精精確而完完整地描描述計(jì)算算任務(wù)中中的處理對象象和處理理規(guī)則。方法、規(guī)規(guī)則:通常是是在文檔檔中說明明并在程程序中實(shí)實(shí)現(xiàn)的。文檔:開發(fā)、使用和和維護(hù)程程序所需需要的圖圖文

9、資料料。數(shù)據(jù):向一個(gè)個(gè)程序提提供的輸輸入。二、軟件件的發(fā)展展過程軟件的發(fā)發(fā)展受到到應(yīng)用和和硬件發(fā)發(fā)展的推推動和制制約,其其發(fā)展過過程大致致可分為為三個(gè)階階段:第一階段1946-1958第二階段1956-1968第三階段1968以后從第一個(gè)程序出現(xiàn)到實(shí)用的高級程序設(shè)計(jì)語言出現(xiàn),這期間重點(diǎn)考慮程序本身,尚未出現(xiàn)“軟件”一詞。實(shí)用的高級程序設(shè)計(jì)語言出現(xiàn)到軟件工程出現(xiàn),這期間出現(xiàn)軟件一詞,融程序及其有關(guān)的文檔于一體?!败浖C(jī)”軟件工程出現(xiàn)現(xiàn)在,1968年大西洋公約學(xué)術(shù)會議提出“軟件工程”的概念。1.軟件危機(jī)機(jī)概念觀點(diǎn)1軟件產(chǎn)品品的生產(chǎn)產(chǎn)總是超超出預(yù)算算,落后于計(jì)劃進(jìn)進(jìn)度,而而且產(chǎn)品品質(zhì)量不不可靠。觀

10、點(diǎn)2在軟件的的開發(fā)和和維護(hù)過過程中所所遇到的的一系列嚴(yán)嚴(yán)重問題題。軟件的生生產(chǎn)過程程不像硬硬件那樣樣規(guī)范,受人的的因素和和外界影影響很大大,因此此在軟件件生產(chǎn)的的各階段段都會引引入不同同程度的的錯(cuò)誤,致使成成本上升升,甚至至導(dǎo)致軟軟件失敗敗。三、軟件件危機(jī)與與軟件工工程2.軟件危機(jī)機(jī)的表現(xiàn)現(xiàn)軟件開發(fā)發(fā)和維護(hù)護(hù)費(fèi)用急急劇上升升不重視文文檔資料料產(chǎn)品質(zhì)量量不可靠靠軟件產(chǎn)品品成本高高于硬件件產(chǎn)品3.軟件開發(fā)發(fā)中的問問題軟件生產(chǎn)產(chǎn)技術(shù)進(jìn)進(jìn)展緩慢慢軟件成本本和質(zhì)量量難以控控制對軟件開開發(fā)的錯(cuò)錯(cuò)誤認(rèn)識識難以準(zhǔn)確確、全面面把握用用戶需求求不重視階階段審查查和復(fù)審審軟件復(fù)雜雜且規(guī)模模龐大軟件維護(hù)護(hù)費(fèi)用上上升4

11、.軟件工程程概念軟件工程程(SoftwareEngineering,SE)一門研究究用工程程化方法法構(gòu)建和和維護(hù)有有效的、實(shí)用的的和高質(zhì)量軟件件的學(xué)科科 。軟件工程程在軟件開開發(fā)與維維護(hù)過程程中采用用工程的的原理、方法、技術(shù)并使用正正確的管管理方法法來指導(dǎo)導(dǎo)軟件生生產(chǎn)的全全過程。主要內(nèi)容容軟件開發(fā)發(fā)方法軟件開發(fā)發(fā)過程軟件開發(fā)發(fā)工具軟件管理理5.軟件工程程的基本本準(zhǔn)則B.W.Boehm綜合各方方意見,于1983年提出了了軟件工工程的基基本準(zhǔn)則則1用分階段段的生命命周期計(jì)計(jì)劃嚴(yán)格格管理據(jù)統(tǒng)計(jì),在不成成功的軟軟件項(xiàng)目目中有50%左左右是由由于計(jì)劃劃不周造造成的。應(yīng)該把把軟件生生命周期期劃分為為若干階

12、階段,并并制定出出相應(yīng)的的切實(shí)可可行的計(jì)計(jì)劃,嚴(yán)嚴(yán)格按照照計(jì)劃對對開發(fā)和和維護(hù)進(jìn)進(jìn)行管理理。2堅(jiān)持進(jìn)行行階段評評審設(shè)計(jì)的錯(cuò)錯(cuò)誤占軟軟件錯(cuò)誤誤的63%,編編碼錯(cuò)誤誤只占37%。而且在在后期糾糾正錯(cuò)誤誤的代價(jià)價(jià)非常高高。因此此,必須須嚴(yán)格堅(jiān)堅(jiān)持階段段評審,及早發(fā)發(fā)現(xiàn)和糾糾正錯(cuò)誤誤3實(shí)行嚴(yán)格格的產(chǎn)品品質(zhì)量控控制在現(xiàn)實(shí)中中由于外外部原因因要求對對需求等等進(jìn)行修修改是難難免的。但必須須有嚴(yán)格格的管理理制度和和措施。4采用現(xiàn)代代程序設(shè)設(shè)計(jì)技術(shù)術(shù)和軟件件工程技技術(shù)如結(jié)構(gòu)化化程序分分析(Structured Analysis)和結(jié)結(jié)構(gòu)化設(shè)設(shè)計(jì)(Structured Design)等等。5結(jié)果應(yīng)能能清楚地地審查

13、由于軟件件是一種種看不見見摸不著著的邏輯輯產(chǎn)品,對它的的檢驗(yàn)和和審查很很困難。因此,應(yīng)提供供可視化化的檢驗(yàn)驗(yàn)標(biāo)準(zhǔn)和和方法。6開發(fā)人員員應(yīng)少而而精軟件開發(fā)發(fā)小組的的人員應(yīng)應(yīng)該是素素質(zhì)高,人員不不宜過多多。人員員素質(zhì)低低和人員員過多,都會導(dǎo)導(dǎo)致軟件件的錯(cuò)誤誤率高,且開發(fā)發(fā)效率下下降,成成本增加加。7承認(rèn)不斷斷改進(jìn)軟軟件工程程的必要要性軟件工程程是一門門不斷迅迅速發(fā)展展的學(xué)科科,必須須學(xué)習(xí)和和跟蹤先先進(jìn)的技技術(shù)和方方法,也也要不斷斷總結(jié)經(jīng)經(jīng)驗(yàn)、改改進(jìn)方法法,要不不斷進(jìn)行行技術(shù)創(chuàng)創(chuàng)新。四、軟件件生命周周期軟件生命命周期是是從時(shí)間的角度出出發(fā),從從軟件目目標(biāo)的提提出、定定義、開開發(fā)、維維護(hù),直直到最終終

14、被丟棄棄的整個(gè)個(gè)過程。計(jì)劃時(shí)期期開發(fā)發(fā)時(shí)期運(yùn)行時(shí)時(shí)期1.計(jì)劃時(shí)期期問題的定定義:提出軟軟件項(xiàng)目目的目標(biāo)標(biāo)和規(guī)模??尚行匝醒芯浚簩?xiàng)目目進(jìn)行可可行性調(diào)調(diào)研和論論證,確確定項(xiàng)目目是否能能夠或者值得開開發(fā)2.開發(fā)時(shí)期期開發(fā)時(shí)期期要具體體分析、設(shè)計(jì)和和實(shí)現(xiàn)計(jì)計(jì)劃時(shí)期期定義的的軟件。需求分析析:做什么么概要設(shè)計(jì)計(jì):建立目目標(biāo)系統(tǒng)統(tǒng)的總體體結(jié)構(gòu)詳細(xì)設(shè)計(jì)計(jì):怎樣做做編碼碼:選擇程程序設(shè)計(jì)計(jì)語言進(jìn)進(jìn)行描述述。測試試:單元測測試、綜綜合測試試、確認(rèn)認(rèn)測試和和系統(tǒng)測測試或者者驗(yàn)收測測試。3.運(yùn)行時(shí)期期交付使用用維護(hù)護(hù)工作維護(hù)的主主要任務(wù)務(wù):通過各種種必要的的維護(hù)活活動延長長系統(tǒng)的的生命周周期。軟件開發(fā)發(fā)的原則則與

15、方法法結(jié)構(gòu)化軟軟件開發(fā)發(fā)的原則則結(jié)構(gòu)化:用一組組規(guī)范的的步驟、準(zhǔn)則和和工具來來進(jìn)行工工作最成熟、最廣泛泛的方法法(1)用戶參參與(2)先邏輯輯,后物物理(3)自頂向向下逐逐步求精精 功能能分解與與抽象(4)工作成成果描述述標(biāo)準(zhǔn)化化軟件開發(fā)發(fā)的方法法(1)系統(tǒng)流流程圖(2)結(jié)構(gòu)分分析法(3)結(jié)構(gòu)化化設(shè)計(jì)法法(4)數(shù)據(jù)結(jié)結(jié)構(gòu)法(5)層次輸輸入處理輸出方法法(HIPO法)一、問題題定義問題是指指用戶的的基本要要求,就就是確切切地定義義用戶要要求解決決的問題題,即確定問題題的性質(zhì)質(zhì)、工程程的目標(biāo)標(biāo)和規(guī)模模。問題定義義的目的的是要在在短時(shí)間間內(nèi),對對用戶的的要求有有一個(gè)比比較準(zhǔn)確確的估計(jì)計(jì),對要要實(shí)現(xiàn)的

16、的系統(tǒng)規(guī)規(guī)模做到到心中有有數(shù)。但但僅有這這些還不不夠,還還要搞清清用戶不不打算干干什么,在這個(gè)個(gè)系統(tǒng)中中哪些內(nèi)內(nèi)容不用用實(shí)現(xiàn)。工作的宗宗旨是搞搞清要做做什么并并劃清要要實(shí)現(xiàn)的的系統(tǒng)的的范圍邊邊界。在問題定定義階段段,分析析員應(yīng)盡盡可能站站在較高高的角度度去抽象象、概括括所要做做的事情情。分析員對對問題有有了明確確認(rèn)識之之后,應(yīng)應(yīng)該把自自己的認(rèn)認(rèn)識寫成成書面報(bào)報(bào)告,提提交給用用戶和使使用部門門的負(fù)責(zé)責(zé)人審查查,以檢檢驗(yàn)分析析員對所所要解決決的問題題的理解解是否正正確。因因?yàn)榉治鑫鰡T對問問題的理理解為今今后開發(fā)發(fā)工作確確定了方方向。分分析員對對問題理理解正確確與否,關(guān)系到到系統(tǒng)成成敗。問題定義義(

17、續(xù))在問題定定義階段段,分析析員應(yīng)該該對工程程成本做做出粗略略的預(yù)算算,并對對下階段段可行性性研究所所需要時(shí)時(shí)間和成成本做出出較精確確的估計(jì)計(jì)。對問題定定義的書書面報(bào)告告應(yīng)該盡盡可能清清楚簡潔潔,最好好寫在一一頁內(nèi)。這份報(bào)報(bào)告通常常應(yīng)包括括工程項(xiàng)項(xiàng)目的名名字,對對問題概概括定義義、項(xiàng)目目的目標(biāo)標(biāo),項(xiàng)目目的規(guī)模模,對可可行性研研究的具具體建議議(既需要用用的時(shí)間間和成本本)等等。一旦分析析員和用用戶及使使用部門門的負(fù)責(zé)責(zé)人對所所要解決決的問題題,取得得完全一一致的看看法且在在報(bào)告書書上簽了了字,問問題定義義階段工工作就宣宣告完成成,可行行性研究究就可以以開始。二、可行行性研究究可行性研研究就是是

18、分析員員站在較較高的角角度去調(diào)調(diào)查現(xiàn)行行系統(tǒng)及及用戶提提出的目目標(biāo),并并尋找是是否有一一種手段段能夠在在現(xiàn)有條條件下實(shí)實(shí)際地達(dá)達(dá)到項(xiàng)目目目標(biāo)。同時(shí)向向用戶指指出該系系統(tǒng)實(shí)現(xiàn)現(xiàn)的意義義,使用用戶去權(quán)權(quán)衡花費(fèi)費(fèi)這樣的的代價(jià)去去實(shí)現(xiàn)這這樣的系系統(tǒng)是否否值得??尚行匝醒芯康哪磕康木褪鞘怯米钚⌒〉拇鷥r(jià)價(jià)在盡可可能短的的時(shí)間內(nèi)內(nèi),確定定問題是是否能夠夠解決,從而確確定問題題是否值值得去解解。如何才能能達(dá)到這這個(gè)目的的呢?進(jìn)進(jìn)行客觀觀分析,通過對對幾種可可能解法法,分析析其利弊弊,才能能判斷原原定系統(tǒng)統(tǒng)的目標(biāo)標(biāo)和規(guī)模模是否現(xiàn)現(xiàn)實(shí),系系統(tǒng)帶來來的效益益是否大大到值得得投資開開發(fā)這個(gè)個(gè)系統(tǒng)。因此,可行性性研究實(shí)

19、實(shí)質(zhì)上是是進(jìn)行一一個(gè)大大大壓縮簡簡化了的的軟件分分析和設(shè)設(shè)計(jì)過程程,也就就是在較較高層上上,以較較抽象的的方式進(jìn)進(jìn)行軟件件分析和和設(shè)計(jì)的的過程??尚行匝醒芯繎?yīng)在在以下三三方面進(jìn)進(jìn)行:技術(shù)可可行性;經(jīng)濟(jì)濟(jì)可行性性;操操作可行行性??尚行匝醒芯浚ɡm(xù)續(xù))1.技術(shù)可行行性對技術(shù)可可行性研研究,首首先應(yīng)從從對現(xiàn)行行系統(tǒng)進(jìn)進(jìn)行調(diào)查查入手。因?yàn)楝F(xiàn)現(xiàn)行系統(tǒng)統(tǒng)是信息息的重要要來源。新的目目標(biāo)系統(tǒng)統(tǒng)必須能能完成現(xiàn)現(xiàn)行系統(tǒng)統(tǒng)的基本本功能;另一方方面,新新系統(tǒng)必必須能解解決舊系系統(tǒng)中存存在的問問題。所所以,應(yīng)應(yīng)先對現(xiàn)現(xiàn)行系統(tǒng)統(tǒng)的組成成部分、功能和和存在問問題進(jìn)行行調(diào)查研研究。但但這種調(diào)調(diào)查研究究不可能能做得很很細(xì),對

20、對一些內(nèi)內(nèi)容細(xì)節(jié)節(jié)必須先先暫時(shí)忽忽略,抓抓住主要要的問題題。此時(shí)時(shí),分析員應(yīng)應(yīng)把調(diào)查查到的現(xiàn)現(xiàn)行系統(tǒng)統(tǒng)的情況況畫成高高層數(shù)據(jù)據(jù)流程圖圖。其次,導(dǎo)出新系系統(tǒng)的高高層邏輯輯模型(數(shù)據(jù)流程程圖)。新系統(tǒng)統(tǒng)的高層層的邏輯輯模型建建立在現(xiàn)現(xiàn)行系統(tǒng)統(tǒng)的高層層數(shù)據(jù)流流程圖的的基礎(chǔ)上上。因?yàn)闉橥ㄟ^前前一步的的工作,分析員員對目標(biāo)標(biāo)系統(tǒng)(新系統(tǒng))應(yīng)該具的的基本功功能和所所受的約約束,已已有一定定的了解解,使用用數(shù)據(jù)流流程圖描描繪數(shù)據(jù)據(jù)在系統(tǒng)統(tǒng)中流動動和處理理的情況況,從而而概括地地表達(dá)出出對新系系統(tǒng)的設(shè)設(shè)想。用用數(shù)據(jù)流流程圖和和數(shù)據(jù)字字典來定定義新系系統(tǒng)的高高層邏輯輯模型??尚行匝醒芯浚ɡm(xù)續(xù))其三,重重新定義義

21、問題。新系統(tǒng)統(tǒng)的邏輯輯模型實(shí)實(shí)質(zhì)上表表達(dá)了分分析員對對新系統(tǒng)統(tǒng)必須做做什么的的看法。此時(shí),分析員員應(yīng)該和和用戶一一起復(fù)查查問題定定義、工工程規(guī)模模和目標(biāo)標(biāo)。這次次復(fù)查應(yīng)應(yīng)該把數(shù)數(shù)據(jù)流程程圖和數(shù)數(shù)據(jù)字典典作討論論的基礎(chǔ)礎(chǔ)。如果果分析員員對問題題有誤解解或者用用戶曾經(jīng)經(jīng)遺漏了了某些要要求,那那么現(xiàn)在在是發(fā)現(xiàn)現(xiàn)和改正正這些錯(cuò)錯(cuò)誤的時(shí)時(shí)候了。其四,導(dǎo)導(dǎo)出供選選擇的解解法。分分析員應(yīng)應(yīng)從他所所建議的的系統(tǒng)邏邏輯模型型出發(fā),推導(dǎo)出出若干個(gè)個(gè)較高層層次的解解決辦法法,供比比較和選選擇。最最簡單的的途徑,是從技技術(shù)角度度出發(fā),考慮解解決問題題的不同同方案。這些不不同方案案可以在在數(shù)據(jù)流流程圖上上劃分不不同的自

22、自動化邊邊界而得得到。所所以分析析員在確確定了幾幾組不同同的自動動化邊界界之后,再針對對每組邊邊界,考考慮如何何實(shí)現(xiàn)所所要求的的系統(tǒng)。當(dāng)從技術(shù)術(shù)角度提提出了一一些系統(tǒng)統(tǒng)模型之之后,應(yīng)應(yīng)根據(jù)技技術(shù)可行行性的考考慮,初初步排除除一些不不現(xiàn)實(shí)的的系統(tǒng)。把技術(shù)術(shù)上行不不通的解解法(方案)去掉之后后,就剩剩下了一一組技術(shù)術(shù)上可行行的方案案??尚行匝醒芯浚ɡm(xù)續(xù))一般來說說,技術(shù)術(shù)可行性性還可以以從硬件件(包括外圍圍設(shè)備)的性能要要求、軟軟件的性性能要求求(包括操作作系統(tǒng)、軟件包包、數(shù)據(jù)據(jù)庫管理理系統(tǒng)、各種軟軟件工具具)能源及環(huán)環(huán)境條件件以及軟軟件系統(tǒng)統(tǒng)所采用用的技術(shù)術(shù)是否先先進(jìn),實(shí)實(shí)現(xiàn)的可可能性如如何,實(shí)

23、實(shí)現(xiàn)軟件件系統(tǒng)的的人員素素質(zhì)是否否具備等等方面進(jìn)進(jìn)行考慮慮。2.經(jīng)濟(jì)可行行性研究經(jīng)濟(jì)濟(jì)可行性性,不僅僅僅是了了解為完完成用戶戶提出的的要求是否有足足夠的資資金支持持(這是目前前很多分分析員重重點(diǎn)要做做的事情情),而更主要要是把成成本與獲獲利分析析清楚。也就是是對經(jīng)濟(jì)濟(jì)合理性性進(jìn)行評評價(jià),即即帶來的的經(jīng)濟(jì)效效益是否否超過其其開發(fā)和和維護(hù)所所需要的的費(fèi)用。這工作作包括估估計(jì)費(fèi)用用和估計(jì)計(jì)效益兩兩個(gè)方面面。可行性研研究(續(xù)續(xù))估計(jì)費(fèi)用用。主要要考慮以以下幾部部分:設(shè)設(shè)備費(fèi)用用,包括括計(jì)算機(jī)機(jī)硬件和和軟件的的費(fèi)用;人力費(fèi)費(fèi)用,包包括開發(fā)發(fā)人員和和維護(hù)人人員的工工資;材材料費(fèi)用用;管理理費(fèi)用以以及維護(hù)護(hù)

24、費(fèi)用等等。估計(jì)效益益??梢砸詮囊韵孪聨讉€(gè)方方面考慮慮:提供供了哪些些以前提提供不了了的信息息,提供供信息的的速度提提高了多多少?質(zhì)質(zhì)量有什什么提高高?對使使用者查查詢和使使用信息息的方便便程度有有什么提提高,節(jié)節(jié)省多少少人力?對組織織的領(lǐng)導(dǎo)導(dǎo)人和管管理人員員正確做做出決策策提供了了哪幫助助?有時(shí)不能能直接用用金錢來來衡量效效益,如如一個(gè)郵郵購單位位,由于于能夠及及時(shí)、準(zhǔn)準(zhǔn)確地處處理訂貨貨,縮短短了顧客客收到貨貨物的時(shí)時(shí)間,從從而在競競爭中得得到了更更多的顧顧客。這這一類的的收益就就不容易易用具體體金錢來來衡量,只能由由管理人人員根據(jù)據(jù)經(jīng)驗(yàn)來來做出大大約的估估計(jì)。在估計(jì)效效益時(shí),要謹(jǐn)慎慎把各種種

25、可能影影響效益益發(fā)揮的的各種因因素考慮慮在內(nèi),打上折折扣。可行性研研究(續(xù)續(xù))3.操作和維維護(hù)可行行性人員操作作和維護(hù)護(hù)可行性性的研究究是了解解當(dāng)用戶戶所要求求的軟件件系統(tǒng)建建立起來來之后,用戶戶對它的的操作是是否方便便?管理理和維護(hù)護(hù)是否容容易?如如果對于于一個(gè)軟軟件系統(tǒng)統(tǒng)的操作作比原有有的手工工系統(tǒng)還還麻煩,那么它它是不會會受歡迎迎的。另另一方面面,如果果管理和和維護(hù)這這個(gè)軟件件系統(tǒng)的的人員比比原來的的手工系系統(tǒng)還多多,素質(zhì)質(zhì)要求還還高,那那么這個(gè)個(gè)系統(tǒng)對對用戶來來說負(fù)擔(dān)擔(dān)太重了了。從上面的的討論中中不難看看出,可可行性研研究的出出發(fā)點(diǎn)應(yīng)應(yīng)該是從從當(dāng)前的的物理系系統(tǒng)到新新的物理理系統(tǒng)的的轉(zhuǎn)

26、換,它是整整個(gè)可行行性研究究的基礎(chǔ)礎(chǔ),實(shí)際際上也是是整個(gè)系系統(tǒng)開發(fā)發(fā)過程的的縮影。因?yàn)檎麄€(gè)系統(tǒng)統(tǒng)實(shí)現(xiàn)過過程也就就是把當(dāng)當(dāng)前的手手工系統(tǒng)統(tǒng)轉(zhuǎn)化為為可用計(jì)計(jì)算機(jī)實(shí)實(shí)現(xiàn)的新新系統(tǒng)的的一個(gè)轉(zhuǎn)轉(zhuǎn)換過程程,只不不過這工工作比在在可行性性研究階階段更細(xì)細(xì)致,更更具體罷罷了。上述從三三個(gè)方面面分別開開展的,而實(shí)際際上它們們之間有有著密切切的聯(lián)系系,因此此還必須須對它們們綜合考考慮,然然后向用用戶推薦薦方案供供其選擇擇??尚行匝醒芯浚ɡm(xù)續(xù))當(dāng)用戶選選定方案案之后,分析員員應(yīng)對在在問題定定義階段段所規(guī)定定的實(shí)現(xiàn)現(xiàn)目標(biāo)進(jìn)進(jìn)行修改改。因?yàn)闉椋@時(shí)時(shí)對系統(tǒng)統(tǒng)有了更更深入的的了解,原來的的問題定定義可能能有的不不能實(shí)現(xiàn)

27、現(xiàn),還有有些需要要加上去去,也就就是說原原有的問問題邊界界不夠準(zhǔn)準(zhǔn)確,需需要糾正正,以便便今后有有一個(gè)非非常明確確的工作作目標(biāo)。這是一一步極有有實(shí)質(zhì)意意義的工工作,它它使分析析員和用用戶最后后明確了了要解決決的問題題的邊界界以及它它的實(shí)現(xiàn)現(xiàn)方案。一般來來說,可可行性研研究的結(jié)結(jié)果可導(dǎo)導(dǎo)致以下下兩種情情況:(1)可行()不可行可行性研研究結(jié)束束后,要要寫出可可行性研研究報(bào)告告,提交交有關(guān)專專家論證證和上級級主管部部門批準(zhǔn)準(zhǔn)。可行行性研究究報(bào)告作作為所有有軟件文文件資料料的基礎(chǔ)礎(chǔ)材料,它的格格式可以以很不相相同,但但大體的的內(nèi)容提提綱是一一致的。需求分析析的定義義軟件需求求分析是是在可行行性研究究

28、基礎(chǔ)上上進(jìn)行的的更細(xì)致致的分析析工作。也就是是在對軟軟件計(jì)劃劃階段確確定的工工作范圍圍內(nèi)進(jìn)一一步對目目標(biāo)對象象和環(huán)境境作細(xì)致致、深入入的調(diào)查查分析。需求分分析過程程實(shí)際上上是一個(gè)個(gè)調(diào)查研研究、分分析綜合合的過程程,是一一個(gè)抽象象思維、邏輯推推理的過過程。通通過調(diào)查查研究和和分析,充分了了解用戶戶對軟件件系統(tǒng)的的要求。在此基基礎(chǔ)上,把用戶戶要求表表達(dá)出來來,解決決軟件系系統(tǒng)“做做什么”的問題題。也就就是建立立起系統(tǒng)統(tǒng)的邏輯模型型,把軟件件功能和和性能的的總體概概念描述述成具體體的軟件規(guī)格格說明書書。需求分析析的目標(biāo)標(biāo)(1.理清數(shù)據(jù)據(jù)流或數(shù)數(shù)據(jù)結(jié)構(gòu)構(gòu);2.通過標(biāo)識識接口細(xì)細(xì)節(jié),深深入描述述功能,確

29、定設(shè)設(shè)計(jì)約束束和軟件件有效性性要求;3.構(gòu)造一個(gè)個(gè)完全、精致的的目標(biāo)系系統(tǒng)邏輯輯模型。)需求分析析的任務(wù)務(wù)(認(rèn)清問問題、分分析與綜綜合、邏邏輯模型型導(dǎo)出與與復(fù)審)結(jié)構(gòu)化分分析方法法三、需求求分析結(jié)構(gòu)化分分析方法法結(jié)構(gòu)化分分析方法法的策略略基本的系系統(tǒng)模型型結(jié)構(gòu)化分分析方法法策略分分析.輸入1.軟件系統(tǒng)輸出1輸出2輸出3輸入.x1231.12.23.33.13.23.43.5頂層0層1層3.3逐層分解方法示意圖業(yè)務(wù)流程程圖結(jié)構(gòu)化分分析方法法(續(xù))數(shù)據(jù)流圖圖數(shù)據(jù)流圖圖的定義義數(shù)據(jù)流圖圖的組成成要素:源點(diǎn)、終點(diǎn)、數(shù)據(jù)流流、數(shù)據(jù)據(jù)文件、數(shù)據(jù)變變換數(shù)據(jù)變換換的兩種種類型:對數(shù)據(jù)據(jù)結(jié)構(gòu)的的變換,如對數(shù)數(shù)據(jù)

30、的格格式重新新排列。在原原有數(shù)據(jù)據(jù)內(nèi)容基基礎(chǔ)上產(chǎn)產(chǎn)生新的的數(shù)據(jù)內(nèi)內(nèi)容,如如計(jì)算平平均值或或總計(jì)。數(shù)據(jù)流圖圖的畫法法、畫數(shù)數(shù)據(jù)流圖圖的基本本原則(數(shù)據(jù)流流程圖中中的圖形形符號只只能包含含四種基基本元素素。數(shù)數(shù)據(jù)流程程圖主圖圖上的數(shù)數(shù)據(jù)流必必須封閉閉在外部部實(shí)體(外部項(xiàng)項(xiàng))之間間,實(shí)體體可以是是一個(gè)也也可是多多個(gè)。變換框框上至少少有一個(gè)個(gè)輸出數(shù)數(shù)據(jù)流和和一個(gè)輸輸入數(shù)據(jù)據(jù)流。數(shù)據(jù)流流程圖上上的每一一個(gè)元素素都必須須有“名名字”。)、方法法與步驟驟注意事事項(xiàng)(父父子圖的的平衡、分解程程度與數(shù)數(shù)據(jù)存儲儲文件,數(shù)據(jù)流流圖是靜靜態(tài)圖、與傳統(tǒng)統(tǒng)框圖的的差別、反復(fù)修修改的過過程)數(shù)據(jù)流圖圖數(shù)據(jù)流圖圖數(shù)據(jù)流圖圖數(shù)

31、據(jù)字典典、數(shù)據(jù)據(jù)字典的的定義(數(shù)據(jù)字典典就是對對數(shù)據(jù)流流程圖中中,數(shù)據(jù)據(jù)、變換等進(jìn)進(jìn)行精確確定義。)、數(shù)據(jù)據(jù)定義方方法(對數(shù)據(jù)自自頂向下下的分解解。當(dāng)分分解到不不需要進(jìn)一步定定義,對對每個(gè)和和系統(tǒng)有有關(guān)的人人都能清清楚理解解這些數(shù)數(shù)據(jù)項(xiàng)的含含義為止止。)、數(shù)據(jù)據(jù)定義中中的數(shù)據(jù)據(jù)結(jié)構(gòu)(順序、選選擇、重重復(fù)、可可選)、數(shù)據(jù)據(jù)字典中中的符號號( 表示示等價(jià)、+表示和(或連接兩兩個(gè)分量)、表示重復(fù)復(fù)花括號號內(nèi)的分分量、|表示或即即從方括弧內(nèi)內(nèi)列出的的若干分分量中選選擇一個(gè)個(gè)、()表示可選選即或括弧里里的量可可有可無無、n.m表示界域域)、數(shù)據(jù)據(jù)流、數(shù)數(shù)據(jù)存儲儲、數(shù)據(jù)據(jù)變換的的定義加工的描描述要求:準(zhǔn)準(zhǔn)

32、確、清清晰、簡簡潔自然語言言結(jié)構(gòu)化語語言決策樹決策表以上工具具的混合合使用決策樹、決策表表、結(jié)構(gòu)構(gòu)化語言言if交交易額額 = 2500元元 thenif三三個(gè)月無無欠款then折折扣15%else if 老顧顧客then 折扣扣10%else 折扣扣 5%else 無折折扣1.研究目前前正在使使用的系系統(tǒng)現(xiàn)有的系系統(tǒng)(包括人工工系統(tǒng))是信息的的重要來來源。因因此,首首先要去去了解現(xiàn)現(xiàn)有系統(tǒng)統(tǒng)能完成成哪些工工作,而而新的目目標(biāo)系統(tǒng)統(tǒng)必須也也能完成成它的基基本功能能;對現(xiàn)有系系統(tǒng)(人工系統(tǒng)統(tǒng))的了解,是要了了解對現(xiàn)現(xiàn)有系統(tǒng)統(tǒng)能做什什么,同同時(shí)畫出出描繪現(xiàn)現(xiàn)有系統(tǒng)統(tǒng)的高層層數(shù)據(jù)流流程圖。2.導(dǎo)出新系

33、系統(tǒng)的高高層數(shù)據(jù)據(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)的的邏輯模模型。通常第一一步的工工作,對對新的目目標(biāo)系統(tǒng)統(tǒng)應(yīng)該具具有的基基本功能能和所受受的約束束條件,已有一一定的了了解,把把這些了了解用數(shù)數(shù)據(jù)流程程圖概括括地描繪繪出對新新系統(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ù)據(jù)流程圖圖在第二步步畫出新新系統(tǒng)的的高層數(shù)數(shù)據(jù)

34、流程程圖中,許多數(shù)數(shù)據(jù)的定定義和一一些細(xì)節(jié)節(jié)都沒有有考慮進(jìn)進(jìn)去?,F(xiàn)現(xiàn)在應(yīng)著著手解決決這個(gè)問問題。(1)沿著數(shù)據(jù)據(jù)流程圖圖回溯為了對數(shù)數(shù)據(jù)流程程圖中的的數(shù)據(jù)流流和數(shù)據(jù)據(jù)存儲進(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)組成成的,通通過調(diào)查查訪問是是不難搞搞清這個(gè)個(gè)問題。那么每每個(gè)輸出出數(shù)據(jù)項(xiàng)項(xiàng)又是從從哪里來來的呢?因?yàn)樗鞘切孪到y(tǒng)統(tǒng)的輸出出,那么么它們或或者是從從外面輸輸入到系系統(tǒng)中來來,或者者是通過過運(yùn)算由由系統(tǒng)中中產(chǎn)生出出來的。為了弄

35、弄清這些些,可以以沿著數(shù)數(shù)據(jù)流程程圖從輸輸出端往往輸入端端回溯,能夠確確定每個(gè)個(gè)數(shù)據(jù)項(xiàng)項(xiàng)的來源源,與此此同時(shí)也也就初步步定義了了有關(guān)的的算法。結(jié)構(gòu)化分分析步驟驟(續(xù))在第二步步得到的的高層數(shù)數(shù)據(jù)流程程圖中,許多具具體細(xì)節(jié)節(jié)沒有包包括在里里面。因因此,當(dāng)當(dāng)沿著數(shù)數(shù)據(jù)流程程圖回溯溯時(shí),經(jīng)經(jīng)常會遇遇到:為為了得到到某個(gè)數(shù)數(shù)據(jù)項(xiàng)需需要用到到數(shù)據(jù)流流程圖中中目前還還沒有的的數(shù)據(jù)項(xiàng)項(xiàng),或者者得出這這個(gè)數(shù)據(jù)據(jù)項(xiàng)要用用的算法法還不完完全清楚楚。為了了解決這這些問題題,需要要向用戶戶和有關(guān)關(guān)人員請請教,他他們的回回答使分分析員對對新系統(tǒng)統(tǒng)的認(rèn)識識更具體體更深入入了。系系統(tǒng)中更更多的數(shù)數(shù)據(jù)項(xiàng)被被劃分出出來,更更多

36、的算算法被搞搞清楚了了。一般般把分析析過程得得到的有有關(guān)數(shù)據(jù)據(jù)項(xiàng)的信信息、變變換的算算法簡明明地記在在數(shù)據(jù)字字典中。(2)用戶復(fù)查查通過沿著著數(shù)據(jù)流流程圖的的回溯過過程,把把一些數(shù)數(shù)據(jù)項(xiàng)和和變換的的算法記記錄到數(shù)數(shù)據(jù)字典典中。這這個(gè)數(shù)據(jù)據(jù)字典是是否準(zhǔn)確確完整?算法是否否正確?還有沒有有必要的的變換和和數(shù)據(jù)項(xiàng)項(xiàng)遺漏了了?某些數(shù)據(jù)據(jù)項(xiàng)的來來源搞清清楚嗎?結(jié)構(gòu)化分分析步驟驟(續(xù))對這些問問題必須須請系統(tǒng)統(tǒng)的用戶戶對前面面步驟得得出的結(jié)結(jié)果仔細(xì)細(xì)地進(jìn)行行復(fù)查??梢越杞柚跀?shù)數(shù)據(jù)流程程圖和數(shù)數(shù)據(jù)字典典,從輸輸入端開開始向用用戶解釋釋輸入數(shù)數(shù)據(jù)怎樣樣一步一一步地轉(zhuǎn)轉(zhuǎn)變成輸輸出數(shù)據(jù)據(jù)。這些些解釋集集中反映映

37、了分析析員通過過前面分分析工作作,所獲獲得的對對新目標(biāo)標(biāo)系統(tǒng)的的認(rèn)識。這些認(rèn)認(rèn)識是否否正確,有無遺遺漏?應(yīng)請用戶戶及時(shí)糾糾正和補(bǔ)補(bǔ)充分析析員的認(rèn)認(rèn)識。通通過復(fù)查查過程驗(yàn)驗(yàn)證了已已知的元元素,補(bǔ)補(bǔ)充了未未知的元元素。填填補(bǔ)了文文檔中的的空白。由于復(fù)查查可能獲獲得新的的知識,又可能能引出新新的問題題。這些些需要進(jìn)進(jìn)一步的的調(diào)查訪訪問尋求求對問題題的解答答,而且且還應(yīng)及及時(shí)修改改和補(bǔ)充充數(shù)據(jù)流流程圖和和數(shù)據(jù)字字典,把把對系統(tǒng)統(tǒng)的新認(rèn)認(rèn)識及時(shí)時(shí)記錄下下來。所所以,追追蹤數(shù)據(jù)據(jù)流程圖圖和復(fù)查查軟件系系統(tǒng)的邏邏輯模型型實(shí)質(zhì)上上構(gòu)成一一個(gè)循環(huán)環(huán)。對數(shù)數(shù)據(jù)流程程圖的分分析產(chǎn)生生一些問問題,這這些問題題通過復(fù)復(fù)

38、查得到到的答案案使分析析員對系系統(tǒng)有更更深人更更具體的的認(rèn)識,同時(shí)可可能又引引出新的的問題,尋找這這些新問問題的答答案導(dǎo)致致了對新新系統(tǒng)的的更進(jìn)一一步的認(rèn)認(rèn)識。,每經(jīng)過過一次循循環(huán)都會會對新系系統(tǒng)了解解更多的的細(xì)節(jié)。結(jié)構(gòu)化分分析(續(xù)續(xù))4.分解細(xì)化化數(shù)據(jù)流流程圖通過上面面的分析析及用戶戶的復(fù)查查,分析析員對新新系統(tǒng)有有了更進(jìn)進(jìn)一步了了解,此此時(shí)可對對數(shù)據(jù)流流程圖中中的各個(gè)個(gè)變換進(jìn)進(jìn)行檢查查。如果果某個(gè)變變換的功功能還比比較復(fù)雜雜,即還還比較抽抽象,就就應(yīng)將這這個(gè)變換換功能分分解成若若干個(gè)子子功能。這些較較低層的的子功能能就成為為新的數(shù)數(shù)據(jù)流程程圖上的的變換。在新的的數(shù)據(jù)流流程圖中中,也應(yīng)應(yīng)包括

39、自自己的數(shù)數(shù)據(jù)流和和數(shù)據(jù)存存儲。數(shù)據(jù)流程程圖經(jīng)分分解之后后,得到到一組新新的數(shù)據(jù)據(jù)流程圖圖,不同的的軟件元元素之間間關(guān)系變變得更清清楚了。對這組組新數(shù)據(jù)據(jù)流程圖圖的分析析追蹤可可能產(chǎn)生生新的問問題,對對這些問問題的解解答,又又可能在在數(shù)據(jù)字字典中增增加一些些新的條條目,并并且可能能導(dǎo)致新新的或精精化的變變換算法法的描述述。隨著著分析過過程的進(jìn)進(jìn)展,經(jīng)經(jīng)過問題題與解答答的反復(fù)復(fù)循環(huán),分析員員越來越越深入、具體地地定義了了新系統(tǒng)統(tǒng)。通過過上面各各步就可可以得到到一套新新目標(biāo)系系統(tǒng)的分分層數(shù)據(jù)據(jù)流程圖圖和數(shù)據(jù)據(jù)字典,也就是是得到新新系統(tǒng)的的邏輯模模型。軟件總體體設(shè)計(jì)的的任務(wù)從軟件需求求規(guī)格說說明書出

40、發(fā),將將設(shè)計(jì)對對象用數(shù)數(shù)據(jù)流或或數(shù)據(jù)結(jié)結(jié)構(gòu)的形形式表達(dá)達(dá)成完整整的抽象象實(shí)體。這個(gè)實(shí)實(shí)體應(yīng)當(dāng)當(dāng)是一個(gè)個(gè)結(jié)構(gòu)清清晰、層層次分明明的模塊塊組合,應(yīng)當(dāng)可可以被評評價(jià)和細(xì)細(xì)化,也也可以被被修改。同時(shí)還還要定義義這個(gè)實(shí)實(shí)體與外外部環(huán)境境的接口口。軟件總體體設(shè)計(jì)的的目標(biāo)1.軟件實(shí)體體應(yīng)當(dāng)具具有明顯顯的層次次結(jié)構(gòu),便于軟軟件元素素之間的的控制。2.軟件實(shí)體體應(yīng)當(dāng)模模塊化,這些摸摸塊應(yīng)具具有完全全獨(dú)立的的功能。3.軟件實(shí)體體與環(huán)境境的界面面應(yīng)當(dāng)清清晰。4.軟件設(shè)計(jì)計(jì)的最終終表示軟件設(shè)計(jì)計(jì)規(guī)格說說明應(yīng)當(dāng)當(dāng)清晰、簡潔、完整整和無岐岐義。四、軟件件總體設(shè)設(shè)計(jì)結(jié)構(gòu)化方方法從建建立一個(gè)個(gè)具有良良好結(jié)構(gòu)構(gòu)系統(tǒng)的的觀點(diǎn)出出

41、發(fā),基基于把一一個(gè)復(fù)雜雜的系統(tǒng)統(tǒng)分解成成相對對對立的模模塊的原原則,主主要研究究了將系系統(tǒng)分解解為不同同模塊的的方法與與技術(shù),分析系系統(tǒng)分解解師長生生的各種種影響,提出了了評價(jià)模模塊結(jié)構(gòu)構(gòu)質(zhì)量的的具體標(biāo)標(biāo)準(zhǔn),還還給出了了從數(shù)據(jù)據(jù)流圖導(dǎo)導(dǎo)出模塊塊結(jié)構(gòu)圖圖的規(guī)則則。結(jié)構(gòu)化設(shè)設(shè)計(jì)方法法規(guī)定了了一系列列模塊的的分解協(xié)協(xié)調(diào)原則則,提出出了結(jié)構(gòu)構(gòu)化設(shè)計(jì)計(jì)的基礎(chǔ)礎(chǔ)是模塊塊化,即即將整個(gè)個(gè)協(xié)調(diào)分分解成相相對對立立的若干干模塊,通過對對模塊的的設(shè)計(jì)和和模塊之之間關(guān)系系的協(xié)調(diào)調(diào)來實(shí)現(xiàn)現(xiàn)整個(gè)協(xié)協(xié)調(diào)的功功能。結(jié)構(gòu)化設(shè)設(shè)計(jì)方法法系統(tǒng)模塊塊結(jié)構(gòu)圖圖模塊化的的優(yōu)點(diǎn)可以獨(dú)立立設(shè)計(jì)、編碼、測試,控制了了程序的的復(fù)雜性性,減少少

42、了出錯(cuò)錯(cuò)。模塊錯(cuò)誤誤不宜擴(kuò)擴(kuò)散,提提高了軟軟件的可可靠性。便于團(tuán)隊(duì)隊(duì)開發(fā)開發(fā)的軟軟件可維維護(hù)性、開放性性、通用用性好。1.評價(jià)軟件件初始結(jié)結(jié)構(gòu),調(diào)調(diào)節(jié)之間間的耦合合度和聚聚合度在設(shè)計(jì)初初始軟件件結(jié)構(gòu)以以后,常常常會發(fā)發(fā)現(xiàn)幾個(gè)個(gè)模塊的的功能有有相似之之處,這這相似部部分不僅僅增加了了編程和和調(diào)試的的工作量量,同時(shí)時(shí)也給維維護(hù)過程程帶來麻麻煩,應(yīng)應(yīng)當(dāng)消除除這樣的的重復(fù)。(1)完全相似似這種情況況只在數(shù)數(shù)據(jù)類型型上不一一致,可可采用完完全合并并,只需需在數(shù)據(jù)據(jù)類型的的描述或或變量定定義上加加以改進(jìn)進(jìn)。(2)局部相似似兩個(gè)模塊塊具有功功能類似似的組成成部分和和不同部部分??煽赏ㄟ^模模塊分解解消除重重復(fù)

43、功能能部分:首先找找出模塊塊中的功功能相似似部分,分離出出來,構(gòu)構(gòu)成它們們的一個(gè)個(gè)公共的的下層模模塊。如如果分解解后余下下的模塊塊比較簡簡單,則則可以同同它們的的各自調(diào)調(diào)用模塊塊進(jìn)行合合并。這這樣消除除了重復(fù)復(fù)功能的的組成部部分,模模塊間的的耦合較較小、模模塊內(nèi)的的聚合較較大。軟件總體體設(shè)計(jì)準(zhǔn)準(zhǔn)則(續(xù)續(xù))軟件總體體設(shè)計(jì)準(zhǔn)準(zhǔn)則(續(xù)續(xù))2.模塊功能能的完善善一個(gè)完整整的功能能模塊應(yīng)應(yīng)具有以以下三個(gè)個(gè)要素:(1)執(zhí)行某項(xiàng)項(xiàng)指定功功能的部部分(2)如果需要要返回一一系列的的數(shù)據(jù)給給它的調(diào)調(diào)用者,應(yīng)在完完成數(shù)據(jù)據(jù)處理或或結(jié)束時(shí)時(shí),告訴訴它的調(diào)調(diào)用者“文件完完”或其其他標(biāo)志志。(3)出錯(cuò)處理理部分,即在不

44、不能完成成指定任任務(wù)時(shí),必須將將產(chǎn)生這這種例外外情況的的原因(出錯(cuò)標(biāo)志志)通知它的的調(diào)用者者。它們們是一個(gè)個(gè)功能模模塊的有有機(jī)組成成部分,不應(yīng)當(dāng)當(dāng)分離到到其他模模塊中去去,否則則會增加加模塊間間的耦合合。軟件總體體設(shè)計(jì)準(zhǔn)準(zhǔn)則(續(xù)續(xù))3.模塊調(diào)用用個(gè)數(shù)最最好不要要超過五五個(gè)一個(gè)模塊塊擁有的的直屬下下級模塊塊的個(gè)數(shù)數(shù)叫模塊塊的扇出出數(shù)。如如果一個(gè)個(gè)模塊扇扇出數(shù)過過大,這這個(gè)模塊塊就往往往包含過過多的功功能,一一般是因因?yàn)槿狈Ψχ虚g層層次的控控制模塊塊,需要要將其功功能進(jìn)行行分解。一個(gè)模塊塊的直接接上級模模塊的個(gè)個(gè)數(shù)叫模模塊的扇扇入數(shù)。一個(gè)模模塊的扇扇入表明明有多少少個(gè)上級級模塊直直接調(diào)用用它,扇扇

45、入越大大,則共共享該模模塊的上上級模塊塊數(shù)目越越多,這這是有好好處的。但不能能違背模模塊獨(dú)立立性而單單純追求求高扇入入。4.一個(gè)模塊塊的作用用范圍應(yīng)應(yīng)在其控控制范圍圍之內(nèi)一個(gè)模塊塊的作用用范圍就就是這個(gè)個(gè)模塊內(nèi)內(nèi)一個(gè)判判定的作作用范圍圍。一個(gè)個(gè)判定的的作用范范圍是指指所有受受這個(gè)判判定影響響的那些些模塊,只要模模塊中含含有一些些依賴于于這個(gè)判判定的操操作,那那么這個(gè)個(gè)模塊就就在這個(gè)個(gè)判定的的作用范范圍之內(nèi)內(nèi)。軟件總體體設(shè)計(jì)準(zhǔn)準(zhǔn)則(續(xù)續(xù))5.力爭設(shè)計(jì)計(jì)單入口口和單出出口的模模塊,避避免“病病態(tài)聯(lián)接接”一個(gè)模塊塊只有一一個(gè)入口口和一個(gè)個(gè)出口時(shí)時(shí),這個(gè)個(gè)模塊比比較容易易理解,有利于于結(jié)構(gòu)化化編制程程

46、序,也也比較容容易維護(hù)護(hù)。但實(shí)實(shí)際上這這樣的模模塊不多多。病態(tài)態(tài)聯(lián)接是是指轉(zhuǎn)移移到或引引用到另另一模塊塊中去的的內(nèi)容耦耦合。要要盡量避避免這種種病態(tài)聯(lián)聯(lián)接,以以減少模模塊間的的耦合。6.力爭降低低模塊接接口的復(fù)復(fù)雜性模塊接口口復(fù)雜性性是軟件件發(fā)生錯(cuò)錯(cuò)誤的一一個(gè)主要要原因。因此,應(yīng)該仔仔細(xì)設(shè)計(jì)計(jì)模塊接接口,使使得信息息傳遞簡簡單并且且和模塊塊功能相相一致。例如:求求一元二二次方程程的根的的模塊QUAD-ROOT(TBL,x)其中用數(shù)數(shù)組TBL傳送方程程的系數(shù)數(shù),用數(shù)數(shù)組x回送求得得的根。但是模模塊QUAD-ROOT接口TBL和x意義不明明確,不不利于對對這個(gè)模模塊的理理解。因因此可以以將它簡簡化

47、如下下:QUAD-ROOT(A,B,C,ROOT1,ROOT2),其中,A,B,C是方程系系數(shù),ROOT1和ROOT2是方程的的兩個(gè)根根。軟件的總總體設(shè)計(jì)計(jì)準(zhǔn)則(續(xù))7.模塊的大大小模塊大小小就是模模塊含語語句數(shù)量量的多少少。模塊塊的大小小沒有統(tǒng)統(tǒng)一的標(biāo)標(biāo)準(zhǔn)。一一般來說說,模塊塊的大小小以一頁頁左右為為宜,比比較容易易閱讀和和理解。在進(jìn)行行模塊設(shè)設(shè)計(jì)時(shí),首先應(yīng)應(yīng)根據(jù)模模塊的獨(dú)獨(dú)立性來來選取模模塊的規(guī)規(guī)模。如如果某個(gè)個(gè)模塊功功能是獨(dú)獨(dú)立的,那怕程程序段較較短也不不要人為為地加長長;如果果程序段段只有一一個(gè)獨(dú)立立的功能能,那怕怕程序較較長,也也不要人人為地把把它分解解成兩個(gè)個(gè)模塊。結(jié)構(gòu)化設(shè)設(shè)計(jì)工具

48、具:HIPO圖用圖形的的方法表表示系統(tǒng)統(tǒng)的輸入入、輸出出、功能能和層次次軟件詳細(xì)細(xì)設(shè)計(jì)的的定義對軟件模模塊的過過程設(shè)計(jì)計(jì)。軟件詳細(xì)細(xì)設(shè)計(jì)的的任務(wù)對總體設(shè)設(shè)計(jì)所產(chǎn)產(chǎn)生的功功能模塊塊進(jìn)行過過程描述述,開發(fā)發(fā)一個(gè)可可以直接接轉(zhuǎn)換成成程序語語言代碼碼的軟件件表示。軟件詳細(xì)細(xì)設(shè)計(jì)的的步驟1.將總體設(shè)設(shè)計(jì)產(chǎn)生生的構(gòu)成成系統(tǒng)的的各功能能模塊逐逐步細(xì)化化,形成成若干程序模塊塊;2.運(yùn)用詳細(xì)細(xì)設(shè)計(jì)工工具對程程序模塊塊進(jìn)行過過程描述述;3.確定各個(gè)個(gè)模塊間間的詳細(xì)細(xì)接口信信息;4.編寫詳細(xì)細(xì)設(shè)計(jì)說說明書;5.詳細(xì)設(shè)計(jì)計(jì)評審。五、軟件件詳細(xì)設(shè)設(shè)計(jì)程序設(shè)計(jì)計(jì)風(fēng)格效率測試的目目的1.測試是一一個(gè)程序序的執(zhí)行行過程,它的目目的在于于發(fā)現(xiàn)錯(cuò)錯(cuò)誤;2.一個(gè)好的的測試用用例是極極可能發(fā)發(fā)現(xiàn)至今今未發(fā)現(xiàn)現(xiàn)的錯(cuò)誤誤;3.一個(gè)成功功的測試試是發(fā)現(xiàn)現(xiàn)了至今今未發(fā)現(xiàn)現(xiàn)的錯(cuò)誤誤的測試試。測試的原原則1.避免由程程序編寫寫者自己己進(jìn)行測測試,目目的在于于克服盲盲目的自自信心和和對功能能要求誤誤解的延延續(xù)性;2.測試用例例的設(shè)計(jì)計(jì)和選擇擇,預(yù)期期結(jié)果的的定義要要有利于于錯(cuò)誤的的檢測。無效的的、異常常的、臨臨界的或或可能引引起問題題變異的的輸入條條件比正正常的輸輸入條件件更重要要。測試試用例不不僅要檢檢查程序序是否做做了應(yīng)該該做的事事,還要要檢查它它是否做

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論