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

下載本文檔

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

文檔簡介

軟件工程學(xué)教程西安郵電大學(xué)曹小鵬cxp2760@163.comcaoxp件工程學(xué)教程西安郵電大學(xué)1課程簡介課程名稱:軟件工程教 材:《SoftwareEngineering》(英)IanSommerville《軟件工程導(dǎo)論》張海藩教學(xué)方式:授課+項(xiàng)目討論+上機(jī)實(shí)習(xí) 課時(shí)安排:32+16考試類別:閉卷考試

參考教材:

《軟件工程——實(shí)踐者之路》(原名:SoftwareEngineering–APractitioner’sApproach,SixthEdition),RogerS.Pressman,清華大學(xué)出版社2006軟件工程學(xué)教程陳明科學(xué)出版社軟件工程實(shí)踐者的研究方法黃柏素等譯機(jī)械軟件工程鄧良松等西安電子科技大學(xué)出版社課程簡介課程名稱:軟件工程2第1章軟件工程概述1.1計(jì)算機(jī)軟件概念1.2

軟件的發(fā)展1.3軟件危機(jī)與軟件問題1.4軟件工程與開發(fā)準(zhǔn)則1.5軟件生命周期1.6軟件開發(fā)模型第1章軟件工程概述1.1計(jì)算機(jī)軟件概念31.1.1

計(jì)算機(jī)軟件軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合程序是按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)文檔是與程序開發(fā),維護(hù)和使用有關(guān)的圖文材料1.1計(jì)算機(jī)軟件概念1.1.1計(jì)算機(jī)軟件1.1計(jì)算機(jī)軟件概念41.1.2軟件的特點(diǎn)軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體。因而它具有抽象性在軟件的運(yùn)行和使用期間,沒有硬件那樣的機(jī)械磨損,老化問題軟件的生產(chǎn)與硬件不同,在它的開發(fā)過程中沒有明顯的制造過程,軟件維護(hù)困難1.1.2軟件的特點(diǎn)軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體51.1.2軟件的特點(diǎn)(2)軟件的開發(fā)和運(yùn)行常受到計(jì)算機(jī)系統(tǒng)的限制,對計(jì)算機(jī)系統(tǒng)有著不同程度的依賴性軟件的開發(fā)至今尚未完全擺脫手工藝的開發(fā)方式軟件本身是復(fù)雜的,相當(dāng)多的軟件工作涉及到社會因素實(shí)際問題的復(fù)雜性程序邏輯結(jié)構(gòu)的復(fù)雜性軟件成本相當(dāng)昂貴1.1.2軟件的特點(diǎn)(2)軟件的開發(fā)和運(yùn)行常受到計(jì)算機(jī)系統(tǒng)的61.1.3軟件與硬件的關(guān)系硬件的故障率曲線故障率生命初期“磨損”后軟件的故障率曲線故障率時(shí)間理想曲線實(shí)際曲線修改副作用1.1.3軟件與硬件的關(guān)系硬件的故障率曲線故障71.1.4軟件分類1、按功能進(jìn)行劃分:(1)系統(tǒng)軟件:能夠控制計(jì)算機(jī)系統(tǒng)各部件(軟硬件)協(xié)調(diào)、高效地工作和進(jìn)程處理、資源共享管理等操作系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)設(shè)備驅(qū)動程序通信處理程序等1.1.4軟件分類1、按功能進(jìn)行劃分:8(2)支撐軟件工具軟件,它幫助軟件開發(fā)人員開發(fā)自己的軟件產(chǎn)品文本編輯程序文件格式化程序磁盤向磁帶向數(shù)據(jù)傳輸?shù)某绦虺绦驇煜到y(tǒng)支持需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試和支持管理的軟件(2)支撐軟件工具軟件,它幫助軟件開發(fā)人員開發(fā)自己的軟件產(chǎn)品9為特定的應(yīng)用目的而開發(fā)的服務(wù)性軟件

商業(yè)數(shù)據(jù)處理軟件工程與科學(xué)計(jì)算軟件計(jì)算機(jī)輔助設(shè)計(jì)/制造軟件系統(tǒng)仿真軟件智能產(chǎn)品嵌入軟件醫(yī)療、制藥軟件事務(wù)管理、辦公自動化軟件計(jì)算機(jī)輔助教學(xué)軟件(3)應(yīng)用軟件(3)應(yīng)用軟件10類別參加人員數(shù) 研制期限源程序行數(shù)

微型

1 1~4周0.5k

小型

1 1~6月1k~2k中型

2~5 1~2年5k~50k大型

5~20 2~3年50k~100k甚大型

100~10004~5年

1M(=1000k)極大型

