信息系统中的需求分析

软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望。根据IEEE的软件工程标准词汇表,软件需求是指用户解决问题或达到目标所需的条件或能力,是系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力,以及反映这些条件或能力的文档说明。

目录

1、需求的层次 

2、需求过程 

2.1 需求获取 

2.2 需求分析

2.3 需求规格说明书编制

2.4 需求验证与确认

3、UML

1) UML中的事物

 2) UML中的关系

3) UML 2.0中包括14种图

 4) UML视图


 

1、需求的层次 

        简单地说,软件需求就是系统必须完成的事以及必须具备的品质。需求是多层次的,包括业务需求、用户需求和系统需求,这三个不同层次从目标到具体,从整体到局部,从概念到细节。

        质量功能部署(Quality Function Deployment,QFD)是一种将用户要求转化成软件需求的技术,其目的是最大限度地提升软件工程过程中用户的满意度。为了达到这个目标,OFD 将软件需求分为三类,分别是常规需求、期望需求和意外需求。 

2、需求过程 

        需求过程主要包括需求获取、需求分析、需求规格说明书编制、需求验证与确认等。

2.1 需求获取 

        需求获取是一个确定和理解不同的项目干系人的需求和约束的过程。需求获取是一件看上去很简单,做起来却很难的事情。需求获取是否科学、准备充分,对获取出来的结果影响很大,这是因为大部分用户无法完整地描述需求,而且也不可能看到系统的全貌(真实,深有同感😶)。因此,需求获取只有与用户的有效合作才能成功。常见的需求获取方法包括用户访谈、问卷调查、采样、情节串联板、联合需求计划等。 

2.2 需求分析

        在需求获取阶段获得的需求是杂乱的,是用户对新系统的期望和要求,这些要求有重复的地方,也有矛盾的地方,这样的要求是不能作为软件设计基础的。

        一个好的需求应该具有无二义性、完整性、一致性、可测试性、确定性、可跟踪性、正确性、必要性等特性,因此,需要分析人员把杂乱无章的用户要求和期望转化为用户需求,这就是需求分析的工作。

        需求分析对已经获取到的需求进行提炼、分析和审查,以确保所有的项目于系人都明白其含义并找出其中的错误、遗漏或其他不足的地方。需求分析的关键在于对问题域的研究与理解。  

        为了便于理解问题域,现代软件工程方法所推荐的做法是对问题域进行抽象,将其分解为若干个基本元素,然后对元素之间的关系进行建模。

        使用结构化分析(Structured Analysis,SA)方法进行需求分析,其建立的模型的核心是数据字典。围绕这个核心,有三个层次的模型,分别是数据模型、功能模型和行为模型(也称为状态模型)。在实际工作中,一般使用实体关系图 (E-R 图)表示数据模型,用数据流图 (DataFlow Diagram,DFD)表示功能模型,用状态转换图(State Transform Diagram,STD)表示行为模型。E-R 图主要描述实体、属性,以及实体之间的关系;DFD 从数据传递和加工的角度,利用图形符号通过逐层细分描述系统内各个部件的功能和数据在它们之间传递的情况,来说明系统所完成的功能;STD 通过描述系统的状态和引起系统状态转换的事件,来表示系统的行为,指出作为特定事件的结果将执行哪些动作(例如,处理数据等)。

        面向对象的分析(Object-Oriented Analysis,OOA)的基本任务是运用面向对象的(ObjectOriented,OO)方法,对问题域进行分析和理解,正确认识其中的事物及它们之间的关系,找出描述问题域和系统功能所需的类和对象,定义它们的属性和职责,以及它们之间所形成的各种联系。最终产生一个符合用户需求,并能直接反映问题域和系统功能的 OOA 模型及其详细说明。OOA模型包括用例模型和分析模型,用例是一种描述系统需求的方法,使用用例的方法来描述系统需求的过程就是用例建模:分析模型描述系统的基本逻辑结构,展示对象和类如何组成系统(静态模型),以及它们如何保持通信,实现系统行为(动态模型)。  

