软件构架-设计构架

上传人:子 文档编号:52219378 上传时间:2018-08-19 格式:PPT 页数:34 大小:361.50KB
返回 下载 相关 举报
软件构架-设计构架_第1页
第1页 / 共34页
软件构架-设计构架_第2页
第2页 / 共34页
软件构架-设计构架_第3页
第3页 / 共34页
软件构架-设计构架_第4页
第4页 / 共34页
软件构架-设计构架_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《软件构架-设计构架》由会员分享,可在线阅读,更多相关《软件构架-设计构架(34页珍藏版)》请在金锄头文库上搜索。

1、设计构架设计构架何时可以开始设计构架何时可以开始设计构架软件概念初步的需 求分析 构架和系 统核心的 设计开发一 个版本汇总客 户反馈交付该 版本获取客户 反馈交付最终 版本属性驱动的设计(属性驱动的设计(ADDADD)功能需求质量需求ADD模块分解视图组件连接器视图分配视图其它视图粗粒度粗粒度用质量属性场景来 表达将分解过程建立在软件必须满足的质量属性之上例子:使用例子:使用ADDADD为家庭信息系统中的车库门开关为家庭信息系统中的车库门开关 器设计一个产品线构架器设计一个产品线构架l l样本输入:样本输入:l l功能需求:功能需求:l l质量需求:表示为一组特定于系统的质量质量需求:表示为

2、一组特定于系统的质量 属性场景。属性场景。车库门系统质量属性场景车库门系统质量属性场景l对于产品线中的各种产品来说,用于开门和关门的设 备和控制装置是不同的;应该可以直接从产品线构架 中推导出一组特定控制装置的产品构架l不同产品中使用的处理器不同。应该可以直接从产品 线构架中推导出每个特定处理器的产品构架l如果车库门在下降的过程中检测到一个障碍物,它必 须在0.1秒内停止l应该可以在家庭信息系统内使用特定于产品的诊断协 议来诊断和管理车库门开关器ADDADD的步骤的步骤l l(1 1)选择要分解的模块)选择要分解的模块最初是整个系统。该模块要求的所有输入都必须最初是整个系统。该模块要求的所有输

3、入都必须 是可获得的。是可获得的。ADDADD的步骤的步骤(2 2)根据这些步骤对模块进行求精。)根据这些步骤对模块进行求精。lA. 从具体的质量场景和功能需求集合中选择构架驱动因素 。lB. 选择满足构架驱动因素的构架模式。lC. 实例化模块并根据用例分配功能,使用多个视图进行表 示lD. 定义子模块的接口。该分解提供了模块和对模块交互类 型的限制。对于每个模块,将该信息编写在接口文档中。lE. 验证用例和质量场景并对其进行求精,使它们成为子模 块的限制。 (3 3)对需要进一步分解的每个模块重复上述对需要进一步分解的每个模块重复上述 步骤步骤车库门系统车库门系统-选择构架驱动因素选择构架驱

4、动因素l l已经给出的已经给出的4 4个质量场景就是构架驱动因素。个质量场景就是构架驱动因素。l实时性能l支持产品线可修改性l支持在线诊断l(构架驱动因素的确定并不总是一个自上而下的过程。有时需 要进行详细的调查,以理解特定需求的结果。l例如:为了确定对于某个特定的系统配置来说性能是否是一个 问题,可能需要对系统的某一部分进行原型实现)l(通过选择驱动因素,把问题简化为满足最重要的需求)车库门系统车库门系统-选择构架模式选择构架模式l对于每个质量属性,用一定的战术来实现。在构架 设计中,使用许多此类战术的组合来实现所要求的 多个质量属性之间的平衡。l两个主要的因素支配了战术的选择:第一个就是驱

5、 动因素本身;第二个就是实现战术的模式对其它质 量属性产生的副作用。l性能和可修改性。选择构架模式选择构架模式性能战术(复习)性能战术(复习)l性能战术的目标是对在一定的时间限制内 到达系统的事件生成一个响应。l资源需求l资源管理l资源仲裁资源需求资源需求l提高计算效率:改进算法l减少计算开销:例如:用Java类而非RMI (Remote Method Invocation) 资源管理资源管理l尽管不能控制对资源的需求,但对这些资 源的管理会影响响应时间。l引入并发:如果可以并行地处理请求,就可以减少闭锁 时间。l维持数据或计算的多个副本:客户机/服务器模式中客户 机是计算的副本;高速缓存是在

