軟件工程01概述_第1頁(yè)
軟件工程01概述_第2頁(yè)
軟件工程01概述_第3頁(yè)
軟件工程01概述_第4頁(yè)
軟件工程01概述_第5頁(yè)
已閱讀5頁(yè),還剩62頁(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 1章章 概述概述第一章 軟件工程學(xué)概述1.1 軟件危機(jī)1.2 軟件工程中的常見(jiàn)問(wèn)題1.3 職業(yè)和道德上的責(zé)任軟件工程導(dǎo)論22022-3-151)軟件的定義軟件的定義Software)Program)Data)Document) Software = Program + Data + Document1.1 軟件危機(jī)2022-3-153軟件工程導(dǎo)論1.1 軟件危機(jī)n復(fù)雜性復(fù)雜性軟件是人類思維和智能的一種延伸和在異體上的再現(xiàn)軟件是人類思維和智能的一種延伸和在異體上的再現(xiàn), ,在規(guī)模上可能比任何由人類創(chuàng)造的其他實(shí)體都要復(fù)雜在規(guī)模上可能比任何由人類創(chuàng)造的其他實(shí)體都要復(fù)雜,復(fù)雜性

2、是軟件的本質(zhì)特性復(fù)雜性是軟件的本質(zhì)特性。n軟件的復(fù)雜性是必要屬性 n大量的組合狀態(tài);豐富的結(jié)構(gòu)和相互依賴性;良好的接口用以封裝內(nèi)部的復(fù)雜性 開(kāi)發(fā)問(wèn)題也會(huì)增加復(fù)雜性開(kāi)發(fā)問(wèn)題也會(huì)增加復(fù)雜性 n高效率的代碼通常是復(fù)雜的;重用通用化的組件意味著復(fù)雜的狀態(tài)連接;復(fù)雜的代碼難以維護(hù),導(dǎo)致設(shè)計(jì)上的更復(fù)雜軟件工程導(dǎo)論42022-3-151.1 軟件危機(jī)n一致性一致性軟件必須遵從人為的慣例并適應(yīng)已有的技術(shù)和軟件必須遵從人為的慣例并適應(yīng)已有的技術(shù)和系統(tǒng)系統(tǒng)n軟件必須遵循各種接口、協(xié)議和標(biāo)準(zhǔn);n有些情況下,兼容性是軟件開(kāi)發(fā)的目標(biāo)。軟件需要隨接口的不同而改變,隨時(shí)間的推移軟件需要隨接口的不同而改變,隨時(shí)間的推移而變化

3、,而這些變化是不同的人設(shè)計(jì)的結(jié)果。而變化,而這些變化是不同的人設(shè)計(jì)的結(jié)果。許多復(fù)雜性來(lái)自保持與其他接口的一致,對(duì)軟許多復(fù)雜性來(lái)自保持與其他接口的一致,對(duì)軟件的任何再設(shè)計(jì),都無(wú)法簡(jiǎn)化這些復(fù)雜特性。件的任何再設(shè)計(jì),都無(wú)法簡(jiǎn)化這些復(fù)雜特性。軟件工程導(dǎo)論52022-3-151.1 軟件危機(jī)n可變性可變性軟件產(chǎn)品扎根于文化的母體中;軟件產(chǎn)品扎根于文化的母體中;n各種應(yīng)用、用戶、自然及社會(huì)規(guī)律、計(jì)算機(jī)硬件等持續(xù)不斷地變化著,這些變化強(qiáng)迫著軟件隨之變化。 所有成功的軟件都會(huì)發(fā)生變更。所有成功的軟件都會(huì)發(fā)生變更。n當(dāng)人們發(fā)現(xiàn)軟件很有用時(shí),會(huì)在原有應(yīng)用范圍的邊界,或者在超越邊界的情況下使用軟件; n功能擴(kuò)展的壓

4、力主要來(lái)自那些喜歡基本功能,又對(duì)軟件提出了很多新用法的用戶們。軟件工程導(dǎo)論62022-3-151.1 軟件危機(jī)n不可見(jiàn)性不可見(jiàn)性軟件是不可見(jiàn)的和無(wú)法可視化的軟件是不可見(jiàn)的和無(wú)法可視化的n軟件的客觀存在不具有空間的形體特征,定義“需要做什么”成為軟件開(kāi)發(fā)的根本問(wèn)題。人們一直試圖使用不同的技術(shù)進(jìn)行軟件可視化人們一直試圖使用不同的技術(shù)進(jìn)行軟件可視化n如控制流程、數(shù)據(jù)流、依賴關(guān)系、UML等,但這些技術(shù)仍然無(wú)法給出準(zhǔn)確的、完整的描述。軟件仍然保持著無(wú)法可視化的固有特性軟件仍然保持著無(wú)法可視化的固有特性n從而剝奪了一些具有強(qiáng)大功能的概念工具的構(gòu)造思路。這種缺憾不僅限制了個(gè)人的設(shè)計(jì)過(guò)程,也嚴(yán)重地阻礙了相互之

