軟件工程自學(xué)_第1頁(yè)
軟件工程自學(xué)_第2頁(yè)
軟件工程自學(xué)_第3頁(yè)
軟件工程自學(xué)_第4頁(yè)
軟件工程自學(xué)_第5頁(yè)
已閱讀5頁(yè),還剩91頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

軟件工程

第一章軟件與軟件工程

教學(xué)內(nèi)容

1.軟件

軟件的發(fā)展、軟件的定義、軟件的特點(diǎn)、軟件的種類。

2.軟件工程的概念

軟件危機(jī)與軟件工程的定義、軟件工程的目標(biāo)、軟件工程的原

則。

3.軟件生存周期與軟件開(kāi)發(fā)模型

瀑布模型、原型模型、螺旋模型。

教學(xué)要求

駕馭:軟件和軟件工程的基本概念。了解:軟件生命周期與軟件

開(kāi)發(fā)的各個(gè)模型。

自學(xué)要點(diǎn)

軟件、軟件工程、軟件生存周期和軟件開(kāi)發(fā)模型

學(xué)時(shí)安排

3學(xué)時(shí)(自學(xué)學(xué)時(shí):6學(xué)時(shí))

1.1軟件的定義與其特點(diǎn)

軟件的定義

計(jì)算機(jī)系統(tǒng)是通過(guò)運(yùn)行程序來(lái)實(shí)現(xiàn)各種不同的應(yīng)用。把各種不

同功能的程序,包括用戶為自己的特定目的編寫的應(yīng)用程序、檢查

和診斷機(jī)器系統(tǒng)的程序、支持用戶應(yīng)用程序運(yùn)行的系統(tǒng)程序、管理

和限制機(jī)器系統(tǒng)資源的程序等通常稱為軟件。

軟件的非精確定義:

軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它是包括程

序、數(shù)據(jù)與其相關(guān)文檔組成的完整集合。

比較公認(rèn)的軟件定義由以下三部分組成:

在運(yùn)行中能供應(yīng)所希望的功能和性能的指令集(即程序);使

程序能夠正確運(yùn)行的數(shù)據(jù)結(jié)構(gòu);描述程序研制過(guò)程、方法所用的文

檔。

軟件的特點(diǎn)

?軟件具有抽象特征。軟件是一種邏輯實(shí)體,而不是具體的物理

實(shí)體,因而它具有抽象性

?軟件是智力勞動(dòng)的結(jié)果。軟件是通過(guò)人們的智力活動(dòng),把學(xué)問(wèn)

與技術(shù)轉(zhuǎn)化成信息的一種產(chǎn)品,是在研制、開(kāi)發(fā)中被創(chuàng)建出來(lái)的。

?軟件無(wú)備件特征。在軟件的運(yùn)行和運(yùn)用期間,沒(méi)有硬件那樣的

機(jī)械磨損、老化問(wèn)題。

?軟件對(duì)硬件有明顯的依存性。軟件的開(kāi)發(fā)和運(yùn)行常常受到計(jì)算

機(jī)系統(tǒng)的限制,對(duì)計(jì)算機(jī)系統(tǒng)有著不同程度的依靠性。在軟件的開(kāi)

發(fā)和運(yùn)行中必需以硬件供應(yīng)的條件為基礎(chǔ)。

?軟件的研發(fā)主要由人工完成。軟件的開(kāi)發(fā)至今尚未完全擺脫手

工的開(kāi)發(fā)方式。

?軟件無(wú)明顯的制造過(guò)程。軟件的開(kāi)發(fā)費(fèi)用越來(lái)越高,成本相當(dāng)

昂貴。

軟件的分類

軟件依據(jù)不同的標(biāo)準(zhǔn),可劃分為不同的分類。依據(jù)軟件的應(yīng)用領(lǐng)

域可分為:系統(tǒng)軟件、實(shí)時(shí)軟件、商業(yè)軟件、科學(xué)計(jì)算軟件、嵌入

式軟件、人工智能軟件。

1.2軟件工程概念

軟件危機(jī)與軟件工程定義

軟件危機(jī)

軟件危機(jī)指的是軟件開(kāi)發(fā)和維護(hù)過(guò)程中遇到的一系列嚴(yán)峻問(wèn)題。

軟件危機(jī)的表現(xiàn)

?產(chǎn)品不符合用戶的實(shí)際須要。

?軟件開(kāi)發(fā)生產(chǎn)率提高的速度遠(yuǎn)遠(yuǎn)不能滿足客觀須要,軟件的生

產(chǎn)率遠(yuǎn)遠(yuǎn)低于硬件生產(chǎn)率和計(jì)算機(jī)應(yīng)用的增長(zhǎng),使人們不能充分

利用現(xiàn)代計(jì)算機(jī)硬件供應(yīng)的巨大潛力。

?軟件產(chǎn)品的質(zhì)量差。

?對(duì)軟件開(kāi)發(fā)成本和進(jìn)度的估計(jì)常常不精確。

?軟件的可維護(hù)性差。

?軟件文檔資料通常既不完整也不合格。

?軟件的價(jià)格昂貴,軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例

逐年上升。

產(chǎn)生軟件危機(jī)的緣由

?軟件不同于硬件,它是計(jì)算機(jī)系統(tǒng)中的邏輯部件而不是物理

部件。在寫出程序代碼并在計(jì)算機(jī)上試運(yùn)行之前,很難檢驗(yàn)開(kāi)發(fā)的

正確性,而且軟件開(kāi)發(fā)的質(zhì)量也較難評(píng)價(jià)。

?軟件不同于一般程序,它的一個(gè)顯著特點(diǎn)是規(guī)模浩大。

?雖然軟件本身獨(dú)有的特點(diǎn)的確給開(kāi)發(fā)和維護(hù)帶來(lái)一些客觀困

難,但是人們?cè)陂_(kāi)發(fā)和運(yùn)用計(jì)算機(jī)系統(tǒng)的長(zhǎng)期實(shí)踐中,也的確積累

和總結(jié)出了很多勝利的閱歷。

?開(kāi)發(fā)和管理人員只重視開(kāi)發(fā)而輕視問(wèn)題的定義,使軟件產(chǎn)品無(wú)

法滿足用戶的需求。

?軟件管理技術(shù)不能滿足現(xiàn)代軟件開(kāi)發(fā)的須要,沒(méi)有統(tǒng)一的軟件

質(zhì)量管理規(guī)范。

?在軟件的開(kāi)發(fā)與維護(hù)關(guān)系問(wèn)題上存在錯(cuò)誤的概念。

軟件工程的定義

軟件工程是指導(dǎo)計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)的工程學(xué)科。采納工程

的概念、原理、技術(shù)和方法來(lái)開(kāi)發(fā)與維護(hù)軟件,把經(jīng)過(guò)時(shí)間考驗(yàn)而

證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來(lái),

這就是軟件工程。

軟件工程準(zhǔn)則可以概括為如下六條基本原理。

?(1)用分階段的生存周期支配嚴(yán)格管理

?(2)堅(jiān)持進(jìn)行階段評(píng)審

?(3)實(shí)行嚴(yán)格的產(chǎn)品限制

?(4)采納現(xiàn)代程序設(shè)計(jì)技術(shù)

?(5)結(jié)果應(yīng)能清晰地審查

?(6)合理支配軟件開(kāi)發(fā)小組的人員

軟件工程的基本內(nèi)容與目標(biāo)

軟件工程的基本內(nèi)容

從內(nèi)容上劃分軟件工程學(xué)可分為理論、結(jié)構(gòu)、方法、工具、環(huán)

境、管理、規(guī)范等。

軟件工程學(xué)探討的基本目標(biāo)

?定義良好的方法學(xué),面對(duì)支配、開(kāi)發(fā)維護(hù)整個(gè)軟件生存周期的

方法學(xué)。

?確定的軟件成分,記錄軟件生存周期每一步的軟件文件資料,

按步顯示軌跡。

?可預(yù)料的結(jié)果,在生存周期中,每隔確定時(shí)間可以進(jìn)行復(fù)審。

軟件工程學(xué)的最終目標(biāo)是以較少投資獲得易維護(hù)、易理解、牢

靠、高效率的軟件產(chǎn)品。軟件工程學(xué)是探討軟件結(jié)構(gòu)、軟件設(shè)計(jì)與

維護(hù)方法、軟件工具與環(huán)境、軟件工程標(biāo)準(zhǔn)與規(guī)范、軟件開(kāi)發(fā)技術(shù)

與管理技術(shù)的相關(guān)理論。

軟件工程的原則

為了開(kāi)發(fā)出低成本高質(zhì)量的軟件產(chǎn)品,軟件工程學(xué)應(yīng)遵守以下

基本原則:分解、獨(dú)立性、一樣性、確定性。

1.3軟件生存周期與軟件開(kāi)發(fā)模型

軟件工程采納的生存周期方法就是從時(shí)間角度對(duì)軟件的開(kāi)發(fā)與

維護(hù)這個(gè)困難問(wèn)題進(jìn)行分解,將軟件生存漫長(zhǎng)的時(shí)期分為若干階

段,每個(gè)階段都有其相對(duì)獨(dú)立的任務(wù),然后逐步完成各個(gè)階段的任

務(wù)。

軟件生存周期

一個(gè)軟件從定義到開(kāi)發(fā)、運(yùn)用和維護(hù),直到最終被廢棄,要經(jīng)

驗(yàn)一個(gè)漫長(zhǎng)的時(shí)期,通常把軟件經(jīng)驗(yàn)的這個(gè)漫長(zhǎng)的時(shí)期稱為生存周

期。軟件生存周期就是從提出軟件產(chǎn)品起先,直到該軟件產(chǎn)品被淘

汰的全過(guò)程。

軟件生存周期一般可分為以下階段:

?問(wèn)題定義

?可行性探討

?需求分析

?設(shè)計(jì)

?編碼

?測(cè)試

?運(yùn)行與維護(hù)

軟件生存期也可以分為三個(gè)大的階段:支配階段、開(kāi)發(fā)階段和維

護(hù)階段。

軟件開(kāi)發(fā)模型

為了反映軟件生存周期內(nèi)各種工作應(yīng)如何組織與軟件生存周期

各個(gè)階段應(yīng)如何連接,須要用軟件開(kāi)發(fā)模型給出直觀的圖示表達(dá)。

軟件開(kāi)發(fā)模型是軟件工程思想的具體化,是實(shí)施于過(guò)程模型中的軟

件開(kāi)發(fā)方法和工具,是在軟件開(kāi)發(fā)實(shí)踐中總結(jié)出來(lái)的軟件開(kāi)發(fā)方法

和步驟??偟恼f(shuō)來(lái),軟件開(kāi)發(fā)模型是跨越整個(gè)軟件生存周期的系統(tǒng)

開(kāi)發(fā)、運(yùn)行、維護(hù)所實(shí)施的全部工作和任務(wù)的結(jié)構(gòu)框架。

1.瀑布模型

瀑布模型:瀑布模型規(guī)定了各項(xiàng)軟件工程活動(dòng),包括:制定開(kāi)發(fā)

支配,進(jìn)行需求分析和說(shuō)明,軟件設(shè)計(jì),程序編碼。測(cè)試與運(yùn)行維

護(hù),參看圖l.lo并且規(guī)定了它們自上而下,相互連接的固定次

序,猶如瀑布流水,逐級(jí)下落。

開(kāi)

發(fā)

測(cè)試

圖1.1軟件生存周期的瀑布模

然而軟件開(kāi)發(fā)的實(shí)踐表明,上述各項(xiàng)活動(dòng)之間并非完全是自上而

下,呈線性圖式。實(shí)際狀況是,每項(xiàng)開(kāi)發(fā)活動(dòng)均處于一個(gè)質(zhì)量環(huán)

(輸入-處理-輸出-評(píng)審)中。只有當(dāng)其工作得到確認(rèn),才能接著進(jìn)

行下一項(xiàng)活動(dòng),在圖1.1中用向下的箭頭表示;否則返工,由向上

的箭頭表示。

2.螺旋模型

對(duì)于困難的大型軟件,開(kāi)發(fā)一個(gè)原型往往達(dá)不到要求。螺旋模型

將瀑布模型與演化模型結(jié)合起來(lái),并且加入兩種模型均忽視了的風(fēng)

險(xiǎn)分析。螺旋模型沿著螺線旋轉(zhuǎn),如圖L2所示,在笛卡爾坐標(biāo)的

四個(gè)象限上分別表達(dá)了四個(gè)方面的活動(dòng),即:

制定支配一一確定軟件目標(biāo),選定實(shí)施方案,弄清項(xiàng)目開(kāi)發(fā)

的限制條件;

風(fēng)險(xiǎn)分析——分析所選方案,考慮如何識(shí)別和消退風(fēng)險(xiǎn);

實(shí)施工程一一實(shí)施軟件開(kāi)發(fā)

客戶評(píng)估——評(píng)價(jià)開(kāi)發(fā)工作,提出修正建議。

沿螺線自內(nèi)向外每旋轉(zhuǎn)一圈便開(kāi)發(fā)出更為完善的一個(gè)新的軟件版

本。

圖1.2螺旋模型

3.原型模型

又稱快速成型模型,快速原型模型正是為了克服瀑布模型的缺點(diǎn)

而提出來(lái)的。一般用于最終系統(tǒng)的早期用戶評(píng)價(jià),開(kāi)發(fā)工期短,質(zhì)量

有保證。其本質(zhì)是“快速”,開(kāi)發(fā)人員應(yīng)當(dāng)盡可能快地建立出原型

系統(tǒng),以加速軟件開(kāi)發(fā)過(guò)程,節(jié)約軟件開(kāi)發(fā)成本。原型的用途是獲

知用戶的真正需求,一旦需求確定了,原型將被拋棄。

主要優(yōu)點(diǎn):

運(yùn)用這種軟件過(guò)程開(kāi)發(fā)出的軟件產(chǎn)品通常能滿足用戶的真實(shí)

的需求;

軟件產(chǎn)品的開(kāi)發(fā)過(guò)程基本上是線性依次過(guò)程。

4.變換模型

是基于形式化規(guī)格說(shuō)明語(yǔ)言以與程序變換技術(shù)的軟件系統(tǒng)開(kāi)發(fā)

模型。

其次章可行性探討

教學(xué)內(nèi)容

1.問(wèn)題的定義

2.可行性探討的任務(wù)

3.可行性探討的步驟

4.系統(tǒng)流程圖

5.成本/效益分析

教學(xué)要求

了解:可行性分析的步驟

自學(xué)要點(diǎn)

可行性探討的任務(wù)和步驟、系統(tǒng)流程圖。

學(xué)時(shí)安排

2學(xué)時(shí)(自學(xué)學(xué)時(shí):4學(xué)時(shí))

可行性探討

問(wèn)題的定義

問(wèn)題定義階段需解決問(wèn)題是“該軟件開(kāi)發(fā)項(xiàng)目要解決什么問(wèn)

題”。

可行性探討的任務(wù)

可行性探討的目的是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)

題是否能夠解決。也就是說(shuō)可行性探討的目的不是解決問(wèn)題,而是

確定問(wèn)題是否值得去解,探討在當(dāng)前的具體條件下,開(kāi)發(fā)新系統(tǒng)是

否具備必要的資源和其它條件。

一般說(shuō)來(lái),應(yīng)從經(jīng)濟(jì)可行性、技術(shù)可行性、運(yùn)行可行性、法律

可行性和開(kāi)發(fā)方案的選擇等方面探討可行性。

可行性探討須要的時(shí)間長(zhǎng)短取決于工程的規(guī)模,一般說(shuō)來(lái),可

行性探討的成本只占預(yù)期的工程中成本的5-10%o

可行性探討的步驟

1.確定系統(tǒng)規(guī)模和目標(biāo)

2.分析目前正在運(yùn)用的系統(tǒng)

3.設(shè)計(jì)出新系統(tǒng)的高層邏輯模型

4.評(píng)審系統(tǒng)模型

5.設(shè)計(jì)和評(píng)價(jià)供選擇的方案

6.舉薦一個(gè)方案并說(shuō)明理由

7.制定行動(dòng)方針

8.擬定開(kāi)發(fā)支配并書寫支配任務(wù)書

9.編制可性報(bào)告并提交審查

可行性探討工具一一系統(tǒng)流程圖

系統(tǒng)流程圖是描繪物理系統(tǒng)的傳統(tǒng)工具。它的基本思想是用圖

形符號(hào)以黑盒子形式描繪系統(tǒng)里面的每個(gè)部件(程序、數(shù)據(jù)庫(kù)、圖

表、人工處理等)。系統(tǒng)流程圖不同于程序流程圖。

系統(tǒng)流程圖的基本符號(hào)

系統(tǒng)流程圖的作用

1.制作系統(tǒng)流程圖的過(guò)程是系統(tǒng)分析員全面了解系統(tǒng)業(yè)務(wù)處理

概況的過(guò)程,它是系統(tǒng)分析員作進(jìn)一步分析的依據(jù)。

2.系統(tǒng)流程圖是系統(tǒng)分析員、管理人員、業(yè)務(wù)操作人員相互溝

通的工具。

3.系統(tǒng)分析員可干脆在系統(tǒng)流程圖上擬出可以實(shí)現(xiàn)計(jì)算機(jī)處理

的部分。

4.可利用系統(tǒng)流程圖來(lái)分析業(yè)務(wù)流程的合理性。

成本效益分析

成本/效益分析的目的是要從經(jīng)濟(jì)角度分析開(kāi)發(fā)一個(gè)特定的新

系統(tǒng)是否劃算,從而幫助運(yùn)用部門負(fù)責(zé)人正確地做出是否投資于這

項(xiàng)開(kāi)發(fā)工程的確定。

成本估計(jì)

本課程把主要的成本估計(jì)方法歸并為自頂向下估計(jì)、自底向上

估計(jì)和算法模型估計(jì)三類。費(fèi)用估計(jì)

1.代碼行技術(shù)

一旦估計(jì)出源代碼行數(shù)以后,用每行代碼的平均成本乘以行數(shù)

就可以確定軟件的成本。每行代碼的平均成本主要取決于軟件的困

難程度和工資水平。

2.任務(wù)分解技術(shù)

這種方法首先把軟件開(kāi)發(fā)工程分解為若干個(gè)相對(duì)獨(dú)立的任務(wù)。

再分別估計(jì)每個(gè)單獨(dú)的開(kāi)發(fā)任務(wù)的成本,最終加起來(lái)得出軟件開(kāi)發(fā)

工程的總成本。

幾種度量效益的方法

1.貨幣的時(shí)間價(jià)值

成本估算的目的是要求對(duì)項(xiàng)目投資。但投資在前,取得效益在

后。因此要考慮貨幣的時(shí)間價(jià)值。通常用利率表示貨幣的時(shí)間價(jià)

值。

2.投資回收期

投資回收期是衡量一個(gè)開(kāi)發(fā)工程價(jià)值的經(jīng)濟(jì)指標(biāo)。所謂投資回收

期就是使累計(jì)的經(jīng)濟(jì)效益等于最初的投資所需的時(shí)間。投資回收期

越短,就能越快獲得利潤(rùn),就越值得投資。

3.純收入

工程的純收入是衡量工程價(jià)值的另一項(xiàng)經(jīng)濟(jì)指標(biāo)。所謂純收入就

是在整個(gè)生存期之內(nèi)系統(tǒng)的累計(jì)經(jīng)濟(jì)效益(折合成現(xiàn)在值)與投資之

差。假如純收入為零,則工程的預(yù)期效益與在銀行存款一樣。但開(kāi)

發(fā)一個(gè)軟件項(xiàng)目有風(fēng)險(xiǎn),從經(jīng)濟(jì)觀點(diǎn)看,這項(xiàng)工程可能是不值得投

資的。假如純收入小于零,那么明顯這項(xiàng)工程不值得投資。只有當(dāng)

純收入大于零,才能考慮投資。

第三章需求分析

教學(xué)內(nèi)容

1.需求分析的任務(wù)與步驟

2.需求分析方法(面對(duì)數(shù)據(jù)流的分析方法)

1.基本符號(hào)、基于數(shù)據(jù)流的分析方法、數(shù)據(jù)字典。

4.需求規(guī)格說(shuō)明書

教學(xué)要求

駕馭:需求分析的方法;理解:需求分析的任務(wù)和原則

自學(xué)要點(diǎn)

數(shù)據(jù)流圖、面對(duì)數(shù)據(jù)流的分析方法。

學(xué)時(shí)安排

4學(xué)時(shí)(自學(xué)學(xué)時(shí):10學(xué)時(shí))

3.1需求分析的任務(wù)與步驟

需求分析的任務(wù)

需求分析是軟件定義時(shí)期的最終一個(gè)階段,它的基本任務(wù)是精確

地回答“系統(tǒng)必需做什么?”這個(gè)問(wèn)題。需求分析所要做的工作是

深化描述軟件的功能和性能,確定軟件設(shè)計(jì)的限制和軟件同其它系

統(tǒng)元素的接口細(xì)微環(huán)節(jié),定義軟件的其它有效性需求。

通常軟件開(kāi)發(fā)項(xiàng)目是要實(shí)現(xiàn)目標(biāo)系統(tǒng)的物理模型,即確定待開(kāi)發(fā)

軟件系統(tǒng)的系統(tǒng)元素,并將功能和數(shù)據(jù)結(jié)構(gòu)安排到這些系統(tǒng)元素

