2022年自考軟件開(kāi)發(fā)工具總復(fù)習(xí)和名詞解釋_第1頁(yè)
2022年自考軟件開(kāi)發(fā)工具總復(fù)習(xí)和名詞解釋_第2頁(yè)
2022年自考軟件開(kāi)發(fā)工具總復(fù)習(xí)和名詞解釋_第3頁(yè)
2022年自考軟件開(kāi)發(fā)工具總復(fù)習(xí)和名詞解釋_第4頁(yè)
2022年自考軟件開(kāi)發(fā)工具總復(fù)習(xí)和名詞解釋_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第一章 緒論 1.1 軟件開(kāi)發(fā)工具的由來(lái) 一、軟件開(kāi)發(fā)工具: 1、軟件開(kāi)發(fā)工具的范圍大致可以描述為:在高級(jí)程序設(shè)計(jì)語(yǔ)言(第三代語(yǔ)言)的基礎(chǔ)上,為提高軟件開(kāi)發(fā)的質(zhì)量和效率,從規(guī)劃、分析、設(shè)計(jì)、測(cè)試、成文和管理各方面,對(duì)軟件開(kāi)發(fā)者提供各種不同的幫助的一類(lèi)廣泛的軟件。 2、如何理解: 首先,是一類(lèi)軟件,是開(kāi)發(fā)軟件用的軟件。 其次,是在第三代語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的。 另外,這里強(qiáng)調(diào)對(duì)軟件開(kāi)發(fā)全過(guò)程中各個(gè)階段的支持,即不僅包含狹義的編程階段,而是包括了相當(dāng)廣泛的范圍和相當(dāng)豐富的內(nèi)容。 二、軟件開(kāi)發(fā)工具的產(chǎn)生與演變 1、軟件開(kāi)發(fā)工具的產(chǎn)生與演變 第一代語(yǔ)言機(jī)器語(yǔ)言 第二代語(yǔ)言匯編語(yǔ)言 第三代語(yǔ)言高級(jí)程序設(shè)

2、計(jì)語(yǔ)言(過(guò)程化語(yǔ)言) 第四代語(yǔ)言非過(guò)程化語(yǔ)言 2、第三代語(yǔ)言與第二代語(yǔ)言的區(qū)別 第三代語(yǔ)言突破了與機(jī)器指令一一對(duì)應(yīng)的限制,用盡可能接近自然語(yǔ)言的表達(dá)方式描述人們?cè)O(shè)想的處理過(guò)程,把這種表達(dá)方式向機(jī)器指令的轉(zhuǎn)化工作交給編譯系統(tǒng)去完成。 另一個(gè)重要的變化是高級(jí)設(shè)計(jì)語(yǔ)言實(shí)現(xiàn)了對(duì)機(jī)器的獨(dú)立性,即不依賴(lài)特定的硬件系統(tǒng),抽象地邏輯地描述處理和算法,而把硬件系統(tǒng)之間的區(qū)別交給不同的編譯系統(tǒng)去處理,從而大大提高了程序的可移植性。 (第三代程序設(shè)計(jì)語(yǔ)言一般是過(guò)程化語(yǔ)言) 3、第四代語(yǔ)言非過(guò)程化語(yǔ)言思想 人們希望機(jī)器能夠自動(dòng)地完成更多的工作,包括自動(dòng)安排某些(不是全部)工作的順序,而做到只要給機(jī)器下達(dá)需要做什么的命

3、令,由機(jī)器自己去安排執(zhí)行的順序。 4、軟件危機(jī): 在認(rèn)識(shí)到軟件工作重要性的同時(shí),也認(rèn)識(shí)到軟件工作的困難性。這就是所謂的“軟件危機(jī)”問(wèn)題的提出。 三、軟件工作的重要性 1、軟件是計(jì)算機(jī)的靈魂 (1)軟件是廣大使用者與計(jì)算機(jī)之間的橋梁;(2)軟件是人類(lèi)的各個(gè)領(lǐng)域中積累的知識(shí)的結(jié)晶;(3)軟件是人類(lèi)文明與知識(shí)得以延續(xù)的新的載體;(4)軟件是人類(lèi)進(jìn)一步成為一個(gè)整體,得以進(jìn)一步相互聯(lián)系的紐帶。 2、軟件工作的困難性 (1)人類(lèi)社會(huì)和客觀世界的復(fù)雜性,決定了軟件本身的復(fù)雜性; (2)人類(lèi)知識(shí)和豐富多彩,決定了軟件的極大多樣性; (3)客觀世界的動(dòng)態(tài)性,決定了軟件對(duì)可維護(hù)性、可靠性越來(lái)越高的要求。 如何保證

4、軟件的正確性、可靠性,如何控制軟件開(kāi)發(fā)工作的進(jìn)度與成本,成了理論上十分重要、實(shí)際中十分迫切的課題。 3、用通用軟件幫助軟件開(kāi)發(fā)有三個(gè)主要弱點(diǎn): (1)有許多工作是通用軟件所無(wú)法完成的。 (2)用通用軟件完成某些工作只能表現(xiàn)其表面的形式,而不能反映其內(nèi)涵。 (3)用通用軟件來(lái)幫助人們完成軟件開(kāi)發(fā)工作時(shí),常常遇到難于保持一致性的困難。 四、專(zhuān)門(mén)用于軟件開(kāi)發(fā)的軟件開(kāi)發(fā)工具 1、專(zhuān)用的軟件開(kāi)發(fā)工具主要分為以下幾類(lèi) (1)面向特定功能模塊的各種代碼生成程序(報(bào)表生成器、菜單生成器、對(duì)話(huà)生成器等); (2)綜合性的第四代語(yǔ)言一般是立足于某種數(shù)據(jù)庫(kù)管理系統(tǒng)或某種第三代語(yǔ)言之上的); (3)專(zhuān)用于某種文檔的編

5、寫(xiě)工具; (4)數(shù)據(jù)字典管理系統(tǒng)(DDMS); (5)專(zhuān)用于畫(huà)數(shù)據(jù)流程圖、ER圖或程序框圖的繪圖軟件等。 2、專(zhuān)用的軟件開(kāi)發(fā)工具的出現(xiàn),并未解決第三個(gè)困難,一致性的保持仍然是懸而未決的難題。這種情況導(dǎo)致集成的軟件開(kāi)發(fā)工具的產(chǎn)生。 3、1989年,IBM開(kāi)發(fā)的AD/Cycle的主要失誤在于兩點(diǎn): (1)拘泥于集中式的處理思路,對(duì)于新的客戶(hù)機(jī)/服務(wù)器結(jié)構(gòu)未能及時(shí)適應(yīng); (2)堅(jiān)持在OS/400等自己特殊平臺(tái)上開(kāi)發(fā),背離了開(kāi)放性的大趨勢(shì)。 1.2 軟件開(kāi)發(fā)工具的概念 一、概念 1、三個(gè)要點(diǎn): (1)它是在高級(jí)程序設(shè)計(jì)語(yǔ)言(第三代語(yǔ)言)之后 ,軟件技術(shù)進(jìn)一步發(fā)展的產(chǎn)物; (2)它的目的是在人們開(kāi)發(fā)軟件

6、過(guò)程中給予人們各種不同方面、不同程度的支持或幫助; (3)它支持軟件開(kāi)發(fā)的全過(guò)程,而不是僅限于編碼或其它特定的工作階段。 2、軟件開(kāi)發(fā)工具有繼承性和創(chuàng)新性 一方面,軟件開(kāi)發(fā)工具是軟件技術(shù)發(fā)展的必然產(chǎn)物和自然的趨勢(shì),它的基本思想是致力于軟件開(kāi)發(fā)的高效優(yōu)質(zhì); 另一方面,隨著人類(lèi)對(duì)軟件與軟件開(kāi)發(fā)過(guò)程理解的深入,它又具備了新思想與方法。 3、軟件用來(lái)特指看不見(jiàn)、摸不著的,但又發(fā)揮著十分重要的作用、事先編好的指令系列。硬件是軀體,軟件是靈魂。 4、軟件一頭連著計(jì)算機(jī)硬件,向硬件提供它可以執(zhí)行的機(jī)器指令,另一頭面向用戶(hù),接受用戶(hù)提出的要求,提供的算法。(軟件是用戶(hù)與硬件之間的橋梁) 5、軟件實(shí)際上是人類(lèi)知

7、識(shí)與經(jīng)驗(yàn)的結(jié)晶。 6、軟件包括程序和文檔兩個(gè)不可缺少的組成部分。 二、軟件開(kāi)發(fā)工作的四個(gè)階段: 最初階段的工作僅限于把用戶(hù)已經(jīng)明確表述出來(lái)年算法,用機(jī)器語(yǔ)言寫(xiě)成一系列機(jī)器指令,供硬件運(yùn)行使用。 第二階段:匯編語(yǔ)言 第三階段:高級(jí)程序設(shè)計(jì)語(yǔ)言 第四階段:目前進(jìn)入的以應(yīng)用軟件開(kāi)發(fā)工具為標(biāo)志的新階段。 三、對(duì)于本書(shū)討論的軟件開(kāi)發(fā)工具及新的軟件開(kāi)發(fā)方法來(lái)說(shuō),客觀存在的發(fā)展主要表現(xiàn)在四個(gè)方面: 首先是自動(dòng)化程度的提高。 其次,這一階段的工作明確地把需求分析包括進(jìn)了軟件工作的范圍之內(nèi),從而使軟件開(kāi)發(fā)過(guò)程進(jìn)一步向用戶(hù)方面延伸,離用戶(hù)更近了。 第三,把軟件開(kāi)發(fā)工作延伸到項(xiàng)目及版本管理,從而超出了一次編程的局限