5、間的交流。軟件工程導(dǎo)論 72022-3-151.1 軟件危機(jī)n軟件危機(jī) 軟件危機(jī)是指計(jì)算機(jī)軟件的軟件危機(jī)是指計(jì)算機(jī)軟件的開(kāi)發(fā)與維護(hù)開(kāi)發(fā)與維護(hù)過(guò)程中過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題,幾乎所有軟件都不所遇到的一系列嚴(yán)重問(wèn)題,幾乎所有軟件都不同程度地存在這些問(wèn)題。同程度地存在這些問(wèn)題。 軟件危機(jī)主要包含兩方面問(wèn)題:軟件危機(jī)主要包含兩方面問(wèn)題:n 如何開(kāi)發(fā)軟件以滿足社會(huì)對(duì)軟件日益增長(zhǎng)的需求n 如何更有效地維護(hù)數(shù)量不斷膨脹的已有軟件。軟件工程導(dǎo)論82022-3-151.1 軟件危機(jī)n 軟件危機(jī)的典型表現(xiàn):軟件危機(jī)的典型表現(xiàn): 對(duì)軟件開(kāi)發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確; 用戶對(duì)“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)

6、常發(fā)生; 軟件產(chǎn)品的質(zhì)量往往靠不住。 軟件通常很難維護(hù); 軟件往往沒(méi)有適當(dāng)?shù)奈臋n資料; 軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升; 軟件開(kāi)發(fā)生產(chǎn)率提高的速度遠(yuǎn)遠(yuǎn)不能滿足社會(huì)對(duì)軟件產(chǎn)品日益增長(zhǎng)的需求。軟件工程導(dǎo)論92022-3-151962年6月,美國(guó)飛向金星的第一個(gè)空間探測(cè)號(hào)(水手1號(hào)),因其飛艙中的計(jì)算機(jī)導(dǎo)航程序之一的一個(gè)語(yǔ)句的語(yǔ)義出錯(cuò),總是偏離航線無(wú)法取得成功。1965年1970年,美國(guó)范登堡基地因程序有錯(cuò)誤造成發(fā)射火箭多次失敗。10軟件工程導(dǎo)論2022-3-15類別參加人員數(shù)研制期限 產(chǎn)品規(guī)模 (源程序行數(shù))微型114周 0.5k小型116月 1k2k中型2512年 5k50k大型

7、52023年 50k100k甚大型100100045年 1M(=1000k)極大型20005000 510年 1M10M11軟件工程導(dǎo)論2022-3-15軟件工程導(dǎo)論12n例:Windows95有1000萬(wàn)行代碼 Windows2000有5000萬(wàn)行代碼Exchange2000和 Windows2000開(kāi)發(fā)人員結(jié)構(gòu)n Exchange2000Windows2000項(xiàng)目經(jīng)理25人約250人開(kāi)發(fā)人員140人約1700人測(cè)試人員350人約3200人2022-3-15 處在十字路口的中國(guó)軟件產(chǎn)業(yè) n主權(quán)大國(guó)必須建立基于自主技術(shù)的、完整的軟件產(chǎn)業(yè)體系。軟件本國(guó)提供率:中國(guó)1/3左右,美國(guó)97%n“印度模

8、式”還是“中國(guó)模式”n軟件人才結(jié)構(gòu)不合理,缺乏中高級(jí)軟件人才。軟件人員缺乏軟件工程化的概念。13軟件工程導(dǎo)論2022-3-15軟件需求與軟件技術(shù)關(guān)系示意圖14軟件工程導(dǎo)論2022-3-151.1 軟件危機(jī)n 產(chǎn)生產(chǎn)生軟件危機(jī)的原因軟件危機(jī)的原因 客觀原因:客觀原因:n軟件的不可見(jiàn)性在管理和控制軟件開(kāi)發(fā)過(guò)程相當(dāng)困難;n軟件維護(hù)意味著改正或修改原有設(shè)計(jì),從而使得軟件較難維護(hù);n軟件規(guī)模龐大,程序復(fù)雜性隨軟件規(guī)模指數(shù)增加,無(wú)法預(yù)見(jiàn)軟件可能遇到的每一種情況。軟件工程導(dǎo)論152022-3-151.1 軟件危機(jī)n 產(chǎn)生產(chǎn)生軟件危機(jī)的原因軟件危機(jī)的原因 主觀原因:主觀原因:n 計(jì)算機(jī)系統(tǒng)發(fā)展早期開(kāi)發(fā)軟件的個(gè)

