計(jì)算機(jī)軟件及應(yīng)用軟件工程zhhf12軟件工程概述課件_第1頁
計(jì)算機(jī)軟件及應(yīng)用軟件工程zhhf12軟件工程概述課件_第2頁
計(jì)算機(jī)軟件及應(yīng)用軟件工程zhhf12軟件工程概述課件_第3頁
計(jì)算機(jī)軟件及應(yīng)用軟件工程zhhf12軟件工程概述課件_第4頁
計(jì)算機(jī)軟件及應(yīng)用軟件工程zhhf12軟件工程概述課件_第5頁
已閱讀5頁,還剩90頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第一章(第一講)軟件工程概述Introduction to Software Engineering本講的主要內(nèi)容1.1 有關(guān)軟件工程及其課程1.2 軟件產(chǎn)業(yè)的發(fā)展背景1.3 軟件、軟件產(chǎn)品及其特點(diǎn)1.4 軟件危機(jī)1.5 軟件工程1.1 About Software Engineering內(nèi)容豐富,課時(shí)有限(抓緊課外時(shí)間)基本概念、原理、規(guī)律軟件開發(fā)方法、工具和環(huán)境,軟件開發(fā)過程軟件開發(fā)管理,軟件產(chǎn)品規(guī)范新興學(xué)科,發(fā)展迅速實(shí)踐性強(qiáng)參考書籍軟件工程實(shí)踐者的研究方法第六版,Roger S. Pressman,機(jī)械工業(yè)出版社軟件工程第六版,Ian Sommerville,機(jī)械工業(yè)出版社軟件工程理論與

2、實(shí)踐第二版,Shari Lawrence Pfleeger,高等教育出版社實(shí)用軟件工程第二版,鄭人杰、殷人昆、陶永雷,清華大學(xué)出版社有關(guān)SE的一些組織及網(wǎng)站SWEBOKThe Software Engineering Body of KnowledgeACMAssociation for Computer MachineryIEEE卡耐基.梅隆大學(xué)的SEI對(duì)軟件工程最淺顯的認(rèn)識(shí)對(duì)工程的認(rèn)識(shí)需求分析的重要性設(shè)計(jì)與實(shí)現(xiàn)僅僅是軟件工程的一小部分規(guī)范與標(biāo)準(zhǔn)的重要性工具的重要性質(zhì)量的意義及重要性人們對(duì)軟件開發(fā)的新認(rèn)識(shí)個(gè)人技巧 團(tuán)隊(duì)意識(shí)效率第一 清晰度第一1.2 軟件產(chǎn)業(yè)發(fā)展的背景人類社會(huì)正經(jīng)歷著一場(chǎng)前所

3、未有的由工業(yè)社會(huì)向信息社會(huì)的巨變,軟件產(chǎn)業(yè)“任重道短”。從1991年起,信息產(chǎn)業(yè)保持了1020%的增長速度。2000年,全球IT產(chǎn)業(yè)的產(chǎn)值為5000億美元。2001年,全球IT產(chǎn)值首次超過汽車工業(yè)和鋼鐵工業(yè)。硬、軟件開發(fā)人員的比例為1 : 8軟件,正處于信息技術(shù)的核心位置,觸及到人類社會(huì)的各個(gè)角落和人類文化的各個(gè)層次。全球10大軟件企業(yè),有7個(gè)在美國,2個(gè)在日本。在這輝煌的另一面,“軟件危機(jī)”一直折磨著軟件業(yè)界。人類社會(huì)已經(jīng)發(fā)展到信息時(shí)代茹毛飲血的石器時(shí)代文明初肇的青銅時(shí)代工業(yè)革命的蒸汽時(shí)代社會(huì)化大生產(chǎn)的電氣時(shí)代信息膨脹的數(shù)字時(shí)代計(jì)算機(jī)科學(xué)技術(shù)的巨大作用開拓人類認(rèn)識(shí)自然改造自然的新資源物質(zhì)資源

