第二章信息系統(tǒng)工程體系_第1頁(yè)
第二章信息系統(tǒng)工程體系_第2頁(yè)
第二章信息系統(tǒng)工程體系_第3頁(yè)
第二章信息系統(tǒng)工程體系_第4頁(yè)
第二章信息系統(tǒng)工程體系_第5頁(yè)
已閱讀5頁(yè),還剩153頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第2章

信息系統(tǒng)工程體系如果你根本不知道自己在討論什么,那么對(duì)其強(qiáng)求精確是毫無(wú)意義的。軟件工程的基本內(nèi)容和目標(biāo)軟件工程體系:SOFTWAREENGINEERINGARCHITECTURE軟件開(kāi)發(fā)過(guò)程:IDENTIFYCOREACTIVITIESINSYSTEMSDEVELOPMENTLIFECYCLE&PROTOTYPING軟件開(kāi)發(fā)方法:EVALUATESTRUCTUREDANALYSISANDDESIGNMETHDOLOGY&OBJECT-ORIENTEDDEVELOPMENT軟件開(kāi)發(fā)環(huán)境和工具:COMPUTERAIDEDSYSTEMENGINEERING(CASE)*LEARNINGOBJECTIVES學(xué)習(xí)完本章后,你應(yīng)該具備以下能力:理解信息系統(tǒng)工程的基本問(wèn)題解釋信息系統(tǒng)工程體系中的質(zhì)量焦點(diǎn)理解過(guò)程、建模語(yǔ)言、方法學(xué)和工具在信息系統(tǒng)工程體系中的作用及其之間的關(guān)系掌握幾種典型的系統(tǒng)開(kāi)發(fā)生命周期模型,如瀑布模型、迭代模型、螺旋模型和噴泉模型,包括特點(diǎn)、適用范圍等掌握典型的信息系統(tǒng)開(kāi)發(fā)方法(結(jié)構(gòu)化方法、面向?qū)ο蠓椒ǎ┑幕靖拍詈驮砹私庥?jì)算機(jī)輔助系統(tǒng)工程(CASE)的概念、意義學(xué)習(xí)目標(biāo)目前軟件開(kāi)發(fā)中存在的問(wèn)題:速度:軟件的發(fā)展水平遠(yuǎn)遠(yuǎn)滯后于硬件的發(fā)展水平,生產(chǎn)率低下,軟件制造仍然是一種人工集約生產(chǎn)方式質(zhì)量:軟件的質(zhì)量低下,不能滿足用戶的需求、適應(yīng)性差成本:軟件開(kāi)發(fā)成本居高不下軟件開(kāi)發(fā)的速度、軟件制品的質(zhì)量、軟件開(kāi)發(fā)成本是軟件工程的三個(gè)核心問(wèn)題。1.軟件工程概述高質(zhì)量:如何衡量軟件的質(zhì)量?產(chǎn)品操作(可用性、正確性、可靠性、效率、完備性等)產(chǎn)品修改(可維護(hù)性、適應(yīng)性)產(chǎn)品適應(yīng)(可移植性、可復(fù)用性、互操作性)高效率:計(jì)算機(jī)軟件的生產(chǎn)率及其性能將大大落后于硬件的發(fā)展速度,計(jì)算機(jī)軟件已成為計(jì)算機(jī)技術(shù)和應(yīng)用發(fā)展的主要“瓶頸”。低成本:目前的軟件生產(chǎn)仍是人工集約生產(chǎn)方式1.軟件工程概述軟件質(zhì)量度量軟件質(zhì)量可直接測(cè)量Measurement,測(cè)量得到定義屬性值。如吞吐量、響應(yīng)時(shí)間等性能指標(biāo)。間接度量Metrics。度量一般是某一個(gè)相對(duì)尺度,發(fā)現(xiàn)問(wèn)題。如可維護(hù)性、適應(yīng)性等。 McCall質(zhì)量因素 直接測(cè)量 間接度量 定型的準(zhǔn)則可用打分(1..10)方法度量適變能力適應(yīng)能力運(yùn)作性能正確性可靠性易用性集成性效率可維護(hù)柔性可測(cè)試可移植可重用互操作性思考:你認(rèn)為通過(guò)哪些途徑或技術(shù)可以實(shí)現(xiàn)上述目標(biāo)?不同的方法或技術(shù)在上述三個(gè)基本問(wèn)題上的效果有何不同?Softwareengineering(1968,NATO)Popularduringthe1970sItnowreferstoacollectionofmanagementprocesses,softwaretooling,anddesignactivitiesforsoftwaredevelopment.1.軟件工程概述AccordingtotheIEEE[2]StandardComputerDictionary(1990),softwareengineeringistheapplicationofasystematic,disciplined,quantifiableapproachtodevelopment,operation,andmaintenanceofsoftware;thatis,theapplicationofengineeringtosoftware.Theaimofsoftwareengineeringistheproductionofqualitysoftware,deliveredontime,withinbudget,andsatisfyingusers'needs

1.軟件工程概述軟件工程——是指把系統(tǒng)的、規(guī)范化的、可以度量的方法運(yùn)用于軟件的開(kāi)發(fā)、運(yùn)行和維護(hù)的過(guò)程;簡(jiǎn)言之,工程化在軟件開(kāi)發(fā)方面的應(yīng)用。以工程的方法制作軟件項(xiàng)目project或產(chǎn)品product的全過(guò)程(從立項(xiàng)到交付)工程方法:人們利用技術(shù)(或工具)、技能通過(guò)有組織活動(dòng)完成契約規(guī)定的目標(biāo),即按預(yù)定完工期交付合格成品。工程要素:人力、資金、技術(shù)工程目標(biāo):在給定的資金、限制的時(shí)間內(nèi),完成符合相應(yīng)標(biāo)準(zhǔn)的產(chǎn)品。(成本、進(jìn)度、質(zhì)量三要素)1.軟件工程概述軟件工程知識(shí)主體指南主要內(nèi)容軟件需求(SoftwareRequirement)軟件設(shè)計(jì)(SoftwareDesign)軟件構(gòu)造(SoftwareConstruction)軟件測(cè)試(SoftwareTesting)軟件維護(hù)(SoftwareMaintenance)軟件配置管理(SoftwareConfigurationManagement)軟件工程管理(SoftwareEngineeringManagement)軟件工程過(guò)程(SoftwareEngineeringProcess)軟件工程工具和方法(SoftwareEngineeringToolsandMethods)軟件質(zhì)量(SoftwareQuantity)2.信息系統(tǒng)工程體系

信息系統(tǒng)工程是指以計(jì)算機(jī)、網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)、軟件等信息技術(shù)與產(chǎn)品為構(gòu)件的系統(tǒng)工程(羅曉沛、侯炳輝,2003)。信息系統(tǒng)工程的內(nèi)容包括硬件工程、軟件工程、網(wǎng)絡(luò)工程、數(shù)據(jù)工程、人機(jī)工程。其中數(shù)據(jù)工程是信息系統(tǒng)工程的基礎(chǔ)工程。2.信息系統(tǒng)工程體系信息系統(tǒng)危機(jī)效益問(wèn)題。對(duì)企業(yè)來(lái)說(shuō),信息系統(tǒng)的建設(shè)是一項(xiàng)巨大的投資。用戶在硬件、軟件、開(kāi)發(fā)和維護(hù)等方面投入了大量的資金,卻很少能產(chǎn)生明顯的經(jīng)濟(jì)效益和社會(huì)效益,甚至導(dǎo)致企業(yè)破產(chǎn)。從而使很多企業(yè)對(duì)信息系統(tǒng)的建設(shè)持有觀望、甚至抵制的心理。有些企業(yè)過(guò)分強(qiáng)調(diào)了硬件的檔次和質(zhì)量,而忽視了其它一些更為重要的因素。2.信息系統(tǒng)工程體系信息系統(tǒng)危機(jī)需求問(wèn)題。信息系統(tǒng)是一個(gè)社會(huì)技術(shù)系統(tǒng),其中的不穩(wěn)定因素很多,導(dǎo)致用戶的需求更具有不確定性和易變性。如何適應(yīng)用戶需求的變化是信息系統(tǒng)工程研究的一個(gè)核心問(wèn)題,目前的信息系統(tǒng)開(kāi)發(fā)技術(shù)并不能很好地解決這一問(wèn)題。2.信息系統(tǒng)工程體系隊(duì)伍建設(shè)問(wèn)題。企業(yè)是否要建立自己的開(kāi)發(fā)隊(duì)伍?這一直是困擾企業(yè)領(lǐng)導(dǎo)層的一個(gè)問(wèn)題。系統(tǒng)分析員的奇缺,技術(shù)人員的頻繁流動(dòng),導(dǎo)致企業(yè)沒(méi)有自己的信息系統(tǒng)建設(shè)隊(duì)伍。

2.信息系統(tǒng)工程體系規(guī)劃問(wèn)題。與軟件不同的是,信息系統(tǒng)總是處于企業(yè)的業(yè)務(wù)環(huán)境之中的,是企業(yè)管理系統(tǒng)的一個(gè)子系統(tǒng)。傳統(tǒng)的信息系統(tǒng)建設(shè)往往是從某個(gè)局部應(yīng)用開(kāi)始的,只注重于某個(gè)業(yè)務(wù)子系統(tǒng),而忽略了整個(gè)企業(yè)對(duì)信息系統(tǒng)的全局要求。沒(méi)有統(tǒng)一的信息系統(tǒng)規(guī)劃的指導(dǎo),就會(huì)出現(xiàn)數(shù)據(jù)不一致,已有的系統(tǒng)很難集成等問(wèn)題。規(guī)劃工作必須由領(lǐng)導(dǎo)直接參與,而領(lǐng)導(dǎo)重視程度不夠,不能直接參與規(guī)劃工作是普遍的現(xiàn)象。2.

