第1章軟件工程基礎(chǔ)_第1頁
第1章軟件工程基礎(chǔ)_第2頁
第1章軟件工程基礎(chǔ)_第3頁
第1章軟件工程基礎(chǔ)_第4頁
第1章軟件工程基礎(chǔ)_第5頁
已閱讀5頁,還剩61頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

基于CMMI的軟件工程第一章軟件工程基礎(chǔ)什么是軟件? “軟件(software)”一詞,用于描述計算機(jī)中的非硬件成分,出現(xiàn)于50年代,1960年前后才廣為流傳,國內(nèi)由中科院軟件所最早定名。目前軟件指計算機(jī)系統(tǒng)中的程序及其文檔。什么是軟件危機(jī)?

1968年NATO會議提出“軟件危機(jī)”,今天仍然存在。表現(xiàn)為:(1)對軟件的需求遠(yuǎn)超出現(xiàn)有的生產(chǎn)能力,一方面信息技術(shù)的爆炸性增長促進(jìn)了對新軟件的空前需求,另一方面軟件系統(tǒng)的規(guī)模和復(fù)雜性不斷增長,而用來開發(fā)這些軟件的資源沒有與上述需求保持同步;(2)人們依賴于脆弱的軟件,目前的軟件不可靠、缺乏安全性、性能下降、出錯、難以升級,73%的軟件項目被延遲、超資、取消或失?。唬?)構(gòu)造可靠、安全軟件的技術(shù)能力不足,過去40年,硬件性能至少跨越了8個重要的階段,但開發(fā)軟件的能力未能與硬件提供的機(jī)會保持同步。以下給出幾個應(yīng)用需求不斷增加和規(guī)模增大的例子:比如航天飛機(jī)有4000萬行代碼、空間站是10億行代碼,大家比較熟悉的Windows系統(tǒng)也有4500-6000萬行代碼(Windows95:1500萬行;Windows98:1800萬行;WindowsXP:3500萬行;WindowsVista:5000萬行)。

焦油坑-摘自《人月神話》焦油坑-摘自《人月神話》

史前史中,沒有別的場景比巨獸在焦油坑中垂死掙扎的場面更令人震撼。上帝見證著恐龍、猛犸象、劍齒虎在焦油中掙扎。它們掙扎得越是猛烈,焦油糾纏得越緊,沒有任何猛獸足夠強(qiáng)壯或具有足夠的技巧,能夠掙脫束縛,它們最后都沉到了坑底。過去幾十年的大型系統(tǒng)開發(fā)就猶如這樣一個焦油坑,很多大型和強(qiáng)壯的動物在其中劇烈地掙扎。他們中大多數(shù)開發(fā)出了可運(yùn)行的系統(tǒng)——不過,其中只有非常少數(shù)的項目滿足了目標(biāo)、時間進(jìn)度和預(yù)算的要求。各種團(tuán)隊,大型的和小型的,龐雜的和精干的,一個接一個淹沒在了焦油坑中。表面上看起來好像沒有任何一個單獨(dú)的問題會導(dǎo)致困難,每個都能被解決,但是當(dāng)它們相互糾纏和累積在一起的時候,團(tuán)隊的行動就會變得越來越慢。對問題的麻煩程度,每個人似乎都會感到驚訝,并且很難看清問題的本質(zhì)。不過,如果我們想解決問題,就必須試圖先去理解它。20世紀(jì)軟件發(fā)展的回顧與啟示 歸納軟件在20世紀(jì)的發(fā)展,可以得到一些基本結(jié)論:(1)詳細(xì)設(shè)計與編程實現(xiàn)基本成熟;(2)需求分析與質(zhì)量保障難度較大;(3)高級自動化技術(shù)目前實行困難;(4)軟件工程管理的作用日益突出。軟件工程發(fā)展史上各個階段的里程碑是:(1)70年代:程序設(shè)計方法學(xué)、結(jié)構(gòu)化分析和設(shè)計、抽象數(shù)據(jù)類型、軟件工具;(2)80年代:軟件開發(fā)方法學(xué)、軟件工程環(huán)境(CASE)、面向?qū)ο蠹夹g(shù);(3)90年代:軟件復(fù)用和軟件構(gòu)件技術(shù)、軟件過程、需求工程。技術(shù)并不能唯一保證達(dá)到預(yù)期的目標(biāo)和效果,開發(fā)單位過程的改善是達(dá)到目標(biāo)的重要因素。但過程改善將導(dǎo)致企業(yè)組織、管理方式的改變,需要高層的承諾和長期的投資。21世紀(jì)初的軟件開發(fā)技術(shù)20世紀(jì)的最后十幾年,信息技術(shù)范圍內(nèi)最具有深遠(yuǎn)影響的技術(shù)進(jìn)步是Internet的出現(xiàn),并迅速發(fā)展成為當(dāng)今世界上覆蓋面最廣、規(guī)模最大、信息資源最豐富的計算機(jī)信息網(wǎng)絡(luò),深刻地改變了傳統(tǒng)的技術(shù)以及應(yīng)用、業(yè)務(wù)和產(chǎn)業(yè)模式,也成為影響21世紀(jì)至少初期(前20年)的主要因素。

