第1章軟件工程 概述_第1頁(yè)
第1章軟件工程 概述_第2頁(yè)
第1章軟件工程 概述_第3頁(yè)
第1章軟件工程 概述_第4頁(yè)
第1章軟件工程 概述_第5頁(yè)
已閱讀5頁(yè),還剩50頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

軟件工程概述第1章1【本章引言】

自從1946年第一臺(tái)電子計(jì)算機(jī)誕生以來(lái),計(jì)算機(jī)的研究生產(chǎn)和應(yīng)用得到迅猛的發(fā)展,計(jì)算機(jī)系統(tǒng)已經(jīng)經(jīng)歷了四個(gè)不同的發(fā)展階段,計(jì)算機(jī)科學(xué)成為當(dāng)今世界上發(fā)展最快和應(yīng)用最廣的學(xué)科之一。然而,我們?nèi)匀粵](méi)有徹底擺脫“軟件危機(jī)”困擾,軟件已經(jīng)成為限制計(jì)算機(jī)系統(tǒng)發(fā)展的關(guān)鍵因素。為了克服這種困擾,軟件工作者在不斷的研究消除軟件危機(jī)的方法,從而逐步形成了計(jì)算機(jī)科學(xué)技術(shù)領(lǐng)域中的一門新興的工程學(xué)科—軟件工程。本章將對(duì)軟件概念、軟件分類、軟件發(fā)展、軟件危機(jī)、軟件工程概念等方面做簡(jiǎn)要的介紹,通過(guò)本章學(xué)習(xí),可為后幾章軟件工程的深入學(xué)習(xí)打下基礎(chǔ)。2第一章軟件工程概述

1.1軟件概述1.2軟件危機(jī)1.2軟件工程3【本章重點(diǎn)】軟件工程概念軟件的特點(diǎn)4【學(xué)習(xí)目標(biāo)】理解軟件工程的基本概念了解軟件危機(jī)的表現(xiàn)形式51.1軟件工程的產(chǎn)生和發(fā)展軟件工程(SoftwareEngineering)是在克服20世紀(jì)60年代末所出現(xiàn)的“軟件危機(jī)”的過(guò)程中逐漸形成與發(fā)展的。由于軟件工程是一門指導(dǎo)計(jì)算機(jī)軟件系統(tǒng)開(kāi)發(fā)和維護(hù)的工程學(xué)科,是一門新興的邊緣學(xué)科,涉及到計(jì)算機(jī)科學(xué)、工程科學(xué)、管理科學(xué)、數(shù)學(xué)等多學(xué)科,研究的范圍廣,主要研究如何應(yīng)用軟件開(kāi)發(fā)的科學(xué)理論和工程技術(shù)來(lái)指導(dǎo)大型軟件系統(tǒng)的開(kāi)發(fā)。例如現(xiàn)代操作系統(tǒng)的開(kāi)發(fā),如果不采用軟件工程的方法是不可能的。

61.1.1軟件的概念1.1.2軟件的分類1.1.3軟件的發(fā)展1.1軟件概述71.1.1軟件的概念

軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它是包括程序、數(shù)據(jù)及其相關(guān)文檔的完整集合。其中,程序是按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列;數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開(kāi)發(fā)、維護(hù)和使用有關(guān)的圖文材料。8軟件的特點(diǎn)軟件是一種邏輯實(shí)體,不是具體的物理實(shí)體軟件產(chǎn)品的生產(chǎn)主要是研制軟件具有“復(fù)雜性”,其開(kāi)發(fā)和運(yùn)行常受到計(jì)算機(jī)系統(tǒng)的限制軟件成本昂貴,其開(kāi)發(fā)方式目前尚未完全擺脫手工生產(chǎn)方式軟件不存在磨損和老化問(wèn)題,但存在退化問(wèn)題91.1.2軟件的分類

按軟件的作用,一般可以分為以下幾類。1.系統(tǒng)軟件

