軟件工程案例教程(第2版)全套教學(xué)課件_第1頁(yè)
軟件工程案例教程(第2版)全套教學(xué)課件_第2頁(yè)
軟件工程案例教程(第2版)全套教學(xué)課件_第3頁(yè)
軟件工程案例教程(第2版)全套教學(xué)課件_第4頁(yè)
軟件工程案例教程(第2版)全套教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩592頁(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)介

第一章軟件工程綜述全套可編輯PPT課件163第1章軟件工程綜述.pptx第2章軟件過(guò)程.pptx第3章可行性研究.pptx第4章結(jié)構(gòu)化需求分析.pptx第5章結(jié)構(gòu)化軟件設(shè)計(jì).pptx第6章面向?qū)ο蟮男枨蠓治?pptx第7章面向?qū)ο蟮脑O(shè)計(jì).pptx第8章基于構(gòu)件的開發(fā).pptx第9章軟件項(xiàng)目的測(cè)試.pptx第10章軟件實(shí)施、維護(hù)與進(jìn)化.pptx本章主要討論問(wèn)題:?

什么是軟件?軟件有什么特點(diǎn)?? 什么是軟件危機(jī)?為什么會(huì)出現(xiàn)軟件危機(jī)?? 什么是軟件工程?為什么它很重要?? 軟件工程的目標(biāo)是什么?什么是軟件工程三要素?? 什么是軟件工程的多樣性?軟件工程通用原則有哪些?? 了解道德和職業(yè)問(wèn)題對(duì)于軟件工程的重要性。

問(wèn)題1:?

什么是軟件?軟件有什么特點(diǎn)?1.1軟件工程的背景1.1.1軟件及其特性1.軟件

計(jì)算機(jī)軟件——是與計(jì)算機(jī)系統(tǒng)操作有關(guān)的程序、規(guī)程、規(guī)則及其文檔和數(shù)據(jù)的統(tǒng)稱。

軟件由兩部分組成:一是機(jī)器可執(zhí)行的程序和有關(guān)的數(shù)據(jù);二是與軟件開發(fā)、運(yùn)行、維護(hù)、使用和培訓(xùn)有關(guān)的文檔。

通用軟件產(chǎn)品和定制軟件產(chǎn)品1.1軟件工程的背景1.1.1軟件及其特性2.軟件的特點(diǎn)(1)軟件固有的特性復(fù)雜性抽象性依賴性(2)軟件生產(chǎn)特性軟件開發(fā)特性軟件產(chǎn)品形式的特性軟件維護(hù)特性軟件使用特性問(wèn)題2:什么是軟件危機(jī)?為什么會(huì)出現(xiàn)軟件危機(jī)?1.1軟件工程的背景1.1.2軟件危機(jī)最典型“軟件危機(jī)”的項(xiàng)目失敗案例1963—1966年,IBM公司開發(fā)OS360系統(tǒng),共有4000多個(gè)模塊,約1000000條指令,投入5000人/年,耗資數(shù)億美元,結(jié)果還是延期交付。在交付使用后的系統(tǒng)中仍發(fā)現(xiàn)大量(2000個(gè)以上)錯(cuò)誤。該項(xiàng)目負(fù)責(zé)人F.D.Brooks事后總結(jié)了他在開發(fā)過(guò)程中的沉痛教訓(xùn)時(shí)說(shuō):“正像逃亡的野獸落在泥潭中垂死掙扎一樣,越是掙扎,陷得越深。最后無(wú)法逃脫滅頂?shù)臑?zāi)難,……程序設(shè)計(jì)工作正像這樣一個(gè)泥潭,……一批程序員被迫在泥潭中拼命掙扎,……誰(shuí)也沒(méi)料到問(wèn)題竟會(huì)陷入這樣的困境……”

1.1軟件工程的背景1.1.2軟件危機(jī)1.軟件危機(jī)的突出表現(xiàn)(1)軟件生產(chǎn)率低(2)軟件產(chǎn)品常常與用戶的要求不一致(3)軟件規(guī)模的增長(zhǎng),帶來(lái)了復(fù)雜度的增加(4)不可維護(hù)性突出(5)對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)很不準(zhǔn)確(6)軟件文檔不完整、不一致1.1軟件工程的背景1.1.2軟件危機(jī)2.產(chǎn)生軟件危機(jī)的原因(1)軟件獨(dú)有的特點(diǎn)給開發(fā)和維護(hù)帶來(lái)困難(2)軟件人員的錯(cuò)誤認(rèn)識(shí)(3)軟件生產(chǎn)技術(shù)進(jìn)步緩慢(4)軟件維護(hù)成本和難度急劇增加(5)軟件開發(fā)工具自動(dòng)化程度低問(wèn)題3:? 什么是軟件工程?為什么它很重要?1.2軟件工程概述

為了克服“軟件危機(jī)”,1968年在北大西洋公約組織(NATO)召開的計(jì)算機(jī)科學(xué)會(huì)議上,F(xiàn)ritzBauer首先提出“軟件工程”的概念,試圖用工程的方法和管理手段,將軟件開發(fā)納入工程化的軌道,以便開發(fā)出成本低、功能強(qiáng)、可靠性高的軟件產(chǎn)品。1.2.1軟件工程的基本概念

在NATO會(huì)議上,F(xiàn)ritzBauer對(duì)于軟件工程的定義是:“為了經(jīng)濟(jì)地獲得可靠的、能在實(shí)際機(jī)器上高效運(yùn)行的軟件,而建立和使用的健全的工程原則?!睂?duì)于軟件工程,美國(guó)電氣與電子工程師學(xué)會(huì)(IEEE)給出了如下定義。軟件工程是:①將系統(tǒng)化的、規(guī)范化的、可量化的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)中,即將工程化方法應(yīng)用于軟件;②對(duì)于①中所述方法的研究。概括地說(shuō),軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來(lái)開發(fā)與維護(hù)軟件,把經(jīng)過(guò)時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來(lái),以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它,這就是軟件工程。值得注意的是,對(duì)于某個(gè)軟件開發(fā)隊(duì)伍來(lái)說(shuō)可能是“系統(tǒng)化的、規(guī)范的、可量化的”方法,而對(duì)于另外一個(gè)團(tuán)隊(duì)卻可能是負(fù)擔(dān)。因此,我們需要規(guī)范,也需要可適應(yīng)性和靈活性。

問(wèn)題4:軟件工程的目標(biāo)是什么?什么是軟件工程三要素?1.2軟件工程概述1.2.2軟件工程的目標(biāo)

軟件開發(fā)成本較低;

軟件功能能夠滿足用戶的需求;

軟件性能較好;軟件可靠性高;軟件易于使用、維護(hù)和移植;能按時(shí)完成開發(fā)任務(wù),并及時(shí)交付使用。圖1-1軟件工程目標(biāo)之間的關(guān)系1.2軟件工程概述1.2.3軟件工程三要素圖1-2軟件工程層次圖軟件工程的首要問(wèn)題是質(zhì)量問(wèn)題。軟件質(zhì)量可用功能性、可靠性、可用性、效率、可維護(hù)性和可移植性等特性來(lái)評(píng)價(jià)。1.2軟件工程概述1.2.3軟件工程三要素軟件的質(zhì)量作為根基,軟件工程研究的內(nèi)容主要包括過(guò)程、方法、工具這三方面,稱為“軟件工程三要素”。1)軟件工程的基礎(chǔ)是過(guò)程(Process)(1)溝通。(4)構(gòu)建。(2)策劃。(5)部署。(3)建模。(6)進(jìn)化。1.2軟件工程概述1.2.3軟件工程三要素2)軟件工程方法(Method)軟件工程方法為構(gòu)建軟件提供技術(shù)上的解決方法(如何做)。(1)結(jié)構(gòu)化方法。包括:結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)、結(jié)構(gòu)化實(shí)現(xiàn)、結(jié)構(gòu)化維護(hù)等內(nèi)容。(2)面向?qū)ο蠓椒ā0ǎ好嫦驅(qū)ο蠓治?、面向?qū)ο笤O(shè)計(jì)、面向?qū)ο髮?shí)現(xiàn)、面向?qū)ο缶S護(hù)等內(nèi)容。1.2軟件工程概述1.2.3軟件工程三要素3)軟件工程工具(Tool)軟件工程工具是輔助軟件開發(fā)、維護(hù)和管理的軟件。(1)

MicrosoftVisio。(2)

RationalRose。(3)

MicrosoftVSS(VisualSourceSafe)。(4)

WinRunner。(5)

LoadRunner。問(wèn)題5:什么是軟件工程的多樣性?軟件工程通用原則有哪些?1.2軟件工程概述1.2.4軟件工程的多樣性(1)系統(tǒng)軟件(2)獨(dú)立的應(yīng)用軟件(3)嵌入式控制系統(tǒng)(4)以網(wǎng)絡(luò)為中心的交互式應(yīng)用(5)娛樂(lè)系統(tǒng)(6)建模和仿真系統(tǒng)(7)數(shù)據(jù)采集系統(tǒng)(8)人工智能軟件每種類型的軟件都有不同的特征,因此需要使用不同的軟件工程技術(shù)。1.2軟件工程概述1.2.5軟件工程與Web1)

C/S(Client/Server,客戶端/服務(wù)器)結(jié)構(gòu)以C/S結(jié)構(gòu)為基礎(chǔ)的系統(tǒng),通常將數(shù)據(jù)庫(kù)安裝在服務(wù)器端,應(yīng)用程序安裝在客戶端。常見的C/S結(jié)構(gòu)的系統(tǒng)如銀行ATM機(jī)取款系統(tǒng)。圖1-3C/S結(jié)構(gòu)圖1.2軟件工程概述C/S結(jié)構(gòu)的優(yōu)點(diǎn)是:系統(tǒng)安裝在內(nèi)部局域網(wǎng)中,其安全性比較高,系統(tǒng)即時(shí)性比較好,數(shù)據(jù)庫(kù)共享程度高。C/S結(jié)構(gòu)存在的問(wèn)題是:當(dāng)應(yīng)用程序升級(jí)時(shí)需要對(duì)若干臺(tái)計(jì)算機(jī)的應(yīng)用程序同步升級(jí)操作,維護(hù)成本高,如果有計(jì)算機(jī)未進(jìn)行升級(jí)操作,就會(huì)產(chǎn)生應(yīng)用程序版本不同步的問(wèn)題當(dāng)今C/S已不僅僅局限于局域網(wǎng)內(nèi),當(dāng)用戶在移動(dòng)手機(jī)上下載一個(gè)應(yīng)用程序時(shí),手機(jī)就成為了C/S結(jié)構(gòu)的客戶端,每當(dāng)在應(yīng)用程序上進(jìn)行數(shù)據(jù)訪問(wèn)時(shí),請(qǐng)求就會(huì)發(fā)給數(shù)據(jù)庫(kù)服務(wù)器,因此,如支付寶、微信、微博、淘寶等移動(dòng)端的應(yīng)用程序APP都屬于典型的C/S結(jié)構(gòu)。1.2軟件工程概述1.2.5軟件工程與Web2)

B/S(Browse/Server,瀏覽器/服務(wù)器)結(jié)構(gòu)以B/S結(jié)構(gòu)為基礎(chǔ)的系統(tǒng),數(shù)據(jù)庫(kù)和應(yīng)用程序均被安裝在服務(wù)器端,客戶端計(jì)算機(jī)不安裝應(yīng)用程序,而是通過(guò)瀏覽器來(lái)訪問(wèn)服務(wù)器應(yīng)用程序,再由服務(wù)器應(yīng)用程序訪問(wèn)數(shù)據(jù)庫(kù)。常見的B/S結(jié)構(gòu)的系統(tǒng)如新聞瀏覽網(wǎng)站、電子商務(wù)網(wǎng)站等。圖1-4B/S結(jié)構(gòu)圖1.2軟件工程概述B/S結(jié)構(gòu)的優(yōu)點(diǎn)是:應(yīng)用程序和數(shù)據(jù)庫(kù)均被安裝在服務(wù)器端,當(dāng)應(yīng)用程序升級(jí)時(shí),只需對(duì)服務(wù)器端的應(yīng)用程序升級(jí),客戶端計(jì)算機(jī)通過(guò)刷新瀏覽器便可以運(yùn)行最新版本的應(yīng)用程序,因此不存在應(yīng)用程序升級(jí)過(guò)程中版本不同的問(wèn)題。B/S結(jié)構(gòu)存在的問(wèn)題是:由于系統(tǒng)可以建立在廣域網(wǎng)上,其安全性受到威脅,需要面對(duì)目前網(wǎng)絡(luò)上的黑客攻擊、病毒傳播等問(wèn)題,因此必須有良好的安全措施予以保障,如配置防火墻、安裝防病毒軟件等;