2000~50005~10年1M~10M 2、按軟件規(guī)模進(jìn)行劃分2、按軟件規(guī)模進(jìn)行劃分11只是一個(gè)人,在幾天之內(nèi)完成的軟件。寫出的程序不到5百行語句,僅供個(gè)人專用。通常這種小題目無需做嚴(yán)格的分析,也不必要有一套完整的設(shè)計(jì)、測試資料。不過這并不是說可以隨便地不講任何方法地做。事實(shí)說明,即使這樣小的題目,如果經(jīng)過一定的分析、系統(tǒng)設(shè)計(jì)、結(jié)構(gòu)化編碼以及有步驟地測試,肯定也是非常有益的。(1)微型只是一個(gè)人,在幾天之內(nèi)完成的軟件。寫出的程序不到5百行語句,12(2)小型一個(gè)人半年之內(nèi)完成的2千行以內(nèi)的程序。例如,數(shù)值計(jì)算問題或是數(shù)據(jù)處理問題就是這種規(guī)模的課題。這種程序通常沒有與其它程序的接口。但需要按一定的標(biāo)準(zhǔn)化技術(shù)、正規(guī)的資料書寫以及定期的系統(tǒng)審查。只是沒有大題目那樣嚴(yán)格。(2)小型一個(gè)人半年之內(nèi)完成的2千行以內(nèi)的程序。13(3)中型5個(gè)人以內(nèi)在一年多時(shí)間里完成的5千到5萬行的程序。這種課題開始出現(xiàn)軟件人員之間、軟件人員與用戶之間的聯(lián)系、協(xié)調(diào)的配合關(guān)系問題。因而計(jì)劃、資料書寫以及技術(shù)審查需要比較嚴(yán)格地進(jìn)行。這類軟件課題比較普遍,許多應(yīng)用程序和系統(tǒng)程序就是這樣的規(guī)模。在開發(fā)中使用系統(tǒng)的軟件工程方法是完全必要的,這對提高軟件產(chǎn)品質(zhì)量和程序人員的工作效率起著重要的作用。(3)中型5個(gè)人以內(nèi)在一年多時(shí)間里完成的5千到5萬行的程序。14(4)大型5至10個(gè)人在兩年多的時(shí)間里完成的5萬到10萬行的程序。例如編譯程序、小型分時(shí)系統(tǒng)、應(yīng)用軟件包、實(shí)時(shí)控制系統(tǒng)等很可能是這種軟件。參加工作的軟件人員需要按二級管理,例如劃分成若干小組,每組5人以下為好。在任務(wù)完成過程中,人員調(diào)整往往不可避免。因此會出現(xiàn)對新手的培訓(xùn)和逐步熟悉工作的問題。對于這樣規(guī)模的軟件,采用統(tǒng)一的標(biāo)準(zhǔn),實(shí)行嚴(yán)格的審查是絕對必要的。由于軟件的規(guī)模龐大以及問題的復(fù)雜性,往往會在開發(fā)的過程中出現(xiàn)一些事先難于做出估計(jì)的不測事件。(4)大型5至10個(gè)人在兩年多的時(shí)間里完成的5萬到10萬行的15(5)甚大型100至1000人參加用4到5年時(shí)間完成的具有100萬行程序的軟件項(xiàng)目。這種甚大型項(xiàng)目可能會劃分成若干個(gè)子項(xiàng)目,每一個(gè)子項(xiàng)目都是一個(gè)大型軟件。子項(xiàng)目之間具有復(fù)雜的接口。例如,實(shí)時(shí)處理系統(tǒng)、遠(yuǎn)程通信系統(tǒng)、多任務(wù)系統(tǒng)、大型操作系統(tǒng)、大型數(shù)據(jù)庫管理系統(tǒng)、軍事指揮系統(tǒng)通?,F(xiàn)有這樣的規(guī)模。很顯然,這類問題沒有軟件工程方法的支持,它的開發(fā)工作是不可想象的。(5)甚大型100至1000人參加用4到5年時(shí)間完成的具有116(6)極大型2000人到5000人參加,10年內(nèi)完成的1000萬行以內(nèi)的程序。這類軟件很少見,往往是軍事指揮、彈道導(dǎo)彈防御系統(tǒng)。(6)極大型2000人到5000人參加,10年內(nèi)完成的100173、按工作方式劃分實(shí)時(shí)處理軟件:指在事件或數(shù)據(jù)產(chǎn)生時(shí)立即進(jìn)行處理分時(shí)軟件:在多個(gè)用戶在聯(lián)機(jī)情況下同時(shí)要求系統(tǒng)對其進(jìn)行處理時(shí),系統(tǒng)將處理機(jī)時(shí)間輪流分配給各用戶,使用戶感到系統(tǒng)僅為自己服務(wù)交互式軟件:可通過各種用戶界面實(shí)現(xiàn)人機(jī)通信批處理軟件:將一組作業(yè)或一批數(shù)據(jù)按要求的順序逐個(gè)處理,直至全部作業(yè)處理完畢3、按工作方式劃分實(shí)時(shí)處理軟件:指在事件或數(shù)據(jù)產(chǎn)生時(shí)立即進(jìn)行18(1)項(xiàng)目軟件,也稱定制軟件是受某個(gè)特定客戶(或少數(shù)客戶)的委托,由一個(gè)或多個(gè)軟件開發(fā)機(jī)構(gòu)在合同的約束下開發(fā)出來的軟件。例如軍用防空指揮系統(tǒng)、衛(wèi)星控制系統(tǒng)的軟件就屬于這一類。這類項(xiàng)目軟件中有的軟件帶有試驗(yàn)研究性質(zhì),項(xiàng)目完成后根據(jù)需要可能在此基礎(chǔ)上做進(jìn)一步開發(fā)。為取得客戶的委托項(xiàng)目,軟件開發(fā)機(jī)構(gòu)的質(zhì)量管理、技術(shù)實(shí)力、開發(fā)經(jīng)驗(yàn)以及履行合同的信譽(yù)成為受到重視的問題。3、按服務(wù)對象范圍劃分(1)項(xiàng)目軟件,也稱定制軟件3、按服務(wù)對象范圍劃分19(2)產(chǎn)品軟件是由軟件開發(fā)機(jī)構(gòu)開發(fā)出來直接提供給市場,或是為千百個(gè)用戶服務(wù)的軟件。這是一些服務(wù)于多個(gè)目的及多個(gè)用戶的軟件。例如,文字處理軟件、財(cái)務(wù)處理軟件、人事管理軟件等。由于要參與市場競爭,其功能、使用性能以及培訓(xùn)和售后服務(wù)顯得尤為重要。(2)產(chǎn)品軟件是由軟件開發(fā)機(jī)構(gòu)開發(fā)出來直接提供給市場,或是為201.2軟件的發(fā)展隨著計(jì)算機(jī)硬件性能的極大提高和計(jì)算機(jī)體系結(jié)構(gòu)的不斷變化,計(jì)算機(jī)軟件系統(tǒng)更加成熟和更為復(fù)雜,從而促使計(jì)算機(jī)軟件的角色發(fā)生了巨大的變化,其發(fā)展歷史大致可以分為如圖所示的四個(gè)階段。1.2軟件的發(fā)展隨著計(jì)算機(jī)硬件性能的極大提高和計(jì)算機(jī)體211.2軟件的發(fā)展早期(程序設(shè)計(jì)階段): 【時(shí)間】:20世紀(jì)50年代初期至60年代中期 【特點(diǎn)】:硬件已經(jīng)通用化,而軟件的生產(chǎn)卻是個(gè)體化。軟件產(chǎn)品為專用軟件,規(guī)模較小,功能單一,開發(fā)者即使用者;軟件只有程序,無文檔;軟件設(shè)計(jì)在人們的頭腦中完成,形成了錯(cuò)誤觀念“軟件=程序”?!镜湫图夹g(shù)】:面向批處理、自定義軟件1.2軟件的發(fā)展早期(程序設(shè)計(jì)階段):221.2軟件的發(fā)展第二階段(程序系統(tǒng)階段):【時(shí)間】:20世紀(jì)60年代中期至70年代末期【特點(diǎn)】:多道程序設(shè)計(jì)技術(shù)、多用戶系統(tǒng)、人機(jī)交互式技術(shù)、實(shí)時(shí)系統(tǒng)和第一代數(shù)據(jù)庫管理系統(tǒng)的出現(xiàn),使得計(jì)算機(jī)應(yīng)用得到迅速。出現(xiàn)了專門從事軟件開發(fā)的“軟件作坊”,軟件作為產(chǎn)品得到了廣泛應(yīng)用。但在軟件業(yè)空前繁榮的同時(shí),原始的開發(fā)與維護(hù)方法陷入了極端困境,“軟件危機(jī)”產(chǎn)生?!镜湫图夹g(shù)】:多用戶、實(shí)時(shí)、數(shù)據(jù)庫、軟件產(chǎn)品1.2軟件的發(fā)展第二階段(程序系統(tǒng)階段):231.2軟件的發(fā)展第三階段(軟件工程階段): 【時(shí)間】:20世紀(jì)70年代中期至80年代中期【特點(diǎn)】:微處理器的出現(xiàn)和廣泛應(yīng)用,使得計(jì)算機(jī)真正成為大眾化的東西。以軟件的產(chǎn)品化、系列化、工程化和標(biāo)準(zhǔn)化為特征的軟件產(chǎn)業(yè)發(fā)展起來,軟件開發(fā)有了可以遵循的軟件工程化的設(shè)計(jì)準(zhǔn)則、方法和標(biāo)準(zhǔn)?!镜湫图夹g(shù)】:分布式系統(tǒng)、廣域網(wǎng)和局域網(wǎng)、低成本的硬件、嵌入“智能”1.2軟件的發(fā)展第三階段(軟件工程階段):241.2軟件的發(fā)展第四階段:【時(shí)間】:20世紀(jì)80年代中期至今【特點(diǎn)】:計(jì)算機(jī)的發(fā)展不再著重與單臺計(jì)算機(jī)和計(jì)算機(jī)程序、而是針對計(jì)算機(jī)和軟件的綜合應(yīng)用。由復(fù)雜的操作系統(tǒng)控制的PC機(jī)、廣域網(wǎng)、局域網(wǎng)、Internet,配合以先進(jìn)的軟件應(yīng)用已經(jīng)成為標(biāo)準(zhǔn)。面向?qū)ο蟮拈_發(fā)方法在許多領(lǐng)域迅速取代了傳統(tǒng)的軟件開發(fā)方法。【典型技術(shù)】:強(qiáng)大的桌面系統(tǒng)、面向?qū)ο蠹夹g(shù)專家系統(tǒng)、人工神經(jīng)網(wǎng)絡(luò)、網(wǎng)絡(luò)計(jì)算機(jī)1.2軟件的發(fā)展第四階段:251.3軟件危機(jī)與軟件問題1.3.1軟件危機(jī)軟件總是超出預(yù)算、落后于進(jìn)度表,而且不可靠在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。軟件受其自身特點(diǎn)的影響,生產(chǎn)過程不象硬件那樣規(guī)范,受人的因素和外界影響很大,在軟件生產(chǎn)的各階段都會引入不同程度的錯(cuò)誤,造成不能預(yù)期完成任務(wù),致使成本上升,甚至導(dǎo)致軟件失敗1.3軟件危機(jī)與軟件問題1.3.1軟件危機(jī)261.3.2軟件危機(jī)的表現(xiàn)(1)軟件開發(fā)和維護(hù)費(fèi)用急劇上升(2)不重視文檔資料(3)產(chǎn)品質(zhì)量不可靠(4)軟件產(chǎn)品成本高于硬件產(chǎn)品(5)供需失配1.3.2軟件危機(jī)的表現(xiàn)(1)軟件開發(fā)和維護(hù)費(fèi)用急劇上升271.3.3軟件危機(jī)的原因一方面是與軟件本身的特點(diǎn)有關(guān);另一方面軟件開發(fā)和維護(hù)的方法不正確:忽視軟件開發(fā)前期的需求分析;開發(fā)過程沒有統(tǒng)一、規(guī)范方法論的指導(dǎo);文檔資料不齊全;忽視人與人的交流;忽視測試工作,提交給用戶的軟件質(zhì)量差;輕視軟件的維護(hù)。1.3.3軟件危機(jī)的原因一方面是與軟件本身的特點(diǎn)有關(guān);281.4軟件工程與開發(fā)準(zhǔn)則由于認(rèn)識到軟件的設(shè)計(jì)、實(shí)現(xiàn)、維護(hù)和傳統(tǒng)的工程規(guī)則有相同的基礎(chǔ),于是北大西洋公約組織(NATO)于1967年首次提出了“軟件工程(SoftwareEngineering)”的概念。關(guān)于編制軟件與其他工程任務(wù)類似的提法,得到了1968年在德國召開的NATO軟件工程會議的認(rèn)可。委員會的結(jié)論是,軟件工程應(yīng)使用已有的工程規(guī)則的理論和模式,來解決所謂的"軟件危機(jī)"。軟件危機(jī)至今仍然困繞著我們,這表明軟件生產(chǎn)過程在許多方面和傳統(tǒng)的工程相似,但卻具有獨(dú)特的屬性和問題。1.4軟件工程與開發(fā)準(zhǔn)則由于認(rèn)識到軟件的設(shè)計(jì)、實(shí)現(xiàn)、維護(hù)和傳291.4.1軟件工程概念基本思想是強(qiáng)調(diào)在軟件開發(fā)過程中應(yīng)用工程化原則,解決軟件的整體質(zhì)量較低、最后期限和費(fèi)用沒有保證等問題。

