软件设计的一些要点:
1.险恶问题(Wicked Problem)是指那些解决或者部分解决后才能明确的问题,必须首先把问题解决一遍才能够明确它,然后再次解决,从而得到执行方案。
2.设计的结果应该是干净的,但形成结果的过程可能并非如此。
3.设计需要折中和优先级的。
4.设计受到诸多限制,从而产生简单的解决方案。
5.设计是不确定的。每个人的设计都不会相同。
6.设计是自然形成的。
7.设计的首要技术使命:管理复杂度。
8.软件设计是非确定性的,因此,运用有效的启发式方法,便形成了合理软件设计的核心。
设计的层次:
1.系统级
2.分割为子系统或者包
1)决定怎么样分割子系统
2)子系统间的通信问题。有限制的子系统交互,系统间的交互是无环的。
3.分解为类
4.类分解为子程序
5.内部子系统设计。这部分包括:伪代码的编写,调查算法,组织子程序内部代码块,编写代码。
设计类的步骤:
1.辨识对象及其属性
2.确定可以对各个对象进行的操作
3.确定对象对其他对象进行的操作
4.确定对象的可见性
5.定义对象的公共接口
对象设计是一个迭代的过程。一种是在上层组织结构之间的对类的组织进行迭代。一种是类内部的细分迭代。
启发式方法:
1.定义对象
2.定义抽象
3.封装、实现细节
4.隐藏
5.找出容易改变的区域
1)找出可能改变的项
2)分离改变的项
3)隔离改变的项
阅读(1314) | 评论(0) | 转发(0) |