




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、供給商針對(duì)本工程技術(shù)效勞類總體要求的理解在軟件開(kāi)發(fā)的過(guò)程中,我們一向遵循軟件產(chǎn)品的以下原那么:1、功能性:與一組功能及其指定的性質(zhì)有關(guān)的一組屬性,具體包括:適合性:與規(guī)定任務(wù)能否提供一組功能以及這組功能的適合程度有關(guān)的軟件屬性準(zhǔn)確性:與能否得到正確或相符的結(jié)果或效果有關(guān)的軟件屬性互用性:與同其他指定系統(tǒng)進(jìn)行交互的水平有關(guān)的軟件屬性依從性:使軟件遵循有關(guān)的標(biāo)準(zhǔn),約定,法規(guī)及類似規(guī)定的軟件屬性平安性:與預(yù)防對(duì)程序及數(shù)據(jù)的非授權(quán)的成心或意外訪問(wèn)的水平有關(guān)的軟件屬性2、可靠性:與在規(guī)定的一段時(shí)間和條件下,軟件維持其性能水平的水平有關(guān)的一組屬性,具體包括:成熟性:與由軟件故障引起失效的頻度有關(guān)的軟件屬性
2、容錯(cuò)性:與在軟件故障或違反指定接口的情況下,維持規(guī)定的性能水平的水平有關(guān)的軟件屬性易恢復(fù)性:與在失效發(fā)生后,重建其性能水平并恢復(fù)直接受影響數(shù)據(jù)的水平以及為達(dá)此目的所需的時(shí)間和水平有關(guān)的軟件屬性3、易用性:與一組規(guī)定或潛在的用戶為使用軟件所需作的努力和對(duì)這樣的使用所作的評(píng)價(jià)有關(guān)的一組屬性,具體包括:易理解性:與用戶為熟悉邏輯概念及其應(yīng)用范圍所花的努力有關(guān)的軟件屬性易學(xué)性:與用戶為學(xué)習(xí)軟件應(yīng)用所花的努力有關(guān)的軟件屬性易操作性:與用戶為操作和運(yùn)行限制所花努力有關(guān)的軟件屬性4、效率:與在規(guī)定的條件下,軟件的性能水平與所使用資源量之間關(guān)系有關(guān)的一組屬性,具體包括:時(shí)間特性:與軟件執(zhí)行其功能時(shí)響應(yīng)和處理時(shí)
3、間以及吞吐量有關(guān)的軟件屬性資源特性:與在軟件執(zhí)行其功能時(shí)所使用的資源數(shù)量及其使用時(shí)間有關(guān)的軟件屬性5、可維護(hù)性:與進(jìn)行指定的修改所需的努力有關(guān)的一組屬性,具體包括:易分析性:與為診斷缺陷或失效原因及為判定待修改的局部所需努力有關(guān)的軟件屬性易改變性:與進(jìn)行修改,排除錯(cuò)誤或適應(yīng)環(huán)境變化所需努力有關(guān)的軟件屬性穩(wěn)定性:與修改所造成的未預(yù)料結(jié)果的風(fēng)險(xiǎn)有關(guān)的軟件屬性易測(cè)試性:與確認(rèn)已修改軟件所需的努力有關(guān)的軟件屬性6、可移植性:與軟件可從某一環(huán)境轉(zhuǎn)移到另一環(huán)境的水平有關(guān)的一組屬性,具體包括:適應(yīng)性:與軟件無(wú)需采用有別于為該軟件準(zhǔn)備的活動(dòng)或手段就可能適應(yīng)不同的規(guī)定環(huán)境有關(guān)的軟件屬性易安裝性:與在指定環(huán)境下安
4、裝軟件所需努力有關(guān)的軟件屬性遵循性:使軟件遵循與可移植性有關(guān)的標(biāo)準(zhǔn)或約定的軟件屬性易替換性:與軟件在該軟件環(huán)境中用來(lái)替代指定的其他軟件的時(shí)機(jī)和努力有關(guān)的軟件屬性基于以上原那么,根據(jù)工程的不同需求,我們將會(huì)考慮采用B/S和C/S兩種模式開(kāi)發(fā).1、B/S模式B/S是Brower/Server的縮寫,客戶機(jī)上只要安裝一個(gè)瀏覽器Browser,如NetscapeNavigator或InternetExplorer,效勞器安裝Oracle、Sybase>Informix或SQLServer等數(shù)據(jù)庫(kù).瀏覽器通過(guò)WebServer同數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互.B/S模式較C/S模式:C/S模式客戶端需要安裝專
5、用的客戶端軟件.首先涉及到安裝的工作量,其次任何一臺(tái)電腦出問(wèn)題,如病毒、硬件損壞,都需要進(jìn)行安裝或維護(hù).特別是有很多分部的情況,不是工作量的問(wèn)題,而是路程的問(wèn)題.還有,系統(tǒng)軟件升級(jí)時(shí),每一臺(tái)客戶機(jī)需要重新安裝,其維護(hù)和升級(jí)本錢非常高.C/S模式對(duì)客戶端的操作系統(tǒng)一般也會(huì)有限制,可能適應(yīng)于Windows系列操作系統(tǒng),而不適用于Linux、Unix等操作系統(tǒng).而B(niǎo)/S最大的優(yōu)點(diǎn)就是可以在任何地方進(jìn)行操作而不用安裝任何專門的軟件.只要有一臺(tái)能上網(wǎng)的電腦就能使用,客戶端零維護(hù).系統(tǒng)的擴(kuò)展非常容易,只要能上網(wǎng),再由系統(tǒng)管理員分配一個(gè)用戶名和密碼,就可以使用了.甚至可以在線申請(qǐng),通過(guò)公司內(nèi)部的平安認(rèn)證如C
6、A證書(shū)后,不需要人的參與,系統(tǒng)可以自動(dòng)分配給用戶一個(gè)賬號(hào)進(jìn)入系統(tǒng),這在最大程度上滿足了工程要求.系統(tǒng)采用的是目前較流行的一種Web應(yīng)用程序開(kāi)源框架-Struts+Spring+HibernateSSH.集成SSH1架的系統(tǒng)從責(zé)任上分為四層:表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層和域模塊層,以幫助開(kāi)發(fā)人員在短期內(nèi)搭建結(jié)構(gòu)清楚、可復(fù)用性好、維護(hù)方便的Web應(yīng)用程序.其中使用Struts作為系統(tǒng)的整體根底架構(gòu),負(fù)責(zé)MVC的別離,在Struts框架的模型局部,利用Hibernate框架對(duì)持久層提供支持,業(yè)務(wù)層用Spring支持.具體做法是:用面向?qū)ο蟮姆治龇椒ǜ鶕?jù)需求提出一些模型,將這些模型實(shí)現(xiàn)為根本的Jav
7、a對(duì)象,然后編寫根本的DAO接口,并給出Hibernate的DAO實(shí)現(xiàn),采用Hibernate架構(gòu)實(shí)現(xiàn)的DAO類來(lái)實(shí)現(xiàn)Java類與數(shù)據(jù)庫(kù)之間的轉(zhuǎn)換和訪問(wèn),最后由Spring完成業(yè)務(wù)邏輯.系統(tǒng)的根本業(yè)務(wù)流程是:在表示層中,首先通過(guò)JSP頁(yè)面實(shí)現(xiàn)交互界面,負(fù)責(zé)傳送請(qǐng)求Request和接收響應(yīng)Response,然后Struts根據(jù)配置文件將ActionServlet接收到的Request委派給相應(yīng)的Action處理.在業(yè)務(wù)層中,治理效勞組件的SpringIoC容器負(fù)責(zé)向Action提供業(yè)務(wù)模型Model組件和該組件的協(xié)作對(duì)象數(shù)據(jù)處理DAO組件完成業(yè)務(wù)邏輯,并提供事務(wù)處理、緩沖池等容器組件以提升系統(tǒng)性
8、能和保證數(shù)據(jù)的完整性.而在持久層中,那么依賴于Hibernate的對(duì)象化映射和數(shù)據(jù)庫(kù)交互,處理DAO組件請(qǐng)求的數(shù)據(jù),并返回處理結(jié)果.采用上述開(kāi)發(fā)模型,不僅實(shí)現(xiàn)了視圖、限制器與模型的徹底別離,而且還實(shí)現(xiàn)了業(yè)務(wù)邏輯層與持久層的別離.這樣無(wú)論前端如何變化,模型層只需很少的改動(dòng),并且數(shù)據(jù)庫(kù)的變化也不會(huì)對(duì)前端有所影響,大大提升了系統(tǒng)的可復(fù)用性.而且由于不同層之間耦合度小,有利于團(tuán)隊(duì)成員并行工作,大大提升了開(kāi)發(fā)效率的同時(shí),也保證了軟件產(chǎn)品的質(zhì)量.2、C/S模式C/SClient/Server,客戶機(jī)/效勞器模式又稱C/S結(jié)構(gòu),是20世紀(jì)80年代末逐步成長(zhǎng)起來(lái)的一種模式,是軟件系統(tǒng)體系結(jié)構(gòu)的一種.C/S結(jié)構(gòu)
9、的關(guān)鍵在于功能的分布,一些功能放在前端機(jī)即客戶機(jī)上執(zhí)行,另一些功能放在后端機(jī)即效勞器上執(zhí)行.功能的分布在于減少計(jì)算機(jī)系統(tǒng)的各種瓶頸問(wèn)題.C/S模式簡(jiǎn)單地講就是基于企業(yè)內(nèi)部網(wǎng)絡(luò)的應(yīng)用系統(tǒng).與B/SBrowser/Server,瀏覽器/效勞器模式相比,C/S模式的應(yīng)用系統(tǒng)最大的好處是不依賴企業(yè)外網(wǎng)環(huán)境,即無(wú)論企業(yè)是否能夠上網(wǎng),都不影響應(yīng)用.C/S結(jié)構(gòu)效勞器通常采用高性能的PG工作站或小型機(jī),并采用大型數(shù)據(jù)庫(kù)系統(tǒng),如ORACLESYBASEInfORMix或SQLServer.客戶端需要安裝專用的客戶端軟件.C/S結(jié)構(gòu)的優(yōu)點(diǎn)是能充分發(fā)揮客戶端PC的處理水平,很多工作可以在客戶端處理后再提交給效勞器,
10、因此對(duì)應(yīng)的優(yōu)點(diǎn)就是客戶端響應(yīng)速度快.C/S架構(gòu)軟件的優(yōu)勢(shì)與劣勢(shì):1應(yīng)用效勞器運(yùn)行數(shù)據(jù)負(fù)荷較輕.最簡(jiǎn)單的C/S體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)應(yīng)用由兩局部組成,即客戶應(yīng)用程序和數(shù)據(jù)庫(kù)效勞器程序.二者可分別稱為前臺(tái)程序與后臺(tái)程序.運(yùn)行數(shù)據(jù)庫(kù)效勞器程序的機(jī)器,也稱為應(yīng)用效勞器.一旦效勞器程序被啟動(dòng),就隨時(shí)等待響應(yīng)客戶程序發(fā)來(lái)的請(qǐng)求;客戶應(yīng)用程序運(yùn)行在用戶自己的電腦上,對(duì)應(yīng)于數(shù)據(jù)庫(kù)效勞器,可稱為客戶電腦,當(dāng)需要對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行任何操作時(shí),客戶程序就自動(dòng)地尋找效勞器程序,并向其發(fā)出請(qǐng)求,效勞器程序根據(jù)預(yù)定的規(guī)那么作出應(yīng)答,送回結(jié)果,應(yīng)用效勞器運(yùn)行數(shù)據(jù)負(fù)荷較輕.2數(shù)據(jù)的儲(chǔ)存治理功能較為透明.在數(shù)據(jù)庫(kù)應(yīng)用中,數(shù)據(jù)的儲(chǔ)存
11、治理功能,是由服務(wù)器程序和客戶應(yīng)用程序分別獨(dú)立進(jìn)行的,并且通常把那些不同的不管是還是未知的前臺(tái)應(yīng)用所不能違反的規(guī)那么,在效勞器程序中集中實(shí)現(xiàn),例如訪問(wèn)者的權(quán)限,編號(hào)可以重復(fù)、必須有客戶才能建立定單這樣的規(guī)那么.所有這些,對(duì)于工作在前臺(tái)程序上的最終用戶,是“透明的,他們無(wú)須過(guò)問(wèn)通常也無(wú)法干預(yù)背后的過(guò)程,就可以完成自己的一切工作.在客戶效勞器架構(gòu)的應(yīng)用中,前臺(tái)程序不是非?!笆菪?麻煩的事情都交給了效勞器和網(wǎng)絡(luò).在C/S體系的下,數(shù)據(jù)庫(kù)不能真正成為公共、專業(yè)化的倉(cāng)庫(kù),它受到獨(dú)立的專門治理.C/S模式系統(tǒng)的開(kāi)發(fā):C/S結(jié)構(gòu)是建立在中間件產(chǎn)品根底之上的,要求應(yīng)用開(kāi)發(fā)者自己去處理事務(wù)治理、消息隊(duì)列、數(shù)據(jù)的
12、復(fù)制和同步、通信平安等系統(tǒng)級(jí)的問(wèn)題.這對(duì)應(yīng)用開(kāi)發(fā)者提出了較高的要求,而且迫使應(yīng)用開(kāi)發(fā)者投入很多精力來(lái)解決應(yīng)用程序以外的問(wèn)題.這使得應(yīng)用程序的維護(hù)、移植和互操作變得復(fù)雜.如果客戶端是在不同的操作系統(tǒng)上,C/S結(jié)構(gòu)的軟件需要開(kāi)發(fā)不同版本的客戶端軟件.但是,與B/S結(jié)構(gòu)相比,C/S技術(shù)開(kāi)展歷史更為“悠久.從技術(shù)成熟度及軟件設(shè)計(jì)、開(kāi)發(fā)人員的掌握水平來(lái)看,C/S技術(shù)應(yīng)是更成熟、更可靠的.工程總體架構(gòu)及技術(shù)解決方案一、工程總體架構(gòu)一、SSHM架介紹和分析大型企業(yè)級(jí)Web應(yīng)用系統(tǒng)的開(kāi)發(fā)通常要求有一個(gè)良好的軟件架構(gòu)、便于協(xié)作開(kāi)發(fā)和擴(kuò)展升級(jí),而傳統(tǒng)的開(kāi)發(fā)模式不能很好地滿足這些要求.基于當(dāng)前Web應(yīng)用程序開(kāi)發(fā)面臨
13、的問(wèn)題,工程結(jié)合目前比擬流行的開(kāi)源框架SSHSpring、Struts、Hibernate,具體討論其根本相似性及有關(guān)根本概念,提出了一種開(kāi)發(fā)JavaEEWeb應(yīng)用的輕量級(jí)解決方案,此系統(tǒng)架構(gòu)可以在短期內(nèi)搭建結(jié)構(gòu)清楚、可復(fù)用性好、可擴(kuò)展性好、維護(hù)方便的Web應(yīng)用程序.1、框架技術(shù)框架一般具有即插即用的可重用性、成熟的穩(wěn)定性以及良好的團(tuán)隊(duì)協(xié)作性.JavaEE復(fù)雜的多層結(jié)構(gòu)決定了大型的JavaEE工程需要運(yùn)用框架和設(shè)計(jì)模式來(lái)限制軟件質(zhì)量.目前,市場(chǎng)上出現(xiàn)了一些商業(yè)的、開(kāi)源的基于JavaEE的應(yīng)用框架,其中主流的框架技術(shù)有:基于MVC莫式的Struts框架、基于IoC模式的Spring框架以及對(duì)象/
14、關(guān)系映射框架Hibernate2、框架共同點(diǎn)所有現(xiàn)代的網(wǎng)絡(luò)開(kāi)發(fā)框架幾乎都遵循了模型-視圖-限制MVC設(shè)計(jì)模式:商業(yè)邏輯和描述被分開(kāi),由一個(gè)邏輯流限制器來(lái)協(xié)調(diào)來(lái)自客戶端的請(qǐng)求和效勞器上將采取的行動(dòng).這條途徑成為了網(wǎng)絡(luò)開(kāi)發(fā)的事實(shí)上的標(biāo)準(zhǔn).每個(gè)框架的內(nèi)在的機(jī)制當(dāng)然是不同的,但是開(kāi)發(fā)者們使用來(lái)設(shè)計(jì)和實(shí)現(xiàn)他們的Web應(yīng)用軟件的API是很類似的.差異還存在于每個(gè)框架提供的擴(kuò)展方面,例如標(biāo)簽庫(kù),JavaBean包裝器等.所有的框架使用不同的技術(shù)來(lái)協(xié)調(diào)在WebS用程序之內(nèi)的導(dǎo)航,例如XM不己制文件,java屬性文件或定制屬性.所有的框架在限制器模塊實(shí)現(xiàn)的方法方面也存在明顯的不同.例如,EJB可能實(shí)例化在每個(gè)請(qǐng)
15、求中需要的類或使用Java反射動(dòng)態(tài)地調(diào)用一個(gè)適當(dāng)?shù)男袨锳ction類.另外,不同框架在各自引入的概念上也有所不同.例如,一個(gè)框架可能定義用戶請(qǐng)求和反響場(chǎng)所,而另外一個(gè)框架可能僅僅定義一個(gè)完整的流:從一個(gè)請(qǐng)求到多個(gè)響答和隨后的再請(qǐng)求.各種Java框架在它們組織數(shù)據(jù)流的方法方面是很類似的.在請(qǐng)求發(fā)出后,在應(yīng)用程序效勞器上產(chǎn)生一些行動(dòng);而作為響應(yīng),一些可能包含對(duì)象集的數(shù)據(jù)總是被發(fā)送到WEBB.然后從那些對(duì)象:可能是有setter和getter方法的簡(jiǎn)單類、JAVABEANS值對(duì)象、或者一些集合對(duì)象中提取數(shù)據(jù).現(xiàn)代的Java框架還想方設(shè)法簡(jiǎn)化開(kāi)發(fā)者的開(kāi)發(fā)任務(wù),如通過(guò)使用簡(jiǎn)易的API、數(shù)據(jù)庫(kù)連接池、甚至
16、數(shù)據(jù)庫(kù)調(diào)用包等提供自動(dòng)化的追蹤方式來(lái)實(shí)現(xiàn).一些框架或者能夠卒進(jìn)hookedinto另外的JavaEE技術(shù)中,例如JMSJava消息效勞或JMX,或把這些技術(shù)集成到一起.效勞器數(shù)據(jù)持續(xù)性和日志也有可能成為框架的一局部.3、MVO式MVC莫式是一個(gè)用于將用戶界面邏輯與業(yè)務(wù)邏輯別離開(kāi)來(lái)的根底設(shè)計(jì)模式,它將數(shù)據(jù)處理、界面以及用戶的行為限制分為:Model模型View視圖Controller限制器Model:負(fù)責(zé)當(dāng)前應(yīng)用的數(shù)據(jù)獲取與變更及相關(guān)的業(yè)務(wù)邏輯.可用JAVABEA陳表達(dá);View:負(fù)責(zé)顯示信息.可以使用JSP、VELOCITY莫板等技術(shù);Controller:負(fù)責(zé)收集轉(zhuǎn)化用戶的輸入.常用一個(gè)SE
17、RVLETB實(shí)現(xiàn);View和Controller都依賴于Model,但是Model既不依賴于View,也不依賴于Controller,這是別離的主要優(yōu)點(diǎn)之一,這樣Model可以單獨(dú)的建立和測(cè)試以便于代碼復(fù)用,View和Controller只需要Model提供數(shù)據(jù),它們不會(huì)知道、也不會(huì)關(guān)心數(shù)據(jù)是存儲(chǔ)在SQLServer還是Oracle數(shù)據(jù)庫(kù)中或者別的什么地方.4、WEB層框架StrutsStruts是一個(gè)在JSPModel2根底上實(shí)現(xiàn)的MVC1架,其主要的設(shè)計(jì)理念是通過(guò)限制器將表現(xiàn)邏輯和業(yè)務(wù)邏輯解耦,以提升系統(tǒng)的可維護(hù)性、可擴(kuò)展性及可重用性.Struts框架的體系結(jié)構(gòu)如下列圖所示:儲(chǔ)架的體累端種
18、下面就上圖所示的體系結(jié)構(gòu)圖分析Struts框架中的MVC1件.視圖(view):視圖局部主要由JSP頁(yè)面組成,其中沒(méi)有流程邏輯、業(yè)務(wù)邏輯和模型信息,只有標(biāo)記.Struts自身包含了一組標(biāo)記庫(kù)(TagLib),這也是Struts的精華之一,靈活運(yùn)用它們可以簡(jiǎn)化JSP頁(yè)面的代碼,提升開(kāi)發(fā)效率.限制器(controller):Struts中的Controller主要是其自身提供的ActionServlet.ActionServlet接收所有來(lái)自客戶端的請(qǐng)求并根據(jù)配置文件中的定義將限制轉(zhuǎn)移到適當(dāng)?shù)腁ction對(duì)象.模型(model):Struts沒(méi)有定義具體Model層的實(shí)現(xiàn),Model層通常是和業(yè)務(wù)
19、邏輯緊密相關(guān)的,有持續(xù)化的要求.目前在商業(yè)領(lǐng)域和開(kāi)源世界,都有一些優(yōu)秀的工具可以為Model層的開(kāi)發(fā)提供便利.5、業(yè)務(wù)邏輯層框架SpringSpring是一個(gè)解決了許多JavaEE開(kāi)發(fā)中常見(jiàn)問(wèn)題并能夠替代EJB技術(shù)的強(qiáng)大的輕量級(jí)框架.這里所說(shuō)的輕量級(jí)指的是Spring框架本身,而不是指Spring只能用于輕量級(jí)的應(yīng)用開(kāi)發(fā).Spring的輕盈表達(dá)在其框架本身的根底結(jié)構(gòu)以及對(duì)其他應(yīng)用工具的支持和裝配水平.與EJB這種龐然大物相比,Spring可使程序研發(fā)人員把各個(gè)技術(shù)層次之間的風(fēng)險(xiǎn)降低.Spring框架的核心是限制翻轉(zhuǎn)IoCInversionofControl/依賴注入DIDependenceIn
20、jection機(jī)制.IoC是指由容器中限制組件之間的關(guān)系這里,容器是指為組件提供特定效勞和技術(shù)支持的一個(gè)標(biāo)準(zhǔn)化的運(yùn)行時(shí)的環(huán)境而非傳統(tǒng)實(shí)現(xiàn)中由程序代碼直接操控,這種將限制權(quán)由程序代碼到外部容器的轉(zhuǎn)移,稱為“翻轉(zhuǎn).DI是對(duì)IoC更形象的解釋,即由容器在運(yùn)行期間動(dòng)態(tài)地將依賴關(guān)系如構(gòu)造參數(shù)、構(gòu)造對(duì)象或接口注入到組件之中.Spring采用設(shè)值注入使用Setter方法實(shí)現(xiàn)依賴和構(gòu)造子注入在構(gòu)造方法中實(shí)現(xiàn)依賴的機(jī)制,通過(guò)配置文件治理組建的協(xié)作對(duì)象,創(chuàng)立可以構(gòu)造組件的IoC容器.這樣,不需要編寫工廠模式、單例模式或者其他構(gòu)造的方法,就可以通過(guò)容器直接獲取所需的業(yè)務(wù)組件.Spring框架的結(jié)構(gòu)如下列圖所示.?品
21、*假架模映酬或Spring框架由七個(gè)定義明確的模塊組成,且每個(gè)模塊或組件都可以單獨(dú)存在,或者與其他一個(gè)或多個(gè)模塊聯(lián)合實(shí)現(xiàn).SpringCoreContainer是一個(gè)用來(lái)治理業(yè)務(wù)組件的IoC容器,是Spring應(yīng)用的核心;SpringDAO和SpringORM不僅提供數(shù)據(jù)訪問(wèn)的抽象模塊,還集成了對(duì)Hibernate、JDO和iBatis等流行的對(duì)象關(guān)系映射框架的支持模塊,并且提供了緩沖連接池、事務(wù)處理等重要的效勞功能,保證了系統(tǒng)的性能和數(shù)據(jù)的完整性;SprnigWeb模塊提供了Web應(yīng)用的一些抽象圭可以將Struts、Webwork等Web框架與Spring整合成為適用于自己的解決方案.Spr
22、ing框架可以成為企業(yè)級(jí)應(yīng)用程序一站式的解決方案,同時(shí)它也是模塊化的框架,允許開(kāi)發(fā)人員自由地挑選適合自己應(yīng)用的模塊進(jìn)行開(kāi)發(fā).Spring框架式是一個(gè)松耦合的框架,框架的局部耦合度被設(shè)計(jì)為最小,在各個(gè)層次上具體選用哪個(gè)框架取決于開(kāi)發(fā)者的需要.6、持久層框架HibernateO/Rmapping技術(shù)是為了解決關(guān)系型數(shù)據(jù)庫(kù)和面向?qū)ο蟮某绦蛟O(shè)計(jì)之間不匹配的矛盾而產(chǎn)生的.Hibernate是目前最為流行的O/Rmapping框架,它也是開(kāi)源軟件,它在關(guān)系型數(shù)據(jù)庫(kù)和Java對(duì)象之間做了一個(gè)自動(dòng)映射,使得程序員可以以非常簡(jiǎn)單的方式實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作,它不僅負(fù)責(zé)從Java類到數(shù)據(jù)庫(kù)表格以及來(lái)自Java數(shù)據(jù)類型
23、的SQL數(shù)據(jù)類型的映射,而且還提供數(shù)據(jù)查詢和檢索水平,并能大大減少花在SQL和JDBC手工數(shù)據(jù)處理上的開(kāi)發(fā)時(shí)間.Hibernate工作原理如下列圖所示:應(yīng)用電序持久對(duì)華I配.件II跟時(shí)文件I=-惦*Hibernate通過(guò)對(duì)JDBC的封裝,向程序員屏蔽了底層的數(shù)據(jù)庫(kù)操作,使程序員專注于OO程序的開(kāi)發(fā),有助于提升開(kāi)發(fā)效率.程序員訪問(wèn)數(shù)據(jù)庫(kù)所需要做的就是為持久化對(duì)象編制xml映射文件.底層數(shù)據(jù)庫(kù)的改變只需要簡(jiǎn)單地更改初始化配置文件或者即可,不會(huì)對(duì)應(yīng)用程序產(chǎn)生影響.Hibernate有自己的面向?qū)ο蟮牟樵冋Z(yǔ)言HQLHQL功能強(qiáng)大,支持目前大局部主流的數(shù)據(jù)庫(kù),如Oracle、DB2MySQLMicros
24、oftSQLServer等,是目前應(yīng)用最廣泛的O/R映射工具.Hibernate為快速開(kāi)發(fā)應(yīng)用程序提供了底層的支持.二、基于SSHlf架的Web應(yīng)用架構(gòu)分析與設(shè)計(jì)前面分析了基于JavaEE的SSH匡架技術(shù),現(xiàn)代的企業(yè)開(kāi)發(fā)中,越來(lái)越多地引入了多層架構(gòu)設(shè)計(jì)模式.SSH就是其中之一,SSH架構(gòu)是當(dāng)前主流的架構(gòu),在很多領(lǐng)域,包括金融、電信工程,大型門戶網(wǎng)站均選擇該架構(gòu)作為業(yè)務(wù)支撐架構(gòu),開(kāi)發(fā)流程也已經(jīng)非常成熟.但是該結(jié)構(gòu)開(kāi)發(fā)起來(lái),依舊存在一些問(wèn)題.分析這些問(wèn)題,得先從SSH架構(gòu)的組成說(shuō)起.SSH為Struts+Spring+Hibernate的組成方式,Struts實(shí)現(xiàn)MVCSpring負(fù)責(zé)架構(gòu)的結(jié)合,
25、Hibernate進(jìn)行數(shù)據(jù)的持久化.通常其分層開(kāi)發(fā)的結(jié)構(gòu)圖如下:編與ELbemat曰Mapping文件和特大化實(shí)體類分析模塊所要涉及的表確定表之間的美系編寫帥3和實(shí)現(xiàn)根黯塊需要的各彳忖寺久化操作,確定對(duì)立方法編耳溫mi接口方法及實(shí)現(xiàn)編寫業(yè)務(wù)了透輯相用出演作編寫Action及對(duì)應(yīng)Fcimt用于處理頁(yè)面和業(yè)招邏輯的交互對(duì)裁據(jù)進(jìn)行必要的躺證、轉(zhuǎn)換丁SF頁(yè)面對(duì)好數(shù)據(jù)進(jìn)行呈現(xiàn)并對(duì)用戶的非法群作逑行適當(dāng)?shù)南拗七@樣的結(jié)構(gòu),系統(tǒng)從責(zé)任上分為四層:WEBB、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層和實(shí)體層.其中使用Struts作為系統(tǒng)的整體根底架構(gòu),負(fù)責(zé)MVC勺別離,在Struts框架的模型局部,利用Hibernate框架對(duì)持久
26、層提供支持,業(yè)務(wù)層用Spring支持.具體做法是:用面向?qū)ο蟮姆治龇椒ǜ鶕?jù)需求提出一些模型,將這些模型實(shí)現(xiàn)為根本的Java對(duì)象,然后編寫根本的DAO接口,并給出Hibernate的DAO現(xiàn),采用Hibernate架構(gòu)實(shí)現(xiàn)的DAOI來(lái)實(shí)現(xiàn)Java類與數(shù)據(jù)庫(kù)之間的轉(zhuǎn)換和訪問(wèn),最后由Spring完成業(yè)務(wù)邏輯.系統(tǒng)的根本業(yè)務(wù)流程是:在WEB!示層中,首先通過(guò)JSP頁(yè)面實(shí)現(xiàn)交互界面,負(fù)責(zé)傳送請(qǐng)求(Request)和接收響應(yīng)(Response),然后Struts根據(jù)配置文件將ActionServlet接收到的Request委派給相應(yīng)的Action處理.在業(yè)務(wù)層中,治理效勞組件的SpringIoC容器負(fù)責(zé)向
27、Action提供業(yè)務(wù)模型(Model)組件和該組件的協(xié)作對(duì)象數(shù)據(jù)處理(DAO)組件完成業(yè)務(wù)邏輯,并提供事務(wù)處理、緩沖池等容器組件以提升系統(tǒng)性能和保證數(shù)據(jù)的完整性.而在持久層中,那么依賴于Hibernate的對(duì)象化映射和數(shù)據(jù)庫(kù)交互,處理DAOS件請(qǐng)求的數(shù)據(jù),并返回處理結(jié)果.采用上述開(kāi)發(fā)模型,不僅實(shí)現(xiàn)了視圖、限制器與模型的徹底別離,而且還實(shí)現(xiàn)了業(yè)務(wù)邏輯層與持久層的別離.這樣無(wú)論前端如何變化,模型層只需很少的改動(dòng),并且數(shù)據(jù)庫(kù)的變化也不會(huì)對(duì)前端有所影響,大大提升了系統(tǒng)的可復(fù)用性.而且由于不同層之間耦合度小,有利于團(tuán)隊(duì)成員并行工作,大大提升了開(kāi)發(fā)效率.但是對(duì)于當(dāng)前日益復(fù)雜化的的開(kāi)發(fā),卻存在不少問(wèn)題,歸納
28、起來(lái)主要有以下的缺乏:DAO效勞層容易出現(xiàn)責(zé)任不明,由于根據(jù)MV受輯,業(yè)務(wù)代碼應(yīng)該寫在StrutsAction里,但是其事務(wù)的提供,卻是配置在Service層.為了一組在邏輯上完整的數(shù)據(jù)操作業(yè)務(wù)邏輯,需要涉及兩個(gè)層Service、Action來(lái)進(jìn)行編寫,遇到判斷的情況下,為了保證完整的事務(wù)操作,那么需要將業(yè)務(wù)代碼移到Service層完成,而通常習(xí)慣了在StrutsAction里調(diào)用屢次Service而產(chǎn)生多個(gè)事務(wù),但在出現(xiàn)Exception導(dǎo)致出錯(cuò)時(shí),操作之前調(diào)用的Service事務(wù)的業(yè)務(wù)數(shù)據(jù)沒(méi)有被回滾.當(dāng)需要返回的數(shù)據(jù)供AJAX使用,操彳JSONXML的大量使用時(shí).開(kāi)發(fā)起來(lái)會(huì)很費(fèi)力,一段同樣
29、的業(yè)務(wù)代碼,為了使用AJAX和XML可能需要重新編寫一次,或者在同一個(gè)ACTION里通過(guò)標(biāo)志來(lái)判斷,對(duì)分層結(jié)構(gòu)造成了比擬糟糕的破壞.如果設(shè)計(jì)得不好,為了使用JSONXM區(qū)得額外增加大量的配置,嚴(yán)重降低了開(kāi)發(fā)效率.因此,為了克服這些缺點(diǎn),對(duì)于SS錦構(gòu),進(jìn)行了重新的分層,共享了業(yè)務(wù)代碼.簡(jiǎn)化了開(kāi)發(fā)、增強(qiáng)了與AJAX技術(shù)、XML技術(shù)的結(jié)合.提供了一種更高效的開(kāi)發(fā)模式.其開(kāi)發(fā)的結(jié)構(gòu)圖如下:MODEL層SEFVICE層X(jué)Z實(shí)現(xiàn)BusinessService接口并配置到Spring編導(dǎo)業(yè)務(wù)邏輯,拋出異常,調(diào)用DAO進(jìn)行數(shù)據(jù)操作VIEW層媚身1Form并設(shè)置對(duì)應(yīng)的ActionPaths頁(yè)面調(diào)用對(duì)瓜的Acli
30、nn分析需要常規(guī)提交的操作,編寫對(duì)應(yīng)的Form用于保存表單數(shù)據(jù)如常規(guī)提交那么顯示Request數(shù)據(jù),異步提交那么解析Json,或甌數(shù)據(jù)并顯示*這個(gè)架構(gòu)的優(yōu)點(diǎn)在于,由于業(yè)務(wù)代碼統(tǒng)一實(shí)現(xiàn)BusinessService接口,使得只需要相對(duì)根據(jù)業(yè)務(wù)需要,分析submit提交的動(dòng)作及分析需要的Ajax異步提交動(dòng)作固定的幾個(gè)StrutsAction類調(diào)用Service層的方法,便可以完成工作.包括JSON格式輸出,XML輸出及WebService輸出均調(diào)用Service層方法來(lái)完成功能.這樣便實(shí)現(xiàn)了業(yè)務(wù)代碼的別離,以及與前端框架的極大解耦.二、技術(shù)解決方案開(kāi)發(fā)一款好的軟件產(chǎn)品,離不開(kāi)一個(gè)好的開(kāi)發(fā)過(guò)程.開(kāi)發(fā)
31、期間對(duì)過(guò)程的把控程度,往往會(huì)決定軟件產(chǎn)品的質(zhì)量好壞.因此,開(kāi)發(fā)前期的方案流程是必不可少的.本公司軟件系統(tǒng)的開(kāi)發(fā)是按階段進(jìn)行的,一般劃分為以下階段:1、可行性分析可行性分析的目的是明確系統(tǒng)的目的、功能和要求,了解目前所具備的開(kāi)發(fā)環(huán)境和條件,分析的內(nèi)容有:在技術(shù)水平上是否可以支持在經(jīng)濟(jì)上效益如何在法律上是否符合要求與部門、企業(yè)的經(jīng)營(yíng)和開(kāi)展是否吻合系統(tǒng)投入運(yùn)行后的維護(hù)有無(wú)保證可行性討論的目的是判定軟件系統(tǒng)的開(kāi)發(fā)有無(wú)價(jià)值,分析和討論的內(nèi)容形成“系統(tǒng)開(kāi)發(fā)方案書(shū),主要內(nèi)容有:1開(kāi)發(fā)的目的及所期待的效果2系統(tǒng)的根本設(shè)想,涉及的業(yè)務(wù)對(duì)象和范圍3開(kāi)發(fā)進(jìn)度表,開(kāi)發(fā)組織結(jié)構(gòu)4開(kāi)發(fā)、運(yùn)行的費(fèi)用5預(yù)期的系統(tǒng)效益6開(kāi)發(fā)過(guò)
32、程中可能遇到的問(wèn)題及考前須知.2、需求分析需求分析是軟件系統(tǒng)開(kāi)發(fā)中最重要的一個(gè)階段,直接決定著系統(tǒng)的開(kāi)發(fā)質(zhì)量和成敗.因此必須要明確用戶的要求和應(yīng)用現(xiàn)場(chǎng)環(huán)境的特點(diǎn),了解系統(tǒng)應(yīng)具有哪些功能、數(shù)據(jù)的流程和數(shù)據(jù)之間的聯(lián)系.需求分析應(yīng)有用戶參加,到使用現(xiàn)場(chǎng)進(jìn)行調(diào)研學(xué)習(xí),軟件設(shè)計(jì)人員應(yīng)虛心向技術(shù)人員和使用人員請(qǐng)教,共同討論解決需求問(wèn)題的方法,對(duì)調(diào)查結(jié)果進(jìn)行分析,明確問(wèn)題的所在.需求分析階段的工作,可以分為四個(gè)方面:?jiǎn)栴}識(shí)別,分析與綜合,制訂規(guī)格說(shuō)明,評(píng)審.一、問(wèn)題識(shí)別從系統(tǒng)角度來(lái)理解軟件,確定對(duì)所開(kāi)發(fā)系統(tǒng)的綜合要求,并提出這些需求的實(shí)現(xiàn)條件,以及需求應(yīng)該到達(dá)的標(biāo)準(zhǔn).這些需求包括:功能需求做什么,性能需求要
33、到達(dá)什么指標(biāo),環(huán)境需求如機(jī)型,操作系統(tǒng)等,可靠性需求不發(fā)生故障的概率,平安保密需求,用戶界面需求,資源使用需求軟件運(yùn)行是所需的內(nèi)存,CPU等,軟件本錢消耗與開(kāi)發(fā)進(jìn)度需求,預(yù)先估計(jì)以后系統(tǒng)可能到達(dá)的目標(biāo).二、分析與綜合逐步細(xì)化所有的軟件功能,找出系統(tǒng)各元素間的聯(lián)系,接口特性和設(shè)計(jì)上的限制,分析他們是否滿足需求,剔除不合理局部,增加需要局部.最后,綜合成系統(tǒng)的解決方案,給出要開(kāi)發(fā)的系統(tǒng)的詳細(xì)邏輯模型做什么白模型.三、制訂規(guī)格說(shuō)明書(shū)即編制文檔,描述需求的文檔稱為軟件需求規(guī)格說(shuō)明書(shū).四、評(píng)審對(duì)功能的正確性,完整性和清楚性,以及其它需求給予評(píng)價(jià).評(píng)審?fù)ㄟ^(guò)才可進(jìn)行下一階段的工作,否那么重新進(jìn)行需求分析.需
34、求分析的內(nèi)容最終會(huì)編寫成“系統(tǒng)需求分析報(bào)告.3.系統(tǒng)設(shè)計(jì)一、設(shè)計(jì)原那么和設(shè)計(jì)要求描述對(duì)本軟件系統(tǒng)進(jìn)行概要設(shè)計(jì)的原那么,通常可以考慮以下幾方面的內(nèi)容:1、命名規(guī)那么;2、模塊獨(dú)立性原那么;3、邊界設(shè)計(jì)原那么;4、數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)那么;5、必須的平安舉措;6、平安性和保密原那么;7、系統(tǒng)靈活性要求;8、系統(tǒng)易操作性要求;9、系統(tǒng)可維護(hù)性要求;二、系統(tǒng)邏輯設(shè)計(jì)系統(tǒng)邏輯設(shè)計(jì)主要是根據(jù)軟件產(chǎn)品需求規(guī)格說(shuō)明書(shū)和軟件產(chǎn)品數(shù)據(jù)字典建立系統(tǒng)的邏輯模型.此種模型暫時(shí)與系統(tǒng)的物理因素例如:計(jì)算機(jī)、數(shù)據(jù)庫(kù)治理系統(tǒng)無(wú)關(guān).它是系統(tǒng)需求與物理實(shí)現(xiàn)的中間結(jié)構(gòu),它的主要結(jié)果是建立:系統(tǒng)結(jié)構(gòu)圖、系統(tǒng)界面結(jié)構(gòu)圖、系統(tǒng)出錯(cuò)處理、以及系統(tǒng)
35、開(kāi)發(fā)技術(shù)說(shuō)明.三、系統(tǒng)組織設(shè)計(jì)系統(tǒng)組織設(shè)計(jì)通過(guò)系統(tǒng)組織表描述本系統(tǒng)由哪些子系統(tǒng)模塊組成,這些子系統(tǒng)與業(yè)務(wù)職能之間的關(guān)系,以及各個(gè)子系統(tǒng)的安裝地點(diǎn).系統(tǒng)組織表的格式如下:子系統(tǒng)編號(hào)英義名稱中文名稱業(yè)務(wù)職能安裝地點(diǎn)備注其中:1、子系統(tǒng)編號(hào)給出本系統(tǒng)中指定子系統(tǒng)的順序編號(hào).如果本系統(tǒng)末劃分為多個(gè)子系統(tǒng),僅由一個(gè)運(yùn)行模塊組成;那么本項(xiàng)內(nèi)容仍需要描述,但是本表內(nèi)容只有一行.在一個(gè)系統(tǒng)中有可能安裝假設(shè)干個(gè)相同的子系統(tǒng),在這種情況下,應(yīng)該視為一個(gè)子系統(tǒng),并且對(duì)多個(gè)安裝地點(diǎn)分別進(jìn)行描述.如果相同的子系統(tǒng)通過(guò)系統(tǒng)設(shè)置,實(shí)現(xiàn)的業(yè)務(wù)職能具有明顯差異時(shí),應(yīng)該采用多行進(jìn)行分別描述,并且在備注中說(shuō)明其差異所在.2、子系統(tǒng)
36、英文名稱給出本子系統(tǒng)的英文名稱,該名稱是在應(yīng)用軟件中實(shí)際使用的可執(zhí)行文件名稱,必須能夠說(shuō)明該子系統(tǒng)的特點(diǎn).假設(shè)本系統(tǒng)中只有一個(gè)子系統(tǒng),那么本項(xiàng)內(nèi)容仍需要描述,但是本表內(nèi)容只有一行.3、子系統(tǒng)中文名稱給出本子系統(tǒng)的中文名稱,該名稱必須能夠說(shuō)明該子系統(tǒng)的特點(diǎn).假設(shè)本系統(tǒng)中只有一個(gè)子系統(tǒng),那么本項(xiàng)內(nèi)容仍需要描述,但是本表內(nèi)容只有一行.4、業(yè)務(wù)職能描述該子系統(tǒng)完成的核心業(yè)務(wù).5、安裝地點(diǎn)描述該子系統(tǒng)實(shí)際安裝的部門、或者某個(gè)具體地點(diǎn).6、備注針對(duì)該子系統(tǒng),需要說(shuō)明的其它有關(guān)問(wèn)題.(四)、系統(tǒng)結(jié)構(gòu)設(shè)計(jì)1、系統(tǒng)特性表系統(tǒng)特性是系統(tǒng)中完成某項(xiàng)具體操作的根本單元,它由入口參數(shù),出口參數(shù)以及處理過(guò)程三局部組成.系
37、統(tǒng)特性可以具有操作界面,也可以沒(méi)有操作界面;可以被其它操作界面、或者系統(tǒng)特性調(diào)用,也可以調(diào)用其它操作界面、非操作界面、或者系統(tǒng)特性;但是不允許遞歸調(diào)用(調(diào)用自己),包括間接遞歸調(diào)用.當(dāng)系統(tǒng)由多個(gè)子系統(tǒng)(模塊)組成時(shí),每個(gè)子系統(tǒng)分別使用一張系統(tǒng)特性表進(jìn)行描述.系統(tǒng)特性表的格式如下:子系統(tǒng)編R:子系統(tǒng)英義名稱:子系統(tǒng)中義名稱:特性編號(hào)系統(tǒng)特征英義名稱系統(tǒng)特征中文名稱操作功能調(diào)用對(duì)象被調(diào)用對(duì)象備注說(shuō)明:其中:(1)、子系統(tǒng)編號(hào)含義同上.(2)、子系統(tǒng)英文名稱含義同上.(3)、子系統(tǒng)中文名稱含義同上.(4)、特性編號(hào)整個(gè)系統(tǒng)所有特性的統(tǒng)一編號(hào).(5)、系統(tǒng)特性英文名稱系統(tǒng)特性的英文正式名稱,將來(lái)用于軟
38、件開(kāi)發(fā)中,必須符合命名標(biāo)準(zhǔn).(6)、系統(tǒng)特性中文名稱系統(tǒng)特性的中文正式名稱,來(lái)源于需求規(guī)格說(shuō)明書(shū)中,系統(tǒng)特性一節(jié)中的有關(guān)描述.(7)、操作功能是指該特性實(shí)際完成的操作說(shuō)明.(8)、調(diào)用對(duì)象是指調(diào)用該系統(tǒng)特性的系統(tǒng)對(duì)象,這里的系統(tǒng)對(duì)象可以是系統(tǒng)特性、也可以是操作界面.(9)、被調(diào)用對(duì)象是指被該系統(tǒng)特性調(diào)用的系統(tǒng)對(duì)象,這里的系統(tǒng)對(duì)象可以是系統(tǒng)特性、也可以是操作界面.(10)、備注描述與該系統(tǒng)特性有關(guān)的其它考前須知.(11)、說(shuō)明描述與該系統(tǒng)特性表有關(guān)的其它考前須知.(五)、系統(tǒng)接口設(shè)計(jì)1、系統(tǒng)接口表接口作為系統(tǒng)的一種輸入/輸出形式,分為網(wǎng)絡(luò)接口、數(shù)據(jù)庫(kù)接口、RS-232串行通訊接口、IEEE485
39、串行總線接口、并行I/O接口等等多種類型.當(dāng)系統(tǒng)由多個(gè)子系統(tǒng)(模塊)組成時(shí),每個(gè)子系統(tǒng)分別使用一張系統(tǒng)接口表進(jìn)行描述.系統(tǒng)接口表的格式如下:子系統(tǒng)編號(hào)子系統(tǒng)英文名稱十系統(tǒng)中文名稱接口編力接口名稱接,®接口性質(zhì)接口速率接口協(xié)議備注說(shuō)明:其中:(1)、子系統(tǒng)編號(hào)含義同上.(2)、子系統(tǒng)英文名稱含義同上.(3)、子系統(tǒng)中文名稱含義同上.(4)、接口編號(hào)整個(gè)系統(tǒng)所有接口的統(tǒng)一編號(hào).(5)、接口名稱系統(tǒng)接口的正式名稱,必須符合通常習(xí)慣.(6)、接口類型指出該接口所傳輸?shù)臄?shù)據(jù)在該模塊中起到的作用.(7)、接口性質(zhì)指出該接口在通訊中起到的作用,這里的作用可以是:輸入、輸出、雙向.(8)、接口速率指
40、出該接口的傳輸速率.如果該接口依賴于其它通訊方式,那么傳輸速率將不高于它所依賴的其它通訊方式的速率.(9)、接口協(xié)議給出該接口實(shí)際使用的通訊協(xié)議.(10)、相關(guān)對(duì)象給出直接使用本接口的系統(tǒng)對(duì)象,這里的系統(tǒng)對(duì)象,可以是操作界面,也可以是系統(tǒng)特性.(11)、備注描述與該系統(tǒng)接口有關(guān)的其它考前須知.(12)、說(shuō)明描述與該系統(tǒng)接口表有關(guān)的其它考前須知.(六)、系統(tǒng)完整性設(shè)計(jì)描述系統(tǒng)對(duì)象(數(shù)據(jù)元、數(shù)據(jù)類),所受到的邏輯約束關(guān)系.當(dāng)系統(tǒng)由多個(gè)子系統(tǒng)(模塊)組成時(shí),每個(gè)子系統(tǒng)應(yīng)分別使用一張系統(tǒng)完整性約束表進(jìn)行描述.系統(tǒng)完整性約束表的格式如下:子系統(tǒng)編號(hào)子系統(tǒng)英義名稱子系統(tǒng)中義名稱約束編號(hào)完整性名稱相對(duì)對(duì)象名
41、約束表達(dá)式備注說(shuō)明:其中:(1)、子系統(tǒng)編號(hào)含義同上.(2)、子系統(tǒng)英文名稱含義同上.(3)、子系統(tǒng)中文名稱含義同上.(4)、約束編號(hào)整個(gè)系統(tǒng)所有約束的統(tǒng)一編號(hào).(5)、完整性名稱系統(tǒng)完整性約束的正式名稱,必須符合通常習(xí)慣.(6)、相對(duì)對(duì)象名完整性約束中的相關(guān)對(duì)象(數(shù)據(jù)元和數(shù)據(jù)類).(7)、約束表達(dá)式用一階邏輯表達(dá)式表達(dá)的約束方程式.(8)、備注描述與該系統(tǒng)完整性約束有關(guān)的其它考前須知.(9)、說(shuō)明描述與該系統(tǒng)完整性約束表有關(guān)的其它考前須知.系統(tǒng)設(shè)計(jì)具體可根據(jù)系統(tǒng)的規(guī)模分成概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段,概要設(shè)計(jì)包括:劃分系統(tǒng)模塊每個(gè)模塊的功能確定 用戶使用界面概要設(shè)計(jì) 輸入輸出數(shù)據(jù)的概要設(shè)計(jì)報(bào)表
42、概要設(shè)計(jì)數(shù)據(jù)之間的聯(lián)系、流程分析文件和數(shù)據(jù)庫(kù)表的邏輯設(shè)計(jì)硬件、軟件開(kāi)發(fā)平臺(tái)確實(shí)定有規(guī)律數(shù)據(jù)的標(biāo)準(zhǔn)化及數(shù)據(jù)惟一性要求.系統(tǒng)的詳細(xì)設(shè)計(jì)是對(duì)系統(tǒng)的概要設(shè)計(jì)進(jìn)一步具體化,其主要工作有:文件和數(shù)據(jù)庫(kù)的物理設(shè)計(jì)輸入輸出記錄的方案設(shè)計(jì)對(duì)各子系統(tǒng)的處理方式和處理內(nèi)容進(jìn)行細(xì)化設(shè)計(jì)編制程序設(shè)計(jì)任務(wù)書(shū).程序說(shuō)明書(shū)通常包括程序標(biāo)準(zhǔn)、功能說(shuō)明、程序結(jié)構(gòu)圖,通常用HPIPCO(HierarchyPlusInputProcessOutput)圖描述.4、編碼根據(jù)程序設(shè)計(jì)任務(wù)書(shū)的要求,用計(jì)算機(jī)算法語(yǔ)言實(shí)現(xiàn)解題的步驟,主要工作包括:模塊的理解和進(jìn)一步劃分以模塊為單位的邏輯設(shè)計(jì),也就是模塊內(nèi)的流程圖的編制編寫代碼,用程序設(shè)計(jì)語(yǔ)言
43、編制程序進(jìn)行模塊內(nèi)功能的測(cè)試、單元測(cè)試.程序質(zhì)量的要求包括:滿足要求確實(shí)切功能處理效率高操作方便,用戶界面友好程序代碼的可讀性好,函數(shù)、變量標(biāo)識(shí)符合標(biāo)準(zhǔn)擴(kuò)充性、維護(hù)性好.降低程序的復(fù)雜性也是十分重要的,系統(tǒng)的復(fù)雜性由模塊間的接口數(shù)來(lái)衡量,一般地講,n個(gè)模塊的接口數(shù)的最大值為n(n-1)/2;假設(shè)是層次結(jié)構(gòu),n個(gè)模塊的接口數(shù)的最小值為n-1.為使復(fù)雜性最小,對(duì)模塊的劃分設(shè)計(jì)常常采用層次結(jié)構(gòu).要注意編制的程序或模塊應(yīng)容易理解、容易修改,模塊應(yīng)相互獨(dú)立,對(duì)某一模塊的修改應(yīng)對(duì)其他模塊的功能不產(chǎn)生影響,模塊間的聯(lián)系盡可能少.5.系統(tǒng)測(cè)試測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤,對(duì)于設(shè)計(jì)的軟件,出現(xiàn)錯(cuò)誤是難免的.系統(tǒng)測(cè)
44、試通常由經(jīng)驗(yàn)豐富的設(shè)計(jì)人員設(shè)計(jì)測(cè)試方案和測(cè)試樣品,并寫出測(cè)試過(guò)程的詳細(xì)報(bào)告.系統(tǒng)測(cè)試是在單元測(cè)試的根底上進(jìn)行的,包括:測(cè)試方案的設(shè)計(jì);進(jìn)行測(cè)試;寫出測(cè)試報(bào)告;用戶對(duì)測(cè)試結(jié)果進(jìn)行評(píng)價(jià).具體測(cè)試方式如下:1 .黑盒測(cè)試黑盒測(cè)試也稱為功能測(cè)試,它著眼于程序的外部特征,而不考慮程序的內(nèi)部邏輯結(jié)構(gòu).測(cè)試者把被測(cè)程序看成一個(gè)黑盒,不用關(guān)心程序的內(nèi)部結(jié)構(gòu).黑盒測(cè)試是在程序接口處進(jìn)行測(cè)試,它只檢查程序功能是否能正常使用,程序是否能接收輸入數(shù)據(jù)產(chǎn)生正確的輸出信息,并且保持外部信息如數(shù)據(jù)庫(kù)或文件的完整性.黑盒測(cè)試是基于用戶角度進(jìn)行的測(cè)試.2 .白盒測(cè)試本公司系統(tǒng)軟件測(cè)試的主要方法之一,也稱結(jié)構(gòu)測(cè)試、邏輯驅(qū)動(dòng)測(cè)試或
45、基于程序本身的測(cè)試.測(cè)試者需要了解待測(cè)試程序代碼的內(nèi)部結(jié)構(gòu)、算法等信息,這是從程序設(shè)計(jì)者的角度對(duì)程序進(jìn)行的測(cè)試.它的優(yōu)點(diǎn)是幫助軟件測(cè)試人員增大代碼的覆蓋率,提升代碼的質(zhì)量,發(fā)現(xiàn)代碼中隱藏的問(wèn)題.3 .灰盒測(cè)試可以理解為靜態(tài)的白盒測(cè)試或動(dòng)態(tài)的黑盒測(cè)試,灰盒就是界于黑白之間,對(duì)軟件內(nèi)部有所了解,但不見(jiàn)得到了如指掌的程度,卻可以結(jié)合這些了解做些比黑盒多點(diǎn)的測(cè)試.4 .文檔測(cè)試文檔測(cè)試涵蓋面很大,在軟件的各個(gè)版本中均有所使用.隨著軟件版本的變化,文檔測(cè)試的測(cè)試內(nèi)容也有所變化.在需求分析以及原型架構(gòu)階段,文檔測(cè)試主要目標(biāo)是:Sitemap、動(dòng)作分解列表、數(shù)據(jù)庫(kù)ER®、UMM例圖、流程圖、需求文
46、檔等文檔.文檔測(cè)試主要檢查文檔的正確性、完整性和可理解性.正確性是指不要把軟件的功能和操作寫錯(cuò),也不允許文檔內(nèi)容前后矛盾.完整性是指文檔不可以漏掉關(guān)鍵性內(nèi)容.可理解性是指在文檔中描述的語(yǔ)言要簡(jiǎn)明易懂,不能讓別的開(kāi)發(fā)人員拿到文檔時(shí)看不懂文檔的內(nèi)容.5 .命名標(biāo)準(zhǔn)測(cè)試命名標(biāo)準(zhǔn)測(cè)試用于測(cè)試工程中的文件命名、代碼以及版本號(hào)等書(shū)寫是否符合標(biāo)準(zhǔn).6 .需求完整性測(cè)試需求完整性測(cè)試主要存在于需求探索階段,在需求尚未完全明確之前對(duì)已收集到的需求做出整理性的、檢查遺漏性的測(cè)試,確認(rèn)需求是否明確.另外,需求完整性測(cè)試也承當(dāng)著一局部澄清需求的任務(wù).7 .鏈接完整性測(cè)試在原型架構(gòu)階段,鏈接完整性的測(cè)試是非常有必要的.
47、該項(xiàng)測(cè)試任務(wù)主要是檢查假頁(yè)面中各種鏈接是否完整,是否指向目標(biāo)位置,屬于檢查性的測(cè)試.8 .頁(yè)面完整性測(cè)試頁(yè)面完整性測(cè)試主要存在于集成測(cè)試階段以及其后續(xù)其它階段中,測(cè)試頁(yè)面是否完整,頁(yè)面質(zhì)量是否達(dá)標(biāo),屬于檢查性測(cè)試.9 .UI合理性測(cè)試UI合理性測(cè)試也就是人機(jī)交互界面的合理性,UI合理性測(cè)試的內(nèi)容很多,具體測(cè)試內(nèi)容如下:o提示、菜單、幫助的格式是否一致;o提示、菜單、幫助中的術(shù)語(yǔ)是否一致;o各個(gè)控件之間的對(duì)齊方式是否一致;o輸入界面和輸出界面在外觀、布局、交互方式上是否一致;o功能類似的相關(guān)界面在外觀、布局、交互方式上是否一致;o同一層次的文字在同一種提示場(chǎng)合一般情況、特殊字體、警告等在文字大小
48、、字體、顏色、對(duì)齊方式方面是否一致,字體大小是否與界面的大小比例協(xié)調(diào);o多個(gè)連續(xù)界面依次出現(xiàn)的情況下,界面的外觀、操作方式是否一致;o系統(tǒng)是否拒絕客戶的錯(cuò)誤輸入并做出提示;o系統(tǒng)是否在用戶完成操作時(shí)給出操作成功的提示;o用戶界面是否存在空白空間,沒(méi)有空白空間的界面是雜亂無(wú)章的,易用性差;o各個(gè)控件的間隔是否一致,垂直和水平方向上是否對(duì)齊;o是否允許動(dòng)作的可逆性,返回原有操做;10 .數(shù)據(jù)和數(shù)據(jù)庫(kù)完整性測(cè)試在開(kāi)發(fā)階段開(kāi)發(fā)人員隨時(shí)都有可能根據(jù)需要來(lái)修改數(shù)據(jù)庫(kù),所以對(duì)數(shù)據(jù)和數(shù)據(jù)庫(kù)完整性測(cè)試在軟件工程的任何階段也是非常必要的.該項(xiàng)測(cè)試內(nèi)容主要是以數(shù)據(jù)庫(kù)表為單位,檢查數(shù)據(jù)庫(kù)表以及表中各字段命名是否符合命
49、名標(biāo)準(zhǔn),表中字段是否完整,數(shù)據(jù)庫(kù)表中的字段描述是否正確包括字段的類型、長(zhǎng)度、是否為空,數(shù)據(jù)庫(kù)表中的關(guān)系、索引、主鍵、約束是否正確.11 .功能測(cè)試功能測(cè)試在軟件工程的任何階段中都是重要的.實(shí)現(xiàn)功能,滿足客戶需求是軟件本身最大的使命.功能測(cè)試在任何階段下根本上都作為測(cè)試工作的第一項(xiàng)出現(xiàn).該項(xiàng)測(cè)試任務(wù)主要為了測(cè)試已實(shí)現(xiàn)的功能是否滿足需求,是否正確,是否有價(jià)值以及是否完整.在黑盒和白盒測(cè)試狀態(tài)下,該測(cè)試均會(huì)被使用.功能測(cè)試中測(cè)試人員往往會(huì)忽略掉一些細(xì)節(jié)問(wèn)題,比方:一個(gè)功能的實(shí)現(xiàn)必須要經(jīng)過(guò)6步操作才能完成,而且需要參加20條信息才能看得出測(cè)試結(jié)果,有的測(cè)試人員為了節(jié)省時(shí)間雖然做完了6步操作,但是沒(méi)有參
50、加足量的信息,使得測(cè)試不全面,正是由于這樣而導(dǎo)致一些隱藏的BU酸有被測(cè)試出來(lái).所以說(shuō)在功能測(cè)試中要按部就班的把所有要進(jìn)行的測(cè)試功能每一步都執(zhí)行一遍,應(yīng)該添加的數(shù)據(jù)都添加完整,以預(yù)防遺漏掉BUG沒(méi)有測(cè)試出來(lái).12 .壓力測(cè)試壓力測(cè)試是為了發(fā)現(xiàn)在什么條件下您的應(yīng)用程序的性能會(huì)變得不可接受.這通過(guò)改變應(yīng)用程序的輸入以對(duì)應(yīng)用程序施加越來(lái)越大的負(fù)載并測(cè)量在這些不同的輸入時(shí)性能的改變來(lái)實(shí)現(xiàn)的.這種操作也稱為負(fù)載測(cè)試,但是負(fù)載測(cè)試通常描述一種特定類型的壓力測(cè)試增加用戶數(shù)量以對(duì)應(yīng)用程序進(jìn)行壓力測(cè)試.對(duì)應(yīng)用程序進(jìn)行壓力測(cè)試最簡(jiǎn)單的方法是手工改變輸入(客戶機(jī)數(shù)量、需求大小、請(qǐng)求的頻率、請(qǐng)求的混合程度等等)并描繪性
51、能的變化.但是如果有許多輸入,或者需要在大的范圍內(nèi)改變輸入,那么你可以借助一個(gè)自動(dòng)化的壓力測(cè)試工具來(lái)完成此測(cè)試.13 .平安性測(cè)試平安性測(cè)試主要是測(cè)試系統(tǒng)在沒(méi)有授權(quán)的內(nèi)部或者外部用戶對(duì)系統(tǒng)進(jìn)行攻擊或者惡意破壞時(shí)如何進(jìn)行處理,是否仍能保證數(shù)據(jù)和頁(yè)面的平安.測(cè)試人員可以學(xué)習(xí)一些黑客技術(shù),來(lái)對(duì)系統(tǒng)進(jìn)行攻擊.另外,對(duì)操作權(quán)限的測(cè)試也包含在平安性測(cè)試中.具體測(cè)試內(nèi)容如下:o執(zhí)行添加、刪除、修改等動(dòng)作中是否做過(guò)登錄檢測(cè).o退出系統(tǒng)之后的操作是否可以完成.o所有插入表單操作中輸入特殊字符是否可以正常輸正常存儲(chǔ),特殊字符為:!#¥%-*()-+=、|;:'"/«»
52、;<>,.o在帶有參數(shù)的回顯數(shù)據(jù)的動(dòng)作中更改參數(shù),把參數(shù)改為特殊字符并參加操作語(yǔ)句看是否出錯(cuò).o測(cè)試表單中有沒(méi)有做標(biāo)簽檢測(cè),標(biāo)簽檢測(cè)是否完整.o在插入表單中參加特殊的HTML弋碼,低如:<marquee>表單中的字本是否移動(dòng)</marquee>.14 .頁(yè)面腳本測(cè)試頁(yè)面中時(shí)常使用到JavaScript腳本,為了降低頁(yè)面的出錯(cuò)率,那么必須對(duì)頁(yè)面腳本進(jìn)行測(cè)試.其主要內(nèi)容包括:相關(guān)頁(yè)面中的腳本是否正常運(yùn)行,JavaScript腳本是否有錯(cuò)誤頁(yè)面.15 .提示文本測(cè)試提示文本測(cè)試從嚴(yán)格意義上來(lái)講應(yīng)該屬于UI合理性測(cè)試的一局部,該項(xiàng)測(cè)試主要針對(duì)各個(gè)頁(yè)面中使用到的大量提
53、示文檔進(jìn)行測(cè)試,主要包括:表達(dá)不明確的位置是否有提示文本、提示文本的彈出是否正常、提示信息含義是否明確易懂.16 .瀏覽器測(cè)試由于B/S結(jié)構(gòu)工程是基于瀏覽器運(yùn)行的,所以需要對(duì)瀏覽器進(jìn)行必要的測(cè)試.該測(cè)試任務(wù)主要是軟件對(duì)各種瀏覽器、FireFox瀏覽器的支持是否正常,在IE瀏覽器中可以正常顯示的頁(yè)面在其它瀏覽器中是否可以正常顯示.17 .安裝測(cè)試在軟件工程的后期階段,會(huì)對(duì)做好的軟件進(jìn)行打包把軟件做成安裝程序,以便用戶可以正確的安裝使用,所以需要對(duì)做好的安裝文件進(jìn)行安裝功能方面的測(cè)試.該測(cè)試的主要任務(wù)是:檢查軟件是否能夠正常安裝使用、是否可以完全卸載此軟件的所有功能和頁(yè)面.6、文檔資料文檔包括開(kāi)發(fā)
54、過(guò)程中的所有技術(shù)資料以及用戶所需的文檔,軟件系統(tǒng)的文檔一般可分為系統(tǒng)文檔和用戶文檔兩類.用戶文檔主要描述系統(tǒng)功能和使用方法,并不考慮這些功能是怎樣實(shí)現(xiàn)的,系統(tǒng)文檔描述系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試等方面的內(nèi)容.文檔是影響軟件可維護(hù)性、可用性的決定因素,有句話講,系統(tǒng)編程人員的每一張紙片都要保存,所以文檔的編制是軟件開(kāi)發(fā)過(guò)程中的一項(xiàng)重要工作.系統(tǒng)文檔包括:開(kāi)發(fā)軟件系統(tǒng)在方案需求分析設(shè)計(jì)編制調(diào)試運(yùn)行等階段的有關(guān)文檔.在對(duì)軟件系統(tǒng)進(jìn)行修改時(shí),系統(tǒng)文檔應(yīng)同步更新,并注明修改者和修改日期,如有必要應(yīng)注明修改原因,應(yīng)切記過(guò)時(shí)的文檔是無(wú)用的文檔.用戶文檔包括:系統(tǒng)功能描述 安裝文檔,說(shuō)明系統(tǒng)安裝步驟以及系統(tǒng)的硬件配置
55、方法 用戶使用手冊(cè),說(shuō)明使用軟件系統(tǒng)方法和要求,疑難問(wèn)題解答 參考手冊(cè),描述可以使用的所有系統(tǒng)設(shè)施,解釋系統(tǒng)出錯(cuò)信息的含義及解決途徑.7、系統(tǒng)的運(yùn)行與維護(hù)系統(tǒng)只有投入運(yùn)行后,才能進(jìn)一步對(duì)系統(tǒng)檢驗(yàn),發(fā)現(xiàn)潛在的問(wèn)題,為了適應(yīng)環(huán)境的變化和用戶要求的改變,可能會(huì)對(duì)系統(tǒng)的功能、使用界面進(jìn)行修改.要對(duì)每次發(fā)現(xiàn)的問(wèn)題和修改內(nèi)容建立系統(tǒng)維護(hù)文檔,并使系統(tǒng)文檔資料同步更新.效勞保證舉措本公司軟件質(zhì)量保證由各項(xiàng)任務(wù)構(gòu)成,這些任務(wù)的參與者有兩種人:軟件開(kāi)發(fā)人員和質(zhì)量保證人員.前者負(fù)責(zé)技術(shù)工作,后者負(fù)責(zé)質(zhì)量保證的方案、監(jiān)督、記錄、分析及報(bào)告工作.軟件開(kāi)發(fā)人員通過(guò)采用可靠的技術(shù)方法和舉措,進(jìn)行正式的技術(shù)評(píng)審,執(zhí)行方案周密的軟件測(cè)試來(lái)保證軟件產(chǎn)品的質(zhì)量.軟件質(zhì)量保證人員那么輔助軟件開(kāi)發(fā)組得到高質(zhì)量的最終產(chǎn)品.我們的軟件質(zhì)量保證方案大體分為如下三大局部:把軟件研制合理地劃分為假設(shè)干階段,并針對(duì)每個(gè)階段的特點(diǎn),制定出質(zhì)量評(píng)審、評(píng)測(cè)的要求和舉措.從軟件質(zhì)量的要求出發(fā),制定出相應(yīng)的技術(shù)和治理標(biāo)準(zhǔn),如軟件文檔標(biāo)準(zhǔn)、
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 化學(xué)世界解析
- 揭秘有機(jī)化學(xué)
- 組織胚胎學(xué)模擬練習(xí)題與答案
- 混凝土攪拌工高級(jí)試題庫(kù)及參考答案
- 中班消防安全教案《消防知識(shí)知多少》
- 關(guān)于轟趴館的創(chuàng)業(yè)計(jì)劃
- 上海市寶山區(qū)2023-2024學(xué)年高二下學(xué)期期末學(xué)科教學(xué)質(zhì)量檢測(cè)語(yǔ)文試卷
- 上下鋪合同范例范例
- app推廣代理 合同范本
- 企業(yè)員工計(jì)件合同范例
- 高等教育數(shù)字化轉(zhuǎn)型心得體會(huì)
- 2025年安徽財(cái)貿(mào)職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案1套
- 2025年安徽職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案1套
- 典范英語(yǔ)6-12玉米片硬幣英文原文及重點(diǎn)短語(yǔ)和句子演示教學(xué)
- 日式保潔培訓(xùn)課件大全
- 2025年廣東省深圳市高考語(yǔ)文一模試卷
- 2025年陜西工商職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)學(xué)生專用
- 2025年福建省高職單招職業(yè)適應(yīng)性測(cè)試題庫(kù)及答案解析
- 自媒體運(yùn)營(yíng)實(shí)戰(zhàn)教程(抖音版) 課件 第7章 短視頻運(yùn)營(yíng)-自媒體中級(jí)
- 2025時(shí)事政治必考題庫(kù)含參考答案
- 保潔管理安全培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論