信息系統(tǒng)工程體系信息系統(tǒng)工程包含四個(gè)部分:第一部分是:方法——提供了構(gòu)造信息系統(tǒng)的技術(shù)第二部分:建模語(yǔ)言——用以支持信息系統(tǒng)的分析、設(shè)計(jì)和實(shí)現(xiàn)第三部分:工具——為方法和語(yǔ)言提供自動(dòng)化或半自動(dòng)化的支持第四部分是:信息系統(tǒng)開(kāi)發(fā)過(guò)程——是粘結(jié)劑(Glue)把方法、語(yǔ)言和工具結(jié)合在一起。過(guò)程定義了方法的使用順序、可交付產(chǎn)品(文檔、報(bào)告、格式)的要求,確保質(zhì)量和修改的控制,并使信息系統(tǒng)管理人員能對(duì)它們的進(jìn)展進(jìn)行評(píng)價(jià)。2.信息系統(tǒng)工程體系2.信息系統(tǒng)工程體系信息系統(tǒng)工程是一種層次化的技術(shù)任何工程方法(包括軟件工程、信息系統(tǒng)工程)必須以有組織的質(zhì)量保證為基礎(chǔ)。全面的質(zhì)量管理和類似的理念刺激了不斷的過(guò)程改進(jìn),正是這種改進(jìn)導(dǎo)致了更加成熟的軟件工程和信息系統(tǒng)工程方法的不斷出現(xiàn)。支持信息系統(tǒng)工程的根基就在于對(duì)質(zhì)量的關(guān)注。2.信息系統(tǒng)工程體系信息系統(tǒng)工程的基層是過(guò)程層信息系統(tǒng)工程過(guò)程是將技術(shù)層結(jié)合在一起的凝聚力,使得信息系統(tǒng)能夠被合理地和及時(shí)地開(kāi)發(fā)出來(lái)。過(guò)程定義了一組關(guān)鍵過(guò)程區(qū)域的框架,這對(duì)于信息系統(tǒng)工程技術(shù)的有效應(yīng)用是必須的。關(guān)鍵過(guò)程區(qū)域構(gòu)成了信息系統(tǒng)項(xiàng)目管理控制的基礎(chǔ),并且確定了上下各區(qū)域之間的關(guān)系,規(guī)定了技術(shù)方法的采用、工程產(chǎn)品(模型、文檔、數(shù)據(jù)、報(bào)告、表格等)的產(chǎn)生、里程碑的建立、質(zhì)量的保證及變化的適當(dāng)管理。2.信息系統(tǒng)工程體系信息系統(tǒng)工程的方法層提供了為開(kāi)發(fā)信息系統(tǒng)在技術(shù)上需要“如何做”。方法涵蓋了一系列的任務(wù):需求分析、設(shè)計(jì)、編程、測(cè)試和維護(hù)。2.信息系統(tǒng)工程體系信息系統(tǒng)工程的建模語(yǔ)言層模型是用某種工具對(duì)同類或其他工具的表達(dá)方式。模型從某一個(gè)建模觀點(diǎn)出發(fā),抓住事物最重要的方面而簡(jiǎn)化或忽略其他方面。工程、建筑和其他許多需要具有創(chuàng)造性的領(lǐng)域中都使用模型。

2.信息系統(tǒng)工程體系信息系統(tǒng)工程的建模語(yǔ)言層軟件系統(tǒng)的模型用建模語(yǔ)言來(lái)表達(dá),如UML。模型包含語(yǔ)義信息和表示法,可以采取圖形和文字等多種不同形式。建立模型的目的是因?yàn)樵谀承┯猛局心P褪褂闷饋?lái)比操縱實(shí)物更容易和方便。

2.信息系統(tǒng)工程體系信息系統(tǒng)工程的工具層對(duì)過(guò)程和方法提供了自動(dòng)的或半自動(dòng)的支持。當(dāng)這些工具被集成起來(lái)使得一個(gè)工具產(chǎn)生的信息可以被另外一個(gè)工具使用時(shí),一個(gè)支持信息系統(tǒng)開(kāi)發(fā)的系統(tǒng)就建立了,稱為計(jì)算機(jī)輔助軟件工程(CASE)。CASE集成了軟件、硬件和一個(gè)軟件工程數(shù)據(jù)庫(kù)(包含了關(guān)于分析、設(shè)計(jì)、編程和測(cè)試的重要信息),從而形成了一個(gè)軟件工程環(huán)境。3.信息系統(tǒng)工程過(guò)程模型“計(jì)劃本身什么都不是,而編制計(jì)劃的過(guò)程就是一切。”——美國(guó)第34任總統(tǒng)艾森豪威爾上將。產(chǎn)品什么也不是,而開(kāi)發(fā)產(chǎn)品的過(guò)程就是一切。文檔什么也不是,而編制文檔的過(guò)程就是一切。3.信息系統(tǒng)工程過(guò)程模型過(guò)程(Process):為實(shí)現(xiàn)一個(gè)給定目標(biāo)而進(jìn)行的一系列運(yùn)作步驟。過(guò)程具有一系列的性質(zhì):時(shí)間性、并發(fā)性、嵌套性和度量性等。軟件過(guò)程:軟件開(kāi)發(fā)過(guò)程是一個(gè)將用戶需求轉(zhuǎn)化為軟件系統(tǒng)所需要的活動(dòng)的集合。即開(kāi)發(fā)和維護(hù)軟件及其相關(guān)產(chǎn)品所涉及的一系列活動(dòng)。過(guò)程是活動(dòng)的集合;活動(dòng)是任務(wù)的集合;任務(wù)是把輸入轉(zhuǎn)換為輸出的操作。3.信息系統(tǒng)工程過(guò)程模型軟件過(guò)程模型也稱為系統(tǒng)開(kāi)發(fā)生命周期(SDLC:SystemDevelopmentLifeCycle)模型,是軟件開(kāi)發(fā)的指導(dǎo)思想和全局性框架,軟件過(guò)程模型的提出和發(fā)展反映了人們對(duì)軟件過(guò)程的某種認(rèn)識(shí)觀,體現(xiàn)了人們對(duì)軟件過(guò)程認(rèn)識(shí)的提高和飛躍。3.信息系統(tǒng)工程過(guò)程模型SDLC包括:任務(wù)分解結(jié)構(gòu)WBS(WorkBreakdownStructure)。如傳統(tǒng)的系統(tǒng)開(kāi)發(fā)階段包括可行性研究、初始調(diào)研、系統(tǒng)分析、總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)等,現(xiàn)代的系統(tǒng)開(kāi)發(fā)階段包括系統(tǒng)規(guī)劃、系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)施和系統(tǒng)支持。WBS優(yōu)先級(jí)結(jié)構(gòu)。即系統(tǒng)開(kāi)發(fā)所遵循的基本模式,如瀑布模型(Waterfall)、階梯模型(Stairstep)、螺旋模型(Spiral)、迭代模型(Iterative)等。軟件開(kāi)發(fā)過(guò)程(模式)的演化:——瀑布模型:適合于科學(xué)數(shù)值計(jì)算,嵌入式軟件和實(shí)時(shí)控制系統(tǒng)——原型開(kāi)發(fā)模型:(拋棄式,演化式,增量式):適合于商業(yè)數(shù)據(jù)處理系統(tǒng)的開(kāi)發(fā)——螺旋開(kāi)發(fā)模型:綜合了瀑布模型和原型開(kāi)發(fā)模型的優(yōu)點(diǎn).四個(gè)主要步驟:計(jì)劃,風(fēng)險(xiǎn)分析,工程,用戶評(píng)價(jià).適合于大型軟件的開(kāi)發(fā)——4GL技術(shù):限于事務(wù)信息系統(tǒng)中的中\(zhòng)小型應(yīng)用程序的開(kāi)發(fā)3.信息系統(tǒng)工程過(guò)程模型——過(guò)程開(kāi)發(fā)模型(混合模型hybridmodel或元模型metamodel):最初只是用來(lái)代表美國(guó)DoD調(diào)查各軟件機(jī)構(gòu)開(kāi)發(fā)過(guò)程的成熟程度.1991年DodSEI公布的CMM.——面向?qū)ο笊嫫谀P?噴泉模型.具有更多的增量和迭代性質(zhì),生存期的各個(gè)階段可以相互重疊和多次反復(fù),而且在項(xiàng)目的整個(gè)生存期中還可以嵌入子生存期.——基于構(gòu)件的軟件開(kāi)發(fā)(CBD:Component-BasedDevelopment):是在軟件重用和OO技術(shù)基礎(chǔ)上發(fā)展起來(lái)的,是一個(gè)面向產(chǎn)品結(jié)構(gòu)的軟件開(kāi)發(fā)模式.3.信息系統(tǒng)工程過(guò)程模型——統(tǒng)一的軟件開(kāi)發(fā)過(guò)程(TheUnitedSoftwareDevelopmentProcess):基于UML,有三個(gè)關(guān)鍵思想,使用用例驅(qū)動(dòng)(Use-CaseDriven);以體系結(jié)構(gòu)為中心(Architecture-Centric);迭代與增量式開(kāi)發(fā)(IterativeandIncremental)3.信息系統(tǒng)工程過(guò)程模型3.1瀑布模型(WaterfallModel)系統(tǒng)規(guī)劃系統(tǒng)分析系統(tǒng)設(shè)計(jì)系統(tǒng)實(shí)施系統(tǒng)維護(hù)什么是信息系統(tǒng)規(guī)劃(InformationSystemPlanning,ISP)?在充分、深入研究企業(yè)發(fā)展遠(yuǎn)景、業(yè)務(wù)策略和管理的基礎(chǔ)上,形成信息系統(tǒng)的遠(yuǎn)景、信息系統(tǒng)的組成架構(gòu)、信息系統(tǒng)各部分的邏輯關(guān)系,以支撐企業(yè)戰(zhàn)略規(guī)劃(BusinessStrategicPlanning,BSP)目標(biāo)的達(dá)成。

PHASE1:SYSTEMSPLANNINGPHASE1:SYSTEMSPLANNING理解關(guān)鍵的企業(yè)目標(biāo)企業(yè)如何達(dá)到目標(biāo)?IS如何支撐這些目標(biāo)?需要哪些IT支撐IS?信息化建設(shè)具體項(xiàng)目的實(shí)施企業(yè)戰(zhàn)略規(guī)劃(BSP)信息系統(tǒng)戰(zhàn)略規(guī)劃(ISSP)信息技術(shù)戰(zhàn)略規(guī)劃(ITSP)ISP的主要目標(biāo):根據(jù)組織的目標(biāo)與戰(zhàn)略制定出組織中業(yè)務(wù)流程改革與創(chuàng)新和信息系統(tǒng)建設(shè)的長(zhǎng)期發(fā)展方案,決定信息系統(tǒng)在整個(gè)生命周期內(nèi)的發(fā)展方向、規(guī)模和發(fā)展進(jìn)程。主要任務(wù):(1)根據(jù)組織的發(fā)展目標(biāo)與戰(zhàn)略制定業(yè)務(wù)流程改革與創(chuàng)新的目標(biāo)和信息系統(tǒng)的發(fā)展戰(zhàn)略。(2)制定組織的業(yè)務(wù)流程規(guī)劃,確定業(yè)務(wù)流程改革與創(chuàng)新的方案(3)根據(jù)組織目標(biāo)和業(yè)務(wù)流程規(guī)劃確定信息系統(tǒng)的總體結(jié)構(gòu)規(guī)劃方案;(4)安排項(xiàng)目實(shí)施方案,制定信息系統(tǒng)建設(shè)的資源分配方案。PHASE1:SYSTEMSPLANNING系統(tǒng)分析的主要任務(wù)是對(duì)現(xiàn)行系統(tǒng)進(jìn)行詳細(xì)調(diào)查,以充分掌握現(xiàn)行系統(tǒng)全面和真實(shí)的情況,分析用戶信息需求,在此基礎(chǔ)上提出新系統(tǒng)的邏輯模型,并編寫(xiě)系統(tǒng)分析報(bào)告。PHASE2:SYSTEMSANALYSISANALYSISOFPROBLEMTOBESOLVEDWITHANINFORMATIONSYSTEMFEASIBILITYSTUDY:Canproblembesolvedwithin constraints?REQUIREMENTSDEFINITIONPHASE2:SYSTEMSANALYSISFEASIBILITYTECHNICAL:

Assesshardware,software,technicalresourcesECONOMIC:Willbenefitsoutweighcosts?OPERATIONAL:

Issolutiondesirablewithinexistingconditions?*REQUIREMENTSDEFINITIONINFORMATIONREQUIREMENTS:

Detailedstatementofnewsystemneeds*需求定義框架——PIECESPIECES-ausefulframeworkforclassifyingproblems,opportunities,anddirectives.ItiscalledPIECESbecauseeachofthelettersrepresentoneofsixcategories.P

-theneedtoimproveperformance.I-theneedtoimproveinformation(anddata).E-theneedtoimproveeconomics,controlcosts,orincreaseprofits.C-theneedtoimprovecontrolorsecurity.E-theneedtoimproveefficiencyofpeopleandprocessesS-theneedtoimproveservicetocustomers,suppliers,partners,employees,etc.ThePIECESProblem-SolvingFrameworkThePIECESProblem-SolvingFrameworkThefollowingchecklistforproblem,opportunity,anddirectiveidentificationusesWetherbe'sPIECESframework.NotethatthecategoriesofPIECESarenotmutuallyexclusive;somepossibleproblemsshowupinmultiplelists.Also,thelistofpossibleproblemsisnotexhaustive.ThePIECESframeworkisequallysuitedtoanalyzingbothmanualandcomputerizedsystemsandapplications.PERFORMANCEProblems,Opportunities,andDirectivesA. Throughput–theamountofworkperformedoversomeperiodoftime.B. Responsetime–theaveragedelaybetweenatransactionorrequestandaresponsetothattransactionorrequestINFORMATION(andData)Problems,Opportunities,andDirectivesA. Outputs1. Lackofanyinformation2. Lackofnecessaryinformation3. Lackofrelevantinformation4. Toomuchinformation–``informationoverload''5. Informationthatisnotinausefulformat6. Informationthatisnotaccurate7. Informationthatisdifficulttoproduce8. InformationisnottimelytoitssubsequentuseFAST–ASystemDevelopmentMethodologyThePIECESProblem-SolvingFrameworkINFORMATION(andData)Problems,Opportunities,andDirectivesB. Inputs1. Dataisnotcaptured2. Dataisnotcapturedintimetobeuseful3. Dataisnotaccuratelycaptured--containserrors4. Dataisdifficulttocapture5. Dataiscapturedredundantly--samedatacapturedmorethanonce6. Toomuchdataiscaptured7. IllegaldataiscapturedC. StoredData1. Dataisstoredredundantlyinmultiplefilesand/ordatabases2. Storeddataisnotaccurate(mayberelatedto#1)3. Dataisnotsecuretoaccidentorvandalism(故意破壞)4. Dataisnotwellorganized5. Dataisnotflexible–noteasytomeetnewinformationneedsfromstoreddata6. DataisnotaccessibleFAST–ASystemDevelopmentMethodologyThePIECESProblem-SolvingFrameworkECONOMICSProblems,Opportunities,andDirectivesA. Costs1. Costsareunknown2. Costsareuntraceabletosource3. CostsaretoohighB. Profits1. Newmarketscanbeexplored2. Currentmarketingcanbeimproved3. OrderscanbeincreasedCONTROL(andSecurity)Problems,Opportunities,andDirectivesA. Toolittlesecurityorcontrol1. Inputdataisnotadequatelyedited2. Crimesare(orcanbe)committedagainstdata a. Fraud(欺詐) b. Embezzlement(盜用)3. Ethicsarebreachedondataorinformation–referstodataorinformationlettingtounauthorizedpeople4. RedundantlystoreddataisinconsistentindifferentfilesordatabasesFAST–ASystemDevelopmentMethodologyThePIECESProblem-SolvingFrameworkCONTROL(andSecurity)Problems,Opportunities,andDirectivesA. Toolittlesecurityorcontrol(continued)5. Dataprivacyregulationsorguidelinesarebeing(orcanbe)violated6. Processingerrorsareoccurring(eitherbypeople,machines,orsoftware)7. Decision-makingerrorsareoccurringB. Toomuchsecurityorcontrol1. Bureaucraticredtape(官僚)slowsthesystem2. Controlsinconveniencecustomersoremployees3. ExcessivecontrolscauseprocessingdelaysEFFICIENCYProblems,Opportunities,andDirectivesA. People,machines,orcomputerswastetime1. Dataisredundantlyinputorcopied2. Dataisredundantlyprocessed3. InformationisredundantlygeneratedB. People,machines,orcomputerswastematerialsandsuppliesC. EffortrequiredfortasksisexcessiveD. MaterialsrequiredfortasksisexcessiveFAST–ASystemDevelopmentMethodologyThePIECESProblem-SolvingFrameworkSERVICEProblems,Opportunities,andDirectivesA. ThesystemproducesinaccurateresultsB. ThesystemproducesinconsistentresultsC. ThesystemproducesunreliableresultsD. ThesystemisnoteasytolearnE. ThesystemisnoteasytouseF. ThesystemisawkwardtouseG. ThesystemisinflexibletoneworexceptionalsituationsH. ThesystemisinflexibletochangeI. ThesystemisincompatiblewithothersystemsJ. ThesystemisnotcoordinatedwithothersystemsPHASE3:SYSTEMDESIGN任務(wù):賦予系統(tǒng)分析階段所確定的新系統(tǒng)的功能一種具體的實(shí)現(xiàn)方法和技術(shù)。因此,系統(tǒng)設(shè)計(jì)的主要任務(wù)是依據(jù)系統(tǒng)分析報(bào)告,全面地確定系統(tǒng)應(yīng)具有的功能和性能要求。系統(tǒng)設(shè)計(jì)主要包括總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)活動(dòng)。總體設(shè)計(jì)的主要任務(wù)是構(gòu)造軟件的總體結(jié)構(gòu)、數(shù)據(jù)庫(kù)設(shè)計(jì)、計(jì)算機(jī)硬件軟件和網(wǎng)絡(luò)配置方案設(shè)計(jì);詳細(xì)設(shè)計(jì)包括代碼設(shè)計(jì)、輸入/輸出設(shè)計(jì)、控制設(shè)計(jì)、程序設(shè)計(jì)。PHASE3:SYSTEMDESIGN

DETAILSHOWSYSTEMWILLMEETNEEDS:LOGICALDESIGN:

Components,dataasneededbyapplicationsPHYSICALDESIGN:

Physicallocationofcomponentsanddata*PHASE4:SYSTEMIMPLEMENTATION任務(wù):根據(jù)系統(tǒng)設(shè)計(jì)所提供的控制結(jié)構(gòu)圖、數(shù)據(jù)庫(kù)設(shè)計(jì)、系統(tǒng)配置方案及詳細(xì)設(shè)計(jì)資料,編制和調(diào)試程序、調(diào)試系統(tǒng)、進(jìn)行系統(tǒng)切換等工作,將技術(shù)設(shè)計(jì)轉(zhuǎn)化為物理實(shí)際系統(tǒng)。系統(tǒng)實(shí)施階段包括的活動(dòng)有:編程:根據(jù)每一個(gè)模塊的基本結(jié)構(gòu),用某種計(jì)算機(jī)語(yǔ)言編寫(xiě)其程序代碼。測(cè)試:測(cè)試是程序執(zhí)行的過(guò)程,其目的是盡可能多地發(fā)現(xiàn)軟件中存在的錯(cuò)誤。測(cè)試包括模塊測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試等。用戶培訓(xùn):編寫(xiě)用戶操作手冊(cè)。新舊系統(tǒng)之間的切換PHASE4:SYSTEMIMPLEMENTATIONPROGRAMMING:

TranslatingneedstoprogramcodeTESTING:

Doessystemproducedesiredresults?CONVERSION:Changingfromtheoldtothenew*PHASE5:SYSTEMMAINTENANCE系統(tǒng)維護(hù)(SystemsMaintenance)的任務(wù):系統(tǒng)的日常運(yùn)行管理,評(píng)價(jià)系統(tǒng)的運(yùn)行效率,使之能正常地運(yùn)作。輸入是產(chǎn)品信息系統(tǒng)以及在使用該系統(tǒng)中所產(chǎn)生的各種問(wèn)題。系統(tǒng)維護(hù)是一個(gè)再造軟件工程的過(guò)程(包括逆向軟件工程和正向軟件工程)。系統(tǒng)支持包括校正性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù)。瀑布模型的特點(diǎn):結(jié)構(gòu)簡(jiǎn)單明了;歷史較長(zhǎng)、應(yīng)用面廣泛、為廣大軟件工作者所熟悉;已有與之配套的一組十分成熟的開(kāi)發(fā)方法和豐富的支撐工具。確定了需求分析的絕對(duì)重要性,但是在實(shí)踐中要想獲得完善的需求說(shuō)明是非常困難的;反饋信息慢。強(qiáng)調(diào)階段的劃分及其順序性各階段工作及其文檔的完備性是一種嚴(yán)格線性的、按階段順序的、逐步細(xì)化的開(kāi)發(fā)模式。3.1瀑布模型(WaterfallModel)2.瀑布模型的基本原則:原則1:用戶積極參與用戶的作用是什么?用戶(User)能否積極參與信息系統(tǒng)的開(kāi)發(fā),是信息系統(tǒng)開(kāi)發(fā)能否成功的一個(gè)關(guān)鍵的、絕對(duì)必要的因素。作為系統(tǒng)開(kāi)發(fā)人員必須準(zhǔn)確而有恰當(dāng)?shù)乩斫庥脩舻男枨?并將他(她)所理解的需求通過(guò)計(jì)算機(jī)來(lái)實(shí)現(xiàn)。要做到這一點(diǎn),必須經(jīng)常與用戶溝通,將他所理解的用戶需求用特定的語(yǔ)言描述出來(lái),并反饋給用戶,用戶再提出進(jìn)一步的修改意見(jiàn),……經(jīng)過(guò)幾個(gè)反復(fù),最終形成一個(gè)明確的用戶需求。因此,在系統(tǒng)開(kāi)發(fā)過(guò)程中,用戶與系統(tǒng)開(kāi)發(fā)人員之間的溝通是很關(guān)鍵的。語(yǔ)言上的溝通困難,理解上的不一致,一直是信息系統(tǒng)開(kāi)發(fā)專家們多年來(lái)尋求能夠很好地解決的一個(gè)問(wèn)題。3.1瀑布模型(WaterfallModel)原則2:自頂向下,分而治之:階段活動(dòng)作業(yè),嚴(yán)格按劃分的階段進(jìn)行系統(tǒng)開(kāi)發(fā)結(jié)構(gòu)化方法對(duì)項(xiàng)目進(jìn)行控制的一個(gè)基本原則就是運(yùn)用系統(tǒng)處理方法,將系統(tǒng)開(kāi)發(fā)的全過(guò)程采取“分而治之”的策略。其具體的辦法就是將整個(gè)系統(tǒng)的開(kāi)發(fā)過(guò)程分為一系列“階段”,每一個(gè)階段都規(guī)定了明確的任務(wù)和應(yīng)該完成的文檔。每一個(gè)階段結(jié)束后均應(yīng)從功能、預(yù)算、進(jìn)度、質(zhì)量等方面重新評(píng)估所開(kāi)發(fā)系統(tǒng)的可行性,避免由于系統(tǒng)開(kāi)發(fā)的失敗造成更大的損失。結(jié)構(gòu)化方法以瀑布模型為基礎(chǔ),按工程學(xué)的原理管理和組織信息系統(tǒng)開(kāi)發(fā)。結(jié)構(gòu)化方法的各階段之間基本上是一種線性的順序依賴關(guān)系,即前一個(gè)階段的結(jié)果是后一階段的工作依據(jù)。3.1瀑布模型(WaterfallModel)原則3:強(qiáng)調(diào)系統(tǒng)的觀點(diǎn)從理論上講,任何一個(gè)系統(tǒng)都是某一個(gè)大系統(tǒng)的一部分(即子系統(tǒng));同樣,任何一個(gè)系統(tǒng)都是由一系列更小的子系統(tǒng)組成的。因此,為了更好地理解一個(gè)大型的系統(tǒng),通常采用“分而治之(divideandconquer)”的辦法,即將大系統(tǒng)分解為一系列子系統(tǒng),將子系統(tǒng)分解為更小的、更易于理解的子系統(tǒng),……直至所有的子系統(tǒng)更容易理解為止。3.1瀑布模型(WaterfallModel)原則4:文檔標(biāo)準(zhǔn)化定義:文檔(Document)是一種數(shù)據(jù)媒體和媒體上所記錄的信息。在信息系統(tǒng)開(kāi)發(fā)中,文檔被用來(lái)描述或表示對(duì)開(kāi)發(fā)活動(dòng)、需求、過(guò)程或結(jié)果進(jìn)行描述、定義、規(guī)定、報(bào)告或認(rèn)證的任何書(shū)面或圖示的信息為什么要文檔標(biāo)準(zhǔn)化(文檔的作用)1.文檔是現(xiàn)代軟件產(chǎn)品的一個(gè)重要組成部分。從幾十年來(lái)人們對(duì)軟件產(chǎn)品的認(rèn)識(shí)不難看出,文檔已成為軟件產(chǎn)品必不可少的組成部分。2.文檔是通訊和交流的手段。3.文檔對(duì)信息系統(tǒng)的開(kāi)發(fā)過(guò)程有重要的控制作用。4.文檔是進(jìn)行系統(tǒng)維護(hù)的依據(jù)。3.1瀑布模型(WaterfallModel)高質(zhì)量的文檔應(yīng)當(dāng)體現(xiàn)在以下一些方面:

