




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1練習(xí)題軟件的特點(diǎn)有哪些?軟件是一種邏輯實(shí)體,具有抽象性。硬件是有形的設(shè)備,而軟件不像硬件那樣具有明顯的可見性。人們可以把軟件記錄在介質(zhì)上,但是卻無法直觀地觀察到它的形態(tài),而必須通過在計(jì)算機(jī)上實(shí)際地運(yùn)行才能了解它的功能、性能及其他特性。軟件的生產(chǎn)與硬件的制造不同。它更多地滲透了人類的智能活動(dòng),是人類智力勞動(dòng)的產(chǎn)物。軟件是被開發(fā)或設(shè)計(jì)的,而不是傳統(tǒng)意義上被制造的。軟件成本集中于開發(fā)上,這意味著軟件項(xiàng)目不能像制造項(xiàng)目那樣管理。軟件在運(yùn)行使用過程中,不會(huì)磨損。在軟件的運(yùn)行和使用期間,它不會(huì)產(chǎn)生像硬件那樣的磨損和老化現(xiàn)象,然而卻存在著缺陷維護(hù)和技術(shù)更新的問題。軟件不會(huì)磨損,但是它會(huì)退化,而軟件的退化是由于修改。因此,軟件維護(hù)比硬件維護(hù)要復(fù)雜得多。軟件的開發(fā)至今尚未完全擺脫手工藝的開發(fā)方式。在硬件世界,構(gòu)件復(fù)用是工程過程的自然的一部分,而在軟件世界,它是剛剛開始起步的事物。雖然軟件產(chǎn)業(yè)正在向基于構(gòu)件的組裝前進(jìn),但大多數(shù)軟件仍是定制的。軟件的開發(fā)和運(yùn)行必須依附于特定的計(jì)算機(jī)系統(tǒng)環(huán)境。它不像有些設(shè)備一樣,能夠獨(dú)立地工作,而是受到了物理硬件、網(wǎng)絡(luò)配置、支撐軟件等因素的制約。由此引發(fā)了軟件的可移植性問題。軟件危機(jī)是如何產(chǎn)生的?有哪些表現(xiàn)?原因:在20世紀(jì)60年代中期,隨著軟件規(guī)模的擴(kuò)大,復(fù)雜性的增加,功能的增強(qiáng),使得高質(zhì)量的軟件開發(fā)變得越來越困難。表現(xiàn):開發(fā)出來的軟件產(chǎn)品不能滿足用戶的需求,即產(chǎn)品的功能或特性與需求不符。這主要是由于開發(fā)人員與用戶之間不能充分有效的交流造成的,使得開發(fā)人員對(duì)用戶需求的理解存在著差異;相比越來越廉價(jià)的硬件,軟件代價(jià)過高;軟件質(zhì)量難以得到保證,且難以發(fā)揮硬件潛能。開發(fā)團(tuán)隊(duì)缺少完善的軟件質(zhì)量評(píng)審體系以及科學(xué)的軟件測(cè)試規(guī)程,使得最終的軟件產(chǎn)品存在著諸多缺陷;難以準(zhǔn)確估計(jì)軟件開發(fā)、維護(hù)的費(fèi)用以及開發(fā)周期。往往軟件產(chǎn)品不能在預(yù)算范圍之內(nèi),按照計(jì)劃完成開發(fā)。很多情況下,軟件產(chǎn)品的開發(fā)周期或經(jīng)費(fèi)會(huì)大大超出預(yù)算;難于控制開發(fā)風(fēng)險(xiǎn),開發(fā)速度趕不上市場(chǎng)變化;軟件產(chǎn)品修改維護(hù)困難,集成遺留系統(tǒng)更困難;軟件文檔不完備,并且存在著文檔內(nèi)容與軟件產(chǎn)品不符的情況。軟件文檔是計(jì)算機(jī)軟件的重要組成部分,它為在軟件開發(fā)人員之間以及開發(fā)人員與用戶之間信息的共享提供了重要的平臺(tái)。軟件文檔的不完整和不一致的問題會(huì)給軟件的開發(fā)和維護(hù)等工作帶來很多麻煩。簡(jiǎn)述軟件工程的基本原則。用分階段的生存周期計(jì)劃進(jìn)行嚴(yán)格的管理;將軟件的生存周期劃分為多個(gè)階段,對(duì)各個(gè)階段實(shí)行嚴(yán)格的項(xiàng)目管理。軟件開發(fā)是一個(gè)漫長(zhǎng)的過程,人們可以根據(jù)工作的特點(diǎn)或目標(biāo),把整個(gè)軟件的開發(fā)周期劃分為多個(gè)階段,并為每個(gè)階段制定分階段的計(jì)劃及驗(yàn)收標(biāo)準(zhǔn),這樣有益于對(duì)整個(gè)軟件開發(fā)過程進(jìn)行管理。在傳統(tǒng)的軟件工程中,軟件開發(fā)的生存周期可以劃分為可行性研究、需求分析、軟件設(shè)計(jì)、軟件實(shí)現(xiàn)、軟件測(cè)試、產(chǎn)品驗(yàn)收和交付等階段。堅(jiān)持進(jìn)行階段評(píng)審;嚴(yán)格的貫徹與實(shí)施階段評(píng)審制度可以幫助軟件開發(fā)人員及時(shí)地發(fā)現(xiàn)錯(cuò)誤并將其改正。在軟件開發(fā)的過程中,錯(cuò)誤發(fā)現(xiàn)的越晚,修復(fù)錯(cuò)誤所要付出的代價(jià)就會(huì)越大。實(shí)施階段評(píng)審,只有在本階段的工作通過評(píng)審后,才能進(jìn)入下一階段的工作。實(shí)行嚴(yán)格的產(chǎn)品控制;在軟件開發(fā)的過程中,用戶需求很可能在不斷的發(fā)生著變化。有些時(shí)候,即使用戶需求沒有改變,軟件開發(fā)人員受到經(jīng)驗(yàn)的限制以及與客戶交流不充分的影響,也很難做到一次性獲取到全部的正確的需求。可見,需求分析的工作應(yīng)該貫穿到整個(gè)軟件開發(fā)的生存周期內(nèi)。在軟件開發(fā)的整個(gè)過程中,需求的改變是不可避免的。當(dāng)需求更新時(shí),為了保證軟件各個(gè)配置項(xiàng)的一致性,實(shí)施嚴(yán)格的版本控制是非常必要的。采用現(xiàn)代程序設(shè)計(jì)技術(shù);現(xiàn)代的程序設(shè)計(jì)技術(shù),比如面向?qū)ο?,可以使開發(fā)出來的軟件產(chǎn)品更易維護(hù)和修改,同時(shí)還能縮短開發(fā)的時(shí)間,并且更符合人們的思維邏輯。軟件工程結(jié)果應(yīng)能清楚地審查;雖然軟件產(chǎn)品的可見性比較差,但是它的功能和質(zhì)量應(yīng)該能夠被準(zhǔn)確地審查和度量,這樣才能有利于有效的項(xiàng)目管理。一般軟件產(chǎn)品包括可以執(zhí)行的源代碼、一系列相應(yīng)的文檔和資源數(shù)據(jù)等。開發(fā)小組的人員應(yīng)該少而精;開發(fā)小組成員的人數(shù)少有利于組內(nèi)成員充分的交流,這是高效團(tuán)隊(duì)管理的重要因素。而高素質(zhì)的開發(fā)小組成員是影響軟件產(chǎn)品的質(zhì)量和開發(fā)效率的重要因素。承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性。隨著計(jì)算機(jī)科學(xué)技術(shù)的發(fā)展,軟件從業(yè)人員應(yīng)該不斷地總結(jié)經(jīng)驗(yàn)并且主動(dòng)學(xué)習(xí)新的軟件技術(shù),只有這樣才能不落后于時(shí)代。什么是軟件過程?軟件過程標(biāo)準(zhǔn)包括哪些內(nèi)容?軟件過程又稱為軟件生存周期過程,是軟件生存周期內(nèi)為達(dá)到一定目標(biāo)而必須實(shí)施的一系列相關(guān)過程的集合。標(biāo)準(zhǔn):制定了ISO12207軟件生存周期過程標(biāo)準(zhǔn),它把用于開發(fā)一個(gè)軟件系統(tǒng)的過程分為三類:主過程、支持過程和輔助過程(組織過程)。主過程是構(gòu)成軟件生存周期主要部分的那些過程,正是這些過程啟動(dòng)或進(jìn)行軟件產(chǎn)品的開發(fā)、操作或維護(hù)。這些過程共有五個(gè),它們是:獲取過程:定義需方(即獲取一個(gè)系統(tǒng)、軟件產(chǎn)品或軟件服務(wù)的組織)的活動(dòng);供應(yīng)過程:定義供方(即向需方提供系統(tǒng)、軟件產(chǎn)品或軟件服務(wù)的組織)的活動(dòng);開發(fā)過程:定義開發(fā)者(即定義和開發(fā)軟件產(chǎn)品的組織)的活動(dòng);維護(hù)過程:定義維護(hù)者(即對(duì)軟件產(chǎn)品進(jìn)行維護(hù)服務(wù)的組織)的活動(dòng),這個(gè)過程包括系統(tǒng)移植和退役;運(yùn)行過程:定義運(yùn)行者(即在計(jì)算機(jī)系統(tǒng)運(yùn)行環(huán)境中向其用戶提供運(yùn)行服務(wù)的組織)的活動(dòng)。支持過程是對(duì)另一個(gè)過程提供支持的過程。被支持的過程根據(jù)需要采用支持性過程,并與該過程結(jié)合,幫助軟件項(xiàng)目獲得成功,并提高質(zhì)量。支持過程共有如下八個(gè):文檔過程:定義對(duì)某生存周期過程所產(chǎn)生的信息進(jìn)行記錄的活動(dòng);配置管理過程:定義配置管理活動(dòng);質(zhì)量保證過程:定義客觀地保證軟件產(chǎn)品和過程符合規(guī)定要求、遵守已定計(jì)劃的活動(dòng);驗(yàn)證過程:定義需方、供方或獨(dú)立的第三方對(duì)軟件產(chǎn)品進(jìn)行驗(yàn)證的活動(dòng),這些驗(yàn)證活動(dòng)的深度由軟件項(xiàng)目的性質(zhì)決定;確認(rèn)過程:定義需方、供方或獨(dú)立的第三方對(duì)軟件產(chǎn)品進(jìn)行確認(rèn)的活動(dòng);聯(lián)合評(píng)審過程:定義對(duì)某項(xiàng)活動(dòng)的狀態(tài)和產(chǎn)品進(jìn)行評(píng)價(jià)的活動(dòng),這一過程可由任何雙方共同采用,其中一方(評(píng)審方)評(píng)審另一方(被評(píng)方);審計(jì)過程:定義對(duì)是否符合要求、計(jì)劃和合同進(jìn)行確定的過程,這個(gè)過程可由任何雙方采用,其中一方(審計(jì)方)審計(jì)另一方(被審方)的軟件產(chǎn)品或活動(dòng);問題解決過程:定義對(duì)開發(fā)、操作、維護(hù)或其它過程中發(fā)現(xiàn)的問題(包括不一致性)進(jìn)行分析和排除的過程。輔助過程是一個(gè)組織用來建立、實(shí)施一種基礎(chǔ)結(jié)構(gòu)、并不斷改進(jìn)該基礎(chǔ)結(jié)構(gòu)的過程?;A(chǔ)結(jié)構(gòu)由一些相關(guān)的生存周期過程和人員組成。這些輔助過程有如下四個(gè):基礎(chǔ)設(shè)施過程:定義建立生存周期過程的基礎(chǔ)結(jié)構(gòu)所需的基本活動(dòng);管理過程:定義在生存周期過程中管理(包括項(xiàng)目管理)的基本活動(dòng);培訓(xùn)過程:定義為提供經(jīng)過適當(dāng)培訓(xùn)的人員所需的一些活動(dòng);過程改進(jìn)過程:定義一個(gè)組織(即需方、供方、開發(fā)者、操作者、維護(hù)者或另一過程的管理者)為了建立、測(cè)量、控制和改進(jìn)其生存周期過程需完成的基本活動(dòng)。簡(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)是過程模型簡(jiǎn)單,執(zhí)行容易;缺點(diǎn)是無法適應(yīng)變更。瀑布模型適應(yīng)于具有以下特征的軟件開發(fā)項(xiàng)目。在軟件開發(fā)的過程中,需求不發(fā)生或發(fā)生很少變化,并且開發(fā)人員可以一次性獲取到全部需求。否則,由于瀑布模型較差的可回溯性,在后續(xù)階段中需求經(jīng)常性的變更需要付出高昂的代價(jià)。軟件開發(fā)人員具有豐富的經(jīng)驗(yàn),對(duì)軟件應(yīng)用領(lǐng)域很熟悉。軟件項(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)。通過對(duì)原型系統(tǒng)進(jìn)行模擬操作,開發(fā)人員可以更直觀、更全面和更準(zhǔn)確地了解用戶對(duì)待開發(fā)系統(tǒng)的各項(xiàng)要求,同時(shí)還能挖掘到隱藏的需求。原型模型的優(yōu)點(diǎn)是簡(jiǎn)單和快速,缺點(diǎn)是需要花費(fè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è)增量投資。增量模型的不足為:如果沒有對(duì)用戶的變更要求進(jìn)行規(guī)劃,那么產(chǎn)生的初始增量可能會(huì)造成后來增量的不穩(wěn)定;如果需求不像早期思考的那樣穩(wěn)定和完整,那么一些增量就可能需要重新開發(fā),重新發(fā)布;管理發(fā)生的成本、進(jìn)度和配置的復(fù)雜性,可能會(huì)超出組織的能力。增量模型適用于以下特點(diǎn)的軟件項(xiàng)目。軟件產(chǎn)品可以分批次地進(jìn)行交付。待開發(fā)的軟件系統(tǒng)能夠被模塊化。軟件開發(fā)人員對(duì)應(yīng)用領(lǐng)域不熟悉,難以一次性地進(jìn)行系統(tǒng)開發(fā)。項(xiàng)目管理人員對(duì)全局把握的水平較高。4.演化模型基于這樣的假定:需求是最基本的,是唯一的風(fēng)險(xiǎn)。演化模型具有以下優(yōu)點(diǎn):在需求不能予以規(guī)范時(shí),可以使用這一演化模型;用戶可以通過運(yùn)行系統(tǒng)的實(shí)踐,對(duì)需求進(jìn)行改進(jìn);與瀑布模型相比,需要更多用戶/獲取方的參與。演化模型的不足包括:演化模型的使用仍然處于初步探索階段,因此具有較大的風(fēng)險(xiǎn),需要有利的管理;即使很好地理解了需求或設(shè)計(jì),該模型的使用也很容易成為不編寫需求或設(shè)計(jì)文檔的借口;用戶/獲取方不理解該方法的自然屬性,因此當(dāng)結(jié)果不夠理想時(shí),可能會(huì)產(chǎn)生抱怨。5.螺旋模型通常用來指導(dǎo)大型軟件項(xiàng)目的開發(fā)。它把開發(fā)過程分為制定計(jì)劃、風(fēng)險(xiǎn)分析、實(shí)施開發(fā)和用戶評(píng)估四類活動(dòng)。螺旋模型綜合了傳統(tǒng)的生存期模型的優(yōu)點(diǎn),同時(shí)擴(kuò)展了增量模型管理任務(wù)的范圍:風(fēng)險(xiǎn)分析,用來彌補(bǔ)其不足。螺旋模型的另外一個(gè)特征是,只有一個(gè)迭代過程真正開發(fā)可交付的軟件。螺旋模型也存在其缺點(diǎn):一個(gè)周期執(zhí)行時(shí)間太長(zhǎng);要有方法和自動(dòng)化工具支持,否則無法實(shí)施。 螺旋模型適應(yīng)于風(fēng)險(xiǎn)較大的大型軟件項(xiàng)目的開發(fā)。6.統(tǒng)一過程模型具有三大特點(diǎn):用例驅(qū)動(dòng),以架構(gòu)為中心,迭代和增量開發(fā)。統(tǒng)一過程模型核心是解決可操作性問題,幫助開發(fā)人員盡可能少地依賴那些“不可描述的經(jīng)驗(yàn)”??梢远啻螆?zhí)行各個(gè)工作流程,從而有利于更好地理解需求、設(shè)計(jì)出合理的系統(tǒng)構(gòu)架,并最終交付一系列漸趨完善的成果。適用的范圍極為廣泛。對(duì)開發(fā)人員的素質(zhì)要求較高。統(tǒng)一過程模型在實(shí)際實(shí)施過程中也存在很多的困難,包括:多層次持續(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ā)過程中各種變化的必然性,通過團(tuán)隊(duì)成員之間充分的交流與溝通以及合理的機(jī)制來有效地響應(yīng)變化。敏捷模型避免了傳統(tǒng)的重量級(jí)軟件開發(fā)過程復(fù)雜、文檔繁瑣和對(duì)變化的適應(yīng)性低等各種弊端,它強(qiáng)調(diào)軟件開發(fā)過程中團(tuán)隊(duì)成員之間的交流、過程的簡(jiǎn)潔性、用戶反饋、對(duì)所作決定的信心以及人性化的特征。缺點(diǎn):組織模型和建模方法比較薄弱。常用的軟件工程的輔助工具有哪些?各有什么作用?1.分析設(shè)計(jì)工具(1)MicrosoftVisioMicrosoftVisio通過創(chuàng)建與數(shù)據(jù)相關(guān)的Visio圖表來顯示數(shù)據(jù),這些圖表易于刷新,并能夠顯著提高生產(chǎn)率,使用各種圖表可了解、操作和共享企業(yè)內(nèi)組織系統(tǒng)、資源和流程的有關(guān)信息。Visio提供了各種模板:業(yè)務(wù)流程的流程圖、網(wǎng)絡(luò)圖、工作流圖、數(shù)據(jù)庫模型圖和軟件圖,這些模板可用于可視化和簡(jiǎn)化業(yè)務(wù)流程、跟蹤項(xiàng)目和資源、繪制組織結(jié)構(gòu)圖、映射網(wǎng)絡(luò)、繪制建筑地圖以及優(yōu)化系統(tǒng)。(2)RationalRoseRationalRose是美國(guó)的Rational公司的面向?qū)ο蠼9ぞ?,利用這個(gè)工具,可以建立用UML描述的軟件系統(tǒng)的模型,而且可以自動(dòng)生成和維護(hù)C++、Java、VB和Oracle等語言和系統(tǒng)的代碼。RationalRose包括了統(tǒng)一建模語言(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)行可視化,理解和精練。(3)TogetherTogether是由Borland公司發(fā)布的集成了JavaIDE的產(chǎn)品線,源于JBuilder中的UML建模工具。這條產(chǎn)品線提供了不同應(yīng)用層次的功能,比如TogetherDesigner,TogetherArchitect,TogetherDeveloper。從2007年開始,他們將這些功能合并為一個(gè)產(chǎn)品進(jìn)行發(fā)布。技術(shù)上講,Together是一組Eclipse插件。TogetherDeploper使用UML1.4,支持多種語言,物理數(shù)據(jù)建模,設(shè)計(jì)模式,源代碼設(shè)計(jì)模式識(shí)別,模板代碼設(shè)計(jì)和重用,文件生成等。(4)PowerDesignerPowerDesigner是Sybase公司的CASE工具集,提供了一個(gè)復(fù)雜的交互環(huán)境,支持開發(fā)生存周期的所有階段,從處理流程建模到對(duì)象和組件的生成。利用PowerDesigner可以制作數(shù)據(jù)流程圖、概念數(shù)據(jù)模型、物理數(shù)據(jù)模型,可以生成多種客戶端開發(fā)工具的應(yīng)用程序,還可為數(shù)據(jù)倉庫制作結(jié)構(gòu)模型,也能對(duì)團(tuán)隊(duì)設(shè)計(jì)模型進(jìn)行控制。PowerDesigner系列產(chǎn)品提供了一個(gè)完整的建模解決方案,業(yè)務(wù)或系統(tǒng)分析人員,設(shè)計(jì)人員,數(shù)據(jù)庫管理員DBA和開發(fā)人員可以對(duì)其裁剪以滿足他們的特定的需要;而其模塊化的結(jié)構(gòu)為購(gòu)買和擴(kuò)展提供了極大的靈活性,從而使開發(fā)單位可以根據(jù)其項(xiàng)目的規(guī)模和范圍來使用他們所需要的工具。(5)CASEStudioCASEstudio是一個(gè)專業(yè)的數(shù)據(jù)庫設(shè)計(jì)工具。可以透過ER圖表、資料流向圖來設(shè)計(jì)各式各樣的數(shù)據(jù)庫系統(tǒng)(像是mssql,oracle,sybase等),另外程式提供了各式各樣的管理單元幫助程序員進(jìn)行設(shè)計(jì)。2.程序開發(fā)工具(1)MicrosoftVisualStudioMicrosoftVisualStudio是微軟公司推出的Windows平臺(tái)上的集成開發(fā)環(huán)境。提供了高級(jí)開發(fā)工具、調(diào)試功能、數(shù)據(jù)庫功能和創(chuàng)新功能,幫助在各種平臺(tái)上快速創(chuàng)建應(yīng)用程序。VisualStudio包括各種增強(qiáng)功能,例如可視化設(shè)計(jì)器、對(duì)Web開發(fā)工具的大量改進(jìn),以及能夠加速開發(fā)和處理所有類型數(shù)據(jù)的語言增強(qiáng)功能,為開發(fā)人員提供了所有相關(guān)的工具和框架支持。(2)EclipseEclipse是一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺(tái)。最初是由IBM公司開發(fā)的替代商業(yè)軟件VisualAgeforJava的下一代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ā)商以Eclipse為框架開發(fā)自己的IDE。(3)NetBeansNetBeans由Sun公司在2000年創(chuàng)立,當(dāng)前可以在Solaris、Windows、Linux和MacintoshOSX平臺(tái)上進(jìn)行開發(fā),并在Sun公用許可范圍內(nèi)使用。NetBeans是一個(gè)全功能的開放源碼JavaIDE,可以幫助開發(fā)人員編寫、編譯、調(diào)試和部署Java應(yīng)用,并將版本控制和XML編輯融入其眾多功能之中。NetBeans可支持Java2平臺(tái)標(biāo)準(zhǔn)版(J2SE)應(yīng)用的創(chuàng)建、采用JSP和Servlet的2層Web應(yīng)用的創(chuàng)建,以及用于2層Web應(yīng)用的API及軟件的核心組的創(chuàng)建。此外,NetBeans還預(yù)裝了兩個(gè)Web服務(wù)器,即Tomcat和GlassFish,從而免除了繁瑣的配置和安裝過程。(4)DelphiDelphi是Borland公司研制的可視化開發(fā)工具,可在Windows3.x、Windows95、WindowsNT、WindowsXP、WindowsVista等環(huán)境下使用。Delphi擁有一個(gè)可視化的集成開發(fā)環(huán)境,采用面向?qū)ο蟮木幊陶Z言O(shè)bjectPascal和基于部件的開發(fā)結(jié)構(gòu)框架。它提供了500多個(gè)可供使用的構(gòu)件,利用這些部件,開發(fā)人員可以快速地構(gòu)造出應(yīng)用系統(tǒng)。開發(fā)人員也可以根據(jù)自己的需要修改部件或用Delphi本身編寫自己的部件。(5)DevC++DevC++是一個(gè)C&C++開發(fā)工具,它是一款自由軟件,遵守GPL協(xié)議。它集合了GCC、MinGW32等眾多自由軟件,并且可以取得最新版本的各種工具支持。它使用MingW32/GCC編譯器,遵循C/C++標(biāo)準(zhǔn)。開發(fā)環(huán)境包括多頁面窗口、工程編輯器以及調(diào)試器等,在工程編輯器中集合了編輯器、編譯器、連接程序和執(zhí)行程序,提供高亮度語法顯示的,以減少編輯錯(cuò)誤,還有完善的調(diào)試功能。3.測(cè)試工具(1)LoadRunnerLoadRunner是一種預(yù)測(cè)系統(tǒng)行為和性能的工業(yè)標(biāo)準(zhǔn)級(jí)負(fù)載測(cè)試工具。通過以模擬上千萬用戶實(shí)施并發(fā)負(fù)載及實(shí)時(shí)性能監(jiān)測(cè)的方式來確認(rèn)和查找問題。它能預(yù)測(cè)系統(tǒng)行為并優(yōu)化系統(tǒng)性能。LoadRunner的測(cè)試對(duì)象是整個(gè)企業(yè)的系統(tǒng),它通過模擬實(shí)際用戶的操作行為實(shí)行實(shí)時(shí)性能監(jiān)測(cè)。(2)WinRnnnerMercuryInteractive公司的WinRunner是一種企業(yè)級(jí)的功能測(cè)試工具,用于檢測(cè)應(yīng)用程序是否能夠達(dá)到預(yù)期的功能及正常運(yùn)行。通過自動(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)用無故障發(fā)布及長(zhǎng)期穩(wěn)定運(yùn)行。(3)SegueSegueSilk產(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è)試能力,能夠通過提供大量的數(shù)據(jù),提供工作流類應(yīng)用的模擬運(yùn)行功能,全面支持UNICODE編碼標(biāo)準(zhǔn),支持各種WEB技術(shù)構(gòu)件。4.配置管理工具(1)MicrosoftVisualSourcesafeMicrosoftVisualSourceSafe是微軟公司出品的版本控制系統(tǒng),簡(jiǎn)稱VSS。軟件支持Windows系統(tǒng)所支持的所有文件格式,通常與微軟公司的VisualStudio產(chǎn)品同時(shí)發(fā)布,并且高度集成。包括服務(wù)器和通過網(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)。它包含了一套完整的軟件配置管理工具而且結(jié)構(gòu)透明、界面可親。5.項(xiàng)目管理工具(1)MicrosoftProjectMicrosoftProject是專案管理軟件程序,由微軟開發(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ì)專案、概觀、和其它資料有不同的訪問級(jí)別。(2)CA-SuperProjectComputerAssociatesInternational公司的CA-SuperProject是一個(gè)常用的軟件,特別是在那些管理公司網(wǎng)絡(luò)的項(xiàng)目管理人員、在Unix或Windows環(huán)境下的工作人員以及需要高性能程序的人中更受歡迎。這個(gè)軟件包能支持多達(dá)160,000多個(gè)任務(wù)的大型項(xiàng)目。能創(chuàng)建及合并多個(gè)項(xiàng)目文件,為網(wǎng)絡(luò)工作者提供多層密碼入口,進(jìn)行計(jì)劃審評(píng)法(PERT)的概率分析。而且,這一程序包含一個(gè)資源平衡算法,在必要時(shí),可以保證重要工作的優(yōu)先性。(3)TimeLineSymantec公司的TimeLine軟件是有經(jīng)驗(yàn)的項(xiàng)目經(jīng)理的首選。它的報(bào)表功能以及與SQL數(shù)據(jù)庫的連接功能都很突出。日程表、電子郵件的功能,排序和篩選能力以及多項(xiàng)目處理都是精心設(shè)計(jì)的。另外,它還有一個(gè)叫做Co-Pilot的功能,這是一個(gè)很有用的推出式幫助設(shè)施,用戶界面很好,極易操作。許多評(píng)論人員認(rèn)為TimeLine最適于大型項(xiàng)目以及多任務(wù)項(xiàng)目,但不如其他軟件包便于初學(xué)者使用。2練習(xí)題什么是項(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è)過程??尚行匝芯堪男┓矫??每個(gè)方面關(guā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)對(duì)組織目標(biāo)具有怎樣的貢獻(xiàn);新系統(tǒng)對(duì)目前的部門和組織結(jié)構(gòu)有何影響;系統(tǒng)將以何種方式影響人力水平和現(xiàn)存雇員的技術(shù);它對(duì)組織整個(gè)人員開發(fā)策略有何影響等等。操作可行性研究主要考慮系統(tǒng)是否能夠真正解決問題;是否系統(tǒng)一旦安裝后,有足夠的人力資源來運(yùn)行系統(tǒng);用戶對(duì)新系統(tǒng)具有抵觸情緒是否可能使操作不可行;人員的可行性等問題。計(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)目涉及者的利益;是否滿足法律或合同的要求等。市場(chǎng)可行性研究主要包括研究市場(chǎng)發(fā)展歷史與發(fā)展趨勢(shì),說明本產(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í)施過程中可能遇到的各種風(fēng)險(xiǎn)因素,以及每種風(fēng)險(xiǎn)因素可能出現(xiàn)的概率和出險(xiǎn)后造成的影響程度。進(jìn)行可行性研究的一般步驟是什么?明確系統(tǒng)的目標(biāo)分析研究現(xiàn)行系統(tǒng)設(shè)計(jì)新系統(tǒng)的高層邏輯模型獲得并比較可行的方案撰寫可行性研究報(bào)告需求分析和可行性研究的側(cè)重點(diǎn)有什么不同?可行性研究的目的是評(píng)估系統(tǒng)是否值得去開發(fā),問題是否能夠解決,而不是對(duì)需求進(jìn)行定義。如果說可行性分析是要決定“做還是不做”,那么需求分析就是要回答“系統(tǒng)必須做什么”這個(gè)問題。獲取需求的常用方法有哪些?問卷調(diào)查、訪談、實(shí)地操作、建立原型如何進(jìn)行結(jié)構(gòu)化需求分析,其建模方法都有哪些?結(jié)構(gòu)化分析的具體步驟為:建立當(dāng)前系統(tǒng)的“具體模型”:系統(tǒng)的“具體模型”就是現(xiàn)實(shí)環(huán)境的忠實(shí)寫照,這樣的表達(dá)與當(dāng)前系統(tǒng)完全對(duì)應(yīng),因此用戶容易理解。抽象出當(dāng)前系統(tǒng)的邏輯模型:分析系統(tǒng)的“具體模型”,抽象出其本質(zhì)的因素,排除次要因素,獲得當(dāng)前系統(tǒng)的“邏輯模型”。建立目標(biāo)系統(tǒng)的邏輯模型:分析目標(biāo)系統(tǒng)與當(dāng)前系統(tǒng)邏輯上的差別,從而進(jìn)一步明確目標(biāo)系統(tǒng)“做什么”,建立目標(biāo)系統(tǒng)的“邏輯模型”。為了對(duì)目標(biāo)系統(tǒng)進(jìn)行完整的描述,還需要考慮人機(jī)界面和其他一些問題。在結(jié)構(gòu)化分析中經(jīng)常用到的建模方法主要有:數(shù)據(jù)流圖(DFD)實(shí)體聯(lián)系圖(E-R)控制流圖(CFD)狀態(tài)遷移圖(STD)根據(jù)“學(xué)生檔案管理系統(tǒng)”的數(shù)據(jù)流圖,完成它的數(shù)據(jù)字典。數(shù)據(jù)流名稱:資料別名:學(xué)生資料組成:學(xué)號(hào)+姓名+性別+年齡+學(xué)院+年級(jí)+專業(yè)有如下一個(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ù)流圖。3練習(xí)題軟件設(shè)計(jì)的意義和目標(biāo)是什么?軟件設(shè)計(jì)在軟件開發(fā)過程中處于核心地位,它是保證質(zhì)量的關(guān)鍵步驟。設(shè)計(jì)為我們提供了可以用于質(zhì)量評(píng)估的軟件表示,設(shè)計(jì)是我們能夠?qū)⒂脩粜枨鬁?zhǔn)確的轉(zhuǎn)化為軟件產(chǎn)品或系統(tǒng)的唯一方法。軟件設(shè)計(jì)是所有軟件工程活動(dòng)和隨后的軟件支持活動(dòng)的基礎(chǔ)。在軟件設(shè)計(jì)的過程中要遵循哪些規(guī)則?模塊化抽象化逐步求精信息隱藏軟件設(shè)計(jì)如何分類,分別有哪些活動(dòng)?從活動(dòng)任務(wù)來看,軟件設(shè)計(jì)是對(duì)軟件需求進(jìn)行:數(shù)據(jù)設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)、接口設(shè)計(jì)、構(gòu)件設(shè)計(jì)和部署設(shè)計(jì)。從工程管理角度來看,軟件設(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é)。什么是軟件體系結(jié)構(gòu),什么是軟件體系結(jié)構(gòu)風(fēng)格?體系結(jié)構(gòu)是研究系統(tǒng)各部分組成及相互關(guān)系的技術(shù)學(xué)科。軟件體系結(jié)構(gòu)不僅指定了系統(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)組織方式的慣用模式。軟件體系結(jié)構(gòu)風(fēng)格反映了領(lǐng)域中眾多系統(tǒng)所共有的結(jié)構(gòu)和語義特性,并指導(dǎo)如何將各個(gè)模塊和子系統(tǒng)有效地組織成一個(gè)完整的系統(tǒng)。軟件體系結(jié)構(gòu)風(fēng)格定義了用于描述系統(tǒng)的術(shù)語表和一組指導(dǎo)構(gòu)件系統(tǒng)的規(guī)則。常見的軟件體系結(jié)構(gòu)風(fēng)格有哪些,如何分類?1數(shù)據(jù)流風(fēng)格:數(shù)據(jù)到達(dá)即被激活處理工作,無數(shù)據(jù)時(shí)不工作。2調(diào)用/返回風(fēng)格:各個(gè)組件通過調(diào)用其它組件和獲得返回參數(shù)來進(jìn)行交互,配合完成功能。3獨(dú)立構(gòu)件風(fēng)格:這種風(fēng)格的主要特點(diǎn)是:事件的觸發(fā)者并不知道哪些構(gòu)件會(huì)被這些事件影響,相互保持獨(dú)立這樣不能假定構(gòu)件的處理順序,甚至不知道哪些過程會(huì)被調(diào)用;各個(gè)構(gòu)件之間彼此無連接關(guān)系,各自獨(dú)立存在,通過對(duì)事件的發(fā)布和注冊(cè)實(shí)現(xiàn)關(guān)聯(lián)包括進(jìn)程通訊、事件系統(tǒng)。4虛擬機(jī)風(fēng)格:它創(chuàng)建了一種虛擬的環(huán)境,將用戶與底層平臺(tái)隔離開來,或者將高層抽象和底層實(shí)現(xiàn)隔離開來。5倉庫風(fēng)格:倉庫是存儲(chǔ)和維護(hù)數(shù)據(jù)的中心場(chǎng)所。在倉庫風(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ù)庫系統(tǒng)、超文本系統(tǒng)、黑板系統(tǒng)。面向數(shù)據(jù)流的設(shè)計(jì)方法的主要思想是什么?面向數(shù)據(jù)流的設(shè)計(jì)方法就是通常所說的結(jié)構(gòu)化設(shè)計(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)。什么是內(nèi)聚、耦合,包括哪些常見類型??jī)?nèi)聚指的是一個(gè)模塊內(nèi)部各組成部分的處理動(dòng)作的組合強(qiáng)度,又稱塊內(nèi)聯(lián)系。包括幾種內(nèi)聚類型:偶然內(nèi)聚:模塊內(nèi)各成分無實(shí)質(zhì)性的聯(lián)系,只是偶然地被湊到一起;邏輯內(nèi)聚:模塊內(nèi)部各組成部分的處理動(dòng)作在邏輯上相似,但功能卻彼此不同或無關(guān);時(shí)間內(nèi)聚:將若干在同一個(gè)時(shí)間帶內(nèi)進(jìn)行的工作集中在一個(gè)模塊內(nèi),但這些工作彼此無關(guān);過程內(nèi)聚:模塊內(nèi)部包含的各個(gè)成分按照某種確定的順序進(jìn)行,但所做工作沒有什么關(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ù)信息,而是控制信息,或稱開關(guān)量或標(biāo)志量;外部耦合:允許多個(gè)模塊訪問同一個(gè)全局變量;公共耦合:允許多個(gè)模塊訪問同一個(gè)全局性數(shù)據(jù)結(jié)構(gòu);內(nèi)容耦合:允許一個(gè)模塊直接調(diào)用另一個(gè)模塊中的數(shù)據(jù)。詳細(xì)設(shè)計(jì)時(shí),應(yīng)該完成哪些工作?軟件詳細(xì)設(shè)計(jì)包括數(shù)據(jù)設(shè)計(jì)、界面設(shè)計(jì)和構(gòu)件設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)有哪些步驟,每一步的主要工作是什么?需求分析;調(diào)查和分析用戶的業(yè)務(wù)活動(dòng)和數(shù)據(jù)的使用情況,弄清所用數(shù)據(jù)的種類、范圍、數(shù)量以及它們?cè)跇I(yè)務(wù)活動(dòng)中交流的情況,確定用戶對(duì)數(shù)據(jù)庫系統(tǒng)的使用要求和各種約束條件等,形成用戶需求規(guī)約。概念設(shè)計(jì);對(duì)用戶要求描述的現(xiàn)實(shí)世界(可能是一個(gè)工廠、一個(gè)商場(chǎng)或者一個(gè)學(xué)校等),通過對(duì)其中住處的分類、聚集和概括,建立抽象的概念數(shù)據(jù)模型。這個(gè)概念模型應(yīng)反映現(xiàn)實(shí)世界各部門的信息結(jié)構(gòu)、信息流動(dòng)情況、信息間的互相制約關(guān)系以及各部門對(duì)信息儲(chǔ)存、查詢和加工的要求等。所建立的模型應(yīng)避開數(shù)據(jù)庫在計(jì)算機(jī)上的具體實(shí)現(xiàn)細(xì)節(jié),用一種抽象的形式表示出來。以擴(kuò)充的實(shí)體—聯(lián)系模型(E-R模型)方法為例,第一步先明確現(xiàn)實(shí)世界各部門所含的各種實(shí)體及其屬性、實(shí)體間的聯(lián)系以及對(duì)信息的制約條件等,從而給出各部門內(nèi)所用信息的局部描述(在數(shù)據(jù)庫中稱為用戶的局部視圖)。第二步再將前面得到的多個(gè)用戶的局部視圖集成為一個(gè)全局視圖,即用戶要描述的現(xiàn)實(shí)世界的概念數(shù)據(jù)模型。邏輯設(shè)計(jì);主要工作是將現(xiàn)實(shí)世界的概念數(shù)據(jù)模型設(shè)計(jì)成數(shù)據(jù)庫的一種邏輯模式,即適應(yīng)于某種特定數(shù)據(jù)庫管理系統(tǒng)所支持的邏輯數(shù)據(jù)模式。與此同時(shí),可能還需為各種數(shù)據(jù)處理應(yīng)用領(lǐng)域產(chǎn)生相應(yīng)的邏輯子模式。這一步設(shè)計(jì)的結(jié)果就是所謂“邏輯數(shù)據(jù)庫”。物理設(shè)計(jì);根據(jù)特定數(shù)據(jù)庫管理系統(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ù)庫”。驗(yàn)證設(shè)計(jì);在上述設(shè)計(jì)的基礎(chǔ)上,收集數(shù)據(jù)并具體建立一個(gè)數(shù)據(jù)庫,運(yùn)行一些典型的應(yīng)用任務(wù)來驗(yàn)證數(shù)據(jù)庫設(shè)計(jì)的正確性和合理性。一般,一個(gè)大型數(shù)據(jù)庫的設(shè)計(jì)過程往往需要經(jīng)過多次循環(huán)反復(fù)。當(dāng)設(shè)計(jì)的某步發(fā)現(xiàn)問題時(shí),可能就需要返回到前面去進(jìn)行修改。因此,在做上述數(shù)據(jù)庫設(shè)計(jì)時(shí)就應(yīng)考慮到今后修改設(shè)計(jì)的可能性和方便性。如何進(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)系表示。界面設(shè)計(jì)應(yīng)該遵循什么原則?置用戶于控制之下:以不強(qiáng)迫用戶進(jìn)入不必要的或不希望的動(dòng)作的方式來定義交互模式;提供靈活的交互;允許用戶交互可以被中斷和撤銷;當(dāng)技能級(jí)別增長(zhǎng)時(shí)可以使交互流水化并允許定制交互;使用戶隔離內(nèi)部技術(shù)細(xì)節(jié);設(shè)計(jì)應(yīng)允許用戶和出現(xiàn)在屏幕上的對(duì)象直接交互。減少用戶的記憶負(fù)擔(dān):減少對(duì)短期記憶的要求;建立有意義的缺省;定義直覺性的捷徑;界面的視覺布局應(yīng)該基于真實(shí)世界的隱喻;以不斷進(jìn)展的方式揭示信息。保持界面一致:允許用戶將當(dāng)前任務(wù)放入有意義的語境;在應(yīng)用系列內(nèi)保持一致性;如果過去的交互模式已經(jīng)建立起了用戶期望,不要改變它,除非有不得已的理由。構(gòu)件設(shè)計(jì)有哪些設(shè)計(jì)工具?流程圖、N-S圖、PAD圖、決策表與決策樹、偽代碼利用Visio實(shí)現(xiàn)3.5。4練習(xí)題程序設(shè)計(jì)語言的發(fā)展經(jīng)歷了哪幾個(gè)階段?每個(gè)階段語言的特點(diǎn)是什么?機(jī)器語言是計(jì)算機(jī)可以直接識(shí)別、執(zhí)行的指令代碼,它是計(jì)算機(jī)發(fā)展早期的語言。由于機(jī)器指令直接操縱計(jì)算機(jī)硬件的執(zhí)行,所以不同結(jié)構(gòu)的計(jì)算機(jī)有不同的機(jī)器語言。用機(jī)器語言編碼時(shí)必須考慮到機(jī)器的實(shí)現(xiàn)細(xì)節(jié),所以它的編程效率極低,而且很難掌握。匯編語言用一組助記符來代替機(jī)器語言中晦澀、難懂的二進(jìn)制代碼,使得代碼比較直觀,易于程序員理解。在執(zhí)行時(shí),匯編語言必須由特定的翻譯程序轉(zhuǎn)化為機(jī)器語言,才能由計(jì)算機(jī)執(zhí)行。可以說,每種匯編語言都是支持這種語言的計(jì)算機(jī)獨(dú)有的,所以它與機(jī)器語言一樣都是“面向機(jī)器”的低級(jí)語言。由于匯編語言的抽象層次太低,所以程序員在使用時(shí)需要考慮大量的機(jī)器細(xì)節(jié)。高級(jí)語言出現(xiàn)于20世紀(jì)50年代,它不僅在語義上更易于程序員理解,而且在實(shí)現(xiàn)上也不再依賴于特定的計(jì)算機(jī)硬件。它為程序員的編碼工作提供了方便,同時(shí)大大提高了軟件的生產(chǎn)效率。第四代語言是超高級(jí)語言,它是對(duì)數(shù)據(jù)處理和過程描述的更高級(jí)的抽象,一般由特定的知識(shí)庫和方法庫支持,比如與數(shù)據(jù)庫應(yīng)用相關(guān)的查詢語言,描述數(shù)據(jù)結(jié)構(gòu)和處理過程的圖形語言等,它們的目的在于直接實(shí)現(xiàn)各種應(yīng)用系統(tǒng)。面向?qū)ο蟮母呒?jí)語言中包含哪些基本概念?封裝、繼承、多態(tài)3) 你了解的程序設(shè)計(jì)語言都有哪些?(1)Fortran語言Fortran語言出現(xiàn)于1954年,是世界上最早的高級(jí)語言,廣泛應(yīng)用于科學(xué)和工程計(jì)算領(lǐng)域。Fortran語言以其特有的功能在數(shù)值、科學(xué)和工程計(jì)算領(lǐng)域發(fā)揮著重要作用。(2)Pascal語言Pascal語言是最早的結(jié)構(gòu)化編程語言,常用于算法和數(shù)據(jù)結(jié)構(gòu)的描述。用Pascal編寫的程序有一種結(jié)構(gòu)化的美感,學(xué)習(xí)Pascal語言有助于培養(yǎng)良好的程序設(shè)計(jì)風(fēng)格和編程習(xí)慣。(3)Basic語言Basic相對(duì)于其他編程語言來說簡(jiǎn)單易用,并具有“人機(jī)會(huì)話”功能,是一種比較適合于初學(xué)者和愛好編程的非專業(yè)人士的語言。但是其簡(jiǎn)單與隨意的特性也容易讓使用者養(yǎng)成不好的編程習(xí)慣。(4)Cobol語言Cobol語言是最接近于自然語言的高級(jí)語言之一,它使用了300多個(gè)英文保留字,語法規(guī)則嚴(yán)格,程序通俗易懂,是一種功能很強(qiáng)而又極為冗長(zhǎng)的語言。常用于商業(yè)數(shù)據(jù)處理等領(lǐng)域。(5)C語言C語言兼顧高級(jí)語言和匯編語言的特點(diǎn),靈活性很好,效率高,常用來開發(fā)比較底層的軟件。例如,Linux操作系統(tǒng)就是用C語言編寫的。要充分掌握該語言需要一定的計(jì)算機(jī)基礎(chǔ)和編程經(jīng)驗(yàn),所以雖然現(xiàn)在很多高校選擇C語言作為入門編程語言,但它并不十分適合初學(xué)者。(6)C++語言C++語言在C語言的基礎(chǔ)上加入了面向?qū)ο蟮奶匦裕戎С纸Y(jié)構(gòu)化編程又支持面向?qū)ο缶幊淌蛊鋺?yīng)用領(lǐng)域十分廣泛,是現(xiàn)在使用較多的語言之一。(7)Java語言Java語言是現(xiàn)在非常流行的一種編程語言,具有平臺(tái)無關(guān)性、安全性、面向?qū)ο?、分布式、健壯性等特點(diǎn)。Java分為3個(gè)體系JavaSE、JavaEE和JavaME,適合企業(yè)應(yīng)用程序和各種網(wǎng)絡(luò)程序的開發(fā)。(8)Delphi語言Delphi語言以Pascal語言為基礎(chǔ),擴(kuò)充了面向?qū)ο蟮哪芰?,并加入了可視化的開發(fā)手段,用于開發(fā)Windows環(huán)境下的應(yīng)用程序。(9)C#語言C#語言是微軟公司發(fā)布的一種面向?qū)ο蟮?、運(yùn)行于.NETFramework之上的高級(jí)程序設(shè)計(jì)語言,它充分借鑒了C++、Java和Delphi的優(yōu)點(diǎn),是現(xiàn)在微軟.NETWindows網(wǎng)絡(luò)框架的主角。(10)標(biāo)記語言標(biāo)記語言主要用來描述網(wǎng)頁的數(shù)據(jù)和格式,沒有傳統(tǒng)編程語言提供的控制結(jié)構(gòu)和復(fù)雜的數(shù)據(jù)結(jié)構(gòu)定義。例如,超文本標(biāo)記語言(HTML)和可擴(kuò)展標(biāo)記語言(XML)。(11)腳本語言腳本語言是可以被另一種語言解釋執(zhí)行的語言。腳本語言假設(shè)已經(jīng)存在了一系列由其他語言寫成的有用的組件,它不是為了實(shí)現(xiàn)最原始的應(yīng)用,而主要是把組件連接在一起,實(shí)現(xiàn)某一特定領(lǐng)域功能。例如,Shell、Perl、JSP等。這種領(lǐng)域?qū)I(yè)語言的應(yīng)用是未來編程的發(fā)展方向之一。要形成良好的編碼風(fēng)格可以從哪些方面做起?版權(quán)和版本聲明程序版式注釋命名規(guī)則數(shù)據(jù)說明代碼構(gòu)造輸入輸出效率使用MicrosoftVisualStudio2010和C#對(duì)求兩個(gè)整數(shù)的最大公約數(shù)進(jìn)行編程。usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceGreatestCommonDivisor{classProgram{//輾轉(zhuǎn)相除法publicstaticintcalculate(intx,inty){if(x<y){returncalculate1(y,x);}returncalculate1(x,y);}//xisnolessthanyprivatestaticintcalculate1(intx,inty){if(x%y!=0){returncalculate1(y,x%y);}returny;}}}5練習(xí)題軟件測(cè)試的原則有哪些?完全測(cè)試是不可能的。測(cè)試中有風(fēng)險(xiǎn)存在。軟件測(cè)試只能表明缺陷的存在,而不能證明產(chǎn)品已經(jīng)沒有缺陷。軟件產(chǎn)品中所存在的錯(cuò)誤數(shù)與已發(fā)現(xiàn)的錯(cuò)誤數(shù)成正比。要避免軟件測(cè)試的殺蟲劑現(xiàn)象。在設(shè)計(jì)測(cè)試用例時(shí),應(yīng)包括輸入數(shù)據(jù)和預(yù)期的輸出結(jié)果兩個(gè)部分,并且,輸入數(shù)據(jù)不僅應(yīng)該包括合法的情況,還應(yīng)該包括非法的輸入情況。要集中測(cè)試容易出錯(cuò)或錯(cuò)誤較多的模塊。應(yīng)該長(zhǎng)期保留所有的測(cè)試用例。使開發(fā)人員和測(cè)試人員分立,即軟件的開發(fā)工作和測(cè)試工作不能由同一部分人來完成。測(cè)試工作應(yīng)該盡早開始,并且貫穿于整個(gè)開發(fā)過程中。比較軟件測(cè)試的V模型和W模型。V模型中,描述了基本的開發(fā)過程和測(cè)試行為。它的價(jià)值在于非常明確地標(biāo)明了測(cè)試過程中存在的不同級(jí)別,并且清楚地描述了這些測(cè)試階段和開發(fā)過程期間各階段的對(duì)應(yīng)關(guān)系。在V模型的基礎(chǔ)上,增加開發(fā)階段的同步測(cè)試,就是W模型。在W模型中測(cè)試與開發(fā)同步進(jìn)行,這樣有利于盡早地發(fā)現(xiàn)問題。軟件測(cè)試的步驟,和每一步驟中需要進(jìn)行的活動(dòng)是什么?測(cè)試工作按5個(gè)步驟進(jìn)行,即單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試、系統(tǒng)測(cè)試和驗(yàn)收測(cè)試。單元測(cè)試又稱模塊測(cè)試,是針對(duì)軟件設(shè)計(jì)的最小單位進(jìn)行正確性檢驗(yàn)的測(cè)試工作。目的是檢查每個(gè)程序單元能夠正確實(shí)現(xiàn)詳細(xì)設(shè)計(jì)說明中的模塊功能、性能、接口和設(shè)計(jì)約束等要求,發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種錯(cuò)誤。單元測(cè)試需要從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計(jì)測(cè)試用例。多個(gè)模塊可以平行的獨(dú)立進(jìn)行單元測(cè)試。集成測(cè)試也叫組裝測(cè)試,通常在單元測(cè)試的基礎(chǔ)上,將所有程序模塊進(jìn)行有序的、遞增的測(cè)試。目的是檢驗(yàn)程序單元或部件的接口關(guān)系,逐步集成為符合概要設(shè)計(jì)要求的程序部件或整個(gè)系統(tǒng)。集成測(cè)試有自頂向下和自底向上兩種方式。確認(rèn)測(cè)試是檢查已實(shí)現(xiàn)的軟件是否滿足了需求規(guī)格說明書中確定了的各種需求,以及軟件配置是否完全、正確。系統(tǒng)測(cè)試把已經(jīng)經(jīng)過確認(rèn)的軟件納入實(shí)際運(yùn)行環(huán)境中,與其他系統(tǒng)成分組合在一起進(jìn)行測(cè)試。驗(yàn)收測(cè)試由用戶參與,對(duì)系統(tǒng)做交付使用前的驗(yàn)收。分為α測(cè)試和β測(cè)試。α測(cè)試指的是由用戶、測(cè)試人員、開發(fā)人員等共同參與的內(nèi)部測(cè)試,而β測(cè)試指的是完全交給最終用戶的測(cè)試。利用等價(jià)類劃分技術(shù)為下面的NextDate問題設(shè)計(jì)測(cè)試用例:輸入三個(gè)變量(年、月、日),函數(shù)返回輸入日期后面的那個(gè)日期。1≤月份≤121≤日期≤311812≤年≤2012等價(jià)類劃分表輸入及外部條件有效等價(jià)類等價(jià)類編號(hào)無效等價(jià)類等價(jià)類編號(hào)日期的類型數(shù)字字符1非數(shù)字字符8年在1812與2012之間2小于18129大于201210月在1與12之間3小于111大于1212非閏年的2月日在1與28之間4日小于113日大于2814閏年的2月日在1與29之間5日小于115日大于2916月份為1月、3月、5月、7月、8月、10月、12月日在1與31之間6日小于117日大于3118月份為4月、6月、9月、11月日在1與31之間6日小于119日大于3020有效等價(jià)類的測(cè)試用例序號(hào)輸入數(shù)據(jù)預(yù)期輸出覆蓋范圍(等價(jià)類編號(hào))年月日年月日1200331520033161,2,3,62200422820042291,2,3,531999231999241,2,3,44197092919709301,2,3,7無效等價(jià)類的測(cè)試用例序號(hào)輸入數(shù)據(jù)預(yù)期輸出覆蓋范圍(等價(jià)類編號(hào))年月日年月日1xy59輸入無效82170048輸入無效932300111輸入無效1042005011輸入無效11520091425輸入無效12619892-1輸入無效1371977230輸入無效14820002-2輸入無效1592008234輸入無效16101956100輸入無入無效181220079-3輸入無效191318661235輸入無效20利用基本路徑測(cè)試技術(shù)為以下一段程序設(shè)計(jì)測(cè)試用例:while(a>0){ a=a–1; if(b<0||c>=1) { c=c–b;}else c=c+b;}a=b+c;設(shè)計(jì)測(cè)試用例:輸入數(shù)據(jù)a=0b=3c=3;預(yù)期結(jié)果a=6b=3c=3輸入數(shù)據(jù)a=1b=3c=3;預(yù)期結(jié)果a=3b=3c=0輸入數(shù)據(jù)a=1b=3c=0;預(yù)期結(jié)果a=6b=3c=3舉例說明軟件維護(hù)的副作用。軟件維護(hù)是存在風(fēng)險(xiǎn)的。對(duì)原有軟件產(chǎn)品的一個(gè)微小的改動(dòng)都有可能引入新的錯(cuò)誤,產(chǎn)生意想不到的后果。軟件維護(hù)的副作用主要有三類,包括修改代碼的副作用、修改數(shù)據(jù)的副作用和修改文檔的副作用。7)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的求和函數(shù),并用VisualStudio2010的Unittest工具對(duì)該函數(shù)進(jìn)行測(cè)試。usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceSum{classArithmetic{publicintsum(inta,intb){returna+b;}}}usingSum;usingMicrosoft.VisualStudio.TestTools.UnitTesting;namespaceTestProject1{///<summary>///這是ArithmeticTest的測(cè)試類,旨在///包含所有ArithmeticTest單元測(cè)試///</summary>[TestClass()]publicclassArithmeticTest{privateTestContexttestContextInstance;///<summary>///獲取或設(shè)置測(cè)試上下文,上下文提供///有關(guān)當(dāng)前測(cè)試運(yùn)行及其功能的信息。///</summary>publicTestContextTestContext{get{returntestContextInstance;}set{testContextInstance=value;}}#region附加測(cè)試屬性////編寫測(cè)試時(shí),還可使用以下屬性:////使用ClassInitialize在運(yùn)行類中的第一個(gè)測(cè)試前先運(yùn)行代碼//[ClassInitialize()]//publicstaticvoidMyClassInitialize(TestContexttestContext)//{//}////使用ClassCleanup在運(yùn)行完類中的所有測(cè)試后再運(yùn)行代碼//[ClassCleanup()]//publicstaticvoidMyClassCleanup()//{//}////使用TestInitialize在運(yùn)行每個(gè)測(cè)試前先運(yùn)行代碼//[TestInitialize()]//publicvoidMyTestInitialize()//{//}////使用TestCleanup在運(yùn)行完每個(gè)測(cè)試后運(yùn)行代碼//[TestCleanup()]//publicvoidMyTestCleanup()//{//}//#endregion///<summary>///sum的測(cè)試///</summary>[TestMethod()]publicvoidsumTest(){Arithmetictarget=newArithmetic();//TODO:初始化為適當(dāng)?shù)闹礽nta=50;//TODO:初始化為適當(dāng)?shù)闹礽ntb=98;//TODO:初始化為適當(dāng)?shù)闹礽ntexpected=148;//TODO:初始化為適當(dāng)?shù)闹礽ntactual;actual=target.sum(a,b);Assert.AreEqual(expected,actual);//Assert.Inconclusive("驗(yàn)證此測(cè)試方法的正確性。");}///<summary>///Arithmetic構(gòu)造函數(shù)的測(cè)試///</summary>[TestMethod()]publicvoidArithmeticConstructorTest(){Arithmetictarget=newArithmetic();//Assert.Inconclusive("TODO:實(shí)現(xiàn)用來驗(yàn)證目標(biāo)的代碼");}}}6練習(xí)題面向?qū)ο蟮乃枷胗心男┗靖拍睿棵嫦驅(qū)ο螅喊慈藗冋J(rèn)識(shí)客觀世界的系統(tǒng)思維方式,采用基于對(duì)象的概念建立模型,模擬客觀世界分析、設(shè)計(jì)、實(shí)現(xiàn)軟件的辦法。通過面向?qū)ο蟮睦砟钍褂?jì)算機(jī)軟件系統(tǒng)能與現(xiàn)實(shí)世界中的系統(tǒng)一一對(duì)應(yīng)。對(duì)象:即指現(xiàn)實(shí)世界中各種各樣的實(shí)體。它可以指具體的事物也可以指抽象的事物。在面向?qū)ο蟾拍钪形覀儼褜?duì)象的內(nèi)部狀態(tài)稱為屬性,把運(yùn)動(dòng)規(guī)律稱為方法或事件。如某架載客飛機(jī)作為一個(gè)具體事物,是一個(gè)對(duì)象。它的屬性包括型號(hào)、運(yùn)營(yíng)公司、座位數(shù)量、航線、起飛時(shí)間、飛行狀態(tài)等,而它的行為包括整修、滑跑、起飛、飛行、降落等。類:類是具有相似內(nèi)部狀態(tài)和運(yùn)動(dòng)規(guī)律的實(shí)體的集合。類的概念來自于人們認(rèn)識(shí)自然、認(rèn)識(shí)社會(huì)的過程。在這一程中,人們主要使用兩種方法:由特殊到一般的歸納法和由一般到特殊的演繹法。在歸納的過程中,我們從一個(gè)個(gè)具體的事物中把共同的特征抽取出來,形成一個(gè)一般的概念,這就是“歸類”;在演繹的過程中我們又把同類的事物,根據(jù)不同的特征分成不同的小類,這就是“分類”;對(duì)于一個(gè)具體的類,它有許多具體的個(gè)體,我們就管這些個(gè)體叫做“對(duì)象”。類的內(nèi)部狀態(tài)是指類集合中對(duì)象的共同狀態(tài);類的運(yùn)動(dòng)規(guī)律是指類集合中對(duì)象的共同運(yùn)動(dòng)規(guī)律。如所有的飛機(jī)可以歸納成一個(gè)類,它們共同的屬性包括型號(hào),飛行狀態(tài)等,它們共同的行為包括起飛、飛行、降落等。消息:消息是指對(duì)象間相互聯(lián)系和相互作用的方式。一個(gè)消息主要由5部分組成:發(fā)送消息的對(duì)象、接收消息的對(duì)象、消息傳遞辦法、消息內(nèi)容、反饋。包:現(xiàn)實(shí)世界中不同對(duì)象間的相互聯(lián)系和相互作用構(gòu)成了各種不同的系統(tǒng),不同系統(tǒng)間的相互聯(lián)系和相互作用構(gòu)成了更龐大的系統(tǒng),進(jìn)而構(gòu)成了整個(gè)世界。在面向?qū)ο蟾拍钪邪堰@些系統(tǒng)稱為包。包的接口類:在系統(tǒng)間相互作用時(shí)為了蘊(yùn)藏系統(tǒng)內(nèi)部的具體實(shí)現(xiàn),系統(tǒng)通過設(shè)立接口界面類或?qū)ο髞砼c其他系統(tǒng)進(jìn)行交互;讓其他系統(tǒng)只看到是這個(gè)接口界面類或?qū)ο螅@個(gè)類在面向?qū)ο笾蟹Q為接口類。與傳統(tǒng)的軟件工程方法相比,面向?qū)ο蟮能浖こ谭椒ㄓ心男﹥?yōu)點(diǎn)?符合人類的思維習(xí)慣。面向?qū)ο蟮能浖こ谭椒ㄗ钪匾奶攸c(diǎn)就是把事物的屬性和操作組成一個(gè)整體,以對(duì)象為核心,更符合人類的思維習(xí)慣。此外,它更加注重人類在認(rèn)識(shí)客觀世界時(shí)循序漸進(jìn),逐步深化的特點(diǎn)。主張?jiān)谲浖_發(fā)的過程中多次反復(fù)迭代的思想??蓮?fù)用性好。由于采用了面向?qū)ο蟮能浖こ谭椒ɑ趯?duì)象的概念。當(dāng)目標(biāo)系統(tǒng)的需求發(fā)生變化時(shí),只要實(shí)體及實(shí)體之間的聯(lián)系不發(fā)生變化,就不會(huì)引起軟件系統(tǒng)結(jié)構(gòu)的變化,而只需要對(duì)部分對(duì)象進(jìn)行局部修改。可維護(hù)性好。由于利用面向?qū)ο筌浖こ谭椒ㄩ_發(fā)的軟件系統(tǒng)穩(wěn)定性好和可復(fù)用性好,而且采用了封裝和信息隱藏機(jī)制,易于對(duì)局部軟件進(jìn)行調(diào)整,所以系統(tǒng)的可維護(hù)性比較好。UML的作用和優(yōu)點(diǎn)是什么?UML(UnifiedModelingLanguage)是一種標(biāo)準(zhǔn)的圖形化建模語言,它是面向?qū)ο蠓治雠c設(shè)計(jì)的一種標(biāo)準(zhǔn)表示。它不是一種可視化的程序設(shè)計(jì)語言,而是一種可視化的建模語言;它不是工具或知識(shí)庫的規(guī)格說明,而是一種建模語言規(guī)格說明,是一種表示的標(biāo)準(zhǔn);它不是過程,也不是方法,但允許任何一種過程和方法使用它。優(yōu)點(diǎn):更好的表現(xiàn)同一事物的不同方面,采用不同的視圖,每個(gè)視圖從一個(gè)角度看待和描述問題。UML有多少類圖,分別有什么作用?在UML中,共定義了13種圖用來對(duì)不同的方面進(jìn)行建模和描述,其中包括6種靜態(tài)圖和7種動(dòng)態(tài)圖。靜態(tài)圖用來描述系統(tǒng)結(jié)構(gòu),包括類圖、對(duì)象圖、構(gòu)件圖、部署圖、包圖和組合結(jié)構(gòu)圖。類圖描述類、接口、協(xié)作以及之間的關(guān)系;對(duì)象圖描述對(duì)象以及對(duì)象之間的關(guān)系;包圖描述包以及其相互依賴關(guān)系;組合結(jié)構(gòu)圖描述系統(tǒng)某一部分(組合結(jié)構(gòu))的內(nèi)部結(jié)構(gòu);構(gòu)件圖描述構(gòu)件及其相互依賴關(guān)系;部署圖描述構(gòu)件在各節(jié)點(diǎn)上的部署。動(dòng)態(tài)圖用來描述系統(tǒng)行為,包括順序圖、通信圖、計(jì)時(shí)圖、交互縱覽圖、活動(dòng)圖、狀態(tài)機(jī)圖和用例圖。用例圖描述一組用例、執(zhí)行者以及相互關(guān)系;順序圖是強(qiáng)調(diào)消息執(zhí)行順序的交互圖;通信圖是強(qiáng)調(diào)對(duì)象協(xié)作的交互圖;計(jì)時(shí)圖是強(qiáng)調(diào)真實(shí)時(shí)間信息的交互圖;交互縱覽圖展示交互圖之間的執(zhí)行順序;活動(dòng)圖描述事物執(zhí)行的控制流或數(shù)據(jù)流;狀態(tài)機(jī)圖描述對(duì)象所經(jīng)歷的狀態(tài)轉(zhuǎn)移。用Rose繪制“學(xué)生檔案管理系統(tǒng)”的底層用例圖。用Rose繪制除“登錄系統(tǒng)”用例以外的其他用例的順序圖。打印學(xué)生檔案信息順序圖7) 用Rose繪制除“增加學(xué)生檔案信息
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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年廣西投資集團(tuán)北海發(fā)電有限公司招聘筆試參考題庫含答案解析
- 河北省秦皇島撫寧區(qū)臺(tái)營(yíng)學(xué)區(qū)2025屆中考生物猜題卷含解析
- 遼寧省鐵嶺市昌圖縣達(dá)標(biāo)名校2025屆中考化學(xué)模擬試卷含解析
- 2025年中國(guó)人壽財(cái)險(xiǎn)臨夏州中心支公司招聘筆試參考題庫含答案解析
- 2025年貴州畢節(jié)泰信融資擔(dān)保有限公司招聘筆試參考題庫含答案解析
- 2025年山東宏豐海洋石油裝備有限公司招聘筆試參考題庫含答案解析
- 2025屆廣東省東莞市東方明珠中學(xué)中考生物適應(yīng)性模擬試題含解析
- 廣東省揭陽市惠來縣2025屆中考生物模擬試卷含解析
- 短期場(chǎng)地租賃合同草案
- 消防基礎(chǔ)知識(shí)培訓(xùn)課件
- 慢性阻塞性肺病的用藥指導(dǎo)
- 建設(shè)工程檔案預(yù)驗(yàn)收申請(qǐng)表
- GB/T 41000-2021聚碳酸酯(PC)飲水罐質(zhì)量通則
- 馬工程《刑法學(xué)(下冊(cè))》教學(xué)課件 第20章 侵犯公民人身權(quán)利、民主權(quán)利罪
- GB/T 2885.5-2008礦用窄軌車輛第5部分:平板車
- 抖音平臺(tái)單門店認(rèn)領(lǐng)授權(quán)書
- 《中國(guó)的機(jī)遇與挑戰(zhàn)》教案
- 2023年湖北師范學(xué)院專升本C語言程序設(shè)計(jì)試卷
- 泵車零件圖冊(cè)-50米總
- GA/T 1788.4-2021公安視頻圖像信息系統(tǒng)安全技術(shù)要求第4部分:安全管理平臺(tái)
- 2023年高考全國(guó)卷新課標(biāo)2理綜試題及答案(word版)1
評(píng)論
0/150
提交評(píng)論