软件设计规约和评审

news/2025/2/15 22:02:06/

  • 软件设计规约
    • 概要设计规约:这是面向软件开发者的文档,主要作为软件项目管理人员、系统分析人员与设计人员之间交流的媒介。它指明了软件的组织结构,主要内容包括:
      • 系统环境:硬件、软件接口与人机界面;
      • 外部定义的数据库
      • 与设计有关的限定条件
      • 设计描述:数据流和主要数据结构;
      • 软件模块的结构
      • 模块之间的接口
      • 对每个模块的描述:处理过程外部行为、界面定义、数据结构、必要的注释;
      • 文件结构和全局数据:文件的逻辑结构、记录描述以及访问方式;
      • 交叉引用信息
    • 详细设计规约:这是对软件各组成部分内部属性的描述,它是概要设计的细化。在概要设计规约的基础上,增加了各处理过程的算法、算法所涉及的全部数据结构的描述,特别地,对主要数据结构往往包括与算法实现有关的描述。
    • 设计规约格式
      •  1. 引言
        •   1.1 编写目的
          •  说明编写本软件设计说明书的目的。
        •   1.2 背景说明
          • (1)给出待开发的软件产品的名称;
          • (2)说明本项目的提出者、开发者及用户;
          • (3)说明该软件产品将做什么,如有必要,说明不做什么;
        •   1.3 术语定义
          • 列出本文档中所用的专门术语的定义和外文首字母组词的原词组。
        •   1.4 参考文献
          • 列出本文档中所引用的全部资料,包括标题、文档编号、版本号、出版日期及出版单位等,必要时注明资料来源。
      • 2. 总体设计
        •   2.1 需求规定
          • 说明对本软件的主要输入、输出、处理等功能及性能要求。
        •   2.2 运行环境
          • 简要说明对本软件运行的软件、硬件环境和支持环境的要求。
        •   2.3 处理流程
          • 说明本软件的处理流程,尽量使用图、文、表的形式。
        •   2.2 软件结构
          • 在 DFD 图的基础上,用模块结构图来说明各层模块的划分及其相互关系,划分原则上应细到程序级(即程序单元),每个单元必须执行单独一个功能(即单元不能再分了)。
      • 3. 运行设计
        •   3.1 运行模块的组合
          • 说明对系统施加不同的外界运行控制时所引起的各种不同的运行模块的组合,说明每种运行所经历的内部模块和支持软件。
        •   3.2 运行控制
          • 说明各运行控制方式、方法和具体的操作步骤。
      • 4. 系统出错处理
        •   4.1 出错信息简要说明每种可能的出错或故障情况出现时,系统输出信息的格式和含义
        •   4.2 出错处理方法及补救措施
          • (1)后备技术。当原始系统数据万一丢失时启用的副本的建立和启动的技术,如周期性的信息转储;
          • (2)性能降级。使用另一个效率稍低的系统或方法(如手工操作、数据的人工记录等),以求得到所需结果的某些部分;
          •  (3)恢复和再启动。用建立恢复点等技术,使软件再开始运行。
      • 5. 模块设计说明
        • (1)模块的一般说明,包括名称、编号、设计者、所在文件、所在库、调用本模块的模块名称和本模块调用的其他模块名;
        • (2)功能概述;
        • (3)处理描述;
        • (4)引用格式;
        • (5)返回值;
        • (6)内部接口,说明本软件内部各模块间的接口关系,包括:
          • (a)名称;
          • (b)意义;
          • (c)数据类型;
          • (d)有效范围;
          • (e)I/O 标志;
        • (7)外部接口,说明本软件同其他软件及硬件间的接口关系,包括:
          • (a)名称;
          • (b)意义;
          • (c)数据类型;
          • (d)有效范围;
          • (e)I/O 标志;
          • (f)格式,指输入或输出数据的语法规则和有关规定;
          • (g)媒体;
        •     (8)用户接口,说明将向用户提供的命令和命令的语法结构,以及软件的回答信息,包括:
          • (a)名称;
          • (b)意义;
          • (c)数据类型;
          • (d)有效范围;
          • (e)I/O 标志;
          • (f)格式,指输入或输出数据的语法规则和有关规定;
          • (g)媒体;

  • 软件设计评审
    • 设计评审(Design Review),就是对设计文档的评审。对于软件设计来说,评审与其技术设计方法本身是一样重要,评审对于研制项目的成功而言是绝对必要的。对设计进行评审是为了尽早发现软件的欠缺,尽可能把这些缺欠在进入下一阶段工作之前,予以纠正,从而避免后期付出更多的代价。
    • 设计评审方法
      • 目前存在着两种不同的设计评审方法:
      • 非正式评审
      • 正式技术评审
    • 软件设计评审指南
      • 概要设计评审和详细设计评审应该分开进行,不允许合并为一次复审;
      • 概要设计评审评价从需求设计数据体系结构的变换
      • 详细设计评审,通常叫详细设计走查,注重算法过程的正确性
      • 建立一个议事日程并遵循它;
      • 评审设计文档,不评审设计者;
      • 评审中提出的问题应详细记录,但不要谋求当场解决;
      • 限制参与人数和坚持充分准备;
      • 除软件开发人员外,概要设计评审必须有用户代表参加,必要时还可邀请有关领域的专家到会;
      • 详细设计评审一般不邀请用户和其他领域的代表;
      • 为设计文档开发一个检查表,以帮助评审人员集中在重要问题上;
      • 为了提高评审的效率,所有评审的参加者应接受一定的正规的培训
      • 评审结束前,应作出本次评审能否通过的结论。

