《軟件工程》課件_第1頁
《軟件工程》課件_第2頁
《軟件工程》課件_第3頁
《軟件工程》課件_第4頁
《軟件工程》課件_第5頁
已閱讀5頁,還剩123頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

觀察與思考為什么要學(xué)軟件工程?在軟件工程中學(xué)什么?應(yīng)該怎么學(xué)軟件工程?觀察與思考為什么要學(xué)軟件工程?1第1章《軟件工程》課件2課程簡介1.《軟件工程》:授課48學(xué)時(shí),上機(jī)8學(xué)時(shí)。2.教材:趙池龍等編著,《實(shí)用軟件工程(第二版)》,電子工業(yè)出版社,2006。3.考試評(píng)分:期末筆試60%,平時(shí)40%。4.大作業(yè):3-5人為一項(xiàng)目組,自選項(xiàng)目,走完項(xiàng)目需求、設(shè)計(jì)、編程、測試、運(yùn)行的全過程,要求文檔齊全、程序正確、界面友好、使用方便。課程簡介1.《軟件工程》:授課48學(xué)時(shí),上機(jī)8學(xué)時(shí)。3同學(xué)們加油干?。〉?章《軟件工程》課件4第1章軟件工程的內(nèi)容與方法1.1軟件工程的定義1.2軟件工程的作用1.3軟件的開發(fā)方法1.4軟件工程的五個(gè)面向理論1.5軟件的支持過程1.6軟件的管理過程第1章軟件工程的內(nèi)容與方法1.1軟件工程的定義5軟件危機(jī)軟件危機(jī)軟件危機(jī)出現(xiàn)的歷史

例1:1966年開發(fā)的IBM360機(jī)的操作系統(tǒng)例2:1963年美國的火箭控制系統(tǒng)程序例3:1996年歐空局的阿里安5火箭軟件例4:windowsvista軟件危機(jī)軟件危機(jī)例1:1966年開發(fā)的IBM360機(jī)的操作系61.1軟件工程的定義硬件:身體軟件:神經(jīng)中樞軟件開發(fā):痛并快樂著1.1軟件工程的定義硬件:身體7軟件的定義軟件==程序+數(shù)據(jù)+文檔。數(shù)據(jù)==初始化數(shù)據(jù)+測試數(shù)據(jù)文檔==開發(fā)文檔+管理文檔。RogerS.Pressman說:“越早開始寫代碼的人,就是越遲完成代碼的人”。軟件的定義軟件==程序+數(shù)據(jù)+文檔。8對管理文檔的認(rèn)識(shí):1974年,美國人認(rèn)識(shí)到軟件需要管理。1984年,美國人認(rèn)識(shí)到軟件管理是一個(gè)過程管理,或是一個(gè)管理過程。1991年,出現(xiàn)了軟件過程能力成熟度模型CMM(CapabilityMaturityModel)版。對管理文檔的認(rèn)識(shí):9軟件的最新定義軟件==知識(shí)+程序+數(shù)據(jù)+文檔對這一定義的討論:正方:因?yàn)檐浖侵R(shí)在網(wǎng)絡(luò)上的體現(xiàn),所以這個(gè)定義非常好。反方:程序、數(shù)據(jù)、文檔本身就是知識(shí)的表現(xiàn),所以這個(gè)定義是畫蛇添足。軟件的最新定義軟件==知識(shí)+程序+數(shù)據(jù)+文檔10軟件文檔具有嚴(yán)格的層次關(guān)系(1)《目標(biāo)程序》覆蓋《源程序》;(2)《源程序》覆蓋《詳細(xì)設(shè)計(jì)說明書》;(3)《詳細(xì)設(shè)計(jì)說明書》覆蓋《概要設(shè)計(jì)說明書》;(4)《概要設(shè)計(jì)說明書》覆蓋《需求規(guī)格說明書》;(5)《需求規(guī)格說明書》覆蓋《用戶需求報(bào)告》;(6)《用戶需求報(bào)告》覆蓋《軟件合同》。管理文檔具有嚴(yán)格的時(shí)序關(guān)系:因?yàn)楣芾硎且粋€(gè)過程。軟件文檔具有嚴(yán)格的層次關(guān)系(1)《目標(biāo)程序》覆蓋《源程序》;11程序的定義(1).面向過程的程序==算法+數(shù)據(jù)結(jié)構(gòu)。(2).面向?qū)ο蟮某绦?=對象+消息。(3).面向數(shù)據(jù)的程序==數(shù)據(jù)庫表+在表上的操作(如存貯過程、觸發(fā)器或視圖)。(4).面向構(gòu)件的程序==構(gòu)件+構(gòu)架。程序的定義(1).面向過程的程序==算法+數(shù)據(jù)結(jié)構(gòu)。12優(yōu)秀的程序(或模塊):“高內(nèi)聚、低耦合”有人說:“人生就是一段程序,這段程序是用特殊代碼寫成的,只是算法極其復(fù)雜而已。”優(yōu)秀的程序(或模塊):“高內(nèi)聚、低耦合”13軟件工程的定義(1).1990年,IEEE對軟件工程的定義是:軟件工程是將系統(tǒng)化的、嚴(yán)格約束的、可量化的方法,應(yīng)用于軟件開發(fā)、運(yùn)行和維護(hù)中去。(2).2001年,RogerS.Pressman對軟件工程的定義是:軟件工程是一個(gè)過程、一組方法和一系列工具。軟件工程的定義(1).1990年,IEEE對軟件工程的定義是14(3).2003年,趙池龍對軟件工程的定義是:軟件工程是研究軟件開發(fā)和軟件管理的一門工程科學(xué)。軟件工程的定義是與時(shí)俱進(jìn)的。(3).2003年,趙池龍對軟件工程的定義是:軟件工程是研究15軟件工程研究的內(nèi)容(1).

軟件開發(fā)模型,如:瀑布模型、增量模型、原型模型、螺旋模型、迭代模型等。(2).軟件開發(fā)方法,如:面向過程的方法、面向數(shù)據(jù)的方法、面向?qū)ο蟮姆椒?包括面向業(yè)務(wù)基礎(chǔ)平臺(tái)的方法、面向工作流方法、面向主體的方法、面向方面的方法、面向代理的方法等等),以及形式化方法。軟件工程研究的內(nèi)容(1).軟件開發(fā)模型,如:瀑布模型、增量16(3).軟件支持過程,如:CASE工具Rose、北大青鳥系統(tǒng)、PowerDesigner、ERWin,以及配置管理工具等。(4).軟件管理過程,如:ISO9000、CMM/CMMI、軟件企業(yè)文化(微軟企業(yè)文件、敏捷文化現(xiàn)象、IBM企業(yè)文化)。(3).軟件支持過程,如:CASE工具Rose、北大青鳥系17

【例】請讀者開發(fā)一個(gè)“圖書館信息系統(tǒng)”,即圖書館MIS。通過軟件開發(fā)過程和管理過程體驗(yàn)軟件工程?!纠空堊x者開發(fā)一個(gè)“圖書館信息系統(tǒng)”,即圖書館MI18著名軟件工程專家B.Boehm于1983年在一篇論文中提出了軟件工程的七條基本原理。