4、、能量資源信息資源增添了人類發(fā)展科學(xué)技術(shù)的新手段理論推倒、科學(xué)實(shí)驗(yàn)、虛擬與現(xiàn)實(shí)提高了人類創(chuàng)造文化的新工具人的行為、思想、言語、行動(dòng)引起了人類工作方式與生活方式的變化軟件的歷史第一個(gè)寫軟件的人是Augusta Ada Lovelace, 1860年嘗試為機(jī)械式計(jì)算機(jī)寫軟件,但失敗了。晶體管的發(fā)明為存儲(chǔ)器的大量應(yīng)用提供了基礎(chǔ)。50年代,第一臺(tái)電子計(jì)算機(jī)的問世,以寫軟件為職業(yè)的人開始出現(xiàn)。60年代,美國大學(xué)開始授予計(jì)算機(jī)專業(yè)的學(xué)位,有了軟件課程。在通用硬件普及的初期,軟件的通用性卻是很有限的。軟件開發(fā)也沒有什么系統(tǒng)的方法可以遵循,是個(gè)人電腦的思維過程,帶有強(qiáng)烈的個(gè)人色彩。1.3 軟件的定義Softw

5、are = Program + Data + Document其中:程序是按照事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列;數(shù)據(jù)是使程序能夠正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)維護(hù)和使用有關(guān)的各種圖文資料。軟件產(chǎn)品的特性是一種邏輯實(shí)體,具有高度復(fù)雜性和抽象性。軟件發(fā)過程有別于一般物質(zhì)的制造過程。一旦研制開發(fā)成功,就可以大量拷貝同一內(nèi)容的副本。軟件沒有磨損、老化的問題,其生命周期曲線不符合所謂的“浴缸曲線”。對(duì)硬件和環(huán)境的依賴性,導(dǎo)致軟件移植問題。尚未完全擺脫手工作坊式的開發(fā)方式,生產(chǎn)效率低下。軟件的成本相當(dāng)昂貴。軟件工作牽涉到很多社會(huì)因素。涉及機(jī)構(gòu)、體制和管理方式、人們的觀念和心理。TimeFa

6、ilure rateWear vs. DeteriorationWear vs. DeteriorationCustom softwareGeneric softwaresystem softwarereal-time softwarebusiness softwareengineering/scientific softwareembedded softwareSafety-critical softwareCOTS(Commercial Off-the-shelf )PC softwareAI softwareWebApps (Web applications)Software Appli

7、cations?I will create a software to update the database.(some software, a piece of software, a software system)1.4 軟件危機(jī)(Software Crisis)首次提出:1968年北大西洋公約組織在聯(lián)邦德國召開的國際學(xué)術(shù)會(huì)議上。軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題??梢园衍浖C(jī)概括為兩個(gè)方面的問題軟件開發(fā)十分困難,難以滿足不斷增長且日趨復(fù)雜的需求;如何維護(hù)數(shù)量不斷膨脹的軟件產(chǎn)品。 Crisis or Depression or Chronic Affli

8、ction?從軟件工程幾十年的發(fā)展歷程來看,軟件危機(jī)不是”crisis”所能形容的,而更象”chronic affliction”,是一種頑固的慢性痛苦。軟件危機(jī)的根本原因是軟件系統(tǒng)高度復(fù)雜、難于駕馭和軟件開發(fā)所帶有的個(gè)人色彩。軟件危機(jī)的具體表現(xiàn)對(duì)開發(fā)成本和進(jìn)度難以估計(jì)。開發(fā)成本超出預(yù)算和不能按時(shí)交付的現(xiàn)象并不罕見。用戶對(duì)“已完成”系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。軟件質(zhì)量難以保證。Bug一大堆,Patch一個(gè)接一個(gè)。軟件的可維護(hù)程度非常之低,即“維護(hù)墻”問題。軟件通常沒有適當(dāng)?shù)奈臋n資料。軟件成本在整個(gè)系統(tǒng)中比重逐年提高。軟件開發(fā)生產(chǎn)率的提高趕不上硬件發(fā)展和需求增長。軟件危機(jī)產(chǎn)生的原因軟件本身的特點(diǎn)所