1.針對(duì)性;文檔編制以前應(yīng)分清讀者對(duì)象,按不同的類型、不同層次的讀者,決定怎樣適應(yīng)他們的需要。例如,管理文檔主要是面向管理人員的,用戶文檔主要是面向用戶的,這兩類文檔不應(yīng)像開(kāi)發(fā)文檔(面向軟件開(kāi)發(fā)人員)那樣過(guò)多地使用軟件的專業(yè)術(shù)語(yǔ)。

2.精確性:文檔的行文應(yīng)當(dāng)十分確切,不能出現(xiàn)多義性的描述。同一課題若干文檔內(nèi)容應(yīng)該協(xié)調(diào)一致,應(yīng)是沒(méi)矛盾的。

3.清晰性:文檔編寫(xiě)應(yīng)力求簡(jiǎn)明,如有可能,配以適當(dāng)?shù)膱D表,以增強(qiáng)其清晰性。

3.1瀑布模型(WaterfallModel)

4.完整性:任何一個(gè)文檔都應(yīng)當(dāng)是完整的、獨(dú)立的,它應(yīng)自成體系。例如,前言部分應(yīng)作一般性介紹,正文給出中心內(nèi)容,必要時(shí)還有附錄,列出參考資料等。同一課題的幾個(gè)文檔之間可能有些部分相同,這些重復(fù)是必要的。例如,同一項(xiàng)目的用戶手冊(cè)和操作手冊(cè)中關(guān)于本項(xiàng)目功能、性能、實(shí)現(xiàn)環(huán)境等方面的描述是沒(méi)有差別的。特別要避免在文檔中出現(xiàn)轉(zhuǎn)引其它文檔內(nèi)容的情況。比如,一些段落并未具體描述,而用“見(jiàn)××文檔××節(jié)”的方式,這將給讀者帶來(lái)許多不便。

3.1瀑布模型(WaterfallModel)

5.靈活性:各個(gè)不同的軟件項(xiàng)目,其規(guī)模和復(fù)雜程度有著許多實(shí)際差別,不能一律看待。對(duì)于較小的或比較簡(jiǎn)單的項(xiàng)目,可做適當(dāng)調(diào)整或合并。比如,可將用戶手冊(cè)和操作手冊(cè)合并成用戶操作手冊(cè);軟件需求說(shuō)明書(shū)可包括對(duì)數(shù)據(jù)的要求,從而去掉數(shù)據(jù)要求說(shuō)明書(shū);概要設(shè)計(jì)說(shuō)明書(shū)與詳細(xì)設(shè)計(jì)說(shuō)明書(shū)合并成軟件設(shè)計(jì)說(shuō)明書(shū)等。

6.可追溯性;由于各開(kāi)發(fā)階段編制的文檔與各階段完成的工作有著緊密的關(guān)系,前后兩個(gè)階段生成的文檔,隨著開(kāi)發(fā)工作的逐步擴(kuò)展,具有一定的繼承關(guān)系。在一個(gè)項(xiàng)目各開(kāi)發(fā)階段之間提供的文檔必定存在著可追溯的關(guān)系。例如,某一項(xiàng)軟件需求,必定在設(shè)計(jì)說(shuō)明書(shū),測(cè)試計(jì)劃以至用戶手冊(cè)中有所體現(xiàn)。必要時(shí)應(yīng)能做到跟蹤追查。3.1瀑布模型(WaterfallModel)可行性研究報(bào)告;

項(xiàng)目開(kāi)發(fā)計(jì)劃;軟件需求說(shuō)明書(shū);數(shù)據(jù)要求說(shuō)明書(shū);概要設(shè)計(jì)說(shuō)明書(shū);詳細(xì)設(shè)計(jì)說(shuō)明書(shū);數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書(shū);用戶手冊(cè);操作手冊(cè);模塊開(kāi)發(fā)卷宗;測(cè)試計(jì)劃;測(cè)試分析報(bào)告;開(kāi)發(fā)進(jìn)度月報(bào);項(xiàng)目開(kāi)發(fā)總結(jié)報(bào)告。計(jì)算機(jī)軟件產(chǎn)品開(kāi)發(fā)文件編制指南(GB8567-88)表1軟件生存周期各階段中的文件編制

原則5:推遲實(shí)現(xiàn)的觀點(diǎn)(邏輯獨(dú)立性原則)對(duì)于有一定規(guī)模的軟件,編碼越早,完成的時(shí)間反而會(huì)更長(zhǎng),甚至導(dǎo)致不可挽回的失敗。這是為無(wú)數(shù)事例所證實(shí)了的。結(jié)構(gòu)化生命周期法的一個(gè)主要的特點(diǎn)就是邏輯設(shè)計(jì)與物理設(shè)計(jì)分開(kāi),從而大大提高了系統(tǒng)的正確性、可靠性和可維護(hù)性。邏輯設(shè)計(jì)和物理設(shè)計(jì)分開(kāi)進(jìn)行是結(jié)構(gòu)化方法學(xué)的一個(gè)基本原則。邏輯設(shè)計(jì)與物理設(shè)計(jì)分開(kāi)進(jìn)行,有利于開(kāi)發(fā)人員更準(zhǔn)確地抽象出系統(tǒng)的本質(zhì)特征和功能,另外邏輯設(shè)計(jì)所產(chǎn)生的邏輯模型相對(duì)比較穩(wěn)定,按照這種模型所開(kāi)發(fā)的系統(tǒng)具有較好的靈活性和適應(yīng)性。邏輯模型相對(duì)比較穩(wěn)定物理實(shí)現(xiàn)手段具有多樣性、多變性

3.1瀑布模型(WaterfallModel)FrederickP.BrooksJr.在《人月神話》中深刻地批評(píng)了瀑布模型的錯(cuò)誤,他認(rèn)為:瀑布模型的基本謬誤是它假設(shè)項(xiàng)目只經(jīng)歷一次過(guò)程,而且體系結(jié)構(gòu)出色并且易于使用,設(shè)計(jì)是合理可靠的。換言之,瀑布模型假設(shè)所有的錯(cuò)誤發(fā)生在編碼實(shí)現(xiàn)階段。瀑布模型的第二個(gè)謬誤是它假設(shè)整個(gè)系統(tǒng)一次性地被構(gòu)建,在所有的設(shè)計(jì)、大部分編碼、部分單元測(cè)試完成之后,才為閉環(huán)的系統(tǒng)測(cè)試合并各個(gè)部分。

3.1瀑布模型(WaterfallModel)(1)優(yōu)點(diǎn)階段的順序性和依賴性。前一個(gè)階段的完成是后一個(gè)階段工作的前提和依據(jù),而后一階段的完成往往又使前一階段的成果在實(shí)現(xiàn)過(guò)程中具體了一個(gè)層次。逐步求精的結(jié)構(gòu)化思路。整個(gè)系統(tǒng)的開(kāi)發(fā)乃至每一階段的工作,體現(xiàn)出“自頂向下、逐步求精”的結(jié)構(gòu)化技術(shù)特點(diǎn)。推遲實(shí)現(xiàn)的觀點(diǎn)。質(zhì)量保證措施。文檔是通訊的手段,是開(kāi)發(fā)工作的依據(jù),也是維護(hù)階段的重要支持信息。每一個(gè)階段對(duì)文檔的復(fù)審,就是對(duì)本階段工作成果的評(píng)定,使錯(cuò)誤較難傳遞到下一階段。錯(cuò)誤糾正得越早,所造成的損失就越少。3.1瀑布模型(WaterfallModel)(2)缺點(diǎn)結(jié)構(gòu)化SDLC是一種預(yù)先定義需求的方法,也就是說(shuō),采用該方法的基本前提是必須能夠在早期就凍結(jié)用戶的需求。因此,該方法只適應(yīng)于可以在早期階段就完全確定用戶需求的項(xiàng)目。然后在實(shí)際中要做到這一點(diǎn)往往是不現(xiàn)實(shí)的,用戶很難準(zhǔn)確地陳述其需求。該方法存在的另一個(gè)缺陷是未能很好地解決系統(tǒng)分析到系統(tǒng)設(shè)計(jì)之間的鴻溝(gap)。通訊是一個(gè)主要的問(wèn)題。該方法文檔的編寫(xiě)工作量極大,隨著開(kāi)發(fā)工作的進(jìn)行,這些文檔需要及時(shí)更新,從而會(huì)延長(zhǎng)系統(tǒng)的開(kāi)發(fā)周期。雖然目前已有很多CASE工具可以支持這一工作,但仍需要很大程度的人工參與。3.1瀑布模型(WaterfallModel)(3)適用范圍結(jié)構(gòu)化SDLC以瀑布模型為基礎(chǔ),按工程學(xué)的原理組織和管理信息系統(tǒng)開(kāi)發(fā)。由于結(jié)構(gòu)化SDLC的各階段之間基本上是一種線性的順序關(guān)系,即前一個(gè)階段的結(jié)果是后一階段的工作基礎(chǔ),因此,結(jié)構(gòu)化SDLC不允許有返工的情況發(fā)生。運(yùn)用瀑布模型的前提是能夠早期凍結(jié)用戶的需求。其適用范圍包括:開(kāi)發(fā)早期能夠凍結(jié)用戶需求;組織結(jié)構(gòu)穩(wěn)定,業(yè)務(wù)處理過(guò)程相對(duì)比較規(guī)范、成熟、定型的企業(yè)信息系統(tǒng),需求比較明確、穩(wěn)定;系統(tǒng)規(guī)模大、功能與數(shù)據(jù)關(guān)系復(fù)雜的大型系統(tǒng)。