思考問(wèn)題:某網(wǎng)站的網(wǎng)頁(yè)、應(yīng)用程序、數(shù)據(jù)均存儲(chǔ)在本地服務(wù)器上,但隨著網(wǎng)站的發(fā)展,網(wǎng)站的用戶越來(lái)越多,數(shù)據(jù)呈幾何倍數(shù)增長(zhǎng),網(wǎng)站性能越來(lái)越差,因此考慮更換服務(wù)器,但是服務(wù)器的價(jià)格昂貴,遠(yuǎn)遠(yuǎn)超過(guò)了網(wǎng)站的盈利,如何解決這個(gè)問(wèn)題?1.2軟件工程概述1.2.5軟件工程與Web3)云計(jì)算云計(jì)算是通過(guò)使計(jì)算分布在大量的分布式計(jì)算機(jī)上,而非本地計(jì)算機(jī)或遠(yuǎn)程服務(wù)器中。它意味著網(wǎng)絡(luò)資源、計(jì)算能力也可以作為一種商品進(jìn)行流通,就像煤氣、水電一樣,取用方便,費(fèi)用低廉。最大的不同在于,它是通過(guò)互聯(lián)網(wǎng)進(jìn)行傳輸?shù)?。圖1-5云計(jì)算的邏輯結(jié)構(gòu)1.2軟件工程概述目前云平臺(tái)所能提供的服務(wù)有:1.用戶可以租用一臺(tái)虛擬服務(wù)器來(lái)發(fā)布自己的網(wǎng)站;2.可以為自己的計(jì)算機(jī)部署某種基礎(chǔ)軟件環(huán)境如操作系統(tǒng)、Java開發(fā)環(huán)境;3.為企業(yè)客戶提供辦公平臺(tái)及應(yīng)用;4.為企業(yè)或客戶提供網(wǎng)絡(luò)安全配置服務(wù);5.提供各種API(ApplicationProgrammingInterface,應(yīng)用程序編程接口)服務(wù);6.數(shù)據(jù)分析、數(shù)據(jù)計(jì)算、數(shù)據(jù)存儲(chǔ)服務(wù)等等。1.2軟件工程概述云技術(shù)的優(yōu)點(diǎn):1.“云”使用了數(shù)據(jù)多副本容錯(cuò)、計(jì)算節(jié)點(diǎn)同構(gòu)可互換等措施來(lái)保障服務(wù)的高可靠性,使用云計(jì)算比使用本地計(jì)算機(jī)可靠。2.云計(jì)算不針對(duì)特定的應(yīng)用,在“云”的支撐下可以構(gòu)造出千變?nèi)f化的應(yīng)用。3.“云”的特殊容錯(cuò)措施可以采用極其廉價(jià)的節(jié)點(diǎn)來(lái)構(gòu)成云。4.“云”的自動(dòng)化集中式管理使大量企業(yè)無(wú)需負(fù)擔(dān)日益高昂的數(shù)據(jù)中心管理成本。5.“云”的通用性使資源的利用率較之傳統(tǒng)系統(tǒng)大幅提升。因此用戶可以充分享受“云”的低成本優(yōu)勢(shì),經(jīng)常只要花費(fèi)幾百美元、幾天時(shí)間就能完成以前需要數(shù)萬(wàn)美元、數(shù)月時(shí)間才能完成的任務(wù)。1.2軟件工程概述云平臺(tái)的缺點(diǎn):云計(jì)算服務(wù)當(dāng)前壟斷在私人機(jī)構(gòu)(企業(yè))手中,云計(jì)算中的數(shù)據(jù)對(duì)于數(shù)據(jù)所有者以外的其他用戶云計(jì)算用戶是保密的,但是對(duì)于提供云計(jì)算的商業(yè)機(jī)構(gòu)而言確實(shí)毫無(wú)秘密可言。對(duì)于政府機(jī)構(gòu)、商業(yè)機(jī)構(gòu)(特別像銀行這樣持有敏感數(shù)據(jù)的商業(yè)機(jī)構(gòu))對(duì)于選擇云計(jì)算服務(wù)應(yīng)保持足夠的警惕。1.2軟件工程概述云平臺(tái)的搭建:云計(jì)算的實(shí)現(xiàn)需要開發(fā)包含前端和后端服務(wù)的體系結(jié)構(gòu)。1.前端包括客戶設(shè)備和應(yīng)用軟件(如瀏覽器),用于訪問(wèn)后端。2.后端包括服務(wù)器和相關(guān)的計(jì)算資源、數(shù)據(jù)存儲(chǔ)系統(tǒng)(如數(shù)據(jù)庫(kù))、服務(wù)器駐留應(yīng)用程序和管理服務(wù)器。1.2軟件工程概述1.2.6軟件工程的通用原則雖然不同類型的軟件采用的開發(fā)過(guò)程和開發(fā)方法不盡相同,但還是有一些軟件工程的基本原則適用于所有類型的軟件系統(tǒng)。第一原則:存在價(jià)值第二原則:有管理的軟件過(guò)程第三原則:可用性和信息安全性第四原則:需求工程第五原則:提前計(jì)劃復(fù)用第六原則:面向未來(lái)問(wèn)題6:了解道德和職業(yè)問(wèn)題對(duì)于軟件工程的重要性。1.2軟件工程概述1.2.7軟件工程人員的職業(yè)道德用軟件工程人員職業(yè)生涯中經(jīng)常會(huì)面臨的艱難的抉擇舉例:場(chǎng)景一:你覺(jué)得一個(gè)軟件項(xiàng)目有問(wèn)題,你會(huì)選擇什么時(shí)機(jī)向管理層報(bào)告呢?如果只是在懷疑,這時(shí)向管理層報(bào)告未免有點(diǎn)敏感;如果時(shí)間拖的過(guò)長(zhǎng),則有可能延誤了解決難題的時(shí)機(jī)。場(chǎng)景二:當(dāng)你的意見和團(tuán)隊(duì)內(nèi)部的觀點(diǎn)甚至是高層領(lǐng)導(dǎo)的決策發(fā)生沖突時(shí),是據(jù)理力爭(zhēng),還是堅(jiān)持原則毅然辭職,或是妥協(xié),哪種方法是最好的呢?場(chǎng)景三:公司負(fù)責(zé)開發(fā)對(duì)安全性要求極高的系統(tǒng),由于時(shí)間緊張而篡改了安全的有效性驗(yàn)證記錄,這時(shí)工程人員的職責(zé)是保守秘密,提醒客戶注意,還是以一定的方式向客戶披露交付的系統(tǒng)可能不安全?ACM、IEEE(電氣和電子工程師協(xié)會(huì))和英國(guó)計(jì)算機(jī)協(xié)會(huì)等組織頒布了職業(yè)行為準(zhǔn)則或職業(yè)道德準(zhǔn)則,凡是加入這些組織的成員必須嚴(yán)格遵守。1.公眾感——軟件工程人員應(yīng)始終與公眾利益保持一致。2.客戶和雇主——軟件工程人員應(yīng)當(dāng)在與公眾利益保持一致的前提下,保證客戶和雇主的最大利益。3.產(chǎn)品——軟件工程人員應(yīng)當(dāng)保證他們的產(chǎn)品及其相關(guān)附件達(dá)到盡可能高的行業(yè)標(biāo)準(zhǔn)。4.判斷力——軟件工程人員應(yīng)當(dāng)具備公正和獨(dú)立的職業(yè)判斷力。5.管理——軟件工程管理者和領(lǐng)導(dǎo)者應(yīng)當(dāng)維護(hù)并倡導(dǎo)合乎道德的有關(guān)軟件開發(fā)和維護(hù)的管理方法。6.職業(yè)感——軟件工程人員應(yīng)當(dāng)弘揚(yáng)職業(yè)正義感和榮譽(yù)感,尊重社會(huì)公眾利益。7.同事——軟件工程人員應(yīng)當(dāng)公平地對(duì)待和協(xié)助每一位同事。8.自己——軟件工程人員應(yīng)當(dāng)畢生學(xué)習(xí)專業(yè)知識(shí),倡導(dǎo)合乎職業(yè)道德的職業(yè)活動(dòng)方式。本章小結(jié)?軟件的基本特性及一些錯(cuò)誤觀念和方法導(dǎo)致了軟件危機(jī)的產(chǎn)生。?軟件工程是一門涉及軟件生產(chǎn)的各個(gè)方面的一門工程學(xué)科。?軟件工程的目標(biāo)是在合理的成本范圍內(nèi),開發(fā)出滿足用戶需求的高質(zhì)量的軟件產(chǎn)品。?軟件工程過(guò)程包括開發(fā)軟件產(chǎn)品過(guò)程中的所有活動(dòng)。軟件過(guò)程中的活動(dòng)主要有溝通、策劃、建模、構(gòu)建、部署、進(jìn)化。?軟件工程方法為構(gòu)建軟件提供技術(shù)上的解決方法,軟件工程的主要方法包括結(jié)構(gòu)化方法和面向?qū)ο蠓椒ā?/p>

本章小結(jié)軟件工程工具是輔助軟件開發(fā)、維護(hù)和管理的軟件,軟件工程的常用工具包括MicrosoftVisio、RationalRose等。?世界上存在很多不同類型的軟件,每一種類型的軟件開發(fā)都需要一種與之相適應(yīng)的軟件工程工具和技術(shù)。?軟件工程的基本原則適用于所有的軟件系統(tǒng),這些基本原則包括存在價(jià)值、有管理的軟件過(guò)程、可用性和信息安全性、需求工程、提前做好復(fù)用計(jì)劃、面向未來(lái)。?軟件工程人員對(duì)軟件工程行業(yè)和整個(gè)社會(huì)負(fù)有責(zé)任,不應(yīng)該只關(guān)心技術(shù)。?職業(yè)協(xié)會(huì)頒布的行為準(zhǔn)則規(guī)定了一系列協(xié)會(huì)成員應(yīng)該遵守的行為標(biāo)準(zhǔn)。第2章軟件過(guò)程本章主要討論問(wèn)題:?什么是軟件過(guò)程??軟件過(guò)程中有哪些通用的框架活動(dòng)(過(guò)程模型)??了解各種類型的軟件過(guò)程模型,它們的優(yōu)點(diǎn)與缺點(diǎn),以及適用的開發(fā)場(chǎng)景。問(wèn)題1:? 什么是軟件過(guò)程?2.1軟件過(guò)程概述在開發(fā)產(chǎn)品或構(gòu)建系統(tǒng)時(shí),遵循一系列可預(yù)測(cè)的步驟(即路線圖)是非常重要的,它有助于及時(shí)交付高質(zhì)量的產(chǎn)品。軟件開發(fā)中所遵循的路線圖就稱為“軟件過(guò)程”。軟件過(guò)程提高了軟件工程活動(dòng)的穩(wěn)定性、可控性和有組織性,但是現(xiàn)代軟件工程方法必須是靈活的,也就是要求軟件工程活動(dòng)、控制及工作產(chǎn)品適合于項(xiàng)目團(tuán)隊(duì)和將要開發(fā)的產(chǎn)品。例如,飛機(jī)航空系統(tǒng)的軟件與網(wǎng)站的建設(shè)可能需要采用兩種截然不同的軟件過(guò)程。2.1軟件過(guò)程概述四種基本的活動(dòng)對(duì)軟件工程來(lái)說(shuō)是必須的,它們也是軟件生命周期中最主要的活動(dòng)。(1)軟件描述。必須定義軟件的功能以及軟件操作上的約束。(2)軟件設(shè)計(jì)和實(shí)現(xiàn)。必須生產(chǎn)符合描述的軟件。(3)軟件有效性驗(yàn)證。軟件必須得到有效性驗(yàn)證,即確保軟件是客戶所想要的。(4)軟件進(jìn)化。軟件必須進(jìn)化以滿足不斷變化的客戶需要。2.1軟件過(guò)程概述2.1.1軟件描述軟件描述主要是解決目標(biāo)系統(tǒng)要“做什么”的問(wèn)題,如果不知道問(wèn)題是什么就試圖解決這個(gè)問(wèn)題,只會(huì)白白浪費(fèi)時(shí)間和金錢,最終得出的結(jié)果很可能是毫無(wú)意義的。