9、體化特點(diǎn)使得許多軟件工程師對(duì)軟件開(kāi)發(fā)和維護(hù)有不少糊涂認(rèn)識(shí),主要表現(xiàn)在: 忽視軟件需求分析的重要性; 認(rèn)為軟件開(kāi)發(fā)就是寫(xiě)程序; 輕視軟件維護(hù)。軟件工程導(dǎo)論162022-3-15軟件工程導(dǎo)論17 引入同一變動(dòng)付出的代價(jià)隨時(shí)間變化的趨勢(shì)2022-3-15改正一個(gè)問(wèn)題需付出的代價(jià)需求分析結(jié)構(gòu)設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼集成測(cè)試系統(tǒng)測(cè)試現(xiàn)場(chǎng)改正一個(gè)問(wèn)題的估計(jì)費(fèi)用改正一個(gè)問(wèn)題估計(jì)的工作量20200200010005.02.50.050.5(美元)(人天)18軟件工程導(dǎo)論2022-3-151.1 軟件危機(jī)n消除軟件危機(jī)的途徑消除軟件危機(jī)的途徑 樹(shù)立對(duì)計(jì)算機(jī)軟件的正確認(rèn)識(shí)樹(shù)立對(duì)計(jì)算機(jī)軟件的正確認(rèn)識(shí)n軟件=程序+數(shù)據(jù)+文檔

10、 軟件開(kāi)發(fā)應(yīng)該是組織良好、管理嚴(yán)格、各類人員軟件開(kāi)發(fā)應(yīng)該是組織良好、管理嚴(yán)格、各類人員團(tuán)結(jié)協(xié)作共同完成的工程項(xiàng)目;團(tuán)結(jié)協(xié)作共同完成的工程項(xiàng)目; 積極開(kāi)發(fā)和使用計(jì)算機(jī)輔助軟件工程積極開(kāi)發(fā)和使用計(jì)算機(jī)輔助軟件工程(CASE)(CASE)工具工具 因此,消除軟件危機(jī)既要有技術(shù)措施(方法和工因此,消除軟件危機(jī)既要有技術(shù)措施(方法和工具),又要有必要的組織管理措施。具),又要有必要的組織管理措施。軟件工程導(dǎo)論192022-3-15201.2 軟件工程中的常見(jiàn)問(wèn)題(一)n什么是軟件?n什么是軟件工程?n軟件工程和計(jì)算機(jī)科學(xué)有何區(qū)別?n軟件工程和系統(tǒng)工程有何區(qū)別?n什么是軟件過(guò)程?n什么是軟件過(guò)程模型?軟件

11、工程導(dǎo)論2022-3-15211.2 軟件工程中的常見(jiàn)問(wèn)題(二)n什么是軟件過(guò)程的成本?n什么是軟件工程方法?n什么是CASE(計(jì)算機(jī)輔助軟件工程)?n什么是優(yōu)良軟件的特點(diǎn)?n軟件工程面臨的主要挑戰(zhàn)是什么?軟件工程導(dǎo)論2022-3-1522什么是軟件n軟件是程序和所有使用程序正確運(yùn)行所需要的相關(guān)文檔和配置信息。n軟件產(chǎn)品可能是為特定的顧客而開(kāi)發(fā)的,也可能是為一般市場(chǎng)而開(kāi)發(fā)的。n軟件成品可以分成以下兩類: 通用軟件產(chǎn)品定制軟件成品n這兩類產(chǎn)品的重要區(qū)別:軟件描述的提供者不同。通用軟件由開(kāi)發(fā)者給出定制軟件由客戶給出軟件工程導(dǎo)論2022-3-1523什么是軟件工程n軟件工程是一門工程學(xué)科,涉及軟件生

12、產(chǎn)的各個(gè)方面,從最初的系統(tǒng)描述一直到使用后期的系統(tǒng)維護(hù),都屬于其學(xué)科范疇。工程學(xué)科軟件生產(chǎn)的各個(gè)方面n軟件工程人員應(yīng)當(dāng)運(yùn)用系統(tǒng)的、有組織的工作方法來(lái)開(kāi)發(fā)高質(zhì)量的軟件。軟件工程導(dǎo)論2022-3-151.2 軟件工程n工程的概念 工程是將理論和所學(xué)的知識(shí)應(yīng)用于實(shí)踐的科學(xué),以便經(jīng)濟(jì)有效地解決實(shí)際問(wèn)題。 手工(Craft):小規(guī)模的設(shè)計(jì)與建造 -簡(jiǎn)單問(wèn)題與單一目標(biāo)n個(gè)人控制與個(gè)人技能 工程(Engineering): 大規(guī)模的設(shè)計(jì)與建造n復(fù)雜問(wèn)題與目標(biāo)分解n多人參與,需要考慮運(yùn)營(yíng)、管理、成本、質(zhì)量控制、安全等軟件工程導(dǎo)論24 2022-3-15軟件工程導(dǎo)論251.2 軟件工程 軟件工程簡(jiǎn)介危機(jī)n 工程

