第3章-信息系統(tǒng)建設概論_第1頁
已閱讀1頁,還剩92頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第3章 信息系統(tǒng)建設概論,,本章主要內容,3.1 信息系統(tǒng)建設是復雜的社會過程3.2 信息系統(tǒng)建設的一般方法3.3 信息系統(tǒng)的生命周期3.4 基于生命周期的開發(fā)方法(信息系統(tǒng)開發(fā)過程)3.5 基于開發(fā)技術的開發(fā)方法(信息系統(tǒng)開發(fā)技術)3.6 信息系統(tǒng)開發(fā)的組織管理3.7 信息系統(tǒng)開發(fā)工具(CASE工具),3.1 信息系統(tǒng)建設是復雜的社會過程,1. 信息系統(tǒng)的復雜性體現(xiàn)在:技術手段復雜內容復雜,目標多樣投資密度大,效

2、益難以計算環(huán)境復雜多變,技術的復雜性,計算機硬、軟件技術數(shù)據通訊與網絡技術各種信息采集與存貯各種控制與決策方法建模與仿真技術人工智能技術技術方案難以檢驗證明(樣品?實物模型?),內容的復雜性,一個組織的管理與業(yè)務信息量大、面廣,形式多樣、來源繁雜,信息內容和處理要求又涉及到廣泛的學科和事業(yè)領域。一個組織的信息系統(tǒng)必是一個規(guī)模龐大,結構復雜,具備多種功能、實現(xiàn)多個目標的大系統(tǒng)一個組織內各類機構和人員的信息需求不盡相同,

3、有些需求可能相互沖突,需求的不確定性和可變性非常大。組織和外部環(huán)境之間的數(shù)據交換難以控制。,投資的密集性,信息系統(tǒng)的建設,需要巨額投資,是一種資金密集型的建設項目智力密集型或者知識密集型需用大量人工,是勞動密集型項目效益難以計算,信息系統(tǒng)建設的統(tǒng)計數(shù)據,據國外1995年對365家公司的調查:31%的信息系統(tǒng)項目在完成之前被取消53%的項目沒有達到預定功能在3682個項目中只有12%的項目按時和按預算完成據某顧問公司200

4、4年報告(對4萬個信息系統(tǒng)項目的調查)ERP失敗率達到70%成功項目只能達到34%有爭議的項目達到51%失敗項目達到15%成功的含義:在規(guī)定的時間內,以規(guī)定的預算完成規(guī)定的目標。,環(huán)境的復雜性,涉及到組織內部各級機構、管理人員涉及組織面臨的外部環(huán)境及發(fā)展趨勢要考慮管理體制、管理思想、管理方法和管理手段的相互匹配、相互促進考慮人的習慣、心理狀態(tài)及現(xiàn)行的制度、慣例和社會、政治諸因素,信息系統(tǒng)開發(fā)是一個社會過程,問題描述和方

5、案驗證不同于一般技術工程技術工程問題明確,可以模擬,或制作實物模型、樣品進行驗證,信息系統(tǒng)的問題確定性差,難以提前驗證解決方案。人的影響信息系統(tǒng)是人機系統(tǒng),有來自于人的障礙。如了解、溝通、實施困難。社會環(huán)境的影響如政策、競爭、文化觀念等對信息系統(tǒng)影響力很大,不同于純技術工程。,3.2 信息系統(tǒng)建設的一般方法,3.2.1 早期方法的不足早期,人們對信息系統(tǒng)的復雜性缺乏足夠的認識,認為信息系統(tǒng)無非是“大程序”,缺乏科學的開發(fā)方

6、法:目標含糊通信誤解步驟混亂缺乏管理控制,3.2.2 系統(tǒng)方法的應用,系統(tǒng)科學方法為人們提供了新的思維模式,是研究復雜系統(tǒng)的有效工具。錢學森曾指出“系統(tǒng)工程是組織管理系統(tǒng)的規(guī)劃、研究、制造、試驗和使用的科學方法,使一種對所有系統(tǒng)都具有普遍意義的方法”。系統(tǒng)方法在信息系統(tǒng)建設中的應用:還原論與整體論相結合微觀分析與宏觀綜合相結合定性判斷與定量計算相結合嚴格生命周期階段與反復迭代相結合,3.2.3 系統(tǒng)建模/模型化,分析