需求工程過(guò)程的目標(biāo)是生成一個(gè)達(dá)成一致意見的需求文檔,定義能滿足客戶需求的系統(tǒng)。

通常文檔中要表達(dá)出兩個(gè)層次的需求:最終用戶和客戶需要高層的用戶需求描述;系統(tǒng)開發(fā)人員需要比較詳細(xì)的系統(tǒng)描述。2.1軟件過(guò)程概述2.1.1軟件描述需求工程過(guò)程有以下四個(gè)主要的階段。(1)可行性研究。(2)需求導(dǎo)出和分析。(3)需求描述。(4)需求有效性驗(yàn)證。需求過(guò)程中的各項(xiàng)活動(dòng)并不是嚴(yán)格按順序進(jìn)行的。在定義和描述期間,需求分析繼續(xù)進(jìn)行,這樣在整個(gè)需求工程過(guò)程中不斷有新的需求出現(xiàn)。因此,分析、定義和描述是交替進(jìn)行的。2.1軟件過(guò)程概述2.1.1軟件描述圖2-1需求工程過(guò)程2.1軟件過(guò)程概述2.1.2軟件設(shè)計(jì)與實(shí)現(xiàn)1.軟件設(shè)計(jì)軟件設(shè)計(jì)主要是解決系統(tǒng)“如何做”的問(wèn)題,軟件設(shè)計(jì)是對(duì)實(shí)現(xiàn)系統(tǒng)的結(jié)構(gòu)、系統(tǒng)的數(shù)據(jù)、系統(tǒng)構(gòu)件間的接口,以及所用的算法的描述。

設(shè)計(jì)人員不可能一次就能完成一個(gè)完整的設(shè)計(jì),這是一個(gè)。在設(shè)計(jì)過(guò)程中要不斷添加設(shè)計(jì)要素和多次反復(fù)的過(guò)程設(shè)計(jì)細(xì)節(jié),并對(duì)先前的設(shè)計(jì)方案進(jìn)行修正。

2.1軟件過(guò)程概述2.1.2軟件設(shè)計(jì)與實(shí)現(xiàn)圖2-2信息系統(tǒng)軟件設(shè)計(jì)過(guò)程的抽象模型2.1軟件過(guò)程概述2.1.2軟件設(shè)計(jì)與實(shí)現(xiàn)信息系統(tǒng)設(shè)計(jì)過(guò)程中的四個(gè)基本活動(dòng)。(1)體系結(jié)構(gòu)設(shè)計(jì)。(2)接口設(shè)計(jì)。(3)構(gòu)件設(shè)計(jì)。(4)數(shù)據(jù)庫(kù)設(shè)計(jì)。

結(jié)構(gòu)化設(shè)計(jì)方法和UML面向?qū)ο蟮脑O(shè)計(jì)方法,都是典型的模型驅(qū)動(dòng)方法,它們依賴于創(chuàng)建系統(tǒng)的圖形模型,模型設(shè)計(jì)得越充分詳細(xì),生成系統(tǒng)的代碼框架越貼合系統(tǒng)需求。2.1軟件過(guò)程概述2.1.2軟件設(shè)計(jì)與實(shí)現(xiàn)1.軟件實(shí)現(xiàn)詳細(xì)的設(shè)計(jì)模型可以極大地減少編碼的工作量,通過(guò)軟件模型可以從一個(gè)設(shè)計(jì)直接得到一個(gè)程序的框架,其中包括定義和實(shí)現(xiàn)界面的代碼。大多數(shù)情況下,開發(fā)人員只需要增加每個(gè)程序構(gòu)件的工作細(xì)節(jié)即可(基于構(gòu)件的開發(fā))。程序設(shè)計(jì)人員要對(duì)自己開發(fā)的程序進(jìn)行測(cè)試,這時(shí)程序中的一些明顯的錯(cuò)誤就會(huì)暴露出來(lái),糾正這些錯(cuò)誤的過(guò)程叫作調(diào)試。2.1軟件過(guò)程概述2.1.3軟件有效性驗(yàn)證軟件有效性驗(yàn)證,是要看系統(tǒng)是否符合它的描述及系統(tǒng)是否符合客戶的的預(yù)期。測(cè)試過(guò)程中的階段包括以下幾個(gè)。(1)構(gòu)件(或單元)測(cè)試。(2)系統(tǒng)測(cè)試。(3)接收測(cè)試。圖2-3測(cè)試各階段2.1軟件過(guò)程概述2.1.3軟件有效性驗(yàn)證當(dāng)定制系統(tǒng)是為特定客戶開發(fā)的,驗(yàn)收測(cè)試有時(shí)稱為“alpha測(cè)試”,使開發(fā)人員和客戶雙方都承認(rèn)交付的系統(tǒng)是滿足最初的需求定義的。當(dāng)一個(gè)系統(tǒng)要作為軟件產(chǎn)品在市場(chǎng)上銷售時(shí),所要進(jìn)行的測(cè)試稱為“beta測(cè)試”?!癰eta測(cè)試”能暴露系統(tǒng)開發(fā)人員無(wú)法預(yù)見的錯(cuò)誤。通過(guò)這個(gè)反饋,系統(tǒng)被修改并且發(fā)布另外一個(gè)測(cè)試版本或正式銷售版本。2.1軟件過(guò)程概述2.1.4軟件進(jìn)化完全從頭開始開發(fā)的系統(tǒng)很少,將軟件系統(tǒng)的開發(fā)和維護(hù)看成是一個(gè)連續(xù)過(guò)程顯得更有意義。軟件進(jìn)化——軟件在其生命周期內(nèi)不斷地隨著需求的變更而變更的進(jìn)化式過(guò)程。

圖2-4軟件進(jìn)化過(guò)程2.1軟件過(guò)程概述2.1.5軟件開發(fā)團(tuán)隊(duì)組成在軟件的開發(fā)過(guò)程中不同的階段由不同職責(zé)的人員負(fù)責(zé)圖2-5所示是常見的信息系統(tǒng)軟件開發(fā)團(tuán)隊(duì)的組織結(jié)構(gòu)。問(wèn)題2:軟件過(guò)程中有哪些通用的框架活動(dòng)(過(guò)程模型)?2.2軟件過(guò)程模型概述軟件過(guò)程模型是一種軟件過(guò)程的抽象表示。為了能高效地的開發(fā)出高質(zhì)量的軟件產(chǎn)品,通常把軟件過(guò)程中各項(xiàng)開發(fā)活動(dòng)的流程用一個(gè)合理的框架——開發(fā)模型來(lái)規(guī)范描述,這就是軟件過(guò)程模型。2.2軟件過(guò)程模型概述2.2.1軟件過(guò)程模型1.瀑布模型瀑布模型(WaterfallModel)又稱為經(jīng)典生命周期(CLassicLifeCycle),它提出了一個(gè)系統(tǒng)的、順序的軟件開發(fā)模型,開發(fā)過(guò)程如瀑布一般從一個(gè)階段到另一個(gè)階段,這個(gè)模型因此以“瀑布模型”聞名。2.2軟件過(guò)程模型概述2.2.1軟件過(guò)程模型V模型瀑布模型的一個(gè)變體稱為V模型(V-model),V模型描述了測(cè)試計(jì)劃同從需求定義、系統(tǒng)設(shè)計(jì)及代碼生成等相關(guān)的動(dòng)作之間的關(guān)系。2.2軟件過(guò)程模型概述在運(yùn)用瀑布模型的過(guò)程中,人們遇到的問(wèn)題包括以下幾個(gè)。(1)隨著項(xiàng)目組工作推進(jìn),變更可能造成混亂。(2)客戶通常難以清楚地描述所有的需求。(3)客戶必須要有耐心,因?yàn)橹挥性陧?xiàng)目接近尾聲時(shí)他們才能得到可執(zhí)行的程序。對(duì)于系統(tǒng)中存在的重大缺陷,如果在可執(zhí)行程序評(píng)審之前沒(méi)有發(fā)現(xiàn),將可能造成慘重?fù)p失。(4)由于任務(wù)之間的依賴性,開發(fā)團(tuán)隊(duì)的一些成員要等待另一些成員工作完成。事實(shí)上,花在等待上的時(shí)間可能超過(guò)花在生產(chǎn)性工作上的時(shí)間。2.2軟件過(guò)程模型概述適合采用瀑布模型的情況:(1)通常發(fā)生在需要對(duì)某個(gè)已經(jīng)存在的系統(tǒng)進(jìn)行明確定義的適應(yīng)性調(diào)整或是增強(qiáng)的時(shí)候(如政府修改了法規(guī),導(dǎo)致財(cái)務(wù)軟件必須進(jìn)行相應(yīng)修改),(2)新的開發(fā)項(xiàng)目,但是需求可以準(zhǔn)確定義和相對(duì)穩(wěn)定的,(3)開發(fā)人員對(duì)目標(biāo)和應(yīng)用領(lǐng)域很熟悉。

由于瀑布模型反映了在其他工程項(xiàng)目中使用的一類過(guò)程的模型,并且在整個(gè)項(xiàng)目中它很容易結(jié)合通用的管理模式進(jìn)行管理,基于該方法的軟件過(guò)程仍然廣泛應(yīng)用于軟件開發(fā)。2.2軟件過(guò)程模型概述2.2.1軟件過(guò)程模型2.增量過(guò)程模型

在初始軟件需求有明確的定義的情況下,迫切需要為用戶迅速提供一套功能有限的軟件產(chǎn)品,給用戶使用并聽取用戶的使用意見和建議,在后續(xù)版本中再進(jìn)行細(xì)化和擴(kuò)展功能,直到產(chǎn)生一個(gè)充分的系統(tǒng)。

