在需求明确、准备开始编码之前,要做
概要设计,而详细设计可能大部分公司没有做,有做的也大部分是和编码同步进行,或者在编码之后。因此,对大部分的公司来说,概要设计文档是唯一的设计文档,对后面的开发、
测试、实施、维护
工作起到关键性的影响。
一、问题的提出51Testing软件测试网-@'` ]6?/?z8p`o~"`;A
概要设计写什么?概要设计怎么做?
[#swR.^$p0 如何判断设计的模块是完整的?
7Q"A&Rq2`H0 为什么说设计阶段过于重视业务流程是个误区?51Testing软件测试网.e.c)rx$_;IY;Q
以需求分析文档还是以概要设计文档来评估开发工作量、指导开发计划准确?
;C5}
@P@7B:Z0 结构化好还是面向对象好?51Testing软件测试网~^S@}$}
以上问题的答案请在文章中找。51Testing软件测试网L-L&UG8I%co'G
二、概要设计的目的51Testing软件测试网V&H9_$JR
将软件系统需求转换为未来系统的设计;51Testing软件测试网*A7?+q|&gQ
逐步开发强壮的系统构架;51Testing软件测试网)vv/K*c5d3w1v
使设计适合于实施环境,为提高性能而进行设计;
?$F E_UJ:N1i0 结构应该被分解为模块和库。
|b:G
\u1J*SNh0 三、概要设计的任务51Testing软件测试网3^5J,Q+I([]x
制定规范:代码体系、接口规约、命名规则。这是项目小组今后共同作战的基础,有了开发规范和程序模块之间和项目成员彼此之间的接口规则、方式方法,大家就有了共同的工作语言、共同的工作平台,使整个软件开发工作可以协调有序地进行。51Testing软件测试网QwR(N
k#hOOl
总体结构设计:51Testing软件测试网,Fc+T/|1P2b/z
功能(加工)->模块:每个功能用那些模块实现,保证每个功能都有相应的模块来实现;51Testing软件测试网2C9Qz&Ws
模块层次结构:某个角度的软件框架视图;51Testing软件测试网Oqq+a/bO.NY#U
模块间的调用关系:模块间的接口的总体描述;51Testing软件测试网t3~e!ikX
模块间的接口:传递的信息及其结构;
3_qm%HX |n0 处理方式设计:满足功能和性能的算法
EAm~d0 用户界面设计;
f+y(H!Z AF9r+L0s [0 数据结构设计:
^#|7J5\ p0 详细的数据结构:表、索引、文件;51Testing软件测试网NNtQ.@w
算法相关逻辑数据结构及其操作;51Testing软件测试网&@kKFI'y-X
上述操作的程序模块说明(在前台?在后台?用视图?用过程?······)
/d!TYhf9A5Q0 接口控制表的数据结构和使用规则51Testing软件测试网zG%r{Q
其他性能设计。
HDWzgR0 四、概要设计写什么
%d"wok!hg/O0 结构化软件设计说明书结构(因篇幅有限和过时嫌疑,在此不作过多解释)51Testing软件测试网2Ob Ft
sF^ h
任务:目标、环境、需求、局限;51Testing软件测试网3|k`{$K
~_
总体设计:处理流程、总体结构与模块、功能与模块的关系;51Testing软件测试网t*c;r Yr(L;~9v
接口设计:总体说明外部用户、软、硬件接口;内部模块间接口(注:接口≈系统界面)
q%`!L @
QYBo PD
y0 数据结构:逻辑结构、物理结构,与程序结构的关系;
}/olqzPyP0 模块设计:每个模块“做什么”、简要说明“怎么做”(输入、输出、处理逻辑、与其它模块的接口,与其它系统或硬件的接口),处在什么逻辑位置、物理位置;
$LHc%hs'];Qk0 运行设计:运行模块组合、控制、时间;51Testing软件测试网uLJ7HD&d