中。它是軟件突現(xiàn)的基礎(chǔ)。

。需求分析的任務(wù)不是屆定系統(tǒng)如何完成它的工作,而是確定系統(tǒng)

必需完成哪些工作,也就是對(duì)目標(biāo)系統(tǒng)提出完整、精確、清晰、具

體的要求。在這個(gè)階段結(jié)束時(shí)交出的文檔中應(yīng)當(dāng)包括具體的數(shù)據(jù)流

圖(DFD),數(shù)據(jù)字典(DD)和一組簡(jiǎn)明的算法描述。

需求分析階段的任務(wù)包括下述幾方面

1.確定目標(biāo)系統(tǒng)的具體要求。確定系統(tǒng)的運(yùn)行環(huán)境要求;系統(tǒng)

的性能要求;系統(tǒng)功能。

2.分析系統(tǒng)的數(shù)據(jù)要求。分析系統(tǒng)的數(shù)據(jù)需求是由系統(tǒng)的信息

流歸納抽象出數(shù)據(jù)元素組成、數(shù)據(jù)的邏輯關(guān)系、數(shù)據(jù)字典格式和數(shù)

據(jù)模型。并以輸入/處理/輸出(IPO)的結(jié)構(gòu)方式表示。因此,必

需分析系統(tǒng)的數(shù)據(jù)需求,這是軟件需求分析的一個(gè)重要任務(wù)。

3.建立目標(biāo)系統(tǒng)的邏輯模型,就是在理解當(dāng)前系統(tǒng)須要“怎樣

做”的基礎(chǔ)上,抽取其“做什么”的本質(zhì)。

4.修正系統(tǒng)開(kāi)發(fā)支配

5.建立原型系統(tǒng)

6.編寫軟件需求規(guī)格說(shuō)明書與評(píng)審

需求分析的方法

結(jié)構(gòu)化分析方法(簡(jiǎn)稱SA方法)就是面對(duì)數(shù)據(jù)流自頂向下逐步

求精進(jìn)行需求分析的方法。

需求分析的過(guò)程或步驟

1.調(diào)查探討

2.描述和分析系統(tǒng)的邏輯模型

應(yīng)留意下述兩條原則:第一,在分層細(xì)化時(shí)必需保持信息連續(xù)

性,也就是說(shuō)細(xì)化前后對(duì)應(yīng)功能的輸入/輸出數(shù)據(jù)必需相同;其

次,當(dāng)進(jìn)一步細(xì)化將涉與如何具體地實(shí)現(xiàn)一個(gè)功能時(shí),也就是當(dāng)把

一個(gè)功能進(jìn)一步分解成子功能后,并將考慮為了完成這些子功能而

寫出其程序代碼時(shí),就不應(yīng)當(dāng)再分解了。

3.編制文檔

在這個(gè)階段應(yīng)當(dāng)完成下述四種文檔資料:①系統(tǒng)規(guī)格說(shuō)明一一用

比較形式化的術(shù)語(yǔ)和表示對(duì)軟件功能構(gòu)成的具體描述,作用是:技

術(shù)合同說(shuō)明;設(shè)計(jì)和編碼的基礎(chǔ);測(cè)試和驗(yàn)收的依據(jù)。②數(shù)據(jù)要求-

--數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)域、數(shù)據(jù)精度。③用戶系統(tǒng)描述。④修正的開(kāi)發(fā)

支配。

4.需求分析審查

需求分析的原則

1.必需能夠表達(dá)和理解問(wèn)題的數(shù)據(jù)域和功能域

2.按自頂向下、逐層分解問(wèn)題

3.要給出系統(tǒng)的邏輯視圖和物理視圖

需求分析評(píng)審標(biāo)準(zhǔn)的主要內(nèi)涵

正確性、無(wú)歧義性、完全性、可驗(yàn)證性、一樣性、可理解性、可

修改性、可追蹤性。

需求分析方法

大多數(shù)的需求分析方法是由數(shù)據(jù)驅(qū)動(dòng)的,數(shù)據(jù)域具有三種屬性:

數(shù)據(jù)流、數(shù)據(jù)內(nèi)容和數(shù)據(jù)結(jié)構(gòu)。通常,一種需求分析方法總要利用

一種或幾種屬性。

需求分析方法的共性

1.支持?jǐn)?shù)據(jù)域分析的機(jī)制

2.功能表示的方法

3.接口的定義

4.問(wèn)題分解的機(jī)制以與對(duì)抽象的支持

5.邏輯視圖和物理視圖

6.系統(tǒng)抽象模型

面對(duì)數(shù)據(jù)流的需求分析方法

結(jié)構(gòu)化分析方法是面對(duì)數(shù)據(jù)流進(jìn)行需求分析的方法。結(jié)構(gòu)化分析

方法運(yùn)用數(shù)據(jù)流圖DFD與數(shù)據(jù)字典DD來(lái)描述,面對(duì)數(shù)據(jù)流問(wèn)題

的需求分析適合于數(shù)據(jù)處理類型軟件的需求描述。其核心思想是分

解化簡(jiǎn)問(wèn)題,將物理與邏輯表示分開(kāi),對(duì)系統(tǒng)進(jìn)行數(shù)據(jù)與邏輯的抽

豪。

3.2數(shù)據(jù)流圖與數(shù)據(jù)字典

數(shù)據(jù)流圖(DFD)

1.數(shù)據(jù)流圖的含義

數(shù)據(jù)流圖是描述數(shù)據(jù)處理過(guò)程的工具。數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加

工的角度,以圖形的方式刻畫數(shù)據(jù)流從輸入到輸出的傳輸變換過(guò)

程。數(shù)據(jù)流圖是結(jié)構(gòu)化系統(tǒng)分析的主要工具,它表示了系統(tǒng)內(nèi)部信

息的流向,并表示了系統(tǒng)的邏輯處理的功能。

2.數(shù)據(jù)流圖的特性:抽象性、概括性、層次性。

3.數(shù)據(jù)流圖基本符號(hào)

⑴數(shù)據(jù)流圖中的主要圖形元素

數(shù)據(jù)流圖的基本圖形元素有4種,如圖所示。

歙終輸入的源點(diǎn)(,ource)Q敬毋輸■出的iC點(diǎn)

S加工.*入歙修A此龍仔變梃產(chǎn)生驚出歙梯.

>敕極魂.*加工的旗弊與演間.

出做糖4儲(chǔ)文件,錨加以(田中H為文件*號(hào))

數(shù)據(jù)流圖基本圖形符號(hào)

(2)數(shù)據(jù)流與加工之間的關(guān)系

“*”表示相鄰的一對(duì)數(shù)據(jù)流之間是“與”關(guān)系;

“+”表示相鄰的兩個(gè)數(shù)據(jù)流是“或”關(guān)系;

””表示相鄰的兩個(gè)數(shù)據(jù)流是“異或”的關(guān)系。

(3)分層的數(shù)據(jù)流圖

Ac

*數(shù)據(jù)A和B同時(shí)輸入變換成C

數(shù)據(jù)A變換成B和C

數(shù)據(jù)A或數(shù)據(jù)B(不能同時(shí))榆入侵變換成C

數(shù)據(jù)A變換成8或,(不能變換成B和C)

數(shù)據(jù)A或B,或A和B同時(shí)輸入變換成C

數(shù)據(jù)A變換或B或C,或B和C

數(shù)據(jù)流圖加工關(guān)系

4.數(shù)據(jù)流圖的用途

數(shù)據(jù)流圖的作用主要有以下幾條:

⑴系統(tǒng)分析員用這種工具可以自頂向下分析系統(tǒng)信息流程。

(2)可在圖上畫出須要計(jì)算機(jī)處理的部分。

(3)依據(jù)數(shù)據(jù)存貯,進(jìn)一步作數(shù)據(jù)分析,向數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)渡。

(4)依據(jù)數(shù)據(jù)流向,定出存取方式。

⑸對(duì)應(yīng)一個(gè)處理過(guò)程,用相應(yīng)的語(yǔ)言、判定表等工具表達(dá)處理

方法。

5.數(shù)據(jù)流圖的優(yōu)缺點(diǎn)

(1)總體概念強(qiáng),每一層都明確強(qiáng)調(diào)“干什么”,“須要什

么”,“給出什么”。

(2)可以反映出數(shù)據(jù)的流向和處理過(guò)程。

⑶由于自頂向下分析,簡(jiǎn)潔與早發(fā)覺(jué)系統(tǒng)各部分的邏輯錯(cuò)誤,

也簡(jiǎn)潔修正。

⑷簡(jiǎn)潔與計(jì)算機(jī)處理相比照。

(5)不直觀,一般都要在作業(yè)流程分析的基礎(chǔ)上加以概括、抽

象、修正來(lái)得到。

⑹假如沒(méi)有計(jì)算機(jī)系統(tǒng)幫助的話,人工繪制太麻煩,工作量較

大。

6.數(shù)據(jù)流圖畫法

(1)畫數(shù)據(jù)流圖的一般原則:畫數(shù)據(jù)流圖的基本步驟概括地說(shuō),

就是自外向內(nèi),自頂向下,逐層細(xì)化,完善求精。

(2)數(shù)據(jù)流圖的分層方法

⑶分層法繪制流程圖的幾個(gè)問(wèn)題

7.數(shù)據(jù)流圖的繪制與其它流程圖的差別

(1)數(shù)據(jù)流圖與系統(tǒng)流程圖的區(qū)分

(2)數(shù)據(jù)流與程序流程圖的區(qū)分

(3)數(shù)據(jù)流與程序結(jié)構(gòu)圖的區(qū)分

(4)數(shù)據(jù)流與限制流的區(qū)分

要求會(huì)畫第一層數(shù)據(jù)流圖。

數(shù)據(jù)字典

1.數(shù)據(jù)字典的定義

數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,對(duì)數(shù)據(jù)流程圖中的各個(gè)元素

做完整的定義與說(shuō)明,是數(shù)據(jù)流程圖的補(bǔ)充工具。數(shù)據(jù)流圖和數(shù)據(jù)

字典共同構(gòu)成系統(tǒng)的邏輯模型。

2.數(shù)據(jù)字典的內(nèi)容

數(shù)據(jù)字典由下列六類元素的定義組成。

(1)數(shù)據(jù)流

①數(shù)據(jù)流名稱與其稱號(hào);

②數(shù)據(jù)流的來(lái)源:可能是一個(gè)外部實(shí)體、處理邏輯、數(shù)據(jù)存

儲(chǔ);

③數(shù)據(jù)流的去處;

④數(shù)據(jù)流的組成:一個(gè)數(shù)據(jù)流可能包括若干個(gè)數(shù)據(jù)結(jié)構(gòu),若只

有一個(gè)數(shù)據(jù)結(jié)構(gòu),就不須要特地定義;