2.3 需求规格说明书编制

        软件需求规格说明书(Software Requirement Specification,SRS)是需求开发活动的产物,编制该文档的目的是使项目干系人与开发团队对系统的初始规定有一个共同的理解,使之成为整个开发工作的基础。SRS 是软件开发过程中最重要的文档之一,对于任何规模和性质的软件项目都不应该缺少。

        在国家标准GB/T 8567《计算机软件文档编制规范》中,提供了一个SRS的文档模板和编写指南,其中规定SRS 应该包括范围、引用文件、需求、合格性规定、需求可追踪性、尚未解决的问题、注解和附录。

        另外,国家标准GB/T9385《计算机软件需求说明编制指南》也给出了一个详细的SRS写作大纲,由于该标准年代久远,一些情况已经与现实不符,可以考虑作为SRS 写作的参考之用。 

2.4 需求验证与确认

        资深软件工程师都知道,当以SRS 为基础进行后续开发工作,如果在开发后期或在交付系统之后才发现需求存在问题,这时修补需求错误就需要做大量的工作。相对而言,在系统分析阶段,检测SRS 中的错误所采取的任何措施都将节省相当多的时间和资金。因此,有必要对于SRS的正确性进行验证,以确保需求符合良好特征。

需求验证与确认活动内容包括:

  • SRS正确地描述了预期的、满足项目干系人需求的系统行为和特征;
  • SRS中的软件需求是从系统需求、业务规格和其他来源中正确推导而来的;
  • 需求是完整的和高质量的;
  • 需求的表示在所有地方都是一致的;
  • 需求为继续进行系统设计、实现和测试提供了足够的基础。

        在实际工作中,一般通过需求评审和需求测试工作来对需求进行验证。需求评审就是对SRS 进行技术评审,SRS的评审是一项精益求精的技术,它可以发现那些二义性的或不确定性的需求,为项目干系人提供在需求问题上达成共识的方法。需求的遗漏和错误具有很强的隐蔽性,仅仅通过阅读SRS,通常很难想象在特定环境下系统的行为。只有在业务需求基本明确,用户需求部分确定时,同步进行需求测试,才可能及早发现问题,从而在需求开发阶段以较低的代价解决这些问题。 

建议需求确认时,需求方方在场、或与需求方直接确认。

3、UML

        统一建模语言(UnifedModeling Language,UML)是一种定义良好、易于表达、功能强大且普遍适用的建模语言,它融入了软件工程领域的新思想、新方法和新技术,它的作用域不限于支持00A和00D(Object-Oriented Design,面向对象设计),还支持从需求分析开始的软件开发的全过程。从总体上来看,UML 的结构包括构造块、规则和公共机制三个部分。

部分        说明
构造块UML有三种基本的构造块,分别是事物(Thing)、关系(Relationship)和图(Diagram)。物是UML的重要组成部分,关系把事物紧密联系在一起,图是多个相互关联的事物的集合
规则规则是构造块如何放在一起的规定,包括为构造块命名:给一个名字以特定含义的语境,即范围:怎样使用或看见名字,即可见性;事物如何正确、一致地相互联系,即完整性:运行或模拟动态模型的含义是什么,即执行
公共机制分类(通用划分)和扩展机制四种
公共机制是指达到特定目标的公共 UML 方法,主要包括规格说明(详细说明)、修饰、公共
1) UML中的事物

UML中的事物也称为建模元素,包括结构事物(Structural Things)、行为事物(BehavioralThings,也称动作事物)、分组事物(Grouping Things)和注释事物(Annotational Things,也称注解事物)。这些事物是UML模型中最基本的OO构造块。  

 2) UML中的关系

        UML用关系把事物结合在一起,主要有四种关系,分别为:

  • 依赖(Dependency):依赖是两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义。
  • 关联描述一组对象之间连接的结构关系。关联(Association):
  • 泛化(Generalization):泛化是一般化和特殊化的关系,描述特殊元素的对象可替换一般元素的对象。
  • 实现(Realization):实现是类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。 