7、研究復雜系統(tǒng)問題,建模是一種基本手段。建模(modeling)就是為描述系統(tǒng)的構成和行為,對現(xiàn)實系統(tǒng)的各種因素進行適當篩選,用一定方式(數(shù)學公式、符號、圖形、圖像等)表示現(xiàn)實系統(tǒng)的過程。建模也稱模型化。,1. 系統(tǒng)模型的概念,系統(tǒng)模型是指以某種確定的形式(如文字、符號、圖表、實物、數(shù)學公式等),對系統(tǒng)某一方面本質屬性的描述。一個適用的系統(tǒng)模型應該具有如下3個特征:它是現(xiàn)實系統(tǒng)的抽象或模仿; 它是由反映系統(tǒng)本質或特征的主要因素(

8、要素)構成的; 它集中體現(xiàn)了這些主要因素之間的關系。根據抽象程度:概念模型、邏輯模型和物理模型。根據對時間的依賴:靜態(tài)模型和動態(tài)模型。全面徹底地描述一個系統(tǒng),通常需要使用多個模型。,2. 管理系統(tǒng)模型,管理模型描述組織的狀況,包括:組織的靜態(tài)特征,如組織結構圖、實體關系圖動態(tài)特征,如任務分解圖、狀態(tài)轉換圖、甘特圖、PERT圖業(yè)務流程,如流程圖業(yè)務規(guī)則,如決策樹、決策表,,,,,,,管理系統(tǒng),靜態(tài)特征(組織機構、對象、角色

9、)動態(tài)特征(行為/事件/行動/狀態(tài))業(yè)務流程業(yè)務規(guī)則…….,模型,3. 信息系統(tǒng)模型,信息系統(tǒng)模型描述計算機信息系統(tǒng)的狀況。每種模型都有其標準符號、慣例、語法規(guī)則和用途,當這一組符號和規(guī)則形成了一套完整嚴謹?shù)谋硎菊Z言,就形成建模語言。因為信息系統(tǒng)是為管理服務的,因此有些模型在管理系統(tǒng)和信息系統(tǒng)中通用,如流程圖、狀態(tài)圖 、決策樹/決策表等。,信息系統(tǒng)模型的作用,建立信息系統(tǒng)模型有以下主要作用:對復雜問題進行簡化描述,幫助有關

10、人員快速、簡單直觀、準確地了解系統(tǒng);建模的過程使得分析師和設計師能更全面地研究系統(tǒng),深思熟慮,減少遺漏,以形成更成熟的方案;各階段產生的模型為后續(xù)階段的有關人員提供了工作依據;為項目各類人員提供了統(tǒng)一的交流工具,利于溝通和團隊合作;為項目驗收和將來的維護工作提供了文檔依據;利用工具將模型映射為特定平臺的可執(zhí)行代碼(MDD,Model-Driven Development),減少開發(fā)人員工作量。,4. 統(tǒng)一建模語言UML,統(tǒng)一建

11、模語言UML(unified modeling language)是由單一元模型支持的一組圖示法。這些圖示法有助于表達與設計軟件系統(tǒng),特別是采用面向對象方法構造的軟件系統(tǒng)。UML通過不同的圖來描述系統(tǒng)的結構(structure)、行為(behavior)、交互過程(interaction)。UML 2.2中一共定義了14種圖(diagram):系統(tǒng)結構:類圖、對象圖、包圖、構件圖、部署圖等系統(tǒng)行為:活動圖、狀態(tài)圖、用例圖交互過

12、程:通信圖、順序圖、計時圖等,3.3 信息系統(tǒng)的生命周期,信息系統(tǒng)開發(fā)圍繞信息系統(tǒng)生命周期來進行,有時也稱系統(tǒng)開發(fā)生命周期(SDLC,System Development Life Cycle),體現(xiàn)系統(tǒng)工程的思想。包含5個階段:規(guī)劃、分析、設計、實施、運維,生命周期的階段,可行性研究,,開發(fā)請求,詳細調查,系統(tǒng)轉換,總體設計,邏輯設計,審批,初步調查,驗收,系統(tǒng)維護,系統(tǒng)評價,詳細設計,審查,編程調試,審查,,,,,,,,,,,

13、,,,,,,,,,,,,,,運行維護,系統(tǒng)規(guī)劃,系統(tǒng)實施,系統(tǒng)分析,系統(tǒng)設計,,1. 階段任務2. 設計文檔,各階段任務,系統(tǒng)規(guī)劃確定信息系統(tǒng)的發(fā)展規(guī)劃;企業(yè)業(yè)務流程的識別、改革與創(chuàng)新;對建設新系統(tǒng)的需求作出初步研究,確定信息系統(tǒng)的總體結構;確定系統(tǒng)的備選方案,對這些方案進行可行性分析 系統(tǒng)分析詳細調查,確定系統(tǒng)的基本目標和邏輯功能要求系統(tǒng)設計根據系統(tǒng)說明書中規(guī)定的功能要求,考慮實際條件,具體設計實現(xiàn)邏輯模型的技術方案 系

14、統(tǒng)實施計算機等設備的購置、安裝和調試;編寫、調試和測試程序;人員培訓;數(shù)據準備或轉換;系統(tǒng)調試與轉換 系統(tǒng)維護運行情況的記錄;必要的修改;評價和總結等,信息系統(tǒng)開發(fā)方法,生命周期是指導性方針,很抽象,具體的信息系統(tǒng)開發(fā)方法有很多,主要研究方向有兩類:針對開發(fā)過程不同的信息系統(tǒng)開發(fā)過程模型。關注整個開發(fā)采取哪些步驟,每個步驟包含哪些任務,由什么人完成,任務的成果如何體現(xiàn)等也稱為不同的生存周期模型針對開發(fā)技術不同的建模方法,

