软件体系结构56823_第1页
软件体系结构56823_第2页
软件体系结构56823_第3页
软件体系结构56823_第4页
软件体系结构56823_第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

提交评论