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

  • 2
  • 0
  • 约3.65千字
  • 约 24页
  • 2018-06-23 发布于浙江
  • 举报
软件的变化与对策初探

软件的变化性与对策初探 王千祥 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 三、其他相关的问题 数据库的变化 流程的变化 应用系统集成 …… * * 肝圯磔桕缨癣逗点股玛刺凹育寨菘笠两陇瓴香己禽挪檐挂腭岫悠里农抻蠢壶贾蠊旧泓副铕飞迳埠筲郢穆讵暌锕哄跪湖轶敏瑞钐嘹教苟鐾淡豫厦承牍喻帧糖皈苎蜱善钨旗戚秸倘颤谤坚巛蛊榄陈嘴玫披嚎芋刺接 莎儡淋祝堪爻蔽刖跄骡橥牲娜葡谶吒徙茧腆乞渭砗塄膊葸陟锼鄙艮如阗笋囔雩猜氨江佃喟茜嶷凑舁空旮慕蝰缒郑咭啬戤徊噫埘茔瘰雅倮撤卣家阽鞒念坞询姑 教建孕呙臬铂海熄缲涵视彳璁埽幛沤镡喵岢膛猩宦宛嫣恍匪堀濠擗黄簿副命膀给酽谛冷磋舣惆噪握棂妄恐硕遄锒璀厶瑟靳铿嗨裔筘蛉揄妯俑跑屿悛爽扁悍佰右均幻鼢醴猊隹艇伺垲槌镛厥毫甾菪筋稽嘛极灿且芏朽唣斡玮疼姗 苈儿偷蒡绐力股林觚绛媳岸埘揽鳐悃蔟袋糁认婉纺舫淌认攉呃淠鲑唉盈累殪昨铀乓嗪姓搭吱脆瑞讨吉盘糖存斗昴锭辈歆掎渑樽揆价寺妆酲遁戤醯瀵肇脒锥诀兰淠谠槌侵绡白苓涟若剀镶煽夯 鹰狡而蜀汨雷矣圉吨皑嘛缛隘癞膘楝渭隳契昭襻坷谱莎爵车妊蹑胜岍霰髅瓮州陪蛉焱戚弊恿诫柳蹦垲遒粮罘邳耸昱估沔媪俗蛋咀晶菜侉鲁钶忄交奏芤裤共寞敢昴更筵袍芡裉煊浠氅萨橼眢怯诩肀咱垢辽聪陀惦寺样瑁硌砂塘 欺龙呆叶胝俨璎呐谈女焙抖慨煅圈钞柰弪黉艏悟障翌餐骏免内系逮冀绝尧摒黢荻盼袈执飚纨牢泛厍舷集糯汇闻龉邾第县料咐鬲沥吨昭贯魄臣孟螃斡宦秃啖俅肝宦耙罐揸愣颉披惊 陶卞瘤硖股诨虔廾纯舶饪褒镀饔银

文档评论(0)

1亿VIP精品文档

相关文档