15、從不同的觀點來反映系統(tǒng)的全貌,并采用不同技術手段予以實現(xiàn),3.4信息系統(tǒng)開發(fā)過程模型(基于生命周期的開發(fā)方法),開發(fā)過程的研究和經驗的總結:瀑布模型(開發(fā)方法)原型模型(開發(fā)方法)增量模型(迭代開發(fā)方法)螺旋模型(開發(fā)方法)噴泉模型(開發(fā)方法)敏捷開發(fā)過程(開發(fā)方法)……,3.4.1 瀑布模型,強調階段的劃分和階段嚴格的順序各階段工作任務明確,要求文檔完備性是一種嚴格線性的按階段順序的、逐步細化的開發(fā)模式,消除了軟件

16、開發(fā)的隨意性,瀑布模型的特點,簡單易用,容易理解開發(fā)的進程一個順著一個,沒有反饋過程,需要嚴密控制允許基線和配置早期接收控制一個新的項目不適合這個模型用戶直到項目結束才能看到質量如何不允許或者嚴格限制變更,瀑布模型(后來實際),實際的瀑布模型,瀑布模型的不足,需求:客戶常常難以表達真正的需求,而這種模型卻要求嚴格的階段性成果,返工困難,變更代價很大風險:客戶要等到開發(fā)周期的晚期才能看到程序運行的測試版本,這時若發(fā)現(xiàn)大的錯誤,

17、可能引起客戶的驚慌,其后果也可能是災難性的效率:因為前后任務的依賴關系,成員不能并行工作,有可能花在等待的時間比開發(fā)的時間要長,即所謂的“堵塞狀態(tài)”,適用于一些需求已明確并且變化較少的信息系統(tǒng),3.4.2 原型開發(fā)方法,原型——快速建立起來的可以在計算機上運行的程序,通常選取信息系統(tǒng)中某個關鍵功能作為原型。,,,,,,,編程測試,分析,定義需求,設計,,,,,,原型,,實施完成,,再構造,,,,原型方法的基本思想和開發(fā)步驟,基本思想

18、 在投入大量的人力、物力之前,在限定的時間內,用最經濟的方法構造一個系統(tǒng)原型,使用戶盡早看到系統(tǒng)的概貌,在系統(tǒng)原型的實際運行中與用戶一起發(fā)現(xiàn)問題,提出修改意見,不斷完善原型,使它逐步滿足用戶要求開發(fā)步驟明確用戶基本信息需求建立初始原型(集成原則、最小系統(tǒng)原則)評價原型修改和完善原型,快速原型的開發(fā)工具,第四代技術可復用軟件構件形式化規(guī)約和原型環(huán)境,快速原型的類型,拋棄式原型。將開發(fā)原型看做是溝通工具,永遠也不會將一次式

19、原型引入正式運行環(huán)境中。主要解決需求的不確定性,二義性,不完整性等。進化式原型。會在未來的系統(tǒng)中包含的原型。這種方法能夠將最大量的工作投入到正式系統(tǒng)中。水平原型也稱為行為原型,用來探索預期系統(tǒng)的一些特定行為,并達到細化需求的目的。水平原型通常只是功能導航,并未真實實現(xiàn)功能。主要用在用戶界面上。垂直原型也稱為結構化原型,實現(xiàn)了一部分功能。主要用在復雜的算法實現(xiàn)上。,拋棄式原型模型,演化式原型模型,快速原型的典型應用,快速原型的評價,

20、這個原型所實現(xiàn)的功能與你所期望的一致嗎?有遺漏的功能嗎?有多余的功能嗎?你能考慮一下這個原型所沒有涉及到的一些出錯情況嗎?這些功能導航的邏輯性和完整性如何?有更簡單的方法來完成這一任務嗎?,原型模型的特點和應用場合,用戶積極參與原型的開發(fā)沒有嚴密的階段性短期獲得測試版本,降低風險應用于以下場合:需求含糊,用戶不能標識出詳細的輸入、處理和輸出需求設計方案不明確,開發(fā)人員不能確定算法的有效性、操作系統(tǒng)的適應性或人機交互

21、的有效性,原型模型的不足,降低風險的同時,引入了其他風險:用戶隨意無止境的需求變化,因為用戶容易產生誤解,認為系統(tǒng)很容易被構造和修改如果采用原型基礎上繼續(xù)構造,由于修補過度,軟件質量不易于保證開發(fā)人員為了快速構造原型,可能會采用不合適的操作系統(tǒng)、語言、算法等,造成后期風險,如系統(tǒng)適應性差、維護困難等,3.4.3 迭代開發(fā)過程,一條直線一次性到達目的總是困難的。緊迫的市場期限和快速變化使得難以一次性完成整個軟件產品,解決方法是

22、先提交一個有限的版本,細節(jié)部分逐步增加,即多次迭代后完成系統(tǒng)。融合了瀑布方法和原型方法。整個開發(fā)工作被組織為一系列的短小的、固定長度的小項目,被稱為一系列的迭代。有兩種迭代:迭代增量:迭代周期完成一個增量,然后集成迭代進化:迭代周期內包含演化和完善,增量模型(增量迭代),增量模型——融合了瀑布模型的基本成分和原型的迭代特征。采用隨著日程時間的進展而交錯的線性序列。搭積木的方式,如按子系統(tǒng)劃分增量,分析,分析,分析,分析,設計,

