軟件工程-軟件建模與文檔寫作龍浩教學(xué)課件_第1頁
軟件工程-軟件建模與文檔寫作龍浩教學(xué)課件_第2頁
軟件工程-軟件建模與文檔寫作龍浩教學(xué)課件_第3頁
軟件工程-軟件建模與文檔寫作龍浩教學(xué)課件_第4頁
軟件工程-軟件建模與文檔寫作龍浩教學(xué)課件_第5頁
已閱讀5頁,還剩628頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

軟件工程——軟件建模與文檔寫作(龍浩王文樂劉金戴莉萍)第1章

軟件開發(fā)過程.pptx第2章

軟件開發(fā)工具.pptx第3章

項(xiàng)目前期.pptx第4章

需求分析.pptx第5章

總體設(shè)計(jì).pptx第6章

詳細(xì)設(shè)計(jì).pptx第7章軟件測試.pptx全套可編輯PPT幻燈片課件(共7章)

軟件工程強(qiáng)調(diào)軟件開發(fā)組織必須設(shè)計(jì)符合項(xiàng)目和開發(fā)團(tuán)隊(duì)本身實(shí)際的、良好的開發(fā)過程,并通過開發(fā)過程對(duì)項(xiàng)目各項(xiàng)活動(dòng)進(jìn)行組織管理,并采用合適的方法、技術(shù)和工具來保證軟件系統(tǒng)的質(zhì)量。第一章軟件開發(fā)過程1.1軟件工程的概述1.2軟件生命周期1.3軟件開發(fā)過程模型1.4軟件企業(yè)過程能力評(píng)價(jià)模型1.5軟件開發(fā)技術(shù)1.6軟件開發(fā)過程的建模與文檔第一章軟件開發(fā)過程1.1軟件工程的概述1.1.1軟件工程的發(fā)展歷程1.1.2軟件的特征和分類1.1.3軟件危機(jī)1.1.4軟件工程概念和基本原則1.1.1軟件工程的發(fā)展歷程“個(gè)體化”的手工開發(fā)主要用于任務(wù)相對(duì)單一的科學(xué)或工程計(jì)算;由于問題相對(duì)簡單,軟件往往等同于程序;程序的編寫者和使用者往往是同一個(gè)(一組)領(lǐng)域?qū)<?;主要使用低?jí)語言(機(jī)器語言、匯編語言)直接面對(duì)機(jī)器編寫程序代碼;沒有系統(tǒng)性的方法和指導(dǎo)思想,對(duì)軟件開發(fā)工作也沒有任何管理。“軟件作坊”多道程序、多用戶概念開始出現(xiàn)并變得普及,操作系統(tǒng)、數(shù)據(jù)庫技術(shù)、高級(jí)編程語言也陸續(xù)出現(xiàn)了;軟件應(yīng)用范圍與系統(tǒng)功能的增多促使軟件產(chǎn)品數(shù)量急劇膨脹,軟件也變得更加復(fù)雜?;具€是采用早期的個(gè)體化開發(fā)方法,“軟件工廠”軟件也由單純的程序發(fā)展成為了包括程序、數(shù)據(jù)、文檔等諸多要素集合的軟件產(chǎn)品。用工程化的概念、原理、技術(shù)和方法來開發(fā)和維護(hù)軟件1.1.2軟件的特征和分類軟件特征軟件的開發(fā)運(yùn)行必須依賴于特定的計(jì)算機(jī)系統(tǒng)環(huán)境,比如硬件、網(wǎng)絡(luò)配置和支撐軟件等等;軟件是由開發(fā)或工程化而形成的,而不是傳統(tǒng)意義上的制造產(chǎn)生的。具有復(fù)雜性、不可見性和易變性,難以處理;軟件復(fù)制非常簡單,軟件不會(huì)“磨損”;大多數(shù)軟件是定制的,絕大部分的軟件都是新的,而且是不斷變換的。1.1.2軟件的特征和分類軟件分類按功能可將軟件劃分為系統(tǒng)軟件、支撐軟件、應(yīng)用軟件;按工作方式將軟件劃分為實(shí)時(shí)處理軟件、分時(shí)處理軟件、交互式軟件、批處理軟件;按規(guī)模將軟件劃分微型軟件、小型軟件、中型軟件、大型軟件;按服務(wù)對(duì)象將軟件劃分通用軟件、定制軟件;按照軟件是否分布式布置分為單機(jī)軟件、網(wǎng)絡(luò)軟件。1.1.3軟件危機(jī)

軟件危機(jī)就是人們?cè)陂_發(fā)和維護(hù)軟件時(shí)遇到一系列的問題,具體體現(xiàn)在以下方面:軟件開發(fā)進(jìn)度難以預(yù)測,軟件開發(fā)成本難以控制用戶對(duì)產(chǎn)品功能難以滿足軟件產(chǎn)品質(zhì)量無法保證軟件產(chǎn)品難以維護(hù)軟件缺少適當(dāng)?shù)奈臋n資料1.1.3軟件危機(jī)

軟件危機(jī)的原因軟件危機(jī)的原因有以下幾點(diǎn):從事軟件開發(fā)的人員對(duì)這個(gè)產(chǎn)業(yè)認(rèn)識(shí)不充分、缺乏經(jīng)驗(yàn);缺乏統(tǒng)一的、標(biāo)準(zhǔn)化的開發(fā)過程設(shè)計(jì),缺乏規(guī)范化的方法論進(jìn)行指導(dǎo);忽視軟件開發(fā)前期的需求分析;文檔資料不齊全、不準(zhǔn)確;忽視測試的重要性;沒有完善的質(zhì)量保證體系;開發(fā)團(tuán)隊(duì)內(nèi)部交流不順暢、不充分;不重視維護(hù),或由于以上原因造成維護(hù)工作的困難。1.1.4軟件工程概念和基本原則

軟件工程概念

是人們?yōu)榱艘驅(qū)浖C(jī),把軟件系統(tǒng)的開發(fā)等同視為工程項(xiàng)目,以借鑒傳統(tǒng)工程的思想、原則、方法,以提高質(zhì)量、降低成本、控制工期為目的地指導(dǎo)計(jì)算機(jī)軟件的開發(fā)和維護(hù)。

簡言之,就是按時(shí)、按質(zhì)、按成本地進(jìn)行計(jì)算機(jī)軟件系統(tǒng)的開發(fā)和維護(hù)。1.1.4軟件工程概念和基本原則

軟件工程的基本原則用分階段的生命周期計(jì)劃嚴(yán)格管理。堅(jiān)持進(jìn)行階段評(píng)審;實(shí)行嚴(yán)格的產(chǎn)品控制;采用現(xiàn)代程序設(shè)計(jì)技術(shù);結(jié)果應(yīng)能夠清楚地審查;開發(fā)小組的人員應(yīng)小而精;承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性1.2軟件生命周期1.2.1軟件定義期1.2.2軟件開發(fā)期1.2.3軟件運(yùn)行和維護(hù)期1.2.1軟件定義期

軟件定義是由軟件系統(tǒng)分析人員和用戶合作,確定軟件是什么,針對(duì)有待開發(fā)的軟件系統(tǒng)進(jìn)行分析、規(guī)劃和規(guī)格描述,為今后的軟件開發(fā)做準(zhǔn)備。(1)軟件任務(wù)立項(xiàng)

需要針對(duì)項(xiàng)目的名稱、性質(zhì)、目標(biāo)、意義和規(guī)模等作出回答,以此獲得對(duì)準(zhǔn)備著手開發(fā)的軟件系統(tǒng)的最高層描述。(2)項(xiàng)目可行性分析

可行性分析是針對(duì)準(zhǔn)備進(jìn)行的軟件項(xiàng)目進(jìn)行的可行性風(fēng)險(xiǎn)評(píng)估。因此,需要對(duì)準(zhǔn)備開發(fā)的軟件系統(tǒng)提出高層模型,并根據(jù)高層模型的特征,從技術(shù)、經(jīng)濟(jì)和操作對(duì)項(xiàng)目作出是否值得往下進(jìn)行的回答。1.2.1軟件定義期(3)制定項(xiàng)目計(jì)劃

針對(duì)項(xiàng)目的開展,從人員、組織、進(jìn)度、資金、設(shè)備等多個(gè)方面進(jìn)行合理的規(guī)劃,并制定項(xiàng)目開發(fā)計(jì)劃。(4)軟件需求分析

軟件需求分析是軟件規(guī)格描述的具體化與細(xì)節(jié)化,是軟件定義時(shí)期需要達(dá)到的目標(biāo)。需求分析要求以用戶需求為基本依據(jù),從功能、性能、數(shù)據(jù)、操作等多個(gè)方面,對(duì)軟件系統(tǒng)給出完整、準(zhǔn)確、具體的描述,用于確定軟件規(guī)格。

在軟件項(xiàng)目進(jìn)行過程中,需求分析是從軟件定義到軟件開發(fā)的最關(guān)鍵步驟,其結(jié)論不僅是今后軟件開發(fā)的基本依據(jù),同時(shí)也是今后用戶對(duì)軟件產(chǎn)品進(jìn)行驗(yàn)收的基本依據(jù)。1.2.2軟件開發(fā)期

在對(duì)軟件規(guī)格完成定義以后,接著可以在此基礎(chǔ)上對(duì)軟件實(shí)施開發(fā),并由此制作出軟件產(chǎn)品。這個(gè)時(shí)期需要分階段地完成以下幾項(xiàng)工作。(1)軟件概要設(shè)計(jì)(也稱總體設(shè)計(jì))

概要設(shè)計(jì)是從總體上對(duì)軟件給出設(shè)計(jì)說明。

軟件開發(fā)團(tuán)隊(duì)有開發(fā)人員、高層管理者、安裝配置人員、運(yùn)行維護(hù)人員、操作者(用戶),不同的人員對(duì)于軟件構(gòu)成有不同的觀察角度,所關(guān)心的軟件系統(tǒng)構(gòu)成元素有所不同。應(yīng)該針對(duì)不同的開發(fā)團(tuán)隊(duì)成員,設(shè)計(jì)他們各自所關(guān)心的系統(tǒng)未來結(jié)構(gòu)。

開發(fā)人員關(guān)系軟件系統(tǒng)的構(gòu)造、接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)環(huán)境等;

高層管理者關(guān)心系統(tǒng)地構(gòu)造;

安裝配置人員、、運(yùn)行維護(hù)人員關(guān)心硬件系統(tǒng)和相關(guān)軟件配置;

軟件實(shí)際操作者關(guān)系功能模塊結(jié)構(gòu)。

1.2.2軟件開發(fā)期(2)軟件詳細(xì)設(shè)計(jì)

詳細(xì)設(shè)計(jì)以概要設(shè)計(jì)為依據(jù),用于確定軟件結(jié)構(gòu)中每個(gè)模塊的內(nèi)部細(xì)節(jié),為編寫程序提供最直接的依據(jù)。詳細(xì)設(shè)計(jì)需要從實(shí)現(xiàn)每個(gè)模塊功能的程序算法和模塊內(nèi)部的局部數(shù)據(jù)結(jié)構(gòu)等細(xì)節(jié)內(nèi)容上給出設(shè)計(jì)說明。(3)編碼和單元測試

編碼是對(duì)軟件的實(shí)現(xiàn),一般由程序員完成,并以獲得源程序基本模塊為目標(biāo)。編碼必須按照“詳細(xì)設(shè)計(jì)說明書”的要求逐個(gè)模塊地實(shí)現(xiàn)。

為了方便程序調(diào)試,針對(duì)基本模塊的單元測試也往往和編碼結(jié)合在一起進(jìn)行。單元測試也以詳細(xì)設(shè)計(jì)結(jié)果為依據(jù),用于檢驗(yàn)每個(gè)基本模塊在功能、算法與數(shù)據(jù)結(jié)構(gòu)上是否符合設(shè)計(jì)要求。1.2.2軟件開發(fā)期(4)系統(tǒng)集成測試

系統(tǒng)集成是根據(jù)概要設(shè)計(jì)中的軟件結(jié)構(gòu),把經(jīng)過測試的模塊,按照某種選定的集成策略,例如漸增集成策略,將系統(tǒng)組裝起來。在組裝過程中,需要對(duì)整個(gè)系統(tǒng)進(jìn)行集成測試,以確保系統(tǒng)在技術(shù)上符合設(shè)計(jì)要求,在應(yīng)用上滿足需求規(guī)格要求。(5)系統(tǒng)確認(rèn)驗(yàn)證