9、決定的。軟件開發(fā)和維護(hù)的方法不正確(在不斷地發(fā)展之中)忽視軟件開發(fā)前期的需求分析;開發(fā)過程沒有統(tǒng)一的、規(guī)范的方法論的指導(dǎo),缺乏過程管理,文檔資料不齊全,忽視人與人的交流;忽視測(cè)試工作,所提交的軟件質(zhì)量不高;輕視軟件的維護(hù)。硬件技術(shù)和產(chǎn)品的發(fā)展速度遠(yuǎn)遠(yuǎn)大于軟件。計(jì)算機(jī)應(yīng)用普及社會(huì)對(duì)軟件的依賴對(duì)軟件的需求、質(zhì)量和可靠性的要求巨增。設(shè)計(jì)問題、資源問題使得我們難以支持和增強(qiáng)已有的軟件,即所謂的“維護(hù)墻”問題。 軟件神話 Myths我們已經(jīng)有了一本寫滿軟件開發(fā)標(biāo)準(zhǔn)和規(guī)程的寶典,囊括了可能遇到的任何問題。如果未能按時(shí)完成計(jì)劃,可以通過增加人數(shù)而趕上進(jìn)度。將軟件外包給另一家公司就可以完全放手不管了。有了對(duì)項(xiàng)

10、目目標(biāo)的大概了解,便足以開始編寫程序,有關(guān)細(xì)節(jié)以后再慢慢了解。雖然需求不斷變更,但軟件是彈性的,可以容易地適應(yīng)這些變更。當(dāng)完成程序并交付使用時(shí),我們的任務(wù)就完成了。知道程序開始運(yùn)行,才能評(píng)估其質(zhì)量。對(duì)于一成功的軟件項(xiàng)目,可執(zhí)行程序是唯一交付的成果。軟件工程導(dǎo)致大量無用文檔,并因此降低了工作效率。1.5 軟件工程1968年秋季,NATO(北約)的科技委員會(huì)召集了近50名一流的編程人員、計(jì)算機(jī)科學(xué)家和工業(yè)界巨頭,討論和制定擺脫“軟件危機(jī)”的對(duì)策。Fritz Bauer在會(huì)議上首次提出“軟件工程”概念。軟件工程的目標(biāo)低成本高質(zhì)量按時(shí)交付軟件工程定義軟件工程是一門研究如何用系統(tǒng)化、規(guī)范化、數(shù)量化等工程

11、原則和方法進(jìn)行軟件開發(fā)和維護(hù)的學(xué)科。軟件工程包括兩方面內(nèi)容:軟件開發(fā)技術(shù)和軟件項(xiàng)目管理。軟件開發(fā)技術(shù)包括軟件開發(fā)方法學(xué)、軟件工具和軟件工程環(huán)境。軟件項(xiàng)目管理包括軟件度量、項(xiàng)目估算、進(jìn)度控制、人員組織、配置管理、項(xiàng)目計(jì)劃等。Fritz Bauer的定義軟件工程是為了經(jīng)濟(jì)地獲得可靠的,能在實(shí)際的機(jī)器上高效運(yùn)行的軟件而建立和使用的科學(xué)的工程原則。IEEE的定義軟件工程是(1)將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)的過程,即將工程化思想應(yīng)用于軟件開發(fā)過程中,(2)上述方法的研究。軟件工程的本質(zhì)特性關(guān)注大型程序的構(gòu)造軟件工程的中心課題是控制復(fù)雜性軟件需求不斷變化旨在提高軟件開發(fā)的效

