軟體生命週期管理與實作  主講者 : 蘇中和  經歷 : 鼎升科技軟體工程處技術顧問兼專案 經理  樹德科大資管系兼任講師  專業證照 : SCJP,SCWCD,MCSD.NET,MCDBA,Oracle 美國 PMP 專案管理師證照.

Slides:



Advertisements
Similar presentations
演講人:黃曉雯. 2 CMMI 介紹 CMMI 模式 CMMI 通過評鑑組織單位 CMMI 架構 CMMI 導入益處 CMMI 應用 3.
Advertisements

軟體工程 -物件導向程式設計與UML系統分析實作
LinkIt ONE開發板的簡介.
B、資訊系統開發模式 系統開發生命週期 資訊系統開發模式 結構化的(Structured)方法論
第一章 系統開發概論 1-1 系統開發概論 1-2 常見的資訊系統 1-3 系統開發生命週期 1-4 系統開發方法論簡介.
第1章 軟體工程與系統開發概論 1-1 軟體與資訊系統 1-2 軟體工程的基礎 1-3 軟體開發生命週期 1-4 軟體生命週期模型.
第二章 UML簡介 課前指引 本章介紹什麼是UML以及利用圖形來塑模資訊系統的好處在哪裡。文中也介紹了何謂「4+1的觀點」、以及簡述各項UML圖形的使用目的。並且,我們從靜態以及動態這兩個觀點來分類、介紹各圖形的使用時機。
陳維魁 博士 儒林圖書公司 第九章 資料抽象化 陳維魁 博士 儒林圖書公司.
第一章 軟體工程 (Software Engineering Introduction)
TQC+ JAVA全國教師研習會 PLWeb 程式設計練習平台 簡介.
本章學習目標 ERP系統的定義 企業應用軟體系統發展歷程 現階段ERP系統應用狀況.
主題五 CPU Learning Lab.
软件工程 Software Engineering
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
第一章 軟體工程概論.
Java簡介.
Chapter 1 Introduction.
第一篇 Unix/Linux 操作介面 第 1 章 Unix/Linux 系統概論 第 2 章 開始使用 Unix/Linux
第1章 認識Arduino.
電子商務基本概念 電子商務的定義 1-1 電子商務的特性 1-2 電子商務的演進 1-3.
第十三章 資訊管理的系統開發觀點.
R教學 安裝RStudio 羅琪老師.
無線射頻識別系統(RFID) 基本原理及發展與應用
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
安裝JDK 安裝Eclipse Eclipse 中文化
OpenID與WordPress使用說明
UML类设计工具 任课老师:黄武 上午2时50分 10.
指導教授 曾淑峰教授 成員 組長 葉桓伶 組員 謝桂蘭 江政祐 陳觀柏 徐志節 林東嶺
第七章 資訊系統評估 授課老師:褚麗絹.
管理資訊系統導論 資訊系統的定義與概念.
Chap 1 軟體品質管理與流程改善 簡介.
運用能力成熟度模型改善企業網站開發之績效 ─以某中小企業為例
使用者經驗設計 User Experience Design
大數據與我 4A 陳駿榜.
網路安全技術 OSI七層 學生:A 郭瀝婷 指導教授:梁明章.
Topic Introduction—RMI
TB-054A  周天穎 編著 儒林圖書公司 發行.
第三章 危害與操作性研究.
為成功制定目標和行動計畫 國際獅子會分區主席訓練.
網頁程式概論 建國科技大學資管系 饒瑞佶 2015/9 V1 2016/4 V2 2016/9 V3.
哪些人是管理者? 管理者? 指和一群人工作,並藉由協調他人來完成工作,以便達成組織目標的人
第二章 資訊系統開發模式.
其他 ER 相關觀念 以及OO模型 國立中央大學 資訊管理系 范錚強 2002 中央大學。范錚強.
2011清大電資院學士班 「頂尖企業暑期實習」 經驗分享心得報告 實習企業:工研院 實習學生:電資院學士班 楊博旭.
餐飲設施規劃流程.
Chapter 3 軟體組態管理 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz.
競爭情報 LinkedIn and Competitive Intelligence Putting Social Networking to Real Use by RogerPhelps 圖資四 B 鄭艾妮 B 蒲碩瑩 B 楊淑涵.
國立成功大學(農業) 報告人 協同主持人 林翰佑
精實醫療、六標準差、全面品質管理(流程改善面面觀)
第四讲 项目方法选择 1.
Chap 7 軟體品質管理與流程改善 簡介.
電子期刊使用統計 CONCERT 2002 meeting November 13-14, 2002 羅宙康 Springer-Verlag
產業實務實習工作說明 Kay Chang ASD
(Mobile User music–Sharing Innovation Center)
熊博安 嵌入式系統實驗室 國立中正大學資訊工程學系
第七部份 軟工的工具 2019/5/10.
教育概論 教育原理與制度試題解題與分享 第五組
黃影雯副教授講授 E_Mail Address:
合勤科技創新之星工作營 2012 Innovation Talent Contest 專案計畫
資料擷取與監控應用實務.
貳.企業願景、使命與目標(1/3) 願景 利害關係人 內部利害關係人 外部利害關係人 高階領導者必須創立一種以顧客為焦點的、清晰可見的價值
程式語言與邏輯:主題示範 報告人:國立台灣師大附中 李啟龍 老師 學年度資訊科技概論研習.
決策支援系統 實例簡介.
超我服務 Service Above Self
第一章 電子商務簡介 第一篇 電子商務概論篇.
單元三:敘述統計 內容: * 統計量的計算 * 直方圖的繪製.
Chapter 4 Multi-Threads (多執行緒).
營運模式.
台灣全球運籌發展協會 亞洲供應鏈助理管理師證照課程.
立昕企管顧問有限公司 網址: ISO 9001: 2015 改版重點 立昕企管顧問有限公司 網址:
Presentation transcript:

軟體生命週期管理與實作  主講者 : 蘇中和  經歷 : 鼎升科技軟體工程處技術顧問兼專案 經理  樹德科大資管系兼任講師  專業證照 : SCJP,SCWCD,MCSD.NET,MCDBA,Oracle 美國 PMP 專案管理師證照

軟體生命週期 軟體工程

2.1 軟體生命週期模型  軟體工程師或其小組必須混合包含過程、 方法,及工具層次的開發策略。 軟體發展生命週期模型 (Software Development Life Cycle Model , SDLC) 軟體開發程序 (Software Develop Procedure) 稱為軟體工程規範 (software engineering paradigm) 。

軟體發展生命週期模型  軟體發展生命週期模型 描述或定義軟體開發一系列的步驟或階段 目的是提供開發者一個系統性的流程,以成功 地開發使用者所需要的軟體。

系統開發模型之演進

物件導向軟體工程概念模型圖

2.2 軟體生命週期模型種類  瀑布模型  漸增模型  快速雛形模型  螺旋模型

2.2.1 瀑布模型  瀑布模型 (Waterfall Model , Royce(1970)) 有 時稱為古典生命週期 (classic life cycle) 或線 性序列模型。  至少劃分 3 階段 ( 分析、設計、實施 ) 通常 劃分 5~7 階段不等

瀑布模型

 需求分析階段 (Requirements analysis phase) 需求搜集的過程是以軟體 為特別的焦點。要了解所要建立程式的特性。  規格階段 (Specification Phase): 一但客戶同意在需求階段的了解後,規 格小組 (Specification team) 將畫出規格文件 (Specification document) 。  設計階段 (Design Phase) 設計過程將需求轉變為軟體的表示,以便在 程式碼產生前了解其品質。  建置階段 (Implementation Phase) 設計必須被轉變為機器可讀取的形式。 這項工作即進行程式碼產生的步驟。  測試階段 (Testing Phase) 一旦程式碼產生後,即開始進行程式測試。。  維護階段 ( Maintenances Phase) 軟體在交給客戶後,毫無疑問的一定 會有改變的需求。