13、的概念 工程是將理論和所學(xué)的知識(shí)應(yīng)用于實(shí)踐的科學(xué),以便經(jīng)濟(jì)有效地解決實(shí)際問(wèn)題。手工(Craft): 小規(guī)模的設(shè)計(jì)與建造 -簡(jiǎn)單問(wèn)題與單一目標(biāo) -個(gè)人控制與個(gè)人技能工程(Engineering): 大規(guī)模的設(shè)計(jì)與建造-復(fù)雜問(wèn)題與目標(biāo)分解-多人參與,需要考慮運(yùn)營(yíng)、管理、成本、質(zhì)量控制、安全等 2022-3-15軟件工程25只有編碼的開(kāi)發(fā)過(guò)程 編碼實(shí)現(xiàn) 162022-3-15軟件工程導(dǎo)論261.1 軟件危機(jī) 軟件危機(jī)n 消除軟件危機(jī)的途徑樹(shù)立對(duì)計(jì)算機(jī)軟件的正確認(rèn)識(shí) 軟件=程序+數(shù)據(jù)+文檔軟件開(kāi)發(fā)應(yīng)該是組織良好、管理嚴(yán)格、各類人員團(tuán)結(jié)協(xié)作共同完成的工程項(xiàng)目;積極開(kāi)發(fā)和使用計(jì)算機(jī)輔助軟件工程(CASE)

14、工具 因此, 消除軟件危機(jī)既要有技術(shù)措施(方法和工具),又要有必要的組織管理措施。 2022-3-15軟件工程26工程化的軟件開(kāi)發(fā) 概念形成 ? 需求規(guī)格 說(shuō)明 ? 設(shè)計(jì) ? 實(shí)現(xiàn) 172022-3-151.2 軟件工程定義軟件工程定義(1) The establishment and use of sound engineering principles (methods) in order to obtain economically software that is reliable and works on real machines. (1968- Fritz Bauer) 軟件工程

