資訊軟體品質改善簡介 - 長榮大學資訊管理

Download Report

Transcript 資訊軟體品質改善簡介 - 長榮大學資訊管理

資訊軟體品質改善簡介
大綱





軟體品質(Software Quality)與挑戰
TQM與品質改善循環
軟體品質度量指標
軟體發展模式(Software Development Model)
軟體流程改善(Software Process
Improvement)
軟體品質(Software Quality)與挑戰
 軟體:
– Computer Programs
– Procedures
– Documentation
– Data necessary for operating the software
system.
軟體常發生什麼問題?




丹佛機場
台鐵購票
高鐵購票
ETC
軟體發展之特殊性
 高複雜度High Complexity
– Multitude of operational possibilities
 低能見度Invisibility of product
– Invisible defects
 偵測問題之難度Low opportunities to detect
defects, in
– Development
– Production planning
– Manufacturing
Causes of Software errors, faults,
and Failures






Faulty Requirements definition
Client-developer communication failures
Deliberate Deviations from software requirements
Logical design errors
Coding errors
Non-compliance with documentation and coding
instructions
 Shortcomings of testing process
 Procedure errors
 Documentation errors
What is Quality?
 Quality definition:
– meeting the users’ needs (needs, not wants)
– Compliance to requirements
 Software Quality definition:
– The Degree to which a system, component, or
process meets specified requirements.
 However, true functional needs are often
unknowable
a hierarchy of needs in
software Quality
– Do the required tasks.
– Meet performance requirements.
– Be usable and convenient.
– Be economical and timely.
– Be dependable and reliable.
McCall Software Quality Model軟體
品質模式
 Operation操作方面
 Product Revision軟體產品維護方面
 Product Transition 轉換上線方面
McCall Model-Operation
 Correctness
– Accuracy, Completeness, Up-to-dateness, Available,
Consistence
 Reliabilities
– System reliability, application reliability, Computational
failure recovery, Hardware recovery
 Efficiency
– Of processing, storage, communication, power usage
 Integrity
– Access control, Access audit
 Usability
– Operability, training
McCall Model-Production Revision
 Maintainability
– Simplicity, modularity, Self-descriptiveness,
Coding and documentation guidelines
compliance, document accessibility
 Flexibility
– Simplicity, Generality, Modularity, Selfdescriptiveness
 Testability
– User testability, Failure maintenance testability,
Traceability
McCall Model-Production Transition
 Portability
– Software system independence, Modularity, Selfdescriptive
 Reusability
– Modularity, Document accessibility, Software system
independence, Application Independence, Selfdescriptive, Generality, Simplicity,
 Interoperability
– Commonality, System compatibility, Software system
independence, Modularity
Total Quality Management (TQM)
 PDCA循環
– Plan
檢討改進
– Do
ACTION
– Check
– Action
績效評估
CHECK
工作計畫
PLAN
工作執行
DO
軟體品質的改善
 軟體品質可概分為產品品質及流程(程序)
品質兩大類,後者會影響前者,但前者的失
敗不見然是後者的問題。
 品質看得見,流程是關鍵
品質成本及管理成效
資訊系統開發Information system development
運用資訊系統開發方法、技術及工具,來建構資
訊系統,協助人們資訊處理的需求的過程。
投入
 資訊科技
 組織結構
 企業功能
需求
 企業策略
 人力資源
 資金
 外在環境
 …….
產出
處理
資訊系統開發程序
理論 工具 技能
原則 方法 技術
16
軟體
(原始碼、
系統文
件、….)
經驗
技術能力
水準
新技術
新方法
新知識
…..
開發的原則、方法與技術、方法論與工具的關係
– 原則 (Principles) :「一切軟體工
程的基礎,主要是來自於軟體開發
人員的實際經驗與軟體工程專家進
行有系統觀察與研究的結果。 」
– 方法 (Methods)是指:「一組原則
與程序能夠用來描述如何產生與執
行一個模式者。
– 技術(Techniques):完成特殊工作
所需的方法
– 方法論(methodologies):企業組織
用來分析、設計、實作與維護資訊
系統所遵循的標準步驟。
– 工具(Tools):電腦軟體及其他可以
協助完成上述程序之工具
17
工具
(Tools)
方法論
(Methodologies)
方法與技術
(Method and
Techniques)
原則
(Principles)
資訊系統開發模式之演進
18
系統開發生命週期(system
development
life
cycle,
SDLC)
為系統發展最傳統的方法論。分以下流程或