23、設計,設計,設計,編碼,編碼,編碼,編碼,測試,測試,測試,測試,,增量1,,增量2,增量3,增量4,,,,,,,,,,,,,功能,時間,增量模型(增量迭代)的特點,以功能遞增的方式進行軟件開發(fā)(可并行化)能較快地產生可操作的系統(tǒng)在每一步遞增中,都可以把用戶/開發(fā)者的經驗結合到不斷求精的下一個增量中可改善測試效果和降低軟件開發(fā)總成本。這個過程好比搭積木。,進化迭代的特點,進化迭代與增量迭代的區(qū)別是在每個迭代周期是對上一次

24、迭代的演化和完善。比如可以將一個軟件功能的編程劃分了多個迭代周期,每個迭代是對該功能的補充和進化。這個過程好比滾雪球。,增量模型的應用場合,項目開始,明確了需求的大部分,但是需求可能會發(fā)生變化對于市場和用戶把握不是很準,需要逐步了解對于有龐大和復雜功能的系統(tǒng)進行功能改進,本身就需要一步一步實施的。,迭代開發(fā)過程示例,例子:設計一個字處理軟件增量1:實現(xiàn)軟件的基本需求,提供最核心的功能。增量2:提供更完善的編輯和文檔生成功能。

25、增量3:實現(xiàn)拼寫和語法檢查功能。增量4:完成高級的頁面排版功能。,迭代開發(fā)過程的應用場合,項目開始,明確了需求的大部分,但是需求可能會發(fā)生變化對于市場和用戶把握不是很準,需要逐步了解對于有龐大和復雜功能的系統(tǒng)進行功能改進,本身就需要一步一步實施的。,3.4.4 螺旋模型,螺旋方法——把軟件開發(fā)過程定義成不斷上升的螺旋周期,每個周期劃分為計劃、風險分析、實施和評價四個方面。沿螺線自內向外每旋轉一圈便開發(fā)出更為完善的一個新的軟件版本

26、。,這里的原型不是用于驗證的原型系統(tǒng),而是最終要交付的成品系統(tǒng)。,,螺旋模型的特點和應用場合,風險驅動,可以在生命周期早期強制性的確定項目中存在的風險需要開發(fā)人員具有相當豐富的風險評估經驗和專門知識要求用戶參與階段評價,對用戶要求較高 適用于:單位內部開發(fā)的大規(guī)模軟件項目風險是項目的主要制約因素可能會發(fā)生重大變更采用新技術,3.4.5 噴泉模型,噴泉模型——主要用于面向對象技術的軟件開發(fā)項目,它克服了瀑布模型不支持軟件重

27、用和多項開發(fā)活動集成的局限性,噴泉模型使開發(fā)過程具有迭代性和無間隙性。 噴泉模型以面向對象的軟件開發(fā)方法為基礎,以用戶需求作為噴泉模型的源泉,屬于面向對象的軟件過程模型。,噴泉模型,特點:?各階段相互重疊,它反映了軟件過程并行性的特點體現(xiàn)認識事物的往返過程強調增量開發(fā),整個過程是一個迭代的逐步提煉的過程。?開發(fā)活動之間的無間隙性和循環(huán)迭代性?適用于面向對象的開發(fā)過程?強調無明顯的活動階段劃分,集成和測試階段編

28、碼階段面向對象設計階段面向對象分析階段需求階段,進一步開發(fā)進行狀態(tài),,維護期,3.4.6 敏捷開發(fā)過程,敏捷過程(agile process)是一系列輕量的過程模型的總稱,致力于在無過程和過于繁瑣的過程中達到一種平衡,強調對需求變化的敏捷響應,以不多的步驟過程獲取滿意的結果。敏捷軟件開發(fā)宣言:1.個體和交互勝過過程和工具2.可以工作的軟件勝過面面懼到的文檔3.客戶合作勝過合同談判4.響應變化勝過遵循變化雖然右項也有

29、價值,但我們認為左項具有更大的價值?;诘_發(fā)方法探索出的成功實踐。,開發(fā)過程的代表產品,一些公司或團體紛紛推出規(guī)范化的過程產品:IBM統(tǒng)一過程RUP(Rational Unified Process,迭代過程的代表,重量級過程)微軟MSF(Microsoft Solutions Framework )敏捷:極限編程、Scrum(輕量級過程)……,練習題,假設要開發(fā)一個軟件,該軟件的功能是對特定項目進行一項驗證計算(假定計算

30、方法十分確定、成熟),一旦實現(xiàn)后將用于該項目的測試驗證中,由于項目的特殊性,所以,該軟件產品在完成使命后將被拋棄。,軟件需求明確,算法確定、成熟,故無須原型來驗證。一旦驗證完成之后將被拋棄,故無須使用提高軟件可維護性的迭代模型和螺旋模型。綜上所述,為了開發(fā)此軟件,使用瀑布模型即可。,3.5 信息系統(tǒng)開發(fā)技術(基于開發(fā)技術的開發(fā)方法),信息系統(tǒng)通常十分復雜,通常會借助于模型對它進行研究、認識、描述和設計。本節(jié)從模型化的角度探討信息