8、,而擴(kuò)展到了作為一個(gè)不斷發(fā)展的客體生長(zhǎng)完善的全過(guò)程。(這也是軟件研制從個(gè)體的、手工作坊的方式向科學(xué)的、有組織、有計(jì)劃的方式轉(zhuǎn)變的一個(gè)重要表現(xiàn)。) 最后,這一階段的研究吸收了許多管理科學(xué)的內(nèi)容與方法,如程序員的組織、質(zhì)量的控制等。 總之,軟件開(kāi)發(fā)工具的提出與使用,是軟件技術(shù)發(fā)展的一個(gè)新的階段。 四、涉及到的一些類(lèi)似、相關(guān)的概念或術(shù)語(yǔ): 1、第四代語(yǔ)言(4GL):原義是非過(guò)程化的程序設(shè)計(jì)語(yǔ)言。第四代語(yǔ)言可以被看作軟件開(kāi)發(fā)工具中的一類(lèi),而不是全部。軟件開(kāi)發(fā)工具的范圍還要更寬一些。 2、CASE工具:兩種解釋。一種是計(jì)算機(jī)輔助軟件工程,另一咱是計(jì)算機(jī)輔助系統(tǒng)工程。 3、可視化編程、最終用戶(hù)計(jì)算、組合編

9、程、即插即用編程、組合軟件等。 4、軟件開(kāi)發(fā)工具學(xué):也即軟件開(kāi)發(fā)工具 1.3 軟件開(kāi)發(fā)工具的功能與性能 一、軟件開(kāi)發(fā)的過(guò)程: 第一階段:初始要求的提出。軟件開(kāi)發(fā)工作者的任務(wù)是根據(jù)這種初始要求形成嚴(yán)格的、明確的、可供實(shí)際開(kāi)發(fā)使用的功能說(shuō)明書(shū)。(成果:軟件功能說(shuō)明書(shū)) 第二階段:總體設(shè)計(jì)。任務(wù)是根據(jù)軟件功能說(shuō)明書(shū)的要求,完成軟件的總體設(shè)計(jì),包括整個(gè)軟件的結(jié)構(gòu)設(shè)計(jì)、公用的數(shù)據(jù)文件或數(shù)據(jù)庫(kù)的設(shè)計(jì)、各部分的連接方式及信息交換的標(biāo)準(zhǔn)等幾個(gè)主要內(nèi)容。(成果:系統(tǒng)的總體設(shè)計(jì)文件及各個(gè)模塊的設(shè)計(jì)任務(wù)書(shū)) 第三個(gè)階段:程序的編寫(xiě)和文檔的編寫(xiě),統(tǒng)稱(chēng)為實(shí)現(xiàn)階段。 第四個(gè)階段:測(cè)試或調(diào)試階段。包括兩部分:模塊的高度、整

10、個(gè)軟件的聯(lián)調(diào)。(測(cè)試工作最好由專(zhuān)門(mén)的小組去進(jìn)行。) 二、軟件開(kāi)發(fā)工具的功能要求:(五個(gè)主要方面) 1、認(rèn)識(shí)與描述客觀系統(tǒng)。 這主要是用在軟件開(kāi)發(fā)工作的第一個(gè)階段需求分析階段。 2、存儲(chǔ)及管理開(kāi)發(fā)過(guò)程中的信息。 3、代碼的編寫(xiě)或生成。 4、文檔的編制或生成。 5、軟件項(xiàng)目的管理。 這一功能是為項(xiàng)目管理人員提供支持(包括:進(jìn)度管理、資源與費(fèi)用管理、質(zhì)量管理三個(gè)基本要求)。 三、軟件開(kāi)發(fā)工具的性能 功能:是指軟件能做什么事。 性能:是指事情做到什么樣的程度。 軟件開(kāi)發(fā)工具的五項(xiàng)重要性能: 1、表達(dá)能力或描述能力。 2、保持信息一致性的能力。 3、使用的方便程度。 4、工具的可靠程度。 5、對(duì)硬件和軟

11、件的要求。 1.4 軟件開(kāi)發(fā)工具的類(lèi)別 一、按工作階段劃分: 設(shè)計(jì)工具、分析工具、計(jì)劃工具 1、設(shè)計(jì)工具:從工作的抽象程度來(lái)看,設(shè)計(jì)工具是具體的,它是指在實(shí)現(xiàn)階段對(duì)人們提供幫助的工具。如:代碼生成器、一般所說(shuō)的第四代語(yǔ)言以及幫助人們進(jìn)行測(cè)試的工具 2、分析工具:主要是指用于支持需求分析的工具。 3、計(jì)劃工具:從更宏觀的角度去看待軟件開(kāi)發(fā)。(實(shí)現(xiàn)了“跨生命周期”的信息管理與共享) 實(shí)踐中,設(shè)計(jì)工具出現(xiàn)得最早、數(shù)量最大。分析工具出現(xiàn)得較晚、數(shù)量也少一些。設(shè)計(jì)。計(jì)劃工具完成是為項(xiàng)目主管人員服務(wù)的,再現(xiàn)和開(kāi)發(fā)得比較晚。 計(jì)劃工具的重要性及地位將隨著軟件產(chǎn)業(yè)的發(fā)展而越來(lái)越為人們所認(rèn)識(shí)。 二、按集成程度劃

12、分:專(zhuān)用、集成 1、專(zhuān)用的、面對(duì)某一工作階段或某一工作任務(wù)的工具 2、集成化的、面對(duì)軟件開(kāi)發(fā)的全過(guò)程的工具(集成化的軟件開(kāi)發(fā)工具也常常被稱(chēng)為“軟件工作環(huán)境”) 三、按與硬件、軟件的關(guān)系劃分 1、依賴(lài)于特定的計(jì)算機(jī)或特定的軟件(如某種數(shù)據(jù)庫(kù)管理系統(tǒng)) 2、獨(dú)立于硬件與其它軟件的開(kāi)發(fā)工具。 一般來(lái)說(shuō),設(shè)計(jì)工具多依賴(lài)于特定的軟件,分析工具與計(jì)劃工具則往往是獨(dú)立于機(jī)器與軟件的,集成化的軟件開(kāi)發(fā)工具又常常是依賴(lài)于機(jī)器與軟件的。(會(huì)判斷) 軟件開(kāi)發(fā)工具是否依賴(lài)于特定的計(jì)算機(jī)硬件或軟件系統(tǒng),對(duì)于應(yīng)用的效果與作用有直接影響。 1.5 軟件開(kāi)發(fā)工具的研究與應(yīng)用 一、應(yīng)用軟件開(kāi)發(fā)隊(duì)伍中的兩種人員: 1、一種是計(jì)算

13、機(jī)專(zhuān)業(yè)出身的技術(shù)人員。(面臨的主要問(wèn)題是如何盡快地進(jìn)入新的應(yīng)用領(lǐng)域,成為這個(gè)領(lǐng)域的內(nèi)行,從而發(fā)揮自己的長(zhǎng)處) 需求與分析工具是最直接、最急需的。 2、另一種人員來(lái)自各個(gè)應(yīng)用領(lǐng)域,他們出身于計(jì)算機(jī)以外的各種專(zhuān)業(yè)領(lǐng)域。 感興趣的是設(shè)計(jì)工具第四代語(yǔ)言,各種代碼生成系統(tǒng)等。 當(dāng)以上兩種人逐步超出個(gè)人編程階段成為項(xiàng)目負(fù)責(zé)人時(shí),對(duì)計(jì)劃工具的需求也就隨之產(chǎn)生。他們的需求與愿望是軟件開(kāi)發(fā)工具產(chǎn)生與發(fā)展的根本動(dòng)力。 二、學(xué)習(xí)軟件開(kāi)發(fā)工具的在于了解軟件開(kāi)發(fā)工具的概、理論基礎(chǔ)、基本功能、發(fā)展現(xiàn)狀與前景,以便在實(shí)際工作中正確地選擇與使用軟件開(kāi)發(fā)工具,在必須時(shí)能夠參加或組織軟件開(kāi)發(fā)工具的自行研制,從而達(dá)到提高軟件工作水

14、平與效率之目的。這也是本書(shū)的目的。課后習(xí)題(在哪個(gè)位置) 第二章 軟件開(kāi)發(fā)過(guò)程及其組織2.1 軟件開(kāi)發(fā)中的困難軟件的復(fù)雜性超出了人類(lèi)的處理能范圍。軟件危機(jī)的情況與根源。 一、軟件開(kāi)發(fā)的基本問(wèn)題 1、軟件開(kāi)發(fā)過(guò)程的兩個(gè)轉(zhuǎn)換: 首先是從用戶(hù)的理解到程序員的理解,其次是從程序員的理解到程序的實(shí)現(xiàn)。 2、兩個(gè)轉(zhuǎn)換的基本情況: 第一個(gè)轉(zhuǎn)換是用戶(hù)對(duì)軟件功能的理解和程序員對(duì)軟件功能的理解之間的轉(zhuǎn)換。保證這一轉(zhuǎn)換順利完成的手段就是利用盡可能標(biāo)準(zhǔn)化的方法編寫(xiě)程序設(shè)計(jì)任務(wù)書(shū),用明確的語(yǔ)言或圖形、表格,把程序要處理的信息的內(nèi)容、格式、來(lái)源、去向、存儲(chǔ)與處理清楚的表達(dá)出來(lái),作為雙方共同的理解。 第二個(gè)轉(zhuǎn)換所要解決的是