Boehm:運(yùn)用現(xiàn)代科學(xué)技術(shù)知識來設(shè)計(jì)并構(gòu)造計(jì)算機(jī)程序及為開發(fā)、運(yùn)行和維護(hù)這些程序所必需的相關(guān)文件資料IEEE:軟件工程是(1)把系統(tǒng)的,規(guī)范的,可度量的途徑應(yīng)用于軟件開發(fā),運(yùn)行和維護(hù)過程,也就是把工程應(yīng)用于軟件。(2)研究(1)中提到的途徑。

1.4.1軟件工程概念基本思想是強(qiáng)調(diào)在軟件開發(fā)過程中應(yīng)用工程30軟件工程三要素軟件工程是一種層次化的技術(shù)軟件工具為軟件工程方法提供了自動的或半自動的軟件支撐環(huán)境軟件工程方法為軟件開發(fā)提供了“如何做”的技術(shù)軟件工程三要素軟件工程是一種層次化的技術(shù)31軟件工程過程定義了:方法使用的順序要求交付的文檔資料為保證質(zhì)量和適應(yīng)變化所需要的管理軟件開發(fā)各個(gè)階段完成的里程碑里程碑的含義:里程碑在項(xiàng)目生命中是一個(gè)重要的界標(biāo)、發(fā)展或轉(zhuǎn)折點(diǎn)一般地,使用它來標(biāo)記項(xiàng)目一個(gè)重要部分的完成,它并不代表正在做一個(gè)工作,僅指明這一工作已經(jīng)開始或已經(jīng)結(jié)束軟件工程三要素(2)軟件工程過程定義了:軟件工程三要素(2)321.4.3軟件工程的基本準(zhǔn)則1、嚴(yán)格階段管理有人經(jīng)統(tǒng)計(jì)發(fā)現(xiàn),在不成功的軟件項(xiàng)目中有一半左右是由于計(jì)劃不周造成的,在軟件開發(fā)與維護(hù)的漫長的生命周期中,需要完成許多性質(zhì)各異的工作。這條基本準(zhǔn)則意味著,應(yīng)該把軟件生命周期劃分成若干個(gè)階段,并相應(yīng)地制定出切實(shí)可行的計(jì)劃,然后嚴(yán)格按照計(jì)劃對軟件的開發(fā)與維護(hù)工作進(jìn)行管理。1.4.3軟件工程的基本準(zhǔn)則1、嚴(yán)格階段管理331.4.3軟件工程的基本準(zhǔn)則(2)2、堅(jiān)持階段評審

軟件的質(zhì)量保證工作不能等到編碼階段結(jié)束之后再進(jìn)行:第一,大部分錯(cuò)誤是在編碼之前造成的,例如,根據(jù)Boehm

等人的統(tǒng)計(jì),設(shè)計(jì)錯(cuò)誤占軟件錯(cuò)誤的63%,編碼僅占37%;第二,錯(cuò)誤發(fā)現(xiàn)與改正得越晚,所需付出的代價(jià)也越高。因此,在每個(gè)階段都進(jìn)行嚴(yán)格的評審,以便盡早發(fā)現(xiàn)在軟件開發(fā)過程中所犯的錯(cuò)誤,是一條必須遵循的重要原則。

1.4.3軟件工程的基本準(zhǔn)則(2)2、堅(jiān)持階段評審

軟件的質(zhì)341.4.3軟件工程的基本準(zhǔn)則(3)3、加強(qiáng)產(chǎn)品控制在軟件開發(fā)過程中不應(yīng)隨意改變需求,因?yàn)楦淖円豁?xiàng)需求往往需要付出較高的代價(jià)。但是,在軟件開發(fā)過程中改變需求又是難免的,由于外部環(huán)境的變化,相應(yīng)地改變用戶需求是一種客觀需要,顯然不能硬性禁止客戶提出改變需求的要求,而只能依靠科學(xué)的產(chǎn)品控制技術(shù)來順應(yīng)這種要求當(dāng)改變需求時(shí),為了保持軟件各個(gè)配置成分的一致性,必須實(shí)行嚴(yán)格的產(chǎn)品控制,其中主要是實(shí)行基準(zhǔn)配置管理。1.4.3軟件工程的基本準(zhǔn)則(3)3、加強(qiáng)產(chǎn)品控制351.4.3軟件工程的基本準(zhǔn)則(4)4、采納新技術(shù)60年代末提出的結(jié)構(gòu)程序設(shè)計(jì)技術(shù),以后又進(jìn)一步發(fā)展出各種結(jié)構(gòu)分析(SA)與結(jié)構(gòu)設(shè)計(jì)(SD)技術(shù),軟件生存周期瀑布模型80年代以后的OO程序設(shè)計(jì)技術(shù),OOA/OOD/UML實(shí)踐表明,采用先進(jìn)的技術(shù)既可提高軟件開發(fā)的效率,又可提高軟件維護(hù)的效率1.4.3軟件工程的基本準(zhǔn)則(4)4、采納新技術(shù)361.4.3軟件工程的基本準(zhǔn)則(5)5、結(jié)果應(yīng)能清楚地審查軟件產(chǎn)品不同于一般的物理產(chǎn)品,它是看不見摸不著的邏輯產(chǎn)品軟件開發(fā)人員(或開發(fā)小組)的工作進(jìn)展情況可見性差,難以準(zhǔn)確度量,從而使得軟件產(chǎn)品的開發(fā)過程比一般產(chǎn)品的開發(fā)過程更難于評價(jià)和管理為了提高軟件開發(fā)過程的可見性,更好地進(jìn)行管理,應(yīng)該根據(jù)軟件開發(fā)項(xiàng)目的總目標(biāo)及完成期限,規(guī)定開發(fā)組織的責(zé)任和產(chǎn)品標(biāo)準(zhǔn),從而使得所得到的結(jié)果能夠清楚地審查1.4.3軟件工程的基本準(zhǔn)則(5)5、結(jié)果應(yīng)能清楚地審查371.4.3軟件工程的基本準(zhǔn)則(6)6、開發(fā)小組的人員應(yīng)該少而精軟件開發(fā)小組的組成人員的素質(zhì)應(yīng)該好,而人數(shù)則不宜過多。開發(fā)小組人員的素質(zhì)和數(shù)量是影響軟件產(chǎn)品質(zhì)量和開發(fā)效率的重要因素。素質(zhì)高的人員的開發(fā)效率比素質(zhì)低的人員的開發(fā)效率可能高幾倍至幾十倍,而且所開發(fā)的軟件中的錯(cuò)誤明顯少。此外,隨著開發(fā)小組人員數(shù)目的增加,因?yàn)榻涣髑闆r討論問題而造成的通信開銷也急劇增加。1.4.3軟件工程的基本準(zhǔn)則(6)6、開發(fā)小組的人員應(yīng)該少而381.5軟件生存周期

