國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
11
第貳章 文獻探討
第一節 系統發展方法論演進
系統發展方法論(system development methodology)提供利害關係人在系統 發展階段中開發與維護資訊系統的方法。系統發展方法論旨在提供一種最佳典範 策略,但由於使用時需視所在情況而定,因此發展方法的框架定義仍具彈性,而 最終目標即在發展出一套以電腦為基礎的資訊系統。(Bentley, Whitten, &
Randolph, 2007; Brinkkemper, 1996; Laudon & Laudon, 2002; Roberts, Gibson, Fields,
& Rainer, 1998)。
多數方法論通常源自實務或理論。第一種建構過程是來自組織內使用經驗所 集結而成的,其中包含許多顧問公司。這種方法論通常是來自於一個技術,如實 體建模,為了將此技術商業化,企業擴大它的應用階段或將他們安置於一個原有 的方法論中,因此這類型的方法論大多較片段或非正式。第二種建構過程是基於 一些理論概念,多數經由大學或研究機構等整理而出,通常無法發展成商業產品。
然而這些概念和想法有時具有相當的影響力,因為系統發展方法論的背後隱含有 哲學性的思考,它相信組織依循此流程可以成功發展出使用者所需的系統。(D. B.
Avison & Fitzgerald, 1999, 2003)。
歸納系統發展方法論會發現數個階段,包含系統規劃、分析、設計、系統建 置、操作、維護、控制、稽核等。而系統發展除了採取自行開發或委外等專案方 式辦理,有時也透過購買套裝軟體來建置系統。另一方面在企業導入系統時,大 多採用專案形式來發展系統。而一個專案則包含專案之規劃、分析、設計、執行、
評量診斷、修改及完成等階段。因專案管理通常會受到組織中人力、時間、成本 的壓力,進而影響專案之範圍、品質、溝通、採購、風險及整合等管理。因此多 數人經常誤將專案管理中預定資源分配的使用,預定完成的時程以及預期品質等
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
12
概念帶入系統發展方法論中,雖然是組織中系統發展的常態,但本研究的討論重 點在於如何安排系統發展階段中提供利害關係人開發與維護資訊系統的方法,因 此我們通常將其獨立出來,並且稱之為軟體流程(software process)。
在此架構下,我們可以將不同的流程模型分成瀑布式系統發展方法論、反覆 漸進式系統發展方法論與敏捷式系統發展方法論。以上三種方法都是依據當時的 時代背景所發展出來的,因此下一段採用 Avison and Fitzgerald 劃分出的四個系統 發展時代:系統發展方法發展啟蒙時代、系統發展方法發展初期、系統發展方法 發展興盛期、系統發展方法發展晚期。在四個時代背景當中,環境所產生的問題 是開啟系統發展方法改進的主要因素,也是上述所列三種模型發展的原因。
軟體系統發展方法之發展啟蒙期
在 60 年代資訊系統還沒有特定的發展方法,因為多是資訊系統所面臨的問 題來自於硬體相關的技術障礙。稱這時期為系統發展方法發展啟蒙時代(pre- methodology era),這段時間中,使用者需求無系統化的分析方式,對於專案流 程的控管也沒有特別的監控。隨著系統數目增加,對於系統分析卻無特定方法,
維護的工作相對繁雜。因此,為了使系統建構時更加結構化,系統發展方法開始 發展。這個發展時期也開啟了系統分析師的工作職權,他們負責與使用者和程式 設計師溝通(D. E. Avison & Fitzgerald, 1998),但是此時期仍無普及的系統開發方 法。
軟體系統發展方法之發展初期
70 年代後期與 80 年代初期為開法方法發展初期(early-methodology era),這 個時代開始針對系統發展的流程做探討。探討的結果產生相對應的原則、工具、
流程、文件、訓練與管理準則。第一個正式提出的方法論為生命週期法(system development life cycle),或稱為瀑布法(waterfall model),它是由 Royce (1970)所提 出。生命週期法本身為一個概念,重點在於使系統發展切割成不同的階段。許多 研究者紛紛提出對應的生命週期法,但是內容上大同小異,多數分成四到八個階
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
13
段,由於不同階段之間有其順序性,因此在軟體流程中我們歸納為線性流程。
以下沿用 D. B. Avison & Fitzgerald (1999)所引用的 Daniels & Yeates (1971)的定 義。生命週期法有以下階段,可行性分析、系統調查、系統分析、系統設計、系 統建置,生命週期法各階段的流程將在下段逐一說明。
第一階段,可行性分析階段,分析不同選擇中的成本與效益,選擇的基礎是經濟 效益、人力資源、組織資源、技術可行性。第二階段,系統調查階段,審核系統 功能需求、限制、例外情況以作為系統分析的基礎。在此調查中可以使用工具如 觀察、訪談、問卷或直接搜尋紀錄與文件。第三階段,系統分析階段將所觀察到 問題結構化,並且解決分析方法。第四階段,系統設計將上個階段的產出制定成 系統最終產出的格式設定,例如,資訊流、系統流程、系統結構、系統的基礎建 設以及系統測詴與導入計畫。第五階段,系統建置階段包含程式撰寫、硬體建置、
訓練使用者、撰寫使用者操作手冊和移植系統。這個階段中,系統品質成為最重 要的環節,品質高低的定義來自於使用者對系統的滿意度。最後系統上線後,持 續的提供定期回顧和維護以確保系統的使用品質。
使用這個定義的系統發展方法中的第一階段應該是屬於專案管理之流程,它 的目的是確定專案的規模與時程,與軟體流程無直接相關。另一方面第二至五階 段使用生命週期法後對軟體流程帶來兩個效益。一、在文件的產出上建立規範,
其效益是可以確保提案階段可以與使用者溝通,提案後可以與程式設計師溝通,
建置後的維護與訓練也都能參考紙本文件。二、每個開發階段都是一個管理上的 審核點,有助專案品質的管理。若是在階段開始時發現問題,則可以回溯到前一 階段重新開發。這兩個效益代表系統發展方法解決了啟蒙時代的系統建置問題 ((Royce, 1987), (D. B. Avison & Fitzgerald, 1999))。
但是,早期的生命週期發展有以下的問題。一、使用者需求不穩定,因為商 業環境不斷改變使用者連帶需求改變;二、設計僵化,因為系統發展是由上一階 段的成果驅動,因此若要更動需求則要從頭執行設計;三、使用者不滿意,由於
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
14
文件為技術導向,而非使用者導向,不易閱讀等問題(D. E. Avison & Fitzgerald, 1998;
Sommerville, 1996)。
軟體系統發展方法之發展興盛期
80 年代中後期開始是系統發展方法發展興盛期(methodology era),包含幾大 主題,結構、資料導向、雛型、物件導向、參與開發、策略、整體系統以及反覆 漸進式開發等(D. B. Avison & Fitzgerald, 1999; Sommerville, 1996)。這些主題並不全 然互斥,所以在使用一個方法論時可能參考超過單一主題。這些開發模型都是基 於瀑布式系統發展方法論發展而來,但是漸進式地改良瀑布式系統發展方法論的 缺點,瀑布式系統發展方法論也因此得到了修正。而這些方法中使用發展最為廣 泛的三個模型,結構模型,反覆漸進式開發法以及雛型法,下面將針對三個模型 作探討(Brian Fitzgerald, 2000) 。
結構模型是以瀑布法為基礎的系統發展方法,經由眾人的努力以階段性的改 良產生現階段的結構法,此外他也是目前最廣為使用的系統發展方法。包含了結 構分析與設計,擁有三大技術指標:一、邏輯資料模型,以了解商業運作時系統 資料需求;二、資料流模型,以了解資料的流通以及資料溝通的對象;三、實體 行為模型,以了解實體是如何被影響,以及影響的順序。結構法第一個特色是採 取階層式由上而下的功能拆解,直到呈現最簡化的功能。這樣的拆解有助於了解 整體面向,並隨後依據需求增加更多層次的細節。第二特色是結構法需要許多工 具,如環境圖(context diagram),資料流程圖(data flow diagram),結構圖(structure diagram),資料字典(data dictionary)等。這些工具輔助系統的分析,並且使文件 更加結構化。結構模型著重於系統發展的前三步驟,規劃、分析、設計階段,因 此解決了瀑布法中文件雜亂且使用者、程式設計師難以閱讀的問題(D. B. Avison &
Fitzgerald, 1999; Brian Fitzgerald, 2000; Yourdon, 1993)。結構模型改善了瀑布法前 三個流程中執行的方法,但是並沒有對流程做出改善。
反覆漸進式開發模型是解決設計流程僵化問題的方法,同樣以瀑布法為基礎,
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
15
但是提供使用者有機會可以針對規格、需求提出改善。反覆漸進式開發模型最早 可以回溯到 IBM 的 Randell 與 Zurcher(1968),他們認為系統設計的過程是透過一 個漸進擴展的模式,每一次對一部份的功能進行開發,並驗證其系統的功能、執 行成果。透過一系列功能的擴展逐漸發展成為一個系統。這樣也能帶給開發者學 習系統發展的方法,這些成效將轉換成下一個漸進式階段的設計規格或是功能。
此外就整個瀑布式系統發展方法論的階段面來看,管理者也能不斷地針對效益做 出評估,進而在下一個漸進式階段中有更好的預估能力。因此反覆漸進式開發法 是將最簡化的瀑布式系統發展方法論做重複的應用(Larman & Basili, 2003; Mills, 1999) 。
雛型法是讓系統開法者透過系統介面與使用者溝通。因此,雛型中不一定提 供完整的系統功能,它可能是建立於某種情境之下並且向使用者展示介面的過程。
雛型解決系統文件不容易被使用者理解,而雛型的使用或展示,讓使用者可以假 想系統完成後的使用情況。雛型製造、花費的時間在開發環境的精進下可以快速 地完成製作。因此也打破原來瀑布式系統發展方法論中要等到建置後才能看到系 統的問題。
至此,系統發展方法論已逐漸成熟,瀑布式系統發展方法論也獲得有效的改
至此,系統發展方法論已逐漸成熟,瀑布式系統發展方法論也獲得有效的改