系統(tǒng)軟件(systemsoftware)是指能與計(jì)算機(jī)硬件緊密配合在一起,使計(jì)算機(jī)系統(tǒng)各個(gè)部件、相關(guān)的軟件、和數(shù)據(jù)協(xié)調(diào)高效地工作的軟件。系統(tǒng)軟件是計(jì)算機(jī)系統(tǒng)的重要組成部分,它支持應(yīng)用軟件的開(kāi)發(fā)和運(yùn)行。系統(tǒng)軟件包括:操作系統(tǒng)、網(wǎng)絡(luò)軟件、編譯程序、數(shù)據(jù)庫(kù)管理程序、文件編輯系統(tǒng)、系統(tǒng)檢查與診斷軟件等。102.應(yīng)用軟件

應(yīng)用軟件(applicationsoftware)則是在系統(tǒng)軟件基礎(chǔ)上,為解決特定的領(lǐng)域應(yīng)用而開(kāi)發(fā)的軟件。按其性質(zhì)不同可以分為以下幾類:事務(wù)軟件

事務(wù)信息處理是一個(gè)最大的軟件應(yīng)用領(lǐng)域。如工資單、收/支計(jì)算、存貨盤點(diǎn)報(bào)表等。這些獨(dú)立的系統(tǒng)可以組成管理信息系統(tǒng)(MIS)軟件,它從一個(gè)或多個(gè)裝有事務(wù)信息的數(shù)據(jù)庫(kù)中存取數(shù)據(jù)。1.1.2軟件的分類11實(shí)時(shí)軟件

監(jiān)視、分析和控制現(xiàn)實(shí)世界中發(fā)生的事件,能以足夠快的速度對(duì)輸入信息進(jìn)行處理并在規(guī)定的時(shí)間內(nèi)作出反應(yīng)的軟件,稱之為實(shí)時(shí)軟件。實(shí)時(shí)系統(tǒng)必須在嚴(yán)格的時(shí)間范圍內(nèi)響應(yīng),因此實(shí)時(shí)軟件和計(jì)算機(jī)系統(tǒng)必須有很高的可靠性和安全性。1.1.2軟件的分類12工程和科學(xué)軟件

工程和科學(xué)軟件具有數(shù)值算法的特點(diǎn)。其應(yīng)用范圍從天文學(xué)到火山學(xué);從自動(dòng)應(yīng)力分析到空間航天飛機(jī)軌道動(dòng)力學(xué);從分子生物學(xué)到自動(dòng)化制造。但是,在工程和科學(xué)領(lǐng)域中的新的應(yīng)用已經(jīng)遠(yuǎn)離傳統(tǒng)的數(shù)值算法。計(jì)算機(jī)輔助設(shè)計(jì)(CAD)、系統(tǒng)模擬和其他交互應(yīng)用系統(tǒng)已經(jīng)做到具有實(shí)時(shí)和系統(tǒng)軟件的特點(diǎn)。1.1.2軟件的分類13嵌入式軟件

嵌入式計(jì)算機(jī)系統(tǒng)將計(jì)算機(jī)嵌入在某一系統(tǒng)之中,使之成為該系統(tǒng)的重要組成部分、控制該系統(tǒng)的運(yùn)行,進(jìn)而實(shí)現(xiàn)一個(gè)特定的物理過(guò)程。大型的嵌入式計(jì)算機(jī)系統(tǒng)軟件可用于航空航天系統(tǒng)、指揮控制系統(tǒng)、武器系統(tǒng)等;小型的嵌入式計(jì)算機(jī)系統(tǒng)軟件可用于工業(yè)的智能化產(chǎn)品之中,這時(shí)嵌入式軟件駐留在只讀存儲(chǔ)內(nèi),為該產(chǎn)品提供各種控制功能和儀表的數(shù)字或圖形顯示功能等。如汽車的剎車控制,空調(diào)機(jī)、洗衣機(jī)的自動(dòng)控制等。1.1.2軟件的分類14個(gè)人計(jì)算機(jī)軟件