軟件有一個(gè)孕育、誕生、成長、成熟、衰亡的生存過程。這個(gè)過程即為計(jì)算機(jī)軟件的生存期一般說來,軟件生命周期劃分為三個(gè)時(shí)期:計(jì)劃時(shí)期、開發(fā)時(shí)期、運(yùn)行時(shí)期。計(jì)劃時(shí)期劃分為問題定義和可行性研究;開發(fā)時(shí)期又劃分為需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測試階段;運(yùn)行時(shí)期主要是在運(yùn)行中完成各類維護(hù)。1.5軟件生存周期軟件有一個(gè)孕育、誕生、成長、成熟、衰亡的39第一章軟件工程概述課件401.5.1計(jì)劃時(shí)期1.問題定義(要解決的問題是什么?)確定要開發(fā)軟件系統(tǒng)的總目標(biāo)給出功能、性能、可靠性以及接口等方面的要求,系統(tǒng)定義2.可行性研究(對于問題有解決方法嗎?)估計(jì)可利用的資源(計(jì)算機(jī)硬件,軟件,人力等)、成本、效益、開發(fā)進(jìn)度制定出完成開發(fā)任務(wù)的實(shí)施計(jì)劃和解決方案,可行性研究報(bào)告1.5.1計(jì)劃時(shí)期1.問題定義(要解決的問題是什么?)411.5.2開發(fā)時(shí)期1.需求分析(為了解決問題,目標(biāo)系統(tǒng)必須做什么?)對待開發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)的定義編寫軟件需求說明書或系統(tǒng)功能說明書及初步的系統(tǒng)用戶手冊提交管理機(jī)構(gòu)評審1.5.2開發(fā)時(shí)期1.需求分析(為了解決問題,目標(biāo)系統(tǒng)必須做421.5.2開發(fā)時(shí)期(2)2.概要設(shè)計(jì)(怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)?)把各項(xiàng)需求轉(zhuǎn)換成軟件的體系結(jié)構(gòu),結(jié)構(gòu)中每一組成部分都是意義明確的模塊,每個(gè)模塊都和某些需求相對應(yīng)編寫概要設(shè)計(jì)說明書3.詳細(xì)設(shè)計(jì)(怎樣具體實(shí)現(xiàn)這個(gè)系統(tǒng)?)對每個(gè)模塊要完成的工作進(jìn)行具體的描述,為源程序編寫打下基礎(chǔ)編寫詳細(xì)設(shè)計(jì)說明書1.5.2開發(fā)時(shí)期(2)2.概要設(shè)計(jì)(怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)?)431.5.2開發(fā)時(shí)期(3)4.編碼把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼,即寫成以某一種特定程序設(shè)計(jì)語言表示的“源程序清單”寫出的程序應(yīng)當(dāng)是結(jié)構(gòu)良好、清晰易讀的,且與設(shè)計(jì)相一致的5.測試單元測試,查找各模塊在功能和結(jié)構(gòu)上存在的問題并加以糾正組裝測試,將已測試過的模塊按一定順序組裝起來按規(guī)定的各項(xiàng)需求,逐項(xiàng)進(jìn)行有效性測試,決定已開發(fā)的軟件是否合格,能否交付用戶使用1.5.2開發(fā)時(shí)期(3)4.編碼441.5.3運(yùn)行時(shí)期運(yùn)行時(shí)期的主要工作是維護(hù)改正性維護(hù)運(yùn)行中發(fā)現(xiàn)了軟件中的錯(cuò)誤需要修正適應(yīng)性維護(hù)為了適應(yīng)變化了的軟件工作環(huán)境,需做適當(dāng)變更完善性維護(hù)為了增強(qiáng)軟件的功能需做變更1.5.3運(yùn)行時(shí)期運(yùn)行時(shí)期的主要工作是維護(hù)45各階段工作小結(jié)階段關(guān)鍵問題結(jié)束標(biāo)準(zhǔn)問題定義問題是什么關(guān)于規(guī)模和目標(biāo)的報(bào)告書可行性研究有可行的解系統(tǒng)的高層邏輯模型需求分析系統(tǒng)必須做什么,功能系統(tǒng)邏輯模型總體設(shè)計(jì)概括地說,應(yīng)該如何解決問題可能解法詳細(xì)設(shè)計(jì)怎樣具體實(shí)現(xiàn)編碼規(guī)格說明各階段工作小結(jié)階段關(guān)鍵問題結(jié)束標(biāo)準(zhǔn)問題定義問題是什么關(guān)于規(guī)模46各階段工作小結(jié)(2)階段關(guān)鍵問題結(jié)束標(biāo)準(zhǔn)編碼和單元測試正確的程序模塊源程序清單,單元測試方案和結(jié)果綜合測試符合要求的軟件綜合測試方案和結(jié)果,完整一致的軟件配置維護(hù)持久地滿足用戶需要的軟件完整準(zhǔn)確的維護(hù)記錄各階段工作小結(jié)(2)階段關(guān)鍵問題結(jié)束標(biāo)準(zhǔn)編碼和單元測試正確的471.6軟件生存期模型軟件生存期模型是跨越整個(gè)生存期的系統(tǒng)開發(fā)、運(yùn)作和維護(hù)所實(shí)施的全部過程、活動和任務(wù)的結(jié)構(gòu)框架軟件開發(fā)模型是對軟件過程的建模瀑布模型原型模型增量模型螺旋模型1.6軟件生存期模型軟件生存期模型是跨越整個(gè)生存期的系統(tǒng)開發(fā)481.6.2瀑布模型可行性研究與計(jì)劃需求分析設(shè)計(jì)編碼運(yùn)行維護(hù)測試定義階段開發(fā)階段維護(hù)階段1.6.2瀑布模型可行性研究與計(jì)劃需求分析設(shè)計(jì)編碼運(yùn)行維護(hù)測491.6.2瀑布模型(2)瀑布模型的特點(diǎn)1.階段間具有順序性和依賴性關(guān)系順序性的含義是必須待前一階段的工作完成之后,才能進(jìn)行下一階段的工作。依賴性的含義是前一階段的輸出就是后一階段的輸入,只有前一階段的輸出正確,后一階段的工作才有可能獲得正確的結(jié)果。1.6.2瀑布模型(2)瀑布模型的特點(diǎn)501.6.2瀑布模型(3)2.推遲實(shí)現(xiàn)實(shí)踐表明,編碼開始得越早完成開發(fā)工作所需要的時(shí)間反而越長這是因?yàn)椋捌陔A段的工作沒完全做好,就急于考慮程序?qū)崿F(xiàn),其結(jié)果導(dǎo)致大量返工,有時(shí)甚至產(chǎn)生無法彌補(bǔ)的問題,帶來嚴(yán)重后果1.6.2瀑布模型(3)2.推遲實(shí)現(xiàn)511.6.2瀑布模型(4)3.質(zhì)量保證各階段都必須完成規(guī)定的文檔。完整、正確、合格的文檔不僅是軟件開發(fā)時(shí)期各類人員之間相互通信的媒介,也是軟件維護(hù)的重要依據(jù)各階段結(jié)束前都要對所完成的文檔進(jìn)行評審,以便及時(shí)發(fā)現(xiàn)問題,改正錯(cuò)誤1.6.2瀑布模型(4)3.質(zhì)量保證521.6.2瀑布模型(5)瀑布模型的優(yōu)點(diǎn)“線性”是人們最容易掌握并能熟練應(yīng)用的思想方法。當(dāng)人們碰到一個(gè)復(fù)雜的“非線性”問題時(shí),總是千方百計(jì)地將其分解或轉(zhuǎn)化為一系列簡單的線性問題,然后逐個(gè)解決。一個(gè)軟件系統(tǒng)的整體可能是復(fù)雜的,而單個(gè)子程序總是簡單的,可以用線性的方式來實(shí)現(xiàn)。線性是一種簡潔,簡潔就是美。領(lǐng)會線性的精神,不要呆板地套用線性模型的外表,而應(yīng)該用活它。例如增量模型實(shí)質(zhì)就是分段的線性模型,螺旋模型則是接連的彎曲了的線性模型,在其它模型中也能夠找到線性模型的影子。1.6.2瀑布模型(5)瀑布模型的優(yōu)點(diǎn)531.6.2瀑布模型(6)瀑布模型的缺點(diǎn)(1)各個(gè)階段的劃分完全固定,階段之間產(chǎn)生大量的文檔,極大地增加了工作量(2)由于開發(fā)模型是線性的,用戶只有等到整個(gè)過程的末期才能見到開發(fā)成果,從而增加了開發(fā)的風(fēng)險(xiǎn)(3)早期的錯(cuò)誤可能要等到開發(fā)后期的測試階段才能發(fā)現(xiàn),進(jìn)而帶來嚴(yán)重的后果1.6.2瀑布模型(6)瀑布模型的缺點(diǎn)541.6.3快速原型模型由于在項(xiàng)目開發(fā)的初始階段人們對軟件的需求認(rèn)識常常不夠清晰,因而使得開發(fā)項(xiàng)目難于做到一次開發(fā)成功,出現(xiàn)返工再開發(fā)在所難免。做兩次第一次只是試驗(yàn)開發(fā),其目標(biāo)只是在于探索可行性,弄清軟件需求第二次則在此基礎(chǔ)上獲得較為滿意的軟件產(chǎn)品需求分析原型開發(fā)與建模原型評價(jià)系統(tǒng)設(shè)計(jì)系統(tǒng)實(shí)現(xiàn)用戶反饋1.6.3快速原型模型由于在項(xiàng)目開發(fā)的初始階段人們對軟件的需551.6.4增量模型在增量模型中,軟件被作為一系列的增量構(gòu)件來設(shè)計(jì)、實(shí)現(xiàn)、集成和測試,每一個(gè)構(gòu)件是由多種相互作用的模塊所形成的提供特定功能的代碼片段構(gòu)成增量模型在各個(gè)階段并不交付一個(gè)可運(yùn)行的完整產(chǎn)品,而是交付滿足客戶需求的一個(gè)子集的可運(yùn)行產(chǎn)品。整個(gè)產(chǎn)品被分解成若干個(gè)構(gòu)件,開發(fā)人員逐個(gè)構(gòu)件地交付產(chǎn)品,這樣做的好處是軟件開發(fā)可以較好地適應(yīng)變化,客戶可以不斷地看到所開發(fā)的軟件,從而降低開發(fā)風(fēng)險(xiǎn)。1.6.4增量模型在增量模型中,軟件被作為一系列的增量構(gòu)件來561.6.4增量模型(2)在使用增量模型時(shí),第一個(gè)增量往往是實(shí)現(xiàn)基本需求的核心產(chǎn)品。核心產(chǎn)品交付用戶使用后,經(jīng)過評價(jià)形成下一個(gè)增量的開發(fā)計(jì)劃,它包括對核心產(chǎn)品的修改和一些新功能的發(fā)布。這個(gè)過程在每個(gè)增量發(fā)布后不斷重復(fù),直到產(chǎn)生最終的完善產(chǎn)品。1.6.4增量模型(2)在使用增量模型時(shí),第一個(gè)增量往往是實(shí)571.6.4增量模型(3)例如使用增量模型開發(fā)字處理軟件??梢钥紤]:第一個(gè)增量發(fā)布基本的文件管理、編輯和文檔生成功能第二個(gè)增量發(fā)布更加完善的編輯和文檔生成功能第三個(gè)增量實(shí)現(xiàn)拼寫和文法檢查功能第四個(gè)增量完成高級的頁面布局功能1.6.4增量模型(3)例如581.6.4增量模型(4)增量模型也存在以下缺陷(1)由于各個(gè)構(gòu)件是逐漸并入已有的軟件體系結(jié)構(gòu)中的,所以加入構(gòu)件必須不破壞已構(gòu)造好的系統(tǒng)部分,這需要軟件具備開放式的體系結(jié)構(gòu)。(2)在開發(fā)過程中,需求的變化是不可避免的。增量模型的靈活性可以使其適應(yīng)這種變化的能力大大優(yōu)于瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟件過程的控制失去整體性。1.6.4增量模型(4)增量模型也存在以下缺陷591.6.5螺旋模型螺旋模型沿著螺線旋轉(zhuǎn),在四個(gè)象限上分別表達(dá)了四個(gè)方面的活動,即:制定計(jì)劃──確定軟件目標(biāo),選定實(shí)施方案,弄清項(xiàng)目開發(fā)的限制條件風(fēng)險(xiǎn)分析──分析所選方案,考慮如何識別和消除風(fēng)險(xiǎn)工程實(shí)現(xiàn)──實(shí)施軟件開發(fā)評審──評價(jià)開發(fā)工作,提出修正建議1.6.5螺旋模型螺旋模型沿著螺線旋轉(zhuǎn),在四個(gè)象限上分別表達(dá)60