⑤數(shù)據(jù)流的流通量:?jiǎn)挝粫r(shí)間的傳輸次數(shù);

⑥高峰時(shí)期的流通量:業(yè)務(wù)的頻繁程度和時(shí)間有關(guān)。

(2)數(shù)據(jù)項(xiàng)

數(shù)據(jù)項(xiàng)也稱數(shù)據(jù)元素,是“不行再分”的數(shù)據(jù)單位,是數(shù)據(jù)的最

小組成單位。主要內(nèi)容有:

①數(shù)據(jù)項(xiàng)名稱與編號(hào):數(shù)據(jù)項(xiàng)名稱必需唯一地標(biāo)識(shí)這個(gè)數(shù)據(jù)

項(xiàng),以區(qū)分于其他數(shù)據(jù)項(xiàng);給數(shù)據(jù)項(xiàng)取名時(shí),要反映該數(shù)據(jù)項(xiàng)的含

義,易于他人理解、記憶。

②別名:同一數(shù)據(jù)項(xiàng)的名稱可能不止一個(gè),稱為別名。

③取值的范圍和取值的含義。

④數(shù)據(jù)項(xiàng)的長(zhǎng)度:指數(shù)據(jù)項(xiàng)所包含的字符或數(shù)字的位數(shù)。

(3)數(shù)據(jù)結(jié)構(gòu)

①數(shù)據(jù)結(jié)構(gòu)的名稱與其編號(hào);

②數(shù)據(jù)結(jié)構(gòu)的組成:假如是一個(gè)簡(jiǎn)潔的數(shù)據(jù)結(jié)構(gòu),只要列出它

所包含的數(shù)據(jù)項(xiàng)即可。假如是一個(gè)嵌套的數(shù)據(jù)結(jié)構(gòu),只需列出它所

包含的數(shù)據(jù)結(jié)構(gòu)名稱,因?yàn)檫@些數(shù)據(jù)結(jié)構(gòu)同樣在數(shù)據(jù)字典中有定

義。

(4)數(shù)據(jù)存儲(chǔ)

數(shù)據(jù)存儲(chǔ)是數(shù)據(jù)結(jié)構(gòu)停留或保存的場(chǎng)所。主要內(nèi)容:

①數(shù)據(jù)存儲(chǔ)的名稱與編號(hào):在DFD中對(duì)數(shù)據(jù)存儲(chǔ)給以命名,

并編上一個(gè)唯一的編號(hào);

②流入、流出的數(shù)據(jù)流:流入的數(shù)據(jù)流指出其來(lái)源,流出的數(shù)

據(jù)流指出其去向;

③數(shù)據(jù)存儲(chǔ)的組成:指它所包含的數(shù)據(jù)項(xiàng)或數(shù)據(jù)結(jié)構(gòu)。

(5)處理邏輯

主要內(nèi)容:

①處理邏輯的名稱與編號(hào);

②簡(jiǎn)述:對(duì)處理邏輯的簡(jiǎn)明描述,其目的是使人了解這個(gè)處理

邏輯是做什么用的;

③處理邏輯的輸入和輸出;

④處理邏輯的主要功能;

⑤處理邏輯的小說(shuō)明(文檔之一)。

(6)外部實(shí)體

外部實(shí)體是系統(tǒng)的“人-機(jī)”界面,也就是系統(tǒng)的數(shù)據(jù)流由外部

實(shí)體流入,或者系統(tǒng)的數(shù)據(jù)向外部流出。主要內(nèi)容:

①外部實(shí)體的名稱與編號(hào);

②與外部實(shí)體有關(guān)的數(shù)據(jù)流。

例如:

①外部實(shí)體名稱:供應(yīng)商;

②編號(hào):GS03-22;

③簡(jiǎn)述:向本公司供應(yīng)貨物的個(gè)人和單位;

④有關(guān)的數(shù)據(jù)流:

數(shù)據(jù)元素的別名就是該元素的其他等價(jià)的名字,出現(xiàn)別名主要有

下述三個(gè)緣由:

①對(duì)于同樣的數(shù)據(jù),不同的用戶運(yùn)用了不同的名字;

②一個(gè)分析員在不同時(shí)期對(duì)同一個(gè)數(shù)據(jù)運(yùn)用了不同的名字;

③兩個(gè)分析員分別分析同一個(gè)數(shù)據(jù)流時(shí),運(yùn)用了不同的名字。

雖然應(yīng)當(dāng)盡量削減出現(xiàn)別名,但是不行能完全消退別名。

3,定義數(shù)據(jù)的方法

由數(shù)據(jù)元素組成數(shù)據(jù)方式的基本類型:

1、依次:以確定次序連接兩個(gè)或多個(gè)重量;

2、選擇:從兩個(gè)或多個(gè)可能的元素中選取一個(gè);

3、重復(fù):把指定的的重量重復(fù)零次或多次;

4、可選:一個(gè)重量是可有可無(wú)的。

4.數(shù)據(jù)字典的用途

1、作為分析工具;

2、包含了對(duì)每個(gè)數(shù)據(jù)元素的限制信息;

3、是開(kāi)發(fā)數(shù)據(jù)庫(kù)的第一步。

5.數(shù)據(jù)字典的特點(diǎn)

1、通過(guò)名字能便利查詢數(shù)據(jù)定義;

2、沒(méi)有冗余;

3、盡量不重復(fù)在規(guī)格說(shuō)明的其他組成部分中已經(jīng)出現(xiàn)的信息;

4、簡(jiǎn)潔更新和修改;

5、能單獨(dú)處理描述每個(gè)數(shù)據(jù)元素信息;

6、定義的書寫方法簡(jiǎn)潔便利而且嚴(yán)格。

圖形工具

層次方框圖

Warnier圖

IPO圖

3.3需求規(guī)格說(shuō)明書

需求分析應(yīng)交付的主要文檔是需求規(guī)格說(shuō)明。

軟件需求規(guī)格說(shuō)明的一般格式:

1.引言

2.任務(wù)概述

3.數(shù)據(jù)描述

4.功能要求

5.性能需求

6.運(yùn)行需求

7.其他要求

8.附錄

需求分析的評(píng)審

需求分析評(píng)審的方法

必需從一樣性、完整性、現(xiàn)實(shí)性和有效性等四個(gè)不同角度驗(yàn)

證軟件需求的正確性。

第四章概要設(shè)計(jì)與數(shù)據(jù)庫(kù)設(shè)計(jì)

教學(xué)內(nèi)容

1.概要設(shè)計(jì)的任務(wù)與步驟

2.軟件設(shè)計(jì)的概念與原則

3.概要設(shè)計(jì)的方法

面對(duì)數(shù)據(jù)流的設(shè)計(jì)方法。

基本概念、變換分析、事務(wù)分析、設(shè)計(jì)優(yōu)化原則。

面對(duì)數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法(Jackson方法)。

4.概要設(shè)計(jì)文檔與評(píng)審

5.數(shù)據(jù)庫(kù)設(shè)計(jì)

教學(xué)要求

駕馭軟件設(shè)計(jì)的概念與原則,概要設(shè)計(jì)的步驟、方法。學(xué)會(huì)撰寫

概要設(shè)計(jì)的文檔并能評(píng)審出概要設(shè)計(jì)文檔是否符合要求。概要設(shè)計(jì)

說(shuō)明書的主要內(nèi)容與結(jié)構(gòu)。

自學(xué)要點(diǎn)

面對(duì)數(shù)據(jù)流的設(shè)計(jì)方法、面對(duì)數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法、變換分析、

事務(wù)分析、設(shè)計(jì)優(yōu)化原則。

學(xué)時(shí)安排

4學(xué)時(shí)(自學(xué)學(xué)時(shí):10學(xué)時(shí))。

4.1概要設(shè)計(jì)的任務(wù)與步驟

概要設(shè)計(jì)任務(wù)

1.系統(tǒng)分析員審查軟件支配、軟件需求分析供應(yīng)的文檔,提出

候選的最佳舉薦方案,用系統(tǒng)流程圖,組成系統(tǒng)物理元素清單、成

本效益分析和系統(tǒng)進(jìn)度支配,供專家審定,審定后進(jìn)入設(shè)計(jì)。

2.確定模塊結(jié)構(gòu),劃分功能模塊,將軟件功能需求安排給所劃

分的最小單元模塊。確定模塊間的聯(lián)系,確定數(shù)據(jù)結(jié)構(gòu)、文件結(jié)

構(gòu)、數(shù)據(jù)庫(kù)模式,確定測(cè)試方法與策略。

3.編寫概要設(shè)計(jì)說(shuō)明書,用戶手冊(cè),測(cè)試支配,選用相關(guān)的軟

件工具來(lái)描述軟件結(jié)構(gòu),結(jié)構(gòu)圖是常常運(yùn)用的軟件描述工具。選擇

分解功能與劃分模塊的設(shè)計(jì)原則,例如模塊劃分獨(dú)立性原則,信息

隱藏原貝U等。

心4:'麻宦設(shè)計(jì)后轉(zhuǎn)入具體設(shè)計(jì)(又稱過(guò)程設(shè)計(jì),算法設(shè)計(jì)),其

主要任務(wù),依據(jù)概要設(shè)計(jì)供應(yīng)的文檔,確定每一個(gè)模塊的算法,內(nèi)

部的數(shù)據(jù)組織,選定工具清晰正確表達(dá)算法。編寫具體設(shè)計(jì)說(shuō)明

書,具體測(cè)試用例與支配.用到如何確定程序的困難程度的程序

圖,算法流程圖的表述工具,如PAD圖,N-S圖等。

概要設(shè)計(jì)的過(guò)程

在概要設(shè)計(jì)過(guò)程中要先進(jìn)行系統(tǒng)設(shè)計(jì),復(fù)審系統(tǒng)支配與需求分

析,確定系統(tǒng)具體的實(shí)施方案;然后進(jìn)行結(jié)構(gòu)設(shè)計(jì),確定軟件結(jié)

構(gòu)。一般步驟如下:

S1:設(shè)計(jì)系統(tǒng)方案

S2:選取一組合理的方案

S3:舉薦最佳實(shí)施方案

S4:功能分解

S5:軟件結(jié)構(gòu)設(shè)計(jì)

S6:數(shù)據(jù)庫(kù)設(shè)計(jì)、文件結(jié)構(gòu)的設(shè)計(jì)

S7:制定測(cè)試支配

S8:編寫概要設(shè)計(jì)文檔

S9:審查與復(fù)審概要設(shè)計(jì)文檔。

4.2軟件設(shè)計(jì)的概念和原則

軟件設(shè)計(jì)的概念與原則

主要內(nèi)容包括有:

⑴將軟件劃分成若干獨(dú)立成分的依據(jù)。

⑵怎樣表示不同的成分內(nèi)的功能細(xì)微環(huán)節(jié)和數(shù)據(jù)結(jié)構(gòu)。