使用瀑布模型會碰到以下的問題 1. 很難依照模型的序列流程 2. 需求很難明確的表示 3. 客戶必須要有耐心

2.2.2 漸增模型  強調需求可分成幾個部分 開發週期可重覆 往返進行。

2.2.3 快速雛形模型  開始於需求的搜集。開發者和客戶會面, 定義整個軟體目標,確認需求是否已明確 了解,並描繪更進一步的定義。

雛形模型基本觀念

2.2.4 螺旋模型  將瀑布模型的最終結果導回源頭,成為一 個往復式的圓圈( Cycle ),使整個流程具 備回饋與檢驗機制,這就是螺旋模型 (Spiral model , Boehm(1988)) 。

圖 2-6 螺旋模型

2.3 選用軟體生命週期模型  該採用何種模型並沒有一定,必須取決於 程式語言程序型或物件導向型、時程長短、 成本大小、人力充足與否、組織型態.. 等各 種因素,來選擇適合該軟體專案的過程模 型。

2.4 軟體開發程序  軟體開發程序 (Software Develop Process) 則 是著重在於達成某一特定目標的一系列活 動。

軟體程序  軟體程序是一組的工具、方法、作法,用 以製造軟體產品。

RUP  軟體工程在近代最有名且使用在物件導向 是 Rational 統一流程 (Rational Unified sProcess , 簡稱 RUP)

2.4.1 Rational 統一流程  Rational 統一流程 (Rational Unified Process , 簡稱 RUP 註 : 因為是 Rational 公司強力發展, 現已被 IBM 公司併購。  共有三大特點、四個階段和九個核心流程。

RUP 最重要的它有三大特點  軟體開發是一個疊代 (Iteration, 註 : 有人翻譯 程重覆往返 ) 過程。  軟體開發是由 Use Case 驅動的。  軟體開發是以構架設計( Architectural Design )為中心的。

四個階段  1. 起始階段 (Initial phase): 進行可行性研究,定義 出專案大小及涵蓋範圍,評估專案所需的能力、 時程與經費,以及資訊系統預期達到之效益 · 了 解商業模型及需求。  2. 精細規劃階段 (Elaboration phase): 擬定專案計畫、 系統特性與架構 · 確認商業模型及需求 · 進行系統 分析與設計。  3. 建構階段 (Construction phase): 建構產品並進行 單元測試、整合測試。  4. 移轉階段 (Transition phase): 將產品分批交付給 客戶進行驗收測試,並進行使用者訓練。

九個核心工作流程 (Core Workflows)  1. 商業塑模 (Business Modeling)  2. 需求 (Requirements)  3. 分析和設計 (Analysis & Design)  4. 實作 (Implementation)  5. 測試 (Test)  6. 部署 (Deployment)  7. 配置和變更管理 (Configuration & Change Management) 。  8. 專案管理 (Project Management) 。  9. 環境 (Environment) 。

RUP 優點  ( 1 ) 該程序方法論結合了許多來自眾多的成功方法論, 提供完整的軟體開發流程。  ( 2 ) 結合採用反覆式( Iterative )開發流程失敗, 可降低 開發的風險。  ( 3 ) UML 作為其視覺化軟體分析與設計語言,使軟體 開發人員之間的溝通與資訊的交換無礙。  ( 4 )以 UML 中的使用者案例( Use-Case )作為整個 Rational Unified Process 的核心。  ( 5 )受到工具的支援 : 程序經過良好的支援,且受到好的 工具支援。例如 :Rational Rose 。  ( 6 ) 對於軟體開發各階段中所參與之角色皆定義每一個 角色所應有之責任與活動。

RUP 缺點  學習困難 : 為了無所不包,相對使得該程序變的 非常巨大,不論是學習或管理都很困難。  花費很多時間 : 各專案使用該方法論,會花上許 多的時間。  工具受限 : 支援工具相對受限於 Rational 自己的產 品。 ( 註 :Rational 公司是該幾位物件導向大師所設立的公 司。 )

圖 2-7 統一軟體發展流程

直線式流程對往覆式與漸增式的 流程風險比較

2.5 能力成熟度模式整合 (CMMI)

2.5.1 CMMI 的由來  CMMI(Capacity Mature Model Integration , 能力成熟度模式整合 ) 便是軟體工程具體化 的最佳例子,並非是一種軟體生命週期模 型,而是一個軟體生產標準流程,無關於 開發軟體使用何種軟體生命週期模型。  2000 年底卡內基 - 梅隆大學軟體工程研究所 (SEI) 發表了能力成熟度模式整合 (CMMI)

圖 2-9 CMMI 的歷史沿革示意圖

公司引進 CMMI 後成長實例  l 生產力約有 10% 到 20% 的提昇。  l 產品錯誤率約降低一個數量級。  l 對專案的預估與控制能力約提昇 40% 到 50% 。  l 依據 SEI 的研究資料顯示,成功公司軟體產品的瑕疵, 比不成功的公司少了 1/3 以上,客戶滿意度也因而較高。  l 軟體成熟度每提昇一級,約可降低 5% 到 10% 的開發成 本。  l 洛克希德公司在連續五年改善軟體開發流程後,軟體瑕 疵數降低 90% ,上市時間增快 40% ,開發成本則降低 75% 。

2.5.2 CMMI 的模型和層級  分成五個等級 (Level ) CMMI-Level 1 初始層( Initial ) CMMI-Level 2 重覆層( Repeatable ) CMMI-Level 3 定義層( Defined ) CMMI-Level 4 管理層( Managed ) CMMI-Level 5 最佳層( Optimized )

圖 2-10 CMMI 五個層級

CMMI-Level 1 初始層( Initial )  軟體程序漫無章法,程序未被定義。

CMMI-Level 2 重覆層 Repeatable )  已建立基本的管理程序,對成本、時程、 和職務權責能加以追蹤、查詢。已有作業 程序所須具有的紀律,所以有能力重覆使 用相類似的專案成功的案例與經驗。

