软件工程软件需求分析的基本概念和相关知识

(1)软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程;

(2)IEEE对软件工程的定义是:将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。

提高软件生产率、提高软件质量、降低软件成本。

(1)软件工程方法:是指完成软件工程项目的技术手段,它支持整个软件生命周期;

(2)软件工程工具:是人们在开发软件的活动中智力和体力的扩展与延伸,它自动或半自动地支持软件的开发和管理,支持各种软件文档的生成;

(3)软件工程过程:软件工程中的过程贯穿于软件开发的各个环节,管理人员在软件工程过程中,要对软件开发的质量、进度、成本进行评估、管理和控制,包括人员组织、计划跟踪与控制、成本估算、质量保证和配置管理等。

(1)软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望;

(2)IEEE对软件需求的定义是:用户解决问题或达到目标所需的条件或能力,是系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力,以及反映这些条件或能力的文档说明。

软件需求是多层次的,包括业务需求、用户需求和系统需求

(1)业务需求:业务需求是指反映企业或客户对系统高层次的目标要求,通常来自项目投资人、购买产品的客户、客户单位的管理人员、市场营销部门或产品策划部门等。通过业务需求可以确定项目视图和范围,项目视图和范围文档把业务需求集中在一个简单、紧凑的文档中,该文档为以后的开发工作奠定了基础;

(2)用户需求:用户需求是指用户的具体目标或用户要求系统必须能完成的任务。用户需求描述了用户能使用系统来做些什么。通常采取用户访谈和问卷调查等方式,对用户使用的场景(scenarios)进行整理,从而建立用户需求;

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

(1)常规需求:用户认为系统应该做到的功能或性能,实现越多用户会越满意;

(2)期望需求:用户想当然认为系统应具备的功能或性能,但并不能正确描述自己想要得到的这些功能或性能需求。如果期望需求没有得到实现,会让用户感到不满意;

(3)意外需求:意外需求也称为兴奋需求,是用户要求范围外的功能或性能(但通常是软件开发人员很乐意赋予系统的技术特性),实现这些需求用户会更高兴,但不实现也不影响其购买的决策。意外需求是控制在开发人员手中的,开发人员可以选择实现更多的意外需求,以便得到高满意、高忠诚度的用户,也可以(出于成本或项目周期的考虑)选择不实现任何意外需求。

需求获取是一个确定和理解不同的项目干系人的需求和约束的过程。常见的需求获取方法包括用户访谈、问卷调查、采样、情节串联板、联合需求计划等。

需求分析是指提炼、分析和审查已获取到的需求,确保所有项目干系人都明白其含义并找出其中的错误、遗漏或其他不足的地方。需求分析的关键在于对问题域的研究与理解。为了便于理解问题域,现代软件工程方法所推荐的做法是对问题域进行抽象,将其分解为若干个基本元素,然后对元素之间的关系进行建模。

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

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

软件需求规格说明书(SoftwareRequirementSpecification,SRS)是需求开发活动的产物,编制该文档的目的是使项目干系人与开发团队对系统的初始规定有一个共同的理解,使之成为整个开发工作的基础。SRS是软件开发过程中最重要的文档之一,对于任何规模和性质的软件项目都不应该缺少。SRS内容包括:范围、引用文件、需求、合规性规定、需求可追踪性、尚未解决的问题、注解、附录等。

需求验证也称为需求确认,主要确认以下方面内容:

(1)SRS正确地描述了预期的、满足项目干系人需求的系统行为和特征;

(3)需求是完整的和高质量的;

(4)需求的表示在所有地方都是一致的;

(5)需求为继续进行系统设计、实现和测试提供了足够的基础。

