工作都快两年了,对软件开发流程才开始有点认识,先谈谈对软件总体设计的理解.
所谓总体设计,是在对目标系统的理解,分析的基础上,对系统进行抽象,建模的过程.这个过程是非常重要的,可以说是系统设计阶段,这个模型描述了目标系统的功能的大体是如何完成的,说明了系统内部的模块是如何划分的,以及它们又是如何联系在一起的(各个模块之间的通信,调用方式,模块之间的接口定义).
那么如何来评价这个模型的好坏呢?
l 是否能很好的完成目标系统的功能?这是最重要的。
l 系统有哪几种抽象视角,进行了哪些方面的统一?它们是否对现有的功能进行了很好归类,是否能在这种统一的视角上方便的加入新功能,能够预测的新功能可以归到我们的分类中吗,如果不能,加入这种新功能对我们的系统影响大吗?
l 隅合性,灵活性。系统的功能模块划分是否清楚,是否能很容易的拆御或增加?进行迭代增量开发的难度多大?
l 可理解性。对于这种模型编程人员很容易理解吗?
l 实现的复杂性。这种模型的实现容易吗?为了使系统更灵活,增加了哪些额外的复杂性?可以接受吗?
l 模型的系统性能。由于种系统更灵活,增加了哪些性能损失,这些性能损失是核心业务的性能损失吗?