統(tǒng)一系統(tǒng)和軟件團隊:一種系統(tǒng)開發(fā)的整體方法

字號:

本文所述的系統(tǒng)開發(fā)方法利用了Murray Cantor使用 IBM Unified Process進行有關(guān)系統(tǒng)工程的工作,以及Rational領域組織應用這些技能與技術(shù)為解決現(xiàn)實世界問題所作的工作。這些工作包括各種各樣的項目,范圍從國防程序到電子政務的啟動。這些項目顯著和一般的特點就是它們的規(guī)模和復雜度。在每個案例中,關(guān)注的焦點不僅僅在于要創(chuàng)建軟件產(chǎn)品,而且還要創(chuàng)建完整的系統(tǒng)來支持業(yè)務或者任務。
     本白皮書描述了 IBM Rational Software進行系統(tǒng)開發(fā)所使用的整體方法,包括在系統(tǒng)開發(fā)項目中必須執(zhí)行的重要原則以及 IBM Rational Software提供的特定解決方案兩方面。本文通過描述所解決的主要問題,重點介紹了促使遵循使用該方式的因素。
     本文所述的系統(tǒng)開發(fā)方法利用了Murray Cantor 使用 IBM Unified Process進行有關(guān)系統(tǒng)工程的工作,以及Rational領域組織應用這些技能與技術(shù)為解決現(xiàn)實世界問題所作的工作。這些工作包括各種各樣的項目,范圍從國防程序到電子政務的啟動。這些項目顯著和一般的特點就是它們的規(guī)模和復雜度。在每個案例中,關(guān)注的焦點不僅僅在于要創(chuàng)建軟件產(chǎn)品,而且還要創(chuàng)建完整的系統(tǒng)來支持業(yè)務或者任務。
     本文的目標就是來描述一種創(chuàng)建系統(tǒng)所使用的結(jié)合、集成的方式,同時還包括創(chuàng)建這類系統(tǒng)所使用的平臺,使團隊能夠在不斷變復雜的環(huán)境中進行工作。
    簡介
     一套系統(tǒng)是指"一套能夠完成已定義目標的集成元素。其中包括硬件、軟件、固件、人員、信息、技術(shù)、設備、服務和其他支持元素。 "
     我們?yōu)槭裁匆匦略u估進行信息系統(tǒng)開發(fā)的方法與技術(shù)呢?業(yè)界中存在的問題驅(qū)使我們這樣做,下面就是一些驅(qū)動因素。
    企業(yè)架構(gòu)。1996年,美國國會通過了Clinger-Cohen法案,其中特別授權(quán)聯(lián)邦機構(gòu)開發(fā)并維護企業(yè)信息技術(shù)(IT)的架構(gòu)。該法案使人們越來越關(guān)注政府組織已經(jīng)開發(fā)出的一些應用程序,這些應用程序在成功地部分滿足了一套選民的較窄范圍需求的同時,不能結(jié)合起來滿足更廣泛的需求。目前,這些組織中的很多都致力于Enterprise Architecture(EA)的研究,使廣泛范圍內(nèi)系統(tǒng)實現(xiàn)互操作,從而完成不斷增加的任務;這些研究工作包括對不斷增加的任務清晰定義,并且描述出這套互操作系統(tǒng)是如何完成這些任務的 。這個系統(tǒng)包括硬件、軟件和人員,由于關(guān)注的焦點在于整個系統(tǒng),所以使用傳統(tǒng)的以數(shù)據(jù)或以功能為中心的方法表示企業(yè)架構(gòu)是無效的。它們無法為不斷發(fā)展的企業(yè)提供支持,這一點在架構(gòu)實施于工作系統(tǒng)之后尤其顯得更加明顯。
    增強軟件功能。軟件靈活性的增強使引入新的系統(tǒng)功能變得輕松。服務可以由硬件、人員或者--不斷增加的比率--軟件來提供。在一個系統(tǒng)開發(fā)項目中,開發(fā)團隊使用正確的方法和工具是很關(guān)鍵的,這會使他們能夠權(quán)衡設計方案。這也增加了分析員、項目經(jīng)理和系統(tǒng)工程師工作環(huán)境的復雜度。在生命周期的較早階段,就要判定出如何設計才能實現(xiàn)系統(tǒng)功能。
    開發(fā)生命周期。雖然引入迭代式和敏捷方法進行系統(tǒng)開發(fā)會帶來大量相關(guān)的壓力,但是傳統(tǒng)的方法--尤其是瀑布式方法--并沒有滿足以增量的形式發(fā)布系統(tǒng)"組塊"的需要。
    項目與程序的失敗。項目失敗的實例有很多。Standish Group的一項統(tǒng)計數(shù)據(jù)尤其明顯地表明了這一點,1995 年,美國政府花費了大概 810 億美元取消軟件項目。這也突出了一個事實,即項目和程序正在走向失敗,而導致失敗的中心因素就是他們使用的系統(tǒng)開發(fā)方法。這就使得組織需要重新評估他們的系統(tǒng)開發(fā)能力,并參照例如CMMI和ISO的標準為他們的能力設定基準。
    系統(tǒng)工程方法都需要些什么呢?
     "系統(tǒng)工程是一種跨學科的方法和手段,能夠成功地實現(xiàn)系統(tǒng)。它關(guān)注于定義客戶需求以及開發(fā)周期的早期所需的功能,使用文檔記錄需求,然后在完整考慮問題的同時,從綜合設計與系統(tǒng)檢驗下手:
    操作
    性能
    測試
    大量生產(chǎn)
    成本與時間表
    培訓與支持
    處理
     系統(tǒng)工程將所有學科和專家小組集成于團隊,形成了結(jié)構(gòu)化的開發(fā)過程,從概念到生產(chǎn)再到操作。系統(tǒng)工程同時考慮了所有客戶的業(yè)務與技術(shù)需求,它的目標就是提供高質(zhì)量的產(chǎn)品,滿足用戶的需求。 "
    這一定義體現(xiàn)了下面幾個重要的概念:
    客戶需求--在描述系統(tǒng)是如何支持組織的任務或者業(yè)務流程時,系統(tǒng)工程方法必須圍繞著需要考慮的所有內(nèi)容。
    溝通--系統(tǒng)工程方法涉及并溝通團隊中的思想、信息和過程。系統(tǒng)工程方法必須提供抽象的方法,允許向所有的項目干系人溝通每個系統(tǒng)元素,同時提供一種機制,將每個業(yè)務流程的需求映射于上述抽象內(nèi)容。
    過程與項目具有真實性--由于系統(tǒng)是在"現(xiàn)實"世界中進行開發(fā)的,負有時間和成本的壓力,所以要確保您的開發(fā)方法沒有導致項目的過度開支,這一點是很重要的。
    與系統(tǒng)標準保持一致--系統(tǒng)開發(fā)的一個重要目標就是您系統(tǒng)中的組件和元素要與系統(tǒng)標準和架構(gòu)保持一致。
    團隊協(xié)作--任何系統(tǒng)開發(fā)方法必須能夠使大型或小型工作組中的成員有效地協(xié)同進行工作,同時也要和處于分布環(huán)境中的其他類似工作組有效地協(xié)作。
     考慮到所有這些因素,使用"整體"方法作為系統(tǒng)工程方法是大勢所趨的。所謂"整體",意思就是一種方法,涉及到系統(tǒng)開發(fā)過程中整套的規(guī)范:需求、分析、設計和實施,并將這些規(guī)范集成于同一過程中。而且,這種方法必須包括一種機制,允許測試系統(tǒng)并將結(jié)果與項目干系人進行溝通。