软件设计与体系结构 第三章 软件设计基础.ppt
文本预览下载声明
体系结构“4+1”多视图建模 进程视图 物理视图 逻辑视图 开发视图 场景 集成人员 性能 可扩展性 系统工程师 拓扑 通信 软件体系结构的多视图建模 逻辑视图: 关注功能需求,系统为用户提供的服务,与应用领域相关 系统功能映射到概念构件和连接件 与软件和硬件的细节没关 若是面向对象设计,则将是一种对象模型 进程视图: 捕获设计中关于并发和同步的内容,重视非功能 需求(性能,可扩展性等,定义运行实体和他们的属性) 构件、连接件,构件可以是任务,连接件可以是消息、远程过程调用(RPC)、事件广播等 开发视图: 描述软件在开发环境中的静态结构 构件和连接件分别映射到子系统或模块 关注于软件开发环境中软件模块的组织。软件可被打包,并按层次进行组织 软件体系结构的多视图建模 物理视图: 描述软件到硬件的映射关系,反映了软件的分布特征 把不同的软件元素,例如进程和任务等,映射到不同的物理节点上,并关注物理环境的拓扑结构以及节点间的通信 场景: 使用一组重要场景,也就是用例的实例,把上述四种视图紧密地联系起来 设计中发现体系结构元素的驱动器,设计完成后充当确认和验证的依据。 基于评估与转换的软件体系结构设计 质量优化方案 体系结构转换 质量属性评价 基于功能的体系 结构设计 体系结构制品 需求规格说明 满足 不满足 针对功能特性,它基于一种人们最常见的开发思路:针对功能要求设计体系结构,对设计结果进行评审,如果不满足要求 则进行改进,一直迭代到满足要求为止。 基于评估与转换的软件体系结构设计 体系结构的评估方式 基于场景的评估 仿真 数学建模 基本经验的推理 对体系结构转换的方式 使用合适的体系结构风格和模式,或者设计模式来改进体系结构设计 把非功能需求转化为功能性解决方案,可以与问题域没关,但可以满足质量属性的要求。 采用“分而治之”的方式,可以把系统级的质量需求分配到子系统或模块中,或者把质量需求分解为多个与功能相关的质量需求,分解后的质量需求能够较易得到满足。 模式驱动的软件体系结构设计 体系结构风格是描述某一特定应用方式中系统组织方式的惯用模式,为设计人员的交流提供了公共的模型,符号和术语表示,促进了设计复用甚至最终的代码复用。 体系结构模式是对设计模式的扩展,描述了软件软件系统基本的结构化组织方案,可以作为具体体系结构的模板。 软件开发中常用的设计模式也是对设计经验的一种总结和描述,以便于复用,但设计模式则是针对单一问题提供的解决方案。设计模式更接近于提供通用的实现 方案,尽管实现可以不依赖于具体语言,而体系结构则需要综合考虑整个系统各方面的需求。 一个体系结构设计在继续精化过程中可能会用到多种设计模式来解决其包含的子问题。 常用体系结构风格 管道和过滤器风格、层次风格、黑板模式等 模式驱动的软件体系结构设计 需求规格说明 系统特征 初步分析 搜索可用的 体系结构风格 选择合适的 体系结构风格 对体系结构 风格进行改造 以体系结构风格 为基础进行设计 自行设计 体系结构 扩展软件体系 结构风格库 软件体系结构 设计模型 不存在 模式驱动的软件体系结构设计 体系结构风格分类 独立体系结构 数据流体系结构 以数据为中心的体系结构 虚拟机体系结构 调用与返回体系结构 领域特定的软件体系结构设计 特定领域的软件复用更易成功 领域特定的软件体系结构(DSSA)是领域工程的核心部分,领域工程分析应用分析应用的共同特征和可变特征,对刻划这些特征的对象和操作进行选择和抽象,形成领域模型,并进一步生成DSSA。 领域特定的软件体系结构借鉴领域中已经成熟的软件体系结构,实现解决方案在某个领域内的复用。 虽然这些系统实例的细节会有不同,但共同的体系结构在开发新系统时是能够复用的。 DSSA和软件体系结构风格都是对软件体系结构的重用,但它们的目标、构造和应用 过程存在以下不同之处: (1 )DSSA与软件体系结构风格是从不同角度出发研究问题的两种结果,前者从问题哉出发,而后者从解决哉出发。 (2)DSSA只在某个特定领域中进行经验知识的提取、总结与组织,但可以同时使用多种软件体系结构风格;而一种软件体系结构风格所呈现的公共结构和设计方法可以扩展到多个应用领域。 (3)DSSA的体系结构表示和工具一般只适用于一个较小的范围,在其他领域中是不适用并难以复用的。 领域特定的软件体系结构设计 DSSA应该包括多种组成要素,例如领域模型、参考需求、参考体系结构、相应的支持环境或设施、实例、精化和评估的方法与过程等,以促进DSSA在领域中复用。 领域相关的软件体系结构可分为两种类型 类模型:类模型是从许多实际系统抽象出来的一般模型,它们封装这些系统的主要特征。 参考模型:是更抽象且是描述一大类系统的模型,它是对设计者有关某类系统的一般结构指导。代表了一个理
显示全部