軟件工程基礎(chǔ)培訓(xùn)課件_第1頁(yè)
軟件工程基礎(chǔ)培訓(xùn)課件_第2頁(yè)
軟件工程基礎(chǔ)培訓(xùn)課件_第3頁(yè)
軟件工程基礎(chǔ)培訓(xùn)課件_第4頁(yè)
軟件工程基礎(chǔ)培訓(xùn)課件_第5頁(yè)
已閱讀5頁(yè),還剩97頁(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)介

軟件工程基礎(chǔ)KrisZhang章征暉江蘇微軟技術(shù)中心zhangzh@軟件工程基礎(chǔ)KrisZhang章征暉前言《大道至簡(jiǎn)—軟件工程實(shí)踐者的思想》---周愛(ài)民

在大學(xué)時(shí)代、在課桌上令人昏昏欲睡的《軟件工程》才是軟件開(kāi)發(fā)中的髓質(zhì)與靈魂選擇什么語(yǔ)言、如何重構(gòu)、有沒(méi)有或應(yīng)不應(yīng)該采用某種模式,都是軟件開(kāi)發(fā)的細(xì)微末節(jié)我們常常陷于行動(dòng)而沒(méi)有思想,思想與行為脫節(jié)。常常知道做什么,但不知道為什么要這樣做JiangsuMicrosoftTechnologyCenter2

“停下來(lái),思考才是進(jìn)步的本質(zhì)!”前言《大道至簡(jiǎn)—軟件工程實(shí)踐者的思想》---周愛(ài)民Ji主題軟件工程的定義軟件工程的研究?jī)?nèi)容軟件工程的基本原理軟件工程的作用軟件開(kāi)發(fā)的4種常用方法軟件工程的5個(gè)面向理論軟件的支持過(guò)程軟件的管理過(guò)程軟件生存周期及開(kāi)發(fā)模型JiangsuMicrosoftTechnologyCenter3RogerS.Pressman軟件過(guò)程改善和軟件工程技術(shù)方面國(guó)際知名的權(quán)威。30多年來(lái),他作為軟件工程師、管理人員、教授、作者及咨詢顧問(wèn)始終投身于軟件工程領(lǐng)域。主題軟件工程的定義JiangsuMicrosoftTec計(jì)算機(jī)工程的定義計(jì)算機(jī)由硬件和軟件組成計(jì)算機(jī)工程由硬件工程和軟件工程組成硬件工程:研究硬件生產(chǎn)和硬件管理的工程學(xué)科,包括計(jì)算機(jī)及網(wǎng)絡(luò)硬件的分析、設(shè)計(jì)、生產(chǎn)、采購(gòu)、驗(yàn)收、安裝、培訓(xùn)、維護(hù)等。軟件工程:研究軟件生產(chǎn)和軟件管理的工程學(xué)科,包括市場(chǎng)調(diào)研、正式立項(xiàng)、項(xiàng)目策劃、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程、測(cè)試、試運(yùn)行、產(chǎn)品發(fā)布、用戶培訓(xùn)、產(chǎn)品復(fù)制、銷(xiāo)售、實(shí)施、系統(tǒng)維護(hù)、版本升級(jí)等。系統(tǒng)集成工程:有時(shí)也稱網(wǎng)絡(luò)工程,介于硬件工程和軟件工程之間的系統(tǒng)工程(如:規(guī)劃設(shè)計(jì)安裝一個(gè)校園網(wǎng))JiangsuMicrosoftTechnologyCenter4計(jì)算機(jī)工程的定義計(jì)算機(jī)由硬件和軟件組成JiangsuMic程序與軟件定義程序的定義面向過(guò)程的程序=算法+數(shù)據(jù)結(jié)構(gòu)面向?qū)ο蟮某绦?對(duì)象+消息面向構(gòu)件的程序=構(gòu)件+構(gòu)架軟件的定義軟件=程序+數(shù)據(jù)+文檔JiangsuMicrosoftTechnologyCenter5“人生就是一段程序,這段程序是用特殊代碼寫(xiě)成的,只是算法極其復(fù)雜而已。”程序與軟件定義程序的定義JiangsuMicrosoft軟件≠程序越早開(kāi)始寫(xiě)代碼的人,就是越遲完成代碼的人!JiangsuMicrosoftTechnologyCenter6年代對(duì)軟件定義的認(rèn)識(shí)20世紀(jì)50年代軟件就等于程序,軟件系統(tǒng)就是程序系統(tǒng)20世紀(jì)60年代軟件等于程序加文檔,這里的文檔僅指開(kāi)發(fā)文檔,即軟件開(kāi)發(fā)過(guò)程中的分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、維護(hù)文檔,還不包括管理文檔20世紀(jì)70年代軟件等于程序加文檔和數(shù)據(jù),這里的文檔指開(kāi)發(fā)文檔和管理文檔,這里的數(shù)據(jù)不僅包括初始化數(shù)據(jù)、測(cè)試數(shù)據(jù)、而且包括研發(fā)數(shù)據(jù)、運(yùn)行數(shù)據(jù)、維護(hù)數(shù)據(jù),也包括軟件企業(yè)積累的項(xiàng)目工程數(shù)據(jù)和項(xiàng)目管理數(shù)據(jù)中的大量決策原始記錄數(shù)據(jù)軟件≠程序越早開(kāi)始寫(xiě)代碼的人,就是越遲完成代碼的人!Jian軟件工程的定義1993年,權(quán)威組織IEEE對(duì)軟件工程定義為:軟件工程是將系統(tǒng)化的、嚴(yán)格約束的、可量化的方法,應(yīng)用于軟件開(kāi)發(fā)、運(yùn)行和維護(hù)中去。2001年,RogerS.Pressman對(duì)軟件工程的定義是:軟件工程是一個(gè)過(guò)程、一組方法和一系列工具?,F(xiàn)在的定義,軟件工程是研究軟件開(kāi)發(fā)和軟件管理的一門(mén)工程科學(xué)。JiangsuMicrosoftTechnologyCenter7軟件工程的定義是與時(shí)俱進(jìn)的軟件工程的定義1993年,權(quán)威組織IEEE對(duì)軟件工程定義為:軟件工程研究的內(nèi)容JiangsuMicrosoftTechnologyCenter8研究方面具體內(nèi)容軟件開(kāi)發(fā)模型瀑布模型、增量模型、迭代模型、原型模型…軟件開(kāi)發(fā)方法面向過(guò)程的方法、面向數(shù)據(jù)的方法、面向?qū)ο蟮姆椒ā浖С止ぞ呓9ぞ?、開(kāi)發(fā)工具、測(cè)試工具、文檔工具、配置工具、安裝工具…軟件管理過(guò)程ISO9000、CMM/CMMI、微軟企業(yè)文化(MSF)、IBM企業(yè)文化、敏捷文化現(xiàn)象(XP)...軟件工程三要素:方法、工具、過(guò)程軟件工程研究的內(nèi)容JiangsuMicrosoftTec軟件工程的8個(gè)基本原理用分階段的生命周期計(jì)劃,嚴(yán)格管理軟件開(kāi)發(fā)。堅(jiān)持進(jìn)行階段評(píng)審。實(shí)行嚴(yán)格的產(chǎn)品版本控制。采用現(xiàn)代程序設(shè)計(jì)技術(shù)。結(jié)果應(yīng)能清楚地審查。文檔要有嚴(yán)格要求。開(kāi)發(fā)小組的成員要少而精。要不斷地改進(jìn)軟件工程實(shí)踐的經(jīng)驗(yàn)和技術(shù)。牢記二八定律JiangsuMicrosoftTechnologyCenter9軟件工程的8個(gè)基本原理用分階段的生命周期計(jì)劃,嚴(yán)格管理軟件開(kāi)軟件工程中的二八定律對(duì)軟件項(xiàng)目進(jìn)度和工作量的估計(jì):一般人主觀上認(rèn)為已經(jīng)完成了80%,但實(shí)際上只完成了20%對(duì)程序中存在問(wèn)題的估計(jì):80%的問(wèn)題存在于20%的程序之中對(duì)模塊功能的估計(jì):20%的模塊,實(shí)現(xiàn)了80%的功能對(duì)人力資源的估計(jì):20%的人,解決了軟件中80%的問(wèn)題對(duì)投入資金的估計(jì):企業(yè)信息系統(tǒng)中80%的問(wèn)題,可以用20%的資金來(lái)解決。JiangsuMicrosoftTechnologyCenter10這條原理特別重要,項(xiàng)目經(jīng)理與高層經(jīng)理,要特別牢記!軟件工程中的二八定律對(duì)軟件項(xiàng)目進(jìn)度和工作量的估計(jì):一般人主觀軟件工程的作用從軟件項(xiàng)目團(tuán)隊(duì)來(lái)講,解決在規(guī)定的時(shí)間內(nèi),按照規(guī)定的成本,完成預(yù)期質(zhì)量目標(biāo)(軟件的功能、性能和接口達(dá)到需求報(bào)告標(biāo)準(zhǔn))的軟件。從軟件企業(yè)本身來(lái)講,解決持續(xù)地規(guī)范軟件開(kāi)發(fā)過(guò)程和軟件管理過(guò)程,不斷地優(yōu)化軟件組織的個(gè)人素質(zhì)和集體素質(zhì),從而逐漸增強(qiáng)軟件企業(yè)的市場(chǎng)競(jìng)爭(zhēng)實(shí)力。從軟件發(fā)展進(jìn)程來(lái)講,克服軟件危機(jī),控制軟件進(jìn)度,節(jié)約開(kāi)發(fā)成本,提高軟件質(zhì)量。從院校來(lái)講,以前它只是作為一門(mén)課或一本書(shū)?,F(xiàn)在它成為一個(gè)學(xué)科,一個(gè)體系,一個(gè)計(jì)算機(jī)學(xué)位,即軟件工程碩士學(xué)位和軟件工程博士學(xué)位。JiangsuMicrosoftTechnologyCenter11軟件工程的作用從軟件項(xiàng)目團(tuán)隊(duì)來(lái)講,解決在規(guī)定的時(shí)間內(nèi),按照規(guī)軟件工程中的4個(gè)開(kāi)發(fā)方法面向過(guò)程的方法面向?qū)ο蟮姆椒嫦驍?shù)據(jù)的方法形式化方法(*)JiangsuMicrosoftTechnologyCenter12軟件工程中的4個(gè)開(kāi)發(fā)方法面向過(guò)程的方法JiangsuMic面向過(guò)程的方法內(nèi)容:面向過(guò)程需求分析、面向過(guò)程設(shè)計(jì)、面向過(guò)程編程、面向過(guò)程測(cè)試、面向過(guò)程維護(hù)、面向過(guò)程管理。面向過(guò)程的方法,又稱為面向功能的方法,或稱為結(jié)構(gòu)化方法。特點(diǎn):程序的執(zhí)行過(guò)程,不由用戶控制,完全由程序員控制。優(yōu)點(diǎn):簡(jiǎn)單實(shí)用。缺點(diǎn):企圖用有窮的方法(枚舉法)來(lái)描述無(wú)窮的(隨機(jī)的)信息世界,所以不能完全描述信息世界;維護(hù)困難。JiangsuMicrosoftTechnologyCenter13面向過(guò)程的方法內(nèi)容:面向過(guò)程需求分析、面向過(guò)程設(shè)計(jì)、面向過(guò)程面向?qū)ο蟮姆椒▋?nèi)容:面向?qū)ο笮枨蠓治?、面向?qū)ο笤O(shè)計(jì)、面向?qū)ο缶幊?、面向?qū)ο鬁y(cè)試、面向?qū)ο缶S護(hù)、面向?qū)ο蠊芾?。在分析、設(shè)計(jì)、實(shí)現(xiàn)中用到“對(duì)象、類、繼承、消息通信”這四個(gè)基本概念,就是面向?qū)ο蟮姆椒?。今天用UML來(lái)開(kāi)發(fā)軟件,就是面向?qū)ο蟮姆椒?。特點(diǎn):(1).程序的執(zhí)行過(guò)程,不由程序員控制,完全由用戶控制。(2).分析設(shè)計(jì)時(shí)面向類,編程時(shí)面向?qū)ο?。?yōu)點(diǎn):用無(wú)窮的方法來(lái)描述無(wú)窮的(隨機(jī)的)信息世界,所以能完全描述信息世界;易于維護(hù)。缺點(diǎn):較難掌握。JiangsuMicrosoftTechnologyCenter14面向?qū)ο蟮姆椒▋?nèi)容:面向?qū)ο笮枨蠓治?、面向?qū)ο笤O(shè)計(jì)、面向?qū)ο竺嫦驍?shù)據(jù)的方法內(nèi)容:是建設(shè)信息系統(tǒng)數(shù)據(jù)庫(kù)和數(shù)據(jù)倉(cāng)庫(kù)的基本方法。1)數(shù)據(jù)位于信息系統(tǒng)的中心。2)由元數(shù)據(jù)構(gòu)成的數(shù)據(jù)模型是穩(wěn)定的。3)對(duì)元數(shù)據(jù)的處理方法是可變的。4)企業(yè)信息系統(tǒng)的核心是數(shù)據(jù)模型。5)系統(tǒng)的實(shí)現(xiàn)方法主要是面向?qū)ο蟆?)用戶始終參與信息系統(tǒng)的開(kāi)發(fā)。特點(diǎn):程序的執(zhí)行過(guò)程,有時(shí)由程序員控制,有時(shí)由用戶控制。優(yōu)點(diǎn):適合數(shù)據(jù)層設(shè)計(jì)與實(shí)現(xiàn)。缺點(diǎn):實(shí)現(xiàn)窗口界面較困難。JiangsuMicrosoftTechnologyCenter15面向數(shù)據(jù)的方法內(nèi)容:是建設(shè)信息系統(tǒng)數(shù)據(jù)庫(kù)和數(shù)據(jù)倉(cāng)庫(kù)的基本方法形式化方法軟件工程的形式化方法是建立在嚴(yán)格數(shù)學(xué)基礎(chǔ)上、以邏輯推理為出發(fā)點(diǎn)、并且具有精確數(shù)學(xué)語(yǔ)義的開(kāi)發(fā)方法。作為一種以數(shù)學(xué)邏輯為基礎(chǔ)的方法,形式化方法以其嚴(yán)密性越來(lái)越受到眾多領(lǐng)域的重視,尤其是在安全性和可靠性作為關(guān)鍵問(wèn)題的系統(tǒng),如核電站、航空航天、鐵路運(yùn)輸系統(tǒng)中得到了較為廣泛的應(yīng)用。但是對(duì)于形式化方法在工業(yè)領(lǐng)域的實(shí)際應(yīng)用問(wèn)題,在軟件工程界,尤其是在系統(tǒng)開(kāi)發(fā)人員當(dāng)中,還存在著相當(dāng)多的疑問(wèn)。軟件工程中的形式化方法是軟件工程研究的領(lǐng)域之一,其內(nèi)容包括:有限狀態(tài)機(jī)、Statecharts、Petri網(wǎng)、通信順序進(jìn)程、通信系統(tǒng)演算、一階邏輯、程序正確性證明、凈室軟件工程、時(shí)態(tài)邏輯、模型檢驗(yàn)、Z形式規(guī)約語(yǔ)言、B語(yǔ)言和方法、VDM系統(tǒng)、Larch等。JiangsuMicrosoftTechnologyCenter16形式化方法軟件工程的形式化方法是建立在嚴(yán)格數(shù)學(xué)基礎(chǔ)上、以邏輯四種開(kāi)發(fā)方法的比較JiangsuMicrosoftTechnologyCenter17方法名稱優(yōu)點(diǎn)缺點(diǎn)適合的場(chǎng)合面向過(guò)程的方法簡(jiǎ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í)行過(guò)程的應(yīng)用軟件和系統(tǒng)軟件的開(kāi)發(fā)面向數(shù)據(jù)的方法通俗易懂不適應(yīng)窗口界面