字處理、電子報(bào)表、計(jì)算機(jī)圖形、家庭游戲、數(shù)據(jù)庫(kù)管理、個(gè)人和事務(wù)財(cái)務(wù)應(yīng)用、外部網(wǎng)絡(luò)或數(shù)據(jù)庫(kù)存取等數(shù)百種應(yīng)用?;赪eb的軟件人工智能軟件

1.1.2軟件的分類153.工具軟件

是系統(tǒng)軟件和應(yīng)用軟件之間的支持軟件。一般用來(lái)輔助和支持開(kāi)發(fā)人員開(kāi)發(fā)和維護(hù)應(yīng)用軟件,以提高軟件的開(kāi)發(fā)質(zhì)量和生產(chǎn)率。它包括需求分析工具、設(shè)計(jì)工具、編碼工具、測(cè)試工具、維護(hù)工具和管理工具等。工具軟件又可分為垂直工具軟件和水平工具軟件。垂直工具軟件是指生命周期的某一階段特定活動(dòng)所使用的工具軟件,如分析、設(shè)計(jì)、測(cè)試等活動(dòng);水平工具軟件是指整個(gè)生命周期活動(dòng)所使用的工具軟件,如項(xiàng)目管理、配置管理等活動(dòng)。164.可重用軟件

如各種標(biāo)準(zhǔn)程序庫(kù),通常它是計(jì)算機(jī)廠家提供的系統(tǒng)軟件中的一部分,對(duì)這些標(biāo)準(zhǔn)程序庫(kù)里的標(biāo)準(zhǔn)子程序稍加改造,甚至不經(jīng)改造就可以把它們編入新開(kāi)發(fā)的程序。今天,世界已把可重用范圍擴(kuò)展到算法以外,數(shù)據(jù)結(jié)構(gòu)也可以重用。20世紀(jì)90年代的可重用構(gòu)件則是把數(shù)據(jù)和相應(yīng)的操作兩者封裝在一起(通常叫做類或?qū)ο螅?,使軟件工程師能夠用可重用?gòu)件來(lái)建立新的應(yīng)用程序。171.1.3軟件的發(fā)展1.程序設(shè)計(jì)時(shí)代(1946-1956年)采用“個(gè)體生產(chǎn)方式”,即軟件開(kāi)發(fā)完全依賴于程序員個(gè)人的能力水平。2.程序系統(tǒng)時(shí)代(1956-1968年)由于軟件應(yīng)用范圍及規(guī)模的不斷擴(kuò)大,個(gè)體生產(chǎn)已經(jīng)不能夠滿足軟件生產(chǎn)的需要,一個(gè)軟件需要由幾個(gè)人協(xié)同完成,采用“生產(chǎn)作坊方式”。該階段的后期,隨著軟件需求量、規(guī)模及復(fù)雜度的增大,生產(chǎn)作坊的方式已經(jīng)不能夠適應(yīng)軟件生產(chǎn)的需要,出現(xiàn)所謂“軟件危機(jī)”。183.軟件工程時(shí)代(1968年至今)這階段的主要任務(wù)是為了克服軟件危機(jī),適應(yīng)軟件發(fā)展的需要,而采用“工程化的生產(chǎn)”方式。19程序設(shè)計(jì)程序系統(tǒng)軟件工程軟件的范疇程序程序及說(shuō)明書產(chǎn)品軟件(項(xiàng)目軟件)主要程序設(shè)計(jì)語(yǔ)言匯編及機(jī)器語(yǔ)言高級(jí)語(yǔ)言高級(jí)語(yǔ)言系統(tǒng)、程序設(shè)計(jì)語(yǔ)言軟件工作范圍程序編寫包括設(shè)計(jì)和測(cè)試軟件生存期需求者程序設(shè)計(jì)者本人少數(shù)用戶市場(chǎng)用戶維護(hù)責(zé)任者