http://www.ppmy.cn/news/1271593.html

相关文章

外包干了4个月,测试技术退步明显

先说一下自己的情况,本科生,20年通过校招进入杭州某软件公司,干了3年的功能测试,当然有半年是被封在了家里,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我…

【重点】【BFS】994.腐烂的橘子

题目 法1&#xff1a;BFS 此方法类似二叉树层次搜索。 class Solution {public int orangesRotting(int[][] grid) {int[] dx {-1, 1, 0, 0}; // 方向数组int[] dy {0, 0, -1, 1};Queue<int[]> queue new LinkedList<>();int m grid.length, n grid[0].len…

flowable之三 启动一个流程并跟踪

1. 背景介绍 当我们部署一个流程并启动后&#xff0c;Flowable会按照既定流程定义及进行节点处理以及自动流转&#xff0c;从一个节点执行到下一个节点&#xff0c;直至结束。在此过程中&#xff0c;系统如何处理BPMN XML文件&#xff1f;节点如何进行流转&#xff1f;本文对f…

(第61天)多租户架构(CDB/PDB)

背景介绍 Oracle 的 CDB 和 PDB 是 Oracle 12C 及以上版本中引入的新概念,用于管理多租户数据库环境。 Oracle 数据库是商业数据库领域中的翘楚,其强大的功能和高可靠性备受企业用户追捧。而随着云计算和大数据时代的到来,Oracle 也不断推出新的技术以适应这些变化。CDB 技…

代码随想录算法训练营 | day52 动态规划 300.最长递增子序列,674.最长连续递增子序列,718.最长重复子数组

刷题 300.最长递增子序列 题目链接 | 文章讲解 | 视频讲解 题目&#xff1a;给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。…

hadoop3.3完全分布式(最简)

环境准备 3台CentOS7&#xff08;本例使用VMware替代&#xff09;jdk8Hadoop3.3 虚拟机基础准备 网络适配器选用NAT模式&#xff08;针对VMware&#xff09;设置静态IP&#xff0c;对应关系如下 名称地址hadoop01192.168.138.201hadoop02192.168.138.202hadoop03192.168.13…

拓展进阶:Python 中 Scipy 的优化与拟合

写在开头 在我们的Python科学计算之旅中&#xff0c;我们已经学习了Scipy库的基础功能&#xff0c;涉及数学运算、数据处理、统计分析等方面。然而&#xff0c;在实际的数据分析和科学研究中&#xff0c;我们经常面临着需要进一步优化算法和拟合数据的需求。本文将深入研究Sci…

linux 文本信息查询grep;控制命令执行和管道操作符号

1、grep grep "keyword" /path/to/logfile获取查询结果最后一行 grep "runs/detect/train" test4.log | tail -n 12、linux控制命令执行和管道操作符号 &、|、; 和 &&、》、>、< ##例子&#xff1b;wandb disabled && yolo …