12、率團(tuán)隊(duì)合作是軟件工程順利實(shí)施的關(guān)鍵軟件必須有效支持它的用戶由一種文化背景的人替另一種文化背景的人創(chuàng)造產(chǎn)品軟件工程原則(1)質(zhì)量原則避免產(chǎn)生缺陷(具有恰當(dāng)?shù)臉?biāo)準(zhǔn)、規(guī)范、質(zhì)量審計(jì)過程等)確保盡早地發(fā)現(xiàn)缺陷并加以改正辨別和消除產(chǎn)生缺陷的原因和征兆根據(jù)標(biāo)準(zhǔn)和規(guī)范對(duì)生產(chǎn)的各個(gè)過程進(jìn)行獨(dú)立審計(jì)(SEI-CMM等)軟件工程原則(2)管理原則規(guī)定任務(wù)和職責(zé)制定工作計(jì)劃按照計(jì)劃跟蹤進(jìn)度不斷地完善計(jì)劃 在CMM中有一個(gè)PDCA循環(huán)(Plan, Do, Check, Action)軟件工程原則(3)工程原則分析問題分解任務(wù)控制各個(gè)部門之間的關(guān)系為了更好地貫徹這些原則,實(shí)現(xiàn)軟件工程的目標(biāo),我們必須連接軟件工程的思想,

13、研究軟件工程的工具、方法、過程和質(zhì)量管理。B. W. Boehm 軟件工程基本原理用分階段的生命周期計(jì)劃嚴(yán)格管理堅(jiān)持進(jìn)行階段評(píng)審實(shí)行嚴(yán)格的產(chǎn)品控制采用先進(jìn)的程序設(shè)計(jì)技術(shù)開發(fā)過程具有可見性,所獲結(jié)果清楚,便以審查開發(fā)人員少而精承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性基線(Baseline)通過正式復(fù)審的規(guī)格說明或中間產(chǎn)品(artifact),可以作為進(jìn)一步開發(fā)的基礎(chǔ),并且只有通過正式的變更控制過程才能改變它。(IEEE)基線的特征具有明確的標(biāo)識(shí)具有明確的內(nèi)容經(jīng)過正式審批嚴(yán)格控制變更里程碑(Milestone)里程碑是用來說明項(xiàng)目進(jìn)展情況的事件,通常把一個(gè)開發(fā)活動(dòng)的結(jié)束或一項(xiàng)開發(fā)任務(wù)的完成定義為一個(gè)里程碑

14、。里程碑必須與軟件開發(fā)工作的進(jìn)展情況密切相關(guān),里程碑作為任務(wù)完成的標(biāo)志必須非常明顯,即里程碑具有很高的可見性。軟件工程總體面臨的困難與風(fēng)險(xiǎn)復(fù)雜性與大量的細(xì)節(jié)(火星探測(cè)器的失?。┘夹g(shù)的不確定性(技術(shù)的發(fā)展與開發(fā)人員對(duì)技術(shù)的理解程度都不同)由于交流障礙而引起的需求不確定性需求是持續(xù)變化的不斷的修改所帶來的錯(cuò)誤使得軟件退化人為和市場(chǎng)的風(fēng)險(xiǎn)軟件費(fèi)用、可靠性、生產(chǎn)率、重用問題難以解決第一章(第二講)軟件工程過程本講的主要內(nèi)容軟件工程方法學(xué)軟件生命周期軟件過程軟件過程模型1、軟件工程方法學(xué)通常把軟件生命周期全過程中使用的一整套技術(shù)方法的集合成為軟件工程方法學(xué)(methodology),也成為范型(para

15、digm)軟件工程方法學(xué)的3個(gè)要素方法工具過程傳統(tǒng)的軟件工程方法學(xué)結(jié)構(gòu)化范型或生命周期方法學(xué)要么面向行為以功能分解為主(基于數(shù)據(jù)流圖的結(jié)構(gòu)化分析與設(shè)計(jì)方法 ),要么面向數(shù)據(jù)(Jackson方法)面向?qū)ο蠓椒▽W(xué)以數(shù)據(jù)為中心,把數(shù)據(jù)和對(duì)數(shù)據(jù)的操作緊密地結(jié)合起來,用對(duì)象分解代替?zhèn)鹘y(tǒng)的功能分解。面向?qū)ο蠓椒▽W(xué)的4個(gè)要點(diǎn)把對(duì)象作為融合數(shù)據(jù)和操作的統(tǒng)一的構(gòu)件把所有對(duì)象都劃分成類子類自動(dòng)擁有父類中定義的數(shù)據(jù)和操作,即繼承對(duì)象間僅能通過發(fā)送消息互相聯(lián)系2、軟件生存周期軟件生存周期(Life Cycle)是指一個(gè)軟件從提出開發(fā)要求開始直到該軟件報(bào)廢為止的整個(gè)時(shí)期。把整個(gè)生存周期劃分為若干階段,使得每個(gè)階段有明確