軟件工程的基本原理著名軟件工程專家B.Boehm于1983年在一篇論文中提出了19軟件工程的基本原理(1).用分階段的生命周期計(jì)劃,嚴(yán)格管理軟件開發(fā)。(2).堅(jiān)持進(jìn)行階段評(píng)審。(3).實(shí)行嚴(yán)格的產(chǎn)品版本控制。(4).采用現(xiàn)代程序設(shè)計(jì)技術(shù)。軟件工程的基本原理(1).用分階段的生命周期計(jì)劃,嚴(yán)格管理軟20(5).結(jié)果應(yīng)能清楚地審查。文檔要有嚴(yán)格要求。(6).開發(fā)小組的成員要少而精。(7).要不斷地改進(jìn)軟件工程實(shí)踐的經(jīng)驗(yàn)和技術(shù)。(8).二八定律,這條原理特別重要,項(xiàng)目經(jīng)理與高層經(jīng)理,要特別牢記。(5).結(jié)果應(yīng)能清楚地審查。文檔要有嚴(yán)格要求。211.2軟件工程的作用【例】20世紀(jì)90年代初,有兩個(gè)軟件團(tuán)隊(duì),一個(gè)較大(10多人),一個(gè)較?。?人),都在開發(fā)財(cái)務(wù)系統(tǒng)。1.2軟件工程的作用【例】20世紀(jì)90年代初,有兩個(gè)軟22較小團(tuán)隊(duì)分工明確:一人負(fù)責(zé)原始憑證和輸出報(bào)表的收集、歸類和整理一人負(fù)責(zé)科目和數(shù)據(jù)字典(代碼)一人負(fù)責(zé)記賬憑證的錄入和修改一人負(fù)責(zé)日記賬、明細(xì)賬和總賬之間的平衡與對賬一人負(fù)責(zé)統(tǒng)計(jì)、報(bào)表和查詢一人負(fù)責(zé)總體設(shè)計(jì)和項(xiàng)目管理較小團(tuán)隊(duì)分工明確:23軟件工程的作用從軟件項(xiàng)目團(tuán)隊(duì)來講從軟件企業(yè)本身來講從軟件發(fā)展進(jìn)程來講從院校來講軟件工程的作用從軟件項(xiàng)目團(tuán)隊(duì)來講24軟件工程作用的具體表現(xiàn)在選擇開發(fā)工具上,軟件工程的基本觀點(diǎn)是:工具不是越新越好,而是你越熟悉越好;在風(fēng)險(xiǎn)評(píng)估上,軟件工程的基本觀點(diǎn)是:任何項(xiàng)目組都存在技術(shù)風(fēng)險(xiǎn)和技能風(fēng)險(xiǎn);在項(xiàng)目策劃上,軟件工程的基本觀點(diǎn)是:需求分析在前,項(xiàng)目策劃在后;軟件工程作用的具體表現(xiàn)在選擇開發(fā)工具上,軟件工程的基本觀25在開發(fā)進(jìn)度上,軟件工程的觀點(diǎn)是:寧愿慢些,也要保證軟件的質(zhì)量;在開發(fā)質(zhì)量上,軟件工程的觀點(diǎn)是:質(zhì)量蘊(yùn)涵于開發(fā)過程之中,而不是過程之后;在開發(fā)人員上,軟件工程的觀點(diǎn)是:項(xiàng)目組在中途靠增加開發(fā)人員來提高開發(fā)速度是無效的;在項(xiàng)目經(jīng)理的職責(zé)上,軟件工程的觀點(diǎn)是:80%的時(shí)間是寫文檔,20%的時(shí)間是內(nèi)部勾通.在開發(fā)進(jìn)度上,軟件工程的觀點(diǎn)是:寧愿慢些,也要保證軟件的261.3軟件的開發(fā)方法

1.3.1三種開發(fā)方法到目前為止,共有4種軟件開發(fā)方法:(1).面向過程的方法(2).面向數(shù)據(jù)的方法(3).面向?qū)ο蟮姆椒?包括面向業(yè)務(wù)基礎(chǔ)平臺(tái)的方法、面向工作流方法、面向方面的方法、面向服務(wù)的方法)。(4).形式化方法。1.3軟件的開發(fā)方法

1.3.1三種開發(fā)方法到目27開發(fā)方法來自于程序設(shè)計(jì)語言(1).面向過程的程序==算法+數(shù)據(jù)結(jié)構(gòu)。(由順序、分支、循環(huán)三種結(jié)構(gòu)組成)由它產(chǎn)生了面向過程的方法。(2).面向數(shù)據(jù)的程序==表+表上的操作。由它產(chǎn)生了面向數(shù)據(jù)的方法。(3).面向?qū)ο蟮某绦?=對象+消息。由它產(chǎn)生了面向?qū)ο蟮姆椒?。開發(fā)方法來自于程序設(shè)計(jì)語言(1).面向過程的程序==算法+281.3.2面向過程的方法內(nèi)容:面向過程需求分析、面向過程設(shè)計(jì)、面向過程編程、面向過程測試、面向過程維護(hù)、面向過程管理。面向過程的方法,又稱為面向功能的方法,或稱為結(jié)構(gòu)化方法。1.3.2面向過程的方法內(nèi)容:面向過程需求分析、面向過29面向過程的方法

特點(diǎn):程序的執(zhí)行過程,不由用戶控制,完全由程序員控制。

優(yōu)點(diǎn):簡單實(shí)用。

缺點(diǎn):企圖用有窮的方法(枚舉法)來描述無窮的(隨機(jī)的)信息世界,所以不能完全描述信息世界;維護(hù)困難。應(yīng)用:如在軍事上的實(shí)時(shí)跟蹤監(jiān)控系統(tǒng)中有很好的應(yīng)用。面向過程的方法特點(diǎn):程序的執(zhí)行過程,不由用戶控制,完全由301.3.2面向?qū)ο蟮姆椒▋?nèi)容:面向?qū)ο笮枨蠓治?、面向?qū)ο笤O(shè)計(jì)、面向?qū)ο缶幊?、面向?qū)ο鬁y試、面向?qū)ο缶S護(hù)、面向?qū)ο蠊芾怼T诜治?、設(shè)計(jì)、實(shí)現(xiàn)中用到“對象、類、繼承、消息通信”這四個(gè)基本概,就是面向?qū)ο蟮姆椒?。今天用UML來開發(fā)軟件,就是面向?qū)ο蟮姆椒ā?.3.2面向?qū)ο蟮姆椒▋?nèi)容:面向?qū)ο笮枨蠓治?、面向?qū)?1面向?qū)ο蟮姆椒ㄌ攸c(diǎn):(1).程序的執(zhí)行過程,不由程序員控制,完全由用戶控制。(2).分析設(shè)計(jì)時(shí)面向類,編程時(shí)面向?qū)ο蟆?/p>

優(yōu)點(diǎn):用無窮的方法來描述無窮的(隨機(jī)的)信息世界,所以能完全描述信息世界;易于維護(hù)。

缺點(diǎn):較難掌握。應(yīng)用廣泛面向?qū)ο蟮姆椒ㄌ攸c(diǎn):32是面向元數(shù)據(jù)(Metadata)的方法,它是建設(shè)信息系統(tǒng)數(shù)據(jù)庫和數(shù)據(jù)倉庫的基本方法。該方法將與關(guān)系數(shù)據(jù)庫同生死、共患難。1.3.3面向數(shù)據(jù)的方法是面向元數(shù)據(jù)(Metadata)的方法,它是建設(shè)信息系統(tǒng)33面向數(shù)據(jù)的方法內(nèi)容:(1)數(shù)據(jù)位于信息系統(tǒng)的中心。(2)由元數(shù)據(jù)構(gòu)成的數(shù)據(jù)模型是穩(wěn)定的。(3)對元數(shù)據(jù)的處理方法是可變的。(4)企業(yè)信息系統(tǒng)的核心是數(shù)據(jù)模型。(5)系統(tǒng)的實(shí)現(xiàn)方法主要是面向?qū)ο蟆?6)用戶始終參與信息系統(tǒng)的開發(fā)。面向數(shù)據(jù)的方法內(nèi)容:34面向數(shù)據(jù)的方法特點(diǎn):程序的執(zhí)行過程,有時(shí)由程序員控制,有時(shí)由用戶控制。

優(yōu)點(diǎn):適合數(shù)據(jù)層(數(shù)據(jù)庫服務(wù)器)設(shè)計(jì)與實(shí)現(xiàn)。

