版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、講 課 人:電子郵件: bme.電 話:辦 公 室:教二南樓328室軟件工程1資料共享 FTP:地址:7端口:21 匿名登錄下載目錄:tech/生物醫(yī)學(xué)工程及儀器研究所/劉偉/軟件工程23課程設(shè)計(jì):要求同學(xué)采用面向?qū)ο筌浖_(kāi)發(fā)方法,針對(duì)自己正在進(jìn)行的科研課題,任選一個(gè)小模塊,使用UML工具和建模方法完成面向?qū)ο蟮男枨蠓治?、軟件設(shè)計(jì)和軟件測(cè)試。并提交可運(yùn)行的原型演示程序和相關(guān)的技術(shù)文檔。本課程設(shè)計(jì)要求同學(xué)在自己的科研工作基礎(chǔ)上完成。完成后做 ppt 在課堂上進(jìn)行介紹。主題討論課:本部分內(nèi)容以同學(xué)課堂討論為主。要求同學(xué)針對(duì)軟件開(kāi)發(fā)與軟件工程領(lǐng)域內(nèi)的前沿和熱點(diǎn)技術(shù)問(wèn)題(如中間件技術(shù)、XML技術(shù)、.N
2、ET技術(shù)、構(gòu)件構(gòu)架技術(shù)等)分組準(zhǔn)備并進(jìn)行主題討論。35人作為一個(gè)主題小組,1名組長(zhǎng)作為負(fù)責(zé)人。每個(gè)小組的主題任選,要求每個(gè)小組在課堂上做一個(gè)報(bào)告(ppt),并能針對(duì)該主題做一個(gè)原型演示程序(課外事先完成,程序規(guī)模不限),該程序內(nèi)容不限,但最好和自己正在進(jìn)行的科研項(xiàng)目相關(guān)。考試形式:考查課。課程結(jié)束上交課程設(shè)計(jì)的所有資料(包括電子版和打印版)。根據(jù)課程設(shè)計(jì)情況和做報(bào)告情況給出最終成績(jī)。4567(1)軟件開(kāi)發(fā)現(xiàn)在越來(lái)越象是一種管理科學(xué),而非技術(shù)科學(xué);(2)課程內(nèi)容本身不難,但要真正用于自己的工作還需要大量的項(xiàng)目實(shí)踐,在實(shí)踐中細(xì)細(xì)體味。本課程的學(xué)習(xí)最好圍繞自身在研的課題項(xiàng)目開(kāi)展(程序員 項(xiàng)目經(jīng)理);
3、(3)本課程的講授中更注重實(shí)用性(如編碼風(fēng)格、文檔設(shè)計(jì)等),和大家分享自身的項(xiàng)目實(shí)踐經(jīng)驗(yàn),盡量避免空洞的說(shuō)教。8軟件開(kāi)發(fā)過(guò)程比爾蓋子是一名建筑工人起初只干一些比較簡(jiǎn)單的建筑工作憑個(gè)人技術(shù)和經(jīng)驗(yàn),不需要特別設(shè)計(jì),一般都可以順利完成此時(shí)就如同編寫(xiě)早期比較小的程序9軟件開(kāi)發(fā)過(guò)程由于工作業(yè)績(jī)不錯(cuò)有一天他被通知需要由他負(fù)責(zé)建造一間非常美麗而完整的房間工作變得復(fù)雜許多就像不斷發(fā)展的軟件一樣,需要的功能越來(lái)越多,越來(lái)越復(fù)雜10軟件開(kāi)發(fā)過(guò)程軟件復(fù)雜性圖形用戶(hù)界面客戶(hù)/服務(wù)器結(jié)構(gòu)分布式應(yīng)用數(shù)據(jù)通信超大型關(guān)系型數(shù)據(jù)庫(kù)etc.11項(xiàng)目團(tuán)隊(duì)中的角色比爾首先想到這個(gè)任務(wù)需要更多的人手幫他一起來(lái)做于是他馬上組成了自己真正
4、的工作團(tuán)隊(duì)12分析師 軟件項(xiàng)目團(tuán)隊(duì)中的角色 項(xiàng)目經(jīng)理 技術(shù)負(fù)責(zé)人 開(kāi)發(fā)人員 設(shè)計(jì)人員 軟件架構(gòu)師 測(cè)試人員項(xiàng)目團(tuán)隊(duì) 13項(xiàng)目人員構(gòu)成比例例子:1、微軟 EXCHANGE 2000 SERVER 的開(kāi)發(fā):項(xiàng)目經(jīng)理:25人開(kāi)發(fā)人員:140人測(cè)試人員:350人2、WINDOWS 2000:項(xiàng)目經(jīng)理:250人開(kāi)發(fā)人員:1700人測(cè)試人員:3200人14軟件工程師的工作項(xiàng)目設(shè)計(jì)與分析編碼編寫(xiě)文檔測(cè)試團(tuán)隊(duì)管理15軟件工程師的素質(zhì) 良好的編碼能力和規(guī)范化編碼習(xí)慣 自覺(jué)的規(guī)范意識(shí)和團(tuán)隊(duì)精神 具有軟件工程的概念 具有求知欲、進(jìn)取心和學(xué)習(xí)總結(jié)的能力 團(tuán)隊(duì)組織和管理能力16軟件開(kāi)發(fā)過(guò)程“這次不能盲目開(kāi)工,我們需要首
5、先好好設(shè)計(jì)一下!”構(gòu)想分析設(shè)計(jì)構(gòu)造評(píng)估軟件的制作過(guò)程也非常相似17軟件開(kāi)發(fā)過(guò)程 軟件開(kāi)發(fā)可行性研究與計(jì)劃 需求分析 設(shè)計(jì) 開(kāi)發(fā) 評(píng)估/測(cè)試 維護(hù) 建造房屋構(gòu)想分析設(shè)計(jì)構(gòu)造評(píng)估維護(hù) 18軟件開(kāi)發(fā)過(guò)程比爾成功了完成自己的建筑項(xiàng)目19軟件開(kāi)發(fā)過(guò)程這次將完成一棟更加復(fù)雜的建筑因?yàn)橛辛艘郧暗慕?jīng)驗(yàn),比爾感到很有信心就像我們的軟件開(kāi)始越來(lái)越龐大由于成績(jī)不錯(cuò),比爾再次被通知20?軟件開(kāi)發(fā)過(guò)程這次需要更多人,更復(fù)雜的分析、設(shè)計(jì)和建造過(guò)程但在完成之前各種問(wèn)題開(kāi)始出現(xiàn)21軟件開(kāi)發(fā)過(guò)程之前設(shè)計(jì)時(shí)犯下一個(gè)比較小的錯(cuò)誤,在建造時(shí)才被發(fā)現(xiàn),已經(jīng)變成了一個(gè)嚴(yán)重的錯(cuò)誤必須停工回到設(shè)計(jì)階段重新設(shè)計(jì),重新建造在已經(jīng)將房間格局建造得
6、差不多時(shí),用戶(hù)又突然提出更改某處的要求,導(dǎo)致工程再次從設(shè)計(jì)開(kāi)始雖然很努力工作但還是工程超時(shí)房屋不能滿足用戶(hù)需要22軟件開(kāi)發(fā)過(guò)程工程失敗的原因前期錯(cuò)誤往往只有到了項(xiàng)目后期才能夠被發(fā)現(xiàn)開(kāi)始階段的小錯(cuò)誤被逐級(jí)放大,可能導(dǎo)致項(xiàng)目最終報(bào)廢開(kāi)發(fā)進(jìn)度往往會(huì)被意外發(fā)生的問(wèn)題所打亂,需要進(jìn)行返工或其他一些額外的開(kāi)發(fā)周期,造成項(xiàng)目延期或費(fèi)用超支 缺乏靈活性,不能適應(yīng)用戶(hù)需求的改變返回上一級(jí)的開(kāi)發(fā)需要十分高昂的代價(jià)23軟件開(kāi)發(fā)過(guò)程規(guī)模大、需求不清晰、不穩(wěn)定的項(xiàng)目如何完成呢?軟件工程所要解決的問(wèn)題24軟件、特點(diǎn)、分類(lèi)軟件的發(fā)展階段軟件危機(jī)軟件工程、軟件工程過(guò)程、特性軟件工程的基本目標(biāo)軟件工程原理軟件生存期軟件生存期模
7、型中國(guó)與印度軟件行業(yè)對(duì)比25軟件 軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合程序是按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)文檔是與程序開(kāi)發(fā),維護(hù)和使用有關(guān)的圖文材料26軟件特點(diǎn)軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體。因而它具有抽象性軟件的生產(chǎn)與硬件不同,在它的開(kāi)發(fā)過(guò)程中沒(méi)有明顯的制造過(guò)程在軟件的運(yùn)行和使用期間,沒(méi)有硬件那樣的機(jī)械磨損,老化問(wèn)題軟件的開(kāi)發(fā)和運(yùn)行常受到計(jì)算機(jī)系統(tǒng)的限制,對(duì)計(jì)算機(jī)系統(tǒng)有著不同程度的依賴(lài)性雖然目前工業(yè)上正朝著可復(fù)用的組件化裝配方向發(fā)展,但軟件的開(kāi)發(fā)至今尚未完全擺脫手工藝(定制)的開(kāi)發(fā)方式軟件
8、本身是復(fù)雜的實(shí)際問(wèn)題的復(fù)雜性程序邏輯結(jié)構(gòu)的復(fù)雜性 軟件成本相當(dāng)昂貴相當(dāng)多的軟件工作涉及到社會(huì)因素27軟件的分類(lèi)按軟件的功能進(jìn)行劃分:系統(tǒng)軟件,支撐軟件,應(yīng)用軟件系統(tǒng)軟件操作系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)設(shè)備驅(qū)動(dòng)程序通信處理程序等支撐軟件文本編輯程序文件格式化程序磁盤(pán)向磁帶數(shù)據(jù)傳輸?shù)某绦虺绦驇?kù)系統(tǒng)支持需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試和支持管理的軟件應(yīng)用軟件商業(yè)數(shù)據(jù)處理軟件工程與科學(xué)計(jì)算軟件計(jì)算機(jī)輔助設(shè)計(jì)制造軟件系統(tǒng)仿真軟件智能產(chǎn)品嵌入軟件醫(yī)療、制藥軟件事務(wù)管理、辦公自動(dòng)化軟件計(jì)算機(jī)輔助教學(xué)軟件28按軟件規(guī)模進(jìn)行劃分:類(lèi)別 參加人員數(shù) 研制期限 源程序行數(shù) 微型 1 14周 0.5k 小型 1 16月
9、1k2k中型 25 12年 5k50k大型 520 23年 50k100k甚大型 1001000 45年 1M(=1000k)極大型 20005000 510年 1M10M29按軟件工作方式劃分: 實(shí)時(shí)處理軟件 分時(shí)軟件 交互式軟件 批處理軟件按軟件服務(wù)對(duì)象的范圍劃分: 項(xiàng)目軟件(面向客戶(hù)) 產(chǎn)品軟件(面向市場(chǎng))按使用的頻度進(jìn)行劃分: 頻度低(安裝軟件、人口普查軟件) 頻度高按軟件失效的影響進(jìn)行劃分: 高可靠性軟件(軍事、航空、醫(yī)療衛(wèi)生等) 一般可靠性軟件30軟件發(fā)展階段程序設(shè)計(jì)階段 50至60年代程序系統(tǒng)階段 60至80年代(這一時(shí)期主要圍繞軟件項(xiàng)目,開(kāi)展了開(kāi)發(fā)模型、支持工具以及開(kāi)發(fā)方法的研
10、究。如:瀑布模型、結(jié)構(gòu)化方法(自頂向下)、結(jié)構(gòu)化語(yǔ)言(Pascal、C、Ada語(yǔ)言)管理方法(費(fèi)用估算、文檔復(fù)審)支持工具( 計(jì)劃、配置管理工具等)軟件工程階段 80年代以后開(kāi)展了有關(guān)軟件生產(chǎn)技術(shù)、軟件復(fù)用技術(shù)、軟件生產(chǎn)管理的研究和實(shí)踐; 提出具有廣泛應(yīng)用前景的面向?qū)ο蠓椒ê拖嚓P(guān)的語(yǔ)言(Smalltalk、C+)近年來(lái),軟件工程的研究從過(guò)程轉(zhuǎn)向產(chǎn)品更加注重程序的開(kāi)發(fā)范型和軟件生產(chǎn)。高智能、自動(dòng)化CASE成為軟件工程技術(shù)研究的熱點(diǎn)31軟件危機(jī)美國(guó)IBM公司在1963年至1966年開(kāi)發(fā)IBM360機(jī)的操作系統(tǒng)。這一項(xiàng)目花了5000人一年的工作量,最多時(shí)有1000人投入開(kāi)發(fā)工作,寫(xiě)出了近100萬(wàn)行源
11、程序。.據(jù)統(tǒng)計(jì),這個(gè)操作系統(tǒng)每次發(fā)行的新版本都是從前一版本中找出1000個(gè)程序錯(cuò)誤而修正的結(jié)果。.這個(gè)項(xiàng)目的負(fù)責(zé)人F. D. Brooks事后總結(jié)了他在組織開(kāi)發(fā)過(guò)程中的沉痛教訓(xùn)時(shí)說(shuō):“.正像一只逃亡的野獸落到泥潭中做垂死的掙扎,越是掙扎,陷得越深,最后無(wú)法逃脫滅頂?shù)臑?zāi)難。.程序設(shè)計(jì)工作正像這樣一個(gè)泥潭,.一批批程序員被迫在泥潭中拼命掙扎,.誰(shuí)也沒(méi)有料到問(wèn)題竟會(huì)陷入這樣的困境.”。IBM360操作系統(tǒng)的歷史教訓(xùn)成為軟件開(kāi)發(fā)項(xiàng)目的典型事例為人們所記取。32軟件危機(jī)定義: 在計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題,包括如何開(kāi)發(fā)軟件、怎樣滿足對(duì)軟件日益增長(zhǎng)的需求、如何維護(hù)數(shù)量不斷膨脹的已有軟
12、件等。表現(xiàn): 對(duì)軟件開(kāi)發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確。實(shí)際成本比估計(jì)成本有可能高出一個(gè)數(shù)量級(jí),實(shí)際進(jìn)度比預(yù)期進(jìn)度拖延幾個(gè)月甚至幾年的現(xiàn)象并不罕見(jiàn)。這些現(xiàn)象降低了軟件開(kāi)發(fā)組織的信譽(yù)。而為了趕進(jìn)度和節(jié)約成本所采取的一些權(quán)宜之計(jì)又往往損害了軟件產(chǎn)品的質(zhì)量,從而不可避免地會(huì)引起用戶(hù)的 不滿。用戶(hù)對(duì)“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。軟件開(kāi)發(fā)人員常常在對(duì)用戶(hù)要求只有模糊的了解,甚至對(duì)所要解決的問(wèn)題還沒(méi)有確切認(rèn)識(shí)的情況下,就倉(cāng)促上陣匆忙著手編寫(xiě)程序。軟件開(kāi)發(fā)人員和用戶(hù)之間的信息交流往往很不充分,“閉門(mén)造車(chē)”必然導(dǎo)致最終的產(chǎn)品不符合用戶(hù)的實(shí)際需要。33軟件產(chǎn)品質(zhì)量往往靠不住。軟件可靠性和質(zhì)量保證技術(shù)還
13、不成熟。軟件常常是不可維護(hù)的。很多程序中的錯(cuò)誤是非常難改正的,實(shí)際上不可能使這些程序適應(yīng)新的硬件環(huán)境,也不能根據(jù)用戶(hù)需要在原有程序基礎(chǔ)上增加新的功能?!翱芍赜玫能浖保╮e-use)仍然是一個(gè)沒(méi)有完全做到的、正在努追求的目標(biāo),人們?nèi)匀辉谥貜?fù)開(kāi)發(fā)類(lèi)似的或者基本類(lèi)似的軟件。軟件通常沒(méi)有適當(dāng)?shù)奈臋n資料,軟件不僅僅是程序,還應(yīng)該有一套完善的文檔資料。這些文檔資料應(yīng)該是在軟件開(kāi)發(fā)過(guò)程中產(chǎn)生出來(lái)的,而且應(yīng)該是和程序代碼相一致的。軟件開(kāi)發(fā)組織的管理人員可以使用這些文檔資料作為“里程碑”(Milestone)來(lái)管理和評(píng)價(jià)軟件開(kāi)發(fā)工程的進(jìn)展?fàn)顩r;軟件開(kāi)發(fā)人員可以利用它們作為通信工具,在軟件開(kāi)發(fā)過(guò)程中準(zhǔn)確地交流信
14、息;對(duì)于維護(hù)人員而言,這些文檔資料更是至關(guān)重要必不可少的,缺乏必要的文檔資料或者文檔資料不合格,必然給軟件開(kāi)發(fā)和維護(hù)帶來(lái)許多嚴(yán)重的困難和問(wèn)題。34軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比重逐年上升。由于電子技術(shù)的不斷發(fā)展硬件成本不斷下降,然而軟件開(kāi)發(fā)所需的軟件成本不斷增加。軟件開(kāi)發(fā)生產(chǎn)效率的提高遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢(shì),軟件產(chǎn)品“供不應(yīng)求”的現(xiàn)象使人類(lèi)不能充分利用現(xiàn)代計(jì)算機(jī)硬件提供的巨大潛力。35問(wèn)題出在哪里? 項(xiàng)目沒(méi)有被很好地理解;計(jì)劃不周,最終導(dǎo)致進(jìn)度拖延。 沒(méi)有充分的文檔資料(documentation)(3)軟件可靠性(reliability)缺少度量的標(biāo)準(zhǔn),質(zhì)量無(wú)法保證。
15、如何保證軟件產(chǎn)品的質(zhì)量,是非常復(fù)雜困難的問(wèn)題,特別對(duì)于規(guī)模龐大的軟件。 軟件難以維護(hù)(maintainability) 、不易升級(jí)(evolvability)36軟件工程 Software Engineering軟件工程定義:Boehm: 運(yùn)用現(xiàn)代科學(xué)技術(shù)知識(shí)來(lái)設(shè)計(jì)并構(gòu)造計(jì)算機(jī)程序及為開(kāi)發(fā)、運(yùn)行和維護(hù)這些程序所必需的相關(guān)文件資料。IEEE 1983: 軟件工程是開(kāi)發(fā)、運(yùn)行、維護(hù)和修復(fù)軟件的系統(tǒng)方法。Fritz Bauer:建立并使用完善的工程化原則,以較經(jīng)濟(jì)的手段獲得能在實(shí)際機(jī)器上有效運(yùn)行的可靠軟件的一系列方法37軟件工程三要素: 方法、工具和過(guò)程軟件工程方法為軟件開(kāi)發(fā)提供了 “如何做” 的技
16、術(shù)軟件工具為軟件工程方法提供了自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境軟件工程過(guò)程定義了: 方法使用的順序 要求交付的文檔資料 為保證質(zhì)量和適應(yīng)變化所需要的管理 軟件開(kāi)發(fā)各個(gè)階段完成的里程碑38軟件工程過(guò)程 軟件工程過(guò)程是為了獲得軟件產(chǎn)品,在軟件工具支持下由軟件工程師完成的一系列軟件工程活動(dòng)。軟件工程過(guò)程包括四種基本的過(guò)程活動(dòng):軟件規(guī)格說(shuō)明:規(guī)定軟件的功能及其運(yùn)行的限制軟件開(kāi)發(fā):產(chǎn)生滿足規(guī)格說(shuō)明的軟件軟件確認(rèn):確認(rèn)軟件能夠完成客戶(hù)提出的要求軟件演進(jìn):為滿足客戶(hù)的變更要求,軟件必須在使用的過(guò)程中演進(jìn)39軟件工程過(guò)程的特性易理解性可見(jiàn)性:每個(gè)過(guò)程活動(dòng)均能以取得明確的結(jié)果告終,使過(guò)程的進(jìn)展對(duì)外可見(jiàn)??芍С中裕阂?/p>
17、于得到計(jì)算機(jī)輔助軟件工程工具的支持??山邮苄裕阂子跒檐浖こ處熃邮芎褪褂???煽啃裕翰粫?huì)出現(xiàn)過(guò)程錯(cuò)誤,或發(fā)現(xiàn)在產(chǎn)品出現(xiàn)故障之前。健壯性:不受意外發(fā)生問(wèn)題的干擾??删S護(hù)性:過(guò)程可隨軟件機(jī)構(gòu)需求的變更或隨認(rèn)定的過(guò)程改進(jìn)而演進(jìn)。速度:從給出規(guī)格說(shuō)明起,就能較快地完成開(kāi)發(fā)而交付。40軟件工程項(xiàng)目的基本目標(biāo)付出較低的開(kāi)發(fā)成本達(dá)到要求的軟件功能取得較好的軟件性能開(kāi)發(fā)的軟件易于移植需要較低的維護(hù)費(fèi)用能按時(shí)完成開(kāi)發(fā)工作,及時(shí)交付使用41軟件工程原理 用分階段的生命周期計(jì)劃嚴(yán)格管理 項(xiàng)目概要計(jì)劃 里程碑計(jì)劃 項(xiàng)目控制計(jì)劃 產(chǎn)品控制計(jì)劃 驗(yàn)證計(jì)劃 運(yùn)行維護(hù)計(jì)劃 堅(jiān)持進(jìn)行階段評(píng)審 實(shí)行嚴(yán)格的產(chǎn)品控制基準(zhǔn)配置管理(Ba
18、seline configuration management)(嚴(yán)格控制更改) 采用現(xiàn)代程序設(shè)計(jì)技術(shù) 結(jié)果應(yīng)能清楚地審查 set standards 開(kāi)發(fā)小組的成員應(yīng)該少而精 1+1 2 承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性42軟件生存周期( Life Cycle)軟件有一個(gè)孕育、誕生、成長(zhǎng)、成熟、衰亡的生存過(guò)程。這個(gè)過(guò)程即為計(jì)算機(jī)軟件的生存期制定計(jì)劃 (Planning)需求分析和定義(Requirement Analysis and Definition) 軟件設(shè)計(jì)( Software Design)程序編寫(xiě)(Coding, Programming)軟件測(cè)試(Testing)運(yùn)行/維護(hù)(Ru
19、nning/Maintenance)軟件生存期六個(gè)步驟:43結(jié)構(gòu)分析設(shè)計(jì)過(guò)程小結(jié)44制定計(jì)劃:確定要開(kāi)發(fā)軟件系統(tǒng)的總目標(biāo)給出功能、性能、可靠性以及接口等方面的要求完成該軟件任務(wù)的可行性研究估計(jì)可利用的資源(計(jì)算機(jī)硬件,軟件,人力等)、成本、效益、開(kāi)發(fā)進(jìn)度制定出完成開(kāi)發(fā)任務(wù)的實(shí)施計(jì)劃,連同可行性研究報(bào)告,提交管理部門(mén)審查需求分析和定義:對(duì)待開(kāi)發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)的定義編寫(xiě)軟件需求說(shuō)明書(shū)或系統(tǒng)功能說(shuō)明書(shū)及初步的系統(tǒng)用戶(hù)手冊(cè)提交管理機(jī)構(gòu)評(píng)審45軟件設(shè)計(jì):概要設(shè)計(jì) 把各項(xiàng)需求轉(zhuǎn)換成軟件的體系結(jié)構(gòu)。結(jié)構(gòu)中每一組成部分都是意義明確的模塊,每個(gè)模塊都和某些需求相對(duì)應(yīng)詳細(xì)設(shè)計(jì) 對(duì)每個(gè)模塊要完成的
20、工作進(jìn)行具體的描述,為源程序編寫(xiě)打下基礎(chǔ)編寫(xiě)設(shè)計(jì)說(shuō)明書(shū),提交評(píng)審。程序編寫(xiě):把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼,即寫(xiě)成以某一種特定程序設(shè)計(jì)語(yǔ)言表示的“源程序清單”寫(xiě)出的程序應(yīng)當(dāng)是結(jié)構(gòu)良好、清晰易讀的,且與設(shè)計(jì)相一致的軟件測(cè)試:單元測(cè)試,查找各模塊在功能和結(jié)構(gòu)上存在的問(wèn)題并加以糾正組裝測(cè)試,將已測(cè)試過(guò)的模塊按一定順序組裝起來(lái)按規(guī)定的各項(xiàng)需求,逐項(xiàng)進(jìn)行有效性測(cè)試,決定已開(kāi)發(fā)的軟件是否合格,能否交付用戶(hù)使用運(yùn)行維護(hù):改正性維護(hù) 運(yùn)行中發(fā)現(xiàn)了軟件中的錯(cuò)誤需要修正適應(yīng)性維護(hù) 為了適應(yīng)變化了的軟件工作環(huán)境,需做適當(dāng)變更完善性維護(hù) 為了增強(qiáng)軟件的功能需做變更46軟件生存期(開(kāi)發(fā))模型(Software
21、 Life Cycle Model)軟件生存期模型直觀地表達(dá)軟件開(kāi)發(fā)全部過(guò)程,明確規(guī)定要完成的主要活動(dòng)和任務(wù)軟件開(kāi)發(fā)基本都需要經(jīng)歷軟件開(kāi)發(fā)過(guò)程中的幾個(gè)步驟但這幾個(gè)步驟具體如何實(shí)施,根據(jù)具體項(xiàng)目不同,也有所區(qū)別制作具體軟件時(shí),開(kāi)發(fā)步驟的具體實(shí)施方法稱(chēng)為軟件生存期模型(軟件開(kāi)發(fā)過(guò)程模型)常見(jiàn)的軟件生存期模型:瀑布模型原型化方法The Spiral Model47 瀑布模型(Waterfall Model)/線性順序模型(The Linear Sequential Model )瀑布模型所有過(guò)程模型的祖宗項(xiàng)目從開(kāi)始到結(jié)束按照一定的順序執(zhí)行瀑布模型是文檔驅(qū)動(dòng)的,各個(gè)階段不連續(xù)也不交叉48瀑布模型瀑布模
22、型也稱(chēng)為 “線性順序模型”將軟件開(kāi)發(fā)過(guò)程中每個(gè)階段都清楚定義了起止點(diǎn),并產(chǎn)生明確的交付成果以傳遞給下一階段每個(gè)階段之間通過(guò)文檔進(jìn)行溝通每個(gè)階段都必需完成全部規(guī)定的任務(wù)(文檔)后才能夠進(jìn)入下一個(gè)階段 可行性研究與計(jì)劃 需求分析 設(shè)計(jì) 開(kāi)發(fā) 測(cè)試 維護(hù) 可行性研究報(bào)告需求說(shuō)明書(shū)設(shè)計(jì)文檔程序測(cè)試報(bào)告49瀑布模型適應(yīng)于什么場(chǎng)合?有何優(yōu)缺點(diǎn)?50特點(diǎn):階段間具有順序性和依賴(lài)性從上一階段接受本階段工作的對(duì)象作為輸入,本階段的工作成果作為輸出傳入下一階段評(píng)估各階段,若本階段工作得到確認(rèn),繼續(xù),否則返回前一階段可以增加反饋線來(lái)表示具有反饋回路的瀑布模型適用場(chǎng)合:當(dāng)有一個(gè)穩(wěn)定的產(chǎn)品定義和很容易被理解的技術(shù)解決方
23、案時(shí),純瀑布模型特別合適當(dāng)你對(duì)一個(gè)定義得很好的版本進(jìn)行維護(hù)或?qū)⒁粋€(gè)產(chǎn)品移植到一個(gè)新的平臺(tái)上,瀑布模型也特別合適。純瀑布模型能夠降低管理費(fèi)用,因?yàn)槟憧梢灶A(yù)先完成所有計(jì)劃。對(duì)于那些容易理解但很復(fù)雜的項(xiàng)目,采用純瀑布模型比較合適,因?yàn)榭梢杂庙樞蚍椒ㄌ幚韱?wèn)題。在質(zhì)量需求高于成本需求和進(jìn)度需求的時(shí)候,它尤為出色。當(dāng)開(kāi)發(fā)隊(duì)伍的技術(shù)力量比較弱或者缺乏經(jīng)驗(yàn)時(shí),瀑布模型更為適合。51缺點(diǎn):純瀑布模型的缺點(diǎn)是在項(xiàng)目開(kāi)始的時(shí)候,在設(shè)計(jì)工作完成前和代碼寫(xiě)出來(lái)前,很難充分描述需求瀑布模型最主要的問(wèn)題是缺乏靈活性。必須在項(xiàng)目開(kāi)始前說(shuō)明全部需求,但這恰恰是非常困難的,因而無(wú)法解決軟件需求不明確或不準(zhǔn)確的問(wèn)題很少軟件真正是線
24、性的,不能很好的支持迭代只有到了整個(gè)項(xiàng)目的后半段時(shí)間,客戶(hù)看不到軟件的模樣。一個(gè)沒(méi)有及時(shí)發(fā)現(xiàn)的錯(cuò)誤,可能導(dǎo)致災(zāi)難52原型化方法(Prototyping)原型是項(xiàng)目系統(tǒng)中的一個(gè)方面或者多個(gè)方面的工作模型適用于用戶(hù)驅(qū)動(dòng)的系統(tǒng)(即需求模糊或隨時(shí)間變化的系統(tǒng))拋棄型原型:用于試驗(yàn)?zāi)承└拍?,試?yàn)完系統(tǒng)將無(wú)用處進(jìn)化型原型:原型系統(tǒng)不斷被開(kāi)發(fā)和被修正,最終它變?yōu)橐粋€(gè)真正的系統(tǒng)。PrototypeModificationFeedback53原型的好處從實(shí)踐中學(xué)習(xí)(Learning by doing)改善的通信改善的用戶(hù)參與使部分已知的需求清晰化展示描述的一致性和完整性可能可以減少文檔減少了維護(hù)成本特征約束(利
25、用工具構(gòu)造原型可以將某些特性落到實(shí)處,而非在紙上寫(xiě)的那樣容易失誤)試驗(yàn)是否能產(chǎn)生期待的結(jié)果54原型法的缺點(diǎn)用戶(hù)有時(shí)誤解了原型的角色,例如他們可能誤解原型應(yīng)該和真實(shí)系統(tǒng)一樣可靠缺少項(xiàng)目標(biāo)準(zhǔn),進(jìn)化原型法有點(diǎn)像編碼修正缺少控制,由于用戶(hù)可能不斷提出新要求,因而原型迭代的周期很難控制額外的花費(fèi):研究結(jié)果表明構(gòu)造一個(gè)原型可能需要10%額外花費(fèi)運(yùn)行效率可能會(huì)受影響原型法要求開(kāi)發(fā)者與用戶(hù)密切接觸,有時(shí)這是不可能的。例如外包軟件。55The Spiral Model 螺旋模型Spiral 模型(Boehm提出)以風(fēng)險(xiǎn)為導(dǎo)向的生命期模型從一個(gè)小范圍的關(guān)鍵中心地帶開(kāi)始尋找風(fēng)險(xiǎn)因素,制定風(fēng)險(xiǎn)控制計(jì)劃,并交付給下一步
26、驟,如此迭代,每次迭代將項(xiàng)目擴(kuò)展到一個(gè)更大的規(guī)模56評(píng)審提交 劃分風(fēng)險(xiǎn)分析原型 1仿真、模型、基準(zhǔn)需求計(jì)劃,生存期計(jì)劃操作概念原型 2風(fēng)險(xiǎn)分析軟件需求需求確認(rèn)開(kāi)發(fā)計(jì)劃風(fēng)險(xiǎn)分析原型 3軟件產(chǎn)品設(shè)計(jì)設(shè)計(jì)確認(rèn)與驗(yàn)證集成與測(cè)試計(jì)劃風(fēng)險(xiǎn)分析可運(yùn)行原型詳細(xì)設(shè)計(jì)單元測(cè)試編碼集成與測(cè)試驗(yàn)收測(cè)試實(shí)現(xiàn)計(jì)劃下一階段開(kāi)發(fā)、驗(yàn)證下一代產(chǎn)品確定目標(biāo)、方案和限定評(píng)估方案,識(shí)別、消除風(fēng)險(xiǎn) 累積成本按步驟推進(jìn)The spiral model57螺旋模型沿著螺線旋轉(zhuǎn),在四個(gè)象限上分別表達(dá)了四個(gè)方面的活動(dòng)制定計(jì)劃確定軟件目標(biāo),選定實(shí)施方案,弄清項(xiàng)目開(kāi)發(fā)的限制條件風(fēng)險(xiǎn)分析分析所選方案,考慮如何識(shí)別和消除風(fēng)險(xiǎn)實(shí)施工程實(shí)施軟件開(kāi)發(fā)客戶(hù)評(píng)
27、估評(píng)價(jià)開(kāi)發(fā)工作,提出修正建議問(wèn)題:有何優(yōu)缺點(diǎn)?58優(yōu)勢(shì):隨著迭代的增加(成本的增加),風(fēng)險(xiǎn)程度隨之降低缺陷:比較復(fù)雜,需要責(zé)任心,專(zhuān)注和管理方面的知識(shí)。59我國(guó)軟件業(yè)的現(xiàn)狀我國(guó)軟件業(yè)的規(guī)模目前,我國(guó)從事軟件開(kāi)發(fā)、研制、銷(xiāo)售、維護(hù)和服務(wù)的軟件企業(yè)有2000家左右,加上兼營(yíng)的企業(yè),總數(shù)大約有10000多家,其中具有自主軟件研發(fā)能力的軟件企業(yè)約5700家,已經(jīng)通過(guò)雙軟認(rèn)定的有2300余家,從事軟件銷(xiāo)售、維護(hù)和服務(wù)的企業(yè)5000多家。在這里面,營(yíng)業(yè)規(guī)模超過(guò)一億元的軟件企業(yè)達(dá)到100家以上,超過(guò)5億元的達(dá)到18家,超過(guò)10億元的達(dá)到12家。602001年,世界軟件產(chǎn)品市場(chǎng)銷(xiāo)售額超過(guò)1865億美元,我國(guó)當(dāng)
28、年的銷(xiāo)售額為285億元人民幣,只占世界市場(chǎng)不到2的份額。 國(guó)內(nèi)軟件市場(chǎng)有限的份額中大部分為國(guó)外軟件廠商所瓜分,國(guó)內(nèi)所開(kāi)發(fā)的軟件產(chǎn)品僅占小部分。2001年我國(guó)軟件銷(xiāo)售總額963億美元,軟件企業(yè)約5000家,從業(yè)人員29萬(wàn)。2001年印度軟件銷(xiāo)售總額1023億美元,軟件企業(yè)約6000家,從業(yè)人員40萬(wàn)。 2001年我國(guó)軟件的出口額僅為7.2億美元,2000年與1999年分別為4億美元及2.5億美元。 印度在軟件出口方面,則一直保持高速的增長(zhǎng)。1990年印度軟件出口只有5000萬(wàn)美元,1999年就達(dá)到了39億美元,2000年達(dá)到了62億美元,而2001年印度軟件出口額為778億美元,已經(jīng)占到了印度全部出口總額的10.5。61印度的軟件業(yè)印度軟件業(yè)能夠這么迅速地發(fā)展起來(lái),除了有政府支持、英語(yǔ)程度、人才儲(chǔ)備等原因外,最重要的是從標(biāo)準(zhǔn)化與產(chǎn)品流程入手,重視管理。印度的軟件開(kāi)發(fā)管理的特點(diǎn)是流程重于項(xiàng)目,流程管理人員獨(dú)立于研發(fā)部門(mén),專(zhuān)門(mén)檢查研發(fā)部門(mén)的開(kāi)發(fā)流程是不是按照既定流程走,如果流程不對(duì),項(xiàng)目肯定就此停止。另外,所謂的項(xiàng)目經(jīng)理一般都是從編碼人員升上來(lái)的,至少有四年以上的經(jīng)驗(yàn),而公司所有的東西(包括草稿)都有文檔,其詳細(xì)文檔要求達(dá)到只有這個(gè)文檔就可以編碼的程度。 于是,印度軟件公司開(kāi)發(fā)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 資金動(dòng)賬提醒制度
- 診所急重癥搶救制度
- 解釋專(zhuān)制主義中央集權(quán)制度
- 融資擔(dān)保公司信息披露制度
- 養(yǎng)老院照護(hù)等級(jí)評(píng)估制度
- 2026北京西城區(qū)中國(guó)人民公安大學(xué)招聘94人備考考試試題附答案解析
- 2026山東濰坊市峽山區(qū)招聘中小學(xué)教師10人參考考試題庫(kù)附答案解析
- 2026中國(guó)科學(xué)院聲學(xué)研究所專(zhuān)項(xiàng)項(xiàng)目管理辦公室崗位招聘2人備考考試試題附答案解析
- 2026重慶兩江新區(qū)人民醫(yī)院宣傳科干事崗位招聘1人參考考試試題附答案解析
- 2026廣東佛山市順德區(qū)勒流新球初級(jí)中學(xué)語(yǔ)文、物理臨聘教師招聘參考考試試題附答案解析
- 綠電直連政策及新能源就近消納項(xiàng)目電價(jià)機(jī)制分析
- 2026屆江蘇省常州市生物高一第一學(xué)期期末檢測(cè)試題含解析
- 2026年及未來(lái)5年市場(chǎng)數(shù)據(jù)中國(guó)高溫工業(yè)熱泵行業(yè)市場(chǎng)運(yùn)行態(tài)勢(shì)與投資戰(zhàn)略咨詢(xún)報(bào)告
- 教培機(jī)構(gòu)排課制度規(guī)范
- 2026年檢視問(wèn)題清單與整改措施(2篇)
- 認(rèn)識(shí)時(shí)間(課件)二年級(jí)下冊(cè)數(shù)學(xué)人教版
- 2026屆陜晉青寧四省高三語(yǔ)文二次聯(lián)考(天一大聯(lián)考)作文題目解析及范文:“避”的抉擇價(jià)值判斷與人生擔(dān)當(dāng)
- 【四年級(jí)】【數(shù)學(xué)】【秋季上】期末家長(zhǎng)會(huì):數(shù)海引航愛(ài)伴成長(zhǎng)【課件】
- 律師掛靠協(xié)議書(shū)
- (2025)意大利多學(xué)科工作組共識(shí)聲明:努南綜合征的多學(xué)科治療
- 車(chē)位使用權(quán)抵債協(xié)議書(shū)
評(píng)論
0/150
提交評(píng)論