版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章概述清華大學(xué)出版社主編賈鐵軍甘泉副主編俞小怡宋少婷高等院校計(jì)算機(jī)與信息類規(guī)劃教材軟件工程與實(shí)踐上海市教育高地暨特色專業(yè)建設(shè)配套教材課程安排建議課程學(xué)時(shí)及考核課程性質(zhì):專業(yè)課
(必修考試課)
學(xué)時(shí)學(xué)分:理論/實(shí)踐
(52/16)共68學(xué)時(shí),
學(xué)分2.5
(其中,實(shí)驗(yàn)0.5學(xué)分)
考核辦法:
上機(jī)考與卷面考核相結(jié)合、理論與實(shí)踐相結(jié)合、課內(nèi)與課外相結(jié)合、知識(shí)素質(zhì)和能力考核相結(jié)合。
期中測(cè)驗(yàn)占20%,期末考試成績(jī)占總成績(jī)的40%,平時(shí)成績(jī)和實(shí)驗(yàn)占總分40%.
先修課程:計(jì)算機(jī)網(wǎng)絡(luò)、網(wǎng)絡(luò)數(shù)據(jù)庫(kù)、操作系統(tǒng)
高等院校計(jì)算機(jī)與信息類規(guī)劃教材目錄
1.2軟件及軟件工程的概念2
1.3軟件生存周期3
1.4軟件開(kāi)發(fā)模型4
1.1軟件工程的發(fā)展1
1.5實(shí)驗(yàn)一軟件開(kāi)發(fā)準(zhǔn)備及MSVisio概述5
1.6本章小結(jié)6第1章概述教學(xué)目標(biāo)
●了解軟件工程的產(chǎn)生和發(fā)展●掌握軟件工程的概念、內(nèi)容和原理●熟悉軟件生存周期及階段任務(wù)●掌握軟件開(kāi)發(fā)模型
IBM公司研發(fā)初期的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)”。
案例1-1第1章概述1.1.1
軟件危機(jī)概述
軟件危機(jī)(Softwarecrisis)是指在計(jì)算機(jī)軟件開(kāi)發(fā)、運(yùn)行、維護(hù)和管理過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。軟件危機(jī)主要包含兩方面的問(wèn)題:一是開(kāi)發(fā)的軟件如何滿足社會(huì)對(duì)軟件日益增長(zhǎng)的各種需求,二是怎樣維護(hù)和管不斷快速增長(zhǎng)的已有軟件。1.軟件危機(jī)產(chǎn)生的原因產(chǎn)生軟件危機(jī)的主要原因有:(1)軟件開(kāi)發(fā)規(guī)模逐漸變大、復(fù)雜度和軟件的需求量不斷增加;(2)沒(méi)有按照工程化方式運(yùn)作,開(kāi)發(fā)過(guò)程沒(méi)有統(tǒng)一的標(biāo)準(zhǔn)和準(zhǔn)則、規(guī)范的指導(dǎo)方法;(3)軟件需求分析與設(shè)計(jì)考慮不周,軟件開(kāi)發(fā)、維護(hù)和管理不到位;(4)開(kāi)發(fā)人員與用戶或開(kāi)發(fā)人員之間互相的交流溝通不夠,文檔資料不完備;(5)軟件測(cè)試調(diào)試不規(guī)范不細(xì)致,提交的軟件質(zhì)量不達(dá)標(biāo);(6)忽視軟件運(yùn)行過(guò)程中的正常維護(hù)和管理。第一章概述2.軟件危機(jī)主要表現(xiàn)
軟件危機(jī)主要表現(xiàn)在以下7個(gè)方面:
(1)已完成的軟件系統(tǒng)時(shí)常出現(xiàn)功能、性能不滿意或出現(xiàn)故障等現(xiàn)象。(2)軟件產(chǎn)品的可靠性和質(zhì)量安全等方面時(shí)常達(dá)不到標(biāo)準(zhǔn)。軟件產(chǎn)品質(zhì)量難以保證,甚至在開(kāi)發(fā)過(guò)程中就被迫中斷。
(3)軟件開(kāi)發(fā)管理差,對(duì)成本和進(jìn)度的估計(jì)時(shí)常不準(zhǔn)確。(4)系統(tǒng)時(shí)常出現(xiàn)無(wú)法維護(hù)、升級(jí)或更新現(xiàn)象。
(5)軟件開(kāi)發(fā)沒(méi)有標(biāo)準(zhǔn)、完整、統(tǒng)一規(guī)范的文檔資料。計(jì)算機(jī)軟件不僅只是程序,還應(yīng)當(dāng)有一整套規(guī)范的文檔資料和售后服務(wù)。(6)軟件開(kāi)發(fā)效率低,無(wú)法滿足計(jì)算機(jī)應(yīng)用迅速發(fā)展與提高的實(shí)際需要。⑺軟件研發(fā)成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升。第一章概述3.解決軟件危機(jī)的措施解決軟件危機(jī)的主要措施有3個(gè)方面:(1)技術(shù)方法。運(yùn)用軟件工程的技術(shù)、方法和標(biāo)準(zhǔn)規(guī)范。(2)開(kāi)發(fā)工具。選用先進(jìn)高效的軟件工具,同時(shí)采取切實(shí)可行的實(shí)施策略。(3)組織管理。研發(fā)機(jī)構(gòu)需要組織高效、管理制度和標(biāo)準(zhǔn)嚴(yán)格規(guī)范、職責(zé)明確、質(zhì)量保證、團(tuán)結(jié)互助、齊心協(xié)力,注重文檔及服務(wù)。第一章概述1.1.2
軟件工程的發(fā)展過(guò)程計(jì)算機(jī)軟件從數(shù)值計(jì)算到廣泛應(yīng)用于各行各業(yè),軟件技術(shù)的發(fā)展經(jīng)歷了程序設(shè)計(jì)階段、程序系統(tǒng)階段、軟件工程階段和創(chuàng)新完善軟件工程4個(gè)階段,其典型技術(shù)如表1-1所示。
表1-1軟件技術(shù)各發(fā)展階段的典型技術(shù)階段程序設(shè)計(jì)階段程序系統(tǒng)階段軟件工程階段創(chuàng)新完善軟件工程階段軟件典型技術(shù)面向批處理有限的分布自定義軟件多用戶實(shí)時(shí)處理數(shù)據(jù)庫(kù)軟件產(chǎn)品分布式系統(tǒng)嵌入“智能”低成本硬件消費(fèi)者的影響強(qiáng)大桌面系統(tǒng)面向?qū)ο蠹夹g(shù)專家系統(tǒng)、神經(jīng)網(wǎng)絡(luò)、并行計(jì)算、網(wǎng)格計(jì)算等高新技術(shù)1.1
軟件工程的發(fā)展
“軟件工程”的發(fā)展經(jīng)歷了4個(gè)重要階段:
1.傳統(tǒng)軟件工程傳統(tǒng)軟件工程是指軟件工程產(chǎn)生的初期,也稱為第一代軟件工程。
2.對(duì)象工程對(duì)象工程也稱為第二代軟件工程。20世紀(jì)80年代中到90年代,以Smalltalk為代表的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言相繼推出,使面向?qū)ο蟮姆椒ㄅc技術(shù)得到快速發(fā)展。
3.過(guò)程工程過(guò)程工程也稱為第三代軟件工程。隨著計(jì)算機(jī)網(wǎng)絡(luò)等高新技術(shù)的出現(xiàn)及信息技術(shù)的廣泛應(yīng)用,軟件規(guī)模和復(fù)雜度不斷增大,開(kāi)發(fā)時(shí)間相應(yīng)持續(xù)增長(zhǎng),開(kāi)發(fā)人員的增加,致使軟件工程開(kāi)發(fā)和管理的難度不斷增強(qiáng)。1.1軟件工程的發(fā)展4.構(gòu)件工程
構(gòu)件工程也稱為第四代軟件工程。90起年代,基于構(gòu)件(Component)的開(kāi)發(fā)方法取得重要進(jìn)展,軟件系統(tǒng)的開(kāi)發(fā)可利用已有的可復(fù)用構(gòu)件組裝完成,而無(wú)需從頭開(kāi)始構(gòu)建,從而達(dá)到提高效率和質(zhì)量、降低成本的目的。計(jì)算機(jī)輔助軟件工程簡(jiǎn)稱CASE(ComputerAidedSoftwarengineering)將工具和代碼生成器進(jìn)行集成,為很多軟件系統(tǒng)提供了可靠的解決方案;專家系統(tǒng)和人工智能軟件的應(yīng)用更加廣泛;人工神經(jīng)網(wǎng)絡(luò)軟件開(kāi)闊了信息處理的新途徑;并行計(jì)算、網(wǎng)絡(luò)技術(shù)、虛擬技術(shù)、多媒體技術(shù)和現(xiàn)代通信技術(shù)等新技術(shù)新方法改變了人們?cè)械墓ぷ鞣绞健?/p>
1.1軟件工程的發(fā)展
課堂討論:(1)上述案例項(xiàng)目的開(kāi)發(fā)過(guò)程是否存在軟件危機(jī)問(wèn)題?(2)從案例項(xiàng)目的組織和管理等方面分析導(dǎo)致該項(xiàng)目失敗的主要原因有哪些?(3)你認(rèn)為應(yīng)當(dāng)吸取那些教訓(xùn),采取的主要措施有哪些?1.1軟件工程的發(fā)展1.2.1軟件的概念及特點(diǎn)
1.軟件的概念軟件(Software)是計(jì)算機(jī)系統(tǒng)運(yùn)行的指令、數(shù)據(jù)和資料的集合,包括指令程序、數(shù)據(jù)、相關(guān)文檔和完善的售后服務(wù)的完整集合。即;軟件=程序+數(shù)據(jù)+文檔+服務(wù)。其中,程序是按事先按照預(yù)定功能性能等要求設(shè)計(jì)和編寫(xiě)的指令序列;數(shù)據(jù)是使程序正常處理信息的數(shù)據(jù)結(jié)構(gòu)及信息表示;文檔(Document)是與程序開(kāi)發(fā)、維護(hù)和使用有關(guān)的技術(shù)數(shù)據(jù)和圖文資料。
信息系統(tǒng)(InformationSystem)有時(shí)也稱為軟件,是指由一系列相互聯(lián)系的部件(程序模塊)組成的,為實(shí)現(xiàn)某個(gè)目標(biāo)對(duì)信息進(jìn)行輸入、處理、存儲(chǔ)、輸出、反饋和控制的集合。分為操作系統(tǒng)、應(yīng)用系統(tǒng)等。通常實(shí)例提到的信息系統(tǒng)主要是指應(yīng)用系統(tǒng),即應(yīng)用軟件。1.2
軟件及軟件工程的概念
2.軟件的特點(diǎn)在軟件的實(shí)際研發(fā)、運(yùn)行、維護(hù)、管理和使用過(guò)程中,需要掌握其特點(diǎn):(1)智能性。軟件是人類智能勞動(dòng)的產(chǎn)物、代替和延伸。(2)抽象性。軟件屬于邏輯實(shí)體,無(wú)形性和智能性致使軟件難以認(rèn)識(shí)和理解。(3)人工方式。軟件的開(kāi)發(fā)、維護(hù)及設(shè)置管理等方面目前尚未完全脫離手工方式。(4)復(fù)雜性和系統(tǒng)性。(5)泛域性。軟件應(yīng)用很廣泛,在信息化中可服務(wù)于各種領(lǐng)域、行業(yè)和層面。(6)復(fù)制性。軟件成本相對(duì)比較昂貴,計(jì)算機(jī)軟件是人類創(chuàng)造性的特殊產(chǎn)品。(7)非損及更新性。軟件不存在物理性磨損和老化問(wèn)題,但可以退化需要更新升級(jí)。
1.2
軟件及軟件工程的概念
圖1-1硬件失效率曲線圖1-2軟件失效率曲線
1.2
軟件及軟件工程的概念
3.軟件的分類(1)按照軟件功能劃分(2)按照軟件規(guī)模劃分(3)按照軟件工作方式劃分
(4)按照軟件服務(wù)對(duì)象的范圍劃分1.2
軟件及軟件工程的概念
1.2.2軟件工程的概念
1.軟件工程的定義按照中國(guó)國(guó)家標(biāo)準(zhǔn)GB/T11457—1995《軟件工程術(shù)語(yǔ)》的定義:軟件工程(SoftwareEngineering)是軟件開(kāi)發(fā)、運(yùn)行、維護(hù)和引退的系統(tǒng)方法?!队?jì)算機(jī)科學(xué)技術(shù)百科全書(shū)》中對(duì)軟件工程的定義是:應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,開(kāi)發(fā)軟件的工程。軟件工程借鑒傳統(tǒng)工程的原則、方法,以提高質(zhì)量、降低成本。其中,計(jì)算機(jī)科學(xué)、數(shù)學(xué)用于構(gòu)建模型與算法,工程科學(xué)用于制定規(guī)范、設(shè)計(jì)范型(paradigm)、評(píng)估成本及確定權(quán)衡,管理科學(xué)用于計(jì)劃、資源、質(zhì)量、成本等管理。軟件工程=工程原理?+?技術(shù)方法+管理技術(shù)1.2
軟件及軟件工程的概念
2.軟件工程的特點(diǎn)軟件工程學(xué)是軟件工程化的思想、規(guī)范、過(guò)程、技術(shù)、環(huán)境和工具的集成,是將具體的技術(shù)和方法結(jié)合形成的一個(gè)完整體系。軟件工程學(xué)科的主要特點(diǎn)是實(shí)踐性和發(fā)展性,軟件工程的問(wèn)題來(lái)源并應(yīng)用于實(shí)踐,最終目的是有效地生產(chǎn)軟件產(chǎn)品。其特點(diǎn)體現(xiàn)為“3多”:一是多學(xué)科,不僅包含有關(guān)課題還涉及到計(jì)算機(jī)科學(xué)、工程科學(xué)、管理科學(xué)、數(shù)學(xué)等多個(gè)學(xué)科;二是多目標(biāo),不僅關(guān)心項(xiàng)目產(chǎn)品及其功能,還有注重質(zhì)量、成本、進(jìn)度、性能、可靠性、安全性、通用性、可維護(hù)性、有效性和界面等;三是多階段,軟件開(kāi)發(fā)不只是編程,而是由可行性研究、計(jì)劃立項(xiàng)、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程、測(cè)試、運(yùn)行、維護(hù)等階段構(gòu)成完整過(guò)程。軟件工程的目的是在規(guī)定的時(shí)間和開(kāi)發(fā)經(jīng)費(fèi)內(nèi),開(kāi)發(fā)出滿足用戶需求的、高質(zhì)量的軟件產(chǎn)品。其目標(biāo)是實(shí)現(xiàn)軟件研發(fā)與維護(hù)的優(yōu)質(zhì)高效和自動(dòng)化。1.2
軟件及軟件工程的概念
1.2.3
軟件工程學(xué)的主要內(nèi)容
1.軟件工程方法
軟件工程學(xué)的主要內(nèi)容包括軟件開(kāi)發(fā)技術(shù)和軟件工程管理兩個(gè)方面。軟件開(kāi)發(fā)技術(shù)包括軟件工程方法、軟件工具和軟件開(kāi)發(fā)環(huán)境;軟件工程管理學(xué)包含軟件工程經(jīng)濟(jì)學(xué)和軟件管理學(xué)。1.2
軟件及軟件工程的概念
表1-3軟件工程學(xué)科的主要內(nèi)容軟件工程原理軟件目標(biāo)、原則、學(xué)科基礎(chǔ)軟件工程過(guò)程開(kāi)發(fā)過(guò)程、運(yùn)作過(guò)程、維護(hù)過(guò)程,如獲取、供應(yīng)、管理、開(kāi)發(fā)、運(yùn)作、維護(hù)、支持、裁減軟件工程技術(shù)開(kāi)發(fā)技術(shù)、管理技術(shù)、度量技術(shù)、維護(hù)技術(shù)、應(yīng)用技術(shù)軟件工程方法開(kāi)發(fā)方法、管理方法、度量方法、維護(hù)方法、應(yīng)用方法、環(huán)境方法軟件工程模型領(lǐng)域模型、需求模型、設(shè)計(jì)模型、實(shí)現(xiàn)模型、測(cè)試模型軟件工程管理項(xiàng)目管理、質(zhì)量管理、文檔管理軟件工程度量規(guī)模、復(fù)雜度、進(jìn)度、費(fèi)用、工作量軟件工程環(huán)境硬件、網(wǎng)絡(luò)、支撐軟件軟件工程應(yīng)用應(yīng)用軟件工程基本原理、方法、技術(shù)解決特定領(lǐng)域問(wèn)題1.2
軟件及軟件工程的概念
軟件工程方法學(xué)是研發(fā)軟件的系統(tǒng)方法,確定軟件開(kāi)發(fā)階段,規(guī)定每一階段的目標(biāo)、任務(wù)、技術(shù)、方法、產(chǎn)品、驗(yàn)收等步驟和完成準(zhǔn)則。具有方法、工具和過(guò)程三個(gè)要素,也稱軟件工程三要素:(1)軟件工程方法:包括軟件開(kāi)發(fā)“如何作”的技術(shù)和管理準(zhǔn)則及文檔等技術(shù)方法;(2)軟件工具:為方法的運(yùn)用提供自動(dòng)或半自動(dòng)的軟件支撐工具的集成環(huán)境;(3)軟件工程過(guò)程:主要完成任務(wù)的工作階段、工作內(nèi)容、產(chǎn)品、驗(yàn)收的步驟和完成準(zhǔn)則。也有將這一要素確定為“組織管理”,實(shí)際上改為“過(guò)程與管理”更合適。1.2
軟件及軟件工程的概念
目前,常用的軟件工程方法主要分為以下7種類型。
1)面向功能方法面向功能的軟件開(kāi)發(fā)方法也稱為結(jié)構(gòu)化方法,主要采用結(jié)構(gòu)化技術(shù),包括結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)和結(jié)構(gòu)化實(shí)現(xiàn),按照軟件的開(kāi)發(fā)過(guò)程、結(jié)構(gòu)和順序完成開(kāi)發(fā)任務(wù)。
2)面向數(shù)據(jù)方法從目標(biāo)系統(tǒng)輸入、輸出數(shù)據(jù)的結(jié)構(gòu),導(dǎo)出程序框架結(jié)構(gòu),再補(bǔ)充其他細(xì)節(jié),得到完整的程序結(jié)構(gòu)圖。此方法也可與其他方法結(jié)合,用于模塊的詳細(xì)設(shè)計(jì)和數(shù)據(jù)處理等。對(duì)輸入輸出數(shù)據(jù)結(jié)構(gòu)明確的中小型系統(tǒng)很有效,如商用文件表格處理等
1.2
軟件及軟件工程的概念3)面向?qū)ο蠓椒嫦驅(qū)ο蠓椒ǎ∣bject-OrientedMethod,OOM)是一種將面向?qū)ο蟮乃枷霊?yīng)用于軟件開(kāi)發(fā)過(guò)程中,指導(dǎo)開(kāi)發(fā)活動(dòng)的系統(tǒng)方法。將對(duì)象作為數(shù)據(jù)和對(duì)數(shù)據(jù)的操作相結(jié)合的軟件構(gòu)件,用對(duì)象分解取代了傳統(tǒng)方法的功能分解?;舅枷胧牵簩?duì)問(wèn)題領(lǐng)域進(jìn)行自然的分割,以更接近人類通常思維的方式建立問(wèn)題領(lǐng)域的模型,以便對(duì)客觀的信息實(shí)體進(jìn)行結(jié)構(gòu)和行為的模擬,從而使設(shè)計(jì)的軟件更直接地表現(xiàn)問(wèn)題的求解過(guò)程。面向?qū)ο蟮拈_(kāi)發(fā)方法以對(duì)象作為最基本的元素,是分析和解決問(wèn)題的核心。OOM的要素是對(duì)象、類、繼承以及消息通信。可概括為:面向?qū)ο?=?對(duì)象?+?類?+?繼承?+?消息通信實(shí)際上,所有按照這樣四個(gè)概念設(shè)計(jì)和實(shí)現(xiàn)的軟件系統(tǒng),都可以認(rèn)為是面向?qū)ο蟮摹OM由OOA(面向?qū)ο蟮姆治觯?、OOD(面向?qū)ο蟮脑O(shè)計(jì))和OOP(面向?qū)ο蟮某绦蛟O(shè)計(jì))三部分組成。
1.2
軟件及軟件工程的概念4)面向問(wèn)題方法面向問(wèn)題方法也稱問(wèn)題分析法(ProblemAnalysisMethod,PAM)是80年代末由日立公司提出的,是在Yourdon方法、Jackson方法和自底向上的軟件開(kāi)發(fā)方法基礎(chǔ)上揚(yáng)長(zhǎng)避短改進(jìn)的。其基本思想是:以輸入輸出數(shù)據(jù)結(jié)構(gòu)指導(dǎo)系統(tǒng)的問(wèn)題分解,經(jīng)過(guò)系統(tǒng)分析逐步綜合。5)面向方面的開(kāi)發(fā)方法面向方面的程序設(shè)計(jì)(Aspect-OrientedProgramming,AOP)是面向?qū)ο笙到y(tǒng)的擴(kuò)展,在現(xiàn)有的AOP實(shí)現(xiàn)技術(shù)中,可通過(guò)創(chuàng)建Aspect庫(kù)或?qū)S肁spect語(yǔ)言實(shí)現(xiàn)面向方面的編程。6)基于構(gòu)件的開(kāi)發(fā)方法基于構(gòu)件的開(kāi)發(fā)(Component-BasedDevelopment,CBD)或基于構(gòu)件的軟件工程(Component-BasedSoftwareEngineering,CBSE)方法是軟件開(kāi)發(fā)新范型。
1.2
軟件及軟件工程的概念
軟件復(fù)用(SoftwareReuse)或軟件重用是指將已有的軟件構(gòu)件用于構(gòu)造新的軟件系統(tǒng)的過(guò)程。軟件復(fù)用方法采用的復(fù)用方式包括:
(1)復(fù)用分析:利用原有的需求分析結(jié)果,進(jìn)一步深入分析比對(duì)查找異同及特性等。
(2)復(fù)用結(jié)構(gòu):主要復(fù)用系統(tǒng)模塊的功能結(jié)構(gòu)或數(shù)據(jù)結(jié)構(gòu)等,并進(jìn)行改進(jìn)提高。
(3)復(fù)用設(shè)計(jì):由于復(fù)用受環(huán)境影響小,設(shè)計(jì)結(jié)果比源程序的抽象級(jí)別高,因此可通過(guò)從現(xiàn)有系統(tǒng)中提取全部或不同粒度的設(shè)計(jì)構(gòu)件,或獨(dú)立于具體應(yīng)用開(kāi)發(fā)設(shè)計(jì)構(gòu)件。
(4)復(fù)用程序:包括目標(biāo)代碼和源代碼的復(fù)用,可通過(guò)連接(Link)、綁定(Binding)、包含(include)等功能,支持對(duì)象鏈接及嵌入(OLE)技術(shù)實(shí)現(xiàn)。7)可視化方法1.2
軟件及軟件工程的概念
2.軟件工具
軟件工具(Softwaretools)是指支持軟件的開(kāi)發(fā)、維護(hù)、管理而專門研發(fā)的計(jì)算機(jī)程序系統(tǒng)。目的是提高軟件開(kāi)發(fā)的質(zhì)量和效率,降低軟件開(kāi)發(fā)、維護(hù)和管理的成本,支持特定的軟件工程方法,減少手工方式管理的負(fù)擔(dān)。軟件工具通常由工具、工具接口和工具用戶接口三部分構(gòu)成。工具通過(guò)工具接口與其他工具、操作系統(tǒng)以及通信接口、環(huán)境信息庫(kù)接口等進(jìn)行相連交互。
軟件工具種類繁多、涉及面廣,可組成“工具箱”或“集成工具”,如編輯、編譯、正文格式處理,靜態(tài)分析、動(dòng)態(tài)跟蹤、需求分析、設(shè)計(jì)分析、測(cè)試、模擬和圖形交互等。按照應(yīng)用階段分為:計(jì)劃工具、分析工具、設(shè)計(jì)工具、測(cè)試工具等,按照功能分為:分析設(shè)計(jì)、Web開(kāi)發(fā)、界面開(kāi)發(fā)、項(xiàng)目管理、軟件配置、質(zhì)量保證、軟件維護(hù)等。1.2
軟件及軟件工程的概念3.軟件開(kāi)發(fā)環(huán)境軟件開(kāi)發(fā)環(huán)境(SoftwareDevelopmentEnvironment)是“軟件開(kāi)發(fā)環(huán)境是相關(guān)的一組軟件工具集合,它支持一定的軟件開(kāi)發(fā)方法或按照一定的軟件開(kāi)發(fā)模型組織而成”。也稱為軟件工程環(huán)境(SoftwareEngineeringEnvironment),是包括方法、工具和管理等多種技術(shù)的綜合系統(tǒng)。其設(shè)計(jì)目標(biāo)是簡(jiǎn)化軟件開(kāi)發(fā)過(guò)程,提高軟件開(kāi)發(fā)質(zhì)量和效率。軟件開(kāi)發(fā)環(huán)境應(yīng)具備以下特點(diǎn):(1)適應(yīng)性。適應(yīng)用戶要求,環(huán)境中的工具可修改、增加、減少和更新;(2)堅(jiān)定性。環(huán)境可自我保護(hù),不受用戶和系統(tǒng)影響,可進(jìn)行非預(yù)見(jiàn)性的環(huán)境恢復(fù);
(3)緊密性。各種軟件工具可以密切配合工作,提高效率;(4)可移植性。指軟件工具可以根據(jù)需要進(jìn)行移植。
1.2
軟件及軟件工程的概念常用的軟件工程環(huán)境具有三級(jí)結(jié)構(gòu),如圖1-3所示:
(1)核心級(jí)。主要包括核心工具組、數(shù)據(jù)庫(kù)、通訊工具、運(yùn)行支持、功能和與硬件無(wú)關(guān)的移植接口等。(2)基本級(jí)。一般包括環(huán)境的用戶工具、編譯、編輯程序和作業(yè)控制語(yǔ)言的解釋程序等。(3)應(yīng)用級(jí)。通常指應(yīng)用軟件的開(kāi)發(fā)工具。
圖1-3典型的軟件工程環(huán)境
1.2
軟件及軟件工程的概念4.軟件工程管理軟件工程管理學(xué)包括軟件管理學(xué)、軟件經(jīng)濟(jì)學(xué)和軟件度量學(xué)。其目的是按項(xiàng)目申報(bào)時(shí)確定的時(shí)間、費(fèi)用和其他指標(biāo),通過(guò)有效管理提高軟件研發(fā)的質(zhì)量和效率。軟件工程管理的任務(wù)是有效地組織人員,按照適當(dāng)?shù)募夹g(shù)、方法,利用好的軟件工具“又好又快”地完成預(yù)定的軟件項(xiàng)目。軟件工程管理的主要內(nèi)容包括軟件人員組織、計(jì)劃管理、費(fèi)用管理、軟1.2.4
軟件過(guò)程及開(kāi)發(fā)過(guò)程ISO9000將軟件過(guò)程(softwareprocess)定義為:“將輸入轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動(dòng)”。軟件過(guò)程通常包括4類基本過(guò)程:軟件規(guī)格說(shuō)明:規(guī)定軟件的功能、性能、可靠性及其運(yùn)行環(huán)境等。(2)軟件開(kāi)發(fā):研發(fā)滿足規(guī)格說(shuō)明的具體軟件。(3)軟件確認(rèn):確認(rèn)軟件能夠完成客戶提出的需求。1.2
軟件及軟件工程的概念1.2
軟件及軟件工程的概念
(4)軟件演進(jìn):為滿足用戶的變更要求,軟件必須在使用過(guò)程中引進(jìn)新技術(shù)新方法并根據(jù)新業(yè)務(wù)及時(shí)升級(jí)更新。軟件過(guò)程具有可理解性、可見(jiàn)性(過(guò)程的進(jìn)展和結(jié)果可見(jiàn))、可靠性、可支持性(易使用CASE工具支持)、可維護(hù)性、可接受性(為軟件工程師接受)、開(kāi)發(fā)效率和健壯性(抵御外部意外錯(cuò)誤的能力)等特性。軟件工程最注重軟件過(guò)程中的開(kāi)發(fā)過(guò)程,主要包括項(xiàng)目啟動(dòng)、需求調(diào)研分析、設(shè)計(jì)(概要設(shè)計(jì)及詳細(xì)設(shè)計(jì))、編碼(實(shí)現(xiàn))、測(cè)試、部署、測(cè)試和結(jié)束等過(guò)程。如圖1-4所示。1.2
軟件及軟件工程的概念圖1-4系統(tǒng)開(kāi)發(fā)過(guò)程【案例1-4】“企業(yè)人事管理信息系統(tǒng)”總體功能需求和目標(biāo)要求。主要功能是用于支持企事業(yè)單位完成勞動(dòng)人事管理工作,實(shí)現(xiàn)的主要目標(biāo)包括:(1)支持企業(yè)高效率完成勞動(dòng)人事管理的日常業(yè)務(wù),包括新職員調(diào)入時(shí)人事的管理,職員調(diào)出、辭職、退休等。(2)支持企業(yè)進(jìn)行勞動(dòng)人事管理及其相關(guān)方面的科學(xué)決策,如企事業(yè)單位領(lǐng)導(dǎo)根據(jù)現(xiàn)有的崗位員工需求情況決定招聘的崗位及人數(shù)等。根據(jù)新系統(tǒng)總體功能需求等要求,通過(guò)調(diào)研、論證可以基本確定系統(tǒng)開(kāi)發(fā)過(guò)程的總體框架。案例1-41.2
軟件及軟件工程的概念
軟件開(kāi)發(fā)過(guò)程的具體工作任務(wù)、參與人員及生成文檔或程序,可以通過(guò)一個(gè)表具體詳細(xì)地列出來(lái),以便于清楚各階段具體做什么工作,如表1-4所示。表1-4軟件開(kāi)發(fā)工作任務(wù)、人員及輸出。1.2
軟件及軟件工程的概念步
驟任務(wù)及說(shuō)明參與者生成文檔或程序可行性分析對(duì)項(xiàng)目的技術(shù),功能需求和市場(chǎng)進(jìn)行調(diào)研和初步分析,確定是否需要啟動(dòng)項(xiàng)目部門主管核心技術(shù)人員可行性分析報(bào)告技術(shù)調(diào)研報(bào)告啟動(dòng)項(xiàng)目正式啟動(dòng)項(xiàng)目,有部門主管制定項(xiàng)目經(jīng)理,項(xiàng)目經(jīng)理制定初步計(jì)劃,初步計(jì)劃包括設(shè)計(jì)和開(kāi)發(fā)時(shí)間的初步估計(jì)部門主管核心技術(shù)人員項(xiàng)目計(jì)劃書(shū)項(xiàng)目合同需求分析對(duì)項(xiàng)目詳細(xì)需求分析,編寫(xiě)需求文檔,對(duì)B/S結(jié)構(gòu)的系統(tǒng)應(yīng)制作靜態(tài)演示頁(yè)面。需求分析文檔和靜態(tài)演示頁(yè)面需要通過(guò)部門主管審批才能進(jìn)行到下一步驟項(xiàng)目經(jīng)理項(xiàng)目小組核心成員需求分析說(shuō)明書(shū)靜態(tài)演示頁(yè)面項(xiàng)目計(jì)劃修訂版本概要設(shè)計(jì)根據(jù)需求分析進(jìn)行概要設(shè)計(jì)。編寫(xiě)目的是說(shuō)明對(duì)系統(tǒng)的設(shè)計(jì)考慮,包括程序系統(tǒng)流程、組織結(jié)構(gòu)、模塊劃分、功能分配、接口設(shè)計(jì)。運(yùn)行設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和出錯(cuò)處理設(shè)計(jì)等,為詳細(xì)設(shè)計(jì)提供基礎(chǔ)。概要設(shè)計(jì)經(jīng)過(guò)評(píng)審后,項(xiàng)目經(jīng)理通過(guò)部門主管一起指定項(xiàng)目小組成員。項(xiàng)目經(jīng)理項(xiàng)目小組核心成員概要設(shè)計(jì)說(shuō)明書(shū)詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)編制目的是說(shuō)明一個(gè)軟件各個(gè)層次中的每一個(gè)程序(每個(gè)模塊或子程序)的設(shè)計(jì)考慮,如果一個(gè)軟件系統(tǒng)比較簡(jiǎn)單,層次很少,可以不單獨(dú)編寫(xiě),有關(guān)內(nèi)容合并入概要設(shè)計(jì)說(shuō)明書(shū)。項(xiàng)目經(jīng)理項(xiàng)目小組成員詳細(xì)設(shè)計(jì)文檔項(xiàng)目計(jì)劃確定版本編碼實(shí)現(xiàn)根據(jù)設(shè)計(jì)開(kāi)發(fā)項(xiàng)目,同時(shí)有美工對(duì)操作界面進(jìn)行美化項(xiàng)目經(jīng)理、程序設(shè)計(jì)員、美工項(xiàng)目計(jì)劃修訂版本調(diào)試項(xiàng)目經(jīng)理提交測(cè)試申請(qǐng),由測(cè)試部門對(duì)項(xiàng)目進(jìn)行測(cè)試,項(xiàng)目小組配合測(cè)試部門修改軟件中的錯(cuò)誤項(xiàng)目經(jīng)理程序開(kāi)發(fā)人員測(cè)試部門測(cè)試申請(qǐng)測(cè)試計(jì)劃測(cè)試報(bào)告項(xiàng)目驗(yàn)收項(xiàng)目驗(yàn)收歸檔部門主管項(xiàng)目經(jīng)理項(xiàng)目所有文檔和程序1.2.5
軟件工程基本原理及原則
1.軟件工程的基本原理軟件工程7條基本原理。(1)用分階段的生存周期計(jì)劃進(jìn)行嚴(yán)格的管理。(2)堅(jiān)持進(jìn)行階段評(píng)審。軟件的質(zhì)量保證工作不能等到編碼階段結(jié)束之后再進(jìn)行。(3)實(shí)行嚴(yán)格的產(chǎn)品控制。(4)采用現(xiàn)代程序設(shè)計(jì)技術(shù)。(5)軟件工程結(jié)果應(yīng)能清楚地審查。(6)開(kāi)發(fā)小組的人員應(yīng)該少而精。(7)承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性。1.2
軟件及軟件工程的概念1.2
軟件及軟件工程的概念2.軟件工程的基本原則(1)選取適宜的開(kāi)發(fā)模型。(2)采用合適的設(shè)計(jì)方法。(3)提供高質(zhì)量的工程支撐。(4)重視軟件工程的管理。
課堂討論:
(1)軟件和軟件工程的概念是什么?軟件工程方法學(xué)?軟件工程三要素?
(2)軟件工程開(kāi)發(fā)的方法主要有哪些?(3)結(jié)合“人事管理信息系統(tǒng)”案例進(jìn)行討論軟件工程?1.3
軟件生存周期1.3.1
軟件生存周期的概念軟件生存周期(Softwarelifecycle)是從開(kāi)始研發(fā)軟件到軟件停止使用的整個(gè)過(guò)程。是指軟件產(chǎn)品從用戶提出開(kāi)發(fā)需求開(kāi)始,經(jīng)過(guò)開(kāi)發(fā)、使用和維護(hù),直到最后淘汰的整個(gè)周期,因此,也稱為軟件生命周期或軟件生存期,是軟件工程的一個(gè)重要概念。軟件工程中的過(guò)程對(duì)應(yīng)軟件生存周期中的階段(Phase)
,也是實(shí)現(xiàn)軟件生產(chǎn)工程化的重要步驟,并賦予各階段相對(duì)獨(dú)立的任務(wù)。可以將一個(gè)軟件的生存周期劃分為市場(chǎng)調(diào)研、立項(xiàng)、需求分析、規(guī)劃、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程、單元測(cè)試、集成測(cè)試、運(yùn)行、維護(hù)這幾個(gè)過(guò)程,前一過(guò)程的終點(diǎn)就是后一過(guò)程的起點(diǎn)。完成階段性工作的標(biāo)志稱為里程碑(Milestone),某些重要的里程碑又稱為基線(Baseline)。1.3
軟件生存周期
1.3.2軟件生存周期的階段劃分軟件生存周期階段劃分的原則主要包括:(1)各階段的任務(wù)相對(duì)獨(dú)立。便于分階段計(jì)劃、逐步完成。(2)同一階段的工作任務(wù)性質(zhì)盡量相同。有利于軟件開(kāi)發(fā)和組織管理,明確開(kāi)發(fā)人員的分工與職責(zé),以便協(xié)同工作、保證質(zhì)量。1.3
軟件生存周期
1.3.3軟件生存周期各階段的任務(wù)
軟件生存周期各階段的主要任務(wù)。在GB8567-2006中將軟件生存周期分為7個(gè)階段如圖1-5所示:(1)開(kāi)發(fā)策劃。主要完成問(wèn)題定義、可行性論證、制定開(kāi)發(fā)計(jì)劃和項(xiàng)目申報(bào)工作,明確“要解決的問(wèn)題是什么”。1.3
軟件生存周期
(2)需求分析。需求分析和定義階段任務(wù)不是具體地解決問(wèn)題,而是確定軟件須具備的具體功能、性能等,即“必須做什么”及其他指標(biāo)要求。(3)概要設(shè)計(jì)。主要設(shè)計(jì)軟件的結(jié)構(gòu),結(jié)構(gòu)的組成模塊,模塊的層次結(jié)構(gòu)、調(diào)用關(guān)系及功能。并設(shè)計(jì)總體數(shù)據(jù)結(jié)構(gòu)等。1.3
軟件生存周期
圖1-5軟件生存周期各階段關(guān)系1.3
軟件生存周期
(4)詳細(xì)設(shè)計(jì)。對(duì)模塊功能、性能、可靠性等進(jìn)行具體技術(shù)描述,并轉(zhuǎn)化為過(guò)程描述。(5)編寫(xiě)程序。又稱編碼,將模塊的控制結(jié)構(gòu)轉(zhuǎn)換成程序代碼。(6)測(cè)試。為了保證軟件需求和質(zhì)量,在設(shè)計(jì)測(cè)試用例基礎(chǔ)上對(duì)軟件進(jìn)行檢測(cè)(7)運(yùn)行維護(hù)。對(duì)交付并投入使用的軟件進(jìn)行各種維護(hù),并記錄保存文檔。1.3
軟件生存周期
【案例1-5】“網(wǎng)上商品銷售管理信息系統(tǒng)”從項(xiàng)目問(wèn)題定義(調(diào)研論證計(jì)劃申報(bào))、軟件開(kāi)發(fā)和軟件維護(hù)三個(gè)時(shí)期組成,每個(gè)時(shí)期又可進(jìn)一步劃分成若干個(gè)階段。案例1-51.3
軟件生存周期
1)軟件定義時(shí)期
(1)問(wèn)題定義。這是軟件生存期的第一個(gè)階段,主要任務(wù)是弄清用戶要計(jì)算機(jī)解決的問(wèn)題是什么。(2)可行性研究。任務(wù)是對(duì)前一階段提出的問(wèn)題,尋找技術(shù)上可行、且在經(jīng)濟(jì)上有較高效益的解決方案。
1.3
軟件生存周期
2)軟件開(kāi)發(fā)時(shí)期(1)需求分析。通過(guò)調(diào)研搞清用戶對(duì)軟件系統(tǒng)的具體需求,主要是確定目標(biāo)系統(tǒng)必須具備哪些具體的功能、性能、可靠性、接口等。(2)總體設(shè)計(jì)。設(shè)計(jì)軟件結(jié)構(gòu),即確定程序由哪些模塊組成以及模塊間的關(guān)系。(3)詳細(xì)設(shè)計(jì)。針對(duì)單個(gè)模塊的設(shè)計(jì),如查詢、統(tǒng)計(jì)等。(4)編碼。按照選定的語(yǔ)言,把模塊的過(guò)程性描述翻譯為源程序。(5)測(cè)試。通過(guò)各種類型的測(cè)試(及相應(yīng)的調(diào)試)使軟件達(dá)到預(yù)定的要求。1.3
軟件生存周期
3)軟件運(yùn)行時(shí)期此時(shí)期的主要工作是做好軟件維護(hù)與管理。維護(hù)與管理的目的是使軟件在整個(gè)生存周期內(nèi)保證滿足用戶的正常使用和延長(zhǎng)軟件的使用壽命。
課堂討論:
(1)什么叫軟件生存周期?軟件生存周期各階段如何劃分?
(2)軟件生存周期各階段的主要任務(wù)有那些?(3)結(jié)合“人事管理信息系統(tǒng)”案例進(jìn)行階段劃分,并指出各階段的主要任務(wù)。
1.4
軟件開(kāi)發(fā)模型1.4
軟件開(kāi)發(fā)模型根據(jù)軟件開(kāi)發(fā)工程化及實(shí)際需要,軟件生存周期的劃分有所不同,形成了不同的軟件開(kāi)發(fā)模型,或稱軟件生存周期模型(Softwarelifecyclemodel)。1.4
軟件開(kāi)發(fā)模型1.4.1瀑布模型
瀑布模型(waterfallmodel)將生存期的計(jì)劃時(shí)期、開(kāi)發(fā)時(shí)期和運(yùn)行時(shí)期,又細(xì)分為若干個(gè)階段:計(jì)劃時(shí)期可分為問(wèn)題定義、可行性研究、需求分析3個(gè)階段,開(kāi)發(fā)時(shí)期分為概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、軟件實(shí)現(xiàn)、軟件測(cè)試等階段,運(yùn)行時(shí)期則需要不斷進(jìn)行運(yùn)行維護(hù),需要不斷修改錯(cuò)誤、排除故障,或以用戶需求、運(yùn)行環(huán)境改變進(jìn)行改更調(diào)整。圖1-6中的實(shí)線箭頭表示開(kāi)發(fā)流程,每個(gè)階段順序進(jìn)行,有時(shí)會(huì)返工;虛線箭頭表示維護(hù)工作的流程,根據(jù)不同情況返回到不同的階段進(jìn)行維護(hù)。1.4
軟件開(kāi)發(fā)模型圖1-6瀑布模型1.4
軟件開(kāi)發(fā)模型圖1-6瀑布模型利用瀑布模型開(kāi)發(fā)軟件有3個(gè)特點(diǎn):
(1)開(kāi)發(fā)過(guò)程的順序性。瀑布模型開(kāi)發(fā)適用于軟件需求明確,開(kāi)發(fā)技術(shù)成熟,工程管理較嚴(yán)格的場(chǎng)合下使用。
(2)統(tǒng)籌兼顧不過(guò)早編程
(3)嚴(yán)格要求保證質(zhì)量。圖1-7循環(huán)模型1.4
軟件開(kāi)發(fā)模型1.4.2快速原型模型快速原型模型需要先建造一個(gè)快速原型,如操作窗口及界面等,進(jìn)行客戶或潛在用戶與系統(tǒng)間的交流,用戶/客戶可以通過(guò)對(duì)原型的評(píng)價(jià)及改進(jìn)意見(jiàn),進(jìn)一步細(xì)化待開(kāi)發(fā)軟件的需求,通過(guò)逐步調(diào)整原型達(dá)到客戶要求,從中確定客戶的具體需求;然后按照需求開(kāi)發(fā)軟件。如圖1-8所示。此模型最適合于可以先盡快構(gòu)建成一個(gè)原型的應(yīng)用系統(tǒng)。1.4
軟件開(kāi)發(fā)模型1.4
軟件開(kāi)發(fā)模型1.4.3增量模型
利用增量模型開(kāi)發(fā)的軟件被作為一系列的增量構(gòu)件來(lái)進(jìn)行設(shè)計(jì)、實(shí)現(xiàn)集成和測(cè)試,每個(gè)構(gòu)件具有一定功能,并最終能組合成一個(gè)具有完整功能軟件的模塊。如圖1-9所示。1.4
軟件開(kāi)發(fā)模型增量模型靈活性很強(qiáng),適用于軟件需求不明確、設(shè)計(jì)方案有一定風(fēng)險(xiǎn)的軟件項(xiàng)目。
圖1-9增量模型1.4
軟件開(kāi)發(fā)模型1.4.4螺旋模型
螺旋模型將開(kāi)發(fā)過(guò)程劃分為制定計(jì)劃、風(fēng)險(xiǎn)分析、實(shí)施工程和客戶評(píng)估四類活動(dòng)。沿著螺旋線每轉(zhuǎn)一圈,表示開(kāi)發(fā)出一個(gè)更完善的新軟件版本。如果開(kāi)發(fā)風(fēng)險(xiǎn)過(guò)大,開(kāi)發(fā)機(jī)構(gòu)和客戶無(wú)法接受,項(xiàng)目可能就此終止;多數(shù)情況下,將沿著螺旋線繼續(xù)進(jìn)行,自內(nèi)向外逐步延伸,最終得到滿意的軟件產(chǎn)品。
1.4
軟件開(kāi)發(fā)模型螺旋模型沿著螺線進(jìn)行多次迭代,其迭代過(guò)程如圖1-10所示。
(1)制定計(jì)劃:確定軟件目標(biāo),選定實(shí)施方案,弄清項(xiàng)目開(kāi)發(fā)的限制條件;
(2)風(fēng)險(xiǎn)分析:分析評(píng)估所選方案,考慮如何識(shí)別和消除風(fēng)險(xiǎn);
(3)實(shí)施工程:實(shí)施軟件開(kāi)發(fā)和驗(yàn)證;
(4)客戶評(píng)估:評(píng)價(jià)開(kāi)發(fā)工作,提出修正建議,制定下一步計(jì)劃。1.4
軟件開(kāi)發(fā)模型圖1-10螺旋模型
1.4
軟件開(kāi)發(fā)模型1.4.5噴泉模型
噴泉模型主要適合于利用面向?qū)ο蠹夹g(shù)的軟件開(kāi)發(fā)項(xiàng)目。它克服了瀑布模型不支持軟件重用和多項(xiàng)開(kāi)發(fā)活動(dòng)集成的局限性??墒归_(kāi)發(fā)過(guò)程具有迭代性和無(wú)間隙性。1.4
軟件開(kāi)發(fā)模型
噴泉模型是以面向?qū)ο蟮拈_(kāi)發(fā)方法為基礎(chǔ),以用戶需求為源泉。從如圖1-11的噴泉模型中可以看出7個(gè)特點(diǎn):(1)規(guī)定軟件開(kāi)發(fā)過(guò)程有4個(gè)階段:需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)和實(shí)現(xiàn),還可分成多個(gè)開(kāi)發(fā)步驟。(2)各階段相互重疊,反映了軟件過(guò)程并行性的特點(diǎn)。1.4
軟件開(kāi)發(fā)模型
1-11噴泉模型
1.4
軟件開(kāi)發(fā)模型(3)以分析為基礎(chǔ),資源消耗成塔形,在分析階段消耗的資源最多。(4)反映了軟件過(guò)程迭代性的自然特性,從高層返回低層無(wú)資源消耗。(5)強(qiáng)調(diào)增量開(kāi)發(fā),依據(jù)分析一點(diǎn)設(shè)計(jì)一點(diǎn)的原則,并不要求一個(gè)階段的徹底完成,整個(gè)過(guò)程是一個(gè)迭代的逐步提煉的過(guò)程。(6)是對(duì)象驅(qū)動(dòng)過(guò)程,對(duì)象是活動(dòng)作用的實(shí)體,也是項(xiàng)目管理的基本內(nèi)容。(7)實(shí)現(xiàn)中由于活動(dòng)不同,可分為系統(tǒng)實(shí)現(xiàn)和對(duì)象實(shí)現(xiàn),這既反映了全系統(tǒng)的開(kāi)發(fā)過(guò)程,也反映了對(duì)象族的開(kāi)發(fā)和重用過(guò)1.4
軟件開(kāi)發(fā)模型1.4.6基于面向?qū)ο蟮哪P?/p>
面向?qū)ο蠹夹g(shù)強(qiáng)調(diào)了類的創(chuàng)建與封裝,一個(gè)類創(chuàng)建與封裝成功后,便可在不同的應(yīng)用系統(tǒng)中被重用。面向?qū)ο蠹夹g(shù)為基于構(gòu)件的軟件過(guò)程模型提供了強(qiáng)大的技術(shù)框架?;诿嫦?qū)ο蟮哪P?,綜合了面向?qū)ο蠛驮头椒爸赜眉夹g(shù)。該模型如圖1-12所示。1.4
軟件開(kāi)發(fā)模型圖1-12基于面向?qū)ο蟮哪P?/p>
1.4
軟件開(kāi)發(fā)模型*1.4.7其他模型
1.智能模型
智能模型也稱為基于知識(shí)的軟件開(kāi)發(fā)模型,是知識(shí)工程與軟件工程在開(kāi)發(fā)模型上的結(jié)合,它以瀑布模型與專家系統(tǒng)的綜合應(yīng)用為基礎(chǔ)。如圖1-13所示,從中可見(jiàn)與其他模型不同,其維護(hù)并不在程序一級(jí)上進(jìn)行,可將問(wèn)題的復(fù)雜性極大降低。1.4
軟件開(kāi)發(fā)模型圖1-13智能模型
1.4
軟件開(kāi)發(fā)模型智能模型的主要優(yōu)點(diǎn)為:
(1)利用領(lǐng)域?qū)<蚁到y(tǒng),可使需求說(shuō)明更完整、準(zhǔn)確和無(wú)二義性。(2)借助軟件工程專家系統(tǒng),提供一個(gè)設(shè)計(jì)庫(kù)支持,在開(kāi)發(fā)過(guò)程中成為設(shè)計(jì)者的助手。(3)通過(guò)軟件工程知識(shí)和特定應(yīng)用領(lǐng)域的知識(shí)及規(guī)則的應(yīng)用,對(duì)開(kāi)發(fā)提供幫助。1.4
軟件開(kāi)發(fā)模型2.統(tǒng)一過(guò)程模型
統(tǒng)一開(kāi)發(fā)過(guò)程RUP(RationalUnifiedProcess)模型在迭代的開(kāi)發(fā)過(guò)程、需求管理、基于組件的體系結(jié)構(gòu)、可視化軟件建模、驗(yàn)證軟件質(zhì)量及控制軟件變更等方面,針對(duì)所有關(guān)鍵的開(kāi)發(fā)活動(dòng)為開(kāi)發(fā)成員提供了必要的準(zhǔn)則、模板和工具指導(dǎo),并確保共享相同的知識(shí)基礎(chǔ)。建立了簡(jiǎn)潔和清晰的過(guò)程結(jié)構(gòu),為開(kāi)發(fā)過(guò)程提供較多的通用性。(1)RUP的二維開(kāi)發(fā)模型及其核心工作流(CoreWorkflows)。主要包括:商業(yè)建模、需求、分析與設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、核心支持工作流、部署、配置和變更管理、項(xiàng)目管理和環(huán)境。如圖1-14所示。1.4
軟件開(kāi)發(fā)模型圖1-14RUP的二維開(kāi)發(fā)模型及其核心工作流
1.4
軟件開(kāi)發(fā)模型
(2)開(kāi)發(fā)中各階段和里程碑,主要包括。初始階段、細(xì)化階段、構(gòu)造階段、交付階段。(3)RUP的迭代開(kāi)發(fā)模式。如圖1-15所示。圖1-15RUP的迭代開(kāi)發(fā)模式
1.4
軟件開(kāi)發(fā)模型除了上述模型以外,還有其他一些的類似的模型,如形式化方法模型等。新型技術(shù)模型,即第四代技術(shù)模型如圖1-16所示。圖1-16第四代技術(shù)模型1.4
軟件開(kāi)發(fā)模型1.4.8軟件開(kāi)發(fā)模型的選定
1.開(kāi)發(fā)模型與開(kāi)發(fā)方法及工具的關(guān)系一般應(yīng)用軟件的開(kāi)發(fā)過(guò)程,主要包括生存周期的系統(tǒng)規(guī)劃、需求分析、軟件設(shè)計(jì)、實(shí)現(xiàn)四個(gè)階段。軟件的開(kāi)發(fā)方法多種多樣,結(jié)構(gòu)化方法和面向?qū)ο蟮姆椒ㄊ浅S玫淖罨镜拈_(kāi)發(fā)方法。當(dāng)采用不同的開(kāi)發(fā)方法時(shí),軟件的生存周期過(guò)程將表現(xiàn)為不同的過(guò)程模型。為解決開(kāi)發(fā)工程中大量復(fù)雜的手工勞動(dòng),提高軟件的開(kāi)發(fā)效率,還要采用計(jì)算機(jī)輔助軟件工程CASE開(kāi)發(fā)工具來(lái)支持整個(gè)開(kāi)發(fā)過(guò)程。軟件的開(kāi)發(fā)模型(生存周期過(guò)程模型)與開(kāi)發(fā)方法、開(kāi)發(fā)工具之間的關(guān)系如圖1-17所示。1.3軟件生存周期圖1-17開(kāi)發(fā)模型、方法和工具之間的關(guān)系
1.3
軟件生存周期
2.軟件開(kāi)發(fā)模型選取最常用的是瀑布模型和原型模型,其次是增量模型,由于迭代模型比較難以掌握使用較少。各種模型各有其特點(diǎn)和優(yōu)缺點(diǎn)。在具體選擇模型時(shí)需要綜合考慮以下6點(diǎn):(1)符合軟件本身的性質(zhì),包括規(guī)模、復(fù)雜性等;(2)滿足軟件應(yīng)用系統(tǒng)整體開(kāi)發(fā)進(jìn)度要求;(3)盡可能控制并消除軟件開(kāi)發(fā)風(fēng)險(xiǎn);(4)具有計(jì)算機(jī)輔助工具快速的支持,如快速原型工具;(5)與用戶和軟件開(kāi)發(fā)人員的知識(shí)和技能匹配;(6)有利于軟件開(kāi)發(fā)的管理與控制。通常情況下,面向過(guò)程方法可使用瀑布模型、增量模型和螺旋模型進(jìn)行開(kāi)發(fā);面向?qū)ο蠓椒刹捎每焖僭?、增量模型、噴泉模型和統(tǒng)一過(guò)程進(jìn)行開(kāi)發(fā);面向數(shù)據(jù)方法一股采用瀑布模型和增量模型進(jìn)行開(kāi)發(fā)。1.3
軟件生存周期
3.軟件開(kāi)發(fā)模型的修定在實(shí)際軟件開(kāi)發(fā)過(guò)程中,開(kāi)發(fā)模型的選定并非直接照抄照搬、一成不變,有時(shí)還需要根據(jù)實(shí)際開(kāi)發(fā)目標(biāo)要求進(jìn)行裁剪、修改、確定和綜合運(yùn)用。課堂討論:(l)以“學(xué)籍管理信息系統(tǒng)”為例,說(shuō)明在開(kāi)發(fā)過(guò)程各階段應(yīng)做好哪些具體工作?(2)如果在全校進(jìn)行統(tǒng)一聯(lián)網(wǎng)與管理,應(yīng)做哪些修改或更新?試從未來(lái)的發(fā)展趨勢(shì)來(lái)分析軟件開(kāi)發(fā)模型。(3)開(kāi)發(fā)模型的種類和特點(diǎn)有哪些?各適合哪種業(yè)務(wù)環(huán)境要求?
1.5實(shí)驗(yàn)一軟件開(kāi)發(fā)準(zhǔn)備及MSVisio概述
任務(wù)一軟件開(kāi)發(fā)前準(zhǔn)備工作
1.目的與任務(wù)
目的:確定課題,組織組員,合理分工,熟悉軟件開(kāi)發(fā)環(huán)境,培養(yǎng)團(tuán)隊(duì)精神。任務(wù):學(xué)習(xí)軟件開(kāi)發(fā)小組的組織和管理,合理分工,將項(xiàng)目開(kāi)發(fā)各階段的任務(wù)明確,并熟悉相應(yīng)的軟件開(kāi)發(fā)環(huán)境。
實(shí)驗(yàn)學(xué)時(shí):2學(xué)時(shí)。實(shí)驗(yàn)類型:驗(yàn)證性。
1.5實(shí)驗(yàn)一軟件開(kāi)發(fā)準(zhǔn)備及MSVisio概述
2.內(nèi)容、要求與安排方式
(1)實(shí)驗(yàn)內(nèi)容與要求:
根據(jù)各組選擇的課題,實(shí)行項(xiàng)目組長(zhǎng)(經(jīng)理)制,各組推薦一名組長(zhǎng),統(tǒng)一管理整個(gè)項(xiàng)目的實(shí)施過(guò)程,并和理調(diào)整資源和負(fù)責(zé)項(xiàng)目全局;根據(jù)項(xiàng)目的難易合理分配組員的任務(wù),對(duì)問(wèn)題達(dá)成一直的看法;針對(duì)項(xiàng)目的實(shí)施,熟悉相應(yīng)的軟件開(kāi)發(fā)工具的使用環(huán)境??己艘螅簩W(xué)習(xí)本章有關(guān)軟件開(kāi)發(fā)的有關(guān)知識(shí),組成研發(fā)小組、發(fā)揮特長(zhǎng)進(jìn)行選題、合理分工,明確項(xiàng)目開(kāi)發(fā)各階段的主要任務(wù),并熟悉相應(yīng)的軟件開(kāi)發(fā)環(huán)境,編寫(xiě)出初步的“軟件項(xiàng)目開(kāi)發(fā)計(jì)劃”。
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度辦公樓土建施工勞務(wù)技術(shù)支持合同3篇
- 二零二五年度中小學(xué)班班通教學(xué)資源共享協(xié)議3篇
- 2024年版房屋建筑工程補(bǔ)充協(xié)議樣本一
- 2025年度城市基礎(chǔ)設(shè)施安裝與維護(hù)外包合同3篇
- 2024年船舶租賃保證金協(xié)議3篇
- 2025年度模具行業(yè)產(chǎn)業(yè)園區(qū)建設(shè)合作合同2篇
- 2024版年度品牌代言合同代言范圍與費(fèi)用3篇
- 2025版文化創(chuàng)意產(chǎn)業(yè)抵押融資合同2篇
- 2024年適用外貿(mào)業(yè)務(wù)協(xié)議英文樣式版B版
- 2024年水電站建設(shè)與運(yùn)營(yíng)承包協(xié)議
- 2023年香港華夏杯六年級(jí)競(jìng)賽初賽數(shù)學(xué)試卷
- 高中數(shù)學(xué)放縮法
- 上海市閔行區(qū)2024-2025學(xué)年八年級(jí)(上)期末物理試卷(解析版)
- 2024年國(guó)考行測(cè)真題-言語(yǔ)理解與表達(dá)真題及完整答案1套
- 人教版三年級(jí)上冊(cè)數(shù)學(xué)期末測(cè)試卷可打印
- 醫(yī)療高級(jí)職稱評(píng)審論文答辯
- 設(shè)計(jì)服務(wù)保障措施方案
- 軟件測(cè)試方案模板(完整版)
- 建筑幕墻工程(鋁板、玻璃、石材)監(jiān)理實(shí)施細(xì)則(全面版)
- 基于課程標(biāo)準(zhǔn)的學(xué)生創(chuàng)新素養(yǎng)培育的學(xué)科教學(xué)改進(jìn)研究課題申報(bào)評(píng)審書(shū)
- 批判性思維技能測(cè)試題及答案
評(píng)論
0/150
提交評(píng)論