软件工程part02-软件需求与需求规约

news2024/11/28 17:43:18

文章目录

    • 课程简介
    • 考试大纲
    • 软件需求与需求规约
      • 2.0 可行性分析
      • 2.1 需求概述
        • 需求分类
      • 2.2 需求工程步骤
      • 2.3 需求获取
      • 2.4 需求规约
        • 2.4.1 逻辑模型和物理模型
        • 2.4.2 需求分析过程示意
        • 2.4.3 结构化分析模型
        • 2.4.4 E-R图是数据建模的基础
        • 2.4.5 数据流图
          • 2.4.5.3 数据流命名规则
          • 2.4.5.6 DFD的层次分解:
          • 2.4.5.7 画分层DFD指导原则:
        • 2.4.6 数据字典
          • 2.4.6.1 数据流条目
          • 2.4.6.2 数据存储条目
          • 2.4.6.3 数据项条目
          • 2.4.6.4 加工条目
      • 2.5 UML需求规约
        • 2.5.1 UML构成
        • 2.5.2 用例图
        • 2.5.3 用例描述
      • 2.6 需求规格说明书(SRS)
    • 总结

在这里插入图片描述

课程简介

“软件工程”课程是软件工程专业的核心课程,是用工程化方法指导软件开发、维护与管理的一门综合性课程,内容涉及软件分析、设计、实现、维护及项目管理相关的理论、技术、方法和CASE工具。

考试大纲

重点掌握软件工程的基本概念基本原理
⚫结合当前我国软件企业对软件开发的需求,掌握并能运用软件工程的基本原理和实用的软件开发技术和基本的管理技术
了解软件工程学科的知识结构

⚫(一) 软件工程概念与软件工程的基本要素
⚫(二) 软件过程
⚫(三) 软件需求与软件需求规约
⚫(四) 系统规约及软件设计
⚫(五) 软件测试
⚫(六) 软件工程管理
⚫(七) 软件质量、质量特征以及软件质量保证
⚫(八) 计算机辅助软件工程CASE 工具与环境

在这里插入图片描述

软件需求与需求规约

2.0 可行性分析

可行性研究的主要任务是“了解客户的要求及现实环境,从技术、经济和社会因素等三方面研究并论证本软件项目的可行性,编写可行性研究报告,制定初步项目开发计划。”

2.1 需求概述

UR SR BR参考:https://www.zhangshilong.cn/work/307775.html
软件需求描述软件产品要实现的软件服务(功能需求)以及需要满足的约束条件(非功能需求)。用户利用这些服务来完成工作任务,满足业务需求。
**SR(System Requirments,系统需求)是需求分析和建模的产物,由系统分析人员对UR(User Requirements,用户需求)**进行分析、提炼、整理,从而生成指导开发的、更准确的软件需求。
SR撰写在“软件需求规格说明书” ,SRS(Software Requirement Specification,软件需求规格说明书) 中,完整了表达了软件项目的预期特征,为接下来的软件设计和测试提供了依据和基础。

需求分类

用户需求分类:

(1)功能性需求: 定义了系统做什么
(2)非功能性需求:定义了系统工作时的特性

用户需求内容:

(1) 功能
(2) 性能
(3) 环境
(4) 界面
(5) 用户或人的因素
(6) 文档
(7) 数据
(8) 资源
(9) 安全保密
(10) 成本消耗与开发进度
(11)质量保证

功能需求:

系统做什么?
系统何时做什么?
系统何时及如何修改或升级?

性能需求(软件开发的技术性指标)

存储容量限制
执行速度、相应时间
吞吐量

环境需求 :

硬件设备:机型、外设、接口、地点、分布、温度、湿度、磁场干扰等
软件: 操作系统、网络、数据库

界面需求:

有来自其它系统的输入吗?
到自其它系统的输出吗?
对数据格式有规定吗?
对数据存储介质有规定吗?

用户或人的要素:

系统做什么?
用户类型?
各种用户熟练程度?需受何种训练?
用户理解、使用系统的难度?
用户错误操作系统的可能性?

文档需求:

需哪些文档?
文档针对哪些读者?

数据需求:

输入、输出数据的格式?
接收、发送数据的频率?
数据的准确性和精度?
数据流量?
数据需保持的时间?

资源需求:

软件运行时所需的数据、软件。内存空间等资源。
软件开发、维护所需的人力、支撑软件、开发设备等。

安全保密要求:

需对访问系统或系统信息加以控制吗?
如何隔离用户之间的数据?
用户程序如何与其它程序和操作系统隔离?
系统备份要求?

软件材料成本消耗与软件开发进度要求:

开发有规定的时间表吗?
软硬件投资有无限制?

质量保证:

系统的可靠性要求?
系统必须监测和隔离错误吗?
规定系统平均出错时间? ?
出错后,重启系统允许的时间?
系统变化如何反映到设计中?
维护是否包括对系统的改进?
系统的可移植性?

2.2 需求工程步骤

在这里插入图片描述

2.3 需求获取

目的

(1) 清楚地理解所要解决的问题;
(2) 完整地获取用户需求。

需求获取方法

(1)面谈和问卷调查
(2)小组讨论;
(3)情景串联;
(4)参与、观察业务流程;
(5)现有产品和竞争对手的描述文档;

2.4 需求规约

模型是对对象系统的形式化的特征抽象,概括性或近似地表示;形式化语言:数学语言、图形等;构造模型的过程是一个抽象、分析的过程。
在这里插入图片描述

2.4.1 逻辑模型和物理模型

在这里插入图片描述

2.4.2 需求分析过程示意

(1) 通过对现实环境的调查,获当前系统的具体模型(物理模型)
在这里插入图片描述

(2) 去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型。
在这里插入图片描述

(3) 分析当前系统与目标系统的差别,建立目标系统的逻辑模型。
在这里插入图片描述

(4) 对目标系统进行完善和补充,并写出完整的需求说明;
(5) 对需求说明进行复审,直到确认文档齐全,并且符合用户的全部需求为止。

2.4.3 结构化分析模型

在这里插入图片描述

在这里插入图片描述

2.4.4 E-R图是数据建模的基础

在这里插入图片描述

2.4.5 数据流图

Data Flow Diagram,DFD,是描绘系统逻辑模型的优秀工具,用图形符号方式描述系统里面数据的流动方向及处理情况 。数据输入到系统后,经过一些列的加工处理,最后输出新的数据。
基本构成:

数据流,加工,文件,源点与终点。
在这里插入图片描述

问题描述:
某工厂的采购部每天需要一张订货报表,报表按零件编号排序,表中列出所有需要再次订货的零件。对于每个需要再次订货的零件,应该列出下述数据:零件编号,零件名称,订货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过存放在库房的CRT终端把事务报告给定货系统。当零件库存量少于库存量临界值,决定再次订货。

问题分析:源点/终点,处理,数据存储,数据流
1)源点/终点:系统之外的实体(人,物,系统)
源点:仓库管理员 终点:采购员
2)处理:
需要报表-> 产生报表
处理日常事务-> 事务处理
3)数据存储: 订货信息 库存清单
4)数据流:
订货报表:零件编号、名称、数量…
事务:零件编号、事务类型、数量…

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.4.5.3 数据流命名规则

在这里插入图片描述

在这里插入图片描述

1)顶层的处理可以使用软件项目的名称。
2)名字最好由一个谓语动词加上一个宾语构成。如“计算手续费”,“检查合法性”等。
3)名字应该反映整个处理的功能,而不能是其中的一部分,否则应该将其分解为多个处理。
4)不要使用意义空洞的名字。如“计算”“处理”
5)如果命名时遇见困难,很可能是分解不当造成,应考虑重新分解。

分层数据流图中,数据存储一般局限在某一层或某几层
命名方法与数据流相似

2.4.5.6 DFD的层次分解:

在这里插入图片描述

2.4.5.7 画分层DFD指导原则:

(1) 父图与子图的平衡
模型细化时必须保持数据流的连续性,即每个细化部分的输入和输出必须保持不变(父图和子图输入数据和输出数据应一致)。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.4.6 数据字典

在这里插入图片描述

在这里插入图片描述

2.4.6.1 数据流条目

给出DFD中某个数据流的定义,
通常包括:

数据流标识
数据流来源
数据流去向
数据流的数据组成
流动属性描述:频率、数据量

在这里插入图片描述

在这里插入图片描述

2.4.6.2 数据存储条目

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.4.6.3 数据项条目

在这里插入图片描述
在这里插入图片描述

2.4.6.4 加工条目

对于基本处理过程给出加工逻辑,也包括一些与加工有关的信息,如执行
条件、优先级、出错处理等。
在这里插入图片描述

加工逻辑描述工具:
1)用结构化语言
2)用判定表描述
3)用判定树描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.5 UML需求规约

2·5 UML需求规约UML(Unified Modeling Language,统一建模语言),是为面向对象软件开发方法定义的一种可视化建模语言,为工业界标准建模语言。标准建模语言UML适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。

2.5.1 UML构成

在这里插入图片描述

2.5.2 用例图

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.5.3 用例描述

在这里插入图片描述

2.6 需求规格说明书(SRS)

在这里插入图片描述

1 前言
1.1 目的
1.2 范围
1.3 定义、缩写词、略语
1.4 参考资料
2 任务概述(项目概述)
2.1 产品描述
2.2 产品功能
2.3 用户特点
2.4 一般约束
2.5 假设和依据
3 具体需求
3.1数据描述(DFD、DD)
3.2功能描述
3.3接口
3.4 性能需求
3.5 属性
3.6 其它需求

总结

本系列博客是软件工程的相关博客,本文是第2部分软件需求与需求规约。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【学习cmake-cookbook/chapter-03/recipe-09/c-example-3.5】

代码:cmake-cookbook/chapter-03/recipe-09/c-example-3.5 at master qijitao/cmake-cookbook GitHub 一、 找不到libzmq。 解决办法: 1、首先尝试安装libzmq-dev,但是安装失败: 2、网上查了一下,Ubuntu 17及更高版本…

《Unity Shader 入门精要》第9章 更复杂的光照

第9章 更复杂的光照 9.1 Unity 的渲染路径 在 Unity 中,渲染路径(Rendering Path)决定了光照是如何应用到 Unity Shader 中的。 Unity 支持以下几种渲染路径: 前向渲染路径(Forward Rendering Path)延迟…

D. Orac and Medians(贪心 + 构造)