Internet計算平臺具有開放、動態(tài)、多變的特征,體現(xiàn)出無統(tǒng)一控制的“真”分布性,節(jié)點(diǎn)的高度自治性,節(jié)點(diǎn)鏈接的開放性和動態(tài)性,人、設(shè)備和軟件的多重異構(gòu)性,實體行為的不可預(yù)測性,使用方式的個性化和靈活性,網(wǎng)絡(luò)連接環(huán)境的多樣性等特點(diǎn),也對傳統(tǒng)學(xué)科提出挑戰(zhàn):傳統(tǒng)軟件工程基于實體驅(qū)動和確定目標(biāo)、有序控制的開發(fā)模式開始讓位于Internet下智能軟件工程基于協(xié)同驅(qū)動和動態(tài)目標(biāo)、實體聚合的開發(fā)模式。軟件開發(fā)技術(shù)將呈現(xiàn)如下特征:(1)基礎(chǔ)平臺:網(wǎng)絡(luò)化(Internet化);(2)應(yīng)用方式:開放化、服務(wù)化;(3)核心技術(shù):主體化、協(xié)同化;(4)運(yùn)行支撐:中件化、多樣化;(5)開發(fā)方式:復(fù)用化、工程化;(6)用戶界面:自然化;(7)發(fā)展趨勢:用戶主導(dǎo)。21世紀(jì)初的軟件過程技術(shù)90年代后,隨著軟件規(guī)模日益增大和應(yīng)用領(lǐng)域的日益廣泛,工業(yè)化軟件生產(chǎn)日益成為朝陽產(chǎn)業(yè)而在新的世界經(jīng)濟(jì)格局中占領(lǐng)重要一隅。工業(yè)化的軟件過程技術(shù)和質(zhì)量保障技術(shù),已經(jīng)成為發(fā)展軟件產(chǎn)業(yè)的重要支柱。軟件過程隨著軟件組織的特點(diǎn)不同和商業(yè)目標(biāo)不同,經(jīng)常處于動態(tài)的調(diào)整和定義與重定義狀態(tài)。所以過程技術(shù)必須支持過程的動態(tài)定義和過程流的動態(tài)重組。軟件過程流本質(zhì)上由工作流組成。過程改善的關(guān)鍵:可以明確標(biāo)識當(dāng)前狀態(tài),并明確改進(jìn)的方向。目前國際上軟件過程方面代表性技術(shù)有:CMM(CapabilityMaturityModel)、PMBOK(項目管理知識體系)、CMMI(CapabilityMaturityModelIntegration);ISO9001(質(zhì)量管理體系標(biāo)準(zhǔn))等。軟件過程的質(zhì)量改進(jìn)通常包括如下步驟:(1)了解開發(fā)過程的現(xiàn)狀;(2)期望的開發(fā)過程的目標(biāo);(3)按優(yōu)先級確定所需的改進(jìn)工作;(4)形成完成改進(jìn)工作的計劃;(5)分配執(zhí)行計劃的資源;(6)執(zhí)行和完成計劃。以上循環(huán)。軟件工程定義 雖然有很多作者都給出了軟件工程的定義,但FritzBauer[NAU69]在NATO會議上給出的定義仍是進(jìn)一步展開討論的基礎(chǔ): 軟件工程是為了經(jīng)濟(jì)地獲得可靠的和能在實際機(jī)器上高效運(yùn)行的軟件而建立和使用的好的工程原則。 幾乎每一個讀者都忍不住想在這個定義上增加點(diǎn)什么。它沒有提到軟件質(zhì)量的技術(shù)層面,也沒有直接談到用戶滿意度或按時交付產(chǎn)品的要求,它忽略了測度和度量的重要性,甚至沒有闡明一個成熟的過程的重要性。但Bauer的定義給我們提供了一個基線。什么是可以應(yīng)用到計算機(jī)軟件開發(fā)中的“好的工程原則”?我們?nèi)绾巍敖?jīng)濟(jì)地”建造軟件使得其可靠性高?如何才能創(chuàng)建出能夠在多個、而不是一個不同的實際機(jī)器上“高效運(yùn)行”的程序?這些都是進(jìn)一步挑戰(zhàn)軟件工程師的問題。 IEEE[IEE93]給出了一個更加綜合的定義:

