软件构件与体系结构——原理、方法与技术 作者 王映辉 7 软件体系结构设计.pptVIP

软件构件与体系结构——原理、方法与技术 作者 王映辉 7 软件体系结构设计.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Mail:wyh_925@163.com 软件体系结构 王映辉 博士(后),教授,博导 Part 3:软件体系结构设计 SA的本质:对软件需求的一种抽象解决方案 SA需求过程: 一种SA设计过程: 体系结构实现过程: 体系结构演化过程: 对处理广泛的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驱动因素进行,并将问题简化为最重要

您可能关注的文档

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档