在這種條件下,需要選用一種增量的形式生成軟件產(chǎn)品的過(guò)程模型。2.2軟件過(guò)程模型概述增量模型綜合了線性過(guò)程流和并行過(guò)程流的特征。隨著時(shí)間的推移,增量模型在每個(gè)階段都運(yùn)用線性序列。每個(gè)線性序列生產(chǎn)出軟件的可交付增量。運(yùn)用增量模型時(shí),第一個(gè)增量往往是核心產(chǎn)品,也就是滿足了最重要或最緊急的功能需求,客戶使用該核心產(chǎn)品并進(jìn)行仔細(xì)評(píng)估,然后根據(jù)評(píng)估結(jié)果制訂下一個(gè)增量計(jì)劃。2.2軟件過(guò)程模型概述例如,采用增量模型開發(fā)文字處理軟件第一個(gè)增量中提供基本的文件管理、編輯和文檔生成功能;在第二個(gè)增量中提供更為復(fù)雜的編輯和文檔生成功能;在第三個(gè)增量中提供拼寫和語(yǔ)法檢查功能;在第四個(gè)增量中提供高級(jí)頁(yè)面排版功能。2.2軟件過(guò)程模型概述增量式開發(fā)與瀑布模型比較有以下三個(gè)重要優(yōu)點(diǎn)。(1)降低了適應(yīng)用戶需求變更的成本。重新分析和修改文檔的工作量較之瀑布模型要少很多。(2)在開發(fā)過(guò)程中更容易得到用戶對(duì)于已開發(fā)工作的反饋意見。用戶可以評(píng)價(jià)軟件的現(xiàn)實(shí)版本,并可以看到已經(jīng)實(shí)現(xiàn)了多少,方便用戶判斷工程進(jìn)度。(3)更快地交付和部署有用的軟件。用戶可以更早地使用軟件并創(chuàng)造商業(yè)價(jià)值。2.2軟件過(guò)程模型概述增量模型存在一個(gè)很大的問(wèn)題:即伴隨著新的增量的添加,系統(tǒng)結(jié)構(gòu)在逐漸退化。除非投入時(shí)間和金錢在重構(gòu)系統(tǒng)結(jié)構(gòu)上以改善軟件,否則定期的變更會(huì)損壞系統(tǒng)的結(jié)構(gòu)。隨著時(shí)間的推移越往后變更系統(tǒng)越困難,而且成本也將逐漸上升。大型系統(tǒng)需要一個(gè)穩(wěn)定的框架或體系結(jié)構(gòu),而負(fù)責(zé)開發(fā)不同部分的團(tuán)隊(duì)需要根據(jù)體系結(jié)構(gòu)明確制定其職責(zé)。這需要提前制訂計(jì)劃,而不是增量的開發(fā)。2.2軟件過(guò)程模型概述3.構(gòu)件復(fù)用模型經(jīng)過(guò)適當(dāng)?shù)脑O(shè)計(jì)和實(shí)現(xiàn)的類或類的集合也可稱為構(gòu)件。在基于構(gòu)件復(fù)用的軟件開發(fā)中,軟件由構(gòu)件裝配而成,這就如同標(biāo)準(zhǔn)零件裝配汽車一樣。圖2-9構(gòu)件復(fù)用模型的工作流程,以構(gòu)件復(fù)用為驅(qū)動(dòng)。2.2軟件過(guò)程模型概述構(gòu)件復(fù)用模型的優(yōu)點(diǎn):減少了需要開發(fā)的軟件數(shù)量,縮短軟件交付周期,提高軟件的質(zhì)量,降低了開發(fā)風(fēng)險(xiǎn)它的成功主要依賴于有可以使用的、復(fù)用的構(gòu)件,以及集成這些構(gòu)件的系統(tǒng)框架。2.2軟件過(guò)程模型概述2.2.2應(yīng)對(duì)變更在開發(fā)過(guò)程中,商業(yè)和產(chǎn)品需求經(jīng)常發(fā)生變化,這通常意味著已經(jīng)完成的工作要重做,這將直接導(dǎo)致最終產(chǎn)品難以實(shí)現(xiàn)。1.原型模型但是沒(méi)有詳細(xì)定義功能和特性需求有的時(shí)候,客戶定義了軟件的一些基本任務(wù),,而開發(fā)人員可能對(duì)算法的效率、操作系統(tǒng)的適用性和人機(jī)交互的形式等情況并沒(méi)有把握時(shí),在這些情況和類似情況下采用原型開發(fā)模型是最好的解決辦法。2.2軟件過(guò)程模型概述原型的構(gòu)建不一定非要是可執(zhí)行的程序,基于模型系統(tǒng)的用戶界面也可以有效地幫助用戶細(xì)化界面設(shè)計(jì)。(1)拋棄式原型快速建立一個(gè)反映用戶主要需求的原型系統(tǒng),反復(fù)修改獲取用戶真正需求后,原型將被拋棄,后再按線性流程進(jìn)行實(shí)際項(xiàng)目的開發(fā)。2.2軟件過(guò)程模型概述拋棄式原型的優(yōu)點(diǎn):通過(guò)原型準(zhǔn)確獲取用戶需求,在開發(fā)過(guò)程的后續(xù)階段不會(huì)因?yàn)榍捌谛枨箦e(cuò)誤而進(jìn)行較大的返工;開發(fā)人員通過(guò)原型系統(tǒng)已經(jīng)知道系統(tǒng)應(yīng)該做什么,因此設(shè)計(jì)和編碼階段發(fā)生錯(cuò)誤的可能性比較小。而對(duì)于一個(gè)大型復(fù)雜的系統(tǒng),如果不經(jīng)過(guò)分析來(lái)進(jìn)行整體性劃分,想直接用屏幕來(lái)一個(gè)一個(gè)地模擬是很困難的;對(duì)于大量運(yùn)算、邏輯性較強(qiáng)的程序模塊,拋棄式模型很難構(gòu)造出模型供客戶評(píng)價(jià)。拋棄式原型只適用于小型、簡(jiǎn)單、處理過(guò)程比較明確、沒(méi)有大量運(yùn)算和邏輯處理過(guò)程的系統(tǒng)。2.2軟件過(guò)程模型概述(2)進(jìn)化式原型針對(duì)有待開發(fā)的軟件系統(tǒng),先開發(fā)一個(gè)原型系統(tǒng)讓用戶使用,然后根據(jù)用戶使用情況的意見反饋,對(duì)原型系統(tǒng)不斷修改,使它逐步接近并最終達(dá)到開發(fā)目標(biāo)。2.2軟件過(guò)程模型概述進(jìn)化式原型要面臨如下幾個(gè)問(wèn)題。(1)不可能調(diào)整原型以滿足非功能性的要求,如性能、安全性、魯棒性和可靠性需求。(2)開發(fā)過(guò)程中的快速更改必然意味著原型是沒(méi)有文檔的。唯一的設(shè)計(jì)描述就是原型的代碼,這不利于長(zhǎng)期的維護(hù)。(3)原型開發(fā)過(guò)程中的變更可能會(huì)破壞系統(tǒng)的結(jié)構(gòu)。系統(tǒng)的維護(hù)將會(huì)很困難,而且很昂貴。(4)在原型開發(fā)中機(jī)構(gòu)的質(zhì)量標(biāo)準(zhǔn)通常是被放松了的。進(jìn)化式原型是通過(guò)不斷發(fā)布新的軟件版本而使軟件逐步完善的,因此,這種開發(fā)模型特別適合于用戶急需的軟件產(chǎn)品開發(fā)。它能夠快速地向用戶交付可以投入實(shí)際運(yùn)行的軟件成果,并能夠很好地適應(yīng)軟件用戶對(duì)需求規(guī)格的變更。2.2軟件過(guò)程模型概述2.2.2應(yīng)對(duì)變更2.螺旋模型風(fēng)險(xiǎn)驅(qū)動(dòng)軟件過(guò)程框架(螺旋模型)最初是Boehm(1988)提出來(lái)的。螺旋模型是瀑布模型與原型進(jìn)化模型相結(jié)合,并增加了風(fēng)險(xiǎn)分析而建立的一種軟件過(guò)程模型。該模型適合于指導(dǎo)大型軟件項(xiàng)目的開發(fā),它將軟件項(xiàng)目開發(fā)劃分為制訂計(jì)劃、風(fēng)險(xiǎn)分析、實(shí)施開發(fā)及客戶評(píng)估四類活動(dòng)。2.2軟件過(guò)程模型概述圖2-12所示為螺旋模型,項(xiàng)目進(jìn)程沿著螺旋模型旋轉(zhuǎn)制訂計(jì)劃。確定軟件目標(biāo),選定實(shí)施方案,弄清項(xiàng)目開發(fā)限制條件。(2)風(fēng)險(xiǎn)分析。分析所選方案,考慮如何識(shí)別和消除風(fēng)險(xiǎn)。(3)實(shí)施開發(fā)。實(shí)施軟件開發(fā)。(4)用戶評(píng)估。評(píng)價(jià)開發(fā)工作,提出修正建議。2.2軟件過(guò)程模型概述優(yōu)點(diǎn):螺旋模型的優(yōu)越性在于它吸收了“進(jìn)化”的概念,使得開發(fā)人員和用戶對(duì)每一個(gè)演化層出現(xiàn)的風(fēng)險(xiǎn)均有所了解并對(duì)此做出反應(yīng)。缺點(diǎn):但使用該模型需要豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專門知識(shí),對(duì)軟件項(xiàng)目進(jìn)行風(fēng)險(xiǎn)分析也需要費(fèi)用,假如項(xiàng)目風(fēng)險(xiǎn)分析費(fèi)用過(guò)高,甚至超過(guò)了項(xiàng)目的開發(fā)費(fèi)用,顯然就不合適了。一般大型項(xiàng)目才有較高的風(fēng)險(xiǎn),才有進(jìn)行詳細(xì)風(fēng)險(xiǎn)分析的必要。因此,這種模型比較適合大型的軟件項(xiàng)目。2.2軟件過(guò)程模型概述2.2.3Rational統(tǒng)一過(guò)程軟件統(tǒng)一開發(fā)過(guò)程(RatinalUnifiedProcess,RUP)是基于面向?qū)ο蠼y(tǒng)一建模語(yǔ)言(UML)的一種面向?qū)ο蟮能浖^(guò)程模型。RUP是一個(gè)通用的過(guò)程框架,可以用于各種不同類型的軟件系統(tǒng)、各種不同的應(yīng)用領(lǐng)域和不同規(guī)模的項(xiàng)目。RUP的突出特點(diǎn)是由用例驅(qū)動(dòng),以架構(gòu)為核心,采用迭代和增量的開發(fā)策略。2.2軟件過(guò)程模型概述2.2.3Rational統(tǒng)一過(guò)程每次迭代只考慮系統(tǒng)的一部分需求,針對(duì)這部分需求進(jìn)行分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試和部署等工作,每次迭代都是在系統(tǒng)已完成的部分的基礎(chǔ)上進(jìn)行的,每次給系統(tǒng)增加一些新的功能,如此循環(huán)往復(fù)下去,直至完成最終項(xiàng)目。初始階段:建立業(yè)務(wù)模型,業(yè)務(wù)用例,并且確定項(xiàng)目范圍細(xì)化階段:設(shè)計(jì)并確定系統(tǒng)體系結(jié)構(gòu),制訂項(xiàng)目計(jì)劃,確定資源需求構(gòu)造階段:開發(fā)所有構(gòu)件和應(yīng)用程序,把它們集成為客戶需要的產(chǎn)品,并且詳盡測(cè)試所有功能。移交階段:把開發(fā)的產(chǎn)品提交給用戶使用螺旋模型和RUP的區(qū)別RUP每次迭代包含9個(gè)核心工作流程,而螺旋模型只包含4方面的活動(dòng)RUP對(duì)每個(gè)階段內(nèi)若干次迭代過(guò)程完成后所交付增量的具體要求,而螺旋模型沒(méi)有規(guī)定。RUP詳細(xì)描述了不同階段不同迭代過(guò)程在經(jīng)歷9個(gè)核心工作流程時(shí)活動(dòng)內(nèi)容的重點(diǎn)和強(qiáng)度,而螺旋模型沒(méi)有規(guī)定。RUP的二維迭代生命周期結(jié)構(gòu)對(duì)“迭代”開發(fā)方式的體現(xiàn)比螺旋模型更深刻、具體、詳盡和全面,用于指導(dǎo)需求不明確、不穩(wěn)定的項(xiàng)目開發(fā),具有更強(qiáng)的可操作性。2.2軟件過(guò)程模型概述2.3敏捷軟件開發(fā)過(guò)程模型敏捷的價(jià)值觀:

個(gè)體和交互勝過(guò)過(guò)程和工具;

可以工作的軟件勝過(guò)面面俱到的文檔;

客戶合作勝過(guò)合同談判;響應(yīng)變化勝過(guò)遵循計(jì)劃。從產(chǎn)品角度看,敏捷方法適用于需求萌動(dòng)并且快速改變的情況,如果系統(tǒng)有比較高的可靠性、安全性方面的要求,則可能不完全適合。2.2軟件過(guò)程模型概述極限(eXtremeProgramming,XP)編程過(guò)程2.2軟件過(guò)程模型概述1.策劃:策劃活動(dòng)開始于建立一系列描述待開發(fā)軟件的必要特征與功能的“故事”。每個(gè)故事由客戶書寫并置于一張索引卡上,客戶根據(jù)對(duì)應(yīng)特征或功能的全局業(yè)務(wù)價(jià)值標(biāo)明權(quán)值(即優(yōu)先級(jí))。

(1)所有選定故事將在幾周之內(nèi)盡快實(shí)現(xiàn);

(2)具有最高價(jià)值的故事將移到進(jìn)度表的前面并首先實(shí)現(xiàn);

(3)高風(fēng)險(xiǎn)故事將首先實(shí)現(xiàn)。2.2軟件過(guò)程模型概述2.設(shè)計(jì):XP設(shè)計(jì)嚴(yán)格遵循保持簡(jiǎn)潔(KeepItSimple,KIS)原則,使用簡(jiǎn)單而不是復(fù)雜的表述。另外,設(shè)計(jì)為故事提供不多也不少的實(shí)現(xiàn)原則,不鼓勵(lì)額外功能性設(shè)計(jì)。3.編碼:在故事開發(fā)和基本設(shè)計(jì)完成之后,團(tuán)隊(duì)不應(yīng)直接開始編碼,而是開發(fā)一系列用于檢測(cè)本次(軟件增量)發(fā)布的包括所有故事的單元測(cè)試。2.2軟件過(guò)程模型概述4.測(cè)試:在編碼開始之前建立單元測(cè)試是XP方法的關(guān)鍵因素。所建立的單元測(cè)試應(yīng)當(dāng)使用一個(gè)可以自動(dòng)實(shí)施的框架,這種方式支持代碼修改之后即時(shí)的回歸測(cè)試策略。本章小結(jié)?軟件過(guò)程是產(chǎn)生一個(gè)軟件系統(tǒng)的一系列活動(dòng)。軟件模型是這些過(guò)程的抽象表示。?需求工程是開發(fā)軟件描述的過(guò)程。描述的目的是何開發(fā)人員傳達(dá)客戶方對(duì)系統(tǒng)的需求。?設(shè)計(jì)和實(shí)現(xiàn)過(guò)程是將需求描述轉(zhuǎn)換為一個(gè)可運(yùn)行的軟件系統(tǒng)的過(guò)程。系統(tǒng)化的設(shè)計(jì)方法用來(lái)完成這個(gè)轉(zhuǎn)換。?軟件有效性驗(yàn)證是檢查系統(tǒng)是否與它的描述相一致,以及是否符合系統(tǒng)用戶的真正需要的過(guò)程。本章小結(jié)?軟件進(jìn)化是修改已存在的軟件系統(tǒng),以適應(yīng)用戶新的需求的過(guò)程。變更是一個(gè)持續(xù)的過(guò)程,軟件必須在變更過(guò)程中保持可用。?一般軟件過(guò)程模型實(shí)例包括瀑布模型、增量過(guò)程模型、構(gòu)件復(fù)用模型。?能夠應(yīng)對(duì)變更的過(guò)程模型包括拋棄式原型、進(jìn)化式原型、瀑布模型。?Rational統(tǒng)一過(guò)程是新式過(guò)程模型,它創(chuàng)新地將活動(dòng)和階段進(jìn)行了分離。第三章可行性研究本章主要討論問(wèn)題:?

什么是可行性研究的工作目的?? 可行性研究的工作過(guò)程及內(nèi)容是什么?? 可行性研究的基本工具(系統(tǒng)流程圖、數(shù)據(jù)流圖)如何使用?? 什么是成本/效益分析方法?問(wèn)題1:?

什么是可行性研究的工作目的?3.1可行性研究的任務(wù)大型軟件系統(tǒng)的開發(fā)通常是一項(xiàng)耗資多、周期長(zhǎng)、風(fēng)險(xiǎn)大的工程,在進(jìn)行項(xiàng)目開發(fā)之前進(jìn)行可行性研究對(duì)于規(guī)避風(fēng)險(xiǎn)十分必要。可行性研究的目的不是解決問(wèn)題,而是用最小的代價(jià)在最短的時(shí)間內(nèi)確定問(wèn)題“是否能夠解決”。問(wèn)題2:可行性研究的工作過(guò)程及內(nèi)容是什么?3.1可行性研究的任務(wù)可行性研究實(shí)質(zhì)上是在較高層次上以較抽象的方式進(jìn)行的系統(tǒng)分析和設(shè)計(jì)的過(guò)程。在早期階段即判斷系統(tǒng)是否“可行”。1.在問(wèn)題定義階段初步確定的規(guī)模和目標(biāo),如果對(duì)目標(biāo)系統(tǒng)有任何約束和限制,也必須把它們清楚地列舉出來(lái)。在澄清了問(wèn)題定義之后,分析員應(yīng)該導(dǎo)出系統(tǒng)的邏輯模型。然后從系統(tǒng)邏輯模型出發(fā),探索若干種可供選擇的主要解法(即系統(tǒng)實(shí)現(xiàn)方案)。3.1可行性研究的任務(wù)2.對(duì)每種解法都應(yīng)該仔細(xì)研究它的可行性,一般來(lái)說(shuō),至少應(yīng)該從下述三方面研究每種解法的可行性。(1)技術(shù)可行性:現(xiàn)有的技術(shù)能實(shí)現(xiàn)這個(gè)系統(tǒng)嗎?(2)經(jīng)濟(jì)可行性:經(jīng)濟(jì)效益能超過(guò)它的開發(fā)成本嗎?(3)社會(huì)可行性:系統(tǒng)在社會(huì)的法律法規(guī)內(nèi)行得通嗎?3.方案選擇分析員應(yīng)該為每個(gè)可行的解法制定一個(gè)粗略的實(shí)現(xiàn)進(jìn)度。為軟件系統(tǒng)開發(fā)的不同方案進(jìn)行比較評(píng)估。成本和時(shí)間限制,都會(huì)給方案的選擇帶來(lái)局限性。對(duì)于一些合理的方案都應(yīng)加以權(quán)衡考慮。3.2可行性研究的重要性可行性分析案例——投資軟件公司失敗的教訓(xùn)某高校學(xué)生想開發(fā)一套名為Soft3D的圖形系統(tǒng),此系統(tǒng)下至開發(fā)工具,上至應(yīng)用軟件,無(wú)所不包。他從實(shí)驗(yàn)室拉來(lái)一位聰明絕頂?shù)膸煹茏黾夹g(shù)伙伴,一想到Microsoft公司的二維Windows系統(tǒng)即將被Soft3D打擊得狼狽不堪時(shí),他們就樂(lè)不可支,沖勁十足。

到了1998年7月份,他們做了一套既不是科研又不全像商品的軟件,宣傳了幾個(gè)月都沒(méi)有人要。1998年10月份,他用光了30萬(wàn)元的資金,只好關(guān)閉公司。

1.開發(fā)人員的主要錯(cuò)誤

設(shè)計(jì)方案技術(shù)難度很大(有一些是熱門的研究課題),只有30萬(wàn)元資金的小公司根本沒(méi)有財(cái)力與技術(shù)力量去做這種事。以技術(shù)為中心而沒(méi)有以市場(chǎng)為中心去做產(chǎn)品,以為自己喜歡的軟件別人也一定喜歡。結(jié)果做出一個(gè)洋洋灑灑沒(méi)人要的軟件。2.投資方的錯(cuò)誤投資方是個(gè)精明的商人,他把開發(fā)人員的設(shè)計(jì)方案交給美國(guó)的一個(gè)軟件公司分析,結(jié)論是“否定的”。由于開發(fā)人員不懂商業(yè),又像所有單純的學(xué)生那樣容易相信別人。投資方讓他簽訂了不公正的合同,而他竟然向投資方借錢買下本來(lái)就屬于自己的30%技術(shù)股份,投資方在明知Soft3D軟件不能成功的情況下,卻為了占開發(fā)人員的便宜而喪失了應(yīng)有的精明,最終導(dǎo)致雙方都損失。討論該項(xiàng)目失敗的主要原因?軟件的技術(shù)要求太高,當(dāng)前市面上還沒(méi)有成熟的可解決方案,而且他們只有兩個(gè)人,技術(shù)的可行性是不滿足要求的;一套操作系統(tǒng)的的開發(fā)需要龐大的經(jīng)濟(jì)投入,他們只有30萬(wàn)的資金,是很難做到這一點(diǎn)的;他們的開發(fā)完全是圍繞自己的喜好,完全沒(méi)有考慮用戶的需求,任何軟件的開發(fā)都要以用戶為中心,這是唯一不變的宗旨;投資方違背了可行性報(bào)告的結(jié)果“不可行”,還繼續(xù)投資開發(fā),導(dǎo)致這樣的結(jié)果是必然。3.3可行性研究過(guò)程1.確定項(xiàng)目規(guī)模和目標(biāo)2.研究目前正在使用的系統(tǒng)3.建立新系統(tǒng)的高層邏輯模型4.導(dǎo)出和評(píng)價(jià)供選擇的解法5.推薦行動(dòng)方針6.草擬開發(fā)計(jì)劃7.編寫可行性研究報(bào)告問(wèn)題3:可行性研究的基本工具(系統(tǒng)流程圖、數(shù)據(jù)流圖)如何使用?3.4系統(tǒng)流程圖與工作流程系統(tǒng)流程圖幫助分析員了解原有系統(tǒng)的工作流程,或是企業(yè)的手工工作流程,通過(guò)對(duì)流程的了解,為新系統(tǒng)確定要實(shí)現(xiàn)的功能奠定基礎(chǔ)。系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的傳統(tǒng)工具。它的基本思想是用圖形符號(hào)以黑盒子形式描繪組成系統(tǒng)的每個(gè)部件(程序、文檔、數(shù)據(jù)庫(kù)、人工過(guò)程等)。系統(tǒng)流程圖表達(dá)的是數(shù)據(jù)在系統(tǒng)各部件之間流動(dòng)的情況,而不是對(duì)數(shù)據(jù)進(jìn)行加工處理的控制過(guò)程,不是程序流程圖。3.4系統(tǒng)流程圖與工作流程3.4.1流程圖規(guī)范3.4系統(tǒng)流程圖與工作流程當(dāng)需要更具體地描繪一個(gè)物理系統(tǒng)時(shí),還需要使用表3-2中列出的系統(tǒng)符號(hào)3.4系統(tǒng)流程圖與工作流程3.4.2流程圖分析案例某裝配廠有一座存放零件的倉(cāng)庫(kù),倉(cāng)庫(kù)中現(xiàn)有的各種零件的數(shù)量及每種零件的庫(kù)存量臨界值等數(shù)據(jù),記錄在庫(kù)存清單主文件中。當(dāng)倉(cāng)庫(kù)中零件數(shù)量有變化時(shí),應(yīng)該及時(shí)修改庫(kù)存清單主文件,如果哪種零件的庫(kù)存量少于它的庫(kù)存量臨界值,則應(yīng)該報(bào)告給采購(gòu)部門以便定貨,規(guī)定每天向采購(gòu)部門送一次定貨報(bào)告。該裝配廠使用一臺(tái)小型計(jì)算機(jī)處理更新庫(kù)存清單主文件和產(chǎn)生定貨報(bào)告的任務(wù)。零件庫(kù)存量的每一次變化稱為一個(gè)事務(wù),由放在倉(cāng)庫(kù)中的CRT終端輸入到計(jì)算機(jī)中;系統(tǒng)中的庫(kù)存清單程序?qū)κ聞?wù)進(jìn)行處理,更新存儲(chǔ)在磁盤上的庫(kù)存清單主文件,并且把必要的定貨信息寫在磁帶上。最后,每天由報(bào)告生成程序讀一次磁帶,并且打印出定貨報(bào)告。圖3-1所示的系統(tǒng)流程圖描繪了上述系統(tǒng)的概貌3.4系統(tǒng)流程圖與工作流程3.4.3分層面對(duì)復(fù)雜的系統(tǒng)時(shí),一個(gè)比較好的方法是分層次地描繪這個(gè)系統(tǒng),達(dá)到化繁為簡(jiǎn)的目的。首先用一張高層次的系統(tǒng)流程圖描繪系統(tǒng)總體概貌,表明系統(tǒng)的關(guān)鍵功能。然后分別把每個(gè)關(guān)鍵功能擴(kuò)展到適當(dāng)?shù)脑敿?xì)程度,畫在單獨(dú)的一頁(yè)紙上。這種分層次的描繪方法便于閱讀者按從抽象到具體的過(guò)程逐步深入地了解一個(gè)復(fù)雜的系統(tǒng)。3.5數(shù)據(jù)流圖與系統(tǒng)功能數(shù)據(jù)流圖(DataFlowDiagram,DFD)是一種圖形化技術(shù),是系統(tǒng)邏輯功能的圖形表示。數(shù)據(jù)流圖清晰地表達(dá)了數(shù)據(jù)的輸入、處理(功能)、輸出,以及它們之間流動(dòng)的數(shù)據(jù)。即使不是專業(yè)的計(jì)算機(jī)技術(shù)人員也容易理解它,因此是分析員與用戶之間極好的通信工具。設(shè)計(jì)數(shù)據(jù)流圖時(shí)只需考慮系統(tǒng)必須完成的基本邏輯功能,完全不需要考慮怎樣具體地實(shí)現(xiàn)這些功能,所以它也是今后進(jìn)行軟件設(shè)計(jì)的出發(fā)點(diǎn)。3.5數(shù)據(jù)流圖與系統(tǒng)功能3.5.1數(shù)據(jù)流圖規(guī)范數(shù)據(jù)流圖有4中基本符號(hào):正方形表示數(shù)據(jù)的源點(diǎn)或終點(diǎn);圓形矩形代表變換數(shù)據(jù)的處理;開口矩形代表數(shù)據(jù)存儲(chǔ);箭頭表示數(shù)據(jù)流即特定的數(shù)據(jù)流動(dòng)方向。3.5數(shù)據(jù)流圖與系統(tǒng)功能3.5.2數(shù)據(jù)流圖分析案例假設(shè)一家工廠的采購(gòu)部每天需要一張定貨報(bào)表,報(bào)表按零件編號(hào)排序,表中列出所有需要再次定貨的零件。對(duì)于每個(gè)需要再次定貨的零件應(yīng)該列出下述數(shù)據(jù):零件編號(hào),零件名稱,定貨數(shù)量,目前價(jià)格,主要供應(yīng)者,次要供應(yīng)者。