程序設(shè)計(jì)者開(kāi)發(fā)小組專職維護(hù)人員硬件特征價(jià)高、存儲(chǔ)小、可靠性差降價(jià);速度、容量、可靠性明顯提高向超高速、大容量、微型化發(fā)展軟件特征完全不受重視軟件技術(shù)的發(fā)展不滿足需要,出現(xiàn)軟件危機(jī)開(kāi)發(fā)技術(shù)有進(jìn)步,但未獲得突破性進(jìn)展,軟件危機(jī)未完全擺脫20

“軟件危機(jī)”(Softwarecrisis)的出現(xiàn)是由于軟件的規(guī)模越來(lái)越大,復(fù)雜度不斷增加,軟件需求量增大。而軟件開(kāi)發(fā)過(guò)程是一種高密集度的腦力勞動(dòng),軟件開(kāi)發(fā)的模式及技術(shù)不能適應(yīng)軟件發(fā)展的需要。致使大量質(zhì)量低劣的軟件涌向市場(chǎng),有的花費(fèi)大量人力財(cái)力,而在開(kāi)發(fā)過(guò)程中就夭折。

1.2軟件危機(jī)211.軟件危機(jī)的含義

軟件危機(jī)是指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。這些問(wèn)題絕不僅僅是不能正常運(yùn)行的軟件才具有的。實(shí)際上,幾乎所有軟件都不同程度地存在這些問(wèn)題。概括地說(shuō),軟件危機(jī)包含下述兩方面的問(wèn)題:如何開(kāi)發(fā)軟件,以滿足對(duì)軟件日益增長(zhǎng)的需求;如何維護(hù)數(shù)量不斷膨脹的已有軟件。鑒于軟件危機(jī)的長(zhǎng)期性和癥狀不明顯的特征,近年來(lái)有人建議把軟件危機(jī)更名為“軟件蕭條(depression)”或“軟件困擾(afflication)”。22例如:

IBM公司的OS/360,共約100萬(wàn)條指令,花費(fèi)了5000個(gè)人年;經(jīng)費(fèi)達(dá)數(shù)億美元,而結(jié)果卻令人沮喪,錯(cuò)誤多達(dá)2000個(gè)以上,系統(tǒng)根本無(wú)法正常運(yùn)行。OS/360系統(tǒng)的負(fù)責(zé)人Brooks這樣描述開(kāi)發(fā)過(guò)程的困難和混亂:“…像巨獸在泥潭中作垂死掙扎,掙扎得越猛,泥漿就沾得越多,最后沒(méi)有一個(gè)野獸能夠逃脫淹沒(méi)在泥潭中的命運(yùn)?!?/p>

1963年,美國(guó)飛往火星的火箭因?yàn)橐粋€(gè)軟件錯(cuò)誤而爆炸。

