人數

2010年6月29日 星期二

系統分析與設計第三章王堯天資訊系統開發的程序

第3章 資訊系統開發的程序


1.請問資訊系統的開發活動具有哪些特性?
【參考答案】:
一般而言,資訊系統的開發活動具有下列特性:
(1) 每一個專案均具有其特定的目標與時程。
(2) 資訊系統的開發工作是由一群專案團隊的人員共同參予,其中參予人員包括使用者、外包商代表、專案經理、系統分析師、資料庫管理師、程式設計師、測試工程師等。
(3) 由於軟體的更改一直持續的進行,因此,軟體的維護成本是相當高。
(4) 從學習的觀點,軟體開發活動是資訊人員學習新技術與獲取實務經驗的一個良好的機會。
(5) 從設計的觀點,資訊系統的開發活動是一種從無到有的過程,軟體開發工作也是屬於一種腦力密集的工作,因此,軟體設計人員的良好的創造力是不可欠缺的一環。

2.請您說明何謂「軟體開發程序的基本架構」?並敘述採用此一分性架構的主要理由。同時,解釋一個資訊系統開發過程的主要工作為何?
【參考答案】:
軟體開發程序的基本架構,它是指:「分析軟體開發程序的一個基本架構,涵蓋流程、產品與方法三個構面,第一個構面是流程的觀點,資訊系統的開發從開始到結束為止的過程可以被視為一個軟體專案的生命週期,吾人可以將它區分為若干個階段與每一個階段的重要活動與工作項目;第二個構面是方法的觀點,它涵蓋軟體開發模式、方法論、技術、工具等;第三個構面是產品的觀點,資訊系統的開發工作是產生一些原始碼、文件、軟體開發的核心技術。」
基本上,採用軟體開發程序的基本架構的理由如下:(1)資訊系統開發有一定的階段性活動,(2)不論是哪一個開發階段皆需要一些指引或支援的開發方法例如模式、方法論、技術與工具,(3)每一個開發階段皆有某些產品產出例如原始碼、文件或技術等。綜合以上所云,軟體開發程序的基本架構可以用來定義或分析一個軟體專案的開發工作,大幅度的簡化問題,使專案管理者能夠深入了解軟體開發生的諸多問題並提出有效的解決對策。

3.何謂「軟體開發環境」?一個好的軟體開發環境對資訊系統的發展究竟有哪些效益?
【參考答案】:
一般而言,軟體開發環境主要是提供軟體開發過程活動的基礎架構與支援服務,它所涵蓋的範圍分為兩個部分:(Corbin, 1991)。
(一) 管理制度方面主要是提供軟體開發人員一些相關的支援與服務,它涵蓋企業規劃、專案管理制度、教育訓練、標準建立、支援設施、體開發作業的支援、開發作業制度流程的建立、資源的分配方法、軟體開發作業標準的建立等。事實上,建立一個良好的軟體開發環境最重要的是管理制度與開發作業流程的建立與導入,其次,軟體開發人員的教育訓練工作亦是相當重要的一環。因此,建立一個良好的軟體開發環境對有效的提升軟體開發人員的生產力與品質是有關鍵性的影響。
(二) 技術應用方面提供軟體開發人員一些技術方面的支援,它包括方法論、技術、工具、量度、技術平台與軟體架構等。一般而言,軟體開發活動所需的技術相當多,例如資訊系統規劃、開發方法論、軟體工程、軟體成熟度能力評估、量度、測試與CASE工具等。因此,技術的評估與選擇、軟體工具的導入與應用是資訊系統開發活動的一項重要決策,除了需考慮專案本身的需求、軟體開發人員的學習與應用能力、投入成本、後續的版本更新與軟體系統的升級等諸多問題也是不可忽略的。總之,如何選擇與評估具有完整的功能、實用性、經濟性的技術解決方案是軟體專案團隊的一項重要決策,務必十分謹慎才行。
一個好的軟體開發環境對資訊系統的發展的主要效益如下:
(1)建立一個完整的軟體開發作業平台,提供不同參與者使用,提昇工作效率與品質以及生產力。
(2)結合軟體開發環境之內部與外部的資源,增加共同從事於軟體開發合作的機會,邁向大型軟體專案開發的中長程目標。
(3)建立軟體開發環境之開發制度與流程。
(4)提一個軟體開發新進人員學習的良好環境,提升學習的效果與縮短學習時程。
(5)持續的累積從事於軟體軟體開發的技術與經驗。