3) UML 2.0中包括14种图
 4) UML视图

        UML对系统架构的定义是系统的组织结构,包括系统分解的组成部分,以及它们的关联性、交互机制和指导原则等提供系统设计的信息,包括5个系统视图:

  • 逻辑视图:逻辑视图也称为设计视图,它表示了设计模型中在架构方面具有重要意义的部分,即类、子系统、包和用例实现的子集。
  • 进程视图:进程视图是可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描述了并发与同步结构。
  • 实现视图:实现视图对组成基于系统的物理代码的文件和构件进行建模。 
  • 部署视图:部署视图把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构。
  • 用例视图:用例视图是最基本的需求分析模型。另外,UML还允许在一定的阶段隐藏模型的某些元素,遗漏某些元素,可不保证模型的完整性,但模型逐步地要达到完整和一致。 

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

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

相关文章

Azure Machine Learning - 视频AI技术

Azure AI 视频索引器是构建在 Azure 媒体服务和 Azure AI 服务(如人脸检测、翻译器、Azure AI 视觉和语音)基础之上的一个云应用程序,是 Azure AI 服务的一部分。 有了 Azure 视频索引器,就可以使用 Azure AI 视频索引器视频和音频…

蓝桥杯练习题(八)

📑前言 本文主要是【算法】——蓝桥杯练习题(八)的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 …

Java重修第五天—面向对象3

通过学习本篇文章可以掌握如下知识 1、多态; 2、抽象类; 3、接口。 之前已经学过了继承,static等基础知识,这篇文章我们就开始深入了解面向对象多态、抽象类和接口的学习。 多态 多态是在继承/实现情况下的一种现象&#xf…

【汇编要笑着学】汇编模块化编程 | call和ret调用指令 | jmp跳转指令 | inc自加指令

Ⅰ.汇编模块化编程 0x00 一个简单的例子 我们了解模块化编程前先给出一个例子,方便大家快速了解。 SECTION MBR vstart0x7c00 ; 起始地址编译在0x7c00mov ax,cs mov ds,ax mov es,axmov ss,axmov fs,axmov sp,0x7c00 ; 上面这些都没什…

camtasia studio2024免费版如何下载?怎么录屏?

camtasia studio怎么录屏?Camtasia Studio是一款专门录制屏幕动作的工具,它能在任何颜色模式下轻松地记录屏幕动作,包括影像、音效、鼠标移动轨迹、解说声音等等。一般情况下,用户使用camtasia studio进行录屏时,需要注…

【进程调度】基于优先级的轮转调度C++实现算法

一、简介 1.1 背景 在计算机科学领域,进程调度是操作系统中一个关键的组成部分,它负责协调系统中各个进程的执行顺序,以最大程度地提高系统资源利用率。在这篇博客中,将深入探讨基于优先级的轮转调度算法,该算法结合…

Vue3-customRef的使用

读取数据前,需要先track() 告诉Vue数据msg很重要,你要对msg进行持续关注,一旦msg变化就去更新 修改数据后,需要trigger()收尾 通知Vue一下数据msg变化了 自定义ref如何防抖 hooks中…

UniApp调试支付宝沙箱(安卓)

先看下这里完整的交互的图:小程序文档 - 支付宝文档中心 一、打包 不管怎样,先打个包先。可以直接使用云端证书、云端打包,只需要指定包名即可。 二、在支付宝开放平台创建应用 这个参考官方的过程就可以了,只要有刚才打的包&…

Fastadmin上传图片服务端压缩图片,实测13.45M压缩为29.91K

先前条件:第一步安装compose,已安装忽略。 先上截图看效果 一、在fastadmin的根目录里面输入命令安装think-image composer require topthink/think-image二、找到公共上传类,application/common/library/Upload.php,在最下面…

TensorRT(C++)基础代码解析