611.6.5螺旋模型(2)螺旋模型的限制條件(1)螺旋模型強(qiáng)調(diào)風(fēng)險(xiǎn)分析,但要求許多客戶接受和相信這種分析,并做出相關(guān)反應(yīng)是不容易的,因此,這種模型往往適應(yīng)于內(nèi)部的大規(guī)模軟件開發(fā)。(2)如果執(zhí)行風(fēng)險(xiǎn)分析將大大影響項(xiàng)目的利潤,那么進(jìn)行風(fēng)險(xiǎn)分析毫無意義,因此,螺旋模型只適合于大規(guī)模軟件項(xiàng)目。(3)軟件開發(fā)人員應(yīng)該擅長尋找可能的風(fēng)險(xiǎn),準(zhǔn)確地分析風(fēng)險(xiǎn),否則將會帶來更大的風(fēng)險(xiǎn)。1.6.5螺旋模型(2)螺旋模型的限制條件621.6.7面向?qū)ο箝_發(fā)模型面向?qū)ο笏枷氲闹匾卣魇窃诮饪臻g引入了“對象”概念,以便逼真地描述解空間的客觀實(shí)體,從而使客觀描述符合人類的思維習(xí)慣將面向?qū)ο笏枷牒透拍钣糜谲浖_發(fā)技術(shù),形成面向?qū)ο箝_發(fā)模型1.6.7面向?qū)ο箝_發(fā)模型面向?qū)ο笏枷氲闹匾卣魇窃诮饪臻g63各種模型的比較每個(gè)軟件開發(fā)組織應(yīng)該選擇適合于該組織的軟件開發(fā)模型,并且應(yīng)該隨著當(dāng)前正在開發(fā)的特定產(chǎn)品特性而變化,以減小所選模型的缺點(diǎn),充分利用其優(yōu)點(diǎn),下表列出了幾種常見模型的優(yōu)缺點(diǎn)。模型優(yōu)點(diǎn)缺點(diǎn)瀑布模型文檔驅(qū)動系統(tǒng)可能不滿足需求原型模型關(guān)注滿足需求可能導(dǎo)致系統(tǒng)設(shè)計(jì)差,難于維護(hù)增量模型開發(fā)早期反饋及時(shí),易于維護(hù)需要開放式結(jié)構(gòu),可能會設(shè)計(jì)差螺旋模型風(fēng)險(xiǎn)驅(qū)動風(fēng)險(xiǎn)分析人員需要有經(jīng)驗(yàn)且經(jīng)過充分訓(xùn)練面向?qū)ο竽P椭С止ぞ哓S富,自動化程度高對開發(fā)組織和人員要求較高各種模型的比較每個(gè)軟件開發(fā)組織應(yīng)該選擇適合于該組織的軟件開發(fā)64謝謝!謝謝!65軟件工程學(xué)教程西安郵電大學(xué)曹小鵬cxp2760@163.comcaoxp件工程學(xué)教程西安郵電大學(xué)66課程簡介課程名稱:軟件工程教 材:《SoftwareEngineering》(英)IanSommerville《軟件工程導(dǎo)論》張海藩教學(xué)方式:授課+項(xiàng)目討論+上機(jī)實(shí)習(xí) 課時(shí)安排:32+16考試類別:閉卷考試

參考教材:

《軟件工程——實(shí)踐者之路》(原名:SoftwareEngineering–APractitioner’sApproach,SixthEdition),RogerS.Pressman,清華大學(xué)出版社2006軟件工程學(xué)教程陳明科學(xué)出版社軟件工程實(shí)踐者的研究方法黃柏素等譯機(jī)械軟件工程鄧良松等西安電子科技大學(xué)出版社課程簡介課程名稱:軟件工程67第1章軟件工程概述1.1計(jì)算機(jī)軟件概念1.2

軟件的發(fā)展1.3軟件危機(jī)與軟件問題1.4軟件工程與開發(fā)準(zhǔn)則1.5軟件生命周期1.6軟件開發(fā)模型第1章軟件工程概述1.1計(jì)算機(jī)軟件概念681.1.1

計(jì)算機(jī)軟件軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合程序是按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)文檔是與程序開發(fā),維護(hù)和使用有關(guān)的圖文材料1.1計(jì)算機(jī)軟件概念1.1.1計(jì)算機(jī)軟件1.1計(jì)算機(jī)軟件概念691.1.2軟件的特點(diǎn)軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體。因而它具有抽象性在軟件的運(yùn)行和使用期間,沒有硬件那樣的機(jī)械磨損,老化問題軟件的生產(chǎn)與硬件不同,在它的開發(fā)過程中沒有明顯的制造過程,軟件維護(hù)困難1.1.2軟件的特點(diǎn)軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體701.1.2軟件的特點(diǎn)(2)軟件的開發(fā)和運(yùn)行常受到計(jì)算機(jī)系統(tǒng)的限制,對計(jì)算機(jī)系統(tǒng)有著不同程度的依賴性軟件的開發(fā)至今尚未完全擺脫手工藝的開發(fā)方式軟件本身是復(fù)雜的,相當(dāng)多的軟件工作涉及到社會因素實(shí)際問題的復(fù)雜性程序邏輯結(jié)構(gòu)的復(fù)雜性軟件成本相當(dāng)昂貴1.1.2軟件的特點(diǎn)(2)軟件的開發(fā)和運(yùn)行常受到計(jì)算機(jī)系統(tǒng)的711.1.3軟件與硬件的關(guān)系硬件的故障率曲線故障率生命初期“磨損”后軟件的故障率曲線故障率時(shí)間理想曲線實(shí)際曲線修改副作用1.1.3軟件與硬件的關(guān)系硬件的故障率曲線故障721.1.4軟件分類1、按功能進(jìn)行劃分:(1)系統(tǒng)軟件:能夠控制計(jì)算機(jī)系統(tǒng)各部件(軟硬件)協(xié)調(diào)、高效地工作和進(jìn)程處理、資源共享管理等操作系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)設(shè)備驅(qū)動程序通信處理程序等1.1.4軟件分類1、按功能進(jìn)行劃分:73(2)支撐軟件工具軟件,它幫助軟件開發(fā)人員開發(fā)自己的軟件產(chǎn)品文本編輯程序文件格式化程序磁盤向磁帶向數(shù)據(jù)傳輸?shù)某绦虺绦驇煜到y(tǒng)支持需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試和支持管理的軟件(2)支撐軟件工具軟件,它幫助軟件開發(fā)人員開發(fā)自己的軟件產(chǎn)品74為特定的應(yīng)用目的而開發(fā)的服務(wù)性軟件

商業(yè)數(shù)據(jù)處理軟件工程與科學(xué)計(jì)算軟件計(jì)算機(jī)輔助設(shè)計(jì)/制造軟件系統(tǒng)仿真軟件智能產(chǎn)品嵌入軟件醫(yī)療、制藥軟件事務(wù)管理、辦公自動化軟件計(jì)算機(jī)輔助教學(xué)軟件(3)應(yīng)用軟件(3)應(yīng)用軟件75類別參加人員數(shù) 研制期限源程序行數(shù)

微型

1 1~4周0.5k

小型

1 1~6月1k~2k中型

2~5 1~2年5k~50k大型

5~20 2~3年50k~100k甚大型

100~10004~5年

1M(=1000k)極大型

