软件体系结构终文档格式.docx
《软件体系结构终文档格式.docx》由会员分享,可在线阅读,更多相关《软件体系结构终文档格式.docx(6页珍藏版)》请在冰豆网上搜索。
简单地说,构件是具有一定的功能,能够独立工作或能同其它构件装配起来协调工作的程序体。
构件模型是对构件本质特征的抽象描述。
构件获取:
在建立基于构件的软件开发(component-basedsoftwaredevelopment,CBSD)中,构件获取可以有多种不同的途径:
从现有构件中获得符合要求的构件,直接使用或作适应性修改,得到可重用的构件;
通过遗留工程,将具有潜在重用价值的构件提取出来,得到可重用的构件;
从市场上购买现成的商业软件,即CTOS(commericaloff-the-shell)构件;
开发新的符合要求的构件;
;
一个组织在进行以上决策时,必须考虑到不同方式获得构件的一次性成本和以后的维护成本,然后做出最优的选择
构建管理:
对大量的构件进行有效的管理,以方便构件的存储、检索和提取,是成功重用构件的必要保证。
构件管理的内容包括构建描述、构建分类、构件库组织、人员及权限管理和用户意见反馈等。
体系结构的定义:
软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
第二章
1、软件体系结构模型分为5种:
结构模型-核心是体系结构描述语言ADL;
框架模型-更侧重于整体的结构;
动态模型-研究系统的“大颗粒”的行为性质。
例如,描述系统的重新配置或演化。
过程模型-构造系统的步骤和过程;
功能模型-体系结构是由一组功能构件按层次组成,下层向上层提供服务
第三章
经典的软件体系结构风格:
数据流风格:
批处理序列;
管道/过滤器。
调用/返回风格:
主程序/子程序;
面向对象风格;
层次结构。
独立构件风格:
进程通讯;
事件系统。
虚拟机风格:
解释器;
基于规则的系统。
仓库风格:
数据库系统;
超文本系统;
黑板系统。
4个阶段:
需求分析-建立软件体系结构-设计-实现;
需要全面考虑多方面因素;
合适的软件体系结构风格;
对于同一个问题,可以有多种设计结果;
是在各种制约条件下取得的较好折衷方案;
科学+经验+艺术
体系结构的生命周期:
软件体系结构的非形式化描述。
使用自然语言表示相关概念和原则;
软件体系结构的规范化描述与分析。
使用合适的理论模型精确、无歧义描述软件体系结构;
软件体系结构的求精与验证。
大型系统的体系结构总是从抽象到具体,逐步求精而得到的;
软件体系结构的实施。
将求精后的软件体系结构应用于系统设计过程中,形成系统的设计框架;
面向对象的系统的应用场合:
面向对象的体系结构模式适用于数据和功能分离的系统中;
也适用于问题域模型比较明显;
或需要人机交互界面的系统;
大多数应用事件驱动风格的系统也常常应用了面向对象风格
3层C/S:
表示层是应用的用户接口部分,担负着用户与应用间的对话功能。
它用于检查用户从键盘等输入的数据,显示应用输出的数据;
功能层相当于应用的本体,它是将具体的业务处理逻辑编入程序中。
通常,在功能层中包含确认用户对应用和数据库存取权限的功能以及记录系统处理日志的功能;
数据层就是数据库管理系统,负责管理对数据库数据的读写
C/S体系结构风格的优点有哪些?
三层CS风格相较两层CS风格有哪些优点?
(1)C/S体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。
(2)系统的客户应用程序和服务器构件是彼此独立和充分隔离的,这使得软件环境和硬件环境的配置具有极大的灵活性,而且易于对系统进行扩展和缩小。
(3)客户应用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必在每一个新的应用程序中都要对一个DBMS进行编码。
(4)将大规模的应用处理任务分布到许多通过网络连接的低成本计算机上,一定程度上降低了系统的整体开销。
三层C/S安全性大于两层C/S:
利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过功能层而利用数据库工具或黑客手段去非法地访问数据层,为严格的安全管理奠定了坚实的基础。
请从多个角度对B/S与C/S风格进行比较。
C/S:
“胖客户端”(两层C/S)→显示+业务处理;
使用:
下载客户端,安装后就可以使用;
特点:
响应速度快、保障安全性、通常用于局域网、维护成本高;
B/S(主流):
“瘦客户端”→浏览器+极少事务;
使用:
只要Web浏览器,无需安装客户端;
广域网、只需升级服务器、响应速度慢、维护方便、成本低、安全性差
第六章
已知一个外部DTD文档,如下。
要求用XML文档描述一个文件信息,包括文件名和作者,其中文件名为软件体系结构,作者为张明。
试将右下角的XML文档补充完整。
<
?
xmlversion="
1.0"
encoding="
gb2312"
>
<
!
DOCTYPEmyfileSYSTEM"
myfile.dtd"
myfile>
<
title>
软件体系结构<
/title>
<
author>
张明<
/author>
/myfile>
XML(可扩展标记语言)与HTML的比较总结。
XML是用来存储、传输和交换数据的。
HTML是用来显示数据的。
HTML:
标记由权威团体制定,种类有限且不能随意添加。
XML:
可由用户按需要增加标记。
语法规则比较多元化,具有较大灵活性。
对语法有严格的要求,文件格式容易转换,适合跨域跨平台传递数据。
第八章
简述WebService技术中的三大角色、三种操作、三大协议,并说明三大协议各自的作用。
三种角色:
服务提供者:
是服务的所有者,负责定义并实现服务使用WSDL对服务进行详细,准确,规范的描述并将描述发布到服务注册中心;
服务请求者:
是服务的的使用者是查找绑定并调用服务或与服务进行交互应用的程序(人或程序);
服务注册中心:
是连接提供者和请求者的纽带有时也是整个模型中的可选角色。
三种操作:
发布:
为用户访问服务,提供者发布服务描述便于请求者查找,查找:
请求者直接检索服务描述或服务注册中心查询所要求得服务,绑定;
请求者使用服务描述中的绑定细节来定位,联系并调用服务从而运行时与服务进行交互
三大协议:
WSDL、UDDI、SOAP
WSDL:
是基于XML的用于描述Web服务以及如何访问Web服务的语言。
UDDI:
管理、注册和查找服务。
SOAP:
作为传输层,用来在消费者和服务提供者之间传送消息。
第九章
传统Web应用程序存在那些缺点,造成这些缺点的原因是什么?
传统Web应用程序存在缺点:
操作复杂性、数据复杂性、交互复杂性
造成传统Web应用程序缺点的原因:
(1)传统的Web应用程序不断发送HTTP请求,并且是同步请求,每个请求是有成本的,包括时间成本和资源成本。
一个完整的请求都需要经过DNS寻址、与服务器建立连接、发送数据、等待服务器响应、接收数据这样一个“漫长”的过程。
(2)传统的Web应用程序受限于HTML网页技术的先天不足,不能表达高度的复杂性。
AJAX技术的核心是什么?
AJAX是如何将多种已有的技术绑定在一起的?
这些技术各自起到什么作用?
AJAX技术的核心是javascript调用XML的异步传输。
借助于AJAX,可以在用户单击按钮时,使用JavaScript和DHTML立即更新用户界面,并向服务器发出异步请求,以执行更新或查询数据库。
当请求返回时,就可以使用JavaScript和css来相应的更新用户界面,而不是刷新整个页面。
最重要的是,用户甚至不知道浏览器正在与服务器通信,Web站点看起来是即时响应的。
XML的高拓展性、高灵活性,使得其可以描述各种不同类的应用软件中的不同类型的数据,可以实现不同数据的集成。
XHTML结合了部分XML的强大功能和HTML的简单特性。
JavaScript主要用来传递用户界面上的数据到服务端并返回结果。
XMLHttpRequest用来响应通过HTTP传递的数据,一旦数据返回到客户端,就可以立刻使用DOM将数据显示在网页上。
DOM为XML文档的已解析版本定义了一组接口。
XSLT能够减少大量的用JavaScript编写的应用逻辑。
CSS提供了从内容中分离应用样式和设计的机制。
RIA(富互联网应用)中“富”的含义是什么?
RIA的优点有哪些?
试说出几个RIA客户端的开发技术。
富=丰富的数据模型+丰富的用户界面
RIA的优点:
1)、RIA结合了C/S架构反应速度快、交互性强的优点,以及B/S架构传播范围广及容易传播的特性。
2)RIA简化并改进了B/S架构的用户交互。
3)数据能够被缓存在客户端,从而可以实现一个比基于HTML的响应速度更快且数据往返于服务器的次数更少的用户界面。
4)RIA可以继续使用现有的应用程序模型(包括J2EE和.NET),因而无需大规模替换现有的Web应用程序。
5)RIA可以帮助企业提供多元化的重要业务效益
典型的RIA客户端开发技术:
Flex、AJAX、JAVA、XUL等。
第十一章
软件质量属性:
可用性:
可靠性(容错/健壮性)周期内系统平均无故障运行时间,安全性:
系统在向合法用户提供服务的同时,能够阻止非授权用户使用的企图或拒绝服务的能力;
性能,可修改性(可维护/可扩展/结构重组/可移植),功能性,可变性,集成性,互操作性。
一般提高可靠性的同时,也同时提高了可用性。
提高可靠性需要强调减少系统中断(故障)的次数,提高可用性强调减少从故障中恢复的时间。
可靠性=工作时间/发生故障数(就是平局正常工作时间)
简述软件体系结构评估的必要性。
A.体系结构评估可以减少后期测试和纠错的开销
B.评估是挖掘隐性需求并将其补充到设计的最后机会。
C.体系结构是开发过程的中心,不良的体系结构会带来一蹋糊涂的效果。
C/S架构与集中式计算那个架构在性能方面表现更好?
B/S与RIA?
分别说明理由。
RIA>
B/SC/S>
文件服务器RIA\C/S>
B/S>
文件服务器
RIA结合了RIA结合了C/S架构反应速度快、交互性强的优点,以及B/S架构传播范围广及容易传播的特性。
B/S以网页为单位,不断发送HTTP请求,并且是同步请求,响应速度慢。
C/S客户端针对一个小的、特定的数据集,如表的行来进行操作,对某一条记录封锁,而不像文件服务器那样针对整个文件进行操作,进行封锁。
因此保证了系统的并发性,使得网络上传输的数据量减到最少,从而改善系统的性能。
三层C/S、两层C/S与B/S那个架构在安全性方面表现更好?
三层C/S功能层包括对用户数据存取权限的确认,和记录系统处理日志的功能。
利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过功能层而利用