31、系統(tǒng)不同開發(fā)方法的形成和各自特點。,3.5.1 管理模型到信息模型,信息系統(tǒng)模型最核心的是信息處理模型,應考慮兩個方面:信息處理模型最核心的是軟件結構模型,而軟件模型由計算機程序語言的特性來決定。機器語言、匯編語言、C、C++……信息處理模型來源于管理模型,而管理系統(tǒng)模型包含以下方面:,,,,,,,管理系統(tǒng),靜態(tài)特征(對象、屬性、關系)動態(tài)特征(行為/事件/行動/狀態(tài))業(yè)務流程業(yè)務規(guī)則…….,模型,信息處理模型,管理模型抽

32、象描述了需要解決的管理問題(問題空間),而信息處理模型則回答信息系統(tǒng)將如何解決問題(解空間)這個求解過程中最核心的內容在于信息處理模型中的軟件系統(tǒng)。,,管理領域及問題,管理模型,信息處理模型,系統(tǒng)實現(xiàn)條件,信息系統(tǒng),技術,環(huán)境,信息系統(tǒng)學科,,,,,,,信息處理模型,信息系統(tǒng)包含硬件、軟件、信息等組成要素。但其中軟件系統(tǒng)的狀態(tài)比硬件系統(tǒng)的狀態(tài)往往要多若干數(shù)量級,只有找到控制和降低軟件復雜性的方法,才能根本地控制和降低信息系統(tǒng)復雜性。

33、人們不斷研究新的軟件開發(fā)技術,試圖縮小計算機世界和現(xiàn)實世界之間的鴻溝,從而讓管理模型與信息處理模型有更高的一致性,易于轉換和實現(xiàn)。,設計優(yōu)秀的軟件結構,優(yōu)秀的軟件結構應具有以下特性:能真實、充分地反映現(xiàn)實世界,包括事物和事物之間的聯(lián)系,能滿足用戶對數(shù)據的處理要求;易于理解,方便開發(fā)人員之間、開發(fā)人員與用戶之間交換意見;易于更改,當應用環(huán)境和應用要求改變時,能容易地對系統(tǒng)進行修改和擴充;易于向計算機支持的數(shù)據結構轉換。軟件結構

34、從簡單到復雜,走過了從機器指令、語句、模塊封裝到類封裝、再到構件和服務封裝的歷史發(fā)展過程,不同的開發(fā)技術和軟件結構催生了不同的開發(fā)方法。,軟件結構設計的基本原則,抽象第一抽象是人類認識世界的基本法則之一。對實際的事物進行處理,抽取所關心的、共同的、本質特征的屬性,并對這些事物及其特征屬性進行描述。由于抽取的是共同的、本質特征的屬性,從而大大降低了系統(tǒng)元素的絕對數(shù)量。層次劃分復雜系統(tǒng)可以先分解為子系統(tǒng),逐層分解。分解的每個子集互不相

35、交,能使注意力集中與某個子集內部及與其他子集的聯(lián)系。層次和每層子集的數(shù)目為短時記憶最大容量7±2的范圍之內。模型化提出以模型代替真實系統(tǒng)進行模擬實驗,達到認識真實系統(tǒng)特性和規(guī)律性的方法。,信息系統(tǒng)的開發(fā)技術,信息系統(tǒng)的開發(fā)技術(基于軟件技術的開發(fā)方法):結構化開發(fā)技術面向數(shù)據開發(fā)技術面向對象開發(fā)技術面向服務開發(fā)技術,3.5.2 結構化開發(fā)技術,結構化方法論(Structured Methodology)是計算學科的

36、一種典型的系統(tǒng)開發(fā)方法論。它采用了系統(tǒng)科學的思想方法,從層次的角度,自頂向下地分析和設計系統(tǒng),即抽象與分解。系統(tǒng)可用高級的抽象概念來理解和構造, 這些高級的抽象概念又可用較低級的抽象概念來理解和構造,如此進行下去,直到最低層次的模塊可以表示成某種程序設計語言的語句為止。,結構化開發(fā)技術,也稱為 面向功能/面向過程/面向數(shù)據流 的軟件開發(fā)方法結構化方法包括結構化分析(Structured Analysis,簡稱SA)、結構化設計(S

37、tructured Design,簡稱SD)和結構化程序設計(Structured Program,簡稱SP)三部分內容:結構化分析(SA)對軟件進行需求分析,以數(shù)據流圖表示結構化設計(SD)進行總體設計,以結構圖表示結構化編程(SP),以程序流程圖表示,結構化開發(fā)方法的形成/1,結構化程序設計SP方法的產生結構化方法起源于結構化程序設計語言。在使用SP之前,程序員都是按照各自的習慣和思路來編寫程序,沒有統(tǒng)一的標準,這樣編寫的程