以關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)為支撐環(huán)境的信息系統(tǒng)建設(shè)形式化方法準(zhǔn)確、嚴(yán)謹(jǐn)難于上手和應(yīng)用對(duì)安全性要求極高,不容許出錯(cuò)的軟件系統(tǒng),如軍事、醫(yī)藥、交通等領(lǐng)域四種開(kāi)發(fā)方法的比較JiangsuMicrosoftTec軟件工程中的5個(gè)面向原則面向流程分析。面向數(shù)據(jù)設(shè)計(jì)面向?qū)ο髮?shí)現(xiàn)面向功能測(cè)試面向過(guò)程管理JiangsuMicrosoftTechnologyCenter18軟件工程中的5個(gè)面向原則面向流程分析。JiangsuMic面向流程分析面向流程分析,就是面向流程需求分析。在需求分析時(shí),系統(tǒng)分析員要面向業(yè)務(wù)流、資金流、信息流進(jìn)行分析。只有將這“三個(gè)流”分析透了,才建立好系統(tǒng)的業(yè)務(wù)模型和功能模型。因?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)在本質(zhì)上只認(rèn)識(shí)數(shù)據(jù)及數(shù)據(jù)流(嚴(yán)格地講,它只認(rèn)識(shí)二進(jìn)制數(shù)和二進(jìn)制數(shù)據(jù)的流動(dòng)),而且這“三個(gè)流”,可以用“數(shù)據(jù)流”這一個(gè)流程來(lái)代替,或者說(shuō)“三個(gè)流”是“數(shù)據(jù)流”在三個(gè)不同方向的投影。JiangsuMicrosoftTechnologyCenter19面向流程分析面向流程分析,就是面向流程需求分析。Jiangs面向數(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ì)的主要任務(wù)是建立系統(tǒng)的數(shù)據(jù)模型,包括概念數(shù)據(jù)模型CDM和物理數(shù)據(jù)模型PDM,以及體現(xiàn)業(yè)務(wù)規(guī)則的存儲(chǔ)過(guò)程和觸發(fā)器,然后以數(shù)據(jù)模型為支撐,去實(shí)現(xiàn)系統(tǒng)的業(yè)務(wù)模型和功能模型(包括性能模型和接口模型)。為此,要對(duì)元數(shù)據(jù)進(jìn)行分析,只有將元數(shù)據(jù)分析透了,才能建立好由元數(shù)據(jù)所構(gòu)成的數(shù)據(jù)模型。這里講的面向數(shù)據(jù)設(shè)計(jì),主要表現(xiàn)在數(shù)據(jù)庫(kù)服務(wù)器上的關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)。JiangsuMicrosoftTechnologyCenter20面向數(shù)據(jù)的設(shè)計(jì)面向數(shù)據(jù)設(shè)計(jì),就是面向元數(shù)據(jù)進(jìn)行概要設(shè)計(jì)。Ji面向?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ì)和編寫(xiě)存儲(chǔ)過(guò)程,它們是面向數(shù)據(jù)的,不是面向?qū)ο蟮?。詳?xì)設(shè)計(jì)和編程實(shí)現(xiàn),實(shí)質(zhì)上是用構(gòu)件加上程序來(lái)實(shí)現(xiàn)系統(tǒng)的業(yè)務(wù)模型和功能模型。只有對(duì)系統(tǒng)的三個(gè)模型思想(業(yè)務(wù)模型、功能模型、數(shù)據(jù)模型)吃透了,才能設(shè)計(jì)和編寫(xiě)出合格的程序。面向?qū)ο髮?shí)現(xiàn),實(shí)質(zhì)上是面向類實(shí)現(xiàn),因?yàn)閷?shí)例化的類稱為對(duì)象。JiangsuMicrosoftTechnologyCenter21面向?qū)ο蟮膶?shí)現(xiàn)面向?qū)ο髮?shí)現(xiàn),就是面向?qū)ο筮M(jìn)行詳細(xì)設(shè)計(jì)和編程實(shí)面向功能的測(cè)試面向功能測(cè)試,就是面向功能進(jìn)行單元測(cè)試、集成測(cè)試、Alpha測(cè)試和Beta測(cè)試(或系統(tǒng)測(cè)試和驗(yàn)收測(cè)試)。在進(jìn)行測(cè)試時(shí),測(cè)試人員要采用面向功能的方法。這里講的功能,包括系統(tǒng)的功能、性能和接口三部分內(nèi)容。面向功能測(cè)試的方法就是黑盒子測(cè)試方法,隨著第四代程序設(shè)計(jì)語(yǔ)言和構(gòu)件技術(shù)的發(fā)展,該測(cè)試方法會(huì)越來(lái)越廣泛。今后采用白盒子測(cè)試方法(面向程序執(zhí)行路徑測(cè)試)的人,只有從事軟件構(gòu)件生產(chǎn)和核心代碼編程的極少數(shù)人員。JiangsuMicrosoftTechnologyCenter22面向功能的測(cè)試面向功能測(cè)試,就是面向功能進(jìn)行單元測(cè)試、集成測(cè)面向過(guò)程的管理面向過(guò)程管理,就是面向過(guò)程對(duì)軟件生命周期各個(gè)階段進(jìn)行管理和控制。因?yàn)檐浖a(chǎn)品質(zhì)量的提高與改進(jìn),完全取決于軟件企業(yè)生產(chǎn)過(guò)程的改善。無(wú)論是CMM/CMMI、ISO9000、微軟企業(yè)文化,都是站在軟件生命周期過(guò)程的觀念上去提高軟件企業(yè)的素質(zhì)。那種認(rèn)為“只要有幾個(gè)優(yōu)秀的程序員就能辦好軟件企業(yè),就能生產(chǎn)出高質(zhì)量的軟件產(chǎn)品”的觀點(diǎn),在上世紀(jì)80年代理直氣壯,在90年代還能解決溫飽問(wèn)題,在本世紀(jì)就站不住腳了,混不下去了,因?yàn)樗麄兪鞘止ぷ鞣皇降拈_(kāi)發(fā)方法,忽視了軟件中的面向過(guò)程管理。JiangsuMicrosoftTechnologyCenter23面向過(guò)程的管理面向過(guò)程管理,就是面向過(guò)程對(duì)軟件生命周期各個(gè)階軟件的支持過(guò)程軟件工程中的過(guò)程,是指軟件生命周期(LifeCycle)中的時(shí)間序列。過(guò)程作為一個(gè)時(shí)間序列,它自然有起始點(diǎn)和終止點(diǎn)。例如,可以將一個(gè)軟件的生命周期劃分為市場(chǎng)調(diào)研、立項(xiàng)、策劃、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程、單元測(cè)試、集成測(cè)試、運(yùn)行、維護(hù)這幾個(gè)過(guò)程,前一過(guò)程的終止點(diǎn)就是后一過(guò)程的起始點(diǎn)。過(guò)程與階段(Phase)相對(duì)應(yīng),階段與里程碑(Milestone)相對(duì)應(yīng)。某些重要的里程碑的產(chǎn)出物又稱為基線(baseline)。JiangsuMicrosoftTechnologyCenter24軟件的支持過(guò)程軟件工程中的過(guò)程,是指軟件生命周期(Life軟件的支持過(guò)程軟件工程的支持過(guò)程,由支持軟件生命周期各個(gè)階段的生產(chǎn)工具所組成。生產(chǎn)工具如需求分析工具、設(shè)計(jì)工具、實(shí)現(xiàn)工具、測(cè)試工具、維護(hù)工具、配置工具,開(kāi)發(fā)環(huán)境。支持過(guò)程是通過(guò)支持工具來(lái)實(shí)現(xiàn)的。每一種支持工具都是當(dāng)前軟件界的熱點(diǎn)之一,但它不是軟件工程的重點(diǎn)內(nèi)容。JiangsuMicrosoftTechnologyCenter25軟件的支持過(guò)程軟件工程的支持過(guò)程,由支持軟件生命周期各個(gè)階段軟件工程常用支持工具系統(tǒng)分析設(shè)計(jì)與建模工具IBMRationalRoseMicrosoftVisualStudioTeamSystemMicrosoftOfficeVisioforEnterpriseArchitects數(shù)據(jù)庫(kù)設(shè)計(jì)與建模工具SybasePowerDesignerCAERWinMicrosoftVisualStudioTeamSystemMicrosoftOfficeVisioforEnterpriseArchitects開(kāi)發(fā)工具M(jìn)icrosoftVisualStudioTeamSystem(.NET平臺(tái))開(kāi)源Eclipse(JAVA平臺(tái))單元測(cè)試工具M(jìn)icrosoftVisualStudioTeamSystem開(kāi)源NUnit(.NET平臺(tái))開(kāi)源JUnit(JAVA平臺(tái))JiangsuMicrosoftTechnologyCenter26軟件工程常用支持工具系統(tǒng)分析設(shè)計(jì)與建模工具JiangsuM軟件工程常用支持工具安裝工具M(jìn)icrosoftVisualStudio.NETInstallShield開(kāi)源NSIS(編寫(xiě)安裝腳本)文檔工具M(jìn)icrosoftHelpWorkshop(制作HLP文件)MicrosoftHTMLHelpWorkshop(制作CHM文件)開(kāi)源NDoc(根據(jù)代碼注釋自動(dòng)生成文檔)畫(huà)圖工具M(jìn)icrosoftOfficeVisio源代碼管理工具M(jìn)icrosoftVisualStudioTeamSystemMicrosoftVisualSourceSafe(VSS)開(kāi)源ConcurrentVersionsSystem(CVS/CVSNT)項(xiàng)目管理工具M(jìn)icrosoftVisualStudioTeamSystemMicrosoftOfficeProjectJiangsuMicrosoftTechnologyCenter27軟件工程常用支持工具安裝工具JiangsuMicrosof軟件的管理過(guò)程“外行關(guān)注結(jié)果,內(nèi)行關(guān)注過(guò)程”。1974年,美國(guó)人認(rèn)識(shí)到“軟件需要管理”。1984年,美國(guó)人認(rèn)識(shí)到“軟件管理是過(guò)程管理”。軟件工程中主要存在3類過(guò)程管理模型:

ISO9000質(zhì)量管理和質(zhì)量保證體系

CMM/CMMI過(guò)程能力成熟度模型企業(yè)文化(微軟企業(yè)文化、敏捷文化現(xiàn)象等)JiangsuMicrosoftTechnologyCenter28牢記:軟件管理過(guò)程比開(kāi)發(fā)技術(shù)更重要!軟件的管理過(guò)程“外行關(guān)注結(jié)果,內(nèi)行關(guān)注過(guò)程”。Jiangsu軟件工程中的3類過(guò)程管理模型JiangsuMicrosoftTechnologyCenter29序號(hào)名稱來(lái)源特點(diǎn)1ISO9000質(zhì)量管理和質(zhì)量保證體系國(guó)際標(biāo)準(zhǔn)化組織

ISO

按20多個(gè)質(zhì)量要素管理2CMM/CMMI軟件能力成熟度模型美國(guó)卡內(nèi)基-梅隆大學(xué)軟件工程研究所(CMU/SEI)按25個(gè)過(guò)程域PA,分階段模型和連續(xù)模型兩種方式管理屬于重載過(guò)程管理3軟件企業(yè)文化Microsoft公司、IBM公司、敏捷方法屬于輕載過(guò)程管理軟件工程中的3類過(guò)程管理模型JiangsuMicrosof軟件生存周期概論任何有生命的動(dòng)物、植物和人,都有一個(gè)生存周期(LifeCycle),例如人的生存周期為胎兒、嬰兒、幼兒、兒童、少年、青年、中年、老年、死亡。沒(méi)有生命的事物或?qū)嶓w,例如PC機(jī)、路由器、家具、房子、汽車(chē),它們也有一個(gè)生存周期,這個(gè)生存周期就是使用壽命,即生產(chǎn)周期加上使用周期。生存周期與開(kāi)發(fā)模型有關(guān)。JiangsuMicrosoftTechnologyCenter30軟件生存周期概論任何有生命的動(dòng)物、植物和人,都有一個(gè)生存周期軟件的生存周期(常規(guī))JiangsuMicrosoftTechnologyCenter31周期序號(hào)周期名稱周期序號(hào)周期名稱1立項(xiàng)(或簽合同)、下達(dá)任務(wù)書(shū)6軟件測(cè)試2需求分析7軟件發(fā)布與實(shí)施3概要設(shè)計(jì)8軟件維護(hù)4詳細(xì)設(shè)計(jì)9版本更新或退役5編碼實(shí)現(xiàn)///////////////////////////////軟件的生存周期(常規(guī))JiangsuMicrosoftT瀑布模型(WaterfallModel)定義:1970年溫斯頓?羅伊斯(WinstonRoyce)提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被廣泛采用的軟件開(kāi)發(fā)模型。瀑布模型核心思想是按工序?qū)?wèn)題化簡(jiǎn),將功能的實(shí)現(xiàn)與設(shè)計(jì)分開(kāi),便于分工協(xié)作,即采用結(jié)構(gòu)化的分析與設(shè)計(jì)方法將邏輯實(shí)現(xiàn)與物理實(shí)現(xiàn)分開(kāi)。將軟件生命周期劃分為制定計(jì)劃、需求分析、軟件設(shè)計(jì)、程序編寫(xiě)、軟件測(cè)試和運(yùn)行維護(hù)等六個(gè)基本活動(dòng),并且規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級(jí)下落。瀑布模型是最早出現(xiàn)的軟件開(kāi)發(fā)模型,在軟件工程中占有重要的地位,它提供了軟件開(kāi)發(fā)的基本框架。其過(guò)程是從上一項(xiàng)活動(dòng)接收該項(xiàng)活動(dòng)的工作對(duì)象作為輸入,利用這一輸入實(shí)施該項(xiàng)活動(dòng)應(yīng)完成的內(nèi)容給出該項(xiàng)活動(dòng)的工作成果,并作為輸出傳給下一項(xiàng)活動(dòng)。同時(shí)評(píng)審該項(xiàng)活動(dòng)的實(shí)施,若確認(rèn),則繼續(xù)下一項(xiàng)活動(dòng);否則返回前面,甚至更前面的活動(dòng)。對(duì)于經(jīng)常變化的項(xiàng)目而言,瀑布模型毫無(wú)價(jià)值。JiangsuMicrosoftTechnologyCenter32瀑布模型(WaterfallModel)定義:1970年溫瀑布模型圖JiangsuMicrosoftTechnologyCenter33瀑布模型圖JiangsuMicrosoftTechnol瀑布模型優(yōu)缺點(diǎn)優(yōu)點(diǎn):提供了軟件開(kāi)發(fā)的基本框架為項(xiàng)目提供了按階段劃分的檢查點(diǎn)當(dāng)前一階段完成后,您只需要去關(guān)注后續(xù)階段可在迭代模型中應(yīng)用瀑布模型(*)缺點(diǎn):在項(xiàng)目各個(gè)階段之間極少有反饋由于開(kāi)發(fā)模型是線性的,用戶只有等到整個(gè)過(guò)程的末期才能見(jiàn)到開(kāi)發(fā)成果,從而增加了開(kāi)發(fā)的風(fēng)險(xiǎn)通過(guò)過(guò)多的強(qiáng)制完成日期和里程碑來(lái)跟蹤各個(gè)項(xiàng)目階段。而且各個(gè)階段的劃分完全固定,階段之間產(chǎn)生大量的文檔,極大地增加了工作量早期的錯(cuò)誤可能要等到開(kāi)發(fā)后期的測(cè)試階段才能發(fā)現(xiàn),進(jìn)而帶來(lái)嚴(yán)重的后果JiangsuMicrosoftTechnologyCenter34瀑布模型優(yōu)缺點(diǎn)優(yōu)點(diǎn):JiangsuMicrosoftTe瀑布模型選擇條件選擇模型的條件:在開(kāi)發(fā)時(shí)間內(nèi)需求沒(méi)有或很少變化。分析設(shè)計(jì)人員對(duì)應(yīng)用領(lǐng)域很熟悉。低風(fēng)險(xiǎn)項(xiàng)目(對(duì)目標(biāo)、環(huán)境很熟悉)。用戶使用環(huán)境很穩(wěn)定。用戶除提出需求以外,很少參與開(kāi)發(fā)。JiangsuMicrosoftTechnologyCenter35瀑布模型選擇條件選擇模型的條件:JiangsuMicros增量模型增量模型將軟件產(chǎn)品看作一組增量構(gòu)件,每次設(shè)計(jì)、實(shí)現(xiàn)、集成、測(cè)試和交付一塊構(gòu)件,直到所有構(gòu)件全部實(shí)現(xiàn)為止。要開(kāi)發(fā)一個(gè)大的軟件系統(tǒng),先開(kāi)發(fā)其中的一個(gè)核心模塊,后再開(kāi)發(fā)其他模塊,這樣一個(gè)個(gè)模塊地增加上去,直至整個(gè)系統(tǒng)開(kāi)發(fā)完畢為止。增量模型的特點(diǎn)是引進(jìn)了增量包的概念,無(wú)須等到所有需求都出來(lái),只要某個(gè)需求的增量包出來(lái)即可進(jìn)行開(kāi)發(fā)。雖然某個(gè)增量包可能還需要進(jìn)一步適應(yīng)客戶的需求并且更改,但只要這個(gè)增量包足夠小,其影響對(duì)整個(gè)項(xiàng)目來(lái)說(shuō)是可以承受的。JiangsuMicrosoftTechnologyCenter36增量模型增量模型將軟件產(chǎn)品看作一組增量構(gòu)件,每次設(shè)計(jì)、實(shí)現(xiàn)、增量模型圖JiangsuMicrosoftTechnologyCenter37增量模型圖JiangsuMicrosoftTechnol增量模型的優(yōu)缺點(diǎn)優(yōu)點(diǎn)采用增量模型的優(yōu)點(diǎn)是人員分配靈活,剛開(kāi)始不用投入大量人力資源。如果核心產(chǎn)品很受歡迎,則可增加人力實(shí)現(xiàn)下一個(gè)增量。當(dāng)配備的人員不能在設(shè)定的期限內(nèi)完成產(chǎn)品時(shí),它提供了一種先推出核心產(chǎn)品的途徑。這樣即可先發(fā)布部分功能給客戶,對(duì)客戶起到鎮(zhèn)靜劑的作用。增量能夠有計(jì)劃地管理技術(shù)風(fēng)險(xiǎn)。缺點(diǎn)由于各個(gè)構(gòu)件是逐漸并入已有的軟件體系結(jié)構(gòu)中的,所以加入構(gòu)件必須不破壞已構(gòu)造好的系統(tǒng)部分,這需要軟件具備開(kāi)放式的體系結(jié)構(gòu)。在開(kāi)發(fā)過(guò)程中,需求的變化是不可避免的。增量模型的靈活性可以使其適應(yīng)這種變化的能力大大優(yōu)于瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟件過(guò)程的控制失去整體性。如果增量包之間存在相交的情況且未很好處理,則必須做全盤(pán)系統(tǒng)分析,這種模型將功能細(xì)化后分別開(kāi)發(fā)的方法較適應(yīng)于需求經(jīng)常改變的軟件開(kāi)發(fā)過(guò)程。JiangsuMicrosoftTechnologyCenter38增量模型的優(yōu)缺點(diǎn)優(yōu)點(diǎn)JiangsuMicrosoftTe增量模型的選擇條件選擇模型的條件:在項(xiàng)目開(kāi)發(fā)過(guò)程中,客戶接受分階段交付。開(kāi)發(fā)人員對(duì)應(yīng)用領(lǐng)域不熟悉,難以一步到位。工期過(guò)緊的中等或高風(fēng)險(xiǎn)項(xiàng)目。用戶可參與到整個(gè)軟件開(kāi)發(fā)過(guò)程中。使用面向?qū)ο笳Z(yǔ)言或第四代語(yǔ)言。軟件公司自己有較好的類庫(kù)、構(gòu)件庫(kù)。JiangsuMicrosoftTechnologyCenter39增量模型的選擇條件選擇模型的條件:JiangsuMicro迭代模型(IterativeModel)迭代被定義為:迭代包括產(chǎn)生產(chǎn)品發(fā)布(穩(wěn)定、可執(zhí)行的產(chǎn)品版本)的全部開(kāi)發(fā)活動(dòng)和要使用該發(fā)布必需的所有其他外圍元素。在某種程度上,開(kāi)發(fā)迭代是一次完整地經(jīng)過(guò)所有工作流程的過(guò)程:(至少包括)需求工作流程、分析設(shè)計(jì)工作流程、實(shí)施工作流程和測(cè)試工作流程。實(shí)質(zhì)上,它類似小型的瀑布式項(xiàng)目。所有的階段(需求及其它)都可以細(xì)分為迭代。每一次的迭代都會(huì)產(chǎn)生一個(gè)可以發(fā)布的產(chǎn)品,這個(gè)產(chǎn)品是最終產(chǎn)品的一個(gè)子集。JiangsuMicrosoftTechnologyCenter40迭代模型(IterativeModel)迭代被定義為:迭代模型圖JiangsuMicrosoftTechnologyCenter41迭代模型圖JiangsuMicrosoftTechnol迭代模型的優(yōu)缺點(diǎn)優(yōu)點(diǎn)降低了在一個(gè)增量上的開(kāi)支風(fēng)險(xiǎn)。如果開(kāi)發(fā)人員重復(fù)某個(gè)迭代,那么損失只是這一個(gè)開(kāi)發(fā)有誤的迭代的花費(fèi)。降低了產(chǎn)品無(wú)法按照既定進(jìn)度進(jìn)入市場(chǎng)的風(fēng)險(xiǎn)。通過(guò)在開(kāi)發(fā)早期就確定風(fēng)險(xiǎn),可以盡早來(lái)解決而不至于在開(kāi)發(fā)后期匆匆忙忙。加快了整個(gè)開(kāi)發(fā)工作的進(jìn)度。因?yàn)殚_(kāi)發(fā)人員清楚問(wèn)題的焦點(diǎn)所在,他們的工作會(huì)更有效率。由于用戶的需求并不能在一開(kāi)始就作出完全的界定,它們通常是在后續(xù)階段中不斷細(xì)化的。因此,迭代過(guò)程這種模式使適應(yīng)需求的變化會(huì)更容易些。缺點(diǎn)對(duì)項(xiàng)目組成員要求很高。必須掌握先進(jìn)的開(kāi)發(fā)工具JiangsuMicrosoftTechnologyCenter42迭代模型的優(yōu)缺點(diǎn)優(yōu)點(diǎn)JiangsuMicrosoftTe迭代模型的選擇條件選擇模型的條件:在項(xiàng)目開(kāi)發(fā)早期需求可能有所變化。分析設(shè)計(jì)人員對(duì)應(yīng)用領(lǐng)域很熟悉。高風(fēng)險(xiǎn)項(xiàng)目。用戶可不同程度地參與整個(gè)項(xiàng)目的開(kāi)發(fā)過(guò)程。使用面向?qū)ο蟮恼Z(yǔ)言或UML語(yǔ)言。使用CASE(ComputerAidedSoftwareEngineering,計(jì)算機(jī)輔助軟件工程)工具,如Rose。具有高素質(zhì)的項(xiàng)目管理者和軟件研發(fā)團(tuán)隊(duì)。JiangsuMicrosoftTechnologyCenter43迭代模型的選擇條件選擇模型的條件:JiangsuMicro原型模型先借用已有系統(tǒng)作為原型模型,通過(guò)“樣品”不斷改進(jìn),使得最后的產(chǎn)品就是用戶所需要的。在初步需求分析之后,馬上向客戶展示一個(gè)軟件產(chǎn)品原型,對(duì)客戶進(jìn)行培訓(xùn),讓客戶試用,在試用中收集客戶意見(jiàn),修改原型,再讓客戶試用,反復(fù)循環(huán)幾次,直到客戶確認(rèn)為止。原型驅(qū)動(dòng)。因此,開(kāi)發(fā)者必須先有一個(gè)原型,至少要有一個(gè)原型的核心。JiangsuMicrosoftTechnologyCenter44原型模型先借用已有系統(tǒng)作為原型模型,通過(guò)“樣品”不斷改進(jìn),使原型模型圖JiangsuMicrosoftTechnologyCenter45原型模型圖JiangsuMicrosoftTechnol原型模型的優(yōu)缺點(diǎn)優(yōu)點(diǎn)開(kāi)發(fā)人員和用戶在“原型”上達(dá)成一致。這樣一來(lái),可以減少設(shè)計(jì)中的錯(cuò)誤和開(kāi)發(fā)中的風(fēng)險(xiǎn),也減少了對(duì)用戶培訓(xùn)的時(shí)間,而提高了系統(tǒng)的實(shí)用、正確性以及用戶的滿意程度縮短了開(kāi)發(fā)周期,加快了工程進(jìn)度降低成本缺點(diǎn)因?yàn)槭孪扔幸粋€(gè)展示性的產(chǎn)品原型,所以在一定程度上,不利于開(kāi)發(fā)人員的創(chuàng)新當(dāng)告訴用戶,還必須重新生產(chǎn)該產(chǎn)品時(shí),用戶是很難接受的。這往往給工程繼續(xù)開(kāi)展帶來(lái)不利因素。不宜利用原型系統(tǒng)作為最終產(chǎn)品。采用原型模型開(kāi)發(fā)系統(tǒng),用戶和開(kāi)發(fā)者必須達(dá)成一致:原型被建造僅僅是用戶用來(lái)定義需求,之后便部分或全部拋起,最終的軟件是要充分考慮了質(zhì)量和可維護(hù)性等方面之后才被開(kāi)發(fā)。JiangsuMicrosoftTechnologyCenter46原型模型的優(yōu)缺點(diǎn)優(yōu)點(diǎn)JiangsuMicrosoftTe原型模型的選擇條件選擇模型的條件:已有產(chǎn)品或產(chǎn)品的原型,只需客戶化的項(xiàng)目。簡(jiǎn)單而熟悉的行業(yè)或領(lǐng)域。有快速原型開(kāi)發(fā)工具。進(jìn)行產(chǎn)品移植或升級(jí)。JiangsuMicrosoftTechnologyCenter47原型模型的選擇條件選擇模型的條件:JiangsuMicro開(kāi)發(fā)模型的對(duì)比與關(guān)聯(lián)原型與迭代是包含的關(guān)系,一次迭代的過(guò)程可以采用原型法,也可以采用其它方法原型法里面的原型包括兩種拋棄型,只是為了獲得用戶需求,可能采用不同的技術(shù)實(shí)現(xiàn),得到用戶需求以后拋棄迭代型,開(kāi)始完成的是系統(tǒng)核心功能或者是系統(tǒng)架構(gòu),逐步求精和完善增量和迭代的區(qū)別在于增量模型是從功能量上來(lái)劃分的,每階段完成一定的功能。迭代模型是從深度或細(xì)化的程度來(lái)劃分的,每階段功能得到完善、增強(qiáng)。增量和迭代的共同點(diǎn)是每個(gè)迭代和增量結(jié)束后都有產(chǎn)品發(fā)布。在實(shí)際應(yīng)用中,增量、迭代經(jīng)常一起使用,如迭代時(shí)加入新的功能進(jìn)行開(kāi)發(fā),這也是他們經(jīng)常一起出現(xiàn)的原因。JiangsuMicrosoftTechnologyCenter48開(kāi)發(fā)模型的對(duì)比與關(guān)聯(lián)原型與迭代是包含的關(guān)系,一次迭代的過(guò)程可開(kāi)發(fā)模型小結(jié)進(jìn)入IT企業(yè)參與軟件開(kāi)發(fā)或軟件管理時(shí),首先要明確:當(dāng)前的項(xiàng)目或產(chǎn)品開(kāi)發(fā)到底采用什么開(kāi)發(fā)模型,由此確定軟件的生存周期和當(dāng)前的軟件開(kāi)發(fā)進(jìn)度;合理安排項(xiàng)目組成員的工作。迅速適應(yīng)IT企業(yè)文化,并很快進(jìn)入角色。瀑布模型、增量模型、迭代模型和原型模型。因?yàn)?個(gè)模型各有所長(zhǎng),所以它們有各自的生存空間。因?yàn)樗鼈兏饔兴蹋静艜?huì)產(chǎn)生相互競(jìng)爭(zhēng),共同構(gòu)成一個(gè)豐富多彩的多個(gè)模型競(jìng)爭(zhēng)的世界。一個(gè)成熟的軟件組織,根據(jù)上述通用的4個(gè)軟件開(kāi)發(fā)模型的普遍原則,結(jié)合本單位的開(kāi)發(fā)經(jīng)驗(yàn)和行業(yè)特點(diǎn)的具體實(shí)際,還需要定制適合本單位的“生存周期模型裁剪指南”,有針對(duì)性地對(duì)選定的軟件開(kāi)發(fā)模型中定義的生存周期,進(jìn)行恰當(dāng)?shù)牟眉?,使它完全適合于本單位的需求。從而構(gòu)成了完全適合本單位的“生存周期模型裁剪指南”。該“指南”在軟件組織內(nèi)部,專供高層經(jīng)理和項(xiàng)目經(jīng)理在軟件策劃中選取軟件開(kāi)發(fā)模型時(shí)使用。JiangsuMicrosoftTechnologyCenter49開(kāi)發(fā)模型小結(jié)進(jìn)入IT企業(yè)參與軟件開(kāi)發(fā)或軟件管理時(shí),首先要明確感謝

