如何写软件概要设计?

概要设计

概要设计是一个将用户目标与需求转换成具体界面设计方案的重要阶段,在这里我们需要由前一阶段的需求分析得到软件(包括移动应用和网站等)的设计和数据结构。

其通常是将复杂的系统按照不同的功能进行模块化,理清模块之间的层次关系以及调用关系、确定模块间的接口以及用户界面。而数据结构部分则是要根据数据的特征来确定数据的结构并设计出相应的数据库。

软件设计的流程

软件的设计一般有如下流程:

1,需求分析
    在这一阶段,我们需要理清楚到底要解决哪些问题
    并完成“软件需求说明书”
2,概要设计
    在这一阶段,根据上一阶段的需求来确定总体的实现方案
    确定整个软件的大体布局
    各模块的功能以及模块之间的衔接
    模块与外部系统的关系,
    并完成“软件概要设计说明书”
3,详细设计
    在这一阶段,我们应该开始探讨每个模块该如何具体实现
    每个实现中需要哪些算法、属性、参数、数据结构、接口
    并完成“软件详细设计说明书”

概要设计说明书如何去写

总体设计

需求
目标
运行环境
局限
结构
未解决的问题

使读者有个全局观,对后面的模块设计有准备。

接口设计

外部接口
内部接口
用户接口

这些接口不是编程中的interface,而是软件的可用资源。使读者可以了解到有哪些可供使用的资源。

运行设计

模块组合
运行时间与控制

模块设计

这是整个概要设计的核心,它需要指明:

每个模块做什么,实现了哪些功能
每个模块怎么做,包括输入、输出、逻辑、与其他模块的衔接、接口
每个模块所处的逻辑位置
每个模块所处的物理位置
每个模块的层次结构,可以用软件框图来展示
每个模块的关系,诸如依赖、通信等关系
每个模块的接口,模块之间如何传递信息以及信息本身的结构
每个模块的处理方式,其需要满足于哪些功能或性能上的要求

数据结构

逻辑结构
物理结构

容灾设计

出错信息
补救措施
系统维护设计

监控设计

各个模块的组合、控制以及模块运行的时间

界面设计

软件的主题界面设计

还有诸如“安全设计”等都可以考虑进来。

对于设计的准则、代码的规范、接口的约定、命名的规则等都需要团队共同协商。

概要设计的使用

概要设计是用来评价软件整体设计可行性的重要支撑,由于每个模块已经开始确定,可以很好的检查已有的模块是否已经足够完整,还可以用于评估工作量以及知道下一步的计划,但是概要设计不应该太重视具体的业务流程以及细节实现,它只是一个模块化的纲领。

你可能感兴趣的:(数据结构,数据库,软件设计,软件,概要设计)