4.資訊系統的五項基本要素為何?
【參考答案】:
一般而言,資訊系統涵蓋以下五項基本要素,茲敘述如下(圖三):
(一) 硬體系統:大型或中型電腦主機、工作站、個人電腦、程控電腦、通訊設備、….等;任何一部電腦均由輸入單位、記憶單位、算數及邏輯單位、控制單位、與輸出單位等五個基本單位所構成。另一方面,通訊設備系統則包括網路基本設備、網管系統、通訊線路、無線通訊設備等。近年來由於光電科技的進展,未來電腦的發展可能朝向多處理器、平行處理、光電腦與量子電腦等幾個新方向。
(二) 軟體系統(Software systems):它主要是包括操作系統(Operating Systems, OS)、效用軟體(Utility Software)、應用軟體(Applications Software)、中介軟體(Middle Software)等。操作系統主要是負責監督與管理記憶體、輸入與輸出控制系統、工作管理、異常處理等;效用軟體則提供一些系統管理與維護的指令功能;而應用軟體的範圍則較為廣泛,例如微軟公司的文書處理軟體、資料庫系統、採購與庫存管理等均屬之;中介軟體負責各型電腦之間的傳輸介面。
(三) 管理制度(Management Systems) 它是企業內部人員遵循的一項標準的作業程序、方法、規則與表格等。一般而言,資訊系統包括企業流程(Business Process)與資訊流程(Information Process)等兩個基本的流程,所謂流程是指:「執行一些邏輯性相關工作而能夠達到某一特定結果,而且在不同時間或地點之特定工作活動的順序,它具有起始點、終點,能夠定義輸入與輸出者。」流程的基本要素為輸入、輸出、處理、控制、資料、處理、介面等。事實上,流程是一切企業營運的重要基礎,任何資訊系統的處理邏輯均與管理制度有關,建立良好的管理制度是邁向成功的資訊系統的第一步。
(四) 人(People)人是資訊系統重要的核心,主要有下列三種類型的人可能使用資訊系統:(1)系統開發者(Systems Developers),例如專案經理、系統分析師、資料庫管理師、程式設計師、資料管理師、測試工程師、軟體品質保證工程師等,系統開發者主要的任務是在合理的預算之下,發展一定品質水準的資訊系統供資訊系統的使用者應用,(2) 內部使用者(Internal Users),例如系統的擁有者(e.g., 董事長、股東)、高階主管(e.g., 總經理、副總經理、處長、經理)、中階主管(e.g., 主任、組長、課長)、作業部門主管(e.g., 股長、領班)、工程師、管理師與作業員等,內部使用者主要的任務是提供一些系統的功能性需求或更改需求,作為資訊系統開發人員開發與設計的依據,與 (3) 外部使用者(External Users),例如客戶、供應商、策略性合作公司相關人員等,利用企業資訊系統的功能,產生一些所需的有用的資訊,作為決策的依據。
(五) 資料(Data) 主要是包括資訊系統的資料庫、檔案、表格檔(Table)、其他外部資料等。資訊系統的資料庫是企業重要資料的集合,透過資料庫管理資料系統可以有效率的處理資料,確保資料處理的工作達到整合性、一致性、完整性、獨立性、安全性、隱私性、擴充性、穩定性與彈性的良好效果。