軟件工程:(1)將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)的過程,即將工程化應(yīng)用于軟件中。(2)(1)中所述方法的研究。軟件工程的主要環(huán)節(jié)軟件工程的線性模型軟件工程的漸增式模型軟件工程模型 最早出現(xiàn)的軟件工程模型是線性模型(又稱瀑布模型)。線性模型太理想化,太單純,已不再適合現(xiàn)代的軟件開發(fā)模式,幾乎被業(yè)界拋棄。偶而被人提起,都屬于被貶對象,未被留一絲惋惜。但我們應(yīng)該認(rèn)識到,“線性”是人們最容易掌握并能熟練應(yīng)用的思想方法。當(dāng)人們碰到一個復(fù)雜的“非線性”問題時,總是千方百計地將其分解或轉(zhuǎn)化為一系列簡單的線性問題,然后逐個解決。一個軟件系統(tǒng)的整體可能是復(fù)雜的,而單個子程序總是簡單的,可以用線性的方式來實現(xiàn),否則干活就太累了。線性是一種簡潔,簡潔就是美。當(dāng)我們領(lǐng)會了線性的精神,就不要再呆板地套用線性模型的外表,而應(yīng)該用活它。套用固定的模型不是程序員的聰明之舉。第一章軟件工程基礎(chǔ)中國軟件企業(yè)生命周期模型軟件工程基本原理質(zhì)量管理體系ISO9001項目管理知識體系PMBOK軟件能力成熟度模型集成CMMI軟件過程管理標(biāo)準(zhǔn)化國內(nèi)動態(tài)軟件企業(yè)發(fā)展趨勢圖到達(dá)A點(diǎn)的條件產(chǎn)品定位準(zhǔn)確有一個創(chuàng)業(yè)團(tuán)隊最低的資金投入到達(dá)B點(diǎn)時的表現(xiàn)內(nèi)部管理瓶頸創(chuàng)業(yè)團(tuán)隊的決策問題有限空間內(nèi)的市場競爭加劇發(fā)展時間到達(dá)A點(diǎn):一兩年即可,可以叫創(chuàng)業(yè)期A->B點(diǎn):3、5年,企業(yè)在B點(diǎn)很容易死掉,老板可能還不知道是怎么死的B點(diǎn)時重點(diǎn)解決的是內(nèi)部管理問題,包括決策的流程化。第一章軟件工程基礎(chǔ)中國軟件企業(yè)生命周期模型軟件工程基本原理質(zhì)量管理體系ISO9001項目管理知識體系PMBOK軟件能力成熟度模型集成CMMI軟件過程管理標(biāo)準(zhǔn)化國內(nèi)動態(tài)軟件開發(fā)中存在的問題硬件的發(fā)展一直超過軟件,難以發(fā)揮硬件的所有潛能建造新程序的能力遠(yuǎn)遠(yuǎn)不能滿足人們對新程序的需求,同時開發(fā)速度不能滿足商業(yè)和市場的要求計算機(jī)的普遍使用對可靠性要求越來越高,如果軟件出錯,會造成巨大的經(jīng)濟(jì)損失,甚至可能給人類帶來災(zāi)難拙劣的設(shè)計和資源的缺乏使得我們難以支持和增強(qiáng)已有軟件為什么?為什么需要那么長時間才能結(jié)束開發(fā)?為什么成本如此之高?為什么我們不能在把軟件交給客戶之前就發(fā)現(xiàn)所有的錯誤?為什么在軟件開發(fā)過程中難以度量其進(jìn)展?從軟件企業(yè)生命周期模型來看,這些為什么能否解決好,關(guān)系到一個企業(yè)生命的長短。軟件的特征軟件特征一

