版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
面向?qū)ο蠓椒▽W(xué)第一頁(yè),共七十頁(yè),2022年,8月28日討論軟件?軟件危機(jī)?軟件工程?你開(kāi)發(fā)軟件采用的方法?第二頁(yè),共七十頁(yè),2022年,8月28日軟件危機(jī)軟件定義:一個(gè)軟件必須由一個(gè)完整的配置組成。
軟件是程序、數(shù)據(jù)及相關(guān)文檔的完整集合。第三頁(yè),共七十頁(yè),2022年,8月28日軟件開(kāi)發(fā)的高成本與低質(zhì)量的矛盾稱(chēng)為軟件危機(jī)。軟件危機(jī)第四頁(yè),共七十頁(yè),2022年,8月28日
軟件開(kāi)發(fā)和維護(hù)過(guò)程中遇到一系列嚴(yán)重的問(wèn)題(1)對(duì)軟件開(kāi)發(fā)成本和進(jìn)度估計(jì)不準(zhǔn)確。
經(jīng)費(fèi)預(yù)算經(jīng)常突破,完成時(shí)間一再拖延。(2)開(kāi)發(fā)的軟件不能滿(mǎn)足用戶(hù)要求。
開(kāi)發(fā)初期對(duì)用戶(hù)的要求了解不夠明確,未能得到明確表達(dá)。開(kāi)發(fā)工作開(kāi)始后,軟件人員和用戶(hù)又未能及時(shí)交換意見(jiàn),使得一些問(wèn)題不能及時(shí)解決,導(dǎo)致開(kāi)發(fā)的軟件不能滿(mǎn)足用戶(hù)的要求,使開(kāi)發(fā)失敗。(3)軟件產(chǎn)品質(zhì)量靠不住。(4)
軟件可維護(hù)性差。
開(kāi)發(fā)過(guò)程沒(méi)有統(tǒng)一的、公認(rèn)的規(guī)范,軟件開(kāi)發(fā)人員按各自的風(fēng)格工作,各行其事。開(kāi)發(fā)過(guò)程無(wú)完整、規(guī)范的文檔,發(fā)現(xiàn)問(wèn)題后進(jìn)行雜亂無(wú)章的修改。程序結(jié)構(gòu)不好,運(yùn)行時(shí)發(fā)現(xiàn)錯(cuò)誤也很難修改,導(dǎo)致維護(hù)性差。第五頁(yè),共七十頁(yè),2022年,8月28日(5)開(kāi)發(fā)的軟件可靠性差。由于在開(kāi)發(fā)過(guò)程中,沒(méi)有確保軟件質(zhì)量的體系和措施,在軟件測(cè)試時(shí),又沒(méi)有嚴(yán)格的、充分的、完全的測(cè)試,提交給用戶(hù)的軟件質(zhì)量差,在運(yùn)行中暴露出大量的問(wèn)題。這種不可靠的軟件,輕者會(huì)影響系統(tǒng)正常工作,重者會(huì)發(fā)生事故,造成生命財(cái)產(chǎn)的重大損失。(6)軟件沒(méi)有適當(dāng)?shù)奈臋n材料(7)傳統(tǒng)的軟件開(kāi)發(fā)速度遠(yuǎn)遠(yuǎn)跟不上應(yīng)用速度。
第六頁(yè),共七十頁(yè),2022年,8月28日與軟件本身的特點(diǎn)有關(guān)和軟件開(kāi)發(fā)與維護(hù)的方法不正確有關(guān)。
產(chǎn)生軟件危機(jī)的原因第七頁(yè),共七十頁(yè),2022年,8月28日缺乏“可見(jiàn)性”管理和控制軟件開(kāi)發(fā)過(guò)程相當(dāng)困難軟件較難維護(hù)。規(guī)模龐大為了在預(yù)定時(shí)間內(nèi)開(kāi)發(fā)出規(guī)模龐大的軟件,必須由許多人分工合作,然而,如何保證每個(gè)人完成的工作合在一起確實(shí)能構(gòu)成一個(gè)高質(zhì)量的大型軟件系統(tǒng),不僅涉及許多技術(shù)問(wèn)題,更重要的是必須有嚴(yán)格而科學(xué)的管理。(1)與軟件本身的特點(diǎn)有關(guān)第八頁(yè),共七十頁(yè),2022年,8月28日忽視軟件需求分析的重要性
(2)與軟件開(kāi)發(fā)與維護(hù)的方法不正確有關(guān)輕視維護(hù)軟件已經(jīng)完成之后進(jìn)行的維護(hù)是極端艱巨復(fù)雜的工作,需要花費(fèi)很大代價(jià)。統(tǒng)計(jì)數(shù)據(jù)表明,實(shí)際上用于軟件維護(hù)的費(fèi)用占軟件總費(fèi)用的55%~70%。
作好軟件定義時(shí)期的工作,是降低軟件成本提高軟件質(zhì)量的關(guān)鍵。第九頁(yè),共七十頁(yè),2022年,8月28日
克服軟件危機(jī)的途徑用現(xiàn)代工程的概念、原理、技術(shù)和方法進(jìn)行軟件開(kāi)發(fā)、管理和維護(hù)。組織管理措施軟件開(kāi)發(fā)不是某種個(gè)體勞動(dòng)的神秘技巧,而應(yīng)該是一種組織良好、管理嚴(yán)密、各類(lèi)人員協(xié)同配合、共同完成的工程項(xiàng)目。技術(shù)措施(方法和工具)在軟件開(kāi)發(fā)的每個(gè)階段都有許多繁瑣重復(fù)的工作需要做,在適當(dāng)?shù)能浖ぞ咻o助下,開(kāi)發(fā)人員可以把這類(lèi)工作做得既快又好。第十頁(yè),共七十頁(yè),2022年,8月28日《系統(tǒng)工程》
系統(tǒng)建模第十一頁(yè),共七十頁(yè),2022年,8月28日
系統(tǒng)模型的定義系統(tǒng)模型是一個(gè)系統(tǒng)某一方面本質(zhì)屬性的描述,它以某種確定的形式(例如文字、符號(hào)、圖表、實(shí)物、數(shù)學(xué)公式等)提供關(guān)于該系統(tǒng)的知識(shí)。系統(tǒng)模型一般不是系統(tǒng)對(duì)象本身,而是現(xiàn)實(shí)系統(tǒng)的描述、模仿或抽象。系統(tǒng)是復(fù)雜的,系統(tǒng)的屬性也是多方面的。對(duì)于大多數(shù)研究目的而言,沒(méi)有必要考慮系統(tǒng)的全部屬性,因此,系統(tǒng)模型只是系統(tǒng)某一方面本質(zhì)屬性的描述,本質(zhì)屬性的選取完全取決系統(tǒng)工程研究的目的第十二頁(yè),共七十頁(yè),2022年,8月28日根據(jù)不同的研究目的,同一個(gè)系統(tǒng)可以建立不同的系統(tǒng)模型。例如,城市經(jīng)濟(jì)模型,可以用一、二、三產(chǎn)業(yè)表示,也可以用各個(gè)行政管理部門(mén)來(lái)表示。同一種模型可以代表多個(gè)系統(tǒng)。例如,y=kx(k是為常量),幾何上:代表一條通過(guò)原點(diǎn)的直線(xiàn);代數(shù)上:表示比例關(guān)系;設(shè)k=π,x代表直徑,則y表示圓周長(zhǎng);設(shè)k表示彈簧剛度,x表示伸長(zhǎng)量,則y表示彈簧力大??;當(dāng)k=a表示加速度,x=m表示質(zhì)量,則y表示物體所受外力大小等等。第十三頁(yè),共七十頁(yè),2022年,8月28日
系統(tǒng)模型與原型系統(tǒng)模型反映實(shí)際系統(tǒng)的主要特征,但它又高于實(shí)際系統(tǒng)而具有同類(lèi)問(wèn)題的共性。因此一個(gè)適用的系統(tǒng)模型應(yīng)該具有如下三個(gè)特征:(1)它是現(xiàn)實(shí)系統(tǒng)的抽象或模仿;(2)它是由反映系統(tǒng)本質(zhì)或特征的主要因素構(gòu)成的;(3)它集中體現(xiàn)了這些主要因素之間的關(guān)系。第十四頁(yè),共七十頁(yè),2022年,8月28日
系統(tǒng)模型與原型給對(duì)象實(shí)體以必要的簡(jiǎn)化,用適當(dāng)?shù)谋憩F(xiàn)形式或規(guī)則把它的主要特征描繪出來(lái),這樣得到的模仿品稱(chēng)為模型,對(duì)象實(shí)體稱(chēng)為原型。模型也有結(jié)構(gòu),模型結(jié)構(gòu)與原型結(jié)構(gòu)是不同的兩碼事,但兩者又有直接或間接的聯(lián)系。原型中必須考慮的結(jié)構(gòu)問(wèn)題都應(yīng)在模型中有所反映,能以模型的語(yǔ)言描述出來(lái)。第十五頁(yè),共七十頁(yè),2022年,8月28日
系統(tǒng)模型與原型數(shù)學(xué)模型是抽象模型,不能要求它直接反映系統(tǒng)原型的結(jié)構(gòu),但必定與原型結(jié)構(gòu)有內(nèi)在聯(lián)系,原型中的結(jié)構(gòu)問(wèn)題在模型中用數(shù)學(xué)語(yǔ)言描述,能用數(shù)學(xué)方法分析和解決。例如,原型的結(jié)構(gòu)穩(wěn)定與否可以轉(zhuǎn)化為模型中數(shù)學(xué)結(jié)構(gòu)的穩(wěn)定與否。構(gòu)造模型是為了研究原型,通過(guò)模型研究能夠把握原型的主要特性。模型又是對(duì)原型的簡(jiǎn)化,應(yīng)當(dāng)壓縮一切可以壓縮的信息力求經(jīng)濟(jì)性好,便于操作。沒(méi)有簡(jiǎn)化不成其為模型,同原型比較未能顯著簡(jiǎn)化的模仿品不是好模型。第十六頁(yè),共七十頁(yè),2022年,8月28日
系統(tǒng)模型的分類(lèi)實(shí)體模型即系統(tǒng)本身,當(dāng)系統(tǒng)的大小剛好適合研究而又不存在危險(xiǎn)時(shí),就可以把系統(tǒng)本身作為模型。實(shí)體模型包括抽樣模型,例如標(biāo)準(zhǔn)件的生產(chǎn)檢驗(yàn)是從總體中抽取一定數(shù)量的樣本進(jìn)行的,樣本就是實(shí)體模型。相似模型根據(jù)相似原理,利用一種系統(tǒng)去代替另一種系統(tǒng)。例如用電路系統(tǒng)代替機(jī)械系統(tǒng)、熱力學(xué)系統(tǒng)進(jìn)行研究,則電路系統(tǒng)就是后二者的相似模型。第十七頁(yè),共七十頁(yè),2022年,8月28日
系統(tǒng)模型的分類(lèi)比例模型是放大或縮小的系統(tǒng),使之適合于研究。文字模型如技術(shù)報(bào)告、說(shuō)明書(shū)等。在物理模型和數(shù)學(xué)模型都很難建立時(shí),有時(shí)不得不用它來(lái)描述研究結(jié)果。網(wǎng)絡(luò)模型用網(wǎng)絡(luò)圖來(lái)描述系統(tǒng)的組成元素以及元素之間的相互關(guān)系(包括邏輯關(guān)系與數(shù)學(xué)關(guān)系)第十八頁(yè),共七十頁(yè),2022年,8月28日
系統(tǒng)模型的分類(lèi)圖表模型用圖像和表格描述的模型,它們可以互相轉(zhuǎn)化,這里說(shuō)的圖像是指坐標(biāo)系中的曲線(xiàn)、曲面和點(diǎn)等幾何圖形。邏輯模型表示邏輯關(guān)系的模型,如方框圖、程序單等。數(shù)學(xué)模型用數(shù)學(xué)方程式表示的模型。計(jì)算機(jī)模型用計(jì)算機(jī)設(shè)計(jì)語(yǔ)言描寫(xiě)的模型。第十九頁(yè),共七十頁(yè),2022年,8月28日
數(shù)學(xué)模型所謂系統(tǒng)的數(shù)學(xué)模型,指的是描述元素之間、子系統(tǒng)之間、層次之間相互作用以及系統(tǒng)與環(huán)境相互作用的數(shù)學(xué)表達(dá)式。原則上講,現(xiàn)代數(shù)學(xué)所提供的一切數(shù)學(xué)表達(dá)形式,包括幾何圖形、代數(shù)結(jié)構(gòu)、拓?fù)浣Y(jié)構(gòu)、序結(jié)構(gòu)、分析表達(dá)式等,均可以作為一定系統(tǒng)的數(shù)學(xué)模型。大量的數(shù)學(xué)模型是定量分析系統(tǒng)的工具。用數(shù)學(xué)形式表示的輸出對(duì)輸入的響應(yīng)關(guān)系,就是廣泛使用的一種定量分析模型第二十頁(yè),共七十頁(yè),2022年,8月28日
數(shù)學(xué)模型技術(shù)科學(xué)層次的系統(tǒng)理論和系統(tǒng)工程,都主要使用數(shù)學(xué)模型作為定量分析工具,以便給出設(shè)計(jì)、操作系統(tǒng)所必須的定量結(jié)論。數(shù)學(xué)模型同樣可以作為定性描述系統(tǒng)的工具,對(duì)于描述系統(tǒng)演化現(xiàn)象來(lái)說(shuō),人們關(guān)心的主要是系統(tǒng)定性性質(zhì)的改變與否,定性分析是更基本的。定量描述系統(tǒng)的數(shù)學(xué)模型必須以正確認(rèn)識(shí)系統(tǒng)的定性性質(zhì)為前提。描述系統(tǒng)的特征量的選擇建立在建模者對(duì)系統(tǒng)行為特性的定性認(rèn)識(shí)基礎(chǔ)上。第二十一頁(yè),共七十頁(yè),2022年,8月28日
數(shù)學(xué)模型優(yōu)點(diǎn)定量分析的基礎(chǔ)在自然科學(xué)和工程技術(shù)領(lǐng)域里,數(shù)量不準(zhǔn)將招致質(zhì)量低劣,在社會(huì)科學(xué)領(lǐng)域里,沒(méi)有定量分析會(huì)使人心中無(wú)數(shù),造成決策失誤,引起不必要的混亂。因此,采用數(shù)學(xué)模型進(jìn)行定量分析已成為當(dāng)代自然科學(xué)和社會(huì)科學(xué)進(jìn)一步發(fā)展的共同要求。第二十二頁(yè),共七十頁(yè),2022年,8月28日
數(shù)學(xué)模型優(yōu)點(diǎn)系統(tǒng)預(yù)測(cè)和決策的工具
可以利用系統(tǒng)已有的數(shù)據(jù)建立預(yù)測(cè)模型,用來(lái)預(yù)測(cè)系統(tǒng)的未來(lái)狀態(tài),為正確決策提供依據(jù)。靈活性好它可變性好、適應(yīng)性強(qiáng)、分析問(wèn)題速度快,省時(shí)省錢(qián),而且便于使用計(jì)算機(jī),因此,它是所有模型中使用最廣泛的一種。我們通常所說(shuō)的系統(tǒng)建模,大多數(shù)情況下都是指建立系統(tǒng)的數(shù)學(xué)模型。第二十三頁(yè),共七十頁(yè),2022年,8月28日
計(jì)算機(jī)模型用計(jì)算機(jī)程序定義的模型。首先明確構(gòu)成系統(tǒng)的“構(gòu)件”,把它們之間的相互關(guān)聯(lián)方式提煉成若干簡(jiǎn)單的行為規(guī)則,并以計(jì)算機(jī)程序表示出來(lái),以便通過(guò)在計(jì)算機(jī)上的數(shù)值計(jì)算來(lái)模仿系統(tǒng)運(yùn)行演化,觀(guān)察如何通過(guò)對(duì)構(gòu)件執(zhí)行這些簡(jiǎn)單規(guī)則而涌現(xiàn)出系統(tǒng)的整體性質(zhì),預(yù)測(cè)系統(tǒng)的未來(lái)走向。所有數(shù)學(xué)模型都可以轉(zhuǎn)化為基于計(jì)算機(jī)的模型,通過(guò)計(jì)算來(lái)研究系統(tǒng)。許多無(wú)法建立數(shù)學(xué)模型的系統(tǒng),如復(fù)雜的物理過(guò)程,特別是生物、社會(huì)和行為過(guò)程,也可能建立基于計(jì)算機(jī)的模型。第二十四頁(yè),共七十頁(yè),2022年,8月28日
計(jì)算機(jī)模型用數(shù)學(xué)表達(dá)式定義的傳統(tǒng)模型,求解和處理往往需用復(fù)雜艱深的理論和技巧,費(fèi)時(shí)費(fèi)力,可行性常常較差,所得結(jié)果有時(shí)無(wú)法用實(shí)驗(yàn)檢驗(yàn)。用計(jì)算機(jī)程序定義的模型,可以做到既嚴(yán)格,又可行,能夠在計(jì)算機(jī)上研究和預(yù)測(cè)系統(tǒng),通過(guò)計(jì)算實(shí)驗(yàn)來(lái)檢驗(yàn)結(jié)果。對(duì)于那些無(wú)法用真實(shí)的實(shí)驗(yàn)來(lái)檢驗(yàn)的復(fù)雜系統(tǒng),計(jì)算實(shí)驗(yàn)是唯一可用的實(shí)驗(yàn)檢驗(yàn)手段。計(jì)算實(shí)驗(yàn)是一種新興的實(shí)驗(yàn)形式,它為研究復(fù)雜巨系統(tǒng)提供了唯一普遍可用的實(shí)驗(yàn)手段。第二十五頁(yè),共七十頁(yè),2022年,8月28日
系統(tǒng)建模方法1系統(tǒng)模型的要求
2建模的原則第二十六頁(yè),共七十頁(yè),2022年,8月28日1系統(tǒng)模型的要求真實(shí)性要求建立的模型能夠很好地反映系統(tǒng)的客觀(guān)實(shí)際,應(yīng)把系統(tǒng)本質(zhì)特征和關(guān)系反映進(jìn)去,而把非本質(zhì)的東西去掉,但又不影響反映本質(zhì)的真實(shí)程度。也就是說(shuō),系統(tǒng)模型應(yīng)有足夠的精度,以保證它的真實(shí)性。精度要求不僅與研究對(duì)象有關(guān),而且與所處的時(shí)間、狀態(tài)和條件有關(guān)。因此,為滿(mǎn)足真實(shí)性要求,對(duì)同一對(duì)象在不同情況下可以提出不同的精度要求。第二十七頁(yè),共七十頁(yè),2022年,8月28日1系統(tǒng)模型的要求簡(jiǎn)明性在滿(mǎn)足真實(shí)性要求的基礎(chǔ)上,應(yīng)盡量使系統(tǒng)模型簡(jiǎn)單明了,以節(jié)約建模的費(fèi)用和時(shí)間。這也就是說(shuō),如果一個(gè)簡(jiǎn)單的模型已能使實(shí)際問(wèn)題得到滿(mǎn)意的解答,就沒(méi)有必要去建一個(gè)復(fù)雜的模型,因?yàn)榻ㄔ煲粋€(gè)復(fù)雜的模型并求解是要付出很高代價(jià)的,其次模型過(guò)于復(fù)雜難以滿(mǎn)足快速?zèng)Q策的需要。第二十八頁(yè),共七十頁(yè),2022年,8月28日1系統(tǒng)模型的要求現(xiàn)實(shí)性在建立某些系統(tǒng)的模型時(shí),如果已有某種標(biāo)準(zhǔn)化模型可供借鑒,則應(yīng)盡量采用標(biāo)準(zhǔn)化模型,或者對(duì)標(biāo)準(zhǔn)化模型加以某些修改,使之適合對(duì)象系統(tǒng),不追求另起爐灶。其次,在建立模型時(shí),要考慮數(shù)據(jù)采集的可能性和今后的發(fā)展方向,使建立的模型具有現(xiàn)實(shí)可操性和發(fā)展?jié)摿?。第二十九?yè),共七十頁(yè),2022年,8月28日2建模的原則抓住主要矛盾模型只應(yīng)包括與研究目的有關(guān)的方面,而不是對(duì)象系統(tǒng)的所有方面。例如,對(duì)—個(gè)空運(yùn)指揮調(diào)度系統(tǒng)的研究,建模只需考慮飛機(jī)的飛行航向而無(wú)需考慮其飛行姿態(tài)。清晰明了一個(gè)大型復(fù)雜系統(tǒng)是由許多聯(lián)系密切的子系統(tǒng)組成的,因此對(duì)應(yīng)的系統(tǒng)模型也是由許多子模型(或模塊)組成的。在子模型與子模型之間,除了保留研究目的所必要的信息聯(lián)系外,其它的耦合關(guān)系要盡可能減少,以保證模型結(jié)構(gòu)盡可能清晰明了。第三十頁(yè),共七十頁(yè),2022年,8月28日2建模的原則精度要求適當(dāng)建立系統(tǒng)模型,應(yīng)該視研究目的和使用環(huán)境不同,選擇適當(dāng)?shù)木鹊燃?jí),以保證模型切題、實(shí)用,而又不致花費(fèi)太多。例如,一個(gè)受外力F作用下的物體M,其動(dòng)力學(xué)系統(tǒng)的數(shù)學(xué)模型,在不同使用環(huán)境下有不同精度等級(jí),應(yīng)該適當(dāng)選擇。第三十一頁(yè),共七十頁(yè),2022年,8月28日2建模的原則當(dāng)物體的運(yùn)動(dòng)速度v足夠小時(shí),可以忽略空氣阻力的影響,其符合精度要求的數(shù)學(xué)模型為當(dāng)速度v提高到必須考慮空氣阻力的影響時(shí),則其符合精度要求的數(shù)學(xué)模型為當(dāng)物體的運(yùn)動(dòng)速度接近于光速3×108m/s時(shí),按相對(duì)論原理,此時(shí)M將不是常數(shù),因此其符合精度要求的數(shù)學(xué)模型為第三十二頁(yè),共七十頁(yè),2022年,8月28日2建模的原則盡量使用標(biāo)準(zhǔn)模型在建立一個(gè)實(shí)際系統(tǒng)的模型時(shí),應(yīng)該首先大量調(diào)閱模型庫(kù)中的標(biāo)準(zhǔn)模型,如果其中某些可供借鑒,不妨先試用一下。如能滿(mǎn)足要求,就應(yīng)該使用標(biāo)準(zhǔn)模型,或者盡可能向標(biāo)準(zhǔn)模型靠攏。這樣有利于比較分析,有利于節(jié)省費(fèi)用和時(shí)間第三十三頁(yè),共七十頁(yè),2022年,8月28日3建模的主要方法推理法對(duì)于內(nèi)部結(jié)構(gòu)和特性已經(jīng)清楚的系統(tǒng),即所謂的“白箱”系統(tǒng)(例如大多數(shù)的工程系統(tǒng)),可以利用已知的定律和定理,經(jīng)過(guò)一定的分析和推理,得到系統(tǒng)模型。實(shí)驗(yàn)法對(duì)于那些內(nèi)部結(jié)構(gòu)和特性不清楚或不很清楚的系統(tǒng),即所謂的“黑箱”或“灰箱”系統(tǒng),如果允許進(jìn)行實(shí)驗(yàn)性觀(guān)察,則可以通過(guò)實(shí)驗(yàn)方法測(cè)量其輸入和輸出,然后按照一定的辨識(shí)方法,得到系統(tǒng)模型。第三十四頁(yè),共七十頁(yè),2022年,8月28日3建模的主要方法統(tǒng)計(jì)分析法對(duì)于那些屬于“黑箱”,但又不允許直接進(jìn)行實(shí)驗(yàn)觀(guān)察的系統(tǒng)(例如非工程系統(tǒng)多數(shù)屬于此類(lèi)),可以采用數(shù)據(jù)收集和統(tǒng)計(jì)分析的方法來(lái)建造系統(tǒng)模型。第三十五頁(yè),共七十頁(yè),2022年,8月28日3建模的主要方法類(lèi)似法即建造原系統(tǒng)的類(lèi)似模型。有的系統(tǒng),其結(jié)構(gòu)和性質(zhì)雖然已經(jīng)清楚,但其模型的數(shù)量描述和求解卻不好辦,這時(shí)如果有另一種系統(tǒng)其結(jié)構(gòu)和性質(zhì)與之相同,因而建造出的模型也類(lèi)似,但是該模型的建立及處理要簡(jiǎn)單得多,把后一種系統(tǒng)的模型看成是原系統(tǒng)的類(lèi)似模型。利用類(lèi)似模型,按對(duì)應(yīng)關(guān)系就可以很方便地求得原系統(tǒng)的模型。例如很多機(jī)械系統(tǒng)、氣動(dòng)力學(xué)系統(tǒng)、水力學(xué)系統(tǒng)、熱力學(xué)系統(tǒng)與電路系統(tǒng)之間某些現(xiàn)象彼此類(lèi)似,特別是通過(guò)微分方程描述的動(dòng)力學(xué)方程基本一致,因此可以利用成熟的電路系統(tǒng)來(lái)構(gòu)造上述系統(tǒng)的類(lèi)似模型第三十六頁(yè),共七十頁(yè),2022年,8月28日3建模的主要方法混合法大部分系統(tǒng)模型的建造往往是上述幾種方法綜合運(yùn)用的結(jié)果真正解決系統(tǒng)建模問(wèn)題還必須充分開(kāi)發(fā)人的創(chuàng)造力,綜合運(yùn)用各種科學(xué)知識(shí),針對(duì)不同的系統(tǒng)對(duì)象,或者建造新模型,或者巧妙地利用已有的模型,或者改造已有的模型,這樣才能創(chuàng)造出更加適用的系統(tǒng)模型。因此,有人把建造系統(tǒng)模型看成是一種藝術(shù),這說(shuō)明建造系統(tǒng)模型確實(shí)需要充分發(fā)揮人的創(chuàng)造性,而不可能有現(xiàn)成的模式可以照搬第三十七頁(yè),共七十頁(yè),2022年,8月28日軟件生命周期-傳統(tǒng)方法軟件生命周期是指一個(gè)軟件項(xiàng)目被提出并著手實(shí)施開(kāi)始,到該軟件報(bào)廢或停止使用為止。經(jīng)歷三個(gè)時(shí)期
.軟件定義
.軟件開(kāi)發(fā)
.運(yùn)行維護(hù)(也稱(chēng)為軟件維護(hù))第三十八頁(yè),共七十頁(yè),2022年,8月28日軟件生命周期各階段的基本任務(wù)1.問(wèn)題定義2.可行性研究3.需求分析4.總體設(shè)計(jì)5.詳細(xì)設(shè)計(jì)6.編碼和單元測(cè)試7.綜合測(cè)試8.運(yùn)行與維護(hù)
軟件生命周期由軟件定義、軟件開(kāi)發(fā)和運(yùn)行維護(hù)(也稱(chēng)為軟件維護(hù))3個(gè)時(shí)期組成,每個(gè)時(shí)期又進(jìn)一步劃分成若干個(gè)階段。第三十九頁(yè),共七十頁(yè),2022年,8月28日1.問(wèn)題定義回答:“要解決的問(wèn)題是什么?”
通過(guò)調(diào)研,寫(xiě)出關(guān)于問(wèn)題性質(zhì)、工程目標(biāo)和工程規(guī)模的書(shū)面報(bào)告,并得到客戶(hù)的確認(rèn)。2.可行性研究回答:“對(duì)于上一個(gè)階段所確定的問(wèn)題有行得通的解決辦法嗎?”
研究并論證軟件系統(tǒng)的可行性,對(duì)方案進(jìn)行選擇并形成可行性分析報(bào)告。第四十頁(yè),共七十頁(yè),2022年,8月28日3.需求分析這個(gè)階段的任務(wù)主要是確定目標(biāo)系統(tǒng)必須具備哪些功能。建立邏輯模型
必須準(zhǔn)確完整地體現(xiàn)用戶(hù)的要求。數(shù)據(jù)模型(實(shí)體-聯(lián)系圖)功能模型(數(shù)據(jù)流圖)行為模型(狀態(tài)轉(zhuǎn)換圖)書(shū)寫(xiě)規(guī)格說(shuō)明書(shū)用正式文檔準(zhǔn)確地記錄對(duì)目標(biāo)系統(tǒng)的需求。第四十一頁(yè),共七十頁(yè),2022年,8月28日4.總體設(shè)計(jì)(概要設(shè)計(jì))
回答“概括地說(shuō),應(yīng)該怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)?”
軟件設(shè)計(jì)的一條基本原理就是,程序應(yīng)該模塊化,也就是說(shuō),一個(gè)程序應(yīng)該由若干個(gè)規(guī)模適中的模塊按合理的層次結(jié)構(gòu)組織而成。因此,總體設(shè)計(jì)的另一項(xiàng)主要任務(wù)就是設(shè)計(jì)程序的體系結(jié)構(gòu),也就是確定程序由哪些模塊組成以及模塊間的關(guān)系。建立軟件系統(tǒng)的總體結(jié)構(gòu)定義功能模塊的接口設(shè)計(jì)全局?jǐn)?shù)據(jù)庫(kù)或數(shù)據(jù)結(jié)構(gòu)規(guī)定設(shè)計(jì)約束編制概要設(shè)計(jì)文檔第四十二頁(yè),共七十頁(yè),2022年,8月28日5.詳細(xì)設(shè)計(jì)(模塊設(shè)計(jì))
把解法具體化,回答“應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)呢?”模塊詳細(xì)設(shè)計(jì)
模塊的詳細(xì)功能、算法、數(shù)據(jù)結(jié)構(gòu)、模塊間的接口等設(shè)計(jì),擬定模塊測(cè)試方案。編制模塊的詳細(xì)規(guī)格說(shuō)明
匯總模塊詳細(xì)設(shè)計(jì)的結(jié)果,形成模塊詳細(xì)規(guī)格說(shuō)明書(shū)。第四十三頁(yè),共七十頁(yè),2022年,8月28日6.編碼和單元測(cè)試寫(xiě)出正確的容易理解、容易維護(hù)的程序模塊。編碼根據(jù)模塊詳細(xì)規(guī)格說(shuō)明書(shū),把詳細(xì)設(shè)計(jì)的結(jié)果翻譯成用選定的語(yǔ)言書(shū)寫(xiě)的程序。單元測(cè)試對(duì)模塊程序進(jìn)行測(cè)試,驗(yàn)證模塊功能及接口與詳細(xì)設(shè)計(jì)文檔的一致性,并形成單元測(cè)試報(bào)告。第四十四頁(yè),共七十頁(yè),2022年,8月28日7.綜合測(cè)試通過(guò)各種類(lèi)型的測(cè)試(及相應(yīng)的調(diào)試)使軟件達(dá)到預(yù)定的要求。集成測(cè)試根據(jù)設(shè)計(jì)的軟件結(jié)構(gòu),把經(jīng)過(guò)單元測(cè)試檢驗(yàn)的模塊按某種選定的策略裝配起來(lái),在裝配過(guò)程中對(duì)程序進(jìn)行必要的測(cè)試。驗(yàn)收測(cè)試按照規(guī)格說(shuō)明書(shū)的規(guī)定,由用戶(hù)對(duì)目標(biāo)系統(tǒng)進(jìn)行驗(yàn)收?,F(xiàn)場(chǎng)測(cè)試或平行運(yùn)行平行運(yùn)行就是同時(shí)運(yùn)行新開(kāi)發(fā)出來(lái)的系統(tǒng)和將被它取代的舊系統(tǒng),以便比較新舊兩個(gè)系統(tǒng)的處理結(jié)果。用正式的文檔資料把測(cè)試計(jì)劃、詳細(xì)測(cè)試方案以及實(shí)際測(cè)試結(jié)果保存下來(lái),作為軟件配置的一個(gè)組成部分。第四十五頁(yè),共七十頁(yè),2022年,8月28日8.軟件維護(hù)維護(hù)階段的關(guān)鍵任務(wù)是,通過(guò)各種必要的維護(hù)活動(dòng)使系統(tǒng)持久地滿(mǎn)足用戶(hù)的需要。改正性維護(hù)診斷和改正在使用過(guò)程中發(fā)現(xiàn)的軟件錯(cuò)誤;適應(yīng)性維護(hù)修改軟件以適應(yīng)環(huán)境的變化;完善性維護(hù)根據(jù)用戶(hù)的要求改進(jìn)或擴(kuò)充軟件使它更完善;預(yù)防性維護(hù)修改軟件為將來(lái)的維護(hù)活動(dòng)預(yù)先做準(zhǔn)備。每一項(xiàng)維護(hù)活動(dòng)都應(yīng)該經(jīng)過(guò)提出維護(hù)要求(或報(bào)告問(wèn)題),分析維護(hù)要求,提出維護(hù)方案,審批維護(hù)方案,確定維護(hù)計(jì)劃,修改軟件設(shè)計(jì),修改程序,測(cè)試程序,復(fù)查驗(yàn)收等一系列步驟。第四十六頁(yè),共七十頁(yè),2022年,8月28日傳統(tǒng)的生命周期方法學(xué)傳統(tǒng)方法學(xué)的本質(zhì)是在具體的軟件開(kāi)發(fā)工作開(kāi)始之前,通過(guò)需求分析預(yù)先定義軟件需求,然后一個(gè)階段接著一個(gè)階段有條不紊地開(kāi)發(fā)用戶(hù)所要求的軟件,實(shí)現(xiàn)預(yù)先定義的軟件需求。生命周期方法學(xué)是一個(gè)巨大的進(jìn)步,對(duì)實(shí)現(xiàn)軟件開(kāi)發(fā)工程化曾經(jīng)起了重要的促進(jìn)作用,部分地緩解了軟件危機(jī)。第四十七頁(yè),共七十頁(yè),2022年,8月28日結(jié)構(gòu)化程序設(shè)計(jì)思想的提出背景回首計(jì)算機(jī)的發(fā)展歷程,人們發(fā)現(xiàn)計(jì)算機(jī)軟件的發(fā)展速度始終滯后于計(jì)算機(jī)硬件的發(fā)展,它已經(jīng)成為制約計(jì)算機(jī)產(chǎn)業(yè)整體發(fā)展的瓶頸。究其原因可能有很多方面,但下面兩點(diǎn)不容忽視。軟件產(chǎn)業(yè)的個(gè)體化受限于程序設(shè)計(jì)語(yǔ)言結(jié)構(gòu)化程序設(shè)計(jì)方法學(xué)第四十八頁(yè),共七十頁(yè),2022年,8月28日結(jié)構(gòu)化程序設(shè)計(jì)方法自頂向下、逐步求精的開(kāi)發(fā)方法模塊化的組織方式結(jié)構(gòu)化的語(yǔ)句結(jié)構(gòu)第四十九頁(yè),共七十頁(yè),2022年,8月28日自頂向下、逐步求精將編寫(xiě)程序看成是一個(gè)逐步演化的過(guò)程。所謂自頂向下是指將分析問(wèn)題的過(guò)程劃分成若干個(gè)層次,每一個(gè)新的層次都是上一個(gè)層次的細(xì)化,即步步深入,逐層細(xì)分。第五十頁(yè),共七十頁(yè),2022年,8月28日模塊化將整個(gè)系統(tǒng)分解成若干個(gè)模塊,每個(gè)模塊實(shí)現(xiàn)特定的功能,最終的系統(tǒng)將由這些模塊組裝而成。模塊之間通過(guò)接口傳遞信息,力求模塊具有良好的獨(dú)立性。第五十一頁(yè),共七十頁(yè),2022年,8月28日語(yǔ)句結(jié)構(gòu)化ABTAB順序結(jié)構(gòu)分支結(jié)構(gòu)YN第五十二頁(yè),共七十頁(yè),2022年,8月28日結(jié)構(gòu)化程序設(shè)計(jì)的特點(diǎn)程序設(shè)計(jì)=數(shù)據(jù)結(jié)構(gòu)+算法程序內(nèi)容=過(guò)程+過(guò)程調(diào)用第五十三頁(yè),共七十頁(yè),2022年,8月28日結(jié)構(gòu)化程序設(shè)計(jì)的基本過(guò)程軟件開(kāi)發(fā)的基本過(guò)程:需求分析系統(tǒng)設(shè)計(jì)系統(tǒng)實(shí)現(xiàn)系統(tǒng)測(cè)試系統(tǒng)維護(hù)當(dāng)結(jié)構(gòu)化思想貫穿于每個(gè)過(guò)程時(shí),其基本過(guò)程:分解和組裝第五十四頁(yè),共七十頁(yè),2022年,8月28日MM1M2M3M4Mn……M31M32M33分解過(guò)程組裝過(guò)程一個(gè)結(jié)構(gòu)化程序設(shè)計(jì)的例子第五十五頁(yè),共七十頁(yè),2022年,8月28日一個(gè)結(jié)構(gòu)化程序設(shè)計(jì)的例子第五十六頁(yè),共七十頁(yè),2022年,8月28日問(wèn)題創(chuàng)建一個(gè)程序顯示給定日期的月歷。
既程序提示用戶(hù)輸入年和月,然后顯示該月的日歷。第五十七頁(yè),共七十頁(yè),2022年,8月28日思考1把問(wèn)題分解為兩個(gè)子問(wèn)題:讀取用戶(hù)輸入(readInput)和打印日歷(printMonth)
在這一步,我們思考的是怎樣分解子問(wèn)題而不是用什么方法輸入數(shù)據(jù)和打印日歷,可以畫(huà)一個(gè)結(jié)構(gòu)圖把問(wèn)題的分解表達(dá)出來(lái)。打印日歷系統(tǒng)readInput子系統(tǒng)printMonth子系統(tǒng)第五十八頁(yè),共七十頁(yè),2022年,8月28日思考2
要打印一個(gè)月的日歷,應(yīng)當(dāng)知道這個(gè)月的第一天是星期幾以及該月有幾天,有了這些信息就可以打印日歷的標(biāo)題和主體了。因此,打印月歷問(wèn)題進(jìn)一步可以分解成四個(gè)子問(wèn)題:得到第一天對(duì)應(yīng)的星期(getStartDay),求得這個(gè)月的天數(shù)(getNumOfDaysInMonth),打印標(biāo)題(printMonthTitle),打印月歷主體(printMonthBody)。打印日歷系統(tǒng)readInput子系統(tǒng)printMonth子系統(tǒng)getStartDaygetNumOfDaysInMonthprintMonthTitleprintMonthBody第五十九頁(yè),共七十頁(yè),2022年,8月28日思考3怎樣知道一個(gè)月的第一天是星期幾呢?有幾種方法可以求得(如使用java中的Date和Calendar類(lèi))。我們采用另外一種方法:假設(shè)知道1800年1月1日是星期三(startDay1800=3),計(jì)算1800年1月1日和該月第一天相差的總天數(shù)(totalNumOfDays),該月第一天的星期就是(totalNumOfDays+startDay1800)%7。想要計(jì)算1800年1月1日和月歷第一天之間的總天數(shù),需要求出1800年到該年的天數(shù),并求出在該年中日歷前的天數(shù)。這兩個(gè)數(shù)相加就是totalNumOfDays。為了計(jì)算這個(gè)天數(shù)還需要知道一年和一個(gè)月的天數(shù)。算法:第六十頁(yè),共七十頁(yè),2022年,8月28日一月、三月、五月、七月、八月、十月和十二月各31天四月、六月、九月和十一月各30天二月通常有28天,但是在閏年有29天,因此一年通常有365天,閏年366天。利用下面的條件可以判定某年是否為閏年:
if((year%400==0)||((year%4==0)&&(year%100!=0)))returntrue;elsereturnfalse。我們把判斷是否是潤(rùn)年的工作也放在一個(gè)子問(wèn)題中解決(isLeapYear)。把計(jì)算總天數(shù)的工作放在子問(wèn)題getTotalNumOfDays中。第六十一頁(yè),共七十頁(yè),2022年,8月28日完整的結(jié)構(gòu)化分打印日歷系統(tǒng)readInput子系統(tǒng)printMonth子系統(tǒng)getStartDaygetNumOfDaysInMonthprintMonthTitleprintMonthBodygetTotalNumOfDaysisLeapYear第六十二頁(yè),共七十頁(yè),2022年,8月28日實(shí)驗(yàn):月歷系統(tǒng)主要方法實(shí)現(xiàn)打印日歷子程序staticvoidprintMonth(intyear,intmonth){//獲得該月的第一天是星期幾
intstartDay=getStartDay(year,month);//獲得該月共多少天
intnumOfDaysInMonth=getNumOfDaysInMonth(year,month);//打印月歷的表頭
printMonthTitle(year,month);//打印月歷的表體
printMonthBody(startDay,numOfDaysInMonth);}第六十三頁(yè),共七十頁(yè),2022年,8月28日staticintgetStartDay(intyear,intmonth){intstartDay1800=3;//先計(jì)算從1800/1/1到該月之前的總天數(shù)
longtotalNumOfDays=getTotalNumOfDays(year,month);//計(jì)算該月第一天的星期并返回該值
return(int)((totalNumOfDays+startDay1800)%7);}第六十四頁(yè),共七十頁(yè),2022年,8月28日計(jì)算總天數(shù)staticlonggetTotalNumOfDays(intyear,intmonth){longtotal=0;for(inti=1800;i<year;i++)//從1800到該年的前一年的每年循環(huán)
if(isLeapYear(i))total=total+366;//如果是閏年,則天數(shù)是366elsetotal=total+365;//否則是365for(inti=1;i<month;i++)//該年第1個(gè)月到該月的前一個(gè)月循環(huán)
total=total+getNumOfDaysInMonth(year,i);//計(jì)算每個(gè)月的天數(shù)并加到total中returntotal;//計(jì)算結(jié)果返回}第六十五頁(yè),共七十頁(yè),2022年,8月28日計(jì)算某月的天數(shù)staticintgetNumOfDaysInMonth(intyear,intmonth){if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)//大月情況
return31;if(month==4||month==6||month==9||month==11)//小月情況
return30;if(month==2)//閏月情況
if(isLeapYear(year))return29;elsereturn28;return0;}第六十六頁(yè),共七十頁(yè),2022年,8月28日判斷是否是閏月的程序staticbooleanisLeapYear(intyear){if((year%400==0)||((year%4==0)&&(year%100!=0)))returntrue;returnfalse;}第六十七頁(yè),共七十頁(yè),2022年,8月28日打印月歷體的程序staticvoidprintMonthBody(intstartDay,intnumOfDaysInMonth){int
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 南華大學(xué)船山學(xué)院《計(jì)算機(jī)倫理學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 海南省2024七年級(jí)道德與法治上冊(cè)第一單元少年有夢(mèng)第一課開(kāi)啟初中生活課后練習(xí)新人教版
- 廣西民族大學(xué)相思湖學(xué)院《計(jì)算機(jī)三維繪圖綜合實(shí)訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 音樂(lè)合唱排練安排
- 甘肅農(nóng)業(yè)大學(xué)《工程計(jì)算》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院《面部建模及動(dòng)畫(huà)》2023-2024學(xué)年第二學(xué)期期末試卷
- 鄲城二年級(jí)數(shù)學(xué)試卷
- 上海教育版地理六下第二單元2.3《海陸的變遷》聽(tīng)課評(píng)課記錄
- 英語(yǔ)閱讀文學(xué)賞析
- 綿陽(yáng)管網(wǎng)施工方案
- GB/T 18344-2016汽車(chē)維護(hù)、檢測(cè)、診斷技術(shù)規(guī)范
- 青島版科學(xué)(2017)六三制六年級(jí)下冊(cè)第2單元《生物與環(huán)境》全單元課件
- 2022-2023年人教版九年級(jí)物理上冊(cè)期末考試(真題)
- 關(guān)漢卿的生平與創(chuàng)作
- 一年級(jí)語(yǔ)文教材解讀分析ppt
- 編本八年級(jí)下全冊(cè)古詩(shī)詞原文及翻譯
- 公共政策學(xué)政策分析的理論方法和技術(shù)課件
- 裝載機(jī)教材課件
- 萬(wàn)人計(jì)劃藍(lán)色簡(jiǎn)約萬(wàn)人計(jì)劃青年拔尖人才答辯PPT模板
- 統(tǒng)編高中《思想政治》教材編寫(xiě)理念和內(nèi)容介紹
- 2022年普通高等學(xué)校招生全國(guó)統(tǒng)一考試數(shù)學(xué)試卷 新高考Ⅰ卷(含解析)
評(píng)論
0/150
提交評(píng)論