如何產(chǎn)生定貨報(bào)表?通過(guò)放在倉(cāng)庫(kù)中的CRT終端把事務(wù)(零件入庫(kù)或出庫(kù))報(bào)告給定貨系統(tǒng)。當(dāng)某種零件的庫(kù)存數(shù)量少于庫(kù)存量臨界值時(shí)就應(yīng)該再次定貨。3.5數(shù)據(jù)流圖與系統(tǒng)功能系統(tǒng)看作一個(gè)大的加工,然后根據(jù)系統(tǒng)從外界的哪些源接收哪些數(shù)據(jù)流,以及系統(tǒng)哪些數(shù)據(jù)流送到外界的哪些終點(diǎn),就可以畫出軟件系統(tǒng)頂層的數(shù)據(jù)圖:3.5數(shù)據(jù)流圖與系統(tǒng)功能頂層數(shù)據(jù)流圖表現(xiàn)的信息非常有限,下一步應(yīng)該對(duì)頂層數(shù)據(jù)流圖模型進(jìn)行細(xì)化。如圖3-3所示為定貨系統(tǒng)功能級(jí)數(shù)據(jù)流圖:3.5數(shù)據(jù)流圖與系統(tǒng)功能對(duì)功能級(jí)數(shù)據(jù)流圖中描繪的系統(tǒng)主要功能進(jìn)一步細(xì)化:“處理事務(wù)”這個(gè)功能分解為“接收事務(wù)”“更新庫(kù)存清單”和“處理定貨”,定貨系統(tǒng)細(xì)化數(shù)據(jù)流圖如下:3.5數(shù)據(jù)流圖與系統(tǒng)功能3.5.3命名數(shù)據(jù)流圖中每個(gè)成分的命名直接影響數(shù)據(jù)流圖的可理解性,在命名時(shí)應(yīng)注意如下

問(wèn)題。1.為數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))命名名字應(yīng)代表整個(gè)數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))的內(nèi)容,若起名字時(shí)遇到了困難,則很可能是因?yàn)閷?duì)數(shù)據(jù)流圖分解不恰當(dāng)造成的。2.為處理命名先為數(shù)據(jù)流命名,然后為處理命名,名字應(yīng)該反映整個(gè)處理的功能,最好動(dòng)詞+名詞。3.5數(shù)據(jù)流圖與系統(tǒng)功能3.5.4用途數(shù)據(jù)流圖的基本目的是利用它作為交流信息的工具。數(shù)據(jù)流圖的另一個(gè)主要用途是作為分析和設(shè)計(jì)的工具。用系統(tǒng)流程圖描繪一個(gè)系統(tǒng)時(shí),系統(tǒng)的功能和實(shí)現(xiàn)每個(gè)功能的具體方案是混在一起的。應(yīng)該著重描繪系統(tǒng)所完成的功能而不是系統(tǒng)的物理實(shí)現(xiàn)方案。數(shù)據(jù)流圖是實(shí)現(xiàn)這個(gè)目標(biāo)的極好手段。當(dāng)用數(shù)據(jù)流圖輔助物理系統(tǒng)設(shè)計(jì)時(shí),可通過(guò)劃大自動(dòng)化邊界,形成不同的物理系統(tǒng)。問(wèn)題4:什么是成本/效益分析方法?3.6成本/效益分析投資開發(fā)新系統(tǒng)往往要冒一定風(fēng)險(xiǎn),系統(tǒng)的開發(fā)成本可能比預(yù)計(jì)的高,效益可能比預(yù)期的低。在什么情況下投資開發(fā)新系統(tǒng)更劃算呢?成本/效益分析的目的正是要從經(jīng)濟(jì)角度,分析開發(fā)一個(gè)特定的新系統(tǒng)是否劃算,從而幫助客戶組織的負(fù)責(zé)人正確地做出是否投資于這項(xiàng)開發(fā)工程的決定。3.6成本/效益分析3.6.1成本估計(jì)軟件開發(fā)成本主要表現(xiàn)為人力消耗(乘以平均工資則得到開發(fā)費(fèi)用)。下面介紹三種估算技術(shù)。1.代碼行技術(shù)2.任務(wù)分解技術(shù)(1)把軟件開發(fā)工程分解為若干個(gè)相對(duì)獨(dú)立的任務(wù)。(2)分別估計(jì)每個(gè)單獨(dú)的開發(fā)任務(wù)的成本。(3)累加起來(lái)得出軟件開發(fā)工程的總成本。3.自動(dòng)估計(jì)成本技術(shù)3.6成本/效益分析軟件成本除了系統(tǒng)程序的開發(fā)成本,還需要考慮其他項(xiàng)目的費(fèi)用:計(jì)算機(jī)機(jī)房費(fèi)用計(jì)算機(jī)及外圍設(shè)備和計(jì)算機(jī)網(wǎng)絡(luò)的購(gòu)置費(fèi)系統(tǒng)調(diào)試和安裝費(fèi)用系統(tǒng)相關(guān)人員的培訓(xùn)費(fèi)用雇傭人員的人力資源成本一般消耗品費(fèi)用技術(shù)服務(wù)性費(fèi)用3.6成本/效益分析3.6.2成本/效益分析的方法成本/效益分析的第一步是估計(jì)開發(fā)成本、運(yùn)行費(fèi)用和新系統(tǒng)將帶來(lái)的經(jīng)濟(jì)效益。運(yùn)行費(fèi)用取決于系統(tǒng)的操作費(fèi)用(如操作員人數(shù)、工作時(shí)間、消耗的物資等)和維護(hù)費(fèi)用。系統(tǒng)的經(jīng)濟(jì)效益等于因使用新系統(tǒng)而增加的收入加上使用新系統(tǒng)可以節(jié)省的運(yùn)行費(fèi)用。比較新系統(tǒng)的開發(fā)成本和經(jīng)濟(jì)效益,以便從經(jīng)濟(jì)角度判斷這個(gè)系統(tǒng)是否值得投資,但是,投資是現(xiàn)在進(jìn)行的,效益是將來(lái)獲得的,不能簡(jiǎn)單地比較成本和效益,應(yīng)該考慮貨幣的時(shí)間價(jià)值。3.6成本/效益分析1.貨幣的時(shí)間價(jià)值通常用利率的形式表示貨幣的時(shí)間價(jià)值。假設(shè)年利率為i,如果現(xiàn)在存入P元,則n年后可以得到的錢數(shù)為:F=P(1+i)n這也就是P元錢在n年后的價(jià)值。反之,如果n年后能收入F元錢,那么這些錢的現(xiàn)在價(jià)值是:F=P/(1+i)n3.6成本/效益分析例如,修改一個(gè)已有的庫(kù)存清單系統(tǒng),使它能每天送給采購(gòu)員一份定貨報(bào)表。修改已有的庫(kù)存清單程序并且編寫產(chǎn)生報(bào)表的程序,估計(jì)共需5000元;系統(tǒng)修改后能及時(shí)定貨將消除零件短缺問(wèn)題,估計(jì)因此每年可以節(jié)省2500元,5年共可節(jié)省12500元。但是,不能簡(jiǎn)單地把5000元和12500元相比較,因?yàn)榍罢呤乾F(xiàn)在投資的錢,后者是若干年以后節(jié)省的錢。3.6成本/效益分析假定年利率為12%,利用上面計(jì)算貨幣現(xiàn)在價(jià)值的公式可以算出修改庫(kù)存清單系統(tǒng)后每年預(yù)計(jì)節(jié)省的錢的現(xiàn)在價(jià)值,如表3-5所示。3.6成本/效益分析2.投資回收期通常用投資回收期衡量一項(xiàng)開發(fā)工程的價(jià)值。所謂投資回收期就是使累計(jì)的經(jīng)濟(jì)效益等于最初投資所需要的時(shí)間。顯然,投資回收期越短就能越快獲得利潤(rùn),因此這項(xiàng)工程也就越值得投資。例如,修改庫(kù)存清單系統(tǒng)兩年以后可以節(jié)省4225.12元,比最初的投資(5000元)還少774.88元,第三年以后將再節(jié)省1779.45元。774.88/1779.45=0.44,因此,投資回收期是2.44年。3.6成本/效益分析3.純收入衡量工程價(jià)值的另一項(xiàng)經(jīng)濟(jì)指標(biāo)是工程的純收入,也就是在整個(gè)生命周期之內(nèi)系統(tǒng)的累計(jì)經(jīng)濟(jì)效益(折合成現(xiàn)在值)與投資之差。如果純收入小于零,那么這項(xiàng)工程顯然不值得投資。例如,修改庫(kù)存清單系統(tǒng),工程的純收入預(yù)計(jì)是9011.94-5000=4011.94(元)3.6成本/效益分析4.投資回收率設(shè)想把數(shù)量等于投資額的資金存入銀行,每年年底從銀行取回的錢等于系統(tǒng)每年預(yù)期可以獲得的效益,在時(shí)間等于系統(tǒng)壽命時(shí),正好把在銀行中的存款全部取光,那么,年利率等于多少呢?這個(gè)假想的年利率就等于投資回收率。根據(jù)上述條件不難列出下面的方程式:P=F1/(1+j)+F2/(1+j)2+…+Fn/(1+j)n其中:P是現(xiàn)在的投資額;Fi是第i年年底的效益(i=1,2,…,n);n是系統(tǒng)的使用壽命;j是投資回收率。解出這個(gè)高階代數(shù)方程即可求出投資回收率(假設(shè)系統(tǒng)壽命n=5)。例如,上述修改庫(kù)存清單系統(tǒng),工程的投資回收率是41%~42%

。

本章小結(jié)可行性研究的目的是在最短的時(shí)間內(nèi)判斷項(xiàng)目是否可行。?可行性研究首先要弄清項(xiàng)目規(guī)模和目標(biāo),對(duì)現(xiàn)有系統(tǒng)或工作流程進(jìn)行研究,導(dǎo)出目標(biāo)系統(tǒng)的高層邏輯模型,然后分析目標(biāo)系統(tǒng)的技術(shù)、經(jīng)濟(jì)、社會(huì)三方面領(lǐng)域是否可行。?系統(tǒng)流程圖幫助分析員了解原有的系統(tǒng)流程或原有的企業(yè)工作流程。?數(shù)據(jù)流圖是系統(tǒng)邏輯功能的圖形表示,是分析員與用戶之間良好的溝通工具。?成本/效益分析的目的是從經(jīng)濟(jì)角度評(píng)價(jià)開發(fā)一個(gè)新的軟件項(xiàng)目是否可行。第四章結(jié)構(gòu)化需求分析需求很重要對(duì)大多數(shù)人來(lái)說(shuō),若要建造一幢數(shù)百萬(wàn)元的房子,一定會(huì)與建房者詳細(xì)討論各種細(xì)節(jié),他們都明白完工以后的修改會(huì)造成損失,以及變更細(xì)節(jié)的危害性。軟件項(xiàng)目中40%~60%的問(wèn)題都是在需求分析階段埋下的“禍根”。對(duì)于大型和復(fù)雜的軟件系統(tǒng)開發(fā),需要面對(duì)的主要問(wèn)題之一是需求工程。本章主要討論問(wèn)題:需求的定義、層次和分類是什么?需求工程的活動(dòng)包含哪些內(nèi)容?結(jié)構(gòu)化需求分析方法的案例。

問(wèn)題1:需求的定義、層次和分類是什么?4.1需

求4.1.1需求的定義IEEE軟件工程標(biāo)準(zhǔn)詞匯表(1997年)中定義需求如下。(1)用戶解決問(wèn)題或達(dá)到目標(biāo)所需的條件或能力。(2)系統(tǒng)或系統(tǒng)部件要滿足合同、標(biāo)準(zhǔn)、規(guī)范或其他正式規(guī)定文檔所需具有的條件或能力。(3)對(duì)(1)或(2)所描述的條件或能力的文檔化表述。其中,(1)是從用戶角度定義的,(2)是從開發(fā)人員、系統(tǒng)的角度定義的。4.1需