3.1瀑布模型(WaterfallModel)2.3.4原型模型(Prototyping)1.快速原型法產(chǎn)生的背景和原因基于瀑布模型的結(jié)構(gòu)化SDLC有很多缺陷,其中最大的一個(gè)缺點(diǎn)是運(yùn)用該方法的前提是需要早期凍結(jié)用戶的需求,事實(shí)上,對(duì)于很多應(yīng)用系統(tǒng)(如商業(yè)信息系統(tǒng))來(lái)講,用戶要想在項(xiàng)目開(kāi)發(fā)初期就非常清楚地陳述其需求幾乎是不可能的;錯(cuò)誤形成的越早,對(duì)整個(gè)系統(tǒng)的影響越嚴(yán)重等等。而且大量事實(shí)表明:用戶需求定義方面的錯(cuò)誤是信息系統(tǒng)開(kāi)發(fā)中出現(xiàn)的后果最嚴(yán)重的錯(cuò)誤,這意味著傳統(tǒng)的SDLC方法不允許失敗(尤其是早期的!)。那么,為什么要使用原型法呢?原因有以下幾方面:為了構(gòu)造一個(gè)工作演示模型以便從用戶取得反饋意見(jiàn)。為了得到一個(gè)更直觀、更形象的東西。為了能及早發(fā)現(xiàn)系統(tǒng)開(kāi)發(fā)的難點(diǎn)。2.3.4原型模型

(Prototyping)2.3.4原型模型(Prototyping)2、什么是原型?原型(prototype)即樣品、模型的意思。原型分為三類:拋棄式,目的達(dá)到即被拋棄,原型不作為最終產(chǎn)品;原型作為標(biāo)識(shí)軟件需求的一種機(jī)制,原型被建造僅是為了定義需求,之后就該被拋棄(或至少部分拋棄)2.3.4原型模型(Prototyping)演化式,系統(tǒng)的形成和發(fā)展是逐步完成的,它是高度動(dòng)態(tài)迭代和高度動(dòng)態(tài)的,每次迭代都要對(duì)系統(tǒng)重新進(jìn)行規(guī)格說(shuō)明、重新設(shè)計(jì)、重新實(shí)現(xiàn)和重新評(píng)價(jià),所以是對(duì)付變化最為有效的方法,這也是與瀑布開(kāi)發(fā)的主要不同點(diǎn);增量式,系統(tǒng)是一次一段地增量構(gòu)造,與演化式原型的最大區(qū)別在于增量式開(kāi)發(fā)是在軟件總體設(shè)計(jì)基礎(chǔ)上進(jìn)行的。很顯然,其對(duì)付變化比演化式差。2.3.4原型模型(Prototyping)做原型的好處:

原型是動(dòng)態(tài)的。

原型有助于開(kāi)發(fā)與用戶友好的人機(jī)界面。

原型有助于發(fā)現(xiàn)需求方面的誤解。

原型有助于檢驗(yàn)侯選的設(shè)計(jì)方案。

原型有助于早些提供使用。4原型模型(Prototyping)3.什么是原型法?

快速原型法(RapidPrototyping)是用于開(kāi)發(fā)某種產(chǎn)品或其組成部件的一個(gè)小規(guī)模工作模型(即原型)所使用的一種非常流行的工程技術(shù)。對(duì)于信息系統(tǒng)開(kāi)發(fā)而言,快速原型法是指用戶的需求被提取、表示,并快速地構(gòu)造一個(gè)最終系統(tǒng)的、具有進(jìn)化能力的工作模型,并逐步發(fā)展和完善該模型。2.3.4原型模型

(Prototyping)Process

ofBuildingExperimentalSystemtoDemonstrate,EvaluateApproach;UsersRefineNeeds.PROTOTYPE:

Preliminaryworkingversionofinformationsystemfordemonstration,evaluationpurposesITERATIVEPROCESS*4、STEPSINPROTOTYPING(1)IDENTIFYUSER’SREQUIREMENTS(2)DEVELOPPROTOTYPE(3)USEPROTOTYPE(4)REVISE&ENHANCEROTOTYPE

2.3.4原型模型

(Prototyping)需求分析

快速設(shè)計(jì)建立原型

用戶評(píng)價(jià)原型

修改原型

生成產(chǎn)品

BernardBoar于1984年提出的原型法系統(tǒng)開(kāi)發(fā)生命周期

2.3.4原型模型

(Prototyping)原型模型聽(tīng)取用戶意見(jiàn)建造/修改原型用戶測(cè)試運(yùn)行原型2.3.4原型模型

