软件体系架构课堂测试04–架构分析
软件体系架构课堂测试–架构分析
班级: 学号: 姓名:
某银行拟将以分行为主体的银行信息系统,全面整合为由总行统一管理维护的银行信息系统,实现统一的用户账户管理、转账汇款、自助缴费、理财投资、贷款管理、网上支付、财务报表分析等业务功能。但是,由于原有以分行为主体的银行信息系统中,多个业务系统采用异构平台、数据库和中间件,使用的报文交换标准和通信协议也不尽相同,使用传统的EAI解决方案根本无法实现新的业务模式下异构系统间灵活的交互和集成。因此,为了以最小的系统改进整合现有的基于不同技术实现的银行业务系统,该银行拟采用基于ESB的面向服务架构(SOA)集成方案实现业务整合。
【问题1】
基于该信息系统整合的实际需求,项目组完成了基于SOA的银行信息系统架构设计方案。该系统架构图如图1所示:
图1 基于SOA的银行信息系统架构设计
请从(a)~ (j)中选择相应内容填入图5-1的(1)~ (6),补充完善架构设计图。
(a)数据层
(b)界面层
(c)业务层
(d) bind
(e) 企业服务总线ESB
(f) XML
(g) 安全验证和质量管理
(h) publish
(i) UDDI\
(j) 组件层
(k) BPEL
(1)(c)业务层 (2)(i)UDDI (3)(h)publish
(4)(e)企业服务总线ESB (5)(g)安全验证和质量管理 (6)(j)组件层
【问题2】
针对银行信息系统的数据交互安全性需求,列举3种可实现信息系统安全保障的措施。
1、引入https协议或采用加密技术对数据先加密再传输
2、采用信息摘要技术对重要信息进行完整性验证
3、防火墙系统。
4、安全检测
5、网络扫描
【问题3】针对你的质量属性分组,列举至少三种可以在该银行信息管理系统中采用质量属性战术,并且说明为什么,要求至少500字以上。
可测试性
可测试性战术:
软件可测试性是指通过测试(通常是基于运行的测试)揭示软件缺陷的容易程度。软件的开发和测试是并行的,这就需要测试人员尽快找出软件的关键bug并且快速的修复他,这就需要程序员提高软件的可测试性,让软件在测试阶段更加方便明了的被测试,而不是结构混乱,难以测试,难以维护。
可测试性战术的目标是允许在完成软件开发的一个增量后,轻松地对软件进行测试。
可测试性战术可以分为两类:
一个是提供输入并捕获输出结果进行测试,一个是对软件内部进行监视,第一个就对应软件测试里的黑盒测试,不看软件内部的构造,只看输入什么,输出什么,而后一个则是白盒测试,要监视软件内部的结果、数据和事件。
输入输出:
1、记录/回放(Record/playback ):记录/回放是指将捕获跨接口的信息,并将其作为测试专用软件的输入。
其实最简单的记录回放就是
控制台输出,这也是平时写代码的时候常用的测试方法。
还有就是例如数据库的异常响应,try catch语句捕获异常信息:
这里就调用了连接数据库的方法,并且通过try-catch语句抛出跨接口调用的异常信息。
还有java中的撤销,返回功能 ctrl z ctrl y 他就是利用一个首尾相连的链表,实现这个功能的:
2、将接口与实现分离(Separate interface from implementation ):将接口与实现分离允许实现的代替。占位实现允许在缺少被占位组件时,对系统的剩余部分进行测试
学过设计模式后就知道,写程序要高内聚低耦合,编码的原则要实现单一职责原则。将接口与实现隔离,就好像一个家用电器,有各个功能模块,再用线路将各个器件连接在一起,如果一个器件出现故障,其他器件不受影响。这样就保证了,在缺少一个器件时,不影响对其他部件的测试。
例:利用servlet实现接口隔离
如果一个方法除了问题,那么只需要检查这一个方法就可以,而不用把整个项目都查一遍
3、特化访问路线/接口:具有特化的测试接口允许通过测试工具并独立于其正常操作,来捕获或指定组件变量的值
组件可以根据内部状态实现战术,以支持测试过程。
内部监视:
内部监视器(Built-in monitors ):组件可以维持状态、性能负载、容量、安全性或其他可通过接口访问的信息。当监视状态被激活时可以记录事件。
白盒测试是把测试对象看作是一个透明的盒子,而程序员利用内部的逻辑结构哈信息,对程序的逻辑路径进行测试,而内部监视器则可以返回基本路径节点的信息和记录,更方便了对系统进行百合测试,增强了项目的可测试性。
浏览器中的 检查 功能就是一个内部监视器,他可以明了的把网页的各个节点的信息反馈给开发者: