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