缺點(diǎn):實(shí)現(xiàn)窗口界面較困難。應(yīng)用:如面向數(shù)據(jù)的方法在電子商務(wù)中也有應(yīng)用。面向數(shù)據(jù)的方法特點(diǎn):程序的執(zhí)行過程,有時(shí)由程序員控制,有35*1.3.4軟件工程的形式化方法不講,考研的人可以自學(xué)。因?yàn)樵贗T企業(yè)用不上。*1.3.4軟件工程的形式化方法不講,考研的人可以自361.3.5四種開發(fā)方法總結(jié)對比方法名稱優(yōu)點(diǎn)缺點(diǎn)適合的場合面向過程的方法簡單好學(xué)不適應(yīng)窗口界面,維護(hù)困難大型工程計(jì)算,實(shí)時(shí)數(shù)據(jù)跟蹤處理,各種自動(dòng)化控制系統(tǒng),以及系統(tǒng)軟件實(shí)現(xiàn)等領(lǐng)域面向?qū)ο蟮姆椒üδ軓?qiáng)大,易于維護(hù)不易掌握互聯(lián)網(wǎng)絡(luò)時(shí)代,完全由用戶交互控制程序執(zhí)行過程的應(yīng)用軟件和系統(tǒng)軟件的開發(fā)面向數(shù)據(jù)的方法通俗易懂不適應(yīng)窗口界面以關(guān)系數(shù)據(jù)庫管理系統(tǒng)為支撐環(huán)境的信息系統(tǒng)建設(shè)形式化方法準(zhǔn)確、嚴(yán)謹(jǐn)難于上手和應(yīng)用對安全性要求極高,不容許出錯(cuò)的軟件系統(tǒng),如軍事、醫(yī)藥、交通等領(lǐng)域1.3.5四種開發(fā)方法總結(jié)對比方法名稱優(yōu)點(diǎn)371.4軟件工程的五個(gè)面向理論綜合這三種開發(fā)方法的優(yōu)勢,特別提出“五個(gè)面向”的實(shí)施理論:1.面向流程分析2.面向數(shù)據(jù)設(shè)計(jì)3.面向?qū)ο髮?shí)現(xiàn)4.面向功能測試5.面向過程管理1.4軟件工程的五個(gè)面向理論綜合這三種開發(fā)方法的優(yōu)勢38面向流程分析面向流程分析,就是面向流程需求分析。面向業(yè)務(wù)流、資金流、信息流進(jìn)行分析。面向流程分析面向流程分析,就是面向流程需求分析。39面向數(shù)據(jù)設(shè)計(jì)面向數(shù)據(jù)設(shè)計(jì),就是面向元數(shù)據(jù)進(jìn)行概要設(shè)計(jì)。在系統(tǒng)設(shè)計(jì)時(shí),系統(tǒng)設(shè)計(jì)師要采用面向數(shù)據(jù)的方法進(jìn)行概要設(shè)計(jì)。面向數(shù)據(jù)就是面向“元數(shù)據(jù)”(Metadata)。面向數(shù)據(jù)設(shè)計(jì)面向數(shù)據(jù)設(shè)計(jì),就是面向元數(shù)據(jù)進(jìn)行概要設(shè)計(jì)。40面向?qū)ο髮?shí)現(xiàn)面向?qū)ο髮?shí)現(xiàn),就是面向?qū)ο筮M(jìn)行詳細(xì)設(shè)計(jì)和編程實(shí)現(xiàn)。在兩層結(jié)構(gòu)(C/S)的客戶層上,在三層結(jié)構(gòu)(B/A/S)的表示層和業(yè)務(wù)邏輯層上,進(jìn)行詳細(xì)設(shè)計(jì)和編程實(shí)現(xiàn)時(shí),要采用面向?qū)ο蟮姆椒?。?dāng)然,在數(shù)據(jù)服務(wù)層上的設(shè)計(jì)和編程實(shí)現(xiàn),仍然要采用面向數(shù)據(jù)的方法,因?yàn)橹饕窃O(shè)計(jì)和編寫存儲(chǔ)過程,它們是面向數(shù)據(jù)的,不是面向?qū)ο蟮?。面向?qū)ο髮?shí)現(xiàn)面向?qū)ο髮?shí)現(xiàn),就是面向?qū)ο筮M(jìn)行詳細(xì)設(shè)計(jì)和編41面向?qū)ο髮?shí)現(xiàn)詳細(xì)設(shè)計(jì)和編程實(shí)現(xiàn),實(shí)質(zhì)上是用構(gòu)件加上程序來實(shí)現(xiàn)系統(tǒng)的業(yè)務(wù)模型和功能模型。只有對三個(gè)模型思想(業(yè)務(wù)模型、功能模型、數(shù)據(jù)模型)吃透了,才能設(shè)計(jì)和編寫出合格的程序。面向?qū)ο髮?shí)現(xiàn),實(shí)質(zhì)上是面向類實(shí)現(xiàn),因?yàn)閷?shí)例化的類稱為對象。面向?qū)ο髮?shí)現(xiàn)詳細(xì)設(shè)計(jì)和編程實(shí)現(xiàn),實(shí)質(zhì)上是用構(gòu)件加上程序來42面向功能測試面向功能測試,就是面向功能進(jìn)行單元測試、集成測試、Alpha測試和Beta測試。在進(jìn)行測試時(shí),測試人員要采用面向功能的方法。這里講的功能,包括系統(tǒng)的功能、性能和接口三部分內(nèi)容。面向功能測試的方法就是黑盒子測試方法,今后采用白盒子測試方法(面向程序執(zhí)行路徑測試)的人,只有從事軟件構(gòu)件生產(chǎn)和核心代碼編程的極少數(shù)人員。面向功能測試面向功能測試,就是面向功能進(jìn)行單元測試、集成43面向過程管理面向過程管理,就是面向過程對軟件生命周期各個(gè)階段進(jìn)行管理和控制。因?yàn)檐浖a(chǎn)品質(zhì)量的提高與改進(jìn),完全取決于軟件企業(yè)生產(chǎn)過程的改善。無論是CMM/CMMI、ISO9000、微軟企業(yè)文化,都是站在軟件生命周期過程的觀念上去提高軟件企業(yè)的素質(zhì)。面向過程管理面向過程管理,就是面向過程對軟件生命周期各個(gè)441.5軟件的支持過程軟件工程中的過程,是指軟件生命周期(LifeCycle)中的時(shí)間序列。過程作為一個(gè)時(shí)間序列,它自然有起始點(diǎn)和終止點(diǎn)。例如,可以將一個(gè)軟件的生命周期劃分為市場調(diào)研、立項(xiàng)、需求分析、策劃、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程、單體測試、集成測試、運(yùn)行、維護(hù)這幾個(gè)過程。過程與階段(Phase)相對應(yīng),階段與里程碑(Milestone)相對應(yīng)。某些重要的里程碑上的文檔,又對應(yīng)基線(baseline)。1.5軟件的支持過程軟件工程中的過程,是指軟件生命周45軟件的支持過程軟件工程的支持過程,由支持軟件生存周期各個(gè)階段的生產(chǎn)工具所組成。生產(chǎn)工具如需求分析工具、設(shè)計(jì)工具、實(shí)現(xiàn)工具、測試工具、維護(hù)工具、配置工具,開發(fā)環(huán)境。軟件開發(fā)環(huán)境又稱CASE工具,如北大青鳥系統(tǒng),SanFrancisco,Rose,面向行業(yè)領(lǐng)域開發(fā)的業(yè)務(wù)基礎(chǔ)平臺(tái)(包括軟件企業(yè)內(nèi)部使用的各種J2EE平臺(tái)和.Net平臺(tái))。軟件的支持過程軟件工程的支持過程,由支持軟件生存周期各個(gè)階段461.6軟件的管理過程“外行關(guān)注結(jié)果,內(nèi)行關(guān)注過程”。管理過程和支持過程又稱為“軟件過程工程”。1974年,美國人始認(rèn)識(shí)到“軟件需要管理”。1984年,美國人認(rèn)識(shí)到“軟件管理是過程管理”。1.6軟件的管理過程“外行關(guān)注結(jié)果,內(nèi)行關(guān)注過程”。47軟件的管理過程軟件中的過程,分為“基本過程、支持過程、組織過程”三種.基本過程是需求、設(shè)計(jì)、實(shí)現(xiàn)、測試、驗(yàn)收過程;支持過程是支持過程開發(fā)和過程管理的各種CASE工具;組織過程是建立的有關(guān)小組,如軟件工程組、質(zhì)量保證組、測試組、文檔組。軟件的管理過程軟件中的過程,分為“基本過程、支持過程、組48軟件的管理過程軟件工程中主要存在3類過程管理模型:(1).ISO9000質(zhì)量管理和質(zhì)量保證體系(2).CMMI過程能力成熟度模型集成(3).企業(yè)文化(微軟企業(yè)文化、敏捷文化現(xiàn)象等)軟件的管理過程軟件工程中主要存在3類過程管理模型:49序號(hào)名稱來源特點(diǎn)1ISO9000質(zhì)量管理和質(zhì)量保證體系國際標(biāo)準(zhǔn)化組織ISO按20多個(gè)質(zhì)量要素管理2CMMI軟件能力成熟度模型美國卡內(nèi)基-梅隆大學(xué)軟件工程研究所(CMU/SEI)按24個(gè)過程域PA,分階段模型和連續(xù)模型兩種方式管理,屬于重載過程管理3軟件企業(yè)文化Microsoft公司、IBM公司、敏捷方法屬于輕載過程管理序號(hào)名稱來源特點(diǎn)1ISO900501.6.1ISO9000體系1.“質(zhì)量手冊”內(nèi)容:質(zhì)量方針和目標(biāo)、公司簡介、組織機(jī)構(gòu)、質(zhì)量體系要求、質(zhì)量手冊管理細(xì)則等2.“程序文件”內(nèi)容:規(guī)定每個(gè)質(zhì)量要素在何時(shí)、在何地、由何人、按照什么標(biāo)準(zhǔn)、規(guī)范或規(guī)程去做。做完后書寫質(zhì)量記錄的模板格式。3.“質(zhì)量記錄”內(nèi)容:對每個(gè)質(zhì)量要素,在執(zhí)行活動(dòng)中,按照書寫質(zhì)量記錄的模板格式書寫的文檔。1.6.1ISO9000體系1.“質(zhì)量手冊”內(nèi)容:質(zhì)量511.6.2微軟企業(yè)文化“平等、自由、親和、融洽、創(chuàng)新、激情、溝通和主人翁精神”的企業(yè)文化,是“以人為本”企業(yè)文化的具體表現(xiàn),是微軟的精神管理模式。微軟的用人之道是“人品、智慧、團(tuán)隊(duì)精神”三要素,以及“寧缺勿濫”和“不拘一格”的原則,它是微軟招聘、培養(yǎng)、考察、提升員工的標(biāo)準(zhǔn)。1.6.2微軟企業(yè)文化“平等、自由、親和、融洽、創(chuàng)新521.6.3CMM/CMMICMM/CMMI的作用概括地講,軟件企業(yè)的過程能力成熟度模型CMM的作用,是軟件組織的能力評(píng)估和過程改進(jìn),它的應(yīng)用領(lǐng)域具體表現(xiàn)在三個(gè)方面:(1)軟件組織:用它來不斷改進(jìn)自身的軟件過程管理能力;(2)評(píng)估機(jī)構(gòu):用它來評(píng)估某軟件組織當(dāng)前軟件能力成熟度的級(jí)別;(3)客戶:用它來評(píng)價(jià)某承包商(軟件外包商)的軟件能力。1.6.3CMM/CMMICMM/CMMI的作用53CMM/CMMI的實(shí)質(zhì)(1)以“過程”為核心抓軟件組織的管理,即軟件“組織”的過程改進(jìn)。(2)以“項(xiàng)目”為手段抓團(tuán)隊(duì)開發(fā)過程的“活動(dòng)”,即落實(shí)過程改進(jìn)的措施。(3)以“活動(dòng)”記錄為基礎(chǔ)抓軟件過程的“度量”,即“度量”軟件組織改進(jìn)的情況。通過以上三項(xiàng)措施,使軟件過程逐漸變?yōu)榭梢暋⒖煽?,從而?shí)現(xiàn)CMMI精神:質(zhì)量源于過程、過程需要改進(jìn)、改進(jìn)需要模型、改進(jìn)永無止境。CMM/CMMI的實(shí)質(zhì)(1)以“過程”為核心抓軟件組織54CMM/CMMI的實(shí)質(zhì)“過程”,既包括軟件開發(fā)過程,又包括軟件管理過程?!敖M織”,是指軟件企業(yè)自己,或自己內(nèi)部的一個(gè)軟件研發(fā)部門?!绊?xiàng)目”,是指軟件企業(yè)的項(xiàng)目開發(fā)團(tuán)隊(duì)?!盎顒?dòng)”,包括項(xiàng)目的開發(fā)活動(dòng)和項(xiàng)目的管理活動(dòng)兩個(gè)方面?!岸攘俊保侵笇浖y量數(shù)據(jù)庫中的項(xiàng)目管理記錄數(shù)據(jù)進(jìn)行統(tǒng)計(jì)和分析。CMM/CMMI的實(shí)質(zhì)“過程”,既包括軟件開發(fā)過程,又包55CMM的級(jí)別CMM1級(jí):初始級(jí),無序管理。CMM2級(jí):可重復(fù)級(jí),項(xiàng)目級(jí)管理。CMM3級(jí):已定義級(jí),組織級(jí)管理。CMM4級(jí):已管理級(jí),數(shù)據(jù)級(jí)管理。CMM5級(jí):優(yōu)化級(jí),優(yōu)化級(jí)管理。CMM的級(jí)別CMM1級(jí):初始級(jí),無序管理。56CMM/CMMI的內(nèi)容(1)CMM的內(nèi)容:五個(gè)級(jí)別、18個(gè)關(guān)鍵過程域(KPA)(2)CMMI的內(nèi)容:階段式模型:五個(gè)級(jí)別、24個(gè)過程域(PA)連續(xù)式模型:六個(gè)級(jí)別、24個(gè)過程域(PA)CMM/CMMI的內(nèi)容(1)CMM的內(nèi)容:571.7軟件工程與信息系統(tǒng)工程利用計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)、數(shù)字通信技術(shù)與數(shù)據(jù)庫技術(shù)實(shí)現(xiàn)信息采集和處理的系統(tǒng),稱為當(dāng)代信息系統(tǒng)。信息系統(tǒng)由社會(huì)環(huán)境、網(wǎng)絡(luò)環(huán)境、數(shù)據(jù)環(huán)境和程序環(huán)境這四個(gè)部分組成。1.7軟件工程與信息系統(tǒng)工程利用計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)、數(shù)字58軟件工程與信息系統(tǒng)工程信息標(biāo)準(zhǔn)化,就是信息代碼化和規(guī)范化。代碼化就是用數(shù)字或字符代碼來表示信息,這種表示方式便于在信息系統(tǒng)中交流。規(guī)范化就是代碼要遵守一套規(guī)定和標(biāo)準(zhǔn),不能自行其事。軟件工程與信息系統(tǒng)工程信息標(biāo)準(zhǔn)化,就是信息代碼化和規(guī)范化591.8信息系統(tǒng)建設(shè)案例分析港口綜合MIS系統(tǒng)包括如下子系統(tǒng):(1)貨物運(yùn)輸子系統(tǒng)(2)船舶調(diào)度子系統(tǒng)(3)設(shè)備管理子系統(tǒng)(4)物資管理子系統(tǒng)(5)客運(yùn)管理子系統(tǒng)(6)外輪代理子系統(tǒng)(7)集裝箱子系統(tǒng)(8)人事勞資子系統(tǒng)1.8信息系統(tǒng)建設(shè)案例分析港口綜合MIS系統(tǒng)包括如下子60港口信息系統(tǒng)建設(shè)案例分析成功的秘密歸納起來,有4點(diǎn):(1)自始至終堅(jiān)持采用“面向數(shù)據(jù)的方法”不動(dòng)搖。即堅(jiān)持面向數(shù)據(jù)分析、面向數(shù)據(jù)設(shè)計(jì)、面向數(shù)據(jù)實(shí)現(xiàn)、面向數(shù)據(jù)測試、面向數(shù)據(jù)維護(hù)。(2)自始至終堅(jiān)持采用Oracle關(guān)系數(shù)據(jù)庫管理系統(tǒng)不動(dòng)搖。客觀地說,建設(shè)大型信息系統(tǒng),Oracle數(shù)據(jù)庫具有穩(wěn)定可靠的強(qiáng)大功能和優(yōu)秀性能。港口信息系統(tǒng)建設(shè)案例分析成功的秘密歸納起來,有4點(diǎn):61港口信息系統(tǒng)建設(shè)案例分析(3)自始至終堅(jiān)持采用CASE工具不動(dòng)搖。這些工具包括設(shè)計(jì)工具PowerDesigner和實(shí)現(xiàn)工具Developer2000,它們都是面向數(shù)據(jù)的開發(fā)工具。(4)自始至終堅(jiān)持港口信息系統(tǒng)建設(shè)不動(dòng)搖。要做行業(yè)ERP,就必須熟悉并精通該行業(yè)的業(yè)務(wù)流程和規(guī)則,長期堅(jiān)持某一行業(yè)的方向不動(dòng)搖,才能做該行業(yè)領(lǐng)域的業(yè)務(wù)專家,才能與時(shí)俱進(jìn)地把握該行業(yè)領(lǐng)域的客戶需求。港口信息系統(tǒng)建設(shè)案例分析(3)自始至終堅(jiān)持采用CASE工62港口信息系統(tǒng)建設(shè)最新動(dòng)態(tài)JustepX3業(yè)務(wù)基礎(chǔ)平臺(tái)當(dāng)代信息系統(tǒng)應(yīng)該構(gòu)建在業(yè)務(wù)基礎(chǔ)平臺(tái)上,而不是直接構(gòu)建在技術(shù)平臺(tái)上.當(dāng)代信息系統(tǒng)的開發(fā)應(yīng)該采用業(yè)務(wù)建模的方式,而不是采用原始的編程工具.業(yè)務(wù)基礎(chǔ)平臺(tái)實(shí)現(xiàn)了上述思想.業(yè)務(wù)基礎(chǔ)平臺(tái)的核心能力包括團(tuán)隊(duì)協(xié)作、流程控制、業(yè)務(wù)集成、系統(tǒng)智能、決策支持和持續(xù)完善.港口信息系統(tǒng)建設(shè)最新動(dòng)態(tài)JustepX3業(yè)務(wù)基礎(chǔ)平臺(tái)631.9本章小結(jié)本章介紹了軟件工程的定義、內(nèi)容、作用,以及三種開發(fā)方法、五個(gè)面向理論。這些都是軟件工程的精華;本章既是研究軟件工程的出發(fā)點(diǎn),又是研究軟件工程的歸宿。既是緒論,又是總結(jié)。由于軟件工程是一門實(shí)踐性很強(qiáng)的科學(xué),所以要真正弄懂它,吃透它,一定要理論聯(lián)系實(shí)際,學(xué)以致用。1.9本章小結(jié)本章介紹了軟件工程的定義、內(nèi)容、作用,64觀察與思考為什么要學(xué)軟件工程?在軟件工程中學(xué)什么?應(yīng)該怎么學(xué)軟件工程?觀察與思考為什么要學(xué)軟件工程?65第1章《軟件工程》課件66課程簡介1.《軟件工程》:授課48學(xué)時(shí),上機(jī)8學(xué)時(shí)。2.教材:趙池龍等編著,《實(shí)用軟件工程(第二版)》,電子工業(yè)出版社,2006。3.考試評(píng)分:期末筆試60%,平時(shí)40%。4.大作業(yè):3-5人為一項(xiàng)目組,自選項(xiàng)目,走完項(xiàng)目需求、設(shè)計(jì)、編程、測試、運(yùn)行的全過程,要求文檔齊全、程序正確、界面友好、使用方便。課程簡介1.《軟件工程》:授課48學(xué)時(shí),上機(jī)8學(xué)時(shí)。67同學(xué)們加油干??!第1章《軟件工程》課件68第1章軟件工程的內(nèi)容與方法1.1軟件工程的定義1.2軟件工程的作用1.3軟件的開發(fā)方法1.4軟件工程的五個(gè)面向理論1.5軟件的支持過程1.6軟件的管理過程第1章軟件工程的內(nèi)容與方法1.1軟件工程的定義69軟件危機(jī)軟件危機(jī)軟件危機(jī)出現(xiàn)的歷史

