2015级软件体系结构复习及考试试卷

上传人:灯火****19 文档编号:57073057 上传时间:2022-02-23 格式:DOCX 页数:19 大小:376.72KB
收藏 版权申诉 举报 下载
2015级软件体系结构复习及考试试卷_第1页
第1页 / 共19页
2015级软件体系结构复习及考试试卷_第2页
第2页 / 共19页
2015级软件体系结构复习及考试试卷_第3页
第3页 / 共19页
资源描述:

《2015级软件体系结构复习及考试试卷》由会员分享,可在线阅读,更多相关《2015级软件体系结构复习及考试试卷(19页珍藏版)》请在装配图网上搜索。

1、软件架构的定义:(1)计算系统的软件架构是解释该系统所需的结构体的集合,其中包括软件元素,元素之间的相互关系和二者各自的属性。(2)Bass:软件架构包括一个或一组软件构件,软件构件的外部的可见特性(指软件构件提供的服务,性能,特性,错误处理,共享资源使用等)及其相互关系。(3) 软件架构师关注的首先不是功能,而是品质关注点(非功能性需求),涉众关注的是那些品质,如性能.安全.可伸缩性.可变性.可维护性.可用性等。理解涉众的品质关注点后,考虑折中.分解,分而治之.保持概念完整性。(4) 软件架构具有一定形式的结构化元素,即构件的集合包括:处理构件:负责对数据进行加工;数据构件:是被加工的信息;

2、连接构件:把架构的不同部分组合连接起来.软件架构从四个角度,对系统进行描述:概念:描述系统的主要构件及它们之间的关系模块:包含功能分解和层次结构;运行:描述系统的动态结构;代码:描述代码和库函数在开发环境中的组织(5) 张友生:软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述,这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件架构不仅指定了系统的组织和拓步结构,还显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。软件架构的意义:架构是风险承担者(涉众)进行交流的手段架构是早期设计决策的体现软件架构是可传递和可重用的模型软件

3、架构的应用现状(1)软件架构描述语言:ADL一种形式化语言。(2) 架构描述构造与表示:按照一定的描述方法,用架构描述语言(ADL)对架构进行说明的结果则称为架构的表示,将描述架构的过程称为架构构造。(3) 架构分析、设计与验证:架构分析的内容:结构、功能和非功能分析/架构设计本质:将系统分解成相应的组成成分并将这些成分重新组装成一个系统/架构设计两大类方法:过程驱劢和问题列表驱劢.架构测试着重于仿真系统模型,解决架构层的主要问题.架构测试策略可分为单元/子系统/集成/验收测试等阶段的测试策略。(4) 架构发现、演化与重用:?架构发现从既存系统中提取软件的架构,属逆向工程。?架构重用属于设计重

4、用,比代码重用更抽象。?软件架构演化是指由于系统需求、技术、环境、分布等因素的变化而导致软件架构的变劢。(5) 基于架构的软件开发方法:在基于构件和基于架构的软开发逐渐成为主流情况下,已经出现了基于构件的软件工程。(6)特定领域的架构框架:DSSA是将架构理论应用到具体领域的过程。(7)软件架构支持工具(8软件产品线架构:产品线代表着一组具有公共的系统需求集的软件系统,是根据基本的用户需求对标准的产品线构架逆行定制,将可重用构件不系统独有的部分集成而得到的。(9)建立评价软件架构的方法:架构权衡分析方法(ATAM方法)、软件架构分析方法(SAAMT法)、中间设计的积极评审(ARID方法)软件体

5、系结构建模的种类结构、框架、动态、过程、功能模型结构:以构件、连接件和其他概念来刻画结构,并以此来反映系统的重要语义内容.框架:框架模型更侧重于整体的结构.主要以一些特殊的问题为目标建立只针对和适应该问题的结构。动态:动态模型是对结构或框架模型的补充,研究系统的“大颗粒”的行为性质。例如,描述系统的重新配置或演化。过程:过程模型研究构造系统的步骤和过程。功能:体系结构是由一组功能构件按层次组成,下层向上层提供服务。4+1模型C4模型:容器:一个在其内部可以执行构件或驻留数据的东西。开发视图也称模块视图,主要侧重于软件模块的组织和管理。-静进程视图侧重于系统的运行特性,主要关注一些非功能性的需求

6、。-动物理视图主要考虑如何把软件映射到硬件上-动场景可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,场景可认为是最重要的需求抽象。管理信息系统-逻辑视图和开发视图实时控制系统-进程视图和物理视图在面向对象的系统中,通常系统由多个容器组成,容器由多个构件组成,构件由多个类组成。RUP4+1MASVIM)用户爆战集成人员ItRWB(liwlfwnWicm乐掌用将组工程牌软件体系结构的生命周期模型:架构的核心模型:构件.连接件.配置.端口.角色t1+始.踽LJ加色软件过程各阶段间的关系:需求分析-建立体系结构-详细设计-实现-测试软件架中风格:描述某一特定应用领域中系统组织方式的惯用模式

7、.架构风格定义了一个系统家族即(架构定义,词汇表,约束),词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。诸风格的特征数据流风格:批处理序列;管道/过滤器。调用/返回风格:主程序/子程序;面向对象风格;层次结构。独立构件风格:进程通讯;事件系统。虚拟机风格:解释器;基于规则的系统。仓库风格:数据库系统;超文本系统;黑板系统。C2风格管道-过滤器:每个构件都读输入数据流,进行处理,产生输出数据流.这里的处理是对输入流的过滤,变换及增量计算;构件被称为过滤器,连接件就是过滤器间的数据流传输的管道.如:UnixShell编写的程序.编译器.批处理程序.面像对象

8、系统:此风格建立在数据抽象和面向对象的基础上。构件是对象。构件封装了数据和用于控制该数据的操作,构件间通过信息传递进行通讯和合作。基于事件的隐式调用:构件不直接调用一个过程,而是触发或广播一个或多个事件.系统中的其它构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程。这种风格的构件是一些模块,模块既可以是一些过程,又可以是一些事件的集合.主要特点:事件的触发者并不知道哪些构件会被这些事件影响.如IDE的Debugger,数据库的trigger,Windows的画面控制.分层系统:层次系统为层次结构,每一层为上层服务,并作为下层客户.连接件通过决定层间如

9、何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。此风格便于分解复杂问题.由于每层只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件重用提供了强大的支持。仓库系统:有两种构件:中央数据结构说明当前状态,独立构件在中央数据存贮上执行.构件与仓库间相互作用.(数据库,信号处理松耦合代理,数据共享存取,带有全局数据库的批处理系统)C2:系统中的构件和连接件都有一个顶部和一个底部;构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部,而构件与构件之间的直接连接是不允许的;一个连接件可以和任意数目的其它构件和连接件连接;当两个连接件进行直接连接时,必须由

10、其中一个的底部到另一个的顶部。C/S风格:有三个主要组成部分:客户应用程序,数据库服务器和网络.模型:任务分配:服务器:数据库安全性的要求;数据库访问并发性的控制数据库前端的客户应用程序的全局数据完整性规则;数据库的备份与恢复。客户应用程序:提供用户与数据库交互的界面;向数据库服务器提交用户请求并接收来自数据库服务器的信息;利用客户应用程序对在客户端的数据执行应用逻辑要求。优点:有强大的数据操作和事务处理能力,模型思想简单,易于理解,节约费用.缺点:开发成本较高,客户端程序设计复杂,软件移植困难优点:可维护性和可扩展性,具有良好的可升级性和开放性可以选择各自最适合的开发语言。三层C/S结构各层

11、间的通信效率若不高,即使分配给各层的硬件能力很强,其作为整体来说也达不到所要求的性能。设计时必须慎重考虑三层间的通信方法、通信频度及数据量这和提高各层的独立性一样是三层C/S结构的关键问题。三层B/S风格具体结构为:浏览器/Web服务器/数据库服务器。B/S架构是利用WWW览器技术,结合浏览器的多种脚本语言用通用浏览器就实现强大功能,并节约了开发和运用成本。优:系统安装、修改和维护,都容易,对客户端机器性能要求不高.适用于面向大量用户的应用和不特定用户应用.架构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础缺:应用系统在操作性等响应速度上远低于C/S架构.数据动

12、态交互性不强,不利于在线事务处理(OLTP)应用.在公众网下的应用会有安全方面的成本。CORBA康那总也,用It普OOlz10片章调聚低用臭呻*,1所4缈TM臬*(Object加10,接口定义语言(IDL)利用IDL统一地描述服务器对象的接口接口池(IR)利用IDL统一地描述服务器对象的接口动态调用接口(DII)动态调用接口提供了标准函数供客户对象动态创建请求、动态构造请求参数。客户对象将动态调用接口与接口池配合使用可实现服务器对象接口的动态搜索、请求及参数的动态构造与发送。对象适配器(OA用于屏蔽ORB内核的实现细节,为服务器对象的实现者提供抽象接口,以便他们使用ORB内部的某些功能。这些功

13、能包括服务器对象的登录与激活、客户请求的认证等。特点:引入中间件作为事务代理,完成客户机提出的业务请求。?实现客户与服务对象的完全分开。?提供软总线机制。?采用面向对象的软件实现方法开发应用系统。正交软件体系结构正交软件体系结构由完成不同功能的n(n1)个线索(子系统)组成?系统具有m(m1个不同抽象级别的层;?线索之间是相互独立的(正交的);系统有一个公共驱动层(一般为最高层)和公共数据结构(一般为最低层)?结构清晰,易于理解?易修改,可维护性强?可移植性强,重用粒度大基于层次消息总线的软件结构异构风格?关于软件包、框架、通信以及其他一些架构上的问题,存在多种标准。且会变化。我们总会遇到一些

14、遗留系统,它们仍有效用,但与新系统有些不协调。处于技术与经济的考虑,常决定不再重写它们。即使在某一单位中规定了共享共同的软件包或相互关系的一些标准,仍存在解释或表示习惯上的不同。异构网格-内外有别微型UgfI明旭卜xfifp,l4,myru.Trm领域特定的软件架构(DSSA)?DSSA勺目标:在相关应用中共享体系结构。以加大重用。DSSA勺定义:DSSA是专用于一类特定类型的任务(领域)的、在整个领域中能有效地使用的、为成功构造应用系统限定了标准的组合结构的软件构件的集合。基本活动:逐步求精_,皿,城搐式领域分析低毒领域设计;开发和组织司,用惜息领域实现I模型f用T 程抑典型的软件系统的架构

15、类型?人工智能:模拟或扩大人类认知,运动或其他有机体过程的系统?商业:工商企业运营必要的系统?通讯:提供用于数据传输和数据管理,数据的用户连接或者数据展示的基础设施的系统?内容创作:用来创建或管理文字和多媒体的系统?设备:与物理世界交互的系统,可为个人提供某种有意义的服务?娱乐与运动:管理公众事件或者提供大众娱乐体验的系统。?金融:为转账和理财及其他安全事务提供基础设施的系统?游戏:为个人或群体提供娱乐体验的系统?工业:模拟或控制物理过程的系统?行政管理:支持地方/中央/全球等政治实体的管理和运作方式的系统?法律:支持法律的系统?医疗:诊断或治疗,或者有助于医学研究的系统?军事:用于商议,通讯

16、,指挥,控制和信息(C4I)的系统。也有用于进攻和防卫武器的系统?操作系统:位于硬件之上提供基本软件服务的系统?平台:位于操作系统之上提供高级服务的系统?科学:用于科学研究和应用的系统?工具:用于开发其他系统的系统?运输:控制水上,地面,空中或太空交通工具的系统?实用程序:与其他软件交互作用的系统,可提供某种有意义的服务体系结构描述方法图形表达工具模块内连语言:传统程序设计语言。不便处理和描述高层次软件体系结构元素。基于软构件的系统描述语言:将软件系统描述成一种是由许多特殊软件实体构造组成的组织或系统.面向的系统元素是层次较低的以程序设计为基础的通信协作软件实体单元系统一般是面向特定应用的特殊

17、系统.软件体系结构描述语言:ADL是针对软件体系结构的整体性和抽象性特点,定义和确定适合于软件体系结构表达与描述的有关抽象元素而形成的。XML的特点?简洁有效?易学易用?开放的国际化标准?高效且可扩充XML的作用?使得搜索更加有意义?开发灵活的Web应用软件?实现不同数据的集成?使用于多种应用环境?客户端数据处理与计算?数据显示多样化?局部数据更新?与现有Web发布机制相兼容?可升级性?压缩性能高XML的应用?客户需要与不同的数据源进行交互时?将大量运算负荷分布在客户端?将同一数据以不同的面貌展现给不同的用户?网络代理对所取得的信息进行编辑、增减以适应个人用户的需要XML与HTML勺区另I?H

18、TM是一种格式化的语言,HTML文本可以看作一个格式化的程序?XM提一种元标记语言?XM淀义一套元句法,与特定领域有关的标记语言(例如,MusicML、MathML和CML)都必须遵守XSL与CSS的区另I?CSS只能改变特定元素的格式,也只能以元素为基础。但XSL样式单可以重新排列元素并对元素进行重排序。?CSS勺优越性在于具有广泛的浏览器支持。但XSL更为灵活和强大,可更女f地适用于XML文档。且带XSL样式单的XML文档可以很容易地转换为带CSS样式单的HTM戊档。?若只是要对一些固定数据进行排版,可以使用“HTMLCSS方式;若这些数据是与某些应用程序相关,且独立于程序存在,独立于程序

19、来使用,则应该充分使用XM取术,采用HTMLXMLXSL。XML文档的解析的各种API接口的特征和选择原则DOM,SAXJDOM,JAXPDOM?DOMI供了一组丰富的功能,用户可以用这些功能来解释和操作XML文档。?DOMfe构建整个文档驻留内存的树,才能进行解析。如果文档很大,就会要求有极大的内存.?DOM创建表示原始文档中每个东西的对象,包括元素、文本、属性和空格。若用户只需关注文档的一小部分,那就嫌效率不高,费力不讨好。SAX解析器向代码发送事件。?SAX解析器不创建任何对象,只是将事件传递给应用程序。?SAX解析器在解析开始时就开始发送事件。?SAX事件是无状态的。?SAX#件不是持

20、久的。JDOIM基于Java技术的开源项目,它试图遵循80/20规则:用DOMF口SAX的20%勺功能来满足80%勺用户需求。JDO微用SAXf口DOMW析器,故只是一组相对较小的Java类。?主要特性:大幅度减少了用户代码,通常是DOMZ用程序的1/3,SAX应用程序的1/2。JAXPJAX唯供的诸如DocumentBuilderFactory之类的接口,为不同的解析器提供了一个标准接口。还有一些方法可以允许用户控制底层的解析器是否可以识别名称空间,以及是否使用DTD或模式来验证XM戊档。API接口的选择?要用Java编写应用程序吗?JAXP使用DOMSAXf口JDOM如果用Java编写代码

21、,那么应使用JAXP将代码与各种解析器实现的细节隔离。?应用程序将如何部署?如果应用程序将要作为Javaapplet部署,则会希望使要下载的代码数量最小,SAXB析器比DOMW析器小,而使用JDOM寸,除了SAX或DOM解析器之外还要求编写少量代码。?一旦解析了XML文档,还需要多次访问那些数据吗?是,则DOMR能是正确的选择(保存全部数据)。若用SAX,则开发人员需要以某种方式保存它。否则必须再次解析该文件。?只需要XM酶文件的少量内容吗?是,则SAX可能是正确的选择。SAX是选择处理,不会为源文件中的每个东西创建对象。?正在一台内存很少的机器上工作吗?是,则不管可能考虑到的其它因素是什么,

22、SAX都是最佳选择。SaaS,软件即服务是一种通过Internet提供软件的模式,用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件。SOA的定义SOA是一种应用程序体系结构,在该体系结构中,所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,能够以定义好的顺序调用这些服务来形成业务流程。SOA特征松散耦合.粗粒度服务.标准化接口SOA用途便于将业务系统能力分解为独立性高/松散耦合,粗粒度的和可复用的服务便于对服务进行组装和编排以满足业务和流程的变化需求。SOA的设计原则明确定义的接口/自包含和模块化/粗粒

23、度/松耦合/互操作性、兼容和策略声明SOA的关键技术发现服务层UDDIDISCO发布与发现。我是谁,在哪,能干啥描述服务层WSDLXMLSchema我具体有哪些功能,怎么用消息格式层SOAPREST用什么格式的内容和我交互编码格式层XML我需用XML言描述交互信息传输协议层HTTPTCP/IP、SMT嘴底层通信协议是什么SOA的实现方法WebServiceWeb服务的应用实例ERPERP(EnterpriicResource:Planning)的SOARIA的优点?RIA结合了C/S架构反应速度快、交互性强的优点,以及B/S架构传播范围广及容易传播的特性?RIA简化并改进了B/S架构的用户交互

24、?数据能够被缓存在客户端,从而可以实现一个比基于HTM的响应速度更快且数据往返于服务器的次数更少的用户界面?RIA可继续使用现有的应用程序模型(包括J2EE和.NET),无需大规模替换现有Web应用程序。通过RIA技术,可轻松构建更直观、易使用、反应更迅速并且可以脱机使用的应用程序?RIA可为企业提供多种重要效益,如提高产品销量、增强客户关系,延长网站逗留时间、减少带宽成本及支持求助等RIA客户端开发技术类别Flex,XUL,Laszlo,AJAX,Java,BindowsAjax开发模式在小H应用中,置E中用户的源作会过时引与劣器迸行噩宿.然后樽返回的结果由交蛤琴白聿的均。工引再由内峡引串来

25、决定将遁回的数据入到式面围足的惊.Ajax技术核心:JavaScript调用XML的异步传输Ajax开发过程初始化XMLHttpRequest对象指定相应处理函数发出Http请求处理服务器返回信息动态显示信息接口设计包含用户接口设计=用户界面设计用户界面设计的黄金规则及其含义用户操纵控制:以不强迫用户进入不必要的或不希望的动作的方式来定义交互模式.提供灵活的交互.允许用户交互被中断和撤销.当技能级别增长时可以使交互流线化并允许定制交互.使用户与内部技术细节隔离开来.设计应允许用户与出现在屏幕上的对象直接交互。减少用户的记忆负担:减少对短期记忆的要求.建立有意义的缺省.定义直观的快捷方式.界面的

26、视觉布局应该基于真实世界的象征.以不断进展的方式揭示信息。保持界面一致:允许用户将当前任务放入有意义的环境中.在应用系统家族内保持一致性.如果过去的交互模型已经建立起了用户期望,除非有不得已的理由,否则不要改变它。界面分析从哪些方面着手界面分析意味着了解(1)通过界面和系统交互的人(最终用户)最终用户为完成工作要执行的任务(3)作为界面的一部分而显示的内容(4)任务处理的环境评估的主要方式:基于调查问卷戒检查表的评估方式基于场景的评估方式基于度量的评估方式ATAM平估方法,效用树ATAM,效用附例1w.UEWfEiwnii也席班理同年返此也修小粗,工-IWft+产星n金码门rt-0史产显,HE

27、量即thIVS.J!4LlffUHAJIfltHeHrh用F近甘修障-业”:ftIt障LLH.K&iQU断电,id内根帽sir也盘出戛司U#占叶井博4L篙秀惘1(修时”(L.”局*1吟wmT时间内;_L.町客户电保帛wHnAftMAMli实例化哪一个类。工厂方法使得子类实例化的过程推迟。实例化子类的对象抽象工厂模式提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定它们具体的类。产品对象族。抽象工厂与工厂模式的区别:?工厂模式的工厂是针对一个产品等级结构?抽象工厂模式的工厂是针对多个产品等级结构适配器模式将一个类的接口转换成用户希望得到的另一种接口它使原本不相容的接口得以协同工作与对象

28、的接口软件设计里的模式的层次(1)Coad的面向对象模式:可划分为:?基本的继承和交互模式?面向对象软件系统的结构化模式?与MVC匡架相关的模式。(2)代码本M式:主要目标在于:指明结合基本语言概念的可用方式;构成源码结构与命名规范的基础;避免面向对象程序设计语言的缺陷。(3)框架应用模式:在应用程序框架“菜谱”中有很多“菜谱条”,它们用一种不很规范的方式描述了如何应用框架来解决特定的问题。?不同的框架有各自的“菜谱”。(4)形式合约:形式合约也是一种描述框架设计的方法,强调组成框架的对象间的交互关系。设计模式-定义,作用,分类设计模式:是一套被反复使用、多数人知晓的、经过分类编目的、代码设计

29、经验的总结。它与具体的实现语言无关。作用:提高了软件复用的水平,从而提高了生产效率。分类:创建型,结构型,行为型GoF的23种经典设计模式创建型(工厂方法模式。抽象工厂。建造者。原型。单例)结构型(适配器。桥连。组合。装饰。外观。享元。代理)行为型(职责链。命令。解析器。迭代器。中介者。备忘录。观察者。状态。策略。模板方法。访问者)工厂模式定义一个创建对象的接口,但由子类决定需要单例模式保证一个类只有一个实例,并提供一个访问它的全局访问点类的单个实例代理模式为其他对象提供一种代理以控制这个对象的访问如何访问对象,对象位置MVCt点和Java实现示例MVCM观察者,策略,组合模式的演变。根据MV

30、CE框架中的实现不同可能还会用到工厂和装饰器模式。中间件的定义,优点,功能,分类,发展趋势中间件:是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。优点:它使设计师集中设计与应用有关的部分,大大简化设计与维护工作。功能:?负责客户机与服务器之间的连接和通信,以及客户机与应用层之间的高效率通信机制。?提供应用层不同服务之间的互操作机制,以及应用层与数据库之间的连接和控制机制。?提供一个多层体系结构的应用开发和运行的平台,以及一个应用开发框架,支持模块化的应用开发。?屏蔽硬件、操作系统、网络和数据库的差

31、异。(如JVM,ODBC)?提供应用的负载均衡和高可用性、安全机制与管理功能,以及交易管理机制,保证交易的一致性。?提供一组通用的服务去执行不同的功能,避免重复的工作和使应用之间可以协作。分类:面向对象:CORBA,EJB,COM应用层:底层、通用型、集成型中间件发展趋势:规范化、构件化和松耦合、平台化。主要的中间件:RPCORBRMI,RMI-IIOP,MOM,事务处理监控器面向对象设计原则单一职责原则里氏替换原则依赖倒置原则接口隔离原则迪米特法则开闭原则组合/聚合复用原则概要设计书(外部设计书)的文档内容和制作步骤内容:目的/方针、概要、功能、用户界面、系统结构、软件结构、硬件结构、网络结

32、构、系统接口,用语定义步骤:业务流程的作成-向子系统的分解-画面和报表的布局作成-编号设计-逻辑数据设计-系统接口设计-外部设计书整理-评审详细设计书(内部设计书)的文档内容和制作步骤内容:可以有功能、用户界面、系统结构、软件结构、硬件结构、网络结构、系统接口,必须有程序结构、数据结构、网络结构,处理逻辑,消息和用语定义。步骤:画面的详细设计-报表的详细设计-外部接口的详细设计-业务规划的详细设计-要求处理的详细设计-消息的详细设计-物理数据设计-内部设计书整理-评审Embeddedsystemsdesign嵌入式系统设计Architecturalpatterns体系结构模Timinganal

33、ysis时序分析Real-timeoperatingsystems实时操作系统第13章软件产品线体系结构软件产品线的产生于发展软件产品线的过程模型有双周期模型,模型。SEI 模型, 三生命周期3.什么是软件重用?软件重用的层次可以分为哪几个级别?软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。软件重用的层次可以分为三个级别:(1)代码重用(2)设计结果重用(3)分析结果重用5.程序结构、软件结构、软件体系结构三者有什么区别和联系?区别:(1)程序结构是采用自顶向下、逐步求精及模块化的程序设计方法;使用三种基本控制结构(即顺序、选择和循环)构造程序。程序结构有两层含

34、义,一是指程序的数据结构和控制结构;另一是指由比程序低一级的程序单位(模块)组成程序的过程、方法和表示。(2)软件结构是指一种层次表况,由软件组成成分构造软件的过程、方法和表示。(3)软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。联系:(1)软件结构主要包括程序结构和文档结构。(2)软件体系结构是整个软件系统的骨架。补充:Chapter20EmbeddedSystems嵌入式系统基于消息总线:HMBM格的构件接口是一种基于消息的互联接口,可以较好地支持体系结构设计。构件之间通过消息进行通讯,接口定义了构件发出和接收的消息集合。当某个事件发生后,系统或构

35、件发出相应的消息,消息总线负责把该消息传递到此消息感兴趣的构件。按照响应方式的不同,消息可分为同步消息和异步消息。HMBM格一构件动态行为:构件的行为就由外来消息的类型唯一确定,即一个消息和构件的某个操作之间存在着固定的对应关系。对于这类构件,可以认为构件只有一个状态,或者在每次对消息响应之前,构件处于初始状态。更通常的情况是,构件的行为同时受外来消息类型和自身当前所处状态的影响。HMBM格一运行时刻的系统演化:动态增加或删除构件;动态改变构件响应的消息类型;消息过滤;1 .选择一个熟悉的大型软件系统,分析其体系结构中用到的风格,以及表现出的特点。(为什么要采用这种风格?采用这种风格带来哪些优

36、势?具有哪些不足?)如在石油管理局劳动管理系统中使用三层C/S的风格。该项目要求系统需要具备较强的适应能力和演化能力,不论单机还是网络环境均能运行,并保证数据的一致性,且能随着网络环境的改善和管理水平的提高以及从独立的应用程序方式向适应Intranet环境的方式演化。三层C/S体系结构运用事务分离的原则将MIS应用分为表示层、功能层、数据层等三个层次,每一个层次都有自己的特点。在MIS的三层结构中,中间的功能层是关键。运行MIS应用程序的最基本的任务就是执行数千条定义业务如何运转的业务逻辑。一个业务处理过程就是一组业务处理规则的集合,中间层反应的是应用域模型,是MIS系统的核心内容。优点:允许

37、合理地划分三层结构的功能在逻辑上保持相对独立性;允许更灵活有效地选用相应的平台和硬件系统,具有良好可升级性和开放性;三层C/S结构中,应用层的各层可以并行开发,各层可以选择各自最适合的开发语言;允许充分利用功能层有效地隔离开表示层和数据层,整个系统的管理层次也更加合理和可控制。缺点:三层C/S结构各层间的通信效率若不高,即使分配给各层的硬件能力很强,其作为整体来说也达不到所要求的性能。此外,设计时必须慎重考虑三层间的通信方法、通信频度及数据量。【问题一】在实际的软件项目开发中,采用成熟的体系结构风格是项目成功的保证。请用200字以内的文字说明:什么是软件体系结构风格;面向对象和控制环路两种体系

38、结构风格各自的特点。软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束。面向对象:此风格的特征是将数据表示和基本操作封装在对象中。构件是对象。对象维护自身表示的完整性,对象之间通过消息机制进行通信,对象交互时需要知道彼此的标识,通过对象之间的协作完整计算过程。控制环路:将过程输出的指定属性维护在一个特定的参考值。控制环路风格包括过程变量、被控变量、输入变量、操纵变量和设定点等构件。通过手机实际和理想的过程状态信息,调整过程和变量,使趋向于理想状态。【问题二】用户需求没有明确给出该系统如何根据输入集合计算输出。请

39、用300字以内的文字针对该系统的增减速功能,分别给出两种体系结构风格中的主要构件,并详细描述计算过程。面向对象:构件是对象。对于系统的增减速功能,采用面向对象风格的巡航控系统首先会定义司机、油门、时钟、速度计和车轮等构件。整个计算的主要过程是:(1)司机进行增/减速操作设置期望速度,该期望速度以消息的形式传递给速度计;(2)速度计通过向车轮和时钟发送消息获取车轮转速和时钟值,得到当前速度;(3)速度计计算当前速度和期望速度的速度差值;(4)该差值以消息的形式发送给油门,油门通过速度差值调节自身状态;(5)整个过程在时钟的控制下定期向速度计发送消息,重复执行(2)。控制环路的架构风格以控制器为核

40、心,期望速度、车轮脉冲、时钟和油门等作为构件。具体的计算过程是:(1)司机进行增/减操作设置期望速度值;(2)将设定值置为期望速度值;(3)控制器采集车轮脉冲和时钟值,计算出当前速度;(4)比较期望速度和当前速度,计算速度差值,控制油门动作。(5)反复执行(3)和(4)。我会选择Acme原因如下:Acme是第二代ADL,即,其目的是确定一种最少共同点ADLAcme!CMU勺Acmea目的产物,AcmeM备大多数ADL共有的概念,因此它本身也是一个ADL并且是一个相对而言比较简单的通用的ADL,Acme的主要特点表现为:采用七个基本的体系结构设计元素作为体系结构的本体,采用灵活的标注机制支持使用

41、外部语言定义的非结构化信息,使用类型机制对常见的可复用的软件体系结构俗语和风格进行抽象描述,使用开放的语义框架对体系结构描述进行推理,Acme的设计元素为构件、连接子、系统、端口、角色、表示、映射。模型驱动工程的特点主要表现在,该方法更加关注为不同的领域知识构造其抽象描述,即领域模型(domainmodels),基于这些代表领域概念的模型刻画软件系统,并通过自动(半自动)的层层转换完成从设计向实现的过渡,从而最终完成整个系统的开发。2 .软件体系结构描述方法和体系结构描述标准是形式化的基础,简要说明有哪些软件体系结构描述方法和描述标准。体系结构描述方法分类:1.图形表达工具2.模块内连接语言3

42、.基于软构建的系统描述语言4.软件体系结构描述语言鉴于体系结构描述的概念与实践的不统一,IEEE发起研究并于2000年通过了体系结构描述框架标准IEEEP1471。IEEEP1471适用于软件密集的系统,其目标在于:便于体系结构的表达与交流,并通过体系结构要素及其实践标准化,奠定质量与成本的基础。IEEEP1471详细介绍了一套体系结构描述的概念框架,并给出建立框架的思路。但如何描述以及具体的描述技术等方面缺乏更进一步的指导。Rational起草了可重用的软件资产规格说明,专门讨论了体系结构描述的规格说明,提出了一套易于重用的体系结构描述规范。该建议草案已经提交OMG基于RUP(Rationa

43、lUnitedProcess)、采用UMLM型描述软件的体系结构,认为体系结构描述的关键是定义视点、视图以及建模元素之间的映射关系。与IEEEP1471相比,该建议标准的体系结构描述方案涉及面比较窄,所注重的层次比较低,因而更具体。由于将体系结构的描述限于UML和RUP(RUF4+1视图),具有一定的局限性,但该建议标准结合了业界已经广泛采用的建模语言和开发过程,因而易于推广,可以有效实现在跨组织之间重用体系结构描述结果。3 .对一个你曾经开发过的软件系统进行考虑,如果要使用ADL对其体系结构进行描述,你会选择哪一种?为什么?这样选择的优点和缺点各有哪些?Ajax是一个技术综合体,其核心技术包

44、括JavaScript、XMLHttpRequest对象、DOMt档对象模型等等。使用这些技术才能实现与服务器的异步通信,从而实现无刷新的Web应用。使用JavaScript将所有的东西绑定在一起,使用XMLHttpRequest进行异步数据查询、检索,使用DOM(DocumentObjectModel)进行动态显示及交互,使用XML和XSLT进行数据交换及相关操作。(1)用户想Traveler网站请求服务,请求页面提供用户的位置信息。(2)Traveler接受请求,将请求分解为对多个网站的数据请求调用,并为发起调用进行准备。(3)调用A网站提供的Web程接口,给出(提供)用户位置信息,请求地

45、图信息信息。(4)A网站向Traveler网站返回用户所处位置周边的地图信息。(5)调用B网站的内容信息获取接口,给出(提供)用户地理信息,请求用户周边的住宿信息。(6)B网站向Traveler网站返回用户所处位置周边的住宿信息。(7)根据用户的请求信息进行数据内容聚合。(8)Traveler网站向用户所处位置周边整合的旅游信息。请给出三种目前经常使用的Mashup数据接口并加以简单说明。(1)聚合内容式的Mashup接口。一种用于对网站内容进行描述和同步的格式,是目前使用最广泛的Web资源发布方式。可以被称为资源共享模式的延伸。(2)表达性状态转移式的Mashup接口。RESTA资源的角度来

46、看待整个网络,分布在各处的资源由统一资源标识符确定,而客户端的应用通过URI来获取资源的表示。(3)基于简单对象访问协议的Web服务式Mashup接口。一种基于XML的数据格式定义,用来进行Web务调用过程中的参数调用和返回。在客户端进行内容聚合的优点(1)从Mashup服务器存储的角度来说,对服务器所产生的负载较轻,因为数据可以直接从内容提供者那里传送到客户端。(2)从网络传输的角度来说,在基于AJAX等技术和应用模型的基础上,客户端页面只请求需要更新的内容,而不用刷新整个页面,从而减少网络数据的通信量。评估的主要方法有:(1)基于调查问卷或检查表的评估方式优:这一评估方式比较自由灵活,可评

47、估多种质量属性,并可在软件体系结构设计的多个阶段逆行。但是由于评估的结果径大程度上来自评估人员的主观推断,因此精度依赖于评估人员对领域的熟悉程度和经验。缺点:尽管基于调查问卷不检查表的评估方式相对比较主观,但由于系统相关的人员的经验和知识是评估软件体系结构的重要信息来源,因而它仍然是进行软件体系结构评估的重要途径之一。(2)基于场景的评估方式优:该方式考虑到了所有涉众对质量的要求。涉及到的基本活动包括确定应用领域的功能和软件体系结构的结构之间的映射,设计用于体现待评估质量属性的场景以及分析软件体系结构对场景的支持程度。缺:不同的应用系统对同一质量属性的理解可能不同,因此基于场景的评估方式是特定

48、于领域的。该方式的实施者需要有丰富的领域知识以对某以质量需求设计出合理的场景,同时必须对待评估的软件体系结构有一定的了解以准确判断它是否支持场景描述的一系列活动。(3)基于度量的评估方式优:度量是指为软件产品的某一属性所赋予的数值,软件体系结构度量应该能够作为评判质量的重要的依据。该方法涉及三个基本活动:首先需要建立质量属性和度量之间的映射原则,即确定怎样从度量结果推出系统具有什么样的质量属性;然后从软件体系结构文档中获取度量信息;最后根据映射原则分析推导出系统的某些质量属性。缺:基于度量的评估方式提供更为客观和量化的质量评估。这一评估方式需要在软件体系结构的设计基本完成以后才能进行,而且需要

49、评估人员对待评估的体系结构十分了解,否则不能获取准确的度量。软件质量属性有性能、可用性、可靠性、健壮性、安全性、可修改性、可变性、易用性、可测试性、功能性和互操作性。(1) 性能是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理事件的个数。(2)可用性是系统能够正常运行的时间比例。(3)可靠性是指软件系统在应用或错误面前,在意外或错误使用的情况下维持软件系统功能特性的基本能力。(4)健壮性是指在处理或环境中,系统能够承受压力或变更的能力。(5)安全性是指系统向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。(6)可修改性是指能够快速地以

50、较高的性能价格比对系统进行变更的能力。(7)可变性是指体系结构经扩充或变更成为新体系结构的能力。(8)易用性是衡量用户使用一个软件产品完成指定任务的难易程度。(9)可测试性是指软件发现故障并隔离、定位其故障的能力特性,以及在一定的时间和成本前提下,进行测试设计、测试执行的能力。(10)功能性是系统所能完成所期望工作的能力。(11)互操作性是指系统与外界或系统与系统之间的相互作用能力。请对该在线交易平台的4个要求进行分析,指出每个要求对应何种软件质量属性;并针对每种软件质量属性,各给出2种实现该质量属性的架构设计策略。(2) 在线交易平台必须在1s内完成客户的交易请求。该要求主要对应性能,可以采

51、用的架构设计策略有增加计算资源、改善资源需求(减少计算复杂度等)、资源管理(并发、数据复制等)和资源调度(先进先出队列、优先级队列等)。(2)该平台必须严格保证客户个人信息和交易信息的保密性和安全性。该要求主要对应安全性,可以采用的架构设计策略有抵御攻击(授权、认证和限制访问等)、攻击检测(入侵检测等)、从攻击中恢复(部分可用性策略)和信息审计等。(3)当发生故障时,该平台的平均故障恢复时间必须小于10s。该要求主要对应可用性,可以采用的架构设计策略有Ping/Echo、心跳、异常和主动冗余等。(4)由于企业业务发展较快,需要经常为该平台添加新功能或进行硬件升级。添加新功能或进行平台升级必须在

52、6小时内完成。该要求主要对应可修改性,可以采用的架构设计策略有软件模块泛化、限制模块之间通信、使用中介和延迟绑定等。设计模式可以分为几类?请简要说明软件体系结构和设计模式的关系。软件设计里的模式分为高层的模式和低层的模式。软件体系结构模式就是软件架构风格。它描述了某特殊应用领域中系统组织方式的惯用模式。设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它与具体的实现语言无关。惯用法则是指与具体实现语言有关的设计经验。.NET平台与Java企业版平台各自具备的优势,以及两个平台共有的特点。请分别针对基于EJB的重量级框架和基于Struts等的轻量级框架,说明MV微式中的

53、各组件应采用何种构件实现。在基于EJB的重量级框架中,实现的构件分别为:(1)模型(Model):由EJB构件实现。(2)视图(View):由JSP构件实现。(3)控制器(Controller):由Servlet构件实现。在基于Struts等的轻量级框架中,实现的构件分别为:(1)模型(Model):由JavaBean构件实现。(2)视图(View):由JSP构件实现。(3)控制器(Controller):由Servlet构件实现。请从组件耦合度、组件分工及对开发工程化支持等三方面说明MVP莫式与MVC莫式的主要区别MVP莫式与MVC莫式的主要区别为:(1)在组件耦合度方面:在MVP莫式中,视

54、图并不直接使用模型,它们之间的通信通过Presenter进行,从而实现了视图与模型的分离;而在MVC莫式中,视图直接与模型交互。(2)在组件分工方面:在MVP莫式中,视图需要处理鼠标及键盘等触发的界面事件;而在MVC模式中,这通常是由控制器完成的工作。在MVP模式中,系统核心业务逻辑组织集中在Presenter中;而在MVC莫式中,相应的控制器通常只完成事件的分发。(3)在开发工程化支持方面:MVP莫式可更好地支持单元测试;而在MVC莫式中,由于模型与视图绑定,因此难以实施相应的单元测试。在MVP莫式中,Presenter基于约定接口与视图和模型交互,可更好地支持组件的重用。事务的基本特征包括

55、:(1)原于性。一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。(2)一致性。在事务开始之前和事务结束以后,数据的完整性限制没有被破坏。(3)隔离性。两个事务的执行是互不干扰的,两个事务时间不会互相影响。(4)持久性。在事务完成以后,该事务对数据所作的更改使持久地保存在数据库之中,并且是完全的。EJB规范支持的两种事务控制方法为:(1)容器维护的事务。由EJB容器根据部署描述符或EJB构件注释中指定的事务属性自动控制事务的边界,容器维护的事务是方法级的。(2)Bean维护的事务。由程序员在EJB的源代码中控制事务执行的边界,事务的边界通过Java事务接口进行控制,B

56、ean维护的事务可以跨越方法的边界。.NET平台Java企业版平台易于部署与配置良好跨平台可移植性支持多程序设计语言支持丰富的多厂商外部支持针对特定平台的优化支持良好的源代码以外的可定制性支持良好的WebU层应用开发支持良好的O/R (对象/关系)映射支持良好的Wetfl艮务支持基于体系结构的设计方法?简要说明基于体系结构的设计方法的生命周期及设计步骤。ABSDT法为产生软件系统的概念体系结构提供构造,概念体系结构描述了系统的主要设计元素及其关系。概念体系结构代表了在开发过程中作出的第一个选择,相应地,它是达到系统质量和商业目标的关键,为达到预定功能提供了一个基础。生命周期:步骤:(1)设计元

57、素的产生顺序(2)设计元素的活动,包括:定义逻辑视图步骤;功能分解;选择体系结构风格;为风格分配功能;细化模板;功能校验;创建并发视图;创建配置视图;验证质量场景;验证约束。(3) 件产品线包括哪些过程?如何实现软件产品线的创建与演化?发展过程:开发阶段-配置分发阶段-演化阶段过程模型:双生命周期模型(领域工程+应用工程);SEI模型(核心资源开发+产品开发槽理)和三生命周期(企业工程骑域工程+应用工程)模型;4种建立方式:用演化方式还是革命方式+基于现有产品还是开发全新产品线(1)将现有产品演化为产品线(2)用软件产品线替代现有产品集(3)全新软件产品线演化(4)全新软件产品线开发1.面向方

58、面的软件工程有什么特点?面向方面软件开发认为系统是由核心关注点和横切关注点有机地交织在一起而形成的。核心关注点是软件要实现的主要功能和目标,横切关注点是那些与核心关注点之间有横切作用的关注点,如系统日志、事务处理和权限验证等。AOSD31过分离系统的横切关注点和核心关注点,使得系统的设计和维护变得容易很多。一、单选题(每空1分,共20分。每一问有四个选项,选出最符合题意的那一项。)1 .在RUP中4+1模型中,最终用户侧重-A,程序员侧重C0A)用例视图B)进程视图C)实现视图D)部署视图2 .在客户/服务器体系结构中,客户应用程序的任务中不包含C。A)提供顾客与系统的交互界面B)向数据库服务

