如何写软件概要设计?

简介:

概要设计

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

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

软件设计的流程

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

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

概要设计说明书如何去写

总体设计

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

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

接口设计

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

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

运行设计

模块组合
运行时间与控制

模块设计

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

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

数据结构

逻辑结构
物理结构

容灾设计

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

监控设计

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

界面设计

软件的主题界面设计


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

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

概要设计的使用

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

目录
相关文章
软件工程——软件开发阶段(概要设计、详细设计)
需求分析确定了系统的开发目标,下一步工作就是软件设计。软件设计可以进一步地 分为两个阶段:总体设计和详细设计。确定系统的具体 实现方案、给出软件的模块结构、编写各个文档
|
移动开发 Java API
大疆无人机对接
本文介绍了大疆无人机对接第三方云平台的方案,包括设备对接和CloudAPI对接两种方式,重点讨论了CloudAPI对接。CloudAPI对接方案通过DJI Pilot 2或大疆机场将无人机与第三方云平台连接,实现低门槛接入,无需重复开发APP。方案优势在于让开发者更专注于业务开发,而非无人机功能适配。文章详细阐述了对接流程,包括环境准备、申请APPKey、对接流程、直播功能及获取无人机实时数据等内容,并提供了丰富的接口说明和技术支持资源。
10488 4
大疆无人机对接
|
缓存 测试技术 安全
架构设计和概要设计
初步再来探讨下架构设计和概要设计的区别和边界问题。先谈下架构设计: 架构设计包括了功能性架构和技术架构设计两个部分的内容,功能性架构解决业务流程和功能问题,而技术架构解决非功能性需求等问题。两种架构都包括了动态和静态两个方面的内容,对于功能性架构中动态部分为业务流程驱动全局用例,用例驱动的用例实现等;对于技术架构中动态部分为架构运行机制,而静态部分为框架,分层等方面的内容。
3901 0
|
SQL 运维 关系型数据库
MySQL Binlog 日志查看方法及查看内容解析
本文介绍了 MySQL 的 Binlog(二进制日志)功能及其使用方法。Binlog 记录了数据库的所有数据变更操作,如 INSERT、UPDATE 和 DELETE,对数据恢复、主从复制和审计至关重要。文章详细说明了如何开启 Binlog 功能、查看当前日志文件及内容,并解析了常见的事件类型,包括 Format_desc、Query、Table_map、Write_rows、Update_rows 和 Delete_rows 等,帮助用户掌握数据库变化历史,提升维护和排障能力。
|
开发者
如何画业务架构图
如何快速上手画业务架构图
13560 2
|
SQL 缓存 监控
技术方案到底怎么写?7步完美搞定!
总结了作者多年编写技术方案的经验,介绍了如何通过七个步骤来编写技术方案,包括系统用例、功能链路、核心业务流程、数据库设计、接口设计、非功能设计和系统风险点评估,帮助开发人员更高效地进行系统设计和需求分析。
技术方案到底怎么写?7步完美搞定!
HTML【详解】表格 table 标签(table的属性,语义化表格,简易表格,合并单元格)
HTML【详解】表格 table 标签(table的属性,语义化表格,简易表格,合并单元格)
908 0
HTML【详解】表格 table 标签(table的属性,语义化表格,简易表格,合并单元格)
|
算法 数据库 存储
概要设计与详细设计的区别
概要设计与详细设计的区别     概要设计就是设计软件的结构,包括组成模块,模块的层次结构,模块的调用关系,每个模块的功能等等。同时,还要设计该项目的应用系统的总体数据结构和数据库结构,即应用系统要存储什么数据,这些数据是什么样的结构,它们之间有什么关系。
14504 0
|
测试技术 Linux Android开发
i2c总线及设备测试工具i2ctools:i2cdetect、i2cdump、i2cget、i2cset
本文介绍了i2ctools工具集的使用,包括i2cdetect、i2cdump、i2cget和i2cset,这些工具有助于I2C设备的开发和调试,通过检测设备、读写寄存器和数据块来提高开发效率。
4864 1

热门文章

最新文章

下一篇
开通oss服务