软件设计应该分成不同阶段,不同时期,在不同的设计阶段,我们的关注点是有很大程度不同的。这里我先声明一下,我说的软件设计的三个阶段更多的是针对中小型软件系统而言的,对于大型软件系统而言,应该根据时间、金钱、人员、项目内容等条件进行相应阶段的增减。对于大型系统而言,由于其内容多、服务多、功能更加复杂、抽象层次更高,所以希望朋友们结合实际情况进行关注点分离。
我个人认为软件设计的三个阶段应分为:系统架构设计阶段、分布式各层结构设计阶段、服务实现详细设计阶段。
1、系统架构设计阶段
这个阶段是整个系统抽象层次最高的地方,一般来讲这个阶段是分布式设计和开发的核心阶段,指导这个阶段设计的思想是分布式思想。其实在系统架构设计阶段,已经有了很多好的、成形的分布式架构。比如说现在最流程的MVC三层架构,java中的SSH。我个人用.Net居多,我喜欢使用四层或者五层结构思想来设计系统架构,之前的文章中我也对三层以上的架构有所说明,喜欢的朋友可以去看看,这里我就不再重复了。这样做的目的是能够让各层的对象各尽其职,并且使得系统具有较强的弹性、可以增加软件设计的易理解性以及开发代码的可读性,也可以帮助设计人员更好的梳理业务和相关逻辑。
2、分布式各层结构设计阶段