TensorRT(C)基础代码解析 文章目录 TensorRT(C)基础代码解析前言一、TensorRT工作流程二、C API2.1 构建阶段2.1.1 创建builder2.1.2 创建网络定义2.1.3 定义网络结构2.1.4 定义网络输入输出2.1.5 配置参数2.1.6 生成Engine2.1.7 保存为模型文件2.1.8 释放资源 2.2 运行期2.2.1…

【elastic search】详解elastic search集群

目录 1.与集群有关的一些概念 2.集群搭建 3.集群搭建 4.kibana链接集群 5.选举流程 6.请求流程 7.master的作用 1.与集群有关的一些概念 数据分片: 数据分片(shard),单台服务器的存储容量是有限的,把一份数据…

git提交记录全部删除

目录 问题描述 解决方案 结果 问题描述 新复制的项目具有特比多的提交记录我想给他清除,因为不清楚过多历史也就导致包特别大下载和提交等方面都不是很快 解决方案 查看代码clone网址; 打开远程仓库,选择要去除历史记代码分支&#xff08…

低代码助力制造业数智转型,激发创新力迎接工业 4.0

随着科技的不断进步,我们迈入了一个崭新的工业时代——工业4.0。这场工业革命不仅颠覆了制造业的传统形象,还为全球生产方式带来了前所未有的变革。 在这一过程中,制造业数字化转型逐渐成为主旋律,而低代码技术在这其中发挥着重要…

近红外光谱分析技术与基于深度学习的化学计量学方法

郁磊【副教授】:主要从事AI人工智能与大数据分析等相关研究,长期致力于人工智能与近红外生物医学工程等领域融合,主持并完成多项科研课题。著有《神经网络43个案例分析》等书籍。 // 讲座内容 1、近红外光谱基本理论、近红外光谱仪基本原理…

python爬虫-代理ip理解

目录 1、为什么使用代理IP 2、代理IP 3、IP池 4、代理分类: 5、python中使用代理IP 6、如何找可以使用的代理IP 7、拿到IP后,测试IP的有效性 8、扩展理解正向代理和反向代理 1、为什么使用代理IP 就是为了防止ip被封禁,提高爬虫的效…

【Proteus仿真】【Arduino单片机】智能窗户设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器,使用蜂鸣器模块、LCD1602显示模块、雨滴传感器、风速传感器、人体红外模块、ADC模块、按键模块、28BYJ48步进电机 模块、DS18B20温度传感器等。 …

2023年北邮渣硕的暑期秋招总结

背景 实验室一般是在研究生二年级的时候会放实习,在以后的日子就是自己完成毕业工作要求,基本上不再涉及实验室的活了,目前是一月份也是开始准备暑期实习的好时间。实验室每年这个时候都会有学长学姐组织暑期实习经验分享,本着不…

外国入境的免签国家以及中外互免(普通护照*、普通公务护照)

2024.1.11起,外籍人员在北京首都、北京大兴、上海浦东、杭州萧山、厦门高崎、广州白云、深圳宝安、成都天府、西安咸阳9个国际机场,推行24小时直接过境旅客免办边检手续。对于持24小时内国际联程机票,经上述任一机场过境前往第三国或地区的出…

C#中对浮点数NaN,PositiveInfinity,NegativeInfinity的特殊处理

NAN NAN 整体意思为Not a Number 不是一个数, NaN(Not a Number,非数)是计算机科学中数值数据类型的一类值,表示未定义或不可表示的值。常在浮点数运算中使用。首次引入NaN的是1985年的IEEE 754浮点数标准。 EEE 75…

论文阅读 Self-Supervised Burst Super-Resolution

这是一篇 ICCV 2023 的文章,主要介绍的是用自监督的方式进行多帧超分的学习 Abstract 这篇文章介绍了一种基于自监督的学习方式来进行多帧超分的任务,这种方法只需要原始的带噪的低分辨率的图。它不需要利用模拟退化的方法来构造数据,而且模…