15、人和機(jī)器之間交流與協(xié)調(diào)問(wèn)題:人和機(jī)器之間在思維方式、工作方式上都有許多根本區(qū)別。做好第二個(gè)轉(zhuǎn)換的關(guān)鍵在于程序員的知識(shí)水平與實(shí)際經(jīng)驗(yàn)。 3、對(duì)于單個(gè)程序員來(lái)說(shuō),做好軟件工作的關(guān)鍵是以上兩個(gè)轉(zhuǎn)換。 二、大型軟件開(kāi)發(fā)中的困難(大題) 當(dāng)程序的規(guī)模超 出一個(gè)人的力量范圍時(shí),一系列新的、更難以克服的困難就出現(xiàn)在人們的面前了。 (1)一致性的保持成為十分困難的問(wèn)題。 (2)測(cè)試的困難大大增加。 名詞水波效應(yīng):當(dāng)我們修改程序的某一處錯(cuò)誤時(shí),由于沒(méi)有充分考慮到這一修改對(duì)相關(guān)部分帶來(lái)的影響,結(jié)果出現(xiàn)新的錯(cuò)誤。 黑箱檢驗(yàn)方法(只能證明程序有錯(cuò)而不能證明程序沒(méi)錯(cuò)) (3)工作進(jìn)度難以控制。(與其他工作相比,大型軟件

16、開(kāi)發(fā)中的進(jìn)度控制是非常困難的) (4)文檔與代碼協(xié)調(diào)十分困難。(文檔包括:功能說(shuō)明書(shū)、總體設(shè)計(jì)、各模塊的設(shè)計(jì)任務(wù)書(shū)、每個(gè)部分的研制報(bào)告、測(cè)試報(bào)告,直到最終的驗(yàn)收?qǐng)?bào)告和給使用者的用戶(hù)手冊(cè)) (5)版本更新帶來(lái)的困難。(大量的工作在于審核與回顧) 總之,如果說(shuō)單個(gè)程序員的軟件開(kāi)發(fā)工作面臨的困難是一分的話(huà),那么多人參加的大型軟件開(kāi)發(fā)工作面臨的困難將是十分的,或者更多。 三、困難產(chǎn)生的原因 原因是復(fù)雜的、多方面的,不能得意地歸結(jié)為程序員或軟件工作者的弱點(diǎn): 首先,這些困難來(lái)自大系統(tǒng)的復(fù)雜性。 其次,許多具有主動(dòng)性的個(gè)人之間的組織與協(xié)調(diào)本身也會(huì)帶來(lái)大量的困難。 另外,各個(gè)應(yīng)用領(lǐng)域之間的差別也導(dǎo)致這些困難

17、的加重。 最后,時(shí)間的因素、變化的因素也給軟件開(kāi)發(fā)工作帶來(lái)許多困難。 軟件危機(jī)的研究與克服,是當(dāng)代人類(lèi)思想發(fā)展的前沿課題之一。 2.2 軟件開(kāi)發(fā)方法的發(fā)展 軟件開(kāi)發(fā)的方法:結(jié)構(gòu)化程序設(shè)計(jì)、軟件工程方法、面向?qū)ο蟮姆椒?、即插即用的程序設(shè)計(jì)方法、可視化設(shè)計(jì)編程 軟件開(kāi)發(fā)工作中涉及到的人員及承擔(dān)的工作 用戶(hù):提出要求、驗(yàn)收、使用、要求修改 項(xiàng)目負(fù)責(zé)人:分析需求、向程序員分配任務(wù)、驗(yàn)收程序員的工作成果代碼與文檔、對(duì)整個(gè)軟件進(jìn)行聯(lián)調(diào),向用戶(hù)交付使用,接收與分析用戶(hù)的修改要求,向程序員布置修改任務(wù)、驗(yàn)收修改成果并向用戶(hù)提交新的版本或修改的結(jié)果等。(十分關(guān)鍵的作用) 程序員:編寫(xiě)程序、編寫(xiě)文檔、調(diào)試自己編碼

18、的程序、向項(xiàng)目負(fù)責(zé)人提交工作成果。 一、結(jié)構(gòu)化程序設(shè)計(jì): 1、程序結(jié)構(gòu)與設(shè)計(jì)的技術(shù)一書(shū)中關(guān)于好的程序結(jié)構(gòu)的各種看法: (1)它能夠保證程序正常地,按照功能說(shuō)明書(shū)運(yùn)行; (2)它具有靈活性,沒(méi)有錯(cuò)誤,即使有了錯(cuò)誤也能夠很快地改正; (3)它的文檔齊全,一旦需要變更,很容易找到應(yīng)當(dāng)改動(dòng)的地方; (4)它運(yùn)行速度快; (5)它在經(jīng)濟(jì)上能夠保證投資很快地得到回報(bào)。 2、程序的結(jié)構(gòu)分解成三種基本模塊:處理單元、循環(huán)機(jī)制、二分決策機(jī)制。 問(wèn)題的關(guān)鍵在于合理地劃分模塊 3、模塊的劃分應(yīng)當(dāng)符合以下三條基本的要求: (1)模塊的功能在邏輯上盡可能地單一化、明確化,最好做到模塊與任務(wù)的一一對(duì)應(yīng),即每一個(gè)模塊實(shí)現(xiàn)一

19、項(xiàng)明確的任務(wù),反之每項(xiàng)任務(wù)僅由一個(gè)模塊來(lái)完成。(凝聚性) (2)模塊之間的聯(lián)系及互相影響盡可能地少,對(duì)于必需的聯(lián)系都應(yīng)當(dāng)加以明確的說(shuō)明,如參數(shù)傳遞,共享文件的內(nèi)容民格式等。(各種聯(lián)系及相互影響稱(chēng)為耦合,應(yīng)當(dāng)盡量避免邏輯耦合,而僅限于數(shù)據(jù)耦合。) (3)模塊的規(guī)模應(yīng)當(dāng)足夠小,以便使它本身的調(diào)試易于進(jìn)行。 如果一個(gè)軟件能夠分解成滿(mǎn)足上述三條原則的模塊,那么它就可以稱(chēng)為有良好結(jié)構(gòu)的軟件,能夠避免前面所講的各種問(wèn)題。 實(shí)施這種方法應(yīng)當(dāng)采取自頂向下的方法。自上而下、逐步分解的辦法。 4、結(jié)構(gòu)化程序設(shè)計(jì)的基本思想: (1)限制甚至不用GOTO語(yǔ)句,絕對(duì)禁止超越模塊邊界的GOTO語(yǔ)句; (2)子程序盡可能做

20、到只有一個(gè)入口、一個(gè)出口; (3)程序風(fēng)格應(yīng)盡量明確、清晰,包括適當(dāng)增加注釋?zhuān)瑫?shū)寫(xiě)格式體現(xiàn)層次結(jié)構(gòu),變量名稱(chēng)的選用盡量具有邏輯意義等; (4)在程序編寫(xiě)的同時(shí),完成有關(guān)的文檔編撰,不要拖延時(shí)間。 結(jié)構(gòu)化程序設(shè)計(jì)方法主要是為程序員服務(wù)的。 結(jié)構(gòu)化程序設(shè)計(jì)方法的缺點(diǎn):增大了程序工作量,增加了編輯中的麻煩與瑣碎的工作,并且降低了程序的運(yùn)行效率。但這種是為保證軟件的可靠、準(zhǔn)確度與易于修改付出的代價(jià)。 二、軟件工程的方法 1、工程思想的核心有兩點(diǎn):標(biāo)準(zhǔn)化的表達(dá)方法與規(guī)范化的工作步驟。 2、軟件工程的產(chǎn)生背景: 由于軟件危機(jī)的發(fā)生,人們認(rèn)識(shí)到,把軟件的質(zhì)量寄托于各個(gè)程序員的技能與認(rèn)真負(fù)責(zé)上是不牢靠的、危險(xiǎn)

21、的、不現(xiàn)實(shí)的。(P25) 3、軟件開(kāi)發(fā)工作中需要加強(qiáng)的兩個(gè)方面 一方面,對(duì)工作的步驟做出了嚴(yán)格的規(guī)定。每一個(gè)階段都有各自明確的任務(wù)、明確的起點(diǎn)、明確的終點(diǎn),特別是要有確切的、可以檢查的成果。 另一方面,在質(zhì)量、表達(dá)方式等方面要有統(tǒng)一的、為人們共同遵守的標(biāo)準(zhǔn)。 4、對(duì)軟件開(kāi)發(fā)工作過(guò)程進(jìn)行規(guī)范化: 第一階段,需求分析,也可以稱(chēng)之為企業(yè)模型建立階段。任務(wù):了解企業(yè)的結(jié)構(gòu)與功能,掌握組織及管理者的信息需求,弄清信息流通的實(shí)際情況。 第二階段,分析與設(shè)計(jì)階段,任務(wù):進(jìn)行功能分解及數(shù)據(jù)分析,完成處理過(guò)程及數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)。 第三階段,編程階段,任務(wù):完成具體的程序編寫(xiě)工作。 第四階段,測(cè)試階段,任務(wù):對(duì)已

22、有的代碼進(jìn)行認(rèn)真的檢測(cè)與試用。 第五階段,作用及維護(hù)階段,任務(wù):組織使用者有效地作用,并及時(shí)檢查與修正發(fā)現(xiàn)的錯(cuò)誤。 5、標(biāo)準(zhǔn)化方面主要從兩個(gè)方面去探索: 一方面是表達(dá)方式的標(biāo)準(zhǔn)化。 另一方面是對(duì)工作的質(zhì)量及檢查制訂標(biāo)準(zhǔn)。 6、軟件工程的思想主要集中于加強(qiáng)項(xiàng)目管理者的工作,對(duì)程序員關(guān)系不大。 完全的工程化還遠(yuǎn)遠(yuǎn)沒(méi)有做到。 三、面向?qū)ο蟮姆椒?面向?qū)ο蟮某绦蛟O(shè)計(jì)(OOP)的基本思想可以歸納為以下四點(diǎn): (1)客觀世界的任何事物都是對(duì)象,它們都有一些靜態(tài)屬性,也都有一些有關(guān)的操作。(封裝性) (2)對(duì)象之間有抽象與具體、群體與個(gè)體、整體與部分等幾種關(guān)系。 (3)抽象的、較大的對(duì)象所具有的性質(zhì)包括靜態(tài)