在完成對(duì)系統(tǒng)的集成之后,接著還要對(duì)系統(tǒng)進(jìn)行確認(rèn)驗(yàn)證。

系統(tǒng)確認(rèn)驗(yàn)證需要以用戶為主體,以需求規(guī)格說明書中對(duì)軟件的定義為依據(jù),由此對(duì)軟件的各項(xiàng)規(guī)格進(jìn)行逐項(xiàng)地確認(rèn),以確保已經(jīng)完成的軟件系統(tǒng)與需求規(guī)格的一致性。

為了方便用戶在系統(tǒng)確認(rèn)期間能夠積極參入,也為了系統(tǒng)在以后的運(yùn)行過程中能夠被用戶正確使用,這個(gè)時(shí)期往往還需要以一定的方式對(duì)用戶進(jìn)行必要的培訓(xùn)。

在完成對(duì)軟件的驗(yàn)收之后,軟件系統(tǒng)可以交付用戶使用,并對(duì)項(xiàng)目進(jìn)行總結(jié)。1.2.3軟件運(yùn)行和維護(hù)期

軟件系統(tǒng)的運(yùn)行是一個(gè)比較長久的過程,跟軟件開發(fā)機(jī)構(gòu)有關(guān)的主要任務(wù)是對(duì)系統(tǒng)進(jìn)行經(jīng)常性的有效維護(hù)。

軟件的維護(hù)過程,也就是修正軟件錯(cuò)誤,完善軟件功能,由此使軟件不斷進(jìn)化升級(jí)的過程,以使系統(tǒng)更加持久地滿足用戶的需要。因此,對(duì)軟件的維護(hù)也可以看成為對(duì)軟件的再一次開發(fā)。

對(duì)軟件的維護(hù)主要涉及三個(gè)方面的任務(wù),即改正性維護(hù)、適應(yīng)性維護(hù)和完善性維護(hù)。1.3軟件開發(fā)過程模型

軟件過程模型是人們?cè)谲浖_發(fā)實(shí)踐中總結(jié)出來的、適用于具有某一類特征項(xiàng)目的標(biāo)準(zhǔn)開發(fā)過程。

軟件開發(fā)模型提供了一個(gè)框架并把必要活動(dòng)映射這個(gè)框架中,包括主要的開發(fā)階段、各個(gè)階段要完成的主要任務(wù)和活動(dòng)、各個(gè)階段的輸入輸出。

常見的軟件開發(fā)過程模型很多,包括瀑布模型、演化模型(包括原型模型、增量模型和螺旋模型)、噴泉模型、RUP過程等等。

在實(shí)踐中,軟件項(xiàng)目開發(fā)團(tuán)隊(duì)必須依據(jù)擬開發(fā)項(xiàng)目的特點(diǎn)以及對(duì)用戶需求的把握程度,選擇某一開發(fā)過程模型做一定的剪裁,設(shè)計(jì)出適合具體項(xiàng)目的軟件開發(fā)過程。1.3軟件開發(fā)過程模型1.3.1瀑布模型1.3.2原型模型1.3.3增量模型1.3.4螺旋模型1.3.5噴泉模型1.3.6統(tǒng)一軟件開發(fā)過程(RUP)1.3.1瀑布模型1.3.1瀑布模型

瀑布模型(也稱線性順序模型)誕生于20世紀(jì)70年代,是最早出現(xiàn)并獲得最廣泛應(yīng)用的軟件過程模型。瀑布模型中的“瀑布”意味著過程中的開發(fā)活動(dòng)是嚴(yán)格線形的,就像山頂傾瀉下來的水,逐級(jí)下落。

瀑布模型是一種基于里程碑的、階段性的過程模型,它所提供的里程碑式的軟件開發(fā)工作流程,文檔是瀑布模型中每個(gè)階段的成果體現(xiàn);模型的回溯性很差。因此,瀑布模型要求項(xiàng)目嚴(yán)格按規(guī)程推進(jìn),瀑布模型從上至下按順序進(jìn)行的幾個(gè)階段有固定的銜接次序,瀑布模型中的階段只能逐級(jí)到達(dá),不能跨越。每個(gè)階段都有明確的任務(wù),都需要產(chǎn)生確定的成果。并且前一階段輸出的成果被作為后一階段的輸入條件,在某個(gè)階段的工作任務(wù)已經(jīng)完成,并準(zhǔn)備進(jìn)入到下一個(gè)階段之前,需要針對(duì)這個(gè)階段的文檔進(jìn)行嚴(yán)格的評(píng)審,直到確認(rèn)以后才能啟動(dòng)下一階段的工作。1.3.1瀑布模型

瀑布模型必須等到所有開發(fā)工作全部作完以后才能獲得可以交付的軟件產(chǎn)品,它適用于具有以下特征的項(xiàng)目:需求穩(wěn)定、變化很小且開發(fā)人員能夠一次性獲取全部需求的項(xiàng)目;軟件開發(fā)人員具有豐富經(jīng)驗(yàn),對(duì)于應(yīng)用領(lǐng)域非常熟悉;軟件項(xiàng)目本身的風(fēng)險(xiǎn)很低。1.3.2原型模型1.3.2原型模型1.快速原型方法

快速原型方法是原型模型在軟件分析、設(shè)計(jì)階段的應(yīng)用,用來解決用戶對(duì)軟件系統(tǒng)在需求上的模糊認(rèn)識(shí),或用來試探某種設(shè)計(jì)是否能夠獲得預(yù)期結(jié)果。快速原型方法具有以下一些特點(diǎn):快速原型用來獲取用戶需求,或是用來試探設(shè)計(jì)是否有效。一旦需求或設(shè)計(jì)確定,原型就將被拋棄。因此,快速原型要求快速構(gòu)建、容易修改,以節(jié)約原型創(chuàng)建成本、加快開發(fā)速度。快速原型往往采用一些快速生成工具創(chuàng)建,例如4GL語言。VisualBasic、Delphi等基于組件的可視化開發(fā)工具是非常有效的快速原型創(chuàng)建工具,,也被應(yīng)用于原型創(chuàng)建和進(jìn)化。快速原型是暫時(shí)使用的,因此并不要求完整。它往往針對(duì)某個(gè)局部問題建立專門原型,如界面原型、工作流原型、查詢?cè)偷?。快速原型不能貫穿軟件的整個(gè)生命周期,它需要和其他的過程模型相結(jié)合才能產(chǎn)生作用。例如,在瀑布模型中應(yīng)用快速原型,以解決瀑布模型在需求分析時(shí)期存在的不足。1.3.2原型模型2.原型進(jìn)化模型

原型進(jìn)化對(duì)開發(fā)過程的考慮是,針對(duì)有待開發(fā)的軟件系統(tǒng),先開發(fā)一個(gè)原型系統(tǒng)給用戶使用,然后根據(jù)用戶使用情況的意見反饋,對(duì)原型系統(tǒng)不斷修改,使它逐步接近并最終到達(dá)開發(fā)目標(biāo)。它具有以下兩個(gè)特點(diǎn):原型進(jìn)化模型將軟件的需求定義、產(chǎn)品開發(fā)和有效性驗(yàn)證放在同一個(gè)工作進(jìn)程中交替或并行運(yùn)作。因此,在獲得了軟件需求框架以后,例如軟件的基本功能被確定以后,就可以直接進(jìn)入到對(duì)軟件的開發(fā)中。原型進(jìn)化模型是通過不斷發(fā)布新的軟件版本而使軟件逐步完善的,因此,這種開發(fā)模式特別適合于那些用戶急需的軟件產(chǎn)品開發(fā)。它能夠快速地向用戶交付可以投入實(shí)際運(yùn)行的軟件成果,并能夠很好地適應(yīng)軟件用戶對(duì)需求規(guī)格的變更。1.3.2原型模型

原型模型適用于具有以下特征的軟件項(xiàng)目開發(fā):對(duì)現(xiàn)有軟件產(chǎn)品進(jìn)行升級(jí)或功能完善;開發(fā)人員和用戶交流困難,需求獲取困難;開發(fā)人員對(duì)技術(shù)熟悉或把握性不大;具有支持快速開發(fā)的工具。

原型進(jìn)化模型的有點(diǎn)在于靈活性好,簡單快速,能夠適應(yīng)軟件需求的中途變更;

缺點(diǎn)在于需要額外的花費(fèi)來構(gòu)造原型,且缺乏有效的管理規(guī)程,軟件版本的快速變更還可能損傷軟件的內(nèi)部結(jié)構(gòu),使其缺乏整體性和穩(wěn)定性。1.3.3增量模型1.3.3增量模型

增量模型在整體上按照瀑布模型的流程實(shí)施項(xiàng)目開發(fā),以方便對(duì)項(xiàng)目的管理;但在軟件的實(shí)際創(chuàng)建中,則將軟件系統(tǒng)按功能分解為許多增量構(gòu)件,并以構(gòu)件為單位逐個(gè)地創(chuàng)建與交付,直到全部增量構(gòu)件創(chuàng)建完畢,并都被集成到系統(tǒng)之中交付用戶使用。增量模型具有以下特點(diǎn):開發(fā)初期的需求定義可以是大概的描述,只是用來確定軟件的基本結(jié)構(gòu),而對(duì)于需求的細(xì)節(jié)性描述,則可以延遲到增量構(gòu)件開發(fā)時(shí)進(jìn)行,以增量構(gòu)件為單位逐個(gè)地進(jìn)行需求補(bǔ)充;可以靈活安排增量構(gòu)件的開發(fā)順序,并逐個(gè)實(shí)現(xiàn)和交付使用。這不僅有利于用戶盡早地用上系統(tǒng),而且用戶在以增量方式使用系統(tǒng)的過程中,還能夠獲得對(duì)軟件系統(tǒng)后續(xù)構(gòu)件的需求經(jīng)驗(yàn);軟件系統(tǒng)是逐漸擴(kuò)展的,因此,開發(fā)者可以通過對(duì)諸多構(gòu)件的開發(fā),逐步積累開發(fā)經(jīng)驗(yàn),從總體上降低軟件項(xiàng)目的技術(shù)風(fēng)險(xiǎn),還有利于技術(shù)復(fù)用;核心增量構(gòu)件具有最高優(yōu)先權(quán),將會(huì)被最先交付,而隨著后續(xù)構(gòu)件不斷被集成進(jìn)系統(tǒng),這個(gè)核心構(gòu)件將會(huì)受到最多次數(shù)的測試從而具有最高的可靠性。1.3.3增量模型

增量模型的工作流程,它被分成以下三個(gè)階段:(1)在系統(tǒng)開發(fā)的前期階段,為了確保系統(tǒng)具有優(yōu)良的結(jié)構(gòu),仍需要針對(duì)整個(gè)系統(tǒng)進(jìn)行需求分析和概要設(shè)計(jì),需要確定系統(tǒng)的基于增量構(gòu)件的需求框架,并以需求框架中構(gòu)件的組成及關(guān)系為依據(jù),完成對(duì)軟件系統(tǒng)的體系結(jié)構(gòu)設(shè)計(jì)。(2)在完成軟件體系結(jié)構(gòu)設(shè)計(jì)之后,可以進(jìn)行增量構(gòu)件的開發(fā)。這個(gè)時(shí)候,需要對(duì)構(gòu)件進(jìn)行需求細(xì)化,然后進(jìn)行設(shè)計(jì)、編碼測試和有效性驗(yàn)證。(3)在完成了對(duì)某個(gè)增量構(gòu)件的開發(fā)之后,需要將該構(gòu)件集成到系統(tǒng)中去,并對(duì)已經(jīng)發(fā)生了改變的系統(tǒng)重新進(jìn)行有效性驗(yàn)證,然后再繼續(xù)下一個(gè)增量構(gòu)件的開發(fā)。1.3.3增量模型

增量模型主要適用于有一下特點(diǎn)的項(xiàng)目:待開發(fā)系統(tǒng)能夠被模塊化;軟件產(chǎn)品可以分批次交付;軟件開發(fā)人員對(duì)應(yīng)用領(lǐng)域不熟悉,或一次性開發(fā)的難度很大;項(xiàng)目管理人員把握全局的水平很高。1.3.3增量模型

比較瀑布模型、原型進(jìn)化模型,增量模型具有非常顯著的優(yōu)越性。