ThankYouKrisZhang章征暉江蘇微軟技術(shù)中心zhangzh@感謝

ThankYouKrisZhang章征暉演講完畢,謝謝觀看!演講完畢,謝謝觀看!軟件工程基礎(chǔ)KrisZhang章征暉江蘇微軟技術(shù)中心zhangzh@軟件工程基礎(chǔ)KrisZhang章征暉前言《大道至簡(jiǎn)—軟件工程實(shí)踐者的思想》---周愛(ài)民

在大學(xué)時(shí)代、在課桌上令人昏昏欲睡的《軟件工程》才是軟件開(kāi)發(fā)中的髓質(zhì)與靈魂選擇什么語(yǔ)言、如何重構(gòu)、有沒(méi)有或應(yīng)不應(yīng)該采用某種模式,都是軟件開(kāi)發(fā)的細(xì)微末節(jié)我們常常陷于行動(dòng)而沒(méi)有思想,思想與行為脫節(jié)。常常知道做什么,但不知道為什么要這樣做JiangsuMicrosoftTechnologyCenter53

“停下來(lái),思考才是進(jìn)步的本質(zhì)!”前言《大道至簡(jiǎn)—軟件工程實(shí)踐者的思想》---周愛(ài)民Ji主題軟件工程的定義軟件工程的研究?jī)?nèi)容軟件工程的基本原理軟件工程的作用軟件開(kāi)發(fā)的4種常用方法軟件工程的5個(gè)面向理論軟件的支持過(guò)程軟件的管理過(guò)程軟件生存周期及開(kāi)發(fā)模型JiangsuMicrosoftTechnologyCenter54RogerS.Pressman軟件過(guò)程改善和軟件工程技術(shù)方面國(guó)際知名的權(quán)威。30多年來(lái),他作為軟件工程師、管理人員、教授、作者及咨詢顧問(wèn)始終投身于軟件工程領(lǐng)域。主題軟件工程的定義JiangsuMicrosoftTec計(jì)算機(jī)工程的定義計(jì)算機(jī)由硬件和軟件組成計(jì)算機(jī)工程由硬件工程和軟件工程組成硬件工程:研究硬件生產(chǎn)和硬件管理的工程學(xué)科,包括計(jì)算機(jī)及網(wǎng)絡(luò)硬件的分析、設(shè)計(jì)、生產(chǎn)、采購(gòu)、驗(yàn)收、安裝、培訓(xùn)、維護(hù)等。軟件工程:研究軟件生產(chǎn)和軟件管理的工程學(xué)科,包括市場(chǎng)調(diào)研、正式立項(xiàng)、項(xiàng)目策劃、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程、測(cè)試、試運(yùn)行、產(chǎn)品發(fā)布、用戶培訓(xùn)、產(chǎn)品復(fù)制、銷(xiāo)售、實(shí)施、系統(tǒng)維護(hù)、版本升級(jí)等。系統(tǒng)集成工程:有時(shí)也稱網(wǎng)絡(luò)工程,介于硬件工程和軟件工程之間的系統(tǒng)工程(如:規(guī)劃設(shè)計(jì)安裝一個(gè)校園網(wǎng))JiangsuMicrosoftTechnologyCenter55計(jì)算機(jī)工程的定義計(jì)算機(jī)由硬件和軟件組成JiangsuMic程序與軟件定義程序的定義面向過(guò)程的程序=算法+數(shù)據(jù)結(jié)構(gòu)面向?qū)ο蟮某绦?對(duì)象+消息面向構(gòu)件的程序=構(gòu)件+構(gòu)架軟件的定義軟件=程序+數(shù)據(jù)+文檔JiangsuMicrosoftTechnologyCenter56“人生就是一段程序,這段程序是用特殊代碼寫(xiě)成的,只是算法極其復(fù)雜而已?!背绦蚺c軟件定義程序的定義JiangsuMicrosoft軟件≠程序越早開(kāi)始寫(xiě)代碼的人,就是越遲完成代碼的人!JiangsuMicrosoftTechnologyCenter57年代對(duì)軟件定義的認(rèn)識(shí)20世紀(jì)50年代軟件就等于程序,軟件系統(tǒng)就是程序系統(tǒng)20世紀(jì)60年代軟件等于程序加文檔,這里的文檔僅指開(kāi)發(fā)文檔,即軟件開(kāi)發(fā)過(guò)程中的分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、維護(hù)文檔,還不包括管理文檔20世紀(jì)70年代軟件等于程序加文檔和數(shù)據(jù),這里的文檔指開(kāi)發(fā)文檔和管理文檔,這里的數(shù)據(jù)不僅包括初始化數(shù)據(jù)、測(cè)試數(shù)據(jù)、而且包括研發(fā)數(shù)據(jù)、運(yùn)行數(shù)據(jù)、維護(hù)數(shù)據(jù),也包括軟件企業(yè)積累的項(xiàng)目工程數(shù)據(jù)和項(xiàng)目管理數(shù)據(jù)中的大量決策原始記錄數(shù)據(jù)軟件≠程序越早開(kāi)始寫(xiě)代碼的人,就是越遲完成代碼的人!Jian軟件工程的定義1993年,權(quán)威組織IEEE對(duì)軟件工程定義為:軟件工程是將系統(tǒng)化的、嚴(yán)格約束的、可量化的方法,應(yīng)用于軟件開(kāi)發(fā)、運(yùn)行和維護(hù)中去。2001年,RogerS.Pressman對(duì)軟件工程的定義是:軟件工程是一個(gè)過(guò)程、一組方法和一系列工具?,F(xiàn)在的定義,軟件工程是研究軟件開(kāi)發(fā)和軟件管理的一門(mén)工程科學(xué)。JiangsuMicrosoftTechnologyCenter58軟件工程的定義是與時(shí)俱進(jìn)的軟件工程的定義1993年,權(quán)威組織IEEE對(duì)軟件工程定義為:軟件工程研究的內(nèi)容JiangsuMicrosoftTechnologyCenter59研究方面具體內(nèi)容軟件開(kāi)發(fā)模型瀑布模型、增量模型、迭代模型、原型模型…軟件開(kāi)發(fā)方法面向過(guò)程的方法、面向數(shù)據(jù)的方法、面向?qū)ο蟮姆椒ā浖С止ぞ呓9ぞ?、開(kāi)發(fā)工具、測(cè)試工具、文檔工具、配置工具、安裝工具…軟件管理過(guò)程ISO9000、CMM/CMMI、微軟企業(yè)文化(MSF)、IBM企業(yè)文化、敏捷文化現(xiàn)象(XP)...軟件工程三要素:方法、工具、過(guò)程軟件工程研究的內(nèi)容JiangsuMicrosoftTec軟件工程的8個(gè)基本原理用分階段的生命周期計(jì)劃,嚴(yán)格管理軟件開(kāi)發(fā)。堅(jiān)持進(jìn)行階段評(píng)審。實(shí)行嚴(yán)格的產(chǎn)品版本控制。采用現(xiàn)代程序設(shè)計(jì)技術(shù)。結(jié)果應(yīng)能清楚地審查。文檔要有嚴(yán)格要求。開(kāi)發(fā)小組的成員要少而精。要不斷地改進(jìn)軟件工程實(shí)踐的經(jīng)驗(yàn)和技術(shù)。牢記二八定律JiangsuMicrosoftTechnologyCenter60軟件工程的8個(gè)基本原理用分階段的生命周期計(jì)劃,嚴(yán)格管理軟件開(kāi)軟件工程中的二八定律對(duì)軟件項(xiàng)目進(jìn)度和工作量的估計(jì):一般人主觀上認(rèn)為已經(jīng)完成了80%,但實(shí)際上只完成了20%對(duì)程序中存在問(wèn)題的估計(jì):80%的問(wèn)題存在于20%的程序之中對(duì)模塊功能的估計(jì):20%的模塊,實(shí)現(xiàn)了80%的功能對(duì)人力資源的估計(jì):20%的人,解決了軟件中80%的問(wèn)題對(duì)投入資金的估計(jì):企業(yè)信息系統(tǒng)中80%的問(wèn)題,可以用20%的資金來(lái)解決。JiangsuMicrosoftTechnologyCenter61這條原理特別重要,項(xiàng)目經(jīng)理與高層經(jīng)理,要特別牢記!軟件工程中的二八定律對(duì)軟件項(xiàng)目進(jìn)度和工作量的估計(jì):一般人主觀軟件工程的作用從軟件項(xiàng)目團(tuán)隊(duì)來(lái)講,解決在規(guī)定的時(shí)間內(nèi),按照規(guī)定的成本,完成預(yù)期質(zhì)量目標(biāo)(軟件的功能、性能和接口達(dá)到需求報(bào)告標(biāo)準(zhǔn))的軟件。從軟件企業(yè)本身來(lái)講,解決持續(xù)地規(guī)范軟件開(kāi)發(fā)過(guò)程和軟件管理過(guò)程,不斷地優(yōu)化軟件組織的個(gè)人素質(zhì)和集體素質(zhì),從而逐漸增強(qiáng)軟件企業(yè)的市場(chǎng)競(jìng)爭(zhēng)實(shí)力。從軟件發(fā)展進(jìn)程來(lái)講,克服軟件危機(jī),控制軟件進(jìn)度,節(jié)約開(kāi)發(fā)成本,提高軟件質(zhì)量。從院校來(lái)講,以前它只是作為一門(mén)課或一本書(shū)。現(xiàn)在它成為一個(gè)學(xué)科,一個(gè)體系,一個(gè)計(jì)算機(jī)學(xué)位,即軟件工程碩士學(xué)位和軟件工程博士學(xué)位。JiangsuMicrosoftTechnologyCenter62軟件工程的作用從軟件項(xiàng)目團(tuán)隊(duì)來(lái)講,解決在規(guī)定的時(shí)間內(nèi),按照規(guī)軟件工程中的4個(gè)開(kāi)發(fā)方法面向過(guò)程的方法面向?qū)ο蟮姆椒嫦驍?shù)據(jù)的方法形式化方法(*)JiangsuMicrosoftTechnologyCenter63軟件工程中的4個(gè)開(kāi)發(fā)方法面向過(guò)程的方法JiangsuMic面向過(guò)程的方法內(nèi)容:面向過(guò)程需求分析、面向過(guò)程設(shè)計(jì)、面向過(guò)程編程、面向過(guò)程測(cè)試、面向過(guò)程維護(hù)、面向過(guò)程管理。面向過(guò)程的方法,又稱為面向功能的方法,或稱為結(jié)構(gòu)化方法。特點(diǎn):程序的執(zhí)行過(guò)程,不由用戶控制,完全由程序員控制。優(yōu)點(diǎn):簡(jiǎn)單實(shí)用。缺點(diǎn):企圖用有窮的方法(枚舉法)來(lái)描述無(wú)窮的(隨機(jī)的)信息世界,所以不能完全描述信息世界;維護(hù)困難。JiangsuMicrosoftTechnologyCenter64面向過(guò)程的方法內(nèi)容:面向過(guò)程需求分析、面向過(guò)程設(shè)計(jì)、面向過(guò)程面向?qū)ο蟮姆椒▋?nèi)容:面向?qū)ο笮枨蠓治?、面向?qū)ο笤O(shè)計(jì)、面向?qū)ο缶幊?、面向?qū)ο鬁y(cè)試、面向?qū)ο缶S護(hù)、面向?qū)ο蠊芾?。在分析、設(shè)計(jì)、實(shí)現(xiàn)中用到“對(duì)象、類、繼承、消息通信”這四個(gè)基本概念,就是面向?qū)ο蟮姆椒?。今天用UML來(lái)開(kāi)發(fā)軟件,就是面向?qū)ο蟮姆椒āL攸c(diǎn):(1).程序的執(zhí)行過(guò)程,不由程序員控制,完全由用戶控制。(2).分析設(shè)計(jì)時(shí)面向類,編程時(shí)面向?qū)ο?。?yōu)點(diǎn):用無(wú)窮的方法來(lái)描述無(wú)窮的(隨機(jī)的)信息世界,所以能完全描述信息世界;易于維護(hù)。缺點(diǎn):較難掌握。JiangsuMicrosoftTechnologyCenter65面向?qū)ο蟮姆椒▋?nèi)容:面向?qū)ο笮枨蠓治?、面向?qū)ο笤O(shè)計(jì)、面向?qū)ο竺嫦驍?shù)據(jù)的方法內(nèi)容:是建設(shè)信息系統(tǒng)數(shù)據(jù)庫(kù)和數(shù)據(jù)倉(cāng)庫(kù)的基本方法。1)數(shù)據(jù)位于信息系統(tǒng)的中心。2)由元數(shù)據(jù)構(gòu)成的數(shù)據(jù)模型是穩(wěn)定的。3)對(duì)元數(shù)據(jù)的處理方法是可變的。4)企業(yè)信息系統(tǒng)的核心是數(shù)據(jù)模型。5)系統(tǒng)的實(shí)現(xiàn)方法主要是面向?qū)ο蟆?)用戶始終參與信息系統(tǒng)的開(kāi)發(fā)。特點(diǎn):程序的執(zhí)行過(guò)程,有時(shí)由程序員控制,有時(shí)由用戶控制。優(yōu)點(diǎn):適合數(shù)據(jù)層設(shè)計(jì)與實(shí)現(xiàn)。缺點(diǎn):實(shí)現(xiàn)窗口界面較困難。JiangsuMicrosoftTechnologyCenter66面向數(shù)據(jù)的方法內(nèi)容:是建設(shè)信息系統(tǒng)數(shù)據(jù)庫(kù)和數(shù)據(jù)倉(cāng)庫(kù)的基本方法形式化方法軟件工程的形式化方法是建立在嚴(yán)格數(shù)學(xué)基礎(chǔ)上、以邏輯推理為出發(fā)點(diǎn)、并且具有精確數(shù)學(xué)語(yǔ)義的開(kāi)發(fā)方法。作為一種以數(shù)學(xué)邏輯為基礎(chǔ)的方法,形式化方法以其嚴(yán)密性越來(lái)越受到眾多領(lǐng)域的重視,尤其是在安全性和可靠性作為關(guān)鍵問(wèn)題的系統(tǒng),如核電站、航空航天、鐵路運(yùn)輸系統(tǒng)中得到了較為廣泛的應(yīng)用。但是對(duì)于形式化方法在工業(yè)領(lǐng)域的實(shí)際應(yīng)用問(wèn)題,在軟件工程界,尤其是在系統(tǒng)開(kāi)發(fā)人員當(dāng)中,還存在著相當(dāng)多的疑問(wèn)。軟件工程中的形式化方法是軟件工程研究的領(lǐng)域之一,其內(nèi)容包括:有限狀態(tài)機(jī)、Statecharts、Petri網(wǎng)、通信順序進(jìn)程、通信系統(tǒng)演算、一階邏輯、程序正確性證明、凈室軟件工程、時(shí)態(tài)邏輯、模型檢驗(yàn)、Z形式規(guī)約語(yǔ)言、B語(yǔ)言和方法、VDM系統(tǒng)、Larch等。JiangsuMicrosoftTechnologyCenter67形式化方法軟件工程的形式化方法是建立在嚴(yán)格數(shù)學(xué)基礎(chǔ)上、以邏輯四種開(kāi)發(fā)方法的比較JiangsuMicrosoftTechnologyCenter68方法名稱優(yōu)點(diǎn)缺點(diǎn)適合的場(chǎng)合面向過(guò)程的方法簡(jiǎ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í)行過(guò)程的應(yīng)用軟件和系統(tǒng)軟件的開(kāi)發(fā)面向數(shù)據(jù)的方法通俗易懂不適應(yīng)窗口界面