23、屬性和動(dòng)態(tài)操作,自然地成為它的子類(lèi)的性質(zhì)。(遺傳性) (4)對(duì)象之間可以互送消息,這一消息可以是傳送一個(gè)參數(shù),也可以是使這個(gè)對(duì)象開(kāi)始某個(gè)操作。 摒棄了持續(xù)許久的“自頂向下”和“自底向上”的爭(zhēng)論,把對(duì)于復(fù)雜系統(tǒng)的認(rèn)識(shí)歸結(jié)為對(duì)一批對(duì)象及其關(guān)系的認(rèn)識(shí)。 面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言使用軟件工作進(jìn)一步向用戶(hù)靠近,這對(duì)于計(jì)算機(jī)應(yīng)用深入到各個(gè)領(lǐng)域是十分有利的。 四、即插即用的程序設(shè)計(jì)(是在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法的基礎(chǔ)上提出來(lái)的) 1、基本思想: 一部分人專(zhuān)門(mén)生產(chǎn)軟件組件(相當(dāng)于芯片),而另一部分人則設(shè)計(jì)軟件的結(jié)構(gòu)(相當(dāng)于計(jì)算機(jī)結(jié)構(gòu)),并且把軟件組件插入這個(gè)結(jié)構(gòu),以便迅速地完成大型軟件的研制工作。 2、即插即用的

24、程序設(shè)計(jì)的實(shí)現(xiàn)有一定的困難 首先,標(biāo)準(zhǔn)化的問(wèn)題就十分困難 其次,軟件部件的提供方式也是問(wèn)題。 五、面向開(kāi)源軟件的程序設(shè)計(jì)方法1.開(kāi)源思想,是相對(duì)于封源思想來(lái)說(shuō)的,指的是軟件的源代碼是開(kāi)放的,而且是免費(fèi)獲取的。 2.開(kāi)源軟件同時(shí)涉及源碼本身和開(kāi)發(fā)過(guò)程,涵蓋了三個(gè)方面的意義:免費(fèi)分發(fā)的源代碼、模塊化的體系和集市式的開(kāi)發(fā)-在這種開(kāi)發(fā)方式中,任何地方的任何人都可以參與最終產(chǎn)品的制造,三個(gè)方面互相之間有密切的聯(lián)系,集市式的開(kāi)發(fā)過(guò)程給開(kāi)源軟件以強(qiáng)大的改錯(cuò)能力,因?yàn)樗鼘⒊绦蛑械腻e(cuò)誤公開(kāi)給了數(shù)量巨大的觀眾,他們都是潛在的改錯(cuò)者。另一方面,任何人都可以復(fù)用和發(fā)行開(kāi)源軟件的代碼這一事實(shí)又支持了公眾利益,因?yàn)閯?chuàng)新的

25、觀念被整個(gè)集市所共享。另外,open source這一術(shù)語(yǔ)還被延伸到其他智力團(tuán)體中,指那些可通過(guò)公開(kāi)手段獲得的智力資源,比如報(bào)紙、教學(xué)課件等。 3.開(kāi)源(開(kāi)源代碼):用于描述那些源碼可以被公眾使用的軟件,并且此軟件的使用修改和發(fā)行也不受許可證的限制。4.決定使用面向開(kāi)源軟件的程序設(shè)計(jì)方法的因素:一方面是對(duì)于應(yīng)用領(lǐng)域的充分了解,這是我們判斷能否利用某開(kāi)源軟件的主要依據(jù);另一方面是開(kāi)源軟件的質(zhì)量,包括文檔和代碼的規(guī)范程度。 2.3 軟件開(kāi)發(fā)過(guò)程的管理 對(duì)于軟件開(kāi)發(fā)來(lái)說(shuō),核心是質(zhì)量問(wèn)題。 一、什么樣的軟件才是好的(好軟件的評(píng)價(jià)標(biāo)準(zhǔn)) (重要的簡(jiǎn)答) (1)正確地實(shí)現(xiàn)所要求的功能,準(zhǔn)確地給出預(yù)定的輸出

26、結(jié)果; (2)用戶(hù)界面友好,符合實(shí)際用戶(hù)的使用習(xí)慣與知識(shí)水平; (3)具有足夠的速度(而不是越快越好),能在符合用戶(hù)要求的時(shí)間限度內(nèi),給出所要求的處理結(jié)果; (4)具有足夠的可靠性,能夠在各種干擾下保持正常的工作; (5)程序易讀,結(jié)構(gòu)良好,文檔齊全,從而保證系統(tǒng)易于修改。 二、好程序員與好項(xiàng)目組 1、單個(gè)程序員的主要的指標(biāo)(P29) (1)具有程序設(shè)計(jì)所需要的基本知識(shí)與技能,如關(guān)于數(shù)理邏輯的知識(shí)與訓(xùn)練,關(guān)于各類(lèi)數(shù)據(jù)結(jié)構(gòu)的概念及處理方法等; (2)對(duì)本項(xiàng)目所在的領(lǐng)域有較深入的了解,從而能夠準(zhǔn)確地理解用戶(hù)的信息需求,正確地把握有關(guān)的信息流程與信息處理原則; (3)對(duì)于軟件開(kāi)發(fā)的技術(shù)環(huán)境比較熟悉,

27、包括硬件設(shè)備、軟件環(huán)境和網(wǎng)絡(luò)環(huán)境,特別是對(duì)所用的語(yǔ)言,應(yīng)當(dāng)有足夠的、實(shí)際運(yùn)用的經(jīng)驗(yàn)。 以上三個(gè)條件基本上能保證程序員單獨(dú)地承擔(dān)軟件開(kāi)發(fā)任務(wù)。 2、項(xiàng)目組的一員必須嚴(yán)格遵循: (1)保證嚴(yán)格地在本模塊范圍內(nèi)操作,決不要使用可能干擾其它模塊的命令或函數(shù); (2)嚴(yán)格按總體設(shè)計(jì)的要求和理解去傳遞參數(shù)值,決不要隨意修改其內(nèi)容或含義; (3)在對(duì)公用的文件或數(shù)據(jù)庫(kù)進(jìn)行存取時(shí),必須完全地、準(zhǔn)確地按統(tǒng)一規(guī)定的格式去操作,決不能擅自改變; (4)在使用標(biāo)識(shí)符時(shí),應(yīng)按照統(tǒng)一的原則,盡量使用易于看出邏輯含義的名稱(chēng)。特別是涉及公用數(shù)據(jù)及參數(shù)的時(shí)候。 (5)嚴(yán)格按照統(tǒng)一的要求編寫(xiě)文檔,在內(nèi)容、格式、表達(dá)方式、符號(hào)使用

28、上遵循項(xiàng)目組的統(tǒng)一規(guī)定; (6)盡量保持程序風(fēng)格的一致。 總之,項(xiàng)目組的成員,必須放棄自己的某些“自由”去接受項(xiàng)目組的限制和約束,服從項(xiàng)目組的管理。必須具有高度的組織和團(tuán)隊(duì)精神。 三、怎樣建立一個(gè)好的項(xiàng)目組 CCM模型。 一個(gè)好的項(xiàng)目組應(yīng)當(dāng)具備以下幾個(gè)條件 (1)有嚴(yán)格的、成文 工作規(guī)范和文檔標(biāo)準(zhǔn),而且應(yīng)當(dāng)為全體成員所熟知,并且切實(shí)得到遵守。 (2)人員之間必須有嚴(yán)格的分工,除了程序員之外,必須有專(zhuān)門(mén)的秘書(shū),必須有專(zhuān)門(mén)的測(cè)試人員,特別是要有專(zhuān)職的、不陷入具體編程的項(xiàng)目負(fù)責(zé)人。(3)每個(gè)項(xiàng)目都要事先制定詳細(xì)的時(shí)間表,并且得到嚴(yán)格招待。每一項(xiàng)目完成之后都有完整的資料,并得到妥善保存,一旦需要修改或

29、更新版本時(shí)可以立即使用。課后習(xí)題 第三章 軟件開(kāi)發(fā)工具的理論基礎(chǔ) 3.1 軟件開(kāi)發(fā)過(guò)程的信息需求 一、軟件開(kāi)發(fā)過(guò)程中涉及的信息主要有以下幾方面: 第一類(lèi),有關(guān)系統(tǒng)環(huán)境、現(xiàn)狀及需求的信息。 第二類(lèi),有關(guān)軟件的功能設(shè)計(jì)與物理設(shè)計(jì)的各種信息。 第三類(lèi),軟件成果本身,包括程序與文檔。 第四類(lèi),用戶(hù)對(duì)系統(tǒng)和各種變更要求,以及系統(tǒng)的各種變更記錄。 二、以上四類(lèi)信息涉及的信息管理工作有以下幾個(gè)方面: 首先,許多信息需要長(zhǎng)期保存,因?yàn)樗鼈儾⒎侵挥靡淮?,而是需要不斷更新,不斷被調(diào)用。(合理存儲(chǔ)) 其次,在許多環(huán)節(jié)上都要進(jìn)行數(shù)據(jù)的轉(zhuǎn)換或加工。(正確轉(zhuǎn)化) 再次,還有大量的人與人之間的信息交流。(順暢流通) 所以可

30、以說(shuō),軟件開(kāi)發(fā)工具正是為對(duì)上述四類(lèi)信息的合理存儲(chǔ)、正確轉(zhuǎn)化和順暢流通提供幫助。 三、軟件開(kāi)發(fā)工具用到的理論和方法 第一、認(rèn)知科學(xué)中關(guān)于概念模式的概念與方法 第二、數(shù)據(jù)庫(kù)技術(shù)的理論與方法 第三、編譯技術(shù)的有關(guān)方法 第四、關(guān)于人機(jī)界面的理論與方法 第五、管理科學(xué)中關(guān)于項(xiàng)目管理與版本管理的理論與方法 第六、系統(tǒng)科學(xué)與系統(tǒng)工程中的有關(guān)理論與方法 3.2 概念模式及其作用(考試的重點(diǎn)) 1、定義:是指人們?cè)谡J(rèn)識(shí)事物過(guò)程中,對(duì)某一事物或某一系統(tǒng)形成的抽象的、一般化的概念框架。 2、概念模式的意義: 概念模式是人們認(rèn)識(shí)客觀世界的一種方法、工具。 概念模式是人們的長(zhǎng)期的實(shí)踐活動(dòng)中逐漸形成的。 要領(lǐng)模式總是在一