求4.1.2需求的層次需求通常體現(xiàn)為三個(gè)層次:業(yè)務(wù)需求、用戶需求和系統(tǒng)需求。4.1需

求4.1.2需求的層次(1)業(yè)務(wù)需求抽象層次最高的需求稱為業(yè)務(wù)需求,是系統(tǒng)建立的戰(zhàn)略出發(fā)點(diǎn),表現(xiàn)為高層次的目標(biāo),它描述為什么要開發(fā)系統(tǒng)。例如,對(duì)車輛調(diào)度管理系統(tǒng)有業(yè)務(wù)需求BR1。BR1:實(shí)現(xiàn)車輛的統(tǒng)一管理和有效使用。4.1需

求4.1.2需求的層次(2)用戶需求用戶需求就是執(zhí)行實(shí)際工作的用戶對(duì)系統(tǒng)所能完成的具體任務(wù)的期望,描述了系統(tǒng)能夠幫助用戶做些什么。在車輛調(diào)度管理系統(tǒng)中,關(guān)于車輛使用的用戶需求如UR1所示。UR1:在需要使用車輛時(shí),用戶需要填寫一個(gè)車輛使用申請(qǐng)單,然后等待申請(qǐng)單的反饋信息,并根據(jù)反饋信息使用車輛。4.1需

求4.1.2需求的層次(3)系統(tǒng)需求系統(tǒng)需求是用戶對(duì)系統(tǒng)行為的期望,一系列的系統(tǒng)需求聯(lián)系在一起可以幫助用戶完成任務(wù),達(dá)成用戶需求,進(jìn)而滿足業(yè)務(wù)需求。例如,對(duì)用戶需求UR2,可以將之轉(zhuǎn)化為系統(tǒng)需求SR1。UR2:軟件必須提供表達(dá)和訪問(wèn)外部文件的手段,這些外部文件是由其他工具創(chuàng)建的。SR1:①為用戶提供定義外部文件類型的工具。②每種外部文件具有一個(gè)相關(guān)聯(lián)的工具。③每種外部文件類型在界面上用一種專門的圖標(biāo)來(lái)表示。④提供一種工具,使用圖標(biāo)表示由用戶定義的外部文件類型。⑤當(dāng)用戶選擇了一個(gè)外部文件圖標(biāo)時(shí),選擇的效果是將與該外部文件類型相關(guān)聯(lián)的工具啟動(dòng)起來(lái)。4.1需

求4.1.2需求的層次用戶需求和系統(tǒng)需求的不同類型讀者4.1需

求4.1.3需求的分類軟件需求可分為功能需求和非功能需求。1.功能需求(FunctionalRequirement)功能需求包括對(duì)系統(tǒng)應(yīng)該提供的服務(wù)、如何對(duì)輸入做出反應(yīng),以及系統(tǒng)在特定條件下的行為的描述。例如,大學(xué)圖書館系統(tǒng)為學(xué)生和教工從圖書館借閱圖書和文獻(xiàn)提供服務(wù)。下面的兩個(gè)功能需求分別是FR1和FR2。FR1:用戶能從總的數(shù)據(jù)庫(kù)中查詢或者是選擇其中的一個(gè)子集。FR2:系統(tǒng)能提供適當(dāng)?shù)臑g覽器供用戶閱讀館藏文獻(xiàn)。4.1需

求4.1.3需求的分類軟件需求可分為功能需求和非功能需求。2.非功能需求(NonfunctionalRequirement)非功能需求是對(duì)系統(tǒng)提供的服務(wù)或功能給出的約束,包括時(shí)間約束、開發(fā)過(guò)程的約束、標(biāo)準(zhǔn)等。NR1:所有的用戶查詢都必須在10秒內(nèi)完成。NR2:系統(tǒng)應(yīng)該能夠存儲(chǔ)至少10萬(wàn)條銷售記錄。NR3:解釋器每分鐘應(yīng)該至少解析500條沒(méi)有錯(cuò)誤的語(yǔ)句。NR4:系統(tǒng)應(yīng)該允許200個(gè)用戶同時(shí)進(jìn)行正常的工作。NR5:監(jiān)測(cè)到病人異常后,監(jiān)控器必須在0.5秒內(nèi)發(fā)出警報(bào)。NR6:98%的查詢不能超過(guò)10秒。NR7:(最低標(biāo)準(zhǔn))在200個(gè)用戶并發(fā)時(shí),系統(tǒng)不能崩潰;NR7:(一般標(biāo)準(zhǔn))在200個(gè)用戶并發(fā)時(shí),系統(tǒng)應(yīng)該在80%的時(shí)間內(nèi)能正常工作;NR7:(理想標(biāo)準(zhǔn))在200個(gè)用戶并發(fā)時(shí),系統(tǒng)應(yīng)該保持正常的工作狀態(tài)。問(wèn)題2:需求工程的活動(dòng)包含哪些內(nèi)容?4.2需求工程4.2.1需求工程的任務(wù)需求工程有三個(gè)主要任務(wù):(1)需求工程必須說(shuō)明軟件系統(tǒng)將被應(yīng)用的環(huán)境及其目標(biāo),同時(shí)說(shuō)明軟件需要“做什么”和“為什么”需要做。(2)軟件工程必須將目標(biāo)、功能和約束反映到軟件系統(tǒng)中。需求規(guī)格說(shuō)明是需求工程最為重要的成果。(3)需求工程還需要妥善處理目標(biāo)、功能和約束隨著時(shí)間的演化情況。4.2需求工程4.2.2需求工程的活動(dòng)圖需求工程的活動(dòng)4.3需求獲取4.3.1需求獲取中的常見困難1.用戶和開發(fā)人員的背景、立場(chǎng)不同2.普通用戶缺乏概括性、綜合性的表述能力3.用戶存在認(rèn)知困境4.用戶越俎代庖5.缺乏用戶參與4.3需求獲取4.3.2定義項(xiàng)目前景和范圍1.明確問(wèn)題2.發(fā)現(xiàn)業(yè)務(wù)需求P1決策者:生產(chǎn)的廢品過(guò)多。BR1:提供銷售訂單的準(zhǔn)確性,減少因此而產(chǎn)生廢品。BR2:提供銷售訂單的準(zhǔn)確性,在使用后3個(gè)月內(nèi),減少50%因此而產(chǎn)生的廢品。4.3需求獲取4.3.2定義項(xiàng)目前景和范圍3.定義解決方案及系統(tǒng)特性SS1:調(diào)整銷售訂單的格式,加強(qiáng)在各個(gè)環(huán)節(jié)的人工檢查。SS2:由軟件來(lái)分析訂單的各種特征,及早識(shí)別出不準(zhǔn)確的銷售訂單,提交人工處理。圖4-4解決方案SS1的邊界4.3需求獲取4.3.2定義項(xiàng)目前景和范圍4.前景與范圍文檔1業(yè)務(wù)需求1.1應(yīng)用背景1.2業(yè)務(wù)機(jī)遇1.3業(yè)務(wù)目標(biāo)1.4業(yè)務(wù)風(fēng)險(xiǎn)2項(xiàng)目前景2.1前景概述2.2主要特性3項(xiàng)目范圍3.1第一版范圍3.2后續(xù)版本范圍3.3限制與排除4項(xiàng)目環(huán)境4.1操作環(huán)境4.2涉眾4.3項(xiàng)目屬性

詞匯表參考資料附錄4.3需求獲取4.3.3選擇信息的來(lái)源1.涉眾包括用戶、客戶、領(lǐng)域?qū)<?、用戶替代?市場(chǎng)人員、銷售人員)等。2.硬數(shù)據(jù)包括登記表格、單據(jù)、報(bào)表等定量文檔,備忘錄、日志等定性文檔。3.相關(guān)產(chǎn)品包括原有系統(tǒng)、競(jìng)爭(zhēng)產(chǎn)品、協(xié)作產(chǎn)品。4.重要文檔包括原有系統(tǒng)的規(guī)格說(shuō)明、競(jìng)爭(zhēng)產(chǎn)品的規(guī)格說(shuō)明、協(xié)作產(chǎn)品的規(guī)格說(shuō)明、客戶的需求文檔。5.相關(guān)技術(shù)標(biāo)準(zhǔn)和法規(guī)包括相關(guān)法律、法規(guī)及規(guī)章制度,行業(yè)規(guī)范、行業(yè)標(biāo)準(zhǔn),領(lǐng)域參考模型。4.3需求獲取4.3.4需求獲取的方法1.研究資料法2.問(wèn)卷調(diào)查法3.用戶訪談4.實(shí)地觀察法5.原型法4.4需求分析在軟件工程的發(fā)展中,需求分析方法包括:結(jié)構(gòu)化方法和面向?qū)ο蠓椒ā=Y(jié)構(gòu)化方法曾經(jīng)在歷史上起到過(guò)重要的作用,而且目前也仍然在起著重要作用。面向?qū)ο蠓椒ㄊ悄壳肮I(yè)界使用的主流方法。結(jié)構(gòu)化方法和面向?qū)ο蠓椒ㄓ懈髯缘膬?yōu)點(diǎn)和局限性。結(jié)構(gòu)化分析方法包括過(guò)程建模和數(shù)據(jù)建模。4.4需求分析4.4.1過(guò)程建模過(guò)程建模就是分析需求獲取活動(dòng)獲得的信息,發(fā)現(xiàn)系統(tǒng)的功能和其與外界的交互,建立能夠?qū)崿F(xiàn)系統(tǒng)功能的過(guò)程分解結(jié)構(gòu),形成系統(tǒng)的過(guò)程模型,并用圖形的方式將過(guò)程模型描述出來(lái)。過(guò)程建模使用的主要技術(shù)有:上下文圖(ContextDiagram):確定系統(tǒng)的邊界。數(shù)據(jù)流圖(DataFlowDiagram):建立過(guò)程的分解結(jié)構(gòu)。微規(guī)格說(shuō)明(Mini-Specification):描述DFD過(guò)程分解結(jié)構(gòu)中最底層過(guò)程的處理邏輯。數(shù)據(jù)字典(DataDictionary):說(shuō)明系統(tǒng)中涉及的數(shù)據(jù)的結(jié)構(gòu)。4.4需求分析4.4.1過(guò)程建模

數(shù)據(jù)流圖1.基本元素?cái)?shù)據(jù)流圖的基本元素有四種:外部實(shí)體、過(guò)程、數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)。

數(shù)據(jù)流圖示例

數(shù)據(jù)流圖示例4.4需求分析4.4.1過(guò)程建模

數(shù)據(jù)流圖2.規(guī)則①

過(guò)程是對(duì)數(shù)據(jù)的處理,必須有輸入,也必須有輸出,而且輸入數(shù)據(jù)集和輸出數(shù)據(jù)集應(yīng)該存在差異。4.4需求分析4.4.1過(guò)程建模

數(shù)據(jù)流圖2.規(guī)則②數(shù)據(jù)流是必須與過(guò)程產(chǎn)生關(guān)聯(lián)的,它要么是過(guò)程的數(shù)據(jù)輸入,要么是過(guò)程的數(shù)據(jù)輸出。③DFD中所有的元素都應(yīng)該有一個(gè)可以唯一標(biāo)識(shí)自己的名稱。過(guò)程使用動(dòng)詞,外部實(shí)體、數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)使用名詞。4.4需求分析4.4.1過(guò)程建模

數(shù)據(jù)流圖3.分層結(jié)構(gòu)DFD定義了三個(gè)層次類別的DFD圖:上下文圖0層圖N層圖4.4需求分析4.4.1過(guò)程建模

數(shù)據(jù)流圖3.分層結(jié)構(gòu)(1)上下文圖4.4需求分析4.4.1過(guò)程建模

數(shù)據(jù)流圖3.分層結(jié)構(gòu)(2)0層圖4.4需求分析4.4.1過(guò)程建模

數(shù)據(jù)流圖3.分層結(jié)構(gòu)(3)N層圖圖4-12功能分解示意圖4.4需求分析4.4.1過(guò)程建模

數(shù)據(jù)流圖3.分層結(jié)構(gòu)(3)N層圖圖4-13食物訂貨系統(tǒng)的1層圖4.4需求分析4.4.1過(guò)程建模