16、的任務(wù),使規(guī)模大、結(jié)構(gòu)復(fù)雜和管理復(fù)雜的軟件開發(fā)變得容易控制和管理。軟件生存周期各階段的劃分應(yīng)遵循的基本原則:各階段的任務(wù)應(yīng)盡可能相對(duì)獨(dú)立,同一階段各項(xiàng)任務(wù)的性質(zhì)盡可能相同,從而降低每個(gè)階段任務(wù)的復(fù)雜程度,簡化不同階段之間的聯(lián)系,有利于軟件項(xiàng)目開發(fā)的組織管理。 軟件生命周期的階段劃分軟件定義階段問題定義可行性研究需求分析軟件開發(fā)階段總體設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼和單元測(cè)試綜合測(cè)試運(yùn)行階段軟件維護(hù)軟件定義階段問題定義: 關(guān)于問題性質(zhì)、工程目標(biāo)和工程規(guī)模的扼要描述可行性研究,即高層的分析和設(shè)計(jì)過程,以回答是否存在可行的解決方法。需求分析:準(zhǔn)確的“做什么”的描述。軟件開發(fā)階段概要設(shè)計(jì)結(jié)構(gòu)設(shè)計(jì),系統(tǒng)設(shè)計(jì)建立軟件的

17、總體結(jié)構(gòu),即模塊結(jié)構(gòu)詳細(xì)設(shè)計(jì)算法設(shè)計(jì),過程設(shè)計(jì)設(shè)計(jì)每個(gè)模塊的結(jié)構(gòu),IPO圖或PDL語言編碼與單元測(cè)試生成源程序代碼和單元測(cè)試方案、數(shù)據(jù)和結(jié)果,由編程人員進(jìn)行綜合測(cè)試 通過各種測(cè)試和調(diào)試,是軟件達(dá)到預(yù)訂的要求軟件運(yùn)行階段維護(hù)通過各種必要的維護(hù)活動(dòng)使系統(tǒng)持久地滿足用戶的需要四種類型的維護(hù)改正性維護(hù)適應(yīng)性維護(hù)完善性維護(hù)預(yù)防性維護(hù)3、軟件工程過程一個(gè)過程定義了為達(dá)到每個(gè)確定的目標(biāo),需要什么人在什么時(shí)間以何種方式做何種工作(Goal,Who,When,How,What)。軟件工程過程規(guī)定了獲取、供應(yīng)、開發(fā)、操作和維護(hù)軟件時(shí),要實(shí)施的過程、活動(dòng)和任務(wù)。其目的是為各種人員提供一個(gè)公共的框架,以便用相同的語言

18、進(jìn)行交流。Cont.一個(gè)開發(fā)機(jī)構(gòu)為開發(fā)特定的軟件需要制訂一系列的工作步驟(軟件工程過程),其中包含和涉及軟件工程所有參與者的各種活動(dòng)、任務(wù)?;镜能浖^程活動(dòng)包括:規(guī)格說明、開發(fā)、確認(rèn)和演進(jìn)。CMM的軟件工程過程包含獲取、供應(yīng)、開發(fā)、操作、維護(hù)、管理、支持七個(gè)過程。過程定義的作用Process vs Music score用于對(duì) Customer, User, Developer, Manager的指導(dǎo),一個(gè)廣泛適用的過程使得所有參與人員更好地理解自己所扮演的角色、他人做什么。促使過程的有機(jī)結(jié)合和改善,獲得“最好過程”可以使公司內(nèi)部的培訓(xùn)標(biāo)準(zhǔn)化。由于過程的可重復(fù)性,利于開發(fā)進(jìn)度的安排,利于成本