CMMI-Level 3 定義層( Defined )  屬於管理和工程的活動都已設計、定義好, 並且文件化,完整地整合成組織內的標準 作業程序。

CMMI-Level 4 管理層( Managed )  組織可收集詳細的軟體程序以及軟體產品 的量測資料。

CMMI-Level 5 最佳層 Optimized )  評估革新性的新技術,做反省與提升,有 規則地依序導入採用,以持續不斷地改進 程序。

2.5.3 CMMI 的關鍵流程領域( Key Process Area , KPA )  每個成熟度層級內部各包含了數目不等的 關鍵流程領域 (Key Process Areas , KPAs)

圖 2-11 軟體成熟度模式結構

關鍵流程領域( Key Process Area , KPA )  每一個關鍵流程領域則認定了一群相關的 活動,以作為完成該關鍵流程領域的目標, 目標中所描述的是關於該關鍵流程領域的 關鍵技巧 (Key Practices , KPs) 的總體,可 由此目來判定組織或專案是否有效地實施 此關鍵流程領域。  第一層是毫無章法的管理,所以沒有任何 KPA ,而第二層到第五層,每一成熟度階 層都由一些 KPA 所組成。

表 2-1 關鍵流程領域

目標 (Goals)  每個 KPA 都設定有一組目標,標示出 KPA 的範圍、界限與企圖。

關鍵技巧( Key Practice , KP )  每一個 KPA 是由幾個 KP 來描述,而 KP 是描 述將 KPA 有效地的實現和制度化所需的重 要活動與基礎建設( infrastructure )。

共同特徵( Common feature )  共同特徵是屬性的表徵,經由它們可以來 判定 KPA 的實施與制度化上是否具有效性、 可否重複使用執行、以及是否可持續下去。