⑶怎樣統(tǒng)一衡量軟件設(shè)計(jì)的技術(shù)質(zhì)量。

模塊化

模塊是數(shù)據(jù)說(shuō)明、可執(zhí)行語(yǔ)句等程序?qū)ο蟮募希K可以單獨(dú)

被命名的而且可通過(guò)名字來(lái)訪問(wèn),例如,過(guò)程、函數(shù)、子程序、宏

等等都可作為模塊。

抽象與逐步求精

軟件工程過(guò)程的每一步都是對(duì)軟件解法的抽象層次的一次精化。

逐步求精與抽象是緊密相關(guān)的。

信息隱藏和局部化

模塊獨(dú)立性

模塊獨(dú)立性是軟件系統(tǒng)中每個(gè)模塊只涉與軟件要求的具體子功

能,而和軟件系統(tǒng)中其他的模塊接口是簡(jiǎn)潔的。

模塊獨(dú)立的概念是模塊化、抽象、信息隱藏和局部化概念的干脆

結(jié)果。

1.模塊獨(dú)立性的重要性

(1)具有獨(dú)立的模塊的軟件比較簡(jiǎn)潔開(kāi)發(fā)出來(lái)。這是由于能夠分割

功能而且接口可以簡(jiǎn)化,當(dāng)很多人分工合作開(kāi)發(fā)同一個(gè)軟件時(shí),這

個(gè)優(yōu)點(diǎn)尤其重要。

(2)獨(dú)立的模塊比較簡(jiǎn)潔測(cè)試和維護(hù)。這是因?yàn)橄鄬?duì)說(shuō)來(lái),修改設(shè)

計(jì)和程序須要的工作量比較小,錯(cuò)誤傳播范圍小,須要擴(kuò)充功能時(shí)

能夠“插入”模塊。總之,模塊獨(dú)立是優(yōu)秀設(shè)計(jì)的關(guān)鍵,而設(shè)計(jì)又

是確定軟件質(zhì)量的關(guān)鍵環(huán)節(jié)。

模塊的獨(dú)立程度可以由兩個(gè)定性標(biāo)準(zhǔn)度量,這兩個(gè)標(biāo)準(zhǔn)分別稱為

內(nèi)聚和耦合。耦合衡量不同模塊彼此間相互依靠(連接)的緊密程

度;內(nèi)聚衡量一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度。

2.耦合

耦合是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)各個(gè)模塊之間互連程度的度量。耦合強(qiáng)

弱取決于模塊間接口的困難程度,調(diào)用模塊的方式,以與通過(guò)接口

的信息。

具體區(qū)分模塊間耦合程度的強(qiáng)弱的標(biāo)準(zhǔn)如下:

(1)非干脆耦合

(2)數(shù)據(jù)耦合

(3)限制耦合

(4)公共環(huán)境耦合

(5)內(nèi)容耦合

(6)標(biāo)記耦合

(7)外部耦合

總之,耦合是影響軟件困難程度的一個(gè)重要因素。應(yīng)當(dāng)實(shí)行的原

則是:盡量運(yùn)用數(shù)據(jù)耦合,少用限制耦合,限制公共環(huán)境耦合的范

圍,完全不用內(nèi)容耦合。

2.內(nèi)聚

內(nèi)聚標(biāo)記一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度,它是信息隱

藏和局部化概念的自然擴(kuò)展。簡(jiǎn)潔地說(shuō),志向內(nèi)聚的模塊只做一件

事情。

(1)偶然內(nèi)聚

(2)邏輯內(nèi)聚

(3)時(shí)間內(nèi)聚

(4)過(guò)程內(nèi)聚

(5)通信內(nèi)聚

(6)信息內(nèi)聚

(7)功能內(nèi)聚

結(jié)構(gòu)設(shè)計(jì)原則

軟件概要設(shè)計(jì)包括模塊構(gòu)成的程序結(jié)構(gòu)和輸入輸出數(shù)據(jù)結(jié)構(gòu)。其

目標(biāo)是產(chǎn)生一個(gè)模塊化的程序結(jié)構(gòu),并明確模塊間的限制關(guān)系,以

與定義界面、說(shuō)明程序的數(shù)據(jù)進(jìn)一步調(diào)整程序結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。

改進(jìn)軟件設(shè)計(jì)、提高軟件質(zhì)量的原則

1.顯著改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性

2.模塊規(guī)模應(yīng)當(dāng)適中

3.適當(dāng)選擇深度、寬度、扇出和扇入

4.模塊的作用域應(yīng)當(dāng)在限制域之內(nèi)

5.力爭(zhēng)降低模塊接口的困難程度

6.設(shè)計(jì)單入口單出口的模塊

7.模塊功能應(yīng)當(dāng)可以預(yù)料

4.3面對(duì)數(shù)據(jù)流的設(shè)計(jì)方法

基本概念

1.變換流

2.事物流

3.設(shè)計(jì)過(guò)程

系統(tǒng)結(jié)構(gòu)圖(SC圖)的組成

變換分析

事務(wù)分析

面對(duì)數(shù)據(jù)結(jié)構(gòu)的分析設(shè)計(jì)方法一一^Jackson系統(tǒng)開(kāi)發(fā)方法(JSD)

Jackson系統(tǒng)開(kāi)發(fā)方法(JSD,JacksonSystem

Development)是一種典型的面對(duì)數(shù)據(jù)結(jié)構(gòu)的分析設(shè)計(jì)方法。

Jackson系統(tǒng)開(kāi)發(fā)方法的系統(tǒng)模型就是相互通訊的一組進(jìn)程的

集合。進(jìn)程間的通訊方式有以下三種:(1)進(jìn)程同步發(fā)生。(2)

通過(guò)數(shù)據(jù)通道發(fā)送/接收活動(dòng)發(fā)生。(3)訪問(wèn)公用存儲(chǔ)信息。

1.Jackson圖

(1)表達(dá)基本結(jié)構(gòu)

對(duì)于種類繁多的程序中運(yùn)用的數(shù)據(jù)結(jié)構(gòu),各數(shù)據(jù)元素之間的邏輯

關(guān)系只有依次、選擇、重復(fù)三種,所以邏輯數(shù)據(jù)結(jié)構(gòu)也只有三種。

?依次結(jié)構(gòu)

?選擇結(jié)構(gòu)

?重復(fù)結(jié)構(gòu)

(2)改進(jìn)的Jackson圖

Jackson圖的缺點(diǎn)是:用這種圖形工具表示選擇或重復(fù)結(jié)構(gòu)

時(shí),選擇條件或循環(huán)結(jié)束條件不能干脆在圖上表示出來(lái),影響了圖

的表達(dá)實(shí)力,也不易干脆把圖翻譯成程序,此外,框間連線為斜

線,不易在行式打印機(jī)上輸出。

(3)如何運(yùn)用Jackson圖

①表示數(shù)據(jù)結(jié)構(gòu)

用Jackson圖表示下表所示的二維表格:

表學(xué)生名冊(cè)

姓3性別班級(jí)學(xué)號(hào)

表頭

表體

這個(gè)Jackson圖首先聲明白該學(xué)生名冊(cè)表格由表頭和表體兩部

分組成。其中表頭又依次包括表名和字段名。而表體可由隨意行(0

行或多行)組成,每行包括學(xué)生的姓名、性別、班級(jí)和學(xué)號(hào)。班級(jí)

是本科的,學(xué)號(hào)項(xiàng)是本科生學(xué)號(hào);班級(jí)是探討生的,學(xué)號(hào)項(xiàng)是探討

生學(xué)號(hào)。

②表示程序結(jié)構(gòu)

例如要用Jackson圖表示產(chǎn)生上面的學(xué)生名冊(cè)文件的程序的程

序結(jié)構(gòu):把學(xué)生名冊(cè)生成為一個(gè)計(jì)算機(jī)文件,則該程序結(jié)構(gòu)可以用

下圖的Jackson圖來(lái)表示。

(3)Jackson偽代碼

?依次結(jié)構(gòu)

依次結(jié)構(gòu)的偽碼如下,其中'seq'和'end'是關(guān)鍵字:

Aseq

B

C

D

Aend

?選擇結(jié)構(gòu)

'select'、'or',和'end'是關(guān)鍵字,condl、cond2

和cond3分別是執(zhí)行B、C或D的條件:選擇結(jié)構(gòu)對(duì)應(yīng)的偽碼

如下:

Aselectcondl

B

Aorcond2

C

Aorcond3

D

Aend

?重復(fù)結(jié)構(gòu)

'iter'、'until'、'while'和'end'是關(guān)鍵字(重

復(fù)結(jié)構(gòu)有until和while兩種形式),cond是條件,重復(fù)結(jié)構(gòu)

對(duì)應(yīng)的偽碼圖象:

Aiteruntil(或while)cond

B

Aend

2.Jackson系統(tǒng)開(kāi)發(fā)方法步驟與實(shí)現(xiàn)

4.4概要設(shè)計(jì)文檔評(píng)審

在概要設(shè)計(jì)階段設(shè)計(jì)人員完成的主耍文檔是概要設(shè)計(jì)說(shuō)明書,它

主要規(guī)定軟件的結(jié)構(gòu)。

概要設(shè)計(jì)說(shuō)明書的主要內(nèi)容與結(jié)構(gòu)如下:

概要設(shè)計(jì)說(shuō)明書

一、引言

二、任務(wù)概述

三、總體設(shè)計(jì)

四、接口設(shè)計(jì)

五、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)

六、運(yùn)行設(shè)計(jì)

七、出錯(cuò)處理設(shè)計(jì)

八、平安保密設(shè)計(jì)

九、維護(hù)設(shè)計(jì)

4.5數(shù)據(jù)庫(kù)設(shè)計(jì)

ER模型

即實(shí)體-聯(lián)系模型,是最常用的表示概念數(shù)據(jù)模型的方法。數(shù)據(jù)

模型包括三種相互關(guān)聯(lián)的信息:數(shù)據(jù)對(duì)象,描述對(duì)象的屬性,描述

對(duì)象間相互連接的關(guān)系。

數(shù)據(jù)對(duì)象:是需被目標(biāo)系統(tǒng)所理解的復(fù)合信息的表示。所謂

復(fù)合信息是具有若干不同特征或?qū)傩缘男畔ⅰ?/p>

屬性:定義了數(shù)據(jù)對(duì)象的特征。它可用來(lái):①為數(shù)據(jù)對(duì)象

的實(shí)例命名;②描述這個(gè)實(shí)例;③建立對(duì)另一個(gè)數(shù)據(jù)對(duì)象的另一

個(gè)實(shí)例的引用。

關(guān)系:各個(gè)數(shù)據(jù)對(duì)象的實(shí)例之間有關(guān)聯(lián)。實(shí)例的關(guān)聯(lián)有三

