(软工) 功能性和非功能性需求是什么?

2024-06-04 07:12
文章标签 需求 功能性 软工

本文主要是介绍(软工) 功能性和非功能性需求是什么?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 🌟功能性需求
    • ⭐⭐⭐系统应该做什么?或者应该提供什么功能?⭐⭐⭐
    • 🫰举例
  • 🌟非功能性需求
    • ⭐⭐⭐系统应该在哪些条件下能执行这些功能,且执行的很好。⭐⭐⭐
    • ❤️‍🔥质量属性(Quality Attribute, QA)
      • 🫰举例
    • ❤️‍🔥约束(constraint)
      • 🫰举例
  • END

前言

软件开发的根本目的就是满足客户的需求。这个客户可以是一个人,一个企业,甚至是你公司内部的另一个部门。

但绝大多数客户往往无法准确表达自己希望的需求,这时就需要软件架构师去挖掘功能。

一般来说软件功能可以分为功能性需求非功能性需求

🌟功能性需求

⭐⭐⭐系统应该做什么?或者应该提供什么功能?⭐⭐⭐

功能并不总是不影响架构。

但是有的功能在实际落实下决定了解决方案的设计。特别是一些必须且明确满足的功能。会涉及到架构击毙重量需求(Architecturally Significant Requirement, ASR)

🫰举例

作为一个<角色>,我想要<功能>,带来<好处>。

  • 作为用户,我想在点击➕按钮后立即将该物品添加到购物车。
  • 作为用户,在web端输入账户密码后直接按回车就进行登录(不用按登录按钮)。
  • 当我确认注册,我想看到一个弹窗或者短信或邮件来告诉我是否注册成功。
  • 作为老师,我想直接修改某位学生的期末成绩。
  • 等等

🌟非功能性需求

⭐⭐⭐系统应该在哪些条件下能执行这些功能,且执行的很好。⭐⭐⭐

非功能性架构总是能影响架构。

在设计过程中,需要非常明确的确定非功能性需求。一些模糊的非功能性需求会在开发后期产生难以预估的影响。

❤️‍🔥质量属性(Quality Attribute, QA)

  • 性能
  • 可维护性
  • 用户友好性
  • 等等

🫰举例

  • (信息安全)网站不会存储你当前输入的密码。
  • (完整性)软件更新时,若更新失败不会使旧版本无法使用。
  • (性能)该AI可以在5分钟内处理10份2mb大小以内的pdf文件。
  • (跨平台)在华为,小米,苹果手机都能够使用这个app。
  • 等等

❤️‍🔥约束(constraint)

  • 在交付项目时必须遵守的不可协商的决策
    • 设计决策
    • 技术决策
    • 政治决策
  • 时间约束
  • 预算约束
  • 等等

🫰举例

  • 该系统必须使用vue3作为前端技术,Django作为后端技术。
  • 乙方在合同签订后3个月内完成软件的出版交付,5个月内完成终版的交付。
  • 甲方在终版交付时间点前违约或终止交易,则不返还定金。
  • 等等



END

关注我,学习更多C/C++,算法,计算机知识

B站:

👨‍💻主页:天赐细莲 bilibili

这篇关于(软工) 功能性和非功能性需求是什么?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1029411

相关文章

十四、我们应当怎样做需求分析:子用例与扩展用例

用例模型作为UML中4+1视图中非常重要的一员,非常集中地体现了面向对象的分析与设计思想。用例模型将现实世界中连续的一个一个业务流程,按照场景划分到了一个一个的用例中。由于场景的出现,使得用例中的业务流程存在着高度的内聚性,从而成为了日后各种对象的雏形。同时,在用例分析中,又将那些存在于各个用例中的,相同或相近的业务操作提取出来,形成一个一个的子用例或扩展用例,又体现了面向对象设计中的复用性。现在

十三、我们应当怎样做需求分析:查询报表分析

在我以往的用例分析中,使用这样格式的用例模式,对于大多数业务操作流程来说是得心应手的,但对于有些功能来说总感觉不对劲。感觉不对劲的,就是那些查询、汇总与报表功能。对于这部分功能,需要我们描述的不是什么操作流程,而更重要的是那些数据项、数据来源、报表格式、数据链接,以及使用者、使用频率的说明。而这些,在以往的用例说明格式中统统都没有,怎么办呢?俗话说“东西是死的人是活的”,把我们的用例格式改改吧。

九、我们应当怎样做需求分析:功能角色分析与用例图

