第一篇:中南大學(xué)軟件學(xué)院軟件工程基礎(chǔ)復(fù)習(xí)大全
1.瀑布模型是以文檔為驅(qū)動(dòng)、適合于(軟件需求確定的)軟件項(xiàng)目的開發(fā)。
2.需求分析的基本任務(wù)是(確定用戶需要軟件做什么)。
3.若有一個(gè)計(jì)算類型的程序,它的輸入量只有一個(gè)X,其范圍是[-1.0,1.0],現(xiàn)從輸入的角度考慮一組測試用例:-1.001,-1.0,1.0,1.001。設(shè)計(jì)這組測試用例的方法是(邊界值分析法)。
4.根據(jù)程序流程圖劃分的模塊通常是(過程)內(nèi)聚的模塊。
5.軟件的分類,按其功能可分為:系統(tǒng)軟件、(支撐軟件)和應(yīng)用軟件。
6.UML的定義包括UML語義和(UML表示法)兩個(gè)部分。
7.客觀世界中的若干類,通常有兩種主要的結(jié)構(gòu)關(guān)系:即分類結(jié)構(gòu)和(整體與部分結(jié)構(gòu))。
8.IDEF1X圖用來描述系統(tǒng)的(數(shù)據(jù))模型,主要有實(shí)體、聯(lián)系和(屬性)三種成分,其中實(shí)體可分為獨(dú)立實(shí)體和(從屬實(shí)體),且一個(gè)實(shí)體只能在圖中出現(xiàn)一次。
9、軟件是計(jì)算機(jī)程序、(描述計(jì)算機(jī)程序的文檔)及(數(shù)據(jù))的完整集合,將其統(tǒng)稱為軟件配置,這些項(xiàng)稱為軟件配置項(xiàng)。通過正式復(fù)審的軟件配置項(xiàng)稱為(基線),只有通過正式的變化控制過程才能改變它。
10、通常,將軟件生命周期全過程中使用的一整套技術(shù)方法的集合稱為方法學(xué),包含三個(gè)要素,即方法、(工具)和(過程)。傳統(tǒng)方法學(xué)采用(結(jié)構(gòu)化)技術(shù)來自頂向下順序地完成軟件開發(fā)的各項(xiàng)任務(wù),而面向?qū)ο蠓椒ㄊ且环N以(數(shù)據(jù))為主線,把數(shù)據(jù)和對(duì)數(shù)據(jù)的操作緊密地結(jié)合起來的方法,其開發(fā)過程是一個(gè)多次迭代的演化過程。
11、軟件測試的目標(biāo)是(暴露程序中的錯(cuò)誤),因而從心理學(xué)角度來看,由程序作者對(duì)自己編寫的程序進(jìn)行測試是不恰當(dāng)?shù)摹TO(shè)計(jì)測試方案是測試階段的關(guān)鍵技術(shù)問題,測試方案一般包括(測試目的)、輸入的測試數(shù)據(jù)和(預(yù)期的結(jié)果)。
12、模型是為了理解事物而對(duì)事物作出的一種抽象,由(一組圖示符號(hào))和(組織這些符號(hào)的規(guī)則)組成。對(duì)象模型描述了系統(tǒng)的靜態(tài)結(jié)構(gòu),通常使用UML提供的(類圖)圖來描述。
13、需求分析的基本任務(wù)是(準(zhǔn)確地回答系統(tǒng)必須做什么),在需求分析結(jié)束前,系統(tǒng)分析員應(yīng)該寫出(軟件需求規(guī)格說明書),以書面的形式準(zhǔn)確描述軟件需求。
14、面向數(shù)據(jù)流的設(shè)計(jì)方法把(信息流)映射成軟件結(jié)構(gòu),依據(jù)其類型的不同,有兩種不同的映射方法,分別是(變化分析)和(事物分析)方法。
15、軟件設(shè)計(jì)一般分為(概要設(shè)計(jì))和(詳細(xì)設(shè)計(jì))兩個(gè)階段。
16.如果一個(gè)模塊完成多個(gè)邏輯上相近或相關(guān)的功能,并且每次調(diào)用只選擇該模塊中的一個(gè)功能執(zhí)行,則稱此模塊為 邏輯內(nèi)聚的模塊。
17.在數(shù)據(jù)流圖中,每個(gè)加工至少有一個(gè)輸入數(shù)據(jù)流 和一個(gè) 輸出數(shù)據(jù)流。
18.軟件項(xiàng)目計(jì)劃是計(jì)劃(策劃)階段的結(jié)果產(chǎn)品。但由于是在高層次進(jìn)行系統(tǒng)分析,未能考慮軟件系統(tǒng)開發(fā)的細(xì)節(jié)情節(jié),因此軟件項(xiàng)目計(jì)劃一般在需求分析 階段完成后才定稿的。
19.在面向?qū)ο箢悓哟谓Y(jié)構(gòu)中,子類只繼承一個(gè)父類的數(shù)據(jù)結(jié)構(gòu)和方法,則稱為 單重繼承。如果子類繼承了多個(gè)父類的數(shù)據(jù)結(jié)構(gòu)和方法,則稱為多重繼承。
20.在軟件測試過程中,α測試是由 一個(gè)用戶在開發(fā) 環(huán)境下進(jìn)行的測試,而β測試是由多個(gè)用戶在 實(shí)際使用環(huán)境下進(jìn)行的測試。
21.統(tǒng)一建模語言UML提供了兩種描述整體/部分關(guān)系的方法,分別是聚合 和 組合。
22.瀑布模型是以文檔 驅(qū)動(dòng)的軟件生存周期模型,適合需求明確的軟件系統(tǒng)開發(fā)。23.IDEF1X方法用來建立系統(tǒng)的數(shù)據(jù) 模型。
24.在單元測試期間,應(yīng)該為被測模塊編寫相應(yīng)的測試軟件,一般地驅(qū)動(dòng) 模塊接收測試數(shù)據(jù),并把數(shù)據(jù)傳給被測模塊,而樁 模塊則模擬實(shí)際模塊完成少量數(shù)據(jù)處理。
25.評(píng)估軟件企業(yè)的質(zhì)量管理有兩種方法,一種是按照ISO9001 認(rèn)證,另外一種是按照CMM認(rèn)證。
1.軟件測試的目的是(發(fā)現(xiàn)錯(cuò)誤)。
2.軟件按服務(wù)對(duì)象可分為項(xiàng)目軟件和(產(chǎn)品軟件)。
3.在常見的軟件生存期模型中,(螺旋)模型是風(fēng)險(xiǎn)驅(qū)動(dòng)的。
4.UML通過三種擴(kuò)展機(jī)制來擴(kuò)充UML的建模能力,分別是(約束)、構(gòu)造型和(標(biāo)記值)。
5.在軟件測試用例的設(shè)計(jì)方法中,白盒法以(程序內(nèi)部數(shù)據(jù)結(jié)構(gòu))為依據(jù)設(shè)計(jì)測試用例,6.在面向?qū)ο笤O(shè)計(jì)原則中,(組裝復(fù)用)原則要求在新的對(duì)象里盡量使用已有的類對(duì)應(yīng)的對(duì)象,并通過(委派)達(dá)到復(fù)用已有功能的目的。
7.狀態(tài)圖描述一個(gè)類對(duì)象所經(jīng)歷的(各種狀態(tài))以及事件發(fā)生時(shí)狀態(tài)的(轉(zhuǎn)移條件).8.SOFL軟件開發(fā)方法學(xué)認(rèn)為,在需求分析和規(guī)格說明階段應(yīng)該采用(結(jié)構(gòu)化)方法,而在設(shè)計(jì)和實(shí)現(xiàn)階段則應(yīng)該采用(面向?qū)ο螅┓椒ā?/p>
9.可行性研究的內(nèi)容包括(技術(shù)可行性)、經(jīng)濟(jì)可行性和(操作可行性)。軟件按服務(wù)對(duì)象可分為(項(xiàng)目軟件)和產(chǎn)品軟件在常見的軟件生存周期模型中,(瀑布)模型是文檔驅(qū)動(dòng)的UML采用(用例)圖描述系統(tǒng)與外部用戶的交互行為在軟件測試用例的設(shè)計(jì)方法中,黑盒法以(外部功能)為依據(jù)設(shè)計(jì)測試用例定性度量模型獨(dú)立性的兩個(gè)標(biāo)準(zhǔn)是(內(nèi)聚度)和(耦合度)8 在SA方法的需求描述工具中,(層次方框圖)描述系統(tǒng)的分解,即描述系統(tǒng)由哪幾個(gè)部分組成,各部分之
間有什么聯(lián)系等等;(數(shù)據(jù)詞典(和加工說明))定義了數(shù)據(jù)流圖中每個(gè)圖形元素;結(jié)構(gòu)化語言、判定
表或判定樹則詳細(xì)描述、數(shù)據(jù)流圖中不能被分解的(基本加工)IDEFO圖主要元素是簡單的盒子及箭頭,其中盒子代表(活動(dòng))。而箭頭表示系統(tǒng)處理的(數(shù)據(jù)約束)
1.什么是軟件工程?軟件工程和計(jì)算機(jī)科學(xué)有何區(qū)別? 答:軟件工程是指導(dǎo)軟件開發(fā)和維護(hù)的工程性學(xué)
科;計(jì)算機(jī)科學(xué)著重于原理和理論,軟件工程與計(jì)算機(jī)科學(xué)不同,軟件工程著重于如何建造軟件系統(tǒng),軟
件是計(jì)算機(jī)中看不見摸不著的邏輯部分,以程序、數(shù)據(jù)和文檔的形式出現(xiàn)。
2.面向?qū)ο蠓椒ê徒Y(jié)構(gòu)化方法有何區(qū)別與聯(lián)系? 答:區(qū)別: 面向?qū)ο髲乃幚淼臄?shù)據(jù)入手,以數(shù)據(jù)為中
心來描述系統(tǒng),其基本思想是盡可能模擬人類習(xí)慣的思維方式,使開發(fā)軟件的方法與過程盡可能接近人類
認(rèn)識(shí)世界的方法與過程,基本原則為:對(duì)象+類+繼承+消息通信 結(jié)構(gòu)化方法首先關(guān)心的是功能,強(qiáng)調(diào)以模
塊為中心,其基本思想是自頂向下,逐步求精,單入口,單出口,基本原則為:抽象與功能的分解 聯(lián)系:
軟件開發(fā)過程中,在需求分析和規(guī)格說明階段采用結(jié)構(gòu)化方法,在設(shè)計(jì)和實(shí)現(xiàn)階段采用面向?qū)ο蠓椒ā?/p>
3.什么是模塊的作用域和模塊的控制域?為何要求模塊的控制域必須在作用域內(nèi)? 答:模塊的作用域是
指模塊中判定的作用范圍,它是指所有受這個(gè)判定范圍影響的模塊;模塊的控制域是指模塊本身及其直接
或間接調(diào)用的模塊;如果模塊的作用域不在控制域內(nèi),則會(huì)增加數(shù)據(jù)間的傳遞量,使模塊間出現(xiàn)控制耦合4.什么是設(shè)計(jì)模式?試舉例說明組合設(shè)計(jì)模式的應(yīng)用。答:設(shè)計(jì)模式是指系統(tǒng)命名,解釋和評(píng)價(jià)某一重要的,可復(fù)用的面向?qū)ο蟮脑O(shè)計(jì)方案。組合設(shè)計(jì)模式:使用迭代器模式來遍歷組合結(jié)構(gòu)。
5.什么是依賴倒置原則?它和開閉原則有何聯(lián)系? 答:依賴倒置是類設(shè)計(jì)原則的一種,它要求高層不應(yīng)
依賴于底層,抽象不應(yīng)依賴于細(xì)節(jié);依賴倒置原則的本質(zhì)其實(shí)就是通過抽象(抽象類或接口)使各個(gè)類或
模塊的實(shí)現(xiàn)彼此獨(dú)立,不相互影響,實(shí)現(xiàn)模塊間的松耦合,如果沒有實(shí)現(xiàn)這個(gè)原則,則開閉原則也無法實(shí)
現(xiàn)。
6.軟件生存期過程和軟件生存期模型有何聯(lián)系?瀑布模型有何特點(diǎn)?答:軟件生存期過程沒有規(guī)定一個(gè)特
定的生存周期模型,各軟件開發(fā)機(jī)構(gòu)可視其項(xiàng)目的需要選擇一種軟件生存周期模型,并將軟件生存期過程
所含過程、活動(dòng)和任務(wù)映射到選定的軟件生存周期模型中。軟件生存期模型是軟件生存期過程所含過程、活動(dòng)和任務(wù)的映射。瀑布模型特點(diǎn):各階段相互依賴;每階段都進(jìn)行評(píng)審;強(qiáng)調(diào)需求分析和設(shè)計(jì)。
1.瀑布模型是軟件工程中應(yīng)用最廣泛的過程模型,試述采用瀑布模型進(jìn)行軟件開發(fā)的基本過程,該過程有
何特點(diǎn)? 答:瀑布模型規(guī)定了各項(xiàng)軟件工程活動(dòng),包括需求分析、規(guī)格說明、設(shè)計(jì)、編碼、測試和維護(hù),并規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級(jí)而下。瀑布模型的特點(diǎn)是:階段間具
有順序性和依賴性;清楚區(qū)分邏輯設(shè)計(jì)和物理設(shè)計(jì),盡可能推遲程序的物理實(shí)現(xiàn);每個(gè)階段都必須完成規(guī)
定文檔,且每階段結(jié)束前需要對(duì)完成的文檔進(jìn)行評(píng)審。
2、什么是軟件配置管理?軟件配置管理和軟件維護(hù)有何不同? 答:軟件配置管理是在軟件生命周期內(nèi)管理變
化的一組活動(dòng),用來:標(biāo)識(shí)變化、控制變化、確保適當(dāng)?shù)貙?shí)現(xiàn)了變化、向相關(guān)人員報(bào)告變化。
軟件配置管理和軟件維護(hù)的區(qū)別是:軟件配置管理是一組追蹤和控制活動(dòng),在軟件項(xiàng)目啟動(dòng)時(shí)就開始,并
一直持續(xù)到軟件被淘汰后才終止;軟件維護(hù)是一組軟件工程活動(dòng),發(fā)生于軟件交付給用戶并投入運(yùn)行之后。
3、試舉例說明聚集關(guān)系中共享聚集和組合聚集有何不同。答:如果在聚集關(guān)系中部分對(duì)象可同時(shí)參與多個(gè)
整體對(duì)象的構(gòu)成,則該聚集稱為共享聚集。例如,一個(gè)課題組包含許多成員,每個(gè)成員又可以是另一個(gè)課
題組的成員,則課題組和成員之間是一種共享聚集的關(guān)系。
如果部分對(duì)象完全隸屬于整體對(duì)象,并與整體對(duì)象共存,則該聚集稱為組合聚集。例如,在屏幕上一個(gè)窗
口由文本框、列表框、按鈕和菜單等構(gòu)成,且一旦關(guān)閉了窗口,則各組成部分也消失,則窗口和它的組成部分之的關(guān)系為組合聚集關(guān)系。
1非漸增式測試與漸增式測試有何區(qū)別? 答:非漸增式測試,一般應(yīng)先經(jīng)過單元測試,然后再把所有模塊一
次性組裝在一起進(jìn)行測試,最終得到要求的軟件系統(tǒng);而漸增式測試則采用逐步加入模塊或功能簇的方式
進(jìn)行,在加入過程中邊連接邊測試,比較容易定位和修正錯(cuò)誤,且接口也可以更容易進(jìn)行徹底地測試2.試舉例說明什么是功能性需求,什么是非功能性需求?為何非功能性需求往往比功能性需求還要重
要? 答:功能性需求是說有具體的完成內(nèi)容的需求。例如:比如客戶登錄、郵箱網(wǎng)站的收發(fā)郵件、論壇網(wǎng)
站的發(fā)帖留言等。非功能性需求是指軟件產(chǎn)品為滿足用戶業(yè)務(wù)需求而必須具有且除功能需求以外的特性,包括系統(tǒng)的性能、可靠性、可維護(hù)性、可擴(kuò)充性和對(duì)技術(shù)和對(duì)業(yè)務(wù)的適應(yīng)性等。例如:性能要求:要求系
統(tǒng)能滿足100個(gè)人同時(shí)使用,頁面反應(yīng)時(shí)間不能超過6秒;非功能性需求往往比功能性需求還要重要是因?yàn)?/p>
非功能性需求描述的是軟件的質(zhì)量屬性,直接影響著用戶體驗(yàn),因此非功能性需求在決定系統(tǒng)成敗的因素
中起更重要的作用。
3.層次圖和層次方框圖有何區(qū)別? 答:不同:1,層次圖描繪軟件的層次結(jié)構(gòu).層次方框圖描繪的是數(shù)據(jù)結(jié)
構(gòu)。2,層次圖的方框表示模塊或子模塊。層次方框圖的方框表示數(shù)據(jù)結(jié)構(gòu)整體或其子集。3,層次圖的連線表
示調(diào)用關(guān)系,層次方框圖表示組成關(guān)系。
4.快速原型模型有幾種?各有何特點(diǎn)?答:快速原形模型根據(jù)原型的不同作用,有三類原型模型:
(1)探索型原型:把原型用于開發(fā)的需求分析階段,目的是要弄清用戶的需求,確定所期望的特性,并探索
各種方案的可行性。它主要針對(duì)開發(fā)目標(biāo)模糊,用戶與開發(fā)者對(duì)項(xiàng)目都缺乏經(jīng)驗(yàn)的情況,通過對(duì)原型的開
發(fā)來明確用戶的需求。
(2)實(shí)驗(yàn)型原型:主要用于設(shè)計(jì)階段,考核實(shí)現(xiàn)方安是否合適,能否實(shí)現(xiàn)。對(duì)于一個(gè)大型系統(tǒng),若對(duì)設(shè)計(jì)方
案心中沒有把握時(shí),可通過這種原型的開發(fā)來證實(shí)設(shè)計(jì)方案的正確性。
(3)演化型原型:它將原型思想擴(kuò)展到軟件開發(fā)的全過程,就是及早向用戶提交一個(gè)原型系統(tǒng),在得到用戶
認(rèn)可后,將原型系統(tǒng)不斷擴(kuò)充演化為最終的軟件系統(tǒng)。
2.什么是模塊的作用域?為何設(shè)計(jì)軟件結(jié)構(gòu)時(shí)要求模塊的作用域必須在控制域之內(nèi)? 答:所謂模塊的作
用域是指模塊判定的影響范圍。作用域在控制域之內(nèi),可使得軟件修改時(shí)代碼局部化。
3.什么是動(dòng)態(tài)測試?為何靜態(tài)測試方法往往比動(dòng)態(tài)測試方法效率高? 答:動(dòng)態(tài)測試是指經(jīng)運(yùn)行程序代碼
而檢查代碼是否存在錯(cuò)誤。靜態(tài)測試往往不是運(yùn)行代碼,而在軟件開發(fā)的早期進(jìn)行,而早期錯(cuò)誤發(fā)現(xiàn)要比
錯(cuò)誤晚發(fā)現(xiàn)付出的成本少,而靜態(tài)測試往往在發(fā)現(xiàn)錯(cuò)誤后還可繼續(xù)進(jìn)行,但動(dòng)態(tài)測試往往需要停下來改進(jìn)后才能進(jìn)一步測試。1 試簡要說明面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法相比有何優(yōu)越性,至少列出三點(diǎn)。答:(1)強(qiáng)調(diào)從現(xiàn)實(shí)世界中客觀
存在的事物(對(duì)象)出發(fā)來認(rèn)識(shí)問題域和構(gòu)造系統(tǒng),這就使系統(tǒng)開發(fā)者大大減少了對(duì)問題域的理解難度,從而使系統(tǒng)能更準(zhǔn)確地反映問題域。(2)運(yùn)用人類日常的思維方法和原則(體現(xiàn)于OO方法的抽象、分類、繼承、封裝、消息通訊等基本原則)進(jìn)行系統(tǒng)開發(fā),有益于發(fā)揮人類的思維能力,并有效地控制了系統(tǒng)復(fù)
雜性。(3)對(duì)象的概念貫穿于開發(fā)過程的終,使各個(gè)開發(fā)階段的系統(tǒng)成分具良好的對(duì)應(yīng),從而顯著地提高
了系統(tǒng)的開發(fā)效率與質(zhì)量,并大大降低系統(tǒng)維護(hù)的難度。(4)對(duì)象概念的一致性,使參與系統(tǒng)開發(fā)的各類
人員在開發(fā)的各所段具有共同語言,有效地改善了人員之間的交流和協(xié)作。(5)對(duì)象的相對(duì)穩(wěn)定性和對(duì)易
變因素隔離,增強(qiáng)了系統(tǒng)的應(yīng)變能力。(6)對(duì)象類之間的繼承關(guān)系和對(duì)象的相對(duì)獨(dú)立性,對(duì)軟件復(fù)用提供
了強(qiáng)有力的支持。1.什么是軟件危機(jī)?軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。這些問題
表現(xiàn)在以下幾個(gè)方面:(1)用戶對(duì)開發(fā)出的軟件很難滿意。(2)軟件產(chǎn)品的質(zhì)量往往靠不住。(3)一般軟件很
難維護(hù)。4)軟件生產(chǎn)效率很低。(5)軟件開發(fā)成本越來越大。(6)軟件成本與開發(fā)進(jìn)度難以估計(jì)。7)軟件技術(shù)的發(fā)展遠(yuǎn)遠(yuǎn)滿足不了計(jì)算機(jī)應(yīng)用的普及與深入的需要。
2.什么是軟件生存周期?軟件生存周期是指從軟件定義、開發(fā)、使用、維護(hù)到淘汰的全過程。
1.軟件開發(fā)模型有幾種?它們的開發(fā)方法有可特點(diǎn)?軟件開發(fā)模型有瀑布型、漸增型和變換型。瀑布型開
發(fā)方法是按照軟件生存周期的劃分依次實(shí)施,每一個(gè)階段有明確規(guī)定的任務(wù)。它的特點(diǎn):(1)各個(gè)階段的順
序性和依賴性;(2)劃分邏輯設(shè)計(jì)與物理設(shè)計(jì),盡可能推遲程序的物理實(shí)現(xiàn);3)每個(gè)階段必須完成規(guī)定的文
檔,對(duì)其中問題通過復(fù)審及早發(fā)現(xiàn),及早解決。漸增型開發(fā)方法及特點(diǎn):1)從部分需求出發(fā),先建立一個(gè)不
完全的系統(tǒng),通過測試運(yùn)行該系統(tǒng)取得經(jīng)驗(yàn)和信息反饋,加深對(duì)軟件需求的理解,進(jìn)一步使系統(tǒng)擴(kuò)充和完
善。如此反復(fù),直至軟件人員和用戶對(duì)所設(shè)計(jì)完成的軟件系統(tǒng)滿意為止。2)在漸增型開發(fā)下的軟件是隨軟
件開發(fā)的過程而逐漸形成的。(3)漸增型開發(fā)方法適合于知識(shí)型軟件的開發(fā),設(shè)計(jì)系統(tǒng)時(shí)對(duì)用戶需求的認(rèn)識(shí)
開始不是很清楚的,需要在開發(fā)過程中不斷認(rèn)識(shí)、不斷獲得新的知識(shí)去豐富和完善系統(tǒng)。多數(shù)研究性質(zhì)的試驗(yàn)軟件,一般采用此方法。變換型開發(fā)方法及特點(diǎn):(1)從軟件需求的形式化規(guī)格說明出發(fā),經(jīng)過一系列的程序變換,得到最終的程序系統(tǒng)。(2)該方法必須有嚴(yán)格的數(shù)學(xué)理論和形式化技術(shù)的支持。
2.功能與對(duì)象的區(qū)別?
1、功能比對(duì)象容易變化(功能相對(duì)不穩(wěn)定)
2、功能是主觀的,對(duì)象是可觀的。
3、功能是可以調(diào)用的,要么全有,要么全無,而對(duì)象可以部分的繼承使用。
3. 軟件開發(fā)過程可視化的兩種方法?文檔驅(qū)動(dòng)、小批量發(fā)布
4.風(fēng)險(xiǎn)分析的目的?對(duì)風(fēng)險(xiǎn)進(jìn)行管理。
5. 傳遞信息的方法?
1、參數(shù)。
2、全局變量。
3、公共可訪問區(qū)域。
6.?dāng)?shù)據(jù)建模的作用?
1、抓住問題的主要方面---理解問題。
2、便于交流。
3、可以進(jìn)行分析(性能、可靠
性、、、、、、)。
4、可以自動(dòng)生成代碼。
7. 描述模型的兩種方法?
1、結(jié)構(gòu)化方法:結(jié)構(gòu)化方法首先關(guān)心的是功能,強(qiáng)調(diào)以模塊為中心,采用模
塊化、自頂向下、逐步求精設(shè)計(jì)過程(分層),適合需求明確的模型。其不足之處:不太適應(yīng)規(guī)模大及
特別復(fù)雜的項(xiàng)目,難于解決軟件重用問題,難于適應(yīng)需求變化或模糊的問題,軟件維護(hù)比較復(fù)雜。
2、面向
對(duì)象方法:面向?qū)ο蠓椒▌t從所處理的數(shù)據(jù)入手,以數(shù)據(jù)為中心來描述系統(tǒng),適合迭代增量式分解(網(wǎng)狀)。
其不足之處:類作為復(fù)用單元,有時(shí)顯得太小,類繼承會(huì)增加類間的耦合度,該方法不夠成熟。
8. 描述作業(yè)之間的關(guān)系?
1、畫PERT圖。
2、確定最晚發(fā)生時(shí)刻與最早發(fā)生時(shí)刻。
3、計(jì)算機(jī)動(dòng)時(shí)間,為0 的為關(guān)鍵事件。
4、Gantt圖的方法進(jìn)行描述。
9. 用例與功能的區(qū)別?
1、完成一個(gè)用例需要若干功能。
2、用例是從用戶使用系統(tǒng)的角度來描述系統(tǒng)的行為的。
3、用例往往是對(duì)用戶有價(jià)值的結(jié)果。
4、用例滿足用戶的業(yè)務(wù)目標(biāo)。
10. 描述模塊獨(dú)立性的標(biāo)準(zhǔn)?內(nèi)聚度(內(nèi)聚度是指模塊內(nèi)部各成分聯(lián)系緊密的程度,內(nèi)聚度越高,模塊獨(dú)
立性越強(qiáng))耦合度(耦合度是指模塊之間相互關(guān)聯(lián)的緊密程度。耦合度越低,模塊獨(dú)立性越強(qiáng))
11.什么是黑盒測試?黑盒測試主要采用的技術(shù)有哪些? 黑盒測試也稱為功能測試,它著眼于程序的外部特
征,而不考慮程序的內(nèi)部邏輯結(jié)構(gòu)。測試者把被測程序看成一個(gè)黑盒,不用關(guān)心程序的內(nèi)部結(jié)構(gòu)。黑盒測試是
在程序接口處進(jìn)行測試,它只檢查程序功能是否能按照規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟?/p>
收輸入數(shù)據(jù)產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性。黑盒測試主要采用的技
術(shù)有:等價(jià)分類法、邊沿值分析法、錯(cuò)誤推測法和因果圖等技術(shù)。
12.什么是白盒測試?白盒測試主要采用的技術(shù)有哪些?測試者了解被測程序的內(nèi)部結(jié)構(gòu)和處理過程,對(duì)程序的所有邏輯路徑進(jìn)行測試,在不同點(diǎn)檢查程序狀態(tài),確定實(shí)際狀態(tài)與預(yù)期狀態(tài)是否一致。白盒測試主要采用的技術(shù)有:路徑測試技術(shù)和事務(wù)處理流程技術(shù),對(duì)包含有大量邏輯判斷或條件組合的程序采用基于邏輯的測試技術(shù)。
13. 瀑布模型的優(yōu)缺點(diǎn)?優(yōu)點(diǎn):1.流水線生產(chǎn)比個(gè)人生產(chǎn)效率高,質(zhì)量好。2.將邏輯設(shè)計(jì)與物理實(shí)施分開,避免無用功。減少成本,能盡量推遲物理實(shí)施。3.文檔驅(qū)動(dòng)使得開發(fā)過程可視化,便于管理和控制。缺點(diǎn):
1.當(dāng)需求不明確時(shí),流水線被阻塞。2.得不到用戶的反饋,開發(fā)過程得不到修正,導(dǎo)致有可能出現(xiàn)大的失誤。3.最后將產(chǎn)品一次提交給用戶,用戶感到不適應(yīng),成本增加,市場風(fēng)險(xiǎn)加大。
14.軟件工程的目的?以期用較少的代價(jià)獲取高質(zhì)量的軟件。
第二篇:中南大學(xué)軟件學(xué)院架構(gòu)超強(qiáng)復(fù)習(xí)
? JDBC是用來執(zhí)行SQL的Java API,開發(fā)人員可以使用這些標(biāo)準(zhǔn)API來迎接和操作數(shù)據(jù)庫,實(shí)現(xiàn)數(shù)據(jù)庫
應(yīng)用程序的開發(fā)。JDBC是Java的規(guī)范,考慮到規(guī)范的適應(yīng)性,JDBC只提供了最直接的數(shù)據(jù)庫操作規(guī)范,在Java.sql包中。2種主要的JDBC連接方式:ODBC橋驅(qū)動(dòng)技術(shù)和JDBC純驅(qū)動(dòng)模式。ODBC驅(qū)動(dòng)程序是由微軟設(shè)計(jì)和開發(fā)的一種通用的標(biāo)準(zhǔn)的操作數(shù)據(jù)庫的API,也可以認(rèn)為是一種數(shù)據(jù)庫系統(tǒng)應(yīng)用程序的接口規(guī)范。純驅(qū)動(dòng)技術(shù)是一種由各個(gè)數(shù)據(jù)庫廠商提供的驅(qū)動(dòng)程序,其通過協(xié)議的方式,將應(yīng)用程序的SQL語句直接發(fā)送到數(shù)據(jù)庫的DBMS執(zhí)行,并返回結(jié)果。JDBC 可做三件事:與數(shù)據(jù)庫建立連接執(zhí)行SQL 語句、處理結(jié)果。使用JDBC直連DB的缺點(diǎn):1.在某一時(shí)刻連接必須服務(wù)于一個(gè)用戶,以免造成事務(wù)沖突。2.創(chuàng)建連接需要耗費(fèi)時(shí)間。3.保持連接打開狀態(tài)的代價(jià)很大。使用數(shù)據(jù)庫連接池的優(yōu)點(diǎn):1.資源重用 2. 更快的系統(tǒng)響應(yīng)速度 3. 統(tǒng)一的連接管理,避免數(shù)據(jù)庫連接泄漏? Servlet是一種獨(dú)立于平臺(tái)和協(xié)議的服務(wù)器端的Java應(yīng)用程序,可以生成動(dòng)態(tài)的Web頁面。Servlet
能干什么:1.根椐請(qǐng)求創(chuàng)建并響應(yīng)整個(gè) HTML Web 頁面,根據(jù)客戶請(qǐng)求的性質(zhì)而具有動(dòng)態(tài)內(nèi)容。2.創(chuàng)建 HTML Web 頁面的動(dòng)態(tài)部分,并嵌入到現(xiàn)有靜態(tài) HTML 頁面中。3.使用服務(wù)器上的其他資源,如數(shù)據(jù)庫、其他Java程序。4.處理與多個(gè) Web 客戶端的連接,接收來自多個(gè) Web 客戶端的輸入信息。生命周期包括加載、實(shí)例化、處理客戶端請(qǐng)求和移除,該生命周期由javax.servlet.Sercvet接口的init、setvlet、destroy方法實(shí)現(xiàn)。該生命周期由部署Servlet的容器來控制。
? JSP是Servlet來編寫服務(wù)端代碼過于繁瑣和復(fù)雜,所以將響應(yīng)頁面的動(dòng)態(tài)部分和靜態(tài)部分分開。JSP
與Servlet的關(guān)系:1 JSP是一種建立在Servlet規(guī)范提供的功能之上的動(dòng)態(tài)網(wǎng)頁技術(shù) 2.JSP文件在用戶第一次請(qǐng)求時(shí),會(huì)被編譯成Servlet,然后由這個(gè)Servlet處理用戶的請(qǐng)求 3.JSP可以看成是運(yùn)行時(shí)的Servlet。JSP執(zhí)行過程:1.客戶端發(fā)出請(qǐng)求(Request)2.JSP 容器將JSP轉(zhuǎn)譯成Servlet的源代碼 3.編譯Servlet,并加載到內(nèi)存執(zhí)行 4.將結(jié)果響應(yīng)(Response)至客戶端。JSP語法提供3種腳本元素:1.聲明(Declarations)——聲明變量或方法 2.Scriptlets——編寫有效的Java程序片段 3.表達(dá)式(Expressions)——合法的Java表達(dá)式。servlet 對(duì)象包括:page和config。JSP中會(huì)話跟蹤的方法:
1.隱藏域 2.URL傳值 3.session 4.cookie
? JavaBean往往封裝了程序的頁面邏輯,它是可重用的組件。通過使用JavaBean,可以減少在JSP中
腳本代碼的使用,這樣使得JSP易于維護(hù)。JavaBean 的優(yōu)點(diǎn):變更方便、可重用組件、可在多個(gè)應(yīng)用程序中使用、可以跨平臺(tái)
? 頁面關(guān)聯(lián):Web應(yīng)用程序最突出的優(yōu)點(diǎn)是其能夠聚合大量的信息資源。單個(gè)Web組件所提供的信
息和功能是有限的,因此需要通過Web組件間的關(guān)聯(lián)來實(shí)現(xiàn)信息資源和功能的聚合。Web組件之間共有三種關(guān)聯(lián)關(guān)系:請(qǐng)求轉(zhuǎn)發(fā)、請(qǐng)求重定向、包含。Web作用數(shù)據(jù)域:頁面范圍、請(qǐng)求范圍、會(huì)話范圍、應(yīng)用范圍‘
? MVC模式(三層架構(gòu)模式)(Model-View-Controller)
織代碼用一種業(yè)務(wù)邏輯和數(shù)據(jù)顯示分離的方法。把軟件系統(tǒng)分為三個(gè)基本部分:模型(Model)、視圖(View)和控制器(Controller)。控制器負(fù)責(zé)轉(zhuǎn)發(fā)請(qǐng)求,對(duì)請(qǐng)求進(jìn)行處理。視圖實(shí)現(xiàn)數(shù)據(jù)的顯示。模型封裝與應(yīng)用程序的業(yè)務(wù)邏輯相關(guān)的數(shù)據(jù)以及對(duì)數(shù)據(jù)的處理方法
? Model1和model2的區(qū)別 Model1模式的實(shí)現(xiàn)比較簡單,適用于快速開發(fā)小規(guī)模項(xiàng)目。但從工程
化的角度看,它的局限性非常明顯:JSP頁面身兼View和Controller兩種角色,將控制邏輯和表現(xiàn)邏輯混雜在一起,從而導(dǎo)致代碼的重用性非常低,增加了應(yīng)用的擴(kuò)展性和維護(hù)的難度。Model2已經(jīng)是基于MVC架構(gòu)的設(shè)計(jì)模式。在model2架構(gòu)中,servlet作為前端控制器,負(fù)責(zé)接受客戶端發(fā)送的請(qǐng)求,在servlet中只包含控制邏輯和簡單的前端處理;然后,調(diào)用后端的JavaBean來完成實(shí)際的邏輯處理;最后,轉(zhuǎn)發(fā)到相應(yīng)的JSP頁面處理顯示邏輯。區(qū)別:本質(zhì)區(qū)別在于處理批量請(qǐng)求的位置不同。說明Strusts2是如何實(shí)現(xiàn)MOdel2的?在struts2中,Model對(duì)應(yīng)業(yè)務(wù)邏輯組件,它通常用于實(shí)現(xiàn)業(yè)務(wù)邏輯方法以及以及與底層數(shù)據(jù)庫的交互等;View對(duì)應(yīng)視圖組件,通常是指JSP頁面,但也適用于其他視圖顯示技術(shù),如Velocity或者Excel文檔;Control對(duì)應(yīng)系統(tǒng)核心控制器和業(yè)務(wù)邏輯控制器,系統(tǒng)核心控制器為Struts2框架提供的FilterDispatcher,它根據(jù)請(qǐng)求自動(dòng)調(diào)用相應(yīng)的Action。而業(yè)務(wù)邏
輯控制器是指開發(fā)人員自行定義的一系列Action,在Action中負(fù)責(zé)調(diào)用相應(yīng)的業(yè)務(wù)邏輯組件來完成處理。
? JSTL(JSP Standard Tag Library)是基于SUN公司所定義規(guī)范,由許多公司共同開發(fā)完善的開放源代
碼的jsp標(biāo)簽庫,為實(shí)現(xiàn)Web應(yīng)用程序中常用功能提供了一個(gè)單一的標(biāo)準(zhǔn)解決方案,是由apache維護(hù)的。
? Servlet過濾器是Web中的一個(gè)小型組件,它能攔截來自客戶端的請(qǐng)求和響應(yīng)信息,進(jìn)行查看提取
或者對(duì)客戶端和服務(wù)器之間交換的數(shù)據(jù)信息進(jìn)行一些特定的操作。Servlet過濾器常用的應(yīng)用場景:
1、對(duì)用戶請(qǐng)求進(jìn)行統(tǒng)一認(rèn)證
2、用戶的訪問進(jìn)行記錄和審核
3、對(duì)用戶發(fā)送的數(shù)據(jù)進(jìn)行過濾或替換
4、轉(zhuǎn)換圖像格式
5、對(duì)響應(yīng)內(nèi)容進(jìn)行壓縮,減少傳輸量
6、對(duì)請(qǐng)求和響應(yīng)進(jìn)行加解密處理 ? 什么是Ajax?AJAX是一種異步交互技術(shù),是JavaScript、CSS、DOM、XmlHttpRequest四種技術(shù)的集合體,主要應(yīng)用于異步獲取后臺(tái)數(shù)據(jù)和局部刷新。異步交互方式:異步發(fā)送請(qǐng)求,消除了傳統(tǒng)的“發(fā)送請(qǐng)求-等待-發(fā)送請(qǐng)求-等待”,極大的提高用戶體驗(yàn)。異步:發(fā)送請(qǐng)求后不等返回結(jié)果,由回調(diào)函數(shù)處理結(jié)果。JavaScript:向服務(wù)器發(fā)起請(qǐng)求,獲得返回結(jié)果,更新頁面。XML:封裝數(shù)據(jù)。Ajax應(yīng)用的處理流程
1、一個(gè)客戶端事件觸發(fā)一個(gè)Ajax事件;
2、創(chuàng)建XMLHttpRequest對(duì)象的一個(gè)實(shí)例;
3、向服務(wù)器做出請(qǐng)求;
4、服務(wù)器完成業(yè)務(wù)邏輯;
5、請(qǐng)求返回到瀏覽器;
6、處理響應(yīng)數(shù)據(jù)。Ajax框架:瀏覽器端1.Dojo 2.Google AJAXSLT 3.jQuery 服務(wù)器端1.JSON/JSON-RPC 2.Rails 3.DWR
? XMLHttpRequest是ajax的核心機(jī)制,是一種支持異步請(qǐng)求的技術(shù)。簡單的說,也就是javascript可
以及時(shí)向服務(wù)器提出請(qǐng)求和處理響應(yīng),而不阻塞用戶,達(dá)到無刷新的效果。XMLHttpRequest對(duì)象的常用方法:1.Open(”method”,”url”):建立對(duì)服務(wù)器的調(diào)用。Method參數(shù)可以是POST,GET或PUT。url路徑可以使絕對(duì)路徑也可以是相對(duì)路徑。另外這個(gè)方法還有三個(gè)可選的參數(shù)。2.Send(content):向服務(wù)器發(fā)送請(qǐng)求。
? AJAX優(yōu)點(diǎn):
1、最大的一點(diǎn)是頁面無刷新,在頁面內(nèi)與服務(wù)器通信,給用戶的體驗(yàn)非常好。
2、使用
異步方式與服務(wù)器通信,不需要打斷用戶的操作,具有更加迅速的響應(yīng)能力。
3、可以把以前一些服務(wù)器負(fù)擔(dān)的工作轉(zhuǎn)嫁到客戶端,利用客戶端閑置的能力來處理
4、基于標(biāo)準(zhǔn)化的并被廣泛支持的技術(shù),不需要下載插件或者小程序。AJAX缺點(diǎn):1.缺少一個(gè)沒有標(biāo)準(zhǔn)之爭、沒有back和history的瀏覽器2.對(duì)搜索引擎的支持不好3.安全問題4.語言問題
? 同步通信和異步通信 同步通信方式---請(qǐng)求響應(yīng)模型,在傳統(tǒng)的web應(yīng)用模型下,大部分的用戶操
作都會(huì)發(fā)送一個(gè)http請(qǐng)求給服務(wù)器,然后服務(wù)器開始處理(接收數(shù)據(jù),執(zhí)行業(yè)務(wù)邏輯,訪問數(shù)據(jù)庫),最后向?yàn)g覽器返回html頁面。異步通信方式---XMLHttpRequest對(duì)象,異步發(fā)送請(qǐng)求,消除了傳統(tǒng)的“發(fā)送請(qǐng)求-等待-發(fā)送請(qǐng)求-等待”的特性,極大的提高了用戶體驗(yàn)。
?
? JavaScript是一種廣泛用于客戶端的腳本語言,一種動(dòng)態(tài)、弱類型、基于原型的語言,內(nèi)置支持類 XML(可拓展標(biāo)記語言)是SMGL的子集,其目標(biāo)是允許普通的SGML在Web上以目前HTML的方式被服務(wù)、接受和處理,被設(shè)計(jì)成易于實(shí)現(xiàn),且可在SGML和HTML之間互相操作。商業(yè)優(yōu)勢:信息共享、單一應(yīng)用使用、內(nèi)容交付。技術(shù)優(yōu)勢:數(shù)據(jù)重用、數(shù)據(jù)和表示分離、可拓展性、語義信息、容易理解、易于編程
? 由于軟件已經(jīng)實(shí)現(xiàn)了基本的MVC架構(gòu),開發(fā)者可以基于這個(gè)軟件,添加自己特定的業(yè)務(wù)邏輯,這樣的軟件就可以被稱為Web框架。通過Web框架:規(guī)范軟件的架構(gòu)、減輕開發(fā)的難度、提高效率、降低維護(hù)成本。
?
? Struts1的缺陷:Formbean與ActionServlet有關(guān)、控制器無法脫web、不能做單元測試 Struts2的大致工作流程可描述為: 瀏覽器發(fā)送請(qǐng)求。Control中的核心控制器FilterDispatcher
根據(jù)請(qǐng)求調(diào)用相應(yīng)的業(yè)務(wù)邏輯控制器(Action)。WebWork的攔截器鏈自動(dòng)對(duì)請(qǐng)求應(yīng)用通用功能,如數(shù)據(jù)校驗(yàn)和文件上傳等功能。回調(diào)Action中的execute()方法,并在方法體內(nèi)調(diào)用業(yè)務(wù)邏輯組件來處理請(qǐng)求(Model)。execute()方法將調(diào)用業(yè)務(wù)邏輯組件(Model)得到的數(shù)據(jù)返還并更新視圖層(View)。
? Struts2應(yīng)用的開發(fā)步驟:第一步:在web.xml文件中定義核心Filter來攔截用戶請(qǐng)求;第二步:
如果需要以POST方式提交請(qǐng)求,則定義包含表單數(shù)據(jù)的JSP頁面。如果僅僅是以GET方式發(fā)送請(qǐng)求,則無須經(jīng)過這一步;第三步:定義處理用戶請(qǐng)求的Action類;第四步:在Struts.xml中配置action;第五步:在Struts.xml中配置處理結(jié)果和物理視圖資源之間的對(duì)應(yīng)關(guān)系;第六步:編寫資源視圖.Struts 2的配置文件: web.xml:Web部署描述符,包括所有必需的框架組件。Struts.xml:主要的配置文件,包含result映射、action映射、攔截器配置等。struts.properties:Struts 2的屬性配置。struts-default.xml:Struts 2的默認(rèn)配置文件。struts-plugin.xml:Struts 2框架的插件所用的配置文件。Action映射:將一個(gè)請(qǐng)求URI映射到一個(gè)action類。name action的名字,用于匹配請(qǐng)求URI。Class Action實(shí)現(xiàn)類的完整類名。method 執(zhí)行Acition時(shí)調(diào)用的方法。Converther 應(yīng)用于action的類型轉(zhuǎn)換器的完整類名。Result映射 daspatcher 轉(zhuǎn)發(fā)。Redirect 重定向到另外的URL。redirectAction 重定向到另外的Action。chain 用于Action的鏈?zhǔn)教幚怼lainText 用于顯示某些特定頁面的原始內(nèi)容。Xslt 用于顯示XML的內(nèi)容。? 輸入校驗(yàn):輸入校驗(yàn)的內(nèi)容一般包括驗(yàn)證輸入數(shù)據(jù)的有效性和驗(yàn)證失敗后向用戶提供錯(cuò)誤信息兩部
分。輸入驗(yàn)證的方式可分為客戶端驗(yàn)證和服務(wù)器端驗(yàn)證。手動(dòng)驗(yàn)證:1.在Action的方法中編寫驗(yàn)證代碼。2.在validateXxx方法中編寫驗(yàn)證代碼。validateXxx即可由框架在業(yè)務(wù)代碼執(zhí)行前自動(dòng)被調(diào)用。如果多個(gè)方法調(diào)用同一段驗(yàn)證代碼,則可以將驗(yàn)證代碼編寫在名為validate的方法中即可。內(nèi)置驗(yàn)證框架:通過在外部配置文件中定義驗(yàn)證規(guī)則的方式來簡化對(duì)輸入數(shù)據(jù)的驗(yàn)證,驗(yàn)證框架通過validator攔截器來調(diào)用,通過讀取驗(yàn)證文件中的驗(yàn)證規(guī)則對(duì)輸入數(shù)據(jù)進(jìn)行驗(yàn)證,驗(yàn)證文件的命名為ClassName-alias-validation.xml。ClassName表示實(shí)際的Action類名,alias表示在struts.xml中配置的Action的名字。其中,驗(yàn)證器還分為普通驗(yàn)證器和字段驗(yàn)證器。自定義驗(yàn)證器(以實(shí)現(xiàn)驗(yàn)證碼功能為例):1.編寫ValidationCodeAction,用于產(chǎn)生驗(yàn)證碼圖像。2.編寫自定義的結(jié)果類型,用于輸出驗(yàn)證碼。3.在struts.xml中配置自定義結(jié)果類型和ValidationCodeAction。4.修改UserAction,添加驗(yàn)證碼屬性。5.修改login.jsp,添加驗(yàn)證碼輸入框。6.編寫字段驗(yàn)證器類ValidationCodeValidator 7.注冊驗(yàn)證器類ValidationCodeValidator 8.為驗(yàn)證碼編寫驗(yàn)證規(guī)則。? 類型轉(zhuǎn)換::在Http協(xié)議中,瀏覽器(客戶端)和服務(wù)器端的傳輸都是字符串形式的數(shù)據(jù),但在服
務(wù)端的java程序中數(shù)據(jù)是有各種類型的,所以類型轉(zhuǎn)換是不可避免的。(1)使用合法的OGNL表達(dá)式命名表單元素時(shí),Struts2就會(huì)自動(dòng)的進(jìn)行類型轉(zhuǎn)換。(2)Struts2提供基本的類型轉(zhuǎn)換功能。String—int,long,double,boolean,char,date,array,collection(3)Struts2對(duì)集合類型的轉(zhuǎn)換提供了很好的支持。(4)當(dāng)Struts2提供的內(nèi)置類型轉(zhuǎn)換器不能滿足應(yīng)用需求時(shí),還可以編寫自己的類型轉(zhuǎn)換器。
? 什么是AOP?面向切面編程(也叫面向方面),可以通過預(yù)編譯方式和運(yùn)行期動(dòng)態(tài)代理實(shí)現(xiàn)在不修改
源代碼的情況下給程序動(dòng)態(tài)統(tǒng)一添加功能的一種技術(shù)。為什么需要AOP?AOP可以說是OOP的補(bǔ)充和完善。OOP引入封裝、繼承和多態(tài)性等概念來建立一種對(duì)象層次結(jié)構(gòu),用以模擬公共行為的一個(gè)集合。然而OOP在某些場合無能為力,比如當(dāng)需要分散的、不具有繼承層次的對(duì)象引入公共行為的時(shí)候,OOP則無法避免代碼的重復(fù)。抽象的說,OOP允許定義從上倒下的關(guān)系,但并不適合定義從左到右的關(guān)系。具體而言,比如安全驗(yàn)證和記錄日志功能,這類代碼往往平均的分散在所有對(duì)象層次中,而與它所散步到的對(duì)象的核心功能毫無關(guān)系。Spring AOP采用純java實(shí)現(xiàn),無須特別編譯。不僅提供AOP基礎(chǔ)框架,還提供很多現(xiàn)成的切面實(shí)現(xiàn)。Spring AOP和Spring IoC容器無縫的集成,AOP組件享受Spring提供的一切優(yōu)勢,比如可將攔截器、切入點(diǎn)都當(dāng)做Spring Bean來管理。
? AOP的一些概念:關(guān)注點(diǎn):一個(gè)關(guān)注點(diǎn)可以是一個(gè)特定的問題、概念、或是應(yīng)用程序一個(gè)關(guān)注點(diǎn)可
以被識(shí)別為核心關(guān)注點(diǎn)或橫切關(guān)注點(diǎn)。核心關(guān)注點(diǎn):完成核心業(yè)務(wù)邏輯的關(guān)注點(diǎn)。橫切關(guān)注點(diǎn):在AOP中,將那些具有公共邏輯、與其他模塊的核心邏輯糾纏在一起的行為稱為“橫切關(guān)注點(diǎn)”,它不是給定編程模型的核心職責(zé)。比如:身份驗(yàn)證、日志記錄。切面(Aspect):一個(gè)切面是對(duì)一個(gè)橫切關(guān)注點(diǎn)的模塊化,它將那些散落在各處的、實(shí)現(xiàn)關(guān)注點(diǎn)的代碼歸整在一起,其實(shí)就是共有功能的實(shí)現(xiàn)。如日志切面、權(quán)限切面、事務(wù)切面等。在實(shí)際應(yīng)用中通常是一個(gè)存放共有功能實(shí)現(xiàn)的普通Java類。連接點(diǎn)(join point):它是指應(yīng)用中執(zhí)行的某個(gè)點(diǎn),即程序執(zhí)行流程中的某個(gè)點(diǎn)。可能是方法調(diào)用、字
段訪問、異常拋出。建議或通知(Advice):是切面的具體實(shí)現(xiàn)。以目標(biāo)方法為參照點(diǎn),根據(jù)放置的地方不同,可分為前置通知(Before)、后置通知(AfterReturning)與環(huán)繞通知(Around)。切入點(diǎn)(Pointcut):一組join point的總稱,用于定義通知應(yīng)該切入到哪些連接點(diǎn)上。不同的通知通常需要切入到不同的連接點(diǎn)上。主要的功能是:日志記錄,性能統(tǒng)計(jì),安全控制,事務(wù)處理,異常處理等等。主要的意圖是:將日志記錄,性能統(tǒng)計(jì),安全控制,事務(wù)處理,異常處理等代碼從業(yè)務(wù)邏輯代碼中劃分出來,通過對(duì)這些行為的分離,我們希望可以將它們獨(dú)立到非指導(dǎo)業(yè)務(wù)邏輯的方法中,進(jìn)而改變這些行為的時(shí)候不會(huì)影響業(yè)務(wù)邏輯代碼。AOP的實(shí)現(xiàn)技術(shù):JavaSE動(dòng)態(tài)代理、動(dòng)態(tài)字節(jié)碼生成、Java代碼生成、語言擴(kuò)展。建議(advice)是point cut的執(zhí)行代碼,是“切面”執(zhí)行的具體邏輯。前置建議(before advice)在連接點(diǎn)調(diào)用之前,先調(diào)用advice。后置建議(after advice)在連接點(diǎn)調(diào)用之后,再調(diào)用advice成功執(zhí)行后(after returning advice)拋出異常后(after throwing advice)不管是否異常后(after advice)環(huán)繞建議(around advice)完全控制所有連接點(diǎn)引介(introduction)為一個(gè)現(xiàn)有的Java類或接口添加方法或字段。混入繼承(mixin inheritance)一個(gè)混入類封裝了一組功能,這組功能可能被“混入”到現(xiàn)有的類中,并且無需求助于傳統(tǒng)的繼承手段。在AOP里,mixin通過introduction來實(shí)現(xiàn)。織入(weaving)將切面整合到完整的執(zhí)行流程或完成的類。動(dòng)態(tài)橫切:通過切入點(diǎn)和連接點(diǎn)在一個(gè)切面中創(chuàng)建行為的過程。動(dòng)態(tài)橫切通常用于幫助向?qū)ο髮哟沃械母鞣N方法添加安全驗(yàn)證或日志記錄。在很多應(yīng)用場景中,動(dòng)態(tài)橫切基本代表了AOP。動(dòng)態(tài)橫切的核心技術(shù)包括連接點(diǎn)、切入點(diǎn)、建議、切面。靜態(tài)橫切:靜態(tài)橫切和動(dòng)態(tài)橫切的區(qū)別在于,靜態(tài)橫切不修改一個(gè)給定對(duì)象的執(zhí)行行為。相反,它可以把擴(kuò)展和實(shí)現(xiàn)附加到對(duì)象的基本結(jié)構(gòu)中。此外,它通過引入附加的方法字段和屬性來修改對(duì)象的結(jié)構(gòu)。在AOP的實(shí)現(xiàn)中,通常靜態(tài)橫切也就是引入或混入。
? 什么是IOC?控制反轉(zhuǎn),強(qiáng)制將組件的創(chuàng)建和使用分離,通過反射機(jī)制,動(dòng)態(tài)的創(chuàng)建組件已達(dá)到解
耦目的。IOC最大的好處是什么?因?yàn)榘褜?duì)象生成放在了XML里定義,所以當(dāng)我們需要換一個(gè)實(shí)現(xiàn)子類將會(huì)變成很簡單(一般這樣的對(duì)象都是實(shí)現(xiàn)于某種接口的),只要修改XML就可以了,這樣我們甚至可以實(shí)現(xiàn)對(duì)象的熱插撥(有點(diǎn)象USB接口和SCSI硬盤了)IOC最大的缺點(diǎn)是什么?(1)生成一個(gè)對(duì)象的步驟變復(fù)雜了(事實(shí)上操作上還是挺簡單的),對(duì)于不習(xí)慣這種方式的人,會(huì)覺得有些別扭和不直觀。(2)對(duì)象生成因?yàn)槭鞘褂梅瓷渚幊蹋谛噬嫌行p耗。但相對(duì)于IoC提高的維護(hù)性和靈活性來說,這點(diǎn)損耗是微不足道的,除非某對(duì)象的生成對(duì)效率要求特別高。(3)缺少IDE重構(gòu)操作的支持,如果在Eclipse要對(duì)類改名,那么你還需要去XML文件里手工去改了,這似乎是所有XML方式的缺憾所在。
?
? MyBatis實(shí)現(xiàn)步驟:
1、編寫Configuration.xml文件
2、獲取SqlSessionFactory
3、編寫映射器UserMapper.xml;
4、編寫UserDao的實(shí)現(xiàn)。使用Hibernate的步驟(三個(gè)準(zhǔn)備,七個(gè)步驟)三個(gè)準(zhǔn)備:
1、導(dǎo)入Hibernate庫(jar包);
2、添加Hibernate配置文件
3、添加對(duì)應(yīng)表的實(shí)體類和映射文件。七個(gè)步驟:
1、configuration
2、創(chuàng)建SessionFactory3、打開Session4、開始一個(gè)事務(wù)
5、持久化操作
6、提交事務(wù)
7、關(guān)閉Session、?
? 使用HQL步驟
1、得到session2、編寫HQL語句
3、創(chuàng)建Query對(duì)象 持久化對(duì)象的狀態(tài):1.持久化對(duì)象的臨時(shí)狀態(tài)(不在Session的緩存中,不與任何的Session
實(shí)例相關(guān)聯(lián)。在數(shù)據(jù)庫中沒有與之相對(duì)應(yīng)的記錄)2.持久化對(duì)象的持久化狀態(tài)(存在Session的緩存中。持久化對(duì)象映射了數(shù)據(jù)庫中的相關(guān)記錄。Session在清理緩存時(shí),會(huì)同步更新數(shù)據(jù)庫。Session的load()或get()方法返回的對(duì)象總是處于持久化狀態(tài))3.持久化對(duì)象的游離狀態(tài)(脫離Session緩存。游離對(duì)象在數(shù)據(jù)庫中可能存在與之對(duì)應(yīng)的紀(jì)錄,但游離對(duì)象與數(shù)據(jù)庫記錄失去了映射關(guān)系)
? Hibernate---全自動(dòng)化ORM框架 Hibernate是一個(gè)輕量級(jí)、功能強(qiáng)大的ORM框架;提供了完全
透明的持久化機(jī)制,客戶代碼可通過一種完全面向?qū)ο蟮姆绞絹硖幚沓志没鵁o需和SQL打交道;Hibernate管理Java類到數(shù)據(jù)庫的映射(包括Java數(shù)據(jù)類型到SQL數(shù)據(jù)類型的映射)、提供數(shù)據(jù)的CRUD操作;Hibernate內(nèi)置一種稱為HQL的語言,和SQL的語法接近,但不與特定的數(shù)據(jù)庫表或字段發(fā)生直接關(guān)聯(lián),卻又提供了SQL的大部分功能,并且支持類似連接、統(tǒng)計(jì)函數(shù)、批量數(shù)據(jù)等關(guān)系型概念。
使用Hibernate框架進(jìn)行ORM,可大幅度減少開發(fā)時(shí)手工使用SQL和JDBC的出錯(cuò)。優(yōu)點(diǎn):簡單。缺點(diǎn):多了查詢,慢(但實(shí)際對(duì)于一個(gè)JAVA EE應(yīng)用而言,hibernate通常的處理流程是:從數(shù)據(jù)看里加載記錄->將信息發(fā)送到表現(xiàn)層供用戶修改或刪除->將所做修改重新保存到數(shù)據(jù)庫。在這種處理流程下,應(yīng)用本身就需要兩條SQL語句)。
?
? iBats---半自動(dòng)化ORM框架 提供了基于JDBC之上的一層簡單抽象,是一種基于SQL語句映射的低級(jí)別ORM方案,使用原生態(tài)SQL作為查詢語言。OGNL是Object Graph Navigation Language,對(duì)象圖導(dǎo)航語言。ONGL是一種強(qiáng)大的表達(dá)式語言,它通
過簡單一致的表達(dá)式語法來讀取和設(shè)置Java對(duì)象的屬性,調(diào)用對(duì)象的方法,遍歷整個(gè)對(duì)象的結(jié)構(gòu)圖,實(shí)現(xiàn)字段類型轉(zhuǎn)換等功能。WEB容器是指一種安裝在服務(wù)端計(jì)算機(jī)中的特定軟件。此類軟件遵循HTTP協(xié)議,主要功能是負(fù)責(zé)偵聽指定端口,接收客戶端的請(qǐng)求并解析,然后將指定的響應(yīng)頁面發(fā)送到客戶端。EL表達(dá)式EL是一種簡單而強(qiáng)大的語言,提供了在JSP腳本元素范圍外使用運(yùn)行時(shí)表達(dá)式的功能。Web Services應(yīng)用程序組件,使用開放協(xié)議進(jìn)行通信,獨(dú)立的并可自我描述,可通過使用UDDI來發(fā)現(xiàn),可以被其他應(yīng)用程序使用,XML是其基礎(chǔ)。
? Mybatis一個(gè)持久數(shù)據(jù)映射框架,提供了基于JDBC之上的一層簡單抽象,是一種基于SQL語句映射的低級(jí)別ORM方案,使用原生態(tài)SQL作為查詢語言,用來完成數(shù)據(jù)持久化MyBaits基本原理:在XML文件中定義SQL語句,預(yù)留參數(shù)占位符;在運(yùn)行時(shí),占位符被指定的參數(shù)值取代,參數(shù)可能來自參數(shù)映射表、JavaBean屬性、或者簡單的參數(shù)對(duì)象。在執(zhí)行SQL查詢時(shí),結(jié)果字段被映射到對(duì)象,映射的方式與參數(shù)映射一樣。
? ORM框架ORM, Object-Relational Mapping, 對(duì)象-關(guān)系數(shù)據(jù)庫映射框架。在關(guān)系型數(shù)據(jù)庫和業(yè)務(wù)實(shí)體對(duì)
象之間作一個(gè)映射,這樣,我們在具體的操作業(yè)務(wù)對(duì)象的時(shí)候,就不需要再去和復(fù)雜的SQL語句打交道,只要像平時(shí)操作對(duì)象一樣操作它就可以了。
? 攔截器(Interceptor)是Struts2的一個(gè)重要特性。Struts2的大多數(shù)核心功能都是通過攔截器來實(shí)現(xiàn)的,如類型轉(zhuǎn)換、對(duì)象組裝、輸入校驗(yàn)、文件上傳等。Struts2將其大多數(shù)核心功能通過攔截器來實(shí)現(xiàn),而不是分散在Action中實(shí)現(xiàn),有利于系統(tǒng)的解耦,實(shí)現(xiàn)“hot-plug”。需要某個(gè)功能就“plug-in”一個(gè)攔截器,而不需要修改和業(yè)務(wù)相關(guān)的Action代碼。編寫一個(gè)用于安全驗(yàn)證的攔截器第一步:修改UserAction第二步:編寫攔截器類AuthenticationInterceptor extends AbstractInterceptor第三步:配置攔截。
? DI強(qiáng)制將組件的構(gòu)建和使用分開。(組件的生產(chǎn)、組件的使用、接口的定義、運(yùn)行時(shí)注入)。借
助spring框架,實(shí)現(xiàn)工廠的效果。如果類與類之間沒有依賴(不能提取接口),則不用IOC(如果橫向有依賴,即action與action之間有關(guān)系,說明沒有設(shè)計(jì)好)功能太小,也不用IOC,spring是做大系統(tǒng)的。DI有兩種最常用的方式:構(gòu)造注入——保留依賴的先后順序。Set注入——更多使用 步驟:定義組件接口:墨盒接口ink;紙張接口paper;使用接口開發(fā)打印機(jī):printer(使用ink和paper接口)組裝打印機(jī):在printer里。給ink和paper創(chuàng)建set方法創(chuàng)建或得到ink和paper的實(shí)現(xiàn)類。組裝——在src下創(chuàng)建applicationContext.xml(依賴注入)。運(yùn)行打印機(jī)
? Spring框架的一項(xiàng)最基本的功能就是充當(dāng)創(chuàng)建對(duì)象的工廠,具體步驟為:第一步:讀取并
分析spring配置文件(如XML配置文件);第二步:通過反射機(jī)制,創(chuàng)建并集成上述配置文件中的對(duì)象;第三步:將創(chuàng)建的對(duì)象傳回給應(yīng)用代碼。
第三篇:中南大學(xué)軟件學(xué)院架構(gòu)復(fù)習(xí)
? 使用Hibernate框架進(jìn)行ORM,可大幅度減少開發(fā)時(shí)手工使用SQL和JDBC的出錯(cuò)。優(yōu)點(diǎn):簡單。缺
點(diǎn):多了查詢,慢(但實(shí)際對(duì)于一個(gè)JAVA EE應(yīng)用而言,hibernate通常的處理流程是:從數(shù)據(jù)看里加載記錄->將信息發(fā)送到表現(xiàn)層供用戶修改或刪除->將所做修改重新保存到數(shù)據(jù)庫。在這種處理流程下,應(yīng)用本身就需要兩條SQL語句)。
?
? iBats---半自動(dòng)化ORM框架 提供了基于JDBC之上的一層簡單抽象,是一種基于SQL語句映射的低級(jí)別ORM方案,使用原生態(tài)SQL作為查詢語言。OGNL是Object Graph Navigation Language,對(duì)象圖導(dǎo)航語言。ONGL是一種強(qiáng)大的表達(dá)式語言,它通
過簡單一致的表達(dá)式語法來讀取和設(shè)置Java對(duì)象的屬性,調(diào)用對(duì)象的方法,遍歷整個(gè)對(duì)象的結(jié)構(gòu)圖,實(shí)現(xiàn)字段類型轉(zhuǎn)換等功能。WEB容器是指一種安裝在服務(wù)端計(jì)算機(jī)中的特定軟件。此類軟件遵循HTTP協(xié)議,主要功能是負(fù)責(zé)偵聽指定端口,接收客戶端的請(qǐng)求并解析,然后將指定的響應(yīng)頁面發(fā)送到客戶端。EL表達(dá)式EL是一種簡單而強(qiáng)大的語言,提供了在JSP腳本元素范圍外使用運(yùn)行時(shí)表達(dá)式的功能。Web Services應(yīng)用程序組件,使用開放協(xié)議進(jìn)行通信,獨(dú)立的并可自我描述,可通過使用UDDI來發(fā)現(xiàn),可以被其他應(yīng)用程序使用,XML是其基礎(chǔ)。
? Mybatis一個(gè)持久數(shù)據(jù)映射框架,提供了基于JDBC之上的一層簡單抽象,是一種基于SQL語句映射的低級(jí)別ORM方案,使用原生態(tài)SQL作為查詢語言,用來完成數(shù)據(jù)持久化MyBaits基本原理:在XML文件中定義SQL語句,預(yù)留參數(shù)占位符;在運(yùn)行時(shí),占位符被指定的參數(shù)值取代,參數(shù)可能來自參數(shù)映射表、JavaBean屬性、或者簡單的參數(shù)對(duì)象。在執(zhí)行SQL查詢時(shí),結(jié)果字段被映射到對(duì)象,映射的方式與參數(shù)映射一樣。
? ORM框架ORM, Object-Relational Mapping, 對(duì)象-關(guān)系數(shù)據(jù)庫映射框架。在關(guān)系型數(shù)據(jù)庫和業(yè)務(wù)實(shí)體對(duì)
象之間作一個(gè)映射,這樣,我們在具體的操作業(yè)務(wù)對(duì)象的時(shí)候,就不需要再去和復(fù)雜的SQL語句打交道,只要像平時(shí)操作對(duì)象一樣操作它就可以了。
? 攔截器(Interceptor)是Struts2的一個(gè)重要特性。Struts2的大多數(shù)核心功能都是通過攔截器來實(shí)現(xiàn)的,如類型轉(zhuǎn)換、對(duì)象組裝、輸入校驗(yàn)、文件上傳等。Struts2將其大多數(shù)核心功能通過攔截器來實(shí)現(xiàn),而不是分散在Action中實(shí)現(xiàn),有利于系統(tǒng)的解耦,實(shí)現(xiàn)“hot-plug”。需要某個(gè)功能就“plug-in”一個(gè)攔截器,而不需要修改和業(yè)務(wù)相關(guān)的Action代碼。編寫一個(gè)用于安全驗(yàn)證的攔截器第一步:修改UserAction第二步:編寫攔截器類AuthenticationInterceptor extends AbstractInterceptor第三步:配置攔截。
? DI強(qiáng)制將組件的構(gòu)建和使用分開。(組件的生產(chǎn)、組件的使用、接口的定義、運(yùn)行時(shí)注入)。借
助spring框架,實(shí)現(xiàn)工廠的效果。如果類與類之間沒有依賴(不能提取接口),則不用IOC(如果橫向有依賴,即action與action之間有關(guān)系,說明沒有設(shè)計(jì)好)功能太小,也不用IOC,spring是做大系統(tǒng)的。DI有兩種最常用的方式:構(gòu)造注入——保留依賴的先后順序。Set注入——更多使用 步驟:定義組件接口:墨盒接口ink;紙張接口paper;使用接口開發(fā)打印機(jī):printer(使用ink和paper接口)組裝打印機(jī):在printer里。給ink和paper創(chuàng)建set方法創(chuàng)建或得到ink和paper的實(shí)現(xiàn)類。組裝——在src下創(chuàng)建applicationContext.xml(依賴注入)。運(yùn)行打印機(jī)
? Spring框架的一項(xiàng)最基本的功能就是充當(dāng)創(chuàng)建對(duì)象的工廠,具體步驟為:第一步:讀取并
分析spring配置文件(如XML配置文件);第二步:通過反射機(jī)制,創(chuàng)建并集成上述配置文件中的對(duì)象;第三步:將創(chuàng)建的對(duì)象傳回給應(yīng)用代碼。
一、輸入校驗(yàn)(自定義驗(yàn)證器的開發(fā))
1、編寫ValidationCodeAction,用于產(chǎn)生驗(yàn)證碼圖像;
2、編寫自定義的結(jié)果類型,用于輸出驗(yàn)證碼;
3、在struts.xml中配置自定義結(jié)果類型和ValidationCodeAction;
4、修改UserAction,添加驗(yàn)證碼屬性;
5、修改login.jsp,添加驗(yàn)證碼輸入框;
6、編寫字段驗(yàn)證器類ValidationCodeValidator;
7、注冊字段驗(yàn)證器類ValidationCodeValidator;
8、為驗(yàn)證器編寫驗(yàn)證規(guī)則。
二、Ajax應(yīng)用的處理流程
1、一個(gè)客戶端事件觸發(fā)一個(gè)Ajax事件;
2、創(chuàng)建XMLHttpRequest對(duì)象的一個(gè)實(shí)例;
3、向服務(wù)器做出請(qǐng)求;
4、服務(wù)器完成業(yè)務(wù)邏輯;
5、請(qǐng)求返回到瀏覽器;
6、處理響應(yīng)數(shù)據(jù)。
三、MyBatis實(shí)現(xiàn)步驟
1、編寫Configuration.xml文件;
2、獲取SqlSessionFactory;
3、編寫映射器UserMapper.xml;
4、編寫UserDao的實(shí)現(xiàn)。
四、使用Hibernate的步驟(三個(gè)準(zhǔn)備,七個(gè)步驟)
三個(gè)準(zhǔn)備:
1、導(dǎo)入Hibernate庫(jar包);
2、添加Hibernate配置文件
3、添加對(duì)應(yīng)表的實(shí)體類和映射文件。
七個(gè)步驟:
1、configuration2、創(chuàng)建SessionFactory3、打開Session4、開始一個(gè)事務(wù)
5、持久化操作
6、提交事務(wù)
7、關(guān)閉Session
六、為什么需要AOP
AOP可以說是OOP的補(bǔ)充和完善。OOP引入封裝、繼承和多態(tài)性等概念來建立一種對(duì)象層次結(jié)構(gòu),用以模擬公共行為的一個(gè)集合。
然而OOP在某些場合無能為力,比如當(dāng)需要分散的、不具有繼承層次的對(duì)象引入公共行為的時(shí)候,OOP則無法避免代碼的重復(fù)。
抽象的說,OOP允許定義從上倒下的關(guān)系,但并不適合定義從左到右的關(guān)系。
具體而言,比如安全驗(yàn)證和記錄日志功能,這類代碼往往平均的分散在所有對(duì)象層次中,而與它所散步到的對(duì)象的核心功能毫無關(guān)系。
Spring AOP采用純java實(shí)現(xiàn),無須特別編譯。不僅提供AOP基礎(chǔ)框架,還提供很多現(xiàn)成的切面實(shí)現(xiàn)。
Spring AOP和Spring IoC容器無縫的集成,AOP組件享受Spring提供的一切優(yōu)勢,比如可將攔截器、切入點(diǎn)都當(dāng)做Spring Bean來管理。
七、Model I和Model II的區(qū)別
本質(zhì)區(qū)別在于處理批量請(qǐng)求的位置不同。
Model1:結(jié)合JSP頁面和JavaBean來開發(fā)Web應(yīng)用程序。jsp頁面獨(dú)自響應(yīng)請(qǐng)求并將處理結(jié)果返回客戶端。這里仍然存在表達(dá)和內(nèi)容的分離,因?yàn)樗械臄?shù)據(jù)存取都是由bean完成的。缺點(diǎn):內(nèi)容和表示沒有完全解耦,jsp頁面內(nèi)被嵌入大量的腳本片段或java代碼 Model2:采用MVC的設(shè)計(jì)模式,C負(fù)責(zé)轉(zhuǎn)發(fā)請(qǐng)求,對(duì)請(qǐng)求進(jìn)行處理,V顯示數(shù)據(jù),M封裝與應(yīng)用程序的業(yè)務(wù)邏輯相關(guān)的數(shù)據(jù)以及對(duì)數(shù)據(jù)的處理方法。
八、同步通信和異步通信
同步通信方式---請(qǐng)求響應(yīng)模型,在傳統(tǒng)的web應(yīng)用模型下,大部分的用戶操作都會(huì)發(fā)送一個(gè)http請(qǐng)求給服務(wù)器,然后服務(wù)器開始處理(接收數(shù)據(jù),執(zhí)行業(yè)務(wù)邏輯,訪問數(shù)據(jù)庫),最后向?yàn)g覽器返回html頁面。
異步通信方式---XMLHttpRequest對(duì)象,異步發(fā)送請(qǐng)求,消除了傳統(tǒng)的“發(fā)送請(qǐng)求-等待-發(fā)送請(qǐng)求-等待”的特性,極大的提高了用戶體驗(yàn)。
九、Spring1、核心關(guān)注點(diǎn):完成業(yè)務(wù)邏輯的關(guān)注點(diǎn)
2、橫切關(guān)注點(diǎn):實(shí)現(xiàn)代碼散落在很多個(gè)類或方法之中的關(guān)注點(diǎn)。
3、切面:一個(gè)切面是對(duì)一個(gè)橫切關(guān)注點(diǎn)的模塊化,它將那些散落在各處的、實(shí)現(xiàn)關(guān)注點(diǎn)的代碼歸整在一起。
十、持久化對(duì)象的狀態(tài)
? 持久化對(duì)象的臨時(shí)狀態(tài)
不在Session的緩存中,不與任何的Session實(shí)例相關(guān)聯(lián)。在數(shù)據(jù)庫中沒有與之相對(duì)應(yīng)的記錄
? 持久化對(duì)象的持久化狀態(tài)
存在Session的緩存中。持久化對(duì)象映射了數(shù)據(jù)庫中的相關(guān)記錄。Session在清理緩存時(shí),會(huì)同步更新數(shù)據(jù)庫。Session的load()或get()方法返回的對(duì)象總是處于持久化狀態(tài)
? 持久化對(duì)象的游離狀態(tài)
脫離Session緩存。
游離對(duì)象在數(shù)據(jù)庫中可能存在與之對(duì)應(yīng)的紀(jì)錄,但游離對(duì)象與數(shù)據(jù)庫記錄失去了映射關(guān)系
名詞解釋
1、AJAX
一種異步交互技術(shù),JavaScript、CSS、DOM、XmlHttpRequest四種技術(shù)的集合體,主要應(yīng)用于異步獲取后臺(tái)數(shù)據(jù)和局部刷新。消除了傳統(tǒng)的“發(fā)送請(qǐng)求-等待”的特性,極大的提高了用戶體驗(yàn)。
2、XMLHttpRequest(XHR)對(duì)象
XMLHttpRequest是Ajax的核心機(jī)制,是一種支持異步請(qǐng)求的技術(shù)。JavaScript可以及時(shí)向服務(wù)器提出請(qǐng)求和處理響應(yīng),而不阻塞用戶,達(dá)到無刷新的效果。
3、JSTL
JSP Standard Tag Library,由許多公司共同開發(fā)完善的開放源代碼的jsp標(biāo)簽庫,是由apache維護(hù)的。
4、Web Services
應(yīng)用程序組件,使用開放協(xié)議進(jìn)行通信,獨(dú)立的并可自我描述,可通過使用UDDI來發(fā)現(xiàn),可以被其他應(yīng)用程序使用,XML是其基礎(chǔ)。
5、MVC
一種軟件架構(gòu)模式,把軟件系統(tǒng)分為三個(gè)基本部分:模型(Model)、視圖(View)和控制
器(Controller)
6、AOP
面向切面編程,AOP思想的核心是“橫切”,將對(duì)象剖開,抽出一些內(nèi)部的屬性和行為,處理后再將剖面復(fù)原,不留痕跡。
7、Hibernate---全自動(dòng)化ORM框架
Hibernate是一個(gè)對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以使用對(duì)象編程思維來操縱數(shù)據(jù)庫,主要用來完成數(shù)據(jù)持久化的重任。
8、iBats---半自動(dòng)化ORM框架
提供了基于JDBC之上的一層簡單抽象,是一種基于SQL語句映射的低級(jí)別ORM方案,使用原生態(tài)SQL作為查詢語言。
9、ORM
用Java語言設(shè)計(jì)的程序是面向?qū)ο?Object)的,而持久數(shù)據(jù)是存儲(chǔ)在關(guān)系型數(shù)據(jù)庫(Relation)中的,所以需要一種映射機(jī)制(Mapping)。
10.OGNL
ONGL對(duì)象圖導(dǎo)航語言。ONGL是一種強(qiáng)大的表達(dá)式語言,它通過簡單一致的表達(dá)式語法來讀取和設(shè)置Java對(duì)象的屬性,調(diào)用對(duì)象的方法,實(shí)現(xiàn)字段類型轉(zhuǎn)換等功能。
11、國際化(Internationalization)是使程序在不做任何修改的情況下,就可以在不同的國家或地區(qū)和不同的語言環(huán)境下,按照當(dāng)?shù)氐恼Z言和格式習(xí)慣顯示字符,又被稱為I18N。
12、AOP
意為面向切面編程,可以通過預(yù)編譯方式和運(yùn)行期動(dòng)態(tài)代理實(shí)現(xiàn)在不修改源代碼的情況下給程序動(dòng)態(tài)統(tǒng)一添加功能的一種技術(shù)。
13、IOC
控制反轉(zhuǎn),強(qiáng)制將組件的創(chuàng)建和使用分離,通過反射機(jī)制,動(dòng)態(tài)的創(chuàng)建組件已達(dá)到解耦目的。
14.WEB容器
是指一種安裝在服務(wù)端計(jì)算機(jī)中的特定軟件。此類軟件遵循HTTP協(xié)議,主要功能是負(fù)責(zé)偵聽指定端口,接收客戶端的請(qǐng)求并解析,然后將指定的響應(yīng)頁面發(fā)送到客戶端。
15.SERVLET
Servlet是一種獨(dú)立于平臺(tái)和協(xié)議的服務(wù)器端Java應(yīng)用程序。Servlet由Servlet容器加載和運(yùn)行,在Java Web環(huán)境中Servlet容器一般嵌入在Web容器中。主要功能就是響應(yīng)來自客戶端的請(qǐng)求。
16.JSP
用Servlet來編寫Web應(yīng)用,導(dǎo)致服務(wù)端代碼過于繁瑣和復(fù)雜,將Servlet中的靜態(tài)部分和動(dòng)態(tài)部分分開來編寫,同時(shí)提供類似HTML的寫法.JSP是一種建立在Servlet規(guī)范提供的功能之上的動(dòng)態(tài)網(wǎng)頁技術(shù)
17.JSP頁面的執(zhí)行過程
1客戶端發(fā)出請(qǐng)求(Request:Counter.jsp);2.JSP容器將JSP轉(zhuǎn)譯成Servlet的源代碼;
3編譯Servlet,并加載到內(nèi)存執(zhí)行;4將結(jié)果響應(yīng)(Response:Output.html)至客戶端。
18.EL表達(dá)式
EL是一種簡單而強(qiáng)大的語言,提供了在JSP腳本元素范圍外使用運(yùn)行時(shí)表達(dá)式的功能
19.jdbc
JDBC是Java數(shù)據(jù)庫連接(Java Database Connectivity)的簡稱。
是Java平臺(tái)(JavaSE)中用來規(guī)范客戶端程序如何來訪問數(shù)據(jù)庫的應(yīng)用程序接口(API),提供了諸如查詢和更新數(shù)據(jù)庫中數(shù)據(jù)的方法。
軟件開發(fā)人員使用這些標(biāo)準(zhǔn)API來連接和操作數(shù)據(jù)庫,實(shí)現(xiàn)數(shù)據(jù)庫應(yīng)用程序的開發(fā)。
第四篇:天津市大學(xué)軟件學(xué)院軟件工程專升本考試大綱
2013年高職升本專業(yè)考試考試大綱
發(fā)布人:admin 發(fā)布時(shí)間:2012/12/19 16:03:09
天津工業(yè)大學(xué)、天津師范大學(xué)、天津理工大學(xué)
三校聯(lián)考
2013年高職升本專業(yè)考試考試大綱
高職升本科的考試分為文化考試和專業(yè)考試兩個(gè)部分。文化考試由天津市教育招生考試院統(tǒng)一組織進(jìn)行。專業(yè)考試安排如下:
一、專業(yè)課考試時(shí)間
2013年1月21日 上午 9:00-11:00
二、考試科目
面向文理招生,專業(yè)課考試科目為2門,每門滿分100分,共200分。考試時(shí)間120分鐘
三、考試范圍及要求
(一)軟件工程概論
1.軟件工程的概念。
2.軟件工程的基本原理。
3.軟件的生命周期。
4.可行性研究過程。
5.系統(tǒng)流程圖的符號(hào)及表示。
6.數(shù)據(jù)流圖的符號(hào)及表示。
7.需求分析的任務(wù)。
8.總體設(shè)計(jì)的過程,描繪軟件結(jié)構(gòu)的圖形工具。
9.程序流程圖的表示。
10.編碼及其風(fēng)格。
11.軟件測試的目標(biāo)、準(zhǔn)則、方法與步驟。
12.軟件維護(hù)的定義、特點(diǎn)及過程。
13.面向?qū)ο蠓治龅幕具^程
14.面向?qū)ο笤O(shè)計(jì)的準(zhǔn)則。
(二)C語言基礎(chǔ)
1.基本知識(shí):C語言的組成、C語言的特點(diǎn)、C語言的編譯過程;算法的概念和特性;結(jié)構(gòu)化程序設(shè)計(jì)相關(guān)概念;各種數(shù)據(jù)類型的常量和變量表示;運(yùn)算符的使用和表達(dá)式的計(jì)算;輸入與輸出函數(shù)的使用。
2.C程序三種流程設(shè)計(jì):順序結(jié)構(gòu)、選擇型程序設(shè)計(jì)(包括if語句及其嵌套和switch語句);循環(huán)型程序設(shè)計(jì)(包括while語句、do-while語句和for語句);復(fù)合語句的使用;輔助控制語句(包括break語句和continue語句)。
3.?dāng)?shù)組:一維數(shù)組的定義和使用;二維數(shù)組的定義和使用;字符數(shù)組和字符串;常用字符串處理函數(shù)的使用。
4.函數(shù):常用庫函數(shù)的正確調(diào)用;函數(shù)的定義;函數(shù)參數(shù)傳遞和返回值的含義;函數(shù)的調(diào)用;函數(shù)的嵌套調(diào)用和遞歸調(diào)用;數(shù)組作為函數(shù)參數(shù);局部變量和全局變量;變量的存儲(chǔ)類別(自動(dòng),靜態(tài),寄存器,外部);變量的作用域和生存期。
5.編譯預(yù)處理命令:不帶參宏定義和帶參宏定義的使用;“文件包含”的處理。
6.指針:指針與指針變量的概念,指針與地址運(yùn)算符;指針與數(shù)組、字符串和函數(shù)的配合使用。
7.結(jié)構(gòu)體:結(jié)構(gòu)體數(shù)據(jù)的定義和使用;結(jié)構(gòu)體數(shù)組的使用;利用指針操作結(jié)構(gòu)體的方法(鏈表的基本操作)。
第五篇:2012上半年中南大學(xué)軟件學(xué)院軟件工程碩士招生公告
2012年(上半年)中南大學(xué)
軟件工程碩士自主招生公告
一、培養(yǎng)目標(biāo)
根據(jù)國民經(jīng)濟(jì)信息化建設(shè)和軟件產(chǎn)業(yè)迅速發(fā)展的需要,面對(duì)企事業(yè)單位、特別是軟件企業(yè)對(duì)高素質(zhì)軟件工程技術(shù)人才的迫切需求,培養(yǎng)有創(chuàng)新精神、具有國際競爭力的高層次復(fù)合型軟件人才。
二、報(bào)考條件
1、身體健康,品行端正,遵紀(jì)守法;
2、具有國民教育系列大學(xué)本科學(xué)歷和學(xué)士學(xué)位;應(yīng)屆、往屆畢業(yè)生均可;
3、較系統(tǒng)掌握計(jì)算機(jī)專業(yè)基礎(chǔ)知識(shí),具有一定的軟件開發(fā)或軟件項(xiàng)目管理等方面的經(jīng)驗(yàn)和能力,或從事企、事業(yè)單位信息化建設(shè)工作的管理人員和技術(shù)人員。
三、專業(yè)研究方向
1、軟件工程;
2、生物醫(yī)學(xué)信息技術(shù):該方向是現(xiàn)代生命科學(xué)、醫(yī)學(xué)、計(jì)算機(jī)科學(xué)與信息科學(xué)等領(lǐng)域相互交叉,并融合生物信息學(xué)、計(jì)算與系統(tǒng)生物學(xué)、藥物信息學(xué)、醫(yī)學(xué)影像信息學(xué)、醫(yī)學(xué)信息學(xué)等學(xué)科而形成的一門嶄新的前沿學(xué)科。生物醫(yī)學(xué)信息技術(shù)的發(fā)展和應(yīng)用已成為解決現(xiàn)代生物醫(yī)學(xué)領(lǐng)域許多重大問題的關(guān)鍵技術(shù)。該方向研究生歸口我校軟件學(xué)院和生物科學(xué)與技術(shù)學(xué)院共同培養(yǎng)管理。
3、能源系統(tǒng)工程:該方向是工業(yè)節(jié)能、建筑節(jié)能、新能源、新型動(dòng)力技術(shù)、能源管理、節(jié)能評(píng)價(jià)與信息科學(xué)等學(xué)科領(lǐng)域相互交叉形成的一門新興學(xué)科,旨在培養(yǎng)我國能源領(lǐng)域節(jié)能減排、能源管理、能源審計(jì)、能源評(píng)估、節(jié)能技術(shù)評(píng)價(jià)等工作的專業(yè)人才,為我國能源領(lǐng)域各相關(guān)單位儲(chǔ)備人才。該方向研究生歸口我校軟件學(xué)院和能源科學(xué)與工程學(xué)院共同培養(yǎng)管理。
4、金融風(fēng)險(xiǎn)與數(shù)據(jù)挖掘:該方向是根據(jù)國民經(jīng)濟(jì)及軟件產(chǎn)業(yè)發(fā)展的需要,緊密聯(lián)系我國國民經(jīng)濟(jì)和金融保險(xiǎn)業(yè)的發(fā)展趨勢,充分發(fā)揮計(jì)算機(jī)技術(shù)與金融風(fēng)險(xiǎn)分析技術(shù)密切結(jié)合的特色,培養(yǎng)精通現(xiàn)代風(fēng)險(xiǎn)分析、控制與數(shù)據(jù)挖掘理論,掌握扎實(shí)的計(jì)算機(jī)、金融風(fēng)險(xiǎn)分析與數(shù)據(jù)挖掘技術(shù),具有運(yùn)用數(shù)據(jù)挖掘技術(shù)進(jìn)行金融風(fēng)險(xiǎn)分析、處理、評(píng)估及相關(guān)計(jì)算機(jī)軟件的應(yīng)用與開發(fā)能力的高層次復(fù)合型人才。該方向研究生歸口我校軟件學(xué)院和數(shù)學(xué)科學(xué)與計(jì)算技術(shù)學(xué)院共同培養(yǎng)管理。
四、招生人數(shù)
本次計(jì)劃招收200人。
五、報(bào)名、考試及入學(xué)時(shí)間
(一)網(wǎng)上報(bào)名時(shí)間:2012年3月19日 ~ 4月20日。
報(bào)名系統(tǒng)地址:http://202.197.33.69/yjsbm,請(qǐng)報(bào)名考生按照要求填寫本人真實(shí)信息,并上傳本人近期免冠登記電子照片,照片規(guī)格150×200像素(JPG格式)。網(wǎng)上報(bào)考信息不完整者不接受報(bào)名。
(二)現(xiàn)場報(bào)名:
1、報(bào)名時(shí)間:2012年4月21 ~ 22日。
2、報(bào)名地點(diǎn):中南大學(xué)軟件學(xué)院(鐵道校區(qū)電子樓107室-研究生工作辦公室)。
3、報(bào)名程序:
(1)提交下列材料進(jìn)行資格審查
①考生所在單位加蓋人事部門公章(必須)的報(bào)名資格審查表(一式二份,見附件); ②本科畢業(yè)證書原件和復(fù)印件(往屆生提供); ③學(xué)士學(xué)位證書原件和復(fù)印件(往屆生提供); ④本科學(xué)生證原件和復(fù)印件(應(yīng)屆生提供)。
⑤近期同底免冠一寸彩照4張(背面用鉛筆標(biāo)注考生姓名)。
以上5類材料請(qǐng)務(wù)必用檔案袋裝好,檔案袋正面標(biāo)注考生姓名、聯(lián)系電話。現(xiàn)場
報(bào)名材料不完整者不接受報(bào)名。
(2)繳納報(bào)名考試費(fèi)320元。
4、考試時(shí)間:2012年5月5日。
5、入學(xué)時(shí)間:2012年秋季。
六、考試科目
1、綜合考試(200分):內(nèi)容包括數(shù)學(xué)、英語。參考書目:全國工程碩士專業(yè)學(xué)位教育指導(dǎo)委員會(huì)指定的復(fù)習(xí)資料《工程碩士專業(yè)學(xué)位研究生入學(xué)資格考試指南》(科學(xué)技術(shù)文獻(xiàn)出版社)和《工程碩士專業(yè)學(xué)位研究生入學(xué)考試考前輔導(dǎo)教程》(清華大學(xué)出版社)。
2、專業(yè)基礎(chǔ)考試(100分),按報(bào)考方向選一: ?軟件工程方向:軟件工程基礎(chǔ)。
?生物醫(yī)學(xué)信息技術(shù)方向:生物醫(yī)學(xué)信息技術(shù)(軟件工程基礎(chǔ)60%,普通生物學(xué)40%)?能源系統(tǒng)工程方向:能源系統(tǒng)工程(軟件工程基礎(chǔ)60%,傳熱學(xué)20%、工程熱力學(xué)20%)?金融風(fēng)險(xiǎn)與數(shù)據(jù)挖掘方向:專業(yè)綜合(軟件工程基礎(chǔ)60%,統(tǒng)計(jì)學(xué)基礎(chǔ)40%)。參考書目:
陳松喬 主編,《現(xiàn)代軟件工程》,清華大學(xué)出版社。陳閱增 主編,《普通生物學(xué)》,高等教育出版社。楊世銘 主編,《傳熱學(xué)》第三版,高等教育出版社。沈維道 主編,《工程熱力學(xué)》第三版,高等教育出版社。賈俊平主編,《統(tǒng)計(jì)學(xué)》第三版,中國人民大學(xué)出版社。
3、復(fù)試:前兩項(xiàng)筆試成績達(dá)到學(xué)校要求之后,參加學(xué)院組織的復(fù)試。復(fù)試內(nèi)容:專業(yè)綜合考試及面試。
參加2010年由國家統(tǒng)一組織的工程碩士專業(yè)學(xué)位研究生入學(xué)資格考試(GCT),總成績不低于150分(其中英語和數(shù)學(xué)單科成績不低于30分)的考生可持本人的GCT成績單申請(qǐng)免試數(shù)學(xué)和英語(現(xiàn)場報(bào)名時(shí)在軟件學(xué)院研究生辦公室提出書面申請(qǐng))。
七、學(xué)費(fèi)
人民幣3.6萬元/全程(分兩學(xué)年交清,每次1.8萬元)。
八、學(xué)制
彈性學(xué)制2~4年。根據(jù)實(shí)際情況安排在職學(xué)習(xí)形式,上課時(shí)間為節(jié)假日及雙休日。
九、主修課程
軟件工程方向:基礎(chǔ)英語、工程數(shù)學(xué)、自然辯證法、高級(jí)軟件開發(fā)過程、軟件需求工程、面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì)、軟件體系結(jié)構(gòu)、分布式數(shù)據(jù)庫系統(tǒng)、軟件項(xiàng)目管理、軟件能力成熟度模型、軟件測試技術(shù)、IT知識(shí)產(chǎn)權(quán)與法律、國際IT專業(yè)認(rèn)證等。
生物醫(yī)學(xué)信息技術(shù)方向:基礎(chǔ)英語、自然辯證法、軟件基礎(chǔ)、高級(jí)分子生物學(xué)、高級(jí)生物化學(xué)、高級(jí)細(xì)胞生物學(xué)、分子生物學(xué)技術(shù)、生物統(tǒng)計(jì)學(xué)、生物信息學(xué)、藥物信息學(xué)、科研設(shè)計(jì)與選題、生命科學(xué)技術(shù)前沿、生物醫(yī)藥新興產(chǎn)業(yè)、醫(yī)院信息系統(tǒng)與應(yīng)用、衛(wèi)生事業(yè)管理學(xué)、管理心理學(xué)、專題講座、現(xiàn)代人文護(hù)理、軟件工程等。
能源系統(tǒng)工程方向:基礎(chǔ)英語、自然辯證法、軟件基礎(chǔ)、高等傳熱學(xué)、高等工程熱力學(xué)、高等流體力學(xué)、能源系統(tǒng)工程、能源審計(jì)概論、現(xiàn)代熱工測控技術(shù)、能源評(píng)估技術(shù)、節(jié)能技術(shù)及評(píng)價(jià)、鍋爐及熱力系統(tǒng)專論、專題講座、軟件工程等。
金融風(fēng)險(xiǎn)與數(shù)據(jù)挖掘方向:基礎(chǔ)英語、高等工程數(shù)學(xué)、自然辯證法、金融工程、金融風(fēng)險(xiǎn)管理、應(yīng)用統(tǒng)計(jì)學(xué)、期權(quán)期貨及金融衍生產(chǎn)品、商業(yè)銀行管理、精算學(xué)、高級(jí)數(shù)據(jù)庫技術(shù)、軟件應(yīng)用與開發(fā)、數(shù)據(jù)挖掘、軟件項(xiàng)目管理等。
十、學(xué)位授予
學(xué)生在規(guī)定年限之內(nèi)修滿培養(yǎng)方案劃所規(guī)定的學(xué)分,成績合格,完成學(xué)位論文并通過碩士學(xué)位論文答辯,經(jīng)學(xué)位評(píng)定委員會(huì)審核通過后,授予軟件工程碩士專業(yè)學(xué)位,頒發(fā)軟件工程碩士學(xué)位證書。
十一、項(xiàng)目特色
1、中南大學(xué)軟件學(xué)院是全國37所示范性軟件學(xué)院之一,擁有自主劃線招生的資格;
2、工程化特色鮮明:重在培養(yǎng)高層次、實(shí)用型、復(fù)合型、國際化人才,培養(yǎng)模式上更貼近行業(yè)需求;
3、國際化特色鮮明:國際師生互派、交流,國外名師來校講座,國際頂級(jí)IT企業(yè)技術(shù)支持;
4、課程體系靈活:與國內(nèi)外知名高校和頂級(jí)IT企業(yè)合作,借鑒國際上先進(jìn)教學(xué)方法,采用和開發(fā)優(yōu)秀教學(xué)資源;
5、學(xué)習(xí)方式靈活:在職或脫產(chǎn)均可,彈性學(xué)制2~4年;
6、完成所有課程、考試合格、通過論文答辯者,由國家學(xué)位辦授權(quán)中南大學(xué)頒發(fā)軟件工程碩士學(xué)位證書;
7、畢業(yè)生就業(yè)渠道及狀況良好,深受企事業(yè)單位歡迎。
十二、聯(lián)系信息
研究生院招生辦辦公地址:中南大學(xué)校本部三辦公樓3樓
聯(lián)系電話:0731-88876806、0731-88876474(傳真)
軟件學(xué)院辦公地點(diǎn):中南大學(xué)鐵道校區(qū)電子樓107室
聯(lián)系電話/傳真:0731-82539736
生物科學(xué)與技術(shù)學(xué)院辦公地點(diǎn):中南大學(xué)湘雅新校區(qū)后棟471室
聯(lián)系電話/傳真:0731-82650230
能源科學(xué)與工程學(xué)院辦公地點(diǎn):中南大學(xué)能源科學(xué)與工程學(xué)院208室
聯(lián)系電話:0731-88830282,***(陳老師)傳真:0731-8887986
3數(shù)學(xué)科學(xué)與計(jì)算技術(shù)學(xué)院辦公地點(diǎn):中南大學(xué)校本部南校區(qū)第二教學(xué)樓一樓辦公室
聯(lián)系電話:0731-8866017
1中南大學(xué)研究生院招生辦公室 中南大學(xué)軟件學(xué)院
2012年3月10日
附件:資格審查表
2012年在職人員攻讀碩士學(xué)位報(bào)考資格審查表
報(bào)考學(xué)校名稱:中南大學(xué)報(bào)考學(xué)位類別:工程碩士
注:
1、本表須由考生本人如實(shí)填寫,否則所產(chǎn)生的一切后果由考生本人負(fù)責(zé)。
2、學(xué)歷學(xué)位等相應(yīng)信息請(qǐng)一律按照所獲證書上內(nèi)容填寫。如證書上號(hào)碼多于一個(gè),上表中各證書編號(hào)欄請(qǐng)?zhí)顚懽蕴?hào);如無注冊號(hào),請(qǐng)?zhí)顚懽C書上的“證書編號(hào)”或“學(xué)校編號(hào)”等由發(fā)證院校(科研單位)編排的號(hào)碼。通過自學(xué)考試獲得畢業(yè)證書者,“畢業(yè)學(xué)校”請(qǐng)?zhí)顚懴鄳?yīng)省(市)自學(xué)考試委員會(huì)。
3、考生所在單位人事部門須對(duì)考生本人填寫情況進(jìn)行審查確認(rèn)后簽署意見,并在考生照片上加蓋人事部門公章。
4、此資格審查表連同相關(guān)材料一并報(bào)送有關(guān)招生單位,招生單位審核通過后存檔備查。