网站大量收购独家精品文档,联系QQ:2885784924

软件变化性与对策初探.pptVIP

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件变化性与对策初探

软件的变化性与对策初探 王千祥 2002.12.31 于 北京大学语言所 内 容 现状与根源 现有的对策 其它相关的问题 一、现状与根源 软件的变化性 特点 类别 根源 1、什么是软件的变化性? 需求变化导致的软件变化 排除错误 适应环境 从输入到输出的变化: 可接受的输入集 所响应的输出集 反应过程(时间、吞吐量等) 2、变化性的特点 持续时间长 开发阶段 开发之后 开销比重大 认识不足 具体差别大 3、变化的类别 时间 同一软件在不同时间点上的变化 体现为:维护、演化等 空间 由单个软件演化出其它不同的软件 往往发生在同一个领域内 4、变化的根源 软件的起源 与硬件结合发挥作用的工具 易于调整(From John Mauchly to von Neuman) 今天的软件 运行平台、模拟对象、关注重点、提交形式等发生变化 规模、复杂性越来越大 越来越难以变化! 4、变化的根源(续) 变化的起因 增加新特性 以 吸引客户 业务流程重组(BPR) 以 提高效率 改变数据库表 以 适应功能调整 调整界面 以 方便人机交互 提高可靠性、安全性 等等 二、现有的对策 基本思路 具体方案 面向对象 面向领域 设计良好的体系结构 运用支持变化性的设计模式 区分系统的不同侧面 进行变化性管理 基本思路 系统化分析 将变化点作为设计依据 将变化点追踪到实现阶段 1、面向对象 封装(抽象) 将变化性进行隔离 继承 将变化性分别实现为不同的子类 2、面向领域(程序家族) 领域工程 对领域中的系统进行分析 识别这些应用的共同特征和可变特征 对刻划这些特征的对象和操作进行选择和抽象 设计出领域中应用共同具有的构架 并以此为基础识别、开发和组织可复用构件 2、面向领域(续) 2、面向领域(续) 3、设计良好的体系结构 体系结构 是对软件系统结构的总体说明 关注三方面问题:构件、构件间关系、关系约束 构件: 软件系统由哪些部分构成 例如:数据库、服务器等 构件间的关系: 这些部分之间的交互关系是什么 例如:RPC、共享内存等 关系的约束: 这些关系有什么约束 例如:互斥、依赖、安全性等 将它们分别与可能的变化点相结合! 4、运用支持变化性的设计模式 设计模式 描述了一个通用的设计结构 该结构 能被用来构造可复用的面向对象设计 确定了所包含的类、实例 以及它们的角色、协作方式 4、运用支持变化性的设计模式(续) 4、运用支持变化性的设计模式(续) 4、运用支持变化性的设计模式(续) 5、区分系统的不同侧面 在目前的程序设计技术框架下 一些重要的需求和设计决策,比如安全、日志等,难以用清晰的、模块化的代码实现 它们具有一种“贯穿特性”(crosscutting concerns) 最后的结果经常是: 代码散布(code scattering) 代码交织(code tangling) 开发出来的程序非常难于理解和维护 5、区分系统的不同侧面(续) 6、进行变化性管理(技术之外) 版本管理 受控的变化 一致性管理 多人之间的一致 不同阶段之间的一致 工具支持 Source Safe CVS 三、其他相关的问题 数据库的变化 流程的变化 应用系统集成 …… * * 认清:“只有变化是不变的” 努力:“以不变应万变” 管理:“变化” 领域分析: 策略模式(Strategy) 目的:将可以选择的算法封装起来,作为一个可以互相替换的类 途径:定义支持各个具体算法的抽象策略 结构: 修饰模式(Decorator) 目的:方便地给对象添加功能 途径:在对象结果中引入修饰对象 结构: 桥接模式(Bridge) 目的:将系统的抽象部分与实现部分进行分离 使它们可以对立地演化 途径:在二者之间建立抽象与实现的桥接 结构: 功能构件 Aspect 同步 Aspect 日志 Aspect Oriented Programming:

文档评论(0)

qianqiana + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5132241303000003

1亿VIP精品文档

相关文档