




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件工程(B)教案
田萱2008-8-30
目錄
課程說明..........................................................................1
一軟件工程概述(理論3學(xué)時(shí))....................................................1
1軟件工程的起源和作用.......................................................1
附錄(一)常用CASE工具介紹.....................................................4
附錄(二)CASE工具的種類及應(yīng)用特點(diǎn).............................................10
附件(三)軟件、軟件危機(jī)、軟件工程............................................16
附錄(四)軟件工程的七條基本原理...............................................20
課程說明
學(xué)時(shí)救:總學(xué)時(shí)40(理論30實(shí)驗(yàn)10習(xí)題。講座0時(shí)論0實(shí)習(xí)0周)
-軟件工程概述(理論3學(xué)時(shí))
1軟件工程的起源和作用
1)軟件開發(fā)的發(fā)展歷史
分為三個(gè)階段:
程序設(shè)計(jì)階段20世紀(jì)的50—60年代),手工作坊
軟件設(shè)計(jì)階段(20世紀(jì)的60—70年代),小組合作生產(chǎn)
軟件工程階段(20世紀(jì)的70年代一至今),工程化的生產(chǎn)
2)軟件危機(jī)
軟件危機(jī)的突出代表--IBM360操作系統(tǒng)的開發(fā)。
軟件危機(jī)(softwarecrisis)指的是在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問
題。
1968年北大西洋公約組織的計(jì)算機(jī)科學(xué)家在聯(lián)邦德國召開的國際學(xué)術(shù)會(huì)議上第一次提出了
“軟件危機(jī)”(softwarecrisis)這個(gè)名詞。
概括來說,軟件危機(jī)包含兩方面問題:一、如何開發(fā)軟件,以滿足不斷增長,口趨復(fù)雜的需
求;二、如何維護(hù)數(shù)量不斷膨脹的軟件產(chǎn)品。
具體來說,軟件危機(jī)主要有以下表現(xiàn):
(1)對軟件開發(fā)成本和進(jìn)度的估計(jì)常常不準(zhǔn)確。開發(fā)成本超出預(yù)算,實(shí)際進(jìn)度比預(yù)定
計(jì)劃一再拖延的現(xiàn)象并不罕見。
(2)用戶對“已完成”系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。
(3)軟件產(chǎn)品的質(zhì)量往往靠不住。Bug一大堆,Patch一個(gè)接一個(gè)。
(4)軟件的可維護(hù)程度非常之低。
(5)軟件通常沒有適當(dāng)?shù)奈臋n資料。
(6)軟件的成本不斷提高。
(7)軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和人們需求的增長。
軟件危機(jī)的原因,一方面是與軟件本身的特點(diǎn)有關(guān);另一方面是由軟件開發(fā)和維擰的方
法不正確有關(guān)。
軟件開發(fā)和維護(hù)的不正確方法主要表現(xiàn)為忽視軟件開發(fā)前期的需求分析;開發(fā)過程沒有
統(tǒng)一的、規(guī)范的方法論的指導(dǎo),文檔資料不齊全,忽視人與人的交流;忽視測試階段的工作,
提交用戶的軟件質(zhì)量差;轎視軟件的維護(hù)。這些大多數(shù)都足軟件開發(fā)過程管理上的原因。
3)軟件工程的作用
1968年秋季,NATO(北約)的科技委員會(huì)召集了近50名一流的編程人員、計(jì)算機(jī)科
學(xué)家和工業(yè)界巨頭,討論和制定擺脫“軟件危機(jī)”的對策。在那次會(huì)議上第一次提出了軟件
工程(softwareengineering)這個(gè)概念。到今年(2008),軟件工程整整走過了40年的歷程。
軟件工程用來解決在開發(fā)大型的復(fù)雜軟件系統(tǒng)過程中遇到的問題。之所以稱為軟件工
程,是因?yàn)檐浖_發(fā)是一個(gè)_L程化的過程。軟件工程的E標(biāo)就是找到一種能指導(dǎo)大型復(fù)雜
的軟件系統(tǒng)的開發(fā)原則,能指導(dǎo)軟件開發(fā)過程,從而生產(chǎn)出高效可靠的軟件產(chǎn)品。
在開發(fā)大型系統(tǒng)時(shí),涉及到使用大量人工、時(shí)間,涉及到項(xiàng)目管理、人員管理等,因
而有許多內(nèi)容與業(yè)務(wù)管理相關(guān),而不只是和計(jì)算機(jī)科學(xué)有關(guān)。
為了理解軟件工程中涉及的問題,可以先想象其它的大型復(fù)雜設(shè)施的構(gòu)建(機(jī)械行業(yè)
和建筑行業(yè)等例如,汽車,辦公大樓,水立方等。宜然會(huì)想到以下幾個(gè)問題,這個(gè)項(xiàng)
目需要的人力、時(shí)間、資源、技術(shù)等;如何把項(xiàng)目分割成幾個(gè)便于管理的模塊?如何保證
模塊間的協(xié)調(diào)?如何便于同一模塊內(nèi)外人員的溝通?如何檢查進(jìn)度?如何處理廣泛存在
的細(xì)節(jié)?
軟件工程是一門研究如何用系統(tǒng)化、規(guī)范化、數(shù)量化等工程原則和方法去進(jìn)行軟件的
開發(fā)和維護(hù)的學(xué)科。
是不是軟件工程完全可以借鑒這些已經(jīng)成熟的工程項(xiàng)目中工程技術(shù)呢?
4)軟件工程和傳統(tǒng)工程項(xiàng)目的區(qū)別
兩個(gè)主要區(qū)別:難以復(fù)用現(xiàn)有的軟件構(gòu)件,因?yàn)檐浖莻€(gè)性化的;難以對軟件質(zhì)量
進(jìn)行評價(jià)和度量。
5)計(jì)算機(jī)輔助軟件工程(CASE)
CASE(computer-aidedsoftwareengineering)幫助人們盡量使軟件開發(fā)變得流程化,
幫助簡化軟件開發(fā)過程。
CASE工具涉及到軟件開發(fā)過程中的各個(gè)方面,包括:
項(xiàng)目設(shè)計(jì)系統(tǒng)(輔助經(jīng)費(fèi)預(yù)算、項(xiàng)目調(diào)配以及人員分配等)
項(xiàng)目管理系統(tǒng)(輔助健康項(xiàng)目的開發(fā)進(jìn)度)
文檔工具(輔助編寫和組織文檔)
原型與仿真系統(tǒng)(輔助開發(fā)原型系統(tǒng))
界面設(shè)計(jì)系統(tǒng)(輔助圖形用戶界面的開發(fā))
編程系統(tǒng)(輔助編寫程序和調(diào)試程序)
Bug系統(tǒng)(輔助測試)
(1)軟件工程和軟件生命周期,
(2)軟件開發(fā)方法概述,結(jié)構(gòu)化方法,面向?qū)ο蠓椒ā?/p>
(3)軟件工程過程和開發(fā)模型。
(4)軟件開發(fā)工具和環(huán)境。
(5)軟件工程的作用。
附錄(1)常用CASE工具介紹
轉(zhuǎn)載自:/powerlc/archive/2C0^01/12/515959.html
一,概述
今天,代碼變得日益簡單,在Model的指導(dǎo)下,思想,設(shè)計(jì),分析都變得異常重要。企業(yè)業(yè)務(wù)
建模工具,產(chǎn)品非常多,特別是在MDA日益流行的今天.WorkFlow是典型的業(yè)務(wù)及流程建
模。
二,軟件開發(fā)CASE工具簡介
(一)圖稿繪制:
1,visi。:這是目前國內(nèi)用得最多的case工具。它提供了日常使用中的絕大多數(shù)框圖的
繪畫功能(包括信息領(lǐng)域的各種原理圖,設(shè)計(jì)圖),同時(shí)提供了部分信息領(lǐng)域的實(shí)物圖。visi。
的精華在于其使用方便,安裝后的visio2UUU既可以單獨(dú)運(yùn)行,也可以在word中作為對象
插入,與word集成良好,其圖生成后在沒有安裝visio的word仍然能夠杳看。使用過其他
繪圖工具的朋友肯定會(huì)感受到visi。在處理框和文字上的流暢,同時(shí)在文件管理上,visio提
供了分頁、分組的管理方式。visi。支持UML的靜態(tài)和動(dòng)態(tài)建模,對UML的建模提供了單
獨(dú)的組織管理。從2000版本后visio被Microsoft收購,正式成為Office大家庭的一員,目前
最新版是2002。納入名門的visio2002被微軟的風(fēng)格所同化,樣子出現(xiàn)了一些華而不實(shí)的東
西,但是功能上visio不減從前,各種器件模版有了許多增進(jìn)。
它是最通用(MS的東西,意味著許多附帶的通用的東西)的硬件、網(wǎng)絡(luò)平臺(tái)等圖表設(shè)計(jì)軟件。
好處是易用性高,特別是對不善于自己構(gòu)造圖的人。但是正因?yàn)楹苋阅硞€(gè)方面上會(huì)造
成專業(yè)程度較低。
有關(guān)工程管理類的顯然不如PROJECT2000好用;
畫IDEFO圖顯然不如BPWN好用;
畫IDEF1X圖顯然無法與ERWIN相比;
畫組織機(jī)構(gòu)圖WORD足夠用了,且普遍適用;
畫網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖只要有相應(yīng)的圖素,用什么畫都行;
畫有關(guān)圖表類的顯然不如EXCEL好用;
關(guān)鍵的是,VISIO的圖只能以對象的方式插入你的主文檔,只有在它本身環(huán)境下才能修改。
2,smartdraw:校園里比較流行的繪圖軟件。用慣了visio,感覺smartdraw有許多不一樣的
地方。一開始就是提供你大堆模版,以目錄樹的形式放在左邊。你的設(shè)計(jì)都可以納入模版,
并且在某個(gè)目錄組織。smartdraw也是大手筆,有許多visio沒有的方便功能。比如插入表格。
smartdraw本身是獨(dú)立提供圖稿繪制的工具,因而工具齊全。而visio更多是與word集成在
一起,能夠充分利用word的編排功能。有心者不妨一試,有了感覺我們再交流。
(二)原碼瀏覽的工具:
1,Sourcelnsigt:不能不說這個(gè)東西是個(gè)好東東。以工程的方式管理原碼,提供非常適合
再工程的瀏覽手段.整個(gè)面板分成三個(gè)部分.左邊樹提供工程內(nèi)的所有變量,函數(shù),宏定義右邊
提供程序閱讀和編輯,下邊顯示你鼠標(biāo)在原碼觸及的函數(shù)或者變量定義.最讓人佩服的是
Sourcelnsigt不僅高亮你的關(guān)鍵字,而且以近乎完美的板面編排讓你看程序如果看報(bào)紙,好
極了。Sourcelnsigt提供函數(shù)交叉調(diào)用的分析,并以樹狀的形式顯示調(diào)用關(guān)系。不過,速度
有些問題,我一般不用。我用的版本是3.02000產(chǎn)品。
2,SourceNavigator:這個(gè)是從RedhatLinux版本移植到Win32下的,與Sourcelnsigt相比,
樣子土多了,處處透著Linux的鄉(xiāng)土氣息,不過是干實(shí)事的家伙。提供原碼高亮顯示和編輯,
提供頭文件的包含關(guān)系分析,提供類的層次關(guān)系,這個(gè)東西最大的特點(diǎn)是把原碼始終和文件
聯(lián)系在一起,提供到文件的導(dǎo)航。當(dāng)然不能說它使用很方便,我一般不用它,但是它的分
析速度有優(yōu)勢,這是Sourcelnsigt必須低頭的。
3,Dia:(http:〃/projects/dia/)完全免費(fèi)的東西,目前有Win32Port6MB
左右,畫圖足夠用了.可惜不能生成代碼.我在win2000ads上安裝卻有問題。
(三)配置管理工具
配置管理的重要意義在于維護(hù)文檔的統(tǒng)一和可追溯性。盡管宏觀的配置管理包括很多內(nèi)
容,但是我們最常用到的是對程序代碼的版本控制,至于變更的控制、管理和通知這里不多
介紹。下面將簡要介紹國內(nèi)幾種常用的工具。
1,VirsualSourceSafe:
微軟的studio企業(yè)版包含的版本管理工具。該工具包括?服務(wù)器和?通過網(wǎng)絡(luò)可以連接服
務(wù)器的客戶端。VSS提供了基本的認(rèn)證安全和版本控制機(jī)制,包括Checkin(入庫)、
Checkout(出庫)、Branch(分支)、Label(標(biāo)定)等功能:能夠?qū)ξ谋荆M(jìn)制,圖形圖象幾乎任
何類型的文件進(jìn)行控制;提供歷史版本對比;可以集成在studio中。
VSS的客戶端既可以連接服務(wù)器運(yùn)行,也可以在本機(jī)運(yùn)行,非常適合于個(gè)人程序開發(fā)的版本
管理。
(VSS的詳情我以后還會(huì)貼出)
2,PVCS:
PVCS是世界領(lǐng)先的軟件開發(fā)管理工具,市場占有率達(dá)70%以上,是公認(rèn)的事實(shí)上的工業(yè)標(biāo)
ffiolDC在1996年9月的報(bào)告中評述:“PVCS是軟件開發(fā)管理工業(yè)領(lǐng)域遙遙領(lǐng)先的領(lǐng)導(dǎo)者”。
全球的著名企業(yè)、軟件機(jī)構(gòu)、銀行等諸多行業(yè)及政府機(jī)構(gòu)幾乎無一例外地應(yīng)用了PVCS.
PVCS包含多種工具。PVCSVersionManager會(huì)完整、詳細(xì)地記錄開發(fā)過程中出現(xiàn)的變更和修
改,并使修訂版本自動(dòng)升級(jí),而PVCSTracker、PVCSNotify會(huì)自動(dòng)地對上述變更和修改進(jìn)行
追蹤。另外,PVCSRequisitePro提供了一個(gè)獨(dú)特的Micro$oftWord界面和需求數(shù)據(jù)庫,從而
可以使開發(fā)機(jī)構(gòu)實(shí)時(shí)、直觀地對來自于最終用戶的項(xiàng)目需求及需求變更進(jìn)行追蹤和管理,可
有效地避免重復(fù)開發(fā),保證開發(fā)項(xiàng)目按期、按質(zhì)、按原有的資金預(yù)算交付用戶。
我比較喜歡的是PVCS基于WEB的應(yīng)用比較方便,只要設(shè)定用戶和權(quán)限,規(guī)劃好目錄結(jié)構(gòu),
項(xiàng)目組成員通過瀏覽器完成操作。
3,ClearCase:
ClearCase是rational公司的主要配置管理工具,可能大家對Rose熟悉一點(diǎn),不過就我所知,
現(xiàn)在絕大多數(shù)企業(yè)已經(jīng)從PVCS過渡到ClearCase來/,其原因在于ClearCase是整個(gè)rational
產(chǎn)品系列中的中樞(repository).
ClearCase提供了VOB的概念來進(jìn)行配置管理,功能極其強(qiáng)大。同時(shí)ClearCase使用起來也
非常復(fù)雜,沒有經(jīng)過專門培訓(xùn),自學(xué)還是有?定難度的。ClearCase目前國內(nèi)流行版本是for
NT的4.1需要在NT主域控制器上安裝。ClearCase的解密和安裝比較復(fù)雜。
ClearCase是世界上目前最強(qiáng)大的配置管理工具之一,由于它采用許多新的配置管理思想,
使得相對于傳統(tǒng)的CVS,VSS,PVCS等版本管理工具,ClearCase具有許多閃光點(diǎn),目前正在為
世界上各大軟件企業(yè)所使用(國內(nèi)目前華為,先驅(qū)使用該系統(tǒng))。ClearCase中有大量的新的
術(shù)語。其中比較重要的術(shù)語有:UCM(統(tǒng)一配置管理)VOB(版本對?象基礎(chǔ))View(版本觀圖)
Activity(更新活動(dòng))。ClearCase實(shí)現(xiàn)版本管理的基礎(chǔ)是VOB,成員要更改受控資料,需要先設(shè)
置一個(gè)自己的View,這個(gè)View是你感興趣的受控資料范圍,然后可以CheckOut資料到本
地資料區(qū),進(jìn)行修改后再CheckIn提交。ClearCase極為有力的支持多版本、并行開發(fā)。
ClearCase不僅可以提供基于文件的版本歷史,甚至可以對整個(gè)目錄系統(tǒng)的演化進(jìn)行跟蹤記
錄。
ClearCase目前支持的執(zhí)行平臺(tái)有UNIX"LINUX,WINNT。WINNT最新版木是Clea<ase
2002,Solaris上我使用的版本是4.3.需要指出的一點(diǎn)是ClearCase十分昂貴,普通企業(yè)難以購
買,另外由于其功能十分強(qiáng)大,對系統(tǒng)管理員和使用者要求較高,培訓(xùn)費(fèi)用不匪。
4,CVS:
在linux和unix下系統(tǒng)自帶的版本控制工具,是版本控制中工具的鼻祖,功能十分強(qiáng)大,但
是都得通過命令行的形式來操作,不便使用。目前,Internet上提供了基于Windows的客戶
端,名字叫WinCVS,而且提供了原碼。
(四)數(shù)據(jù)庫建模
1,ERWin:CA公司出品的拳頭產(chǎn)品,強(qiáng)大的老牌數(shù)據(jù)庫建模工具。它有一個(gè)兄弟足
BPWin,這個(gè)是CASE工具的?個(gè)里程碑似的產(chǎn)品。目前的我使用的版本是4.0。ERWin界面
相當(dāng)簡潔漂亮,也是采用ER模型,如果你是開發(fā)中小型數(shù)據(jù)庫,極力推薦ERWin,它的
Diagram給人的感覺十分清晰。在一個(gè)實(shí)體中,不同的屬性類型采用可定制的圖標(biāo)顯示,
實(shí)體與實(shí)體的關(guān)系也一目了然。當(dāng)然ERWin不僅是花花公子,它提供的功能如PowerDesian
一樣強(qiáng)大(不支持UML)。從我個(gè)人使用的感覺,ERWin不適合非常大的數(shù)據(jù)庫的設(shè)計(jì),因
為它對Diagram欠缺更多層次的組織,而且不知什么原因,我感覺它對內(nèi)存要求較高,使用
到后期容易出現(xiàn)圖標(biāo)不能顯示的情況,一如windows內(nèi)存緊缺的表現(xiàn)。
erwin支持ideflx即信息建模,就是我們常說的er圖、實(shí)體關(guān)系圖,也就是數(shù)據(jù)庫結(jié)構(gòu)圖。
bpwin支持idefO/idefVdfd,是功能與流程建模,主要用來描述企業(yè)的業(yè)務(wù)流程,比uml的
usecase/sequence更適合描述復(fù)雜邏輯。如果要全過程支持,請選擇bpwin+
PowerDesigner7.5y^orerwin4+rationalrose2001(建議用廣50~200個(gè)table的信息系統(tǒng))
ERWin的不足:對中文支持不好。和Er/Studio比較:
<1>在權(quán)限/版本管理方面ERStudio和RationalRose有些
相似,允許分模塊進(jìn)行checkin/checkout,并發(fā)開發(fā)程度
高,ERWin這一點(diǎn)就不行了!!
<2>另外一個(gè)就是ERWin的逆向工程雖然和ERStudio一樣提供一堆過濾條件,但卻不能
指定的對象(如:指定的數(shù)據(jù)表/視圖/觸發(fā)器)進(jìn)行逆向工程,但ERStudio卻提供了這些
功能。
<3>此外ERStudio還提供了宏功能,把VB的一些功能以插件方式提供了用戶,但ERWin中
卻沒有提供!!雖然這個(gè)功能一般的用戶根本很少使用!
看到ERStudio的宏功能,很容易讓人想到Winmap的一堆插件,兩者的公司都向用戶提供
了插件(宏)讓用戶下載使用!這種做法很值得很多軟件公司參考!!
當(dāng)然CA公司也不是個(gè)廢物,提供了幾個(gè)重要的功能:提供了自家開發(fā)的BPWin的接口,
以及Oracle這個(gè)數(shù)據(jù)庫巨人的Designer的接口。另外同樣提供了插件功能,只不過這個(gè)插
件的接口需要使用他的標(biāo)桂,這一點(diǎn)有點(diǎn)象RationalRose的Addinmanager一樣(例如:
delphilink)!!
ERStudio提供了針對XML的接口,但ERWin卻沒有!!
2,MSVisio:
3,CaseStudio:性價(jià)比最高
4,ER/Studio:很不錯(cuò)的數(shù)據(jù)庫建模工具新勢力,非常不錯(cuò).結(jié)合Repository,可進(jìn)行VSS式
的版本控制。erwin能做到的它都能做到..?
5,modelmake
6,DeZignforDatabases:如果你是軟件工程師或是軟件產(chǎn)品經(jīng)理等常常需要規(guī)劃系統(tǒng)的話,
勢必會(huì)需要規(guī)劃數(shù)據(jù)庫的TableSchema。這套軟件能夠輔助你的規(guī)劃,將各個(gè)Table之間Key
的關(guān)連性表達(dá)出來,也提供有資料庫欄位異動(dòng)時(shí)的版木控制紀(jì)錄與統(tǒng)計(jì)報(bào)表等功能。
7,PowerDesign:Sybase推出的主打數(shù)據(jù)庫設(shè)計(jì)工具。PowerDesign致力于采用基于
Entiry-Relation的數(shù)據(jù)模型,分別從概念數(shù)據(jù)模型(ConceptualDataModel)和物理數(shù)據(jù)模型
(PhysicalDataModel)兩個(gè)層次對數(shù)據(jù)庫進(jìn)行設(shè)計(jì)。概念數(shù)據(jù)模型描述的是獨(dú)立于數(shù)據(jù)庫管理
系統(tǒng)(DBMS)的實(shí)體定義和實(shí)體關(guān)系定義。物理數(shù)據(jù)模型是在概念數(shù)據(jù)模型的基礎(chǔ)上針對目
標(biāo)數(shù)據(jù)庫管理系統(tǒng)的具體化。Sybase數(shù)據(jù)庫在國內(nèi)知名度可能不及Oracle,但是Sybase的數(shù)
據(jù)庫前端開發(fā)工具PowerBuilder卻是無可匹敵,再力口上PowerDesign的確有過人之處,因而
它在國內(nèi)得到相當(dāng)廣泛的使用。我手里使用的是2001的PowerDesign8。這個(gè)版本我感覺
上比早期的PowerDesign6.0-7.5都有了很大的改變。PowerDesign功能強(qiáng)大,使用非常方便。
首先它提供了概念模型和物理模型的分組,旱.現(xiàn)在使使用M左邊的足樹狀的概念模型和物理
模型導(dǎo)航,你可以建立多個(gè)概念模型和物理模型,并且以Package的形式任意組織;它幾
乎能夠產(chǎn)生到所有常用數(shù)據(jù)庫管理系統(tǒng)的SQL腳本,當(dāng)然你完全可以不經(jīng)過SQL腳本直接
在DBMS中生成數(shù)據(jù)庫;它提供增量的數(shù)據(jù)庫開發(fā)功發(fā)功能,支持局部更新,你可以在概
念模型,物理模型,實(shí)際數(shù)據(jù)庫三者間完成設(shè)計(jì)的同步。還有逆向工程,再工程支持,目前
還支持UML建模.總體感覺PowerDesing發(fā)展到8。已經(jīng)非常成熟,許多使用上細(xì)微的感覺
只有你用過它才好評價(jià),我不多說了。
8,RationalRose
(五)UML建模
UML不算是個(gè)新名詞,但是實(shí)際中還是用得很少(可能是因?yàn)槎际亲鲂№?xiàng)目的原因吧,
大項(xiàng)目就用得多了).
UML是個(gè)好東西,但是過分的依賴于UML也不是一件好事,因?yàn)橛袝r(shí)候它會(huì)把簡單的東
西亞雜化.即使是代碼的優(yōu)良結(jié)構(gòu)和可重用性也不能作為強(qiáng)制使用UML借U,良好的算法
完全可以替代部分不必要的設(shè)計(jì)模塊,或者說,其實(shí)有更好的UML設(shè)計(jì)你沒有發(fā)現(xiàn).
1,RationalRose:大恐龍,小項(xiàng)目中難以使用,雖然是UML設(shè)計(jì)者做的。雖然這是一個(gè)推
薦使用的高端工具,它使改進(jìn)和維護(hù)設(shè)計(jì)、從模型生成報(bào)表、在平行協(xié)作環(huán)境中與他人共同
進(jìn)行建模工作變得很方便,
盡管Rose這個(gè)名稱跟英文中玫瑰單詞一摸一樣,但是這里他代表Rational公司的面向?qū)ο?/p>
分析和設(shè)計(jì)工具的一款力作。Rose目前在國內(nèi)正被越來越多的公司所使用,其原因一方面
是隨著軟件規(guī)模的擴(kuò)大,面向?qū)ο蠓治龊驮O(shè)計(jì)的優(yōu)勢突現(xiàn)出來,軟件企業(yè)正在從面向過程向
面向?qū)ο筮^渡。另一方面,Rose集中體現(xiàn)了統(tǒng)一軟件建模(UML)的先進(jìn)設(shè)計(jì)思想,能夠通過
一套統(tǒng)?的圖形符號(hào)簡潔有效地表達(dá)各種設(shè)計(jì)思想。當(dāng)然,Rose本身在設(shè)計(jì)上的完善和與
RationalCASE家族的完美集成也是作為一款最成功的CASE產(chǎn)品的基礎(chǔ)。
Rose2002功能上可以完成UML的9種標(biāo)準(zhǔn)建模,即靜態(tài)建模(用例圖類圖對象圖組件
圖配置圖)和動(dòng)態(tài)建模(合作圖序列圖狀態(tài)轉(zhuǎn)移圖活動(dòng)圖),為了使靜態(tài)建模可以直接
作用于代碼,Rose提供「類設(shè)計(jì)到多種程序語言代碼自動(dòng)產(chǎn)生的插件。
同時(shí),作為一款優(yōu)秀的分析和設(shè)計(jì)工具,Rose具有強(qiáng)大的正向和逆向工程能力。正向工程
這里指的是由設(shè)計(jì)產(chǎn)生代碼,逆向工程指由代碼歸納山設(shè)計(jì)。通過逆向工程Rose可以對歷
史系統(tǒng)作出分析,然后進(jìn)行改進(jìn),再通過正向工程產(chǎn)生新系統(tǒng)的代碼,這樣的設(shè)計(jì)方式我們
稱之為再工程。
下載地址:Rose2000和破解:http:〃/
Rose2003:/2004/down_view.asp?action=download&id=14
Rose2003破解:/ASP/cdf_pic/20040S/reply_l_529068.rar
2,XDE,分別有4和4wsda的,很不錯(cuò),值得使用.
3,BorlandTogether:有彳艮多版木,其中4VS.Net不推薦使用,用Jbuilder推薦使用,只是實(shí)
在不喜歡它的界面。(Java開發(fā)的大,慢恐龍,但是各項(xiàng)功能很爽,這也不能怪它,java做
的東西慢是正常的)。但它的功能還是很強(qiáng)大的。尤其是逆向工程用起來很方便,只不過當(dāng)
時(shí)我們的EJB項(xiàng)目中EJB都非常大,動(dòng)輒幾千行,用它生成的sequence圖實(shí)在太詳細(xì)了,
只有不停地刪掠細(xì)節(jié),留下框架。建議非不得已不要使用這個(gè)龐然大物,對你的機(jī)器和你
的耐心都是個(gè)考驗(yàn)。它有foreclipse,等等插件,感覺也不錯(cuò)。
4,MSVisio2003forVisualStudio:VisioProfessional2000開始提供內(nèi)建的UML支持。
Enterprise版更加完整。這是一個(gè)功能廣泛強(qiáng)大的工具。和vs.net結(jié)合不錯(cuò),只是僅限于
VS.NET的代碼生成,沒意思,各方面都不舒服。
5,PowerDesigner:足簡練實(shí)用的建模工具、G.0支持?jǐn)?shù)據(jù)流圖,8.0支持UML的
UseCase/sequence/class視圖;
6,VisualParadigm:(/vpuml.php)目前最合適也是最火的軟
件/(從這一年來網(wǎng)站的設(shè)計(jì)變化就可以看出來好賣),強(qiáng)大,非Java.CommunityEditicn可
以免費(fèi)使用,當(dāng)然有功能限制.是一種UML建模和分析工具,出色的建模功能和代碼同步。
7,WithClass2000:(http:〃/)界面不是很好看,而且也沒有免費(fèi)版本,不
過功能還不錯(cuò),特別是代碼生成的能力.
8,Poseidon(海神…):也是Java的,很漂亮,就是太慢。
9,Jude:一個(gè)號(hào)稱中日xp合作開發(fā)出來的小uml工具,只有幾m的大小,功能也還不錯(cuò)。
也是java做的,速度還是很快的。如果不需要使用逆向工程之類的高級(jí)功能的話,強(qiáng)烈推
薦這個(gè)uml工具,并且它是免費(fèi)的。
10,MagicDraw:一個(gè)基于Java的廉價(jià)UML建模工具。
11,ObjecteeringUML:一個(gè)免費(fèi)的個(gè)人UML產(chǎn)品。
12,SystemArchitect:一個(gè)很受歡迎的高端UML建模工具,支持雙向工程(Round-trip
Engineering)o
RationalRose98教程
http://www.zsbs.eom/h/sdm/se_tool/rational/rose/rose98.ntm
偶用過的UML工具
/post-253978.html
又是UML
/sic/blog/blogview.asp?loglD=27
幾類常用Case工具介紹⑴
/cndevforum/subject_view.asp?subject_id=2918&forum_id=61
MarkoBoger::XP、、UIVL和和Poseiidon
www.gentleware.corn/press/200V20030806_Chat_Umlchina_CHIN.pdf
Together應(yīng)用之路(1)-我沒有前世
/uestc9^archive/2004t)^09Z27118.aspx
附錄(2)CASE工具的種類及應(yīng)用特點(diǎn)
L引言
1.1CASE工具是什么
CASE即ComputerAidedSo代wareEngineering,中文意思是計(jì)算機(jī)輔助軟件工程。CASE是一
套方法和工具,可使系統(tǒng)開發(fā)商規(guī)定的應(yīng)用規(guī)則,并由計(jì)算機(jī)自動(dòng)生成合適的計(jì)算機(jī)程序。
1.2我們?yōu)槭裁匆褂肅ASE工具
今天,系統(tǒng)的構(gòu)建變得越來越復(fù)雜,UML建模CASE工具為項(xiàng)目相關(guān)人員(如:項(xiàng)目經(jīng)理,分
析員,設(shè)計(jì)者,構(gòu)架師,開發(fā)者等)提供了許多的好處。UML建模CASE工具允許我們應(yīng)用規(guī)
范的面向?qū)ο蠓治龊驮O(shè)計(jì)的方法與理論,遠(yuǎn)離糾纏不清的源代碼,達(dá)到構(gòu)建和設(shè)計(jì)變得更直
觀,更容易地理解與修改的層次。在大型項(xiàng)H中,通過使用CASE工具可以獲得以下方便:
1)通過用例模型,業(yè)務(wù)/系統(tǒng)分析可以捕獲到業(yè)務(wù)/系統(tǒng)需求。
2)設(shè)計(jì)者/構(gòu)架師所作的設(shè)計(jì)模型能在不同層次的同一層內(nèi)清晰表達(dá)對象或子系統(tǒng)之間
的交互(典型的UML圖如類圖和交互圖).
3)開發(fā)者能快速地將模型轉(zhuǎn)變?yōu)橐粋€(gè)可運(yùn)行的應(yīng)用程序,尋找類和方法的子集,以及理解
它們?nèi)绾谓换ァ?/p>
出于這些動(dòng)機(jī),UMLCASE工具以及對應(yīng)的方法論為我們提供了一種因系統(tǒng)太復(fù)雜而不能理
解F層源代碼的描述系統(tǒng)的方法,同時(shí)允許我們更快更便宜地開發(fā)正確的軟件解決方案。
當(dāng)然,要考慮CASE工具在UML建模能力,項(xiàng)目生命周期支持,雙向工程,數(shù)據(jù)建模,性能,
價(jià)格.可支持性,易使用性等方面的不同。
2.CASE工具的種類及各自特點(diǎn)
2.1.RationalRose
目前市面上最流行的UMLCase工具,繪制的圖形簡潔美觀它支持Java,J2EE,C++,MCF等語言和
框架的建模.在加上他的Rational系列,RUP的方法論,是當(dāng)之無愧的巨無衡.IBMRationalRose
是一個(gè)完整的可視建模方案,開發(fā)人員、項(xiàng)目經(jīng)理、工程師和分析人員可以在提交編碼之前
對需求和構(gòu)架進(jìn)行可視化、理解和改進(jìn)。利用模型驅(qū)動(dòng)的方法進(jìn)行軟件開發(fā),可以保證系統(tǒng)
的可擴(kuò)展性、靈活性和可靠性,使您更快更好地創(chuàng)建軟件。
借助Rose,您可以創(chuàng)建一個(gè)強(qiáng)大可靠的、基于構(gòu)件的構(gòu)架,它可以幫助您將發(fā)生變更的地
方隔離開來。在您進(jìn)行變更的時(shí)候,這個(gè)構(gòu)架將軟件的其它部分隔離,避免這些部分受到負(fù)
面影響。RationalRose幫助您以一種可預(yù)測的、受到良好控制的方式來實(shí)施變更,使您可以
迅速地開發(fā)可靠的代碼。
UML模型為軟件提供了可視化的表示方法,Rose正是利用UML模型來統(tǒng)一您的開發(fā)團(tuán)隊(duì)。
模型驅(qū)動(dòng)的開發(fā)有助于整合您的設(shè)計(jì)和實(shí)施環(huán)境,使所有員工協(xié)同工作。
借助RationalRose,開發(fā)人員可以用一個(gè)建模工具開發(fā)所有項(xiàng)目。Rose提供了與所有主導(dǎo)的
IDE、編程語言、數(shù)據(jù)庫系統(tǒng)和配套技術(shù)的無縫集成。一旦熟悉了RationalRose,員工們就
可以輕松自如地在項(xiàng)目間轉(zhuǎn)換,工作更加有效,高效迅速地完成所有的開發(fā)任務(wù)。
如ROSEDataModeler軟件它通過一個(gè)公共的工具和UML(統(tǒng)一建模語言)將數(shù)據(jù)庫設(shè)計(jì)人
員與開發(fā)團(tuán)隊(duì)的其他人員我系起來,幫助加速開發(fā)過程。使用RationalRose軟件,數(shù)據(jù)庫設(shè)
計(jì)人員可以直觀地了解應(yīng)用程序訪問數(shù)據(jù)庫的方式,從而可以在部署之前發(fā)現(xiàn)并解決問題。
其功能包括:
1)支持對象模型、數(shù)據(jù)模型和數(shù)據(jù)存儲(chǔ)模型的創(chuàng)建。
2)映射邏輯和物理模型,從而靈活地將數(shù)據(jù)庫設(shè)計(jì)演變?yōu)閼?yīng)用程序邏輯。
3)支持?jǐn)?shù)據(jù)模型、對象模型和已定義數(shù)據(jù)語言(DDL)文件/數(shù)據(jù)庫管理系統(tǒng)(DBMS)之
間的雙向工程。
4)變換同步選項(xiàng)(在變換期間對數(shù)據(jù)模型和對象模型進(jìn)行同步)。
5)數(shù)據(jù)模型-對象模型比較向?qū)А?/p>
6)支持一次性對整個(gè)數(shù)據(jù)庫進(jìn)行正向工程。
7)集成了其他IBMRationalSoftwareDevelopment生命周期工具。
8)能集成任何兼容SCC的版本控制系統(tǒng),包括IBMRationalClearCase軟件。
9)能夠以Web頁面的方式發(fā)布模型和報(bào)告,以此來提高整個(gè)團(tuán)隊(duì)的溝通效率。
其最突出特點(diǎn)就是通過使所有的團(tuán)隊(duì)成員獨(dú)立開發(fā)、協(xié)作溝通和交付更好的軟件來統(tǒng)一開發(fā)
團(tuán)隊(duì),建立穩(wěn)定、有彈性、基于構(gòu)件的系統(tǒng)構(gòu)架,以可控、可管理、可確認(rèn)的方式進(jìn)行開發(fā),
從而降低成本,加快面市的速度。一個(gè)無縫集成所有領(lǐng)先的IDE與最新技術(shù)的工具可滿足
您的所有技術(shù)需要,最大化開發(fā)工作的速度和簡便性。
使用RationalRose對VC工程進(jìn)行反向圖,及其對JAVA反向工程創(chuàng)建使用界面如下圖所示:
圖2.1.1VC反向圖
圖2.1.2JAVA反向圖
2.2ModelMaker
一個(gè)非常強(qiáng)大的軟件工具,其功能與所有強(qiáng)大且具有多面性的產(chǎn)品一樣。但ModelMaker的
復(fù)雜性卻會(huì)讓一個(gè)新手望而卻步。
ModelMaker常被認(rèn)為是一個(gè)UML圖形工具或是DelphiCase工具燃而,它比一般的圖形工
具和Case工具要快得多,有時(shí),它可為你寫一些人工智能式的代碼。它是可擴(kuò)展的,支持
UML圖,設(shè)計(jì)模式,逆向生成與分解的雙向代碼管理工具等。
它的核心則為,它支持本地代碼模型,你所有的類及其關(guān)聯(lián)元素(單元,圖,文檔及事件類
型等等)都是模型內(nèi)部的對象。ModelMaker為活動(dòng)模型提供了多種視圖,允許你在類列表,
元素列表或圖集中進(jìn)行操作,如果你已有準(zhǔn)備,你即可從模型中生成源代碼單元,并可由
Delphi來進(jìn)行編譯,以后生成的單元每次也可重新生成。你可對各種不同的設(shè)置進(jìn)行修改(例
如代碼注釋選項(xiàng),代碼次序,方法使用等等),并且可為多種需求重新生成單元(調(diào)試代碼,
自動(dòng)生成的大量注釋代碼等)。
ModelMaker還是一個(gè)兩路的面向類樹的高效的、重構(gòu)的以及UML方式的CASE工具。它有
兩個(gè)版本:一個(gè)Pascal版本,一個(gè)C#版。兩個(gè)版本都包含了ModelMaker認(rèn)證。
1)Pascal版專門用于生成本地的Delphi代碼。完全支持Delphi的ObjectPascal語
言,且包括了大部分的Delphi組件.ModelMakerPascalEdition具有完全反轉(zhuǎn)工程的能
力,并且可以導(dǎo)入現(xiàn)存的Delphi代碼。DelphiIDEIntegrationexperts考慮了同步
ModelMaker以及DelphiIDE編輯器。
2)C#版用于專門生成本地的C#代碼。對于.NET框架語法,它完全支持2.0和
3.0三個(gè)版本.ModelMakerC#Edition具有完全反轉(zhuǎn)工程的能力,并且可以導(dǎo)入現(xiàn)存的
C#代碼。VisualStudioIDEIntegrationexperts和Delphi一樣也考慮了同步ModelMaker。
Delphi以及VisualStudioIDE編輯器都包含ModelMaker的許可。
對于軟件開發(fā)的整個(gè)過程,用戶都可以使用ModelMaker實(shí)時(shí)、技術(shù)的開發(fā)包括數(shù)據(jù)庫
類型在內(nèi)的應(yīng)用程序。并把它們導(dǎo)入到源代碼中。可以使用自帶的HelpFileGenerator■生成
HelpFiles.通過ModelMakerToolsAPI生成自己的報(bào)告。包括了XMLreporter范例。
其使用效果圖如下所示:
圖2.2界面圖
2.3PowerDesigner
由Sybase公司開發(fā)的一套商業(yè)建模工具,它與ROSE、ERWin類似,主要是為數(shù)據(jù)庫的建模
設(shè)計(jì)的,但與它們相比,具有更加突出的功能。
PD可以方便地對管理信息系統(tǒng)(MIS)進(jìn)行分析設(shè)計(jì),幾乎包括了數(shù)據(jù)庫模型模型設(shè)計(jì)
的全過程。利用PD可以制作數(shù)據(jù)流程圖、概念數(shù)據(jù)模型、物理數(shù)據(jù)模型,,可以生成多種
客戶端開發(fā)工具的應(yīng)用程序,還可為數(shù)據(jù)倉庫制作結(jié)構(gòu)模型,也能對團(tuán)隊(duì)設(shè)計(jì)模型進(jìn)行控制。
它可與許多流行的數(shù)據(jù)庫設(shè)計(jì)軟件,例如:PowerBuilder,Delphi,VB等相配合使用來縮短
開發(fā)時(shí)間和使系統(tǒng)設(shè)計(jì)更優(yōu)化。
PowerDesigner包括以下六個(gè)模塊:
1)ProcessAnalyst是數(shù)據(jù)流程圖(DFD)邏輯設(shè)計(jì)工具
2)DataArchitect是概念數(shù)據(jù)模型與物理數(shù)據(jù)模型設(shè)計(jì)工具
3)WarehouseArchitect是數(shù)據(jù)倉庫設(shè)計(jì)工具
4)AppModeler是客戶端應(yīng)用程序生成工具
5)MetaWorks是團(tuán)隊(duì)開發(fā)控制工具
6)Viewer是模型觀察工具
PD同時(shí)還提供完整的UML建模支持,以及面向?qū)ο笤O(shè)計(jì)和代碼的生成工具,可以滿足復(fù)
雜的技術(shù)環(huán)境需求。所以可以說PD在數(shù)據(jù)庫設(shè)計(jì)建模方面是做的最好的了。
當(dāng)然,除此之外其在企業(yè)級(jí)建模上它的功能也很強(qiáng)大。很多公司現(xiàn)在在用三個(gè)不同的產(chǎn)品,
一個(gè)是做需求分析,企業(yè)流程:另外一個(gè)是數(shù)據(jù)庫設(shè)計(jì):另外一個(gè)是UML數(shù)據(jù)設(shè)計(jì),三個(gè)
部分可能連不到一起。造成問題是比如需求改了,數(shù)據(jù)改了,對哪個(gè)類有關(guān)系,跟哪個(gè)流程
有關(guān)系看不出來,最后還得手工改。powerDesigner工具確可以把這些所有的建模工具連一
起,需求改了,數(shù)據(jù)模型改了都沒關(guān)系。另外PowerDesigner對新的技術(shù)支持的也比較好。
它支持了所有的最新的數(shù)據(jù)庫,不光支持Sybase本身的數(shù)據(jù)庫,也支持IBM、微軟、ORACLE
的數(shù)據(jù)庫。其軟件界面及UML建模圖如下所示:
圖2.3.1UML編輯器
圖2.3.2UML圖
2.4EnterpriseArchitect
以目標(biāo)為導(dǎo)向的軟件系統(tǒng),它覆蓋了系統(tǒng)開發(fā)的整個(gè)周期,除了開發(fā)類模型之外,還包括事
務(wù)進(jìn)程分析,使用案例需求,動(dòng)態(tài)模型,組件和布局,系統(tǒng)管理,非功能需求,用戶界面設(shè)
計(jì),測試和維護(hù)等。
其土要特點(diǎn)包恬:
1)為整個(gè)團(tuán)隊(duì)提供高級(jí)的UML2.0建模工具
EA為用戶提供一個(gè)高性能、直觀的工作界面,聯(lián)合UML2.0最新規(guī)范,為桌面電腦工作人
員、開發(fā)和應(yīng)用團(tuán)隊(duì)打造先進(jìn)的軟件建模方案。該產(chǎn)品不僅特性豐富,而且性價(jià)比極高,可
以用來配備您的整個(gè)工作出隊(duì),包括分析人員、測試人員、項(xiàng)目經(jīng)理、品質(zhì)控制和部署人員
等。
2)特性豐富系統(tǒng)設(shè)計(jì)
EnterpriseArchitect是一個(gè)完全的UML分析和設(shè)計(jì)工具,它能完成從需求收集經(jīng)步驟分析、
模型設(shè)計(jì)到測試和維護(hù)的整個(gè)軟件開發(fā)過程。它基于多用戶Windows平臺(tái)的圖形工具可以
幫助您設(shè)計(jì)健全可維護(hù)的軟件。除此,它還包含特性靈活的高品質(zhì)文檔輸出。用戶指南可以
在線獲取。
3)端到端跟蹤
EnterpriseArchitect提供了從需求分析、軟件設(shè)計(jì)一直到執(zhí)行和部署整個(gè)過程的全面可跟蹤
性。結(jié)合內(nèi)置的任務(wù)和資源分配,項(xiàng)目管理人員和QA團(tuán)隊(duì)能夠及時(shí)獲取他們需要的信息,
以便使項(xiàng)目按計(jì)劃進(jìn)行。
4)EA提供使用工具,能夠跟蹤依賴關(guān)系、支持大型模型,幫助您管理大型復(fù)雜的工程:含
有CVS或SCC提供工具,以時(shí)間快照為基線,通過比較來跟蹤模型變動(dòng),從而實(shí)現(xiàn)版本控
制;含有類似explorer的項(xiàng)目視窗,為您提供直觀高性能的工作界面。EA還含有一個(gè)所見
即所得形式的模板編輯器,提供強(qiáng)大的文檔生成和報(bào)告工具,能夠生成復(fù)雜詳細(xì)的報(bào)告,報(bào)
告可以按照公司或客戶要求的格式提供所需信息…
5)EA具備源代碼的前向和反向工程能力,支持多種通用語言,包括C++,C#,Java,Delphi,
VB.Net,VisualBasicPHP,除此,還可以獲取免費(fèi)的CORBA和Python附加組件。EA提供
一個(gè)內(nèi)置的源代碼編輯器,含語法突出功能,確保能夠在一致的工作環(huán)境中快速導(dǎo)航和杳找
您的模型源代碼。對于Eclipse或VisualStudio.Net工作人員,SparxSystems還提供到這些IDE
的輕量鏈接工具,您可以在EA中進(jìn)行建模,而后直接跳轉(zhuǎn)到自己偏愛的編輯器中進(jìn)行源代
碼的進(jìn)一步開發(fā)。代碼生成模板還允許您對生成的源代碼進(jìn)行定制,使之同公司規(guī)范相符。
EA還提供對大多數(shù)軟件開發(fā)語言和數(shù)據(jù)庫架構(gòu)的逆向工程支持,令您的應(yīng)用程序可視化,
從源代碼、Java.jar文件甚至是.Net二進(jìn)制匯編語言中獲取完整框架。通過導(dǎo)入框架和庫代
碼,實(shí)現(xiàn)對您已有投資重且利用的最大化。
6)EA還提供變換模板,編輯和開發(fā)均非常簡單,支持先進(jìn)的模型驅(qū)動(dòng)結(jié)構(gòu)體系(MDA)。
通過內(nèi)置的DDL,C#,Java,EJB和XSD變換,您可以從簡單的“平臺(tái)獨(dú)立模型”開始來構(gòu)建復(fù)
雜的解決方案,并定位于“平臺(tái)專門模型"(PSM)。一個(gè)PIM可以用來生成并同步多個(gè)PSM,
使工作效率得到顯著提高,
利用該工具進(jìn)行建模的界面如卜所示
圖2.4工作界面
2.5MicrosoftVisualVisio
目前國內(nèi)用得最多的case工具之一。它提供了日常使用中的絕大多數(shù)框圖的繪畫功能(包
括信息領(lǐng)域的各種原理圖,設(shè)計(jì)圖),同時(shí)提供了部分信息領(lǐng)域的實(shí)物圖。它是最通用的硬
件、網(wǎng)絡(luò)平臺(tái)等圖表設(shè)計(jì)軟件。好處是易用性高,特別是對不善于自己構(gòu)造圖的人。但是正
因?yàn)楹苋阅硞€(gè)方面上會(huì)造成專業(yè)程度較低。
visio的精華在于其使用方便,安裝后的visio2000既可以單獨(dú)運(yùn)行,也可以在word中作為對
象插入,與word集成良好,其圖生成后在沒有安裝visio的word上仍可查看。使用過其他繪
圖工具的朋友肯定會(huì)感受到visi。在處理框和文字上的流暢,同時(shí)在文件管理上,visi。提供
了分頁、分組的管理方式。visi。支持UML的靜態(tài)和動(dòng)態(tài)建模,對UML的建模提供了單獨(dú)的
組織管理。從2000版本后visi。被Microsoft收購,正式成為Office大家庭的一員,目前最新版
是2002。納入名門的visio2002被微軟的風(fēng)格所同化,樣子出現(xiàn)了一些華而不實(shí)的東西,但
是功能上visi。不減從前,各種器件模版有了許多增進(jìn)。而且還實(shí)現(xiàn)了與其他CASE工具的集
成如下圖所示:
圖2.5VISIO圖形轉(zhuǎn)換為VP圖
2.6VisualParadigm
是由一家香港公司開發(fā)的UML工具。功能的強(qiáng)大不次于rose等case工具。可以和其他工具
整合,包括Edipse/IBMWebSphere等并且支持多平臺(tái),所以在linux工作的朋友,要以選用
它來取代rose等在windows下的設(shè)計(jì)工具。VisualParadigm的開發(fā)公司不限制此軟件的非
商業(yè)用途,在網(wǎng)站上提供了各組件企業(yè)和專業(yè)版木的KeyFile,
附件(3)軟件、軟件危機(jī)、軟件工程
1、軟件及其特性
第一個(gè)寫軟件的人是Ada(AugustaAdaLovelace),在1860年代他嘗試為BabbageCCharles
Babbage)的機(jī)械式計(jì)算機(jī)寫軟件。盡管他們的努力失敗了,但他們的名字永遠(yuǎn)載入了計(jì)算
機(jī)發(fā)展的史冊。
在1950年代,軟件作隨著第一臺(tái)電子計(jì)算機(jī)的問世誕生了。以寫軟件為職業(yè)的人也開
始出現(xiàn),他們多是經(jīng)過訓(xùn)練的數(shù)學(xué)家和電子工程師。1960年代美國大學(xué)里開始出現(xiàn)授予計(jì)
算機(jī)專業(yè)的學(xué)位,教人們寫軟件。
本世紀(jì)中葉軟件產(chǎn)業(yè)從零開始起步,在短短的50年的時(shí)間里迅速發(fā)展成為推動(dòng)人類社
會(huì)發(fā)展的龍頭產(chǎn)業(yè),并造就了一批百萬、億萬富翁。隨著信息產(chǎn)業(yè)的發(fā)展,軟件對人類社會(huì)
性越來越重要。
那么,如何給軟件定義哪?軟件是什么?
首先要說明的是,軟件對于人類而言是一個(gè)全新的東西,其發(fā)展歷史不過四、五十年。
人們對軟件的認(rèn)識(shí)經(jīng)歷了一個(gè)由淺到深的過程。
在計(jì)算機(jī)系統(tǒng)發(fā)展的初期,硬件通常用來執(zhí)行一個(gè)單一的程序,而這個(gè)程序又是為一個(gè)
特定的目的而編制的。早期當(dāng)通用硬件成為平常事情的時(shí)候,軟件的通用性卻是很有限的。
大多數(shù)軟件是由使用該軟件的個(gè)人或機(jī)構(gòu)研制的,軟件往往帶有強(qiáng)烈的個(gè)人色彩。早期的軟
件開發(fā)也沒有什么系統(tǒng)的方法可以遵循,軟件設(shè)計(jì)是在某個(gè)人的頭腦中完成的一個(gè)隱藏的過
程。而且,除了源代碼往往沒有軟件說明書等文檔。
從60年代中期到70年代中期是計(jì)算機(jī)系統(tǒng)發(fā)展的第二個(gè)時(shí)期,在這一時(shí)期軟件開始作
為一種產(chǎn)品被廣泛使用,出現(xiàn)了“軟件作坊”專職應(yīng)別人的需求寫軟件。這一軟件開發(fā)的方
法基本上仍然沿用早期的個(gè)體化軟件開發(fā)方式,但軟件的數(shù)量急劇膨脹,軟件需求日趨復(fù)雜,
維護(hù)的難度越來越大,開發(fā)成本令人吃驚地高,而失敗的軟件開發(fā)項(xiàng)目卻屢見不鮮。“軟件
危機(jī)”就這樣開始了!
“軟件危機(jī)”使得人們開始對軟件及其特性進(jìn)行更深一步的研究,人們改變了早期對軟
件的不正確看法。早期那些被認(rèn)為是優(yōu)秀的程序常常很難被別人看懂,通篇充滿了程序技巧。
現(xiàn)在人們普遍認(rèn)為優(yōu)秀的程序除了功能正確,性能優(yōu)良之外,還應(yīng)該容易看懂、容易使用、
容易修改和擴(kuò)充。
現(xiàn)在,被普遍接受的軟件的定義是:
軟件(software)是計(jì)算機(jī)系統(tǒng)中與硬件(hardware)相互依存的另一部分,它包括程序
(program)>相關(guān)數(shù)據(jù)(data)及其說明文檔(document)。
其中程序是按照事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列;數(shù)據(jù)是是程序能正常操縱
信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)維護(hù)和使用有關(guān)的各種圖文資料。
軟件同傳統(tǒng)的工業(yè)產(chǎn)品相比,有其獨(dú)特的特性:
1)軟件是i種邏輯實(shí)體,具有抽象性。這個(gè)特點(diǎn)使它與其它工程對象有著明顯的差異。
人們可以把它記錄在紙上、內(nèi)存、和磁盤、光盤上,但卻無法看到軟件本身的形態(tài),必須通
過觀察、分析、思考、判斷,才能了解它的功能、性能等特性。
2)軟件沒有明顯的制造過程。一旦研制開發(fā)成功,就可以大量拷貝同一內(nèi)容的副本。
所以對軟件的質(zhì)量控制,必須著重在軟件開發(fā)方面下工夫。
3)軟件在使用過程中,沒有磨損、老化的問題。軟件在生存周期后期不會(huì)因?yàn)槟p而
老化,但會(huì)為了適應(yīng)硬件、環(huán)境以及需求的變化而進(jìn)行修改,而這些修改有不可避免的引入
錯(cuò)誤,導(dǎo)致軟件失效率升高,從而似的軟件退化。當(dāng)修改的成本變得難以接受時(shí),軟件就被
拋棄。
4)軟件對硬件和環(huán)境有著不同程度的依賴性。這導(dǎo)致了軟件移植的問題。
5)軟件的開發(fā)至今尚未完全擺脫手工作坊式的開發(fā)方式,生產(chǎn)效率低。
6)軟件是復(fù)雜的,而且以后會(huì)更加復(fù)雜。軟件是人類有史以來生產(chǎn)的復(fù)雜度最高的工
業(yè)產(chǎn)品。軟件涉及人類社會(huì)的各行各業(yè)、方方面面,軟件開發(fā)常常涉及其它領(lǐng)域的專門知識(shí),
這對軟件工程師提出了很高的要求。
7)軟件的成本相當(dāng)昂貴。軟件開發(fā)需要投入大量、高強(qiáng)度的腦力勞動(dòng),成本非常高,
風(fēng)險(xiǎn)也大。現(xiàn)在軟件的開銷已大大超過了硬件的開銷。
8)軟件工作牽涉到很多社會(huì)因素。許多軟件的開發(fā)和運(yùn)行涉及機(jī)構(gòu)、體制和管理方式
等問題,還會(huì)設(shè)計(jì)到人們的觀念和心理。這些人的因素,常常成為軟件開發(fā)的困難所在,直
接影響到項(xiàng)目的成敗。
2、軟件危機(jī)及其原因
軟件危機(jī)指的是在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。
1968年北大西洋公約組織的計(jì)算機(jī)科學(xué)家在聯(lián)邦德國召開的國際學(xué)術(shù)會(huì)議上第一次提
出了"軟件危機(jī)"(softwarecrisis)這個(gè)名詞。
概括來說,軟件危機(jī)包含兩方面問題:一、如何開發(fā)軟件,以滿足不斷增長,日趨復(fù)雜
的需求;二、如何維護(hù)數(shù)量不斷膨脹的軟件產(chǎn)品。
具體地說,軟件危機(jī)主要有以下表現(xiàn):
(1)對軟件開發(fā)成本和進(jìn)度的估計(jì)常常不準(zhǔn)確。開發(fā)成本超出預(yù)算,實(shí)際進(jìn)度比預(yù)定
計(jì)劃一再拖延的現(xiàn)象并不罕見。
(2)用戶對“已完成”系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。
(3)軟件產(chǎn)品的質(zhì)量往往靠不住。Bug一大堆,Patch一個(gè)接一個(gè)。
(4)軟件的可維護(hù)程度非常之低。
(5)軟件通常沒有適當(dāng)?shù)奈臋n資料。
(6)軟件的成本不斷提高。
(7)軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和人們需求的增長。
軟件危機(jī)的原因,一方面是與軟件本身的特點(diǎn)有關(guān):另一方面是由軟件開發(fā)和維護(hù)的方
法不正確有關(guān)。
軟件的特點(diǎn)前面已經(jīng)有一個(gè)簡單介紹。軟件開發(fā)和維護(hù)的不正確方法主要表現(xiàn)為忽視軟
件開發(fā)前期的需求分折;開發(fā)過程沒有統(tǒng)一的、規(guī)范的方法論的指導(dǎo),文檔資料不齊全,忽
視人與人的交流:忽視測試階段的工作,提交用戶的軟件質(zhì)量差;輕視軟件的維護(hù)。這些大
多數(shù)都是軟件開發(fā)過程管理上的原因。
3、軟件工程
1968年秋季,NATO(北約)的科技委員會(huì)召集了近50名一流的編程人員、計(jì)算機(jī)科
學(xué)家和工業(yè)界巨頭,討論和制定擺脫“軟件危機(jī)”的對策。在那次會(huì)議上第一次提出了軟件
工程(softwareengineering)這個(gè)概念。到今年(1998),軟件工程整整走過了30年的歷程。
在這30年的發(fā)展中,人們針對軟件危機(jī)的表現(xiàn)和原因,經(jīng)過不斷的實(shí)踐和總結(jié),越來
越認(rèn)識(shí)到:按照工程化的原則和方法組織軟件開發(fā)工作,是擺脫軟件危機(jī)的一個(gè)主要出路。
今天,盡管“軟件危機(jī)”并未被徹底解決,但軟件工程30年的發(fā)展仍可以說是碩果累
累。
下面我們給出一個(gè)軟件工程的定義,然后簡單討論一下軟件工程所包括的內(nèi)容:
軟件工程是一門研究如何用系統(tǒng)化、規(guī)范化、數(shù)量化等工程原則和方法去進(jìn)行軟件的開
發(fā)和維護(hù)的學(xué)科。
軟件工程包括兩方面內(nèi)容:軟件開發(fā)技術(shù)和軟件項(xiàng)目管理。
軟件開發(fā)技術(shù)包括軟件開發(fā)方法學(xué)、軟件工具和軟件工程環(huán)境。
軟件項(xiàng)目管理包括軟件度量、項(xiàng)目估算、進(jìn)度控制、人員組織、配置管理、項(xiàng)目計(jì)劃等。
統(tǒng)計(jì)數(shù)據(jù)表明,大多數(shù)軟件開發(fā)項(xiàng)H的失敗,并不是由于軟件開發(fā)技術(shù)方面的原因。它
們的失敗是由于不適當(dāng)?shù)墓芾碓斐傻摹_z憾的是,盡管人們對軟件項(xiàng)目管理重要性的認(rèn)識(shí)有
所提高,但在軟件管理方面的進(jìn)步遠(yuǎn)比在設(shè)計(jì)方法學(xué)和實(shí)現(xiàn)方法學(xué)上的進(jìn)步小,至今還提不
出一套管理軟件開發(fā)的通用指導(dǎo)原則。
附錄(4)軟件工程的七條基本原理
自從1968年提出“軟件工程”這一術(shù)語以來,研究軟件工程的專家學(xué)者們陸續(xù)提
出了100多條關(guān)于軟件工程的準(zhǔn)則或信條。美國著名的軟件工程專家Boehm綜合這些專
家的意見,并總結(jié)了TRW公司多年的開發(fā)軟件的經(jīng)驗(yàn),于1983年提出了軟件工程的七條基
本原理。
Boehm認(rèn)為,這七條原理是確保軟件產(chǎn)品質(zhì)量和開發(fā)效率的原理的最小集合。它
們是相互獨(dú)立的,是缺一不可的最小集合;同時(shí),它們又是相當(dāng)完備的。
人們當(dāng)然不能用數(shù)學(xué)方法嚴(yán)格證明它們是一個(gè)完備的集合,但是可以證明,在此之
前已經(jīng)提出的100多條軟件工程準(zhǔn)則都可以有這七條原理的任意組合蘊(yùn)含或派生。
卜.面簡要介紹軟件工程的七條原理:
1用分階段的生命周期計(jì)劃嚴(yán)格管理
這一條是吸取前人的教訓(xùn)而提出來的。統(tǒng)計(jì)表明,50%以上的失敗項(xiàng)目是由于計(jì)劃
不周而造成的。在軟件開發(fā)與維護(hù)的漫長生命周期中,需要完成許多性質(zhì)各異的工作。這條
原理意味著,應(yīng)該把軟件牛.命周期分成若干階段,并相應(yīng)制定出切實(shí)可行的計(jì)劃,然后嚴(yán)格
按照計(jì)劃對軟件的開發(fā)和維護(hù)進(jìn)行管理。Boehm認(rèn)為,在整個(gè)軟件生命周期中應(yīng)指定并嚴(yán)
格執(zhí)行6類計(jì)劃:項(xiàng)目概要計(jì)劃、里程碑計(jì)劃、項(xiàng)目控制計(jì)戈k產(chǎn)品控制計(jì)戈I、驗(yàn)證計(jì)劃、
運(yùn)行維護(hù)計(jì)劃。
2堅(jiān)持進(jìn)行階段評審
統(tǒng)計(jì)結(jié)果顯示:大部分錯(cuò)誤是在編碼之前造成的,大約占63%;<2>錯(cuò)誤發(fā)現(xiàn)的越
晚,改正它要付出的代價(jià)就越大,要差2到3個(gè)數(shù)最級(jí)。因此,軟件的質(zhì)量保證工作不能
等到編碼結(jié)束之后再進(jìn)行,應(yīng)堅(jiān)持進(jìn)行嚴(yán)格的階段評審,以便盡早發(fā)現(xiàn)錯(cuò)誤。
3實(shí)行嚴(yán)格的產(chǎn)品控制
開發(fā)人員最痛恨的事情之一就是改動(dòng)需求。但是實(shí)踐告訴我們,需求的改動(dòng)往往是
不可避免的。這就要求我們要采用科學(xué)的產(chǎn)品控制技術(shù)來順應(yīng)這種要求。也就是要采用變動(dòng)
控制,又叫基準(zhǔn)配置管理。當(dāng)需求變動(dòng)時(shí),其它各個(gè)階段的文檔或代碼隨之相應(yīng)變動(dòng),以保
證軟件的一致性。
4采納現(xiàn)代程序設(shè)計(jì)技術(shù)
從六、七時(shí)年代的結(jié)構(gòu)化軟件開發(fā)技術(shù),到最近的面向?qū)ο蠹夹g(shù),從第一、第二代
語言,到第四代語言,人們已經(jīng)充分認(rèn)識(shí)到:方法大似氣力。采用先進(jìn)的技術(shù)即可以提高軟
件開發(fā)的效率,又可以減少軟件維護(hù)的成本。
5結(jié)果應(yīng)能清楚地審查
軟件是一種看不見、摸不著的邏輯產(chǎn)品。軟件開發(fā)小組的工作進(jìn)展情況可見性差,
難于評價(jià)和管理。為更好地進(jìn)行管理,應(yīng)根據(jù)軟件開發(fā)的總目標(biāo)及完成期限,盡量明確地規(guī)
定開發(fā)小組的責(zé)任和產(chǎn)品標(biāo)準(zhǔn),從而使所得到的標(biāo)準(zhǔn)能清楚地審查。
6開發(fā)小組的人員應(yīng)少而精
開發(fā)人員的素質(zhì)和數(shù)量是影響軟件質(zhì)量和開發(fā)效率的重要因素,應(yīng)該少而粘。這一
條基于兩點(diǎn)原因:高素質(zhì)開發(fā)人員的效率比低素質(zhì)開發(fā)人員的效率要高幾倍到幾十倍,開發(fā)
工作中犯的錯(cuò)誤也要少的多;當(dāng)開發(fā)小組為N人時(shí),可能的通訊信道為N(N-1)2可見隨
著人數(shù)N的增大,通訊開銷將急劇增大。
7承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性
遵從上述六條基本原理,就能夠較好地實(shí)現(xiàn)軟件的工程化生產(chǎn)。但是,它們只是對
現(xiàn)有的經(jīng)驗(yàn)的總結(jié)和歸納,并不能保證趕上技術(shù)不斷前進(jìn)發(fā)展的步伐。因此,Boehm提出
應(yīng)把承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性作為軟件工程的第七條原理。根據(jù)這條原理,不僅
要積極采納新的軟件開發(fā)技術(shù),還要注意不斷總結(jié)經(jīng)驗(yàn),收集進(jìn)度和消耗等數(shù)據(jù),進(jìn)行出錯(cuò)
類型和問題報(bào)告統(tǒng)計(jì)。這些數(shù)據(jù)既可以用來評估新的軟件技術(shù)的效果,也可以用來指明必須
著重注意的問題和應(yīng)該優(yōu)先進(jìn)行研究的工具和技術(shù)。
附錄(5)軟件模型設(shè)計(jì)基礎(chǔ)(1)
一.UML簡史
面向?qū)ο蟮姆治雠c設(shè)計(jì)(OOA&D)方法的發(fā)展在80年代末至90年代中出現(xiàn)了一個(gè)高
潮,UML是這個(gè)高潮的產(chǎn)物。它不僅統(tǒng)一了Booch、Rumbaugh和Jacobson(UML之父:三人)
的表示方法,而且對其作了進(jìn)一步的發(fā)展,并最終統(tǒng)一為業(yè)界所接受的標(biāo)準(zhǔn)建模語言。
統(tǒng)一建模語言(UML)的出現(xiàn)公認(rèn)的面向?qū)ο蠼UZ言出現(xiàn)于70年代中期。從1989
年到1994年,其數(shù)量從不到十種增加到了五十多種,哎,百家爭鳴。在眾多的建模語言中,語
言的創(chuàng)造者努力推崇自己的產(chǎn)品,并在實(shí)踐中不斷完善。但是,面向?qū)ο螅?0)方法的用戶并
不了解不同建模語言的優(yōu)缺點(diǎn)及其差異,因而很難根據(jù)自身應(yīng)用特點(diǎn)選擇合適的建模語言。
90年代中,一批新方法出現(xiàn)了,其中最引人注H的是Booch1993、OOSE和0MT-2等(看下圖)。
Booch是面向?qū)ο蠓椒ㄗ钤绲某珜?dǎo)者之一,他提出了面向?qū)ο筌浖こ痰母拍睢?991
年,他將以前面向Ada的工作擴(kuò)展到整個(gè)面向?qū)ο笤O(shè)計(jì)領(lǐng)域。Booch1993比較適合于系統(tǒng)的
設(shè)計(jì)和構(gòu)造。Rumbaugh等人提出了面向?qū)ο蟮慕<夹g(shù)(0MT)方法,采用了面向?qū)ο蟮母拍?
并引入各種獨(dú)立于語言的表示符。這種方法用對象模型、動(dòng)態(tài)模型、功能模型和用例模型,
共同完成對整個(gè)系統(tǒng)的建模,所定義的概念和符號(hào)可用于軟件開發(fā)的分析、設(shè)計(jì)和實(shí)現(xiàn)的全
過程,軟件開發(fā)人員不必在開發(fā)過程的不同階段進(jìn)行概念和符號(hào)的轉(zhuǎn)換。0MT-2特別適用于
分析和描述以數(shù)據(jù)為中心的信息系統(tǒng)。
Jacobson于1994年提出了OOSE方法淇最大特點(diǎn)是面向用例(Use-Case),并在用例的
描述中引入了外部角色的概念
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 西安職業(yè)技術(shù)學(xué)院《軟件設(shè)計(jì)V:軟件工程導(dǎo)論》2023-2024學(xué)年第二學(xué)期期末試卷
- 南通大學(xué)《小學(xué)心理輔導(dǎo)設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 新鄉(xiāng)工程學(xué)院《大數(shù)據(jù)挖掘及應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 宜昌科技職業(yè)學(xué)院《晶體光學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川體育職業(yè)學(xué)院《電工電子》2023-2024學(xué)年第二學(xué)期期末試卷
- 西安理工大學(xué)《虛擬儀器實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 西安科技大學(xué)《實(shí)驗(yàn)診斷學(xué)見習(xí)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州美術(shù)學(xué)院《外科護(hù)理學(xué)(Ⅱ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 中華女子學(xué)院《電子商務(wù)基礎(chǔ)與應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- (高清版)DBJ 08-56-1996 建筑幕墻工程技術(shù)規(guī)程(玻璃幕墻分冊)
- 浙江寧波鎮(zhèn)海區(qū)2025屆中考生物對點(diǎn)突破模擬試卷含解析
- 2025屆八省聯(lián)考語文試卷評析及備考策略 課件
- 脫硫塔拆除施工方案
- 北京二十中2025屆高考英語二模試卷含解析
- 《高速公路電動(dòng)汽車清障救援作業(yè)規(guī)范》
- 五年級(jí)下冊異分母分?jǐn)?shù)加減法練習(xí)200題有答案
- 急性心衰的急救護(hù)理與流程
- 我的家鄉(xiāng)江西吉安
- 肺栓塞病人的術(shù)后護(hù)理
- 國開2024年秋《心理健康教育》形考任務(wù)1-9答案
- 電力運(yùn)維管理平臺(tái)方案設(shè)計(jì)
評論
0/150
提交評論