微規(guī)格說(shuō)明為了充分描述系統(tǒng)功能,需要描述這些原始過(guò)程的處理邏輯,這個(gè)任務(wù)就是通過(guò)利用微規(guī)格說(shuō)明技術(shù)來(lái)實(shí)現(xiàn)。微規(guī)格說(shuō)明是一些用來(lái)描述過(guò)程處理邏輯的技術(shù),主要有三種:①結(jié)構(gòu)化語(yǔ)言②判定表③判定樹4.4需求分析4.4.1過(guò)程建模

微規(guī)格說(shuō)明1.結(jié)構(gòu)化語(yǔ)言【例4-1】學(xué)校關(guān)于獎(jiǎng)勵(lì)制度的規(guī)定是:學(xué)生每學(xué)期已修課程成績(jī)的比率如果優(yōu)秀比率占70%,并且表現(xiàn)優(yōu)良的學(xué)生可以獲得一等獎(jiǎng)學(xué)金,但表現(xiàn)一般的可以獲得二等獎(jiǎng)學(xué)金;如果優(yōu)秀比率占50%以上,并且表現(xiàn)優(yōu)良的學(xué)生可以獲得二等獎(jiǎng)學(xué)金,但表現(xiàn)一般的可以獲得三等獎(jiǎng)學(xué)金。對(duì)上述制度規(guī)定,用結(jié)構(gòu)化語(yǔ)言描述微規(guī)格說(shuō)明如下。4.4需求分析4.4.1過(guò)程建模

微規(guī)格說(shuō)明1.結(jié)構(gòu)化語(yǔ)言計(jì)算某學(xué)生的學(xué)習(xí)成績(jī)優(yōu)秀比率IF優(yōu)秀比率大于70%IF表現(xiàn)優(yōu)良THEN

獲得一等獎(jiǎng)學(xué)金ELSE

獲得二等獎(jiǎng)學(xué)金ENDIFIF成績(jī)優(yōu)秀比率大于50%且小于70%IF表現(xiàn)優(yōu)良THEN

獲得二等獎(jiǎng)學(xué)金ELSE

獲得三等獎(jiǎng)學(xué)金ENDIFENDIF4.4需求分析4.4.1過(guò)程建模

微規(guī)格說(shuō)明2.判定表【例4-2】細(xì)化例4-1給出的獎(jiǎng)勵(lì)條件:學(xué)生每學(xué)期已修課程的比率。優(yōu)秀比率占70%以上,并且中以下所占比率小于15%,而且表現(xiàn)優(yōu)良的學(xué)生可以獲得一等獎(jiǎng)學(xué)金;表現(xiàn)一般的學(xué)生可以獲得二等獎(jiǎng)學(xué)金。優(yōu)秀比率占70%,如果中以下所占比率小于20%,表現(xiàn)優(yōu)良的學(xué)生可以獲得二等獎(jiǎng)學(xué)金;表現(xiàn)一般的學(xué)生可以獲得三等獎(jiǎng)學(xué)金。如果優(yōu)秀比率占50%以上,并且中以下所占比率小于15%,而且表現(xiàn)優(yōu)良的學(xué)生可以獲得二等獎(jiǎng)學(xué)金;表現(xiàn)一般的學(xué)生可以獲得三等獎(jiǎng)學(xué)金。如果中以下所占比率小于20%,表現(xiàn)優(yōu)良的學(xué)生可以獲得三等獎(jiǎng)學(xué)金,表現(xiàn)一般的可以獲得四等獎(jiǎng)學(xué)金。4.4需求分析4.4.1過(guò)程建模

微規(guī)格說(shuō)明2.判定表4.4需求分析4.4.1過(guò)程建模

微規(guī)格說(shuō)明3.判定樹圖4-14用判定樹描述判定邏輯4.4需求分析4.4.1過(guò)程建模

數(shù)據(jù)字典DFD中涉及的數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)也需要進(jìn)行詳細(xì)的說(shuō)明,可以通過(guò)數(shù)據(jù)字典技術(shù)來(lái)完成的。項(xiàng)目?jī)?nèi)容名稱數(shù)據(jù)元素的原始名稱別名數(shù)據(jù)元素的其它名稱使用地點(diǎn)使用該數(shù)據(jù)元素的

位置使用方法該數(shù)據(jù)元素扮演的角色(輸入流、輸出流或是數(shù)據(jù)存儲(chǔ)等)使用范圍該數(shù)據(jù)元素存在的范圍描述對(duì)數(shù)據(jù)元素內(nèi)容的描述單位/格式數(shù)據(jù)元素的數(shù)據(jù)類型表4-5數(shù)據(jù)字典的數(shù)據(jù)元素說(shuō)明格式4.4需求分析4.4.1過(guò)程建模

數(shù)據(jù)字典4.4需求分析4.4.1過(guò)程建模

數(shù)據(jù)字典4.4需求分析4.4.1過(guò)程建模

數(shù)據(jù)字典4.4需求分析4.4.2數(shù)據(jù)建模數(shù)據(jù)建模最常用的方法是實(shí)體關(guān)系圖,也稱為ER圖。ER圖使用實(shí)體、屬性和關(guān)系3個(gè)基本的構(gòu)建單位來(lái)描述數(shù)據(jù)模型。圖4-15ER圖表示法

圖4-16學(xué)生選課ER圖4.4需求分析4.4.2數(shù)據(jù)建模

實(shí)體實(shí)體是描述事物的元素,是需要在系統(tǒng)中收集和存儲(chǔ)的現(xiàn)實(shí)世界事物的類別描述。例如,學(xué)生和課程等。4.4需求分析4.4.2數(shù)據(jù)建模

屬性1.屬性的概念屬性就是可以對(duì)實(shí)體進(jìn)行描述的特征。屬性通常使用名詞作為自己的名稱。4.4需求分析4.4.2數(shù)據(jù)建模

屬性2.標(biāo)識(shí)符ERD為實(shí)體指定一個(gè)屬性或者多個(gè)屬性的組合,這些屬性或者屬性組合就被稱為實(shí)體的標(biāo)識(shí)符(Identifier),又稱為鍵(Key)。一個(gè)實(shí)體可能有多個(gè)鍵。4.4需求分析4.4.2數(shù)據(jù)建模

關(guān)系1.關(guān)系的概念實(shí)體并不是孤立存在的,它們之間相互交互、互相影響,共同支持業(yè)務(wù)任務(wù)的完成。例如,“學(xué)生”與“課程”之間是“選擇”關(guān)系。在關(guān)系的命名上,通常使用動(dòng)詞,表達(dá)關(guān)系中實(shí)體的相互作用。4.4需求分析4.4.2數(shù)據(jù)建模

關(guān)系2.關(guān)系的度數(shù)關(guān)系的度數(shù)(Degree)是指參與關(guān)系的實(shí)體數(shù)量。4.4需求分析4.4.2數(shù)據(jù)建模

關(guān)系3.關(guān)系的基數(shù)①

一對(duì)一(1:1)

一對(duì)多(1:n)

多對(duì)多(m:n)4.4需求分析4.4.2數(shù)據(jù)建模ER圖的創(chuàng)建1.依據(jù)充分描述信息的ER圖創(chuàng)建?!纠?-3】某大學(xué)為了提高學(xué)生對(duì)新技術(shù)的學(xué)習(xí)和理解,為學(xué)生設(shè)立了研討班制度。制度規(guī)定如下:研討班在每個(gè)學(xué)年開始的時(shí)候開設(shè),然后持續(xù)一個(gè)學(xué)年。每個(gè)研討班針對(duì)一個(gè)或幾個(gè)研究方向。每個(gè)研討班由一位或幾位教師主持。在研討班開設(shè)之后,學(xué)生可以根據(jù)支持教師(的姓名)和研討班的方向來(lái)選擇和參加某個(gè)研討班。所有的學(xué)生必須且只能參加一個(gè)研討班的學(xué)習(xí)。研討班時(shí)常會(huì)開展活動(dòng),由教師來(lái)決定活動(dòng)的時(shí)間、地點(diǎn)、主題和做報(bào)告的學(xué)生(的姓名)。每次活動(dòng)時(shí),由一位或多位同學(xué)圍繞活動(dòng)主題做學(xué)習(xí)報(bào)告,交流自己對(duì)新技術(shù)的學(xué)習(xí)心得。每個(gè)學(xué)生一次活動(dòng)最多只能做一個(gè)報(bào)告,但每個(gè)學(xué)生至少會(huì)在一次活動(dòng)中做一個(gè)報(bào)告。教師對(duì)每份活動(dòng)中的學(xué)生報(bào)告進(jìn)行一次點(diǎn)評(píng)和指導(dǎo),提出建議和意見。假設(shè)現(xiàn)在需要開發(fā)一個(gè)系統(tǒng)來(lái)支持研討班制度的貫徹,主要目的是:①

支持研討班制度的開展,為教師和學(xué)生提供一個(gè)課內(nèi)外交流的信息通道和平臺(tái)。②

管理開設(shè)的各個(gè)研討班,記錄研討班的開展情況。4.4需求分析4.4.2數(shù)據(jù)建模ER圖的創(chuàng)建1.依據(jù)充分描述信息的ER圖創(chuàng)建。(1)辨識(shí)實(shí)體圖4-20辨識(shí)實(shí)體的過(guò)程圖4-21初步辨識(shí)的實(shí)體

4.4需求分析4.4.2數(shù)據(jù)建模ER圖的創(chuàng)建1.依據(jù)充分描述信息的ER圖創(chuàng)建。(2)確定實(shí)體的標(biāo)識(shí)符圖4-22確定實(shí)體的標(biāo)識(shí)符4.4需求分析4.4.2數(shù)據(jù)建模ER圖的創(chuàng)建1.依據(jù)充分描述信息的ER圖創(chuàng)建。(3)建立實(shí)體之間的關(guān)系圖4-23建立實(shí)體間的關(guān)系4.4需求分析4.4.2數(shù)據(jù)建模ER圖的創(chuàng)建1.依據(jù)充分描述信息的ER圖創(chuàng)建。(4)添加詳細(xì)的描述信息圖4-24最終的ER圖4.4需求分析4.4.2數(shù)據(jù)建模ER圖的創(chuàng)建2.依據(jù)硬數(shù)據(jù)表單的ER圖創(chuàng)建?!纠?-4】國(guó)內(nèi)特快專遞郵件詳情單EMS是一個(gè)比較復(fù)雜的表單,請(qǐng)依據(jù)復(fù)雜的EMS硬數(shù)據(jù)表單創(chuàng)建ER圖。4.4需求分析4.4.2數(shù)據(jù)建模ER圖的創(chuàng)建2.依據(jù)硬數(shù)據(jù)表單的ER圖創(chuàng)建。(1)分析表單內(nèi)容,確定表單主題圖4-26初始的ER圖

4.4需求分析4.4.2數(shù)據(jù)建模ER圖的創(chuàng)建2.依據(jù)硬數(shù)據(jù)表單的ER圖創(chuàng)建。(2)建立主題之間的關(guān)系圖4-27建立主題之間的關(guān)系4.4需求分析4.4.2數(shù)據(jù)建模ER圖的創(chuàng)建2.依據(jù)硬數(shù)據(jù)表單的ER圖創(chuàng)建。(3)圍繞主題組織表單的項(xiàng)目圖4-28項(xiàng)目的分割4.4需求分析4.4.2數(shù)據(jù)建模ER圖的創(chuàng)建2.依據(jù)硬數(shù)據(jù)表單的ER圖創(chuàng)建。(3)圍繞主題組織表單的項(xiàng)目4.4需求分析4.4.2數(shù)據(jù)建模ER圖的創(chuàng)建2.依據(jù)硬數(shù)據(jù)表單的ER圖創(chuàng)建。(4)補(bǔ)充ER圖的詳細(xì)信息4.4需求分析4.4.3過(guò)程模型與數(shù)據(jù)模型的聯(lián)系在現(xiàn)在的實(shí)現(xiàn)ER圖與過(guò)程模型同步的技術(shù)中,功能/實(shí)體矩陣(Function/EntityMatrix)是一種較為常見的技術(shù)。操作分為創(chuàng)建(C)讀取(R)更新(U)刪除(D)4.4需求分析4.4.4結(jié)構(gòu)化分析的局限性結(jié)構(gòu)化分析方法最大的貢獻(xiàn)是

“告別了那些基于

溫馨提示

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