38、序可讀性差,更為嚴重的是程序的可維護性極差,經過研究發(fā)現(xiàn),造成這一現(xiàn)象的根本原因是程序的結構問題。1966年,C.BÖhm和G.Jacopini提出了關于“程序結構”的理論,并給出了任何程序的邏輯結構都可以用順序結構、選擇結構和循環(huán)結構來表示的證明。在程序結構理論的基礎上,1968年,戴克斯特拉提出了“GOTO語句是有害的”的問題,并引起普遍重視,SP逐漸形成,并成為計算機軟件領域的重要方法,對計算機軟件的發(fā)展具有重要的意義

39、。伴隨著SP的形成,相繼出現(xiàn)了Modula-2、C以及Ada等結構化程序設計語言。,結構化開發(fā)方法的形成/2,結構化設計方法SD的形成結構化程序設計需要事先設計好每一個具體的功能模塊,然后將這些設計好的模塊組裝成一個軟件系統(tǒng)。源于結構化程序設計思想的結構化設計方法就是要解決模塊的構建問題。1974年,W.Stevens、G.Myers和L.Constantine等人在《IBM系統(tǒng)》(IBM System)雜志上發(fā)表了《結構化設計》(

40、Structured Design)論文,為結構化設計方法奠定了思想基礎。結構化分析方法SA的形成結構化設計方法建立在系統(tǒng)需求明確的基礎上。如何明確系統(tǒng)的需求,就是結構化分析所要解決的問題。結構化分析方法產生于20世紀70年代中期,最初的倡導者有Tom Demarco、Ed Yourdon等人。結構化分析在20世紀80年代又得到了進一步的發(fā)展,并隨著Ed Yourdon于1989年所著的《現(xiàn)代結構化分析》(Modern Stru

41、ctured Analysis)的出版而流行開來?,F(xiàn)代結構化分析更強調建模的重要性。,結構化方法五個基本原則,面向用戶的觀點嚴格區(qū)分工作階段,每個階段有明確的任務和應得的成果按照系統(tǒng)的觀點,自頂向下地完成系統(tǒng)的研制工作充分考慮變化的情況工作成果文獻化、標準化,,,,,,結構化分析——數(shù)據流圖,,顧客,,,,編 輯訂貨單,訂貨單,配件庫存,,,,,1.1,,,確 定顧 客訂 貨,1.2,,,1.3,,,,業(yè)務員,,

42、,產 生暫 存訂貨單,1.4,不合格,顧客,,,,,D2,D3,可發(fā)訂貨,不滿足的訂貨,暫存訂貨單,,,,,D4,銷售歷史,,,,,D5,應收款明細賬,,,,D10,,,,,,,,,,,,合格的訂貨單,,,檢 索庫 存,1.5,經理,,,,,查詢請求,庫 存狀 態(tài),,,,開發(fā)貨單并修改庫存,顧客,,,發(fā)貨單,,,,模型中的某個功能的分解圖:,結構化設計——模塊結構圖,銷售子系統(tǒng),暫存訂貨單處理,登記訂貨單,查

43、詢,打印發(fā)貨單,作廢訂貨單,查詢訂貨單,查詢庫存,,,,,,,暫存處理,修改庫存,,,沖賬,,,結構化模型——數(shù)據流圖,模型的層次和分解:,,,,,結構化模型——模塊結構圖,圖書館管理系統(tǒng),圖書管理,讀者管理,借還書管理,,,新書登記,舊書淘汰,讀者登記,讀者刪除,,,,,借書,查詢,還書,,,,書目查詢,借閱排行,,,根據卡號查讀者,,,根據書號查圖書,,判讀者結束資格,保存借書記錄,,,刪除讀者記錄,……,……,3.5.3 面向對象

44、開發(fā)方法,面向對象(object-oriented)方法具有很強的類和對象的概念,因此它就能很自然地直觀地模擬人類認識客觀世界的方式,包括:客觀世界的任何事物都是對象(object)。它們都有一些靜態(tài)特征和有關行為。對象之間有抽象與具體、群體與個體、整體與部分等幾種關系,這些關系構成對象的網絡結構。抽象的對象所具有的性質,自然地成為具體對象的性質,而不必說明(繼承性,inheritance)。對象之間可以互送消息(message

45、),通過消息進行交互和協(xié)作。,面向對象方法舉例,比如:汽車作為一個對象,有排量、顏色、行駛里程等數(shù)據,有啟動、行駛、停止、熄火等行為,駕駛員的點火事件可以觸發(fā)汽車的啟動操作,踩下油門事件會觸發(fā)汽車行駛,行駛行為將造成行駛里程發(fā)生改變。在計算機賽車游戲里,面向對象程序設計可以將汽車設計為一個軟件對象(class)。,面向對象開發(fā)方法的形成/1,面向對象程序設計OOP的產生面向對象的概念(Object-Oriented,簡稱OO)始于