19、估算。統(tǒng)一過程(RUP)RUP的突出特點(diǎn)用況驅(qū)動(dòng)(系統(tǒng)功能)以構(gòu)架為中心(表現(xiàn)形式)迭代和增量開發(fā)(過程實(shí)施)ReturnUML(Unified Modeling Language )1994,OO思想已經(jīng)貫穿整個(gè)軟件生存期,具有影響的OOA&D方法達(dá)50余種。UML是一種對(duì)軟件密集型系統(tǒng)進(jìn)行可視化、詳述、構(gòu)造和文檔化的建模語言,主要用于分析和設(shè)計(jì)階段的系統(tǒng)建模。UML 2.01994Booch方法Rumbaugh OMT Coad/YourdonFire Smith 方法 Jacobson OOSE1995.10發(fā)布Unified Method 0.81996.6發(fā)布UML 0.9不包含過程

20、指導(dǎo)Rational聯(lián)合12家公司成立UML組織,形成UML 1.0,1997.1提交給OMG1997.11.4, OMG采納UML 1.12002發(fā)布UML 2.04、軟件過程模型模型所謂模型是為了理解事物而對(duì)事物做出的一種抽象,它忽略不必要的細(xì)節(jié),是事物的一種抽象形式、一個(gè)規(guī)劃、一個(gè)程式。軟件開發(fā)模型軟件開發(fā)全部過程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。軟件過程模型的種類瀑布模型快速原型模型針對(duì)事先不能完成定義需求的軟件開發(fā)原型系統(tǒng)重在“快速”周期開發(fā)模型(增量和迭代模型)完整的體系結(jié)構(gòu)的實(shí)現(xiàn)確定多次迭代螺旋模型考慮風(fēng)險(xiǎn)因素,由Boehm提出噴泉模型多次重復(fù),無間隙適用于面向?qū)ο蠹夹g(shù)(復(fù)用技術(shù))瀑布模型

21、瀑布模型(Waterfall Model)軟件生存周期模型 (Classic Life Cycle Model)線性順序模型(Linear Sequential Model)問題定義需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼測(cè)試維護(hù)瀑布模型的三個(gè)特點(diǎn)階段間具有順序性和依賴性推遲實(shí)現(xiàn)的觀點(diǎn)質(zhì)量保證的觀點(diǎn)Cost to changeAfter releaseDefinitionDevelopment1.56x 1x60100 xThe impact of change計(jì)劃需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼測(cè)試維護(hù)環(huán)計(jì)劃需求分析運(yùn)行評(píng)價(jià)編碼設(shè)計(jì)The Waterfall Model With Maintenance C

22、ircle運(yùn)行維護(hù)需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼單元測(cè)試集成測(cè)試驗(yàn)收測(cè)試Prototyping系統(tǒng)測(cè)試ValidateVerifyThe Waterfall Model With Prototyping瀑布模型的優(yōu)點(diǎn)開發(fā)過程基本上是線性順序的,便于管理基于“明確、完備的需求”,可以獲得好的開發(fā)效果運(yùn)行、維護(hù)需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼單元集成測(cè)試驗(yàn)收測(cè)試系統(tǒng)測(cè)試Validate RequirementsVerify DesignThe V ModelOperational Specification ModelOperational Specification (problem-oriented

23、) Transformed Specification (implementation oriented ) TEST Execute and ReviseSystem Requirements(sometimes informal or incomplete)DeliveredSystemTransformational ModelTransform nFormal Specification problem-oriented Transform 2TEST Compare withrequirements;Update as neededSystem Requirements(someti

24、mes informal or incomplete)DeliveredSystemTransform 1Formal Development RecordSequence of transformationsPlus rationale for themThe Phased Development ModelBuild Release 2Build Release 1Build Release 3Use Release 2Use Release 1Use Release 3TimeProduction systemDevelopment systemDevelopersUsersThe In

