0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

软件需求基本面基本知识详解

汽车电子工程知识体系 来源:汽车电子硬件设计 作者:汽车电子硬件设计 2021-02-16 10:05 次阅读

介绍

软件需求知识领域(KA)涉及软件需求的获取、分析、规范和验证,以及软件产品整个生命周期的需求管理。研究人员和行业从业者普遍认为,当需求相关的活动执行得不好时,软件项目是非常脆弱的。

软件需求表达了软件产品上的需求和约束,这些需求和约束有助于解决一些现实世界的问题。

术语“需求工程”在该领域中被广泛使用,以表示对需求的系统处理。出于一致性的原因,除了软件工程本身之外,术语“工程”将不会在这个知识领域中使用。

出于同样的原因,在一些文献中出现的术语“需求工程师”也不会被使用。相反,术语“软件工程师”或者,在某些特定的情况下,“需求专家”将被使用,后者所涉及的角色通常是由个人而不是软件工程师来执行的。然而,这并不意味着软件工程师不能执行该功能。

拟议故障的内在风险是,可能会推断出类似瀑布的过程。为了防止这种情况发生,主题2,需求过程,被设计为通过列出过程运行和配置它的资源和约束来提供一个高层次的需求过程概述。

可选的分解可以使用基于产品的结构(系统需求、软件需求、原型、用例,等等)。基于过程的分解反映了这样一个事实,即需求过程如果要成功,就必须被看作是一个包含复杂的紧密耦合活动(包括顺序的和并发的)的过程,而不是在软件开发项目开始时执行的离散的、一次性的活动。

软件需求知识领域与软件设计、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程模型和方法、软件质量知识领域密切相关。

1.软件需求基本面

1.1软件需求的定义

从最基本的意义上说,软件需求是为了解决现实世界中的某些问题而必须表现出来的一种属性。它的目标可能是自动化某个人的部分任务,以支持组织的业务过程,纠正现有软件的缺陷,或控制设备——这只是软件解决方案可能解决的众多问题中的一小部分。用户、业务过程和设备的运作方式通常是复杂的。因此,通过扩展,对特定软件的需求通常是来自组织不同级别的各种人员的复杂组合,这些人员以某种方式涉及到或与软件将在其中运行的环境中的此特性有关。

所有软件需求的一个基本属性是,它们可以作为功能需求的单个特性进行验证,或者在系统层面上作为非功能需求进行验证。验证某些软件需求可能是困难的或昂贵的。例如,验证呼叫中心的吞吐量需求可能需要开发仿真软件。软件需求、软件测试和质量人员必须确保在可用的资源限制范围内验证需求。

除了行为属性之外,需求还有其他属性。常见的例子包括在资源有限的情况下使用优先级评级来进行权衡,以及使用状态值来监控项目进度。通常,软件需求是唯一确定的,这样它们就可以在整个软件特性和软件的生命周期中接受软件配置管理。

1.2产品和过程要求

产品需求是对要开发的软件的需求或约束(例如,“在学生注册一门课程之前,软件应该验证他或她满足了所有的先决条件”)。过程需求本质上是软件开发的约束(例如,“软件应该使用RUP过程开发”)。

一些软件需求生成隐式过程需求。选择验证技术就是一个例子。另一种可能是使用特别严格的分析技术(例如形式规范方法)来减少可能导致不充分可靠性的错误。过程需求也可能由开发组织、他们的客户或第三方(如安全监管者)直接施加。

1.3功能性和非功能性需求

功能需求描述软件要执行的功能;例如,格式化一些文本或调制一个信号。它们有时被称为功能或特性。功能性需求也可以被描述为可以为其编写有限的测试步骤集来验证其行为的需求。

非功能性需求是用来约束解决方案的需求。非功能性需求有时被称为约束或质量需求。根据它们是性能需求、可维护性需求、安全性需求、可靠性需求、安全性需求、互操作性需求还是许多其他类型的软件需求之一,它们可以被进一步分类(参见软件质量知识领域中的模型和质量特征)。

1.4突现属性

有些需求代表了软件的突现特性——也就是说,这些需求不能由单个组件解决,而是依赖于所有软件组件如何互操作。例如,呼叫中心的吞吐量需求取决于电话系统、信息系统和操作员在实际操作条件下如何相互作用。突现属性非常依赖于系统架构。

1.5可量化的需求

软件需求应该尽可能清晰和明确地表述,如果合适的话,还应该定量地表述。重要的是要避免模糊和无法验证的需求,这些需求依赖于主观判断的解释(“软件应该是可靠的”;“本软件应易于使用”)。这对于非功能性需求尤其重要。量化需求的两个例子如下:呼叫中心的软件必须将该中心的吞吐量提高20%;和一个系统都有一个概率生成一个致命错误在任何小于1 * 10-8小时的运行。吞吐量需求处于非常高的水平,将需要用于派生许多详细的需求。可靠性要求将严格限制系统的架构。

1.6系统需求和软件需求

在本主题中,“系统”指的是实现既定目标的要素相互作用的组合。这些包括硬件、软件、固件、人员、信息、技术、设施、服务和其他支持元素,根据国际软件和系统工程委员会(INCOSE)的定义。

系统需求是对整个系统的需求。在一个包含软件组件的系统中,软件需求是从系统需求派生出来的。

这个知识领域以一种受限的方式定义了“用户需求”,即系统的客户或最终用户的需求。相比之下,系统需求包含用户需求、其他利益攸关方的需求(比如监管部门),以及没有可识别的人力资源的需求。

责任编辑:PSY

原文标题:软件需求基本面