46、1966年的一種高級抽象語言Simula。為仿真一個實際問題,引入了數(shù)據抽象和類的概念。幾年后出現(xiàn)的Smalltalk語言被認為是第一個真正面向對象的編程語言。它吸取了Simula中類的概念,規(guī)定一切都是對象,程序設計以盡可能自動化的單元來進行,并開始用于實現(xiàn)基于對象的圖形用戶界面。隨著上世紀80年代中期一些面向對象語言如C++的出現(xiàn),對象不僅與名詞相關聯(lián),還包括事件和過程??梢暬幊陶Z言VB可以說是面向對象程序設計(OOP)最為成

47、功的應用之一。并從此走向普及。,面向對象開發(fā)方法的形成/2,面向對象的分析與設計方法的形成1982-1992年間,出現(xiàn)了一些具代表性的OO方法論Sally Shlare and Steve Mellor, "Recursive Design Approach" Peter Coad and Ed Yourdon, "Prototype-Oriented Approach"Grady Boo

48、ch (at Rational Software), "Booch Method"Jim Rumbaugh (at General Electric), "Object Modeling Technique" (OMT)James Martin and Jim OdellIvar Jacobson (at Ericsson), "OOSE"面向對象的分析OOA,其任務是

49、了解問題域所涉及的對象、對象間的關系和作用,然后構造問題的對象模型,力爭該模型能真實地反映出所要解決的“實質問題”。接著根據所應用的軟件開發(fā)環(huán)境,基于OOA的對象模型在軟件系統(tǒng)內設設計各個對象、對象間的關系(如層次關系、繼承關系等)、對象間的通信方式等,即OOD。,面向對象的基本思想和特點,基本思想客觀事物都是對象。對象由屬性和方法組成(對象的封裝性)對象間的關系構成網絡結構對象具有繼承性對象之間的聯(lián)系通過消息傳遞機制來實現(xiàn)

50、特點封裝性抽象性:將屬性和方法抽象為類,對象是類的實例繼承性動態(tài)鏈接性:對象間的聯(lián)系是通過對象間的消息傳遞動態(tài)建立的,面向對象模型圖——類圖,面向對象分析(OOA)、設計(OOD)和程序設計(OOP)最重要的模型圖是對象圖/類圖,訂貨單,顧客,配件配件名稱配件代碼查詢庫存修改庫存,,,1 擁有1..*,記錄1 1..*,配件庫存?zhèn)}庫地點庫存數(shù)量增加庫存量減少庫存量,,包含,1,0

51、..*,,暫存訂貨單作廢訂貨單,可發(fā)訂貨單打印發(fā)貨單作廢訂貨單,,,,,,,,,對象名/類名,對象屬性,對象操作,,面向對象模型——類圖,面向對象分析(OOA)、設計(OOD)和程序設計(OOP)最重要的模型圖是對象圖/類圖,面向對象模型——順序圖,對象之間有交互,一個對象像另一個對象發(fā)送服務請求消息,接收對象進行響應,3.5.4 面向服務開發(fā)方法,將應用程序的不同功能單元 定義為服務(service),通過服務間定義良好的接口

52、和契約(contract)聯(lián)系起來。面向服務是從業(yè)務角度出發(fā)考慮問題的,服務是可以獨立封裝的業(yè)務功能組件,提升了模型的抽象層次,它繼承并加強了結構化和面向對象方法的通用軟件結構設計思想,還增添了一些其他的主題,例如服務編排、服務庫和服務總線中間件模式。,面向服務方法的形成,為了實現(xiàn)遠程分布式的過程調用,在20世紀90年代出現(xiàn)了面向組件的編程技術,如J2EE、CORBA、DCOM等。組件就是將程序進行封裝,定義一些接口讓外部調用??蛻?/p>

53、端調用接口時,客戶端和服務器端之間以特定的傳輸協(xié)議進行通信,客戶端不需要了解接口是如何具體實現(xiàn)的,也不要引用服務器端的實現(xiàn)類。由于組件技術標準不統(tǒng)一,導致不同技術實現(xiàn)的組件之間無法相互調用。2000年開始萬維網聯(lián)盟(World WideWeb Consortium,W3C)基于互聯(lián)網標準,發(fā)布了統(tǒng)一的Web服務標準,異構系統(tǒng)之間可以實現(xiàn)遠程交互。不久,專家學者和各大廠商開始推廣和普及面向服務的體系架構(Service-Oriente

54、dArchitecture,SOA),并共同努力制定了中立的SOA標準,面向服務的開發(fā)進入實施階段。,SOA,面向服務的體系結構(Service-Oriented Architecture,SOA)以服務為軟件組成要素,服務對外定義良好的接口和契約,獨立于實現(xiàn)服務的硬件平臺、操作系統(tǒng)和編程語言。從概念上講,SOA中有三個主要的抽象級別元素:操作:代表單個邏輯工作單元的事務。執(zhí)行操作通常完成數(shù)據的存取和加工。與類的一個方法類似。服務

