主要ISDM簡介
? 結(jié)構(gòu)化系統(tǒng)開發(fā)方法(structured system development methodology , SSDM)
? 原型化方法(Prototyping methodology)
? 敏捷方法(Agile Methodology) , 如XP 伶跷、SCRUM
? Structured Systems Analysis and Design Methodology
? Soft Systems Methodology (SSM)
? User-centered Development Methodology
? The Effective Technical and Human Implementation of Computer-based Systems
methodology (ETHICS)
? Structured Analysis, Design and Implementation of Information Systems (STRADIS
Methodology)
? 信息工程(Information Engineering , IE)
? Jackson Systems Development (JSD)
? Information Systems Work and Analysis of Changes (ISAC)
? Multiview Methodology
SSDM
SSDM 的多種叫法:
? 結(jié)構(gòu)化系統(tǒng)開發(fā)方法(structured system development methodology , SSDM)
? 結(jié)構(gòu)化系統(tǒng)生命周期法
SSDM 由多種方法結(jié)合而來(大雜燴巍膘,在實際應(yīng)用中可根據(jù)項目需要挑選適當(dāng)?shù)慕Y(jié)構(gòu)化開發(fā)技術(shù)):
? 自頂向下結(jié)構(gòu)化方法劣领,主要包括E.Yourdon 提出的結(jié)構(gòu)化開發(fā)方法(結(jié)構(gòu)化分析結(jié)構(gòu)化設(shè)計窗看,簡稱SASD, 也叫面向功能的軟件開發(fā)方法或面向數(shù)據(jù)流的軟件開發(fā)方法)薛窥。它首先用結(jié)構(gòu)化分析(SA) 對軟件進(jìn)行需求分析,然后用結(jié)構(gòu)化設(shè)計(SD) 方法進(jìn)行總體設(shè)計悔耘,最后是結(jié)構(gòu)化編程(SP) 暇矫。它給出了兩類典型的軟件結(jié)構(gòu)(變換型和事務(wù)型)使軟件開發(fā)的成功率大大提高。
? 工程化的系統(tǒng)開發(fā)方法
? 結(jié)合生命周期方法颂鸿,也就是SDLC
? IBM公司提出的企業(yè)系統(tǒng)規(guī)劃法(Business System Planning, BSP)
? James Martin提出的戰(zhàn)略數(shù)據(jù)規(guī)劃法
? Harlan D. Mills提出的系統(tǒng)開發(fā)黑箱(Black Box)方法-
基本思想:
用系統(tǒng)工程的思想和工程化的方法促绵,按用戶至上的原則,結(jié)構(gòu)化嘴纺、模塊化败晴、自頂向下地對信息系統(tǒng)進(jìn)行分析與設(shè)計,最后自底向上地逐步實施的建立計算機(jī)信息系統(tǒng)的—種開發(fā)方法學(xué)栽渴。也叫結(jié)構(gòu)化系統(tǒng)生命周期法尖坤。- 系統(tǒng)規(guī)劃階段:
該階段的范圍是整個業(yè)務(wù)系統(tǒng),目的是從整個業(yè)務(wù)的角度出發(fā)確定系統(tǒng)的優(yōu)先級闲擦。 - 系統(tǒng)分析階段
主要活動包括可行性分析和需求分析慢味。目的是分析業(yè)務(wù)上存在的問題,定義業(yè)務(wù)需求墅冷。
基本思想. 自頂向下纯路,逐步求精
基本手段: 分解和抑象
主要結(jié)果: 系統(tǒng)說明書
(1、一套分層的數(shù)據(jù)流圖寞忿;2驰唬、—本數(shù)據(jù)詞典;3腔彰、—組加工(處理)說明) - 系統(tǒng)設(shè)計階段
系統(tǒng)設(shè)計的目的是設(shè)計一個以計算機(jī)為基礎(chǔ)的技術(shù)解決方案以滿足用戶的業(yè)務(wù)需求叫编。
? 總體設(shè)計的主要任務(wù)是構(gòu)造系統(tǒng)的總體結(jié)構(gòu)和系統(tǒng)的模塊結(jié)構(gòu)
? 詳細(xì)設(shè)計包括代碼設(shè)計、輸出設(shè)計萍桌、輸入設(shè)計宵溅、數(shù)據(jù)存儲設(shè)計、處理過程設(shè)計上炎、用戶界面設(shè)計恃逻。 - 系統(tǒng)實施階段
系統(tǒng)實施的目的是組裝信息系統(tǒng)技術(shù)部件,并最終使信息系統(tǒng)投入運(yùn)行藕施。包括的活動有編程寇损、測試、用戶培訓(xùn)裳食、新舊系統(tǒng)之間的切換等矛市。 - 系統(tǒng)運(yùn)行與維護(hù)階段
目的是對系統(tǒng)進(jìn)行維護(hù),使之能正常地運(yùn)作诲祸。
- 系統(tǒng)規(guī)劃階段:
- SSDM 的優(yōu)點
? 嚴(yán)格區(qū)分開發(fā)階段
? 從抽象到具體浊吏,逐步求精
? 邏輯設(shè)計與物理設(shè)計分開
? 質(zhì)量保證措施完備 - SSDM的缺點
? 它是—種預(yù)先定義需求的方法
? 開發(fā)過程繁瑣而昨、復(fù)雜。
? 系統(tǒng)開發(fā)周期長找田。
? 文檔工作量太大 - SSDM適用范圍
該方法適用于—些組織相對穩(wěn)定歌憨、業(yè)務(wù)處理過程規(guī)范、需求明確且在—定時期內(nèi)不會發(fā)生大的變化的大型復(fù)雜系統(tǒng)的開發(fā)墩衙。對規(guī)模較大潮饱、功能比較復(fù)雜的系統(tǒng)最好采用結(jié)構(gòu)化方法姥饰,可以實現(xiàn)對整個系統(tǒng)的合理規(guī)劃和過程控制
原型化方法(Prototyping Method)
運(yùn)用SSDM的前提條件是要求用戶在項目開始初期就非常明確地陳述其需求,需求陳述出現(xiàn)錯誤捣郊,對信息系統(tǒng)開發(fā)的影響尤為嚴(yán)重瞄摊,因此逮走,這種方法不允許失敗或悲。事實上這種要求又難以做到风喇。人們設(shè)想有—種方法,能夠迅速發(fā)現(xiàn)需求錯誤樊破。
? 當(dāng)圖形用戶界面(Graphic User Interface, GUI) 出現(xiàn)后厅篓,自80年代中期以來,原型法逐步被接受捶码,并成為—種流行的信息系統(tǒng)開發(fā)方法。
? 在管理信息系統(tǒng)開發(fā)中或链,用“原型”來形象地表示系統(tǒng)的—個早期可運(yùn)行版本惫恼,它能反映新系統(tǒng)的部分重要功能和特征。
? 信息系統(tǒng)原型澳盐, 就是一個可以實際運(yùn)行祈纯、可以反復(fù)修改、可以不斷完善的信息系統(tǒng)叼耙⊥罂“原型方法”則是利用原型來輔助開發(fā)系統(tǒng)的一種開發(fā)方法。
- 原型法基本思想
原型化方法是在系統(tǒng)開發(fā)初期筛婉,開發(fā)者基于和用戶的交談簇爆,得到對于系統(tǒng)的基本認(rèn)識后,憑借系統(tǒng)開發(fā)人員對用戶需求的了解和系統(tǒng)主要功能的要求爽撒,在強(qiáng)有力的軟件環(huán)境支持下入蛆,迅速構(gòu)筑—個能夠反映系統(tǒng)特色的初始原型。
然后在此基礎(chǔ)上硕勿,和用戶進(jìn)行進(jìn)—步的討論哨毁,得出他們對于系統(tǒng)的真正的需求,直到開發(fā)者確信已經(jīng)完全掌握了用戶的需求時源武,才進(jìn)行正式的開發(fā)扼褪。 - 原型法開發(fā)流程
- 確定用戶的基本要求
本階段開發(fā)者需向用戶詢問若干基本的想幻、關(guān)鍵性的問題,從而得到用戶對于信息系統(tǒng)的基本要求话浇。例如
? 確定基本的信息單位脏毯, 構(gòu)筑起基本的系統(tǒng)模型。
? 明確系統(tǒng)的基本用戶界面形式I 確定所需的輸入數(shù)據(jù)來自何處
? 決定該系統(tǒng)的功能范圍凳枝,哪些工作應(yīng)由系統(tǒng)完成抄沮,哪些由工作人員負(fù)擔(dān)。
? 估計用戶的期望岖瑰,估算出開發(fā)該原型系統(tǒng)的費用叛买。 - 開發(fā)初步的原型系統(tǒng)
在此階段建立原型系統(tǒng),其目的主要是為了描述開發(fā)者所理解的用戶的基本需求蹋订, 所以對系統(tǒng)的工作效率率挣、界面完美程度并不做更多的追求。 - 評價修改原型系統(tǒng)
請用戶使用原型系統(tǒng)露戒,讓他們實際體驗使用系統(tǒng)的感覺椒功,并寫下所有不滿意之處。這一階段的目的主要在于讓用戶發(fā)現(xiàn)原型系統(tǒng)所存在的問題智什。在這—階段要不斷修改原型系統(tǒng)动漾, 直到下列兩種情況之—出現(xiàn)為止:
? 用戶可能認(rèn)定按原型開發(fā)的系統(tǒng)不是他們所希望的系統(tǒng)或開發(fā)者認(rèn)為用戶提出的要求無法按目前條件實現(xiàn),從而終止開發(fā)工作荠锭。
? 除了規(guī)模和效率等可以改善的問題以外旱眯,用戶對原型系統(tǒng)已經(jīng)滿意。 - 正式開發(fā)
將用戶滿意的原型系統(tǒng)作為進(jìn)—步開發(fā)的基礎(chǔ)证九,設(shè)計恰當(dāng)?shù)南到y(tǒng)集成設(shè)備等删豺。
- 確定用戶的基本要求
- 原型法優(yōu)點
對系統(tǒng)需求的認(rèn)識取得突破
改進(jìn)了用戶和系統(tǒng)開發(fā)人員的交流
提高了用戶的滿意程度
降低了系統(tǒng)開發(fā)風(fēng)險 - 原型法缺點
開發(fā)工具要求高
解決復(fù)雜系統(tǒng)和大型系統(tǒng)很困難
對用戶的管理水平要求高
不適合大量運(yùn)算及邏輯性強(qiáng)的模塊 - 原型法適用范圍
原型法的適用范圍是比較有限的,對于小型愧怜、簡單呀页、處理過程比較明確、沒有大量運(yùn)算和邏輯處理過程的系統(tǒng)拥坛。特別適合于對系統(tǒng)功能要求不高但用戶界面豐富的系統(tǒng)蓬蝶。
? 原型化方法本身的特點決定了將其應(yīng)用于開發(fā)—個大的信息系統(tǒng)是不可能的,它的特點和長處是對用戶要求的多次模擬和修改猜惋,因而除了可以被單獨應(yīng)用在小型系統(tǒng)外疾党,還可以與結(jié)構(gòu)化方法結(jié)合在—起使用,作為前期調(diào)查用戶需求的工具惨奕,是對結(jié)構(gòu)化開發(fā)方法的發(fā)展和補(bǔ)充雪位。
敏捷方法Agile
? 大部分客戶并不能在項目開始時就清晰而完整的描述其需求,很多需求會在開發(fā)過程中提出或調(diào)整梨撞;因此雹洗, IS開發(fā)流程需要靈活性香罐,以便用戶能夠頻繁地分析和調(diào)整其需求,又不會危及整個流程的有效性时肿,敏捷方法旨在解決此點庇茫。
? 敏捷方法十分重視設(shè)計活動。強(qiáng)調(diào)開發(fā)過程中不斷變化的需求和調(diào)整螃成,強(qiáng)調(diào)靈活的開發(fā)方法旦签。可以認(rèn)為寸宏,敏捷方法日益重要與當(dāng)下技術(shù)環(huán)境的不穩(wěn)定性有關(guān)(過快的技術(shù)革新)宁炫。
? 敏捷方法強(qiáng)調(diào)適應(yīng)性而不是可預(yù)測行,強(qiáng)調(diào)更快的開發(fā)速度和更好的集成客戶需求氮凝。其主要優(yōu)點在于能輕松適應(yīng)各種類型項目可能存在的各種規(guī)格羔巢。
常用的敏捷方法主要有XP (極限編程)和Scrum , 以及各種根據(jù)敏捷方法原理衍生的定制方法。根據(jù)Version One的調(diào)查罩阵, 2016年Scrum是最常用的敏捷方法占58%, 其次是scrum/xp混合法占10%竿秆。
- 極限編程(XP) , —種迭代的軟件開發(fā)方法,需要最大的客戶交互稿壁。開發(fā)周期分為短循環(huán)幽钢。每個循環(huán)從收集用戶需求開始,然后是迭代規(guī)劃傅是,建立循環(huán)數(shù)和相應(yīng)的時間范圍搅吁。然后開發(fā)產(chǎn)品,通常采用結(jié)對編程(Pair programming) 落午。寫好的系統(tǒng)同時進(jìn)行技術(shù)及用戶接受度測試,測試結(jié)果和用戶反饋納入下—版開發(fā)肚豺,從而開始下—次循環(huán)溃斋。循環(huán),某個版本被大多數(shù)用戶吸申,管理者和開發(fā)人員接受梗劫。
- Scrum是—種類似的方法,特別設(shè)計用于最優(yōu)化開發(fā)時間和客戶滿意度截碴。開發(fā)過程的每次迭代稱為'sprint" , 并確定每次sprint的最長持續(xù)時間為30天梳侨。在收集用戶要求之后,通過名為'product backlog"的列表確定優(yōu)先級日丹,然后仔細(xì)規(guī)劃所需的sprint以及每個sprint的重點走哺。這就是"sprint backlog"。在每個沖刺的實際開發(fā)中哲虾,每天都有例會討論開發(fā)進(jìn)度丙躏、交流反饋和經(jīng)驗择示。每次sprint都會生成—個版本的系統(tǒng),并在隨后的下—個sprint中改進(jìn)/完成晒旅。
結(jié)構(gòu)化系統(tǒng)分析和設(shè)計方法( SSADM )
結(jié)構(gòu)化系統(tǒng)分析和設(shè)計方法(Structured Systems Analysis and Design Methodology , SSADM ) 被設(shè)計用于大型信息系統(tǒng)栅盲,主要由政府部門使用。最初由英國內(nèi)政部的中央計算機(jī)與電訊局(British Central Computer and Telecommunications Agency) 于八十年代后期作為系統(tǒng)分析與設(shè)計框架開發(fā)并采用废恋。
- 盡管設(shè)計用于大型信息系統(tǒng)谈秫, SSADM也可用于中小規(guī)模的項目,使其成為敏捷方法的替代方法鱼鼓。該方法有兩個主要特征:
- 一是將系統(tǒng)分成較小部分(以便確立開發(fā)階段的順序拟烫,以及不同階段間的交互);
- 二是建模方法和圖的使用(以便向用戶和開發(fā)人員呈現(xiàn)邏輯更清晰蚓哩、結(jié)構(gòu)更良好的系統(tǒng)定義)构灸。通過這種結(jié)構(gòu)化的可分析系統(tǒng),系統(tǒng)可分解為小單元岸梨,從而能定義構(gòu)成大型信息系統(tǒng)的各單元的定義喜颁、次序及相互之間的連接。
- 優(yōu)點:
1曹阔、邏輯設(shè)計和物理設(shè)計分離
2半开、定義良好的技術(shù)規(guī)范和文檔
3、用戶參與度高 - 缺點:
1赃份、SSADM規(guī)模偏大
2寂拆、培訓(xùn)用戶和開發(fā)人員的成本和時間較高
3、如果采用完整方法抓韩, 學(xué)習(xí)曲線很陡
軟系統(tǒng)方法論(SSM)
軟系統(tǒng)方法論(soft systems methodology , SSM) 20世紀(jì)60年代后期由蘭卡斯特大學(xué)的Checkland提出纠永。基本點是“硬和“軟“思維的區(qū)別谒拴〕⒔“硬思維”意味著將世界看為可以分析或構(gòu)建的有組織系統(tǒng)∮⑸希“軟思維”意味著將世界視為—組無序炭序,混亂和復(fù)雜的現(xiàn)實,但是可由觀察者組織為系統(tǒng)以便分析苍日。因此惭聂, SSM 的前提假設(shè)就是信息系統(tǒng)不是真實的實體,而是人類思維的—次構(gòu)建相恃。
一般來說辜纲,軟系統(tǒng)方法有七個明確的階段。階段1 和2對應(yīng)于情境和/或問題的定義。在第3階段侨歉,離開現(xiàn)實世界屋摇,進(jìn)入系統(tǒng)環(huán)境,在第4階段開發(fā)概念模型幽邓。然后回到第5 炮温、6、7階段的現(xiàn)實世界牵舵,以便將模型與現(xiàn)實進(jìn)行比較柒啤,為可能出現(xiàn)的問題創(chuàng)造解決方案,最后實現(xiàn)模型
ISAC
Information Systems Work and Analysis of Changes , ISAC , 20世紀(jì)70年代由瑞典斯德哥爾摩Institute for Development of Activities in Organizations研發(fā)畸颅。
它是—種基于客戶需求的IS開發(fā)方法担巩,從對組織現(xiàn)狀和具體問題的深入分析開始,鼓勵用戶和所有其他利益相關(guān)者在開發(fā)人員協(xié)調(diào)下參與開發(fā)過程没炒。
? ISAC主要側(cè)重于問題分析和活動建模涛癌,不適用于復(fù)雜系統(tǒng)。
? ISAC鼓勵用戶通過會議方式參與開發(fā)送火,這意味著它偏向敏捷開發(fā)方式拳话,因此更適合具有動態(tài)需求的以客戶為中心的項目。
ISDM分類
可以分為如下4類:
- Process-oriented methodologies that are appropriate to well-structured problem situations and focus on the structure of the system design, presenting structuredguidelines;
- Methodologies used on unstructured problems, where the purpose is uncertain;
- Methodologies that promote elevated user interaction with the system;
- Methodologies that combine features from other models.