階段:
規劃(planning):對企業的整體資訊系統
需求作確認、分析、排定優先順序以及
安排。
分析(analysis):對系統的需求進行瞭解
與建構。
設計(design):將建議的解決方案轉換成
邏輯設計,之後再轉換成實體系統規格。
實作(implementation):包含撰寫程式、
測試、安裝以及支援企業組織內的資訊
系統。
維護(maintenance):以系統化方式維修
及改善資訊系統。
19
瀑布式SDLC的問題
 系統需求訂定後就被凍結無
法修改。
 有限的使用者參與(只有在
需求階段)。
 過度強調SDLC階段上里程點
要求的完成日期,因此傷害
開發過程的完善性。
 開發時間長。
 開發成本高。
 很難完整的掌握系統需求。
20
 文件更新負擔重。
系統開發之演進模型(Evolutional
Model)
圖 1-3 演進模型
21
改善系統開發之不同方法






雛形法(Prototyping)
協合應用系統設計(Joint Application Development, JAD)
快速應用系統開發 (Rapid Application Development, RAD)
快捷法(Agile Methodology)
極限程式開發(eXtreme Programming)
物件導向分析與設計(Object-oriented Analysis and
Design, OOAD)
 Computer Aided Software Engineering (CASE)電腦輔助
軟體工程工具
22
雛形法(Prototyping)
 反覆式開發流程 。
 需求可快速轉換至可
運作系統。
 系統持續修改。
 使用者和分析師間緊
密合作。
23
協合應用系統開發 (Joint
Application Development, JAD)
 又稱Joint Requirements Planning (JRP)合作
需求規劃
 需使用者、系統開發人員和管理人員參與的
結構化流程。
 多天期的密集會議。
 目的: 確認與檢討系統需求。
24
快速應用系統開發 (Rapid
Application Development, RAD)
 由James Martin所提
出,主要的概念是要
以更快的速度與更低
的成本來發展出高品
質的軟體。
 需要使用者的廣泛參
與。
 雛形法、整合性
CASE(電腦輔助系統工
程)工具和程式產生器。
25
快捷法(Agile methodology)
 將軟體開發視為易變、無法預測和動態的。
 三個關鍵原則
– 調適性而非預測性的方法。
– 注重人員而非角色。
– 注重自我調適過程。
26
極限程式開發(eXtreme
Programming)






由Beck(2000)所整合提出
特性:週期短、漸進式的開發循環。
自動測試。
兩人程式開發小組。
程式開發和測試共同進行。
優點:
– 程式開發人員間溝通較佳。
– 較高的生產力。
– 較高品質的程式。 27
系統分析與設計技術
為一系列有組織之處理程序,將需求轉換成有
組織的使用者介面、問題處理與知識等元件。
常用的有兩套方法及技術:
 結構化 (Structure Analysis and Design)
– 主要以結構化塑模工具,將流程與資料分開處理,
進行資訊系統之描述與驗證。
 物件導向 (Object Oriented Analysis and
Design)
– 主要以統一塑模語言(Unified Modeling Language,
UML),將流程與資料合併處理,並封裝成物件,
進行資訊系統之描述與驗證。
28
物件導向分析與設計(Objectoriented Analysis and Design,
OOAD)
 以物件(object)為基礎,而非資料或流程。
 物件:一個包含封裝屬性與操作屬性之方法
的結構。
 物件類別(Class):一個將包含相同(或相似)
屬性及行為(方法)之物件進行邏輯上的群
組分類。
 繼承(Inheritance):當實體型態或物件類別間
有層級性的關係,且每一個實體型態或物件
類別擁有祖先(也就是階層中較高的層級)
的屬性與方法。
29
合理統一流程(Rational Unified
Process, RUP)
 一OOAD之方法論。
 分四階段:
– 起始 (Inception)
– 詳述 (Elaboation)
– 建構 (Construction)
– 交付 (Transition)
 每階段可細分至數個
反覆過程。
30
軟體相關之流程標準