在我们进行一系列需求调研工作的同时,我们的需求分析工作也开始启动了。需求调研与需求分析工作应当是相辅相伴共同进行的。每次参加完需求调研回到公司,我们就应当对需求调研的成果进行一次需求分析。当下一次开始进行需求调研时,我们应当首先将上次需求分析的结果与客户进行确认,同时对需求分析中提出的疑问交给客户予以解答。这就是一个需求捕获->需求整理->需求验证->再需求捕获的过程。  但是,当我们经

八、我们应当怎样做需求调研:需求捕获(下)

前面我们讨论了,需求分析工作是一个迭代的过程:需求捕获->需求整理->需求验证->再需求捕获······需求捕获是这个迭代过程的开始,也是整个需求分析工作中最重要的部分。没有捕获哪来后面的整理与验证工作?但是,非常遗憾,按照我以往的经验,需求捕获是我们最薄弱的环节。前面我提到的许许多多项目开发的问题都可以归结为需求分析的问题,而许许多多需求分析的问题又都可以归结为需求捕获不完整的问题。需求捕获是整

七、我们应当怎样做需求调研:需求捕获(上)

前面我们讨论了,需求分析工作是一个迭代的过程:需求捕获->需求整理->需求验证->再需求捕获······需求捕获是这个迭代过程的开始,也是整个需求分析工作中最重要的部分。没有捕获哪来后面的整理与验证工作?但是,非常遗憾,按照我以往的经验,需求捕获是我们最薄弱的环节。前面我提到的许许多多项目开发的问题都可以归结为需求分析的问题,而许许多多需求分析的问题又都可以归结为需求捕获不完整的问题。需求捕获是整

六、我们应当怎样做需求调研:迭代

前面我一直在反复强调这样一个观点,需求分析不是一蹴而就的,是一个反复迭代的过程。它将从第一次需求分析开始,一直持续到整个项目生命周期。为什么这样说呢?让我们一起来分析分析。  在第一次的需求分析阶段,我们在一段时期内需要与客户进行反复地讨论,这个过程往往是这样一个反复循环的过程:需求捕获->需求整理->需求验证->再需求捕获••••••  需求捕获,就是我们与客户在一起开研讨会

五、我们应当怎样做需求调研:需求研讨

前面我们探讨了业务研讨会应当怎样组织,下面我们再具体讨论一下我们应当怎样与客户讨论业务需求。如果说组织业务研讨会是项目经理的功底,那么讨论业务需求就是需求分析人员的功底。  以往我们常常认为,需求分析是一件最简单的事情。客户说他们需要做一个什么软件,有些什么功能,我们照着做就可以了,所谓的需求分析员就是需求的记录员。我要说,这是一个极大的错误,许多失败的软件项目,或者说软件项目中的需求问

AI模型:追求全能还是专精?-- 之6 语言复杂度类别(Category 0~3 类)和语言功能性类型(Type 0~Ⅲ 型)之2

Q17、我前面说过,语言复杂度的0~3级(Category 0~3)表示了语言的的上下文相关性 : 完全不相关, 单相关的 单词上下文, 双相关的句子上下文 全相关的文章上下文 。我准备翻译为 Context - irrelative /relative/correlative/ full-correlative,显式表达了语言复杂度的0~3级(Category 0~3)区别的上下文相关性是一种关

AI超周期现状 - NVIDIA、苹果以及人工智能的整体需求

于2024年6月6日在中国杭州拍摄的英伟达和苹果的标志。到6月5日,东部时间,英伟达的市值超过3万亿美元,正式超越苹果的市值,成为全球市值第二大的科技巨头。值得注意的是,短短3个多月时间里,英伟达的市值就从2万亿美元飙升至3万亿美元。(由Costfoto摄于NurPhoto,经盖蒂图片社批准) 在九月初经历了几天的市场动荡后,又有一波关于人工智能超级周期是否已结束的讨论。如果没有结束,那接下来会

从需求场景下出发实操Clickhouse

背景 本着以实时数仓为目标调研了几款OLAP引擎,像Clickhouse、Kylin、Druid等,在粗略了解其架构后,并且在接受各个大厂Clickhouse实践、高性能测试报告、最近业界发展势头凶猛的熏陶与PUA情况下,不得已选择了Clickhouse,当然自己也做过一些测试,本篇将介绍clickhouse的一些原理、实践方案(可能还未实现、可能并不是最佳)与遇到的一些问题,总之只是希望能