以關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)為支撐環(huán)境的信息系統(tǒng)建設(shè)形式化方法準(zhǔn)確、嚴(yán)謹(jǐn)難于上手和應(yīng)用對(duì)安全性要求極高,不容許出錯(cuò)的軟件系統(tǒng),如軍事、醫(yī)藥、交通等領(lǐng)域四種開(kāi)發(fā)方法的比較JiangsuMicrosoftTec軟件工程中的5個(gè)面向原則面向流程分析。面向數(shù)據(jù)設(shè)計(jì)面向?qū)ο髮?shí)現(xiàn)面向功能測(cè)試面向過(guò)程管理JiangsuMicrosoftTechnologyCenter69軟件工程中的5個(gè)面向原則面向流程分析。JiangsuMic面向流程分析面向流程分析,就是面向流程需求分析。在需求分析時(shí),系統(tǒng)分析員要面向業(yè)務(wù)流、資金流、信息流進(jìn)行分析。只有將這“三個(gè)流”分析透了,才建立好系統(tǒng)的業(yè)務(wù)模型和功能模型。因?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)在本質(zhì)上只認(rèn)識(shí)數(shù)據(jù)及數(shù)據(jù)流(嚴(yán)格地講,它只認(rèn)識(shí)二進(jìn)制數(shù)和二進(jìn)制數(shù)據(jù)的流動(dòng)),而且這“三個(gè)流”,可以用“數(shù)據(jù)流”這一個(gè)流程來(lái)代替,或者說(shuō)“三個(gè)流”是“數(shù)據(jù)流”在三個(gè)不同方向的投影。JiangsuMicrosoftTechnologyCenter70面向流程分析面向流程分析,就是面向流程需求分析。Jiangs面向數(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ì)的主要任務(wù)是建立系統(tǒng)的數(shù)據(jù)模型,包括概念數(shù)據(jù)模型CDM和物理數(shù)據(jù)模型PDM,以及體現(xiàn)業(yè)務(wù)規(guī)則的存儲(chǔ)過(guò)程和觸發(fā)器,然后以數(shù)據(jù)模型為支撐,去實(shí)現(xiàn)系統(tǒng)的業(yè)務(wù)模型和功能模型(包括性能模型和接口模型)。為此,要對(duì)元數(shù)據(jù)進(jìn)行分析,只有將元數(shù)據(jù)分析透了,才能建立好由元數(shù)據(jù)所構(gòu)成的數(shù)據(jù)模型。這里講的面向數(shù)據(jù)設(shè)計(jì),主要表現(xiàn)在數(shù)據(jù)庫(kù)服務(wù)器上的關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)。JiangsuMicrosoftTechnologyCenter71面向數(shù)據(jù)的設(shè)計(jì)面向數(shù)據(jù)設(shè)計(jì),就是面向元數(shù)據(jù)進(jìn)行概要設(shè)計(jì)。Ji面向?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ì)和編寫(xiě)存儲(chǔ)過(guò)程,它們是面向數(shù)據(jù)的,不是面向?qū)ο蟮摹T敿?xì)設(shè)計(jì)和編程實(shí)現(xiàn),實(shí)質(zhì)上是用構(gòu)件加上程序來(lái)實(shí)現(xiàn)系統(tǒng)的業(yè)務(wù)模型和功能模型。只有對(duì)系統(tǒng)的三個(gè)模型思想(業(yè)務(wù)模型、功能模型、數(shù)據(jù)模型)吃透了,才能設(shè)計(jì)和編寫(xiě)出合格的程序。面向?qū)ο髮?shí)現(xiàn),實(shí)質(zhì)上是面向類實(shí)現(xiàn),因?yàn)閷?shí)例化的類稱為對(duì)象。JiangsuMicrosoftTechnologyCenter72面向?qū)ο蟮膶?shí)現(xiàn)面向?qū)ο髮?shí)現(xiàn),就是面向?qū)ο筮M(jìn)行詳細(xì)設(shè)計(jì)和編程實(shí)面向功能的測(cè)試面向功能測(cè)試,就是面向功能進(jìn)行單元測(cè)試、集成測(cè)試、Alpha測(cè)試和Beta測(cè)試(或系統(tǒng)測(cè)試和驗(yàn)收測(cè)試)。在進(jìn)行測(cè)試時(shí),測(cè)試人員要采用面向功能的方法。這里講的功能,包括系統(tǒng)的功能、性能和接口三部分內(nèi)容。面向功能測(cè)試的方法就是黑盒子測(cè)試方法,隨著第四代程序設(shè)計(jì)語(yǔ)言和構(gòu)件技術(shù)的發(fā)展,該測(cè)試方法會(huì)越來(lái)越廣泛。今后采用白盒子測(cè)試方法(面向程序執(zhí)行路徑測(cè)試)的人,只有從事軟件構(gòu)件生產(chǎn)和核心代碼編程的極少數(shù)人員。JiangsuMicrosoftTechnologyCenter73面向功能的測(cè)試面向功能測(cè)試,就是面向功能進(jìn)行單元測(cè)試、集成測(cè)面向過(guò)程的管理面向過(guò)程管理,就是面向過(guò)程對(duì)軟件生命周期各個(gè)階段進(jìn)行管理和控制。因?yàn)檐浖a(chǎn)品質(zhì)量的提高與改進(jìn),完全取決于軟件企業(yè)生產(chǎn)過(guò)程的改善。無(wú)論是CMM/CMMI、ISO9000、微軟企業(yè)文化,都是站在軟件生命周期過(guò)程的觀念上去提高軟件企業(yè)的素質(zhì)。那種認(rèn)為“只要有幾個(gè)優(yōu)秀的程序員就能辦好軟件企業(yè),就能生產(chǎn)出高質(zhì)量的軟件產(chǎn)品”的觀點(diǎn),在上世紀(jì)80年代理直氣壯,在90年代還能解決溫飽問(wèn)題,在本世紀(jì)就站不住腳了,混不下去了,因?yàn)樗麄兪鞘止ぷ鞣皇降拈_(kāi)發(fā)方法,忽視了軟件中的面向過(guò)程管理。JiangsuMicrosoftTechnologyCenter74面向過(guò)程的管理面向過(guò)程管理,就是面向過(guò)程對(duì)軟件生命周期各個(gè)階軟件的支持過(guò)程軟件工程中的過(guò)程,是指軟件生命周期(LifeCycle)中的時(shí)間序列。過(guò)程作為一個(gè)時(shí)間序列,它自然有起始點(diǎn)和終止點(diǎn)。例如,可以將一個(gè)軟件的生命周期劃分為市場(chǎng)調(diào)研、立項(xiàng)、策劃、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程、單元測(cè)試、集成測(cè)試、運(yùn)行、維護(hù)這幾個(gè)過(guò)程,前一過(guò)程的終止點(diǎn)就是后一過(guò)程的起始點(diǎn)。過(guò)程與階段(Phase)相對(duì)應(yīng),階段與里程碑(Milestone)相對(duì)應(yīng)。某些重要的里程碑的產(chǎn)出物又稱為基線(baseline)。JiangsuMicrosoftTechnologyCenter75軟件的支持過(guò)程軟件工程中的過(guò)程,是指軟件生命周期(Life軟件的支持過(guò)程軟件工程的支持過(guò)程,由支持軟件生命周期各個(gè)階段的生產(chǎn)工具所組成。生產(chǎn)工具如需求分析工具、設(shè)計(jì)工具、實(shí)現(xiàn)工具、測(cè)試工具、維護(hù)工具、配置工具,開(kāi)發(fā)環(huán)境。支持過(guò)程是通過(guò)支持工具來(lái)實(shí)現(xiàn)的。每一種支持工具都是當(dāng)前軟件界的熱點(diǎn)之一,但它不是軟件工程的重點(diǎn)內(nèi)容。JiangsuMicrosoftTechnologyCenter76軟件的支持過(guò)程軟件工程的支持過(guò)程,由支持軟件生命周期各個(gè)階段軟件工程常用支持工具系統(tǒng)分析設(shè)計(jì)與建模工具IBMRationalRoseMicrosoftVisualStudioTeamSystemMicrosoftOfficeVisioforEnterpriseArchitects數(shù)據(jù)庫(kù)設(shè)計(jì)與建模工具SybasePowerDesignerCAERWinMicrosoftVisualStudioTeamSystemMicrosoftOfficeVisioforEnterpriseArchitects開(kāi)發(fā)工具M(jìn)icrosoftVisualStudioTeamSystem(.NET平臺(tái))開(kāi)源Eclipse(JAVA平臺(tái))單元測(cè)試工具M(jìn)icrosoftVisualStudioTeamSystem開(kāi)源NUnit(.NET平臺(tái))開(kāi)源JUnit(JAVA平臺(tái))JiangsuMicrosoftTechnologyCenter77軟件工程常用支持工具系統(tǒng)分析設(shè)計(jì)與建模工具JiangsuM軟件工程常用支持工具安裝工具M(jìn)icrosoftVisualStudio.NETInstallShield開(kāi)源NSIS(編寫(xiě)安裝腳本)文檔工具M(jìn)icrosoftHelpWorkshop(制作HLP文件)MicrosoftHTMLHelpWorkshop(制作CHM文件)開(kāi)源NDoc(根據(jù)代碼注釋自動(dòng)生成文檔)畫(huà)圖工具M(jìn)icrosoftOfficeVisio源代碼管理工具M(jìn)icrosoftVisualStudioTeamSystemMicrosoftVisualSourceSafe(VSS)開(kāi)源ConcurrentVersionsSystem(CVS/CVSNT)項(xiàng)目管理工具M(jìn)icrosoftVisualStudioTeamSystemMicrosoftOfficeProjectJiangsuMicrosoftTechnologyCenter78軟件工程常用支持工具安裝工具JiangsuMicrosof軟件的管理過(guò)程“外行關(guān)注結(jié)果,內(nèi)行關(guān)注過(guò)程”。1974年,美國(guó)人認(rèn)識(shí)到“軟件需要管理”。1984年,美國(guó)人認(rèn)識(shí)到“軟件管理是過(guò)程管理”。軟件工程中主要存在3類過(guò)程管理模型:

ISO9000質(zhì)量管理和質(zhì)量保證體系

CMM/CMMI過(guò)程能力成熟度模型企業(yè)文化(微軟企業(yè)文化、敏捷文化現(xiàn)象等)JiangsuMicrosoftTechnologyCenter79牢記:軟件管理過(guò)程比開(kāi)發(fā)技術(shù)更重要!軟件的管理過(guò)程“外行關(guān)注結(jié)果,內(nèi)行關(guān)注過(guò)程”。Jiangsu軟件工程中的3類過(guò)程管理模型JiangsuMicrosoftTechnologyCenter80序號(hào)名稱來(lái)源特點(diǎn)1ISO9000質(zhì)量管理和質(zhì)量保證體系國(guó)際標(biāo)準(zhǔn)化組織

ISO

按20多個(gè)質(zhì)量要素管理2CMM/CMMI軟件能力成熟度模型美國(guó)卡內(nèi)基-梅隆大學(xué)軟件工程研究所(CMU/SEI)按25個(gè)過(guò)程域PA,分階段模型和連續(xù)模型兩種方式管理屬于重載過(guò)程管理3軟件企業(yè)文化Microsoft公司、IBM公司、敏捷方法屬于輕載過(guò)程管理軟件工程中的3類過(guò)程管理模型JiangsuMicrosof軟件生存周期概論任何有生命的動(dòng)物、植物和人,都有一個(gè)生存周期(LifeCycle),例如人的生存周期為胎兒、嬰兒、幼兒、兒童、少年、青年、中年、老年、死亡。沒(méi)有生命的事物或?qū)嶓w,例如PC機(jī)、路由器、家具、房子、汽車(chē),它們也有一個(gè)生存周期,這個(gè)生存周期就是使用壽命,即生產(chǎn)周期加上使用周期。生存周期與開(kāi)發(fā)模型有關(guān)。JiangsuMicrosoftTechnologyCenter81軟件生存周期概論任何有生命的動(dòng)物、植物和人,都有一個(gè)生存周期軟件的生存周期(常規(guī))JiangsuMicrosoftTechnologyCenter82周期序號(hào)周期名稱周期序號(hào)周期名稱1立項(xiàng)(或簽合同)、下達(dá)任務(wù)書(shū)6軟件測(cè)試2需求分析7軟件發(fā)布與實(shí)施3概要設(shè)計(jì)8軟件維護(hù)4詳細(xì)設(shè)計(jì)9版本更新或退役5編碼實(shí)現(xiàn)///////////////////////////////軟件的生存周期(常規(guī))JiangsuMicrosoftT瀑布模型(WaterfallModel)定義:1970年溫斯頓?羅伊斯(WinstonRoyce)提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被廣泛采用的軟件開(kāi)發(fā)模型。瀑布模型核心思想是按工序?qū)?wèn)題化簡(jiǎn),將功能的實(shí)現(xiàn)與設(shè)計(jì)分開(kāi),便于分工協(xié)作,即采用結(jié)構(gòu)化的分析與設(shè)計(jì)方法將邏輯實(shí)現(xiàn)與物理實(shí)現(xiàn)分開(kāi)。將軟件生命周期劃分為制定計(jì)劃、需求分析、軟件設(shè)計(jì)、程序編寫(xiě)、軟件測(cè)試和運(yùn)行維護(hù)等六個(gè)基本活動(dòng),并且規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級(jí)下落。瀑布模型是最早出現(xiàn)的軟件開(kāi)發(fā)模型,在軟件工程中占有重要的地位,它提供了軟件開(kāi)發(fā)的基本框架。其過(guò)程是從上一項(xiàng)活動(dòng)接收該項(xiàng)活動(dòng)的工作對(duì)象作為輸入,利用這一輸入實(shí)施該項(xiàng)活動(dòng)應(yīng)完成的內(nèi)容給出該項(xiàng)活動(dòng)的工作成果,并作為輸出傳給下一項(xiàng)活動(dòng)。同時(shí)評(píng)審該項(xiàng)活動(dòng)的實(shí)施,若確認(rèn),則繼續(xù)下一項(xiàng)活動(dòng);否則返回前面,甚至更前面的活動(dòng)。對(duì)于經(jīng)常變化的項(xiàng)目而言,瀑布模型毫無(wú)價(jià)值。JiangsuMicrosoftTechnologyCenter83瀑布模型(WaterfallModel)定義:1970年溫瀑布模型圖JiangsuMicrosoftTechnologyCenter84瀑布模型圖JiangsuMicrosoftTechnol瀑布模型優(yōu)缺點(diǎn)優(yōu)點(diǎn):提供了軟件開(kāi)發(fā)的基本框架為項(xiàng)目提供了按階段劃分的檢查點(diǎn)當(dāng)前一階段完成后,您只需要去關(guān)注后續(xù)階段可在迭代模型中應(yīng)用瀑布模型(*)缺點(diǎn):在項(xiàng)目各個(gè)階段之間極少有反饋由于開(kāi)發(fā)模型是線性的,用戶只有等到整個(gè)過(guò)程的末期才能見(jiàn)到開(kāi)發(fā)成果,從而增加了開(kāi)發(fā)的風(fēng)險(xiǎn)通過(guò)過(guò)多的強(qiáng)制完成日期和里程碑來(lái)跟蹤各個(gè)項(xiàng)目階段。而且各個(gè)階段的劃分完全固定,階段之間產(chǎn)生大量的文檔,極大地增加了工作量早期的錯(cuò)誤可能要等到開(kāi)發(fā)后期的測(cè)試階段才能發(fā)現(xiàn),進(jìn)而帶來(lái)嚴(yán)重的后果JiangsuMicrosoftTechnologyCenter85瀑布模型優(yōu)缺點(diǎn)優(yōu)點(diǎn):JiangsuMicrosoftTe瀑布模型選擇條件選擇模型的條件:在開(kāi)發(fā)時(shí)間內(nèi)需求沒(méi)有或很少變化。分析設(shè)計(jì)人員對(duì)應(yīng)用領(lǐng)域很熟悉。低風(fēng)險(xiǎn)項(xiàng)目(對(duì)目標(biāo)、環(huán)境很熟悉)。用戶使用環(huán)境很穩(wěn)定。用戶除提出需求以外,很少參與開(kāi)發(fā)。JiangsuMicrosoftTechnologyCenter86瀑布模型選擇條件選擇模型的條件:JiangsuMicros增量模型增量模型將軟件產(chǎn)品看作一組增量構(gòu)件,每次設(shè)計(jì)、實(shí)現(xiàn)、集成、測(cè)試和交付一塊構(gòu)件,直到所有構(gòu)件全部實(shí)現(xiàn)為止。要開(kāi)發(fā)一個(gè)大的軟件系統(tǒng),先開(kāi)發(fā)其中的一個(gè)核心模塊,后再開(kāi)發(fā)其他模塊,這樣一個(gè)個(gè)模塊地增加上去,直至整個(gè)系統(tǒng)開(kāi)發(fā)完畢為止。增量模型的特點(diǎn)是引進(jìn)了增量包的概念,無(wú)須等到所有需求都出來(lái),只要某個(gè)需求的增量包出來(lái)即可進(jìn)行開(kāi)發(fā)。雖然某個(gè)增量包可能還需要進(jìn)一步適應(yīng)客戶的需求并且更改,但只要這個(gè)增量包足夠小,其影響對(duì)整個(gè)項(xiàng)目來(lái)說(shuō)是可以承受的。JiangsuMicrosoftTechnologyCenter87增量模型增量模型將軟件產(chǎn)品看作一組增量構(gòu)件,每次設(shè)計(jì)、實(shí)現(xiàn)、增量模型圖JiangsuMicrosoftTechnologyCenter88增量模型圖JiangsuMicrosoftTechnol增量模型的優(yōu)缺點(diǎn)優(yōu)點(diǎn)采用增量模型的優(yōu)點(diǎn)是人員分配靈活,剛開(kāi)始不用投入大量人力資源。如果核心產(chǎn)品很受歡迎,則可增加人力實(shí)現(xiàn)下一個(gè)增量。當(dāng)配備的人員不能在設(shè)定的期限內(nèi)完成產(chǎn)品時(shí),它提供了一種先推出核心產(chǎn)品的途徑。這樣即可先發(fā)布部分功能給客戶,對(duì)客戶起到鎮(zhèn)靜劑的作用。增量能夠有計(jì)劃地管理技術(shù)風(fēng)險(xiǎn)。缺點(diǎn)由于各個(gè)構(gòu)件是逐漸并入已有的軟件體系結(jié)構(gòu)中的,所以加入構(gòu)件必須不破壞已構(gòu)造好的系統(tǒng)部分,這需要軟件具備開(kāi)放式的體系結(jié)構(gòu)。在開(kāi)發(fā)過(guò)程中,需求的變化是不可避免的。增量模型的靈活性可以使其適應(yīng)這種變化的能力大大優(yōu)于瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟件過(guò)程的控制失去整體性。如果增量包之間存在相交的情況且未很好處理,則必須做全盤(pán)系統(tǒng)分析,這種模型將功能細(xì)化后分別開(kāi)發(fā)的方法較適應(yīng)于需求經(jīng)常改變的軟件開(kāi)發(fā)過(guò)程。JiangsuMicrosoftTechnologyCenter89增量模型的優(yōu)缺點(diǎn)優(yōu)點(diǎn)JiangsuMicrosoftTe增量模型的選擇條件選擇模型的條件:在項(xiàng)目開(kāi)發(fā)過(guò)程中,客戶接受分階段交付。開(kāi)發(fā)人員對(duì)應(yīng)用領(lǐng)域不熟悉,難以一步到位。工期過(guò)緊的中等或高風(fēng)險(xiǎn)項(xiàng)目。用戶可參與到整個(gè)軟件開(kāi)發(fā)過(guò)程中。使用面向?qū)ο笳Z(yǔ)言或第四代語(yǔ)言。軟件公司自己有較好的類庫(kù)、構(gòu)件庫(kù)。JiangsuMicrosoftTechnologyCenter90增量模型的選擇條件選擇模型的條件:Jia

溫馨提示

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