2000~50005~10年1M~10M 2、按軟件規(guī)模進(jìn)行劃分2、按軟件規(guī)模進(jìn)行劃分76只是一個(gè)人,在幾天之內(nèi)完成的軟件。寫出的程序不到5百行語句,僅供個(gè)人專用。通常這種小題目無需做嚴(yán)格的分析,也不必要有一套完整的設(shè)計(jì)、測試資料。不過這并不是說可以隨便地不講任何方法地做。事實(shí)說明,即使這樣小的題目,如果經(jīng)過一定的分析、系統(tǒng)設(shè)計(jì)、結(jié)構(gòu)化編碼以及有步驟地測試,肯定也是非常有益的。(1)微型只是一個(gè)人,在幾天之內(nèi)完成的軟件。寫出的程序不到5百行語句,77(2)小型一個(gè)人半年之內(nèi)完成的2千行以內(nèi)的程序。例如,數(shù)值計(jì)算問題或是數(shù)據(jù)處理問題就是這種規(guī)模的課題。這種程序通常沒有與其它程序的接口。但需要按一定的標(biāo)準(zhǔn)化技術(shù)、正規(guī)的資料書寫以及定期的系統(tǒng)審查。只是沒有大題目那樣嚴(yán)格。(2)小型一個(gè)人半年之內(nèi)完成的2千行以內(nèi)的程序。78(3)中型5個(gè)人以內(nèi)在一年多時(shí)間里完成的5千到5萬行的程序。這種課題開始出現(xiàn)軟件人員之間、軟件人員與用戶之間的聯(lián)系、協(xié)調(diào)的配合關(guān)系問題。因而計(jì)劃、資料書寫以及技術(shù)審查需要比較嚴(yán)格地進(jìn)行。這類軟件課題比較普遍,許多應(yīng)用程序和系統(tǒng)程序就是這樣的規(guī)模。在開發(fā)中使用系統(tǒng)的軟件工程方法是完全必要的,這對提高軟件產(chǎn)品質(zhì)量和程序人員的工作效率起著重要的作用。(3)中型5個(gè)人以內(nèi)在一年多時(shí)間里完成的5千到5萬行的程序。79(4)大型5至10個(gè)人在兩年多的時(shí)間里完成的5萬到10萬行的程序。例如編譯程序、小型分時(shí)系統(tǒng)、應(yīng)用軟件包、實(shí)時(shí)控制系統(tǒng)等很可能是這種軟件。參加工作的軟件人員需要按二級管理,例如劃分成若干小組,每組5人以下為好。在任務(wù)完成過程中,人員調(diào)整往往不可避免。因此會出現(xiàn)對新手的培訓(xùn)和逐步熟悉工作的問題。對于這樣規(guī)模的軟件,采用統(tǒng)一的標(biāo)準(zhǔn),實(shí)行嚴(yán)格的審查是絕對必要的。由于軟件的規(guī)模龐大以及問題的復(fù)雜性,往往會在開發(fā)的過程中出現(xiàn)一些事先難于做出估計(jì)的不測事件。(4)大型5至10個(gè)人在兩年多的時(shí)間里完成的5萬到10萬行的80(5)甚大型100至1000人參加用4到5年時(shí)間完成的具有100萬行程序的軟件項(xiàng)目。這種甚大型項(xiàng)目可能會劃分成若干個(gè)子項(xiàng)目,每一個(gè)子項(xiàng)目都是一個(gè)大型軟件。子項(xiàng)目之間具有復(fù)雜的接口。例如,實(shí)時(shí)處理系統(tǒng)、遠(yuǎn)程通信系統(tǒng)、多任務(wù)系統(tǒng)、大型操作系統(tǒng)、大型數(shù)據(jù)庫管理系統(tǒng)、軍事指揮系統(tǒng)通常現(xiàn)有這樣的規(guī)模。很顯然,這類問題沒有軟件工程方法的支持,它的開發(fā)工作是不可想象的。(5)甚大型100至1000人參加用4到5年時(shí)間完成的具有181(6)極大型2000人到5000人參加,10年內(nèi)完成的1000萬行以內(nèi)的程序。這類軟件很少見,往往是軍事指揮、彈道導(dǎo)彈防御系統(tǒng)。(6)極大型2000人到5000人參加,10年內(nèi)完成的100823、按工作方式劃分實(shí)時(shí)處理軟件:指在事件或數(shù)據(jù)產(chǎn)生時(shí)立即進(jìn)行處理分時(shí)軟件:在多個(gè)用戶在聯(lián)機(jī)情況下同時(shí)要求系統(tǒng)對其進(jìn)行處理時(shí),系統(tǒng)將處理機(jī)時(shí)間輪流分配給各用戶,使用戶感到系統(tǒng)僅為自己服務(wù)交互式軟件:可通過各種用戶界面實(shí)現(xiàn)人機(jī)通信批處理軟件:將一組作業(yè)或一批數(shù)據(jù)按要求的順序逐個(gè)處理,直至全部作業(yè)處理完畢3、按工作方式劃分實(shí)時(shí)處理軟件:指在事件或數(shù)據(jù)產(chǎn)生時(shí)立即進(jìn)行83(1)項(xiàng)目軟件,也稱定制軟件是受某個(gè)特定客戶(或少數(shù)客戶)的委托,由一個(gè)或多個(gè)軟件開發(fā)機(jī)構(gòu)在合同的約束下開發(fā)出來的軟件。例如軍用防空指揮系統(tǒng)、衛(wèi)星控制系統(tǒng)的軟件就屬于這一類。這類項(xiàng)目軟件中有的軟件帶有試驗(yàn)研究性質(zhì),項(xiàng)目完成后根據(jù)需要可能在此基礎(chǔ)上做進(jìn)一步開發(fā)。為取得客戶的委托項(xiàng)目,軟件開發(fā)機(jī)構(gòu)的質(zhì)量管理、技術(shù)實(shí)力、開發(fā)經(jīng)驗(yàn)以及履行合同的信譽(yù)成為受到重視的問題。3、按服務(wù)對象范圍劃分(1)項(xiàng)目軟件,也稱定制軟件3、按服務(wù)對象范圍劃分84(2)產(chǎn)品軟件是由軟件開發(fā)機(jī)構(gòu)開發(fā)出來直接提供給市場,或是為千百個(gè)用戶服務(wù)的軟件。這是一些服務(wù)于多個(gè)目的及多個(gè)用戶的軟件。例如,文字處理軟件、財(cái)務(wù)處理軟件、人事管理軟件等。由于要參與市場競爭,其功能、使用性能以及培訓(xùn)和售后服務(wù)顯得尤為重要。(2)產(chǎn)品軟件是由軟件開發(fā)機(jī)構(gòu)開發(fā)出來直接提供給市場,或是為851.2軟件的發(fā)展隨著計(jì)算機(jī)硬件性能的極大提高和計(jì)算機(jī)體系結(jié)構(gòu)的不斷變化,計(jì)算機(jī)軟件系統(tǒng)更加成熟和更為復(fù)雜,從而促使計(jì)算機(jī)軟件的角色發(fā)生了巨大的變化,其發(fā)展歷史大致可以分為如圖所示的四個(gè)階段。1.2軟件的發(fā)展隨著計(jì)算機(jī)硬件性能的極大提高和計(jì)算機(jī)體861.2軟件的發(fā)展早期(程序設(shè)計(jì)階段): 【時(shí)間】:20世紀(jì)50年代初期至60年代中期 【特點(diǎn)】:硬件已經(jīng)通用化,而軟件的生產(chǎn)卻是個(gè)體化。軟件產(chǎn)品為專用軟件,規(guī)模較小,功能單一,開發(fā)者即使用者;軟件只有程序,無文檔;軟件設(shè)計(jì)在人們的頭腦中完成,形成了錯(cuò)誤觀念“軟件=程序”?!镜湫图夹g(shù)】:面向批處理、自定義軟件1.2軟件的發(fā)展早期(程序設(shè)計(jì)階段):871.2軟件的發(fā)展第二階段(程序系統(tǒng)階段):【時(shí)間】:20世紀(jì)60年代中期至70年代末期【特點(diǎn)】:多道程序設(shè)計(jì)技術(shù)、多用戶系統(tǒng)、人機(jī)交互式技術(shù)、實(shí)時(shí)系統(tǒng)和第一代數(shù)據(jù)庫管理系統(tǒng)的出現(xiàn),使得計(jì)算機(jī)應(yīng)用得到迅速。出現(xiàn)了專門從事軟件開發(fā)的“軟件作坊”,軟件作為產(chǎn)品得到了廣泛應(yīng)用。但在軟件業(yè)空前繁榮的同時(shí),原始的開發(fā)與維護(hù)方法陷入了極端困境,“軟件危機(jī)”產(chǎn)生。【典型技術(shù)】:多用戶、實(shí)時(shí)、數(shù)據(jù)庫、軟件產(chǎn)品1.2軟件的發(fā)展第二階段(程序系統(tǒng)階段):881.2軟件的發(fā)展第三階段(軟件工程階段): 【時(shí)間】:20世紀(jì)70年代中期至80年代中期【特點(diǎn)】:微處理器的出現(xiàn)和廣泛應(yīng)用,使得計(jì)算機(jī)真正成為大眾化的東西。以軟件的產(chǎn)品化、系列化、工程化和標(biāo)準(zhǔn)化為特征的軟件產(chǎn)業(yè)發(fā)展起來,軟件開發(fā)有了可以遵循的軟件工程化的設(shè)計(jì)準(zhǔn)則、方法和標(biāo)準(zhǔn)?!镜湫图夹g(shù)】:分布式系統(tǒng)、廣域網(wǎng)和局域網(wǎng)、低成本的硬件、嵌入“智能”1.2軟件的發(fā)展第三階段(軟件工程階段):891.2軟件的發(fā)展第四階段:【時(shí)間】:20世紀(jì)80年代中期至今【特點(diǎn)】:計(jì)算機(jī)的發(fā)展不再著重與單臺計(jì)算機(jī)和計(jì)算機(jī)程序、而是針對計(jì)算機(jī)和軟件的綜合應(yīng)用。由復(fù)雜的操作系統(tǒng)控制的PC機(jī)、廣域網(wǎng)、局域網(wǎng)、Internet,配合以先進(jìn)的軟件應(yīng)用已經(jīng)成為標(biāo)準(zhǔn)。面向?qū)ο蟮拈_發(fā)方法在許多領(lǐng)域迅速取代了傳統(tǒng)的軟件開發(fā)方法?!镜湫图夹g(shù)】:強(qiáng)大的桌面系統(tǒng)、面向?qū)ο蠹夹g(shù)專家系統(tǒng)、人工神經(jīng)網(wǎng)絡(luò)、網(wǎng)絡(luò)計(jì)算機(jī)1.2軟件的發(fā)展第四階段:901.3軟件危機(jī)與軟件問題1.3.1軟件危機(jī)軟件總是超出預(yù)算、落后于進(jìn)度表,而且不可靠在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。軟件受其自身特點(diǎn)的影響,生產(chǎn)過程不象硬件那樣規(guī)范,受人的因素和外界影響很大,在軟件生產(chǎn)的各階段都會引入不同程度的錯(cuò)誤,造成不能預(yù)期完成任務(wù),致使成本上升,甚至導(dǎo)致軟件失敗1.3軟件危機(jī)與軟件問題1.3.1軟件危機(jī)911.3.2軟件危機(jī)的表現(xiàn)(1)軟件開發(fā)和維護(hù)費(fèi)用急劇上升(2)不重視文檔資料(3)產(chǎn)品質(zhì)量不可靠(4)軟件產(chǎn)品成本高于硬件產(chǎn)品(5)供需失配1.3.2軟件危機(jī)的表現(xiàn)(1)軟件開發(fā)和維護(hù)費(fèi)用急劇上升921.3.3軟件危機(jī)的原因一方面是與軟件本身的特點(diǎn)有關(guān);另一方面軟件開發(fā)和維護(hù)的方法不正確:忽視軟件開發(fā)前期的需求分析;開發(fā)過程沒有統(tǒng)一、規(guī)范方法論的指導(dǎo);文檔資料不齊全;忽視人與人的交流;忽視測試工作,提交給用戶的軟件質(zhì)量差;輕視軟件的維護(hù)。1.3.3軟件危機(jī)的原因一方面是與軟件本身的特點(diǎn)有關(guān);931.4軟件工程與開發(fā)準(zhǔn)則由于認(rèn)識到軟件的設(shè)計(jì)、實(shí)現(xiàn)、維護(hù)和傳統(tǒng)的工程規(guī)則有相同的基礎(chǔ),于是北大西洋公約組織(NATO)于1967年首次提出了“軟件工程(SoftwareEngineering)”的概念。關(guān)于編制軟件與其他工程任務(wù)類似的提法,得到了1968年在德國召開的NATO軟件工程會議的認(rèn)可。委員會的結(jié)論是,軟件工程應(yīng)使用已有的工程規(guī)則的理論和模式,來解決所謂的"軟件危機(jī)"。軟件危機(jī)至今仍然困繞著我們,這表明軟件生產(chǎn)過程在許多方面和傳統(tǒng)的工程相似,但卻具有獨(dú)特的屬性和問題。1.4軟件工程與開發(fā)準(zhǔn)則由于認(rèn)識到軟件的設(shè)計(jì)、實(shí)現(xiàn)、維護(hù)和傳941.4.1軟件工程概念基本思想是強(qiáng)調(diào)在軟件開發(fā)過程中應(yīng)用工程化原則,解決軟件的整體質(zhì)量較低、最后期限和費(fèi)用沒有保證等問題。

Boehm:運(yùn)用現(xiàn)代科學(xué)技術(shù)知識來設(shè)計(jì)并構(gòu)造計(jì)算機(jī)程序及為開發(fā)、運(yùn)行和維護(hù)這些程序所必需的相關(guān)文件資料IEEE:軟件工程是(1)把系統(tǒng)的,規(guī)范的,可度量的途徑應(yīng)用于軟件開發(fā),運(yùn)行和維護(hù)過程,也就是把工程應(yīng)用于軟件。(2)研究(1)中提到的途徑。

1.4.1軟件工程概念基本思想是強(qiáng)調(diào)在軟件開發(fā)過程中應(yīng)用工程95軟件工程三要素軟件工程是一種層次化的技術(shù)軟件工具為軟件工程方法提供了自動的或半自動的軟件支撐環(huán)境軟件工程方法為軟件開發(fā)提供了“如何做”的技術(shù)軟件工程三要素軟件工程是一種層次化的技術(shù)96軟件工程過程定義了:方法使用的順序要求交付的文檔資料為保證質(zhì)量和適應(yīng)變化所需要的管理軟件開發(fā)各個(gè)階段完成的里程碑里程碑的含義:里程碑在項(xiàng)目生命中是一個(gè)重要的界標(biāo)、發(fā)展或轉(zhuǎn)折點(diǎn)一般地,使用它來標(biāo)記項(xiàng)目一個(gè)重要部分的完成,它并不代表正在做一個(gè)工作,僅指明這一工作已經(jīng)開始或已經(jīng)結(jié)束軟件工程三要素(2)軟件工程過程定義了:軟件工程三要素(2)971.4.3軟件工程的基本準(zhǔn)則1、嚴(yán)格階段管理有人經(jīng)統(tǒng)計(jì)發(fā)現(xiàn),在不成功的軟件項(xiàng)目中有一半左右是由于計(jì)劃不周造成的,在軟件開發(fā)與維護(hù)的漫長的生命周期中,需要完成許多性質(zhì)各異的工作。這條基本準(zhǔn)則意味著,應(yīng)該把軟件生命周期劃分成若干個(gè)階段,并相應(yīng)地制定出切實(shí)可行的計(jì)劃,然后嚴(yán)格按照計(jì)劃對軟件的開發(fā)與維護(hù)工作進(jìn)行管理。1.4.3軟件工程的基本準(zhǔn)則1、嚴(yán)格階段管理981.4.3軟件工程的基本準(zhǔn)則(2)2、堅(jiān)持階段評審

軟件的質(zhì)量保證工作不能等到編碼階段結(jié)束之后再進(jìn)行:第一,大部分錯(cuò)誤是在編碼之前造成的,例如,根據(jù)Boehm

等人的統(tǒng)計(jì),設(shè)計(jì)錯(cuò)誤占軟件錯(cuò)誤的63%,編碼僅占37%;第二,錯(cuò)誤發(fā)現(xiàn)與改正得越晚,所需付出的代價(jià)也越高。因此,在每個(gè)階段都進(jìn)行嚴(yán)格的評審,以便盡早發(fā)現(xiàn)在軟件開發(fā)過程中所犯的錯(cuò)誤,是一條必須遵循的重要原則。

1.4.3軟件工程的基本準(zhǔn)則(2)2、堅(jiān)持階段評審

