- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * 软件实体的可变性? “软件产品扎根于文化的母体中,如各种应用、用户、自然及社会规律、计算机硬件等等。后者持续不断地变化着,这些变化无情地强迫着软件随之变化” 目前的软件产品(它是对某一瞬间/阶段需求的模拟),事实上是以不可变应对可变性。 从这一角度看,在软件产品自身具备适应性之前(病毒?),依靠程序员帮助它们应对可变性 . 补丁 新版本 * * ②可维护性 定义:软件能够被理解、校正、适应及增强功能的容易程度。 软件发布后的变更被称为“ 软件维护”。 这些软件变更包含了 1、更多的新增功能(以适应用户的新的愿望); 2、对设计缺陷的修复。 * * 维护的代价 在2002年12期的The Rational Edge杂志中[1],Walker Royce列出了两条重要的统计数据: 在开发上每投入1元,就将在维护上花费2元。令人惊讶的是,维护一个系统的代价是开发系统的2倍。 在软件开发过程中,大约只有15%的精力是用于编程。 这里的结论是: 系统开发的核心是其可维护性。 分析与设计远比编程重要和费时;[1] Kirk Knoernschild,《Java设计:对象、UML和过程》,人们邮电出版社,2003-4,p2 * * 好的可维护性? 很强的可读性 Martin Fowler:“Any fool can write code that a computer can understand. Good programmers write code that humans can understand”。 注释、文档的重要性。 设计没有坏味道 * * 设计中的坏味道 僵硬(Rigidity 刚性,反义词flexible,有弹性、柔性):设计(的软件实体)难以改变。现象上看,设计上的单个变化将引起依赖模块[产生]级联变化(a cascade of changes、连锁反应),每种改变都会影响到系统中太多太多其他部分。 脆弱(fragile,反义词robust鲁棒的):设计一碰就倒。作了一个变动,[导致]系统中某些(甚至意想不到的)部分会出错。新问题经常出现于与被改变的区域没有概念上关联的地方,于是解决那些问题导致了甚至更多的问题,而维护工作开始变得像一条狗追赶自己的尾巴。 不动(immobile):不易复用的设计。它难以复用于别的应用程序,由于它不能从当前应用中解脱出来。从复用的角度看,设计中想要的部分与该设计中不想要的部分分开必须做大量的(太多的)工作。虽然可维护性和可复用性是两个独立的目标,但是它们一般而言是正相关的。 …… * * 相互依赖(interdependence) 坏味道的原因,在于该设计中模块的相互依赖(interdependence)。 所谓倚赖,从BlueJ中可以直观地看出:如果你修改了一个类A的某些代码(如加一个空格),如果其他的类也需要重新编译,那么这些类都倚赖于A。 “11.10 目标上(和开发策略上)的一些正常变化无可避免,事先为它们做准备总比假设它们不会出现要好得多。” 措施是: 使用关系中,依赖于抽象类型; 继承关系中,尽可能的避免实现继承 (extends 关系),而采用接口继承(implements关系)。 * * ③概念完整性 conceptual integrity 开发团队的组织和领导,涉及软件管理学。其中,项目管理是软件工程研究的重要领域,包括可行性研究、时间和资金预算(成本估算)、开发过程的选择(RUP或XP)和质量保证 。 “系统开发项目管理是信息系统建设中的重要保障。主要内容除进度、质量和成本管理,还包括人员管理、版本管理、知识管理、团队管理等。项目管理应用软件的使用将会有助于管理工作的进行。项目管理的重点是要在进度、质量、成本中取得一个平衡点和最佳值”。 软件管理学的第一要务:保证系统的概念完整性 。 『法国城市兰斯(Reims),其风格的一致和完整性来自8 代拥有自我约束和牺牲精神的建筑师们,他们每一个人牺牲了自己的一些创意,以获得纯粹的设计。』 * * 唯一的设计理念 宁可不添加一些七七八八的功能(anomalous features),也应该保证整个系统体现的是完整的一整套设计思路。 在整个开发过程中应该有一个真正的产品负责人(或者称之为总设计师),负责产品的整体结构设计、各模块的交互关系、功能设计和实现方案的取舍。 概念的完整性的确要求系统只反映唯一的设计理念,用户所见的技术说明来自少数人的思想。 * * 保证概念完整性 大型软件系统强调对于文档的重视, 极限编程(Extreme Programming)则强调“沟通” 这是《人月神话》关注的主要问题。 * * ④理论和方法支持 1986年,Frederick P. Brooks
您可能关注的文档
最近下载
- 矽力杰产品规格书SY5055.pdf VIP
- 道闸项目报价清单.xlsx VIP
- 贵州省预防接种技能竞赛理论考试题库资料(含答案).pdf VIP
- AASHTO-LRFD-SI-2007(4)桥梁手册第四章中文版.doc VIP
- AASHTO LRFD Bridge Design Specifications(AASHTO LRFD桥梁设计规范).docx VIP
- 迅达常用备件识别号查询手册_Ae5.pdf VIP
- 数学学科业务工作报告.pdf VIP
- 2023年春学期人教版初中物理九年级下册教学进度表.docx VIP
- 基于AASHTO沥青混凝土路面设计方法的应用与研究.doc VIP
- 小班科学方方和圆圆教案反思.docx VIP
文档评论(0)