版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟件體系結構課程報告一、簡答題: (每題10分,共40分)1簡述軟件體系結構建模中“4+1”視圖模型,并舉一示例模型。 答:4+1視圖模型從5個不同視角(邏輯視圖,進程視圖,物理視圖,開發(fā)視圖和場景視圖)來描述軟件體系結構.每一個視圖只關心系統(tǒng)的側面,5個視圖結合在一起才能反映系統(tǒng)的軟件體系結構的全部內容. 最終用戶:功能需求 編程人員:軟件管理開發(fā)視圖邏輯視圖場景視圖物理視圖進程視圖系統(tǒng)集成人員:性能可擴充性,吞吐量等. 系統(tǒng)工程人員:系統(tǒng)拓撲,安裝通信等.舉例:開發(fā)視圖. 開發(fā)視圖也稱為模塊視圖,主要側重于軟件模塊的組織和管理.軟件可通過程序庫或子系統(tǒng)進行組織,這樣,對于一個軟件系統(tǒng),就可
2、以由不同的人進行開發(fā).開發(fā)視圖要考慮軟件內部的需求,如軟件開發(fā)的容易性,軟件的重用和軟件的通用性,要充分考慮由于具體開發(fā)工具的不同而帶來的局限性.開發(fā)視圖通過系統(tǒng)輸入輸出關系的模型圖和子系統(tǒng)圖來描述.層次結構風格.各種各樣的空中交通管制系統(tǒng)5 人機接口 離線工具 外部系統(tǒng) 測試工具特定的空中交通管理系統(tǒng)構件4 空中交通管制功能區(qū):飛行管理,雷達管理等 空中交通管制系統(tǒng)框架3 航空類,空中交通管理類分布式虛擬機2 支撐機制:通信,時間,存儲,資源管理等基本元素1 公用構件 底層服務2. 簡述層次體系結構風格及其特點,并舉一示例。答:層次系統(tǒng)組織成一個層次結構,每一層為上層服務,并作為下層客戶.連
3、接件通過決定層間如何交互的協(xié)議來定義,拓撲約束包括對相鄰層間交互的約束.這種風格支持基于可增加抽象層的設計.這樣,允許將一個復雜問題分解成一個增量步驟序列的實現(xiàn).由于每一層最多只影響兩層,同時只要給相鄰層提供相同接口,允許每一層用不同的方法實現(xiàn),同樣為軟件重用提供了強大的支持.分層同用協(xié)議.(1) .支持基于抽象程度遞增的系統(tǒng)設計,使設計師可以把一個復雜系統(tǒng)按遞增的步驟進行分解.(2) .支持功能增強,因為每一層至多和相鄰的上下層交互,因此功能的改變最多影響相鄰的上下層.(3) 支持重用,只要提供的服務接口定義不變,同一層的不同實現(xiàn)可以交換使用.不足之處:(1) .并不是每個系統(tǒng)都可以很容易的
4、劃分為分層的模式,甚至即使一個系統(tǒng)的邏輯結構是層次化的,出于對系統(tǒng)性能的考慮,系統(tǒng)設計師不得不把一些低級或高級的功能綜合起來.(2) 很難找到一個合適的,正確的層次抽象方法.過程調用 用戶系統(tǒng) 基本工具核心層各種構件體系結構需求3. 簡述基于體系結構的軟件開發(fā)過程并說明在實際軟件開發(fā)活動中如何實施。答:基于體系結構的軟件開發(fā)模型 體系結構設計(1).體系結構需求:需求是指用戶對目標軟件系統(tǒng)在 功能,行為,性能,設計約束等方面的期望.0:N體系結構文檔化 (1.1)需求獲取:是定義開發(fā)人員必須實現(xiàn)的0:M 軟件功能,使得用戶能完成他們的任體系結構復審 務,從而能滿足業(yè)務上的功能需求. (1.2)
5、標識結構:生成類圖,對類進行分組,體系結構實現(xiàn) 把類大包成構件. (1.3)需求評審:組織一個由不同代表組成的體系結構演化 小組,對體系結構需求及相關構件進行 仔細的審查.(2) .體系結構設計: (2.1)提出軟件體系結構模型. (2.2)把已標識的構件映射到軟件體系結構中. (2.3)分析構件之間的相互作用. (2.4)產(chǎn)生軟件體系結構 (2.5)設計評審.(3) .體系結構文檔化:主要輸出結果是體系結構需求規(guī)格說明和測試體系結構需求的質量設計說明書這兩個文檔.(4) .體系結構復審:目的是標識潛在的風險,及早發(fā)現(xiàn)體系結構設計中的缺陷和錯誤.包括體系結構能否滿足需求,質量需求是否在設計中得
6、到體現(xiàn),層次是否清晰,構件的劃分是否合理,文檔表達是否明確,構件的設計是否滿足功能與性能的要求等.(5) 體系結構實現(xiàn):用實體顯示出一個軟件體系結構,既要符合體系結構所描述的結構性設計決策,分割成規(guī)定的構件,按規(guī)定方式相互交互.(6) .體系結構演化:是使用系統(tǒng)演化步驟去修改應用,以滿足新的需求.(6.1)需求變動歸類.(6.2)制定體系結構演化計劃(6.3)修改,增加或刪除構件(6.4)更新構件相互作用6.5)構件組裝與測試6.6)技術評審(6.7)產(chǎn)生演化后的體系結構4. 簡述軟件體系結構ATAM評估過程,并設計一個軟件項目的評估日程安排。答:4.1。描述ATAM方法:1*ATAM方法步驟
7、簡介。2*獲取和分析技術。3*評估結果。4.2。描述業(yè)務動機:1*系統(tǒng)最重要的功能需求。2*技術,管理,經(jīng)濟或政治方面的約束條件。3*業(yè)務目標和環(huán)境。4*主要的風險承擔者,5*體系結構驅動因素。4.3。描述體系結構:1*技術約束。2*要與本系統(tǒng)交互的其他系統(tǒng)。3*用以滿足質量屬性要求的體系結構方法。4.4。確定體系結構方法:由設計師確定,有分析小組捕獲,但不進行分析。4.5。生產(chǎn)質量屬性效用樹:確定系統(tǒng)最重要的質量屬性目標,并對這些質量目標設置優(yōu)先級和細化。4.6。分析體系結構方法:1*理解體系結構方法。2*找出該方法的缺陷,3*找出該方法的敏感點。4*發(fā)現(xiàn)與其它方法的交互和權衡點。把最高優(yōu)先
8、級的質量屬性需求與實現(xiàn)他們的體系結構方法關聯(lián)起來。4.7。討論和分級場景:1*集體討論用例場景(描述風險承擔者期望使用信用的方式)和改變場景(描述風險承擔者所期望的系統(tǒng)在將來變更的方式)2*成長場景描述的是體系結構在中短期的改變,包括期望的修改,性能或可用性的變更,移植性,與其他軟件系統(tǒng)的集成等。3*一旦投票結果確定,所有的場景就可設置優(yōu)先級。4.8。分析體系結構方法:重復第六步工作,把新得到的最高優(yōu)先級場景與尚未得到的體系結構工作產(chǎn)品對應起來。4.9。描述評估結果:1*已文檔化了的體系結構方法,風格。2*場景及優(yōu)先級。3*基于屬性問題。4*效用樹。5*所發(fā)現(xiàn)的風險決策。6*已文檔化了的無風險
9、決策。7*所發(fā)現(xiàn)的敏感點和權衡點。開始時間所作工作第一天8:30介紹描述ATAM方法(第1步)第一階段10:00客戶描述業(yè)務動機(第2步)10:45休息11:00客戶描述體系結構(第3步)12:00確定體系結構方法(第4步)12:30中餐13:45生成質量屬性效用樹(第5步)14:45分析體系結構方法(第6步)15:45休息16:00分析體系結構方法(第6步)17:00休會中斷幾個星期第二天第二階段8:30介紹描述ATAM方法(第1步)9:15客戶描述業(yè)務環(huán)境/動機(第2步)10:00休息10:15客戶描述體系結構(第3步)11:15確定體系結構方法(第4步)12:00中餐13:00生成質量屬
10、性效用樹(第5步)14:00分析體系結構方法(第6步)15:30休息15:45分析體系結構方法(第6步)17:00休會第三天8:30介紹/扼要重述ATAM方法8:45分析體系結構方法(第6步)9:30討論場景(第7步)10:30休息10:45設置場景優(yōu)先級(第7步)11:15分析體系結構方法(第8步)12:30中餐13:30分析體系結構方法(第8步)14:45準備匯報結果/休息15:30描述結果(第9步)16:00進一步的分析/角色的分配17:00休會二、論述題:(30分)選取目前構件模型中OMG的CORBA、Sun的EJB、Microsoft的DCOM之一,論述模型的結構、特點以及使用該技術
11、開發(fā)構件的過程,并舉一示例。答:Sun的EJB構件模型EJB是用于開發(fā)和部署多層結構的、分布式的、面向對象的Java應用系統(tǒng)的跨平臺的構件體系結構。提供了讓客戶端使用的分布式對象的框架。簡化了企業(yè)級軟件的開發(fā)。EJB容器提供了目錄服務,事務管理,安全等。EJB的類型:(1) 。會話Bean:與所在客戶會話的生存周期一樣長,即在客戶交互期間有效。 1*無狀態(tài)會話Bean:一次對一個客戶提供業(yè)務邏輯而不在方法調用之間 保存客戶狀態(tài),即調用完后,無狀態(tài)會話Bean就被釋放到緩沖池中。 2*狀態(tài)會話Bean:可以維持調用客戶的狀態(tài)并在方法調用之間維護客戶狀態(tài)。(2) 。實體Bean:代表了某個持久對象
12、,用于映射基礎數(shù)據(jù)庫表格,生成數(shù)據(jù)庫的對象視圖。 1*容器管理的持久性:負責同步bean狀態(tài)與基礎數(shù)據(jù)庫。 2*Bean管理的持久性:編程人員要在beande實現(xiàn)類中編碼所有需要的SQL 語句與JDBC調用。(3) 。消息驅動的bean:一些業(yè)務邏輯的消息使用者。EJB的特點:1*清晰的體系結構:支持多層應用體系結構和基于構件開發(fā)。2*簡化的編程模型:只需要關注服務的實現(xiàn),其余事務有EJB容器完成。3*通用的編程模型。4*易移植性:可以部署到任何兼容的EJB容器中。5*支持事務處理:可以通過代碼外的描述定義事務處理。6*可擴展性:可隨應用的增長而擴展,并提供了負載平衡。7*安全性:由EJB服務
13、器提供資源的訪問權限控制。EJB至少包括四個元素:主接口,組件接口(Remote或Local接口),Bean實現(xiàn)類和部署描述項。開發(fā)EJB組件的設計過程:Online-BookStore1. 目標規(guī)劃: (1)系統(tǒng)的用戶登錄及身份驗證要求。 1*系統(tǒng)用戶注冊。 2*驗證用戶的注冊信息。 3*系統(tǒng)用戶進入系統(tǒng)時的身份驗證。(2)在線圖書銷售系統(tǒng)要求 1*允許用戶瀏覽所有圖書。 2*允許登錄用戶購買自己喜歡的圖書。 3*允許用戶對購物車進行管理。 4*系統(tǒng)實現(xiàn)訂單的處理。 5*系統(tǒng)完成整個的購物流程。2. 系統(tǒng)規(guī)劃 (1)系統(tǒng)結構層次 1*客戶層:使用Web瀏覽器。 2*表示層:使用JSP+Jav
14、aBean。 3*業(yè)務層:使用EJB中的會話Bean。 4*集成層:通過EJB中的實體Bean連接到數(shù)據(jù)庫。 5*資源層:J2EE中提供的各種資源。 (2)數(shù)據(jù)模型:產(chǎn)品(Book)模型,賬戶(Account)模型,訂單(AccountOrder) Category Supplier 模型。ShoppingCart BookAccountOrderAccountOrderItem3. EJB的設計 (1)體系結構分層的設計:Online-BookStore的系統(tǒng)層次結構瀏覽器客戶層:面向用戶小服務表示層:處理客戶層EJB業(yè)務層:封裝業(yè)務邏輯數(shù)據(jù)庫JDBC集成層:連接外部資源層:組件引用的系統(tǒng)4
15、.層次模式的選擇(1)表示層模式: 1*截取過濾器:促進請求的預先處理和后處理。 2*前端控制器:提供請求處理的集中控制器。 (2)商業(yè)層模式: 1*值對象:通過減少網(wǎng)絡對話,以加速層之間的數(shù)據(jù)交換。 2*會話外觀;隱藏業(yè)務對象復雜性,集中化工作處理。 3*服務器定位:封裝業(yè)務服務查找和創(chuàng)建的復雜性,定位業(yè)務服務工場。5. 實體Bean(數(shù)據(jù))和會話Bean(業(yè)務過程)的合理分配6. 狀態(tài)會話Bean和無狀態(tài)會話Bean的選擇(1) 狀態(tài)會話Bean:在Online-BookStore的購物車中,客戶被分配到一個購物車,整個會話期間,客戶獨占使用這個購物車,購物過程中可能從購物車中拿出一些商品
16、,最后查詢購物車中的所有內容并結帳,然后離開商店。這些不同方法之間的狀態(tài)數(shù)據(jù)都需要保留下來,所以適合使用狀態(tài)會話Bean實現(xiàn)。(2) 無狀態(tài)會話Bean:在Online-BookStore的賬戶模塊中,因生成一個新的注冊用戶和判斷用戶是否登錄,都是一次性的業(yè)務處理,可以使用無狀態(tài)會話Bean7. Bean管理持久性和容器管理持久性的選擇在Online-BookStore的實體中Bean使用的都是CMP管理持久性。8. 遠程接口和本地接口的選擇在Online-BookStore的實體中Bean使用的都是本地接口,讓會話Bean來訪問實體Bean,隱藏了實體Bean的各個細節(jié)。而所有的會話Bean
17、,采用遠程接口,是客戶可以訪問會話Bean。三、應用題:(30分)選取自己熟悉的領域,根據(jù)客戶提出的功能需求應用MVC模式設計一應用系統(tǒng)的軟件體系結構。要求必須說明清楚每層的接口、服務類。MVC模式能使界面(View)和數(shù)據(jù)(Model)能有效的分開,由控制器(Controller)去控制。電子時鐘的例子1. 首先我們來看一下Model,Model按照我的理解是數(shù)據(jù),就是所有的共用數(shù)據(jù)都是存儲在Model里面的,時鐘里有這樣的數(shù)據(jù),小時,分鐘,秒;現(xiàn)在我們來建立一個Model,ModelLocator.as:packagenet.smilecn.clock.modelimportflash.e
18、vents.EventDispatcher;importflash.events.Event; publicclassModelLocatorextendsEventDispatcher privatevar_hour:String;privatevar_minutes:String; privatevar_second:String;publicfunctionModelLocator():voidpublicfunctiongethour():Stringreturn_hour; publicfunctionsethour(value:String):void_hour=value;dis
19、patchEvent(newEvent(changeHour);publicfunctiongetminutes():Stringreturn_minutes;publicfunctionsetminutes(value:String):void _minutes=value; dispatchEvent(newEvent(changeMinutes); publicfunctiongetsecond():String return_second; publicfunctionsetsecond(value:String):void _ second=value; dispatchEvent(
20、newEvent(changeSecond); 這個代碼應該會好懂,這里ModelLocator繼承了EventDispatcher這個類,繼承這個類的原因是ModelLocator需要用dispatchEvent發(fā)消息出去。再來看一下Controller.as這個類:packagenet.smilecn.clock.controlimportflash.utils.Timer;importflash.events.TimerEvent;importnet.smilecn.clock.model.ModelLocator; publicclassController privatevar_mo
21、del:ModelLocator; privatevar_timer:Timer; publicfunctionController(model:ModelLocator):void_model=model; publicfunctionstartTime():void _timer=newTimer(1000,0); _timer.addEventListener(TimerEvent.TIMER,timerHandler); _timer.start(); privatefunctiontimerHandler(event:TimerEvent):voidvarnowDate:Date=n
22、ewDate();_model.hour=nowDate.getHours()9?String(nowDate.getHours():0+nowDate. getHours();_model.minutes=nowDate.getMinutes()9?String(nowDate.getMinutes():0+nowDate.getMinutes();_model.second=nowDate.getSeconds()9?String(nowDate.getSeconds():0+nowDate.getSeconds(); 這個類中我們用到了Timer類,因為我們用的是時鐘,所以需要一個定時器
23、,Timer是一個很好的定時器,Timer(1000,0),這里 1000是指1000毫秒,就是1秒鐘觸發(fā)一次定時鐘,0表示次數(shù),這里0是無限次,如果是大于0的數(shù)就是這個數(shù)的次數(shù)。偵聽 TimerEvent.TIMER事件就是1秒鐘去執(zhí)行一次timerHandler方法,timerHandler方法的功能是得到當前的時間然后去改變_model里面的值,再看一下ModelLocator.as里面的代碼,當hour,minutes,second的值改變的時候就會去發(fā)消息出去,那么誰來偵聽這些消息呢,當然是View,現(xiàn)在來看下View.as:packagenet.smilecn.clock.view
24、importflash.display.Sprite;importflash.events.Event;importflash.text.TextField;importnet.smilecn.clock.model.ModelLocator;importnet.smilecn.clock.control.Controller;publicclassViewextendsSpriteprivatevar_model:ModelLocator;privatevar_controller:Controller;privatevartime_txt:TextField; publicfunction
25、View(model:ModelLocator,controller:Controller):void _model=model; _controller=controller; time_txt=newTextField(); addChild(time_txt); _model.addEventListener(changeHour,changeTimeHandler); _model.addEventListener(changeMinutes,changeTimeHandler); _model.addEventListener(changeSecond,changeTimeHandler); _controller.startTime(); privatefunctionchangeTimeHandler(event:Event):voidtime_txt.text=_model.hour+:+_model.minutes+:+_model.second; 在View里面,偵聽了_model的事件,所以當收到
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度個人貸款逾期罰息減免協(xié)議3篇
- 二零二五年度二手房交易居間合同協(xié)議書3篇
- 2025年度燃氣電站設備維護與檢修勞務分包合同3篇
- 2025年度消防設施定期檢測與維護合同范本3篇
- 2024版全款購房協(xié)議書范本
- 2024年甲方向乙方訂購000臺計算機設備購銷合同
- 2025版智能機器人研發(fā)生產(chǎn)合作協(xié)議3篇
- 2024循環(huán)借款合同范本
- 二零二五年度單位借貸合同范本:合同續(xù)簽與調整2篇
- 2024年食堂員工勞動合同范本及員工職業(yè)健康檢查協(xié)議3篇
- 部編版語文六年級上冊作文總復習課件
- 專利產(chǎn)品“修理”與“再造”的區(qū)分
- 氨堿法純堿生產(chǎn)工藝概述
- 基礎化工行業(yè)深度:電解液新型鋰鹽材料之雙氟磺酰亞胺鋰(LiFSI)市場潛力可觀新型鋰鹽LiFSI國產(chǎn)化進程加速
- 年產(chǎn)10000噸一次性自然降解環(huán)保紙漿模塑餐具自動化生產(chǎn)線技改項目環(huán)境影響報告表
- 實戰(zhàn)銷售培訓講座(共98頁).ppt
- 測控電路第7章信號細分與辨向電路
- 哈爾濱工業(yè)大學信紙模版
- 氨的飽和蒸汽壓表
- 指揮中心大廳及機房裝修施工組織方案
- 餐飲店應聘人員面試測評表
評論
0/150
提交評論