31、定的理論思想指導(dǎo)下形成的,同時(shí)又不斷根據(jù)實(shí)際情況得到修正。 概念模式在認(rèn)識(shí)過(guò)程中十分重要,同時(shí)作為交流與表達(dá)工具也是十分重要的。 3、概念模式具有相對(duì)性,即面對(duì)各種不同的用途,必然會(huì)有不同形式的概念模式。它們各有各有用處,不能互相代替,也無(wú)法說(shuō)哪個(gè)更好或更有力。 4、概念模式的特點(diǎn):簡(jiǎn)單明了,易于理解。 一、框圖(P35) 人們?cè)诰帉?xiě)軟件時(shí)最早使用的一種概念模式。用來(lái)描述程序執(zhí)行的邏輯過(guò)程的。 基本步驟:處理、判斷、輸入輸出、起始或終止等幾個(gè)基本功能。 適用范圍:當(dāng)軟件規(guī)模不太大的時(shí)候(至今還在普遍地使用) 二、結(jié)構(gòu)圖(P35) 在結(jié)構(gòu)化程序設(shè)計(jì)中引入結(jié)構(gòu)圖,用以表示大型軟件的層次結(jié)構(gòu),即模塊

32、結(jié)構(gòu)。以模塊調(diào)用的關(guān)系為線(xiàn)索,從宏觀上使人一目了然地掌握軟件的全過(guò)程。 用自上而下的連線(xiàn)表示調(diào)用關(guān)系。 基本程序調(diào)用方式有三種:順序調(diào)用、選擇調(diào)用、循環(huán)調(diào)用 優(yōu)點(diǎn):能夠體現(xiàn)層次,由粗到細(xì)、自頂向下地描述程序。 三、數(shù)據(jù)流程圖DFD圖(P36) 數(shù)據(jù)流程圖面對(duì)的是一個(gè)系統(tǒng)的信息流程。用于描述某一業(yè)務(wù)處理系統(tǒng)的信息來(lái)源、存儲(chǔ)、去向的全面情況。由于是描述全局的,常常需要用其它一些工具補(bǔ)充。 基本思想是把信息流看作一個(gè)組織或系統(tǒng)動(dòng)作的線(xiàn)索,力圖簡(jiǎn)明扼要地勾通畫(huà)出全局。 適用于客觀描述,而結(jié)構(gòu)圖則著重于軟件模塊之間的控制。 基本元素:外部實(shí)體(系統(tǒng)以外的信息來(lái)源或去向)、數(shù)據(jù)處理與數(shù)據(jù)存儲(chǔ)。 箭頭表明信

33、息在它們之間的流動(dòng)狀況。 四、實(shí)體關(guān)系圖(ER圖) 實(shí)體關(guān)系圖是一種用于描述靜態(tài)數(shù)據(jù)結(jié)構(gòu)的概念模式。 以實(shí)體、關(guān)系、屬性三個(gè)基本概念概括數(shù)據(jù)的基本結(jié)構(gòu)。廣泛用于數(shù)據(jù)庫(kù)的設(shè)計(jì)中,常常和數(shù)據(jù)流程圖、結(jié)構(gòu)圖等互相配合使用。(前二者重點(diǎn)描述信息的處理與流通,而缺乏對(duì)靜態(tài)數(shù)據(jù)結(jié)構(gòu)的具體描述方法。 五、數(shù)據(jù)字典(DD) 也是一種描述數(shù)據(jù)內(nèi)容的概念模式。它用表格的形式列出數(shù)據(jù)的基本屬性及相互關(guān)系。適于記錄各種細(xì)節(jié),所以常常與其它描述工具互相補(bǔ)充、配合使用。 六、時(shí)序網(wǎng)絡(luò) 一種較為特殊的概念模式。 主要描述系統(tǒng)狀態(tài)及其轉(zhuǎn)換方式,因此常常用于一些實(shí)時(shí)控制方面的軟件的功能。 基本概念是狀態(tài)與轉(zhuǎn)換。 狀態(tài):是指系統(tǒng)

34、在運(yùn)轉(zhuǎn)中某一特定的運(yùn)行態(tài)勢(shì)或工作方式 轉(zhuǎn)換:狀態(tài)之間在一定條件下的相互變化。 它具有前面幾種概念模式所沒(méi)有的、特殊的描述功能。 七、數(shù)學(xué)與邏輯模型 一般只能描述比較單純、比較基礎(chǔ)的功能。 另外作為邏輯的表達(dá)方式,決策樹(shù)和決策表也是經(jīng)常使用的。 八、計(jì)算機(jī)模擬模型 利用計(jì)算機(jī)大量、高速處理信息的能力,在計(jì)算機(jī)內(nèi)設(shè)置一定的環(huán)境,又以程序來(lái)表現(xiàn)客觀系統(tǒng)中的某些規(guī)律或規(guī)則,計(jì)算機(jī)則在設(shè)定好的環(huán)境、按定好的規(guī)則高速運(yùn)行,以便人們觀察與預(yù)測(cè)客觀系統(tǒng)的狀況。 計(jì)算機(jī)模擬人微言輕一種不需要事先作更多理論假設(shè)的概念模式,已發(fā)展成為一個(gè)獨(dú)特的分支。 九、直觀模型 用可視化的圖標(biāo)、圖像、圖表,甚至隨手畫(huà)的素描等元素

35、描述心中的系統(tǒng)。 例:VB的FORM就是一個(gè)典型。 3.3 信息庫(kù)及其一致性 基本概念: 信息庫(kù)從原義上說(shuō)無(wú)非是數(shù)據(jù)庫(kù),但它不同于Database或Data Warehouse。 1、數(shù)據(jù)庫(kù)(Database)是指在文件系統(tǒng)基礎(chǔ)上發(fā)展起來(lái)的一種數(shù)據(jù)管理技術(shù),它的重點(diǎn)在于合理地組織數(shù)據(jù),體現(xiàn)出數(shù)據(jù)之間的邏輯關(guān)系,并盡可能地幫助用戶(hù)檢索,減少冗余。 2、數(shù)據(jù)倉(cāng)庫(kù)(Data Warehouse)的基本思想:現(xiàn)實(shí)中的大量原始數(shù)據(jù)與實(shí)際的應(yīng)用是有相當(dāng)距離的,為了能夠切實(shí)為企業(yè)管理者提出對(duì)管理真正有用的信息,就要對(duì)信息或數(shù)據(jù)進(jìn)行多次的加工或提煉,從而得出許多派生的或綜合的數(shù)據(jù)。 3、三個(gè)文檔:系統(tǒng)說(shuō)明書(shū)、

36、設(shè)計(jì)方案、使用手冊(cè) 傳統(tǒng)的以文檔形式交流帶來(lái)的兩個(gè)十分嚴(yán)重的問(wèn)題 首先在信息傳遞中,誤解與丟失十分嚴(yán)重。 另一個(gè)問(wèn)題是由軟件的修改與版本更新引起的。 4、信息庫(kù)(Repository)是針對(duì)軟件開(kāi)發(fā)或信息系統(tǒng)開(kāi)發(fā)中的大量信息管理工作提出來(lái)的。是一個(gè)包羅萬(wàn)象的,隨著項(xiàng)目進(jìn)展而不斷修改與補(bǔ)充的數(shù)據(jù)集合。 5、信息庫(kù)的特點(diǎn): 數(shù)據(jù)結(jié)構(gòu)是相當(dāng)復(fù)雜的,而且會(huì)不斷變化,保持一致性的任務(wù)變得十分復(fù)雜和艱巨。 一、應(yīng)當(dāng)存入信息庫(kù)的內(nèi)容:(理解掌握) (1)所述軟件的工作環(huán)境、功能需求、性能要求,有關(guān)的各種信息來(lái)源的狀況、用戶(hù)的狀況、硬件環(huán)境以及在該領(lǐng)域中的作用等外部信息。 (2)需求分析階段中收集的有關(guān)用戶(hù)的

37、各種信息,包括用戶(hù)本身提供的和在調(diào)查研究中得到的。 (3)邏輯設(shè)計(jì)階段的各種調(diào)查材料和由此生成的各種文檔,包括調(diào)查記錄、原始數(shù)據(jù)、報(bào)表及單證的樣本、繪制的各種圖以及最后生成的系統(tǒng)說(shuō)明書(shū)。 (4)設(shè)計(jì)階段的各種資料,包括所有的數(shù)據(jù)庫(kù)與數(shù)據(jù)文件格式、數(shù)據(jù)字典、程序模塊的要求、總體結(jié)構(gòu)、各種接口及參數(shù)的傳遞方式以及最后形成的設(shè)計(jì)方案。 (5)編程階段的所有成果,包括程序代碼、框圖、變量說(shuō)明、測(cè)試情況(輸入數(shù)據(jù)及輸出結(jié)果)、驗(yàn)收?qǐng)?bào)告、使用說(shuō)明等。 (6)運(yùn)行及使用情況的詳細(xì)記錄,包括每次使用的時(shí)間、狀態(tài)、問(wèn)題,特別是有關(guān)錯(cuò)誤及故障的記錄情況。 (7)維護(hù)及修改的情況,包括修改的目標(biāo)、責(zé)任人、過(guò)程、時(shí)間

