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

下載本文檔

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

文檔簡(jiǎn)介

引言

1.《軟件工程》的地位

2.《軟件工程》課程本身

3.《軟件工程》考試第1章軟件工程學(xué)概述

1.1軟件危機(jī)

1.2軟件工程

1.3軟件生命周期

1.4軟件過(guò)程

1.5小結(jié)1.1軟件危機(jī)

迄今為止,計(jì)算機(jī)系統(tǒng)已經(jīng)歷了四個(gè)不同的發(fā)展階段:1946年~60年代初,是計(jì)算機(jī)軟件發(fā)展的初期,稱(chēng)為程序設(shè)計(jì)時(shí)期,其主要特征是程序生產(chǎn)方式為個(gè)體手工方式。20世紀(jì)60年代初~70年代初,是計(jì)算機(jī)軟件發(fā)展的第二個(gè)時(shí)期,這個(gè)時(shí)期稱(chēng)為程序系統(tǒng)時(shí)期。

20世紀(jì)70年代中期~80年代中期(跨越了整整10年),是計(jì)算機(jī)軟件發(fā)展的第三個(gè)時(shí)期,稱(chēng)為軟件工程時(shí)期。軟件的開(kāi)發(fā)以工程化的思想為指導(dǎo),用工程化的原則、方法和標(biāo)準(zhǔn)來(lái)開(kāi)發(fā)和維護(hù)軟件。20世紀(jì)80年代中期至今,這個(gè)時(shí)期稱(chēng)為面向?qū)ο髸r(shí)期,面向?qū)ο筌浖_(kāi)發(fā)技術(shù)在迅速取代傳統(tǒng)軟件工程開(kāi)發(fā)方法。

1.1軟件危機(jī)1.1.1軟件危機(jī)的介紹軟件危機(jī):是指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。

這些問(wèn)題絕不僅僅是不能正常運(yùn)行的軟件才具有的,實(shí)際上,幾乎所有軟件都不同程度地存在這些問(wèn)題。

1.1.1軟件危機(jī)的介紹具體來(lái)說(shuō),軟件危機(jī)主要有以下一些典型表現(xiàn):對(duì)軟件開(kāi)發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確。用戶(hù)對(duì)“已完成的”軟件系統(tǒng)不滿(mǎn)意的現(xiàn)象經(jīng)常發(fā)生。軟件產(chǎn)品的質(zhì)量往往靠不住。軟件常常是不可維護(hù)的。軟件通常沒(méi)有適當(dāng)?shù)奈臋n資料。軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升。軟件開(kāi)發(fā)生產(chǎn)率提高的速度,既跟不上硬件的發(fā)展速度,也遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢(shì)。1.1.2產(chǎn)生軟件危機(jī)的原因軟件獨(dú)有的特點(diǎn)給開(kāi)發(fā)和維護(hù)帶來(lái)困難軟件人員的錯(cuò)誤認(rèn)識(shí)軟件生產(chǎn)技術(shù)進(jìn)步緩慢軟件維護(hù)成本和難度急劇增加軟件開(kāi)發(fā)工具自動(dòng)化程度低圖1.1引入同一變動(dòng)付出的代價(jià)隨時(shí)間變化的趨勢(shì)1.1.2產(chǎn)生軟件危機(jī)的原因1.1.3消除軟件危機(jī)的途徑首先應(yīng)該對(duì)計(jì)算機(jī)軟件有一個(gè)正確的認(rèn)識(shí)。應(yīng)該推廣使用在實(shí)踐中總結(jié)出來(lái)的開(kāi)發(fā)軟件的成功的技術(shù)和方法,并且研究探索更好更有效的技術(shù)和方法。應(yīng)該開(kāi)發(fā)和使用更好的軟件工具。1.1.3消除軟件危機(jī)的途徑總之,為了消除軟件危機(jī),既要有技術(shù)措施(方法和工具),又要有必要的組織管理措施。軟件工程正是從管理和技術(shù)兩方面研究如何更好地開(kāi)發(fā)和維護(hù)計(jì)算機(jī)軟件的一門(mén)新興學(xué)科。1.2