軟件是由開發(fā)或工程化而形成的,而不是傳統(tǒng)意義上的制造產(chǎn)生的。雖然在軟件開發(fā)和硬件制造之間有一些相似之處,但兩者本質(zhì)上是不同的。這兩者,都可以通過良好的設(shè)計獲得高質(zhì)量,但硬件在制造過程中可能會引入質(zhì)量問題,這種情況對于軟件而言幾乎不存在(或是很容易改正)。軟件成為產(chǎn)品之后,其制造只是簡單的拷貝而已;兩者都依賴于人,但參與的人和完成的工作之間的關(guān)系不同;兩者都是建造一個產(chǎn)品,但方法不同。軟件成本集中于開發(fā)上,這意味著軟件項目不能象硬件制造項目那樣來管理。軟件特征二

軟件不會“磨損隱藏的錯誤會引起程序在其生命初期具有較高的故障率。但這些錯誤改正之后(我們假設(shè)理想情況下改正過程中并不引入其他錯誤),曲線就趨于平穩(wěn)。軟件不會磨損,不過它會退化在其生命期中,軟件會經(jīng)歷修改(維護(hù)),隨著這些修改,有可能會引入新的錯誤,使得故障率曲線呈現(xiàn)為鋸齒形。在該曲線能夠恢復(fù)到原來的穩(wěn)定狀態(tài)的故障率之前,又需要新的修改,又引起一個新的鋸齒。慢慢地,最小故障率就開始提高了——軟件的退化由于修改而發(fā)生了。軟件特征三