表 2-2 CMMI 中四個特徵

2.5.5 CMMI 鑑定 (CBA)  CMMI 鑑定工作須由 SEI 授權之主導評審員 負責依 SEI 之方法及資料執行,並將執行結 果回報給 SEI 。

2.5.6 CMMI 國內現況  目前是由軟體自由協會成立軟體工業生產 力提升計畫辦公室來輔導企業進行相關認 証,而資策會技術處則取得政府補助,負 責導入相關相關技術,以培養人力。  國內的軟體廠商大部份爭取的是 CMMI 的 Level II 認證,目前國內已有多家取得 CMMI 認證,工研院電通所、碩網資訊、 三商電腦、英特連.. 等。台積電的軟體部門 也要透過印度 Tata consulting 來取得 level 3 認証。

2.6 ISO 9000  ISO9000 本質上是一個品質管理系統標準, 在品質系統建置的過程中,對品質系統架 構面提供了一個良好的指導,可以幫助組 織建立一個完整且能持續改善的品質系統。

2.6.1 ISO  軟體業也能夠採用 ISO 9001 標準, ISO 公佈 了 ISO 的指導方針來因應具有開發 製造,供給維護流程的軟體產業。

2.6.2 ISO 9000 品質系統的建置  流程導向的品質管理系統,是為了更切合 客戶的需要 新的標準在概念及結構上,被 “ 流程方式 ” 所取 代,新的流程化架構和計劃 - 實施 - 檢查 - 執行 ( Plan-Do-Check-Action )改善循環程序一致。

圖 2-12 品質管理系統的架構圖

2.6.3 ISO-9000 與軟體工程  軟體工程重點項目 :  1. 合約與需求管理  2. 軟體開發流程與標準  3. 建構管理之實施  4. 軟體審查與驗證  5. 軟體測試  6. 專案管理  7. 系統維護管理  8. 量測與統計

2.6.4 ISO 9000 與 CMMI  ISO 9000 是以架構整體品質系統為優先,再透過 持續改善的過程,加強每一流程到理想的程序。  而 CMMI 模式則對每一關鍵流程的導入有著較嚴 格的要求,但以分批逐步導入的方式架構整個品 質系統。  雖然導入的邏輯不同,但如果能確實的建置、實 施、與持續改善品質系統,兩者都可以為軟體業 建置出一個能有效提昇企業競爭力與品質的品質 系統。

2.6.5 ISO 9000 國內現況  國內目前也已經有四十家以上之資訊軟體 公司取得 ISO-9000 認證。  國內軟體公司卻常常迫於績效或市場需要, 而期望在六個月以內通過 ISO-9000 認證, 通過後亦不積極於進行持續改善。

2.7 CASE Tool  CASE Tool (Computer-Aided Software Engineering Tool ,電腦輔助軟體工程工具 ) 是一種電腦工具,是用以將資訊系統的開 發與維護的流程自動化的利器。  Rational 的 Rose 作為業界普遍公認的標準, Sybase PowerDesigner 也符合此一標準。

2.8 案例研討 - 訂房系統

採用 RUP 的精神  可先將飯店管理系統,如圖 2-13 是其功能架構圖, 先拆成房間管理系統、訂房處理系統、會員管理 系統、財務報表系統和系統設定系統等。再將訂 房處理系統再拆成若干子系統,例如 : 訂房子系 統、取消訂房子系統、 Check-in 系統、 Check-out 子系統等。  每次重覆循環只發展一個重要的子系統,依照開 發系統流程從需求、分析、設計、實作和測試等, 完成每一個子系統並且釋出一個可執行的版本

圖 2-14 訂房系統開發順序圖

總結  必須依據該軟體專案的各種特性,例如程 式語言程序型或物件導向型、時程長短、 成本大小、人力充足與否、組織型態。等 各種因素,來選擇適合該軟體專案的生命 週期模型。