构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。构件分类与组织,一般分为三种,包括关键字分类法,刻面分类法和超文本组织方法。其中,关键字分类法的基本思想是根据领域分析的结果将应用领域的概念按照从抽象到具体的顺序逐次分解为树形或有向无回路图结构,没个感念用一个描述性的关键字表示,不可分解的原子级关键子包含隶属于它的某些构件。刻面分类法主要思想是来源图书馆学。定义若干用于刻画构件特征的“面”,没个面又通过若干概念表述构件在面上的特征。如描述构件执行的功能、被操作的数据、应用的语境或任意其他特征。超文本组织法的基本思想是所有构件必须辅以详尽的功能或行为说明文档,说明中出现的重要概念或构件以网壮链接方式相互链接。
2. Web服务有哪些核心技术,这些技术是如何在Web服务中发挥作用的。详细了解WSDL。
什么是Web服务:Web Services技术的主要目标就是在现有的各种异构平台的基础上构筑一个通用的平台无关、语言无关的技术层,各种不同平台之上的应用依靠这个技术层来实施彼此的连接和集成。
Web服务(Web Service)是基于XML和HTTPS的一种服务,其通信协议主要基于SOAP,服务的描述通过WSDL,通过UDDI来发现和获得服务的元数据。
Web服务的核心技术:SOAP、WSDL、UDDI
1) SOAP(Simple Object Access Protocol)简单对象访问协议
SOAP是一种在分散的分布式环境下轻量的、简单的、基于XML的协议,它被设计成在WEB 上交换结构化的和固化的信息。
SOAP 包括四个部分:
a)封装:它定义了一个框架, 该框架描述了消息中的内容是什么,谁应当处理它以及它是可选的还是必须的。
b)编码规则:它定义了一种序列化的机制,用于交换应用程序所定义的数据类型的实例。
c)RPC表示:它定义了用于表示远程过程调用和应答的协定。
d)绑定:定义了一种使用底层传输协议来完成在节点间交换SOAP封装的约定。
SOAP核心技术:SOAP采用了已经广泛使用的两个协议:HTTP 和XML。HTTP用于实现SOAP的RPC 风格的传输, 而XML 是它的编码模式。
SOAP的优点:
a)SOAP 是可扩展的。SOAP 无需中断已有的应用程序, SOAP 客户端、服务器和协议自身都能发展。而且SOAP 能极好地支持中间介质和层次化的体系结构。
b)SOAP 是简单的。客户端发送一个请求,调用相应的对象, 然后服务器返回结果。这些消息是XML 格式的,并且封装成符合HTTP 协议的消息。因此,它符合任何路由器、防火墙或代理服务器的要求。
c)SOAP 是完全和厂商无关。SOAP可以相对于平台、操作系统、目标模型和编程语言实现。另外,传输和语言绑定以及数据编码的参数选择都是由具体的实现决定的。
d) SOAP 与编程语言无关。SOAP 可以使用任何语言来完成, 只要客户端发送正确SOAP 请求( 也就是说, 传递一个合适的参数给一个实际的远端服务器)。SOAP 没有对象模型, 应用程序可以捆绑在任何对象模型中。
e) SOAP 与平台无关。SOAP 可以在任何操作系统中无需改动正常运行。
2) WSDL(Web Services Description Language)Web Service的描述语言
是一个用来描述Web服务和说明如何与Web服务通信的XML语言,它将Web服务描述为一组对消息进行操作的网络端点。一个WSDL服务描述包含对一组操作和消息的一个抽象定义,绑定到这些操作和消息的一个具体协议和这个绑定的一个网络端点规范。为用户提供详细的接口说明书。
WSDL文档分为两种类型:服务接口和服务实现。
Part:消息参数
Operation:服务支持的操作的抽象描述
Port Type / Interface:一个或多个端点支持的操作的抽象集。此名称已更改,因此可能会遇到两者中的任何一个。
Binding:特定端口类型的具体协议和数据格式规范
Port / Endpoint:绑定和网络地址的组合。此名称也已更改,因此可能会遇到两者中的任何一个。
Service:相关端点的集合,包括其关联的接口、操作、消息等。
WSDL支持4种消息交换方式:
a)单向(One-way):服务端接收消息;
b)请求响应(Request-response):服务端点接收请求消息,然后发送响应消息;
c)要求应答(Solicit-response):服务访问端发送要求消息,然后接收应答消息。
d)通知(Notification):服务访问端点发送通知消息。
3)UDDI(Universal Description, Discovery and Integration)统一描述、发现与集成服务
是一套基于Web的、分布式的、为Web服务提供信息的注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web服务注册以便使别的企业能够发现的访问协议的实现标准。也就是说,UDDI 包括了三部分内容,首先是注册中心、包括定义注册中心需要提供的标准服务接口及其所用到的数据结构,这部分是服务器端的技术。剩下两部分的是客户端的技术:一个是关于发布服务的规范,也就是定义了发布服务的API接口;还有一个就是发现服务的规范,也就是定义了发现服务的API接口。
UDDI 规范帮助我们解决的问题:
∙使得在成百万当前在线的企业中发现正确的企业成为可能
∙定义一旦首选的企业被发现后如何启动商业
∙扩展新客户并增加对目前客户的访问
∙扩展销售并延伸市场范围
∙满足用户驱动的需要,为在全球Internet 经济中快速合作的促进来清除障碍
3.对一个你曾经开发过的软件系统进行考虑,请用一种ADL对其体系结构进行描述。
(只选其中一个答)
3.1基于XML实验的阅卷系统
为解决对大面积学生操作能力考核阅卷需耗费大量师资力量的困难,本文在应用大学物理
仿真实验实现物理实验考试,记录学生实验参数、实验状态和实验结果的基础上,提出了基于
XML形式对考题所考知识点进行描述,并通过对操作考试中记录的实验参数、实验状态和实验
结果的XML数据进行解析评判,实现对操作考试的自动评阅。本系统解决了面向大面积学生进
行实验实践能力考核的难题。
基于XML操作性考试阅卷系统结构如图1所示,它由形式化的设计方案、试卷的制作、考
试系统和评阅系统四个模块组成,各模块主要功能如下:
(1)形式化设计方案,即所有考点的描述方案。它包含了实验中所有可能涉及到的知识点,将所有实验虚拟仪器类的知识点完整无歧义地转换成相对应的实验参数及实验状态,并以XML形式进行描述。(2)试卷的制作。针对教师所出的具体操作性试题,在(1)部分中进行查找并生成一份操作题考试试卷,此试卷是以XML形式对要考的操作题相关实验参数和实验状态进行描述并作为共享数据而存在。
(3)考试系统。提供学生进行考试的环境,实施考试。然后,考试系统根据学生的操作过程,抓取实验过程中的实验参数、实验状态和实验结果,在学生确认提交试卷后,将实验参数、实验状态和实验结果以XML形式进行记录保存。
(4)试卷评阅。将教师所出操作性试题的相关实验参数、实验状态和实验结果与考试系统记录的实验参数、实验状态和实验结果XML文件,分别进行解析读取比较,然后根据解析出来的评分规则对应给学生进行评分。
基于XML的阅卷系统是在答案转换器和评判模块的配合下完成试题评判工作。在用户的适当干预下,根据知识点分解原则,将自然语言描述的标准答案转换成考试评分系统可以接受的规范化格式,然后程序员按照这个规范化格式文档转化成计算机能够理解的计算机语言,即XML文档。而评判模块则是负责根据答案转换器生成的XML格式的标准答案文件,对考生提交的文件进行评估,在评分标准的指导下为考生文件打分,并将最终得分写入考生数据库。
3.2基于XML网络购物系统设计
网上购物系统,是在网络上建立一个虚拟的购物商场,避免了挑选商品的烦琐过程,使您的购物过程变得轻松、快捷、方便,很适合现代人快节奏的生活;同时又能有效的控制"商场"运营的成本,开辟了一个新的销售渠道。网上购物充分利用了计算机的信息组织及查找能力,把商品信息分类存入到数据库中,顾客可以按这些类别很快找到所需的商品。网上购物的业务流程分析包括:购物流程分析、发货流程分析及商品管理流程分析三大部分。当顾客进入商店时,应能看到本商店的目录信息(大类信息),并且可能方便地查找自己所需的商品,当顾客选择了商品后应该进行必要的登记,然后选择付款方式,接着再存储顾客订单中.的信息,最后发出通知让顾客汇款。
网上购物系统主要有前台网上销售模块、后台数据录入模块、后台数据处理功能模块、用户注册功能模块。系统主要功能有:采取会员制、身份验证、信誉度指数等一系列措施,保证交易的成功率;强大的查询功能;会员购物流程:浏览、将商品放入购物车、去收银台;会员服务功能;会员购物排行榜;商品销售排行榜;安全的在线支付体系;后台管理数据库。
本系统的开发,采用基于XML的Web数据库三层架构,XML由数据库产生。结构化数据、业务规则和显示,可以通过XML集成、发送、操纵和显示来完成。
购物系统底层的是数据层,系统的数据的存储有两种方式:数据库存储和XML文档存储。存储商品目录、商品信息、用户订单等,对于较为固定的数据采用数据库存储,对于更新频繁、半结构化的数据采用XML存储。存储层实际上包括了将数据层数据转化为XML存储的中间件和XML存储。这一层为构建动态的Web网站以及交互的网络应用奠定了基础,只要某个站点或者应用提供了相应的XML接口,就能解释和处理这些XML文件。对XML的具体处理取决于应用层的具体应用,也可以利用XML 文件的相应数据做一些业务处理、交换数据或者是集成到数据库。系统有着丰富的页面,例如:商品信息页面、购物车页面、付款方式页面等。表示层实现数据的显示,XML可以有多种表现形式,而且可以为外部直接访问、编辑或转换,也可被其他系统所用,这一层是用户和系统之间的接口。系统中,XML 在数据集成、数据发送和操纵、显示都发挥着重要的作用。一个代理程序运行于中间层,代理程序起着桥梁的作用,把数据组合并转为XML,当数据库中是XML形式的数据时,XML拥有自我描述的能力, 发送出去的数据可以使用通用的XML分析器解析。客户端的数据变化(如数据的插入、删除、修改等)可以通过代理程序反映到底层数据库,而数据库的更新也能够通知到客户端。Jsp+XML+XSL完成页面的显示,中间处理层的输出XML文件,前端获得这些数据,XSL负责把这些数据按特定的模板显示出来,这样数据和页面显示分离,在JSP文件中实现把数据库中查询出来的数据用XML表示,显示的样式用XSL来控制。
3.3基于XML图书馆信息资源整合原型系统设计
本系统设计的目标:整合某图书馆的馆藏书目数据资源和本地的其他信息资源,建立一
个异构数据库信息共享平台,构建统一的检索系统和用户界面,实现用户单一的检索表达,在一个涵盖各种不同信息资源的集合中得到响应,从而实现多个异构信息资源库的统一检索.采用JSP+XML开发这个跨库检索系统,开发模型如图1所示.
本系统用JSP与servlet联合实现动态内容服务,吸取了两种技术各自的突出优点,用JSP生成表示层的任务,让Servlet完成深层次的处理任务,JavaBean完成数据的提取功能.在扩展系统时,只需修改业务逻辑和控制部分(JavaBean和Servlet)即可,无需修改显示的JSP系统,很容易对一些新购买的数据库进行整合.
在B/s模式的基础上结合XML和JSP的特点和工作原理,将本系统分为4层体系结构:第l层是表示层,接受用户的信息请求并返回请求结果;第2层是Web服务层,实现信息的发布、交互和处理的功能;第3层是应用服务层,用于数据的处理及与数据库的交互,获取各个异构数据源的接口数据,并整合成统一的中间数据格式XML;第4层是数据服务层.基于XML的多层系统体系结构如图2所示.
客户端通过浏览器向web服务器发出请求后,由Servlet负责接收,然后Servlet根据用户的
动作调用相应的JSP页面与JavaBean,而与数据库交互工作由JavaBean负责,JSP页面生成动
态XML反馈给客户,在客户端用XSL处理器对检索结果进行处理.
4.πADL侧重于构件、连接件、和风格组成的动态软件体系结构,请用πADL对你熟悉的一个简单系统的体系结构或其某一部分进行描述。
基于SOA的动态ERP系统体系结构(学习部分)
为了解决传统ERP系统所存在的不足,可以将ERP系统不同的业务功能分解为粗粒度和细
粒度服务,通过服务组合实现ERP系统的整体功能。当企业业务流程重组时,通过重新组合已
编写的服务部件即可容易地实现。因此,根据分层设计模式,提出基于SOA的动态ERP系统体
系结构,如图2所示。
图2 基于SOA的动态ERP体系结构
设计时对主要功能进行分析,采用自顶向下的方式,确定业务流程,然后抽象成服务,对服务进行归类和粒度划分,实现主要功能或生成新的功能,强调了企业内部服务与外部服务的开发部署和管理控制。
框架体系结构分5层,分别为应用服务层、服务发布层、业务逻辑层、数据访问层以及数据层。各层的功能分别叙述如下。
a)应用服务层(UI)
为用户提供UUI交互界面,例如Windows界面,Web界面等,调用企业应用服务。
应用服务层为用户提供友好的可视图形界面和简明的应用服务访问接口,接受用户数据交互,判断界面输人数据的有效性,为不同类别用户提供相应的Web服务接口界面。Web服务的调用对用户来说是完全透明的,用户只需根据界面提供的接日和功能说明提供相应的参数即可,Web服务的最终执行者是客户层调用的服务发布层的组件。Web服务执行结束后,结果将自动返回。
b)服务发布层(Web Service)
服务发布层提供各个业务服务的发布接口。
服务发布层封装各种Session Bean,简化复杂的对象视图,将业务逻辑层中的各种业务通过Fecade 模式封装成粒度较大的、易用的业务中间件,通过Web Service发布各种业务,接受界面逻辑层调用,保证了服务实现与调用者的最小藕合。该层是面向服务的一层,通过该层实现SOA架构的服务发布。c)业务逻辑层(Business Logic Layer)
封装各种企业业务逻辑,形成业务服务中间件,实现部门的业务逻辑。
业务逻辑层包含了整个ERP系统中的企业业务流程,是系统架构中体现核心价值的部分,它处于整个系统结构的中间位置,响应着应用服务层及服务发布层的请求,管理着对事务的处理,以及通过数据访问层与数据持久层的连接交互操作,在数据交换中起着承上启下的作用。业务逻辑层中的业务流程可以通过调用一个或者多个Web服务来实现。
d)数据访问层(Data Access Layer)
封装数据访问逻辑,向业务逻辑层提供统一的数据库访问接口。
数据访问层分为业务逻辑数据访问组件和统一数据库访问组件两类。业务逻辑数据访问组件包含所有实现相关操作的逻辑,向统一数据库访问组件提供数据请求,并将得到的结果返回给实体。统一数据访问组件负责业务数据访问组件与各种异构/分布实体数据库之间的访问,以及相应的转换和回存,利用抽象工程模式方法实现数据库访问无关性,保护数据的完整性。
e)数据层(Data Layer)
数据层用来存储业务数据。
数据层作为的一层,它既可以是关系型数据库,也可以是基于XML的数据库,还可以是一组文件,甚至可以是外部的Web服务,用来存放与应用程序相关的业务数据和控制数据,保证数据的安全性、完整性、一致性。
其中,应用服务层、服务发布层、业务逻辑层、数据访问层之间的交互关系如图3所示。
图3模型交互图
在企业应用的大框架中,各层之间的交互实现了SOA架构。根据业务逻辑层与数据访问层的功能设计相关服务,服务实现后由服务发布层进行统一的发布管理,这时业务逻辑层与数据访问层充当着服务的提供者;应用服务层、业务逻辑层和数据访问层在服务发布层查找所有的服务,与服务提供者进行交互。其中业务逻辑层和数据访问层充当着双重角色,既是服务的提供者,也是服务的请求者。
基于SOA的动态ERP系统的实现(本题答案)依据动态ERP系统的概念,可将企业划分为若干业务领域模块,针对其中某具体业务领域的特点进行开发与实现。按照层次结构的不同,提供相应的接口,将众多子系统集成组装,使其成为一个完整的动态ERP系统。根据系统功能的分析及按照SOA定义的要求,将系统中不同功能分解成不同级别的服务,通过服务组合,实现动态ERP系统的整体功能。当企业业务流程发生改变时,只需要通过重新组合已编写好的服务部件即可轻松地实现改造。
某全国大型连锁饲料制造企业主要业务功能模块有:系统设置、基础数据管理、权限管理、人事管理、采购管理、库存管理、销售管理和财务管理等。采购管理子系统是企业管理的重要部分,因为企业的采购关系着销售成本的核算。因此,我们以该领域为例,介绍动态ERP的构建。动态ERP系统的用户并不关心系统内部如何布局及其如何实现,而是关心系统能够提供什么样的功能(服务),对不同的事件进行如何的响应。因此,可将采购子模块作为粗粒度服务发布,其子模块又分为订单管理、审批管理、采购管理、查询管理等。通过对采购服务的分析,可以得到业务流程,它包括服务:订单申请、订单审批、采购入库,操作通过服务文件中的接口来实现。采购管理的服务使用者(角色)可以分为生产处、采购处、库房管理员和系统超级用户4大逻辑实体,在对这4种逻辑实体进行细化分析后,可以派生出许多具体的用户实体,见表1。
表1动态ERP采购管理领域的角色集合
生产员提交采购申请,由采购经理进行审批,审批通过后,由采购员进行采购,进行入库管理。
随着企业生产规模的不断扩大,业务流程的不断更新,ERP系统已成为现代企业不可或缺的管理手段。与传统的ERP系统开发相比,动态ERP借助于设计模式,将业务逻辑和技术实现相分离,具有一定的可调整和可扩展性,使系统更容易维护,而SOA采用面向对象、面向组件的软件设计方法,解决了面向技术的,使动态ERP系统具有更好的柔性、可扩充性、可维护性、可交互性和灵活性。因此,基于SOA的动态ERP系统体系结构可以更好地满足企业多方面的要求,加快了开发速度,减少了开发成本。
5.详细了解软件体系结构如何进行风险分析?请给出软件体系结构分析方法的主要步骤。
软件体系结构的分析评估就是通过成本相对较低的活动来分析结构中可能存在的风险,发现软件体系结构中影响系统质量的关键因素,并提出相应的改进措施,在此基础上检验软件的性能需求是否得到满足。
软件体系结构的分析与评价方法主要可以从两个角度进行分析,一是进行定性的分析,二是进行定量的分析。
定性的分析主要是采用基于checklist,questionnaire和场景的分析评价技术。
定量的分析主要是采用基于度量指标、原型系统、数学模拟、模拟、测量等技术的。
ATAM(Architecture Tradeoff Analysis Method)软件体系结构分析方法的主要步骤:
(1) 描述ATAM方法——评估小组负责人介绍ATAM评估方法
(2) 描述商业动机——项目经理要从商业角度介绍系统的概况。
(3) 描述体系结构——首席设计师或设计小组详略适当地介绍体系结构
(4) 确定体系结构方法——设计师确定体系结构方法,由分析小组捕获,但不进行分析。
(5) 生成质量属性效用树——评估小组、设计小组、管理人员和客户代表一起确定系统最重要的质
量属性目标,效用树的输出结果是对具体质量属性需求(以场景形式出现)的优先级的确定。
(6) 分析体系结构方法——有了效用树的结果,评估小组可以对实现重要质量属性的体系结构方法
进行考察,通常产生一个风险列表、敏感点和权衡点列表。
(7) 讨论和分级场景——风险承担者集体讨论用例场景(描述风险承担者期望使用系统的方式)和
改变场景(描述风险承担者所期望的系统在将来变更的方式,可分为成长场景和考察场景)。成长场景
描述的是体系结构在中短期的改变,考察场景描述的是系统成长的一个极端情形。成长场景能够使评估
人员看清在预期因素影响系统时,体系结构所表现出来的优缺点,而考察场景则试图找出敏感点和权衡点。
(8) 分析体系结构方法(是第六步的重复)——把最高级别的场景映射到所描述的体系结构中,重
复第6步中的工作,把新得到的最高优先级场景与尚未得到的体系结构工作产品对应起来,在第7步中,如果未产生任何在以前的分析步骤中都没有发现的高优先级场景,则在第8步就是测试步骤。
(9) 描述评估结果——把ATAM分析中所得到的各种信息进行归纳,并反馈给风险承担者。
软件体系结构进行风险分析的方法:
a) 采用体系结构描述语言ADL对体系结构进行建模
b) 通过模拟方法执行复杂性分析
c) 通过FMEA和模拟运行执行严重性分析
d) 为构件和连接件开发其启发式风险因子
e) 建立用于风险评估的CDG
f) 通过图论中的算法执行风险评估和分析
6.详细了解什么是设计模式?设计模式的原则是什么?
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。用于解决在特定环境下、重复出现的、特点问题的解决方案。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
设计模式的原则
"开-闭"原则
此原则是由"Bertrand Meyer"提出的。原文是:"Software entities should be open for extension,but closed for modification"。就是说模块应对扩展开放,而对修改关闭。
里氏代换原则
里氏代换原则是由"Barbara Liskov"提出的。如果调用的是父类的话,那么换成子类也完全可以运行。里氏代换原则是继承复用的一个基础。
合成复用原则
要少用继承,多用合成关系来实现.
依赖倒转原则
抽象不应该依赖于细节,细节应当依赖于抽象。
要针对接口编程,而不是针对实现编程。
传递参数,或者在组合聚合关系中,尽量引用层次高的类
接口隔离原则
定制服务的例子,每一个接口应该是一种角色,不多不少,不干不该干的事,该干的事都要干
抽象类
抽象类不会有实例,一般作为父类为子类继承,一般包含这个系的共同属性和方法。
迪米特法则
最少知识原则。不要和陌生人说话。
一个设计模式的四个基本要素:
a)模式名称;b)问题;c)解决方案;d)效果。
一些基本的设计模式:
Abstract Factory(抽象工厂模式):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
Adapter(适配器模式):将一个类的接口转换成客户希望的另外一个接口。A d a p t e r模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
Bridge(桥接模式):将抽象部分与它的实现部分分离,使它们都可以地变化。
Builder(建造者模式):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
Command(命令模式):将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。
Singleton(单例模式):保证一个类仅有一个实例,并提供一个访问它的全局访问点。
7.详细了解课堂上介绍的几种模式,能画出模式的调用顺序示意图。
一、工厂方法模式
二、单例模式(Singleton)
三、桥接模式(Bridge)
四、命令模式
五、装饰模式
8.简述IoC/DI对编程带来的变化是什么?
1)应用程序不主动创建对象,但要描述创建它们的方式。
2)在应用程序代码中不直接进行服务的装配,但要配置文件中描述哪一个组件需要哪一项服务。容器负责将这些装配在一起。
其原理是基于OO设计原则的The Hollywood Principle:Don‘t call us, we’ll call you(别找我,我会来找你的)。也就是说,所有的组件都是被动的(Passive),所有的组件初始化和装配都由容器负责。组件处在一个容器当中,由容器负责管理。
IoC容器功能:实例化、初始化组件、装配组件依赖关系、负责组件生命周期管理。
本质:
IoC:控制权的转移,由应用程序转移到框架;
IoC/DI容器:由应用程序主动实例化对象变被动等待对象(被动实例化);
DI:由专门的装配器装配组件之间的关系;
IoC/DI容器:由应用程序主动装配对象的依赖变应用程序被动接受依赖
备注:(仅供参考)
1.什么是软件危机,软件危机的具体表现有哪些?
软件危机:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
软件危机的表现:1)软件成本日益增长;2)开发进度难以控制;3)软件质量差;4)软件维护困难2.说明Web服务的体系结构模型?它的三个核心协议分别是什么?
Web服务是一种崭新的分布式计算模型,是Web上数据和信息集成的有效机制。
三个构成元素为:Serverice Broker、Service Provider、Service Requester
三个核心协议:简单对象访问协议SOAP;统一描述、发现和集成协议UDDI;Web服务描述语言WSDL 3.软件体系结构测试的内容与准则是什么?
内容:构件端口行为与连接件约束是否一致、兼容,单元间的消息是否一致、可达,相关端口是否可连接,体系结构风格是否可满足。
准则:测试覆盖所有的构件及各个构件的接口。各个连接件的接口、构件之间的直接连接、构件之间的间接连接。
4.什么是设计模式?它与风格、框架有什么区别与联系?
设计模式是对通用设计问题的重复解决方案。
软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。
软件框架是整个或部分系统的可重用设计
模式比框架更加抽象
框架是模式的特例化
设计模式被实现成为框架后,可以极大的减轻从设计到实现的鸿沟
利用了模式的框架比没有利用模式的框架更容易理解、更能被设计与实现重用
通常成熟的框架包含了多种设计模式
一个框架不仅可以具体实现一个模式,还可以具体的实现多个模式
设计模式与风格两者为近义词,通常情况下可以互相通用
风格主要是指大的,宏观的设计。模式既可宏观,又可微观。
5.什么是体系结构描述语言?它与程序语言以及UML有哪些区别与联系?
ADL是在底层语义模型的支持下,为软件系统的概念体系结构建模提供了具体语法和概念框架。基于底层语义的工具为体系结构的表示、分析、演化、细化、设计过程等提供支持。其三个基本元素是:构件、连接件、体系结构配置。
跟其他语言的比较:
◎构造能力:ADL能够使用较小的体系结构元素来建造大型软件系统;
◎抽象能力:ADL使得软件体系结构中的构件和连接件描述可以只关注它们的抽象特性,而不管其具体的实现细节;
◎重用能力:ADL使得组成软件系统的构件、连接件甚至是软件体系结构都成为软件系统开发和设计的可重用部件;
◎组合能力:ADL使得其描述的每一系统元素都有其自己的局部结构,这种描述局部结构的特点使得ADL支持软件系统的动态变化组合;
◎异构能力:ADL允许多个不同的体系结构描述关联存在;
◎分析和推理能力:ADL允许对其描述的体系结构进行多种不同的性能和功能上的多种推理分析。