但是,增量模型對(duì)軟件設(shè)計(jì)有更高的技術(shù)要求,特別是對(duì)軟件體系結(jié)構(gòu),要求它具有很好的開放性與穩(wěn)定性,能夠順利地實(shí)現(xiàn)構(gòu)件的集成。在把每個(gè)新的構(gòu)件集成到已建軟件系統(tǒng)的結(jié)構(gòu)中的時(shí)候,一般要求這個(gè)新增的構(gòu)件應(yīng)該盡量少地改變?cè)瓉硪呀ǖ能浖Y(jié)構(gòu)。因此增量構(gòu)件要求具有相當(dāng)好的功能獨(dú)立性,其接口應(yīng)該簡單,以方便集成時(shí)與系統(tǒng)的連接。1.3.4螺旋模型1.3.4螺旋模型

軟件開發(fā)過程中存在許多方面的風(fēng)險(xiǎn)。

由于軟件風(fēng)險(xiǎn)可能在不同程度上損害軟件開發(fā)過程,并由此影響軟件產(chǎn)品質(zhì)量,因此,在軟件開發(fā)過程中需要及時(shí)地識(shí)別風(fēng)險(xiǎn)、有效地分析風(fēng)險(xiǎn),并能夠采取適當(dāng)措施消除或減少風(fēng)險(xiǎn)的危害。

螺旋模型即是一種引入了風(fēng)險(xiǎn)分析與規(guī)避機(jī)制的過程模型,是瀑布模型、快速原型方法和風(fēng)險(xiǎn)分析方法的有機(jī)結(jié)合。1.3.4螺旋模型

螺旋模型用螺旋線表示軟件項(xiàng)目的進(jìn)行情況,其中,螺旋線中的每個(gè)回路表示軟件過程的一個(gè)階段。最里面的回路與項(xiàng)目可行性有關(guān),接下來的一個(gè)回路與軟件需求定義有關(guān),而再下一個(gè)回路則與軟件系統(tǒng)設(shè)計(jì)有關(guān),以此類推。

螺旋線中的每個(gè)回路都被分成為四個(gè)部分:(1)目標(biāo)設(shè)置:確定項(xiàng)目的階段性目標(biāo),分析項(xiàng)目風(fēng)險(xiǎn)。(2)風(fēng)險(xiǎn)評(píng)估:對(duì)風(fēng)險(xiǎn)進(jìn)行詳細(xì)地評(píng)估分析,并確定適當(dāng)?shù)娘L(fēng)險(xiǎn)規(guī)避措施。(3)開發(fā)軟件:根據(jù)對(duì)風(fēng)險(xiǎn)的認(rèn)識(shí),決定采用合適的軟件開發(fā)模型,實(shí)施軟件開發(fā)。(4)制定計(jì)劃:對(duì)項(xiàng)目進(jìn)行階段評(píng)審,制定項(xiàng)目下一個(gè)階段的工作計(jì)劃。1.3.4螺旋模型

對(duì)軟件項(xiàng)目進(jìn)行風(fēng)險(xiǎn)分析也是需要費(fèi)用的,假如項(xiàng)目風(fēng)險(xiǎn)分析費(fèi)用過高,甚至超過項(xiàng)目開發(fā)費(fèi)用,將得不償失。實(shí)際上,只有較大型的項(xiàng)目才有較高的風(fēng)險(xiǎn),才有進(jìn)行各個(gè)階段詳細(xì)風(fēng)險(xiǎn)分析的必要。因此,螺旋模型主要應(yīng)用于大型軟件項(xiàng)目之中。1.3.5噴泉模型1.3.5噴泉模型

噴泉模型是專門針對(duì)面向?qū)ο筌浖_發(fā)方法而提出的?!皣娙币辉~用于形象地表達(dá)面向?qū)ο筌浖_發(fā)過程中的迭代和無縫過渡。

在面向?qū)ο蠓椒ㄖ?,?duì)象既是對(duì)現(xiàn)實(shí)問題中實(shí)體的抽象,也是構(gòu)造軟件系統(tǒng)的基本元素。因此,建立對(duì)象模型在面向?qū)ο蠓椒ㄖ?,既可以用于分析,也可以用于設(shè)計(jì),而且分析階段所獲得的對(duì)象框架模型可以無縫過渡到設(shè)計(jì)階段,以作為軟件實(shí)現(xiàn)的依據(jù)。1.3.5噴泉模型

噴泉模型基于面向?qū)ο蠓椒ㄋ鶐淼谋憷?,?duì)軟件的分析、設(shè)計(jì)和實(shí)現(xiàn)按照迭代的方式交替進(jìn)行,并通過進(jìn)化的方式,使軟件分階段逐漸完整、逐步求精。

例如,第一階段軟件開發(fā)的目標(biāo)可以是軟件的基本功能;第二階段可以是在第一階段建立的軟件的基礎(chǔ)上,對(duì)軟件進(jìn)行進(jìn)一步的完善,并實(shí)現(xiàn)軟件的主要功能;第三階段則是在第二階段的基礎(chǔ)上,對(duì)軟件進(jìn)行加完整的開發(fā),并以實(shí)現(xiàn)軟件全部功能作為創(chuàng)建目標(biāo)。1.3.6統(tǒng)一軟件開發(fā)過程(RUP)1.3.6統(tǒng)一軟件開發(fā)過程(RUP)RUP(RationalUnifiedProcess)是Rational公司提出的基于UML的一種面向?qū)ο筌浖_發(fā)過程模型。它解決了螺旋模型的可操作性問題,采用迭代和增量的開發(fā)策略,以用例為驅(qū)動(dòng),集成了多種軟件開發(fā)過程模型的特點(diǎn)。

RUP的特點(diǎn)如下:RUP是一個(gè)可剪裁定制的軟件開發(fā)過程模型。任何開發(fā)團(tuán)隊(duì)或開發(fā)企業(yè)都可以以RUP為基礎(chǔ),設(shè)計(jì)適用自身和項(xiàng)目特點(diǎn)的開發(fā)過程。RUP為如何適用UML提供了指導(dǎo),強(qiáng)調(diào)建立和維護(hù)模型,而不是側(cè)重于產(chǎn)生大量的書面文檔。RUP能夠有效提高開發(fā)效率。使用RUP,開發(fā)團(tuán)隊(duì)可共享統(tǒng)一語言、過程和開發(fā)軟件的模型視圖。1.3.6統(tǒng)一軟件開發(fā)過程(RUP)RUP吸收了許多在實(shí)踐中已經(jīng)證明的軟件開發(fā)實(shí)踐經(jīng)驗(yàn),包括:迭代式開發(fā)使用基于組件的體系結(jié)構(gòu)可視化的軟件建模強(qiáng)調(diào)需求管理驗(yàn)證軟件質(zhì)量嚴(yán)格控制軟件變化1.3.6統(tǒng)一軟件開發(fā)過程(RUP)RUP過程的軟件開發(fā)生命周期在時(shí)間上被分解為四個(gè)順序的階段,分別是初始、細(xì)化、構(gòu)造和交付。每個(gè)階段都允許多次迭代,并結(jié)束于一個(gè)主要的里程碑,在每個(gè)階段的結(jié)尾執(zhí)行一次評(píng)估以確定本階段的目標(biāo)是否已經(jīng)滿足。如果評(píng)估結(jié)果令人滿意的話,可以允許項(xiàng)目進(jìn)入下一個(gè)階段。

初始階段的目標(biāo)是為系統(tǒng)建立商業(yè)案例并確定項(xiàng)目的邊界;

細(xì)化階段的目標(biāo)是分析問題領(lǐng)域,建立健全的體系結(jié)構(gòu)基礎(chǔ),編制項(xiàng)目計(jì)劃,淘汰項(xiàng)目中最高風(fēng)險(xiǎn)的元素;

在構(gòu)建階段,所有剩余的構(gòu)件和應(yīng)用程序功能被開發(fā)并集成為產(chǎn)品,所有的功能被詳細(xì)測試;

交付階段的重點(diǎn)是確保軟件對(duì)最終用戶是可用的。1.3.6統(tǒng)一軟件開發(fā)過程(RUP)RUP中有9個(gè)核心工作流,其中業(yè)務(wù)建模、需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試、發(fā)布為核心過程工作流,

配置和變更管理、項(xiàng)目管理、環(huán)境為核心支持工作流。

從RUP的核心工作流的構(gòu)成可以看到,除了業(yè)務(wù)建模,RUP的工作任務(wù)和瀑布過程模型的差異不大,說明RUP更強(qiáng)調(diào)以(現(xiàn)實(shí)系統(tǒng)的)的業(yè)務(wù)分析作為用戶需求的主要收集來源,這在管理信息系統(tǒng)之類的軟件項(xiàng)目中尤為重要。

以現(xiàn)實(shí)系統(tǒng)分析作為需求分析的基礎(chǔ),是RUP過程與其他過程模型的顯著不同。本書結(jié)合瀑布過程模型和RUP過程,設(shè)計(jì)了適用于管理信息系統(tǒng)之類軟件項(xiàng)目的開發(fā)過程模型(具體見1.6節(jié)),設(shè)計(jì)的過程模型具有方便實(shí)用、各階段模型銜接性好的特點(diǎn)。開發(fā)人員或企業(yè)也可以此過程模型為基礎(chǔ),設(shè)計(jì)適用于自身和特定項(xiàng)目的軟件開發(fā)過程。1.4軟件企業(yè)過程能力評(píng)價(jià)模型

軟件開發(fā)團(tuán)隊(duì)通常需要對(duì)過程模型進(jìn)行改造、裁剪,以實(shí)現(xiàn)對(duì)項(xiàng)目開發(fā)活動(dòng)的組織和軟件質(zhì)量控制。在軟件開發(fā)企業(yè)級(jí),也需要穩(wěn)定和規(guī)范的開發(fā)過程,作為衡量和評(píng)價(jià)其軟件開發(fā)能力和項(xiàng)目開發(fā)質(zhì)量的基準(zhǔn)。

軟件工程研究所(SEI)提出了一個(gè)五級(jí)別的過程成熟度綜合模型,可以很好地衡量和評(píng)價(jià)一個(gè)軟件開發(fā)組織的軟件過程能力,即所達(dá)到的過程成熟度。該模型定義了在不同的過程成熟度級(jí)別上所需要的關(guān)鍵活動(dòng),1.4軟件企業(yè)過程能力評(píng)價(jià)模型第一級(jí):初始級(jí)——軟件過程的特征是無序的,有時(shí)甚至是混亂的。任何軟件開發(fā)組織,都具有這一級(jí)的能力。第二級(jí):可重復(fù)級(jí)——建立了基本的項(xiàng)目管理過程,能夠追蹤費(fèi)用、進(jìn)度和功能。只有那些能夠?qū)⒊晒?xiàng)目經(jīng)驗(yàn)用于未來項(xiàng)目的企業(yè)才具有二級(jí)能力。第三級(jí):定義級(jí)——用于管理和工程活動(dòng)的軟件過程已經(jīng)文檔化、標(biāo)準(zhǔn)化,并與整個(gè)組織的軟件過程相集成。具有第三級(jí)能力的開發(fā)企業(yè)已經(jīng)將過往項(xiàng)目的成功經(jīng)驗(yàn)標(biāo)準(zhǔn)化,并用于未來項(xiàng)目。第四級(jí):管理級(jí)——軟件過程和產(chǎn)品質(zhì)量的詳細(xì)度量數(shù)據(jù)被收集,通過這些度量數(shù)據(jù),軟件過程和產(chǎn)品能夠被定量地理解和控制。擁有該級(jí)能力的企業(yè)能夠?qū)?xiàng)目活動(dòng)進(jìn)行定量估算、控制,因此能夠按時(shí)按成本按質(zhì)量地保證項(xiàng)目開發(fā)。第五級(jí):優(yōu)化級(jí)——通過定量的反饋,進(jìn)行不斷的過程改進(jìn),這些反饋來自于過程或通過測試新的想法和技術(shù)而得到。擁有第五級(jí)能力的企業(yè)能夠?qū)⑿碌募夹g(shù)、方法、工具無縫嵌入到企業(yè)標(biāo)準(zhǔn)中,企業(yè)能夠很好地適應(yīng)社會(huì)技術(shù)經(jīng)濟(jì)環(huán)境、自主成長。1.5軟件開發(fā)技術(shù)1.5.1結(jié)構(gòu)化技術(shù)1.5.2面向?qū)ο蠹夹g(shù)1.5.3組件技術(shù)1.5.1結(jié)構(gòu)化技術(shù)

結(jié)構(gòu)化方法是一種傳統(tǒng)的軟件開發(fā)方法,它是由結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)和結(jié)構(gòu)化編程三部分有機(jī)組合而成的。結(jié)構(gòu)化思想強(qiáng)調(diào)以數(shù)據(jù)為中心,自頂向下、逐步細(xì)化進(jìn)行問題的求解(或項(xiàng)目的開發(fā))。結(jié)構(gòu)化方法最先應(yīng)用在編碼實(shí)現(xiàn)階段(結(jié)構(gòu)化實(shí)現(xiàn),StructuredProgramming,SP),并逐步向設(shè)計(jì)階段(結(jié)構(gòu)化設(shè)計(jì),StructuredDesign,SD)、需求分析階段(結(jié)構(gòu)化分析,Structured

Analysis,SA)擴(kuò)展。

結(jié)構(gòu)化方法學(xué)是一個(gè)以數(shù)據(jù)為中心的思想體系,它的基本要點(diǎn)是:自頂向下、逐步求精、模塊化設(shè)計(jì)、結(jié)構(gòu)化編碼。通過把一個(gè)復(fù)雜問題的求解過程分階段進(jìn)行,而且這種分解是自頂向下,逐層分解,使得每個(gè)階段處理的問題都控制在人們?nèi)菀桌斫夂吞幚淼姆秶鷥?nèi)。1.5.1結(jié)構(gòu)化技術(shù)在業(yè)務(wù)分析時(shí),用業(yè)務(wù)流程描述業(yè)務(wù)操作過程,業(yè)務(wù)流程中的臺(tái)帳就是業(yè)務(wù)操作的數(shù)據(jù),逐步細(xì)化的業(yè)務(wù)流程和業(yè)務(wù)流程中的臺(tái)帳體現(xiàn)出結(jié)構(gòu)化思想;在需求分析過程,以逐步細(xì)化的數(shù)據(jù)流圖(DFD)和數(shù)據(jù)字典為主要表達(dá)手段描述擬開發(fā)系統(tǒng)。通過逐步細(xì)化數(shù)據(jù)流圖中的加工,對(duì)相應(yīng)的數(shù)據(jù)做細(xì)化、并將它們分離開來。數(shù)據(jù)流圖中的數(shù)據(jù)流以及逐步細(xì)化的數(shù)據(jù)流圖都體現(xiàn)出結(jié)構(gòu)化思想。結(jié)構(gòu)化設(shè)計(jì)以模塊化為基點(diǎn),以信息隱蔽化、局部化和保持模塊獨(dú)立為準(zhǔn)則。概要設(shè)計(jì)(也稱總體設(shè)計(jì))時(shí),以需求分析的數(shù)據(jù)流圖和數(shù)據(jù)字典作為輸入,得到軟件系統(tǒng)的基本框架,包括系統(tǒng)功能結(jié)構(gòu)(用功能結(jié)構(gòu)圖描述)、軟件系統(tǒng)結(jié)構(gòu)(用系統(tǒng)流程圖描述)、軟件模塊結(jié)構(gòu)(用IPO圖描述)和數(shù)據(jù)庫(用ER圖、數(shù)據(jù)庫邏輯結(jié)構(gòu)、數(shù)據(jù)庫物理結(jié)構(gòu)描述),其中反映數(shù)據(jù)流向的系統(tǒng)流程圖、逐步細(xì)化的IPO圖和數(shù)據(jù)庫設(shè)計(jì)中的結(jié)構(gòu)化思想都體現(xiàn)得很明顯;詳細(xì)設(shè)計(jì)是明確系統(tǒng)內(nèi)部的實(shí)現(xiàn)細(xì)節(jié),每個(gè)過程(或函數(shù))都有輸入輸出數(shù)據(jù)和處理指令,處理指令采用三種基本的程序結(jié)構(gòu)(順序、選擇、循環(huán))描述。結(jié)構(gòu)化實(shí)現(xiàn)采用結(jié)構(gòu)化的高級(jí)編程語言,將詳細(xì)設(shè)計(jì)編碼為模塊。1.5.1結(jié)構(gòu)化技術(shù)

從結(jié)構(gòu)化方法在分析、設(shè)計(jì)和程序編碼階段的應(yīng)用可以看到,結(jié)構(gòu)化方法和人類思維的方式是不一致的。

在業(yè)務(wù)分析階段,業(yè)務(wù)流程中的操作和臺(tái)賬緊密聯(lián)系;

在需求分析階段,加工和數(shù)據(jù)也是相互密切關(guān)聯(lián),捆綁在一起;

在概要設(shè)計(jì)階段,設(shè)計(jì)人員分別將數(shù)據(jù)和操作分開,分別進(jìn)行軟件系統(tǒng)的模塊和數(shù)據(jù)設(shè)計(jì);

而在詳細(xì)設(shè)計(jì)階段,又必須將數(shù)據(jù)和操作密切關(guān)聯(lián)起來,設(shè)計(jì)軟件系統(tǒng)的基本單元--過程(或函數(shù))。

這種與人類思維不完全一致的方式,導(dǎo)致生產(chǎn)出來的軟件系統(tǒng)的可讀性、可理解性、可復(fù)用性不高。1.5.2面向?qū)ο蠹夹g(shù)

面向?qū)ο蠓椒ㄊ墙陙沓霈F(xiàn)并繁榮的一種新的軟件開發(fā)方法,它是由面向?qū)ο蠓治觯∣bject-Oriented

Analysis,OOA)、面向?qū)ο笤O(shè)計(jì)(Object-OrientedDesign,OOD)和面向?qū)ο缶幊蹋∣bject-OrientedProgramming,OOP)三部分有機(jī)組合而成的。

和結(jié)構(gòu)化方法一樣,面向?qū)ο蠓椒ㄒ彩亲钕葢?yīng)用在編碼實(shí)現(xiàn)階段,并逐步向設(shè)計(jì)階段、需求分析階段擴(kuò)展。

面向?qū)ο蠓椒ㄖ鲝垙目陀^世界固有的事物出發(fā)來構(gòu)造系統(tǒng),提倡用人類在現(xiàn)實(shí)生活中常用的思維方法來認(rèn)識(shí)、理解和描述客觀事物,強(qiáng)調(diào)最終建立的系統(tǒng)能夠映射問題域,也就是說,系統(tǒng)中的對(duì)象以及對(duì)象之間的關(guān)系能夠如實(shí)地反映問題域中固有事物及其關(guān)系。1.5.2面向?qū)ο蠹夹g(shù)

面向?qū)ο蟮幕靖拍畎▽?duì)象、類、消息等等。

對(duì)象:對(duì)象是要研究的任何事物。

類:類是對(duì)象的模板。

消息:消息是對(duì)象之間進(jìn)行通信的一種規(guī)格說明。一般它由三部分組成:接收消息的對(duì)象、消息名及實(shí)際變?cè)?/p>

面向?qū)ο蠹夹g(shù)的基本特征是:封裝、繼承、多態(tài)。

封裝性:封裝是一種信息隱蔽技術(shù),它體現(xiàn)于類的說明,

繼承性:繼承性是子類自動(dòng)共享父類之間數(shù)據(jù)和方法的機(jī)制。

多態(tài)性:對(duì)象根據(jù)所接收的消息而做出動(dòng)作。1.5.2面向?qū)ο蠹夹g(shù)

在面向?qū)ο蟮臉I(yè)務(wù)分析過程中,使用業(yè)務(wù)用例模型來進(jìn)行業(yè)務(wù)分析,每個(gè)業(yè)務(wù)用例就是“業(yè)務(wù)用例類”的一個(gè)對(duì)象;

在面向?qū)ο蟮姆治鲞^程中,重點(diǎn)是找到和描述問題領(lǐng)域的對(duì)象或概念,并以用例模型來描述需求模型,每個(gè)用例就是“用例類”的一個(gè)對(duì)象。

在面向?qū)ο蟮脑O(shè)計(jì)過程中,重點(diǎn)是定義軟件對(duì)象,以及它們?nèi)绾螀f(xié)作來滿足需求,用以類圖為主的設(shè)計(jì)模型來表達(dá)擬開發(fā)軟件,每個(gè)類就是“類”這種類的一個(gè)對(duì)象。

最后在編程的時(shí)候,用面向?qū)ο蟮母呒?jí)語言來描述細(xì)節(jié),這些設(shè)計(jì)的類會(huì)有具體的實(shí)現(xiàn)--對(duì)象。1.5.2面向?qū)ο蠹夹g(shù)

面向?qū)ο笏枷霃?qiáng)調(diào)以對(duì)象為中心,迭代式進(jìn)行問題的求解(或項(xiàng)目的開發(fā))。面向?qū)ο蟮姆庋b、繼承、多態(tài)特征能夠很好地支持迭代式開發(fā)。

在編程時(shí),直觀上看程序員編碼時(shí)主要是一些類,但為什么不能稱為“面向類”而稱為“面向?qū)ο蟆遍_發(fā)技術(shù)?這是因?yàn)榫幋a的各種類,假如不實(shí)例化,是不能參與到主程序中,無法提供實(shí)際的功能的。

同樣可以把這個(gè)思想推廣到設(shè)計(jì)、分析階段。1.5.2面向?qū)ο蠹夹g(shù)

由于面向?qū)ο蟮姆椒ㄇ『每梢允沟萌藗儼凑帐澜绫緛淼拿婺縼斫栴}域的模型,設(shè)計(jì)出盡可能自然地表現(xiàn)求解方法的軟件,能直接表現(xiàn)人求解問題的思維路徑(即求解問題的方法),從而使得整個(gè)軟件的開發(fā)過程中都保持完全一致的思維方式。因此開發(fā)的軟件不僅容易被人理解,而且易于維護(hù)和修改,從而會(huì)保證軟件的可靠性和可維護(hù)性,并能提高公共問題域中的軟件模塊和模塊重用的可靠性。1.5.3組件技術(shù)

從軟件開發(fā)工程化以來,軟件復(fù)用就是開發(fā)人員考慮的大問題,并產(chǎn)生了一些比較常用的軟件復(fù)用方法。

結(jié)構(gòu)化開發(fā)方法下,軟件復(fù)用方法是建立實(shí)現(xiàn)基本通用功能的“源程序”的函數(shù)庫或“二進(jìn)制”的API庫,不同的軟件可以調(diào)用它們。

在面向?qū)ο蠓椒ㄏ?,軟件?fù)用則可以通過建立類模塊來實(shí)現(xiàn)。由于類的繼承性特征,因此,基于類的復(fù)用效果比結(jié)構(gòu)化方法要好。面向?qū)ο蠹夹g(shù)可以視為一種“源語言”級(jí)別的面向?qū)ο髲?fù)用技術(shù),即在進(jìn)行復(fù)用時(shí),必須能夠訪問到基類的源代碼,這意味著被復(fù)用的代碼和擴(kuò)充代碼必須采用同一開發(fā)語言。1.5.3組件技術(shù)

組件技術(shù)是近年才發(fā)展起來的一種“二進(jìn)制”(在Java平臺(tái)上是字節(jié)碼)面向?qū)ο髲?fù)用技術(shù)。

組件可以被看作為一個(gè)盒子,它里面封裝了多個(gè)稱為組件類的類模塊。

組件比類更大、更抽象,其中包含了更多的功能,更具有通用性,更加有利于復(fù)用。

由于組件對(duì)象和調(diào)用者通常不在同一個(gè)進(jìn)程空間、甚至不在同一臺(tái)計(jì)算設(shè)備上(最簡單的情況下,組件對(duì)象和調(diào)用者是在同一個(gè)進(jìn)程空間),因此調(diào)用者不能像“源語言”級(jí)的面向?qū)ο蠹夹g(shù)一樣,讓調(diào)用者直接操作組件對(duì)象,因此組件對(duì)象都是以“接口”的形式把功能暴露出來,供調(diào)用者調(diào)用。1.5.3組件技術(shù)

為了提高組件的管理和應(yīng)用,各種各樣的“容器”被開發(fā)出來以實(shí)現(xiàn)組件的統(tǒng)一管理。

比如在Windows平臺(tái)上,可以用“組件服務(wù)”(“控制面板-〉管理工具-〉組件服務(wù)”)來集中管理計(jì)算機(jī)系統(tǒng)內(nèi)或網(wǎng)絡(luò)中其他計(jì)算機(jī)上的組件;

在Java平臺(tái)上,應(yīng)用服務(wù)器(ApplicationServer,例如Jboss、Weblogic、Websphere等等)用Servlet容器、EJB容器等等來對(duì)Servlet組件和EJB組件進(jìn)行集中管理。

當(dāng)組件沒有放置在容器中時(shí),每個(gè)組件必須自己負(fù)責(zé)解決安全、共享、完整性等等普遍性問題,因此能夠不放置在容器中的組件必定比較復(fù)雜、龐大;當(dāng)組件放置在容器中時(shí),每個(gè)組件只要按照容器的規(guī)范進(jìn)行設(shè)計(jì)開發(fā),就可以方便地放置在容器內(nèi),由容器提供統(tǒng)一的安全、共享、事務(wù)等服務(wù)。1.5.3組件技術(shù)

組件特點(diǎn)自包容性:每個(gè)組件是模塊相對(duì)獨(dú)立,功能相對(duì)完整的程序單元;組件通過一些標(biāo)準(zhǔn)或自定義的應(yīng)用接口將自身功能暴露出來,供使用者使用。平臺(tái)/語言獨(dú)立性:只要遵循組件技術(shù)的規(guī)范,開發(fā)人員就可以用任何方便的語言去實(shí)現(xiàn)組件,客戶程序或其他組件也可以按照其標(biāo)準(zhǔn)使用組件提供的服務(wù),且客戶和組件任何一方的版本更新都不會(huì)導(dǎo)致兼容性問題;重用性:用戶也可以很方便地在對(duì)組件進(jìn)行功能擴(kuò)充。由于組件已經(jīng)二進(jìn)制化,復(fù)用代碼可以選擇任意開發(fā)語言;可定制性:通過某些給定的標(biāo)準(zhǔn)接口,允許用戶設(shè)置和調(diào)整組件的參數(shù)和屬性;互操作性:組件之間的嚴(yán)格統(tǒng)一的連接標(biāo)準(zhǔn),實(shí)現(xiàn)組件之間、組件與用戶程序之間的互操作。這種互操作是在目標(biāo)代碼級(jí)上的,與具體的開發(fā)語言無關(guān)。1.5.3組件技術(shù)

組件技術(shù)將面向?qū)ο筇卣骱头植际剑ㄎ锢砘蜻壿嫷模┙Y(jié)合起來,是分布式計(jì)算和Web服務(wù)的基礎(chǔ)。

由于組件技術(shù)的出現(xiàn),軟件開發(fā)的方式有了很大變化,可以把軟件開發(fā)的內(nèi)容分成若干個(gè)層次,將每個(gè)層次封裝成一個(gè)個(gè)的組件。在構(gòu)建應(yīng)用系統(tǒng)時(shí),把這些單個(gè)的組件組裝起來就成為一個(gè)系統(tǒng),就像用零件組裝機(jī)器一樣??梢允孪劝凑招枨笤O(shè)計(jì)出不同組件,在構(gòu)建應(yīng)用系統(tǒng)時(shí)根據(jù)自己的應(yīng)用需要選擇需要的組件。

目前主要的組件技術(shù)有OGM組織的CORBA,Microsoft平臺(tái)上的COM/DCOM/COM+/.net,Java平臺(tái)上的J2EE/JavaBeans/SOA等等。1.6軟件開發(fā)過程的建模與文檔

開發(fā)過程中需要建立的模型種類繁多,可以按照它們的本身特征進(jìn)行分類。比如在結(jié)構(gòu)化分析設(shè)計(jì)中,將開發(fā)過程中的模型分為系統(tǒng)模型、功能模型、數(shù)據(jù)模型等等;而面向?qū)ο蠓治鲈O(shè)計(jì)中,將開發(fā)過程中的模型分為用例視圖、邏輯視圖、實(shí)現(xiàn)視圖、進(jìn)程視圖和發(fā)布視圖。這種分類沒有和軟件開發(fā)過程緊密銜接起來,不利于開發(fā)團(tuán)隊(duì)成員理解不同開發(fā)階段的目標(biāo)和任務(wù),實(shí)際的可操作性不強(qiáng)。

本書以瀑布過程模型和RUP模型為基礎(chǔ),從開發(fā)人員的角度出發(fā),將軟件開發(fā)過程劃分為項(xiàng)目前期、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)與編碼實(shí)現(xiàn)、測試、項(xiàng)目結(jié)束等幾個(gè)階段。1.6軟件開發(fā)過程的建模與文檔1.6軟件開發(fā)過程的建模與文檔結(jié)構(gòu)化方法模型面向?qū)ο蠓椒P臀臋n項(xiàng)目前期組織機(jī)構(gòu)圖、業(yè)務(wù)流程圖;軟件系統(tǒng)體系結(jié)構(gòu)圖、網(wǎng)絡(luò)拓?fù)鋱D、系統(tǒng)架構(gòu)圖、系統(tǒng)流程圖、功能結(jié)構(gòu)圖組織機(jī)構(gòu)圖、業(yè)務(wù)用例圖+業(yè)務(wù)流程圖;軟件系統(tǒng)體系結(jié)構(gòu)圖、網(wǎng)絡(luò)拓?fù)鋱D、系統(tǒng)架構(gòu)圖/配置圖、構(gòu)件(組件)圖、功能結(jié)構(gòu)圖“需求說明書”“技術(shù)應(yīng)答書”“軟件任務(wù)立項(xiàng)報(bào)告”“可行性研究報(bào)告”需求分析數(shù)據(jù)流圖數(shù)據(jù)字典用例圖+用例流程圖分析類圖需求規(guī)格說明書概要設(shè)計(jì)功能結(jié)構(gòu)圖IPO圖系統(tǒng)流程圖ER模型功能結(jié)構(gòu)圖類圖(活動(dòng)圖、狀態(tài)圖、時(shí)序圖、協(xié)作圖)構(gòu)件圖ER模型概要設(shè)計(jì)規(guī)格說明書詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)程序流程圖程序流程圖詳細(xì)設(shè)計(jì)規(guī)格說明書測試測試計(jì)劃測試總結(jié)項(xiàng)目結(jié)束項(xiàng)目開發(fā)總結(jié)1.6軟件開發(fā)過程的建模與文檔(1)項(xiàng)目前期

項(xiàng)目前期是項(xiàng)目正式進(jìn)入開發(fā)前的早期階段。對(duì)于招投標(biāo)項(xiàng)目,主要由分析人員(可能來自第三方)和用戶合作完成;對(duì)于協(xié)議項(xiàng)目,則由意向的軟件開發(fā)團(tuán)隊(duì)分析人員與用戶合作,針對(duì)環(huán)境進(jìn)行現(xiàn)狀分析、收集需求、粗略設(shè)計(jì)待開發(fā)的軟件系統(tǒng)并在此基礎(chǔ)上對(duì)項(xiàng)目進(jìn)行可行性分析?,F(xiàn)狀分析從硬件(這里的硬件不僅僅是計(jì)算機(jī)硬件,而是目標(biāo)單位的建筑、道路、房屋、設(shè)施等等,如果有信息化基礎(chǔ),則還需要包括現(xiàn)有的硬件設(shè)施)和軟件(這里的軟件不僅僅是計(jì)算機(jī)軟件,而是目標(biāo)單位的內(nèi)部部門構(gòu)成、崗位職責(zé)、業(yè)務(wù)處理的流程、各種規(guī)章制度等等,如果有信息化的基礎(chǔ),則需要包括現(xiàn)有軟件框架)兩個(gè)方面著手,從軟件開發(fā)的角度,現(xiàn)狀分析需要關(guān)注目標(biāo)單位的硬件(建筑布局和網(wǎng)絡(luò)硬件設(shè)施)、軟件(組織構(gòu)成、崗位職責(zé)和業(yè)務(wù)處理的流程、現(xiàn)有軟件的總體結(jié)構(gòu))。1.6軟件開發(fā)過程的建模與文檔

軟件分析主要包括組織機(jī)構(gòu)分析和業(yè)務(wù)流程分析。開發(fā)管理信息系統(tǒng)的目的,大多是為了替代人工系統(tǒng)或已有的軟件系統(tǒng),實(shí)現(xiàn)事務(wù)處理的更新和自動(dòng)化。即使是完全創(chuàng)新型的事務(wù)系統(tǒng),也必須設(shè)計(jì)合理的組織結(jié)構(gòu)和成熟穩(wěn)定的業(yè)務(wù)流程。進(jìn)行目標(biāo)系統(tǒng)的現(xiàn)狀分析,不僅有助于分析設(shè)計(jì)人員深入了解項(xiàng)目目標(biāo)單位信息化建設(shè)狀況、目標(biāo)單位的組織構(gòu)成和事務(wù)處理內(nèi)部細(xì)節(jié),也有助于協(xié)助用戶收集(功能性)需求。對(duì)于組織機(jī)構(gòu)設(shè)置或職能混亂的用戶單位,還必須邀請(qǐng)領(lǐng)域?qū)<疫M(jìn)行合理的機(jī)構(gòu)調(diào)整和業(yè)務(wù)流程優(yōu)化。

組織機(jī)構(gòu)分析的結(jié)果,應(yīng)該以組織機(jī)構(gòu)圖的方式呈現(xiàn);業(yè)務(wù)流程分析的結(jié)果,應(yīng)該以業(yè)務(wù)流程圖的方式呈現(xiàn),每個(gè)業(yè)務(wù)流程有一個(gè)單獨(dú)的業(yè)務(wù)流程圖。如果采用面向?qū)ο蠓椒ㄟM(jìn)行現(xiàn)狀分析,可以用一個(gè)總括的業(yè)務(wù)用例圖來描述所有業(yè)務(wù),每個(gè)業(yè)務(wù)就是一個(gè)業(yè)務(wù)用例,每個(gè)業(yè)務(wù)用例有一個(gè)單獨(dú)的業(yè)務(wù)流程圖。

各種需求的收集,主要來源于現(xiàn)狀分析。通過與用戶合作,了解用戶期望實(shí)現(xiàn)業(yè)務(wù)流程的自動(dòng)化環(huán)節(jié),以及其他的一些非功能性需求或約束條件。需求收集中的功能需求,更是直接來源于業(yè)務(wù)分析的結(jié)果,功能性需求可以用功能結(jié)構(gòu)圖的方式呈現(xiàn),其他需求以文字的方式呈現(xiàn)。1.6軟件開發(fā)過程的建模與文檔

粗略設(shè)計(jì)是對(duì)準(zhǔn)備開發(fā)的軟件系統(tǒng)提出高層模型。高層模型通常包括描述軟件系統(tǒng)抽象構(gòu)成的體系結(jié)構(gòu)圖、描述硬件設(shè)施和網(wǎng)絡(luò)構(gòu)成的網(wǎng)絡(luò)拓?fù)鋱D(結(jié)構(gòu)化方法)、描述系統(tǒng)軟件構(gòu)成的系統(tǒng)流程圖(結(jié)構(gòu)化方法)/組件圖(面向?qū)ο蠓椒ǎ?、描述功能需求收集結(jié)果的功能結(jié)構(gòu)圖、描述未來系統(tǒng)配置的系統(tǒng)架構(gòu)圖(結(jié)構(gòu)化方法或面向?qū)ο蠓椒ǎ?構(gòu)件圖(面向?qū)ο蠓椒ǎS捎诖致栽O(shè)計(jì)往往不是以精確的需求分析結(jié)果為基礎(chǔ),因此允許存在些許遺漏、錯(cuò)誤。

可行性分析是針對(duì)準(zhǔn)備進(jìn)行的軟件項(xiàng)目進(jìn)行的可行性風(fēng)險(xiǎn)評(píng)估。因此,并根據(jù)高層模型的特征,從技術(shù)可行性、經(jīng)濟(jì)可行性和操作可行性等幾個(gè)方面,對(duì)項(xiàng)目作出是否值得往下進(jìn)行的回答,由此決定項(xiàng)目是否繼續(xù)進(jìn)行下去。1.6軟件開發(fā)過程的建模與文檔

項(xiàng)目前期的技術(shù)文檔,主要包括“需求說明書”、“技術(shù)應(yīng)答書”、“軟件任務(wù)立項(xiàng)報(bào)告”、“可行性研究報(bào)告”。

“需求說明書”主要按條目羅列用戶關(guān)于未來軟件系統(tǒng)的功能性和非功能性需求;

“技術(shù)應(yīng)答書”主要按條目羅列用戶關(guān)心的技術(shù)問題以及未來擬應(yīng)對(duì)的策略;

“軟件任務(wù)立項(xiàng)報(bào)告”主要針對(duì)項(xiàng)目的名稱、性質(zhì)、目標(biāo)、意義和規(guī)模等作出回答,呈現(xiàn)現(xiàn)狀分析的結(jié)果,并在文檔中給出對(duì)準(zhǔn)備著手開發(fā)的軟件系統(tǒng)的粗略設(shè)計(jì)結(jié)果,包括軟件系統(tǒng)體系結(jié)構(gòu)圖、描述網(wǎng)絡(luò)構(gòu)成的網(wǎng)絡(luò)拓?fù)鋱D、系統(tǒng)流程圖(結(jié)構(gòu)化方法)/構(gòu)件圖(面向?qū)ο蠓椒ǎ?,以及需求收集結(jié)果的功能結(jié)構(gòu)圖。

“可行性研究報(bào)告”除了涵蓋“軟件任務(wù)立項(xiàng)報(bào)告”的內(nèi)容之外,還有增加可行性分析的相關(guān)信息。1.6軟件開發(fā)過程的建模與文檔(2)需求分析

需求分析是軟件開發(fā)的最關(guān)鍵步驟,其結(jié)論不僅是今后軟件開發(fā)的基本依據(jù),同時(shí)也是今后用戶對(duì)軟件產(chǎn)品進(jìn)行驗(yàn)收的基本依據(jù)。需求分析要求以用戶需求為基本依據(jù),從功能、性能、數(shù)據(jù)、操作等多個(gè)方面,對(duì)軟件系統(tǒng)給出完整、準(zhǔn)確、具體的描述,用于確定軟件規(guī)格。

軟件需求分析是應(yīng)以項(xiàng)目前期的工作(尤其是現(xiàn)狀分析的結(jié)果)為基礎(chǔ),是軟件規(guī)格描述的具體化與細(xì)節(jié)化。其結(jié)果以數(shù)據(jù)流+數(shù)據(jù)字典(結(jié)構(gòu)化方法)、用例模型(面向?qū)ο蠓椒ǎ枋鏊杏美挠美龍D和每個(gè)用例的流程圖)呈現(xiàn)。在某些場合,面向?qū)ο蠓椒梢栽谛枨蠓治鲭A段建立反映問題域數(shù)據(jù)信息的類模型(也稱分析類或?qū)嶓w類)。需求分析的結(jié)果以“軟件需求規(guī)格說明書”的文檔形式提交。1.6軟件開發(fā)過程的建模與文檔

“軟件需求規(guī)格說明書”主要由以下及部分組成:引言:編寫目的、背景說明、術(shù)語定義及參考資料等。

概述主要功能、約束條件或特殊需求。數(shù)據(jù)流圖與數(shù)據(jù)字典(結(jié)構(gòu)化方法)、用例模型(面向?qū)ο蠓椒ǎS脩艚涌?、硬件接口及軟件接口?/p>

性能需求、屬性等。

其它需求,如數(shù)據(jù)庫、操作及故障處理等。1.6軟件開發(fā)過程的建模與文檔(3)概要設(shè)計(jì)

在完成軟件規(guī)格描述后,接著可以按照“軟件需求規(guī)格說明書”的要求對(duì)軟件實(shí)施開發(fā),針對(duì)軟件系統(tǒng)進(jìn)行結(jié)構(gòu)設(shè)計(jì),從總體上對(duì)軟件的構(gòu)造、接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)環(huán)境等給出設(shè)計(jì)說明。

概要設(shè)計(jì)是在項(xiàng)目前期和需求分析階段的成果基礎(chǔ)上進(jìn)行的,而軟件系統(tǒng)的總體框架往往在項(xiàng)目前期結(jié)束、需求分析開始前就已經(jīng)確定,有關(guān)網(wǎng)絡(luò)構(gòu)成的硬件建設(shè)往往會(huì)分發(fā)給特定的團(tuán)隊(duì)組織實(shí)施,因此在概要設(shè)計(jì)階段,無須再建模反映軟件系統(tǒng)總體框架的體系結(jié)構(gòu)圖、反映網(wǎng)絡(luò)硬件構(gòu)成的網(wǎng)絡(luò)拓?fù)鋱D。1.6軟件開發(fā)過程的建模與文檔

概要設(shè)計(jì)是在需求分析的基礎(chǔ)上進(jìn)行的,與項(xiàng)目前期的粗略設(shè)計(jì)是從空白建立起來不同,因此概要設(shè)計(jì)不允許有遺落或錯(cuò)誤。

概要設(shè)計(jì)必須以需求分析的結(jié)果為基礎(chǔ),因此除了要建立反映軟件系統(tǒng)功能的功能結(jié)構(gòu)圖,結(jié)構(gòu)化方法下還要有反映系統(tǒng)構(gòu)成的系統(tǒng)流程圖、反映軟件模塊規(guī)范的IPO圖,面向?qū)ο蠓椒ㄏ聞t有反映系統(tǒng)構(gòu)成的構(gòu)件圖、反映軟件規(guī)范的類圖,此外還有和問題域有關(guān)的ER模型、數(shù)據(jù)邏輯模型和物理模型。1.6軟件開發(fā)過程的建模與文檔

采用結(jié)構(gòu)化方法進(jìn)行概要設(shè)計(jì)時(shí),模塊的獨(dú)立性是一個(gè)有關(guān)質(zhì)量的重要技術(shù)性指標(biāo),可以使用模塊的內(nèi)聚、耦合這兩個(gè)定性參數(shù)對(duì)模塊獨(dú)立性進(jìn)行度量;

采用面向?qū)ο蠓椒ㄟM(jìn)行概要設(shè)計(jì)時(shí),應(yīng)以設(shè)計(jì)模式對(duì)設(shè)計(jì)結(jié)果進(jìn)行規(guī)范。對(duì)于這樣有利于提高軟件系統(tǒng)的可讀性、可理解性、可擴(kuò)展性和可重用性。

假如采用的是關(guān)系型數(shù)據(jù)庫管理系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行管理,則在概念模型(ER模型)轉(zhuǎn)化為邏輯模型時(shí)(關(guān)系型數(shù)據(jù)庫下,就是表、視圖的結(jié)構(gòu)),需要對(duì)數(shù)據(jù)進(jìn)行必要的規(guī)范化,在檢索效率和存儲(chǔ)效率之間進(jìn)行平衡。1.6軟件開發(fā)過程的建模與文檔

概要設(shè)計(jì)的結(jié)果以“概要設(shè)計(jì)說明書”的形式提交書面報(bào)告,其結(jié)果將成為詳細(xì)設(shè)計(jì)與系統(tǒng)集成的基本依據(jù)。概要設(shè)計(jì)說明書應(yīng)包括的主要內(nèi)容有:目的、背景、定義和參考資料;總體設(shè)計(jì);接口設(shè)計(jì);數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì);系統(tǒng)出錯(cuò)處理設(shè)計(jì)。1.6軟件開發(fā)過程的建模與文檔

(4)軟件詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)

詳細(xì)設(shè)計(jì)以概要設(shè)計(jì)為依據(jù),結(jié)構(gòu)化方法下主要用于確定軟件結(jié)構(gòu)中每個(gè)模塊的內(nèi)部細(xì)節(jié),面向?qū)ο蠓椒ㄏ聞t是確定類方法的內(nèi)部細(xì)節(jié),為編寫程序提供最直接的依據(jù)。詳細(xì)設(shè)計(jì)需要從實(shí)現(xiàn)每個(gè)模塊/類方法功能的程序算法和模塊內(nèi)部的局部數(shù)據(jù)結(jié)構(gòu)等細(xì)節(jié)內(nèi)容上給出設(shè)計(jì)說明,詳細(xì)設(shè)計(jì)的結(jié)果通常以程序流程圖的結(jié)果呈現(xiàn),并以“詳細(xì)設(shè)計(jì)說明書”的形式提交書面報(bào)告。“詳細(xì)設(shè)計(jì)說明書”應(yīng)包括的主要內(nèi)容有:目的、背景、定義和參考資料;程序系統(tǒng)的結(jié)構(gòu);每個(gè)程序模塊的設(shè)計(jì)說明。

編碼是對(duì)軟件的實(shí)現(xiàn),一般由程序員完成,并以獲得源程序基本模塊為目標(biāo)。編碼必須按照“詳細(xì)設(shè)計(jì)說明書”的要求逐個(gè)模塊地實(shí)現(xiàn)。軟件開發(fā)過程中的編碼往往只是一項(xiàng)語言轉(zhuǎn)譯工作,即把詳細(xì)設(shè)計(jì)中的算法描述語言轉(zhuǎn)譯成某種適當(dāng)?shù)母呒?jí)程序設(shè)計(jì)語言或匯編語言。

1.6軟件開發(fā)過程的建模與文檔

(5)測試

測試包括單元測試、集成測試、驗(yàn)證測試等等。

針對(duì)基本模塊的單元測試“詳細(xì)設(shè)計(jì)說明書”為依據(jù),用于檢驗(yàn)每個(gè)基本模塊在功能、算法與數(shù)據(jù)結(jié)構(gòu)上是否符合設(shè)計(jì)要求。系統(tǒng)集成測試也就是根據(jù)概要設(shè)計(jì)中的軟件結(jié)構(gòu),把經(jīng)過測試的模塊,按照某種選定的集成策略,例如漸增集成策略,將系統(tǒng)組裝起來。

在組裝過程中,需要對(duì)整個(gè)系統(tǒng)進(jìn)行集成測試,以確保系統(tǒng)在技術(shù)上符合設(shè)計(jì)要求,在應(yīng)用上滿足需求規(guī)格要求。

系統(tǒng)確認(rèn)驗(yàn)證需要以用戶為主體,以需求規(guī)格說明書中對(duì)軟件的定義為依據(jù),由此對(duì)軟件的各項(xiàng)規(guī)格進(jìn)行逐項(xiàng)地確認(rèn),以確保已經(jīng)完成的軟件系統(tǒng)與需求規(guī)格的一致性。

測試階段的主要任務(wù)是設(shè)計(jì)測試用例并執(zhí)行測試,并“測試計(jì)劃”和“測試報(bào)告”的形式提交書面報(bào)告。

1.6軟件開發(fā)過程的建模與文檔

(6)項(xiàng)目結(jié)束在完成對(duì)軟件的驗(yàn)收之后,軟件系統(tǒng)可以交付用戶使用,并需要以“項(xiàng)目開發(fā)總結(jié)報(bào)告”的書面形式對(duì)項(xiàng)目進(jìn)行總結(jié)?!绊?xiàng)目開發(fā)總結(jié)報(bào)告”的主要內(nèi)容包括:目的、背景、定義和參考資料;實(shí)際開發(fā)結(jié)果;開發(fā)工作評(píng)價(jià);經(jīng)驗(yàn)教訓(xùn)。

在軟件開發(fā)過程中,選擇適當(dāng)?shù)能浖ぞ哌M(jìn)行自動(dòng)化和半自動(dòng)化的開發(fā),可以極大地簡化開發(fā)工作(包括軟件分析設(shè)計(jì)、測試、維護(hù))、提高軟件生產(chǎn)率和改善軟件的質(zhì)量。

一般軟件工具分為六類:模擬工具、開發(fā)工具、測試和評(píng)估工具、運(yùn)行和維護(hù)工具、性能質(zhì)量工具和程序設(shè)計(jì)支持工具。工具既有支持單個(gè)任務(wù)的工具,也有囊括生命周期全過程或部分過程的工具。

按照工具在軟件開發(fā)過程承擔(dān)的任務(wù),可以把它們分為六類:軟件需求工具(包括需求建模工具和需求追蹤工具)、軟件設(shè)計(jì)工具(用于創(chuàng)建和檢查軟件設(shè)計(jì))、軟件構(gòu)造工具(包括程序編輯器、編譯器和代碼生成器、解釋器和調(diào)試器等)、軟件測試工具(包括測試生成器、測試執(zhí)行框架、測試評(píng)價(jià)工具、測試管理工具和性能分析工具)、軟件維護(hù)工具(包括可視化工具和重構(gòu)工具)、軟件配置管理工具。第二章軟件開發(fā)工具2.1visio2.2starUML2.3RationalRose2.4建模工具的比較第二章軟件開發(fā)工具2.1visio2.1.1Visio簡介2.1.2Visio2013基本操作2.1.3Visio2013建模示例2.1.1Visio簡介Visio是一款就復(fù)雜信息、系統(tǒng)和流程進(jìn)行可視化處理、分析和交流的專業(yè)商用矢量繪圖軟件,其提供了大量的矢量圖形基本素材,幫助用戶繪制各種流程圖、結(jié)構(gòu)圖或軟件開發(fā)模型,可以促進(jìn)對(duì)系統(tǒng)和流程的了解,深入了解復(fù)雜信息并利用這些知識(shí)做出更好的業(yè)務(wù)決策。

使用Visio,軟件開發(fā)人員能夠進(jìn)行項(xiàng)目前期階段的組織建模(組織結(jié)構(gòu)圖)和業(yè)務(wù)建模(業(yè)務(wù)流程圖)、粗略設(shè)計(jì)的軟件系統(tǒng)體系(體系結(jié)構(gòu)圖)、硬件配置(網(wǎng)絡(luò)拓?fù)鋱D)、系統(tǒng)框架(系統(tǒng)架構(gòu)圖)、系統(tǒng)組成(系統(tǒng)流程圖)、功能結(jié)構(gòu)(功能結(jié)構(gòu)圖);可以繪制需求分析階段的分析模型(數(shù)據(jù)流圖);總體設(shè)計(jì)階段的系統(tǒng)組成(系統(tǒng)流程圖)、功能結(jié)構(gòu)(功能結(jié)構(gòu)圖)、軟件模塊構(gòu)成(IPO圖)、數(shù)據(jù)構(gòu)成(ER模型);還可用于描述詳細(xì)設(shè)計(jì)階段的模塊細(xì)節(jié)(程序流程圖)。2.1.1Visio簡介圖2-1Visio軟件的啟動(dòng)界面2.1.1Visio簡介圖2-2軟件的基本界面2.1.1Visio簡介圖2-3軟件界面2.1.1Visio簡介Visio軟件的界面主要由6部分組成,其作用如下:標(biāo)題欄由Visio標(biāo)志、快速訪問工具欄、窗口管理按鈕3個(gè)部分組成;其中,快速訪問工具欄是Visio提供的一組快捷按鈕。窗口管理按鈕提供了4種按鈕供用戶操作Visio窗口;工具選項(xiàng)卡是一組重要的按鈕欄,其提供了多種按鈕,允許用戶切換功能區(qū)及應(yīng)用Visio中的各種工具。主要包括【開始】、【插入】、【設(shè)計(jì)】、【數(shù)據(jù)】、【進(jìn)程】、【審閱】、【視圖】等選項(xiàng)卡。選項(xiàng)卡中的工具通常按組的方式排列,各組之間以分隔線的方式隔開。例如,【開始】選項(xiàng)卡就包括了【剪貼板】、【字體】、【段落】、【工具】、【形狀格式】、【排列】和【編輯】等組;功能區(qū)中提供了Visio軟件的各種基本工具。單擊工具選項(xiàng)卡中的特定按鈕,即可切換功能區(qū)中的內(nèi)容;【形狀】窗格,在使用Visio的模板功能創(chuàng)建Visio繪圖之后,會(huì)自動(dòng)打開【形狀】窗格,并在該窗格中提供各種模具組供用戶選擇,可將其拖動(dòng)添加到Visio繪圖中;繪圖窗格是Visio中最重要的窗格,在其中提供了標(biāo)尺、繪圖頁以及網(wǎng)格等工具,允許用戶在繪圖頁上繪制各種圖形,并使用標(biāo)尺來規(guī)范圖形的尺寸;在繪圖窗格的底部,還提供了頁標(biāo)簽的功能,允許用戶為一個(gè)Visio繪圖創(chuàng)建多個(gè)繪圖頁,并設(shè)置繪圖頁的名稱;狀態(tài)欄的作用是顯示繪圖頁或其上各種對(duì)象的狀態(tài),以供用戶參考和編輯。2.1.2Visio2013基本操作這里可以打開.vsdx格式的所有的繪圖如在已有的模板中找不到適用的模板,可以在這邊輸入所需要的模板類型圖2-3模板選擇窗口2.1.2Visio2013基本操作圖2-4Visio軟件操作界面2.1.3Visio2013建模示例圖2-5Visio繪制組織結(jié)構(gòu)圖2.1.3Visio2013建模示例

在項(xiàng)目前期,組織結(jié)構(gòu)圖用于描述目標(biāo)單位的組織崗位構(gòu)成,為后續(xù)的業(yè)務(wù)分析打下基礎(chǔ)。

需要注意的是,Visio提供的組織結(jié)構(gòu)圖基本形式,通常都是體現(xiàn)上層元素對(duì)下層元素的領(lǐng)導(dǎo)、管理關(guān)系,與本書要求的組織結(jié)構(gòu)圖應(yīng)體現(xiàn)組織機(jī)構(gòu)的包含關(guān)系有一定的差異,需要進(jìn)行一定的改進(jìn),以體現(xiàn)組織機(jī)構(gòu)的包含關(guān)系,才能夠更好地用于組織分析的結(jié)果描述。

面向?qū)ο蠓椒ǖ腞ationalRose及StarUML工具,沒有提供相應(yīng)元素進(jìn)行組織結(jié)構(gòu)的描述,此時(shí)可以借助Visio進(jìn)行組織結(jié)構(gòu)描述。2.1.3Visio2013建模示例圖2-6Visio繪制業(yè)務(wù)流程圖2.1.3Visio2013建模示例項(xiàng)目前期業(yè)務(wù)分析的結(jié)果,以業(yè)務(wù)流程圖的形式進(jìn)行描述。業(yè)務(wù)流程將是后續(xù)粗略設(shè)計(jì)以及需求分析階段進(jìn)行需求分析的基礎(chǔ)。Visio提供的業(yè)務(wù)流程圖有多種,其中的“跨職能流程圖”樣式,能夠最好地滿足結(jié)構(gòu)化業(yè)務(wù)建模的需要??缏毮芰鞒虉D有橫向、縱向兩種方式,為方便用戶直觀觀察和理解,建議選擇縱向的跨職能流程圖描述業(yè)務(wù)分析的結(jié)果。2.1.3Visio2013建模示例圖2-7Visio繪制系統(tǒng)體系結(jié)構(gòu)圖2.1.3Visio2013建模示例在項(xiàng)目前期的粗略設(shè)計(jì)階段,體系結(jié)構(gòu)圖反映目標(biāo)系統(tǒng)的抽象構(gòu)成及構(gòu)成部分之間的相互關(guān)系,這些構(gòu)成既包括硬件網(wǎng)絡(luò),也包括軟件。Visio沒有提供專門的體系結(jié)構(gòu)圖樣式,可借助其中的“基本框圖”和“基本流程圖”元素,進(jìn)行系統(tǒng)的體系結(jié)構(gòu)描述。

面向?qū)ο蠊ぞ逺ationalRose及StarUML,沒有提供專門模型來支持體系結(jié)構(gòu)圖的繪制,此時(shí)可以借助Visio進(jìn)行系統(tǒng)體系結(jié)構(gòu)圖的描述。2.1.3Visio2013建模示例圖2-8Visio繪制網(wǎng)絡(luò)拓?fù)鋱D2.1.3Visio2013建模示例在項(xiàng)目前期的粗略設(shè)計(jì)階段,網(wǎng)絡(luò)拓?fù)鋱D反映目標(biāo)系統(tǒng)的硬件網(wǎng)絡(luò)構(gòu)成和它們之間的連接方式。Visio提供了各種豐富的網(wǎng)絡(luò)節(jié)點(diǎn)元素,方便開發(fā)人員繪制直觀的網(wǎng)絡(luò)拓?fù)鋱D。面向?qū)ο蠓椒ǖ腞ationalRose及StarUML工具,提供的配置圖元素很少,往往不足以全面完整地描述復(fù)雜系統(tǒng)中的硬件設(shè)施及網(wǎng)絡(luò)配置,此時(shí)可以借助Visio進(jìn)行系統(tǒng)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)描述。2.1.3Visio2013建模示例圖2-9Visio繪制系統(tǒng)架構(gòu)圖2.1.3Visio2013建模示例在項(xiàng)目前期的粗略設(shè)計(jì)階段,系統(tǒng)架構(gòu)圖體現(xiàn)軟件部件之間的聯(lián)系和部件的布局。Visio也沒有提供專門模型來支持系統(tǒng)架構(gòu)圖的繪制,此時(shí)可以借助Visio“基本框圖”、“基本流程圖”中的部分元素,進(jìn)行系統(tǒng)結(jié)構(gòu)圖的描述。2.1.3Visio2013建模示例圖2-10Visio繪制系統(tǒng)流程圖2.1.3Visio2013建模示例在項(xiàng)目前期的粗略設(shè)計(jì)和總體設(shè)計(jì)階段,系統(tǒng)流程圖是結(jié)構(gòu)化方法下描述系統(tǒng)物理構(gòu)成的模型。Visio沒有提供專門的系統(tǒng)流程圖樣式,可借助其中的“基本框圖”、“基本流程圖”、“網(wǎng)絡(luò)拓?fù)鋱D”部分元素,組合在一起進(jìn)行系統(tǒng)流程圖的描述。2.1.3Visio2013建模示例圖2-11Visio繪制功能結(jié)構(gòu)圖2.1.3Visio2013建模示例在項(xiàng)目前期的粗略設(shè)計(jì)和總體設(shè)計(jì)階段,功能結(jié)構(gòu)圖從用戶角度反映目標(biāo)系統(tǒng)的整體構(gòu)成,也是體現(xiàn)一種包含關(guān)系。Visio沒有提供專門的系統(tǒng)流程圖樣式,可借助其中的“基本框圖”、“基本流程圖”部分元素,組合在一起進(jìn)行功能結(jié)構(gòu)圖的描述。面向?qū)ο蠊ぞ逺ationalRose及StarUML,沒有提供專門模型來支持功能結(jié)構(gòu)圖的繪制,此時(shí)可以借助Visio進(jìn)行進(jìn)行系統(tǒng)功能結(jié)構(gòu)圖的描述。2.1.3Visio2013建模示例圖2-12Visio繪制數(shù)據(jù)流圖2.1.3Visio2013建模示例在需求分析階段,數(shù)據(jù)流圖是結(jié)構(gòu)化方法下需求模型的主要構(gòu)成部分。通常繪制數(shù)據(jù)流圖逐步細(xì)化、逐步精化的一個(gè)過程。Visio提供了專門的“數(shù)據(jù)流圖表”樣式,支持系統(tǒng)數(shù)據(jù)流圖的的描述。2.1.3Visio2013建模示例圖2-13Visio繪制IPO圖2.1.3Visio2013建模示例在總體設(shè)計(jì)階段,IPO圖從軟件角度描述了目標(biāo)系統(tǒng)的構(gòu)成,通常繪制IPO圖是逐步細(xì)化、逐步精化的一個(gè)過程。Visio沒有提供專門的IPO圖,開發(fā)人員可借助其中的“基本框圖”、“基本流程圖”部分元素,組合在一起進(jìn)行IPO圖的描述。2.1.3Visio2013建模示例圖2-14Visio繪制E-R模型2.1.3Visio2013建模示例在總體設(shè)計(jì)階段,ER模型用于描述數(shù)據(jù)的概念模型。Visio提供了專門的“數(shù)據(jù)庫模型圖”樣式,支持系統(tǒng)的實(shí)體關(guān)系模型描述。2.1.3Visio2013建模示例圖2-15Visio繪制程序流程圖模型2.1.3Visio2013建模示例在項(xiàng)目的詳細(xì)設(shè)計(jì)階段,程序流程圖描述各個(gè)模塊的算法實(shí)現(xiàn)細(xì)節(jié)。Visio沒有提供專門的“程序流程圖”樣式,可以用基本流程圖進(jìn)行模塊算法的詳細(xì)描述。2.2starUML2.2.1StarUML簡介2.2.2StarUML基本操作2.2.3StarUML建模示例2.2.1StarUML簡介StarUML嚴(yán)格遵循UML規(guī)則,提供包括用例圖、類圖、序列圖、狀態(tài)圖、活動(dòng)圖、協(xié)作圖、組件圖、部署圖以及復(fù)合結(jié)構(gòu)圖(CompositeStructureDiagram)、魯棒圖(RobustnessDiagram)、包圖等十一種圖。其中復(fù)合結(jié)構(gòu)圖、魯棒圖可以看成特殊的類圖,復(fù)合結(jié)構(gòu)圖主要用于反映類之間繼承、抽象、構(gòu)成、組合之類的關(guān)系,魯棒圖主要按照MVC設(shè)計(jì)模式,反映同層次類中的抽象繼承關(guān)系、不同層次類之間的調(diào)用關(guān)系。包圖主要用來對(duì)系統(tǒng)的構(gòu)成進(jìn)行包含關(guān)系的描述。2.2.1StarUML簡介根據(jù)圖的特點(diǎn),StarUML把所有的UML圖分為五類,包括用例視、分析視、設(shè)計(jì)視、實(shí)現(xiàn)視和發(fā)布視。StarUML只支持圖內(nèi)部的語法檢查,并不支持模型驗(yàn)證和一致性檢查,這表明在各種圖內(nèi)部,工具能夠很好地保證模型元素的合法使用,但不能保證圖與圖之間的聯(lián)系是否合法正確。StarUML的缺陷在于不支持業(yè)務(wù)建模,當(dāng)進(jìn)行管理信息系統(tǒng)等事務(wù)處理軟件的時(shí)候,可以借助Rationalrose進(jìn)行業(yè)務(wù)分析和建模工作。2.2.2StarUML基本操作圖2-16StarUML軟件界面2.2.2StarUML基本操作圖2-17添加新工程2.2.2StarUML基本操作圖2-17工程選擇2.2.2StarUML基本操作圖2-18模型添加2.2.2StarUML基本操作圖2-19通過菜單添加圖2.2.2StarUML基本操作