1967年8月23日,原蘇聯(lián)”結(jié)盟一號(hào)”載人宇宙飛船也因軟件錯(cuò)誤燒毀。23“軟件危機(jī)”主要表現(xiàn)在兩個(gè)方面:(1)軟件產(chǎn)品質(zhì)量低劣,甚至開(kāi)發(fā)過(guò)程就夭折(2)軟件生產(chǎn)率低,不能滿足需要其他:軟件產(chǎn)品的質(zhì)量往往靠不住軟件常常是不可維護(hù)的軟件通常沒(méi)有適當(dāng)?shù)奈臋n資料2425上帝見(jiàn)證著恐龍、猛犸象、劍齒虎在焦油中掙扎。它們掙扎得越猛烈,焦油糾纏得越緊,沒(méi)有任何猛獸足夠強(qiáng)壯或具有足夠的技巧,能夠掙脫束縛,最后它們都沉到了坑底。26過(guò)去幾十年的大型軟件系統(tǒng)開(kāi)發(fā)就猶如這樣一個(gè)焦油坑,很多大型和強(qiáng)壯的動(dòng)物在其中劇烈地掙扎。他們中大多數(shù)開(kāi)發(fā)了可運(yùn)行的系統(tǒng)——不過(guò)只有極少數(shù)的項(xiàng)目滿足了目標(biāo)、進(jìn)度和預(yù)算的要求。各種團(tuán)隊(duì),大型的和小型,龐雜的和精干,一個(gè)接一個(gè)淹沒(méi)在了焦油坑中。表面上看起來(lái)好像沒(méi)有任何一個(gè)單獨(dú)的問(wèn)題會(huì)導(dǎo)致困難,每個(gè)問(wèn)題都能獲得解決,但是當(dāng)它們相互糾纏和積累在一起的時(shí)候,團(tuán)隊(duì)的行動(dòng)就會(huì)變得越來(lái)越慢272.產(chǎn)生軟件危機(jī)的原因由于缺乏軟件開(kāi)發(fā)經(jīng)驗(yàn)和有關(guān)軟件開(kāi)發(fā)數(shù)據(jù)的積累,使得開(kāi)發(fā)工作的計(jì)劃很難制定,以致經(jīng)常出現(xiàn)超出經(jīng)費(fèi)預(yù)算,無(wú)法遵循進(jìn)度計(jì)劃,完成開(kāi)發(fā)的期限一再拖延等情況。軟件需求在開(kāi)發(fā)的初期階段不夠明確,或是未能得到確切的表達(dá)。開(kāi)發(fā)工作開(kāi)始后,軟件人員和用戶又未能及時(shí)交換意見(jiàn),造成矛盾在開(kāi)發(fā)后期集中暴露。開(kāi)發(fā)過(guò)程沒(méi)有統(tǒng)一、公認(rèn)的方法論和規(guī)范進(jìn)行指導(dǎo),參加開(kāi)發(fā)的人員各行其事。另外,設(shè)計(jì)和實(shí)現(xiàn)過(guò)程的資料很難維護(hù)。未能在測(cè)試階段做好充分的檢測(cè)工作,提交至用戶的軟件質(zhì)量差,在運(yùn)行過(guò)程中暴露出大量的問(wèn)題。283.軟件危機(jī)的解決方法

首先應(yīng)該對(duì)計(jì)算機(jī)軟件有一個(gè)正確的認(rèn)識(shí)。應(yīng)該徹底清除在計(jì)算機(jī)系統(tǒng)早期發(fā)展階段形成的“軟件就是程序”的錯(cuò)誤概念。一個(gè)軟件必須由一個(gè)完整的配置組成。事實(shí)上,軟件是程序、數(shù)據(jù)及相關(guān)文檔的完整集合。1983年IEEE為軟件下的定義是:計(jì)算機(jī)程序、方法、規(guī)則、相關(guān)的文檔資料以及在計(jì)算機(jī)上運(yùn)行程序時(shí)所必須的數(shù)據(jù)。雖然表面上看來(lái)在這個(gè)定義中列出了軟件的5個(gè)配置成分,但是方法和規(guī)則通常是在文檔中說(shuō)明并在程序中實(shí)現(xiàn)的。29

必須充分認(rèn)識(shí)到軟件開(kāi)發(fā)不是某種個(gè)體勞動(dòng)的神秘技巧,而應(yīng)該是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完成的工程項(xiàng)目。必須充分吸取和借鑒人類長(zhǎng)期以來(lái)從事各種工程項(xiàng)目所積累的行之有效的原理、概念、技術(shù)和方法,特別要吸取幾十年來(lái)人類從事計(jì)算機(jī)硬件研究和開(kāi)發(fā)的經(jīng)驗(yàn)教訓(xùn)。應(yīng)該推廣使用在實(shí)踐中總結(jié)出來(lái)的開(kāi)發(fā)軟件的成功的技術(shù)和方法,并且研究探索更好更有效的技術(shù)和方法,盡快消除在計(jì)算機(jī)系統(tǒng)早期發(fā)展階段形成的一些錯(cuò)誤的概念和做法。30

