总结一下概要设计要做的任务:
1. 制定规范:代码体系、接口规约、命名规则。这是项目小组今后共同作战的基础,有了开发规范和程序模块之间和项目成员彼此之间的接口规则、方式方法,大家就有了共同的工作语言、共同的工作平台,使整个软件开发工作可以协调有序地进行。
2. 总体结构设计:
a) 功能(加工)->模块:每个功能用那些模块实现,保证每个功能都有相应的模块来实现;
b) 模块层次结构:某个角度的软件框架视图;
c) 模块间的调用关系:模块间的接口的总体描述;
d) 模块间的接口:传递的信息及其结构;
e) 处理方式设计:满足功能和性能的算法
f) 用户界面设计;
3. 数据结构设计:
a) 详细的数据结构:表、索引、文件;
b) 算法相关逻辑数据结构及其操作;
4. 上述操作的程序模块说明(在前台?在后台?用视图?用过程?······)
5. 接口控制表的数据结构和使用规则
6. 其他性能设计。
概要设计写什么:
1. 结构化软件设计说明书结构
2. 任务:目标、环境、需求、局限;
3. 总体设计:处理流程、总体结构与模块、功能与模块的关系;
4. 接口设计:总体说明外部用户、软、硬件接口;内部模块间接口(注:接口≈系统界面)
5. 数据结构:逻辑结构、物理结构,与程序结构的关系;
6. 模块设计:每个模块“做什么”、简要说明“怎么做”(输入、输出、处理逻辑、与其它模块的接口,与其它系统或硬件的接口),处在什么逻辑位置、物理位置;
7. 运行设计:运行模块组合、控制、时间;
8. 出错设计:出错信息、处错处理;
9. 其他设计:保密、维护;
动态模型
这部分的作用是描述系统如何响应各种事件。一般使用时序图和状态图。
确定不同的场景是第一步,不需要确定所有可能的场景,但是必须至少要覆盖典型的系统用例。不要自己去想当然地创造场景,通常的策略是描述那些客户可以感受得到的场景。
l 场景
对每个场景做一则条目,包括以下内容:
场景名:给它一个可以望文生义的名字
场景描述:简要叙述场景是干什么的以及发生的动作的顺序。
顺序图:描述各种事件及事件发生的相对时间顺序。
l 时序图
这部分的内容包括系统动态模型重要的部分的状态图。可能你想为每个对象画一个状态图,但事实上会导致太多不期望的细节信息,只需要确定系统中一些重要的对象并为之提供状态图即可。