例1:1966年開發(fā)的IBM360機(jī)的操作系統(tǒng)例2:1963年美國的火箭控制系統(tǒng)程序例3:1996年歐空局的阿里安5火箭軟件例4:windowsvista軟件危機(jī)軟件危機(jī)例1:1966年開發(fā)的IBM360機(jī)的操作系701.1軟件工程的定義硬件:身體軟件:神經(jīng)中樞軟件開發(fā):痛并快樂著1.1軟件工程的定義硬件:身體71軟件的定義軟件==程序+數(shù)據(jù)+文檔。數(shù)據(jù)==初始化數(shù)據(jù)+測試數(shù)據(jù)文檔==開發(fā)文檔+管理文檔。RogerS.Pressman說:“越早開始寫代碼的人,就是越遲完成代碼的人”。軟件的定義軟件==程序+數(shù)據(jù)+文檔。72對管理文檔的認(rèn)識(shí):1974年,美國人認(rèn)識(shí)到軟件需要管理。1984年,美國人認(rèn)識(shí)到軟件管理是一個(gè)過程管理,或是一個(gè)管理過程。1991年,出現(xiàn)了軟件過程能力成熟度模型CMM(CapabilityMaturityModel)版。對管理文檔的認(rèn)識(shí):73軟件的最新定義軟件==知識(shí)+程序+數(shù)據(jù)+文檔對這一定義的討論:正方:因?yàn)檐浖侵R(shí)在網(wǎng)絡(luò)上的體現(xiàn),所以這個(gè)定義非常好。反方:程序、數(shù)據(jù)、文檔本身就是知識(shí)的表現(xiàn),所以這個(gè)定義是畫蛇添足。軟件的最新定義軟件==知識(shí)+程序+數(shù)據(jù)+文檔74軟件文檔具有嚴(yán)格的層次關(guān)系(1)《目標(biāo)程序》覆蓋《源程序》;(2)《源程序》覆蓋《詳細(xì)設(shè)計(jì)說明書》;(3)《詳細(xì)設(shè)計(jì)說明書》覆蓋《概要設(shè)計(jì)說明書》;(4)《概要設(shè)計(jì)說明書》覆蓋《需求規(guī)格說明書》;(5)《需求規(guī)格說明書》覆蓋《用戶需求報(bào)告》;(6)《用戶需求報(bào)告》覆蓋《軟件合同》。管理文檔具有嚴(yán)格的時(shí)序關(guān)系:因?yàn)楣芾硎且粋€(gè)過程。軟件文檔具有嚴(yán)格的層次關(guān)系(1)《目標(biāo)程序》覆蓋《源程序》;75程序的定義(1).面向過程的程序==算法+數(shù)據(jù)結(jié)構(gòu)。(2).面向?qū)ο蟮某绦?=對象+消息。(3).面向數(shù)據(jù)的程序==數(shù)據(jù)庫表+在表上的操作(如存貯過程、觸發(fā)器或視圖)。(4).面向構(gòu)件的程序==構(gòu)件+構(gòu)架。程序的定義(1).面向過程的程序==算法+數(shù)據(jù)結(jié)構(gòu)。76優(yōu)秀的程序(或模塊):“高內(nèi)聚、低耦合”有人說:“人生就是一段程序,這段程序是用特殊代碼寫成的,只是算法極其復(fù)雜而已。”優(yōu)秀的程序(或模塊):“高內(nèi)聚、低耦合”77軟件工程的定義(1).1990年,IEEE對軟件工程的定義是:軟件工程是將系統(tǒng)化的、嚴(yán)格約束的、可量化的方法,應(yīng)用于軟件開發(fā)、運(yùn)行和維護(hù)中去。(2).2001年,RogerS.Pressman對軟件工程的定義是:軟件工程是一個(gè)過程、一組方法和一系列工具。軟件工程的定義(1).1990年,IEEE對軟件工程的定義是78(3).2003年,趙池龍對軟件工程的定義是:軟件工程是研究軟件開發(fā)和軟件管理的一門工程科學(xué)。軟件工程的定義是與時(shí)俱進(jìn)的。(3).2003年,趙池龍對軟件工程的定義是:軟件工程是研究79軟件工程研究的內(nèi)容(1).