軟件的質(zhì)991.4.3軟件工程的基本準(zhǔn)則(3)3、加強(qiáng)產(chǎn)品控制在軟件開發(fā)過程中不應(yīng)隨意改變需求,因?yàn)楦淖円豁?xiàng)需求往往需要付出較高的代價(jià)。但是,在軟件開發(fā)過程中改變需求又是難免的,由于外部環(huán)境的變化,相應(yīng)地改變用戶需求是一種客觀需要,顯然不能硬性禁止客戶提出改變需求的要求,而只能依靠科學(xué)的產(chǎn)品控制技術(shù)來順應(yīng)這種要求當(dāng)改變需求時(shí),為了保持軟件各個(gè)配置成分的一致性,必須實(shí)行嚴(yán)格的產(chǎn)品控制,其中主要是實(shí)行基準(zhǔn)配置管理。1.4.3軟件工程的基本準(zhǔn)則(3)3、加強(qiáng)產(chǎn)品控制1001.4.3軟件工程的基本準(zhǔn)則(4)4、采納新技術(shù)60年代末提出的結(jié)構(gòu)程序設(shè)計(jì)技術(shù),以后又進(jìn)一步發(fā)展出各種結(jié)構(gòu)分析(SA)與結(jié)構(gòu)設(shè)計(jì)(SD)技術(shù),軟件生存周期瀑布模型80年代以后的OO程序設(shè)計(jì)技術(shù),OOA/OOD/UML實(shí)踐表明,采用先進(jìn)的技術(shù)既可提高軟件開發(fā)的效率,又可提高軟件維護(hù)的效率1.4.3軟件工程的基本準(zhǔn)則(4)4、采納新技術(shù)1011.4.3軟件工程的基本準(zhǔn)則(5)5、結(jié)果應(yīng)能清楚地審查軟件產(chǎn)品不同于一般的物理產(chǎn)品,它是看不見摸不著的邏輯產(chǎn)品軟件開發(fā)人員(或開發(fā)小組)的工作進(jìn)展情況可見性差,難以準(zhǔn)確度量,從而使得軟件產(chǎn)品的開發(fā)過程比一般產(chǎn)品的開發(fā)過程更難于評價(jià)和管理為了提高軟件開發(fā)過程的可見性,更好地進(jìn)行管理,應(yīng)該根據(jù)軟件開發(fā)項(xiàng)目的總目標(biāo)及完成期限,規(guī)定開發(fā)組織的責(zé)任和產(chǎn)品標(biāo)準(zhǔn),從而使得所得到的結(jié)果能夠清楚地審查1.4.3軟件工程的基本準(zhǔn)則(5)5、結(jié)果應(yīng)能清楚地審查1021.4.3軟件工程的基本準(zhǔn)則(6)6、開發(fā)小組的人員應(yīng)該少而精軟件開發(fā)小組的組成人員的素質(zhì)應(yīng)該好,而人數(shù)則不宜過多。開發(fā)小組人員的素質(zhì)和數(shù)量是影響軟件產(chǎn)品質(zhì)量和開發(fā)效率的重要因素。素質(zhì)高的人員的開發(fā)效率比素質(zhì)低的人員的開發(fā)效率可能高幾倍至幾十倍,而且所開發(fā)的軟件中的錯(cuò)誤明顯少。此外,隨著開發(fā)小組人員數(shù)目的增加,因?yàn)榻涣髑闆r討論問題而造成的通信開銷也急劇增加。1.4.3軟件工程的基本準(zhǔn)則(6)6、開發(fā)小組的人員應(yīng)該少而1031.5軟件生存周期

軟件有一個(gè)孕育、誕生、成長、成熟、衰亡的生存過程。這個(gè)過程即為計(jì)算機(jī)軟件的生存期一般說來,軟件生命周期劃分為三個(gè)時(shí)期:計(jì)劃時(shí)期、開發(fā)時(shí)期、運(yùn)行時(shí)期。計(jì)劃時(shí)期劃分為問題定義和可行性研究;開發(fā)時(shí)期又劃分為需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測試階段;運(yùn)行時(shí)期主要是在運(yùn)行中完成各類維護(hù)。1.5軟件生存周期軟件有一個(gè)孕育、誕生、成長、成熟、衰亡的104第一章軟件工程概述課件1051.5.1計(jì)劃時(shí)期1.問題定義(要解決的問題是什么?)確定要開發(fā)軟件系統(tǒng)的總目標(biāo)給出功能、性能、可靠性以及接口等方面的要求,系統(tǒng)定義2.可行性研究(對于問題有解決方法嗎?)估計(jì)可利用的資源(計(jì)算機(jī)硬件,軟件,人力等)、成本、效益、開發(fā)進(jìn)度制定出完成開發(fā)任務(wù)的實(shí)施計(jì)劃和解決方案,可行性研究報(bào)告1.5.1計(jì)劃時(shí)期1.問題定義(要解決的問題是什么?)1061.5.2開發(fā)時(shí)期1.需求分析(為了解決問題,目標(biāo)系統(tǒng)必須做什么?)對待開發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)的定義編寫軟件需求說明書或系統(tǒng)功能說明書及初步的系統(tǒng)用戶手冊提交管理機(jī)構(gòu)評審1.5.2開發(fā)時(shí)期1.需求分析(為了解決問題,目標(biāo)系統(tǒng)必須做1071.5.2開發(fā)時(shí)期(2)2.概要設(shè)計(jì)(怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)?)把各項(xiàng)需求轉(zhuǎn)換成軟件的體系結(jié)構(gòu),結(jié)構(gòu)中每一組成部分都是意義明確的模塊,每個(gè)模塊都和某些需求相對應(yīng)編寫概要設(shè)計(jì)說明書3.詳細(xì)設(shè)計(jì)(怎樣具體實(shí)現(xiàn)這個(gè)系統(tǒng)?)對每個(gè)模塊要完成的工作進(jìn)行具體的描述,為源程序編寫打下基礎(chǔ)編寫詳細(xì)設(shè)計(jì)說明書1.5.2開發(fā)時(shí)期(2)2.概要設(shè)計(jì)(怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)?)1081.5.2開發(fā)時(shí)期(3)4.編碼把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼,即寫成以某一種特定程序設(shè)計(jì)語言表示的“源程序清單”寫出的程序應(yīng)當(dāng)是結(jié)構(gòu)良好、清晰易讀的,且與設(shè)計(jì)相一致的5.測試單元測試,查找各模塊在功能和結(jié)構(gòu)上存在的問題并加以糾正組裝測試,將已測試過的模塊按一定順序組裝起來按規(guī)定的各項(xiàng)需求,逐項(xiàng)進(jìn)行有效性測試,決定已開發(fā)的軟件是否合格,能否交付用戶使用1.5.2開發(fā)時(shí)期(3)4.編碼1091.5.3運(yùn)行時(shí)期運(yùn)行時(shí)期的主要工作是維護(hù)改正性維護(hù)運(yùn)行中發(fā)現(xiàn)了軟件中的錯(cuò)誤需要修正適應(yīng)性維護(hù)為了適應(yīng)變化了的軟件工作環(huán)境,需做適當(dāng)變更完善性維護(hù)為了增強(qiáng)軟件的功能需做變更1.5.3運(yùn)行時(shí)期運(yùn)行時(shí)期的主要工作是維護(hù)110各階段工作小結(jié)階段關(guān)鍵問題結(jié)束標(biāo)準(zhǔn)問題定義問題是什么關(guān)于規(guī)模和目標(biāo)的報(bào)告書可行性研究有可行的解系統(tǒng)的高層邏輯模型需求分析系統(tǒng)必須做什么,功能系統(tǒng)邏輯模型總體設(shè)計(jì)概括地說,應(yīng)該如何解決問題可能解法詳細(xì)設(shè)計(jì)怎樣具體實(shí)現(xiàn)編碼規(guī)格說明各階段工作小結(jié)階段關(guān)鍵問題結(jié)束標(biāo)準(zhǔn)問題定義問題是什么關(guān)于規(guī)模111各階段工作小結(jié)(2)階段關(guān)鍵問題結(jié)束標(biāo)準(zhǔn)編碼和單元測試正確的程序模塊源程序清單,單元測試方案和結(jié)果綜合測試符合要求的軟件綜合測試方案和結(jié)果,完整一致的軟件配置維護(hù)持久地滿足用戶需要的軟件完整準(zhǔn)確的維護(hù)記錄各階段工作小結(jié)(2)階段關(guān)鍵問題結(jié)束標(biāo)準(zhǔn)編碼和單元測試正確的1121.6軟件生存期模型軟件生存期模型是跨越整個(gè)生存期的系統(tǒng)開發(fā)、運(yùn)作和維護(hù)所實(shí)施的全部過程、活動和任務(wù)的結(jié)構(gòu)框架軟件開發(fā)模型是對軟件過程的建模瀑布模型原型模型增量模型螺旋模型1.6軟件生存期模型軟件生存期模型是跨越整個(gè)生存期的系統(tǒng)開發(fā)1131.6.2瀑布模型可行性研究與計(jì)劃需求分析設(shè)計(jì)編碼運(yùn)行維護(hù)測試定義階段開發(fā)階段維護(hù)階段1.6.2瀑布模型可行性研究與計(jì)劃需求分析設(shè)計(jì)編碼運(yùn)行維護(hù)測1141.6.2瀑布模型(2)瀑布模型的特點(diǎn)1.階段間具有順序性和依賴性關(guān)系順序性的含義是必須待前一階段的工作完成之后,才能進(jìn)行下一階段的工作。依賴性的含義是前一階段的輸出就是后一階段的輸入,只有前一階段的輸出正確,后一階段的工作才有可能獲得正確的結(jié)果。1.6.2瀑布模型(2)瀑布模型的特點(diǎn)1151.6.2瀑布模型(3)2.推遲實(shí)現(xiàn)實(shí)踐表明,編碼開始得越早完成開發(fā)工作所需要的時(shí)間反而越長這是因?yàn)?,前期階段的工作沒完全做好,就急于考慮程序?qū)崿F(xiàn),其結(jié)果導(dǎo)致大量返工,有時(shí)甚至產(chǎn)生無法彌補(bǔ)的問題,帶來嚴(yán)重后果1.6.2瀑布模型(3)2.推遲實(shí)現(xiàn)1161.6.2瀑布模型(4)3.質(zhì)量保證各階段都必須完成規(guī)定的文檔。完整、正確、合格的文檔不僅是軟件開發(fā)時(shí)期各類人員之間相互

溫馨提示

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

評論

0/150

提交評論