應(yīng)該開(kāi)發(fā)和使用更好的軟件工具。正如機(jī)械工具可以“放大”人類的體力一樣,軟件工具可以“放大”人類的智力。在軟件開(kāi)發(fā)的每個(gè)階段都有許多繁瑣重復(fù)的工作需要做,在適當(dāng)軟件工具輔助下,開(kāi)發(fā)人員可以把這類工作做得既快又好。如果把各個(gè)階段使用的軟件工具有機(jī)地集合成一個(gè)整體,支持軟件開(kāi)發(fā)的主過(guò)程,則稱為軟件工程支撐環(huán)境??傊?,為了消除軟件危機(jī),既要有技術(shù)措施(方法和工具),又要有必要的組織管理措施。軟件工程正是從管理和技術(shù)兩方面研究如何更好地開(kāi)發(fā)和維護(hù)計(jì)算機(jī)軟件的一門新興學(xué)科。311.3軟件工程的概念1.3.1軟件工程的定義和原理1.3.2軟件工程的目標(biāo)1.3.3軟件工程的原則321.3.1軟件工程的定義和原理1.軟件工程的定義

軟件工程(software

engineering)這個(gè)名詞是北大西洋公約組織(NATO)科學(xué)技術(shù)委員會(huì)1968年秋在當(dāng)時(shí)的聯(lián)邦德國(guó)召集了近50名第一流的編程人員、計(jì)算機(jī)科學(xué)家和工業(yè)界巨頭,制定擺脫軟件危機(jī)的辦法時(shí)提出來(lái)的。331.3.1軟件工程的定義和原理

關(guān)于什么是軟件工程的定義,每一位軟件工程的作者都給出了自己的不同理解。我們把它定義為:運(yùn)用工程學(xué)的原理和方法來(lái)組織和管理軟件的生產(chǎn)和維護(hù),以保證軟件產(chǎn)品開(kāi)發(fā),運(yùn)行和維護(hù)的高質(zhì)量和高生產(chǎn)率。1993年,IEEE在《IEEEStandard

Collecation:SoftwareEngineering》給出了以下全面的定義:應(yīng)用系統(tǒng)的、規(guī)范的和可量化的方法去開(kāi)發(fā)、運(yùn)行和維護(hù)軟件,即軟件的工程化應(yīng)用。對(duì)(1)中所述方法的研究。34方法過(guò)程質(zhì)量焦點(diǎn)工具軟件工程三要素:方法、工具和過(guò)程35軟件工程三要素:方法、工具和過(guò)程軟件工程方法:研究軟件開(kāi)發(fā)“如何做”的技術(shù)。軟件工具:研究支撐軟件開(kāi)發(fā)方法的工具、軟件工具的集成環(huán)境—計(jì)算機(jī)輔助軟件工程CASE。軟件工程過(guò)程:將軟件工程方法與軟件工具相結(jié)合實(shí)現(xiàn)合理、及時(shí)地進(jìn)行軟件開(kāi)發(fā)的目的。36軟件工程研究的內(nèi)容

-----研究?jī)?nèi)容軟件工程是一門新興的邊緣學(xué)科,涉及的學(xué)科多,研究的范圍廣。歸結(jié)起來(lái)軟件工程研究的主要內(nèi)容有以下幾方面:}軟件開(kāi)發(fā)軟件開(kāi)發(fā)方法、技術(shù)軟件開(kāi)發(fā)工具及環(huán)境軟件管理技術(shù)軟件規(guī)范(國(guó)際規(guī)范)}軟件管理37

(1)軟件開(kāi)發(fā)技術(shù)(軟件結(jié)構(gòu)、開(kāi)發(fā)方法、工具與軟件工程環(huán)境、軟件工程標(biāo)準(zhǔn)化)

(2)軟件工程管理(質(zhì)量管理,軟件工程經(jīng)濟(jì)學(xué):成本估算,計(jì)劃安排)軟件工程研究的目標(biāo)是“以較少的投資獲取較高質(zhì)量的軟件”。本課程主要討論:381.3.1軟件工程的定義和原理2.軟件工程的基本原理

