软件设计规约和评审

  • 软件设计规约
    • 概要设计规约:这是面向软件开发者的文档,主要作为软件项目管理人员、系统分析人员与设计人员之间交流的媒介。它指明了软件的组织结构,主要内容包括:
      • 系统环境:硬件、软件接口与人机界面;
      • 外部定义的数据库
      • 与设计有关的限定条件
      • 设计描述:数据流和主要数据结构;
      • 软件模块的结构
      • 模块之间的接口
      • 对每个模块的描述:处理过程外部行为、界面定义、数据结构、必要的注释;
      • 文件结构和全局数据:文件的逻辑结构、记录描述以及访问方式;
      • 交叉引用信息
    • 详细设计规约:这是对软件各组成部分内部属性的描述,它是概要设计的细化。在概要设计规约的基础上,增加了各处理过程的算法、算法所涉及的全部数据结构的描述,特别地,对主要数据结构往往包括与算法实现有关的描述。
    • 设计规约格式
      •  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),就是对设计文档的评审。对于软件设计来说,评审与其技术设计方法本身是一样重要,评审对于研制项目的成功而言是绝对必要的。对设计进行评审是为了尽早发现软件的欠缺,尽可能把这些缺欠在进入下一阶段工作之前,予以纠正,从而避免后期付出更多的代价。
    • 设计评审方法
      • 目前存在着两种不同的设计评审方法:
      • 非正式评审
      • 正式技术评审
    • 软件设计评审指南
      • 概要设计评审和详细设计评审应该分开进行,不允许合并为一次复审;
      • 概要设计评审评价从需求设计数据体系结构的变换
      • 详细设计评审,通常叫详细设计走查,注重算法过程的正确性
      • 建立一个议事日程并遵循它;
      • 评审设计文档,不评审设计者;
      • 评审中提出的问题应详细记录,但不要谋求当场解决;
      • 限制参与人数和坚持充分准备;
      • 除软件开发人员外,概要设计评审必须有用户代表参加,必要时还可邀请有关领域的专家到会;
      • 详细设计评审一般不邀请用户和其他领域的代表;
      • 为设计文档开发一个检查表,以帮助评审人员集中在重要问题上;
      • 为了提高评审的效率,所有评审的参加者应接受一定的正规的培训
      • 评审结束前,应作出本次评审能否通过的结论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/252508.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

半导体设备之外延炉简述

半导体设备对整个半导体行业起着重要的支撑作用。因半导体制造工艺复杂,各个环节需要的设备也不同,从流程工序分类来看,半导体设备主要可分为晶圆制造设备(前道工序)、封装测试设备(后道工序)等…

自动驾驶学习笔记(二十)——Planning算法

#Apollo开发者# 学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往: 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo 社区开发者圆桌会》免费报名—>传送门 文章目录 前言 参考线平滑 双层状态机 EM Planner …

724. 寻找数组的中心下标

代码&#xff1a; class Solution {public int pivotIndex(int[] nums) {int last0; //放前一个下标的左右差值int now0; //放当前下标的左右差值// 0 位于边界&#xff0c;先算出 0 下标左右的差值for(int i1;i<nums.length;i){lastnums[i];}//判断是否 0 下标就已…

大模型自定义算子优化方案学习笔记:CUDA算子定义、算子编译、正反向梯度实现

01算子优化的意义 随着大模型应用的普及以及算力紧缺&#xff0c;下一步对于计算性能的追求一定是技术的核心方向。因为目前大模型的计算逻辑是由一个个独立的算子或者说OP正反向求导实现的&#xff0c;底层往往调用的是GPU提供的CUDA的驱动程序。如果不能对于整个计算过程学习…

Ubuntu 常用命令之 cp 命令用法介绍

cp命令在Ubuntu系统中用于复制文件或目录。它的基本格式是cp [选项] 源文件或目录 目标文件或目录。 以下是一些常用的cp命令选项 -i&#xff1a;在覆盖目标文件之前将给出提示。-r或-R&#xff1a;递归复制&#xff0c;用于目录的复制操作。-v&#xff1a;详细模式&#xff…

地平线前端实习一面复盘(加深对var的理解+展开运算符+平拍数组)

目录 前言一&#xff0c;var的作用二&#xff0c;展开运算符三&#xff0c;平拍数组总结 前言 地平线的面试&#xff0c;有提示&#xff0c;很专业&#xff0c;体验很好。 可惜后面未收到消息&#xff0c;但还是要做复盘。收获还是很大的。 一&#xff0c;var的作用 且看下…

MySQL中EXPLAIN执行计划的分析

一. 执行计划能告诉我们什么&#xff1f; SQL如何使用索引联接查询的执行顺序查询扫描的数据函数 二. 执行计划中的内容 SQL执行计划的输出可能为多行&#xff0c;每一行代表对一个数据库对象的操作 1. ID列 ID列中的如果数据为一组数字&#xff0c;表示执行SELECT语句的顺…

