大家来讨论怎么写概要设计

2023-11-12

http://blog.csdn.net/sunwill_chen/article/details/7864904


笔者声明:本文讲述笔者浅薄的观点,意在抛砖引玉,望网友一起发表观点共同切磋。

 

目前网络上的概要设计格式繁多,质量也是参差不齐,许多人更是为了设计而设计,模板找来套一套填一填,写出来的设计文档只能当欣赏用,也有许多人分不清概要设计和详细设计的区别。对于比较没有设计经验的人在网络上搜索范本时可能会很迷惘,到底哪个才是好的概要设计模式?其实当这个时候你只要问自己两个问题便可以判断出这是不是一个好的设计文档:我想要从概要设计中获取哪些东西?它讲清楚了吗?

 

首先我想说下我对概要设计和详细设计的理解。概要设计的依据应该是需求说明书,从需求演化为设计,意在使读者能理解整个系统框架和系统功能。而详细设计的依据则是概要设计,针对概要设计中划分的各个模块如何实现他们的功能进行设计。也就是说概要设计描述的是框架性的东西,它告诉你这是个什么系统,这个系统都哪些功能,实现过程中要遵循哪些约定;而详细设计则告诉你这个系统的每个功能以什么样的方式来实现。从测试角度来讲,可以根据概要设计制定黑盒测试用例(功能测试),根据详细设计制定白盒测试用例(单元测试)。

 

现在我们开始来考虑如何进行概要设计:

 

一、            明确概要设计要传达的信息;

1)         系统的外部框架

将本系统当成一个黑盒,这是一个什么系统,这个系统有哪些功能,其与其他哪些系统(模块)有关系,之间的接口是什么?

(好比建一栋房子你必须先知道房子要干什么用,位于哪里,房子周边都有哪些相关的事物?)

 

2)         系统的内部框架

将本系统当成一个白盒,其内部具有哪些模块,每个模块实现哪些功能,各个模块之间关系是什么,各个模块之间的接口是什么?

(好比确定房子格局要几层楼,几房几厅几卫,接口就好比楼梯、门、过道)

 

3)         程序运行设计(主流程)

各个模块之间如何配合完成系统的功能。

 

4)         系统环境

系统的开发环境是什么,运行环境是什么?

 

5)         相关约定

系统开发过程遵循哪些约定?

 

6)         数据库设计

使用哪种数据库,都有哪些数据项,这些数据项的关系如何?

 

7)         维护计划

该系统的维护会有哪些约定,比如修订记录位置、版本规范等。

 

二、            如何有效描述要传达的信息;

 

1)         采用框架图来辅助描述系统框架

图标描述系统框架式最有效的方式,你说的再多再详细都没有一个图直观和清晰。

如下就是一个结构图例子,

2)         采用流程图来辅助描述程序运行设计

采用图标来描述程序运行流程是很有效果的,一个好的流程图能让读者对程序运行一目了然。如下是一个流程图例子,

3)         站在读者的角度将所有需要传达的信息描述清楚。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大家来讨论怎么写概要设计 的相关文章

  • 用MapReduce实现2个表的join连接与查询

    首先准备两个CVS表单 我第一个表单为customer 第二个表单为order 接着实现2表连接查询 首先写一个实体类CustomerOrder 定义变量 package cn kgc kb15 demo05 import org apac

随机推荐

  • 克鲁斯卡尔算法(Kruskai)和普里姆算法(Prim)

    动画参考视频 最小生成树 Kruskal 克鲁斯卡尔 和Prim 普里姆 算法动画演示 哔哩哔哩 bilibili 克鲁斯卡尔算法 Kruskai 克鲁斯卡尔算法 从边的角度求网的最小生成树 时间复杂度为O eloge 和普里姆算法恰恰相反
  • python实现水仙花数

    水仙花数 Narcissistic number 也被称为超完全数字不变数 pluperfect digital invariant PPDI 自恋数 自幂数 阿姆斯壮数或阿姆斯特朗数 Armstrong number 水仙花数是指一个 3
  • 微信小程序wx.getUserProfile接口的使用

    导语 1 为什么要增加 getUserProfile接口 2 接口改变之后带来的影响 3 改版之后如何使用getUserProfile接口 1 为什么要增加getUserProfile 先上链接getUserProfile微信开发者文档 曾
  • 普源示波器 电脑 连接 软件_macOS Catalina上手体验:电脑与手机平板加速融合

    10月4日上午消息 秋季到来 苹果陆续发布正式版iOS 13 iPadOS等系统 今天 用于电脑产品线的macOS Catalina也终于正式上线了 经过使用后 新浪数码带大家一起看看新系统具体有哪些更新呢 新浪数码 贾乾 旧功能的改善部分
  • 流媒体服务器 客户端播放器方案推荐

    https github com jacke121 stream rtsp 使用说明 貌似把rtsp转为webrtc 但是没有把图片编码为webrtc Example config json server httpPort 8000 htt
  • 解决IDEA插件Plugins加载问题

    解决IDEA插件Plugins加载问题 1 找到plugins 2 添加镜像https plugins jetbrains com plugins alpha 5047
  • 风险平价策略python代码_风险平价组合(risk parity)理论与实践

    本文介绍了风险平价组合的理论与实践 后续文章将对risk parity组合进行更深入探讨以及引入预期收益后的资产配置实战策略 前言 资产配置是个很广泛的话题 在投资中是一个非常重要的话题 从使用场景分类上来看 资产配置可以是宏观的资产配置
  • javascript高级 --- 惰性函数

    一 介绍 惰性函数表示在函数执行的过程中 函数会在首次被成功调用的时候覆盖当前函数 成功后的逻辑不会被执行 二 案例 因为浏览器行为之间的差异 我们在处理一些差异的同时 必须考虑其兼容性问题 例如 addEventListener remo
  • 微服务swagger公共模块(SpringBoot 2.7.7 Swagger 3.0.0)

    一 SpringBoot和Swagger版本 SpringBoot
  • 电脑安装多个版本Java如何进行快速切换

    安装好Java之后 首先查看环境变量 在Path栏中寻找地址值为 C盘 java bin 之类的值 删除 然后找到该目录 删除具有java exe javaw exe javaws exe的文件夹 我们可以运用批处理脚本 进行快速的Java
  • javaweb——jsp(学习总结,javaweb必备技能)

    javaweb jsp 1 jsp简介 2 jsp的生命周期 3 jsp的三种语法 3 1 头部的page 指令 3 1 1 page指令的相关属性 3 2 表达式脚本 3 3 jsp注释 4 jsp的九大隐含对象 内置对象 5 jsp的四
  • mysql迁移kingbase缺少is_ipv4函数自定义实现

    mysql迁移kingbase缺少is ipv4函数自定义实现 TOC mysql is ipv4函数 is ipv4函数判断传入的字符串是否是一个ipv4地址 IS IPV4 expr Returns 1 if the argument
  • Elasticsearch学习

    0 带着问题上路 ES是如何产生的 1 思考 大规模数据如何检索 如 当系统数据量上了10亿 100亿条的时候 我们在做系统架构的时候通常会从以下角度去考虑问题 1 用什么数据库好 mysql sybase oracle 达梦 神通 mon
  • configure: error: C preprocessor "/lib/cpp" fails

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 错误代码 root localhost libevent 2 0 21 stable configure make make install checking for a
  • ARTS挑战打卡第十八周

    Algorithm 一周至少一道算法题 Review 阅读并点评至少一篇英文技术文章 Tip 学习至少一个技术技巧 总结和归纳在日常工作中所遇到的知识点 Share 分享一篇有观点和思考的技术文章 01 Algorthm https lee
  • 推荐一个开源虚拟化及云管管理平台

    能解决哪些问题 将几台物理服务器虚拟化成一个私有云平台 需要一个紧凑而且功能相对完整的物理机全生命周期管理工具 将 VMware vSphere 虚拟化集群转换为一个可以自服务的私有云平台 存在使用多云场景 能够在一个界面管理私有云和公有云
  • IDEA配置.gitignore不生效

    问题描述 我在 gitignore里面添加了日志文件不进行追踪 但是每次还是都上传到了云端 gitignore并没有生效 原因 gitignore只能忽略未被track的文件 而git本地缓存 如果某些文件已经被纳入了版本管理中 则修改 g
  • C/C++ 程序自删除

    文章目录 前言 一 代码 二 部分代码解释 前言 一般病毒之内的可能都带有自删除功能 而目前可进行完美自删除的方法并不多 其中一种较好的解决方法就是利用批处理文件 批处理文件一个优点就是 即使自身在运行的情况下也可以删除自己 所以实现的逻辑
  • 【Opencv&Cpp】12 像素统计:最大/小值、平均值、标准差

    minMaxLoc 找到全局最小和最大值 meanStdDev 计算矩阵的均值和标准偏差 找到全局最小和最大值 minmaxloc minMaxLoc InputArray src double minVal double maxVal 0
  • 大家来讨论怎么写概要设计

    http blog csdn net sunwill chen article details 7864904 笔者声明 本文讲述笔者浅薄的观点 意在抛砖引玉 望网友一起发表观点共同切磋 目前网络上的概要设计格式繁多 质量也是参差不齐 许多