軟件工程概括地說(shuō),軟件工程是指導(dǎo)計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)的工程學(xué)科。它采用工程的概念、原理、技術(shù)和方法來(lái)開(kāi)發(fā)與維護(hù)軟件,把經(jīng)過(guò)時(shí)間考驗(yàn)而證明是正確的管理技術(shù)和目前能夠得到的最有效的技術(shù)與方法結(jié)合起來(lái),以經(jīng)濟(jì)地開(kāi)發(fā)出高質(zhì)量的軟件并有效地維護(hù)它,這就是軟件工程。1.2.1軟件工程的介紹

軟件工程關(guān)注于大型程序的構(gòu)造

軟件工程的中心課題是控制復(fù)雜性

軟件經(jīng)常變化

開(kāi)發(fā)軟件的效率非常重要

和諧地合作是開(kāi)發(fā)軟件的關(guān)鍵

軟件必須有效地支持它的用戶(hù)

在軟件工程領(lǐng)域中通常由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品1.2.2軟件工程的基本原理用分階段的生命周期計(jì)劃嚴(yán)格管理堅(jiān)持進(jìn)行階段評(píng)審實(shí)行嚴(yán)格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計(jì)技術(shù)結(jié)果應(yīng)能清楚地審查開(kāi)發(fā)小組的人員應(yīng)該少而精承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性1.2.3軟件工程方法學(xué)通常把在軟件生命周期全過(guò)程中使用的一整套技術(shù)的集合稱(chēng)為方法學(xué)(methodology),也稱(chēng)為范型(paradigm)。在軟件工程范疇中,這兩個(gè)詞的含義基本相同。

軟件工程方法學(xué)包括三個(gè)要素,這就是方法、工具和過(guò)程。

目前使用得最廣泛的軟件工程方法學(xué),分別是傳統(tǒng)方法學(xué)和面向?qū)ο蠓椒▽W(xué)。1.2.3軟件工程方法學(xué)

1.傳統(tǒng)方法學(xué)傳統(tǒng)方法學(xué)也稱(chēng)為生命周期方法學(xué)或結(jié)構(gòu)化范型。它采用結(jié)構(gòu)化技術(shù)(結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)、結(jié)構(gòu)程序設(shè)計(jì)和結(jié)構(gòu)化測(cè)試)來(lái)完成軟件開(kāi)發(fā)的各項(xiàng)任務(wù),并使用適當(dāng)?shù)能浖ぞ呋蜍浖こ汰h(huán)境來(lái)支持結(jié)構(gòu)化技術(shù)的運(yùn)用。1.2.3軟件工程方法學(xué)

2.面向?qū)ο蠓椒▽W(xué)

當(dāng)軟件規(guī)模較大,或者對(duì)軟件的需求是模糊的或隨時(shí)間變化的時(shí)候,使用結(jié)構(gòu)化范型開(kāi)發(fā)軟件往往不成功;此外,使用傳統(tǒng)方法學(xué)開(kāi)發(fā)出的軟件,維護(hù)起來(lái)通常都很困難。與傳統(tǒng)方法學(xué)相反,面向?qū)ο蠓椒▽W(xué)把數(shù)據(jù)和行為看成同等重要,它是一種以數(shù)據(jù)為主線,把數(shù)據(jù)和對(duì)數(shù)據(jù)的操作緊密地結(jié)合在一起的方法。1.2.3軟件工程方法學(xué)2.面向?qū)ο蠓椒▽W(xué)

面向?qū)ο蠓椒▽W(xué)具有下述四個(gè)要點(diǎn)。把對(duì)象(Object)作為融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為的統(tǒng)一的軟件構(gòu)件。把所有對(duì)象都劃分成類(lèi)(Class)。按照父類(lèi)(或稱(chēng)為基類(lèi))與子類(lèi)(或稱(chēng)為派生類(lèi))的關(guān)系,把若干個(gè)相關(guān)類(lèi)組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)(也稱(chēng)為類(lèi)等級(jí))。對(duì)象彼此之間僅能通過(guò)發(fā)送消息互相聯(lián)系。1.2.3軟件工程方法學(xué)2.面向?qū)ο蠓椒▽W(xué)

