首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“用户”需求与“系统”需求

“用户”需求与“系统”需求
EN

Software Engineering用户
提问于 2021-03-17 19:37:20
回答 1查看 856关注 0票数 3

我正在上软件工程课,我的教授在解释任何事情上都很糟糕。这才是第三周,我和我的队友们已经很困惑了。

我们得到了一个停车场软件的脚本,也给了一个带有网格的模板。该网格有3列:需求编号/id、需求类型(功能或质量或限制)以及需求本身。该模板的标题是“用户需求”,根据理论类,这是:

高级描述,高级别声明。用自然语言声明,以及系统的服务和限制的图表。给客户写的。

我在所选的书目中查找了这些“用户需求”,却找不到这个名字的任何东西。我发现的是“高级描述”和这些行中的一些东西,其定义与引用的定义相同。

起初,我认为软件中有一些与用户输入和用户交互相关的部分,因为稍后我们将不得不做一些叫做“系统需求”的事情。根据理论课:

详细描述每个功能、输入和输出以及操作异常。不管这意味着什么定义了实现的细节,可以是客户端和提供者之间契约的一部分。为开发团队编写,但客户可能仍然能够理解它们。

这里给出的示例与为“用户需求”提供的示例大致相同,只是它们以“系统必须执行xyz”开头,而其他以“客户机应该能够使用xyz”开头。

然后,我们得到了另一个模板,称为“需求规范文档”(Document of Specification ),其中包含了一些要点,我们应该编写关于这个“系统”、由“主题”、系统的外部接口、质量要求和限制、系统的用户界面(我假设这些是“系统需求”)和“按主题分配的需求”组成的“用户功能需求”(我假设是“用户需求”)的介绍。

我们已经问了教授,我们得到了一个非常冗长的解释,我们问了什么和许多其他的事情,我们没有问,结果甚至更加混乱。我得到的结果是,“用户需求”是“为客户”,而“系统需求”是针对工程师的,尽管理论中的例子几乎相同。我认为后者涉及技术细节等等。教授还告诉我们,“用户需求”应该被“转换”为“系统需求”。除了我以外,我的小组中大多数人都在重复这门课,从混乱程度判断,我有一种很不好的感觉。

有人能向我解释一下我的教授在这里要做什么,以及这些“用户需求”应该是什么,而不是“系统需求”,为什么我们必须按主题组织两次需求,什么是“详细需求”?

老实说,我已经不知道我在做什么了。如果有人能简单地向我解释一下我应该做什么,这样我就能知道我的教授想做什么,那就太好了。

谢谢。

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2021-03-18 02:55:02

虽然很难准确地知道你的教授想要什么,但在这种情况下,总体情况似乎比精确性更有帮助。

当你做软件工程师的时候,有人会要求你做一些工作。虽然您可能通过一串人相互交谈,然后与您交谈,但请求要么来自用户,要么来自想象用户想要什么,以及用户如何与业务需求交互的人。

通常情况下,提出请求的人将不知道下列一项或多项:

  • 计算机/软件的一般工作方式
  • 现有软件系统的当前状态如何帮助或阻碍添加该功能
  • 考虑到上述情况,预计需要多长时间?

这是意料之中的。这不是他们的工作,这是软件工程师的工作,知道这些东西是如何工作的。

所有这一切都意味着需求(关于软件应该如何运行的事实)来自用户,或者是那些想象用户会想要什么的人,而这些需求通常并不能很好地用于直接编程。这些都是用户的要求。

下面是一个例子:

用户应该能够上传一个个人资料图片到网站。

这就留下了很多东西没有明确说明,而且是隐含的。要做到这一点,需要完成几个独立的任务。这在用户需求中并不少见。因为您和我都知道什么是概要图,在这种情况下很容易知道该做什么,但是用户需求通常涉及到软件工程以外的领域的知识。

对于提出这个要求的人(S)来说,有些事情可能是显而易见的,但对你来说却是完全不明显的。但是,您需要解决这种混乱,以便能够编写程序。通常,最好的解决方法莫过于以迭代的方式编写最佳猜测并将其展示给需求的来源。

即使假设您完全理解这些需求,比如在概要图示例中,您仍然需要将其分解为与实际编写软件相对应的步骤。这可以在你的头脑中,因为你正在做它是简单的,或在隐喻纸,如果它是足够复杂的。

下面是分析配置文件图片示例的一种方法:

  • 我们需要一种存储和检索配置文件图片的方法,一旦我们有了图像。
  • 我们需要在UI中添加一个按钮来上传图像
  • 我们需要在适当的地方加载和显示图像。
  • 我们需要处理的事实是,当前的概要代码是难以使用的。我们应该先修好它。

它们更接近于系统需求。其中每一个都可以进一步细分,并在需要时添加更多的技术细节。例如,存储需求可以细化到哪个DB表需要添加到其中的列,以及文件是在DB中还是在磁盘上。

当你有信心在代码编辑器面前知道该做什么时,你就做完了。人们可以把编写软件的行为看作是把问题分解成具体的步骤,以至于一堆石头就能做到这一点。(计算机是用硅做的,也就是沙子。)尽管如此,在编写代码的过程中,您仍将了解有关需求的内容。有时候,与其他时候相比,更早地进入代码更好。这取决于具体的问题。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/423523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档