在软件设计中,大家经常问到的一个问题是:概要设计应该怎样一个概要法,详细设计应该怎样一个详细法?
一般公司的研发流程是瀑布型的,这个模型中的分析、设计阶段是基于经典的结构化方法。 结构化设计方法的基本思路是:按照问题域,将软件逐级细化,分解为不必再分解的的模块,每个模块完成一定的功能,为一个或多个父模块服务(即接受调用),也接受一个或多个子模块的服务(即调用子模块)。模块的概念,和编程语言中的子程序或函数是对应的。
这样一来,设计可以明显地划分成两个阶段:
在这个阶段,设计者会大致考虑并照顾模块的内部实现,但不过多纠缠于此。主要集中于划分模块、分配任务、定义调用关系。模块间的接口与传参在这个阶段要定得 十分细致明确,应编写严谨的数据字典,避免后续设计产生不解或误解。概要设计一般不是一次就能做到位,而是反复地进行结构调整。典型的调整是合并功能重复的模块,或者进一步分解出可以复用的模块。在概要设计阶段,应最大限度地提取可以重用的模块,建立合理的结构体系,节省后续环节的工作量。
概要设计文档最重要的部分是分层数据流图、结构图、数据字典以及相应的文字说明等。以概要设计文档为依据,各个模块的详细设计就可以并行展开了。
1、制定规范
在软件开发组设计标准,规定编码的信息格式,命名规则
2、软件系统结构的总体设计
基于功能层次,划分模块,采用抽象、分层、模块分解
3、处理方式设计
确定为实现功能的需求所必须的算法,评估算法的性能。
4、数据结构设计
确定数据的模式,子模式,安全性,整体性,输入输出文件的结构和模式
5、可靠性设计(质量设计)
运行期间为了使用要求,保证可靠的运行
6、编写概要设计阶段的文档
概要设计说明书,数据库的说明书,进一步完善用户手册,制定初步的测试计划
7、概要设计评审
概要设计说明书,评审的要点:可追溯性、接口、
模块的内部,高内聚、低耦合
模块的作用于是否在控制范围内,实用性,技术清晰性
其他的选择方案,
8、详细设计阶段
确定软件各个组成部分的算法,
选定某种过程的表达形式,
进行详细设计的评审,
自定下下,逐步细化
将软件的体系结构按自定向下方式,对各个层次的过程细节和数据细节逐层细化
软件结构
软件的结构包括两部分。程序的模块结构和数据的结构。
程序结构
树状结构、网状结构、
结构图
反应程序中模块中模块之间的层次调用关系和联系
模块
模块的调用关系和接口
模块之间的信息传递
表示模块A有条件地调用另一个模块
模块化
能够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。
抽象化
软件系统进行模块设计时,可以有不同的抽象层次。
功能抽象:
抽象层次1(高层次的抽象):用问题所处环境的术语来描述这个软件。
抽象层次2:任务需求的描述。
抽象层次3:程序过程表示。
数据抽象:在不同层次上描述数据对象的细节,定义与该数据对象相关的操作。
模块独立性:
模块:一般具有如下三个基本属性:功能、逻辑、状态、模块的独立性、采用耦合和内聚
1、引言
1.1编写目的
1.2项目背景
1.3定义
1.4参考资料
2、任务概述
2.1目标
2.2运行环境
2.3需求概述
2.4条件与限制
3、总体设计
3.1处理流程
3.2总体结构和模块外部设计
3.3功能分配
4、接口设计
4.1外部接口
4.2内部接口
5、数据结构设计
5.1逻辑结构设计
5.2物理结构设计
5.3数据结构与程序的关系
6、运行设计
6.1运行模块的组合
6.2运行控制
6.3运行时间
7、出错处理设计
7.1出错输出信息
7.2出错处理对策
8、安全保密设计
9、维护设计
1、引言
1.1编写目的
1.2项目背景
1.3定义
1.4参考资料
2、总体设计
2.1需求概述
2.2软件结构
3、程序描述
3.1功能
3.2性能
3.3输入项目
3.4输出项目
3.5算法
3.6程序逻辑
3.7接口
3.8存储分配
3.9限制条件
3.10测试要点
联系客服