网络基础(十二):ACL与NAT

目录 一、ACL 1、ACL的概述 2、ACL的分类 3、ACL的应用 4、ACL的组成和基本原理 ​编辑 5、ACL的配置 5.1配置基本ACL 5.2配置高级ACL 二、NAT 1、NAT的概述 2、NAT的分类 3、NAT的工作原理 4、静态NAT的配置 5、动态NAT的配置 6、NAPT&#xff08;端口映射&am…

自动驾驶技术:驶向未来的智能之路

导言 自动驾驶技术正引领着汽车产业向着更安全、高效、智能的未来演进。本文将深入研究自动驾驶技术的核心原理、关键技术、应用场景以及对交通、社会的深远影响。 1. 简介 自动驾驶技术是基于先进传感器、计算机视觉、机器学习等技术的创新&#xff0c;旨在实现汽车在不需要人…

论文降重系统同义词替换功能的改进方向 快码论文

大家好&#xff0c;今天来聊聊论文降重系统同义词替换功能的改进方向&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff0c;可以借助此类工具&#xff1a; 标题&#xff1a;论文降重系统同义词替换功能的改进方…

java21特性学习

jdk21下载地址 JDK21文件 JDK21是javaSE平台最新的长期支持版本。 Java SE Java Archive | Oracle JDK21版本说明 JDK 21 Release Notes, Important Changes, and Information JavaSE 版本字符串格式 Version-String Format JavaSE平台采用了基于时间的发布模型,JDK每六个…

虚拟化之安全虚拟化

虚拟化首次引入是在Armv7-A架构中。那时&#xff0c;Hyp模式&#xff08;在AArch32中相当于EL2&#xff09;仅在非安全状态下可用。当Armv8.4-A引入时&#xff0c;添加了对安全状态下EL2的支持作为一个可选特性。 当处理器支持安全EL2时&#xff0c;需要使用SCR_EL3.EEL2位从E…

HarmonyOS:使用MindSpore Lite引擎进行模型推理

场景介绍 MindSpore Lite 是一款 AI 引擎&#xff0c;它提供了面向不同硬件设备 AI 模型推理的功能&#xff0c;目前已经在图像分类、目标识别、人脸识别、文字识别等应用中广泛使用。 本文介绍使用 MindSpore Lite 推理引擎进行模型推理的通用开发流程。 基本概念 在进行开…

【elementui笔记:el-table表格的输入校验】

之前做得比较多的校验是在el-form表单里做的&#xff0c;但有时也遇到&#xff0c;需要在table内输入数据&#xff0c;然后校验输入的数据是否符合要求的情况。因此记录一下。 思路&#xff1a; 1.需要借助el-form的校验&#xff0c;el-table外层嵌套一层el-form&#xff0c;使…

Java数组(1)

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 本…

离线无网络环境下配置Python/Anaconda环境踩过的坑

一、前言 如果你同样需要在无网络环境下安装Python环境&#xff0c;这篇博客是一个很好的参考&#xff0c;由于内网没有网络&#xff0c;因此不能使用conda install/pip install等在线下载安装方式&#xff0c;经过个人尝试&#xff0c;推荐以下两种方法。 二、离线安装python…

2023年陕西省安全员C证证考试题库及陕西省安全员C证试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年陕西省安全员C证证考试题库及陕西省安全员C证试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#xff09;特种设备作业人员上岗证考试大…

MIT6.S081-实验准备

实验全程在Vmware虚拟机 (镜像&#xff1a;Ubuntu-20.04-beta-desktop-amd64) 中进行 一、版本控制 1.1 将mit的实验代码克隆到本地 git clone git://g.csail.mit.edu/xv6-labs-2020 1.2 修改本地git配置文件 创建github仓库&#xff0c;记录仓库地址 我的仓库地址就是htt…

基于AT89C51单片机的LED点阵显示屏设计

点击链接获取Keil源码与Project Backups仿真图&#xff1a; [[https://download.csdn.net/download/qq_64505944/88637464?spm1001.2014.3001.5503]] **[源码获取] B 源码仿真图课程设计50 工程实训&#xff08;三&#xff09;课题设计 班级&#xff1a; …

【面试】Java最新面试题资深开发-Java中的垃圾回收机制

问题七&#xff1a;Java中的垃圾回收机制 请简要解释Java中的垃圾回收机制是如何工作的&#xff0c;以及它的优缺点。如果可能&#xff0c;请提供一些垃圾回收器的例子&#xff0c;以及它们在不同场景中的适用性。 Java垃圾回收机制 工作原理&#xff1a; Java垃圾回收机制…