5.資訊系統的開發程序主要的階段與工作項目為何?
【參考答案】:
基本上,一個資訊系統的開發程序大致上可以區分為定義、規劃、分析、設計、程式撰寫、測試、驗收、正式作業與維護等八個階段。茲將每一個階段的工作內容敘述如下︰
一、定義階段
第一個階段是定義階段(Definition Phase),其主要的工作為定義研究問題、研究背景(人、事、時間、物….)、作業流程與設定解決問題的目標等。此一階段最重要的工作是確認資訊系統的範圍(Scope)、主題(Subject)與目標(Objectives)。所謂範圍是指資訊系統的涵蓋的功能與應用的對象,主題是指資訊系統的主軸與核心領域,目標是指資訊系統預計達成的具體貢獻與績效。
二、規劃階段
第二個階段是規劃階段(Planning Phase),其主要的工作為根據定義階段的目標與範圍進行資訊系統的整體規劃工作。資訊系統規劃是資訊系統開發的重要過程,其主要的目的是完成既定的資訊系統發展目標,將有限的資訊資源做充分與有效的運用,因此,資訊系統規劃者必須了解企業內部的優勢與弱勢與外部的環境的機會與威脅,根據目標的需求制定一份完整的資訊系統規劃書,主要工作內容涵蓋程序的規劃、資訊系統的硬體架構、軟體架構、網路架構、容量規劃、人員規劃、設備規劃、成本規劃、時程規劃等執行計畫。
三、 分析階段
第三個階段是分析階段(Analysis Phase),其主要的工作是了解企業的需求,針對資訊系統的需求作明確的定義與規範,其工作內容為進行使用者需求分析,了解使用者的功能需求、績效需求、用戶介面需求、設計需求、資料需求等,據以建立功能模式、流程模式、資料模式、可行性分析報告等系統文件。為了達成上述目的,系統分析師必須進行相關資料的收集、訪談、問卷、觀察等工作,當此一階段的工作告一段落時,系統分析師必須召開資訊系統需求正式確認會議,邀請各部門的主管與承辦人員參加,經過共同熱烈討論與集思廣益的腦力激盪過程,即可已確定資訊系統的正式需求,做為後續資訊系統設計的依據。
四、設計階段
第四個階段是設計階段(Design Phase),其主要的工作為根據系統分析規格書進行資料庫設計、處理程序設計、輸入與輸出設計、界面設計與控制系統設計。事實上,設計是達成進行系統目標的一種必要的手段,因此必須考慮技術、作業、經濟與時程之可行性、成本與績效。如欲有效的達成上述的目標,系統設計人員必須熟悉專業領域的知識、工作特性與作業流程、資訊科技的特性與應用能力與使用者需求,並且根據設計的方法論與以前從事於資訊系統設計的經驗,進行系統設計工作,並完成一份系統設計規格書,做為程式設計階段的依據。
五、程式設計階段
第五個階段是程式設計階段(Programming Phase),其主要的工作為程式設計人員根據系統規格書與程式規格書撰寫應用程式。因此,系統分析師必須規範資訊系統開發的標準程式語言、程式的基本架構、撰寫程式的標準作業程序並且詳細說明程式的處理邏輯與限制條件、異常情況的處理程序。目前,已經有許多自動化軟體工具例如CASE工具等,可以自動產生程式碼,取代程式的撰寫工作,不僅生產力較高且軟體品質也較好。
六、測試階段
第六個階段是測試階段(Testing Phase),主要的工作包括﹕(1)單元測試單一程式模式之內部邏輯是否正確,在功能方面是否正確的將輸入資料轉換出預期的輸出資料等,(2)整合測試測試多個模組連結起來以後,是否能夠達到預期的功能、介面的處理是否有問題,(3)功能測試測試整個系統是否達成系統預計的功能,(4)績效測試測試系統是否符合系統規格書規定的績效標準,與 (5)驗收測試由使用者根據其所提出的需球進行測試,檢查系統是否滿足其要求,在實際作業的環境下進行真實資料的測試,檢測是否達到既定的要求水準。
七、驗收階段
第七個階段是驗收階段(Acceptance Phase),其主要的工作為安裝與驗收軟體與系統文件等。資訊系統開發人員必須將經過測試合格的資訊系統安裝在使用部門工作場所並進行現場測試(Site test),由使用部門進行驗收工作,至於包括驗收階段的系統文件包括專案規劃書、系統規格書、系統需求分析規格、系統設計規格、程式規格、測試報告、操作說明書與系統維護說明書等。
八、正式作業與維護階段
第八個階段是正式作業與維護階段(Operation and Maintenance Phase),其主要的工作為教育訓練、平行作業、系統轉換、正式作業與系統維護管理等。此一階段工作涵蓋資訊系統的轉換、平行作業,教育訓練、決定正式作業的日期,一旦資訊系統進入正式作業階段,如果使用者提出修改或更新的需求時,資訊人員得斟酌修改之必要性,進行資訊系統的維護工作及做好版本的控制工作。
茲將資訊系統發過程每一個階段之主要工作項目、系統文件與參與者整理於表二。
表二:資訊系統的開發程序
6.資訊系統的導入方式有哪些型態?各種型態的適用對象以及重要的評估構面與準則為何?
【參考答案】:
以資訊系統的導入方式而言,它可以分為以下幾種型態:(Hoffer et al, 2005)
(1) 企業內部自行開發。
(2) 委外開發(Outsourcing)。
(3) 採用套裝軟體。
(4) 採用應用系統服務提供者(Applications Service Provider, ASP)的做法。
(5) 混合法,由企業與合作廠商共同開發。
事實上,選擇一種適合的資訊系統開發方式是一項重要的決策,基於時效性、成本、核心技術能力、工作負荷、交期的壓力或資訊系統的策略等多項因素的考量,對於資訊系統開發方式的選擇與評估是十分重要的工作。
第一種做法是企業內部自行開發的方式,基本上,它可以由資訊部門開發或是由使用者自行開發,所謂使用者自建(End User Computing, EUC)是指:「由使用者自行完成資訊系統開發工作。」;第二種做法是採取委外開發,將資訊系統開發的全部或部分的業務,委託公司外部的廠商予以完成上述工作的一種做法,它包括整體系統的開發、部分系統的設計或是程式的撰寫,甚至於全部資訊系統的硬體購置、使用或維護工作等;第三種做法是由公司採購現成的套裝軟體,配合作業的流程導入企業;第四種做法是採用應用系統服務提供者的做法,由系統服務提供者提供一些硬體、軟體、網路的租賃服務,並收取一些合理的費用;第五種的做法是由企業與合作廠商組成專案小組一同從事於軟體專案的開發工作。以開發成本而言,自行開發成本是最高而購買套裝軟體是最低,委外、ASP法、共同合作的開發方式則介於中間。以時效性而言,購買套裝軟體是最快的做法,而自行開發則是所需的時間最長,而委外、ASP法、共同合作的開發方式則介於中間(Hoffer et al, 2005)。
茲將一個企業選擇資訊系統的導入方式時,一些重要的評估構面與準則列舉如下:
(一) 人的因素資訊部門的人力、專業能力、技術、工作態度與意願、生產力、激勵效果與自我肯定等。
(二) 企業資訊化的需求工作負荷量、交期、專案複雜度、專案規模、等。
(三) 技術因素資訊系統開發與維護的方法、工具、技術等。
(四) 財務因素自行開發、ASP、套裝軟體或委外的成本與效益、資訊科技的投資組合等。
(五) 風險因素系統開發失敗的機率、系統風險、市場風險、可控制風險、不可控制風險等。
(六) 供應商因素供應商的技術能力、服務品質、技術移轉、市場佔有率等。
(七) 專案管理制度與執行能力專案管理制度、專案流程控管、專案領導者領導風格等。
(八) 其他產業特性、市場的動態環性、競爭對手或企業文化等。
至於評估方法可以採用平衡計分卡、層級分析法(Analytical Hierarchical Process, AHP)、多屬性多準則決策法(Multiple Criteria Decision Making, MCDM)、德菲法(Dephi Methods)、焦點群體法(Focus Group Methods)、多目標規劃法(Multiple Objectives Planning)等,至於如何應用上述的決策方法請參閱決策相關專書。