38、,修改前后的代碼、文檔以及修改后的結(jié)果、原系統(tǒng)的備份。 (8)項(xiàng)目管理的有關(guān)信息,包括人員變更、資金投入、進(jìn)度計(jì)劃及實(shí)施情況,還包括版本信息,即各次版本的備份、每個(gè)版本的推出日期和以前版本相比的變更說(shuō)明等。 二、信息庫(kù)應(yīng)當(dāng)具備的管理功能 由于信息庫(kù)結(jié)構(gòu)的特殊性,只有一般的數(shù)據(jù)庫(kù)功能是不夠用的。 一方面,許多信息(如原始單證、報(bào)表樣張等)計(jì)算機(jī)中只能有目錄,這就需要把計(jì)算機(jī)內(nèi)外的信息存儲(chǔ)統(tǒng)一起來(lái)管理。 另一方面,除了規(guī)定復(fù)雜的內(nèi)部結(jié)構(gòu)以存放信息外,還需要認(rèn)真設(shè)計(jì)有關(guān)的界面,以便使用。 (因?yàn)樾畔?kù)要面對(duì)分析人員、程序員和維護(hù)人員(一般不直接面對(duì)用戶(hù))等不同的對(duì)象,人們各有自己的權(quán)限和使用目標(biāo))

39、因此,信息庫(kù)的特殊性決定了其功能的特色。 三、信息庫(kù)如何保持一致性 信息庫(kù)中的信息需要不斷更新(這個(gè)更新不是撤換,信息庫(kù)的內(nèi)容一般不刪除)。 如何保持信息庫(kù)的一致性,是信息庫(kù)研究中的核心問(wèn)題。 關(guān)于信息庫(kù)的研究目前還在進(jìn)行之中,還沒(méi)有形成公認(rèn)的信息庫(kù)的內(nèi)容與格式的標(biāo)準(zhǔn)。 3.4 人機(jī)界面及其管理 1、人機(jī)界面的重要性(不是問(wèn)答題,可能是判斷、填空或選擇) “對(duì)于用戶(hù),界面就是系統(tǒng)本身”。 用戶(hù)關(guān)心的主要問(wèn)題就是:是否能夠有效地使用軟件,而不是系統(tǒng)內(nèi)部的算法或數(shù)據(jù)結(jié)構(gòu)。 一個(gè)軟件沒(méi)有很好的界面設(shè)計(jì)就不能算是成功的。(人機(jī)界面的研究已經(jīng)上升為一個(gè)專(zhuān)門(mén)的領(lǐng)域) 2、關(guān)于人機(jī)界面的研究有兩種角度: 一