面向?qū)ο蠓椒▽W(xué)的出發(fā)點(diǎn)和基本原則,是盡可能模擬人類(lèi)習(xí)慣的思維方式,使開(kāi)發(fā)軟件的方法與過(guò)程盡可能接近人類(lèi)認(rèn)識(shí)世界解決問(wèn)題的方法與過(guò)程,從而使得描述問(wèn)題的問(wèn)題空間與實(shí)現(xiàn)解法的解空間在結(jié)構(gòu)上盡可能一致。

1.2.3軟件工程方法學(xué)

傳統(tǒng)方法學(xué)強(qiáng)調(diào)自頂向下順序完成軟件開(kāi)發(fā)的各階段任務(wù)。

用面向?qū)ο蠓椒▽W(xué)開(kāi)發(fā)軟件的過(guò)程,是一個(gè)主動(dòng)地多次反復(fù)迭代的演化過(guò)程。面向?qū)ο蠓椒ㄔ诟拍詈捅硎痉椒ㄉ系囊恢滦?,保證了在各項(xiàng)開(kāi)發(fā)活動(dòng)之間的平滑(無(wú)縫)過(guò)渡。1.3

軟件生命周期軟件生命周期由軟件定義、開(kāi)發(fā)和運(yùn)行維護(hù)三個(gè)時(shí)期組成,每個(gè)時(shí)期又可以進(jìn)一步劃分成若干個(gè)階段。軟件定義時(shí)期劃分為三個(gè)階段:?jiǎn)栴}定義、可行性研究、需求分析。開(kāi)發(fā)時(shí)期通常由下述四個(gè)階段組成:概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和單元測(cè)試、綜合測(cè)試。運(yùn)行維護(hù)時(shí)期的主要任務(wù)是使得軟件持久地滿(mǎn)足用戶(hù)需要并長(zhǎng)期為用戶(hù)服務(wù)。通常對(duì)維護(hù)時(shí)期不再進(jìn)一步劃分階段。1.3

軟件生命周期問(wèn)題定義:在問(wèn)題定義階段,軟件開(kāi)發(fā)人員應(yīng)該清楚:“要解決什么問(wèn)題”。可行性研究:知道了要解決的問(wèn)題,在這個(gè)階段應(yīng)該清楚“用什么辦法解決這個(gè)問(wèn)題”,保證在技術(shù)上、實(shí)效上、法律上都是行得通的。需求分析:確定軟件的功能和性能。總體設(shè)計(jì):設(shè)計(jì)軟件的總體結(jié)構(gòu),將一個(gè)大系統(tǒng)按照功能設(shè)計(jì)成小模塊,每個(gè)模塊完成一個(gè)相對(duì)獨(dú)立的小功能。總體設(shè)計(jì)有時(shí)也稱(chēng)概要設(shè)計(jì)。1.3