7.何謂「資訊系統的開發模式」?主要的軟體開發模式的做法及優缺點為何?
【參考答案】:
何謂「資訊系統的開發模式」是指:「針對一個完整的資訊系統開發過程必須規範軟體開發活動(Activity)、作業標準(Standard)、軟體工具(Tools)、方法論(Methodology)與參予人(Participants)等。因此,資訊系統的開發模式是軟體開發人員在軟體開發過程相當重要的指引(Guidelines),對於軟體品質與生產力具有相當程度的助益。

8.請問選擇一個適合的軟體開發模式的基本原則為何?
【參考答案】:
至於選擇一個良好的開發模式的重要原則,茲敘述如下︰
(1) 實用—實際應用的可行性。
(2) 簡單性—執行過程符合簡單化。
(3) 完整性—考慮軟體開發的各種需求。
(4) 可執行性—實際應用至軟體開發的過程。
(5) 經濟性—成本與經濟效益。
(6) 彈性—適應各種需求做彈性調整。
(7) 可維護性—維護工作的能力與成本等。

9.何謂「資訊系統開發方法論」?請說明各種方法論的做法以及其優缺點。
【參考答案】:
所謂資訊系統開發方法論(Methodology)是指:「一個完整且可以遵循的指引方針,藉由它可以完成系統發生命週期中每一項開發活動。」(Stazinger et al., 2002) Hoffer, et al.(2005)認為一個方法論是指﹕「一個完整的多階段的系統發展的方法,它可以指引開發工作之進行並且提昇資訊系統的品質者。」。基本上,一個資訊系統開發方法論涵蓋軟體設計的哲學、方法、原則、模式與技術的概念。
以下擬針對目前最重要的一些方法論做詳細的介紹。
一、傳統經驗法則之軟體開發方法
傳統經驗法則之軟體開發方法 (Traditional Approach)主要是由一些具有經驗的系統開發人員將所得到的寶貴經驗移轉給一些新進人員。如果傳授的是一位具有豐富經驗的專家,資訊開發人員一定可以吸收到相當多的寶貴經驗,但是若是若缺乏一些有經驗的前輩指引時,只有靠個人自行模索,利用嘗試錯誤法,其效果自然十分有限。
二、結構化方法
結構化方法(Structured approach)又稱為結構化分析設計法(Structured Analysis and Design Techniques, SADT),它的基本理念是「分割與克服」(Divide and Conquer),針對一個複雜的系統採取切割的方式,並針對細分的子系統加以解決的一種做法。結構化方法主要是包括結構化程式、結構化分析與結構化設計三種方法。結構化程式設計發展於196年左右,其目的主要是提昇程式設計的品質與生產力,根據結構化程式設計的要求每一個程式只有一個開始入口(Entry point)和一個結束點(Exits)。一般而言,結構化程式的三個主要類型如下:(圖四)
(1) 循序(Sequence)程式的執行邏輯是採用一個指令接在前面的指令之後,循序執行。
(1) 選擇(Selection)程式的執行邏輯是依據抹些標準來執行或不執行某些指令,通常採用IF-THEN-ELSE或是CASE的指令。
(3) 重複(Iteration)程式的執行邏輯是依據抹些標準重複執行某些指令,通常採用DO-WHILE或是DO-UNTIL的指令。
結構化程式設計的作法是先將一個複雜的程式區分若干個階層式模組,依據實際的需求向下細分模組,一直到可以處理為止。其作法有兩種做法﹕(1) 由上而下即程式設計的作法是由上一個階層的程式模組先完成,再陸續完成下一階層的模組;(2) 由下而上即程式設計的作法是先完成下階層的模組,再完成上一階層的模組,不斷的向上整合一直到完為止。此外,為了達到程式內部的模組的再用性,建立一些經常被使用到的呼叫模組,減少重複指令的撰寫工作。換言之,上一階層的模組可以呼叫下層的模組,經由此一呼叫與被呼叫(Call and Called)的函數傳遞重要訊息,如此的作法,可以將一個十分複雜的程式經由結構化的程式設計技術,做大幅度的簡化,提升程式設計的效率。
結構化分析是發展於1970年代左右,它是將分析的需求以標準化的圖形化的方式呈現,例如資料流程圖(Data Flow Diagram, DFD)中的資料處理、資料流、資料儲存、資料結構圖等,實體關係圖(Entity Relationship Diagram, ERD)的實體與實體彼此之間的關係等,均有一套標準的表示符號,上述的模式化的工具可以協助軟體設計人員與使用者彼此溝通,大幅度的提升分析作業的效率與品質。而結構化設計是發展於1980年代左右,它主要是以模組化設計為基礎,使用結構圖(Structure Chart, SC)表示系統的設計規格,做為程式設計的依據。採用結構化設計的主要效益是簡化設計的工作並且可以改進系統設計的彈性。
三、資訊工程法
資訊工程法(Information Engineering, IE)是James Martin於1980左右所提出的一種做法。資訊工程法主張系統的開發工作必須依循下列程序﹕策略規劃組織架構規劃資訊系統開發,利用CASE工具發展系統。因此,該方法提出資料塑模(Data Modeling)與規劃的方法論(Plan Methodology)。
四、物件導向法
物件導向法(Object Oriented Method)最早是起源於1960年代之物件導向語言(Object oriented programming, OOP),例如Simula語言,1970年代之Small Talk,以及後續發展出來的物件導向語言例如C++, Java等。物件導向分析主要的工作是根據使用者需求,利用使用圖案例圖(Use Case Diagram)描述系統的功能,並利用物件類別圖(Object Class Diagram) 描述系統的資料結構以及循序圖(Sequence diagram)描述系統的行為模式。物件導向設計方法是定義與精練(Refine)細部使用圖案例圖、物件類別圖(Object Class Diagram),發展出活動圖、部署圖等。
五、CASE工具導向法
電腦輔助系統工程(Computer Aided Software Engineering, CASE)主要是利用CASE工具來輔助系統分析師從事於資訊系統開發的工作。基本上,CASE工具提供系統發一套完整的架構及支援各種設計的方法論,其中有結構化方法或物件導向法。此外,CASE工具提供了軟體開發人員一個完整的軟體開發環境,協助系統開發人員建立企業模型與系統模型,其中尚包括繪圖工具、模擬器、程式產生器、儲存器等多種功能,對於系統的開發生產力與品質有相當程度的助益。
一般而言,評估一個方法論的主要構面可以從下列兩個構面著手:(1) 學習構面它包括熟悉度(Understandability),例如了解一個新的方法論所需的時間與投入的人力等,(2) 功能構面特定功能與資料的表達能力(Specific Ability for Function and Data)、描述能力(Description Ability)、可修改改能力(Modified Ability)與再用性(Reusability)等(Miyoshi & Azuma, 1993)。