種:①一對(duì)一(1:1);②一對(duì)多(l:m);③多對(duì)多(n:m)。

數(shù)據(jù)庫(kù)設(shè)計(jì)

.問(wèn)題描述;設(shè)計(jì)步驟:模型;建立關(guān)系;規(guī)范化。

12OER

第五章具體設(shè)計(jì)與人一機(jī)界面設(shè)計(jì)

教學(xué)內(nèi)容

1.具體設(shè)計(jì)概述

2.具體設(shè)計(jì)工具

1.具體設(shè)計(jì)規(guī)格說(shuō)明與評(píng)審

2.人一機(jī)界面基本概念

教學(xué)要求

駕馭具體設(shè)計(jì)的任務(wù)和工具。了解具體設(shè)計(jì)原則和人一機(jī)界面基

本概念。

自學(xué)要點(diǎn)

具體設(shè)計(jì)的任務(wù)與原則、程序流程圖、N-S圖、PAD圖、判定

表和判定樹。

學(xué)時(shí)安排

4學(xué)時(shí)(自學(xué)學(xué)時(shí):8學(xué)時(shí))

5.1具體設(shè)計(jì)概述

具體設(shè)計(jì)的任務(wù)

具體設(shè)計(jì)的目的是為軟件結(jié)構(gòu)圖(SC圖或HC圖)中的每一個(gè)

模塊確定運(yùn)用的算法和塊內(nèi)數(shù)據(jù)結(jié)構(gòu),并用某種選定的表達(dá)工具給

出清晰的描述。

這一階段的主要任務(wù):

1.為每個(gè)模塊確定采納的算法,選擇某種適當(dāng)?shù)墓ぞ弑磉_(dá)算法

的過(guò)程,寫出模塊的具體過(guò)程性描述;

2.確定每一模塊運(yùn)用的數(shù)據(jù)結(jié)構(gòu);

3.確定模塊接口的細(xì)微環(huán)節(jié),包括對(duì)系統(tǒng)外部的接口和用戶界

面,對(duì)系統(tǒng)內(nèi)部其它模塊的接口,以與模塊輸入數(shù)據(jù)、輸出數(shù)據(jù)與

局部數(shù)據(jù)的全部細(xì)微環(huán)節(jié)。

在具體設(shè)計(jì)結(jié)束時(shí),應(yīng)當(dāng)把上述結(jié)果寫入具體設(shè)計(jì)說(shuō)明書,并

且通過(guò)復(fù)審形成正式文檔。交付給下一階段(編碼階段)的工作依

據(jù)。

4.為每一個(gè)模塊設(shè)計(jì)出一組測(cè)試用例,以便在編碼階段對(duì)模塊

代碼(即程序)進(jìn)行預(yù)定的測(cè)試,模塊的測(cè)試用例是軟件測(cè)試支配

的重要組成部分,通常包括輸入數(shù)據(jù),期望輸出等內(nèi)容。

具體設(shè)計(jì)的原則

1.由于具體設(shè)計(jì)的藍(lán)圖是給人看的,所以模塊的邏輯描述耍清

晰易讀、正確牢靠。

2.采納結(jié)構(gòu)化設(shè)計(jì)方法,改善限制結(jié)構(gòu),降低程序的困難程

度,從而提高程序的可讀性、可測(cè)試性、可維護(hù)性。其基本內(nèi)容歸

納為如下幾點(diǎn):

(1)程序語(yǔ)言中應(yīng)盡量少用GOTO語(yǔ)句,以確保程序結(jié)構(gòu)的獨(dú)

立性。

(2)運(yùn)用單人口單出口的限制結(jié)構(gòu),確保程序的靜態(tài)結(jié)構(gòu)與動(dòng)態(tài)

執(zhí)行狀況相一樣。保證程序易理解。

(3)程序的限制結(jié)構(gòu)一般采納依次、選擇、循環(huán)三種結(jié)構(gòu)來(lái)構(gòu)

成,確保結(jié)構(gòu)簡(jiǎn)潔。

(4)用自頂向下逐步求精方法完成程序設(shè)計(jì)。結(jié)構(gòu)化程序設(shè)計(jì)的

缺點(diǎn)是存儲(chǔ)容量和運(yùn)行時(shí)間增加1。-20%,但易讀易維護(hù)性好。

(5)經(jīng)典的限制結(jié)構(gòu)為依次,IFTHENELSE分支,DO-

WHILE循環(huán)。擴(kuò)展的還有多分支CASE,DO-UNTIL循環(huán)結(jié)構(gòu),

固定次數(shù)循環(huán)DOWHILEo

3.選擇恰當(dāng)描述工具來(lái)描述各模塊算法。

5.2具體設(shè)計(jì)的工具

設(shè)計(jì)工具

1.圖形工具:利用圖形工具可以把過(guò)程的細(xì)微環(huán)節(jié)用圖形描述

出來(lái)。

2.表格工具:可用一張表來(lái)描述過(guò)程的細(xì)微環(huán)節(jié),在這張表中

列出了各種可能的操作和相應(yīng)的條件。

3.語(yǔ)言工具:用某種高級(jí)語(yǔ)言(稱之為偽碼)來(lái)描述過(guò)程的細(xì)

微環(huán)節(jié)。

(1)程序流程圖

程序流程圖獨(dú)立于任何一種程序設(shè)計(jì)語(yǔ)言,比較直觀、清晰,易

于學(xué)習(xí)駕馭。但流程圖也存在一些嚴(yán)峻的缺點(diǎn)。例如流程圖所運(yùn)用

的符號(hào)不夠規(guī)范,常常運(yùn)用一些習(xí)慣性用法。特殊是表示程序限制

流程的箭頭可以不受任何約束,隨意轉(zhuǎn)移限制。這些現(xiàn)象明顯是與

軟件工程化的要求相背離的。為了消退這些缺點(diǎn),運(yùn)用流程圖描述

結(jié)構(gòu)化程序,必需限制流程圖只能運(yùn)用圖5.1所給出的五種基本限

制結(jié)構(gòu)。

⑤多情況選擇型

(CASE型)

③先判定型循環(huán)④后判定型循環(huán)

(DO-WHILE)(DO-UNTIL)

圖5.1流程圖的基本限制結(jié)構(gòu)

任何困難的程序流程圖都應(yīng)由這五種基本限制結(jié)構(gòu)組合或嵌套而

成。作為上述五種限制結(jié)構(gòu)相互組合和嵌套的實(shí)例,圖5.2給出一

個(gè)程序的流程圖。圖中增加了一些虛線構(gòu)成的框,目的是便于理解

限制結(jié)構(gòu)的嵌套關(guān)系。明顯,這個(gè)流程圖所描述的程序是結(jié)構(gòu)化

的。

圖5.2嵌套構(gòu)成的流程圖實(shí)例

⑵N-S圖

Nassi和Shneiderman提出了一種符合結(jié)構(gòu)化程序設(shè)計(jì)原則

的圖形描述工具,叫做盒圖,也叫做N-S圖。為表示五種基本限制

結(jié)構(gòu),在N-S圖中規(guī)定了五種圖形構(gòu)件。參看圖5.3。

、P/

A=1=2......=n

B

A1A2......An

①順序型

⑤多分支選擇型

D『WH1LEP

(CASE型)

S

③WHILE重復(fù)型④mTIL重復(fù)型

圖5.3N-S圖的五種基本限制結(jié)構(gòu)

為說(shuō)明N-S圖的運(yùn)用,仍用圖5.2給出的實(shí)例,將它用如圖

5.4所示的N-S圖表示。

任何一個(gè)N-S圖,都是前面介紹的五種基本限制結(jié)構(gòu)相互組合

與嵌套的結(jié)果。當(dāng)問(wèn)題很困難時(shí),N-S圖可能很大。

圖5.4N-S圖的實(shí)例

(3)PAD

PAD是ProblemAnalysisDiagram的縮寫,它是日本日立公

司提出,由程序流程圖演化來(lái)的,用結(jié)構(gòu)化程序設(shè)計(jì)思想表現(xiàn)程序

邏輯結(jié)構(gòu)的圖形工具?,F(xiàn)在已為ISO認(rèn)可。

PAD也設(shè)置了五種基本限制結(jié)構(gòu)的圖式,并允許遞歸運(yùn)用。

①順序型②選擇型

WHILEP||_|S|UNTILP||~~|S

⑤多分支選擇型

③WHILE重復(fù)型④UNTIL重復(fù)型(CASE型)

圖5.5PAD的基本限制結(jié)構(gòu)

做為PAD應(yīng)用的實(shí)例,圖5.6給出了圖5.2程序的PAD表

示。PAD所描述程序的層次關(guān)系表現(xiàn)在縱線上。每條縱線表示了一

個(gè)層次。把PAD圖從左到右綻開(kāi)。隨著程序?qū)哟蔚脑黾樱琍AD漸

漸向右綻開(kāi)。

PAD的執(zhí)行依次從最左主干線的上端的結(jié)點(diǎn)起先,自上而下依

次執(zhí)行。每遇到推斷或循環(huán),就自左而右進(jìn)入下一層,從表示下一

層的縱線上端起先執(zhí)行,直到該縱線下端,再返回上一層的縱線的

轉(zhuǎn)入處。如此接著,直到執(zhí)行到主干線的下端為止。

圖5.6PAD實(shí)例

(4)判定表

當(dāng)算法中包含多重嵌套的條件選擇時(shí),用程序流程圖、盒圖、

PAD圖或后面即將介紹的過(guò)程設(shè)計(jì)語(yǔ)言(PDL)都不易清晰地描述。

然而判定表卻能夠清晰地表示困難的條件組合與應(yīng)做的動(dòng)作之間的

對(duì)應(yīng)關(guān)系。

一張判定表由四部分組成:(1)左上部列出全部條件;(2)

左下部是全部可能做的動(dòng)作;(3)右上部為各種可能組合條件,其

中每一列表示一種可能組合;(4)右下部的每一列是和每一種條件

組合所對(duì)應(yīng)的應(yīng)做的工作。

判定表的優(yōu)點(diǎn)是能夠簡(jiǎn)潔,無(wú)二義性地描述全部的處理規(guī)則。但

判定表表示的是靜態(tài)邏輯,是在某種條件取值組合狀況下可能的結(jié)

果,它不能表達(dá)加工的依次,也不能表達(dá)循環(huán)結(jié)構(gòu),因此判定表不

能成為一種通用的設(shè)計(jì)工具。

(5)判定樹

判定表雖然能清晰地表示困難的條件組合與應(yīng)做的動(dòng)作之間的對(duì)

應(yīng)關(guān)系,但其含義卻不是一眼就能看出來(lái)的,初次接觸這種工具的

人要理解它須要有一個(gè)簡(jiǎn)短的學(xué)習(xí)過(guò)程。此外,當(dāng)數(shù)據(jù)元素的值多