25、cremental and Iterative ModelIncremental DevelopmentIterative DevelopmentcreateformatcreateeditformatcreateEasyquickMore stylescreatePasteeasyMore stylescreatePasteclumsystylescreate增量開發(fā)的優(yōu)點(diǎn)能在較短的時(shí)間內(nèi)向用戶提交可以完成主要功能的產(chǎn)品逐步增加產(chǎn)品的功能,使用戶有充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品,減少一個(gè)全新的產(chǎn)品給客戶組織帶來的沖擊The Spiral Model螺旋模型的優(yōu)點(diǎn)有利于已有軟件的重用有助于把軟件質(zhì)

26、量作為軟件開發(fā)的一個(gè)重要目標(biāo)減少了過多測(cè)試或測(cè)試不足所帶來的風(fēng)險(xiǎn)軟件維護(hù)與軟件開發(fā)沒有本質(zhì)區(qū)別問題定義系統(tǒng)測(cè)試需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼單元測(cè)試維護(hù)集成測(cè)試提交運(yùn)行The Software Development Process in Reality示例分析一假設(shè)你開發(fā)一軟件,其功能是把讀入的浮點(diǎn)數(shù)開平方,所得到的結(jié)果精確到小數(shù)點(diǎn)后4位。一旦實(shí)現(xiàn)并測(cè)試完成后,該產(chǎn)品將被拋棄。你打算選用哪種過程模型?示例分析1、需求很明確2、實(shí)現(xiàn)浮點(diǎn)數(shù)開平方的算法也很成熟不需要原型過程模型3、一旦實(shí)現(xiàn)并測(cè)試完成后,該產(chǎn)品將被拋棄,可以不考慮產(chǎn)品的進(jìn)化問題4、規(guī)模相對(duì)較小,功能比較單一不需要增量模型或螺旋過程模

27、型總之,使用瀑布模型即可示例分析二你負(fù)責(zé) 一個(gè)項(xiàng)目,其工作是管理公司已被廣泛應(yīng)用的字處理軟件的新版本開發(fā)。由于市場(chǎng)競(jìng)爭激烈,公司規(guī)定了嚴(yán)格的完成期限并且已經(jīng)對(duì)外公布。你打算采用哪種過程模型?為什么?示例分析舊版本相當(dāng)于一個(gè)原型,沒必要再專門開發(fā)一個(gè)原型系統(tǒng)公司軟件工程師對(duì)該軟件很熟悉,有開發(fā)字處理軟件的豐富經(jīng)驗(yàn),具備采用增量模型開發(fā)字處理軟件的技術(shù)水平該軟件廣泛使用,需要進(jìn)一步的改進(jìn)和擴(kuò)充,以形成更新的版本結(jié)論:增量模型Return技術(shù)審查和管理復(fù)審任務(wù):在軟件生存周期的每個(gè)重要的里程碑(一般是每個(gè)階段結(jié)束時(shí)),對(duì)工程項(xiàng)目的成本,實(shí)際花費(fèi)的經(jīng)費(fèi),投資回收的前景,項(xiàng)目的進(jìn)度等經(jīng)濟(jì)因素從管理角度進(jìn)

28、行審查。目的:不讓錯(cuò)誤進(jìn)入下一個(gè)階段技術(shù)審查也是降低軟件成本的一個(gè)重要措施在技術(shù)審查合格之后再進(jìn)行管理復(fù)審軟件開發(fā)工具軟件工具一般是指為了支持軟件人員開發(fā)和維護(hù)活動(dòng)而使用的軟件。軟件工具發(fā)展的三個(gè)階段工具箱軟件開發(fā)環(huán)境SDE計(jì)算機(jī)輔助軟件工程CASE (Computer Aided Software Engineering) 工具應(yīng)該支持軟件生命周期的各個(gè)階段Requirements ManagementVisual ModelingProgramming ToolQuality AssuranceReturn什么是軟件危機(jī)?它有哪些具體表現(xiàn)?什么是軟件工程?它有哪些本質(zhì)特征?什么是軟件過程?