軟件開發(fā)模型,如:瀑布模型、增量模型、原型模型、螺旋模型、迭代模型等。(2).軟件開發(fā)方法,如:面向過程的方法、面向數(shù)據(jù)的方法、面向?qū)ο蟮姆椒?包括面向業(yè)務(wù)基礎(chǔ)平臺(tái)的方法、面向工作流方法、面向主體的方法、面向方面的方法、面向代理的方法等等),以及形式化方法。軟件工程研究的內(nèi)容(1).軟件開發(fā)模型,如:瀑布模型、增量80(3).軟件支持過程,如:CASE工具Rose、北大青鳥系統(tǒng)、PowerDesigner、ERWin,以及配置管理工具等。(4).軟件管理過程,如:ISO9000、CMM/CMMI、軟件企業(yè)文化(微軟企業(yè)文件、敏捷文化現(xiàn)象、IBM企業(yè)文化)。(3).軟件支持過程,如:CASE工具Rose、北大青鳥系81

【例】請讀者開發(fā)一個(gè)“圖書館信息系統(tǒng)”,即圖書館MIS。通過軟件開發(fā)過程和管理過程體驗(yàn)軟件工程。【例】請讀者開發(fā)一個(gè)“圖書館信息系統(tǒng)”,即圖書館MI82著名軟件工程專家B.Boehm于1983年在一篇論文中提出了軟件工程的七條基本原理。

