![軟件工程自學(xué)_第1頁(yè)](http://file4.renrendoc.com/view3/M00/06/0A/wKhkFmZ59HmABlYAAAAwNIUS_kk813.jpg)
![軟件工程自學(xué)_第2頁(yè)](http://file4.renrendoc.com/view3/M00/06/0A/wKhkFmZ59HmABlYAAAAwNIUS_kk8132.jpg)
![軟件工程自學(xué)_第3頁(yè)](http://file4.renrendoc.com/view3/M00/06/0A/wKhkFmZ59HmABlYAAAAwNIUS_kk8133.jpg)
![軟件工程自學(xué)_第4頁(yè)](http://file4.renrendoc.com/view3/M00/06/0A/wKhkFmZ59HmABlYAAAAwNIUS_kk8134.jpg)
![軟件工程自學(xué)_第5頁(yè)](http://file4.renrendoc.com/view3/M00/06/0A/wKhkFmZ59HmABlYAAAAwNIUS_kk8135.jpg)
版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 閥門維修合同范本
- 2025年度生態(tài)園區(qū)植物墻規(guī)劃與建設(shè)合同書
- 2025年度大數(shù)據(jù)應(yīng)用合作合同免責(zé)條款范本
- 2025年度消防設(shè)備檢測(cè)檢驗(yàn)服務(wù)合同
- 2025年度還建房屋產(chǎn)權(quán)互換合同模板
- 2025年度國(guó)有股權(quán)掛牌轉(zhuǎn)讓與投資基金協(xié)議轉(zhuǎn)讓服務(wù)合同
- 電商銷售模式及其發(fā)展前景探討
- 環(huán)保材料在路橋工程中的運(yùn)用及效果評(píng)估
- 電商平臺(tái)教育領(lǐng)域的創(chuàng)新與發(fā)展
- 現(xiàn)代物流信息技術(shù)的教育推廣與實(shí)踐
- 學(xué)校預(yù)算管理內(nèi)部控制制度
- anthone溫控儀說(shuō)明書LU920
- 童年創(chuàng)傷問(wèn)卷(CTQ-含評(píng)分說(shuō)明)
- 人教部編版小學(xué)五年級(jí)語(yǔ)文下冊(cè) 第三單元綜合性學(xué)習(xí)《我愛(ài)你,漢字》優(yōu)質(zhì)課教案
- 工廠主文件(新)
- 樓板配筋計(jì)算表格(自動(dòng)版)
- 儀表基礎(chǔ)知識(shí)培訓(xùn).ppt課件
- 井下探放水設(shè)計(jì)編制培訓(xùn)PPT課件
- 營(yíng)養(yǎng)學(xué)緒論(精)
- 魯科版英語(yǔ)五年級(jí)下冊(cè)Unit 5 單元測(cè)試卷及答案
- 最新ICD-9手術(shù)編碼
評(píng)論
0/150
提交評(píng)論