- 1、本文档共225页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.软件架构设计过程.ppt
软件体系结构V2012 软件架构设计 第4部分 软件架构设计过程 第9章 软件架构设计过程 9.1 打造有效的架构设计过程 一般的软件过程 一般来讲,软件开发过程包括如下5个阶段:概念化阶段、分析阶段、架构设计阶段、并行发与测试阶段、验收与交付阶段 概念阶段要解决项目的起源问题,主要针对项目目标、主要特性、功能范围和成功要素等进行构思并达成一致。文档: 《愿景与范围文档》(Vision and Scope Document) 《市场需求文档》(Marketing Requirement Document, MRD) 《项目立项书》 分析阶段的目的是明确需求,并以《软件需求规格说明书》的形式记录下来 9.1 打造有效的架构设计过程 一般的软件过程 架构设计阶段要在较高的抽象层次上制定出解决方案,即设计软件架构 并行开发与测试阶段动用的资源是最多的。此阶段中,我们以软件架构为基础,进行系统化的开发与测试 验收与交付阶段,最终的产品将接受客户方或相关管理部门的验收。如果有需要,还要进行部署,上线,甚至已有数据的移行等工作 上述软件过程之所以被称为“一般的软件过程”,是因为它是项目经理、架构师、开发人员、测试人员等所有人共同遵守的过程,是一个在许多方面都“大而化之”的“公共软件过程” 9.1 打造有效的架构设计过程 架构师自己的架构设计过程 架构设计的开展非常依赖其上游活动。总体而言,这些上游活动包括需求分析和领域建模 需求分析。毋庸置疑,在没有全面认识需求并权衡不同需求之间相互影响的情况下,设计出的架构很可能有问题 领域建模。领域建模的目的是:透过问题领域的重重现象,捕捉其背后最为稳固的领域概念及这些概念之间的关系 9.1 打造有效的架构设计过程 架构师自己的架构设计过程 接下来要进行概念性架构的设计 确定对架构关键的需求。对功能需求(如用例)进行筛选,对非功能需求进行综合权衡,最终确定对软件架构起关键作用的需求子集 概念性架构设计。分析关键用例的用例规约,运用鲁棒图构造系统理想化的职责模型。接下来,明确架构模式,确定交互机制,形成初步的概念性架构。最后,还要通过质量属性分析,制定出满足非功能需求的高层设计决策,并根据这些设计决策对此前的作成果进行增强、调整,以保证概念性架构体现这些设计决策 9.1 打造有效的架构设计过程 架构师自己的架构设计过程 再接下来,考虑具体技术的运用,设计出实际架构 细化软件架构。须从系统如何规划、如何开发、如何运行等角度揭示软件系统的结构和机制,和具体技术结合,为开发人员提供足够的指导和限制。一般而言,可以分别从逻辑架构、开发架构、运行架构、物理架构、数据架构等不同架构视图进行设计 验证软件架构。验证架构的手段,对软件项目而言,往往需要开发出架构原型,并对原型进行测试和评审来达到;而对软件产品而言,可以开发一个框架(Framework)来贯彻架构设计方案,再通过在框架之上开发特定的垂直原型来验证特定的功能或质量属性 9.2 软件架构设计过程解析 软件架构设计策略 软件架构设计过程应该将(在第7章中有相关讨论)架构设计策略作为“一等公民”突出体来,只有这样,才能更有效地指导软件架构师进行架构设计 必须全面认识需求 必须学会通过关键需求来主导架构设计 应当采用基于多视图的架构设计方法 应注意及早验证架构 9.2 软件架构设计过程解析 构设计过程中的工作产品 领域模型凝聚了领域专家知识 软件需求是委托方希望软件系统达到的目标 概念性架构是架构设计的初步成果 最终的软件架构设计方案必须和具体技术结合,为开发人员提供足够的指导和限制 通过具体实现技术来构造架构原型,对架构的有效性进行验证 总结与强调 从软件架构师的角度而言,他希望有能够切实指导自己实际工作的架构设计过程。这倒不是说架构设计过程和整个软件开发过程有什么不一致的地方,而是说前者应当比后者有更多架构设计的“细节” 同时,软件架构设计过程应该将架构设计策略作为“一等公民”突出体现出来,只有这样,才能更有效地指导软件架构师进行架构设计 软件架构设计过程 需求分析 领域建模 确定对架构关键的需求 概念性架构设计 质量属性分析 细化架构设计 实现并验证软件架构 第10章 需求分析 内容提要 软件需求基础 需求分析在软件过程中所处的位置 架构师需掌握的需求只是 PM Tool 实战:需求分析 软件需求基础 用户到底想要什么? 什么是软件需求? “这个软件到底要为用户做什么” IEEE将需求定义为: 1.用户所需的解决某个问题或达到某个目标所要具备的条件或能力 2.系统或系统组件为符合合同、标准、规范或其他正式文档而必须满足条件或必须具备的能力 RUP(统一软件开发过程)将需求定义为: 需求描述了系统必须满足的情况或提供的能力,它可以是直接来自客户
文档评论(0)