(Prototyping)5.快速原型法的優(yōu)缺點(diǎn)快速原型法的優(yōu)點(diǎn)是:減少了開(kāi)發(fā)時(shí)間,大大提高了系統(tǒng)開(kāi)發(fā)效率。這主要是由于最終用戶更加積極地參與系統(tǒng)的開(kāi)發(fā),尤其是信息系統(tǒng)需求的確定。由于用戶在看到原型以前往往很難理解和詳細(xì)陳述其需求,而且用戶所看到的是實(shí)際的工作模型而不是用單調(diào)的語(yǔ)言或圖來(lái)描述的需求,因此,通過(guò)快速原型法使信息需求的定義工作更為直觀、簡(jiǎn)單。通過(guò)一系列對(duì)原型的修改和完善,大大增加了用戶對(duì)設(shè)計(jì)的滿意程度,進(jìn)而提高了信息系統(tǒng)的質(zhì)量。減少了系統(tǒng)開(kāi)發(fā)費(fèi)用。2.3.4原型模型(Prototyping)快速原型法的缺點(diǎn)是:分析和設(shè)計(jì)上的深度不夠,從而可能造成在未能很好地理解用戶需求的情況下就著手程序代碼的編寫(xiě)。快速原型法中的第一個(gè)工作原型可能并不是一個(gè)最優(yōu)方案。通過(guò)快速原型法所開(kāi)發(fā)的系統(tǒng)不具備靈活性,以適應(yīng)用戶需求的變化。工作原型不見(jiàn)得容易修改。2.3.4原型模型(Prototyping)6.應(yīng)用快速原型法的前提系統(tǒng)需求在系統(tǒng)開(kāi)發(fā)以前不能準(zhǔn)確地加以陳述和說(shuō)明,用戶需求變化較快,無(wú)需早期凍結(jié)用戶需求。有快速的系統(tǒng)建造工具。應(yīng)用生成器(AG)、第四代生成語(yǔ)言(4GL)、計(jì)算機(jī)輔助軟件工程CASE等,都是原型化方法的有力支持工具。2.3.4原型模型(Prototyping)需要實(shí)際的、可供用戶參與的系統(tǒng)模型。文字和靜態(tài)圖形是一種比較好的通訊工具,然而其最大缺點(diǎn)是缺乏直觀的、感性的特征,因而往往不易理解對(duì)象的全部含義。交互式系統(tǒng)能夠提供生動(dòng)活潑的規(guī)格說(shuō)明,用戶見(jiàn)到的是一個(gè)“活”的、運(yùn)行著的系統(tǒng)。理解紙面上的系統(tǒng),操作在機(jī)器上運(yùn)行的系統(tǒng),其差別是十分顯著的。用戶能夠積極地參與系統(tǒng)的開(kāi)發(fā)。需要有一個(gè)原型工作環(huán)境。具有一批具有豐富的問(wèn)題域知識(shí)和開(kāi)發(fā)經(jīng)驗(yàn)的開(kāi)發(fā)人員。2.3.4原型模型(Prototyping)在實(shí)際工作中,可以將這兩種方法有機(jī)地結(jié)合在一起使用。運(yùn)用快速原型法提取用戶需求,一旦需求確定后,可以運(yùn)用結(jié)構(gòu)化SDLC的方法按部就班地開(kāi)展以后幾個(gè)階段的開(kāi)發(fā)工作。2.3小結(jié)2.4信息系統(tǒng)開(kāi)發(fā)方法學(xué)內(nèi)容概要:信息系統(tǒng)開(kāi)發(fā)方法學(xué)概論結(jié)構(gòu)化方法的基本原理面向?qū)ο蠓椒ǖ幕靖拍詈驮斫Y(jié)構(gòu)化方法與面向?qū)ο蠓椒ǖ谋容^方法學(xué):方法學(xué)(Methodology)是一組思路、規(guī)范、過(guò)程、技術(shù)、環(huán)境及工具的集成,是認(rèn)識(shí)和描述系統(tǒng)的一套完整的思路。軟件工程方法為軟件開(kāi)發(fā)供了“如何做”的技術(shù),是完成軟件工程項(xiàng)目的技術(shù)手段.結(jié)構(gòu)化方法學(xué):自頂向下、逐步求精信息工程方法學(xué):面向?qū)ο蠓椒▽W(xué):歸納→演繹[注意]上述方法學(xué)既可以按照結(jié)構(gòu)化SDLC的思路來(lái)組織軟件的開(kāi)發(fā),也可以按照快速原型法的思路來(lái)進(jìn)行,或者按照其它的軟件開(kāi)發(fā)模式進(jìn)行。2.4信息系統(tǒng)開(kāi)發(fā)方法學(xué)不同方法的不同之處主要體現(xiàn)在以下兩個(gè)方面:⑴對(duì)問(wèn)題空間和求解空間的結(jié)構(gòu)描述方法不同。這種結(jié)構(gòu)主要體現(xiàn)在以下兩個(gè)方面:構(gòu)成系統(tǒng)的基本要素不同。例如,結(jié)構(gòu)化方法認(rèn)為組成系統(tǒng)的基本要素是“過(guò)程”(模塊);信息工程方法認(rèn)為組成系統(tǒng)的基本要素是“數(shù)據(jù)”;面向?qū)ο蠓椒ㄕJ(rèn)為組成系統(tǒng)的基本要素為“對(duì)象”。系統(tǒng)要素之間的聯(lián)系方式不同。例如,結(jié)構(gòu)化方法是按“自頂向下、逐步求精”的方法來(lái)描述問(wèn)題空間和求解空間的,;而面向?qū)ο蠓椒▌t是一種“歸納演繹”的過(guò)程,即由特殊(通過(guò)抽象)一般,一般(通過(guò)繼承)特殊。因此,面向?qū)ο蠓椒ㄒ话阏f(shuō)通過(guò)自底向上的方法來(lái)歸納描述問(wèn)題空間的。2.4信息系統(tǒng)開(kāi)發(fā)方法學(xué)⑵分析與設(shè)計(jì)階段的過(guò)渡方式不同。一種好的、生命力強(qiáng)的信息系統(tǒng)開(kāi)發(fā)方法學(xué)的根本就在于所建立的映射是一個(gè)“同構(gòu)關(guān)系(Isomorphism)”,通過(guò)該同構(gòu)關(guān)系,使問(wèn)題空間與求解空間之間保持結(jié)構(gòu)上的一致。同構(gòu)關(guān)系的實(shí)質(zhì)是盡可能接近人類的思維方式。映射增量2.4信息系統(tǒng)開(kāi)發(fā)方法學(xué)結(jié)構(gòu)化方法學(xué)亦稱之為面向過(guò)程的方法或以過(guò)程為驅(qū)動(dòng)的方法(Process-driven),或數(shù)據(jù)流建模方法。該方法產(chǎn)生于70七十年代中期,包括三個(gè)方面的內(nèi)容:結(jié)構(gòu)化程序設(shè)計(jì)SP(StructuredProgramming)、結(jié)構(gòu)化分析SA(StructuredAnalysis)和結(jié)構(gòu)化設(shè)計(jì)SD(StructuredDesign)。結(jié)構(gòu)化方法(StructuredMethodology)又稱為數(shù)據(jù)流建模方法(DataFlowModelingMethodology)?!敖Y(jié)構(gòu)化”的含義是指“嚴(yán)格的、可重復(fù)的、可度量的”。結(jié)構(gòu)化方法是從數(shù)據(jù)流的角度將業(yè)務(wù)問(wèn)題分解為可管理的、相互關(guān)聯(lián)的子問(wèn)題,然后再將這些子問(wèn)題的解綜合成為整個(gè)業(yè)務(wù)問(wèn)題解的一系列技術(shù)的總稱。2.4信息系統(tǒng)開(kāi)發(fā)方法學(xué)結(jié)構(gòu)化方法學(xué)的原理和思想概括起來(lái)就是:自頂向下、逐步求精。模塊自頂向下的結(jié)構(gòu)是根據(jù)一定的設(shè)計(jì)原則獲得的。模塊化設(shè)計(jì)。所謂模塊化設(shè)計(jì),即將軟件分解為一組盡可能功能獨(dú)立的模塊。模塊化原理使得軟件結(jié)構(gòu)更加清晰,易理解,易測(cè)試,易修改,從而提高了軟件的可靠性。另外,模塊化也有助于程序從個(gè)體化開(kāi)發(fā)方式向集體化開(kāi)發(fā)方式的轉(zhuǎn)化,有助于軟件開(kāi)發(fā)工程的組織和管理。信息隱藏。2.4信息系統(tǒng)開(kāi)發(fā)方法學(xué)信息工程方法又稱面向數(shù)據(jù)(data-orient方法,是一種根據(jù)系統(tǒng)數(shù)據(jù)的組織和存取來(lái)建立系統(tǒng)模型的一種技術(shù)。該方法也稱之為以數(shù)據(jù)為驅(qū)動(dòng)的方法(Data-driven)。數(shù)據(jù)建模技術(shù)和信息工程就是該方法的典型代表。該方法的代表性技術(shù)和工具有實(shí)體關(guān)系圖(Entity-RelationshipDiagram),業(yè)務(wù)域分析(BusinessAreaAnalysis),信息模型(InformationModel)等。數(shù)據(jù)建模技術(shù):數(shù)據(jù)建模技術(shù)是在八十年代初期,由于數(shù)據(jù)庫(kù)管理系統(tǒng)在企業(yè)管理中的作用日益突出的背景下出現(xiàn)的。該技術(shù)是從信息(數(shù)據(jù))的角度而不是功能(過(guò)程)來(lái)開(kāi)發(fā)信息系統(tǒng)的。在該技術(shù)中,現(xiàn)實(shí)世界被描述為是由數(shù)據(jù)、數(shù)據(jù)屬性及其之間的關(guān)系組成的。

2.4信息系統(tǒng)開(kāi)發(fā)方法學(xué)信息工程:信息工程IE(InformationEngineering)的倡導(dǎo)者JamesMartin對(duì)信息工程的定義是:在一個(gè)企業(yè)或企業(yè)的主要部門(mén)中,關(guān)于信息系統(tǒng)規(guī)劃、分析、設(shè)計(jì)和構(gòu)成的一套相互關(guān)聯(lián)的、環(huán)環(huán)緊扣的正規(guī)化、自動(dòng)化技術(shù)集合的應(yīng)用,稱為IE。使用這套技術(shù),使用這套技術(shù),使得企業(yè)模型、數(shù)據(jù)模型和業(yè)務(wù)過(guò)程模型在一個(gè)綜合的知識(shí)庫(kù)中建立起來(lái),用于創(chuàng)建和維護(hù)數(shù)據(jù)處理系統(tǒng)。IE是一種數(shù)據(jù)驅(qū)動(dòng)的、但同時(shí)也強(qiáng)調(diào)過(guò)程的技術(shù)。它首先建立數(shù)據(jù)模型,然后再建立過(guò)程模型。除了將過(guò)程建模和數(shù)據(jù)建模有機(jī)地結(jié)合起來(lái)以外,信息工程更強(qiáng)調(diào)系統(tǒng)規(guī)劃(SystemPlanning)的重要性。

2.4信息系統(tǒng)開(kāi)發(fā)方法學(xué)JamesMartin指出,應(yīng)用信息工程方法的首要前提是:在現(xiàn)代數(shù)據(jù)處理中,要以數(shù)據(jù)為中心,數(shù)據(jù)的存儲(chǔ)和管理是通過(guò)各種數(shù)據(jù)系統(tǒng)軟件來(lái)支持的。數(shù)據(jù)處理包括:數(shù)據(jù)的創(chuàng)建、數(shù)據(jù)的更新、文件的生成、各種綜合、分析圖表和報(bào)表的生成、“What-if”分析和決策、信息檢索以及審查。2.4信息系統(tǒng)開(kāi)發(fā)方法學(xué)面向?qū)ο蟮姆治龊驮O(shè)計(jì)方法出現(xiàn)于八十年代中期和后期,由于一批面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言如SmallTalk、C++、ObjectC以及Eiffel越來(lái)越多地被人們用于系統(tǒng)開(kāi)發(fā)中。面向?qū)ο蠓椒ㄔ诮鉀Q問(wèn)題的風(fēng)范(Paradigm)上是與傳統(tǒng)的結(jié)構(gòu)化方法迥然不同。傳統(tǒng)的結(jié)構(gòu)化方法遵循結(jié)構(gòu)化、確定性、順序的風(fēng)格,而面向?qū)ο蠓椒▌t運(yùn)用了對(duì)象(類)、屬性、消息、封裝、繼承以及多態(tài)等概念和機(jī)制來(lái)描述系統(tǒng)。面向?qū)ο蠓椒ㄊ且环N運(yùn)用對(duì)象、類、繼承、封裝、聚集、消息傳遞、多態(tài)性等概念來(lái)構(gòu)造系統(tǒng)的軟件開(kāi)發(fā)方法。我們認(rèn)識(shí)一個(gè)系統(tǒng)是一個(gè)漸進(jìn)的過(guò)程,是在繼承了以往的有關(guān)知識(shí)的基礎(chǔ)上,多次迭代往復(fù)而逐步深化的。在這種認(rèn)識(shí)的深化過(guò)程中,即包括了從一般到特殊的演繹,也包括了從特殊到一般的歸納。2.4信息系統(tǒng)開(kāi)發(fā)方法學(xué)注意:方法學(xué)的產(chǎn)生與發(fā)展與計(jì)算模式的發(fā)展有密不可分的關(guān)系。2.4信息系統(tǒng)開(kāi)發(fā)方法學(xué)結(jié)構(gòu)化技術(shù)的發(fā)展歷史結(jié)構(gòu)化技術(shù)的基本原理結(jié)構(gòu)化技術(shù)的組成結(jié)構(gòu)化技術(shù)中存在的問(wèn)題2.4.1結(jié)構(gòu)化方法學(xué)1.軟件危機(jī)(SoftwareCrisis)特征:程序可讀性很差、程序的可維護(hù)性極差、軟件生產(chǎn)率低下原因:程序的結(jié)構(gòu)差、采用自底向上的開(kāi)發(fā)方法、軟件越來(lái)越復(fù)雜2.結(jié)構(gòu)化程序設(shè)計(jì)SP的產(chǎn)生1966年,Bohn和Jacopini提出了結(jié)構(gòu)化程序設(shè)計(jì)的理論,其基本思想是:每一個(gè)程序都應(yīng)按照一定的基本結(jié)構(gòu)來(lái)組織,這些基本結(jié)構(gòu)包括順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。結(jié)構(gòu)化程序設(shè)計(jì)很快成為一種標(biāo)準(zhǔn)。結(jié)構(gòu)化方法的發(fā)展歷史2.結(jié)構(gòu)化程序設(shè)計(jì)SP的產(chǎn)生(續(xù))問(wèn)題:結(jié)構(gòu)化程序設(shè)計(jì)思路忽略了整個(gè)軟件的總體結(jié)構(gòu)。未能從全局的角度去考慮軟件中各個(gè)模塊之間的關(guān)系,使得用這種方法設(shè)計(jì)出來(lái)的系統(tǒng)缺乏靈活性和可維護(hù)性,并且可靠性和效率極差,從而影響了軟件系統(tǒng)的質(zhì)量。結(jié)構(gòu)化方法的發(fā)展歷史軟件工程(SoftwareEngineering)1968年,北大西洋公約組織,F(xiàn)ritzBauer提出基本思想:將系統(tǒng)工程的原理運(yùn)用到軟件開(kāi)發(fā)中去,目的是要解決“如何以低成本、按計(jì)劃、高效率地生產(chǎn)出高質(zhì)量的軟件”,實(shí)現(xiàn)軟件開(kāi)發(fā)由手工作坊向工程化方向發(fā)展。運(yùn)用系統(tǒng)的、規(guī)范的、可定量的方法來(lái)開(kāi)發(fā)、運(yùn)行和維護(hù)軟件。結(jié)構(gòu)化方法的發(fā)展歷史3.結(jié)構(gòu)化設(shè)計(jì)SD(StructuredDesign)結(jié)構(gòu)化設(shè)計(jì)(StructuredDesign,簡(jiǎn)稱SD)的概念和理論源于結(jié)構(gòu)化程序設(shè)計(jì)SP。結(jié)構(gòu)化設(shè)計(jì)最早是在七十年代中期,LarryConstantine在IBMSystemJournal上所發(fā)表的一篇奠基性的文章“結(jié)構(gòu)化設(shè)計(jì)”中提出的。此后,由GlenfordMeyers,EdwardYourdon,MichaelJackson,MeilierJones等人在此基礎(chǔ)上進(jìn)一步發(fā)展了這一理論。此后逐步成為一種頗為流行的信息系統(tǒng)開(kāi)發(fā)方法。結(jié)構(gòu)化方法的發(fā)展歷史4.結(jié)構(gòu)化分析SA(StructuredAnalysis)結(jié)構(gòu)化分析(StructuredAnalysis,簡(jiǎn)稱SA)產(chǎn)生于1975年。結(jié)構(gòu)化分析的提倡者有TomDemarco,ChrisGane,TrishSarson以及EDYourdon等人。所謂結(jié)構(gòu)化分析SA是以過(guò)程為中心的、建立系統(tǒng)用戶需求模型的技術(shù)。結(jié)構(gòu)化分析將系統(tǒng)分解為過(guò)程、輸入、輸出和文件,它為業(yè)務(wù)問(wèn)題建立了一種面向輸入-處理過(guò)程-輸出的模型。結(jié)構(gòu)化方法的發(fā)展歷史結(jié)構(gòu)化技術(shù)的成果:將軟件開(kāi)發(fā)視之為一項(xiàng)工程,而不僅僅是程序的設(shè)計(jì)以結(jié)構(gòu)化技術(shù)作為軟件工程的主要技術(shù)。結(jié)構(gòu)化方法的發(fā)展歷史思路:自頂向下,逐步求精;先整體,再局部結(jié)構(gòu)化方法應(yīng)遵循以下原則:抽象原則形式化原則分解原則層次組織原則信息隱藏原則模塊化原則邏輯獨(dú)立性原則結(jié)構(gòu)化方法的基本原理原則1——抽象原則抽象(Abstract)是一種忽略與系統(tǒng)目標(biāo)無(wú)關(guān)的問(wèn)題域,從而集中于與當(dāng)前系統(tǒng)目標(biāo)有關(guān)的問(wèn)題域的機(jī)制。在系統(tǒng)分析與設(shè)計(jì)中,抽象是為了更好地識(shí)別本質(zhì)的信息系統(tǒng)需求。結(jié)構(gòu)化方法學(xué)的三個(gè)組成部分;結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)、結(jié)構(gòu)化程序設(shè)計(jì)實(shí)際上都是在不同層次上對(duì)問(wèn)題的一種抽象。參見(jiàn)圖3.1結(jié)構(gòu)化方法的基本原理結(jié)構(gòu)化系統(tǒng)分析結(jié)構(gòu)化系統(tǒng)設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化方法學(xué)發(fā)展過(guò)程系統(tǒng)開(kāi)發(fā)過(guò)程最高級(jí)的抽象:?jiǎn)栴}空間的描述中間級(jí)抽象:過(guò)程性抽象最低級(jí)的抽象:求解方法的實(shí)現(xiàn)結(jié)構(gòu)化方法的基本原理原則2——形式化原則形式化原則是指按照某種嚴(yán)格的方法和過(guò)程來(lái)解決問(wèn)題。結(jié)構(gòu)化方法的基本原理原則3——分解原則:分而治之(DivideandConquer)原則分解原則是指在求解問(wèn)題的過(guò)程中,將復(fù)雜問(wèn)題分解為一些較小的、比較容易理解的、相對(duì)獨(dú)立的部分來(lái)求解,然后再將這些部分問(wèn)題的解綜合成復(fù)雜問(wèn)題的解。例如,在結(jié)構(gòu)化SDLC中,對(duì)系統(tǒng)開(kāi)發(fā)過(guò)程的管理是采用分解的原則,將整個(gè)系統(tǒng)開(kāi)發(fā)過(guò)程分解為一系列階段,每一個(gè)階段還可以進(jìn)一步分解為一系列活動(dòng)。在結(jié)構(gòu)化分析中,信息系統(tǒng)過(guò)程模型(DFD)的構(gòu)造采用的方法就是自頂向下、層次分解的方法。在結(jié)構(gòu)化設(shè)計(jì)中,對(duì)軟件結(jié)構(gòu)的構(gòu)造也是采用自頂向下分解的方法,而且這種分解是按層次進(jìn)行的。結(jié)構(gòu)化方法的基本原理原則4——層次組織原則層次組織原則是指將問(wèn)題的解用樹(shù)狀的層次結(jié)構(gòu)組織起來(lái)。層次組織原則與分解原則是兩個(gè)相關(guān)的原則。結(jié)構(gòu)化方法的基本原理原則5——信息隱藏原則(InformationHiding)該原則是結(jié)構(gòu)化方法的主要成果之一。結(jié)構(gòu)化方法學(xué)和面向?qū)ο蠓椒▽W(xué)都支持信息屏蔽的原則,只不過(guò)支持的方式和名稱不同而已。在面向?qū)ο蠓椒▽W(xué)中,這一原則被稱為“封裝”。在結(jié)構(gòu)化方法學(xué)中,信息屏蔽是將模塊視為一個(gè)“黑箱(BlackBox)”,包含在模塊內(nèi)部的信息對(duì)于無(wú)需這些信息的其它模塊來(lái)說(shuō)是不可存取的,即不需要的信息都屏蔽起來(lái),只允許模塊知道它本身所需要的信息。結(jié)構(gòu)化方法的基本原理原則5——信息隱藏原則(InformationHiding)——續(xù)優(yōu)點(diǎn):通過(guò)信息屏蔽,可以將問(wèn)題和錯(cuò)誤局部化,因此即使某個(gè)模塊出現(xiàn)錯(cuò)誤,該錯(cuò)誤也不會(huì)影響其它的模塊,即避免了錯(cuò)誤的傳播性,從而進(jìn)一步提高了軟件的可維護(hù)性。結(jié)構(gòu)化方法的基本原理原則6——模塊化原則模塊化是分解原則在結(jié)構(gòu)化設(shè)計(jì)中應(yīng)用的結(jié)果。模塊化就是將程序分解成若干個(gè)模塊,每一個(gè)模塊完成一個(gè)子功能,把這些模塊集成起來(lái)組成一個(gè)整體,就可以完成程序指定的功能。因此,模塊化原則實(shí)際上是分而治之、逐步求精思想的具體應(yīng)用。結(jié)構(gòu)化方法的基本原理模塊化原則的優(yōu)點(diǎn):采用模塊化原則設(shè)計(jì)的軟件結(jié)構(gòu)清晰,容易設(shè)計(jì)。由于每一個(gè)模塊都對(duì)應(yīng)單一獨(dú)立的程序功能,每個(gè)模塊都可獨(dú)立測(cè)試,因此,按模塊化原則設(shè)計(jì)的軟件也容易測(cè)試和調(diào)試,從而有助于提高軟件的可靠性和可維護(hù)性。另外,模塊化也有助于軟件開(kāi)發(fā)工程的組織管理,一個(gè)復(fù)雜的程序可以分解為許多模塊,而這些模塊又具有一定的獨(dú)立性,所以,可以由許多程序員分工編寫(xiě)不同的模塊。結(jié)構(gòu)化方法的基本原理原則7——邏輯獨(dú)立性原則邏輯設(shè)計(jì)和物理設(shè)計(jì)分開(kāi)進(jìn)行是結(jié)構(gòu)化方法學(xué)的一個(gè)基本原則。邏輯設(shè)計(jì)與物理設(shè)計(jì)分開(kāi)進(jìn)行,有利于開(kāi)發(fā)人員更準(zhǔn)確地抽象出系統(tǒng)的本質(zhì)特征和功能。邏輯設(shè)計(jì)所產(chǎn)生的邏輯模型相對(duì)比較穩(wěn)定,按照這種模型所開(kāi)發(fā)的系統(tǒng)具有較好的靈活性和適應(yīng)性。物理實(shí)現(xiàn)的手段具有多樣性,遵循該原則,也可以使軟件的實(shí)現(xiàn)具有充分的選擇余地。結(jié)構(gòu)化方法的基本原理結(jié)構(gòu)化分析,簡(jiǎn)稱SA結(jié)構(gòu)化設(shè)計(jì),簡(jiǎn)稱SD結(jié)構(gòu)化程序設(shè)計(jì),簡(jiǎn)稱SP