10.軟體開發工具的選擇與評估之分析構面與準則為何?進行評估的步驟為何?
【參考答案】:
軟體開發工具的選擇與評估之分析構面與準則如下:
(一) 功能面自動程式產生器、反向工程、支援團隊進行資訊系統開發、建立模式、繪圖、測試、自動化查詢與產生系統文件等。
(二) 技術面支援不同的作業系統、符合業界需求或國際標準、不同作業平台之資料的交換性、Web作業的能力、版本更新、通透性與彈性化的能力等。
(三) 人員的接受與使用面提供教育訓練、容易使用與學習與提升軟體設計的技術水準。
(四) 作業制度面軟體工具與作業制度的結合、標準化的作業、實際導入與執行可行性、提升作業效率與工作品質等。
(五) 經濟面節省人員成本、資訊開發總成本、軟體的價格、維護成本與軟體工具帶來的經濟效益等。
(六) 軟體開發策略面與企業的資訊科技策略之一致性、支援專案開發活動的進行、策略調準與資訊系統的整合等。
一般而言,進行軟體工具的選擇與評估時亦必遵循一定的步驟,它主要實施對象包括作業需求分析、蒐集資料、初步評估、制定細部評估準則、決定權重、細部評估、可行方案的評估與選擇,如圖五所示。茲將每一個階段的工作項目敘述如下:
(一) 作業需求分析首先,根據針對資訊系統開發工作的需求進行深入了解,蒐集軟體開發工作流程、文件、工作項目與參與者等相關資料,並整理出資訊系統開發的實際作業需求。
(二) 蒐集資料蒐集有關的軟體開發工具的基本資料,例如軟體工具的代理廠商、軟體工具的主要功能、價格、應用對象與操作方法等。
(三) 初步評估針對功能、預算的需求進行初步的評選,設定一些基本的門檻值做為淘汰一些不合格軟體工具之基準,經過初步評估以後可以得到一些符合的可行方案。
(四) 制定細部評估準則其次,制定一些軟體功能的細部評估準則做為決策的依據。
(五) 決定權重經由一個理性與客觀的程序產生每一項評估準則的權重值。
(六) 進行細部評估正式進行軟體工具地細部評估作業。
(七) 可行性方案的選擇與評估從一些可行方案中,挑選出一個最佳方案。
(八) 檢討與修正針對評估的結果進行檢討與修正工作。

