国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于統(tǒng)一過程的軟件開發(fā)研究

2009-04-29 00:44:03仝行靠
沿海企業(yè)與科技 2009年1期
關(guān)鍵詞:軟件開發(fā)

仝行靠

[摘要]文章分析軟件開發(fā)方法的發(fā)展過程,簡單介紹UML(Unified Modeling Language)的概念,詳細介紹統(tǒng)一過程的基本內(nèi)容和具體實施,并對支持統(tǒng)一過程的產(chǎn)品及應(yīng)用進行相應(yīng)的描述,展望統(tǒng)一過程的應(yīng)用前景。

[關(guān)鍵詞]軟件開發(fā);統(tǒng)一過程;統(tǒng)一建模語言

[作者簡介]仝行常,石河子大學(xué)商學(xué)院教學(xué)科研辦公室網(wǎng)絡(luò)管理中心助教,高級程序員,研究方向:軟件開發(fā)方法,新疆五家渠市,831300

[中圖分類號]TP311.52[文獻標識碼]A[文章編號]1007-7723(2009)01-0027-0003

一、引言

計算機自誕生以來,就一直以令人難以置信的速度飛快發(fā)展,其中軟件開發(fā)也得到了長足的發(fā)展。自從上世紀70年代發(fā)生軟件危機后,人們經(jīng)過反思后,開始致力于軟件開發(fā)方法的研究,于是多種軟件開發(fā)方法應(yīng)運而生,如結(jié)構(gòu)化方法和面向?qū)ο蠓椒ǖ?。但在方法的使用上又有許多變化以至于軟件開發(fā)過程缺乏統(tǒng)一性,嚴重影響了軟件工程活動的質(zhì)量和軟件本身的質(zhì)量。軟件過程的標準化勢在必行,從上世紀90年代開始,面向?qū)ο蠹夹g(shù)的三大流派開始進行模型整合,人們提出了UML和統(tǒng)一過程等概念。

二、UML

UML即統(tǒng)一建模語言,它集可視化、詳述、構(gòu)造和文檔化等特點于一身,是一種繪制軟件藍圖的標準建模語言。在以往面向?qū)ο蠼UZ言的基礎(chǔ)上,它提供了一系列標準化的圖形符號,所建立的模型清晰完整、便于理解且有助于用戶及軟件開發(fā)人員間的交流和協(xié)商。UML作為一種軟件開發(fā)的有效工具將貫穿于整個軟件開發(fā)過程之中,它提供了多種視圖從不同角度表現(xiàn)出所開發(fā)系統(tǒng)的靜態(tài)、動態(tài)特征,有助于完成系統(tǒng)體系結(jié)構(gòu)的設(shè)計,也能夠為最終的軟件產(chǎn)品提供相關(guān)的細節(jié)文檔資料。雖然UML僅僅只是一種建模語言,但卻能與Java、c++、VB等實際編程語言直接相關(guān),并支持雙向工程,即既能夠根據(jù)所建立的UML模型推導(dǎo)出相應(yīng)的編程代碼,同時也能根據(jù)實際的編程代碼構(gòu)造出相應(yīng)的UML模型。UML提供了9種視圖從不同角度表現(xiàn)整個系統(tǒng)的特征,即類圖、對象圖、用況圖、順序圖、協(xié)作圖、狀態(tài)圖、活動圖、構(gòu)件圖和實施圖,并描繪出A種事物和A種關(guān)系,即結(jié)構(gòu)事物、行為事物、分組事物、注釋事物和依賴、關(guān)聯(lián)、泛化及實現(xiàn)關(guān)系。通過UML建立的模型既能夠讓軟件開發(fā)人員逐漸加深對正在或?qū)⒁_發(fā)的軟件系統(tǒng)的理解,也能讓用戶從較直觀的角度理解系統(tǒng)的設(shè)計,有利于系統(tǒng)開發(fā)者與使用者之間的交流。UML以其自身的特點,成為開發(fā)軟件系統(tǒng)最為有效的建模工具。雖然UML作為一種建模語言獨立于實際的開發(fā)過程,但如果將這種有效的描述工具使用在以用例為驅(qū)動(use case)、以體系結(jié)構(gòu)(architecture)為中心、不斷迭代(iterative)與增量(incremental)的開發(fā)過程之中,將能更充分地發(fā)揮其功效,使整個系統(tǒng)的開發(fā)更加有效。

三、統(tǒng)一過程

統(tǒng)一過程(united Process,UP)是由統(tǒng)一建模語言UML的締造者們提出來的,并為對象管理組織(Object Management Group,OMG)所推薦。UML不僅統(tǒng)一了Booch、Rumbaugh和Jacobson的表示方法,而且對其作了進一步的發(fā)展,并最終統(tǒng)一為大眾所接受的標準建模語言。統(tǒng)一過程是UML的締造者們權(quán)衡了30年的軟件開發(fā)實踐而形成的產(chǎn)物。它把當前處于分離的方法學(xué)集合于一起,稱之為“統(tǒng)一方法”。它不僅統(tǒng)一了締造者們的工作,而且使得開發(fā)方法得以統(tǒng)一,方法學(xué)家的工作得以統(tǒng)一。它也包含了很多其他人員和公司對UML做出的巨大貢獻。例如它來自于數(shù)百個用戶多年的現(xiàn)場經(jīng)驗以及Rational公司多年的工作成果。統(tǒng)一過程對于如何運用UML的概念進行軟件開發(fā)提供了詳細指導(dǎo),它指導(dǎo)開發(fā)隊伍安排其開發(fā)活動的次序,為各開發(fā)者和整個開發(fā)組指定任務(wù),明確地規(guī)定需要開發(fā)的制品,提供對項目中的制品和活動進行監(jiān)控與度量的準則。簡言之,統(tǒng)一過程將用戶需求轉(zhuǎn)換成開發(fā)軟件系統(tǒng)的活動集合,適合于軟件專業(yè)人員使用,恰好它是以用例為驅(qū)動、體系結(jié)構(gòu)為中心、迭代和增量的。

四、具體實施

統(tǒng)一過程與以往軟件開發(fā)方法最大的不同就在于它強調(diào)了不斷迭代與增量的開發(fā)過程,并將此理論化、系統(tǒng)化。其實,只有通過認識一再認識這樣不斷循環(huán)與深化的過程才能真正認清事物的本質(zhì),對于軟件開發(fā)也是如此。由于種種原因面對如此龐大的軟件系統(tǒng),開發(fā)人員不可能一開始就完整確切地了解用戶需求,更不可能一次就設(shè)計出一個完美可行的設(shè)計方案和最終的軟件產(chǎn)品。只有在不斷迭代與增量的實踐和認識過程中,才能真正認清用戶的需求,才能不斷完善整個系統(tǒng)的設(shè)計,最終得到一個既令用戶滿意又能從最大程度發(fā)揮其功能的軟件產(chǎn)品。統(tǒng)一過程強調(diào)盡量在開發(fā)早期解決致命風險,所以就以風險來驅(qū)動迭代與增量的開發(fā),將根據(jù)開發(fā)過程中面臨風險的大小,逐個排除風險并解決問題,盡量降低開發(fā)過程中的錯誤判斷以及不必要的開支。其實整個開發(fā)過程就是在不斷重復(fù)構(gòu)成系統(tǒng)生命周期的循環(huán)。每次循環(huán)都會以向用戶提供一個產(chǎn)品為終結(jié),并在不斷迭代與增量的過程之中經(jīng)歷初始、細化、構(gòu)造和移交四個階段,同時完成需求、分析、設(shè)計、實現(xiàn)和測試的工作。

用例驅(qū)動的含義是在產(chǎn)品開發(fā)的各個階段中都可以回溯到用戶的真正需求,即它驅(qū)動開發(fā)過程,以用例為單位制定計劃、分配任務(wù)、監(jiān)控執(zhí)行和進行測試等,將核心工作流結(jié)合為一體。用例的引入有助于模型之間的追蹤和系統(tǒng)演化。由用例能得到體系結(jié)構(gòu)和其他制品。先選擇在體系結(jié)構(gòu)上具有重要意義的用例,實現(xiàn)那些關(guān)鍵的用例,構(gòu)造出初步的體系結(jié)構(gòu),再逐步得到穩(wěn)定的體系結(jié)構(gòu)。各模型采用統(tǒng)一的建模語言即UML,方便各個階段不同工作人員之間的溝通,大大提高了工作效率。通過枚舉用例的不同執(zhí)行路徑,可導(dǎo)出測試案例和測試規(guī)程。通過用例還可估算系統(tǒng)性能、硬件需求和可用性,并能進行用戶界面設(shè)計,用例也是編寫用戶手冊的起點。對用例的細化在一定程度上涉及系統(tǒng)的內(nèi)部功能,對各用例進行完整的功能描述。細化時要區(qū)分用例中的三類事物:反映系統(tǒng)與參與者(actor)之間接口的事物、系統(tǒng)中的現(xiàn)實事物和對前兩項進行協(xié)調(diào)和控制的事物。

以體系結(jié)構(gòu)為中心,簡單地講,系統(tǒng)體系結(jié)構(gòu)源自系統(tǒng)需求(用例模型),從不同角度描述要構(gòu)造的系統(tǒng),注重于系統(tǒng)的顯著的靜態(tài)和動態(tài)結(jié)構(gòu)。用戶和其他關(guān)注者要理解它,以對系統(tǒng)概貌的遠景達到共識。要用系統(tǒng)的體系結(jié)構(gòu)控制系統(tǒng)的開發(fā)、復(fù)用和演化。系統(tǒng)體系結(jié)構(gòu)描述系統(tǒng)中諸如子系統(tǒng)、依賴關(guān)系、接口、協(xié)作、節(jié)點和主動類這樣的最重要的模型元素,而忽略其他細節(jié)。用這些元素指導(dǎo)系統(tǒng)開發(fā)。這些重要的元素由體系結(jié)構(gòu)設(shè)計者

完成,其余的由各設(shè)計者分別完成。

得到系統(tǒng)體系結(jié)構(gòu)的簡略步驟:

·在普遍了解用例之后,得到系統(tǒng)體系結(jié)構(gòu)的粗略綱要(獨立于特定用例和平臺);

·關(guān)注關(guān)鍵用例;

·隨著對用例的規(guī)約,導(dǎo)致更多成熟的用例,繼續(xù)發(fā)現(xiàn)更多的系統(tǒng)體系結(jié)構(gòu)部分。

系統(tǒng)的體系結(jié)構(gòu)經(jīng)過多次迭代,在精化階段結(jié)束時,得到可執(zhí)行的體系結(jié)構(gòu)基線fArchitecture Baseline)。它是系統(tǒng)框架,最初包括系統(tǒng)件、中間件、要復(fù)用的遺產(chǎn)系統(tǒng)、系統(tǒng)分布等情況。隨后體系結(jié)構(gòu)基線是由早期版本的用例模型、分析模型、設(shè)計模型等模型組成的集合(其中用例模型和分析模型較為成熟),關(guān)注子系統(tǒng)體系結(jié)構(gòu)的內(nèi)部發(fā)布版本,包括構(gòu)造階段結(jié)束時系統(tǒng)中的所有模型,它與最終系統(tǒng)(對客戶發(fā)布的產(chǎn)品)有同樣的骨干。從體系結(jié)構(gòu)基線到最終系統(tǒng)之間要經(jīng)過幾個內(nèi)部發(fā)布,體系結(jié)構(gòu)基線的最后結(jié)果為一個模型集合和一個體系結(jié)構(gòu)描述,其中包括最重要的用例及其實例。

