版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第四章常用系統(tǒng)開(kāi)發(fā)方法信息系統(tǒng)的開(kāi)發(fā)是一個(gè)龐大的系統(tǒng)工程,它涉及到組織的內(nèi)部結(jié)構(gòu)、管理模式、生產(chǎn)加工、經(jīng)營(yíng)管理過(guò)程、數(shù)據(jù)的收集與處理過(guò)程、計(jì)算機(jī)硬件系統(tǒng)的管理與應(yīng)用、軟件系統(tǒng)的開(kāi)發(fā)等各個(gè)方面。這就增大了開(kāi)發(fā)一個(gè)信息系統(tǒng)的工程規(guī)模和難度,需要研究出科學(xué)的開(kāi)發(fā)方法和過(guò)程化的開(kāi)發(fā)步驟,以確保整個(gè)開(kāi)發(fā)過(guò)程能夠順利進(jìn)行。這正是信息系統(tǒng)開(kāi)發(fā)方法的任務(wù)。信息系統(tǒng)開(kāi)發(fā)方法學(xué)研究的主要對(duì)象是信息系統(tǒng)開(kāi)發(fā)的規(guī)律、開(kāi)發(fā)過(guò)程的認(rèn)知體系、分析設(shè)計(jì)的一般理論以及具體的開(kāi)發(fā)工具和技術(shù)等。本章擬從方法論的角度,介紹創(chuàng)建MIS所需的規(guī)劃方法,包括結(jié)構(gòu)化開(kāi)發(fā)和設(shè)計(jì)方法(SSA&D,面向?qū)ο蟮拈_(kāi)發(fā)方法(OO,原型方法(Photot
2、yping)及CAS昉法。本章重點(diǎn)系統(tǒng)開(kāi)發(fā)的過(guò)程、常用方法,SSA&D原型卜、面向?qū)ο蠓椒ǖ然舅枷搿㈤_(kāi)發(fā)過(guò)程、持點(diǎn)及其優(yōu)缺點(diǎn),各本章小節(jié)方系統(tǒng)開(kāi)發(fā)方法分類(lèi)Q結(jié)構(gòu)化分析與設(shè)計(jì)方法Q原型方法0面對(duì)對(duì)象開(kāi)發(fā)方法Q計(jì)算機(jī)輔助開(kāi)發(fā)方法.各種開(kāi)發(fā)方法比較Q本章小結(jié)Q習(xí)題四本章難點(diǎn)各種開(kāi)發(fā)方法基本思想的理解、特點(diǎn)及適用范圍,面向?qū)ο?OrientedObject)方法的有關(guān)基本概念及開(kāi)發(fā)過(guò)程4.1系統(tǒng)開(kāi)發(fā)方法的分類(lèi)一、系統(tǒng)開(kāi)發(fā)過(guò)程的管理系統(tǒng)開(kāi)發(fā)過(guò)程是用于管理和維護(hù)信息系統(tǒng)和軟件的一系列活動(dòng)、方法和工具,這些活動(dòng)工具有:IT項(xiàng)目管理,軟件產(chǎn)品的質(zhì)量管理、開(kāi)發(fā)方法選擇等。關(guān)于IT項(xiàng)目的管理可以參考有獻(xiàn),本課件
3、不再詳細(xì)論述。這里著重介紹如何衡量計(jì)算機(jī)軟件產(chǎn)品質(zhì)量的方法,即一個(gè)稱(chēng)為軟熟度”的模型,它是提高信息系統(tǒng)軟件產(chǎn)品質(zhì)量的一種重要的框架,通過(guò)這種模型來(lái)加強(qiáng)計(jì)算機(jī)的開(kāi)發(fā)過(guò)程管理,以提高軟件的開(kāi)發(fā)質(zhì)量,該模型又稱(chēng)能力成熟度模型,英文寫(xiě)成CapabilityModel,簡(jiǎn)稱(chēng)CMM能力成熟度模型CMMI供了一個(gè)系統(tǒng)過(guò)程改進(jìn)框架,該框架與軟件生命周期無(wú)關(guān),與所發(fā)技術(shù)也無(wú)關(guān)。根據(jù)這個(gè)框架制定企業(yè)內(nèi)部具體的系統(tǒng)開(kāi)發(fā)過(guò)程,可以極大程度地提高按計(jì)劃的本提交有質(zhì)量保證的系統(tǒng)產(chǎn)品的能力。CMMI為保證系統(tǒng)質(zhì)量的根本途徑就是提升企業(yè)的系統(tǒng)開(kāi)發(fā)生產(chǎn)能力,而企業(yè)的系統(tǒng)開(kāi)發(fā)力又取決于企業(yè)的系統(tǒng)開(kāi)發(fā)過(guò)程能力,特別是在系統(tǒng)開(kāi)發(fā)和生
4、產(chǎn)中的成熟度。企業(yè)的系統(tǒng)開(kāi)發(fā)過(guò)成熟,其系統(tǒng)生產(chǎn)能力就越有保證。所謂系統(tǒng)開(kāi)發(fā)過(guò)程能力,是指企業(yè)從事系統(tǒng)產(chǎn)品開(kāi)發(fā)和生產(chǎn)過(guò)程本身透明化、規(guī)范化、制化。企業(yè)在執(zhí)行系統(tǒng)開(kāi)發(fā)過(guò)程中可能會(huì)反映出原定過(guò)程的某些缺陷,這時(shí)可以根據(jù)反映的問(wèn)題個(gè)過(guò)程。周而復(fù)始,這個(gè)過(guò)程逐漸完善、成熟。這樣一來(lái),項(xiàng)目的執(zhí)行不再是一個(gè)黑盒,企業(yè)可知道項(xiàng)目是按照規(guī)定的過(guò)程進(jìn)行的。系統(tǒng)開(kāi)發(fā)及生產(chǎn)過(guò)程中成功和失敗的經(jīng)驗(yàn)教訓(xùn)也就能夠成為借鑒和吸取的營(yíng)養(yǎng),從而可以大大促進(jìn)信息系統(tǒng)生產(chǎn)的成熟度的提高。CMM真型描述和分析了系統(tǒng)開(kāi)發(fā)過(guò)程能力的發(fā)展程度,確立了一個(gè)系統(tǒng)開(kāi)發(fā)過(guò)程能力成熟級(jí)標(biāo)準(zhǔn),如圖4-1-1所示。隨著能力成熟度逐步提高,企業(yè)的競(jìng)爭(zhēng)力也在
5、不斷地提高,系統(tǒng)開(kāi)發(fā)逐步下降,系統(tǒng)產(chǎn)品的質(zhì)量穩(wěn)步上升。圖4-1-1能力成熟程度的分級(jí)標(biāo)準(zhǔn)在CMMfr等級(jí)的特征為:初始級(jí):系統(tǒng)開(kāi)發(fā)過(guò)程的特點(diǎn)是無(wú)序的,有時(shí)甚至是混亂的。系統(tǒng)開(kāi)發(fā)過(guò)程定義處于幾乎和步驟可循的狀態(tài),系統(tǒng)產(chǎn)品所取得的成功往往依賴(lài)于極個(gè)別人的努力和機(jī)會(huì)??芍貜?fù)級(jí):已經(jīng)建立了基本的項(xiàng)目管理過(guò)程,這些過(guò)程可以用于對(duì)成本、進(jìn)度和功能特性日對(duì)于類(lèi)似的工程項(xiàng)目,有章可循并能重復(fù)以取得成功的經(jīng)驗(yàn)。 已定義級(jí):用于管理的和工程的系統(tǒng)開(kāi)發(fā)過(guò)程均已文檔化、標(biāo)準(zhǔn)化,并形成了整個(gè)系統(tǒng)開(kāi)標(biāo)準(zhǔn)系統(tǒng)開(kāi)發(fā)過(guò)程。全部項(xiàng)目均采用與實(shí)際情況相吻合的、適當(dāng)修改后的標(biāo)準(zhǔn)系統(tǒng)的開(kāi)發(fā)行操作。系統(tǒng)開(kāi)發(fā)過(guò)程和產(chǎn)品質(zhì)量得到了 可管理級(jí)
6、:系統(tǒng)開(kāi)發(fā)過(guò)程和產(chǎn)品質(zhì)量有詳細(xì)的度量標(biāo)準(zhǔn)識(shí)和控制 優(yōu)化級(jí):通過(guò)對(duì)來(lái)自系統(tǒng)開(kāi)發(fā)過(guò)程、新概念和新技術(shù)等方面的各種有用信息的定量信息地、持續(xù)性地對(duì)系統(tǒng)過(guò)程進(jìn)行改造。CMMZ具體實(shí)踐為基礎(chǔ),是一個(gè)系統(tǒng)開(kāi)發(fā)實(shí)踐的綱要,以逐步演進(jìn)的框架形態(tài)不斷地完善發(fā)和維護(hù)過(guò)程,成為軟件企業(yè)變革的內(nèi)在原動(dòng)力,與靜態(tài)的質(zhì)量管理標(biāo)準(zhǔn)-例如ISO9001等,形的對(duì)比。ISO9001標(biāo)準(zhǔn)在提供一個(gè)良好的體系結(jié)構(gòu)與實(shí)施基礎(chǔ)方面能夠很有效,而CMM1一個(gè)7有動(dòng)態(tài)尺度的標(biāo)準(zhǔn),可以驅(qū)使企業(yè)在當(dāng)前的系統(tǒng)開(kāi)發(fā)實(shí)踐中不斷地改進(jìn)和完善。CMM乍為一個(gè)指南能夠幫助企業(yè)選擇、采納和合理使用一些先進(jìn)的管理方法,并在實(shí)踐活斷提高和完善系統(tǒng)開(kāi)發(fā)成熟度的能
7、力。圍繞這些實(shí)踐活動(dòng)逐步形成了一套制度,即在指定的成本利交付提高質(zhì)量的軟件產(chǎn)品所需要的、有紀(jì)律的、精確定義的并能有效度量的軟件工程過(guò)程。二、系統(tǒng)開(kāi)發(fā)方法概述管理信息系統(tǒng)的開(kāi)發(fā)是一項(xiàng)復(fù)雜的系統(tǒng)工程工作。它涉及的知識(shí)面廣、部門(mén)多。至今還沒(méi)有一種完全有效的方法來(lái)很好的完成系統(tǒng)的開(kāi)發(fā)。但也確有一些方法在系統(tǒng)開(kāi)發(fā)很有幫助,這里就此進(jìn)行一些介紹。從20世紀(jì)60年代開(kāi)始,人們已開(kāi)始注意信息系統(tǒng)開(kāi)發(fā)的方法和工具。70年代,系統(tǒng)開(kāi)發(fā)的生命周期(LifeCycle)法較好的給出了過(guò)程的定義,改善了開(kāi)發(fā)的過(guò)程。然而,問(wèn)題的累積,性能的缺陷,加深了系統(tǒng)開(kāi)發(fā)的困難,80年代以后,友好的語(yǔ)言和自動(dòng)化編程工具的出現(xiàn),使開(kāi)發(fā)
8、方法又有些進(jìn)步,但維護(hù)費(fèi)用很高。90年代利用模塊化和模塊聯(lián)接技術(shù),大大降低了維護(hù)成本,提高了效率。90年代中期,由于We版術(shù)的出現(xiàn),許多工作可以由用戶去做,但系統(tǒng)工作仍然很多。下面我們根據(jù)時(shí)代的特點(diǎn),介紹系統(tǒng)開(kāi)發(fā)方法的演變。1. 70年代以前系統(tǒng)開(kāi)發(fā)工作好像在做手工藝品。編出各種各樣的程序,程序難寫(xiě)、難懂,更難以維護(hù)。因而標(biāo)準(zhǔn)化成為用戶和開(kāi)發(fā)公司的愿望。當(dāng)時(shí)的開(kāi)發(fā)環(huán)境是: 第三代語(yǔ)言(如COBOL用于編程。 已有數(shù)據(jù)庫(kù)管理系統(tǒng),用于數(shù)據(jù)管理。 聯(lián)機(jī)處理和批處理混合使用。 主要針對(duì)主干機(jī)開(kāi)發(fā)。 只由專(zhuān)業(yè)程序員進(jìn)行程序開(kāi)發(fā)。 利用標(biāo)準(zhǔn)符號(hào)來(lái)說(shuō)明過(guò)程。 用戶只在定義需求階段和安裝階段介入開(kāi)發(fā)。 企圖
9、用結(jié)構(gòu)化的程序設(shè)計(jì)方法和自動(dòng)化的項(xiàng)目管理。這時(shí)系統(tǒng)開(kāi)發(fā)方法依據(jù)著名的“瀑布模型”,見(jiàn)圖4-1-2圖4-1-2瀑布模型結(jié)構(gòu)化的意思是企圖使開(kāi)發(fā)工作標(biāo)準(zhǔn)化。結(jié)構(gòu)化開(kāi)發(fā)的目標(biāo)是有序、高效、高可靠性和少錯(cuò)誤。有序是按部就班,相同情況得出相同結(jié)構(gòu),達(dá)到標(biāo)準(zhǔn)化。結(jié)構(gòu)化還要求建立標(biāo)準(zhǔn)的文檔。當(dāng)然結(jié)構(gòu)化有其負(fù)面的影響,它可能妨礙程序員的創(chuàng)造性。但對(duì)一個(gè)大系統(tǒng)來(lái)說(shuō),只有紀(jì)律才能維持高的生產(chǎn)率。在每個(gè)開(kāi)發(fā)階段,加強(qiáng)檢查是提高可靠性、減少錯(cuò)誤的主要方法。在70年代后期,人們開(kāi)始強(qiáng)調(diào)“初期階段”的重要性。差錯(cuò)產(chǎn)生得越早,糾正所花的成本越高。也就是說(shuō),糾正差錯(cuò)越早所花成本越低。為了較早的發(fā)現(xiàn)錯(cuò)誤,當(dāng)時(shí)方法主要有兩種,一
10、種是數(shù)據(jù)驅(qū)動(dòng)開(kāi)發(fā),另一種是合作開(kāi)發(fā),這在當(dāng)時(shí)起到一定作用。2. 80年代80年代初一些開(kāi)發(fā)環(huán)境逐漸成熟,如第四代語(yǔ)言(4GDo這使得有可能使用原型法(prototyping)。原型法和生命周期法是兩種思路完全不同的方法。生命周期法企圖在動(dòng)手開(kāi)發(fā)前,完全定義好需求,然后經(jīng)過(guò)分析、設(shè)計(jì)、編程和實(shí)施,一次全面的完成目標(biāo);原型法則相反,在未定義好全局前,先實(shí)現(xiàn)局部,然后不斷修改,最終實(shí)現(xiàn)全面滿足要求。兩種方法實(shí)現(xiàn)的最終系統(tǒng)應(yīng)當(dāng)是同功能的,但它們實(shí)現(xiàn)的途徑卻是完全不同的。一種是單次的,一種是多重循環(huán)的。4GL是一種面向問(wèn)題的語(yǔ)言。它不只是一種語(yǔ)言,而且包含一種環(huán)境,這種環(huán)境包括:關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)、數(shù)據(jù)字典
11、、非過(guò)程語(yǔ)言、交互查詢機(jī)構(gòu)、報(bào)告生成器、排序和選序處理和文本編輯、圖形處理、數(shù)據(jù)分析和模型工具、宏命令庫(kù)、程序界面、復(fù)用程序、軟件庫(kù)、支持和恢復(fù)、安全和保密以及與其它數(shù)據(jù)庫(kù)的聯(lián)系等。進(jìn)行原型法開(kāi)發(fā)要求4GL有很強(qiáng)的交互能力。越先進(jìn)的交互方式,越是prototyping的良好環(huán)境。80年代末期,計(jì)算機(jī)輔助軟件工程(ComputerAidedSoftwareEngineering,CASE)和面向?qū)ο?Object-Oriented,OO)的開(kāi)發(fā)方法得到很大的發(fā)展,90年代初開(kāi)始實(shí)際應(yīng)用。對(duì)象是一組數(shù)據(jù)和一組操作的集合,這組操作可以存取和處理這組數(shù)據(jù)。對(duì)象還可以組成類(lèi)(classes。面向?qū)ο蟮姆?/p>
12、法有以下特點(diǎn):它把數(shù)據(jù)和操作綁扎在一起作為一個(gè)對(duì)象。這里數(shù)據(jù)是主動(dòng)的,操作跟隨數(shù)據(jù)。面向?qū)ο蟮姆椒ê苋菀鬃龅匠绦蛑赜?,重用也較規(guī)范;面向?qū)ο蠹夹g(shù)使新系統(tǒng)開(kāi)發(fā)和維護(hù)系統(tǒng)很相似,因?yàn)榫侵赜眉河胁考?。?dāng)用于企業(yè)管理時(shí),面向?qū)ο蟮姆椒M企業(yè)的運(yùn)行,這時(shí)開(kāi)發(fā)者和企業(yè)管理者的溝通用的是企業(yè)語(yǔ)言,而不是技術(shù)術(shù)語(yǔ)。面向?qū)ο蟮姆椒ㄌ貏e適用于圖形、多媒體和復(fù)雜系統(tǒng)。如上所述,60-70年代是結(jié)構(gòu)化系統(tǒng)分析和設(shè)計(jì)時(shí)代,80年代初是Prototyping時(shí)代,80年代末是CAS序口OO寸代,那么90年代的特點(diǎn)是什么呢?可能是客戶/服務(wù)器的時(shí)代,或基于WEB勺開(kāi)發(fā)時(shí)代。這時(shí)客戶寧愿買(mǎi)現(xiàn)成的軟件包,甚至是整個(gè)系統(tǒng),而
13、不愿自己開(kāi)發(fā)。用戶買(mǎi)來(lái)許多軟件部件,自己或請(qǐng)顧問(wèn)公司把它們集成起來(lái)。這就是系統(tǒng)集成或基于部件的開(kāi)發(fā),在90年代中后期這種趨勢(shì)越來(lái)越明顯。三、系統(tǒng)開(kāi)發(fā)方法的分類(lèi)下面我們對(duì)系統(tǒng)開(kāi)發(fā)或系統(tǒng)分析與設(shè)計(jì)方法進(jìn)行一下分類(lèi)。按時(shí)間過(guò)程來(lái)分,開(kāi)發(fā)方法分為生命周期法和原型法,實(shí)際上還有許多處于中間狀態(tài)的方法。原型法又按照對(duì)原型結(jié)果的處理方式分為試驗(yàn)原型法和演進(jìn)原型法。試驗(yàn)原型法只把原型當(dāng)成試驗(yàn)工具,試了以后就拋掉,根據(jù)試驗(yàn)的結(jié)論做出新的系統(tǒng)。演進(jìn)原型法則把試好的結(jié)果保留,成為最終系統(tǒng)的一部分。按照系統(tǒng)的分析要素,可以把開(kāi)發(fā)方法分為三類(lèi):面向處理方法(ProcessingOriented,簡(jiǎn)稱(chēng)PO。面向數(shù)據(jù)方法(
14、DataOriented,簡(jiǎn)稱(chēng)DO。面向?qū)ο蟮姆椒ǎ∣bjectOriented,簡(jiǎn)稱(chēng)OO。PO就是指系統(tǒng)分析的出發(fā)點(diǎn)在于搞清系統(tǒng)要進(jìn)行怎樣的處理,分為兩種:一種是面向功能,由企業(yè)的職能出發(fā);一種是面向過(guò)程。由企業(yè)運(yùn)營(yíng)流程出發(fā),劃分成一些過(guò)程進(jìn)行處理分析。而DO首先分析企業(yè)的信息需求,建立企業(yè)的信息模型,然后建立全企業(yè)共享的數(shù)據(jù)庫(kù)。OO1先分析企業(yè)的一些對(duì)象,把描述對(duì)象的數(shù)據(jù)和對(duì)對(duì)象的操作放在一起,如果多個(gè)對(duì)象共享某些數(shù)據(jù)和操作,共享的數(shù)據(jù)和操作就構(gòu)成了對(duì)象類(lèi)?,F(xiàn)在十分流行的面向過(guò)程的系統(tǒng)分析方法,在概念上它是把功能與數(shù)據(jù)結(jié)合,從本質(zhì)上可以認(rèn)為是面向?qū)ο蟮姆椒?。如果把面向?qū)ο蟮姆椒ê兔嫦蜻^(guò)程的
15、系統(tǒng)分析結(jié)合,將會(huì)對(duì)系統(tǒng)開(kāi)發(fā)的方法注入新的活力。1 .以過(guò)程特點(diǎn)分類(lèi)生命周期法(LifeCycle,LC):進(jìn)行系統(tǒng)分析與設(shè)計(jì)時(shí),將系統(tǒng)開(kāi)發(fā)過(guò)程劃分為系統(tǒng)請(qǐng)求、規(guī)劃、分析、設(shè)計(jì)、實(shí)施、運(yùn)行等幾個(gè)階段,每個(gè)階段首尾相連,形成系統(tǒng)的一個(gè)生命周期。演進(jìn)原型法(Evolution,EV):從一個(gè)初型系統(tǒng)不斷改進(jìn),最后成為一個(gè)最終的應(yīng)用系統(tǒng)。實(shí)驗(yàn)原型法(ExprimentPrototyping,EP):建立真實(shí)系統(tǒng)的模型,由局部模型不斷實(shí)驗(yàn)改進(jìn),最后得到整個(gè)系統(tǒng)的模型。2 .以系統(tǒng)的立足點(diǎn)分類(lèi)面向功能方法(FunctionOriented,FO):首先搞清系統(tǒng)功能,按功能收集系統(tǒng)要求,按功能劃分子系統(tǒng)。
16、面向數(shù)據(jù)方法(DataOriented,DO):首先分析企業(yè)的信息需求,然后建立全企業(yè)的數(shù)據(jù)庫(kù)。面向?qū)ο蠓椒?ObjectOriented,OQ:首先分析系統(tǒng)的一些對(duì)象,把描述對(duì)象的數(shù)據(jù)和對(duì)對(duì)象的操作放在一起,共享的數(shù)據(jù)和操作構(gòu)成對(duì)象類(lèi)。原型法(Prototyping):是借助于新一代自動(dòng)化的程序生成工具和應(yīng)用系統(tǒng),快速模擬出一個(gè)原型系統(tǒng),然后再經(jīng)過(guò)開(kāi)發(fā)者和用戶反復(fù)評(píng)價(jià)、修改和逐步完善,最終形成用戶滿意的應(yīng)用系統(tǒng)。3 .從方法體系上自頂向下方法:首先將整個(gè)系統(tǒng)作結(jié)構(gòu)化劃分,然后從高層到基層、從整體到局部、從一個(gè)組織的功能、機(jī)制、任務(wù)到內(nèi)部每個(gè)經(jīng)營(yíng)管理活動(dòng)的細(xì)節(jié)進(jìn)行系統(tǒng)分析和設(shè)計(jì)。需求分析法:面
17、對(duì)一個(gè)復(fù)雜的組織、信息需求時(shí),把握系統(tǒng)的關(guān)健和需求進(jìn)行分析的方法。常用的有:關(guān)鍵成功因子法(CSFS,企業(yè)系統(tǒng)規(guī)劃法(BSP)。原型法:(同上)生命周期法LC:(同上)面向?qū)ο驩O:(同上)四、常用系統(tǒng)開(kāi)發(fā)方法的分類(lèi)4 .基于自頂向下、結(jié)構(gòu)化、生命周期思想的開(kāi)發(fā)方法,結(jié)構(gòu)化分析設(shè)計(jì)技術(shù).約當(dāng)結(jié)構(gòu)化系統(tǒng)開(kāi)發(fā)方法.中國(guó)的映射模型設(shè)計(jì)法.詹姆斯.馬丁的戰(zhàn)略數(shù)據(jù)規(guī)劃法.企業(yè)系統(tǒng)規(guī)劃法.杰克遜的結(jié)構(gòu)化程序和設(shè)計(jì)JSP、JSD5 .基于新一代系統(tǒng)開(kāi)發(fā)工具和快速開(kāi)發(fā)方法.原型法及其分支(瀑布型、快速型).計(jì)算機(jī)輔助軟件工程(CASE6 .面向?qū)ο蠓ǖ南到y(tǒng)開(kāi)發(fā)方法,面向系統(tǒng)設(shè)計(jì)OOS,面向數(shù)據(jù)庫(kù)OO去.面向系
18、統(tǒng)程序設(shè)計(jì)OO?去.面向知識(shí)工程師OO去 4.3 原型方法(Prototyping)原型方法是80年代隨著計(jì)算機(jī)軟件技術(shù)的發(fā)展,特別是在關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)(RDBS,RelationalDataBaseSystem)(第四代程序生成語(yǔ)言(4GL,4thGenerationLanguage)和各種系統(tǒng)開(kāi)發(fā)生成環(huán)境產(chǎn)生的基礎(chǔ)上,提出的一種從設(shè)計(jì)思想到工具、手段都是全新的系統(tǒng)開(kāi)發(fā)方法。一、原型法概述1 .什么是原型方法傳統(tǒng)的結(jié)構(gòu)化開(kāi)發(fā)方法強(qiáng)調(diào)系統(tǒng)開(kāi)發(fā)每一階段的嚴(yán)謹(jǐn)性,要求在系統(tǒng)設(shè)計(jì)和實(shí)施階段之前預(yù)先嚴(yán)格定義出完整準(zhǔn)確的功能需求和規(guī)格說(shuō)明。然而,對(duì)于規(guī)模較大或結(jié)構(gòu)較復(fù)雜的系統(tǒng),在系統(tǒng)開(kāi)發(fā)前期,用戶往往對(duì)未
19、來(lái)的新系統(tǒng)僅有一個(gè)比較模糊的想法。由于專(zhuān)業(yè)知識(shí)所限,系統(tǒng)開(kāi)發(fā)人員對(duì)某些涉及具體領(lǐng)域的功能需求也不太清楚。雖然可以通過(guò)詳細(xì)的系統(tǒng)分析和定義得到一份較好的規(guī)格說(shuō)明書(shū),卻很難做到將整個(gè)管理信息系統(tǒng)描述完整,且與實(shí)際環(huán)境完全相符,很難通過(guò)邏輯推斷看出新系統(tǒng)的運(yùn)行效果。因此當(dāng)新系統(tǒng)建成以后,用戶對(duì)系統(tǒng)的功能或運(yùn)行效果往往會(huì)覺(jué)得不滿意。同時(shí)隨著開(kāi)發(fā)工作的進(jìn)行,用戶會(huì)產(chǎn)生新的要求或因環(huán)境變化希望系統(tǒng)也能隨之作相應(yīng)更改,系統(tǒng)開(kāi)發(fā)人員也可能因碰到某些意料之外的問(wèn)題希望在用戶需求中有所權(quán)衡??傊?,規(guī)格說(shuō)明的難以完善和用戶需求的模糊性已成為傳統(tǒng)的結(jié)構(gòu)化開(kāi)發(fā)方法的重大障礙。原型方法(Prototyping)正是對(duì)上述
20、問(wèn)題進(jìn)行變通的一種新的系統(tǒng)開(kāi)發(fā)方法。在建筑學(xué)和機(jī)械設(shè)計(jì)學(xué)中,“原型”指的是其結(jié)構(gòu)、大小和功能都與某個(gè)物體相類(lèi)似的模擬該物體的原始模型。在管理信息系統(tǒng)開(kāi)發(fā)中,用“原型”來(lái)形象地表示系統(tǒng)的一個(gè)早期可運(yùn)行版本,它能反映新系統(tǒng)的部分重要功能和特征。“原型方法”則是利用原型輔助開(kāi)發(fā)系統(tǒng)的一種新方法。原型方法要求在獲得一組基本的用戶需求后,快速地實(shí)現(xiàn)新系統(tǒng)的一個(gè)“原型”,用戶、開(kāi)發(fā)者及其他有關(guān)人員在試用原型的過(guò)程中,加強(qiáng)通信和反饋,通過(guò)反復(fù)評(píng)價(jià)和反復(fù)修改原型系統(tǒng),逐步確定各種需求的細(xì)節(jié),適應(yīng)需求的變化,從而最終提高新系統(tǒng)的質(zhì)量。因此可以認(rèn)為原型方法確定用戶需求的策略,它對(duì)用戶需求的定義采用啟發(fā)的方式,引導(dǎo)
21、用戶在對(duì)系統(tǒng)逐漸加深理解的過(guò)程中作出響應(yīng)。2 .原型方法的運(yùn)用方式原型方法雖然是在研究用戶需求的過(guò)程中產(chǎn)生的,但更主要的是針對(duì)傳統(tǒng)結(jié)構(gòu)化方法所面臨的困難,因而也面向系統(tǒng)開(kāi)發(fā)的其它階段和整個(gè)過(guò)程。由于軟件項(xiàng)目的特點(diǎn),運(yùn)用原型的目的和開(kāi)發(fā)策略的不同,原型方法可表現(xiàn)為不同的運(yùn)用方式,一般可分為以下三種類(lèi)型:(1)探索型(ExploratoryPrototying)主要是針對(duì)開(kāi)發(fā)目標(biāo)模糊、用戶和開(kāi)發(fā)人員對(duì)項(xiàng)目都缺乏經(jīng)驗(yàn)的情況,其目的是弄清對(duì)目標(biāo)系統(tǒng)的要求,確定所期望的特性并探討多種方案的可行性。(2)實(shí)驗(yàn)型(ExperimentalPrototying)用于大規(guī)模開(kāi)發(fā)和實(shí)現(xiàn)之前考核、驗(yàn)證方案是否合適,
22、規(guī)格說(shuō)明是否可靠。(3)演化型(EvolutionaryPrototying)其目的不在于改進(jìn)規(guī)格說(shuō)明和用戶需求,而是將系統(tǒng)改造得易于變化,在改進(jìn)原型的過(guò)程中將原型演化成最終系統(tǒng)。它將原型方法的思想貫穿到系統(tǒng)開(kāi)發(fā)全過(guò)程,對(duì)滿足需求的改動(dòng)較為適合。3 .原型法基本思想原型法憑借著系統(tǒng)分析人員對(duì)用戶要求的理解,在強(qiáng)有力的軟件環(huán)境支持下,快速地給出一個(gè)實(shí)實(shí)在在的模型(或稱(chēng)原型、雛形),然后與用戶反復(fù)協(xié)商修改,最終形成實(shí)際系統(tǒng)。這個(gè)模型大致體現(xiàn)了系統(tǒng)分析人員對(duì)用戶當(dāng)前要求的理解和用戶想要希望實(shí)現(xiàn)后的形式。二、原型定義策略4 .需求定義的要求需求定義是管理信息系統(tǒng)開(kāi)發(fā)過(guò)程中的關(guān)鍵一環(huán),它對(duì)最終系統(tǒng)的成功
23、與否絕對(duì)重要。一般說(shuō)來(lái),需求定義必須滿足以下的要求:(1)正確性所規(guī)定的需求必須是用戶所需要的。(2)完整性需求應(yīng)是完整、準(zhǔn)確的,所有需求必須加以適當(dāng)說(shuō)明。(3)可理解性用戶和開(kāi)發(fā)者雙方應(yīng)能以一種共同的方式來(lái)解釋和理解所規(guī)定的需求。(4) 一致性各需求之間不能有邏輯上的矛盾。(5)非冗余性不應(yīng)有含混不清的、多余的需求和說(shuō)明。(6)可測(cè)試性需求應(yīng)該能夠驗(yàn)證,相應(yīng)的文檔應(yīng)當(dāng)易讀和可修改。通過(guò)以上需求定義的特性可以看出,需求定義工作是一項(xiàng)嚴(yán)肅和艱巨的工作。在管理信息系統(tǒng)開(kāi)發(fā)的需求定義中,應(yīng)包括以下基本內(nèi)容。5 .需求定義的基本內(nèi)容(1)系統(tǒng)約束業(yè)務(wù)環(huán)境對(duì)最終系統(tǒng)的某些限制,例如計(jì)算機(jī)資源的限制,企業(yè)
24、有關(guān)法則、政策的約束等等。(2)系統(tǒng)輸入/輸出每個(gè)子系統(tǒng)或功能模塊中輸入/輸出數(shù)據(jù)的特征及定義。例如數(shù)據(jù)元素的內(nèi)容、來(lái)源、數(shù)量、頻數(shù)輸出的媒介等。(3)系統(tǒng)數(shù)據(jù)需求和數(shù)據(jù)元素系統(tǒng)中數(shù)據(jù)定義以及數(shù)據(jù)間的關(guān)系,數(shù)據(jù)元素的屬性與特征的定義。例如格式、名字、類(lèi)型等。(4)功能確切指定系統(tǒng)應(yīng)完成的操作和邏輯轉(zhuǎn)換。圖431改動(dòng)-費(fèi)用曲線(5)性能與可靠性明確系統(tǒng)的性能特征和耐故障能力。如果需求定義工作完成的不好,則在以后的各開(kāi)發(fā)階段中勢(shì)必要進(jìn)行各種糾錯(cuò)、補(bǔ)救工作,這將大大影響系統(tǒng)開(kāi)發(fā)的時(shí)間和質(zhì)量。另一方面,軟件開(kāi)發(fā)的實(shí)踐表明,在系統(tǒng)開(kāi)發(fā)后期引入一個(gè)變動(dòng),要比在早期引入相同變動(dòng)所需付出的代價(jià)高23個(gè)數(shù)量級(jí),
25、圖4-3-1的改動(dòng)一費(fèi)用曲線定性地描繪了在系統(tǒng)開(kāi)發(fā)的不同時(shí)期引入一個(gè)變動(dòng)需要付出的代價(jià)的變化趨勢(shì)。圖4-3-2是美國(guó)貝爾實(shí)驗(yàn)室統(tǒng)計(jì)得出的定量結(jié)果。改正一個(gè)舊題的改正一個(gè)間題的估估計(jì)費(fèi)用(美元)計(jì)工作量(人天)系統(tǒng)測(cè)試集成測(cè)試編碼詳細(xì)設(shè)計(jì)結(jié)構(gòu)設(shè)計(jì)需求分析場(chǎng)圖4-3-2改正一個(gè)問(wèn)題需要付出的代價(jià)止匕外,研究還表明,在傳統(tǒng)的結(jié)構(gòu)化系統(tǒng)開(kāi)發(fā)中(SDLC),百分之六十到八十的錯(cuò)誤來(lái)源于需求定義階段,如圖4-3-3所示。4-3-3SDLC中系統(tǒng)錯(cuò)誤的來(lái)源以上充分說(shuō)明,系統(tǒng)開(kāi)發(fā)中需求定義是系統(tǒng)成敗的關(guān)健一步,對(duì)確定需求定義的技術(shù)和方法必須有足夠的重視6 .結(jié)構(gòu)化的嚴(yán)格定義策略嚴(yán)格定義(預(yù)先定義)是目前采用較
26、多的一種需求定義方法。在采用嚴(yán)格定義的傳統(tǒng)的結(jié)構(gòu)化開(kāi)發(fā)方法中,各個(gè)工作階段排列成一個(gè)理想的線性開(kāi)發(fā)序列,在每一工作階段中,都用上一階段所提供的完整、嚴(yán)格的文檔作為指導(dǎo)文件,因此它本質(zhì)上是一種順序型的開(kāi)發(fā)方法,圖4-3-4所示。詳細(xì)設(shè)計(jì):實(shí)一現(xiàn)4-3-4結(jié)構(gòu)化方法的開(kāi)發(fā)順序在傳統(tǒng)的結(jié)構(gòu)化開(kāi)發(fā)中,需求的嚴(yán)格定義建立在以下的基本假設(shè)上:(1)所有需求都能夠被預(yù)先定義假設(shè)意味著,在沒(méi)有實(shí)際系統(tǒng)運(yùn)行經(jīng)驗(yàn)的情況下,全部的系統(tǒng)需求均可通過(guò)邏輯推斷得到。這對(duì)某些規(guī)模較小、功能簡(jiǎn)單的系統(tǒng)是可能的,但對(duì)那些功能龐大、復(fù)雜的較大的系統(tǒng)則顯然是困難的。即使事先做了深入細(xì)致的調(diào)查和分析,當(dāng)用戶見(jiàn)到新系統(tǒng)的實(shí)際效果時(shí),也
27、往往會(huì)改變?cè)鹊目捶?,?huì)提出修改或更進(jìn)一步增加系統(tǒng)功能的要求,所以再好的預(yù)先定義技術(shù)也會(huì)經(jīng)常反復(fù)。這是因?yàn)槿藗儗?duì)新事物的認(rèn)識(shí)與理解將隨著直觀、實(shí)踐的過(guò)程進(jìn)一步加深,這是與人類(lèi)認(rèn)識(shí)世界的客觀規(guī)律相一致的。所以,能夠預(yù)先定義出所有需求的假設(shè)在許多場(chǎng)合是不能成立的。(2)開(kāi)發(fā)人員與用戶之間能夠準(zhǔn)確而清晰地交流假設(shè)認(rèn)為,用戶與開(kāi)發(fā)人員之間,雖然每人都有自己的專(zhuān)業(yè)、觀點(diǎn)、行話,但在系統(tǒng)開(kāi)發(fā)過(guò)程中可以使用圖形/文檔等通信工具進(jìn)行交流,進(jìn)行清晰、有效的溝通,這種溝通是必不可少的??墒窃趯?shí)際開(kāi)發(fā)中,往往對(duì)一些共同的約定每個(gè)人都可能會(huì)產(chǎn)生自己的理解和解釋。即使采用結(jié)構(gòu)化語(yǔ)言、判定樹(shù)、判定表等工具,仍然存在精確的
28、、技術(shù)上的不嚴(yán)密感。這將導(dǎo)致人們有意無(wú)意地帶有個(gè)人的不同理解而各行其事,所以在多學(xué)科、多行業(yè)人員之間進(jìn)行有效的通信交流是有一定困難的。(3)采用圖形/文字可以充分體現(xiàn)最終系統(tǒng)在使用嚴(yán)格定義需求的開(kāi)發(fā)過(guò)程中,開(kāi)發(fā)人員與用戶之間交流、通信的主要工具是定義報(bào)告,包括敘述文字、圖形、邏輯規(guī)則和數(shù)據(jù)字典等技術(shù)工具。它們的一個(gè)共同特點(diǎn),都是靜止的、被動(dòng)的,不能實(shí)際表演,很難在用戶頭腦中形成一個(gè)具體的形象。因此,要靜止的圖形/文字描述來(lái)體現(xiàn)一個(gè)動(dòng)態(tài)的系統(tǒng)是比較困難的。除了所論述的情況外,上述基本假設(shè)還將導(dǎo)致嚴(yán)格定義的結(jié)構(gòu)化開(kāi)發(fā)方法存在以下缺陷。首先是文檔量大,由于在結(jié)構(gòu)化方法的每個(gè)階段都必須寫(xiě)出規(guī)范、嚴(yán)密的
29、各種文檔,這些文檔雖然有助于開(kāi)發(fā)人員之間、用戶與開(kāi)發(fā)人員間的通信交流,有助于開(kāi)發(fā)過(guò)程的規(guī)范化,但由于編寫(xiě)文檔花費(fèi)大量人力和時(shí)間,導(dǎo)致系統(tǒng)開(kāi)發(fā)周期增大。其次是開(kāi)發(fā)過(guò)程可見(jiàn)性差,來(lái)自用戶的反饋太遲。由于在需求定義、系統(tǒng)設(shè)計(jì)階段都不能在用戶終端顯示新系統(tǒng)的實(shí)際效果,一直到系統(tǒng)實(shí)現(xiàn)階段結(jié)束,用戶才有機(jī)會(huì)通過(guò)對(duì)新系統(tǒng)的實(shí)際操作和體會(huì),來(lái)提出他們對(duì)新系統(tǒng)的看法和意見(jiàn),但此時(shí)整個(gè)開(kāi)發(fā)已近尾聲,若想修改前幾段的工作或修改需求定義,都將付出較大的代價(jià),有時(shí)這種修改甚至?xí)?dǎo)致整個(gè)系統(tǒng)的失敗。綜上所述,需求的嚴(yán)格定義的基本假設(shè)在許多情況下并不成立,傳統(tǒng)的結(jié)構(gòu)化方法面臨著一些難以跨越的障礙。為此,需要探求一種變通的方
30、法。7 .原型定義的策略原型方法以一種與嚴(yán)格定義法截然不同的觀點(diǎn)看待需求定義問(wèn)題。原型化的需求定義過(guò)程是一個(gè)開(kāi)發(fā)人員與用戶通力合作的反復(fù)過(guò)程。從一個(gè)能滿足用戶基本需求的原型系統(tǒng)開(kāi)始,允許用戶在開(kāi)發(fā)過(guò)程中提出更好的要求,根據(jù)用戶的要求不斷地對(duì)系統(tǒng)進(jìn)行完善,它實(shí)質(zhì)上是一種迭代的循環(huán)型的開(kāi)發(fā)方式,如圖435所示。圖435原型法的開(kāi)發(fā)過(guò)程采用原型方法時(shí)需要注意的幾個(gè)問(wèn)題:(1)并非所有的需求都能在系統(tǒng)開(kāi)發(fā)前被準(zhǔn)確地說(shuō)明。事實(shí)上,要想嚴(yán)密、準(zhǔn)確地定義任何事情都是有一定難度的,更不用說(shuō)是定義一個(gè)龐大系統(tǒng)的全部需求。用戶雖然可以敘述他們所需最終系統(tǒng)的目標(biāo)以及大致功能,但是對(duì)某些細(xì)節(jié)問(wèn)題卻往往不可能十分清楚。
31、一個(gè)系統(tǒng)的開(kāi)發(fā)過(guò)程,無(wú)論對(duì)于開(kāi)發(fā)人員還是用戶來(lái)說(shuō),都是一個(gè)學(xué)習(xí)和實(shí)踐的過(guò)程,為了幫助他們?cè)谶@個(gè)過(guò)程中提出更完善的需求,最好的方法就是提供現(xiàn)實(shí)世界的實(shí)例一一原型,對(duì)原型進(jìn)行研究、實(shí)踐并進(jìn)行評(píng)價(jià)。(2)項(xiàng)目參加者之間通常都存在交流上的困難,原型提供了克服該困難的一個(gè)手段。用戶和開(kāi)發(fā)人員通過(guò)屏幕、鍵盤(pán)進(jìn)行對(duì)話和討論、交流,從他們自身的理解出發(fā)來(lái)測(cè)試原型,一個(gè)具體的原型系統(tǒng),由于直觀性、動(dòng)態(tài)性而使得項(xiàng)目參加者之間的交流上的困難得到較好的克服。(3)需要實(shí)際的、可供用戶參與的系統(tǒng)模型。雖然圖形和文字描述是一種較好的通信交流工具,但是其最大缺陷是缺乏直觀的、感性的特征,因而不易理解對(duì)象的全部含義。交互式的
32、系統(tǒng)原型能夠提供生動(dòng)的規(guī)格說(shuō)明,用戶見(jiàn)到的是一個(gè)“活”的、實(shí)際運(yùn)行著的系統(tǒng)。實(shí)際使用在計(jì)算機(jī)上運(yùn)行的系統(tǒng),顯然比理解紙面上的系統(tǒng)要深刻得多。(4)有合適的系統(tǒng)開(kāi)發(fā)環(huán)境。隨著計(jì)算機(jī)硬件、軟件技術(shù)和軟件工具的迅速發(fā)展,軟件的設(shè)計(jì)與實(shí)現(xiàn)工作越來(lái)越方便,對(duì)系統(tǒng)進(jìn)行局部性修改甚至重新開(kāi)發(fā)的代價(jià)大大降低。所以,對(duì)大系統(tǒng)的原型化已經(jīng)成為可能。(5)反復(fù)是完全需要和值得提倡的,但需求一旦確定,就應(yīng)遵從嚴(yán)格的方法。對(duì)系統(tǒng)改進(jìn)的建議來(lái)自經(jīng)驗(yàn)的發(fā)展,應(yīng)該鼓勵(lì)用戶改進(jìn)他們的系統(tǒng),只有做必要的改變后,才能使用戶和系統(tǒng)間獲得更加良好的匹配,所以,從某種意義上說(shuō),嚴(yán)格定義需求的方法實(shí)際上抑制了用戶在需求定義以后再改進(jìn)的要求
33、,這對(duì)提高最終系統(tǒng)的質(zhì)量是有害的。另一方面,原型方法的使用,并不排除嚴(yán)格定義方法的運(yùn)用,當(dāng)通過(guò)原型并在演示中得到明確的需求定義后,即應(yīng)采用行之有效的結(jié)構(gòu)化方法來(lái)完成最終系統(tǒng)的開(kāi)發(fā)。三、原型法(Prototyping)開(kāi)發(fā)過(guò)程首先用戶提出開(kāi)發(fā)要求,開(kāi)發(fā)人員識(shí)別和歸納用戶要求,根據(jù)識(shí)別、歸納結(jié)果,構(gòu)造出一個(gè)原型(即程序模塊),然后同用戶一道評(píng)價(jià)這個(gè)原型。如果不行,則再對(duì)原型進(jìn)行修改,直到用戶滿意為止。1 .原型法工作流程(動(dòng)畫(huà))2 .原型法生命周期(動(dòng)畫(huà))原型法生命周期有10個(gè)階段:(1)方法選擇從下述諸因素進(jìn)行考慮,決定該需求定義工作是采用原型方法還是嚴(yán)格定義方法。系統(tǒng)結(jié)構(gòu)原型法較適宜于相互聯(lián)系
34、程度較大的系統(tǒng),如聯(lián)機(jī)事務(wù)處理,而對(duì)批處理、批編輯等批結(jié)構(gòu)則不適合。邏輯結(jié)構(gòu)原型法較適合于管理信息系統(tǒng)等結(jié)構(gòu)化系統(tǒng),面對(duì)基于大量算法的問(wèn)題則不適合。用戶特征對(duì)于難于肯定詳細(xì)需求,且準(zhǔn)備積極參與新系統(tǒng)開(kāi)發(fā)工作的用戶,采用原型法方法是適宜的,反之則不然。應(yīng)用約束原型法不適合于對(duì)已經(jīng)運(yùn)行的系統(tǒng)進(jìn)行擴(kuò)充。要對(duì)上述所有因素都得出完全肯定的結(jié)論是困難的,有時(shí)必須根據(jù)具體情況作出權(quán)衡。當(dāng)對(duì)確定原型法是本項(xiàng)目最合適的開(kāi)發(fā)方法達(dá)成比較一致的意見(jiàn)時(shí),即可進(jìn)入下一階段工作。(2)識(shí)別基本需求為了設(shè)計(jì)、建立初始的原型,首先必須識(shí)別基本的需求。原型方法與傳統(tǒng)的嚴(yán)格定義方法主要不同在于,原型法所識(shí)別的需求不必是完善的,而
35、只是一種“好的”設(shè)想。識(shí)別用戶的基本需求是一件較為困難的工作,沒(méi)有捷徑可走,而必須仔細(xì)對(duì)當(dāng)前系統(tǒng)進(jìn)行調(diào)查,與用戶交互、做業(yè)務(wù)性研究等。傳統(tǒng)的需求調(diào)查方法和本章介紹的方法都可作為識(shí)別基本需求階段的工具?;拘枨蟮淖R(shí)別對(duì)原型法生命周期的成敗是至關(guān)重要的。一般地說(shuō),由基本需求導(dǎo)出的初始原型,其在需求方面的準(zhǔn)確性至少應(yīng)達(dá)60%否則會(huì)打擊用戶對(duì)原型法的積極性,使用戶失望。在原型方法中,迭代只是為了修改和部分完善,而不能成為建立初始原型前逃避分析的借口。(3)開(kāi)發(fā)原型本階段的目的是建立一個(gè)有一定深度和廣度的初始原型,以便由它開(kāi)始進(jìn)行迭代、修改和完善。原型開(kāi)發(fā)人員可由2人(或另1人進(jìn)行補(bǔ)充功能的輔助工作)組
36、成,因?yàn)殡S著小組規(guī)模增大,通信上的困難將導(dǎo)致開(kāi)發(fā)效率下降,而兩人小組甚至不需要寫(xiě)出說(shuō)明文件就可進(jìn)行通信和交流。開(kāi)發(fā)一個(gè)初始原型所需的時(shí)間隨系統(tǒng)規(guī)模的大小、復(fù)雜性和完整程度而不同,最好應(yīng)在36周時(shí)間內(nèi)完成,這樣既有較充分的開(kāi)發(fā)時(shí)間,又可保持用戶對(duì)原型法和最終系統(tǒng)的興趣。一般認(rèn)為,開(kāi)發(fā)初始原型的時(shí)間最長(zhǎng)不得超過(guò)兩個(gè)月。初始原型的質(zhì)量對(duì)原型法生命周期其它各階段有著重大影響,因此,初始原型必須是最終系統(tǒng)的核心部分,今后的迭代都將建立在它的基礎(chǔ)之上。如果原型過(guò)于簡(jiǎn)單,則會(huì)增加以后的迭代而浪費(fèi)時(shí)間和人力。反之,如果為了追求完整而將原型建得過(guò)大,則會(huì)降低響應(yīng)速度,并且今后勢(shì)必要對(duì)其中大量功能進(jìn)行修改同樣也會(huì)
37、降低系統(tǒng)開(kāi)發(fā)的效果。(4)原型驗(yàn)證上一階段所建成的系統(tǒng)原型為用戶和開(kāi)發(fā)人員提供了一個(gè)發(fā)展系統(tǒng)方案和功能的機(jī)會(huì),本階段的目的則是具體驗(yàn)證系統(tǒng)原型的正確程度,進(jìn)而開(kāi)發(fā)新的需求并修改原有需求。原型迭代初期的主要工作是:用戶對(duì)原型進(jìn)行熟悉和操作;總體檢查,找出隱含的錯(cuò)誤;用戶實(shí)際操作和熟悉原型系統(tǒng)。原型迭代后期的主要工作是:發(fā)現(xiàn)不正確的或者漏掉的功能;提出進(jìn)一步的建議;改善系統(tǒng)/用戶界面。開(kāi)發(fā)人員不能認(rèn)為繪出原型就已大功告成。事實(shí)上,即使開(kāi)發(fā)過(guò)程完全正確,也只是為用戶進(jìn)一步提出一些有意義的修改創(chuàng)造條件,這是原型系統(tǒng)開(kāi)發(fā)的主要目的。原型法的目標(biāo)是鼓勵(lì)改進(jìn)和創(chuàng)造,為此,開(kāi)發(fā)人員應(yīng)充分向用戶解釋所建成的原型
38、的合理性,但不要為它辯護(hù)。系統(tǒng)的原型應(yīng)該在人/機(jī)交互和用戶/開(kāi)發(fā)者交互的過(guò)程中逐步完善。(5)修正和改進(jìn)在上一步工作的基礎(chǔ)上,根據(jù)發(fā)現(xiàn)的問(wèn)題和用戶提出的要求對(duì)原型進(jìn)行修正和改進(jìn)。在極個(gè)別情況下,當(dāng)發(fā)現(xiàn)初始原型的絕大部分功能都與用戶要求相違背,或者由于其它原因使得該原型不能成為繼續(xù)迭代的模型時(shí),則應(yīng)果斷地放棄而不能繼續(xù)湊合。更多的情況是在現(xiàn)有的原型基礎(chǔ)上做進(jìn)一步的改進(jìn)。這時(shí)最好能保留改進(jìn)前后的兩個(gè)原型的版本,從而既可并存地演示兩個(gè)不供選擇的對(duì)象以幫助用戶決策,又可在必要時(shí),放棄本次修改退回原來(lái)的版本。(6)判斷原型是否完成判斷最終系統(tǒng)的需求是否已被掌握,原型迭代過(guò)程是否可以結(jié)束,以便決定下階段的
39、工作內(nèi)容,即進(jìn)行細(xì)部說(shuō)明或繼續(xù)驗(yàn)證原型。(7)判斷是否需要細(xì)部說(shuō)明在原型方法中,對(duì)那些不能通過(guò)原型進(jìn)行說(shuō)明的項(xiàng)目,如果有必要的話,應(yīng)該提供詳細(xì)的文字或其它形式的說(shuō)明。本階段的任務(wù)就是判斷是否需要進(jìn)行該項(xiàng)說(shuō)明。(8)嚴(yán)格說(shuō)明細(xì)部對(duì)那些不能通過(guò)原型說(shuō)明的項(xiàng)目,用文字和圖形等方式進(jìn)行嚴(yán)格、詳細(xì)的描述,寫(xiě)入需求說(shuō)明的文本中。例如,系統(tǒng)的輸入、輸出、系統(tǒng)的邏輯功能、數(shù)據(jù)庫(kù)組織、系統(tǒng)可靠性等項(xiàng)目均為需要進(jìn)行嚴(yán)格說(shuō)明的。在原型方法中,可借助屏幕和原型來(lái)進(jìn)行討論和確定,從而幫助進(jìn)行嚴(yán)格的細(xì)部說(shuō)明。是否會(huì)(9)判斷原型效果檢查在上一階段對(duì)某些項(xiàng)目進(jìn)行嚴(yán)格說(shuō)明后,引起原型的失效。這時(shí)如果原型出現(xiàn)問(wèn)題,則需對(duì)上述嚴(yán)
40、格說(shuō)明進(jìn)行修改C(10)整理原型、提供文檔把原型進(jìn)行整理、編寫(xiě),以便為下一步開(kāi)發(fā)服務(wù)。象任何其它軟件系統(tǒng)一樣,原型法也必須提供文檔,包括最終系統(tǒng)的需求文檔和原型本身的說(shuō)明文檔等。從上面所講的各階段內(nèi)容可以看出,采用原型生命周期提供的技術(shù)和方法,能使最終系統(tǒng)的需求定義合理化。原型法通過(guò)動(dòng)態(tài)演示,能使以用戶為中心的需求得到檢驗(yàn)和認(rèn)可。四、原型法的特點(diǎn)原型法從原理到流程都是十分簡(jiǎn)單的,且倍受推崇,有著傳統(tǒng)方法無(wú)法比擬的優(yōu)越性,點(diǎn):1 .原型法符合人們認(rèn)識(shí)事物的規(guī)律人們認(rèn)識(shí)事物不可能一次就完全了解;認(rèn)識(shí)和學(xué)習(xí)的過(guò)程是循序漸進(jìn)的;人們對(duì)事物的描述都是受環(huán)境的啟發(fā)不斷完善的;人們改進(jìn)一些事物比起創(chuàng)造來(lái)要容
41、易;2 .原型法有利于項(xiàng)目的開(kāi)發(fā)者和用戶之間的交流原型提供了具體的、看得見(jiàn)、摸得著的模型,減少誤解和不確定性;原型啟發(fā)了人們的認(rèn)識(shí),具直觀性使之能準(zhǔn)確描述需求;原型通過(guò)具體的系統(tǒng),能夠縮小開(kāi)發(fā)者和用戶對(duì)問(wèn)題的理解與認(rèn)識(shí)的差距;原型模型能夠及早暴露系統(tǒng)存在的問(wèn)題;3 .實(shí)際的原型為準(zhǔn)確認(rèn)識(shí)問(wèn)題創(chuàng)造了條件原型的直觀性、感性特征易使用戶理解系統(tǒng)的全部含義;討論的原型是開(kāi)發(fā)者與用戶共同確認(rèn)的;討論問(wèn)題的標(biāo)準(zhǔn)是統(tǒng)一的;信息的反饋是及時(shí)的;4,能充分利用最新的系統(tǒng)開(kāi)發(fā)環(huán)境利用最新的軟件工具,建立系統(tǒng)的開(kāi)發(fā)、生成環(huán)境;計(jì)算機(jī)技術(shù)發(fā)展使系統(tǒng)局部修改或重新開(kāi)發(fā)成為可能;新技術(shù)加快了速度,減少了費(fèi)用,提高了效率;
42、5.原型法將系統(tǒng)的調(diào)查、分析、設(shè)計(jì)融為一體用戶一開(kāi)始就能看到系統(tǒng)實(shí)現(xiàn)以后的具體樣子,消除了心理負(fù)擔(dān),打消了對(duì)系統(tǒng)是否可否適用等的疑慮;為用戶參與開(kāi)發(fā)過(guò)程創(chuàng)造了一個(gè)良好的條件;提高了用戶參與系統(tǒng)開(kāi)發(fā)的積極五、原型法的開(kāi)發(fā)環(huán)境由于計(jì)算機(jī)硬件的迅速發(fā)展,目前硬件已經(jīng)能夠滿足原型化開(kāi)發(fā)的需要。下面我們對(duì)原型方法所需的軟件和工作環(huán)境基本要求進(jìn)行介紹。1 .對(duì)軟件的基本要求在原型開(kāi)發(fā)方法中,由于需要迅速實(shí)現(xiàn)原型、投入運(yùn)行并不斷修改,所以對(duì)開(kāi)發(fā)工具提出了更高的要求。一般認(rèn)為,采用原型法需要以下的基本開(kāi)發(fā)工具:(1)集成化的數(shù)據(jù)字典用來(lái)保存全部有關(guān)的系統(tǒng)實(shí)體(例如數(shù)據(jù)元素、程序、屏幕格式、報(bào)告等)的定義和控制
43、信息。它可以輔助生成系統(tǒng)的某些部件。(2)高性能的數(shù)據(jù)庫(kù)管理系統(tǒng)它使文件的設(shè)計(jì)、數(shù)據(jù)的存貯和查詢更為方便,并簡(jiǎn)化了程序的開(kāi)發(fā)。(3)超高級(jí)語(yǔ)言例如第四代語(yǔ)言(4GLS),它能支持結(jié)構(gòu)化程序技術(shù),交互性能強(qiáng),以減輕復(fù)雜的編碼過(guò)程。(4)報(bào)告生成器與數(shù)據(jù)字典融為一體,允許原型開(kāi)發(fā)人員使用非過(guò)程化的語(yǔ)言,快速生成自由格式的用戶報(bào)表。(5)屏幕格式生成器能夠快速建成用戶所需的屏幕格式。(6)自動(dòng)文檔編寫(xiě)機(jī)制與數(shù)據(jù)字典相聯(lián)系,隨著原型化開(kāi)發(fā)的進(jìn)行,能夠自動(dòng)保存和維護(hù)所產(chǎn)生的文檔。前面所說(shuō)的第四代語(yǔ)言(4GLS),與我們通常使用的過(guò)程式語(yǔ)言(也稱(chēng)第三代語(yǔ)言一3GLS)f目比,其主要的特點(diǎn)是:面向結(jié)果而不是
44、面向過(guò)程;用戶界面友善;編碼行要比3GLS少得多;高度交互地解釋執(zhí)行;或有某些編譯性的特征。在原型化開(kāi)發(fā)中,開(kāi)發(fā)工具的集成化是相當(dāng)重要的,圖436描述了一個(gè)集成化的軟件開(kāi)發(fā)環(huán)境。其中一個(gè)集成化的數(shù)據(jù)字典將各種資源和開(kāi)發(fā)工具加以聯(lián)系,所有的工具都通過(guò)數(shù)據(jù)字典進(jìn)行通信,形成一體化的開(kāi)發(fā)環(huán)境,從而使得高效率的原型開(kāi)發(fā)成為可能。圖436集成化的軟件開(kāi)發(fā)環(huán)境以上論述的軟件要求是比較理想的情況。然而,國(guó)外近年來(lái)的幾個(gè)開(kāi)發(fā)實(shí)例說(shuō)明,在上述條件不能全部滿足時(shí),仍然可以進(jìn)行小規(guī)模的原型化開(kāi)發(fā)。在大多數(shù)常規(guī)軟件中,執(zhí)行速度是衡量軟件質(zhì)量的重要標(biāo)準(zhǔn)。而對(duì)原型軟件來(lái)說(shuō),運(yùn)行速度則是次要的。在原型軟件開(kāi)發(fā)中首先考慮的是
45、原型化開(kāi)發(fā)人員的最佳生產(chǎn)率。2 .對(duì)工作環(huán)境的基本要求為了提高原型開(kāi)發(fā)的生產(chǎn)率,需要提供一個(gè)合適的工作環(huán)境,例如:(1)系統(tǒng)開(kāi)發(fā)工作室,一個(gè)自封閉式的工作環(huán)境,有利于促進(jìn)合作、減少約會(huì)時(shí)間以及提高數(shù)據(jù)和資料的利用率。(2)快速響應(yīng)的環(huán)境在原型演示過(guò)程中是很有必要的。一般的要求是:交互式過(guò)程,響應(yīng)不得超過(guò)5s;批處理方式中,響應(yīng)不能超過(guò)15min。如果用戶在屏幕前等待時(shí)間過(guò)長(zhǎng),將會(huì)削弱對(duì)原型的興趣和信心。(3)規(guī)范的原型構(gòu)成過(guò)程,必要的規(guī)范和標(biāo)準(zhǔn)能加快原型的建立和向最終系統(tǒng)的轉(zhuǎn)換。利用規(guī)范的開(kāi)發(fā)技術(shù),將使現(xiàn)有程序“切割和粘貼”出新程序成為可能,從而加快開(kāi)發(fā)速度。(4)演示設(shè)施是審查和評(píng)價(jià)原型的重
46、要手段。有條件時(shí)可將顯示器與大屏幕投影機(jī)相連,只要有必要,就可對(duì)任何屏幕形式展開(kāi)討論。六、原型法的開(kāi)發(fā)原則下面將要討論的原型方法原則為系統(tǒng)提供了一套原型開(kāi)發(fā)的思想方法,對(duì)于大多數(shù)原型化過(guò)程來(lái)說(shuō),只需分析最終系統(tǒng)的某些特殊部分,而大量的功能、結(jié)構(gòu)和用戶界面,都能從其它現(xiàn)有的模型得到借鑒和重用。系統(tǒng)可以靈活地運(yùn)用原型法的這些原則,將有助于整個(gè)原型開(kāi)發(fā)過(guò)程。原型方法的原則如下:1.多數(shù)系統(tǒng)的結(jié)構(gòu)都能從一個(gè)基本系統(tǒng)結(jié)構(gòu)的集合導(dǎo)出一個(gè)系統(tǒng)中的大多數(shù)業(yè)務(wù)應(yīng)用,都可從下述八個(gè)基本的系統(tǒng)模型結(jié)構(gòu)中進(jìn)行修改和補(bǔ)充后得到。(1)成批編輯/修改,把用戶輸入的數(shù)據(jù)匯集成批,定期輸入給系統(tǒng)。(2)成批生成報(bào)表,以成批方
47、式定期從數(shù)據(jù)庫(kù)中產(chǎn)生標(biāo)準(zhǔn)或非標(biāo)準(zhǔn)的報(bào)表。(3)成批轉(zhuǎn)換,一批程序應(yīng)用多種轉(zhuǎn)換規(guī)則定期對(duì)指定的數(shù)據(jù)庫(kù)進(jìn)行修改。(4)成批對(duì)接,在系統(tǒng)之間定期進(jìn)行成批輸入/輸出對(duì)接。(5)聯(lián)機(jī)修改/查詢,定期產(chǎn)生于用戶和系統(tǒng)之間的事務(wù)。(6)聯(lián)機(jī)特殊查詢,用戶對(duì)系統(tǒng)的隨機(jī)的特殊查詢。(7)聯(lián)機(jī)界面,在實(shí)時(shí)應(yīng)用情況下,在系統(tǒng)之間定期進(jìn)行對(duì)接。(8)聯(lián)機(jī)報(bào)表生成,立即打印或推遲成批打印報(bào)表。圖43-7是上述基本系統(tǒng)結(jié)構(gòu)的一個(gè)示意其它系統(tǒng)數(shù)據(jù)庫(kù)圖437基本系統(tǒng)結(jié)構(gòu)2 .多數(shù)系統(tǒng)都包括一個(gè)常用的功能集合大多數(shù)系統(tǒng)具備如下基本功能:(1)對(duì)數(shù)據(jù)庫(kù)記錄的增加、刪除和修改。(2)對(duì)文件(包括數(shù)據(jù)庫(kù)和其它文件)的顯示(3)用戶表
48、格的打印以上功能是實(shí)現(xiàn)一個(gè)系統(tǒng)的基礎(chǔ)。對(duì)于不同的系統(tǒng),對(duì)這些基本功能會(huì)有個(gè)別的具體的要求,這正是我們?cè)诮⒃颓耙芯康膬?nèi)容。3 .報(bào)表功能可用統(tǒng)一的報(bào)表模型實(shí)現(xiàn)從數(shù)據(jù)庫(kù)生成報(bào)表的過(guò)程可分成三步:從數(shù)據(jù)庫(kù)中選擇和組合數(shù)據(jù);定義報(bào)表格式和表頭內(nèi)容;打印該報(bào)表。因此,可事先建立一個(gè)具有“記憶”功能的報(bào)表生成器,由用戶決定數(shù)據(jù)庫(kù)名稱(chēng)、報(bào)表格式、表頭內(nèi)容等,系統(tǒng)自動(dòng)將上述信息保存起來(lái),需要時(shí)可方便地打印出相應(yīng)報(bào)表。這樣用戶就能在原型化過(guò)程中直接參與、幫助開(kāi)發(fā)報(bào)表功能。在原型建立的過(guò)程中,如果對(duì)系統(tǒng)中的每個(gè)功能都要分別從頭調(diào)查,同時(shí)又必須快速地建立這個(gè)不熟悉的系統(tǒng)模型,幾乎是不可能的。根據(jù)上面講的原則,
49、原型開(kāi)發(fā)者在工作中應(yīng)充分利用那些成熟的基本結(jié)構(gòu)、基本功能模塊或程序。雖然用戶提出的是一個(gè)新的系統(tǒng)需求,但對(duì)于有經(jīng)驗(yàn)的原型開(kāi)發(fā)人員,都能很快從中找出系統(tǒng)的基本功能和共性,從而利用他們?cè)?jīng)多次開(kāi)發(fā)過(guò)的現(xiàn)成的模型進(jìn)行“裁剪”和“粘接”并進(jìn)行必要的增補(bǔ)。因此,快速地建立一個(gè)新的原型是完全可能的。六、原型構(gòu)造的修改控制在運(yùn)用原型方法進(jìn)行開(kāi)發(fā)之前,必須明確運(yùn)用原型的目的,從而決定分析與構(gòu)造內(nèi)容的取舍。由于原型不同于最終系統(tǒng),它需要迅速實(shí)現(xiàn),投入試運(yùn)行。所以必須注意在功能和性能上的取舍。既要忽略暫時(shí)不太關(guān)心的部分,以便加快原型的要求。又要充分體現(xiàn)原型的作用,滿足評(píng)價(jià)原型的要求。根據(jù)評(píng)價(jià)原型的目的,明確考核與
50、評(píng)價(jià)的內(nèi)容。例如針對(duì)人機(jī)界面形式、系統(tǒng)結(jié)構(gòu)、功能或模擬性能等。所構(gòu)造的原型可以是一個(gè)忽略細(xì)節(jié)的整體系統(tǒng),也可以僅是一個(gè)局部,例如人機(jī)界面、部分程序系統(tǒng)或數(shù)據(jù)庫(kù)模式等等。下面給出的功能和內(nèi)容只有在開(kāi)發(fā)最終系統(tǒng)中才需要,而不必在原型構(gòu)造時(shí)去考慮:報(bào)表打印的具體格式;用戶操作手冊(cè);人/機(jī)錯(cuò)誤處理;系統(tǒng)測(cè)試計(jì)劃;質(zhì)量控制檢查;數(shù)據(jù)庫(kù)規(guī)模;系統(tǒng)轉(zhuǎn)換過(guò)程;硬件和通信資源配置等。原型法的開(kāi)發(fā)過(guò)程是一個(gè)不斷地對(duì)系統(tǒng)原型進(jìn)行使用、評(píng)價(jià)、修改的循環(huán)、迭代過(guò)程。一般說(shuō)來(lái),修改和迭代的次數(shù)越多,原型的質(zhì)量就越高,但由于人力、物力和時(shí)間的限制,這種修改絕不可能無(wú)限地進(jìn)行下去,必須用科學(xué)的方法加以控制和限制。控制原型修改
51、次數(shù)的方法很多,在管理信息系統(tǒng)的開(kāi)發(fā)中,通??刹捎孟铝蟹椒ǎ?1)限制修改次數(shù)系統(tǒng)開(kāi)發(fā)前,根據(jù)各原型或原型中各模塊的重要性、復(fù)雜程度以及經(jīng)費(fèi)、時(shí)間限制情況等因素,分別約定各自的最大修改次數(shù)。如果修改次數(shù)達(dá)到該預(yù)定值時(shí)就停止修改,把原型固定下來(lái)。由于事先限制了修改的次數(shù),因此采用該方法時(shí)可能還達(dá)不到要求最高用戶的接受程度。00勤程度.不穩(wěn)定的用戶環(huán)境QI.24681012141618修改次數(shù)圖438用戶原型接受程度的變化(2)限制用戶接受的百分?jǐn)?shù)在管理信息系統(tǒng)開(kāi)發(fā)中,由于對(duì)某些性能、指標(biāo)的認(rèn)識(shí)不容易統(tǒng)一,所以不能期望用戶百分之百的絕對(duì)滿意。為了控制修改原型的次數(shù),可事先定下用戶接受原型的百分?jǐn)?shù)標(biāo)
52、準(zhǔn),例如定為80%,那么當(dāng)用戶接受程度達(dá)到該值時(shí)就可停止原型修改。在一個(gè)不穩(wěn)定的用戶環(huán)境下,用戶對(duì)原型某些問(wèn)題的想法經(jīng)常在變,修改一次原型可能增加用戶的接受程度,如圖4-3-8所示。但是,試圖通過(guò)一再修改原型來(lái)提高用戶接受的百分?jǐn)?shù),有時(shí)也是行不通的。在實(shí)際開(kāi)發(fā)時(shí),也可將1、2兩點(diǎn)結(jié)合使用,即事先同時(shí)定下修改次數(shù)和用戶接受百分?jǐn)?shù)這兩項(xiàng)指標(biāo)的最大值,在原型修改過(guò)程中只要其中一個(gè)最大值被達(dá)到,就停止修改。八、從原型向最終系統(tǒng)的轉(zhuǎn)換原型經(jīng)過(guò)反復(fù)的使用、評(píng)價(jià)和修改以后,即可轉(zhuǎn)入最終系統(tǒng)(或稱(chēng)正式系統(tǒng))的開(kāi)發(fā),如I示。從原型向正式系統(tǒng)的轉(zhuǎn)換方式有三種。4.4面向?qū)ο蟮拈_(kāi)發(fā)方法(ObjectOriented
53、,OO)從事軟件開(kāi)發(fā)的工程師們常常有這樣的體會(huì):在軟件開(kāi)發(fā)過(guò)程中,使用者會(huì)不斷地提出各種更改要求,即使在軟件投入使用后,也常常需要對(duì)其做出修改,在用結(jié)構(gòu)化開(kāi)發(fā)的程序中,這種修改往往是很困難的,而且還會(huì)因?yàn)橛?jì)劃或考慮不周,不但舊錯(cuò)誤沒(méi)有得到徹底改正,又引入了新的錯(cuò)誤;另一方面,在過(guò)去的程序開(kāi)發(fā)中,代碼的重用率很低,使得程序員的效率并不高,為提高軟件系統(tǒng)的穩(wěn)定性、可修改性和可重用性,人們?cè)趯?shí)踐中逐漸創(chuàng)造出軟件工程的一種新途徑一一面向?qū)ο蠓椒▽W(xué)。一、面向?qū)ο蟮姆椒ǎ∣O方法)簡(jiǎn)介面向?qū)ο蠓椒▽W(xué)的出發(fā)點(diǎn)和基本原則是盡可能模擬人類(lèi)習(xí)慣的思維方式,使開(kāi)發(fā)軟件的方法與過(guò)程盡可能接近人類(lèi)認(rèn)識(shí)世界、解決問(wèn)題的方
54、法與過(guò)程。由于客觀世界的問(wèn)題都是由客觀世界中的實(shí)體及實(shí)體相互間的關(guān)系構(gòu)成的,因此我們把客觀世界中的實(shí)體抽象為對(duì)象(Object)。持面向?qū)ο笥^點(diǎn)的程序員認(rèn)為計(jì)算機(jī)程序的結(jié)構(gòu)應(yīng)該與所要解決的問(wèn)題一致,而不是與某種分析或開(kāi)發(fā)方法保持一致,他們的經(jīng)驗(yàn)表明,對(duì)任何軟件系統(tǒng)而言,其中最穩(wěn)定的成分往往是其相應(yīng)問(wèn)題論域(problemdomain)中的成分。(例如在過(guò)去幾百年中復(fù)式計(jì)帳的原則未做任何實(shí)質(zhì)性的改變,而其使用的工具早已從鵝毛筆變成了計(jì)算機(jī)。)所以,“面向?qū)ο蟆笔且环N認(rèn)識(shí)客觀世界的世界觀,是從結(jié)構(gòu)組織角度模擬客觀世界的一種方法。一般人們?cè)谡J(rèn)識(shí)和了解客觀現(xiàn)實(shí)世界時(shí),通常運(yùn)用的一些構(gòu)造法則: 區(qū)分對(duì)象
55、及其屬性,例如區(qū)分臺(tái)式計(jì)算機(jī)和筆記本計(jì)算機(jī); 區(qū)分整體對(duì)象及其組成部分,例如區(qū)分臺(tái)式計(jì)算機(jī)組成(主機(jī)、顯小游寺); 不同對(duì)象類(lèi)的形成以及區(qū)分,例如所有類(lèi)型的計(jì)算機(jī)(大、中、小型計(jì)算機(jī)、服務(wù)器、工作站和普通微型計(jì)算機(jī)等)。通俗地講,對(duì)象指的是一個(gè)獨(dú)立的、異步的、并發(fā)的實(shí)體,它能“知道一些事情”(即存儲(chǔ)數(shù)據(jù)),“做一些工作”(即封裝服務(wù)),并“與其它對(duì)象協(xié)同工作”(通過(guò)交換消息),從而完成系統(tǒng)的所有功能。因?yàn)樗鉀Q的問(wèn)題具有特殊性,所以對(duì)象是不固定的。一個(gè)雇員可以作為一個(gè)對(duì)象,一家公司也可以作為一個(gè)對(duì)象,到底應(yīng)該把什么抽象為對(duì)象,由所要解決的問(wèn)題決定。從以上的簡(jiǎn)單介紹中我們可以看出,面向?qū)ο笏鶐?/p>
56、來(lái)的好處是程序的穩(wěn)定性與可修改性(由于把客觀世界分解成一個(gè)一個(gè)的對(duì)象,并且把數(shù)據(jù)和操作都封裝在對(duì)象的內(nèi)部)、可復(fù)用性(通過(guò)面向?qū)ο蠹夹g(shù),我們不僅可以復(fù)用代碼,而且可以復(fù)用需求分析、設(shè)計(jì)、用戶界面等等)。面向?qū)ο蠓椒ň哂邢率鏊膫€(gè)要點(diǎn):1 .認(rèn)為客觀世界是由各種對(duì)象組成的,任何事物都是對(duì)象,復(fù)雜的對(duì)象可以由比較簡(jiǎn)單的對(duì)象以某種方式組合而成。按照這種觀點(diǎn),可以認(rèn)為整個(gè)世界就是一個(gè)最復(fù)雜的對(duì)象。因此,面向?qū)ο蟮能浖到y(tǒng)是由對(duì)象組成的,軟件中的任何元素都是對(duì)象,復(fù)雜的軟件對(duì)象由比較簡(jiǎn)單的對(duì)象組合而成。2 .把所有對(duì)象都劃分成各種對(duì)象類(lèi)(簡(jiǎn)稱(chēng)為類(lèi)(Class),每個(gè)對(duì)象類(lèi)都定義了一組數(shù)據(jù)和一組方法,數(shù)據(jù)用于表示對(duì)象的靜態(tài)屬性,是對(duì)象的狀態(tài)信息。因此,每當(dāng)建立該對(duì)象類(lèi)的一個(gè)新實(shí)例時(shí),就按照類(lèi)中對(duì)數(shù)據(jù)的定義為這個(gè)新對(duì)象生成一組專(zhuān)用的數(shù)據(jù),以便描述該對(duì)象獨(dú)特的屬性值。例如,熒光屏上不同位置顯示的半徑不同的幾個(gè)圓,雖然都是Circle類(lèi)的對(duì)象,但是,各自都有自己專(zhuān)用的數(shù)據(jù),以便記錄各自的圓心位置、半徑等等。類(lèi)中定義的方法,是允許施加于該類(lèi)對(duì)象上的操作,是該類(lèi)所有對(duì)象共享的,并不需要為每個(gè)對(duì)象都復(fù)制操作的代碼。3 .按照子類(lèi)(或稱(chēng)為派生類(lèi))與父類(lèi)(或稱(chēng)為基類(lèi))的關(guā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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024至2030年中國(guó)雙色龍電腦變色燈數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024至2030年中國(guó)全透明香皂數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024年中國(guó)高強(qiáng)度化纖紙芯市場(chǎng)調(diào)查研究報(bào)告
- 2024年中國(guó)電動(dòng)充氣泵市場(chǎng)調(diào)查研究報(bào)告
- 2024八年級(jí)數(shù)學(xué)上冊(cè)第四章圖形的平移與旋轉(zhuǎn)2圖形的旋轉(zhuǎn)第3課時(shí)旋轉(zhuǎn)變換的應(yīng)用習(xí)題課件魯教版五四制
- 2024年咸寧客運(yùn)從業(yè)資格證仿真考試題庫(kù)
- 2024年江西客運(yùn)資格證節(jié)能駕駛考試題
- 2024年廣東客運(yùn)駕駛員從業(yè)資格證考試答案
- 鋼鐵產(chǎn)品供貨合同規(guī)定(3篇)
- 網(wǎng)上支付稅費(fèi)服務(wù)協(xié)議書(shū)格式(3篇)
- GB/T 11017.2-2024額定電壓66 kV(Um=72.5 kV)和110 kV(Um=126 kV)交聯(lián)聚乙烯絕緣電力電纜及其附件第2部分:電纜
- 生 物2024-2025學(xué)年人教版生物七年級(jí)上冊(cè)期中模擬生物試卷
- GB/T 43617.4-2024滾動(dòng)軸承滾動(dòng)軸承潤(rùn)滑脂噪聲測(cè)試第4部分:測(cè)試和評(píng)估方法NQ
- 養(yǎng)殖水面出租合同模板
- 7.2 共建美好集體(課件)-2024-2025學(xué)年七年級(jí)道德與法治上冊(cè) 統(tǒng)編版
- 2023-2024學(xué)年全國(guó)初中八年級(jí)上歷史人教版期中考試試卷(含答案解析)
- 實(shí)驗(yàn)活動(dòng)8 搭建球棍模型認(rèn)識(shí)有機(jī)化合物分子結(jié)構(gòu)的特點(diǎn)(教學(xué)設(shè)計(jì))2023-2024學(xué)年高一化學(xué)同步教學(xué)教學(xué)設(shè)計(jì)+習(xí)題(人教版2019必修第二冊(cè))
- 2025年上海市數(shù)學(xué)高考一輪復(fù)習(xí):立體幾何(Ⅰ)(考點(diǎn)練+模擬練)含詳解
- 2023-2024學(xué)年北京西城區(qū)三十五中高一(上)期中化學(xué)試題及答案
- 2023-2024學(xué)年北京東城區(qū)二中初三(上)期中道法試題及答案
- 廣東省深圳市(2024年-2025年小學(xué)三年級(jí)語(yǔ)文)統(tǒng)編版質(zhì)量測(cè)試(上學(xué)期)試卷(含答案)
評(píng)論
0/150
提交評(píng)論