版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章計(jì)算機(jī)軟件4.1
程序設(shè)計(jì)語(yǔ)言及其翻譯系統(tǒng)4.2數(shù)據(jù)結(jié)構(gòu)4.3
算法4.4操作系統(tǒng)4.5軟件工程4.6工具軟件《計(jì)算機(jī)導(dǎo)論》
4.1.1
程序設(shè)計(jì)語(yǔ)言(PLD)
1.機(jī)器語(yǔ)言(machinelanguage)是由二進(jìn)制編碼指令構(gòu)成的語(yǔ)言,是一種依附于機(jī)器硬件的語(yǔ)言。每種處理器都有自己專(zhuān)用的機(jī)器指令集合,這些指令能夠被計(jì)算機(jī)直接執(zhí)行。處理器的設(shè)計(jì)者給每條指令指定一個(gè)二進(jìn)制編號(hào),用來(lái)表示這些指令。1952年之前,人們只能使用機(jī)器語(yǔ)言來(lái)編寫(xiě)程序。特點(diǎn):使用機(jī)器語(yǔ)言編寫(xiě)的程序,計(jì)算機(jī)能夠直接理解并執(zhí)行,但編程和理解都十分的困難。4.1
程序設(shè)計(jì)語(yǔ)言及其翻譯系統(tǒng)
4.1.1
程序設(shè)計(jì)語(yǔ)言(PLD)
2.匯編語(yǔ)言(assemblylanguage)是由助記符指令構(gòu)成的語(yǔ)言,也是一種依附于機(jī)器硬件的語(yǔ)言。使用“助記符”來(lái)表示指令的操作碼,使用存儲(chǔ)單元或寄存器的名字表示操作數(shù),以便于理解、記憶和書(shū)寫(xiě)。由匯編語(yǔ)言編寫(xiě)的程序,不能被計(jì)算機(jī)直接執(zhí)行。和機(jī)器語(yǔ)言相比,實(shí)現(xiàn)的功能相同,但指令容易記憶,程序容易編寫(xiě)和理解。相對(duì)于機(jī)器語(yǔ)言,匯編語(yǔ)言有一定的優(yōu)勢(shì),但仍存在許多不足,如:助記符對(duì)一般人來(lái)說(shuō)是比較難記憶的,且要求編程人員對(duì)計(jì)算機(jī)的硬件結(jié)構(gòu)有比較深入的了解。
4.1.1
程序設(shè)計(jì)語(yǔ)言(PLD)
3.高級(jí)語(yǔ)言(highlevellanguage)是一種與機(jī)器的指令系統(tǒng)無(wú)關(guān)、表達(dá)形式更接近于被描述的問(wèn)題的程序設(shè)計(jì)語(yǔ)言。高級(jí)語(yǔ)言中的語(yǔ)句用英文和數(shù)學(xué)公式表示,更容易被編程人員理解和掌握。使用高級(jí)語(yǔ)言編寫(xiě)的程序稱(chēng)為高級(jí)語(yǔ)言源程序,它必須經(jīng)過(guò)高級(jí)程序設(shè)計(jì)語(yǔ)言翻譯系統(tǒng)的處理后才能被計(jì)算機(jī)理解和執(zhí)行。翻譯程序有兩種模式:編譯程序模式:先把高級(jí)語(yǔ)言的源程序翻譯成目標(biāo)程序,然后執(zhí)行目標(biāo)程序。解釋程序模式:不需要把高級(jí)語(yǔ)言的源程序翻譯成目標(biāo)程序,而是邊翻譯邊執(zhí)行。1.程序設(shè)計(jì)
程序設(shè)計(jì):是一個(gè)使用程序設(shè)計(jì)語(yǔ)言產(chǎn)生一系列的指令以告訴計(jì)算機(jī)該做什么的過(guò)程。廣義的程序設(shè)計(jì):
需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼測(cè)試運(yùn)行與維護(hù)4.1.2結(jié)構(gòu)化程序設(shè)計(jì)2.結(jié)構(gòu)化程序設(shè)計(jì)
采用自頂向下、逐步求精的設(shè)計(jì)方法(先全局后局部、先整體后細(xì)節(jié)、先抽象后具體)和單入口、單出口的控制成分(順序、分支和循環(huán))。TFTFAAB(a)順序結(jié)構(gòu)(b)選擇分支結(jié)構(gòu)(c)循環(huán)結(jié)構(gòu)AB4.1.2結(jié)構(gòu)化程序設(shè)計(jì)條件條件3.結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言
Pascal語(yǔ)言:是第一個(gè)結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,是1971年尼克萊斯·沃思研發(fā)的。C語(yǔ)言:最初是為編寫(xiě)UNIX操作系統(tǒng)而研發(fā)的,但由于其強(qiáng)大的功能和各方面的優(yōu)點(diǎn)而得以迅速傳播,成為當(dāng)代最優(yōu)秀的程序設(shè)計(jì)語(yǔ)言之一。目前,在微型計(jì)算機(jī)上廣泛應(yīng)用的版本有:TurboC、MSC、QuickC、C++、C#、VisualC++、VisualC++.net等。4.1.2結(jié)構(gòu)化程序設(shè)計(jì)1.面向?qū)ο蟪绦蛟O(shè)計(jì)
結(jié)構(gòu)化程序設(shè)計(jì):“數(shù)據(jù)結(jié)構(gòu)+算法”的面向過(guò)程的程序設(shè)計(jì)方法面向?qū)ο蟪绦蛟O(shè)計(jì):“對(duì)象+消息”的面向?qū)ο蟮某绦蛟O(shè)計(jì)方法結(jié)構(gòu)化程序設(shè)計(jì)強(qiáng)調(diào)了要實(shí)現(xiàn)功能的操作方法(模塊),而被操作的數(shù)據(jù)(變量)處于實(shí)現(xiàn)功能的從屬地位,即:程序模塊和數(shù)據(jù)結(jié)構(gòu)是松散地耦合在一起。面向?qū)ο蟮姆椒ú辉賹?wèn)題分解為過(guò)程,而是將分解為對(duì)象,對(duì)象將自己的屬性和方法封裝成一個(gè)整體,對(duì)象之間的相互作用通過(guò)消息傳遞來(lái)實(shí)現(xiàn)。4.1.3面向?qū)ο蟪绦蛟O(shè)計(jì)2.面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言
C++語(yǔ)言:是以C語(yǔ)言為基礎(chǔ)的支持?jǐn)?shù)據(jù)抽象和面向?qū)ο箫L(fēng)范的通用程序設(shè)計(jì)語(yǔ)言。它支持?jǐn)?shù)據(jù)的封裝、類(lèi)的繼承和函數(shù)的多態(tài),故提高了程序的可擴(kuò)展性和可重用性,進(jìn)而提高了軟件開(kāi)發(fā)的效率。Java語(yǔ)言:是由SunMicrosystems公司于1995年5月推出的一個(gè)支持網(wǎng)絡(luò)計(jì)算的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言。它吸收了C++語(yǔ)言的優(yōu)點(diǎn),并增加了并發(fā)程序設(shè)計(jì)、網(wǎng)絡(luò)通信和多媒體數(shù)據(jù)控制等特性。4.1.3面向?qū)ο蟪绦蛟O(shè)計(jì)可視化(Visual)技術(shù),是以圖形化的編程方式將面向?qū)ο蠹夹g(shù)的特性體現(xiàn)出來(lái),通過(guò)用鼠標(biāo)拖曳圖形化的控件就可以完成Windows風(fēng)格界面的設(shè)計(jì)工作??梢暬绦蛟O(shè)計(jì),大大減輕了程序設(shè)計(jì)人員的編程工作量,使得開(kāi)發(fā)軟件這一原本枯燥、難以理解的工作變得相對(duì)輕松快捷??梢暬绦蛟O(shè)計(jì)語(yǔ)言:VisualBasic、
VisualFoxpro、
Visualc++、
VisualC++.net、C++Builder4.1.4可視化程序設(shè)計(jì)
4.1.5
良好的程序設(shè)計(jì)風(fēng)格
標(biāo)識(shí)符:按意命名、保留字用大寫(xiě)字母、使用統(tǒng)一的縮寫(xiě)規(guī)則。表達(dá)式:使用括號(hào)、使用庫(kù)函數(shù)、條件化簡(jiǎn)、函數(shù)與過(guò)程模塊化:模塊的獨(dú)立性(高內(nèi)聚、低耦合)、模塊的規(guī)模適中。程序行的排列格式:排列格式美觀、層次分明、使用統(tǒng)一的縮進(jìn)格式,同一嵌套深度并列的語(yǔ)句對(duì)齊。注釋?zhuān)禾砑颖匾淖⑨專(zhuān)哉f(shuō)明程序、過(guò)程和語(yǔ)句等的功能及注意事項(xiàng)。4.1.6
程序設(shè)計(jì)語(yǔ)言翻譯系統(tǒng)
計(jì)算機(jī)硬件只能識(shí)別并執(zhí)行機(jī)器指令,但人們普遍習(xí)慣于使用高級(jí)語(yǔ)言或匯編語(yǔ)言來(lái)編寫(xiě)程序。為了讓計(jì)算機(jī)能夠理解并執(zhí)行用高級(jí)語(yǔ)言或匯編語(yǔ)言編寫(xiě)的程序,必須要為它配備一個(gè)“翻譯”,這就是所謂的程序設(shè)計(jì)語(yǔ)言翻譯系統(tǒng)。程序設(shè)計(jì)語(yǔ)言翻譯系統(tǒng)是一類(lèi)系統(tǒng)軟件,它能夠?qū)⑹褂媚骋环N源語(yǔ)言編寫(xiě)的程序翻譯成為與其等價(jià)的使用另一種目標(biāo)語(yǔ)言編寫(xiě)的程序。使用源語(yǔ)言編寫(xiě)的程序稱(chēng)為源程序,使用目標(biāo)語(yǔ)言編寫(xiě)的程序稱(chēng)為目標(biāo)程序。源程序是程序設(shè)計(jì)語(yǔ)言翻譯系統(tǒng)加工的“原材料”,而目標(biāo)程序則是程序設(shè)計(jì)語(yǔ)言翻譯系統(tǒng)加工的“最終產(chǎn)品”。程序設(shè)計(jì)語(yǔ)言翻譯系統(tǒng)大致上可以分成三類(lèi):匯編語(yǔ)言翻譯系統(tǒng)、高級(jí)程序設(shè)計(jì)語(yǔ)言編譯系統(tǒng)和高級(jí)程序設(shè)計(jì)語(yǔ)言解釋系統(tǒng)。這些翻譯系統(tǒng)之間的不同之處主要體現(xiàn)在它們生成計(jì)算機(jī)可以執(zhí)行的機(jī)器語(yǔ)言的過(guò)程中。4.1.6
程序設(shè)計(jì)語(yǔ)言翻譯系統(tǒng)
一、
匯編語(yǔ)言翻譯系統(tǒng)
匯編語(yǔ)言翻譯系統(tǒng)的主要功能是將用匯編語(yǔ)言書(shū)寫(xiě)的程序翻譯成用二進(jìn)制碼表示的等價(jià)的機(jī)器語(yǔ)言,形成計(jì)算機(jī)可以執(zhí)行的機(jī)器指令代碼。匯編程序的具體翻譯工作有如下幾步:(1)用機(jī)器操作碼代替符號(hào)化的操作符;(2)用數(shù)值地址代替符號(hào)名字;(3)將常數(shù)翻譯為機(jī)器的內(nèi)部表示;(4)
分配指令和數(shù)據(jù)的存儲(chǔ)單元。匯編程序翻譯器示意圖匯編源程序二進(jìn)制機(jī)器語(yǔ)言程序匯編程序翻譯器輸入
輸出一、
匯編語(yǔ)言翻譯系統(tǒng)
二、高級(jí)程序設(shè)計(jì)語(yǔ)言翻譯系統(tǒng)1.什么是程序設(shè)計(jì)語(yǔ)言翻譯系統(tǒng) 將高級(jí)語(yǔ)言書(shū)寫(xiě)的源程序翻譯成等價(jià)的機(jī)器語(yǔ)言程序或匯編程序的處理系統(tǒng),也稱(chēng)為編譯程序。以高級(jí)語(yǔ)言書(shū)寫(xiě)的程序作為輸入,以機(jī)器語(yǔ)言或匯編語(yǔ)言表示的程序作為輸出。2.編譯程序的結(jié)構(gòu)可以把編譯程序比喻成一個(gè)“信息加工流水線”?!霸床牧稀笔窃闯绦?,“最終產(chǎn)品”是目標(biāo)程序。每一道“工序”以上一道工序得到的半成品作為輸入,輸出作為下一道“工序”的輸入,直到最后得到“最終產(chǎn)品”-目標(biāo)程序。用C語(yǔ)言編寫(xiě)的源程序
#include<stdio.h>main(){ inti,num; floatsum; printf("Enternumbers:\n"); sum=0; for(i=0;i<10;i++)
{ scanf("%d",&num); sum=sum+num;
}
printf("sum=%3.1f\n",sum); printf(“Average=%3.1f\n“,sum/10.0);}
編譯程序結(jié)構(gòu)圖
目標(biāo)程序優(yōu)化后的中間代碼
源程序
詞法分析
中間代碼生成
目標(biāo)代碼生成
語(yǔ)法分析
優(yōu)化
出錯(cuò)處理表格
管理單詞語(yǔ)法單位中間代碼
三、高級(jí)程序設(shè)計(jì)語(yǔ)言解釋系統(tǒng)
高級(jí)程序設(shè)計(jì)語(yǔ)言解釋系統(tǒng)是按照源程序中的語(yǔ)句的動(dòng)態(tài)順序逐條翻譯并立即執(zhí)行相應(yīng)功能的處理系統(tǒng)。源程序解釋系統(tǒng)(逐句解釋、執(zhí)行)
結(jié)果源程序解釋器原始數(shù)據(jù)
4.2
數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù):描述客觀事物的數(shù)、字符以及所有能輸入到計(jì)算機(jī)并被計(jì)算機(jī)程序處理的符號(hào)的集合,如數(shù)值、字符、圖形、圖像、聲音等。數(shù)據(jù)結(jié)構(gòu):帶有結(jié)構(gòu)的數(shù)據(jù)元素的集合,結(jié)構(gòu)反映了數(shù)據(jù)元素相互之間存在的某種聯(lián)系。從學(xué)科的角度看,數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)科學(xué)技術(shù)的一個(gè)分支,它主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)以及它們之間的關(guān)系,并對(duì)這種結(jié)構(gòu)定義相應(yīng)的運(yùn)算,設(shè)計(jì)出實(shí)現(xiàn)這些運(yùn)算的算法。4.2.1
什么是數(shù)據(jù)結(jié)構(gòu)1.線性表
線性表:是n個(gè)數(shù)據(jù)元素的有限序列。線性表的運(yùn)算:設(shè)L為一個(gè)線性表置空表SETNULL(L)求表的長(zhǎng)度LENGTH(L)取表元素GET(L,i)在表中查找特定元素LOCATE(L,x)插入新元素INSERT(L,i,b)刪除表元素DELETE(L,i)線性表的存儲(chǔ)結(jié)構(gòu):順序存儲(chǔ)結(jié)構(gòu):地址連續(xù)鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu):地址不一定連續(xù)4.2.2
幾種典型的數(shù)據(jù)結(jié)構(gòu)2.堆棧
堆棧(stack):是一種受限的線性表,即只能在表的一端(表尾)進(jìn)行插入和刪除操作。進(jìn)棧和退棧操作按“后進(jìn)先出”(LastInFirstOut,LIFO)的原則進(jìn)行。堆棧的運(yùn)算:設(shè)S為一個(gè)堆棧置空棧SETNULL(S)進(jìn)棧PUSH(S,x)退棧POP(S)取棧頂元素TOP(S)判斷堆棧是否為空EMPTY(S)堆棧的存儲(chǔ)結(jié)構(gòu):順序存儲(chǔ)結(jié)構(gòu)4.2.2
幾種典型的數(shù)據(jù)結(jié)構(gòu)3.隊(duì)列
隊(duì)列(queue):也是一種受限的線性表,只能在表的一端(隊(duì)尾)進(jìn)行插入,在表的另一端(隊(duì)首)進(jìn)行刪除操作。進(jìn)、出隊(duì)列操作按“先進(jìn)先出”(FirstInFirstOut,F(xiàn)IFO)的原則進(jìn)行。隊(duì)列的運(yùn)算:設(shè)Q為一個(gè)隊(duì)列置空隊(duì)列SETNULL(Q)進(jìn)入隊(duì)列ADDQUEUE(Q,x)退出隊(duì)列DELQUEUE(Q)取隊(duì)首元素FRONTQUE(Q)判斷隊(duì)列是否為空EMPTY(Q)隊(duì)列的存儲(chǔ)結(jié)構(gòu):鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),一個(gè)鏈隊(duì)列需要設(shè)置隊(duì)首指針和隊(duì)尾指針。 4.2.2
幾種典型的數(shù)據(jù)結(jié)構(gòu)
4.3
算法4.3.1解題步驟當(dāng)使用計(jì)算機(jī)解決一些比較簡(jiǎn)單的實(shí)際問(wèn)題時(shí),可以按照右邊的步驟進(jìn)行。而對(duì)于一些大型軟件系統(tǒng)的開(kāi)發(fā),則需要運(yùn)用軟件工程的思想和方法來(lái)進(jìn)行。
4.3.2
什么是算法算法:是由一系列規(guī)則組成的過(guò)程,這些規(guī)則確定了一個(gè)操作的順序,以便能在有限步驟內(nèi)得到特定問(wèn)題的解。算法的性質(zhì):確定性通用性有限性算法的描述工具:自然語(yǔ)言流程圖決策表算法描述語(yǔ)言歐幾里德算法(Euclid’sAlgorithm)例:若給定兩個(gè)正整數(shù)m和n,試寫(xiě)出求它們的最大公因子的算法。該算法的步驟用文字表述如下: 第1步:讀入兩個(gè)正整數(shù)m和n(設(shè)m>n)。 第2步:求m和n的余數(shù)r=mod(m,n)。 第3步:用n的值取代m,用r的值取代n。 第4步:判別r的值是否為零,如果r=0,則m為最大公因子;否則返回第2步。 第5步:輸出m的值,即為最大公因子。
流程圖的規(guī)定符號(hào):起止端點(diǎn)數(shù)據(jù)輸入輸出處理?xiàng)l件判斷
流程圖的基本結(jié)構(gòu)ABABSSA1A2AnPPPP=1P=2P=nFFFFFFTTTTTT順序型選擇型先判定型循環(huán)后判定型循環(huán)多情況選擇型歐幾里德算法(流程圖表示)m=nBEGINREADm,nr=mod(m,n)n=rWRITEmr≠0ENDYN
歐幾里德算法(算法描述語(yǔ)言表示)PROCEDUREEuclid;
BEGINREAD(m,n);REPEAT;r:=MOD(m,n);m:=nn:=r;UNTILr=0; WRITE(m)
END4.3.3
算法評(píng)價(jià)1.算法的時(shí)間特性算法的時(shí)間特性是指依據(jù)算法編制成程序后,在計(jì)算機(jī)中運(yùn)行時(shí)所耗費(fèi)時(shí)間的大小。2.算法的空間特性算法的空間特性是指程序在計(jì)算機(jī)中運(yùn)行時(shí)所占用的空間的大小。3.算法的易理解性算法的易理解性是衡量一個(gè)算法優(yōu)劣的重要指標(biāo)。具有良好的結(jié)構(gòu)、易理解、易維護(hù)和易測(cè)試的算法是追求的目標(biāo)。
4.4
操作系統(tǒng)4.4.1
什么是操作系統(tǒng)操作系統(tǒng)(OperatingSystem,OS)是用來(lái)管理計(jì)算機(jī)系統(tǒng)的軟硬件資源、提高計(jì)算機(jī)系統(tǒng)資源的使用效率、方便用戶使用的程序集合,是人-機(jī)交互的接口。它是對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行自動(dòng)管理的控制中心。操作系統(tǒng)是計(jì)算機(jī)硬件(裸機(jī))的直接外層,它對(duì)硬件的功能進(jìn)行首次擴(kuò)充。同時(shí)操作系統(tǒng)又是其他軟件運(yùn)行的基礎(chǔ)。為了讓操作系統(tǒng)進(jìn)行工作,首先要將它從外存儲(chǔ)器裝入主存儲(chǔ)器。這一安裝過(guò)程稱(chēng)為引導(dǎo)系統(tǒng)。安裝完畢后,操作系統(tǒng)中的管理程序部分將保持在主存儲(chǔ)器中,稱(chēng)其為駐留程序。其他部分在需要時(shí)再自動(dòng)地從外存儲(chǔ)器調(diào)入主存儲(chǔ)器中,這些程序稱(chēng)為臨時(shí)程序。
4.4.2
操作系統(tǒng)的功能
1、資源管理功能從資源管理的角度來(lái)看,操作系統(tǒng)的功能主要有以下4個(gè)方面。(1)處理機(jī)管理操作系統(tǒng)的重要任務(wù)是控制程序的執(zhí)行,它負(fù)責(zé)對(duì)系統(tǒng)中各個(gè)處理機(jī)及其狀態(tài)進(jìn)行登記,管理各程序?qū)μ幚頇C(jī)的要求,按照一定的策略將系統(tǒng)中的各個(gè)處理機(jī)分配給申請(qǐng)的用戶作業(yè)(進(jìn)程)。(2)存儲(chǔ)器管理按照一定的策略為用戶作業(yè)分配存儲(chǔ)空間,記錄主存儲(chǔ)器使用情況,并對(duì)主存儲(chǔ)器中的信息提供保護(hù),作業(yè)結(jié)束后占用的內(nèi)存單元收回以便其他程序使用。(3)輸入/輸出設(shè)備管理由于輸入/輸出設(shè)備的速度遠(yuǎn)遠(yuǎn)低于CPU,操作系統(tǒng)應(yīng)對(duì)設(shè)備的輸入/輸出性能有很清晰的分類(lèi),以便當(dāng)外部有輸入/輸出要求時(shí)能及時(shí)地響應(yīng)。操作系統(tǒng)記錄系統(tǒng)中各個(gè)輸入/輸出設(shè)備的狀態(tài),按照各個(gè)設(shè)備的不同特點(diǎn)采取不同的策略分配和回收外部設(shè)備以及控制外部設(shè)備按用戶程序的要求進(jìn)行操作。1、資源管理功能35(4)文件管理操作系統(tǒng)的文件管理功能是對(duì)存放在計(jì)算機(jī)中的信息進(jìn)行邏輯組織和物理組織、維護(hù)文件目錄的結(jié)構(gòu)以及實(shí)現(xiàn)對(duì)文件的各種操作。有了文件管理,用戶可以按文件名存取數(shù)據(jù)而不必了解這些數(shù)據(jù)的確切物理位置。1、資源管理功能2、人機(jī)交互功能人機(jī)交互功能主要靠可以進(jìn)行輸入/輸出的外部設(shè)備和相應(yīng)的軟件來(lái)完成。軟件主要作用是控制有關(guān)設(shè)備的運(yùn)行,理解并執(zhí)行通過(guò)人機(jī)交互界面?zhèn)鱽?lái)的各種命令和要求。早期廣泛使用并沿用至今的人機(jī)交互設(shè)備有鍵盤(pán)輸入設(shè)備和顯示器等,近年來(lái)語(yǔ)音輸入設(shè)備、文字讀入設(shè)備、圖形圖象掃描輸入設(shè)備等的使用也越來(lái)越普遍,使得計(jì)算機(jī)系統(tǒng)人機(jī)交互功能越來(lái)越強(qiáng)。
4.4.2
操作系統(tǒng)的功能
4.4.3
操作系統(tǒng)的分類(lèi)
操作系統(tǒng)也有許多不同的分類(lèi)方法:按計(jì)算機(jī)硬件的規(guī)模分:大型機(jī)操作系統(tǒng)、小型機(jī)操作系統(tǒng)和微型機(jī)操作系統(tǒng)。按操作系統(tǒng)的性能分:多道批處理操作系統(tǒng)、分時(shí)操作系統(tǒng)、實(shí)時(shí)操作系統(tǒng)和網(wǎng)絡(luò)操作系統(tǒng)。1、多道批處理操作系統(tǒng)多道程序設(shè)計(jì)是指在主存儲(chǔ)器中存放多道用戶的作業(yè),使其按照一定的策略插空在CPU上運(yùn)行,共享CPU和輸入輸出設(shè)備等系統(tǒng)資源。多道批處理操作系統(tǒng)負(fù)責(zé)把用戶作業(yè)成批地接收進(jìn)外存儲(chǔ)器,形成作業(yè)隊(duì)列,然后按一定的策略將作業(yè)隊(duì)列中的用戶作業(yè)調(diào)入主存儲(chǔ)器,并使得這些作業(yè)按其優(yōu)先級(jí)輪流占用CPU和外部設(shè)備等系統(tǒng)資源。宏觀上,計(jì)算機(jī)中有多個(gè)作業(yè)在運(yùn)行;微觀上,對(duì)于單CPU計(jì)算機(jī)而言,在某一個(gè)瞬間只有一道作業(yè)在CPU上運(yùn)行。2、分時(shí)操作系統(tǒng)分時(shí)是指多個(gè)用戶終端共享使用一臺(tái)計(jì)算機(jī),即把計(jì)算機(jī)系統(tǒng)的CPU時(shí)間分割成一個(gè)個(gè)小的時(shí)間段(稱(chēng)其為一個(gè)時(shí)間片),從而將CPU的工作時(shí)間分別提供給各個(gè)用戶終端。分時(shí)操作系統(tǒng)設(shè)計(jì)的主要目標(biāo)是提高對(duì)用戶響應(yīng)的及時(shí)性。它一般適用于帶有多個(gè)終端的小型機(jī)。
4.4.3
操作系統(tǒng)的分類(lèi)
403、實(shí)時(shí)操作系統(tǒng)在計(jì)算機(jī)應(yīng)用于過(guò)程控制系統(tǒng)時(shí),通常要求計(jì)算機(jī)能夠?qū)ν獠渴录鞒黾皶r(shí)的響應(yīng)并對(duì)其進(jìn)行處理,這樣的系統(tǒng)稱(chēng)為實(shí)時(shí)系統(tǒng)。實(shí)時(shí)操作系統(tǒng)強(qiáng)調(diào)對(duì)外部事件響應(yīng)的及時(shí)性和快捷性及系統(tǒng)的可靠性。
4.4.3
操作系統(tǒng)的分類(lèi)
4、網(wǎng)絡(luò)操作系統(tǒng)網(wǎng)絡(luò)操作系統(tǒng)是使網(wǎng)絡(luò)上的計(jì)算機(jī)能夠方便有效地共享網(wǎng)絡(luò)資源,為網(wǎng)絡(luò)用戶提供各種服務(wù)隊(duì)尾軟件和有關(guān)協(xié)議的集合。網(wǎng)絡(luò)操作系統(tǒng)除了應(yīng)具有通常操作系統(tǒng)所具有的功能之外,還應(yīng)該能夠提供高效、可靠的網(wǎng)絡(luò)通信以及多種網(wǎng)絡(luò)服務(wù)功能。網(wǎng)絡(luò)通信將按照網(wǎng)絡(luò)協(xié)議來(lái)進(jìn)行。網(wǎng)絡(luò)服務(wù)包括文件傳輸、遠(yuǎn)程登錄、電子郵件、信息檢索等。
4.4.4幾種常用的操作系統(tǒng)
1、MS-DOSMS-DOS是Microsoft磁盤(pán)操作系統(tǒng)(MicrosoftDiskOperatingSystem)的簡(jiǎn)稱(chēng),是一個(gè)單用戶單任務(wù)的操作系統(tǒng)。MS-DOS的功能有以下三個(gè)方面:(1)磁盤(pán)文件管理(2)輸入輸出管理(3)
命令處理命令處理(COMMAND.COM)文件管理模塊(MSDOS.SYS)輸入/輸出管理模塊(IO.SYS)引導(dǎo)程序(Boot)磁盤(pán)文件核心程序外部命令+MS-DOS的構(gòu)成MS-DOS由引導(dǎo)程序?qū)⑾到y(tǒng)裝入主存儲(chǔ)器。啟動(dòng)計(jì)算機(jī)后引導(dǎo)程序檢查驅(qū)動(dòng)器A或C中是否有裝有系統(tǒng)文件MSDOS.SYS和IO.SYS的系統(tǒng)盤(pán)。如果有,則將MS-DOS引導(dǎo)入主存儲(chǔ)器;否則,將顯示出錯(cuò)信息。MS-DOS內(nèi)部命令的一般格式是:〈命令動(dòng)詞〉[〈參數(shù)〉]MS-DOS外部命令的一般格式是:[<驅(qū)動(dòng)器名>][<路徑名>]<命令動(dòng)詞>[<參數(shù)>]1.MS-DOS2.Windows
Windows是由Microsoft公司開(kāi)發(fā)的一系列基于圖形界面的單用戶多任務(wù)操作系統(tǒng),又稱(chēng)為視窗操作系統(tǒng)。在計(jì)算機(jī)與用戶之間打開(kāi)了一個(gè)窗口,用戶通過(guò)這個(gè)窗口直接管理、使用和控制計(jì)算機(jī)。Windows2000/xp是目前個(gè)人計(jì)算機(jī)中使用最為廣泛的操作系統(tǒng)之一。Windows版本操作系統(tǒng)名稱(chēng)發(fā)布日期類(lèi)型Windows1.01983.10桌面操作系統(tǒng)Windows2.01987.10桌面操作系統(tǒng)Windows3.01990.5桌面操作系統(tǒng)Windows3.11992.4桌面操作系統(tǒng)WindowsNTworkstation3.51994.7桌面操作系統(tǒng)WindowsNT3.5x1994.9服務(wù)器操作系統(tǒng)Windows951995.8桌面操作系統(tǒng)2.Windows
WindowsNTworkstation4.x1996.7桌面操作系統(tǒng)WindowsNTSERVER4.01996.9服務(wù)器操作系統(tǒng)Windows981998.6桌面操作系統(tǒng)Windows20002000.2桌面操作系統(tǒng)Windows2000Server2000.2服務(wù)器操作系統(tǒng)WindowsXP2001.10桌面操作系統(tǒng)Windows72009.10桌面操作系統(tǒng)Windows版本2.Windows
3.Unix
Unix操作系統(tǒng)是20世紀(jì)60年代末由美國(guó)的電話電報(bào)公司(AT&T)貝爾(Bell)實(shí)驗(yàn)室的計(jì)算機(jī)科學(xué)家K.Thompson和D.M.Ritchie等研制的。由于上述兩位學(xué)者對(duì)Unix操作系統(tǒng)的卓越貢獻(xiàn),獲得了1983年的圖靈獎(jiǎng)。
Unix是一個(gè)多用戶多任務(wù)的分時(shí)操作系統(tǒng),系統(tǒng)本身采用C語(yǔ)言編寫(xiě)。Unix操作系統(tǒng)具有結(jié)構(gòu)緊湊、功能強(qiáng)、效率高、使用方便和可移植性好等優(yōu)點(diǎn),被國(guó)際上公認(rèn)為是一個(gè)十分成功的通用操作系統(tǒng)。4.LinuxLinux是由芬蘭赫爾辛基大學(xué)的學(xué)生LinusTorvalds在1991年開(kāi)發(fā)。
Linux是一個(gè)多用戶多任務(wù)的分時(shí)操作系統(tǒng)。Linux的開(kāi)發(fā)及其源代碼完全免費(fèi)的。但是這并不意味著Linux和它的一些周邊軟件發(fā)行版本也是免費(fèi)的。Linux有著廣泛的用途,包括網(wǎng)絡(luò)應(yīng)用、軟件開(kāi)發(fā)、建立用戶平臺(tái)等?,F(xiàn)在主要流行的版本有:RedHatLinux、TurboLinux及我國(guó)自己開(kāi)發(fā)的紅旗Linux、藍(lán)點(diǎn)Linux等。5.MacOSApple公司為它的計(jì)算機(jī)設(shè)計(jì)的操作系統(tǒng)大多稱(chēng)為MacOS。MacOS是最早利用圖形用戶界面的操作系統(tǒng),它具有很強(qiáng)的圖形處理能力,被廣泛地用在桌面出版和多媒體應(yīng)用等領(lǐng)域。由于MacOS在中國(guó)不普及,加上它以往的MacOS又和Windows操作系統(tǒng)缺乏兼容性,因而它的使用受到了限制。但它在北美和西歐占有不小份額。Apple公司推出的新一代操作系統(tǒng)MacOS
X是一個(gè)獨(dú)立開(kāi)發(fā)的全新操作系統(tǒng)。
MacOSX的用戶界面圖4-8
一、為什么提出軟件工程
從20世紀(jì)40年代開(kāi)始到軟件工程術(shù)語(yǔ)提出為止的20多年時(shí)間里,對(duì)軟件開(kāi)發(fā)的理解就是編程序,那時(shí)的編程有以下特點(diǎn):軟件規(guī)模相對(duì)較小,人們關(guān)心的是計(jì)算機(jī)硬件的發(fā)展。作為一個(gè)計(jì)算機(jī)專(zhuān)業(yè)人員,他必須懂得計(jì)算機(jī)的結(jié)構(gòu)。作為一個(gè)機(jī)構(gòu),其大量資金也是用于計(jì)算機(jī)硬件開(kāi)銷(xiāo)上,軟件只是作為展現(xiàn)其硬件性能的一種手段而投入的少量資金。編程僅作為一門(mén)技藝,大部分軟件技術(shù)人員不太關(guān)心他人的工作,決定軟件質(zhì)量的惟一因素就是該編程人員的素質(zhì)。缺少有效方法與軟件工具的支持。4.5
軟件工程4.5.1
軟件工程的概念由于重視個(gè)人技能,軟件開(kāi)發(fā)過(guò)程能見(jiàn)度低,許多管理人員不知道他們的軟件技術(shù)人員工作究竟做得如何。由于人們重視個(gè)人技能,一旦需要做某些修改,就要原編程人員進(jìn)行修改。這使得軟件開(kāi)發(fā)后的維護(hù)工作很難進(jìn)行。
20世紀(jì)60年代,國(guó)外在開(kāi)發(fā)一些大型軟件系統(tǒng)時(shí),遇到了許多困難:有些系統(tǒng)最終徹底失敗了;有些系統(tǒng)雖然完成了,但比原定計(jì)劃推遲了好幾年,而且費(fèi)用大大超過(guò)了預(yù)算;有些系統(tǒng)未能圓滿地符合用戶當(dāng)初的期望;有些系統(tǒng)則無(wú)法進(jìn)行修改維護(hù)。
一、為什么提出軟件工程
這是由于大型軟件系統(tǒng)大大增加了軟件復(fù)雜性,軟件規(guī)模的增加使技術(shù)復(fù)雜性和管理復(fù)雜性呈指數(shù)上升。20世紀(jì)60年代末期所發(fā)生的軟件危機(jī),體現(xiàn)在軟件可靠性沒(méi)有保障、軟件維護(hù)費(fèi)用不斷上升、進(jìn)度無(wú)法預(yù)測(cè)、成本增長(zhǎng)無(wú)法控制、程序人員無(wú)限度地增加等各個(gè)方面,以致形成人們難以控制軟件開(kāi)發(fā)的局面。軟件開(kāi)發(fā)工程化的概念和方法應(yīng)運(yùn)而生。
一、為什么提出軟件工程
二、什么是軟件工程
軟件工程的定義:軟件工程是研究和應(yīng)用如何以系統(tǒng)性的、規(guī)范化的、可定量的過(guò)程化方法去開(kāi)發(fā)和維護(hù)軟件,以及如何把經(jīng)過(guò)時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來(lái)。軟件工程的內(nèi)涵:是應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,借鑒傳統(tǒng)工程的原則、方法來(lái)創(chuàng)建軟件,從而達(dá)到提高質(zhì)量、降低成本的目的。其中計(jì)算機(jī)科學(xué)和數(shù)學(xué)用于構(gòu)造模型、分析算法,工程科學(xué)用于制定規(guī)范、明確樣例、評(píng)估成本、確定權(quán)衡,管理科學(xué)用于進(jìn)度、資源、質(zhì)量、成本等的管理。
軟件工程的目標(biāo):研制開(kāi)發(fā)與生產(chǎn)出具有良好的軟件質(zhì)量和費(fèi)用合理的產(chǎn)品。費(fèi)用合理是指軟件開(kāi)發(fā)運(yùn)行的整個(gè)開(kāi)銷(xiāo)能滿足用戶要求的程度。軟件質(zhì)量是指該軟件能滿足明確的和隱含的需求能力的有關(guān)特征和特性的總和,可用功能性、可靠性、易使用性、有效性、可維護(hù)性和易移植性6個(gè)特性來(lái)評(píng)價(jià)。
二、什么是軟件工程
三、軟件生存周期
“軟件”的定義: 軟件是程序以及開(kāi)發(fā)、使用和維護(hù)程序所需的所有文檔和數(shù)據(jù),亦即“軟件=程序+數(shù)據(jù)+文檔”?!败浖嬷芷凇备拍睿?是一個(gè)從用戶需求開(kāi)始,經(jīng)過(guò)開(kāi)發(fā)、交付使用,在使用中不斷地增補(bǔ)修訂,直至讓位于新的軟件的全過(guò)程,是指軟件產(chǎn)品從考慮其概念開(kāi)始,到該軟件產(chǎn)品不再能使用為止的整個(gè)時(shí)期。一般包括:概念階段、需求階段、設(shè)計(jì)階段、實(shí)現(xiàn)階段、測(cè)試階段、安裝階段以及交付使用階段、運(yùn)行階段和維護(hù)階段。從經(jīng)濟(jì)學(xué)的意義上來(lái)說(shuō),考慮到軟件的龐大的維護(hù)費(fèi)用遠(yuǎn)比軟件開(kāi)發(fā)費(fèi)用要高,因而開(kāi)發(fā)軟件不能只考慮開(kāi)發(fā)期間的費(fèi)用,而且應(yīng)考慮軟件生存期的全部費(fèi)用。因此,軟件生存期的概念就變得特別重要。4.5.2
軟件開(kāi)發(fā)模型“軟件開(kāi)發(fā)模型”的定義: 它是在軟件生存周期基礎(chǔ)上構(gòu)造出的軟件開(kāi)發(fā)全部過(guò)程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架,又稱(chēng)為軟件生存周期模型。軟件開(kāi)發(fā)模型能清晰、直觀地表達(dá)軟件開(kāi)發(fā)全過(guò)程,明確規(guī)定了要完成的主要活動(dòng)和任務(wù),用來(lái)作為軟件項(xiàng)目開(kāi)發(fā)工作的基礎(chǔ)。一、瀑布模型
瀑布模型(WaterfallModel)是1970年WinstonRoyce提出的最早出現(xiàn)的軟件開(kāi)發(fā)模型。它將軟件開(kāi)發(fā)過(guò)程中的各項(xiàng)活動(dòng)規(guī)定為依固定順序連接的若干階段工作,形如瀑布流水,最終得到軟件系統(tǒng)或軟件產(chǎn)品。每項(xiàng)開(kāi)發(fā)活動(dòng)的特點(diǎn):從上一項(xiàng)開(kāi)發(fā)活動(dòng)接受該項(xiàng)活動(dòng)的工作對(duì)象,作為輸入。利用這一輸入,實(shí)施該項(xiàng)活動(dòng)應(yīng)完成的工作內(nèi)容。給出該項(xiàng)活動(dòng)的工作成果,作為輸出傳給下一項(xiàng)開(kāi)發(fā)活動(dòng)。對(duì)該項(xiàng)活動(dòng)的實(shí)施工作成果進(jìn)行評(píng)審。若其工作成果得到確認(rèn),則繼續(xù)進(jìn)行下一項(xiàng)開(kāi)發(fā)活動(dòng);否則返回前一項(xiàng),甚至更前項(xiàng)的活動(dòng)。
瀑布模型
計(jì)劃需求分析
設(shè)計(jì)
編碼
測(cè)試運(yùn)行維護(hù)定義階段開(kāi)發(fā)階段維護(hù)階段二、增量模型
增量模型(IncrementalModel)亦稱(chēng)有計(jì)劃的產(chǎn)品改進(jìn)型,它從一組給定的需求開(kāi)始,通過(guò)構(gòu)造一系列可執(zhí)行中間版本來(lái)實(shí)施開(kāi)發(fā)活動(dòng)。第一個(gè)中間版本納入一部分需求,下一個(gè)中間版本納入更多的需求,依此類(lèi)推,直到系統(tǒng)完成。每個(gè)中間版本都要執(zhí)行必要的過(guò)程、活動(dòng)和任務(wù)。這種模型在開(kāi)發(fā)每個(gè)中間版本時(shí),開(kāi)發(fā)過(guò)程中的活動(dòng)和任務(wù)順序地或部分平行地使用。當(dāng)相繼中間版本在部分并行開(kāi)發(fā)時(shí),開(kāi)發(fā)過(guò)程中的活動(dòng)和任務(wù)可以在各中間版本間平行地采用。
適合于用戶需求不太明確的軟件開(kāi)發(fā)。三、噴泉模型噴泉模型(FountainModel)是由B.H.Sollers和J.M.Edwards于1990年提出的一種新開(kāi)發(fā)模型。噴泉模型主要用于采用面向?qū)ο蠹夹g(shù)的軟件開(kāi)發(fā)項(xiàng)目,認(rèn)為軟件開(kāi)發(fā)過(guò)程自下而上周期的各階段是相互迭代和無(wú)間隙的特性。相互迭代是指軟件的某個(gè)部分常常被重復(fù)工作多次,相關(guān)對(duì)象在每次迭代中隨之加入漸進(jìn)的軟件成分。無(wú)間隙是指在各項(xiàng)活動(dòng)之間無(wú)明顯邊界,如分析和設(shè)計(jì)活動(dòng)之間沒(méi)有明顯的界限。由于對(duì)象概念的引入,表達(dá)分析、設(shè)計(jì)、實(shí)現(xiàn)等活動(dòng)只用對(duì)象類(lèi)和關(guān)系,從而可以較為容易地實(shí)現(xiàn)活動(dòng)的迭代和無(wú)間隙,使其開(kāi)發(fā)自然地包括復(fù)用。
四、螺旋模型螺旋模型(SpiralModel)是由TRW公司的BarryBoehm于1988年提出的,它將瀑布模型和演化模型等結(jié)合起來(lái),并且強(qiáng)調(diào)了其他模型均忽略了的風(fēng)險(xiǎn)分析。螺旋模型更適合于大型軟件的開(kāi)發(fā)。該模型將開(kāi)發(fā)劃分為制訂計(jì)劃、風(fēng)險(xiǎn)分析、實(shí)施開(kāi)發(fā)和客戶評(píng)估4類(lèi)活動(dòng)。沿著螺旋線每轉(zhuǎn)一圈,表示開(kāi)發(fā)出一個(gè)更完善的新的軟件版本。如果開(kāi)發(fā)風(fēng)險(xiǎn)過(guò)大,開(kāi)發(fā)機(jī)構(gòu)和客戶無(wú)法接受,項(xiàng)目有可能就此終止。多數(shù)情況下,會(huì)沿著螺旋線繼續(xù)下去,自內(nèi)向外逐步延伸,最終得到滿意的軟件產(chǎn)品。
五、演化模型
演化模型(EvolutionaryModel)主要針對(duì)事先不能完整定義需求的軟件項(xiàng)目開(kāi)發(fā)。許多軟件開(kāi)發(fā)項(xiàng)目由于人們對(duì)軟件需求的認(rèn)識(shí)模糊,很難一次開(kāi)發(fā)成功,返工再開(kāi)發(fā)難以避免。為此,人們對(duì)需開(kāi)發(fā)的軟件給出基本需求,作第一次試驗(yàn)開(kāi)發(fā),其目標(biāo)僅在于探索可行性和弄清需求,取得有效的反饋信息,以支持軟件的最終設(shè)計(jì)和實(shí)現(xiàn)。通常把第一次試驗(yàn)性開(kāi)發(fā)出的軟件稱(chēng)為原型(prototype)。
“丟棄型”:當(dāng)原型開(kāi)發(fā)后,已獲得了更為清晰的需求反饋信息,原型無(wú)需保留而丟棄,開(kāi)發(fā)的原型僅以演示為目的,這往往用在軟件的用戶界面的開(kāi)發(fā)上;
“樣品型”:原型規(guī)模與最終產(chǎn)品相似,只是原型僅供研究用;
“漸增式演化型”:把原型作為最終產(chǎn)品的一部分,它可滿足用戶的部分需求,經(jīng)用戶試用后提出精化系統(tǒng)、增強(qiáng)系統(tǒng)能力的需求,開(kāi)發(fā)人員根據(jù)反饋信息,實(shí)施開(kāi)發(fā)的迭代過(guò)程。
演化模型的形式
信息流(細(xì)化)R:需求D:設(shè)計(jì)C/T:編碼/測(cè)試I/AS:安裝和驗(yàn)收支持R1DC/TI/ASR2RnDDC/TC/TI/ASI/AS工作版本1工作版本2工作版本n
演化模型的例子
六、轉(zhuǎn)換模型
轉(zhuǎn)換模型是用形式化的方法自動(dòng)生成程序,主要步驟為:
采用形式化的規(guī)格說(shuō)明書(shū)。通過(guò)自動(dòng)系統(tǒng)自動(dòng)地變換成代碼。必要時(shí)做一些優(yōu)化,改進(jìn)性能。交付用戶使用。根據(jù)使用的經(jīng)驗(yàn)來(lái)調(diào)整形式化的規(guī)格說(shuō)明書(shū)。返回第一步重復(fù)整個(gè)過(guò)程。轉(zhuǎn)換模型的優(yōu)點(diǎn):解決了代碼結(jié)構(gòu)經(jīng)多次修改而變壞的問(wèn)題;減少了許多中間步驟,如設(shè)計(jì)、編碼、測(cè)試等等,是軟件自動(dòng)生產(chǎn)的有意義的嘗試。但是,轉(zhuǎn)換模型仍有較大局限。七、智能模型智能模型(IntelligentModel)也稱(chēng)為基于知識(shí)的軟件開(kāi)發(fā)模型,它是知識(shí)工程與軟件工程在開(kāi)發(fā)模型上結(jié)合的產(chǎn)物。它有別于上述的幾種開(kāi)發(fā)模型,它的維護(hù)并不在程序一級(jí)上進(jìn)行,而把精力更多集中于具體描述的表達(dá)上。具體描述可以使用形式有規(guī)約,也可以使用知識(shí)處理語(yǔ)言描述等。由于要將規(guī)則和推理機(jī)制應(yīng)用到開(kāi)發(fā)模型中,故必須建立知識(shí)庫(kù),將模型本身、軟件工程知識(shí)和特定領(lǐng)域的知識(shí)分別存入知識(shí)庫(kù),由此構(gòu)成某一領(lǐng)域的軟件開(kāi)發(fā)系統(tǒng)。智能模型獲取需求需求分析具體描述
優(yōu)化程序需求分析需求分析需求分析知識(shí)庫(kù)/專(zhuān)家系統(tǒng)
4.5.3
軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)方法有些是針對(duì)某一活動(dòng)的,屬于局部性的軟件開(kāi)發(fā)方法。但實(shí)踐表明,針對(duì)分析和設(shè)計(jì)活動(dòng)的軟件開(kāi)發(fā)方法更為重要。評(píng)價(jià)一種具體軟件開(kāi)發(fā)方法的4個(gè)特征:(1)技術(shù)特征:支持各種技術(shù)概念的方法特色(2)使用特征:用于具體開(kāi)發(fā)時(shí)的有關(guān)特色(3)管理特征:增強(qiáng)對(duì)軟件開(kāi)發(fā)活動(dòng)管理的能力方面的特色(4)經(jīng)濟(jì)特征:給軟件機(jī)構(gòu)產(chǎn)生的在質(zhì)量和生產(chǎn)力方面的可見(jiàn)效益。一、模塊化方法模塊化方法(ModularMethod)是把一個(gè)待開(kāi)發(fā)的軟件分解成若干較為簡(jiǎn)單的部分,稱(chēng)為模塊(modules),每個(gè)模塊分別獨(dú)立地開(kāi)發(fā)、測(cè)試,最后再組裝出整個(gè)軟件。把系統(tǒng)分解成模塊,應(yīng)遵循的規(guī)則:(1)在一個(gè)模塊內(nèi)部體現(xiàn)最大程度的關(guān)聯(lián),只實(shí)現(xiàn)單一功能的模塊具有這種特性。(2)最低的耦合度,即不同的模塊之間的關(guān)系盡可能弱。(3)模塊的層次不能過(guò)深,一般應(yīng)盡量控制在7層以內(nèi)。(4)接口清晰、信息隱蔽性好。(5)模塊大小適度。(6)盡量采用已有的模塊,提高模塊復(fù)用率。二、結(jié)構(gòu)化方法結(jié)構(gòu)化方法是強(qiáng)調(diào)結(jié)構(gòu)的合理性以及所開(kāi)發(fā)的軟件的結(jié)構(gòu)合理性,由此提出了一組提高軟件結(jié)構(gòu)合理性的準(zhǔn)則,如分解和抽象、模塊的獨(dú)立性、信息隱蔽等。針對(duì)不同的開(kāi)發(fā)活動(dòng),它有結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)、結(jié)構(gòu)化編程和結(jié)構(gòu)化測(cè)試。結(jié)構(gòu)化分析方法給出一組產(chǎn)生功能規(guī)約的原理和技術(shù),利用圖形表示用戶需求,以數(shù)據(jù)流圖和控制流圖為基礎(chǔ),伴以數(shù)據(jù)詞典,并配上結(jié)構(gòu)化語(yǔ)言、判定表和判定樹(shù)等手段,達(dá)到為問(wèn)題的解決建立模型。三、面向數(shù)據(jù)結(jié)構(gòu)方法
結(jié)構(gòu)化方法以分析信息流為主,用數(shù)據(jù)流圖來(lái)表示信息流。面向數(shù)據(jù)結(jié)構(gòu)方法,是從數(shù)據(jù)結(jié)構(gòu)方面分析,即分析信息結(jié)構(gòu),并用數(shù)據(jù)結(jié)構(gòu)圖來(lái)表示,再在此基礎(chǔ)上進(jìn)行需求分析,導(dǎo)出軟件的結(jié)構(gòu)。面向數(shù)據(jù)結(jié)構(gòu)的開(kāi)發(fā)方法包括分析和設(shè)計(jì)活動(dòng)。由于一些應(yīng)用領(lǐng)域的信息都有層次分明的信息結(jié)構(gòu),因此在分析活動(dòng)時(shí),可以用數(shù)據(jù)結(jié)構(gòu)來(lái)分析和表示問(wèn)題的信息域;在設(shè)計(jì)活動(dòng)時(shí),不同性質(zhì)的數(shù)據(jù)結(jié)構(gòu)可以用具有相應(yīng)控制結(jié)構(gòu)的程序來(lái)處理。面向數(shù)據(jù)結(jié)構(gòu)方法有:Warnier法、Jachson法、DSSD法等。四、面向?qū)ο蠓椒ㄔ谲浖_(kāi)發(fā)過(guò)程中把面向?qū)ο蟮乃枷脒\(yùn)用其中并指導(dǎo)開(kāi)發(fā)活動(dòng)的系統(tǒng)方法,稱(chēng)為面向?qū)ο蠓椒?ObjectOrientedMethod),簡(jiǎn)稱(chēng)OO方法。對(duì)象是由數(shù)據(jù)和容許的操作組成的封裝體,與客觀實(shí)體有直接的對(duì)應(yīng)關(guān)系。所謂面向?qū)ο缶褪腔趯?duì)象概念,以對(duì)象為中心,以類(lèi)和繼承為構(gòu)造機(jī)制,來(lái)認(rèn)識(shí)、理解、刻畫(huà)客觀世界和設(shè)計(jì)、構(gòu)建相應(yīng)的軟件系統(tǒng)。面向?qū)ο蠓治觯∣OA):從問(wèn)題陳述入手,分析和構(gòu)造所關(guān)心的現(xiàn)實(shí)世界問(wèn)題的模型,并用相應(yīng)的符號(hào)系統(tǒng)表示,明確抽象目標(biāo)系統(tǒng)必須做的事,而不是如何做。面向?qū)ο笤O(shè)計(jì)(OOD)與實(shí)現(xiàn)。由于國(guó)際上出現(xiàn)了多種面向?qū)ο蟮姆椒?,每種方法都有自己的表示法、過(guò)程和工具,甚至各種方法所使用的術(shù)語(yǔ)也不盡相同。這一現(xiàn)狀導(dǎo)致開(kāi)發(fā)人員經(jīng)常為選擇何種面向?qū)ο蠓椒ǘ鵂?zhēng)論,但是每種方法都各有短長(zhǎng),很難找到一個(gè)最佳答案。統(tǒng)一建模語(yǔ)言(UnifiedModelingLanguage,UML)的初衷是結(jié)束面向?qū)ο箢I(lǐng)域中的方法大戰(zhàn),形成了大家公認(rèn)的一套建模方法。UML的重要性:(1)可以消除一些潛在的不必要的差異,以免用戶混淆;(2)通過(guò)統(tǒng)一語(yǔ)義和符號(hào)表示,能夠穩(wěn)定面向?qū)ο蠹夹g(shù)市場(chǎng),從而可以大大拓寬所研制與開(kāi)發(fā)的軟件系統(tǒng)的適用范圍,并大大提高其靈活程度。四、面向?qū)ο蠓椒ㄎ?、軟件?fù)用和構(gòu)件技術(shù)軟件復(fù)用是指通過(guò)對(duì)已有軟件的各種有關(guān)知識(shí)來(lái)建立新的軟件,這些知識(shí)包括:領(lǐng)域知識(shí)、開(kāi)發(fā)經(jīng)驗(yàn)、設(shè)計(jì)經(jīng)驗(yàn)、設(shè)計(jì)決定、體系結(jié)構(gòu)、需求、設(shè)計(jì)、編碼、測(cè)試和文檔等。軟件復(fù)用的目的是降低軟件開(kāi)發(fā)和維護(hù)的成本,提高軟件開(kāi)發(fā)效率,提高軟件的質(zhì)量。構(gòu)件是一種可復(fù)用的一段軟件(可為二進(jìn)制形式)。軟件構(gòu)件與其他可復(fù)用軟件模塊的區(qū)別:它既能夠在設(shè)計(jì)時(shí)使用或進(jìn)行修改;也能夠在二進(jìn)制執(zhí)行模塊時(shí)使用或修改。開(kāi)發(fā)和使用可復(fù)用的構(gòu)件是從面向?qū)ο蟮募夹g(shù)發(fā)展而來(lái)的一項(xiàng)重要技術(shù),通過(guò)構(gòu)件達(dá)到全面應(yīng)用對(duì)象技術(shù)與概念,成為開(kāi)發(fā)出高效、低成本應(yīng)用程序的重要的實(shí)現(xiàn)途徑。構(gòu)件技術(shù)是一種社會(huì)化的軟件開(kāi)發(fā)方法,它使得開(kāi)發(fā)者可以將由不同語(yǔ)言、不同供應(yīng)商開(kāi)發(fā)的構(gòu)件組合在一起來(lái)構(gòu)造軟件。構(gòu)件技術(shù)必須解決兩大問(wèn)題:(1)復(fù)用,即構(gòu)件具有通用的特性,所提供的功能能為多種系統(tǒng)使用;(2)互操作,即不同來(lái)源的構(gòu)件能相互協(xié)調(diào)、通信,共同完成更復(fù)雜的功能。構(gòu)件技術(shù)的優(yōu)點(diǎn):提高開(kāi)發(fā)速度。降低開(kāi)發(fā)成本。增加應(yīng)用軟件的靈活性。五、軟件復(fù)用和構(gòu)件技術(shù)4.5.4軟件過(guò)程和過(guò)程改進(jìn)軟件過(guò)程的工程含義:軟件過(guò)程不僅要有工程視面,也要有合同視面,軟件過(guò)程應(yīng)當(dāng)涉及獲取過(guò)程和供應(yīng)過(guò)程。軟件過(guò)程包含管理視面,提高生產(chǎn)率和軟件質(zhì)量這兩個(gè)目標(biāo)能否實(shí)現(xiàn),其關(guān)鍵還在于管理和支持能力,為此軟件過(guò)程應(yīng)當(dāng)涉及管理過(guò)程和支持過(guò)程。軟件過(guò)程應(yīng)包含運(yùn)作視面,需要考慮與軟件運(yùn)作相關(guān)的問(wèn)題,運(yùn)作過(guò)程要從工程過(guò)程中單獨(dú)考慮,形成相對(duì)獨(dú)立的過(guò)程。由于參與軟件過(guò)程人員類(lèi)型不同,因而軟件過(guò)程研究的對(duì)象應(yīng)擴(kuò)展到從事軟件活動(dòng)的各類(lèi)人員上。
軟件過(guò)程工程:是為建立軟件過(guò)程所必須實(shí)施的一系列工程化的活動(dòng),它涉及與此有關(guān)的方法、工具和環(huán)境的研究。
軟件過(guò)程模型:軟件過(guò)程模型是對(duì)軟件過(guò)程的結(jié)構(gòu)及其屬性的抽象描述與定義,是軟件過(guò)程工程中過(guò)程定義活動(dòng)的結(jié)果。
過(guò)程建模:是指通過(guò)過(guò)程設(shè)計(jì)和過(guò)程定義而建立過(guò)程模型的活動(dòng)。過(guò)程建?;顒?dòng)是軟件過(guò)程工程整個(gè)系列活動(dòng)中最主要的活動(dòng)之一,所有其他的工程活動(dòng)都是基于過(guò)程建?;顒?dòng)的結(jié)果來(lái)進(jìn)行的。4.5.4軟件過(guò)程和過(guò)程改進(jìn)
過(guò)程建模的目的:支持對(duì)軟件過(guò)程的理解和交流。支持對(duì)軟件過(guò)程的分析。支持軟件過(guò)程中的通信。支持對(duì)軟件過(guò)程的管理。支持對(duì)軟件過(guò)程的度量。支持對(duì)軟件過(guò)程的改進(jìn)。支持軟件過(guò)程的復(fù)用。軟件過(guò)程改進(jìn)“軟件過(guò)程改進(jìn)”的定義:是在軟件過(guò)程工程中為了更有效地達(dá)到優(yōu)化軟件過(guò)程的目的所實(shí)施的改善或改變其軟件過(guò)程的一系列活動(dòng)。過(guò)程改進(jìn)的關(guān)鍵是發(fā)現(xiàn)軟件過(guò)程中所存在的問(wèn)題和缺陷。與過(guò)程改進(jìn)相關(guān)的兩個(gè)概念:(1)過(guò)程質(zhì)量:指軟件過(guò)程描述本身所具備的屬性(靜態(tài)方面);以軟件過(guò)程所表現(xiàn)出的過(guò)程動(dòng)作能力來(lái)衡量(動(dòng)態(tài)方面)。(2)過(guò)程評(píng)價(jià):指對(duì)過(guò)程建模方法的評(píng)價(jià)(靜態(tài)方面);指對(duì)過(guò)程能力的評(píng)價(jià)(動(dòng)態(tài)方面)。軟件能力成熟度模型為了正確而有序地進(jìn)行軟件過(guò)程中的活動(dòng),必須為軟件過(guò)程建立一種能夠良好地描述和表示的模型。有了這種模型,就可以更容易地確定各個(gè)階段所需要完成的任務(wù)和實(shí)現(xiàn)任務(wù)的評(píng)估方法,表達(dá)各個(gè)階段之間的次序和關(guān)系。軟件能力成熟度模型(CapabilityMaturityModelforSoftware,簡(jiǎn)記為CMM)是在1990年提出草案,1991年8月提出CMM1.0版本的。其后于1993年提出了CMM1.1版。經(jīng)過(guò)4年在廣泛范圍內(nèi)的實(shí)施,從軟件過(guò)程評(píng)估中獲得了大量反饋,并據(jù)此不斷改進(jìn),于1998年初出版CMM2.0版。通過(guò)詳細(xì)闡述軟件開(kāi)發(fā)成熟度框架得到的模型,為各軟件組織提供了更有效的指導(dǎo)來(lái)建立過(guò)程改進(jìn)計(jì)劃。
CMM模型
CMM模型為較全面地描述和分析軟件過(guò)程能力的發(fā)展程度,建立了描述一個(gè)組織的軟件過(guò)程成熟程度的分級(jí)標(biāo)準(zhǔn)。提供了5個(gè)成熟度級(jí)別:初始級(jí)。軟件過(guò)程的特點(diǎn)是雜亂無(wú)章,有時(shí)甚至混亂,幾乎沒(méi)有明確定義的步驟,成功完全依賴個(gè)人努力和英雄式核心人物。可重復(fù)級(jí)。建立了基本的項(xiàng)目管理過(guò)程來(lái)跟蹤成本、進(jìn)度和機(jī)能。有必要的過(guò)程準(zhǔn)則來(lái)重復(fù)以前在同類(lèi)項(xiàng)目的成功。
確定級(jí)。管理和工程的軟件過(guò)程已文件化、標(biāo)準(zhǔn)化,并綜合成整個(gè)軟件開(kāi)發(fā)組織的標(biāo)準(zhǔn)軟件過(guò)程。所有的項(xiàng)目都采用根據(jù)實(shí)際情況修改后得到的標(biāo)準(zhǔn)軟件過(guò)程來(lái)發(fā)展和維護(hù)軟件。
管理級(jí)。制定了軟件過(guò)程和產(chǎn)品質(zhì)量的詳細(xì)的度量標(biāo)準(zhǔn)。軟件過(guò)程和產(chǎn)品的質(zhì)量都被開(kāi)發(fā)組織的成員所理解和控制。
優(yōu)化級(jí)。加強(qiáng)了定量分析,通過(guò)來(lái)自過(guò)程質(zhì)量反饋和來(lái)自新觀念、新科技的反饋使過(guò)程能不斷持續(xù)地改進(jìn)。
CMM模型優(yōu)化級(jí)(5)可管理級(jí)(4)確定級(jí)(3)可重復(fù)級(jí)(2)初始級(jí)(1)
不斷改進(jìn)的過(guò)程
能預(yù)見(jiàn)的過(guò)程
標(biāo)準(zhǔn)一致的過(guò)程有紀(jì)律的過(guò)程
成熟度級(jí)別
CMM模型
軟件組織的成熟與不成熟不成熟的軟件組織:軟件過(guò)程一般不預(yù)先計(jì)劃,在項(xiàng)目進(jìn)行中由實(shí)際工作人員及管理員臨時(shí)計(jì)劃。沒(méi)有客觀的標(biāo)準(zhǔn)來(lái)判斷產(chǎn)品質(zhì)量,產(chǎn)品質(zhì)量得不到保證。一些提高質(zhì)量的環(huán)節(jié),如檢查、測(cè)試等經(jīng)常由于要趕進(jìn)度而減少或取消。產(chǎn)品在交付前,對(duì)客戶來(lái)說(shuō),一切都是不可見(jiàn)的。沒(méi)有長(zhǎng)遠(yuǎn)目標(biāo),管理員通常只關(guān)注解決任何當(dāng)前的危機(jī)。超支、超時(shí),或以加班加點(diǎn)方式趕進(jìn)度。成熟的軟件組織:有全面而充分的組織和管理軟件開(kāi)發(fā)和維護(hù)過(guò)程的能力。管理員監(jiān)視軟件產(chǎn)品的質(zhì)量以及生產(chǎn)這些產(chǎn)品的過(guò)程。有一系列客觀標(biāo)準(zhǔn)來(lái)判別產(chǎn)品質(zhì)量,分析產(chǎn)品和過(guò)程中的問(wèn)題。進(jìn)度和預(yù)算可以按照以前積累的經(jīng)驗(yàn)來(lái)制定,以保證其可行。預(yù)期的成本、進(jìn)度、功能與性能和質(zhì)量都能實(shí)現(xiàn),并達(dá)到目的。能準(zhǔn)確及時(shí)地向工作人員通報(bào)實(shí)際軟件過(guò)程,并按照計(jì)劃有規(guī)則地工作。
軟件組織的成熟與不成熟4.6
工具軟件4.6.1
下載軟件
比較流行的有網(wǎng)際快車(chē)FlashGet(JetCar)、網(wǎng)絡(luò)螞蟻(NetAnts)、迅雷(Thunder)和GetRight
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 麋鹿課件完美教學(xué)課件
- 消防應(yīng)急體系
- 3.1.1 鐵及其性質(zhì) 課件高一上學(xué)期化學(xué)(人教版2019必修第一冊(cè))
- 外匯期貨課件教學(xué)課件
- 池塘邊的小鴨教案反思
- 過(guò)生日說(shuō)課稿
- 2025商場(chǎng)地產(chǎn)蛇年新春國(guó)潮年貨節(jié)(蛇年行大集主題)活動(dòng)策劃方案-47P
- 智慧人工智能:開(kāi)拓人工智能創(chuàng)新應(yīng)用的方案
- 新能源汽車(chē)二手房交易合同模板
- 眼鏡制造合作合同
- 水利水電工程專(zhuān)業(yè)畢業(yè)設(shè)計(jì)(共98頁(yè))
- 公司內(nèi)部審批權(quán)限一覽表
- 人教版統(tǒng)編高中語(yǔ)文“文學(xué)閱讀與寫(xiě)作”學(xué)習(xí)任務(wù)群編寫(xiě)簡(jiǎn)介
- 急性腦梗機(jī)械取栓PPT課件
- 六年級(jí)語(yǔ)文命題比賽一等獎(jiǎng)作品
- 初中物理實(shí)驗(yàn)室課程表
- 貴州省建筑業(yè)營(yíng)改增建筑工程計(jì)價(jià)依據(jù)調(diào)整實(shí)施意見(jiàn)(試行)解讀519
- GB∕T 15829-2021 軟釬劑 分類(lèi)與性能要求
- 南充市物業(yè)服務(wù)收費(fèi)管理實(shí)施細(xì)則
- 浦東新區(qū)“十一五”學(xué)科帶頭人、骨干教師培養(yǎng)和發(fā)展方案
- 戶外廣告設(shè)施檢驗(yàn)規(guī)范
評(píng)論
0/150
提交評(píng)論