建立可執(zhí)行的體系結(jié)構(gòu)基線是精化階段的一個目標,進入內(nèi)造階段的體系結(jié)構(gòu)基線應(yīng)是堅實的:精化階段結(jié)束時的體系結(jié)構(gòu)基線在構(gòu)造階段變化不大,即體系結(jié)構(gòu)基線到最終系統(tǒng)的體系結(jié)構(gòu)之間的改動不大。體系結(jié)構(gòu)描述是模型的體系結(jié)構(gòu)視圖的集合,包括用例模型的體系結(jié)構(gòu)視圖(取用例的重要部分)、設(shè)計模型的體系結(jié)構(gòu)視圖、部署模型的體系結(jié)構(gòu)視圖和實現(xiàn)模型的體系結(jié)構(gòu)視圖。在開發(fā)過程中,要對體系結(jié)構(gòu)基線進行改寫,以體現(xiàn)重要的設(shè)計問題,方便對問題的理解、討論、解決和反饋,為開發(fā)者提供所需信息的高層視圖,不遺漏大的技術(shù)問題。然而體系結(jié)構(gòu)描述中不包括體系結(jié)構(gòu)基線中的非體系結(jié)構(gòu)級的元素。這是因為體系結(jié)構(gòu)基線要對系統(tǒng)需求建模,以制定詳細的開發(fā)計劃,因此其用例模型中包含的內(nèi)容比系統(tǒng)體系結(jié)構(gòu)的要多。

其實體系結(jié)構(gòu)基線與體系結(jié)構(gòu)描述同時開發(fā),指導(dǎo)整個生命周期的軟件開發(fā)。體系結(jié)構(gòu)描述在系統(tǒng)生命周期中不斷更新,以反映體系結(jié)構(gòu)基線的變化,包括新的抽象類和接口的發(fā)現(xiàn)、為已有系統(tǒng)增加新功能、可復(fù)用構(gòu)件的版本更新、進程結(jié)構(gòu)的重新組織、體系結(jié)構(gòu)基線的新的表示形式等。

五、總結(jié)

統(tǒng)一過程汲取了面向?qū)ο蟮能浖こ填I(lǐng)域多年來的優(yōu)秀研究成果,利用了新的可視化建模標準UML,是軟件開發(fā)標準化要求的必然產(chǎn)物,是Rational等公司的實踐產(chǎn)物。同時Rational及其他公司開發(fā)了一系列支持應(yīng)用的產(chǎn)品,如可視化建模工具Rational Rose,用于項目小組跟蹤和管理開發(fā)生命周期中的所有變更活動的需求變更管理產(chǎn)品Rational ClearQues等產(chǎn)品,這些產(chǎn)品與流行的開發(fā)工具緊密結(jié)合,最終實現(xiàn)分析、設(shè)計、編碼和文檔管理的一體化,進一步推動了統(tǒng)一過程在業(yè)界的應(yīng)用,取得了相當好的效果。

猜你喜歡
軟件開發(fā)
基于安卓平臺的移動式教學(xué)模式研究
嵌入式系統(tǒng)軟件開發(fā)技術(shù)探析
淺談分層技術(shù)在軟件開發(fā)中的應(yīng)用
Java軟件開發(fā)問題探究
軟件開發(fā)中JAVA編程語言的應(yīng)用
淺談程序設(shè)計的方法
商情(2016年39期)2016-11-21 09:58:50
信息安全環(huán)境下的計算機軟件開發(fā)研究
計算機軟件開發(fā)中的分層技術(shù)運用
建模技術(shù)在軟件開發(fā)中的應(yīng)用
軟件開發(fā)中數(shù)據(jù)庫設(shè)計理論的實踐
博客| 山东| 安阳县| 贵阳市| 兴安县| 黄浦区| 米林县| 蓬莱市| 聂荣县| 武夷山市| 泾源县| 柘荣县| 广昌县| 丰顺县| 通江县| 恩平市| 平邑县| 江门市| 南岸区| 龙里县| 宜州市| 肇庆市| 会昌县| 苍南县| 大同市| 桑植县| 台安县| 屯留县| 福贡县| 丹阳市| 平乡县| 新丰县| 临城县| 泉州市| 乌鲁木齐县| 井冈山市| 思茅市| 岐山县| 镇安县| 香格里拉县| 治多县|