軟件生命周期詳細(xì)設(shè)計(jì):即模塊設(shè)計(jì),這個(gè)階段是對(duì)每個(gè)模塊設(shè)計(jì)具體的算法和數(shù)據(jù)結(jié)構(gòu),可以包括具體細(xì)節(jié),即程序的詳細(xì)規(guī)格說(shuō)明(類(lèi)似于工程設(shè)計(jì)中的施工圖紙)。編碼及單元測(cè)試:這個(gè)階段的主要任務(wù)是根據(jù)詳細(xì)設(shè)計(jì)的結(jié)果,用一種程序設(shè)計(jì)語(yǔ)言,編寫(xiě)正確的源程序,并且對(duì)每段程序進(jìn)行嚴(yán)格測(cè)試。要求源程序容易理解、容易維護(hù)。綜合測(cè)試:通過(guò)測(cè)試使軟件達(dá)到預(yù)定的要求。最基本的測(cè)試是集成測(cè)試和驗(yàn)收測(cè)試。軟件維護(hù):軟件投入運(yùn)行后,通常有四類(lèi)維護(hù)活動(dòng):改正性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)、預(yù)防性維護(hù)。1.4軟件過(guò)程1.4軟件過(guò)程軟件過(guò)程定義了運(yùn)用軟件開(kāi)發(fā)方法的順序、應(yīng)該交付的文檔資料、為保證軟件質(zhì)量和協(xié)調(diào)變化所需要采取的管理措施以及軟件開(kāi)發(fā)各個(gè)階段任務(wù)完成的標(biāo)志。通常使用軟件過(guò)程模型來(lái)描述軟件過(guò)程,它規(guī)定了把軟件生命周期劃分成哪些階段及各個(gè)階段的執(zhí)行順序。八種軟件過(guò)程模型:瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型、Rational統(tǒng)一過(guò)程、敏捷過(guò)程與極限編程、微軟過(guò)程。1.4.1瀑布模型圖1.3實(shí)際的瀑布模型

圖1.2

傳統(tǒng)的瀑布模型

特點(diǎn):(1)階段間具有順序性和依賴(lài)性(2)推遲實(shí)現(xiàn)的觀點(diǎn)(3)質(zhì)量保證的觀點(diǎn)1.4.1瀑布模型瀑布模型的優(yōu)點(diǎn):

1.它可強(qiáng)迫開(kāi)發(fā)人員采用規(guī)范的開(kāi)發(fā)方法(例如,結(jié)構(gòu)化技術(shù))。

2.它嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔。

3.它要求每個(gè)階段所交出的一切產(chǎn)品都必須經(jīng)過(guò)質(zhì)量保證小組的仔細(xì)驗(yàn)證。缺陷:由于瀑布模型幾乎完全依賴(lài)于書(shū)面的規(guī)格說(shuō)明,有可能導(dǎo)致最終開(kāi)發(fā)出的軟件產(chǎn)品不能真正滿(mǎn)足用戶(hù)的需要。1.4.2快速原型模型

所謂快速原型是快速建立起來(lái)的可以在計(jì)算機(jī)上運(yùn)行的程序,它能完成的功能往往是最終的軟件產(chǎn)品所能完成的功能的一個(gè)子集。模型的主要優(yōu)點(diǎn):軟件產(chǎn)品的開(kāi)發(fā)基本上是線性順序進(jìn)行的。圖1.4

快速原型模型1.4.3增量模型圖1.5

增量模型增量模型也稱(chēng)為漸增模型,使用增量模型開(kāi)發(fā)軟件時(shí),把軟件產(chǎn)品作為一系列的增量構(gòu)件來(lái)設(shè)計(jì)、編碼、集成和測(cè)試。每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠完成特定的功能。1.4.3增量模型圖1.6風(fēng)險(xiǎn)更大的增量模型1.4.3增量模型人員分配靈活,剛開(kāi)始不用投入大量人力資源;如果核心產(chǎn)品很受歡迎,則可增加人力實(shí)現(xiàn)下一個(gè)增量;能在短時(shí)間內(nèi)向用戶(hù)提交可完成部分工作的產(chǎn)品;逐步增加產(chǎn)品功能,可使用戶(hù)有較充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品。

優(yōu)點(diǎn):缺點(diǎn):并行開(kāi)發(fā)構(gòu)件可能遇到不能集成的風(fēng)險(xiǎn);增量模型本身的矛盾性,使軟件過(guò)程的控制失去整體性。

1.4.3增量模型適用范圍:進(jìn)行已有產(chǎn)品升級(jí)或新版本開(kāi)發(fā),增量模型非常適合;對(duì)完成期限嚴(yán)格要求的產(chǎn)品,可以使用增量模型;對(duì)所開(kāi)發(fā)的領(lǐng)域比較熟悉而且已有原型系統(tǒng),增量模型也是非常適合的。

1.4.4螺旋模型

螺旋模型的基本思想是,使用原型及其他方法以盡可能地降低風(fēng)險(xiǎn)。理解這種模型的一個(gè)簡(jiǎn)易方法,是把它看作在每個(gè)階段之前都增加了風(fēng)險(xiǎn)分析過(guò)程的快速原型模型。圖1.6簡(jiǎn)化的螺旋模型1.4.4螺旋模型

優(yōu)點(diǎn):有利于已有軟件的重用;減少過(guò)多測(cè)試帶來(lái)的風(fēng)險(xiǎn);維護(hù)只是模型的另一個(gè)周期。

缺點(diǎn):很難正確評(píng)估軟件開(kāi)發(fā)風(fēng)險(xiǎn)。圖1.7完整的螺旋模型1.4.5噴泉模型圖1.9噴泉模型適用于面向?qū)ο蠓椒āV鲝埛治龊驮O(shè)計(jì)過(guò)程的重疊、不嚴(yán)格區(qū)分。模塊集成過(guò)程:反復(fù)經(jīng)過(guò)分析、設(shè)計(jì)、測(cè)試、集成,再分析、設(shè)計(jì)、測(cè)試、集成。1.4.5噴泉模型可以提高軟件開(kāi)發(fā)效率,節(jié)省開(kāi)發(fā)時(shí)間,適應(yīng)于面向?qū)ο蟮能浖_(kāi)發(fā)過(guò)程

;可以從任何一個(gè)開(kāi)發(fā)階段(泡泡)轉(zhuǎn)到其它任一個(gè)開(kāi)發(fā)階段,各階段之間沒(méi)有明顯的界限。優(yōu)點(diǎn):缺點(diǎn):開(kāi)發(fā)中需要大量開(kāi)發(fā)人員,不利于項(xiàng)目管理

;這種模型要求嚴(yán)格管理文檔,使得審核難度加大。

1.4.6Rational統(tǒng)一過(guò)程圖1.10RUP軟件開(kāi)發(fā)生命周期

RUP(RationalUnifiedProcess)使用UML。采用用例驅(qū)動(dòng)和架構(gòu)優(yōu)先的策略。采用迭代增量建造方法。1.4.6Rational統(tǒng)一過(guò)程采用迭代方式開(kāi)發(fā)軟件有效地管理需求使用基于構(gòu)件的體系結(jié)構(gòu)可視化軟件建模嚴(yán)格驗(yàn)證軟件質(zhì)量控制軟件變更特點(diǎn):1.4.7敏捷過(guò)程與極限編程根據(jù)以下4個(gè)價(jià)值觀提出的軟件過(guò)程統(tǒng)稱(chēng)為敏捷過(guò)程:

1.個(gè)體和交互勝過(guò)過(guò)程和工具。

2.可以工作的軟件比面面俱到的文檔更重要。

3.與客戶(hù)的合作比合同談判更重要。

4.及時(shí)響應(yīng)變化勝過(guò)遵循計(jì)劃。1.4.7敏捷過(guò)程與極限編程

ExtremeProgramming(極限編程,簡(jiǎn)稱(chēng)XP)是敏捷過(guò)程的典型代表。它是由一系列簡(jiǎn)單卻互相依賴(lài)的實(shí)踐組成。這些實(shí)踐結(jié)合在一起形成了一個(gè)勝于部分結(jié)合的整體。

XP是一種近螺旋式的開(kāi)發(fā)方法,它將復(fù)雜的開(kāi)發(fā)過(guò)程分解為一個(gè)個(gè)相對(duì)比較簡(jiǎn)單的小周期;通過(guò)積極的交流、反饋以及其它一系列的方法,開(kāi)發(fā)人員和客戶(hù)可以非常清楚開(kāi)發(fā)進(jìn)度、變化、待解決的問(wèn)題和潛在的困難等,并根據(jù)實(shí)際情況及時(shí)地調(diào)整開(kāi)發(fā)過(guò)程。1.4.8微軟過(guò)程

微軟過(guò)程準(zhǔn)則(書(shū)P29)

微軟軟件生命周期

圖1.13微軟軟件生命周期階段劃分和主要

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論