結(jié)構(gòu)化方法的組成結(jié)構(gòu)化分析,簡(jiǎn)稱SA結(jié)構(gòu)化分析認(rèn)為系統(tǒng)模型是由一系列數(shù)據(jù)流程圖(DFD)組成的。這些數(shù)據(jù)流程圖只顯示了數(shù)據(jù)、數(shù)據(jù)的存貯以及進(jìn)行數(shù)據(jù)變化的過(guò)程。由于數(shù)據(jù)流程圖描述了過(guò)程之間的數(shù)據(jù)流,因此,結(jié)構(gòu)化分析也稱之為數(shù)據(jù)流方法(DataFlowApproach)。另一方面,許多專家都認(rèn)為DFD是一種過(guò)程模型(ProcessModel),因此,結(jié)構(gòu)化分析實(shí)際上是一種面向過(guò)程的方法。

結(jié)構(gòu)化方法的組成結(jié)構(gòu)化分析,簡(jiǎn)稱SA(續(xù))結(jié)構(gòu)化分析成為八十年代廣泛流行的系統(tǒng)開(kāi)發(fā)技術(shù)。其工具—數(shù)據(jù)流程圖具有容易構(gòu)造、容易理解的優(yōu)點(diǎn)。但另一方面,數(shù)據(jù)流程圖和結(jié)構(gòu)化分析本身不能保證“業(yè)務(wù)和用戶需求定義”的完整性、一致性和準(zhǔn)確性;而且數(shù)據(jù)流程圖的構(gòu)造大大延緩了系統(tǒng)分析的過(guò)程,尤其在強(qiáng)調(diào)生產(chǎn)率的今天,這一問(wèn)題更為突出。

結(jié)構(gòu)化方法的組成結(jié)構(gòu)化設(shè)計(jì),簡(jiǎn)稱SD所謂結(jié)構(gòu)化設(shè)計(jì)是對(duì)于一個(gè)清楚陳述的問(wèn)題(well-statedproblem),選擇和組織模塊和模塊接口,從而求得所述問(wèn)題的“最優(yōu)”解(EdwardYourdon)。也就是說(shuō),結(jié)構(gòu)化設(shè)計(jì)是運(yùn)用一組標(biāo)準(zhǔn)的準(zhǔn)則和工具幫助系統(tǒng)設(shè)計(jì)員確定軟件系統(tǒng)是由哪些模塊組成的,這些模塊用什么方法聯(lián)結(jié)在一起,才能構(gòu)成一個(gè)最優(yōu)的軟件系統(tǒng)結(jié)構(gòu)。結(jié)構(gòu)化設(shè)計(jì)更強(qiáng)調(diào)軟件總體結(jié)構(gòu)的設(shè)計(jì),是一種自頂向下的設(shè)計(jì)策略。

結(jié)構(gòu)化方法的組成結(jié)構(gòu)化程序設(shè)計(jì),簡(jiǎn)稱SP

結(jié)構(gòu)化方法的組成結(jié)構(gòu)化分析數(shù)據(jù)流程圖DFD數(shù)據(jù)字典過(guò)程描述:結(jié)構(gòu)化英語(yǔ)、判定樹(shù)/判定表數(shù)據(jù)存取圖結(jié)構(gòu)化設(shè)計(jì)

結(jié)構(gòu)圖偽碼系統(tǒng)流程圖結(jié)構(gòu)化程序設(shè)計(jì)

程序流程圖N-S圖(又稱盒圖)PAD圖結(jié)構(gòu)化方法的工具兩種典型的結(jié)構(gòu)化方法:①面向數(shù)據(jù)流(過(guò)程)的方法:Yourdon的結(jié)構(gòu)化設(shè)計(jì)方法Gane/Sersor結(jié)構(gòu)化分析方法Demarco結(jié)構(gòu)化分析方法②面向數(shù)據(jù)結(jié)構(gòu)的方法Jackson方法Warnier/Orr方法