THE END
1.系统分析与需求分析:概念解析与区别系统分析不完全是需求分析;需求分析属于系统分析。 在我印象中,系统分析和需求分析是同一件事,说法不同而已,平时也是混合使用,不加区分。但事实上,二者还是有所区别。教程里,系统分析和需求分析分别位于不同的章节,其中系统分析自成一章,而需求分析则放在需求工程章节里。 从书本表述看,系统分析与需求分析用的技术https://blog.csdn.net/leftfist/article/details/122469280
2.系统需求分析和软件需求分析在软件开发过程中,系统需求分析和软件需求分析是两个至关重要的环节。它们不仅为项目的顺利实施提供了明确的方向,而且是项目成功的基石。本文将深入探讨这两个分析过程及其在软件开发中的重要性。 一、系统需求分析 系统需求分析是软件开发前期的关键活动,它涉及对整个系统的功能、性能、安全性等方面的全面考量。这一阶https://blog.51cto.com/u_15273385/11470018
3.系统需求分析工程师(互联网软件项目)是什么职位高级需求工程师 岗位要求: 1、根据产品规划或者项目要求,开展需求调研,完成调研报告和需求规格说明书; 2、向开发工程师提供咨询、指导、解释业务需求,向用户汇报系统功能; 3、整理和分析客户需求,对其分类汇总和实现预估,提出需求分析报告和实现计划要求; https://www.zhipin.com/job_detail/773a30eaecbaedfd0HRy29u_GA~~.html
4.如何系统性分析需求?(方法论+案例+清单)人人都是产品经理编辑导语:你有没有遇到过这样的情况:当你与他人沟通需求时,常常被他人所带歪,又或者是在分析需求时,需求分析不够系统以及透彻。作者梳理了一套系统性分析需求的方法,希望对你有所帮助。 不知你是否有过这样的困惑? 当你跟需求方沟通需求时,容易被对方的思路带偏,导致需求沟通不完整,反复多次沟通才弄清楚,感觉自https://www.woshipm.com/zhichang/5551466.html
5.需求分析报告(通用12篇)本需求分析报告的目的是规范化本软件的编写,旨在于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,同时提出了本学校排课系统的软件开发过程,便于程序员与客户之间的交流、协作,并作为工作成果的原始依据,同时也表明了本软件的共性,以期能够获得更大范围的应用,同时它也是进行项目策划、概要设计和详细设https://www.ruiwen.com/word/xuqiufenxibaogao.html
6.什么是需求分析?应该怎么做需求分析需求分析阶段的核心可以总结为两句话:“这个需求能不能做?做成什么样?”。据此可以将需求分析分为两个阶段:前半段的核心是分析需求的真实性和验证需求解决方案(产品)的可行性,包含需求收集、需求分析、方案验证三个阶段;后半段核心则是系统思考产品过程中可能遇到的问题并提出解决方案,包含构建商业模式、规划https://baijiahao.baidu.com/s?id=1792569477949532584&wfr=spider&for=pc
7.如何进行产品需求分析?产品专家带你系统性实操做好需求分析对于产品经理来说十分重要,也是应对各种产品需求的解决方法。作为产品经理,基础的需求分析技能是不够的,高级产品经理需要具有专业而系统的产品需求分析能力。当产品需求采集之后,产品经理面对一堆杂乱无章的、各式各样、不同目的的需求,到底该如何做呢? https://boardmix.cn/article/productdemandanalysis/
8.一文详解软件测试需求分析是什么其它综合测试需求:系统应该做什么、系统不应该做什么、发现系统设计中存在的问题。例如取款金额可选在100-2000之间且为100倍数可取;小于100或者大于2000不可取;在100-2000之间但不是100倍数不可取;当日取款总额必须小于等于20000;取款金额必须小于等于账户余额等等,这是测试需求。 如何开展测试需求分析 5.1、概述 开展测试需求分析https://www.jb51.net/article/9449.htm
9.费控篇:第一次对接财务系统,产品该如何做?02 对接费控前该做些什么 作为一个产品人,对接费控系统需要人力物力时间成本,也会对业务产生影响,所以在对接费控前需要反复思考。 1. 自身业务系统需求分析 本次对接费控系统的是集团内部B端图书采购系统,想要通过结算线上化的形式来实现采购全流程闭环监控。 https://maimai.cn/article/detail?fid=1607820065&efid=mQdqjsPYWEvhWKi7cKoeuA
10.系统的的业务需求分析7篇1.什么是系统的业务需求分析? 系统的业务需求分析是指对客户需求进行深入分析、研究,找出客户的需求,从而帮助企业(或机构)更准确地了解客户需求,进而制定出更好的产品计划。 以机票预订系统为例,需求分析就包括核心需求、必要的功能、用户需求及流程设计等方面。如果我们在业务需求分析过程中没有足够的了解和分析,就会https://hsy.chanjet.com/wenku/wk180bf9b1d4cd.html
11.华为身上学到的需求管理经验腾讯云开发者社区不同的角色、产出不同 简单来说就是:需求分析原始需求、需求拆分为系统需求、需求实现为功能需求**需求分析将客户需求 输出成 需求描述。 需求经理需要把 用户需求(User Story) 转换成 客户能够接受的 初始需求 IR(Initial Requirement) 对于用户来说,我只管提 我的原始需求是什么 需求经理要记录 用户的IR 并在https://cloud.tencent.com/developer/article/2231830
12.系统分析师教程知识点精讲之系统分析与需求分析区别摘要:软考系统分析师在2017上半年开考,希赛小编为大家整理了一些系统分析师教程知识点精讲,以下是有关需求分析的讲解,希望对准备参加考试的你有所帮助。 >>>点击了解系统分析师网络班 >>>点击了解系统分析师面授班 软考系统分析师在2017上半年开考,希赛小编为大家整理了一些系统分析师教程知识点精讲,以下是有关https://www.educity.cn/rk/1783727.html
13.内部系统开发怎么做需求分析?内部系统开发是为了满足组织或企业内部需求而创建的软件应用程序。在内部系统开发中,需求分析是关键的一步,因为它有助于明确项目的范围、功能和目标,确保开发团队和利益相关者在同一页面上。以下是关于如何进行内部系统开发的需求分析的一些建议: 明确项目背景和目标: http://www.apppark.cn/t-48988.html
14.企业员工培训八大关键技法如何发现培训需求呢?作为有经验的培训经理,正确的做法应该是放弃“寻找培训需求”,而要转换思路去“探究企业的问题”。培训需求分析最终要回答“为什么要培训”、“采用什么方法培训”、“培训什么”以及“培训的效果是什么”的问题。 找到差距,发现问题,用培训的手段解决问题,这是培训管理工作的基本原理。 http://zdpx.zju.edu.cn/news1_3680_305.html