15、就是建立和使用一套合理軟件工程就是建立和使用一套合理的工程原理,從而經(jīng)濟(jì)地獲得可靠的、的工程原理,從而經(jīng)濟(jì)地獲得可靠的、可以在實(shí)際機(jī)器上高效運(yùn)行的軟件??梢栽趯?shí)際機(jī)器上高效運(yùn)行的軟件。2022-3-1527軟件工程導(dǎo)論1.2 軟件工程定義軟件工程定義(2) Software engineering. (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the appl

16、ication of engineering to software. (2) The study of approaches as in (1). (IEEE(The Institute for Electrical and Electronic engineers) Std 610-1990.) 軟件工程是軟件工程是:(:(1)把系統(tǒng)的、規(guī)范的、把系統(tǒng)的、規(guī)范的、 可度量的途徑應(yīng)用于軟件開(kāi)發(fā)、運(yùn)行和維護(hù)過(guò)程,可度量的途徑應(yīng)用于軟件開(kāi)發(fā)、運(yùn)行和維護(hù)過(guò)程,也就是把工程應(yīng)用于軟件;(也就是把工程應(yīng)用于軟件;(2)研究)研究(1)中提到中提到的途徑。的途徑。2022-3-1528軟件工程導(dǎo)論1.2

17、 軟件工程n 軟件工程的概念軟件工程的概念Bauer, 1972 軟件工程是為了經(jīng)濟(jì)地獲得能夠在實(shí)際機(jī)器上高效運(yùn)行的可靠軟件而建立和使用的一系列好的工程化原則。CMU, 1990 軟件工程是以工程的形式應(yīng)用計(jì)算機(jī)科學(xué)和數(shù)學(xué)原理,從而經(jīng)濟(jì)有效地解決軟件問(wèn)題。IEEE, 1993 軟件工程是將系統(tǒng)性的、規(guī)范化的、可定量的方法應(yīng)用于軟件的開(kāi)發(fā)、運(yùn)行和維護(hù),即工程化應(yīng)用到軟件上; 對(duì)中所述方法的研究。 軟件工程導(dǎo)論29 2022-3-151.2 軟件工程定義軟件工程定義總之:總之: 軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理開(kāi)發(fā)軟件的工程。它借鑒管理科學(xué)等原理開(kāi)發(fā)軟

18、件的工程。它借鑒傳統(tǒng)工程的原則、方法,以提高質(zhì)量,降傳統(tǒng)工程的原則、方法,以提高質(zhì)量,降低成本為目的。低成本為目的。2022-3-1530軟件工程導(dǎo)論軟件工程的特性1. 軟件工程關(guān)注于大型程序的構(gòu)造2. 軟件工程的中心課題是控制復(fù)雜性3. 軟件經(jīng)常變化4. 開(kāi)發(fā)軟件的效率非常重要5. 和諧地合作是開(kāi)發(fā)軟件的關(guān)鍵6. 軟件必須有效地支持它的用戶7. 在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人2022-3-1531軟件工程導(dǎo)論1.2 軟件工程n軟件工程的本質(zhì)特征軟件工程的本質(zhì)特征 軟件工程關(guān)注于大型程序的構(gòu)造軟件工程關(guān)注于大型程序的構(gòu)造;n “大”與“小”的分界線并不十分清晰

19、。通常把一個(gè)人在較短時(shí)間內(nèi)寫(xiě)出的程序稱為小型程序,而把多人合作用時(shí)半年以上才寫(xiě)出的程序稱為大型程序。傳統(tǒng)的程序設(shè)計(jì)技術(shù)和工具是支持小型程序設(shè)計(jì)的,不能簡(jiǎn)單地把這些技術(shù)和工具用于開(kāi)發(fā)大型程序。n 事實(shí)上,在此處使用術(shù)語(yǔ)“程序”并不十分恰當(dāng),現(xiàn)在的軟件開(kāi)發(fā)項(xiàng)目通常構(gòu)造出包含若干個(gè)相關(guān)程序的“系統(tǒng)”。軟件工程導(dǎo)論32 2022-3-151.2 軟件工程n中心課題是控制復(fù)雜性中心課題是控制復(fù)雜性通常,軟件所解決的問(wèn)題十分復(fù)雜,以致不能把問(wèn)題作為一個(gè)整體通盤考慮。人們不得不把問(wèn)題分解,使得分解出的每個(gè)部分是可理解的,而且各部分之間保持簡(jiǎn)單的通信關(guān)系。用這種方法并不能降低問(wèn)題的整體復(fù)雜性,但是卻可使它變成

20、可以管理的。注意,許多軟件的復(fù)雜性主要不是由問(wèn)題的內(nèi)在復(fù)雜性造成的,而是由必須處理的大量細(xì)節(jié)造成的。軟件工程導(dǎo)論33 2022-3-151.2 軟件工程n軟件交付使用后仍需要經(jīng)常修改軟件交付使用后仍需要經(jīng)常修改絕大多數(shù)軟件都模擬了現(xiàn)實(shí)世界的某一部分。現(xiàn)實(shí)世界在不斷變化,軟件為了不被很快淘汰,必須隨著所模擬的現(xiàn)實(shí)世界一起變化。因此,在軟件系統(tǒng)交付使用后仍然需要耗費(fèi)成本,而且在開(kāi)發(fā)過(guò)程中必須考慮軟件將來(lái)可能的變化。軟件工程導(dǎo)論34 2022-3-151.2 軟件工程n開(kāi)發(fā)軟件的效率非常重要開(kāi)發(fā)軟件的效率非常重要目前,社會(huì)對(duì)新應(yīng)用系統(tǒng)的需求超過(guò)了人力資源所能提供的限度,軟件供不應(yīng)求的現(xiàn)象日益嚴(yán)重。因

21、此,軟件工程的一個(gè)重要課題就是,尋求開(kāi)發(fā)與維護(hù)軟件的更好更有效的方法和工具。軟件工程導(dǎo)論35 2022-3-151.2 軟件工程n開(kāi)發(fā)人員和諧地合作是成功開(kāi)發(fā)軟件的關(guān)鍵開(kāi)發(fā)人員和諧地合作是成功開(kāi)發(fā)軟件的關(guān)鍵軟件處理的問(wèn)題十分龐大,必須多人協(xié)同工作才能解決這類問(wèn)題。為了有效地合作,必須明確地規(guī)定每個(gè)人的責(zé)任和相互通信的方法。事實(shí)上僅有上述規(guī)定還不夠,每個(gè)人還必須嚴(yán)格地按規(guī)定行事。為了迫使大家遵守規(guī)定,應(yīng)該運(yùn)用標(biāo)準(zhǔn)和規(guī)程。通常,可以用工具來(lái)支持這些標(biāo)準(zhǔn)和規(guī)程??傊o(jì)律是成功地完成軟件開(kāi)發(fā)項(xiàng)目的一個(gè)關(guān)鍵。軟件工程導(dǎo)論36 2022-3-151.2 軟件工程n軟件必須有效地支持它的用戶軟件必須有效地

22、支持它的用戶開(kāi)發(fā)軟件的目的是支持用戶的工作。軟件提供的功能應(yīng)該能有效地協(xié)助用戶完成他們的工作。如果用戶對(duì)軟件系統(tǒng)不滿意,可以棄用該系統(tǒng),至少也會(huì)立即提出新的需求。因此,僅僅用正確的方法構(gòu)造系統(tǒng)還不夠,還必須構(gòu)造出正確的系統(tǒng)。有效地支持用戶意味著必須仔細(xì)地研究用戶,以確定適當(dāng)?shù)墓δ苄枨?、可用性要求及其他質(zhì)量要求(例如,可靠性、響應(yīng)時(shí)間等)。有效地支持用戶還意味著,軟件開(kāi)發(fā)不僅應(yīng)該提交軟件產(chǎn)品,而且應(yīng)該寫(xiě)出用戶手冊(cè)和培訓(xùn)材料,此外,還必須注意建立使用新系統(tǒng)的環(huán)境。軟件工程導(dǎo)論37 2022-3-151.2 軟件工程n在軟件工程領(lǐng)域中通常有具有一種文化背景的人替在軟件工程領(lǐng)域中通常有具有一種文化背景

23、的人替另一種文化背景的人開(kāi)發(fā)產(chǎn)品。另一種文化背景的人開(kāi)發(fā)產(chǎn)品。創(chuàng)造產(chǎn)品這個(gè)特性與前兩個(gè)特性緊密相關(guān)。軟件工程師是諸如Java程序設(shè)計(jì)、軟件體系結(jié)構(gòu)、測(cè)試或統(tǒng)一建模語(yǔ)言(UML)等方面的專家,他們通常并不是圖書(shū)館管理、航空控制或銀行事務(wù)等領(lǐng)域的專家,但是他們卻不得不為這些領(lǐng)域開(kāi)發(fā)應(yīng)用系統(tǒng)。缺乏應(yīng)用領(lǐng)域的應(yīng)用領(lǐng)域的相關(guān)知識(shí)相關(guān)知識(shí),是軟件開(kāi)發(fā)項(xiàng)目出現(xiàn)問(wèn)題的常見(jiàn)原因。軟件工程導(dǎo)論38 2022-3-151.3 軟件工程方法學(xué)n軟件工程包括技術(shù)和管理兩方面的內(nèi)容,是技術(shù)與管理緊密結(jié)合所形成的工程學(xué)科。n通常把在軟件生命周期全過(guò)程中使用的一整套技術(shù)方法的集合稱為方法學(xué)(methodology),也稱為范

24、型(paradigm)。在軟件工程領(lǐng)域中,這兩個(gè)術(shù)語(yǔ)的含義基本相同。n軟件工程方法學(xué)包含3個(gè)要素:方法、工具和過(guò)程。2022-3-1539軟件工程導(dǎo)論1.3 軟件工程方法學(xué)軟件工程方法學(xué)軟件工程:軟件工程: 一種層次化技術(shù)一種層次化技術(shù)質(zhì)量關(guān)注點(diǎn)質(zhì)量關(guān)注點(diǎn)過(guò)程過(guò)程方法方法工具工具 軟件工程層次圖軟件工程層次圖軟件工程三個(gè)要素軟件工程三個(gè)要素:工具、方法、過(guò)程工具、方法、過(guò)程基礎(chǔ)層,綜合方法基礎(chǔ)層,綜合方法及工具,定義方法及工具,定義方法使用的順序,所需使用的順序,所需要的管理要的管理為軟件開(kāi)發(fā)提供為軟件開(kāi)發(fā)提供“如何做如何做”的技術(shù)的技術(shù)為軟件開(kāi)發(fā)提供自動(dòng)或?yàn)檐浖_(kāi)發(fā)提供自動(dòng)或半自動(dòng)的軟件支撐

25、環(huán)境半自動(dòng)的軟件支撐環(huán)境,建立計(jì)算機(jī)輔助軟件,建立計(jì)算機(jī)輔助軟件工程工程(CASE)的軟件開(kāi)的軟件開(kāi)發(fā)支撐系統(tǒng)發(fā)支撐系統(tǒng)2022-3-1540軟件工程導(dǎo)論1.3 軟件工程方法學(xué)軟件工程方法學(xué)ALM(Application Lifecycle Management)MSF(Microsoft Solution Framework )2022-3-1541軟件工程導(dǎo)論軟件工程層次的擴(kuò)展軟件工程層次的擴(kuò)展2022-3-1542軟件工程導(dǎo)論43軟件工程和計(jì)算機(jī)科學(xué)的區(qū)別n從本質(zhì)上來(lái)看,計(jì)算機(jī)科學(xué)研究的是構(gòu)成計(jì)算機(jī)和軟件系統(tǒng)基礎(chǔ)的有關(guān)理論和方法;而軟件工程則研究軟件制作中的實(shí)際問(wèn)題。n計(jì)算機(jī)科學(xué)理論一直

26、以來(lái)就不能夠完全地支撐軟件工程。對(duì)于實(shí)際、復(fù)雜的問(wèn)題,計(jì)算機(jī)科學(xué)的經(jīng)典理論不可能總是適用的,這就需要應(yīng)用軟件工程的方法來(lái)解決問(wèn)題。軟件工程導(dǎo)論2022-3-1544軟件工程和系統(tǒng)工程有何區(qū)別n系統(tǒng)工程關(guān)注的是以計(jì)算機(jī)為基礎(chǔ)的系統(tǒng)發(fā)展的各個(gè)方面,它包括硬件和軟件開(kāi)發(fā)、過(guò)程設(shè)計(jì)、系統(tǒng)實(shí)施等。軟件工程是在系統(tǒng)工程中與軟件基礎(chǔ)設(shè)施、控制、應(yīng)用程序和數(shù)據(jù)庫(kù)等開(kāi)發(fā)有關(guān)的一部分。n系統(tǒng)工程涉及到了系統(tǒng)規(guī)范,體系結(jié)構(gòu)的設(shè)計(jì)、集成和部署等軟件工程導(dǎo)論2022-3-1545什么是軟件過(guò)程n軟件過(guò)程是指制作軟件產(chǎn)品的一組活動(dòng)及其結(jié)果。n軟件過(guò)程包含四項(xiàng)基本的活動(dòng): 1、軟件描述 2、軟件開(kāi)發(fā) 3、軟件有效性驗(yàn)證 4