于兩個(gè)時(shí),判定表的簡(jiǎn)潔程度也將下降。

判定樹是判定表的變種,也能清晰地表示困難的條件組合與應(yīng)做

的動(dòng)作之間的對(duì)應(yīng)關(guān)系。其優(yōu)點(diǎn)在于它的形式簡(jiǎn)潔,易于駕馭和運(yùn)

用,是一種比較常用的系統(tǒng)分析和設(shè)計(jì)的工具。

(6)PDL(ProgramDesignLanguage)

PDL是一種用于描述功能模塊的算法設(shè)計(jì)和加工細(xì)微環(huán)節(jié)的語(yǔ)

言。稱為設(shè)計(jì)程序用語(yǔ)言。它是一種偽碼。一般地,偽碼的語(yǔ)法規(guī)

則分為“外語(yǔ)法”和“內(nèi)語(yǔ)法”。外語(yǔ)法應(yīng)當(dāng)符合一般程序設(shè)計(jì)語(yǔ)

言常用語(yǔ)句的語(yǔ)法規(guī)則;而內(nèi)語(yǔ)法可以用英語(yǔ)中一些簡(jiǎn)潔的句子、

短語(yǔ)和通用的數(shù)學(xué)符號(hào),來(lái)描述程序應(yīng)執(zhí)行的功能。

PDL就是這樣一種偽碼。它具有嚴(yán)格的關(guān)鍵字外語(yǔ)法,用于定

義限制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),同時(shí)它的表示實(shí)際操作和條件的內(nèi)語(yǔ)法又

是敏捷自由的,可運(yùn)用自然語(yǔ)言的詞匯。下面舉一個(gè)例子,來(lái)看

PDL的運(yùn)用。

PROCEDUREspellcheckIS查找

錯(cuò)拼的單詞

BEGIN

splitdocumentintosinglewords

把整個(gè)文檔分別成單詞

loodupwordsindictionary

在字典中查這些單詞

displaywordswhicharenotin

dictionary顯示字典中查不到的單詞

createanewdictionary

造一新字典

ENDspellcheck

從上例可以看到,PDL語(yǔ)言具有正文格式,很像一個(gè)高級(jí)語(yǔ)

言。人們可以很便利地運(yùn)用計(jì)算機(jī)完成PDL的書寫和編輯工作。

PDL作為一種用于描述程序邏輯設(shè)計(jì)的語(yǔ)言,具有以下特點(diǎn):

有固定的關(guān)鍵字外語(yǔ)法,供應(yīng)全部結(jié)構(gòu)化限制結(jié)構(gòu)、數(shù)據(jù)說(shuō)

明和模塊特征。屬于外語(yǔ)法的關(guān)鍵字是有限的詞匯合,它們能對(duì)

PDL正文進(jìn)行結(jié)構(gòu)分割,使之變得易于理解。為了區(qū)分關(guān)鍵字,規(guī)

定關(guān)鍵字一律大寫,其它單詞一律小寫。

內(nèi)語(yǔ)法運(yùn)用自然語(yǔ)言來(lái)描述處理特性。內(nèi)語(yǔ)法比較敏捷,只

要寫清晰就可以,不必考慮語(yǔ)法錯(cuò),以利于人們可把主要精力放在

描述算法的邏輯上。

有數(shù)據(jù)說(shuō)明機(jī)制,包括簡(jiǎn)潔的(如標(biāo)量和數(shù)組)與困難的

(如鏈表和層次結(jié)構(gòu))的數(shù)據(jù)結(jié)構(gòu)。

有子程序定義與調(diào)用機(jī)制,用以表達(dá)各種方式的接口說(shuō)明。

運(yùn)用PDL語(yǔ)言,可以做到逐步求精:從比較概括和抽象的PDL程

序起,逐步寫出更具體的更精確的描述。

具體設(shè)計(jì)規(guī)格說(shuō)明與復(fù)審

人一機(jī)界面基本概念

人一機(jī)界面是軟件開(kāi)發(fā)環(huán)境的重要組成部分,其好壞干脆影響

軟件系統(tǒng)的質(zhì)量,從而影響軟件產(chǎn)品的競(jìng)爭(zhēng)力和壽命,因此,必需

對(duì)人機(jī)界面設(shè)計(jì)給以足夠重視。人一機(jī)界面設(shè)計(jì)問(wèn)題在設(shè)計(jì)

用戶界面的過(guò)程中,幾乎總會(huì)遇到下述四個(gè)問(wèn)題:系統(tǒng)響應(yīng)時(shí)間、

用戶幫助設(shè)施、出錯(cuò)信息處理和吩咐交互。

人一機(jī)界面設(shè)計(jì)過(guò)程用戶界面設(shè)計(jì)是一個(gè)迭代的過(guò)程,也就是

說(shuō),通常先創(chuàng)建設(shè)計(jì)模型,再用原型實(shí)現(xiàn)這個(gè)設(shè)計(jì)模型,并由用戶

試用和評(píng)估,然后依據(jù)用戶的看法進(jìn)行修改。

人一機(jī)界面實(shí)現(xiàn)的原則

一樣性

削減步驟

與時(shí)供應(yīng)反饋信息

供應(yīng)撤銷吩咐

無(wú)須回憶

易學(xué)

富有吸引力

遵循菜單屏幕設(shè)計(jì)原則

錯(cuò)誤處理

人一機(jī)界面的評(píng)價(jià)

評(píng)價(jià)是人一機(jī)界面設(shè)計(jì)的重要組成部分,但往往被設(shè)計(jì)者忽視。

對(duì)界面設(shè)計(jì)的質(zhì)量評(píng)價(jià)通??捎盟捻?xiàng)基本要求衡量:界面設(shè)計(jì)是否

有利于用戶目標(biāo)的完成;界面學(xué)習(xí)和運(yùn)用是否簡(jiǎn)潔;界面運(yùn)用效率

如何;設(shè)計(jì)的潛在問(wèn)題有哪些。

第六章面對(duì)對(duì)象的方法

教學(xué)內(nèi)容

1.法的基本原理

2.翳析

3.面對(duì)對(duì)2象設(shè)計(jì)

4.面對(duì)對(duì)象的程序設(shè)計(jì)

5.UML方法

6.的事用技術(shù)

教學(xué)晏求

駕馭:面對(duì)對(duì)象的基本拂會(huì)和特征。了解:面對(duì)對(duì)象分析與設(shè)計(jì)

方法、UML的開(kāi)愛(ài)方法和軟件重用技術(shù)。

百學(xué)要點(diǎn)

就病對(duì)象方法的基本概念和特征、面對(duì)對(duì)象分析、設(shè)計(jì)的概念

和UML開(kāi)發(fā)步驟。

學(xué)時(shí)安排

4學(xué)時(shí)(自學(xué)學(xué)時(shí):8學(xué)時(shí))

6.基本原理

面對(duì)對(duì)象不僅是一些具體的軟件開(kāi)發(fā)技術(shù)與策略,而且是一整套

關(guān)于如何看待軟件系統(tǒng)與現(xiàn)實(shí)世界的關(guān)系,以什么觀點(diǎn)來(lái)探討問(wèn)題

并進(jìn)行求解,以與如何進(jìn)行系統(tǒng)構(gòu)造的軟件方法學(xué)。而面對(duì)對(duì)象方

法是一種運(yùn)用對(duì)象、類、繼承、封裝、聚合、消息傳送、多態(tài)性等

概念來(lái)構(gòu)造系統(tǒng)的軟件開(kāi)發(fā)方法。

面對(duì)對(duì)象方法的主要優(yōu)點(diǎn):

?與人類習(xí)慣的思維方法一樣。

?奇重用性、可維護(hù)性好。

傳統(tǒng)方法學(xué)的缺點(diǎn):

?生產(chǎn)率提高的幅度遠(yuǎn)不能滿足須要;

?軟件重用程度很低;

?軟件仍舊很難維護(hù);

?軟件往往不能真正滿足用戶須要。

出現(xiàn)上述問(wèn)題的緣由很多,最根本的在于僵化的瀑布模型和結(jié)構(gòu)

化技術(shù)的缺點(diǎn)。

面對(duì)對(duì)象的定義如下:

(1)一種運(yùn)用對(duì)象(它將屬性與操作封裝為一體)、消息傳送、

類、繼承、多態(tài)和動(dòng)態(tài)綁定來(lái)開(kāi)發(fā)問(wèn)題域模型之解的范型。

(2)一種基于對(duì)象、類、實(shí)例和繼承等概念的技術(shù)。

(3)用對(duì)象作為建模的原子。

面對(duì)對(duì)象的基本概念和特征

對(duì)象(Object)

在系統(tǒng)分析和系統(tǒng)構(gòu)造中,對(duì)象是對(duì)客觀世界事物的一種抽象,

是由數(shù)據(jù)(屬性)與其上操作(行為)組成的封裝體。

對(duì)象的特點(diǎn):1、以數(shù)據(jù)為中心;2、是主動(dòng)的;3、實(shí)現(xiàn)了數(shù)

據(jù)封裝;4、具有并行性;5、模塊獨(dú)立性好。

類(Class):是對(duì)具有相同數(shù)據(jù)和相同操作的一組相像對(duì)象的定義。

實(shí)例(Instance):是由某個(gè)特定的類所描述的一個(gè)具體的對(duì)象。

消息(Message):是要求某個(gè)對(duì)象在定義的它的那個(gè)類中所定義的某

個(gè)操作的規(guī)格說(shuō)明。

方法(Method):是對(duì)象所能執(zhí)行的操作,也就是類中所定義的服

務(wù)。

屬性(Attribute):是類中所定義的數(shù)據(jù)。繼承(Inheritance):是指

能夠干脆獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們。

多態(tài)性(Polymorphism):指子類對(duì)象可以像父類對(duì)象那樣運(yùn)用,同

樣的消息既可以發(fā)送給父類對(duì)象也可以發(fā)送給子類對(duì)象。

重載(Overloading):分函數(shù)重載和運(yùn)算符重載,前者指在同一作用

域內(nèi)的若干個(gè)參數(shù)特征不同的函數(shù)可以運(yùn)用相同的函數(shù)名字;后者

是指同一個(gè)運(yùn)算符可以施加于不同類型的操作數(shù)上面。

面對(duì)對(duì)象的方法:具有四個(gè)要點(diǎn):客觀世界是由各種對(duì)象組成的;

全部對(duì)象劃分成各種對(duì)象類;依據(jù)子類(派生類)和父類(基類)

的關(guān)系,把若干個(gè)對(duì)象類組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)(類等級(jí));對(duì)

象彼此之間僅能通過(guò)傳遞消息相互聯(lián)系。

面對(duì)對(duì)象的建模

用面對(duì)對(duì)象方法開(kāi)發(fā)軟件,通常須要建立3種模型:對(duì)象模