6、不同速度的存储库或单 独的存储库上复制数据l增加可用资源:速度更快的处理器、额外的处理器、额 外的内存以及速度更快的网络都可能减少等待时间。可修改性战术可修改性战术局部化修改防止连锁反应推迟绑定时 间车库门系统车库门系统-选择构架模式选择构架模式车库门系统车库门系统-实例化模块实例化模块l将管理障碍物检测和停止车库门升降的责 任分配给关键性能部分,因为该功能有一 个时限时间,正常的升降门管理没有时间 限制,因此当作非关键性能部分。诊断能 力也是非关键性能部分。车库门系统车库门系统-实例化模块实例化模块车库门系统车库门系统-分配功能并用视图来表示分配功能并用视图来表示 构架构架l应用与父模块相关

7、的用例有助于设计师更详 细地了解功能的分布情况,可能导致增加或 删除子模块,以实现要求的所有功能。车库门系统车库门系统-分配功能并用视图来表示分配功能并用视图来表示 构架构架l模块分解视图l并发视图l部署视图并发视图并发视图l对系统的动态方面(并行活动、同步)建模。l(有利于确定资源争用问题、 可能出现的死锁情况、 数 据一致性问题等)l(有可能会发现模块的新的责任,还可能导致新模块的发 现)l是“组件-连接器”视图中的一个。l连接器:“与同步” 、“开始” 、“取消” 、“与通信”。l组件:模块分解视图中模块的实例。车库门开关系统车库门开关系统-并发视图并发视图l通过以下用例对并发进行说明:

8、l两个用户同时做类似的事情。有助于识别资源争用或数据完整性问 题。本例中:一个用户可能在远程关门,而另一个用户在用开关开 门。l一个用户同时执行多个活动。有助于揭示数据交换和活动控制问题 。在本例中,一个用户可以在执行诊断的同时开门。l启动系统。有助于确定初始化策略。在本例中,车库门开关器总是 工作,等待信号,还是随着每次的开门或关门就停止?l关闭系统:有助于揭示清除问题,如实现并保存一致的系统状态。 在本例中,升/降门部分和关键性能部分都需对传感器/激励器虚拟机 进行采样,需要一个用于传感器/激励器虚拟机的同步机制。相关视图部署视图部署视图l部署视图导致了并发视图的虚拟线程,并发视图 又分解

9、为特定处理器中的虚拟线程和在处理器间 传输的消息。(是分析网络通信和确定潜在拥塞 的基础,还有助于确定是否需要某些模块的多个 实例,例如:可用性需求可能会迫使我们在不同 的处理器上复制关键的功能)ADD的步骤定义子模块的接口定义子模块的接口l l模块视图对如下信息进行编档:模块视图对如下信息进行编档:l信息的生产者/消费者l要求模块提供服务并使用它们的交互模式l l并发视图:并发视图:l线程间的交互,它们会导致提供或使用服务的模块接口l组件活动的信息l组件同步、序列化、阻塞呼叫的信息定义子模块的接口定义子模块的接口l部署视图对如下信息进行编档:l硬件需求:如专用硬件l一些时间需求:如处理器的计

10、算速度最少必须为 10MIPSl通信需求:如每秒更新信息的速度不能超过一次l模块的接口文档应该提供所有以上的信息ADD的步骤验证并求精用例和质量属性场景验证并求精用例和质量属性场景l到目前为止所列举的步骤实际上就是对模块分 解的建议。必须对该分解进行验证,必须使子 模块为自己的分解做好准备。l l功能需求:功能需求:每个子模块都有一部分从分析功能 需求的分解中得出的责任。可以把这些责任转 换为该模块的用例。车库门系统车库门系统-功能需求功能需求l l车库门开关器的责任:车库门开关器的责任:l根据请求打开和关闭车库门l在本地或以远程方式进行l在检测到障碍物时,以0.1秒内使车库门的动作停止l与家