27、、軟件進(jìn)化軟件工程導(dǎo)論2022-3-1546什么是軟件過(guò)程模型(一)n軟件過(guò)程模型是從一特定角度提出的軟件過(guò)程的簡(jiǎn)化描述。n下面介紹幾種軟件過(guò)程模型: 1. 工作流模型 2. 數(shù)據(jù)流或活動(dòng)模型 3. 角色/動(dòng)作模型軟件工程導(dǎo)論2022-3-1547什么是軟件過(guò)程模型(二)n通用開(kāi)發(fā)流程的模型 1. 瀑布型開(kāi)發(fā)方法 2. 迭代式開(kāi)發(fā)方法 3. 基于組件的軟件工程(CBSE)軟件工程導(dǎo)論2022-3-1548什么是軟件工程的成本n粗略地講,開(kāi)發(fā)成本占60%,測(cè)試成本占40%。對(duì)于制定軟件,軟件的進(jìn)化成本通常要高于開(kāi)發(fā)成本。n成本的變動(dòng)取決于所開(kāi)發(fā)的系統(tǒng)的類型和系統(tǒng)性能和可靠性等系統(tǒng)屬性的要求。n成

28、本的分布依賴于軟件開(kāi)發(fā)所采用的過(guò)程模型軟件工程導(dǎo)論2022-3-1549軟件工程活動(dòng)成本分布軟件工程導(dǎo)論2022-3-1550產(chǎn)品開(kāi)發(fā)成本軟件工程導(dǎo)論2022-3-1551什么是軟件工程方法(一)n軟件工程方法是一種結(jié)構(gòu)化方法,它包括系統(tǒng)模型、符號(hào)、規(guī)則、設(shè)計(jì)咨詢和流程指導(dǎo)。n無(wú)論什么方法都是基于這樣的思路,即開(kāi)發(fā)出能夠用圖形表示的系統(tǒng)模型,并用這些模型來(lái)描述或設(shè)計(jì)系統(tǒng)。這些方法應(yīng)該包含許多不同的組件方法。軟件工程導(dǎo)論2022-3-1552什么是軟件工程方法(二)組件描述實(shí)例系統(tǒng)模型描述規(guī)則建議過(guò)程指南對(duì)要開(kāi)發(fā)的系統(tǒng)模型和定義這些模型所使用的符號(hào)的描述系統(tǒng)模型總的使用約束啟發(fā)式方法可使設(shè)計(jì)活動(dòng)

29、具有創(chuàng)意,使用該方法可做出組織得很好的系統(tǒng)模型描述開(kāi)發(fā)系統(tǒng)模型要遵循的活動(dòng)以及這些活動(dòng)的組織結(jié)構(gòu)對(duì)象模型、數(shù)據(jù)流模型、狀態(tài)機(jī)模型等系統(tǒng)模型中每一個(gè)實(shí)體都要有一個(gè)名字任何一個(gè)對(duì)象都不要有超過(guò)7個(gè)以上的相關(guān)子對(duì)象在定義與對(duì)象關(guān)聯(lián)的操作前應(yīng)記錄對(duì)象的屬性表1-2 方法組件軟件工程導(dǎo)論2022-3-1553什么是CASEnCASE是計(jì)算機(jī)輔助軟件過(guò)程(Computer-Aided Software Engineering)的英文縮寫(xiě)。它包括很多種類的軟件工具,這些工具覆蓋面很廣,包括支持軟件過(guò)程活動(dòng),如需求分析、系統(tǒng)建模、調(diào)試和測(cè)試等。nCASE系統(tǒng)通常用于方法的支持Upper-CASE 作為工具以支