典型的結(jié)構(gòu)化方法

對(duì)問(wèn)題域的認(rèn)識(shí)和描述不是以問(wèn)題域中固有的事物作為基本單位,而是打破了事物之間的界限,在全局范圍內(nèi)以功能、數(shù)據(jù)或數(shù)據(jù)流為中心進(jìn)行分析。因此,該方法容易隱蔽一些對(duì)問(wèn)題理解的偏差,與后續(xù)開(kāi)發(fā)階段的銜接也比較困難。分析文檔(數(shù)據(jù)流程圖)與設(shè)計(jì)文檔(軟件結(jié)構(gòu)圖)是兩種不同的表示體系,從而造成分析與設(shè)計(jì)之間的鴻溝——致命的缺陷 在軟件維護(hù)、軟件重用方面效果并不理想適用范圍:并不是所有的系統(tǒng)都是以過(guò)程為中心的!開(kāi)發(fā)周期長(zhǎng),導(dǎo)致系統(tǒng)壽命短。

結(jié)構(gòu)化方法的不足面向?qū)ο蠹夹g(shù)的發(fā)展歷史面向?qū)ο蠹夹g(shù)的基本概念2.4.2面向?qū)ο蠓椒ㄊ裁词敲嫦驅(qū)ο螅縊bjectmodelingisatechniqueforidentifyingobjectswithinthesystemsenvironment,andtherelationshipsbetweenthoseobjects.面向?qū)ο蠼J且环N識(shí)別系統(tǒng)內(nèi)對(duì)象及其之間相互關(guān)系的技術(shù)。什么是面向?qū)ο螅俊懊嫦驅(qū)ο笫且环N風(fēng)范(Paradigm),是觀察和分析問(wèn)題的一種方法論(Methodology)。對(duì)象技術(shù)是一種軟件系統(tǒng)組織和結(jié)構(gòu)設(shè)計(jì)的工程技術(shù),它將對(duì)象作為軟件系統(tǒng)結(jié)構(gòu)的基本組成單元,以主體數(shù)據(jù)為中心,將數(shù)據(jù)及其上作用的操作加以封裝,以標(biāo)準(zhǔn)的接口規(guī)范對(duì)外提供服務(wù)?;谶@樣的方法論,人們可以用自然的方式認(rèn)識(shí)和模擬現(xiàn)實(shí)世界,并由此帶來(lái)軟件制造方式的根本變化。人工集約生產(chǎn)方式向資源集約生產(chǎn)方式的轉(zhuǎn)變。

——《對(duì)象技術(shù)導(dǎo)論》什么是面向?qū)ο??“面向?qū)ο笫且环N運(yùn)用對(duì)象、類、繼承、封裝、聚合、消息傳遞、多態(tài)性等概念來(lái)構(gòu)造系統(tǒng)的軟件開(kāi)發(fā)方法。

——《面向?qū)ο蟮南到y(tǒng)分析》面向?qū)ο蠓椒ǖ奶攸c(diǎn)出發(fā)點(diǎn):?jiǎn)栴}域中的對(duì)象作為系統(tǒng)的基本構(gòu)成單元對(duì)象具有靜態(tài)特征(屬性)和動(dòng)態(tài)特征(服務(wù))對(duì)象的屬性與服務(wù)被封裝為一個(gè)獨(dú)立的實(shí)體,對(duì)外屏蔽其內(nèi)部細(xì)節(jié)。對(duì)事物進(jìn)行分類(分類結(jié)構(gòu))繼承機(jī)制消息通信機(jī)制:對(duì)象之間的動(dòng)態(tài)聯(lián)系是通過(guò)消息的傳遞實(shí)現(xiàn)的。什么是面向?qū)ο??總而言之:面向?qū)ο笫钦J(rèn)識(shí)和描述系統(tǒng)(問(wèn)題域、實(shí)現(xiàn)域即軟件系統(tǒng))的一種方法學(xué)。該方法認(rèn)為,系統(tǒng)是由一系列相互聯(lián)系、相互作用的對(duì)象組成的。因此,所謂用面向?qū)ο蠓椒ㄕJ(rèn)識(shí)和描述系統(tǒng),就是分析系統(tǒng)(問(wèn)題域、實(shí)現(xiàn)域即軟件系統(tǒng))中是由哪些對(duì)象組成的?這些對(duì)象之間的聯(lián)系是什么。為什么要面向?qū)ο??面向?qū)ο蠓椒▽W(xué)產(chǎn)生的根本原因還在于解決“軟件危機(jī)”。有學(xué)者在研究、分析軟件危機(jī)產(chǎn)生的原因時(shí)曾指出(汪成為[1]):“用馮諾依曼機(jī)所求解的問(wèn)題的問(wèn)題空間結(jié)構(gòu)與馮諾依曼機(jī)所用的求解問(wèn)題方法的方法空間結(jié)構(gòu)不一致”,這是導(dǎo)致軟件危機(jī)產(chǎn)生的主要原因。這種不一致主要表現(xiàn)在以下幾個(gè)方面:為什么要面向?qū)ο螅竣眴?wèn)題空間與求解空間不一致⑴語(yǔ)言的鴻溝這是指用來(lái)解決問(wèn)題的求解語(yǔ)言即計(jì)算機(jī)語(yǔ)言與人類自然語(yǔ)言之間的距離較遠(yuǎn)??陀^世界是由實(shí)體組成的,客觀實(shí)體之間的多種多樣的聯(lián)系構(gòu)成了五彩繽紛的客觀世界,因此人類認(rèn)識(shí)客觀世界首先是從概念以及概念之間的聯(lián)系出發(fā)的,概念反映了客觀存在的實(shí)體,聯(lián)系反映了實(shí)體之間的以來(lái)關(guān)系,是實(shí)體賴以生存的方式。語(yǔ)言反映了人們解決問(wèn)題的方式。傳統(tǒng)的面向過(guò)程的語(yǔ)言是由一組數(shù)據(jù)和一組能動(dòng)的過(guò)程即進(jìn)程組成的,它所用的概念顯然與人類認(rèn)識(shí)客觀世界所用的概念相去甚遠(yuǎn),是一種難以理解的語(yǔ)言。而面向?qū)ο蠓椒▽W(xué)由于在問(wèn)題空間和求解空間上所采用的概念是完全一致的,因而面向?qū)ο蠓椒▽W(xué)所采用的語(yǔ)言更接近于自然語(yǔ)言。為什么要面向?qū)ο??⒈?wèn)題空間與求解空間不一致⑵馮諾依曼機(jī)與問(wèn)題域(用戶)之間的鴻溝汪成為等曾指出:傳統(tǒng)的計(jì)算機(jī)雖然也有各種各樣的體系結(jié)構(gòu),但從根本上改變馮.諾依曼機(jī)的基本特征,即順序地執(zhí)行指令,按地址訪問(wèn)線形的存儲(chǔ)空間,數(shù)據(jù)和指令在機(jī)器內(nèi)部采用統(tǒng)一的表示形式,以及數(shù)字計(jì)算。對(duì)于用戶來(lái)講,這種機(jī)器(裸機(jī))的功能是很有限和很不直觀的。為了滿足用戶的需求,就在裸機(jī)上利用軟件來(lái)構(gòu)造不同層次的虛擬機(jī),每一層虛擬機(jī)都可以看作是一種語(yǔ)言的翻譯器或解釋器,用這種方法來(lái)填補(bǔ)用戶和裸機(jī)之間的鴻溝。但虛擬機(jī)的層次越多,軟件的開(kāi)銷就越大,可靠性和可維護(hù)性就越低。為什么要面向?qū)ο螅扛鲗犹摂M機(jī)鴻溝馮.諾依曼機(jī)用戶

馮.諾依曼機(jī)和用戶之間的鴻溝

為什么要面向?qū)ο??⒉系統(tǒng)分析到系統(tǒng)設(shè)計(jì)的過(guò)渡困難系統(tǒng)分析向系統(tǒng)設(shè)計(jì)的過(guò)渡困難是傳統(tǒng)的結(jié)構(gòu)化方法的另一困難。傳統(tǒng)的結(jié)構(gòu)化方法中,系統(tǒng)分析模型是為了解決系統(tǒng)分析員與用戶之間的通訊問(wèn)題,而系統(tǒng)設(shè)計(jì)模型是為了解決系統(tǒng)分析員與程序員之間的通訊問(wèn)題,由分析向設(shè)計(jì)的過(guò)渡是一件非常困難的事情。關(guān)于系統(tǒng)分析向系統(tǒng)設(shè)計(jì)過(guò)渡的問(wèn)題,文獻(xiàn)中都作過(guò)詳細(xì)的討論。很多研究者都認(rèn)為,在面向?qū)ο蠓椒ㄖ校淮嬖诜治雠c設(shè)計(jì)的過(guò)渡問(wèn)題。其主要原因是系統(tǒng)分析向系統(tǒng)設(shè)計(jì)過(guò)渡是一個(gè)漸進(jìn)的、逐步細(xì)化的過(guò)程,因此系統(tǒng)分析師、用戶、程序員從系統(tǒng)分析到系統(tǒng)設(shè)計(jì)、編碼、測(cè)試和實(shí)施過(guò)程中自始自終討論的是一個(gè)模型。所生成的信息系統(tǒng)可以逆向推導(dǎo)出系統(tǒng)的原模型。但是也有學(xué)者提出相反的觀點(diǎn),例如有人認(rèn)為:很多面向?qū)ο蠓椒ǖ闹С终邔拿嫦驅(qū)ο蟮男枨蟮矫嫦驅(qū)ο蟮脑O(shè)計(jì)的過(guò)渡描述為簡(jiǎn)明的過(guò)渡。事實(shí)上面向?qū)ο蟮姆治雠c面向?qū)ο蟮脑O(shè)計(jì)之間存在難以置信的差別,二者之間的過(guò)渡不是也不應(yīng)是簡(jiǎn)單的。為什么要面向?qū)ο??⒊過(guò)程模型和數(shù)據(jù)模型分別建立,并且忽視了信息系統(tǒng)的行為特征傳統(tǒng)的結(jié)構(gòu)化方法學(xué)存在的第三個(gè)問(wèn)題是在建立系統(tǒng)模型時(shí),是從功能和數(shù)據(jù)兩個(gè)不同的角度分別來(lái)構(gòu)造的,這樣產(chǎn)生的一個(gè)突出的問(wèn)題是所建立的過(guò)程模型和數(shù)據(jù)模型可能存在不一致性,并且忽視了信息系統(tǒng)的第三個(gè)重要特征,即行為。但是在現(xiàn)代的信息系統(tǒng)中,信息系統(tǒng)的第三個(gè)特征—行為(behavior)日顯重要,也同樣需要建立關(guān)于行為的模型。另外,在傳統(tǒng)方法中,信息系統(tǒng)的功能模型和數(shù)據(jù)模型是分別建立的,無(wú)論是系統(tǒng)分析師還是最優(yōu)秀的CASE軟件均無(wú)法完整地檢查和糾正兩個(gè)模型集成后所存在的不一致性和不準(zhǔn)確

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論