Kruchten的4+1模型描述软件体系结构.ppt

上传人:xiao****1972 文档编号:6279372 上传时间:2020-02-21 格式:PPT 页数:57 大小:1.10MB
返回 下载 相关 举报
Kruchten的4+1模型描述软件体系结构.ppt_第1页
第1页 / 共57页
Kruchten的4+1模型描述软件体系结构.ppt_第2页
第2页 / 共57页
Kruchten的4+1模型描述软件体系结构.ppt_第3页
第3页 / 共57页
点击查看更多>>
资源描述
1 2020 2 21 第2章软件体系结构建模 2 2020 2 21 假定你是ModuleDesigner 你最近加盟一家公司 并被安排在一个新项目的开发组中 虽然你富有经验 但是对此项目所涉及的领域还是一个新手 系统的高层体系结构设计已经完成 你的老板 项目经理 让你预计你将要完成的几个模块的开发时间 你怎么办 3 2020 2 21 假定你是ModuleDesigner 你来开发A2和A3 怎么开始 4 2020 2 21 假定你是Consultant 顾问 你是一个请来的顾问 对一个体系结构设计进行评估 Modifiability和Performance是重要的体系结构质量因素 你会询问什么样的信息 5 2020 2 21 假定你是Consultant 顾问 面对这样的图 你会有什么反应 6 2020 2 21 假定你是Consultant 顾问 面对这样的图 你会有什么反应 7 2020 2 21 体系结构描述方法 软件开发过程中各种角色之间交流设计思想的媒介进行上层分析的基础 此基础上可以验证体系结构设计方案 精炼或改变必要的方案让别人理解系统的第一手资料 8 2020 2 21 与ModuleDesigner交流 基本想法是什么 我该做什么 如 实现哪些需求 我该在哪做 如 这项功能实现在哪里 我和谁交互 接口是什么 有什么可以重用的代码 必须遵从什么约定 质量目标 旧体系 接口 预算等 有哪些硬性规定 设计 接口 约束等 9 2020 2 21 与顾问交流 体系结构的必要需求 drivingrequirement 是什么 如 performance availability security modifiability interoperability 各种体系结构视图是如何描述的 抽象出来什么 功能怎样分解 功能怎样分配 使用什么硬件以及软件怎样布置在硬件上 采用了哪些体系结构风格 10 2020 2 21 这是什么 11 2020 2 21 上图的毛病 很多事情没有说 组件类型连接件类型圆圈和箭头代表什么 这种布局的意义是什么 为什么CP要放在上层 只画出方框和线条不是体系结构 只是体系结构的开始 12 2020 2 21 好的体系结构描述的必要元素 需求陈述商业环境 产品的背景 领域描述环境必须和什么系统交互 外部接口使用体系结构图用恰当的线框简洁的说明 13 2020 2 21 好的体系结构描述的必要元素 考虑实现时的限制但是仅在它们能影响体系结构设计的范围内被限定的下层结构 处理器需求通常包含其他结构图体系结构设计的原理它怎样去符合需求与约束其他的设计 14 2020 2 21 其他方面 风格 产品线问题设计可变的尺度体系结构的那个方面必须不被改变 管理问题暗含开发团队的组织结构体系结构评审情况其他设计问题代码重用 标准的运用风险分析运作 管理和维护 15 2020 2 21 好描述 线和框有不同的形状 颜色 并有图例说明用表格总结方案选择等等各种问题图并不试图去表达很多信息 把信息分散到需要表达它的各个视图中每个体系结构视图必须在一页内完成清晰地区分出哪些是体系结构视图 哪些不是 16 2020 2 21 坏描述 所有的线看起来都一样箭头不代表任何涵义箭头代表很多涵义实现与文档冲突没有图例太多的必要需求 17 2020 2 21 视图 系统需要多种视图来描述其中的一小部分是描述体系结构的运行时视图 动态视图 组件和连接件 在高层分解成组件和连接件代码视图模块关联和依赖使用 调用 和 共享数据文件和目录 工程和编译文件 版本控制物理视图把计算单元分配到各个进程或处理器 18 2020 2 21 阅读 PhilippeKruchten ArchitecturalBlueprints The 4 1 ViewModelofSoftwareArchitecture IEEESoftware12 6 1995 pp 42 50Release6ASegment DesignSpecificationfortheECSProject Section4 4 NASAReport305 CD 600 001 pages4 160 185 March2001http edhs1 gsfc nasa gov waisdata toc cd30560001toc html 19 2020 2 21 软件体系结构建模的种类 结构模型框架模型动态模型过程模型功能模型 20 2020 2 21 结构模型这是一个最直观 最普遍的建模方法 这种方法以体系结构的构件 连接件和其他概念来刻画结构 并力图通过结构来反映系统的重要语义内容 包括系统的配置 约束 隐含的假设条件 风格 性质等 研究结构模型的核心是体系结构描述语言 21 2020 2 21 框架模型框架模型与结构模型类似 但它不太侧重描述结构的细节而更侧重于整体的结构 框架模型主要以一些特殊的问题为目标建立只针对和适应该问题的结构 22 2020 2 21 动态模型动态模型是对结构或框架模型的补充 研究系统的 大颗粒 的行为性质 例如 描述系统的重新配置或演化 动态可以指系统总体结构的配置 建立或拆除通信通道或计算的过程 23 2020 2 21 过程模型过程模型研究构造系统的步骤和过程 结构是遵循某些过程脚本的结果 24 2020 2 21 功能模型功能模型认为体系结构是由一组功能构件按层次组成 下层向上层提供服务 功能模型可以看作是一种特殊的框架模型 25 2020 2 21 4十1 模型 Rational公司的PhilippeKruchten在1995年提出了用于体系结构描述的 4十l 模型 该模型建立在体系结构的Perry Wolf定义和BerryBoehm定义的基础上 该模型采用多视图模型的方法描述软件体系结构 为了最终能够处理富于挑战性的 大规模的软件系统 该模型由5个视图构成 u逻辑视图当采用面向对象的设计方法时 逻辑视图即是对象模型 u进程视图描述系统的并发和同步方面的设计 u物理视图描述软件到硬件之间的映射关系 反映系统在分布方面的设计 u开发视图描述软件在开发环境下的静态组织 26 2020 2 21 对体系结构进行的描述是围绕着以上4个视图展开的 然后 通过选择出的一些用例对体系结构加以说明 这些用例被称作场景 scenarios 它们构成了第5个视图 实际上 体系结构在某种程度上是由场景演化而来的 27 2020 2 21 体系结构的概念在每个视图里面都可以独立应用 这就是说 可以在每个视图里面定义体系结构的各种组成元素 如构件 连接件等 对于不同的视图 还可以选择不同的体系结构风格 因此在同一个系统结构中可以使用多种风格 此外 在每一种视图里 我们使用该视图特定的符号 这避免了符号用法和意义的混乱 4十1 视图模型是一个十分通用的模型 可以便用其他的符号表示法 也可以使用其他的设计方法 尤其是逻辑视图和过程视图的分解 28 2020 2 21 4十1 模型实际上使得有不同需求的人员能够得到他们对于软件体系结构想要了解的东西 系统工程师先从物理视图 然后从过程视图靠近体系结构 最终使用者 客户 数据专家从逻辑视图看体系结构 项目经理 软件配置人员从开发视图看体系结构 29 2020 2 21 要指出的是 不是所有的软件体系结构都需要完整的 4十1 视图 没有用的视图在体系结构描述中可以被省略 例如对于非常小的系统 逻辑视图和开发视图有可能非常相似以至于没有必要把它们分开描述 场景视图在各种环境下都是有用的 30 2020 2 21 逻辑视图的体系结构 面向对象的分解 逻辑视图主要支持功能需求 系统应当向用户提供什么样的服务 从问题域出发 采用面向对象的方法 按照抽象 封装 继承的原则 进行分解 得到代表着系统的关键抽象表示的集合 这些抽象表示的具体形式就是对象和对象的类 这种分级不仅是为了功能分析 而且担负着在系统的各部分中确定公共机制和设计元素的作用 使用Rational Booch方法 通过类图 classdiagram 和类模板 classtemplate 来表示逻辑体系结构 类图显示了类的集合和它们的逻辑关系 关联 association 组合 composition 使用 usage 继承 inheritance 等 类模板则着眼于每个类的个体 强调类的主要操作 并确定对象的关键特征 当十分需要定义一个对象的内部行为时 要使用状态转换图 statetransitiondiagram 或者是状态表 statechart 相关类的集合可以归到一起 称作类的种属 classcategory 31 2020 2 21 逻辑视图的符号表示法 逻辑体系结构的符号表示法 见图 是从Booch方法派生而来的 它被极大地简化了 尤其大量简化了在这个设计阶段作用不大的各种修饰 只考虑对于体系结构有重要意义的元素在设计工具上 可以使用RationalRose等UML建模工具 公共的机制和服务在类设施 classutilities 中定义 32 2020 2 21 逻辑视图的风格 逻辑视图也可以采用面向对象的风格 逻辑视图设计的主要准则是 要设法在整个系统中保持一个单一的 连贯的对象模型 避免类和相关机制出现按照场地或处理器过早的分化 逻辑视图的例子 33 2020 2 21 进程视图的体系结构 过程分解 过程体系结构考虑的是一些非功能性的需求 诸如性能 可用性等 它所要面对的问题有并发 分布 系统的完整性 容错能力等 它还要考虑怎样把过程体系结构与逻辑视图体系结构的要点相适应 对某个对象的某个操作实际上是在哪个控制线程上发生的 可以把过程体系结构分为几个抽象层次来描述 每个层次考虑不同的方面 在最高层次上 过程体系结构可以被视为是一个逻辑网络的集合 每个独立执行的逻辑网络都是由通信程序 即 过程 构成的 这些逻辑网络分布在一个通过LAN或WAN连接起来的硬件资源集合上 多个逻辑网络可能同时存在 并共享同样的物理资源 34 2020 2 21 过程视图的体系结构 过程分解 软件被分为独立的任务的集合 每个任务是一个独立的控制线程 可以在一个处理节点上独立单独调度 因此可以将任务分为主任务和辅任务 主任务是需要单独解决的体系结构元素 辅任务是由于实现原因而在本地加入的附加任务 缓冲 超时 等等 例如可以将它们实现为轻量级的线程 主任务通过一套完善定义的任务间通信机制进行通信 同步的或异步的基于消息的通信服务 远程过程调用 时间广播等 不应当假设通信中的主任务处于同一个过程中或处在同一个处理节点上 辅任务的通信可以采用共享内存的方式或其他双方约定的方式 基于过程体系结构设计图 可以估计出消息流和过程负荷 35 2020 2 21 过程视图的符号表示法 在辅助工具的选择上 可以考虑使用TRW提供的UNAS UniversalNetworkArchitectureServices 产品 它可用于把各种过程和任务构建并实现为过程的逻辑网络 UNAS里面包含的一个工具SALE SoftwareArchitectureLifecycleEnvironment 支持这样的符号表示法 SALE允许过程体系结构的图形化描述 包括对可能的任务间通信路径的规格说明 然后 从这种规格说明可以自动生成相应的Ada或C十十语言源代码 36 2020 2 21 过程视图的风格有多种风格适合过程体系结构 例如管道和过滤器 客户 服务器及其变体 多客户 单服务器 多客户 多服务器 等 过程视图例子 37 2020 2 21 开发视图的体系结构 子系统分解 开发视图 关注的是在软件开发环境中软件模块的实际组织 软件被打包成可以由单个或少量程序员开发的各种小的部分 程序库或子系统 子系统被组织成层次化的体系 每一层为上一层提供一个严密的 明确定义的接口 系统的开发体系结构用模块图和子系统图来表示 在图中可以显示出 导入 和 导出 关系 完整的开发体系结构只有在软件系统的所有元素被识别出来之后才能被描述 控制开发体系结构的原则是 分割 编组 可视 开发体系结构主要考虑的是内部需求 这些需求目的是要使开发相关的活动更易于进行 如软件管理 软件复用 开发工具集所造成的约束 编程语言等 开发体系结构是许多开发话动的基础 包括需求配置 团队组织和工作分配 成本估算和成本规划 项目进度监控 软件可重用性和可移植性分析 软件安全分析等 它是建立软件产品线的基础 38 2020 2 21 开发视图的符号表示法 与前面类似 开发视图的符号表示法采用Booch表示法的变体 并且只考虑对于体系结构有重要意义的元素 如图所示 在RationnalRose中 可以绘制模块层和子系统层的开发体系结构图 还可以在反向工程中从已经开发的源代码 Ada或C十十 得出系统的开发体系结构图 39 2020 2 21 开发视图的风格 对于开发视图 我们建议采用分层风格 定义4 6层的子系统 每一层都有明确责任 设计规则是 某一层的子系统只能依赖于本层或其下层的子系统 这样做的目模块间相互依赖而构成的复杂网络最小化 并使得系统可以采用逐层的策略完成释放 40 2020 2 21 开发视图的例子 下图用5个层次表示了航空交通管制系统产品线的开发组织 41 2020 2 21 物理视图的体系结构 从软件到硬件的映射 物理体系结构主要考虑的是非功能性的系统需求 如系统的可用性 可靠性 容错性 性能 信息吞吐量 和可扩展性 软件系统在计算机网络的各个处理节点上运行 各种被确定出的元素 网络 过程 任务和对象 需要映射到各种节点上去 将用到不同的物理配置 有些用于开发和测试 有些用于不同场所或不同用户 因此从软件到处理节点的映射需要高度灵活 并且最小限度地影响其本身的源代码 42 2020 2 21 物理视图的符号表示法 TRW公司的UNAS允许使用者采用数据驱动的方式将过程体系结构映射到物理体系结构 并允许在不修改源代码的情况下对这种映射做出多种改动 43 2020 2 21 ACS系统的物理视图 44 2020 2 21 具有进程分配的小型ACS系统的物理视图 45 2020 2 21 场景视图的体系结构 汇总 通过使用一些重要场景 4个视图中的元素可以协调地共同工作 尽管这些场景是一个小集合 但是它们很重要 场景 scenario 是更通用的概念 用例 usecase 的实例 从某种意义上讲 场景是最重要的需求的抽象 场景的设计使用对象场景图 objectscenariodlagram 和对象交互图来表示 相对于其他的4个视图 这个视图是多余出来的 所以称为 4十l 但是它承担着两个目的 在下面要讲到的体系结构设计中 将以此视图为驱动来发现体系结构元素 在体系结构设计结束后 此视图承担验证和描述的角色 它不仅用于书面记录 并且是体系结构原型测试的起始点 46 2020 2 21 场景视图的符号表示法 场景视图的符号表示法中 构件的表示与逻辑视图非常相似 但是连接件的表示使用过程视图中的方法 注意 对象的实例用细实线表示 在工具的使用方面 和在逻辑体系结构类似 可以使用RationalRose绘制和管理对象场景图 47 2020 2 21 场景视图的例子 Joe的电话的控制器检测到并证实了从挂起到取下的状态转变 并且发送了消息来唤醒相关的终端对象 终端分配一些资源 并告诉控制器发出拨号音 控制器受到数字并将它们发送给终端 终端使用号码规划来分析数字流 当一个有效序列的输入完成 终端打开一个对话 图场景的雏形 本地呼叫选择阶段 48 2020 2 21 49 2020 2 21 50 2020 2 21 4 1模型uml描述 51 2020 2 21 52 2020 2 21 53 2020 2 21 54 2020 2 21 体系结构的核心模型 55 2020 2 21 软件过程 需求分析 建立体系结构 测试 实现 设计 56 2020 2 21 生命周期模型 57 2020 2 21 阅读原文 完成作业 逻辑体系结构的类有哪4个重要特征 简述 4 1 模型的迭代方法 场景驱动法的思想和优点 软件的体系结构设计阶段形成哪些文档
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


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

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


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