付費(fèi)下載
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟件工程實(shí)用教程呂云翔 - 課后答案1 練習(xí)題1) 軟件的特點(diǎn)有哪些?1. 軟件是一種邏輯實(shí)體, 具有抽象性。硬件是有形的設(shè)備,而軟件不像硬件那樣具有明顯的可見(jiàn)性。人們可以把軟件記錄在介質(zhì)上,但是卻無(wú)法直觀地觀察到它的形態(tài), 而必須通過(guò)在計(jì)算機(jī)上實(shí)際地運(yùn)行才能了解它的功能、性能及其他特性。2. 軟件的生產(chǎn)與硬件的制造不同。 它更多地滲透了人類的智能活動(dòng), 是人類智力勞動(dòng)的產(chǎn)物。軟件是被開發(fā)或設(shè)計(jì)的, 而不是傳統(tǒng)意義上被制造的。軟件成本集中于開發(fā)上,這意味著軟件項(xiàng)目不能像制造項(xiàng)目那樣管理。3. 軟件在運(yùn)行使用過(guò)程中, 不會(huì)磨損。在軟件的運(yùn)行和使用期間, 它不會(huì)產(chǎn)生像硬件那樣的磨損和老化現(xiàn)象, 然
2、而卻存在著缺陷維護(hù)和技術(shù)更新的問(wèn)題。 軟件不會(huì)磨損, 但是它會(huì)退化,而軟件的退化是由于修改。 因此,軟件維護(hù)比硬件維護(hù)要復(fù)雜得多。2. 符。這主要是由于開發(fā)人員與用戶之間不能充分有效的交流造成的, 使得開發(fā)人員對(duì)用戶需求的理解存在著差異;3. 相比越來(lái)越廉價(jià)的硬件,軟件代價(jià)過(guò)高;4. 軟件質(zhì)量難以得到保證,且難以發(fā)揮硬件潛能。開發(fā)團(tuán)隊(duì)缺少完善的軟件質(zhì)量評(píng)審體系以及科學(xué)的軟件測(cè)試規(guī)程, 使得最終的軟件產(chǎn)品存在著諸多缺陷;5. 難以準(zhǔn)確估計(jì)軟件開發(fā)、維護(hù)的費(fèi)用以及開發(fā)周期。往往軟件產(chǎn)品不能在預(yù)算范圍之內(nèi),按照計(jì)劃完成開發(fā)。 很多情況下,軟件產(chǎn)品的開發(fā)周期或經(jīng)費(fèi)會(huì)大大超出預(yù)算;6. 難于控制開發(fā)風(fēng)險(xiǎn)
3、,開發(fā)速度趕不上市場(chǎng)變化;7. 軟件產(chǎn)品修改維護(hù)困難,集成遺留系統(tǒng)更困難;8. 軟件文檔不完備,并且存在著文檔內(nèi)容與軟件產(chǎn)品不符的情況。 軟件文檔是計(jì)算機(jī)軟件的重要組成部分, 它為在軟件開發(fā)人員之間以及開發(fā)人員與用戶之間信息的共享提供了重要的平臺(tái)。 軟件文檔的不完整和不一致的問(wèn)題會(huì)給軟件的開發(fā)和維護(hù)等工作帶來(lái)很多麻煩。2) 簡(jiǎn)述軟件工程的基本原則。1. 用分階段的生存周期計(jì)劃進(jìn)行嚴(yán)格的管理;將軟件的生存周期劃分為多個(gè)階段,對(duì)各個(gè)階段實(shí)行嚴(yán)格的項(xiàng)目管理。軟件開發(fā)是一個(gè)漫長(zhǎng)的過(guò)程,人們可以根據(jù)工作的特點(diǎn)或目標(biāo),把整個(gè)軟件的開發(fā)周期劃分為多個(gè)階段,并為每個(gè)階段制定分階段的計(jì)劃及驗(yàn)收標(biāo)準(zhǔn), 這樣有益于
4、對(duì)整個(gè)軟件開發(fā)過(guò)程進(jìn)行管理。 在傳統(tǒng)的軟件工程中, 軟件開發(fā)的生存周期可以劃分為可行性研究、 需求分析、軟件設(shè)計(jì)、軟件實(shí)現(xiàn)、軟件測(cè)試、產(chǎn)品驗(yàn)收和交付等階段。2. 堅(jiān)持進(jìn)行階段評(píng)審;嚴(yán)格的貫徹與實(shí)施階段評(píng)審制度可以幫助軟件開發(fā)人員及時(shí)地發(fā)現(xiàn)錯(cuò)誤并將其改正。 在軟件開發(fā)的過(guò)程中,錯(cuò)誤發(fā)現(xiàn)的越晚, 修復(fù)錯(cuò)誤所要付出的代價(jià)就會(huì)越大。 實(shí)施階段評(píng)審,只有在本階段的工作通過(guò)評(píng)審后,才能進(jìn)入下一階段的工作。3. 實(shí)行嚴(yán)格的產(chǎn)品控制;在軟件開發(fā)的過(guò)程中, 用戶需求很可能在不斷的發(fā)生著變化。 有些時(shí)候,即使用戶需求沒(méi)有改變, 軟件開發(fā)人員受到經(jīng)驗(yàn)的限制以及與客戶交流不充分的影響, 也很難做到一次性獲取到全部的正
5、確的需求??梢?jiàn),需求分析的工作應(yīng)該貫穿到整個(gè)軟件開發(fā)的生存周期內(nèi)。在軟件開發(fā)的整個(gè)過(guò)程中, 需求的改變是不可避免的。當(dāng)需求更新時(shí),為了保證軟件各個(gè)配置項(xiàng)的一致性,實(shí)施嚴(yán)格的版本控制是非常必要的。4. 采用現(xiàn)代程序設(shè)計(jì)技術(shù);現(xiàn)代的程序設(shè)計(jì)技術(shù), 比如面向?qū)ο?,可以使開發(fā)出來(lái)的軟件產(chǎn)品更易維護(hù)和修改,同時(shí)還能縮短開發(fā)的時(shí)間,并且更符合人們的思維邏輯。5. 軟件工程結(jié)果應(yīng)能清楚地審查;雖然軟件產(chǎn)品的可見(jiàn)性比較差, 但是它的功能和質(zhì)量應(yīng)該能夠被準(zhǔn)確地審查和度量, 這樣才能有利于有效的項(xiàng)目管理。 一般軟件產(chǎn)品包括可以執(zhí)行的源代碼、 一系列相應(yīng)的文檔和資源數(shù)據(jù)等。6. 開發(fā)小組的人員應(yīng)該少而精;開發(fā)小組成
6、員的人數(shù)少有利于組內(nèi)成員充分的交流, 這是高效團(tuán)隊(duì)管理的重要因素。 而高素質(zhì)的開發(fā)小組成員是影響軟件產(chǎn)品的質(zhì)量和開發(fā)效率的重要因素。7. 承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性。隨著計(jì)算機(jī)科學(xué)技術(shù)的發(fā)展, 軟件從業(yè)人員應(yīng)該不斷地總結(jié)經(jīng)驗(yàn)并且主動(dòng)學(xué)習(xí)新的軟件技術(shù), 只有這樣才能不落后于時(shí)代。3) 什么是軟件過(guò)程?軟件過(guò)程標(biāo)準(zhǔn)包括哪些內(nèi)容?軟件過(guò)程又稱為軟件生存周期過(guò)程, 是軟件生存周期內(nèi)為達(dá)到一定目標(biāo)而必須實(shí)施的一系列相關(guān)過(guò)程的集合。標(biāo)準(zhǔn):制定了 ISO12207 軟件生存周期過(guò)程標(biāo)準(zhǔn),它把用于開發(fā)一個(gè)軟件系統(tǒng)的過(guò)程分為三類:主過(guò)程、支持過(guò)程和輔助過(guò)程 (組織過(guò)程)。主過(guò)程是構(gòu)成軟件生存周期主要部分的
7、那些過(guò)程,正是這些過(guò)程啟動(dòng)或進(jìn)行軟件產(chǎn)品的開發(fā)、操作或維護(hù)。這些過(guò)程共有五個(gè) , 它們是:(1) 獲取過(guò)程:定義需方(即獲取一個(gè)系統(tǒng)、軟件產(chǎn)品或軟件服務(wù)的組織)的活動(dòng);(2) 供應(yīng)過(guò)程:定義供方(即向需方提供系統(tǒng)、軟件產(chǎn)品或軟件服務(wù)的組織)的活動(dòng);(3) 開發(fā)過(guò)程:定義開發(fā)者(即定義和開發(fā)軟件產(chǎn)品的組織) 的活動(dòng);(4) 維護(hù)過(guò)程:定義維護(hù)者(即對(duì)軟件產(chǎn)品進(jìn)行維護(hù)服務(wù)的組織)的活動(dòng),這個(gè)過(guò)程包括系統(tǒng)移植和退役;(5) 運(yùn)行過(guò)程:定義運(yùn)行者(即在計(jì)算機(jī)系統(tǒng)運(yùn)行環(huán)境中向其用戶提供運(yùn)行服務(wù)的組織)的活動(dòng)。支持過(guò)程是對(duì)另一個(gè)過(guò)程提供支持的過(guò)程。被支持的過(guò)程根據(jù)需要采用支持性過(guò)程,并與該過(guò)程結(jié)合, 幫助
8、軟件項(xiàng)目獲得成功 , 并提高質(zhì)量。支持過(guò)程共有如下八個(gè):(1) 文檔過(guò)程:定義對(duì)某生存周期過(guò)程所產(chǎn)生的信息進(jìn)行記錄的活動(dòng);(2) 配置管理過(guò)程:定義配置管理活動(dòng);(3) 質(zhì)量保證過(guò)程:定義客觀地保證軟件產(chǎn)品和過(guò)程符合規(guī)定要求、遵守已定計(jì)劃的活動(dòng);(4) 驗(yàn)證過(guò)程:定義需方、供方或獨(dú)立的第三方對(duì)軟件產(chǎn)品進(jìn)行驗(yàn)證的活動(dòng),這些驗(yàn)證活動(dòng)的深度由軟件項(xiàng)目的性質(zhì)決定;(5) 確認(rèn)過(guò)程:定義需方、供方或獨(dú)立的第三方對(duì)軟件產(chǎn)品進(jìn)行確認(rèn)的活動(dòng);(6) 聯(lián)合評(píng)審過(guò)程:定義對(duì)某項(xiàng)活動(dòng)的狀態(tài)和產(chǎn)品進(jìn)行評(píng)價(jià)的活動(dòng),這一過(guò)程可由任何雙方共同采用,其中一方(評(píng)審方)評(píng)審另一方(被評(píng)方);(7) 審計(jì)過(guò)程:定義對(duì)是否符合要求
9、、計(jì)劃和合同進(jìn)行確定的過(guò)程,這個(gè)過(guò)程可由任何雙方采用,其中一方(審計(jì)方)審計(jì)另一方(被審方)的軟件產(chǎn)品或活動(dòng);(8) 問(wèn)題解決過(guò)程: 定義對(duì)開發(fā)、操作、維護(hù)或其它過(guò)程中發(fā)現(xiàn)的問(wèn)題(包括不一致性) 進(jìn)行分析和排除的過(guò)程。輔助過(guò)程是一個(gè)組織用來(lái)建立、 實(shí)施一種基礎(chǔ)結(jié)構(gòu)、并不斷改進(jìn)該基礎(chǔ)結(jié)構(gòu)的過(guò)程?;A(chǔ)結(jié)構(gòu)由一些相關(guān)的生存周期過(guò)程和人員組成。 這些輔助過(guò)程有如下四個(gè):(1) 基礎(chǔ)設(shè)施過(guò)程:定義建立生存周期過(guò)程的基礎(chǔ)結(jié)構(gòu)所需的基本活動(dòng);(2) 管理過(guò)程:定義在生存周期過(guò)程中管理(包括項(xiàng)目管理) 的基本活動(dòng);(3) 培訓(xùn)過(guò)程:定義為提供經(jīng)過(guò)適當(dāng)培訓(xùn)的人員所需的一些活動(dòng);(4) 過(guò)程改進(jìn)過(guò)程:定義一個(gè)組織
10、(即需方、供方、開發(fā)者、操作者、維護(hù)者或另一過(guò)程的管理者)為了建立、測(cè)量、控制和改進(jìn)其生存周期過(guò)程需完成的基本活動(dòng)。4) 簡(jiǎn)述常見(jiàn)的軟件生存周期模型各自的特征和優(yōu)缺點(diǎn)。1. 瀑布模型是一種線性的開發(fā)模型, 具有不可回溯性。開發(fā)人員必須等前一階段的任務(wù)完成后,才能開始進(jìn)行后一階段的工作, 并且前一階段的輸出往往就是后一階段的輸入。 由于它的不可回溯性,如果在軟件生存周期的后期發(fā)現(xiàn)并要改正前期的錯(cuò)誤, 那么需要付出很高的代價(jià)。 傳統(tǒng)的瀑布模型是文檔驅(qū)動(dòng)的。 瀑布模型的優(yōu)點(diǎn)是過(guò)程模型簡(jiǎn)單,執(zhí)行容易;缺點(diǎn)是無(wú)法適應(yīng)變更。瀑布模型適應(yīng)于具有以下特征的軟件開發(fā)項(xiàng)目。(1) 在軟件開發(fā)的過(guò)程中,需求不發(fā)生或
11、發(fā)生很少變化,并且開發(fā)人員可以一次性獲取到全部需求。否則,由于瀑布模型較差的可回溯性,在后續(xù)階段中需求經(jīng)常性的變更需要付出高昂的代價(jià)。(2) 軟件開發(fā)人員具有豐富的經(jīng)驗(yàn), 對(duì)軟件應(yīng)用領(lǐng)域很熟悉。(3) 軟件項(xiàng)目的風(fēng)險(xiǎn)較低。瀑布模型不具有完善的風(fēng)險(xiǎn)控制機(jī)制。2. 原型模型主要用于挖掘需求, 或是進(jìn)行某種技術(shù)或開發(fā)方法的可行性研究, 是一種開發(fā)人員為了快速而準(zhǔn)確地獲取需求經(jīng)常采用的方法。 在初步獲取需求后, 開發(fā)人員會(huì)快速地開發(fā)一個(gè)原型系統(tǒng)。通過(guò)對(duì)原型系統(tǒng)進(jìn)行模擬操作, 開發(fā)人員可以更直觀、更全面和更準(zhǔn)確地了解用戶對(duì)待開發(fā)系統(tǒng)的各項(xiàng)要求, 同時(shí)還能挖掘到隱藏的需求。原型模型的優(yōu)點(diǎn)是簡(jiǎn)單和快速, 缺
12、點(diǎn)是需要花費(fèi)一些額外的成本來(lái)構(gòu)造原型,并且不利于創(chuàng)新。3. 增量模型作為瀑布模型的一個(gè)變體, 具有瀑布模型的所有優(yōu)點(diǎn),此外,它還有以下優(yōu)點(diǎn):第一個(gè)可交付版本所需要的成本和時(shí)間很少; 開發(fā)由增量表示的小系統(tǒng)所承擔(dān)的風(fēng)險(xiǎn)不大; 由于很快發(fā)布了第一個(gè)版本, 因此可以減少用戶需求的變更;允許增量投資,即在項(xiàng)目開始時(shí),可以僅對(duì)一個(gè)或兩個(gè)增量投資。增量模型的不足為: 如果沒(méi)有對(duì)用戶的變更要求進(jìn)行規(guī)劃,那么產(chǎn)生的初始增量可能會(huì)造成后來(lái)增量的不穩(wěn)定; 如果需求不像早期思考的那樣穩(wěn)定和完整,那么一些增量就可能需要重新開發(fā),重新發(fā)布;管理發(fā)生的成本、進(jìn)度和配置的復(fù)雜性,可能會(huì)超出組織的能力。增量模型適用于以下特點(diǎn)
13、的軟件項(xiàng)目。(1) 軟件產(chǎn)品可以分批次地進(jìn)行交付。(2) 待開發(fā)的軟件系統(tǒng)能夠被模塊化。(3) 軟件開發(fā)人員對(duì)應(yīng)用領(lǐng)域不熟悉, 難以一次性地進(jìn)行系統(tǒng)開發(fā)。(4) 項(xiàng)目管理人員對(duì)全局把握的水平較高。4. 演化模型基于這樣的假定:需求是最基本的,是唯一的風(fēng)險(xiǎn)。演化模型具有以下優(yōu)點(diǎn): 在需求不能予以規(guī)范時(shí),可以使用這一演化模型; 用戶可以通過(guò)運(yùn)行系統(tǒng)的實(shí)踐,對(duì)需求進(jìn)行改進(jìn);與瀑布模型相比,需要更多用戶 / 獲取方的參與。演化模型的不足包括: 演化模型的使用仍然處于初步探索階段,因此具有較大的風(fēng)險(xiǎn), 需要有利的管理; 即使很好地理解了需求或設(shè)計(jì), 該模型的使用也很容易成為不編寫需求或設(shè)計(jì)文檔的借口;用
14、戶 / 獲取方不理解該方法的自然屬性, 因此當(dāng)結(jié)果不夠理想時(shí),可能會(huì)產(chǎn)生抱怨。5. 螺旋模型通常用來(lái)指導(dǎo)大型軟件項(xiàng)目的開發(fā)。它把開發(fā)過(guò)程分為制定計(jì)劃、風(fēng)險(xiǎn)分析、實(shí)施開發(fā)和用戶評(píng)估四類活動(dòng)。螺旋模型綜合了傳統(tǒng)的生存期模型的優(yōu)點(diǎn), 同時(shí)擴(kuò)展了增量模型管理任務(wù)的范圍:風(fēng)險(xiǎn)分析,用來(lái)彌補(bǔ)其不足。螺旋模型的另外一個(gè)特征是,只有一個(gè)迭代過(guò)程真正開發(fā)可交付的軟件。 螺旋模型也存在其缺點(diǎn): 一個(gè)周期執(zhí)行時(shí)間太長(zhǎng); 要有方法和自動(dòng)化工具支持,否則無(wú)法實(shí)施。螺旋模型適應(yīng)于風(fēng)險(xiǎn)較大的大型軟件項(xiàng)目的開發(fā)。6. 統(tǒng)一過(guò)程模型具有三大特點(diǎn):用例驅(qū)動(dòng),以架構(gòu)為中心, 迭代和增量開發(fā)。 統(tǒng)一過(guò)程模型核心是解決可操作性問(wèn)題,
15、幫助開發(fā)人員盡可能少地依賴那些“不可描述的經(jīng)驗(yàn)”??梢远啻螆?zhí)行各個(gè)工作流程, 從而有利于更好地理解需求、設(shè)計(jì)出合理的系統(tǒng)構(gòu)架, 并最終交付一系列漸趨完善的成果。 適用的范圍極為廣泛。對(duì)開發(fā)人員的素質(zhì)要求較高。 統(tǒng)一過(guò)程模型在實(shí)際實(shí)施過(guò)程中也存在很多的困難, 包括:多層次持續(xù)的規(guī)劃與評(píng)估; 判斷構(gòu)架中關(guān)鍵風(fēng)險(xiǎn)的經(jīng)驗(yàn);高效率的驗(yàn)證和評(píng)價(jià)手段; 多工種之間的頻繁溝通;多版本工作產(chǎn)品的管理等。7. 敏捷方法是一種輕量級(jí)的軟件工程方法, 更強(qiáng)調(diào)軟件開發(fā)過(guò)程中各種變化的必然性, 通過(guò)團(tuán)隊(duì)成員之間充分的交流與溝通以及合理的機(jī)制來(lái)有效地響應(yīng)變化。敏捷模型避免了傳統(tǒng)的重量級(jí)軟件開發(fā)過(guò)程復(fù)雜、文檔繁瑣和對(duì)變化的適
16、應(yīng)性低等各種弊端,它強(qiáng)調(diào)軟件開發(fā)過(guò)程中團(tuán)隊(duì)成員之間的交流、過(guò)程的簡(jiǎn)潔性、用戶反饋、對(duì)所作決定的信心以及人性化的特征。缺點(diǎn):組織模型和建模方法比較薄弱。7) 常用的軟件工程的輔助工具有哪些?各有什么作用?1分析設(shè)計(jì)工具( 1)Microsoft VisioMicrosoftVisio通過(guò) 創(chuàng)建 與數(shù) 據(jù)相關(guān)的Visio 圖表來(lái)顯示數(shù)據(jù),這些圖表易于刷新,并能夠顯著提高生產(chǎn)率, 使用各種圖表可了解、 操作和共享企業(yè)內(nèi)組織系統(tǒng)、 資源和流程的有關(guān)信息。Visio 提供了各種模板: 業(yè)務(wù)流程的流程圖、網(wǎng)絡(luò)圖、工作流圖、數(shù)據(jù)庫(kù)模型圖和軟件圖,這些模板可用于可視化和簡(jiǎn)化業(yè)務(wù)流程、 跟蹤項(xiàng)目和資源、繪制組織
17、結(jié)構(gòu)圖、映射網(wǎng)絡(luò)、繪制建筑地圖以及優(yōu)化系統(tǒng)。( 2)Rational RoseRational Rose 是美國(guó)的 Rational 公司的面向?qū)ο蠼9ぞ?,利用這個(gè)工具,可以建立用UML描述的軟件系統(tǒng)的模型,而且可以自動(dòng)生成和維護(hù) C+、Java、VB和 Oracle 等語(yǔ)言和系統(tǒng)的代碼。 Rational Rose 包括了統(tǒng)一建模語(yǔ)言( UML),OOSE,以及 OMT,是一個(gè)完全的,具有能滿足所有建模環(huán)境需求能力和靈活性的一套解決方案。允許開發(fā)人員,項(xiàng)目經(jīng)理,系統(tǒng)工程師和分析人員在軟件開發(fā)周期內(nèi)在將需求和系統(tǒng)的體系架構(gòu)轉(zhuǎn)換成代碼, 消除浪費(fèi)的消耗, 對(duì)需求和系統(tǒng)的體系架構(gòu)進(jìn)行可視化,理解
18、和精練。( 3)TogetherTogether 是由 Borland 公司發(fā)布的集成了 Java IDE 的產(chǎn)品線,源于 JBuilder 中的 UML建模工具。這條產(chǎn)品線提供了不同應(yīng)用層次的功能 , 比 如TogetherDesigner , TogetherArchitect,Together Developer 。從 2007 年開始,他們將這些功能合并為一個(gè)產(chǎn)品進(jìn)行發(fā)布。技術(shù)上講, Together是一組Eclipse插件。Together Deploper 使用 UML 1.4,支持多種語(yǔ)言,物理數(shù)據(jù)建模,設(shè)計(jì)模式,源代碼設(shè)計(jì)模式識(shí)別,模板代碼設(shè)計(jì)和重用,文件生成等。( 4)Pow
19、erDesignerPowerDesigner 是 Sybase公司的 CASE工具集,提供了一個(gè)復(fù)雜的交互環(huán)境, 支持開發(fā)生存周期的所有階段,從處理流程建模到對(duì)象和組件的生成。利用 PowerDesigner 可以制作數(shù)據(jù)流程圖、概念數(shù)據(jù)模型、 物理數(shù)據(jù)模型, 可以生成多種客戶端開發(fā)工具的應(yīng)用程序, 還可為數(shù)據(jù)倉(cāng)庫(kù)制作結(jié)構(gòu)模型,也能對(duì)團(tuán)隊(duì)設(shè)計(jì)模型進(jìn)行控制。 PowerDesigner 系列產(chǎn)品提供了一個(gè)完整的建模解決方案,業(yè)務(wù)或系統(tǒng)分析人員,設(shè)計(jì)人員,數(shù)據(jù)庫(kù)管理員 DBA 和開發(fā)人員可以對(duì)其裁剪以滿足他們的特定的需要; 而其模塊化的結(jié)構(gòu)為購(gòu)買和擴(kuò)展提供了極大的靈活性, 從而使開發(fā)單位可以根據(jù)
20、其項(xiàng)目的規(guī)模和范圍來(lái)使用他們所需要的工具。( 5)CASE StudioCASE studio 是一個(gè)專業(yè)的數(shù)據(jù)庫(kù)設(shè)計(jì)工具??梢酝高^(guò) ER圖表、資料流向圖來(lái)設(shè)計(jì)各式各樣的數(shù)據(jù)庫(kù)系統(tǒng)(像是 ms sql, oracle, sybase 等),另外程式提供了各式各樣的管理單元幫助程序員進(jìn)行設(shè)計(jì)。2程序開發(fā)工具( 1)Microsoft Visual StudioMicrosoft Visual Studio是微軟公司推出的Windows平臺(tái)上的集成開發(fā)環(huán)境。提供了高級(jí)開發(fā)工具、調(diào)試功能、數(shù)據(jù)庫(kù)功能和創(chuàng)新功能,幫助在各種平臺(tái)上快速創(chuàng)建應(yīng)用程序。 Visual Studio 包括各種增強(qiáng)功能,例如可視
21、化設(shè)計(jì)器、對(duì) Web開發(fā)工具的大量改進(jìn), 以及能夠加速開發(fā)和處理所有類型數(shù)據(jù)的語(yǔ)言增強(qiáng)功能, 為開發(fā)人員提供了所有相關(guān)的工具和框架支持。( 2)EclipseEclipse 是一個(gè)開放源代碼的、基于 Java 的可擴(kuò)展開發(fā)平臺(tái)。最初是由 IBM 公司開發(fā)的替代商業(yè)軟件 Visual Age for Java 的下一代 IDE 開發(fā)環(huán)境, 2001 年 11 月貢獻(xiàn)給開源社區(qū),現(xiàn)在它由非營(yíng)利軟件供應(yīng)商聯(lián)盟 Eclipse 基金會(huì)管理。Eclipse 的本身只是一個(gè)框架平臺(tái),但是眾多插件的支持使得 Eclipse 擁有其他功能相對(duì)固定的 IDE 軟件很難具有的靈活性。 許多軟件開發(fā)商以 Eclip
22、se 為框架開發(fā)自己的 IDE。( 3)NetBeansNetBeans 由 Sun 公司在 2000 年創(chuàng)立,當(dāng)前可以在 Solaris 、Windows、Linux 和 Macintosh OS X 平臺(tái)上進(jìn)行開發(fā),并在 Sun 公用許可范圍內(nèi)使用。 NetBeans 是一個(gè)全功能的開放源碼 Java IDE,可以幫助開發(fā)人員編寫、編譯、調(diào)試和部署 Java 應(yīng)用,并將版本控制和 XML編輯融入其眾多功能之中。 NetBeans 可支持 Java 2 平臺(tái)標(biāo)準(zhǔn)版 (J2SE) 應(yīng)用的創(chuàng)建、采用 JSP和 Servlet 的 2 層 Web應(yīng)用的創(chuàng)建,以及用于 2 層 Web應(yīng)用的 API
23、及軟件的核心組的創(chuàng)建。 此外,NetBeans 還預(yù)裝了兩個(gè) Web服務(wù)器,即 Tomcat和 GlassFish ,從而免除了繁瑣的配置和安裝過(guò)程。( 4)DelphiDelphi 是 Borland 公司研制的可視化開發(fā)工具,可在 Windows3.x、Windows95、WindowsNT、WindowsXP、 Windows Vista 等環(huán)境下使用。 Delphi 擁有一個(gè)可視化的集成開發(fā)環(huán)境,采用面向?qū)ο蟮木幊陶Z(yǔ)言 ObjectPascal 和基于部件的開發(fā)結(jié)構(gòu)框架。 它提供了 500 多個(gè)可供使用的構(gòu)件,利用這些部件, 開發(fā)人員可以快速地構(gòu)造出應(yīng)用系統(tǒng)。開發(fā)人員也可以根據(jù)自己的需
24、要修改部件或用 Delphi 本身編寫自己的部件。( 5)Dev C+Dev C+是一個(gè) C&C+開發(fā)工具,它是一款自由軟件,遵守 GPL協(xié)議。它集合了 GCC、MinGW32等眾多自由軟件, 并且可以取得最新版本的各種工具支持。它使用 MingW32/GCC編譯器,遵循C/C+標(biāo)準(zhǔn)。開發(fā)環(huán)境包括多頁(yè)面窗口、工程編輯器以及調(diào)試器等, 在工程編輯器中集合了編輯器、編譯器、連接程序和執(zhí)行程序,提供高亮度語(yǔ)法顯示的, 以減少編輯錯(cuò)誤, 還有完善的調(diào)試功能。3測(cè)試工具( 1)Load RunnerLoadRunner 是一種預(yù)測(cè)系統(tǒng)行為和性能的工業(yè)標(biāo)準(zhǔn)級(jí)負(fù)載測(cè)試工具。 通過(guò)以模擬上千萬(wàn)用戶實(shí)施
25、并發(fā)負(fù)載及實(shí)時(shí)性能監(jiān)測(cè)的方式來(lái)確認(rèn)和查找問(wèn)題。它能預(yù)測(cè)系統(tǒng)行為并優(yōu)化系統(tǒng)性能。LoadRunner 的測(cè)試對(duì)象是整個(gè)企業(yè)的系統(tǒng),它通過(guò)模擬實(shí)際用戶的操作行為實(shí)行實(shí)時(shí)性能監(jiān)測(cè)。( 2)Win RnnnerMercury Interactive公司的 WinRunner是一種企業(yè)級(jí)的功能測(cè)試工具, 用于檢測(cè)應(yīng)用程序是否能夠達(dá)到預(yù)期的功能及正常運(yùn)行。 通過(guò)自動(dòng)錄制、檢測(cè)和回放用戶的應(yīng)用操作, WinRunner 能夠有效地幫助測(cè)試人員對(duì)復(fù)雜的企業(yè)級(jí)應(yīng)用的不同發(fā)布版進(jìn)行測(cè)試, 提高測(cè)試人員的工作效率和質(zhì)量,確保跨平臺(tái)的、 復(fù)雜的企業(yè)級(jí)應(yīng)用無(wú)故障發(fā)布及長(zhǎng)期穩(wěn)定運(yùn)行。( 3)SegueSegue Silk
26、產(chǎn)品系列是高度集成的自動(dòng)化黑盒功能、性能測(cè)試平臺(tái)。分布式測(cè)試環(huán)境,集中控制門戶(瀏覽器方式)能夠控制測(cè)試代理,提供自動(dòng)測(cè)試流程的流程化定義功能,具備" 端到端" 的組件測(cè)試能力,測(cè)試用例的管理、自動(dòng)測(cè)試,連同測(cè)試腳本的跨平臺(tái)能力,基于AOL7 標(biāo)準(zhǔn),全面支持 WEB應(yīng)用的測(cè)試能力, 能夠通過(guò)提供大量的數(shù)據(jù),提供工作流類應(yīng)用的模擬運(yùn)行功能,全面支持 UNICODE編碼標(biāo)準(zhǔn),支持各種WEB技術(shù)構(gòu)件。4配置管理工具( 1)Microsoft Visual SourcesafeMicrosoft Visual SourceSafe是微軟公司出品的版本控制系統(tǒng),簡(jiǎn)稱 VSS。軟件支持
27、 Windows 系統(tǒng)所支持的所有文件格式, 通常與微軟公司的 Visual Studio 產(chǎn)品同時(shí)發(fā)布,并且高度集成。包括服務(wù)器和通過(guò)網(wǎng)絡(luò)可以連接服務(wù)器的客戶端。VSS提供了基本的認(rèn)證安全和版本控制機(jī)制,提供歷史版本對(duì)比, 適合于個(gè)人程序開發(fā)的版本管理。( 2)ClearCaseClearCase 是 Rational 公司開發(fā)的配置管理工具,可以與 Windows資源管理器集成使用, 并且還可以與很多開發(fā)工具集成在一起使用。 ClearCase 主要應(yīng)用于復(fù)雜的產(chǎn)品發(fā)放、分布式團(tuán)隊(duì)合作、并行的開發(fā)和維護(hù)任務(wù), 包括支持當(dāng)今流行軟件開發(fā)環(huán)境 Client/Server 網(wǎng)絡(luò)結(jié)構(gòu)。它包含了一套
28、完整的軟件配置管理工具而且結(jié)構(gòu)透明、界面可親。5項(xiàng)目管理工具( 1)Microsoft ProjectMicrosoft Project是專案管理軟件程序,由微軟開發(fā)銷售。軟件設(shè)計(jì)目的在于協(xié)助專案經(jīng)理發(fā)展計(jì)劃、為任務(wù)分配資源、跟蹤進(jìn)度、管理預(yù)算和分析工作量。 可產(chǎn)生關(guān)鍵路徑日程表, 日程表可以以資源標(biāo)準(zhǔn)的, 而且關(guān)鍵鏈以甘特圖形象化。另外, Project 可以辨認(rèn)不同類別的用戶。這些不同類的用戶對(duì)專案、 概觀、和其它資料有不同的訪問(wèn)級(jí)別。( 2)CA-SuperProjectComputer Associates International公司的CA-SuperProject是一個(gè)常用的軟件
29、,特別是在那些管理公司網(wǎng)絡(luò)的項(xiàng)目管理人員、在 Unix 或Windows環(huán)境下的工作人員以及需要高性能程序的人中更受歡迎。這個(gè)軟件包能支持多達(dá) 160,0 多個(gè)任務(wù)的大型項(xiàng)目。能創(chuàng)建及合并多個(gè)項(xiàng)目文件,為網(wǎng)絡(luò)工作者提供多層密碼入口, 進(jìn)行計(jì)劃審評(píng)法( PERT)的概率分析。而且,這一程序包含一個(gè)資源平衡算法, 在必要時(shí),可以保證重要工作的優(yōu)先性。( 3)Time LineSymantec公司的 Time Line 軟件是有經(jīng)驗(yàn)的項(xiàng)目經(jīng)理的首選。它的報(bào)表功能以及與 SQL數(shù)據(jù)庫(kù)的連接功能都很突出。 日程表、電子郵件的功能,排序和篩選能力以及多項(xiàng)目處理都是精心設(shè)計(jì)的。另外,它還有一個(gè)叫做 Co-P
30、ilot 的功能,這是一個(gè)很有用的推出式幫助設(shè)施, 用戶界面很好,極易操作。許多評(píng)論人員認(rèn)為 Time Line 最適于大型項(xiàng)目以及多任務(wù)項(xiàng)目, 但不如其他軟件包便于初學(xué)者使用。2 練習(xí)題1) 什么是項(xiàng)目立項(xiàng),包括哪幾個(gè)步驟?任何一個(gè)完整的軟件工程項(xiàng)目都是從項(xiàng)目立項(xiàng)開始的。項(xiàng)目立項(xiàng)包括項(xiàng)目發(fā)起、項(xiàng)目論證、項(xiàng)目審核和項(xiàng)目立項(xiàng)四個(gè)過(guò)程。2) 可行性研究包括哪些方面?每個(gè)方面關(guān)注的問(wèn)題領(lǐng)域是什么?可行性研究需要從多個(gè)方面進(jìn)行評(píng)估, 主要包括:戰(zhàn)略可行性、操作可行性、計(jì)劃可行性、技術(shù)可行性、社會(huì)可行性、市場(chǎng)可行性、經(jīng)濟(jì)可行性和風(fēng)險(xiǎn)可行性等。戰(zhàn)略可行性研究主要從整體的角度考慮項(xiàng)目是否可行,例如提出的系統(tǒng)
31、對(duì)組織目標(biāo)具有怎樣的貢獻(xiàn);新系統(tǒng)對(duì)目前的部門和組織結(jié)構(gòu)有何影響;系統(tǒng)將以何種方式影響人力水平和現(xiàn)存雇員的技術(shù); 它對(duì)組織整個(gè)人員開發(fā)策略有何影響等等。操作可行性研究主要考慮系統(tǒng)是否能夠真正解決問(wèn)題;是否系統(tǒng)一旦安裝后, 有足夠的人力資源來(lái)運(yùn)行系統(tǒng); 用戶對(duì)新系統(tǒng)具有抵觸情緒是否可能使操作不可行; 人員的可行性等問(wèn)題。計(jì)劃可行性研究主要估計(jì)項(xiàng)目完成所需的時(shí)間并評(píng)估項(xiàng)目的時(shí)間是否足夠。技術(shù)可行性研究主要考慮項(xiàng)目使用技術(shù)的成熟程度;與競(jìng)爭(zhēng)者的技術(shù)相比, 所采用技術(shù)的優(yōu)勢(shì)及缺陷; 技術(shù)轉(zhuǎn)換成本; 技術(shù)發(fā)展趨勢(shì)及所采用技術(shù)的發(fā)展前景; 技術(shù)選擇的制約條件等。社會(huì)可行性研究主要考慮項(xiàng)目是否滿足所有項(xiàng)目涉及
32、者的利益; 是否滿足法律或合同的要求等。市場(chǎng)可行性研究主要包括研究市場(chǎng)發(fā)展歷史與發(fā)展趨勢(shì),說(shuō)明本產(chǎn)品處于市場(chǎng)的什么發(fā)展階段;本產(chǎn)品和同類產(chǎn)品的價(jià)格分析;統(tǒng)計(jì)當(dāng)前市場(chǎng)的總額、競(jìng)爭(zhēng)對(duì)手所占的份額,分析本產(chǎn)品能占多少份額; 產(chǎn)品消費(fèi)群體特征、消費(fèi)方式以及影響市場(chǎng)的因素分析;分析競(jìng)爭(zhēng)對(duì)手的市場(chǎng)狀況; 分析競(jìng)爭(zhēng)對(duì)手在研發(fā)、銷售、資金、品牌等方面的實(shí)力;分析自己的實(shí)力等。經(jīng)濟(jì)可行性研究主要是把系統(tǒng)開發(fā)和運(yùn)行所需要的成本與得到的效益進(jìn)行比較, 進(jìn)行成本效益分析。風(fēng)險(xiǎn)可行性研究主要是考慮項(xiàng)目在實(shí)施過(guò)程中可能遇到的各種風(fēng)險(xiǎn)因素, 以及每種風(fēng)險(xiǎn)因素可能出現(xiàn)的概率和出險(xiǎn)后造成的影響程度。3) 進(jìn)行可行性研究的一般步
33、驟是什么?1) 明確系統(tǒng)的目標(biāo)2) 分析研究現(xiàn)行系統(tǒng)3) 設(shè)計(jì)新系統(tǒng)的高層邏輯模型4) 獲得并比較可行的方案5) 撰寫可行性研究報(bào)告4) 需求分析和可行性研究的側(cè)重點(diǎn)有什么不同?可行性研究的目的是評(píng)估系統(tǒng)是否值得去開發(fā),問(wèn)題是否能夠解決, 而不是對(duì)需求進(jìn)行定義。如果說(shuō)可行性分析是要決定“做還是不做”,那么需求分析就是要回答“系統(tǒng)必須做什么”這個(gè)問(wèn)題。5) 獲取需求的常用方法有哪些?問(wèn)卷調(diào)查、訪談、實(shí)地操作、建立原型6) 如何進(jìn)行結(jié)構(gòu)化需求分析, 其建模方法都有哪些?結(jié)構(gòu)化分析的具體步驟為:1) 建立當(dāng)前系統(tǒng)的 “具體模型 ”:系統(tǒng)的 “具體模型 ”就是現(xiàn)實(shí)環(huán)境的忠實(shí)寫照,這樣的表達(dá)與當(dāng)前系統(tǒng)完
34、全對(duì)應(yīng),因此用戶容易理解。2) 抽象出當(dāng)前系統(tǒng)的邏輯模型:分析系統(tǒng)的 “具體模型 ”,抽象出其本質(zhì)的因素,排除次要因素, 獲得當(dāng)前系統(tǒng)的“邏輯模型 ”。3) 建立目標(biāo)系統(tǒng)的邏輯模型:分析目標(biāo)系統(tǒng)與當(dāng)前系統(tǒng)邏輯上的差別, 從而進(jìn)一步明確目標(biāo)系統(tǒng) “做什么 ”,建立目標(biāo)系統(tǒng)的 “邏輯模型 ”。4) 為了對(duì)目標(biāo)系統(tǒng)進(jìn)行完整的描述,還需要考慮人機(jī)界面和其他一些問(wèn)題。在結(jié)構(gòu)化分析中經(jīng)常用到的建模方法主要有:1) 數(shù)據(jù)流圖( DFD )2) 實(shí)體聯(lián)系圖( E-R )3) 控制流圖( CFD )4) 狀態(tài)遷移圖( STD)7) 根據(jù) “學(xué)生檔案管理系統(tǒng) ”的數(shù)據(jù)流圖,完成它的數(shù)據(jù)字典。數(shù)據(jù)流名稱:資料別名:
35、學(xué)生資料組成:學(xué)號(hào) +姓名 +性別 +年齡 +學(xué)院 +年級(jí) + 專業(yè)8) 有如下一個(gè)學(xué)生選課系統(tǒng): 教師提出開課計(jì)劃,系統(tǒng)批準(zhǔn)后給教師下發(fā)開課通知。學(xué)生可向系統(tǒng)提出選課申請(qǐng), 系統(tǒng)批準(zhǔn)后給學(xué)生下發(fā)選課申請(qǐng)結(jié)果通知。課程結(jié)束后,系統(tǒng)還可以幫助教師錄入學(xué)生成績(jī), 同時(shí)把成績(jī)單發(fā)送給學(xué)生。請(qǐng)用 Visio 畫出該系統(tǒng)頂層的數(shù)據(jù)流圖。教師成績(jī)錄入發(fā)送開課計(jì)劃 開課通知成績(jī)單批準(zhǔn)的選課計(jì)劃選課計(jì)劃系統(tǒng)批準(zhǔn)學(xué)生系統(tǒng)批準(zhǔn)申請(qǐng)結(jié)果開課信息批準(zhǔn)的開課通知檔案信息查詢開課信息3 練習(xí)題1) 軟件設(shè)計(jì)的意義和目標(biāo)是什么?軟件設(shè)計(jì)在軟件開發(fā)過(guò)程中處于核心地位, 它是保證質(zhì)量的關(guān)鍵步驟。 設(shè)計(jì)為我們提供了可以用于質(zhì)量評(píng)
36、估的軟件表示, 設(shè)計(jì)是我們能夠?qū)⒂脩粜枨鬁?zhǔn)確的轉(zhuǎn)化為軟件產(chǎn)品或系統(tǒng)的唯一方法。軟件設(shè)計(jì)是所有軟件工程活動(dòng)和隨后的軟件支持活動(dòng)的基礎(chǔ)。2) 在軟件設(shè)計(jì)的過(guò)程中要遵循哪些規(guī)則?模塊化抽象化逐步求精信息隱藏3) 軟件設(shè)計(jì)如何分類,分別有哪些活動(dòng)?從活動(dòng)任務(wù)來(lái)看,軟件設(shè)計(jì)是對(duì)軟件需求進(jìn)行:數(shù)據(jù)設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)、接口設(shè)計(jì)、構(gòu)件設(shè)計(jì)和部署設(shè)計(jì)。從工程管理角度來(lái)看, 軟件設(shè)計(jì)分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。 前期進(jìn)行概要設(shè)計(jì), 得到軟件系統(tǒng)的基本框架。 后期進(jìn)行詳細(xì)設(shè)計(jì), 明確系統(tǒng)內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)。4) 什么是軟件體系結(jié)構(gòu), 什么是軟件體系結(jié)構(gòu)風(fēng)格?體系結(jié)構(gòu)是研究系統(tǒng)各部分組成及相互關(guān)系的技術(shù)學(xué)科。軟件體系結(jié)構(gòu)不僅
37、指定了系統(tǒng)的組織結(jié)構(gòu)和拓?fù)浣Y(jié)構(gòu), 也顯示了系統(tǒng)需求和構(gòu)成系統(tǒng)的元素之間的對(duì)應(yīng)關(guān)系, 提供了一些設(shè)計(jì)決策的基本原理。所謂軟件體系結(jié)構(gòu)風(fēng)格, 是描述某一特定應(yīng)用領(lǐng)域中系統(tǒng)組織方式的慣用模式。1) 軟件體系結(jié)構(gòu)風(fēng)格反映了領(lǐng)域中眾多系統(tǒng)所共有的結(jié)構(gòu)和語(yǔ)義特性, 并指導(dǎo)如何將各個(gè)模塊和子系統(tǒng)有效地組織成一個(gè)完整的系統(tǒng)。2) 軟件體系結(jié)構(gòu)風(fēng)格定義了用于描述系統(tǒng)的術(shù)語(yǔ)表和一組指導(dǎo)構(gòu)件系統(tǒng)的規(guī)則。5) 常見(jiàn)的軟件體系結(jié)構(gòu)風(fēng)格有哪些,如何分類?1 數(shù)據(jù)流風(fēng)格:數(shù)據(jù)到達(dá)即被激活處理工作,無(wú)數(shù)據(jù)時(shí)不工作。2 調(diào)用 /返回風(fēng)格:各個(gè)組件通過(guò)調(diào)用其它組件和獲得返回參數(shù)來(lái)進(jìn)行交互, 配合完成功能。3 獨(dú)立構(gòu)件風(fēng)格:這種風(fēng)
38、格的主要特點(diǎn)是:事件的觸發(fā)者并不知道哪些構(gòu)件會(huì)被這些事件影響,相互保持獨(dú)立這樣不能假定構(gòu)件的處理順序,甚至不知道哪些過(guò)程會(huì)被調(diào)用;各個(gè)構(gòu)件之間彼此無(wú)連接關(guān)系, 各自獨(dú)立存在,通過(guò)對(duì)事件的發(fā)布和注冊(cè)實(shí)現(xiàn)關(guān)聯(lián)包括進(jìn)程通訊、事件系統(tǒng)。4 虛擬機(jī)風(fēng)格:它創(chuàng)建了一種虛擬的環(huán)境,將用戶與底層平臺(tái)隔離開來(lái), 或者將高層抽象和底層實(shí)現(xiàn)隔離開來(lái)。5 倉(cāng)庫(kù)風(fēng)格:倉(cāng)庫(kù)是存儲(chǔ)和維護(hù)數(shù)據(jù)的中心場(chǎng)所。在倉(cāng)庫(kù)風(fēng)格中存在兩類構(gòu)件, 表示當(dāng)前數(shù)據(jù)的狀態(tài)的中心數(shù)據(jù)結(jié)構(gòu)和 一組對(duì)中心數(shù)據(jù)進(jìn)行操作的獨(dú)立構(gòu)件。 包括數(shù)據(jù)庫(kù)系統(tǒng)、超文本系統(tǒng)、黑板系統(tǒng)。6) 面向數(shù)據(jù)流的設(shè)計(jì)方法的主要思想是什么?面向數(shù)據(jù)流的設(shè)計(jì)方法就是通常所說(shuō)的結(jié)構(gòu)化設(shè)
39、計(jì)方法,它以數(shù)據(jù)流圖為基礎(chǔ),把DFD變換成軟件結(jié)構(gòu)的不同映射方法, 以軟件結(jié)構(gòu)圖( SC圖)的形式表現(xiàn)。 SC圖描述軟件系統(tǒng)的層次和分塊結(jié)構(gòu)關(guān)系, 體現(xiàn)模塊與模塊之間的聯(lián)系與通訊, 從而表達(dá)軟件的體系結(jié)構(gòu)。7) 什么是內(nèi)聚、耦合,包括哪些常見(jiàn)類型??jī)?nèi)聚指的是一個(gè)模塊內(nèi)部各組成部分的處理動(dòng)作的組合強(qiáng)度, 又稱塊內(nèi)聯(lián)系。 包括幾種內(nèi)聚類型:偶然內(nèi)聚:模塊內(nèi)各成分無(wú)實(shí)質(zhì)性的聯(lián)系,只是偶然地被湊到一起;邏輯內(nèi)聚:模塊內(nèi)部各組成部分的處理動(dòng)作在邏輯上相似,但功能卻彼此不同或無(wú)關(guān);時(shí)間內(nèi)聚:將若干在同一個(gè)時(shí)間帶內(nèi)進(jìn)行的工作集中在一個(gè)模塊內(nèi), 但這些工作彼此無(wú)關(guān);過(guò)程內(nèi)聚:模塊內(nèi)部包含的各個(gè)成分按照某種確定
40、的順序進(jìn)行,但所做工作沒(méi)有什么關(guān)系;通訊內(nèi)聚:模塊內(nèi)的各個(gè)組成部分都使用相同的輸入數(shù)據(jù)或產(chǎn)生相同的輸出數(shù)據(jù);順序內(nèi)聚:模塊中各個(gè)組成部分順序執(zhí)行,前一個(gè)成分的輸出就是后一個(gè)成分的輸入;功能內(nèi)聚:模塊內(nèi)的各個(gè)組成部分全都為完成同一個(gè)功能而存在, 共同完成一個(gè)單一的功能,并且只完成一個(gè)功能。耦合指的是兩個(gè)模塊之間的相互依賴關(guān)系,又稱塊間聯(lián)系。包括以下幾種類型的偶合:非直接耦合:調(diào)用和被調(diào)用模塊之間不存在直接的數(shù)據(jù)聯(lián)系;數(shù)據(jù)耦合:調(diào)用和被調(diào)用模塊之間存在簡(jiǎn)單變量這樣的數(shù)據(jù)傳遞;特征耦合:調(diào)用和調(diào)用模塊之間存在諸如數(shù)組這樣的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)傳遞;控制耦合:耦合的模塊之間傳遞的不是數(shù)據(jù)信息,而是控制信息,
41、或稱開關(guān)量或標(biāo)志量;外部耦合:允許多個(gè)模塊訪問(wèn)同一個(gè)全局變量;公共耦合:允許多個(gè)模塊訪問(wèn)同一個(gè)全局性數(shù)據(jù)結(jié)構(gòu);內(nèi)容耦合:允許一個(gè)模塊直接調(diào)用另一個(gè)模塊中的數(shù)據(jù)。8) 詳細(xì)設(shè)計(jì)時(shí),應(yīng)該完成哪些工作?軟件詳細(xì)設(shè)計(jì)包括數(shù)據(jù)設(shè)計(jì)、 界面設(shè)計(jì)和構(gòu)件設(shè)計(jì)9) 數(shù)據(jù)庫(kù)設(shè)計(jì)有哪些步驟, 每一步的主要工作是什么?1) 需求分析;調(diào)查和分析用戶的業(yè)務(wù)活動(dòng)和數(shù)據(jù)的使用情況,弄清所用數(shù)據(jù)的種類、范圍、數(shù)量以及它們?cè)跇I(yè)務(wù)活動(dòng)中交流的情況,確定用戶對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的使用要求和各種約束條件等,形成用戶需求規(guī)約。2) 概念設(shè)計(jì);對(duì)用戶要求描述的現(xiàn)實(shí)世界(可能是一個(gè)工廠、一個(gè)商場(chǎng)或者一個(gè)學(xué)校等),通過(guò)對(duì)其中住處的分類、 聚集和概括
42、,建立抽象的概念數(shù)據(jù)模型。 這個(gè)概念模型應(yīng)反映現(xiàn)實(shí)世界各部門的信息結(jié)構(gòu)、 信息流動(dòng)情況、信息間的互相制約關(guān)系以及各部門對(duì)信息儲(chǔ)存、查詢和加工的要求等。 所建立的模型應(yīng)避開數(shù)據(jù)庫(kù)在計(jì)算機(jī)上的具體實(shí)現(xiàn)細(xì)節(jié),用一種抽象的形式表示出來(lái)。以擴(kuò)充的實(shí)體 聯(lián)系模型( E-R 模型)方法為例,第一步先明確現(xiàn)實(shí)世界各部門所含的各種實(shí)體及其屬性、實(shí)體間的聯(lián)系以及對(duì)信息的制約條件等,從而給出各部門內(nèi)所用信息的局部描述 (在數(shù)據(jù)庫(kù)中稱為用戶的局部視圖)。第二步再將前面得到的多個(gè)用戶的局部視圖集成為一個(gè)全局視圖, 即用戶要描述的現(xiàn)實(shí)世界的概念數(shù)據(jù)模型。3) 邏輯設(shè)計(jì);主要工作是將現(xiàn)實(shí)世界的概念數(shù)據(jù)模型設(shè)計(jì)成數(shù)據(jù)庫(kù)的一種
43、邏輯模式,即適應(yīng)于某種特定數(shù)據(jù)庫(kù)管理系統(tǒng)所支持的邏輯數(shù)據(jù)模式。 與此同時(shí),可能還需為各種數(shù)據(jù)處理應(yīng)用領(lǐng)域產(chǎn)生相應(yīng)的邏輯子模式。這一步設(shè)計(jì)的結(jié)果就是所謂 “邏輯數(shù)據(jù)庫(kù)”。4) 物理設(shè)計(jì);根據(jù)特定數(shù)據(jù)庫(kù)管理系統(tǒng)所提供的多種存儲(chǔ)結(jié)構(gòu)和存取方法等依賴于具體計(jì)算機(jī)結(jié)構(gòu)的各項(xiàng)物理設(shè)計(jì)措施, 對(duì)具體的應(yīng)用任務(wù)選定最合適的物理存儲(chǔ)結(jié)構(gòu)(包括文件類型、索引結(jié)構(gòu)和數(shù)據(jù)的存放次序與位邏輯等 )、存取方法和存取路徑等。這一步設(shè)計(jì)的結(jié)果就是所謂 “物理數(shù)據(jù)庫(kù) ”。5) 驗(yàn)證設(shè)計(jì);在上述設(shè)計(jì)的基礎(chǔ)上, 收集數(shù)據(jù)并具體建立一個(gè)數(shù)據(jù)庫(kù), 運(yùn)行一些典型的應(yīng)用任務(wù)來(lái)驗(yàn)證數(shù)據(jù)庫(kù)設(shè)計(jì)的正確性和合理性。一般,一個(gè)大型數(shù)據(jù)庫(kù)的設(shè)計(jì)過(guò)程往
44、往需要經(jīng)過(guò)多次循環(huán)反復(fù)。 當(dāng)設(shè)計(jì)的某步發(fā)現(xiàn)問(wèn)題時(shí),可能就需要返回到前面去進(jìn)行修改。因此,在做上述數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)就應(yīng)考慮到今后修改設(shè)計(jì)的可能性和方便性。10) 如何進(jìn)行 E-R 模型到關(guān)系模型的轉(zhuǎn)換?規(guī)則 1(實(shí)體類型的轉(zhuǎn)換) :將每個(gè)實(shí)體類型轉(zhuǎn)換成一個(gè)關(guān)系模式, 實(shí)體的屬性即為關(guān)系模式的屬性,實(shí)體標(biāo)識(shí)符即為關(guān)系模式的鍵。規(guī)則 2(二元聯(lián)系類型的轉(zhuǎn)換)若實(shí)體間聯(lián)系是 1:1 :隱含在實(shí)體對(duì)應(yīng)的關(guān)系中;若實(shí)體間聯(lián)系是 1:N:隱含在實(shí)體對(duì)應(yīng)的關(guān)系中;若實(shí)體間聯(lián)系是M:N:直接用關(guān)系表示。11) 界面設(shè)計(jì)應(yīng)該遵循什么原則?1) 置用戶于控制之下:以不強(qiáng)迫用戶進(jìn)入不必要的或不希望的動(dòng)作的方式來(lái)定義交互模
45、式;提供靈活的交互; 允許用戶交互可以被中斷和撤銷;當(dāng)技能級(jí)別增長(zhǎng)時(shí)可以使交互流水化并允許定制交互; 使用戶隔離內(nèi)部技術(shù)細(xì)節(jié);設(shè)計(jì)應(yīng)允許用戶和出現(xiàn)在屏幕上的對(duì)象直接交互。2) 減少用戶的記憶負(fù)擔(dān):減少對(duì)短期記憶的要求;建立有意義的缺??; 定義直覺(jué)性的捷徑;界面的視覺(jué)布局應(yīng)該基于真實(shí)世界的隱喻;以不斷進(jìn)展的方式揭示信息。3) 保持界面一致:允許用戶將當(dāng)前任務(wù)放入有意義的語(yǔ)境;在應(yīng)用系列內(nèi)保持一致性;如果過(guò)去的交互模式已經(jīng)建立起了用戶期望,不要改變它,除非有不得已的理由。12) 構(gòu)件設(shè)計(jì)有哪些設(shè)計(jì)工具?流程圖、 N-S 圖、PAD圖、決策表與決策樹、偽代碼13)利用 Visio 實(shí)現(xiàn) 3.5。4
46、練習(xí)題1) 程序設(shè)計(jì)語(yǔ)言的發(fā)展經(jīng)歷了哪幾個(gè)階段?每個(gè)階段語(yǔ)言的特點(diǎn)是什么?1. 機(jī)器語(yǔ)言是計(jì)算機(jī)可以直接識(shí)別、 執(zhí)行的指令代碼,它是計(jì)算機(jī)發(fā)展早期的語(yǔ)言。由于機(jī)器指令直接操縱計(jì)算機(jī)硬件的執(zhí)行,所以不同結(jié)構(gòu)的計(jì)算機(jī)有不同的機(jī)器語(yǔ)言。用機(jī)器語(yǔ)言編碼時(shí)必須考慮到機(jī)器的實(shí)現(xiàn)細(xì)節(jié),所以它的編程效率極低, 而且很難掌握。2. 匯編語(yǔ)言用一組助記符來(lái)代替機(jī)器語(yǔ)言中晦澀、難懂的二進(jìn)制代碼, 使得代碼比較直觀,易于程序員理解。 在執(zhí)行時(shí),匯編語(yǔ)言必須由特定的翻譯程序轉(zhuǎn)化為機(jī)器語(yǔ)言,才能由計(jì)算機(jī)執(zhí)行。 可以說(shuō),每種匯編語(yǔ)言都是支持這種語(yǔ)言的計(jì)算機(jī)獨(dú)有的,所以它與機(jī)器語(yǔ)言一樣都是“面向機(jī)器”的低級(jí)語(yǔ)言。由于匯編語(yǔ)言
47、的抽象層次太低,所以程序員在使用時(shí)需要考慮大量的機(jī)器細(xì)節(jié)。3. 高級(jí)語(yǔ)言出現(xiàn)于 20 世紀(jì) 50 年代,它不僅在語(yǔ)義上更易于程序員理解, 而且在實(shí)現(xiàn)上也不再依賴于特定的計(jì)算機(jī)硬件。 它為程序員的編碼工作提供了方便, 同時(shí)大大提高了軟件的生產(chǎn)效率。4. 第四代語(yǔ)言是超高級(jí)語(yǔ)言, 它是對(duì)數(shù)據(jù)處理和過(guò)程描述的更高級(jí)的抽象, 一般由特定的知識(shí)庫(kù)和方法庫(kù)支持, 比如與數(shù)據(jù)庫(kù)應(yīng)用相關(guān)的查詢語(yǔ)言,描述數(shù)據(jù)結(jié)構(gòu)和處理過(guò)程的圖形語(yǔ)言等,它們的目的在于直接實(shí)現(xiàn)各種應(yīng)用系統(tǒng)。2) 面向?qū)ο蟮母呒?jí)語(yǔ)言中包含哪些基本概念?封裝、繼承、多態(tài)3) 你了解的程序設(shè)計(jì)語(yǔ)言都有哪些?( 1)Fortran 語(yǔ)言Fortran 語(yǔ)
48、言出現(xiàn)于 1954 年,是世界上最早的高級(jí)語(yǔ)言, 廣泛應(yīng)用于科學(xué)和工程計(jì)算領(lǐng)域。 Fortran 語(yǔ)言以其特有的功能在數(shù)值、科學(xué)和工程計(jì)算領(lǐng)域發(fā)揮著重要作用。( 2)Pascal 語(yǔ)言Pascal 語(yǔ)言是最早的結(jié)構(gòu)化編程語(yǔ)言,常用于算法和數(shù)據(jù)結(jié)構(gòu)的描述。 用 Pascal 編寫的程序有一種結(jié)構(gòu)化的美感,學(xué)習(xí) Pascal 語(yǔ)言有助于培養(yǎng)良好的程序設(shè)計(jì)風(fēng)格和編程習(xí)慣。( 3)Basic 語(yǔ)言Basic 相對(duì)于其他編程語(yǔ)言來(lái)說(shuō)簡(jiǎn)單易用,并具有“人機(jī)會(huì)話”功能, 是一種比較適合于初學(xué)者和愛(ài)好編程的非專業(yè)人士的語(yǔ)言。但是其簡(jiǎn)單與隨意的特性也容易讓使用者養(yǎng)成不好的編程習(xí)慣。( 4)Cobol 語(yǔ)言Cob
49、ol 語(yǔ)言是最接近于自然語(yǔ)言的高級(jí)語(yǔ)言之一,它使用了 300 多個(gè)英文保留字, 語(yǔ)法規(guī)則嚴(yán)格, 程序通俗易懂, 是一種功能很強(qiáng)而又極為冗長(zhǎng)的語(yǔ)言。 常用于商業(yè)數(shù)據(jù)處理等領(lǐng)域。(5)C語(yǔ)言C 語(yǔ)言兼顧高級(jí)語(yǔ)言和匯編語(yǔ)言的特點(diǎn),靈活性很好, 效率高,常用來(lái)開發(fā)比較底層的軟件。例如, Linux 操作系統(tǒng)就是用 C語(yǔ)言編寫的。要充分掌握該語(yǔ)言需要一定的計(jì)算機(jī)基礎(chǔ)和編程經(jīng)驗(yàn), 所以雖然現(xiàn)在很多高校選擇 C語(yǔ)言作為入門編程語(yǔ)言, 但它并不十分適合初學(xué)者。( 6)C+語(yǔ)言C+語(yǔ)言在 C 語(yǔ)言的基礎(chǔ)上加入了面向?qū)ο蟮奶匦?,既支持結(jié)構(gòu)化編程又支持面向?qū)ο缶幊淌蛊鋺?yīng)用領(lǐng)域十分廣泛, 是現(xiàn)在使用較多的語(yǔ)言之一。(
50、 7)Java 語(yǔ)言Java 語(yǔ)言是現(xiàn)在非常流行的一種編程語(yǔ)言,具有平臺(tái)無(wú)關(guān)性、安全性、面向?qū)ο?、分布式、健壯性等特點(diǎn)。 Java 分為 3 個(gè)體系 JavaSE、JavaEE和 JavaME,適合企業(yè)應(yīng)用程序和各種網(wǎng)絡(luò)程序的開發(fā)。( 8)Delphi 語(yǔ)言Delphi 語(yǔ)言以 Pascal 語(yǔ)言為基礎(chǔ), 擴(kuò)充了面向?qū)ο蟮哪芰Γ?并加入了可視化的開發(fā)手段,用于開發(fā) Windows 環(huán)境下的應(yīng)用程序。( 9)C#語(yǔ)言C#語(yǔ)言是微軟公司發(fā)布的一種面向?qū)ο蟮?、運(yùn)行于 .NET Framework 之上的高級(jí)程序設(shè)計(jì)語(yǔ)言,它充分借鑒了 C+、Java 和 Delphi 的優(yōu)點(diǎn),是現(xiàn)在微軟 .NET Windows網(wǎng)絡(luò)框架的主角。( 10)標(biāo)記語(yǔ)言標(biāo)記語(yǔ)言主要用來(lái)描述網(wǎng)頁(yè)的數(shù)據(jù)和格式,沒(méi)有傳統(tǒng)編程語(yǔ)言提供的控制結(jié)構(gòu)和復(fù)雜的數(shù)據(jù)結(jié)構(gòu)定義。 例如,超文本標(biāo)記語(yǔ)言(HTML)和可擴(kuò)展標(biāo)記語(yǔ)言( X
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中職(新能源汽車運(yùn)用技術(shù))應(yīng)用技術(shù)階段測(cè)試題及答案
- 2025年大學(xué)石油化工技術(shù)(石油化工技術(shù))試題及答案
- 2025年大學(xué)語(yǔ)文(閱讀基礎(chǔ))試題及答案
- 2025年大學(xué)醫(yī)學(xué)檢驗(yàn)技術(shù)(生化檢驗(yàn)技術(shù))試題及答案
- 2025年中職旅游管理(研學(xué)旅游)試題及答案
- 2025年中職第二學(xué)年(職業(yè)素養(yǎng))職業(yè)禮儀綜合測(cè)試試題及答案
- 2025年大學(xué)生物學(xué)(生態(tài)學(xué)原理)試題及答案
- 2025年注冊(cè)會(huì)計(jì)師(CPA)考試 會(huì)計(jì)科目深度解析沖刺實(shí)戰(zhàn)試卷及答案
- 政協(xié)安全生產(chǎn)視察講解
- 工科專業(yè)就業(yè)優(yōu)勢(shì)分析
- 交通安全企業(yè)培訓(xùn)課件
- 2025年廣東省中考物理試卷及答案
- 皮革項(xiàng)目商業(yè)計(jì)劃書
- 主管護(hù)師護(hù)理學(xué)考試歷年真題試卷及答案
- 華文慕課《刑法學(xué)》總論課后作業(yè)答案
- 公路護(hù)欄波型梁施工方案
- 2025版煤礦安全規(guī)程新增變化條款考試題庫(kù)
- 基于SOLO分類理論剖析初中生數(shù)學(xué)開放題解決水平:現(xiàn)狀差異與提升策略
- 2025至2030全球及中國(guó)用戶研究軟件行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 砌筑施工安全教育培訓(xùn)課件
- GB/T 7122-2025高強(qiáng)度膠粘劑剝離強(qiáng)度的測(cè)定浮輥法
評(píng)論
0/150
提交評(píng)論