59、器提交用户请求并接受来自数据库服务器的信息C)数据库访问并发控制D)对数据进行业务逻辑处理3 .软件架构设计包括提出架构模型,产生架构设计和进行评审等活动,是一个迭代的过程。一下关于架构设计活动的描述,错误的是C。A)在建立软件架构的初期,一般需要选择一个合适的架构风格B)将架构分析阶段已标识的构件映射到架构中,并分析这些构件之间的关系C)软件架构设计活动将已标识构件集成到软件架构中,设计并实现这些构件(只设计,不实现)D)一旦得到了详细的软件架构设计,需要邀请独立于系统开发的外部人员参与评审4.当今被认为最有前途的RIA(RichInternetApplication)开发技术是D0A) M

60、ashupB) Java,HTML5C) MacromediaFlashD) JavaScript,HTML55.XML文档有多种API接口。一旦解析了XML文档,还需要多次访问那些数据时,应采用A接口为好。如果只需要XML源文件的少量内容,或正在一台内存很少的机器上工作时,最好采用-D接口。A)DOMB)SAXC)JDOMD)JAXP6 .以下关于软件架构重要性的叙述中,错误的是B0A).架构设计能够满足系统的性能、可维护性等品质B.良好的架构设计能够更好地捕获并了解用户需求C.架构设计能够使得不同的利益相关人(stakeholders)达成一致的目标D.架构设计能够支持项目计划和项目管理等活动7 .某游戏公司欲开发一个大型多人即时战略游戏,游戏设计的目标之一是能够支持玩家自行创建战役地图,定义游戏对象的行为和之间的关系。针对该目标,公司应该采用_B_架构风格最为合适。A.管道-过滤器8 .隐式调用C.主程序-子程序D.解释器8.某公司承接了一个开发家用空调自动调温器的任务,调温器测量外部空气温度,根据设定的期望温度控制空调的开关。根据该需求,公司应采用B架构风格最为合适。A

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!