11、庭信息系统交互并支持远程诊断l这些责任被分解为如下与模块相对应的功能组:l l用户接口:用户接口:识别用户请求,并将它们转换为升识别用户请求,并将它们转换为升/ /降门模降门模 块所期望的形式块所期望的形式l l升升/ /降门模块:降门模块:控制激励器来实现门的上升或下降。当控制激励器来实现门的上升或下降。当 门达到全开或全关状态时,使门停止运动。门达到全开或全关状态时,使门停止运动。l l障碍物检测:障碍物检测:当检测到障碍物时,或者停止,或者使当检测到障碍物时,或者停止,或者使 门上升。门上升。l l通信虚拟机:通信虚拟机:管理与家庭信息系统的所有通信管理与家庭信息系统的所有通信l l传感

12、器传感器/ /激励器:激励器:管理与传感器和激励器的所有交互管理与传感器和激励器的所有交互l l调度程序:调度程序:保证障碍物检测器将满足其时限时间要求。保证障碍物检测器将满足其时限时间要求。l l诊断:诊断:管理与要进行诊断的家庭信息系统的交互。管理与要进行诊断的家庭信息系统的交互。限制限制l可以用如下一种方式满足父模块的限制l分解满足了该限制:例如:可以通过将某个操作系统定义为子 模块来满足使用该操作系统的限制l该限制由单个子模块来满足:例如:使用一个专门的协议的 限制可以通过为该协议定义一个封装子模块来满足。l该限制由多个模块来完成:例如:使用web要求用两个模块 (客户/服务器)来实现

13、所必需的协议。在车库门系统中,一个限制是维持与家庭信息系统的通信,通信 虚拟机将识别该通信是否不可用,因此通过使用一个子模块满足 了该限制。质量属性场景质量属性场景l必须对质量属性场景进行求精,并将其分配给 子模块。l在车库门系统中,用如下方式来满足确定为构架驱动 因素的质量属性场景。l对于产品线中的不同产品来说,用于开门和关门的设备和控制装 置是不同的。它们可能包括来自家庭信息系统的控制装置,该场 景被委派给用户接口模块。l在不同产品中使用的处理器是不同的。对于每个产品来说,应该 可以直接从产品线构架中得出特定于产品的构架。该场景委派给 所有的模块,每个模块都不能使用标准编译器不支持的特定于

14、处 理器的特性。l如果车库门在下降的过程中检测到了障碍物,则门必须在0.1秒 内停止或打开。该场景被委派给调度程序和障碍物检测模块。l应该可以使用特定于产品的诊断协议,从家庭信息系统中诊断和 管理车库门开关器。该场景在诊断和通信模块之间进行了职责 划分。通信模块负责用于与家庭信息系统进行通信的协议,诊断 模块负责管理涉及诊断的其他交互。l本步骤结束时,模块被分解为其子模块, 其中每个模块都有一个责任的集合;并拥 有了一组用例、接口、质量属性场景以及 限制的集合。l以上是进行下一轮迭代的基础。继续返回返回设计构架设计构架l形成团队结构l创建骨架系统创建骨架系统创建骨架系统l对构架进行了充分设计后

15、,就可以创建骨 架系统。l首先,实现处理构架组件的执行和交互的软件部分。 包括:实时系统中的调度程序,实现规则引擎(带有 规则的原型集)以控制在基于规则的系统中规则的激 发;实现多进程系统中的进程同步机制或客户/服务器 系统中的客户机/服务器的协同。l选择把提供功能的哪些元素添加到系统中。可能根据 以下因素:首先处理问题最多的部分来降低风险;或 现有开发人员的类型和水平;或尽可能快地将有用的 产品推向市场。创建骨架系统创建骨架系统l选择了提供下一个功能增量的元素后,就可以采用使 用结构,以获知应该在系统中采用什么软件来支持该 功能。l随着该过程的继续,系统的增量越来越大,直到软件 开发完毕。(任意时刻集成和测试任务都不会很多, 在每个增量中都很容易找到最近引入的错误源)总结总结l在确定了关键的构架驱动因素之后,就可 以开始构架设计了。当设计了构架的足够 多的部分后,就可以开发骨架系统了。l质量属性场景和战术对构架设计非常关键 。使用质量属性需求来定义适当的构架模 式,使用功能需求来实例化由该模式给定 的模块类型。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号