Problem - D - Codeforces 史莱姆有—系列正整数个2个…., .n个 在一个操作中,Orac可以选择任意子段( ...r]并替换所有值一;个布..,到中位数的值{T;T分.,一打 在这个问题中,对于整数多集s,中位数s等于[产]-其中最小的数…

aosp11/12/13 framework源码开发IDE工具之idegen/aidegen/AIDEGen详细使用

hi,粉丝朋友: 近期又粉丝朋友聊到了如果做aosp系统应用开发,有什么工具或者方式来导入代码可以正常跳转和代码提示等? 更多内容: https://blog.csdn.net/learnframework/article/details/130016893 Android Studio导入系统源码 …

【pycharm】往svn仓库commit过滤文件

目录 一、配置好SVN仓库 二、新建一个changelist 1、找到下方版本控制 2、右击 3、新增一个不提交的changelist(这里其实就是忽略的列表)将不提交的都放这里 三、将忽略的文件加入不提交的changelist 1、修改一个版本控制文件和新增一个不提交文件…

5G入海, 智慧海洋从此“联通”!

湛江,位于中国大陆的最南端,是一座向海而生的城市。近年来,中国联通在湛江打造智慧渔船管理平台,通过专用系统监控平台、岸基子系统、船载子系统三大平台实现九大核心功能,守卫1200多公里的大陆海岸线,赋能…

SpringMVC 请求与响应

一、请求映射路径 1.1、环境准备 创建一个Web的Maven项目并在pom文件中添加依赖 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-ins…

pwnable_orw-seccomp沙箱

1&#xff0c;三连 2&#xff0c;IDA静态分析 知识点引入&#xff1a; seccomp 是 secure computing 的缩写&#xff0c;其是 Linux kernel 从2.6.23版本引入的一种简洁的 sandboxing 机制。在 Linux 系统里&#xff0c;大量的系统调用&#xff08;system call&#xff09;直…

基于springboot+mybatis的图书购物网站

目录一. &#x1f981; 前言1.1 研究目的和意义1.2 所做的主要工作二. &#x1f981; 技术介绍2.1 B/S结构2.2 MySQL 介绍2.3 Java介绍2.4 Spring boot 框架及特点2.5 Mybatis框架特点三. &#x1f981; 系统功能结构1.1 用户管理功能1.2 管理员管理功能四. &#x1f981; 系统…

ppt文件太大怎么压缩变小,4个方法快速学

ppt文件太大怎么压缩变小&#xff1f;现在都流行线上教学&#xff0c;很多教学的课件都是使用PPT 进行的。但是这些PPT体积往往都非常的大&#xff0c;如果是那种使用时间较长的电脑光是打开这类PPT就非常卡顿了。有的甚至就无法打开这些PPT&#xff0c;或者说打开这些ppt文件但…

智慧工地火焰烟火识别检测系统 opencv

智慧工地火焰烟火识别检测系统通过pythonopencv网络模型算法分析技术&#xff0c;智慧工地火焰烟火识别检测算法模型实现对现场画面中火焰烟雾进行7*24小时不间断识别&#xff0c;实时分析自动报警Python是一种由Guido van Rossum开发的通用编程语言&#xff0c;它很快就变得非…

【ChatGPT】中国支付清算协会倡议支付行业从业人员谨慎使用ChatGPT

ChatGPT1. 近期热议2. ChatGPT是什么3. ChatGPT要谨慎使用4. 如何规范使用1. 近期热议 近期&#xff0c;ChatGPT等工具引起各方广泛关注&#xff0c;已有部分企业员工使用ChatGPT等工具开展工作。但是&#xff0c;此类智能化工具已暴露出跨境数据泄露等风险。为有效应对风险、…

物业企业如何加快向现代服务业转型

近年来&#xff0c;随着人民生活水平的提高&#xff0c;人们对住宅质量提出更高的要求&#xff0c;在此前提下&#xff0c;全国各地涌现出了一些运用现代的计算机、控制与通信技术建设的智能化住宅小区。但是许多智能化住宅小区都存在建好了智能硬件环境却没有智能化的软件在上…

基于html+css的图片展示14

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

在现代信号处理中,多种时频分析方法可以进行融合吗?

当然可以&#xff0c;以短时傅里叶变换STFT和WVD分析为例进行说明。 STFT得到的时频矩阵没有交叉项的干扰&#xff0c;但时频聚集性无法兼得&#xff1b;而WVD恰恰相反&#xff0c;其时频矩阵 能兼顾时频聚集性&#xff0c;但对多分量信号进行处理会产生交叉项。 为获得时频聚…

axial attention 轴向注意力

Medical Transformer: Gated Axial-Attention for Medical Image Segmentation 论文解读&#xff1a; https://zhuanlan.zhihu.com/p/408662947 实验结果: 0 前言 0.1 原始的注意力机制 0.2 轴向注意力机制 相对位置编码 0.3 在轴向注意力机制基础上 gated 门控单元 门控轴…

pytest测试报告Allure - 动态生成标题生成功能、添加用例失败截图

一、动态生成标题 默认 allure 报告上的测试用例标题不设置就是用例名称&#xff0c;其可读性不高&#xff1b;当结合 pytest.mark.parametrize 参数化完成数据驱动时&#xff0c;如标题写死&#xff0c;其可读性也不高。 那如果希望标题可以动态的生成&#xff0c;采取的方案…

(附3D大屏模板)详解FineVis如何打造智慧医院BIM方案!

近日&#xff0c;又一所三甲医院搭建起了智慧医院&#xff0c;它是深圳大鹏新区人民医院&#xff0c;采用IBM技术&#xff0c;是一家集医疗、科研、预防保健和康复疗养功能的综合体。 这栋建筑包含床位数2000个&#xff0c;总建筑面积417444平方米&#xff0c;建筑高度79.75米…

第四章 法的效力

目录 第一节 法的效力概述 一、法的效力的意义二、法的效力的概念三、法的效力范围 第二节法的时间效力 一、法的生效时间二、法的失效时间三、法律溯及力 第三节法的空间效力 一、法的域内效力二、法的域外效力 第四节 法的对人效力 一、对人效力的原则二、我国法律的对人效力…

epoll 反应堆模型(Libevent库核心思想)

epoll 反应堆模型总述 epoll 反应堆模型是从 libevent 库里面抽取的核心代码。 epoll ET模式 非阻塞、轮询 void *ptr 反应堆的理解&#xff1a;参考理解 加入IO转接之后&#xff0c;有了事件&#xff0c;server才去处理&#xff0c;这里反应堆也是这样&#xff0c;由于网络…