著名的軟件工程專家B.W.Boehm綜合這些學(xué)者們的意見(jiàn)并總結(jié)了TRW公司多年開(kāi)發(fā)軟件的經(jīng)驗(yàn),于1983年在一片論文中提出了軟件工程的7條基本原理。他認(rèn)為這7條原理是確保軟件產(chǎn)品質(zhì)量和開(kāi)發(fā)效率原理的最小集合。這7條原理是互相獨(dú)立的,其中任意6條原理的組合都不能代替另一條原理。391.3.1軟件工程的定義和原理用分階段的生命周期計(jì)劃嚴(yán)格管理在軟件開(kāi)發(fā)與維護(hù)的漫長(zhǎng)生命周期中,需要完成許多性質(zhì)各異的工作。這條基本原理意味著,應(yīng)該把軟件生命周期劃分成若干個(gè)階段,并相應(yīng)地制定出切實(shí)可行的計(jì)劃,然后嚴(yán)格按照計(jì)劃對(duì)軟件的開(kāi)發(fā)與維護(hù)工作進(jìn)行管理。

不同層次的管理人員都必須嚴(yán)格按照計(jì)劃各盡其職地管理軟件開(kāi)發(fā)與維護(hù)工作,絕不能受客戶或上級(jí)人員的影響而擅自背離預(yù)定計(jì)劃。40堅(jiān)持進(jìn)行階段評(píng)審軟件的質(zhì)量保證工作不能等到編碼階段結(jié)束之后再進(jìn)行。理由:第一,大部分錯(cuò)誤是在編碼之前造成的。例如,根據(jù)Boehm等人的統(tǒng)計(jì),設(shè)計(jì)錯(cuò)誤占軟件錯(cuò)誤的63%,編碼錯(cuò)誤僅占37%;第二,錯(cuò)誤發(fā)現(xiàn)與改正得越晚,所需付出的代價(jià)也越高。因此,在每個(gè)階段都進(jìn)行嚴(yán)格評(píng)審,以便盡早發(fā)現(xiàn)在軟件開(kāi)發(fā)過(guò)程中所犯的錯(cuò)誤1.3.1軟件工程的定義和原理41

有人說(shuō):軟件開(kāi)發(fā)時(shí),一個(gè)錯(cuò)誤發(fā)現(xiàn)得越晚,為改正它所付出的代價(jià)就越大。對(duì)否?請(qǐng)解釋你的回答。42

在1970年代,IBM等三家公司對(duì)此問(wèn)題做了獨(dú)立研究,最后它們得到相似的結(jié)論:43實(shí)行嚴(yán)格的產(chǎn)品控制

在軟件開(kāi)發(fā)過(guò)程中不應(yīng)隨意改變需求,因?yàn)楦淖円豁?xiàng)需求往往需要付出較高的代價(jià)。但是,在軟件開(kāi)發(fā)過(guò)程中改變需求又是難免的。由于外部環(huán)境的變化,相應(yīng)地改變用戶需求是一種客觀需要,顯然不能硬性禁止客戶提出改變需求的要求,而只能依靠科學(xué)的產(chǎn)品控制技術(shù)來(lái)順應(yīng)這種要求。1.3.1軟件工程的定義和原理44采用現(xiàn)代程序設(shè)計(jì)技術(shù)

20世紀(jì)60年代末提出的結(jié)構(gòu)程序設(shè)計(jì)技術(shù),已經(jīng)成為絕大多數(shù)人公認(rèn)的程序設(shè)計(jì)技術(shù)。以后又進(jìn)一步發(fā)展出各種結(jié)構(gòu)分析(SA)與結(jié)構(gòu)設(shè)計(jì)(SD)技術(shù)。近年來(lái),面向?qū)ο蠹夹g(shù)已經(jīng)在許多領(lǐng)域中迅速地取代了傳統(tǒng)的結(jié)構(gòu)開(kāi)發(fā)方法。實(shí)踐證明,采用先進(jìn)的技術(shù)不僅可以提高軟件開(kāi)發(fā)和維護(hù)的效率,而且可以提高軟件產(chǎn)品的質(zhì)量。1.3.1軟件工程的定義和原理45結(jié)果應(yīng)能清楚地審查