40、種是從軟件開(kāi)發(fā)的角度討論應(yīng)當(dāng)遵循的原則,這基本上沿著程序設(shè)計(jì)方法學(xué)的方向發(fā)展而來(lái)的。 另一種是歸納出人機(jī)界面的基本要求與基本操作,寫(xiě)出樣例(或樣板)及有關(guān)的函數(shù)與操作程序,從而大大減輕人們?cè)O(shè)計(jì)人機(jī)界面的工作負(fù)擔(dān),提高設(shè)計(jì)的質(zhì)量。 這就是軟件開(kāi)發(fā)工具的思路。 3、用戶(hù)界面(人機(jī)界面)的基本原則: (1)用戶(hù)界面的主要功能是通信 一方面,人向機(jī)器輸入時(shí)應(yīng)當(dāng)盡量采取自然的方式。 另一方面機(jī)器向人傳遞的信息必須準(zhǔn)確、不致引起誤解或混亂。 另外,不要把內(nèi)部的處理、加工與人機(jī)界面混在一起。(人機(jī)界面的程序只執(zhí)行信息的傳遞任務(wù),不做加工處理。 (2)界面必須始終一致。 (3)界面必須使用戶(hù)隨時(shí)掌握任務(wù)的進(jìn)展

41、狀況。 (4)界面必須能提供幫助。 (5)寧可讓程序多干,不可讓用戶(hù)多干。 4、人機(jī)界面設(shè)計(jì)中經(jīng)常遇到的靈活性和一致性的權(quán)衡 (1)原則上對(duì)某一軟件來(lái)說(shuō),用戶(hù)的思維方式應(yīng)當(dāng)是一致的,操作與控制的方式也應(yīng)當(dāng)是一致的。(只有這樣,才能減輕用戶(hù)使用的困難) (2)另一方面是,用戶(hù)是多種多樣的,他們有各自的習(xí)慣與愛(ài)好,應(yīng)當(dāng)讓他們有一定的靈活、自由地選擇某些功能的操作方式。 對(duì)這兩方面的合理權(quán)衡是人機(jī)界面設(shè)計(jì)者的責(zé)任。 5、人機(jī)交互手段有八個(gè)方面:(要記?。?鍵盤(pán)操作、屏幕滾動(dòng)、菜單選擇、幫助系統(tǒng)、鼠標(biāo)操作、色彩應(yīng)用、數(shù)據(jù)錄入、信息顯示。 在軟件開(kāi)發(fā)工具中,人機(jī)界面占有特別重要的地位,充分利用已有的成果

42、無(wú)疑是一條捷徑。 3.5 項(xiàng)目管理與版本管理 一、項(xiàng)目管理 1、項(xiàng)目管理:本來(lái)是管理科學(xué)領(lǐng)域的一項(xiàng)內(nèi)容,指與固定的生產(chǎn)線(xiàn)上的日常生產(chǎn)管理不同的,具有更大的變動(dòng)性、時(shí)間性的一類(lèi)管理任務(wù)。 2、與一般工廠(chǎng)的日常生產(chǎn)管理相比,項(xiàng)目管理的四個(gè)突出的特點(diǎn): 第一,子任務(wù)多,關(guān)系復(fù)雜 第二,任務(wù)不可重復(fù),形勢(shì)不斷變更 第三,協(xié)調(diào)組織的任務(wù)十分突出,資源浪費(fèi)閑置的風(fēng)險(xiǎn)與合理地優(yōu)化組合、提高效益的機(jī)會(huì)并存。 第四,信息處理工作的作用與意義更為突出。 這幾個(gè)特點(diǎn)在軟件開(kāi)發(fā)工作中同樣存在。對(duì)于軟件來(lái)說(shuō),樣品即產(chǎn)品。 進(jìn)度和質(zhì)量對(duì)軟件開(kāi)發(fā)是最關(guān)鍵的問(wèn)題。軟件開(kāi)發(fā)與工程項(xiàng)目一樣沒(méi)有“下一次”,它必須正確、按時(shí)地完成,

43、它也是一旦做好就不用再做了。資源的浪費(fèi)更是軟件工作中十分常見(jiàn)的現(xiàn)象。 3、軟件開(kāi)發(fā)工作還有自己的不同于一般項(xiàng)目管理的特點(diǎn): (1)一般工程項(xiàng)目沒(méi)有版本更新的問(wèn)題,但一個(gè)有生命力的軟件產(chǎn)品(或應(yīng)用系統(tǒng))必然要經(jīng)過(guò)若干次改進(jìn)和更新才能形成。 (2)另外,對(duì)于大系統(tǒng)來(lái)說(shuō),各部分的一致性各程序與文檔之間的一致性又帶來(lái)一系統(tǒng)復(fù)雜的管理問(wèn)題。 (在軟件開(kāi)發(fā)工具的理論基礎(chǔ)中,項(xiàng)目管理和版本管理占據(jù)了十分重要的、不可忽視的地位。) 4、項(xiàng)目管理的基本目標(biāo)(四點(diǎn)) 第一、使產(chǎn)品(或工程)的質(zhì)量得到有效的控制。 第二、保證整個(gè)系統(tǒng)按預(yù)定的進(jìn)度完成。 第三、有效地利用各種資源,盡可能使資源的閑置與浪費(fèi)減少。 (最主

44、要的資源是程序員的時(shí)間與能力) 第四、控制與降低成本。 (成本的情況是項(xiàng)目管理狀況綜合的最終體現(xiàn)) 二、版本管理 1、版本管理的核心是保持兩個(gè)一致性(也是版本管理的任務(wù)) (1)從時(shí)間上來(lái)說(shuō),它的主要關(guān)心點(diǎn)是系統(tǒng)的逐步完善。 (2)從系統(tǒng)各部分之間的關(guān)系來(lái)說(shuō),它要求局與整體保持一致。 2、版本管理的具體方法包括: 規(guī)定長(zhǎng)遠(yuǎn)的版本更新計(jì)劃,制訂版本有關(guān)的信息范圍及收集、管理方法,在項(xiàng)目組內(nèi)明確分工,在程序編寫(xiě)、測(cè)試、文檔編寫(xiě)等工作中貫穿項(xiàng)目管理的思想及要求。 用戶(hù)的反饋信息是項(xiàng)目管理與版本管理的重要依據(jù)。 第四章 軟件開(kāi)發(fā)工具的技術(shù)要素 4.1 基本功能與一般結(jié)構(gòu) 一、基本功能(五個(gè)方面) (1

45、)提供描述軟件狀況及其開(kāi)發(fā)過(guò)程的概念模式,協(xié)助軟件開(kāi)發(fā)人員認(rèn)識(shí)軟件工作的環(huán)境與要求、合理地組織與管理軟件開(kāi)發(fā)的工作過(guò)程。(任何軟件開(kāi)發(fā)工具都具備這種功能) 簡(jiǎn)答:概念模式包括幾個(gè)主要方面? ?對(duì)軟件的應(yīng)用環(huán)境的認(rèn)識(shí)和理解。 ?對(duì)預(yù)期產(chǎn)生的軟件產(chǎn)品的認(rèn)識(shí)與理解。 ?對(duì)軟件開(kāi)發(fā)過(guò)程的認(rèn)識(shí)與理解。 (2)提供存儲(chǔ)和管理有關(guān)信息的機(jī)制與手段。 (3)幫助使用者編制、生成及修改各種文檔。 (4)幫助使用者編寫(xiě)程序代碼,即代碼生成。 (5)對(duì)于歷史信息進(jìn)行跨生命周期的管理,把項(xiàng)目運(yùn)行與版本更新的有關(guān)信息科學(xué)地管理起來(lái)。 完整的、一體化的軟件開(kāi)發(fā)工具應(yīng)當(dāng)具備以上這些功能。 二、一般結(jié)構(gòu) 中心位置的是總控部分

46、和人機(jī)界面。 一方面,人機(jī)界面面對(duì)不同類(lèi)型的用戶(hù) 另一方面,總控部分面對(duì)著系統(tǒng)內(nèi)部的各種功能與各種信息,它要保證各部分之間相互的協(xié)調(diào)一致,保證各部分之間信息有效地、準(zhǔn)確的流通。 系統(tǒng)中和個(gè)重要部分是信息庫(kù)及其管理 信息庫(kù)內(nèi)容的豐富程度則是軟件開(kāi)發(fā)工具的功能與作用的最根本的保證。 最主要的兩個(gè)信息出口:代碼生成與文檔生成 另一個(gè)技術(shù)要求是項(xiàng)目管理和版本管理 4. 2總控部分及人機(jī)界面(處于中心的位置) 1、軟件配置或集成的問(wèn)題 其實(shí)質(zhì)是要設(shè)立一個(gè)有效的總控部分,能夠在各個(gè)具體工具之上實(shí)現(xiàn)信息的正確傳遞與轉(zhuǎn)換,幫助人們完成協(xié)調(diào)與配合的工作,從而形成一個(gè)統(tǒng)一的、完整的支撐環(huán)境,并能過(guò)一個(gè)統(tǒng)一的、友好

47、的人機(jī)界面與用戶(hù)對(duì)話(huà)。 2、總控和人機(jī)界面是使用者和工具之間聯(lián)系的橋梁,必須嚴(yán)格遵循面向使用者的原則。(對(duì)用戶(hù)來(lái)說(shuō),人機(jī)界面就是系統(tǒng)本身) 3、軟件開(kāi)發(fā)過(guò)程的一個(gè)周期中包括的五個(gè)階段及各階段的任務(wù)(可能出大題) (1)需求分析階段 需求分析階段的任務(wù)是建立模型。具體說(shuō): 首先應(yīng)當(dāng)建立志軟件所處領(lǐng)域或環(huán)境的模型(即“企業(yè)模型”) 其次,建立起軟件所要處理信息的靜態(tài)模型,即數(shù)據(jù)環(huán)境。 第三,建立起信息流通的模型,即信息的來(lái)源、去向、存儲(chǔ)及處理的邏輯過(guò)程。 (2)分析設(shè)計(jì)階段 需求分析階段的基本任務(wù)是完成系統(tǒng)的總體設(shè)計(jì)。包括數(shù)據(jù)結(jié)構(gòu)的詳細(xì)設(shè)計(jì),處理過(guò)程的詳細(xì)設(shè)計(jì),子系統(tǒng)或模塊的劃分以及它們之間相互聯(lián)

48、系的具體規(guī)定。 還就完成屏幕設(shè)計(jì)、報(bào)表設(shè)計(jì)、數(shù)據(jù)庫(kù)的物理設(shè)計(jì) (3)編碼階段 是指編寫(xiě)軟件的階段,這里是實(shí)際的程序代碼的產(chǎn)生點(diǎn)。(手工的編程不可能完成避免) (4)測(cè)試階段 任務(wù)是對(duì)已經(jīng)完成的各個(gè)模塊或子系統(tǒng)進(jìn)行試算、調(diào)整,以便最終形成完整的軟件。 (5)運(yùn)行維護(hù)階段 任務(wù)是組織和管理軟件的日常運(yùn)行,收集運(yùn)行中的狀態(tài)信息及出現(xiàn)的問(wèn)題并及時(shí)地進(jìn)行局部的修改與完善。 4、總控部分和人機(jī)界面的設(shè)計(jì)原則是什么? 在技術(shù)上可以歸納為三條基本原則:面向使用者;保證信息的準(zhǔn)確傳遞;保證系統(tǒng)的開(kāi)放性(或靈活性) 第一條原則是面向用戶(hù)的原則(兩個(gè)方面) 一方面是總控部分對(duì)各部分的調(diào)度與安排應(yīng)當(dāng)符合上述模式 另一

49、方面向用戶(hù)提供的統(tǒng)一界面就體現(xiàn)這個(gè)模式(模式見(jiàn)書(shū)) 第二條原則是保證各部分之間信息的準(zhǔn)確傳遞。 第三條原則是保證系統(tǒng)的開(kāi)放性或靈活性。 (理想的結(jié)構(gòu)應(yīng)當(dāng)是模塊式的、易于裁剪的。) 以上三項(xiàng)基本原則是對(duì)整個(gè)軟件開(kāi)發(fā)工具而言的,但是它們的實(shí)現(xiàn)主要體現(xiàn)在總控部分和人機(jī)界面這個(gè)中心環(huán)節(jié)上。這也正是軟件開(kāi)發(fā)工具真正發(fā)揮作用的要害和難點(diǎn)所在。因此,這些原則就成為軟件開(kāi)發(fā)工具研制者和使用者關(guān)心的焦點(diǎn)。 4. 3信息庫(kù)及其管理 信息庫(kù)是軟件開(kāi)發(fā)工具的基礎(chǔ)。合理的組織信息庫(kù)的內(nèi)容,加強(qiáng)信息庫(kù)的管理功能,是軟件開(kāi)發(fā)工具的又一個(gè)重要的技術(shù)要素。 信息庫(kù)的技術(shù)考慮主要涉及四個(gè)問(wèn)題:信息庫(kù)的內(nèi)容、信息庫(kù)的組織方式、信息

50、庫(kù)的管理功能、歷史信息的處理方法。 一、信息庫(kù)的內(nèi)容: 信息庫(kù)中需要存放四大類(lèi)信息 第一類(lèi)信息 是關(guān)于軟件應(yīng)用的領(lǐng)域與環(huán)境的 第二類(lèi)信息 是設(shè)計(jì)成果,包括邏輯設(shè)計(jì)與物理設(shè)計(jì)的成果。 主要包括:數(shù)據(jù)流程圖、數(shù)據(jù)字典、系統(tǒng)結(jié)構(gòu)圖、數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)、各模塊的設(shè) 計(jì)要求以及由此形成的設(shè)計(jì)文檔。 第三類(lèi)信息 是運(yùn)行狀況與測(cè)試的記錄。 第四類(lèi)信息 是有關(guān)項(xiàng)目管理與版本管理的信息。 這屬于跨生命周期的信息,對(duì)單獨(dú)一次開(kāi)發(fā)似乎用處不大,但對(duì)于長(zhǎng)期的、持續(xù)的、不斷更新的軟件則是十分重要的。 二、信息庫(kù)的組織方式(三種) 1、集中存儲(chǔ)方式(最初采?。?就是建立一個(gè)龐大的數(shù)據(jù)庫(kù),把各種信息都存放在這個(gè)數(shù)據(jù)庫(kù)存中,頁(yè)而

51、各種工具,或?qū)崿F(xiàn)單項(xiàng)功能的模塊則圍繞在這個(gè)信息庫(kù)的周?chē)?,進(jìn)行操作。 優(yōu)點(diǎn):想法比較自然,而且充分利用已有的數(shù)據(jù)庫(kù)技術(shù),比較容易保持一致性。 缺點(diǎn):與模塊化的要求相沖突。 2、分散存儲(chǔ) 把信息分別存入不同的數(shù)據(jù)庫(kù),由不同的功能模塊來(lái)處理。 優(yōu)點(diǎn):易于變更和裁剪,一部分發(fā)生變更,不致影響整個(gè)系統(tǒng)。 缺點(diǎn):每個(gè)模塊都要有自己進(jìn)行一整套增刪改的操作,且各部分之間的一致性無(wú)從保證。 3、邏輯上統(tǒng)一、物理上分散、設(shè)立統(tǒng)一的信息庫(kù)管理模塊來(lái)進(jìn)行管理。 通過(guò)信息庫(kù)管理模塊來(lái)對(duì)分散的各個(gè)數(shù)據(jù)庫(kù)進(jìn)行存取,并進(jìn)行一致性的檢查與維護(hù)。 優(yōu)點(diǎn):數(shù)據(jù)庫(kù)與模塊都實(shí)現(xiàn)了模塊化,既保持了一致生,又保持了靈活性。 總之,由于信息

52、庫(kù)的內(nèi)容眾多,結(jié)構(gòu)復(fù)雜,是一個(gè)比較困難的問(wèn)題,需要認(rèn)真地研究、設(shè)計(jì)。 三、信息的管理功能 1、采用統(tǒng)一的信息庫(kù)管理模塊的結(jié)構(gòu)方式,這個(gè)模塊應(yīng)具有哪些功能? (1)錄入更新 (2)使用查詢(xún) (3)一致性維護(hù) 2、與一般數(shù)據(jù)庫(kù)管理系統(tǒng)不同的主要有兩點(diǎn) 首先,信息之間邏輯聯(lián)系的識(shí)別與記錄。 其次,如何實(shí)現(xiàn)定量信息與文字信息的協(xié)調(diào)一致。 上述兩個(gè)困難的根源都在于數(shù)據(jù)之間的邏輯關(guān)系的認(rèn)識(shí)與表達(dá)。目前尚無(wú)十分令人滿(mǎn)意的解決辦法。 四、歷史信息的處理方法 1、信息庫(kù)的另一個(gè)問(wèn)題是如何處理歷史信息。實(shí)際操作中有兩個(gè)困難: (1)一個(gè)是歷史信息的數(shù)量太大,占用存儲(chǔ)設(shè)備過(guò)多。 (2)另一個(gè)是歷史信息格式不一致,難