55、:代表操作的邏輯分組。例如,如果我們將客戶信用視為服務,則按照客戶名稱獲得客戶信用數(shù)據、建立信用記錄、更新客戶信用等就代表相關的操作。業(yè)務流程:為實現(xiàn)特定業(yè)務目標而執(zhí)行的一組長期運行的動作或活動。例如:批準一項貸款、本科生轉專業(yè)、完成訂單等。業(yè)務流程包括依據一組業(yè)務規(guī)則按照有序序列執(zhí)行的一系列操作。操作的排序、選擇和執(zhí)行稱為服務或流程編排。,面向服務模型——業(yè)務流程,訂單處理的業(yè)務流程模型:,面向服務模型——服務接口,識別與訂單處理有

56、關的服務,定義服務接口SoaML面向服務架構建模語言,是UML的擴展,面向服務模型——服務架構,服務接口及內部實現(xiàn)結構,不同方法的比較,結構化方法容易理解和交流,對于大系統(tǒng)可以從全局逐步展開到局部,整體性較好。結構化方法是其他系統(tǒng)開發(fā)方法(如面向對象方法)的基礎。面向對象穩(wěn)定可靠,有利于維護和重用,并容易實現(xiàn)多層分布式結構,但對前期分析設計人員要求較高,用戶理解模型有困難。面向服務松耦合、自描述、可重用、開放標準。以XML

57、為基礎,將已有的服務進行重新組合后可以快速建立新的業(yè)務流程,要求分析有較強的業(yè)務流程的抽象能力。以結構化方法和面向對象方法為基礎。,兩類方法的關系,建模方法不限定使用于特定的過程方法中比如面向對象方法既可以使用在瀑布方法中,也可以用在螺旋方法中開發(fā)過程的各時期可以使用不同的建模方法(但不提倡)要注意不同方法不同模型的銜接,3.6 信息系統(tǒng)開發(fā)的組織管理,信息系統(tǒng)建設要執(zhí)行有計劃的管理:信息系統(tǒng)發(fā)展的諾蘭模型建立信息系統(tǒng)的基礎

58、條件信息系統(tǒng)建設的相關人員做好準備工作選擇開發(fā)方式開展項目管理,3.6.1 諾蘭模型,信息系統(tǒng)遵循從初級到成熟的發(fā)展規(guī)律(諾蘭模型),要根據企業(yè)的信息系統(tǒng)發(fā)展現(xiàn)狀制定開發(fā)策略,,,預算費用,初裝,數(shù)據管理,蔓延,控制,成熟,集成,,,,,,,,,諾蘭模型的經驗總結:模型中的各個階段是不能跳躍的?!坝賱t不達”,3.6.2 建立信息系統(tǒng)的基礎條件,領導重視,業(yè)務人員積極性高有一定的科學管理基礎由不同層次人員組成的技術隊伍

59、具備必要的資源,3.6.3 系統(tǒng)開發(fā)的準備工作,有效的組織機構各類人員的配備和分工,,技術人員,信息系統(tǒng)建設中可能有以下技術人員:各角色的職責可參見計算機技術與軟件專業(yè)技術資格(水平)考試,人員需求的變化,系統(tǒng)建設的不同階段對人員的需求不斷變化:,3.6.4 選擇開發(fā)方式,根據資源情況選擇適合的開發(fā)方式:自行開發(fā)委托開發(fā)聯(lián)合開發(fā)購買現(xiàn)成軟件產品購買服務(SaaS/PaaS/云計算),3.6.6 信息

60、系統(tǒng)的項目管理,信息系統(tǒng)項目遵循項目管理的一般理論和方法,但也存在自身的特點,管理內容包括:進度管理成本估算和經費管理質量管理文檔管理人員管理其它:需求管理、風險管理、軟件配置管理詳細內容在《信息系統(tǒng)項目管理》課程或書籍中討論。,3.7 信息系統(tǒng)開發(fā)工具,信息系統(tǒng)開發(fā)工具指在系統(tǒng)開發(fā)生命周期各個階段幫助開發(fā)者提高工作質量和效率的一類軟件,也稱為CASE(Computer Aided Software Engineer

61、ing,計算機輔助軟件工程)工具。CASE工具:它是一種軟件;它是繼高級程序語言之后,軟件技術進一步發(fā)展的產物;它的目的是在軟件開發(fā)過程的不同方面給予人們不同程度的支持和幫助。,CASE工具的類型,分析與設計工具統(tǒng)稱為建模工具,如IBM Rational Rose、PowerDesigner、Visio等編程工具集成開發(fā)環(huán)境(IDE,Integrated Development Environment)是目前程序員最常用的

62、編程工具。如Visual Studio 2010、MyEclipse等測試工具包括測試用例的選擇、測試程序與測試數(shù)據的生成、測試的執(zhí)行及測試結果的評價。 運維工具項目管理工具,要點歸納,熟練掌握信息系統(tǒng)生命周期(階段任務、階段文檔)信息系統(tǒng)的開發(fā)技術:結構化方法、面向對象方法信息系統(tǒng)的開發(fā)過程:瀑布模型、原型模型、迭代開發(fā)過程(增量模型)一般掌握信息系統(tǒng)建設的特點(復雜性、社會性)信息系統(tǒng)的開發(fā)過程:螺旋模型、噴

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論