11.何謂「電腦輔助系統工程」(CASE)?包含哪些重要元件?
【參考答案】:
所謂電腦輔助系統工程(computer-aided systems engineering, CASE)工具是指「一些軟體程式能夠將建立系統模式的過程之工作予以自動化,並且將系統模式轉換為應用程式的一種工具。」(圖六)。茲將CASE工具的一些重要元件說明如下﹕
(1) 繪圖器繪製流程圖流程模式、資料模式等。
(2) 分析器分析程式邏輯系統。
(3) 測試器測試程式輔助工具。
(4) 雛型工具直接產生雛型的工具。
(5) 反向工程工具將程式轉換成規格。
(6) 程式產生器利用模式轉換為程式。
(7) 效用工具載入或載出。
(8) 貯存器(Repository):它是一種系統開發人員使用的資料庫(Database),又被稱之為字典(Dictionary),它可以儲存一些資訊系統開發過程的資訊系統的模式、細部文件說明、系統規格與系統開發過程的一些重要文件。

12.請您從人員、流程、資訊科技的觀點,說明一個完整CASE工具的方法論之基礎架構。
【參考答案】:
一個完整的CASE工具方法論應用的基礎架構,它涵蓋軟體開發階段包括定義、規劃分析、設計、程式設計、測試、驗收正式作業與維護階段;企業方面的需求包括知識、流程與溝通;資訊科技包括資料庫、處理技術、介面;資訊系統開發相關的人員包括系統所有者、使用者、分析者與建置者。核心部分的第一層為問題的陳述包括資訊範疇與視野、功能範疇與視野、溝通範疇與視野,第二層為企業需求的描述包括企業資料需求、邏輯資料模式、企業流程需求、邏輯流程模式、企業或系統介面需求,第三層為系統建議書之應用架構,第四層為實體資料庫設計規格、實體企業流程設計規格、實體軟體設計規格、實體使用者或系統設計規格、資料庫系統、中介軟體、商用套裝軟體、自行發展應用程式、使用者介面、系統介面等。綜合以上敘述,一個完整的方法論的架構對於資訊系統的開發與維護是相當重要的一環,值得資訊系統開發人員進行深入的分析、構思與應用。



13.在資訊系統開發過程中,有哪些主要系統文件?每一種文件的目的、內容與製作負責人為何?
【參考答案】:
茲將每一種系統文件的格式與內容、製作的時機與主要負責人等說明如下︰
(一) 專案計畫書—主要是敘述專案進行的程序,其內容包括專案規劃工作項目涵蓋時程、成本、人員、設備、…等,主要是由專案經理負責專案規劃書的製作,在資訊系統開發的定義階段結束後須完成一份專案計畫書,做為專案進行的主要依據。
【專案計畫書】
1. 導論
1.1 計畫目標
1.2 作業範圍
1.3 計畫內容摘要
1.4 參考文件
2. 專案計畫的工作內容
2.1 專案計畫的工作內容說明
2.2 工作計畫與工作項目
2.3 交付的產品項目與日期
2.4 發展時程與管制點
2.5 開發方法論、技術與工具
3. 專案計畫的資源估計
3.1 專案的組織
3.2 人力需求與成本估計
3.3 硬體、軟體的需求與成本估計
3.4 外包商的資源需求與成本估計
4. 相關計畫
4.1 品質計畫
4.2 形態管理計畫
4.3 整合計畫
5. 附錄
5.1 外包的專案計畫
5.2 其他規定與與限制
(二) 系統規格書—主要是描述的資訊系統功能的需求,其主要內容包括硬體、軟體等規格等,由系統分析師根據專案的需求負責完成系統規劃的工作,在資訊系統開發的規劃階段結束後須完成一份系統規格書,做為發展資訊系統的主要依據。
1. 導論
1.1 系統目標
1.2 系統範圍
1.3 系統簡介
1.4 參考文件
2. 系統需求規格
2.1 系統功能規格
2.2 系統界面規格
2.3 測試規格
2.4 其他特殊需求規格
3. 系統文件
3.1 系統相關文件
3.2 界面相關文件
3.3 測試相關文件
3.4 其他的相關文件
4. 附錄
(三) 軟體需求規格書—它是用來描述軟體的需求,其主要內容是包括系統流程、資料與介面的規格,由系統分析師負責完成軟體需求規劃的工作,在資訊系統開發的分析階段結束後須完成一份軟體需求規格書,做為設計資訊系統的主要依據。
軟體需求分析規格書
1. 導論
1.1 目標
1.2 範圍
1.3 功能摘要
1.4 假設與限制
2. 系統文件
2.1 客戶的需求文件
2.2 其他的相關文件
3. 軟體需求的整體描述
3.1 功的需求
3.2 檔案(資料庫)的需求
3.3 人機界面的需求
3.4 外部通訊的需求
3.5 其他特殊的需求
4. 功能需求的細部描述
4.1 軟體項目代號
4.2 軟體項目的功能需求描述
(1) 輸入與輸出
(2) 處理敘述
(3) 限制與界限
(4) 績效需求
(5) 設計限制
(6) 其他注意事項
5. 驗證準則
5.1 軟體版本一致性
5.2 軟體測序
5.3 測試軟體的驗證
5.4 其他特殊的驗證需求
6. 附錄
(四) 軟體設計規格書—主要是描述軟體設計的規格,其主要內容包括檔案、處理、介面、輸入與輸出等細部規格,由系統設計師負責系統設計的工作,在資訊系統開發的設計階段結束後完成一份軟體設計規格書,做為程式設計的主要依據。茲將軟體設計規格書的格式列於表八。
表八:軟體設計規格書
1. 導論
1.1 目標
1.2 範圍
1.3 設計概述
2. 系統文件
2.1 系統設計的文件
2.2 其他的相關文件
3. 設計描述
3.1 程式概述
3.2 程式外部界面
3.3 程式內部界面
3.4 程式作業說明
3.5 資料流程圖(流程圖)
3.6 檔案設計
4. 模組描述
4.1 模組名稱
4.2 模組目的
4.3 模組功能說明
4.4 輸入與輸出
4.5 限制
4.6 訊息
4.7 方法與處理程序
4.8 其他特殊事項說明
5. 附錄