29、它與軟件工程方法學(xué)有何關(guān)系?試比較瀑布模型、快速原型模型、增量模型和螺旋模型的優(yōu)缺點(diǎn),說明各種模型的使用范圍。什么是基線?應(yīng)有哪些基本特征?什么是里程碑?應(yīng)有哪些基本特征?作業(yè)一第二章(第三講)可行性研究與成本效益分析本講的主要內(nèi)容問題定義與可行性研究可行性研究的任務(wù)可行性研究的步驟系統(tǒng)流程圖成本/效益分析GO1、問題定義 問題是什么? 問題性質(zhì)工程目標(biāo)或前景( vision )工程規(guī)模和范圍( scope )問題定義階段結(jié)束的標(biāo)準(zhǔn)提交有關(guān)規(guī)模和目標(biāo)的報(bào)告書 軟件可行性研究 軟件可行性研究的目的用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定該軟件項(xiàng)目是否能夠開發(fā),是否值得去開發(fā)。結(jié)束標(biāo)準(zhǔn)描述系統(tǒng)的高層邏輯

30、模型成本效益分析關(guān)于“是否可行”的明確回答 Return2、軟件可行性研究的任務(wù)技術(shù)可行性經(jīng)濟(jì)可行性社會(huì)可行性操作可行性 Return3、軟件可行性研究的步驟(1) 確定項(xiàng)目規(guī)模和目標(biāo) (2) 研究正在運(yùn)行的系統(tǒng)(3) 建立新系統(tǒng)的高層邏輯模型(4) 導(dǎo)出和評(píng)價(jià)各種方案(5) 推薦可行的方案(6) 編寫可行性研究報(bào)告Return可行性研究是高層的分析和設(shè)計(jì)可行性研究報(bào)告(1)引言(2)可行性研究前提(3)對(duì)現(xiàn)有系統(tǒng)的分析(4)所建議系統(tǒng)的技術(shù)可行性分析(5)所建議系統(tǒng)的經(jīng)濟(jì)可行性分析(6)社會(huì)因素可行性分析(7)其它可供選擇方案(8)結(jié)論意見4、系統(tǒng)流程圖 系統(tǒng)流程圖是描繪物理系統(tǒng)中各個(gè)元素的

31、圖形符號(hào)的集合,它表達(dá)了系統(tǒng)中各個(gè)元素之間的信息流動(dòng)的情況??尚行匝芯恳鶕?jù)項(xiàng)目的概要范圍、功能、性能等需求,以概括的形式描述現(xiàn)有系統(tǒng)的高層的邏輯模型,并通過概要的設(shè)計(jì)得到所建議的系統(tǒng)物理模型。常用符號(hào)見P29圖2.1和圖2.2Return一個(gè)庫存管理系統(tǒng)的系統(tǒng)流程圖訂貨信息庫存管理模塊報(bào)告生成模塊訂貨報(bào)告庫存文件輸入變更記錄I/O顯示磁盤聯(lián)機(jī)存儲(chǔ)處理文檔5、成本/效益分析 目的:將開發(fā)成本與可能取得的效益比較和權(quán)衡,從經(jīng)濟(jì)角度評(píng)價(jià)開發(fā)一個(gè)新的軟件項(xiàng)目是否可行。效益分為有形效益和無形效益有形效益可以用貨幣的時(shí)間價(jià)值、投資回收期、純收人等指標(biāo)進(jìn)行度量無形效益主要從性質(zhì)上、心理上進(jìn)行衡量,很難直接進(jìn)行量的比較。成本估計(jì)技術(shù) 代碼行技術(shù)任務(wù)分解技術(shù)自動(dòng)估計(jì)成本技術(shù)成本/效益分析的方法 貨幣的時(shí)間價(jià)值 (示例見P41)F = P(1+i)n P = F(1+i)n投資回收期 純收入 投資回收率P=F1(1+i)+F2(1+i)2+.+Fn(1+i)n Return項(xiàng)目開發(fā)計(jì)劃 項(xiàng)目概述:主要工作;軟件功能、性能;條件;用戶及合同承包者承擔(dān)的工作、完成期限及其它條件限制;應(yīng)交付的程序

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論