監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 甲方項(xiàng)目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉
項(xiàng)目進(jìn)度管理軟件

當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 建筑OA系統(tǒng) > 項(xiàng)目進(jìn)度管理軟件

項(xiàng)目綜合管理:需求工程研究現(xiàn)狀

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

     目前,我國各行業(yè)亟需各種應(yīng)用軟件系統(tǒng),但傳統(tǒng)的SE開發(fā)模式顯然不能充分滿足用戶的需求。進(jìn)入90年代以來,一種新的被稱為“用戶主導(dǎo),面向領(lǐng)域的需求分析方法”被提了出來,即如何從各種各樣的應(yīng)用專業(yè)領(lǐng)域中特別是直接從最終用戶處捕獲需求,并完整、準(zhǔn)確地予以描述與分析,需求工程成為研究的熱點(diǎn)之一。

  隨著信息時(shí)代的發(fā)展,計(jì)算機(jī)軟件的需求愈來愈復(fù)雜,規(guī)模愈來愈大,而且隨著企業(yè)的發(fā)展,工作過程重組,需求變更已愈來愈成為必然。軟件危機(jī)持續(xù)了30年之久,至今仍無法得以很好地解決。究其原因,軟件本身具有的特點(diǎn)固然有關(guān),但長期以來,缺乏軟件開發(fā)和維護(hù)的正確方法以及忽視軟件開發(fā)過程的質(zhì)量控制乃是最為關(guān)鍵的原因。其中軟件開發(fā)和維護(hù)方法的不正確性主要體現(xiàn)在:忽視軟件開發(fā)前期的需求分析;開發(fā)過程缺乏統(tǒng)一的、規(guī)范化的方法論的指導(dǎo);文檔資料不齊全或不準(zhǔn)確;忽視與用戶之間、開發(fā)組員之間的交流;忽視測(cè)試的重要性;不重視維護(hù)或由于上述原因造成維護(hù)工作的困難。

  這樣,就經(jīng)常出現(xiàn)用戶對(duì)“已完成”系統(tǒng)不滿意,軟件產(chǎn)品的質(zhì)量經(jīng)常出現(xiàn)漏洞,補(bǔ)丁一大堆。因此人們意識(shí)到以工程化的原則和方法組織軟件開發(fā)工作是解決軟件危機(jī)的一個(gè)主要出路。

  需求分析作為軟件生命周期的第一個(gè)階段,并貫穿于整個(gè)軟件生命周期,其重要性越來越突出,到80年代中期,逐步形成了軟件工程的子領(lǐng)域——需求工程。進(jìn)入90年代后,需求工程成為軟件界研究的重點(diǎn)之一。從1993年起,每?jī)赡昱e辦一次需求工程國際研討會(huì)(ISRE),1994年起,每?jī)赡昱e辦一次需求工程國際會(huì)議(ICRE)。一些關(guān)于需求工程的工作小組相繼成立。

  內(nèi) 容

  需求工程的目的是通過與用戶廣泛地交流確定應(yīng)用系統(tǒng)的目標(biāo)。需求活動(dòng)以“工程化”的方法被提出、分析和組織,它鼓勵(lì)用戶以一種積極的方式參與需求分析活動(dòng)中,并在整個(gè)軟件生命周期強(qiáng)調(diào)用戶參與和領(lǐng)域?qū)<业闹笇?dǎo)作用,促使目標(biāo)系統(tǒng)最大地滿足用戶需求。

  需求工程是一個(gè)不斷反復(fù)的需求定義、記錄和演進(jìn)的過程,并在最終達(dá)到需求的凍結(jié)。我們可以把需求工程的活動(dòng)劃分為五個(gè)階段:

  1. 需求獲?。悍e極與用戶交流,捕捉、分析和修訂用戶對(duì)目標(biāo)系統(tǒng)的需求,并提煉出符合問題解決領(lǐng)域的用戶需求。2. 需求建模:根據(jù)需求分析,對(duì)已獲取的需求進(jìn)行抽象描述,為目標(biāo)系統(tǒng)建立一個(gè)概念模型。3. 需求規(guī)格說明:對(duì)需求模型進(jìn)行精確地、形式化的描述,為計(jì)算機(jī)系統(tǒng)的實(shí)現(xiàn)提供基礎(chǔ)。4. 需求驗(yàn)證:以需求規(guī)格說明為基礎(chǔ)輸入,通過符號(hào)執(zhí)行、模擬或快速原型等方法,分析和驗(yàn)證需求規(guī)格說明的正確性和可行性。5. 需求管理:跟蹤和管理需求變化,支持系統(tǒng)的需求演進(jìn)。

  發(fā) 展

  1. 需求工程的方法學(xué)


  需求工程的方法學(xué)發(fā)展很快,對(duì)需求工程方法學(xué)不同側(cè)面的研究和一些經(jīng)典論述為需求工程的發(fā)展奠定了基礎(chǔ)。其中典型的有:

  * Lano提出的操作概念規(guī)格,于需求產(chǎn)生前由開發(fā)人員寫成,它既滿足精確的規(guī)格說明要求,同時(shí)易讀、易理解,便于用戶了解是否真正體現(xiàn)了其要求。

  * Sutcliffe、Maiden等人提出從領(lǐng)域知識(shí)的角度定義在需求工程環(huán)境中通用的領(lǐng)域語義模型和組合模型。

  * Alford 提出任務(wù)分割的概念,大大減低了需求分析的問題復(fù)雜度。

  * Chou 和Eckert 討論了面向?qū)ο蟮男枨蠊こ谭椒▽W(xué)的概念和模型。

  * Drake提出用于確定系統(tǒng)需求邊界的限定過程。

  * Gotel 對(duì)需求跟蹤性問題進(jìn)行了研究。

  還有其他許多人對(duì)需求工程方法學(xué)的其他方面進(jìn)行了研究和論述。

  綜合看來,需求工程方法大致分為四類:面向過程、面向數(shù)據(jù)、面向控制、面向?qū)ο蟆?

  * 面向過程的分析方法主要研究系統(tǒng)輸入輸出的轉(zhuǎn)化方式,對(duì)數(shù)據(jù)本身及控制方面并不很重視。傳統(tǒng)的結(jié)構(gòu)分析方法SA(structure analysis)、SADT(structure analysis and design technique)和可執(zhí)行/可操作模型PAISley、Descartes以及形式方法VDM(vienna design method)、Z等都屬于這一類。

  * 面向數(shù)據(jù)的方法強(qiáng)調(diào)以數(shù)據(jù)結(jié)構(gòu)的方式描述和分析系統(tǒng)狀態(tài),JSD和關(guān)系實(shí)體(ER)模型都屬此類。

  * 面向控制的方法強(qiáng)調(diào)同步、死鎖、互斥、并發(fā)以及進(jìn)程激活和掛起,數(shù)據(jù)流圖就是典型的面向控制的方法,SADT是以面向控制的方法為輔的。

  * 面向?qū)ο蟮姆椒ò逊治鼋⒃谙到y(tǒng)對(duì)象以及對(duì)象間交互的基礎(chǔ)上,通過對(duì)象的屬性、分類結(jié)構(gòu)和集合結(jié)構(gòu)定義和溝通需求。從對(duì)象模型、動(dòng)態(tài)模型和功能模型三個(gè)方面對(duì)問題進(jìn)行描述。面向?qū)ο蟮姆椒ㄕ诔蔀樾枨蠓治鲋械囊粋€(gè)熱點(diǎn),并展現(xiàn)出良好的應(yīng)用前景。Yourdan和Coad的OOA方法、Booch的方法、Jacobson 的OOSE、Rumbaugh的OMT方法等,都是這一方法的典型流派。

  2. 面向?qū)ο蟮男枨蠊こ谭椒?/STRONG>

  目前,作為解決軟件危機(jī)的一個(gè)最佳對(duì)策,是采用面向?qū)ο螅∣O)的技術(shù)。面向?qū)ο蟮拈_發(fā)方法強(qiáng)調(diào)從問題域的概念到軟件程序和界面的直接映射。事實(shí)上,把客觀世界看成許多對(duì)象更接近人類的自然思維方式,而且對(duì)象相對(duì)穩(wěn)定。軟件需求的變動(dòng)往往是功能的變動(dòng),而功能的執(zhí)行者——對(duì)象一般不會(huì)有大的變化。這便是OO技術(shù)產(chǎn)生與發(fā)展的根源。另外,OO技術(shù)支持信息隱蔽、數(shù)據(jù)抽象與封裝,使得軟件的開發(fā)、修改和維護(hù)易于進(jìn)行。

  面向?qū)ο蟮姆椒ㄒ褢?yīng)用到軟件生命周期的各個(gè)階段,而且OO技術(shù)自然地支持快速原型法和快速應(yīng)用開發(fā)。對(duì)需求工程而言,由于人類自然地趨向于用“對(duì)象”的觀點(diǎn)或方法來認(rèn)識(shí)問題和描述問題,所以用基于對(duì)象的概念模型來建立問題域模型成為需求分析員和用戶交流的有效手段。面向?qū)ο蟮男枨蠓治龅幕静襟E如下:

 ?。?)與用戶廣泛接觸,收集和查看相關(guān)資料,對(duì)問題域有一個(gè)大致的了解。在此基礎(chǔ)上,提煉和標(biāo)識(shí)對(duì)象。(2) 描述對(duì)象(類)的屬性。(3)描述對(duì)象之間的關(guān)系,如整體關(guān)系和從屬關(guān)系等。(4)描述問題域的“劇情”,即描述問題域中完成每個(gè)任務(wù)需要的對(duì)象間的協(xié)作關(guān)系。

  以上四個(gè)步驟不是孤立進(jìn)行,而是相互聯(lián)系的。通過這四個(gè)步驟的反復(fù)執(zhí)行,就可以建立一個(gè)基于對(duì)象的問題域模型。

  Booch是面向方法最早的倡導(dǎo)者之一,他提出了面向?qū)ο蟮能浖こ痰母拍睢?991年,他將以前面向Ada的工作擴(kuò)展到整個(gè)面向?qū)ο蟮脑O(shè)計(jì)領(lǐng)域,Booch的方法比較適合于系統(tǒng)的設(shè)計(jì)和構(gòu)造。

  Rumbaugh等人提出了面向?qū)ο蟮慕<夹g(shù)(OMT),采用面向?qū)ο蟮母拍?,引入各種獨(dú)立于語言的表示符。這種方法用對(duì)象模型、動(dòng)態(tài)模型、功能模型和實(shí)例模型共同完成對(duì)系統(tǒng)的建模。所定義的概念和符號(hào)可用于軟件開發(fā)的分析、設(shè)計(jì)和實(shí)現(xiàn)的全過程。開發(fā)人員無須在開發(fā)過程的不同階段進(jìn)行概念和符號(hào)的轉(zhuǎn)換。特別適用于分析和描述以數(shù)據(jù)為中心的信息系統(tǒng)。

  Coad和Yourdon采用5個(gè)步驟來確定一個(gè)多層的OO模型,5個(gè)步驟分別對(duì)應(yīng)模型的5個(gè)層次。即:(1)找出類和對(duì)象——類和對(duì)象層;(2)定義屬性——屬性層(3)識(shí)別結(jié)構(gòu)與關(guān)系——結(jié)構(gòu)層;(4)確定主題——主題層;(5)定義服務(wù)——服務(wù)層。

  它是最早的面向?qū)ο蟮姆治雠c設(shè)計(jì)方法之一,該方法簡(jiǎn)單易學(xué),適合于面向?qū)ο蟮某鯇W(xué)者使用,但由于該方法在處理能力方面的局限,目前已很少使用。

  Jacobson于1994年提出了OOSE的方法,其最大特點(diǎn)是面向用例(Use-Case),并在Use Case的描述中引入了外部角色的概念。Use Case成為分析模型的基礎(chǔ),用交互圖對(duì)Use Case進(jìn)一步描述后就形成設(shè)計(jì)的模型。Use Case是精確描述需求的關(guān)鍵,它貫穿于整個(gè)開發(fā)過程,包括對(duì)系統(tǒng)的測(cè)試和驗(yàn)證。OOSE比較適合于支持商業(yè)工程的需求分析,Use Case同時(shí)也很好地驅(qū)動(dòng)了測(cè)試階段的測(cè)試工作。

  3. 面向?qū)ο蟮慕?

  面向?qū)ο蟮慕J且环N新的設(shè)計(jì)思想,一種關(guān)于計(jì)算和信息結(jié)構(gòu)化的新思維。面向?qū)ο蟮慕#严到y(tǒng)看作是相互協(xié)作的對(duì)象,這些對(duì)象是結(jié)構(gòu)和行為的封裝,都屬于某個(gè)類,那些類具有某種層次化的結(jié)構(gòu)。系統(tǒng)的所有功能通過對(duì)象之間相互發(fā)送消息來獲得。面向?qū)ο蟮慕?梢砸暈槭且粋€(gè)包含以下元素的概念框架:抽象、封裝、模塊化、層次、分類、并行、穩(wěn)定、可重用和可擴(kuò)展。面向?qū)ο蟮慕K枷氲某霈F(xiàn)是面向過程和嚴(yán)格數(shù)據(jù)驅(qū)動(dòng)的軟件開發(fā)方法的漸進(jìn)演變結(jié)果。

  (1)UML——Unified Modeling Languge

  面向?qū)ο蟮姆治雠c設(shè)計(jì)方法,在80年代末至90年代中發(fā)展到一個(gè)高潮。但是,諸多流派在思想和術(shù)語上有很多不同的提法,在術(shù)語、概念上的運(yùn)用也各不相同,統(tǒng)一是繼續(xù)發(fā)展的必然趨勢(shì)。需要一種統(tǒng)一的符號(hào)來描述面向?qū)ο蟮姆治龊驮O(shè)計(jì)活動(dòng),UML應(yīng)運(yùn)而生。它不僅統(tǒng)一了Booch、Rumbaugh和Jacobson的表示方法,而且有進(jìn)一步的發(fā)展,最終成為大眾所共同接受的標(biāo)準(zhǔn)建模語言。UML是一種定義良好、易于表達(dá)、功能強(qiáng)大且普遍適用的建模語言。它融入了軟件工程領(lǐng)域的新思想、新方法和新技術(shù)。不僅支持面向?qū)ο蟮姆治雠c設(shè)計(jì),還支持從需求分析開始的軟件開發(fā)全過程。

  UML是面向?qū)ο蠹夹g(shù)發(fā)展的重要成果。獲得科技界、工業(yè)界和應(yīng)用界的廣泛支持,截止1996年底的統(tǒng)計(jì),已有700多家公司表示支持采用UML作為建模語言,穩(wěn)占面向?qū)ο蠹夹g(shù)市場(chǎng)的85%,成為可視化建模語言事實(shí)上的工業(yè)標(biāo)準(zhǔn)。1997年,OMG采納UML1.1作為基于面向?qū)ο蠹夹g(shù)的標(biāo)準(zhǔn)建模語言。UML代表了面向?qū)ο蠓椒ǖ能浖_發(fā)技術(shù)的發(fā)展方向,具有巨大的市場(chǎng)前景,也具有重大的經(jīng)濟(jì)價(jià)值和國防價(jià)值。

 ?。?)可視化的建模工具——ROSE

  ROSE是Rational 公司開發(fā)的一種CASE工具。它用UML語言支持軟件開發(fā)的大部分過程的建模。在ROSE中,只要你用UML描述了軟件的各個(gè)部分,也就是為軟件建立了一個(gè)面向?qū)ο蟮哪P停?nbsp;ROSE就可以自動(dòng)生成應(yīng)用系統(tǒng)需要的大部分源代碼。而且,基于此整個(gè)系統(tǒng)具有OO的諸多優(yōu)點(diǎn)——如模型穩(wěn)定性、重用性等等,降低了軟件維護(hù)和升級(jí)的成本。

 ?。?)UML對(duì)用戶驅(qū)動(dòng)需求工程的支持

  OO思想曾經(jīng)遭受一些人的批評(píng)。理由是用戶關(guān)心和理解的只是系統(tǒng)的功能,他不可能去學(xué)習(xí)OO模型,所以雖然OO建??s小了分析設(shè)計(jì)和編碼的鴻溝,但卻拉大了和用戶的距離。幸運(yùn)的是,Use Case的出現(xiàn),使這一情況得到了大大的改觀。在UML中,用OO建模的第一步是Use Case 的分析,Use Case體現(xiàn)了系統(tǒng)的功能單元。系統(tǒng)的外部人員或其它系統(tǒng)通過和Use Case 交換消息來了解和使用系統(tǒng)的功能,彌補(bǔ)了OO建模和用戶之間的距離。UML以對(duì)象圖描述任何類型的系統(tǒng),具有很寬的應(yīng)用領(lǐng)域,可以對(duì)任何具有靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為的領(lǐng)域建模。UML還適用于從需求規(guī)格說明到系統(tǒng)測(cè)試的不同階段。在需求分析階段,用Use Case捕捉用戶需求并建模,描述與系統(tǒng)有關(guān)的外部角色及其對(duì)系統(tǒng)的功能要求。分析階段主要關(guān)心問題域中的主要概念和機(jī)制,并用UML類圖來描述對(duì)象和類,用UML動(dòng)態(tài)模型描述類之間的協(xié)作關(guān)系。UML模型同時(shí)還是測(cè)試階段的依據(jù)。不同的測(cè)試小組使用不同的UML圖作為測(cè)試依據(jù):?jiǎn)卧獪y(cè)試使用類圖和類規(guī)格說明;集成測(cè)試使用部件圖和協(xié)作圖;系統(tǒng)測(cè)試使用Use Case圖。

  所以,UML適用于以面向?qū)ο蟮募夹g(shù)來描述任何類型的系統(tǒng)。而且適用于系統(tǒng)開發(fā)的不同階段。UML的功能和UDRE的基本思想不謀而合??梢詰?yīng)用于任何領(lǐng)域,其實(shí)現(xiàn)機(jī)制又極大地縮短了用戶的距離,易于被用戶掌握和接受。UML使用戶不僅可以有效地參與需求定義,還能在建模過程中參與部分的設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試,從而有效地進(jìn)行需求驗(yàn)證。使用戶在需求的定義、決策、驗(yàn)證和管理,乃至整個(gè)軟件開發(fā)過程中,充分發(fā)揮其主導(dǎo)作用。

  小結(jié):需求工程的發(fā)展,使人們認(rèn)識(shí)到,只有最終用戶的直接參與并發(fā)揮主導(dǎo)作用,才能真正解決問題空間與求解空間的一致性問題,消除計(jì)算機(jī)領(lǐng)域和應(yīng)用領(lǐng)域之間的鴻溝,并自動(dòng)適應(yīng)系統(tǒng)需求的不斷變化。針對(duì)傳統(tǒng)分析方式的弊端,一種新的被稱為“用戶主導(dǎo)、面向領(lǐng)域的需求分析方法”被提了出來。需求工程研究現(xiàn)狀中一個(gè)明顯的不足是研究理論與實(shí)踐的脫節(jié),理論解決方案通常是在對(duì)實(shí)際問題簡(jiǎn)化的基礎(chǔ)上得到的。要獲得需求突破,改善需求工程的開發(fā)質(zhì)量和效率,需要探索一條有效的解決途徑,縮小理論與應(yīng)用之間的距離,使開發(fā)出來的系統(tǒng)和模型切實(shí)滿足應(yīng)用領(lǐng)域的需要。目前我們正在嘗試研制一種有實(shí)用價(jià)值的面向某一行業(yè)領(lǐng)域的用戶主導(dǎo)式的應(yīng)用軟件輔助開發(fā)工具及原型系統(tǒng),建立面向領(lǐng)域的用戶框架,繼續(xù)完善用戶驅(qū)動(dòng)的需求分析理論和方法,推動(dòng)用戶工程理論的形成。 
發(fā)布:2007-02-27 09:44    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章: