軟件體系結構97297_第1頁
軟件體系結構97297_第2頁
軟件體系結構97297_第3頁
軟件體系結構97297_第4頁
軟件體系結構97297_第5頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、軟件體系結構課程報告一、簡答題:(每題10分,共40分)1簡述軟件體系結構建模中“4+1”視圖模型,并舉一示例模型。答:4+1視圖模型從5個不同視角(邏輯視圖,進程視圖,物理視圖,開發視圖和 場景視圖)來描述軟件體系結構每一個視圖只關心系統的側面,5個視圖結合在 一起才能反映系統的軟件體系結構的全部內容.最終用戶:功能需求編程人員:軟件管理邏輯視圖開發視圖場景視圖進程視圖物理視圖系統集成人員:性能町擴充性,吞吐量等系統工程人員:系統拓撲,安裝通信等. 舉例:開發視圖.開發視圖也稱為模塊視圖,主要側重于軟件模塊的組織和管理軟件可通過 程序庫或子系統進行組織,這樣,對于一個軟件系統,就可以由不同的

2、人進行開發. 開發視圖要考慮軟件內部的需求,如軟件開發的容易性,軟件的重用和軟件的通 用性,要充分考慮由于具體開發工具的不同而帶來的局限性開發視圖通過系統 輸入輸出關系的模型圖和子系統圖來描述層次結構風格.各種各樣的空中交通管制系統5人機接口離線工具外部系統測試工具特定的空中交通管理系統構件4空中交通管制功能區:飛行管理,雷達管理等空中交通管制系統框架3航空類,空屮交通管理類分布式虛擬機2支撐機制:通信,時間,存儲,資源管理等基本元素 »1公用構件底層服務簡述層次體系結構風格及其特點,并舉一示例。答:層次系統組織成一個層次結構,每一層為上層服務,并作為下層客戶連接件 通過決定層間如何

3、交互的協議來定義,拓撲約束包括對相鄰層間交互的約朿. 這種風格支持基于可增加抽象層的設計這樣,允許將一個復雜問題分解成 一個增量步驟序列的實現.由于每一層最多只影響兩層,同時只要給相鄰層 提供相同接口,允許每一層用不同的方法實現,同樣為軟件重用提供了強大 的支持分層同用協議.仃)支持基于抽象程度遞增的系統設計,使設計師可以把一個復雜系統按遞增的 步驟進行分解.(2) 支持功能增強,因為每一層至多和相鄰的上下層交互,因此功能的改變最多 影響相鄰的上下層.(3) 支持重用,只要提供的服務接口定義不變,同一層的不同實現可以交換使用. 不足之處:仃)并不是每個系統都可以很容易的劃分為分層的模式,甚至即

4、使一個系統的邏輯 結構是層次化的,出于對系統性能的考慮,系統設計師不得不把一些低級或高級的功 能綜合起來.(2)很難找到一個合適的,正確的層次抽象方法.過程調用基本工具核心層用戶系統各種構件簡述基于體系結構的軟件開發過程并說明在實際軟件開發活動中如何實施。答:基于體系結構的軟件開發模型(1) 體系結構需求:需求是指用戶對口標軟件系統在功能,行為,性能,設計約束等方面的期望.(1.1)需求獲取:是定義開發人員必須實現的軟件功能,使得用戶能完成他們的任體系結構文檔化體系結構需求體系事勾設計0:n務,從而能滿足業務上的功能需求.(1. 2)標識結構:生成類圖,對類進行分組,把類大包成構件.(1. 3

5、)需求評審:組織一個由不同代表組成的小組,對體系結構需求及相關構件進行仔細的審查.體系結構復審¥體系結構實現¥體系結構演化(2).體系結構設計:(2. 1)提出軟件體系結構模型.(2. 2)把已標識的構件映射到軟件體系結構屮.(2. 3)分析構件z間的相互作用.(2. 4)產生軟件體系結構 (2. 5)設計評審.(3) .體系結構文檔化:主要輸出結果是體系結構需求規格說明和測試休系結構需 求的質量設計說明書這兩個文檔.(4) 體系結構復審:目的是標識潛在的風險,及早發現體系結構設計中的缺陷和 錯誤包括體系結構能否滿足需求,質量需求是否在設計中得到體現,層次是 否清晰,構件的

6、劃分是否合理,文檔表達是否明確,構件的設計是否滿足功能 與性能的要求等.(5) 體系結構實現:用實體顯示出一個軟件體系結構,既要符合體系結構所描述的 結構性設計決策,分割成規定的構件,按規定方式相互交互.(6) .體系結構演化:是使用系統演化步驟去修改應用,以滿足新的需求.(6. 1)需求變動歸類.(6. 2)制定體系結構演化計劃(6. 3)修改增加或刪除構件(6. 4) 更新構件相互作用6. 5)構件組裝與測試6. 6)技術評審(6. 7)產生演化后的體系結構4. 簡述軟件體系結構atam評估過程,并設計一個軟件項目的評估日程安排。 答:4. 1。描述atam方法:uatam方法步驟簡介。2

7、*獲取和分析技術。3*評估結 果。4.2。描述業務動機:1*系統最重要的功能需求。2*技術,管理,經濟或政治方 而的約束條件。3*業務目標和環境。4*主要的風險承擔者,5*體系結構驅動 因素。4. 3o描述體系結構:1*技術約束。2*要與本系統交互的具他系統。3*用以滿足 質量屬性要求的體系結構方法。44。確定體系結構方法:由設計師確定,有分析小組捕獲,但不進行分析。4.5o生產質量屈性效用樹:確定系統最重要的質量屈性目標,并對這些質量目 標設置優先級和細化。4. 6o分析體系結構方法:1*理解體系結構方法。2*找出該方法的缺陷,3*找出 該方法的敏感點。4*發現與其它方法的交互和權衡點。把最

8、高優先級的質量 屬性需求與實現他們的體系結構方法關聯起來。4. 7。討論和分級場景:1*集體討論用例場景(描述風險承擔者期望使用信用的 方式)和改變場景(描述風險承擔者所期望的系統在將來變更的方式)2*成 長場景描述的是體系結構在中短期的改變,包括期望的修改,性能或可用性 的變更,移植性,與其他軟件系統的集成等。3*旦投票結果確定,所有的 場景就可設置優先級。4.8o分析體系結構方法:重復第六步工作,把新得到的最高優先級場景與尚未 得到的體系結構工作產品對應起來。4.9。描述評估結果:1*已文檔化了的體系結構方法,風格。2*場景及優先級。 3*基于屬性問題。4*效用樹。5*所發現的風險決策。6