型、動(dòng)態(tài)模型和功能模型。

對(duì)象模型:描述靜態(tài)結(jié)構(gòu),定義做事情的實(shí)體。

功能模型:描述處理(數(shù)據(jù)變換),指明系統(tǒng)應(yīng)“做什么”。

動(dòng)態(tài)模型:描述交互過(guò)程,規(guī)定什么時(shí)候做。

82睇翻朦

間的關(guān)系,凄終建立走榆翩翻紀(jì)

OOA的基本過(guò)程

通常,OOA過(guò)程從分析陳述用戶的需求的文件起先。困難問(wèn):

(大型系統(tǒng))的典型修型由5個(gè)層次構(gòu)成:主簸層、類&對(duì)象層、

結(jié)構(gòu)層、屬性層、服多層。

從理論上飾?OOA大體上依據(jù)下列依次進(jìn)行:找尋類&對(duì)象,

識(shí)別結(jié)構(gòu),識(shí)對(duì)主題,定義屬性,建立動(dòng)及模型,建立功能模黜

—,……一一……噎預(yù)委依次執(zhí)存,蕪葡

能就行。

OOA方法

目前已經(jīng)衍生很多種OOA方法。每種方法都有各自的進(jìn)行產(chǎn)品

或系統(tǒng)分析的過(guò)程,有一組可描述過(guò)程演進(jìn)的圖形標(biāo)識(shí),以與能使

得軟件工程師以一樣的方式建立模型的符號(hào)體系?,F(xiàn)在廣泛運(yùn)用的

00A方法有以下幾種:①Booch方法、②Rumbaugh方法、③

Coad和Yourdon方法、④Jacobson方法、⑤Wirts—Brock

方法、⑥統(tǒng)一的OOA方法(UML)

6.3面對(duì)對(duì)象設(shè)計(jì)

分析是提取和整理用戶需求,并建立問(wèn)題域精確模型的過(guò)程。設(shè)

計(jì)則是把分析階段得到的需求轉(zhuǎn)變成符合成本和質(zhì)量要求的、抽象

的系統(tǒng)實(shí)現(xiàn)方案的過(guò)程。從OOA到OOD,是一個(gè)漸漸擴(kuò)充模型的

過(guò)程?;蛘哒f(shuō),OOD是用面對(duì)對(duì)象觀點(diǎn)建立求解域模型的過(guò)程。盡

管分析和設(shè)計(jì)的定義有明顯區(qū)分,但是在實(shí)際的軟件開(kāi)發(fā)過(guò)程中二

者的界限是模糊的。

啟發(fā)規(guī)則

所謂優(yōu)秀設(shè)計(jì),就是權(quán)衡了各種因素,從而使得系統(tǒng)在其整個(gè)

生命周期中的總開(kāi)銷達(dá)到最小的設(shè)計(jì)。結(jié)構(gòu)化的指導(dǎo)軟件設(shè)計(jì)的幾

條基本原理,在進(jìn)行面對(duì)對(duì)象設(shè)計(jì)時(shí)仍舊成立,但是增加了一些與

面對(duì)對(duì)象方法親密相關(guān)的新特點(diǎn),具體化為面對(duì)對(duì)象設(shè)計(jì)準(zhǔn)則如

下:設(shè)計(jì)結(jié)果應(yīng)清晰易懂;一般一特殊的深度應(yīng)當(dāng)適當(dāng);設(shè)計(jì)簡(jiǎn)潔

的類;運(yùn)用簡(jiǎn)潔的協(xié)議;運(yùn)用簡(jiǎn)潔的任務(wù);把設(shè)計(jì)變動(dòng)減至最少。

子系統(tǒng)設(shè)計(jì)軟件工程師在設(shè)計(jì)比較困難的應(yīng)用系統(tǒng)時(shí)實(shí)行的策

略是,首先把系統(tǒng)分解成若干個(gè)比較小的部分,然后再分別設(shè)計(jì)每

個(gè)部分。這樣做有利于降低設(shè)計(jì)的難度,有利于分工協(xié)作,也有利

于維護(hù)人員對(duì)系統(tǒng)理解和維護(hù)。各個(gè)子系統(tǒng)之間應(yīng)當(dāng)具有盡可能簡(jiǎn)

潔、明確的接口。接口確定了交互形式和通過(guò)子系統(tǒng)邊界的信息

流,但是無(wú)須規(guī)定子系統(tǒng)內(nèi)部的實(shí)現(xiàn)算法。因此,可以相對(duì)獨(dú)立地

設(shè)計(jì)各個(gè)子系統(tǒng)。在劃分和設(shè)計(jì)子系統(tǒng)時(shí),應(yīng)當(dāng)盡量削減子系統(tǒng)彼

此間的依靠性。系統(tǒng)的主要組成部分稱為子系統(tǒng)。通常依據(jù)所供應(yīng)

的功能來(lái)劃分子系統(tǒng)。一般說(shuō)來(lái),子系統(tǒng)的數(shù)目應(yīng)當(dāng)與系統(tǒng)規(guī)模基

本匹配。

采納面對(duì)對(duì)象方法設(shè)計(jì)軟件系統(tǒng)時(shí),面對(duì)對(duì)象設(shè)計(jì)模型(即求解

域的對(duì)象模型),與面對(duì)對(duì)象分析模型(即問(wèn)題域的對(duì)象模型)一樣,

也由主題、類與對(duì)象、結(jié)構(gòu)、屬性、服務(wù)等5個(gè)層次組成。這5個(gè)

層次一層比一層表示的細(xì)微環(huán)節(jié)更多,可以把這5個(gè)層次想象為整

個(gè)模型的水平切片。此外,大多數(shù)系統(tǒng)的面對(duì)對(duì)象設(shè)計(jì)模型,在邏

輯上都由4大部分組成。這4大部分對(duì)應(yīng)于組成目標(biāo)系統(tǒng)的4個(gè)子

系統(tǒng),它們分別是問(wèn)題域子系統(tǒng)、人機(jī)交互子系統(tǒng)、任務(wù)管理子系

統(tǒng)和數(shù)據(jù)管理子系統(tǒng)。

6.4面對(duì)對(duì)象的程序設(shè)計(jì)

面對(duì)對(duì)象的語(yǔ)言

Smalltalk;C++;Java

面對(duì)對(duì)象的編程風(fēng)格

良好的面對(duì)對(duì)象程序設(shè)計(jì)風(fēng)格,既包括傳統(tǒng)的程序設(shè)計(jì)風(fēng)格準(zhǔn)

則,也包括為適應(yīng)面對(duì)對(duì)象方法所特有的概念(例如,繼承性)而必需

遵循的一些新準(zhǔn)則。運(yùn)用這些新準(zhǔn)則,目的在于提高可重用性、可

擴(kuò)充性和健壯性。

提高可重用性的準(zhǔn)則

提高方法的內(nèi)聚;

減小方法的規(guī)模;

保持方法的一樣性;

把策略與實(shí)現(xiàn)分開(kāi);

全面覆蓋;

盡量不運(yùn)用全局信息;

利用繼承機(jī)制。

提高可擴(kuò)充性的準(zhǔn)則

封裝實(shí)現(xiàn)策略;

不要用一個(gè)方法遍歷多條關(guān)聯(lián)鏈;

避開(kāi)運(yùn)用多分支語(yǔ)句;

細(xì)心確定公有方法。

提高可健壯性的準(zhǔn)則

預(yù)防用戶的操作錯(cuò)誤;

檢查參數(shù)的合法性;

不要預(yù)先確定限制條件;

先測(cè)試后優(yōu)化。

面對(duì)對(duì)象的測(cè)試技術(shù)

一般來(lái)說(shuō),面對(duì)對(duì)象的軟件測(cè)試可分為以下四個(gè)層次進(jìn)行:

算法層:測(cè)試類中定義的每個(gè)方法相當(dāng)于傳統(tǒng)測(cè)試中的單元測(cè)試;

類層:測(cè)試封裝在同一個(gè)類中的全部方法與屬性之間的相互作用,

可認(rèn)為是面對(duì)對(duì)象測(cè)試中所特有的模塊測(cè)試;

主題層:測(cè)試一組協(xié)同工作的類&對(duì)象之間的相互作用,相當(dāng)于傳

統(tǒng)測(cè)試的子系統(tǒng)測(cè)試;

系統(tǒng)層:把各個(gè)子系統(tǒng)組裝完成完整的面對(duì)對(duì)象軟件系統(tǒng),在組裝

過(guò)程中同時(shí)進(jìn)行測(cè)試。

6.5UML方法

軟件工程領(lǐng)域在1995年至1997年期間取得了空前購(gòu)進(jìn)展,其

中最重要的、具有劃時(shí)代意義的成果之一就是統(tǒng)一建模語(yǔ)含

UML(UnifiedModelingLanguage)的出現(xiàn),這是面Grady_

Booch>JimRumbaugh和RarJacobson等集眾家之長(zhǎng)而完成

的。在世界范圍內(nèi)至少在近10年內(nèi),UML將是面知對(duì)象技術(shù)領(lǐng)域

內(nèi)占主導(dǎo)地住的標(biāo)準(zhǔn)建澳語(yǔ)言。

UML樵念

設(shè)計(jì)者桁為UML設(shè)定的目標(biāo)是:

(1)運(yùn)用面對(duì)對(duì)象概念來(lái)構(gòu)造系統(tǒng)模型(不僅僅是針對(duì)軟

件)

b)建立起從概念模型直至可執(zhí)行體之間明顯的對(duì)應(yīng)關(guān)系。

(3)著眼于那些有重大影響的問(wèn)題。

(4)創(chuàng)建一種對(duì)人和機(jī)器都適用的建模語(yǔ)言。

標(biāo)準(zhǔn)建模語(yǔ)言UML的內(nèi)容

作為一種建模語(yǔ)言,UML的定義包括UML語(yǔ)義和UML表示法

兩個(gè)部分。一?

UML的表示法

在UML中用5種不同的視圖來(lái)表示一個(gè)系統(tǒng),這些視圖從不同

的側(cè)面描述系統(tǒng)。每一個(gè)視圖由一組圖形來(lái)定義。

用戶模型視圖:從用戶角度來(lái)描述系統(tǒng)。它用usecase建立模

型,描述窗用戶方面的可用的場(chǎng)景。

結(jié)物模就視圖:從系統(tǒng)內(nèi)部描述數(shù)據(jù)和功能。對(duì)靜態(tài)結(jié)構(gòu)

(類、對(duì)彖和關(guān)系)模型花。

行為模型視圖:描述系統(tǒng)的動(dòng)態(tài)和行為。描述在用戶模型視圖

和結(jié)構(gòu)模型視圖中所描述的各種結(jié)構(gòu)元素間的交互和協(xié)作。

實(shí)現(xiàn)模

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論