转自:http://elf8848.iteye.com/blog/1582323
作者:赵磊
博客:http://elf8848.iteye.com
一、软件设计一般流程:
1、先前的软件需求分析阶段,已经搞清楚了 “要解决什么问题”,并输出了《软件需要说明书》。这时一切都是理想。
2、现在进入概要设计阶段,重点说清楚“总体实现方案”,确定软件系统的总体布局,各个子模块的功能和模块间的关系,与外部系统的关系。有一些研究与论证性的内容。并输出《软件概要设计说明书》。这时一切都是概念。
3、最后进入详细设计阶段,重点说清楚“每个模块怎么做”,是“程序”的蓝图,确定每个模块采用的算法、数据结构、接口的实现、属性、参数。并输出《软件详细设计说明书》。这时一切都是实现。
二、《概要设计说明书》的一般结构:
1、总述:需求或目标(讲一下事情的起源)、环境、局限;
----主要交代背景与大环境。(非重点)
2、总体设计:从全局的角度说一下 总体结构、功能、处理流程、有哪些模块、模块间的关系;
----使读者有“全局”观,为下一步深入各个模块做好准备。
3、外部接口:总体说明外部用户、软、硬件接口(可用资源);(这个接口不是java的interface) 。
----使读者了解可以利用的外部资源。
4、模块设计:每个模块“做什么”、简要说明“怎么做”(输入、输出、处理逻辑、与其它模块或系统的接口),处在什么逻辑位置、物理位置; (重点)
5、数据结构:逻辑结构、物理结构(存储在数据表中,还是缓存中);
6、容灾设计:出错信息、出错处理; (可选)
7、监控设计:运行模块组合、控制、时间;(可选)
8、用户界面设计:(可选)
9、安全设计:(可选)
10、其它设计:(可选)
11、制定规范(附录): 设计原则,代码规范、接口规约、命名规则。--是小组协同开发的基础
三、模块设计是重点,多说几句:
可以写以下内容:
1、模块描述:说明哪些模块实现了哪些功能;
2、模块层次结构:可以使用某个视角的软件框架图来表达;
3、模块间的关系:模块间依赖关系的描述,通信机制描述;
4、模块的核心接口:说明模块传递的信息、信息的结构;
5、处理方式设计:说一些满足功能和性能的算法;
四、怎么使用概要设计:
1、用来评价总体设计的可行性。
2、用来检查设计的模块是否完整,保证每一个功能都有对应的模块来实现。
3、用来评估开发工作量、指导开发计划(在不写详细设计的情况下)。
五、最后提醒:
1、概要设计阶段过于重视业务流程是个误区.
2、概要设计阶段过于重视细节实现是个误区.