(五) 程式規格書—主要是用來描述程式的處理邏輯、流程圖等,作為程式撰寫的依據,該文件是應用在資訊系統開發的程式設計階段,由系統設計師進行程式設計規劃的工作,可做為進行程式設計的主要依據。茲將程式規格書的格式列於表九。

【程式規格書】
1. 程式基本資料
1.1程式代號
1.2程式名稱
1.3設計者
1.4語言
1.5完成日期
1.6最新更新日期
1.7輸入、處理與輸出
1.8程式基本結構圖
1.9重要參數
2. 程式的處理邏輯說明
3. 附錄
(六) 軟體測試規格書—主要是用來描述軟體測試的方法、進行的步驟與程序、測試個案等,由系統分析師負責完成軟體測試規格書,再交由測試工程師進行系統測試的工作。茲將軟體測試規格書的格式列於表十。
表十:軟體測試規格書


【軟體測試規格書】


1. 導論


1.1目標


1.2範圍


1.3系統簡介


1.4參考文件


2. 軟體測試文件


2.1 軟體測試的文件


2.2 其他的相關文件


3. 測試文件


3.1 測試軟體的代號


3.2 測試日期


3.3 測試人員


3.4 測試類型


3.5 測試方法


3.6 測試個案


3.7 測試進行步驟


3.8 測試輸入資料


3.9 測試結果與說明


3.10 其它測試特殊事項說明


4. 附錄










(七) 系統驗收紀錄清單—主要是用來描述系統驗收的主要文件,在資訊系統開發的驗收階段,由專案經理列出系統驗收的文件清單,做為使用者驗收系統的主要依據。茲將系統驗收紀錄清單的格式列於表十一。






表十一:系統驗收紀錄清單


【系統驗收紀錄清單】


專案計劃名稱 專案計劃編號 頁次


驗收項目 驗收結果 備 註


符合請打(ˇ) 合格 不合格


(1) 主要系統功能測試


(2) 特殊需求之系統測試


(3) 系統規格書


(4) 軟體需求分析規格書


(5) 軟體設計規格書


(6) 程式規格書


(7) 測試說明書書


(8) 系統操作手冊


(9) 系統技術手冊


(10) 【其他系統文件】


不合格項目之處理說明:


驗收人員: 驗收日期: 年 月 日


軟体發展負責人:










(八) 操作手冊—主要是用來描述系統操作的執行步驟,由系統分析師針對資訊系統操作工作需求描述正常執行的步驟與系統發生異常時的作業處理程序,在資訊系統開發的正式作業與維護階段,做為使用者系統操作的主要依據。茲將操作手冊的內容列於表十二。


表十二:操作手冊


【操作手冊】


1. 導論


1.1 系統目標


1.2 系統範圍


1.3 系統簡介


1.4 系統環境及設定


2. 使用者操作文件


2.1 使用者操作的文件


2.2 其他的相關文件


2.3 本操作手冊的使用方法


3. 系統功能介紹


3.1 線上作業


3.1.1 線上作業目錄


3.1.2 輸入畫面說明


3.1.3 輸入操作方法及程序


3.2 批次作業


3.2.1 批次作業目錄


3.2.2批次作業報表說明


3.2.3 批次作業操作方法及程序


3.3 查詢作業


3.3.1 查詢作業目錄


3.3.2 查詢作業報表說明


3.3.3 查詢作業操作方法及程序


4. 附錄


4.1 系統作業流程


4.2 系統異常處理程序


4.3 資料拷貝處理程序














(九) 維護手冊—主要是用來描述系統操作維護工作說明主要是用來描述系統驗收的主要文件,由維護工程師針對維護工作需求描述維護工作的內容,在資訊系統開發的正式作業與維護階段,可做為系統維修工作的主要依據。茲將操作手冊的內容列於表十三。


表十三:維護手冊


【維護手冊】


1. 導論


1.1 系統目標


1.2 系統範圍


1.3 系統簡介


2. 系統維護的文件


2.1 系統維護的文件


2.2 其他的相關文件


3. 系統功能介紹


3.1 線上作業


3.1.1 線上作業目錄


3.1.2 輸入畫面說明


3.1.3 輸入操作方法及程序


3.2 批次作業


3.2.1 批次作業目錄


3.2.2 批次作業報表說明


3.2.3 批次作業操作方法及程序


3.3 查詢作業


3.3.1 查詢作業目錄


3.3.2 查詢作業報表說明


3.3.3 查詢作業操作方法及程序