軟件工程的基本原理著名軟件工程專家B.Boehm于1983年在一篇論文中提出了83軟件工程的基本原理(1).用分階段的生命周期計(jì)劃,嚴(yán)格管理軟件開發(fā)。(2).堅(jiān)持進(jìn)行階段評(píng)審。(3).實(shí)行嚴(yán)格的產(chǎn)品版本控制。(4).采用現(xiàn)代程序設(shè)計(jì)技術(shù)。軟件工程的基本原理(1).用分階段的生命周期計(jì)劃,嚴(yán)格管理軟84(5).結(jié)果應(yīng)能清楚地審查。文檔要有嚴(yán)格要求。(6).開發(fā)小組的成員要少而精。(7).要不斷地改進(jìn)軟件工程實(shí)踐的經(jīng)驗(yàn)和技術(shù)。(8).二八定律,這條原理特別重要,項(xiàng)目經(jīng)理與高層經(jīng)理,要特別牢記。(5).結(jié)果應(yīng)能清楚地審查。文檔要有嚴(yán)格要求。851.2軟件工程的作用【例】20世紀(jì)90年代初,有兩個(gè)軟件團(tuán)隊(duì),一個(gè)較大(10多人),一個(gè)較小(6人),都在開發(fā)財(cái)務(wù)系統(tǒng)。1.2軟件工程的作用【例】20世紀(jì)90年代初,有兩個(gè)軟86較小團(tuán)隊(duì)分工明確:一人負(fù)責(zé)原始憑證和輸出報(bào)表的收集、歸類和整理一人負(fù)責(zé)科目和數(shù)據(jù)字典(代碼)一人負(fù)責(zé)記賬憑證的錄入和修改一人負(fù)責(zé)日記賬、明細(xì)賬和總賬之間的平衡與對賬一人負(fù)責(zé)統(tǒng)計(jì)、報(bào)表和查詢一人負(fù)責(zé)總體設(shè)計(jì)和項(xiàng)目管理較小團(tuán)隊(duì)分工明確:87軟件工程的作用從軟件項(xiàng)目團(tuán)隊(duì)來講從軟件企業(yè)本身來講從軟件發(fā)展進(jìn)程來講從院校來講軟件工程的作用從軟件項(xiàng)目團(tuán)隊(duì)來講88軟件工程作用的具體表現(xiàn)在選擇開發(fā)工具上,軟件工程的基本觀點(diǎn)是:工具不是越新越好,而是你越熟悉越好;在風(fēng)險(xiǎn)評(píng)估上,軟件工程的基本觀點(diǎn)是:任何項(xiàng)目組都存在技術(shù)風(fēng)險(xiǎn)和技能風(fēng)險(xiǎn);在項(xiàng)目策劃上,軟件工程的基本觀點(diǎn)是:需求分析在前,項(xiàng)目策劃在后;軟件工程作用的具體表現(xiàn)在選擇開發(fā)工具上,軟件工程的基本觀89在開發(fā)進(jìn)度上,軟件工程的觀點(diǎn)是:寧愿慢些,也要保證軟件的質(zhì)量;在開發(fā)質(zhì)量上,軟件工程的觀點(diǎn)是:質(zhì)量蘊(yùn)涵于開發(fā)過程之中,而不是過程之后;在開發(fā)人員上,軟件工程的觀點(diǎn)是:項(xiàng)目組在中途靠增加開發(fā)人員來提高開發(fā)速度是無效的;在項(xiàng)目經(jīng)理的職責(zé)上,軟件工程的觀點(diǎn)是:80%的時(shí)間是寫文檔,20%的時(shí)間是內(nèi)部勾通.在開發(fā)進(jìn)度上,軟件工程的觀點(diǎn)是:寧愿慢些,也要保證軟件的901.3軟件的開發(fā)方法

1.3.1三種開發(fā)方法到目前為止,共有4種軟件開發(fā)方法:(1).面向過程的方法(2).面向數(shù)據(jù)的方法(3).面向?qū)ο蟮姆椒?包括面向業(yè)務(wù)基礎(chǔ)平臺(tái)的方法、面向工作流方法、面向方面的方法、面向服務(wù)的方法)。(4).形式化方法。1.3軟件的開發(fā)方法

1.3.1三種開發(fā)方法到目91開發(fā)方法來自于程序設(shè)計(jì)語言(1).面向過程的程序==算法+數(shù)據(jù)結(jié)構(gòu)。(由順序、分支、循環(huán)三種結(jié)構(gòu)組成)由它產(chǎn)生了面向過程的方法。(2).面向數(shù)據(jù)的程序==表+表上的操作。由它產(chǎn)生了面向數(shù)據(jù)的方法。(3).面向?qū)ο蟮某绦?=對象+消息。由它產(chǎn)生了面向?qū)ο蟮姆椒?。開發(fā)方法來自于程序設(shè)計(jì)語言(1).面向過程的程序==算法+921.3.2面向過程的方法內(nèi)容:面向過程需求分析、面向過程設(shè)計(jì)、面向過程編程、面向過程測試、面向過程維護(hù)、面向過程管理。面向過程的方法,又稱為面向功能的方法,或稱為結(jié)構(gòu)化方法。1.3.2面向過程的方法內(nèi)容:面向過程需求分析、面向過93面向過程的方法

特點(diǎn):程序的執(zhí)行過程,不由用戶控制,完全由程序員控制。

優(yōu)點(diǎn):簡單實(shí)用。

缺點(diǎn):企圖用有窮的方法(枚舉法)來描述無窮的(隨機(jī)的)信息世界,所以不能完全描述信息世界;維護(hù)困難。應(yīng)用:如在軍事上的實(shí)時(shí)跟蹤監(jiān)控系統(tǒng)中有很好的應(yīng)用。面向過程的方法特點(diǎn):程序的執(zhí)行過程,不由用戶控制,完全由941.3.2面向?qū)ο蟮姆椒▋?nèi)容:面向?qū)ο笮枨蠓治?、面向?qū)ο笤O(shè)計(jì)、面向?qū)ο缶幊?、面向?qū)ο鬁y試、面向?qū)ο缶S護(hù)、面向?qū)ο蠊芾?。在分析、設(shè)計(jì)、實(shí)現(xiàn)中用到“對象、類、繼承、消息通信”這四個(gè)基本概,就是面向?qū)ο蟮姆椒?。今天用UML來開發(fā)軟件,就是面向?qū)ο蟮姆椒ā?.3.2面向?qū)ο蟮姆椒▋?nèi)容:面向?qū)ο笮枨蠓治觥⒚嫦驅(qū)?5面向?qū)ο蟮姆椒ㄌ攸c(diǎn):(1).程序的執(zhí)行過程,不由程序員控制,完全由用戶控制。(2).分析設(shè)計(jì)時(shí)面向類,編程時(shí)面向?qū)ο蟆?/p>

優(yōu)點(diǎn):用無窮的方法來描述無窮的(隨機(jī)的)信息世界,所以能完全描述信息世界;易于維護(hù)。

缺點(diǎn):較難掌握。應(yīng)用廣泛面向?qū)ο蟮姆椒ㄌ攸c(diǎn):96是面向元數(shù)據(jù)(Metadata)的方法,它是建設(shè)信息系統(tǒng)數(shù)據(jù)庫和數(shù)據(jù)倉庫的基本方法。該方法將與關(guān)系數(shù)據(jù)庫同生死、共患難。1.3.3面向數(shù)據(jù)的方法是面向元數(shù)據(jù)(Metadata)的方法,它是建設(shè)信息系統(tǒng)97面向數(shù)據(jù)的方法內(nèi)容:(1)數(shù)據(jù)位于信息系統(tǒng)的中心。(2)由元數(shù)據(jù)構(gòu)成的數(shù)據(jù)模型是穩(wěn)定的。(3)對元數(shù)據(jù)的處理方法是可變的。(4)企業(yè)信息系統(tǒng)的核心是數(shù)據(jù)模型。(5)系統(tǒng)的實(shí)現(xiàn)方法主要是面向?qū)ο蟆?6)用戶始終參與信息系統(tǒng)的開發(fā)。面向數(shù)據(jù)的方法內(nèi)容:98面向數(shù)據(jù)的方法特點(diǎn):程序的執(zhí)行過程,有時(shí)由程序員控制,有時(shí)由用戶控制。

優(yōu)點(diǎn):適合數(shù)據(jù)層(數(shù)據(jù)庫服務(wù)器)設(shè)計(jì)與實(shí)現(xiàn)。

缺點(diǎn):實(shí)現(xiàn)窗口界面較困難。應(yīng)用:如面向數(shù)據(jù)的方法在電子商務(wù)中也有應(yīng)用。面向數(shù)據(jù)的方法特點(diǎn):程序的執(zhí)行過程,有時(shí)由程序員控制,有99*1.3.4軟件工程的形式化方法不講,考研的人可以自學(xué)。因?yàn)樵贗T企業(yè)用不上。*1.3.4軟件工程的形式化方法不講,考研的人可以自1001.3.5四種開發(fā)方法總結(jié)對比方法名稱優(yōu)點(diǎn)缺點(diǎn)適合的場合面向過程的方法簡單好學(xué)不適應(yīng)窗口界面,維護(hù)困難大型工程計(jì)算,實(shí)時(shí)數(shù)據(jù)跟蹤處理,各種自動(dòng)化控制系統(tǒng),以及系統(tǒng)軟件實(shí)現(xiàn)等領(lǐng)域面向?qū)ο蟮姆椒üδ軓?qiáng)大,易于維護(hù)不易掌握互聯(lián)網(wǎng)絡(luò)時(shí)代,完全由用戶交互控制程序執(zhí)行過程的應(yīng)用軟件和系統(tǒng)軟件的開發(fā)面向數(shù)據(jù)的方法通俗易懂不適應(yīng)窗口界面以關(guān)系數(shù)據(jù)庫管理系統(tǒng)為支撐環(huán)境的信息系統(tǒng)建設(shè)形式化方法準(zhǔn)確、嚴(yán)謹(jǐn)難于上手和應(yīng)用對安全性要求極高,不容許出錯(cuò)的軟件系統(tǒng),如軍事、醫(yī)藥、交通等領(lǐng)域1.3.5四種開發(fā)方法總結(jié)對比方法名稱優(yōu)點(diǎn)1011.4軟件工程的五個(gè)面向理論綜合這三種開發(fā)方法的優(yōu)勢,特別提出“五個(gè)面向”的實(shí)施理論:1.面向流程分析2.面向數(shù)據(jù)設(shè)計(jì)3.面向?qū)ο髮?shí)現(xiàn)4.面向功能測試5.面向過程管理1.4軟件工程的五個(gè)面向理論綜合這三種開發(fā)方法的優(yōu)勢102面向流程分析面向流程分析,就是面向流程需求分析。面向業(yè)務(wù)流、資金流、信息流進(jìn)行分析。面向流程分析面向流程分析,就是面向流程需求分析。103面向數(shù)據(jù)設(shè)計(jì)面向數(shù)據(jù)設(shè)計(jì),就是面向元數(shù)據(jù)進(jìn)行概要設(shè)計(jì)。在系統(tǒng)設(shè)計(jì)時(shí),系統(tǒng)設(shè)計(jì)師要采用面向數(shù)據(jù)的方法進(jìn)行概要設(shè)計(jì)。面向數(shù)據(jù)就是面向“元數(shù)據(jù)”(Metadata)。面向數(shù)據(jù)設(shè)計(jì)面向數(shù)據(jù)設(shè)計(jì),就是面向元數(shù)據(jù)進(jìn)行概要設(shè)計(jì)。104面向?qū)ο髮?shí)現(xiàn)面向?qū)ο髮?shí)現(xiàn),就是面向?qū)ο筮M(jìn)行詳細(xì)設(shè)計(jì)和編程實(shí)現(xiàn)。在兩層結(jié)構(gòu)(C/S)的客戶層上,在三層結(jié)構(gòu)(B/A/S)的表示層和業(yè)務(wù)邏輯層上,進(jìn)行詳細(xì)設(shè)計(jì)和編程實(shí)現(xiàn)時(shí),要采用面向?qū)ο蟮姆椒ā.?dāng)然,在數(shù)據(jù)服務(wù)層上的設(shè)計(jì)和編程實(shí)現(xiàn),仍然要采用面向數(shù)據(jù)的方法,因?yàn)橹饕窃O(shè)計(jì)和編寫存儲(chǔ)過程,它們是面向數(shù)據(jù)的,不是面向?qū)ο蟮?。面向?qū)ο髮?shí)現(xiàn)面向?qū)ο髮?shí)現(xiàn),就是面向?qū)ο筮M(jìn)行詳細(xì)設(shè)計(jì)和編105面向?qū)ο髮?shí)現(xiàn)詳細(xì)設(shè)計(jì)和編程實(shí)現(xiàn),實(shí)質(zhì)上是用構(gòu)件加上程序來實(shí)現(xiàn)系統(tǒng)的業(yè)務(wù)模型和功能模型。只有對三個(gè)模型思想(業(yè)務(wù)模型、功能模型、數(shù)據(jù)模型)吃透了,才能設(shè)計(jì)和編寫出合格的程序。面向?qū)ο髮?shí)現(xiàn),實(shí)質(zhì)上是面向類實(shí)現(xiàn),因?yàn)閷?shí)例化的類稱為對象。面向?qū)ο髮?shí)現(xiàn)詳細(xì)設(shè)計(jì)和編程實(shí)現(xiàn),實(shí)質(zhì)上是用構(gòu)件加上程序來106面向功能測試面向功能測試,就是面向功能進(jìn)行單元測試、集成測試、Alpha測試和Beta測試。在進(jìn)行測試時(shí),測試人員要采用面向功能的方法。這里講的功能,包括系統(tǒng)的功能、性能和接口三部分內(nèi)容。面向功能測試的方法就是黑盒子測試方法,今后采用白盒子測試方法(面向程序執(zhí)行路徑測試)的人,只有從事軟件構(gòu)件生產(chǎn)和核心代碼編程的極少數(shù)人員。面向功能測試面向功能測試,就是面向功能進(jìn)行單元測試、集成107面向過程管理面向過程管理,就是面向過程對軟件生命周期各個(gè)階段進(jìn)行管理和控制。因?yàn)檐浖a(chǎn)品質(zhì)量的提高與改進(jìn),完全取決于軟件企業(yè)生產(chǎn)過程的改善。無論是CMM/CMMI、ISO9000、微軟企業(yè)文化,都是站在軟件生命周期過程的觀念上去提高軟件企業(yè)的素質(zhì)。面向過程管理面向過程管理,就是面向過程對軟件生命周期各個(gè)1081.5軟件的支持過程軟件工程中的過程,是指軟件生命周期(LifeCycle)中的時(shí)間序列。過程作為一個(gè)時(shí)間序列,它自然有起始點(diǎn)和終止點(diǎn)。例如,可以將一個(gè)軟件的生命周期劃分為市場調(diào)研、立項(xiàng)、需求分析、策劃、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程、單體測試、集成測試、運(yùn)行、維護(hù)這幾個(gè)過程。過程與階段(Phase)相對應(yīng),階段與里程碑(Milestone)相對應(yīng)。某些重要的里程碑上的文檔,又對應(yīng)基線(baseline)。1.5軟件的支持過程軟件工程中的過程,是指軟件生命周109軟件的支持過程軟件工程的支持過程,由支持軟件生存周期各個(gè)階段的生產(chǎn)工具所組成。生產(chǎn)工具如需求分析工具、設(shè)計(jì)工具、實(shí)現(xiàn)工具、測試工具、維護(hù)工具、配置工具,開發(fā)環(huán)境。軟件開發(fā)環(huán)境又稱CASE工具,如北大青鳥系統(tǒng),SanFrancisco,Rose,面向行業(yè)領(lǐng)域開發(fā)的業(yè)務(wù)基礎(chǔ)平臺(tái)(包括軟件企業(yè)內(nèi)部使用的各種J2EE平臺(tái)和.Net平臺(tái))。軟件的支持過程軟件工程的支持過程,由支持軟件生存周期各個(gè)階段1101.6軟件的管理過程“外行關(guān)注結(jié)果,內(nèi)行關(guān)注過程”。管理過程和支持過程又稱為“軟件過程工程”。1974年,美國人始認(rèn)識(shí)到“軟件需要管理”。1984年,美國人認(rèn)識(shí)到“軟件管理是過程管理”。1.6軟件的管理過程“外行關(guān)注結(jié)果,內(nèi)行關(guān)注過程”。111軟件的管理過程軟件中的過程,分為“基本過程、支持過程、組織過程”三種.基本過程是需求、設(shè)計(jì)、實(shí)現(xiàn)、測試、驗(yàn)收過程;支持過程是支持過程開發(fā)和過程管理的各種CASE工具;組織過程是建立的有關(guān)小組,如軟件工程組、質(zhì)量保證組、測試組、文檔組。軟件的管理過程軟件中的過程,分為“基本過程、支持過程、組112軟件的管理過程軟件工程中主要存在3類過程管理模型:(1).ISO9000質(zhì)量管理和質(zhì)量保證體系(2).CMMI過程能力成熟度模型集成(3).企業(yè)文化(微軟企業(yè)文化、敏捷文化現(xiàn)象等)軟件的管理過程軟件工程中主要存在3類過程管理模型:113序號(hào)名稱來源特點(diǎn)1ISO9000質(zhì)量管理和質(zhì)量保證體系國際標(biāo)準(zhǔn)化組織ISO按20多個(gè)質(zhì)量要素管理2CMMI軟件能力成熟度模型美國卡內(nèi)基-梅隆大學(xué)軟件工程研究所(CMU/SEI)按24個(gè)過程域PA,分階段模型和連續(xù)模型兩種方式管理,屬于重載過程管理3軟件企業(yè)文化Microsoft公司、IBM公司、敏捷方法屬于輕載過程管理序號(hào)名稱來源特點(diǎn)1ISO9001141.6.1ISO9000體系1.“質(zhì)量手冊”內(nèi)容:質(zhì)量方針和目標(biāo)、公司簡介、組織機(jī)構(gòu)、質(zhì)量體系要求、質(zhì)量手冊管理細(xì)則等2.“程序文件”內(nèi)容:規(guī)定每個(gè)質(zhì)量要素在何時(shí)、在何地、由何人、按照什么標(biāo)準(zhǔn)、規(guī)范或規(guī)程去做。做完后書寫質(zhì)量記錄的模板格式。3.“質(zhì)量記錄”內(nèi)容:對每個(gè)質(zhì)量要素,在執(zhí)行活動(dòng)中,按照書寫質(zhì)量記錄的模板格式書寫的文檔。1.6.1ISO9000體系1.“質(zhì)量手冊”內(nèi)容:質(zhì)量1151.6.2微軟企業(yè)文化“平等、自由、親和、融洽、創(chuàng)新、激情、溝通和主人翁精神”的企業(yè)文化,是“以人為本”企業(yè)文化的具體表現(xiàn),是微軟的精神管理模式。微軟的用人之道是“人品、智慧、團(tuán)隊(duì)精神”三要素,以及“寧缺勿濫”和“不拘一格”的原則,它是微軟招聘、培養(yǎng)、考察、提升員工的標(biāo)準(zhǔn)。1.6.2微軟企業(yè)文化“平等、自由、親和、融洽、創(chuàng)新1161.6.3CMM/CMMICMM/CMMI的作用概括地講,軟件企業(yè)的過程能力成熟度模型CMM的作用,是軟件組織的能力評(píng)估和過程改進(jìn),它的應(yīng)用領(lǐng)域具體表現(xiàn)在三個(gè)方面:(1)軟件組織:用它來不斷改進(jìn)自身的軟件過程管理能力;(2)評(píng)估機(jī)構(gòu):用它來評(píng)估某軟件組織當(dāng)前軟件能力成熟度的級(jí)別;(3)客戶:用它來評(píng)價(jià)某承包商(軟件外包商)的軟件能力。1.6.3CMM/CMMICMM/CMMI的作用

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論