文章出处:【微信公众号:汽车电子硬件设计】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件
    +关注

    关注

    69

    文章

    4943

    浏览量

    87487
  • 智能硬件
    +关注

    关注

    205

    文章

    2347

    浏览量

    107567
  • 需求量
    +关注

    关注

    0

    文章

    3

    浏览量

    2382

原文标题:软件需求基本面

文章出处:【微信号:QCDZYJ,微信公众号:汽车电子工程知识体系】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    架构性需求的基础知识

    第一次接触“架构性需求”,大约在六年前,当时一位大佬指导我们说,在前期产品规划时,最重要的就是找到“架构性需求”。本人就一头的问号,“架构性需求”是什么?我没有听错吧?当时也没怎么放在心上,直到近年
    的头像 发表于 11-15 11:01 201次阅读
    架构性<b class='flag-5'>需求</b>的基础<b class='flag-5'>知识</b>

    详解MySQL多实例部署

    详解MySQL多实例部署
    的头像 发表于 11-11 11:10 243次阅读

    IGB基本知识汇总

    本文对IGBT领域的深入研究与综合剖析成果,首先与您分享关于IGBT的基本原理及其构成元素,如芯片、单管及模块等方面的知识。接下来将共同关注的是IGBT在各个行业中的广泛应用。
    的头像 发表于 10-29 10:15 403次阅读
    IGB<b class='flag-5'>基本知识</b>汇总

    知识分享 | 轻松实现优质建模

    知识分享在知识分享栏目中,我们会定期与读者分享来自MES模赛思的基于模型的软件开发相关Know-How干货,关注公众号,随时掌握基于模型的软件设计的技术
    的头像 发表于 09-12 08:08 402次阅读
    <b class='flag-5'>知识</b>分享 | 轻松实现优质建模

    堆栈和内存的基本知识

    本文主要聊聊关于堆栈的内容。包括堆栈和内存的基本知识。常见和堆栈相关的 bug,如栈溢出,内存泄漏,堆内存分配失败等。后面介绍软件中堆栈统计的重要性,以及如何使用工具工具软件中堆栈使用的范围,并给出在
    的头像 发表于 08-29 14:10 470次阅读
    堆栈和内存的<b class='flag-5'>基本知识</b>

    光刻工艺的基本知识

    在万物互联,AI革命兴起的今天,半导体芯片已成为推动现代社会进步的心脏。而光刻(Lithography)技术,作为先进制造中最为精细和关键的工艺,不管是半导体芯片、MEMS器件,还是微纳光学元件都离不开光刻工艺的参与,其重要性不言而喻。本文将带您一起认识光刻工艺的基本知识
    的头像 发表于 08-26 10:10 830次阅读
    光刻工艺的<b class='flag-5'>基本知识</b>

    斑马技术:用软件创造需求,硬件满足需求

    “简单地说,很多时候用户解决问题的关键还是通过软件体现的:软件更多地需要创造用户需求;而硬件更在于... “简单地说,很多时候用户解决问题的关键还是通过软件体现的:
    的头像 发表于 08-19 16:50 360次阅读
    斑马技术:用<b class='flag-5'>软件</b>创造<b class='flag-5'>需求</b>,硬件满足<b class='flag-5'>需求</b>

    浅谈PUF技术如何保护知识产权

    ​在电子产品市场中,游戏机、点读笔、教育平板等品牌电子产品经常受到盗版威胁,盗版事件屡见不鲜。一旦新产品上市,盗版商往往会利用各种工具破解软件,获取其中的内容信息,并推出类似功能但价格很低的盗版产品
    发表于 07-24 09:43

    【《软件开发珠玑》阅读体验】+ 心得

    ,为软件开发者提供了宝贵的经验和智慧。在这篇读后感中,我将分享书中的精华以及它对我的启发。 首先,《软件开发珠玑》强调了软件开发和管理的59条经验教训分为6个领域。 需求、设计、项目管
    发表于 06-23 17:56

    热释电传感器基本知识和使用中的常见问题

    电子发烧友网站提供《热释电传感器基本知识和使用中的常见问题》资料免费下载
    发表于 06-11 09:06 1次下载

    凯迪正大电气分享电缆短路故障知识

    电缆短路故障,作为电力系统中的常见问题,不仅影响设备的正常运行,还可能带来严重的安全隐患。了解电缆短路的基本知识并掌握其查找技术,对于保障电力系统的稳定与安全至关重要。下面就给大家分享一下武汉凯迪正大电气有限公司遇到这类问题如何处理的以及相关原理。
    的头像 发表于 05-30 14:41 531次阅读

    HarmonyOS开发案例:【卡片像素转换】

    基于像素单位,展示了像素单位的基本知识与像素转换API的使用。
    的头像 发表于 05-07 10:45 289次阅读
    HarmonyOS开发案例:【卡片像素转换】

    TSN的基本知识详解(下)

    故障恢复机制可以在网络发生故障时,快速切换到备用路径,保证网络的正常运行,避免数据丢失或设备损坏
    的头像 发表于 04-17 14:11 622次阅读
    TSN的<b class='flag-5'>基本知识</b><b class='flag-5'>详解</b>(下)

    TSN的基本知识详解(上)

    TSN的目标是为工业自动化、智能交通、机器人控制等领域提供高性能、可靠性和实时性的通信。
    的头像 发表于 04-17 14:09 1738次阅读
    TSN的<b class='flag-5'>基本知识</b><b class='flag-5'>详解</b>(上)

    嵌入式软件开发应该掌握哪些知识?

    嵌入式软件开发应该掌握哪些知识? 一、 什么是嵌入式软件? 嵌入式软件通常是指嵌入式系统中运行的软件,嵌入式系统是一种特殊的计算机系统,通常
    发表于 02-19 11:23