圖2-20通過ModelExplorer添加圖2.2.2StarUML基本操作圖2-21通過菜單添加元素2.2.2StarUML基本操作圖2-22通過ModelExplorer添加元素2.2.2StarUML基本操作圖2-23保存后的模型2.2.3StarUML建模示例圖2-24StarUML用例圖繪制示例2.2.3StarUML建模示例StarUML提供用例圖來支持需求建模。通常所有用例建立在一張用例圖中,當(dāng)系統(tǒng)規(guī)模龐大時(shí),可以分別用包圖來進(jìn)行分割組織。通常每個(gè)用例還應(yīng)該用活動(dòng)圖描述其過程細(xì)節(jié)。需求分析階段用例圖是需求分析模型的主要構(gòu)成部分。2.2.3StarUML建模示例圖2-25aStarUML類圖繪制示例2.2.3StarUML建模示例圖2-25bStarUML類圖繪制示例2.2.3StarUML建模示例StarUML類圖包括(普通的)類圖、復(fù)合結(jié)構(gòu)圖、魯棒圖,復(fù)合結(jié)構(gòu)圖、魯棒圖是特殊形式的類圖。圖2-25a的類圖以復(fù)合結(jié)構(gòu)圖的格式繪制,圖2-25b的類圖以魯棒圖的格式繪制。復(fù)合結(jié)構(gòu)圖可以用于需求分析階段的分析類/實(shí)體類描述,魯棒圖可以用于設(shè)計(jì)階段的三層類圖描述。開發(fā)人員也可以(普通的)類圖為基礎(chǔ),進(jìn)行不同形式的類圖繪制。2.2.3StarUML建模示例圖2-26StarUML活動(dòng)圖繪制示例2.2.3StarUML建模示例StarUML不支持業(yè)務(wù)模型建模,因此使用StarUML只能用來描述用例過程和(詳細(xì)設(shè)計(jì)階段)的類方法進(jìn)行建模?;顒?dòng)圖可以在需求分析階段用來從用例行為者角度描述用例的操作過程,為后續(xù)使用狀態(tài)圖、時(shí)序圖、協(xié)作圖給類填充方法提供基礎(chǔ);活動(dòng)圖也可以在詳細(xì)設(shè)計(jì)中用來描述具體類方法的執(zhí)行過程,在業(yè)務(wù)分析時(shí)也可以用來描述業(yè)務(wù)用例的活動(dòng)過程。2.2.3StarUML建模示例圖2-27StarUML狀態(tài)圖繪制示例2.2.3StarUML建模示例通常狀態(tài)多的重要類對(duì)象才會(huì)用StarUML的狀態(tài)圖來描述。狀態(tài)圖反映一個(gè)對(duì)象在其生命期內(nèi)經(jīng)歷的各個(gè)狀態(tài)的順序。狀態(tài)圖用來在設(shè)計(jì)階段幫助找出類圖中類的方法,每個(gè)狀態(tài)圖中的事件,實(shí)際上就是相應(yīng)類的一個(gè)方法。2.2.3StarUML建模示例圖2-28StarUML序列圖繪制示例2.2.3StarUML建模示例StarUML使用序列圖來顯示某個(gè)用例中參與交互的對(duì)象的某個(gè)交互場景(全部場景可以由活動(dòng)圖進(jìn)行描述),這個(gè)交互場景中的事件是按時(shí)間順序排列的。設(shè)計(jì)階段,時(shí)序圖是用例活動(dòng)圖的一個(gè)場景,可以很好地幫助開發(fā)人員找出類的方法。2.2.3StarUML建模示例圖2-29StarUML協(xié)作圖繪制示例2.2.3StarUML建模示例StarUML使用協(xié)作圖全面反映一組對(duì)象之間的協(xié)作關(guān)系,對(duì)象之間的事件交互順序關(guān)系不再一目了然,除非對(duì)事件進(jìn)行編號(hào);當(dāng)協(xié)作圖反映多個(gè)場景下對(duì)象之間的交互事件時(shí),將無法進(jìn)行編號(hào),此時(shí)協(xié)作圖只能單純反映類對(duì)象之間的調(diào)用關(guān)系了。設(shè)計(jì)階段,協(xié)作圖全面反映各種類之間的調(diào)用關(guān)系。2.2.3StarUML建模示例圖2-30StarUML組件圖繪制示例2.2.3StarUML建模示例StarUML使用使用組件圖編譯后系統(tǒng)構(gòu)成(由組件為單位),組件指系統(tǒng)中的可分配實(shí)現(xiàn)單元。在系統(tǒng)設(shè)計(jì)和系統(tǒng)配置階段,配置圖描述系統(tǒng)的物理構(gòu)成。2.2.3StarUML建模示例圖2-31StarUML部署圖繪制示例2.2.3StarUML建模示例StarUML使用部署圖顯示運(yùn)行時(shí)系統(tǒng)結(jié)構(gòu)的實(shí)現(xiàn)圖。在設(shè)計(jì)階段和配置階段,從部署圖中可以了解到軟件和硬件組件之間的物理關(guān)系以及處理節(jié)點(diǎn)的組件分布情況。2.3RationalRose2.3.1RationalRose簡介2.3.2RationalRose基本操作2.4.3RationalRose建模示例2.3.1RationalRose簡介RationalRose是基于UML的面向?qū)ο罂梢暬9ぞ撸梢杂脕磉M(jìn)行軟件系統(tǒng)的面向?qū)ο髽I(yè)務(wù)分析、需求分析與設(shè)計(jì),是當(dāng)前最流行的可視化軟件開發(fā)工具之一。RationalRose和現(xiàn)有的各種建模環(huán)境和開發(fā)環(huán)境(數(shù)據(jù)建模,Web開發(fā),VisualStudio和C++)很好地結(jié)合起來,支持靈活性需求、快捷方便溝通的一種迭代式開發(fā)解決方案。與StarUML一樣,嚴(yán)格遵循UML規(guī)則,提供包括業(yè)務(wù)用例圖、用例圖、類圖、序列圖、狀態(tài)圖、活動(dòng)圖、協(xié)作圖、組件圖、部署圖以及包圖等十種圖。根據(jù)各種圖自身的特點(diǎn),RationalRose把所有的UML圖分為四類,包括用例視、邏輯視、實(shí)現(xiàn)視和發(fā)布視。用例視圖:只關(guān)心系統(tǒng)的高級(jí)功能,不關(guān)心系統(tǒng)的具體實(shí)現(xiàn)細(xì)節(jié)。邏輯視圖:關(guān)注系統(tǒng)實(shí)現(xiàn)什么功能、以及如何實(shí)現(xiàn)這些功能。構(gòu)件視圖:可看出系統(tǒng)實(shí)現(xiàn)的物理結(jié)構(gòu)。部署視圖:關(guān)心系統(tǒng)的實(shí)際部署情況。RationalRose支持圖內(nèi)部的語法檢查,也支持模型驗(yàn)證和一致性檢查,利用這一點(diǎn),開發(fā)人員可以實(shí)現(xiàn)連貫一致的軟件開發(fā)。2.3.2RationalRose基本操作RationalRose工程框架選擇界面2.3.2RationalRose基本操作RationalRose的主界面2.3.2RationalRose基本操作在“rationalunifiedprocess”工程框架下,每個(gè)工程由“UseCaseView”、“LogicalView”、“ComponentView”、“DeploymentView”等四個(gè)視圖構(gòu)成,“UseCaseView”包括“BusinessUseCaseModel”和“UseCaseModel”兩種模型組成,“LogicalView”由“AnalysisModel”、“BusinessObjectModel”、“DesignModel”三種模型組成,“ComponentView”由“ImplementationModel”模型,“DeploymentView”由配置圖構(gòu)成。為了方便開發(fā)團(tuán)隊(duì)人員交流溝通,減少圖的冗余,建議開發(fā)團(tuán)隊(duì)按照開發(fā)過程不同階段的需要對(duì)不同模型下的圖進(jìn)行組織。在“BusinessUseCaseModel”中包括業(yè)務(wù)用例圖以及描述每個(gè)用例過程的活動(dòng)圖;在“UseCaseModel”中包括用例圖;在“AnalysisModel”中包括描述每個(gè)用例的活動(dòng)圖;在“BusinessObjectModel”中描述問題域的系統(tǒng)類;這三個(gè)模型合在一起,構(gòu)成完整的需求分析模型。在“DesignModel”中包括三層設(shè)計(jì)類圖,并用時(shí)序圖、狀態(tài)圖、交互圖對(duì)三層設(shè)計(jì)類圖進(jìn)行輔助描述。設(shè)計(jì)過程是迭代進(jìn)行的,開始的設(shè)計(jì)類圖只有相應(yīng)的類名,實(shí)體類只有屬性,每個(gè)類的類方法是空白的。通過繪制時(shí)序圖、狀態(tài)圖、交互圖,可以不斷給類找到方法并添加到類中,最終得倒的設(shè)計(jì)類圖是較為完整的,既包括屬性,也包括方法。2.3.2RationalRose基本操作RationalRose中創(chuàng)建新圖或新的圖元素對(duì)象

2.4.3RationalRose建模示例

RationalRose

2.4.3RationalRose建模示例

在RationalRose中,業(yè)務(wù)用例圖本質(zhì)上是用例圖的特例?!癇usinessUseCaseModel”,選擇“NEW→用例圖”,就可以建立業(yè)務(wù)用例圖。選中欲操作的業(yè)務(wù)用例圖,在圖中添加角色、用例,并給建立的“用例”和“角色”選擇“businessusecase”和“businessactor”版型,把“業(yè)務(wù)用例”和“業(yè)務(wù)角色”以不同于用例和角色的外觀呈現(xiàn)。RationalRose中其他圖的繪制,與StarUML中相應(yīng)圖的繪制雷同。具體可參照RationalRose的用戶手冊(cè)。

2.4建模工具的比較

Visio能夠用來描述各種軟件開發(fā)的模型,可以說是目前最能夠用圖形方式來表達(dá)各種商業(yè)圖形用途的工具,不僅提供包括結(jié)構(gòu)化模型的各種模型元素,也包括面向?qū)ο竽P偷母鞣NUML模型元素。它跟微軟的office產(chǎn)品的能夠很好兼容,能夠把圖形直接復(fù)制或者內(nèi)嵌到WORD的文檔中??梢苑奖愕赜糜诮Y(jié)構(gòu)化建模,也可用于面向?qū)ο蠼?。由于Visio本身沒有提供模型語法檢查(一個(gè)圖內(nèi)部,模型元素使用是否合法、模型元素是否能夠放在特定圖中)、模型驗(yàn)證(不同圖之間,模型是否能夠彼此組合,組合形式是否合法)和一致性檢查(不同開發(fā)階段的不同模型之間是否滿足前后一致性)等功能,因此這些任務(wù)都只能由開發(fā)人員自己來完成,自動(dòng)化程度不高。且Visio工具沒有體現(xiàn)面向?qū)ο笏枷?,用于面向?qū)ο蠓椒ㄏ碌牡_發(fā)則有點(diǎn)牽強(qiáng)。當(dāng)然,由于目前的面向?qū)ο蠼9ぞ咴谀承┓矫鏇]有提供相應(yīng)模型,或者某些建模功能不夠強(qiáng)大,開發(fā)人員也可以使用Visio,開發(fā)面向?qū)ο蟮?/p>

溫馨提示

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