4. 資料庫的維護作業說明


4.1 資料庫(檔案)的架構與內容


4.2 平日維護作業


4.3 定期維護作業


4.4 緊急維護作業


5. 軟體的維護作業說明


5.1 軟體清單一覽表


5.2 軟體修改與更新作業


5.3 軟體的安全管理與保護


6. 附錄


6.1 系統異常的處理程序


6.2 資料庫(檔案)的拷貝處理程序


6.3 程式的拷貝處理程序


14.何謂「軟體品質」?它包含哪些主要構面?軟體品質與資訊系統的關係為何?
【參考答案】:
何謂「軟體品質」是指:「軟體滿足使用者需求功能與特性的程度」或「軟體產品整體的功能和特性滿足既定需求的能力」。一般而言,軟體品質包含以下的構面:
(1) 功能構面 整體性、可靠性、存活性與使用性。
(2) 績效構面 效率、正確性、安全性與交換性。
(3) 更改構面 維護性、可擴充性、彈性、可攜性與再用性。
(4) 管理構面 可驗證性與可管理性。
俗云:「軟體的品質是一個資訊系統的生命」,唯有良好的資訊品質,才能確保任何資訊系統的發展順利成功。因此,充分了解軟體品質是進行資訊系統開發活動的重要工作項目。由於軟體品質的量測對於資訊系統的管理是有相當大的助益,因此,如何做好品質規劃與控制是一位系統分析師重要職責。

15.何謂「再用性」?請您說明增加資訊系統再用性的具體作法。
【參考答案】:
所謂軟體的再用性(Reusability)是指:「在軟體開發過程中,由軟體開發團隊建立一些可再用性模組,提供資訊人員重複使用的一種作法。」基本上,建立一個良好的軟體的再用性之軟體開發環境是提升軟體再用性最重要的工作,主要的工作包括建立可再用性的元件庫、引進良好的品質度量與品質保證的軟體工具、建立標準化的作業程序、建立軟體再用的基礎架構(Infrastructure)、領域知識庫的建構等。
至於影響一個專案層次(Project-level)的再用性之因素,茲整理如下:(Rothenberger, 2003) (1) 管理者支持,(2) 獎勵制度與激勵,(3) 各種產品或資產的共通性,(4) 集中焦點、共同的架構與產品線,(5) 再用性經驗,(6) 經驗知識,(7) 有關再用性的教育訓練,(8) 產品型態,(9) 領域的穩定性,(10) 市場的經濟規模,(11) 資產的可用性與品質,(12) 再用性的量度,(13) 建立流程再用性的政策,(14) 內部元件的標準,(15) 產品線的作法,(16) 再用性的執行技術,(17) 技術的經濟規模,(18) 有關智慧財產權之法律問題,與 (19) 組織內部對於再用性之經濟可行性的認知。
如上所云,建議做法如下:(1)建立共用性程式庫,(2)制定標準化元件,(3)積極推行獎勵制度,(4)加強教育訓練工作,(5)擴大技術應用的經濟規模,(6)專注在某一個特定領域的發展。

16.在資訊系統的開發過程中經常遭遇哪些問題?請您提出一些具體的建議與做法。
【參考答案】:
茲將企業資訊部門從事於資訊系統開發過程中,經常遭遇的一些重要的問題整理如下︰
(1) 資訊系統規劃人員對於整個專案的估計過於樂觀,經常導致經常專案延誤交貨日期的情形發生。
(2) 資訊系統開發人員過分倚賴經驗的作法,忽略採用軟體工程的技術。
(3) 在系統開發初期階段,無法掌握使用者的真正需求,導致後續資訊系統發活動的修改次數大幅度的增加,增加資訊系統開發的成本。
(4) 在資訊系統之設計階段,並未將資訊系統的維護的作業需求列入考慮。
(5) 資訊系統文件的建立與維護工作執行並不澈底,因而造成軟體成本的增加。
(6) 忽略測試工作的品質,造成後續修改與維護成本的增加。
(7) 系統設計人員未能掌握問題的核心,設計的資訊系統架構欠缺完整性與實用性的考量,對於軟體的修改並未做嚴格的控管,容易導致專案的失敗後果。
針對上述的問題,茲建議具體的作法如下:
(1) 確實做專案規劃的工作針對專案的需求確實做好時程品質與成本的規劃工作。
(2) 加強資訊人員的教育訓練定期安排教育訓練課程,加強資訊人員的技術與管理的能力。
(3) 嚴格要求做好軟體品質管理導入品質保證制度或能力流程整合模式(Capability Maturity Model Integration, CMMI)。
(4) 導入專案發制度與流程建立一個完整的專案發制度與流程對資訊系統的品質與成本均有相當大的助益。
(5) 以團隊方式進行軟體的開發活動不論是任何資訊系統開發活動一律採團隊開發方式,可以減少人員離職所造成的衝擊。
(6) 引進適合的軟體工具針對企業的需求引進適合的軟體工具並予以應用在適當的工作場合。
(7) 定期檢討缺失與改進定期檢討專案的缺失,不斷的改進資訊系統開發作業的品質與效率。

沒有留言: