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