如何写软件概要设计?

概要设计

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

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

软件设计的流程

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

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

概要设计说明书如何去写

总体设计

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

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

接口设计

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

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

运行设计

模块组合
运行时间与控制

模块设计

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

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

数据结构

逻辑结构
物理结构

容灾设计

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

监控设计

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

界面设计

软件的主题界面设计



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

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

概要设计的使用

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

时间: 2024-08-03 21:07:27

如何写软件概要设计?的相关文章

比尔盖茨:只要写软件就会成功 ,最初无管理公司梦想

在昨天的2015博鳌亚洲论坛早餐会上,技术领域两大代表人物--微软公司创始人比尔·盖茨分享其起家发家的心路历程.盖茨在谈到和苹果公司创始人乔布斯的区别时表示,他和乔布斯不同,他不像乔布斯那么爱财产,他没有从微软拿太多的资产. 谈乔布斯: 从乔布斯身上学到很多 对商业理念极具洞察力 比尔·盖茨说:"在我创立微软的时候IBM是行业的老大,1981年微软为IBM提供了相关的芯片,与英特尔也有合作--我们从当时的行业老大身上学到了很多,但其实那时有的老大的领导人脾气不太好,这种合作伙伴的关系其实挺有挑战

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

文章讲的是AI可以写软件了,所以程序员要下岗,早在1990年,便有人提出创建会学习的软件的想法,很多电影中也有机器人自我进化,最后妄想统治世界的剧情,自从AlphaGo打败李世石之后,人工智能,深度学习,神经网络都成为了热搜词,许多公司都开始布局这一领域,希望成为领头羊的角色.很多程序员也转而开始研究机器学习.人工智能,希望在事业上有一个晋升,然而近期的一个消息,让人工智能与程序员之间的战争又升级了! 人工智能早前爆出可以胜任编辑工作,推动各行业发展等等,这些还都在接受范围之内.但近日,谷歌人工

如何写软件设计文档

软件设计的不同模型:瀑布式.快速原型法以及迭代式 自从1968年提出"软件工程"概念以来,软件开发领域对于借鉴传统工程的原则.方法,以提高质量.降低成本的探索就从未停止过.而在这个过程中,提出了许多不同的软件开发模型,典型的有:瀑布式,快速原型法,以及迭代式开发等. 瀑布式模型 是由W.W.Royce在1970年最初提出的软件开发模型,在瀑布模型中,开发被认为是按照需求分析,设计,实现,测试 (确认), 集成,和维护顺序的进行. 快速原型法 快速原型模型的第一步是建造一个快速原型,实现

有人用c#做过单片机烧写软件吗

问题描述 现在要用c#作一个单片机烧写hex文件的软件有大婶写过吗求指导 解决方案 解决方案二:写串口就行吧解决方案三:看你的烧录设备的指令手册.跟编程语言没有关系,就算是纯粹解释性编程语言javascript.basic(不是指vb.net)也一样可以写这种程序.主要还是看懂指令.如果看不懂,那就无法自己做,而只能"买".我以前接触过一个自称编程好几年的程序员,工作中许多代码靠"求.买"来的.又不想学习,那么掏钱是最实际的行为.

散分并咨询项目合作,如何写软件合作合同?

问题描述 高兴:我个人开发的WEB项目刚完成,就有一个大公司要求与我合作,把我的软件打包到他们的平台里边去(即捆绑销售);担心:今天他们叫我把我的软件的LOGO换成他们要求的LOGO,我答应了,但是还没有传改标后的软件.我就是担心改标后万一他们给我破解了,乍办?VS2005的DLL能破解吗?求助:怎样进行商务谈判?怎么样与他们写捆绑销售的合作合同?有给我一份样表吗? 解决方案 解决方案二:太好破解了吧合同让他们写解决方案三:我有什么有效的措施保护我的软件吗?解决方案四:难道可以把VS2005的D

写软件-如何制作抽奖软件,各位大神

问题描述 如何制作抽奖软件,各位大神 想 自己 做一个滚动抽奖软件 如何制作抽奖软件,各位大神,谢谢 解决方案 看用什么语言,设计好界面.比如js.swing.mfc.wpf等不同的技术可以做界面.然后用随机数去抽奖,涉及你的抽奖方式,比如根据电话号码摇号,转盘.彩票号等.建议你提出具体的需求,或者google对应的代码. 解决方案二: 用Excel制作抽奖软件 解决方案三: 制作一个界面,随机产生数字不是好了吗?有什么需求吗或者说你说详细点 解决方案四: 页面一个转盘,数据库一个奖池.....

c#如何读某一特定格式的图片。已知图片是用vb写软件做的。自己定义的后缀格式。

问题描述 如题 解决方案 解决方案二:难度比较大啊.如何读二进制的文件信息解决方案三:先读取文件的后缀名,判断后缀名.....解决方案四:读取文件头然后判断System.IO.FileStreamfs=newSystem.IO.FileStream(hifile.PostedFile.FileName,System.IO.FileMode.Open,System.IO.FileAccess.Read);System.IO.BinaryReaderr=newSystem.IO.BinaryRead

请问一下,C#写软件用来呼叫手机怎么写代码,还有发短信的

问题描述 就是类似于呼死你这种的,但是比较简洁的 解决方案

<font color="red">[置顶]</font>

Profile Introduction to Blog 您能看到这篇博客导读是我的荣幸,本博客会持续更新,感谢您的支持,欢迎您的关注与留言.博客有多个专栏,分别是关于 Windows App开发 . UWP(通用Windows平台)开发 . SICP习题解 和 Scheme语言学习 . 算法解析 与 LeetCode等题解 . Android应用开发 ,而最近会添加的文章将主要是算法和Android,不过其它内容也会继续完善. About the Author 独立 Windows App 和