53、以有效地利用。 2、解決辦法: (1)前一個(gè)問(wèn)題一般采用脫機(jī)備份的方法解決。 (2)解決后一個(gè)問(wèn)題是十分困難的。加強(qiáng)標(biāo)準(zhǔn)化、穩(wěn)定數(shù)據(jù)結(jié)構(gòu)只能使這個(gè)問(wèn)題得到一定程度的解決。(任何標(biāo)準(zhǔn)化都不是一成不變的,數(shù)據(jù)結(jié)構(gòu)的穩(wěn)定是相對(duì)的,變更則是絕對(duì)的。這個(gè)問(wèn)題至今尚無(wú)令人十分滿(mǎn)意的解決辦法) 4.4 文檔的生成與代碼的生成 使用者從軟件開(kāi)發(fā)工具得到的最主要的幫助有兩種方式:文檔生成與代碼生成。軟件工具的起點(diǎn)也就是這二者。 一、代碼生成(輸出代碼是這個(gè)模塊的目標(biāo)) 1、代碼生成器的基本任務(wù)是根據(jù)設(shè)計(jì)要求,自支地或者半自動(dòng)地產(chǎn)生相應(yīng)的某種語(yǔ)言的程序。 從輸入、輸出四個(gè)方面的內(nèi)容就可以抓住代碼生成中的技術(shù)關(guān)鍵(

54、教材P58圖4.6) 2、代碼生成器的輸出是程序代碼,輸出的代碼有兩種情況: 某種高級(jí)程序設(shè)計(jì)語(yǔ)言的代碼 優(yōu)點(diǎn):使用者可以在這個(gè)基礎(chǔ)上進(jìn)一步修改加工,即利用自動(dòng)生成模塊作為原型,在此基礎(chǔ)上形成自己所要求的系統(tǒng)(或系統(tǒng)的一部分)。 缺點(diǎn):功能較死,效率不高。 某種機(jī)器(包括硬件和操作系統(tǒng))環(huán)境下可運(yùn)行的機(jī)器指令。 優(yōu)點(diǎn):可以直接運(yùn)行,如果不合要求可以立即調(diào)整命令和參數(shù)重新生成一遍。 缺點(diǎn):機(jī)器代碼一般無(wú)法直接修改,對(duì)機(jī)器的硬件軟件環(huán)境的依賴(lài)很大。 后者不如前者應(yīng)用的多一些。 需要強(qiáng)調(diào)的是:程序歸根到底是人編的,任何工具都只能發(fā)揮幫助和支持的作用,而不能完全代替人的工作。 3、代碼生成器的輸入有三

55、個(gè)方面 (1)信息庫(kù)中存儲(chǔ)的有關(guān)信息。 (2)使用者通過(guò)人機(jī)界面輸入的命令、參數(shù)。 (3)其它要求和用于生成代碼的程序框架及組件。 4、生成代碼時(shí)依據(jù)的是三個(gè)方面的材料(與上題是一致的) 首先,是信息庫(kù)里已有的資料。 其次,代碼生成器還要利用各種標(biāo)準(zhǔn)模塊的框架和構(gòu)件。 第三,使用者臨時(shí)通過(guò)屏幕前操作送入的信息。 總之,代碼生成器是統(tǒng)一的一體化的軟件開(kāi)發(fā)工具中的一個(gè)重要組成部分。它對(duì)于應(yīng)用軟件的開(kāi)發(fā)人員提供了十分有益的幫助。 二、文檔生成(比代碼生成更難) 文檔生成的功能與代碼生成相比,數(shù)量更大、內(nèi)容更復(fù)雜。 文檔生成包括三大類(lèi):文章、表格、圖形。 畫(huà)圖已經(jīng)不是困難的問(wèn)題,困難是把圖形的含義與信

56、息庫(kù)中的內(nèi)容有機(jī)的聯(lián)系起來(lái)。把信息庫(kù)中的內(nèi)容用人們一目了然的圖形表示出來(lái)有一定的難度。 表格比較容易按信息庫(kù)當(dāng)前的內(nèi)容輸出。 文章是最難處理的。(寫(xiě)好系統(tǒng)分析、設(shè)計(jì)的報(bào)告或者用戶(hù)手冊(cè)決不是技術(shù)問(wèn)題) 目前見(jiàn)到的文檔生成器大多數(shù)只能做到提供一個(gè)標(biāo)準(zhǔn)和框架,提醒人們完整地、確切地表達(dá)設(shè)計(jì)思想。 4.5 項(xiàng)目管理與版本管理 項(xiàng)目管理與版本管理的核心問(wèn)題:跨生命周期的信息管理問(wèn)題。 項(xiàng)目管理與版本管理的關(guān)鍵問(wèn)題:歷史信息的處理。 一、項(xiàng)目管理(以項(xiàng)目數(shù)據(jù)庫(kù)為中心解決問(wèn)題的思路) 項(xiàng)目數(shù)據(jù)庫(kù)實(shí)際上是信息庫(kù)的一個(gè)組成部分,它記錄的是項(xiàng)目本身進(jìn)展的各種有關(guān)信息。 項(xiàng)目管理的關(guān)鍵是質(zhì)量、進(jìn)度、資源配置、費(fèi)用(

57、四個(gè)基本問(wèn)題) AD/Cycle的總框架中,對(duì)項(xiàng)目管理應(yīng)當(dāng)考慮的范圍給出如下規(guī)定(也就是項(xiàng)目管理的任務(wù)) (1)研究與確定開(kāi)發(fā)工作的方針與方法。 (2)開(kāi)發(fā)任務(wù)的劃分與分工。 (3)資源狀況。 (4)人員情況。 (5)變更情況。 (6)質(zhì)量情況。 項(xiàng)目數(shù)據(jù)庫(kù)的內(nèi)容應(yīng)當(dāng)支持項(xiàng)目負(fù)責(zé)人做好以上各項(xiàng)工作。 二、版本管理 主要內(nèi)容是:各個(gè)版本的編號(hào)、功能改變、模塊組成、文檔狀況、推出時(shí)間、用戶(hù)數(shù)量(或用戶(hù)名單)、用戶(hù)反映、封存情況等。 第五章 軟件開(kāi)發(fā)工具的使用與開(kāi)發(fā) 5.1 購(gòu)置與開(kāi)發(fā)的權(quán)衡 購(gòu)買(mǎi)市場(chǎng)上已有的軟件開(kāi)發(fā)工具,一般來(lái)說(shuō)能夠幫助人們?cè)谀承┉h(huán)節(jié)上完成一些簡(jiǎn)單的、重復(fù)性的工作;在項(xiàng)目比較大,時(shí)

58、間持續(xù)比較長(zhǎng)的情況下,使用工具還可以使工作的組織管理比較規(guī)范、信息的管理與檢索比較方便,部分地做到信息與知識(shí)的重用和共享。 軟件開(kāi)發(fā)工具的引進(jìn)是比較昂貴的,真正經(jīng)過(guò)考驗(yàn)的、一體化的軟件開(kāi)發(fā)工具還不多,產(chǎn)品的作用與可靠程度還不盡如人意。 自己開(kāi)發(fā)的工具目標(biāo)明確,符合需要,便于進(jìn)一步擴(kuò)充和升級(jí),不存在引進(jìn)外面產(chǎn)品時(shí)的沖突與不一致。 從長(zhǎng)遠(yuǎn)來(lái)看,軟件開(kāi)發(fā)工具會(huì)越來(lái)越多地得到應(yīng)用,自行開(kāi)發(fā)情況會(huì)越來(lái)越少;但是自行開(kāi)發(fā)一些為自己所用的、適用于某一特定應(yīng)用范圍內(nèi)的、只支持某一局部功能的工具,還是相當(dāng)普遍的現(xiàn)象。 根據(jù)哪些因素來(lái)進(jìn)行購(gòu)置與自行開(kāi)發(fā)之間的權(quán)衡(四個(gè)) 首先,它取決與準(zhǔn)備開(kāi)發(fā)的軟件的性質(zhì)與要求。

59、 其次,取決于開(kāi)發(fā)人員對(duì)支持工作與支持程度的實(shí)際需要。 另外,工作環(huán)境也是決定購(gòu)置工具還是自制的一個(gè)重要因素。 最后,人員的因素也是必須考慮的。 總之,在軟件開(kāi)發(fā)工作中引進(jìn)軟件開(kāi)發(fā)工具是一種必然的趨勢(shì)。 5.2 軟件開(kāi)發(fā)工具的選擇與購(gòu)置 一、明確目的與要求 引入軟件開(kāi)發(fā)工具要達(dá)到怎樣的目標(biāo) (1)為哪個(gè)軟件開(kāi)發(fā)項(xiàng)目而使用工具,為了一個(gè)項(xiàng)目還是為了一批項(xiàng)目而購(gòu)置軟件開(kāi)發(fā)工具,為哪一種類(lèi)型的項(xiàng)目而購(gòu)置這些工具? (2)在哪個(gè)工作階段使用工具,是單在代碼生成或文檔生成中使用工具,還是在其它階段也要使用工具,是在一個(gè)生命周期內(nèi)使用工具,還是準(zhǔn)備長(zhǎng)期開(kāi)發(fā)不斷更新版本? (3)工具將供哪些人使用,這些人以

60、前用過(guò)工具沒(méi)有,他們熟悉的語(yǔ)言、開(kāi)發(fā)環(huán)境、表達(dá)圖示、交流方式是什么?這些人對(duì)于使用工具的態(tài)度、期望、可塑性如何? (4)工具將在怎樣的軟件、硬件環(huán)境下運(yùn)行,機(jī)器的速度、內(nèi)存、外圍設(shè)備、通信條件如何? 顯然,這些問(wèn)題如果不事先了解清楚,選擇會(huì)陷入盲目性。 二、調(diào)查市場(chǎng) 在調(diào)查研究中,以下這些問(wèn)題應(yīng)當(dāng)作為重點(diǎn) (1)開(kāi)發(fā)工具的功能。 (2)這些工具的性能。 (3)這些工具所使用或依據(jù)的的開(kāi)發(fā)方法或開(kāi)發(fā)理論是什么,與自己的方法理論是否一致。這主要包括兩個(gè)方面:一方面是對(duì)應(yīng)用軟件結(jié)構(gòu)的理解與認(rèn)識(shí)。另一方面是對(duì)開(kāi)發(fā)過(guò)程的劃分與各階段任務(wù)的理解與認(rèn)識(shí)。 (4)這些工具的運(yùn)行環(huán)境是什么?硬件條件、操作系統(tǒng)、

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論