大多數(shù)軟件是自定的,而不是通過已有的構(gòu)件組裝而來的。我們先看一看一個基于微處理器的控制硬件是如何設(shè)計和建造出來的。設(shè)計工程師畫一個簡單的數(shù)字電路圖,做一些基本的分析以保證可以實現(xiàn)預(yù)定的功能,然后查閱所需的數(shù)字零件的目錄。每一個集成電路(通常稱為“IC”或“芯片”)都有一個零件編號、固定的功能、定義好的接口和一組標(biāo)準(zhǔn)的集成指南。每一個選定的零件,都可以在貨架上買到。而軟件設(shè)計者就沒有上述這種榮幸了。幾乎沒有軟件構(gòu)件。有可能在貨架上買到的軟件,它本身就是一個完整的軟件,而不能作為構(gòu)件再組裝成新的程序。雖然關(guān)于“軟件復(fù)用”已有大量論著,但這種概念的成功實現(xiàn)還只是剛剛開始。軟件工程7條基本原理1、按照軟件生命周期的階段劃分制定計劃,嚴(yán)格依據(jù)計劃進(jìn)行管理2、堅持進(jìn)行階段評審3、實行嚴(yán)格的產(chǎn)品控制4、采用現(xiàn)代程序設(shè)計技術(shù)5、結(jié)果應(yīng)能清楚地審查6、開發(fā)小組的人員應(yīng)該少而精7、承認(rèn)不斷改進(jìn)軟件工程實踐的必要性軟件過程概念:當(dāng)開發(fā)產(chǎn)品或構(gòu)建系統(tǒng)時,遵循一系列可預(yù)測的步驟(即路線圖)是非常重要的,它有助于及時交付高質(zhì)量的產(chǎn)品。軟件開發(fā)中所遵循的路線圖就稱為“軟件過程”人員:軟件工程師及其管理人員根據(jù)需要調(diào)整開發(fā)過程,并遵循該過程。除此之外,軟件的需求方也需要參與過程的定義、建立和測試重要性:軟件過程提高了軟件工程活動的穩(wěn)定性、可控性和有組織性,如果沒有過程約束,軟件活動將失控并變得混亂。但是,現(xiàn)代軟件工程方法必須是“靈活的”也就是要求軟件工程活動、控制以及文檔的編制適合于項目團(tuán)隊和要開發(fā)的產(chǎn)品。軟件過程(續(xù))步驟:采用的過程依賴于所構(gòu)造軟件的特點(diǎn)。工作產(chǎn)品:從軟件工程師的觀點(diǎn)來看,工作產(chǎn)品就是過程定義的一系列活動和任務(wù)的結(jié)果,即程序、文檔和數(shù)據(jù)。質(zhì)量保證措施:有大量的軟件過程評估機(jī)制,開發(fā)機(jī)構(gòu)可以評估其軟件過程的“成熟度”。然而,評價所采用過程的有效性,最好的指標(biāo)還是所構(gòu)建產(chǎn)品的質(zhì)量、適時性和長期生存能力。CMM——CapabilityMaturityModel,能力成熟度模型;CMMI——CapabilityMaturityModelIntegration,能力成熟度模型集成;PM——Projectmanagement,項目管理;PMBOK——(AGuidetotheProjectManagementBodyOfKnowledge——項目管理知識體系指南)三種產(chǎn)品質(zhì)量管理的標(biāo)準(zhǔn)體系第一章軟件工程基礎(chǔ)中國軟件企業(yè)生命周期模型軟件工程基本原理質(zhì)量管理體系ISO9001項目管理知識體系PMBOK軟件能力成熟度模型集成CMMI軟件過程管理標(biāo)準(zhǔn)化國內(nèi)動態(tài)ISO9001簡介ISO9001規(guī)定了企業(yè)質(zhì)量管理體系的基本要求,它是通用的,適用于所有行業(yè)或經(jīng)濟(jì)領(lǐng)域,不論其提供何種類別的產(chǎn)品。最新版本是2000版。ISO9001質(zhì)量管理8原則以顧客為中心。高層管理者推動。全員參與。采用過程方法。系統(tǒng)的管理。持續(xù)改進(jìn)。基于事實的決策?;ダ墓┓疥P(guān)系。建立和實施質(zhì)量管理體系的步驟:確定顧客的需求和期望;建立企業(yè)的質(zhì)量方針和質(zhì)量目標(biāo);確定實現(xiàn)質(zhì)量目標(biāo)所必需的過程和職責(zé);對每個過程實現(xiàn)質(zhì)量目標(biāo)的有效性確定測量方法;通過測量,確定每個過程的現(xiàn)行有效性;確定防止不合格項并消除產(chǎn)生原因的措施;尋找提高過程有效性和效率的機(jī)會;確定并優(yōu)先考慮那些能提供最佳結(jié)果的改進(jìn);為實施已確定的改進(jìn),對戰(zhàn)略、過程和資源進(jìn)行策劃;實施改進(jìn)計劃;監(jiān)控改進(jìn)效果;對照預(yù)期效果,評價實際結(jié)果;評審改進(jìn)活動,確定必要的糾正、跟蹤措施。ISO9001簡介(續(xù))過程方法任何“得到輸入并將其轉(zhuǎn)化為輸出”的序列活動均可視為過程。為使組織有效運(yùn)行,必須識別和管理許多內(nèi)部相互聯(lián)系的過程。通常,一個過程的輸出將直接形成下一個過程的輸入。系統(tǒng)識別和管理組織內(nèi)所使用的過程,特別是這些過程之間的相互作用,稱為“過程方法”。ISO9001標(biāo)準(zhǔn)鼓勵采用過程方法建立和實施質(zhì)量管理體系。ISO9001簡介(續(xù))質(zhì)量體系文件的分層結(jié)構(gòu)質(zhì)量手冊:質(zhì)量體系文件中的綱領(lǐng)性文件。闡明公司質(zhì)量方針、質(zhì)量目標(biāo)和質(zhì)量策略;描述影響和參與質(zhì)量活動的部門、崗位職責(zé)、權(quán)限和相互關(guān)系,同時概要描述了質(zhì)量體系的主體文件即程序文件(規(guī)程)。程序文件:質(zhì)量手冊的支持性文件,具體描述質(zhì)量活動各個過程、子過程以及各階段中所采取的措施和必需遵循的流程。規(guī)范和指導(dǎo)書:結(jié)合公司的具體情況而頒布的各類技術(shù)規(guī)范、工作條例及其配套考核細(xì)則。表單模板:包括質(zhì)量記錄模板、文檔模板等。某IT企業(yè)的質(zhì)量體系示例第一章軟件工程基礎(chǔ)中國軟件企業(yè)生命周期模型軟件工程基本原理質(zhì)量管理體系ISO9001項目管理知識體系PMBOK軟件能力成熟度模型集成CMMI軟件過程管理標(biāo)準(zhǔn)化國內(nèi)動態(tài)項目基本屬性 項目,是在限定時間內(nèi)、利用有限的資源、為完成有一定質(zhì)量要求的目標(biāo)而進(jìn)行的一系列有序活動的一次性組合。 充分認(rèn)識項目屬性,有利于做好項目管理。 項目的基本

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論