9、*已文檔化了的無風險 決策。7*所發現的敏感點和權衡點。開始時間所作工作第一天8:30介紹描述atam方法(第1步)第10:00客戶描述業務動機(第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客戶描述業務環境/動機(第2步)階10:00休息10:15客戶描述體系結構(第3步)段11:15確定體系結構方法(第4步)12:00中餐1

10、3:00生成質量屬性效用樹(第5步)14:00分析體系結構方法(第6步)15:30休息15:45分析體系結構方法(第6步)17:00休會第三天8:30介紹/扼要重述atam方法8:45分析體系結構方法(第6步)9:30討論場景(第7步)10:30休息10:45設置場景優先級(第7步)11:15分析體系結構方法(第8步)12:30中餐13:30分析體系結構方法(第8步)14:45準備匯報結果/休息15:30描述結果(第9步)16:00進步的分析/角色的分配17:00休會二、論述題:(3()分)選取目前構件模型中omg的corba、sun的ejb> microsoft的dcom之一,論 述模

11、型的結構、特點以及使用該技術開發構件的過程,并舉一示例。答:sim的ejb構件模型ejb是用于開發和部署多層結構的、分布式的、面向對彖的java應用系統的跨 平臺的構件體系結構。捉供了讓客戶端使用的分布式對彖的框架。簡化了企業級 軟件的開發。ejb容器提供了目錄服務,事務管理,安全等。rjb的類型:(1) 。會話bean:與所在客戶會話的生存周期一樣長,即在客戶交互期間有效。 1*無狀態會話bean: 一次對一個客戶提供業務邏輯而不在方法調用z間保存客戶狀態,即調用完后,無狀態會話bean就被釋放到緩沖池中。2*狀態會話bean: pj以維持調用客戶的狀態并在方法調用之間維護客戶狀態。(2)

12、。實體bean:代表了某個持久對象,用于映射基礎數據庫表格,生成數據 庫的對象視圖。1*容器管理的持久性:負責同步bean狀態與基礎數據庫。2*bean管理的持久性:編程人員要在bcandc實現類中編碼所有需耍的sql 語句與jdbc調用。(3) 。消息驅動的bean: 一些業務邏輯的消息使用者。ejb的特點:1*清晰的體系結構:支持多層應用體系結構和基丁構件開發。2*簡化的編程模型:只需要關注服務的實現,其余事務有ejb容器完成。3*通用的編程模型。4*易移植性:可以部署到任何兼容的ejb容器屮。5*支持事務處理:可以通過代碼外的描述定義事務處理。6*可擴展性:可隨應用的增長而擴展,并捉供了

13、負載平衡。7*安全性:由ejb服務器提供資源的訪問權限控制。ejb至少包括四個元索:主接口,組件接口(remote或local接口),bean實 現類和部署描述項。開發ejb組件的設計過程:onlinebookstore1. 目標規劃:(1)系統的用戶登錄及身份驗證要求。1*系統用戶注冊。2生驗證用戶的注冊信息。3*系統用戶進入系統時的身份驗證。(2)在線圖書銷售系統耍求1*允許用戶瀏覽所有圖書。2水允許登錄用戶購買自己喜歡的圖書。3水允許用戶對購物車進行管理。4*系統實現訂單的處理。5*系統完成整個的購物流程。2. 系統規劃(1)系統結構層次1*客戶層:使用web瀏覽器。2*表示層:使用 j

14、sp+javabeano3*業務層:使用ejb中的會話beano4*集成層:通過ejb中的實體bean連接到數據庫。5*資源層:j2ee中提供的各種資源。(2)數據模型:產品(book)模型,賬戶(account)模型,訂單(accountorder)模型。categoryshoppingcart3. ejb的設計(1)體系結構分層的設計:online-bookstore的系統層次結構客戶層:面向用戶瀏覽器表示層:處理客戶層小服務業務層:封裝業務邏輯ejb集成層:連接外部jdbc資源層:組件引用的系統數據庫4 層次模式的選擇(1)表示層模式:1*截取過濾器:促進請求的預先處理和后處理。2*前端

15、控制器:提供請求處理的集中控制器。(2)商業層模式:廣值對象:通過減少網絡對話,以加速層之間的數據交換。2*會話外觀;隱藏業務對彖復雜性,集中化工作處理。3*服務器定位:封裝業務服務查找和創建的復雜性,定位業務服務工場。5. 實體bean (數據)和會話bean (業務過程)的合理分配6. 狀態會話bean和無狀態會話bean的選擇(1)狀態會話bean:在0nline-bookstore的購物車屮,客戶被分配到一個購物 車,整個會話期間,客戶獨占使用這個購物車,購物過程中可能從購物車中拿出 一些商品,最后查詢購物車中的所有內容并結帳,然后離開商丿占。這些不同方法 z間的狀態數據都需要保留卜來

16、,所以適合使用狀態會話bean實現。(2)無狀態會話bean:在online-bookstore的賬戶模塊中,因生成一個新的注 冊用戶和判斷用戶是否登錄,都是一次性的業務處理,可以使用無狀態會話bean7. bean管理持久性和容器管理持久性的選擇在online-bookstore的實體屮bean使用的都是cmp管理持久性。8. 遠程接i i和木地接i i的選擇在online-bookstore的實體中bean使用的都是本地接口,讓會話bean來訪問 實體bean,隱藏了實體bean的各個細節。而所有的會話bean,采用遠程接口, 是客戶可以訪問會話beano應用題:(30分)選取自己熟悉的領

17、域,根據客戶提出的功能需求應用mvc模式設計一應用系統的軟件體系結構。要求必須說明清楚每層的接口、服務類。mvc模式能使界面(view)和數據(model)能育效的分開,由控制器(controller) 去控制。電子時鐘的例子1.首先我們來看一下model,model按照我的理解是數據,就是所有的共川數據都是存儲在model里面的,時鐘里冇這樣的數據,小時,分鐘,秒;現在我們來建立一個 model,modellocator.as:package net.smilecn.clock.modelimport flash.events.eventdispatcher;import flash.eve

18、nts.eve nt;public class modellocator extends eventdispatcher private var _hour:string;private var_minutes:string;private var _second:string;public function modellocator():voidpublic function get hour():stringreturn _hour;public function set hour(value:string):void_hour = value;dispatch eve nt(new ev

19、e nt(”changehour');public function get minutes():stringreturn _minutes;public function set minutes(value:string):void_minutes = value;dispatchevent(new event(hchangeminutesn);public functi on get sec on d():stringretur n _sec ond;public function set second(value:string):void_ second = value;disp

20、atchevent(new event(l,changesecondh);這個代碼應該會好懂,這里modellocator繼承了 eventdispatcher這個類継承這個類的原因 是modellocator 要丿dispatchevent發消息出去。再來看一下controller.as這個類:package net.smilecn.clock.controlimport flash.utils.timer;import flash.events.timerevent;import net.smilecn.clock.model.modellocator;public class contr

21、oller!private var _model:modellocator;private var_timer:timer;public function controller(model:modellocator):void_model = model;public function starttime():void_timer = new timer(1000,0);jimer.addeventliste ner(timereve nt.timer.timerhandler);_timer.start();private function timerhandler(event:timere

22、vent):voidvar nowdate;date = new date();model.hour = nowdate.gethours()>9?string(nowdate.gethours():ll0,+nowdate. gethours();_model.minutes = nowdate.getminutes()>9?string(nowdate.getminutes():,0t,+n owdate.getminutes();_model.second = nowdate.getseconds()>9?string(nowdate.getseconds():n0n+

23、 nowdate.getsec on ds();這個類中我們用到了 timer類,因為我們用的是時鐘,所以需要一個定時器,timer是一個 很好的定時器,timer(1000,0),這里1000是指1000毫秒,就是1秒鐘觸發一次定時鐘, 0表示次數,這里0是無限次,如果是大于0的數就是這個數的次數。偵聽timerevent.timer事件就是1秒鐘去執行一次timerhandler方法,timerhandler方法的功 能是得到當前的時間然后去改!_model里面的值,再看一下modellocator.as里面的代碼, 當hour,minutes,second的值改變的時候就會去發消息出去,

24、那么誰來偵聽這些消息呢,當然是view,現在來看下view.as:package net.smilecn.clock.viewimport flash.display.sprite;import flash.events.event;import flash.text.textfield;import net.smilecn.clock.model.modellocator;import net.smilecn.clock.control.controller;public class view extends spriteprivate var _model:modellocator;pri

25、vate var _controller:controller;private var time_txt:lextfield;public function view(model:modellocatorcontroller:controller):void_model = model;_controller = con troller;time_txt = new textfield();addchild(time_txt);_model.addeventlistener(nchangehourh,cha ngetimehandler);_model.addeventlistener(hchangeminutesh:cha ngetimeha ndler);_model.addeventlistener(hchangesecondh,cha ngetimehandler);_controller.starttime();private function changetimehandler(event:event):voidtime txt.text = model.hour+f,:,f+ model.minutes+h:f,+ model.second:在view里面,偵聽了_model的事件,所以當收到數據改變的消息后,將_model的數據顯 示到文

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論