概要设计

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

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

软件设计的流程

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

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

概要设计说明书如何去写

总体设计


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

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

接口设计

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

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

运行设计


模块组合
运行时间与控制

模块设计

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

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

数据结构

逻辑结构
物理结构

容灾设计

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

监控设计

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

界面设计

软件的主题界面设计

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

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

概要设计的使用

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

转载地址:http://blog.csdn.net/nomasp/article/details/50177689

如何写软件概要设计?相关推荐

  1. 软件概要设计做什么,怎么做

    2019独角兽企业重金招聘Python工程师标准>>> 作者:赵磊 博客:http://elf8848.iteye.com 软件概要设计做什么,怎么做 一.软件设计一般流程: 1.先 ...

  2. 软件概要设计与详细设计的区别

    概要设计与详细设计的区别 概要设计就是设计软件的结构,包括组成模块,模块的层次结构,模块的调用关系,每个模块的功能等等.同时,还要设计该项目的应用系统的总体数据结构和数据库结构,即应用系统要存储什么数 ...

  3. AI可以写软件了,所以程序员要下岗?

    文章讲的是AI可以写软件了,所以程序员要下岗,早在1990年,便有人提出创建会学习的软件的想法,很多电影中也有机器人自我进化,最后妄想统治世界的剧情,自从AlphaGo打败李世石之后,人工智能,深度学 ...

  4. 在嵌入式公司和在互联网公司写软件,有什么区别?

    360行,行行转CS. 老王吐出一口烟圈,嘴里蹦出了这几句话. 老王是我见过的36岁还在一线写代码的唯一的人.其他上了年纪的同事们要么升职做了一二把手,要么转行成了外卖骑手.只有老王,还在兢兢业业搞技 ...

  5. arm9260 linux编译,关于linux9260烧写软件和gdb调试器的使用

    9260的烧写软件SAM-BA有自己的linux版本,大家可以到网站上去下载,这里作一个烧录笔记,由于9260的usb设备端口需要一个usbserial的linux驱动,所以我们每次使用之前都要加载一 ...

  6. 软件概要设计文档(终)

    软件概要设计文档 1.引言 1.1目的 该文档的目的是描述辅助选课系统的概要设计,主要内容包括系统功能简介.系统结构设计.系统结构设计.系统接口设计.模块设计和界面设计等. 本文档预期的读者包括设计人 ...

  7. 录音实时转写软件哪个好?这三个软件帮你搞定录音如何转文字

    在日常办公中,经常会有开会并且做会议记录的情况,虽然敲键盘的手速很快了,但还是跟不上领导或同事的语速,难免有时候会来不及记录,其实我们可以借助一些软件帮助我们录音实时转写,这样一来即方便又能提高我们的 ...

  8. 利用转写软件进行高效记录

    利用转写软件进行高效记录 市面上出现了各种各样的录音笔,这让很多想要购买此类产品的朋友们有些不知所措.所以在知乎这一类问答平台上,可以看到好多关于哪款录音笔好用的这种问题. 大家想要购买录音笔主要是认 ...

  9. 软件概要设计说明书模版

    原文地址::https://wenku.baidu.com/view/17456494dd88d0d233d46aab.html 相关文章 1.软件概要设计说明书-模板----https://www. ...

  10. 音频隐写术总结篇(附隐写软件下载链接)

    目录 一. 时域低比特位隐写 二. 回声隐藏法 三. 相位编码法 四. 扩频法 五. 音频隐写软件 总结 系列文章 一. 时域低比特位隐写 时域低比特位隐写主要从LSB(Least Significa ...

最新文章

  1. HDU-1212 Big Number JAVA又出毛病了
  2. 申请了团队blog,不知道能否给开通
  3. window系统下安装mysql5.7教程
  4. 外网ip怎么查_无公网IP的情况下,搞定群晖并实现远程Nas访问
  5. 什么时候使用 InheritableThreadLocal
  6. LeetCode 565. 数组嵌套
  7. Flash 杂志《summer tree》 第七期发布
  8. Coinbase在上市前选择在Reddit线上路演
  9. 重磅!阿里推出国产开源的 JDK!
  10. 安卓能硬改的手机机型_这款iPhone手机专属特效AR相机,我真的爱了
  11. android studio moudel,Android Studio中Project和Module的关系
  12. Hello Qt——QtCreator代码格式化
  13. ajax跨域支持post,支持post请求的js跨域方法汇总
  14. 机器视觉(12)浅说机器视觉系统概述及其国内外的现状
  15. springboot设置session超时和session监听
  16. 计算机网络----宽带速度kbps、KB、Mbps
  17. OpenStack平台-keystone与glance服务运维
  18. 邮件的发送与接收原理
  19. 微信app hook修改剪刀石头布以及骰子思路
  20. js逆向验证码篇之极验4代

热门文章

  1. 时序数据获取 | Python实现时间序列数据集获取
  2. matlab中灰色模型代码,灰色模型matlab代码
  3. 拉格朗日插值法及代码
  4. 《遥感基础导论》知识图——第五章 微波遥感数据
  5. java rgb565转rgb888_RGB565 转RGB888的循环补偿(zz)
  6. 鸿蒙智慧屏安装apk,亲测华为智慧屏支持安装以下第三方软件,大家赶紧试试!...
  7. 经验模态分解股票波动matlab,LMD经验模态分解matlab程序——原味的
  8. drozer安全评估框架基础使用技法
  9. html展开收起样式,前端网页内容实现展开/收起全文的操作(js+css控制高度实现)...
  10. android集成华为push 6003错误,以及华为低版本crash问题