- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
体系结构演化
Mail:wyh_925@163.com 软件体系结构 王映辉 博士(后),教授,博导 Part 3:软件体系结构设计 SA的本质:对软件需求的一种抽象解决方案 SA需求过程: 一种SA设计过程: 体系结构实现过程: 体系结构演化过程: 难以湿度把握领域模型和商业模型的细节:在了解用况之前,很难把握商业领域模型的细节,因为用况实际上定义了所要开发的是什么 对于如何选择与SA相关的用况没有提供系统的支持:缺乏标准,仅凭一些启发式规则和软件工程师的评价 用况没有为SA的抽象提供坚实的基础:尽管用况对表示用户的需求是有效的,它关注的是系统的问题域和外部行为。在用况实现中,解决方案领域和内部系统中透明或隐藏抽象将难以确定。因此即使确定了所有的相关用况,从用况模型确定SA的抽象仍将比较困难 包的定义过于简单,难以作为SA的构件:包是分组的机制,因此语法也简单。此外,将分析和设计类分组成包,以及将包组织为最终的体系结构,该方法提供的支持有限,还需依靠软件工程师的通用知识,可能带来错误的SA边界及其交互 通用知识:软件工程师具有的通用的知识 软件设计模式的目的是编制一套可复用的基本原则,用于开发高质量的软件系统。 体系结构设计模式不是软件体系结构,而是体系结构层次的一种抽象表示。 需求规格说明表示问题的规格说明,该问题可能通过该模式得以解决。其中的查找表示在“通用知识”的支持下查找适当模式的过程。 在SA模式的描述中,意图表示使用模式的基本原则;语境表示产生问题的环境,问题是在语境中经常出现的问题,解决方案是以元素及其关系的抽象形式来表示对问题的解决方案 SA模式表示了应用的结果。组合体现了模式之间的相互协作 RUP使用的是一种用况驱动的SA设计方法。用用况的形式捕捉客户的需求,构成用况模型。 用况:系统进行的一系列活动,为参与者提供一些结果值。参与者通过用况使用系统,并共同组成了用况模型。 用况模型的目的作为系统预期功能及其环境的模型,并在客户和开发者之间起到合约作用。 商业模型描述一个组织的商业过程。 工件驱动的方法的例子包括:面向对象的OMT和OAD 客户:与SA设计的相关人员 需求规格说明:描述了所要开发的SA的系统需求 工件:已有的积累,包括产品和经验等 解决方案:结构的概念表示 SA描述:体系结构的规格说明 领域知识:解决某一问题中所应用的知识的范围。针对不同的领域而不同,如问题领域知识,商业领域知识,解决方案领域知识,通用知识等。 问题领域知识:客户观点下与问题有关的知识 商业领域知识:在商业过程观点下与问题有关的知识 解决方案领域知识:提供领域概念的知识,这些领域概念用于解决问题,并独立特定需求。其包括如何从这一解决方案领域生产软件系统 通用知识:软件工程师的一般背景和经验 ADD是一种定义软件SA的方法,该方法将分解过程建立在软件必须满足的质量属性之上。它是一种递归的分解过程,首先,在每个阶段通过选择策略和SA模式来满足一组质量属性场景,然后对功能进行分配,并实现模式所支持类型的功能模块。 在软件生命周期中,ADD位于需求分析之后,当基本掌握了SA驱动的因素(功能、质量、商业需求)之后,就可以开始ADD了。 ADD将功能属性和质量属性作为输入。质量属性用质量场景来表示。 可以将ADD看作其它方法的扩展,如在RUP中只有几个SA高层设计的步骤,接着就进入到了详细设计和实现阶段。可以将ADD与RUP的高层设计相结合,补充RUP高层设计的内容。 模式是策略(tactics)的封装。模式与不同的质量属性相关。通常设计师选择一个或多个精心设计的模式或模式的集合,来实现一个或多个策略。 ADD是一种自上而下的设计过程,首先使用质量属性需求来定义适当的SA模式,并在功能属性的支持下由模式确定模块类型,之后可对模块类型实例化,最后在通用知识的支持下,利用模块的接口将模块进行组合形成SA的描述。 模块分解将根据SA驱动因素进行,并将问题简化为最重要的需求。 两个主要的因素决定策略的选择:驱动因素本身和模式的选取带来的副效应。如解释器具有的易修改性带来的系统性能的下降之间的矛盾。 功能分配到匹配的性能模块上:如将管理障碍物检测和停止车库门升降的功能分配到关键性能部分,因为该功能有时间限制。 策略决定了模块之间的交互模式。如发布-订阅模式决定了一个模块的“发布”模式,其它模块的“订阅”模式。 选取SA驱动因素(质量场景和功能集合) 选择满足驱动因素的SA模式,利用可实现驱动因素的策略创建模式,并在功能属性的支持下确定实现策略的模块类型 实例化这些模块类型,并根据用况精化功能分配 定义模块的接口。分解过程提供了模块之间交互类型的限制条件 验证用况和质量场
文档评论(0)