軟件產(chǎn)品不同于一般的物理產(chǎn)品,它是看不見(jiàn)摸不著的邏輯產(chǎn)品。軟件開(kāi)發(fā)人員(或開(kāi)發(fā)小組)的工作進(jìn)展情況可見(jiàn)性差,難以準(zhǔn)確度量,從而使得軟件產(chǎn)品的開(kāi)發(fā)過(guò)程比一般產(chǎn)品的開(kāi)發(fā)過(guò)程更難于評(píng)價(jià)和管理。為了提高軟件開(kāi)發(fā)過(guò)程的可見(jiàn)性,更好地進(jìn)行管理,應(yīng)該根據(jù)軟件開(kāi)發(fā)項(xiàng)目的總目標(biāo)及完成期限,規(guī)定開(kāi)發(fā)組織的責(zé)任和產(chǎn)品標(biāo)準(zhǔn),從而使得所得到的結(jié)果能夠清楚地審查。1.3.1軟件工程的定義和原理46開(kāi)發(fā)小組的人員應(yīng)該少而精

軟件開(kāi)發(fā)小組的組成人員的素質(zhì)應(yīng)該好,而人數(shù)則不宜過(guò)多。開(kāi)發(fā)小組人員的素質(zhì)和數(shù)量,是影響軟件產(chǎn)品質(zhì)量和開(kāi)發(fā)效率的重要因素。素質(zhì)高的人員的開(kāi)發(fā)效率比素質(zhì)低的人員的開(kāi)發(fā)效率可能高幾倍至幾十倍,而且素質(zhì)高的人員所開(kāi)發(fā)的軟件中的錯(cuò)誤明顯少于素質(zhì)低的人員所開(kāi)發(fā)的軟件中的錯(cuò)誤。此外,隨著開(kāi)發(fā)小組人員數(shù)目的增加,因?yàn)榻涣髑闆r討論問(wèn)題而造成通信開(kāi)銷也急劇增加。1.3.1軟件工程的定義和原理47承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性Boehm提出應(yīng)把承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性作為軟件工程的第七條基本原理。按照這條原理,不僅要積極主動(dòng)地采納新的軟件技術(shù),而且要注意不斷總結(jié)經(jīng)驗(yàn)。例如,收集進(jìn)度和資源耗費(fèi)數(shù)據(jù),收集出錯(cuò)類型和問(wèn)題報(bào)告數(shù)據(jù)等。這些數(shù)據(jù)不僅可以用來(lái)評(píng)價(jià)新的軟件技術(shù)的效果,而且可以用來(lái)指明必須著重開(kāi)發(fā)的軟件工具和應(yīng)該優(yōu)先研究的技術(shù)。1.3.1軟件工程的定義和原理481.3.2軟件工程的目標(biāo)

組織實(shí)施軟件工程項(xiàng)目,從技術(shù)上和管理上采取了多項(xiàng)措施以后,最終希望得到項(xiàng)目的成功。成功指的是達(dá)到以下幾個(gè)主要的目標(biāo):付出較低的開(kāi)發(fā)成本;達(dá)到要求的軟件功能;取得較好的軟件性能;開(kāi)發(fā)的軟件易于移植;需要較低的維護(hù)費(fèi)用;能按時(shí)完成開(kāi)發(fā)工作,及時(shí)交付使用。。49501.3.3軟件工程的原則

軟件工程的目的是提高軟件生產(chǎn)率,提高軟件質(zhì)量,降低軟件成本。為了達(dá)到這個(gè)目的,在軟件的開(kāi)發(fā)過(guò)程中必須遵循以下軟件工程原則。抽象

抽象事物最基本的特征和行為,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論