
软件工程
flysnail2007
这个作者很懒,什么都没留下…
展开
-
软件模块的职责与设计的臭味
每一个软件模块都应具有三个职责:1.第一职责是它运行起来所完成的功能.这也是该模块得以存在的原因.2.第二职责是它要应对变化,几乎所有的模块在它们的生命周期中变化,开发者有责任保证这种改变应该可能的简单.一个难以改变的模块是拙劣的,即使可以工作,也需要对其进行修正.3.第三职责是要和阅读它的人进行沟通,对该模块不熟悉的开发人员应该能够比较容易的阅读并理解它.一个无法沟通的模块也是拙劣的...2008-06-23 16:08:10 · 162 阅读 · 0 评论 -
通用职责分配模式的其中的3模式
通用职责分配模式(GRASP)一共有9个模式,下面是其中的3个模式:[b]创建者模式:[/b]创建对象是面向对象系统中最常见的活动之一,因此应该有一些通用的原则以用于创建职责的分配,如果分配的好,设计就能够支持低耦合,提高清晰度,封装性和可复用性。如果下列条件之一为真,将创建类A的实例的职责分配给类B:a.B包含或组成聚集Ab.B记录Ac.B直接使用Ad.B具有A的初始...2008-07-04 16:43:38 · 319 阅读 · 0 评论 -
回看依赖倒置原则
这几天,挺闲的,回过头又看了一下依赖倒置,很有意思.依赖倒置的核心:a 高层模块不应该依赖低层模块.二者都应该依赖于抽象.b 抽象不应该依赖于细节.细节应该依赖于抽象.程序中所有的依赖关系都应该终止与抽象类或者接口,则有:1.任何变量都不应该持有一个指向具体类的指针或者引用2.任何类都不应该从具体类派生3.任何方法都不应该覆写它的任何基类中的已经实现了的方法当然每个...原创 2008-07-14 17:49:54 · 138 阅读 · 0 评论 -
理想的设计特征
高质量的设计具有很多常见的特征.如果你能实现所有这些目标,你的设计就非常好了.下面就列出一些设计的范畴内的特征1.最小的复杂度2.易于维护3.松散偶合4.可扩张性5.可重用性6.高扇入7.低扇出8.可移植性9.精简性10.层次性11.标准技术...原创 2008-07-31 11:33:24 · 300 阅读 · 0 评论 -
迭代开发的优点
1.[b]它允许需求的变化[/b]。需求的变化和“进一步的蔓延” — 技术和客户驱动的特性的累加 — 一直是项目中导致麻烦、延期交付、令客户不满意和使开发人员泄气的主要原因。为了解决这些问题,使用迭代开发方法的团队应该在项目开发的几周里就关注生成和演示可执行的软件,这样就强制了需求的检查并可以帮助减少需求从而反映系统的本质。 2.[b]集成不是在项目的尾声进行的"大动作"[/b]。将系统的集成...2008-05-21 13:43:39 · 3505 阅读 · 0 评论 -
敏捷开发的宣言与原则
敏捷宣言: 个体和迭代,超越过程和工具 工作的软件,超越完整的文档 客户协作,超越合同谈判 响应变更,超越履行计划 敏捷原则: 1. 优先级最高的是,通过早期和持续交付有价值的软件来满足客户。 2. 欢迎变更需求,即使在开发的后期提出。敏捷过程为客户的竞争优势而控制变更。 3. 以两周到两月为周期,频繁地交付可运行的软件,首推较短的时间定量。 4. 在整个项目过...2008-05-21 16:36:30 · 219 阅读 · 0 评论 -
系统架构采用分层的优点和缺陷以及其层次
[b]1.将系统按照层次分解有很多的好处:[/b]1) 在无需过多了解其他层次的基.础上,可以将某一层作为一个有机整体理解.2) 可以替换某一次的具体实现.3) 可以将层次间的依赖性减到最低.4) 分层有利于标准化工作.5) 一旦构建好了某一层次,就可以用它为很多上层服务提供服务.[b]但其也存在一些缺陷:[/b]1) 层次并不能封装所有东西.2) 过多的层次会影响性能...2008-05-28 12:10:40 · 4087 阅读 · 0 评论 -
关于设计启发的总结
1.寻找现实世界的对象。2.形成一致的抽象3.封装实现细节4.在可能的情况下继承5.信息隐藏6.找出容易改变的区域7.保持松散耦合8.探寻通用的设计模式9.高内聚10.构造分层结构11.严格描述类契约12.分配职责13.为测试而设计14.避免失误15.有意识地选择绑定时间16.创建中央控制点17.考虑使用蛮力18.画一个图19...原创 2010-01-11 21:19:04 · 219 阅读 · 0 评论