30、持需求分析和設(shè)計(jì)過(guò)程的早期活動(dòng)Lower-CASE 作為工具以支持編程、調(diào)試和測(cè)試等后期活動(dòng)軟件工程導(dǎo)論2022-3-15軟件工程導(dǎo)論54什么是CASE CASE(Computer Aided Software Engineering) - 計(jì)算機(jī)輔助軟件工程是一組工具和方法的集合,用于輔助軟件開(kāi)發(fā)、維護(hù)、管理過(guò)程中的各項(xiàng)活動(dòng),促進(jìn)軟件過(guò)程的工程化和自動(dòng)化。 - 所有的軟件工程方法都需要CASE 的相應(yīng)技術(shù)來(lái)支持 用于系統(tǒng)模型的圖形編輯器 管理設(shè)計(jì)實(shí)體的數(shù)據(jù)字典 生成用戶界面的 GUI 軟件 輔助生成系統(tǒng)文檔的報(bào)告生成器 支持程序糾錯(cuò)的調(diào)試器 代碼生成器 12 2022-3-15軟件工程導(dǎo)論5

31、5CASE 的層次 問(wèn)題定義 需求分析 分析設(shè)計(jì)工作臺(tái) 軟 件 總體設(shè)計(jì) 開(kāi) 發(fā) 詳細(xì)設(shè)計(jì) 過(guò) 集成化環(huán)境 程 編程 程序設(shè)計(jì)工作臺(tái) 與 管 軟件測(cè)試 測(cè)試工作臺(tái) 理 軟件維護(hù) CASE工具 CASE工作臺(tái) CASE環(huán)境 13 2022-3-15軟件工程導(dǎo)論56CASE 工具 IBM Rational 公司產(chǎn)品(http:/ - 開(kāi)發(fā)過(guò)程管理:RUP - 需求管理:RequisitePro - 可視化建模:Rose - 自動(dòng)測(cè)試:Robot, Test Realtime, TestManager, XDE Tester- 項(xiàng)目管理:ProjectConsole - 配置管理:ClearCase

32、, ClearQuest 開(kāi)源 CASE 工具(http:/ - CVS: 應(yīng)用廣泛的版本管理工具 - UML Modeler: UML 模型圖形編輯工具 - UML2EJB: 將 XML 表示的 UML 模型轉(zhuǎn)換成 EJB 代碼的轉(zhuǎn)換器 14 2022-3-1557什么是優(yōu)良軟件的屬性(一)n軟件除了提供用戶所需的功能和性能以外,作為一個(gè)產(chǎn)品它還應(yīng)有一系列相關(guān)的反映軟件質(zhì)量的屬性,如可維護(hù)性、可靠性等軟件工程導(dǎo)論2022-3-1558什么是優(yōu)良軟件的屬性(二)產(chǎn)品特性可維護(hù)性可依賴性有效性可用性描述軟件必須能夠不斷進(jìn)化以滿足客戶的需求變化,這是軟件產(chǎn)品最根本的特性,因?yàn)楣ぷ鳝h(huán)境是不斷變化的,

33、軟件也必須跟著不斷變化軟件可依賴性還包括一系列特性,包括可靠性、保密性、安全性??煽康能浖谙到y(tǒng)失敗的情況下,也不會(huì)導(dǎo)致人員傷亡和經(jīng)濟(jì)損失軟件不需要浪費(fèi)內(nèi)存和處理器等系統(tǒng)資源,因而有效性應(yīng)包括響應(yīng)時(shí)間、處理時(shí)間、內(nèi)存利用率等方面軟件必須具備可用性。必須是用戶不用特殊地努力就能操作。這就意味著,軟件必須相應(yīng)的用戶界面和充分的說(shuō)明文檔表1-3 優(yōu)良軟件必須具有的屬性軟件工程導(dǎo)論2022-3-1559軟件工程所面臨的主要問(wèn)題n軟件工程在21世紀(jì)面臨以下三大挑戰(zhàn): 多樣性的挑戰(zhàn) 分布式、異構(gòu)、遺留系統(tǒng)集成交付上的挑戰(zhàn) 不影響軟件質(zhì)量,縮短開(kāi)發(fā)周期信任的挑戰(zhàn) 網(wǎng)絡(luò)遠(yuǎn)程服務(wù)、支付軟件工程導(dǎo)論2022-3-1560職業(yè)和道德上的責(zé)任n和其他工程人員技術(shù)技能的簡(jiǎn)單應(yīng)用相比,軟件工程

溫馨提示

  • 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)論