Questions tagged «requirements»

对软件项目的需求进行启发,分析,规范,验证和确认。

2
将编程业务逻辑与非IT人员配对
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 您在编码过程中是否有非IT人员与程序员合作的经验? 这就像结对编程一样,但是一个人是一个非IT人员,对业务有很多了解,也许是一个具有数学背景的流程工程师,他知道事物是如何计算的并且可以理解非惯用的程序代码。 我发现非IT工程师很容易理解某些过程性领域特定语言,例如PL / SQL。这些人最终成为代码的共同作者,并保证公式,因子等的正确性。 我发现这种成对编程非常有效率,这种工程类型的用户认为他们也是代码的“所有者”和“作者”,并有助于最大程度地减少沟通过程中的误解。他们甚至帮助设计测试用例。 这种做法常见吗? 它有名字吗? 您有类似的经历吗?

4
通过使用单元测试超时来衡量方法的性能是一个好主意吗?
在有非功能性需求的项目中,该非功能性需求指定了特定操作的最长时间执行时间,QA必须在精确负载下使用精密硬件检查专用设备上此动作的性能,硬件和负载均在需求中指定。 另一方面,对源代码的一些错误更改可能会严重影响性能。在源代码到达源代码控制并由QA部门验证之前尽早注意到这种负面影响,这可能会因为QA部门报告问题而浪费时间,而开发人员稍后再修复它会造成损失。 为此,这是一个好主意: 要使用单元测试有花了执行相同action²时间的想法ñ倍, 要在C#中通过属性使用每次测试超时[TestMethod, Timeout(200)]? 我期望这种方法会出现几个问题: 从概念上讲,单元测试并非真正做到这一点:它们应仅测试代码的一小部分,仅此而已:既不检查功能需求,也不进行集成测试,也不进行性能测试。 考虑到这些测试不存在初始化和清除功能,或者它们太短而无法影响结果,Visual Studio中的单元测试超时是否真的可以衡量预期的结果? 用这种方法衡量性能很难看。在独立于硬件,负载等因素的任何计算机上运行基准测试,就像进行基准测试一样,表明一种数据库产品总是比另一种数据库产品更快。另一方面,我不希望这些单元测试是确定的结果,也不希望质量检查部门使用这些东西。这些单元测试将仅用于提供有关预期性能的一般概念,并且实质上是在提醒开发人员,他的最后修改破坏了某些内容,从而严重影响了性能。 对于这些测试,无法进行测试驱动开发(TDD)。首先,在开始实施代码之前它将如何失败? 性能测试太多将影响运行测试所需的时间,因此此方法仅限于短期操作。 考虑到这些问题,如果将此类单元测试与质量保证部门的实际性能指标结合使用,我仍然觉得很有趣。 我错了吗?还有其他问题使其完全不能使用单元测试吗? 如果我错了,那么在源代码到达源代码控制并由质量检查部门验证之前,警告开发人员该源代码的更改严重影响性能的正确方法是什么? ¹实际上,单元测试只能在具有相当硬件性能的开发人员PC上运行,从而缩小了永远无法通过性能测试的最快计算机与永远无法通过性能测试的最慢计算机之间的差距。 ²实际上,我的意思是一段相当短的代码,需要花费几毫秒来运行。

7
如何避免重写应用程序的各个部分
我在一家公司的销售部门项目中工作。这是我的第一份专业编程工作,但是我一直在自己编码并学习多年。该项目的一部分涉及获取一些数据,并将其与输入相结合以生成图形。然后保存数据……依此类推。因此,我花了不到一天的时间为此编写了代码。第二天,我展示了我的项目主管,他喜欢它,但是“如果有的话”,并希望我在图表中添加一些内容。这对程序的外观或功能没有太大的改变,但是它极大地改变了我存储数据,处理数据等的方式。 再次,我花了一天的时间来重新组织数据库表,并基本上从头开始重写代码以支持此新请求。我又把它还给了他,同样的事情发生了。他提出了其他要求,这些要求极大地改变了我处理数据的方式。因此,我不得不再次重写它。最终,他签署了该协议,希望我不必再次重写它。 请清楚,我不是在殴打我的经理或类似的人。他是一个伟大的人,他所要求的东西并没有超出这个世界,它们与我以前所做的不相容。 我只是想知道将来是否可以做些什么来避免完全重写。我了解制作灵活的代码并且正在尝试这样做,但是我想知道我可以做些不同的做法或事情来简化此工作,因此,将来,我不会花3天时间去做一些应该吃1。


3
非功能性需求和质量属性之间有什么区别?
我试图了解非功能性需求和质量属性之间的区别。它们是一样的吗? 您可以在ISO9126标准中找到一组质量属性。 我知道每个系统都是由一组功能需求定义的,并且每个需求都有一个或多个相关的质量属性。例如,假设您具有描述系统登录功能的要求。您可以将安全性和性能属性与该需求相关联。 如果我说系统不能花费超过1秒的时间来响应,那是在说约束。 那么,非功能性需求的概念在哪里出现呢?它们是由用户定义的吗?如何识别它们?

2
如何真正找出面向对象设计中必须要做的事情?
首先免责声明:我真的不知道这个问题是否适合该网站,但是我仍然发现它不仅对我而且对其他初学者都是一个相关的问题。如果可以改善问题以使其适合此处,请指出int注释。如果不合适,也让我知道,如果可能的话,让我知道可以在哪里讨论,因为我没有找到任何好的论坛。 我在2009年学习PHP时就学会了编程。2012年晚些时候,我转到了C#和.NET。无论如何,编码不是问题,写下算法不是我的问题。我的实际问题是要知道必须编码什么才能达到要求,必须在哪里编码。 网络上提供的大多数课程都讨论了如何 -如何用某种语言编写代码,如何使用一些API集等。这不是我的意思。 这些年来,我读了很多有关一堆东西的信息:面向对象的分析和设计,设计模式,领域驱动的设计等等。例如,我了解SOLID原则,DDD的一些主要思想,例如聘请领域专家的必要性,开发无处不在的语言等。我敢说我的理论背景至少合理。 但是,当谈到练习时,我觉得自己是一场灾难。前一段时间,我需要继续开发已经由其他人开发的金融系统。这就是用C#和WinForms开发的那种“旧系统”。这是我第一次选择一个具有实际领域复杂性,业务规则等等的项目。 我承认,当我大多数时候收到要求时,我认为“这到底是怎么做的?” -我什至不知道如何开始着手研究需求以弄清楚必须做什么。我认为我的主要困惑是我必须编写什么代码,什么类,接口以及每条逻辑的去向,每件事必须在哪个类上。问题是我不知道从哪里开始。 大多数时候,经过很多思考,我最终想到了一些主意,但是我却永远不知道如何判断我的主意是否正确。 我的意思是我不认为这是一种理论上的不足,因为我说我已经阅读了有关软件体系结构和面向对象的一堆建议,但对确定实践中必须做的工作并没有多大帮助。 所以,我怎么能学会真正 做到面向对象的设计?我要学习的是:给定的需求知道如何开始在一个过程中进行工作,从而找出必须完成的工作以及每个代码所属的位置。我还如何学习判断我的想法是否正确? 我相信在这里不可能完全解释这一点作为答案。但是,我所寻找的可能是根据网站样式而定的答案,只是给出概述并指出一些参考资料(书籍,在线课程等),这些参考资料可用于扩展思想并真正学习这些知识。

4
提出有关文件名编码的要求
我正在编写需求规范,而在措辞部分需求方面存在两难选择。 场景:我们从网站下载文件,并且下载的文件需要附加到我们拥有的CM工具中的项目中。下载的文件包含的名称可以是ASCII,ISO-8859-1,日语等。 在下面的措词中,“非ASCII”是否涵盖所有情况? 下载的文件名可能包含非ASCII字符,对此文件的处理不会使应用程序崩溃

14
可选要求的更好用词?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 对于软件工程中的可选要求,哪个词更好?这句话是矛盾的。我在先前的项目中使用了“非核心要求”。

8
如果老板总是推迟有关需求和总体设计的重大决定怎么办?
当开始一个新项目时,我的老板总是避免做出固定的决定。他通常在说:好吧,就开始写点东西,并尽可能通用。当您完成后,我们将看看我们如何继续。他的论点基本上是您永远不知道和“敏捷开发”。 为了使问题尽可能笼统:如果老板不喜欢做决定,您会怎么做? 只是坚持并编写可能在几周后进行大量重构和部分重写的代码?还是继续讨论直到老板做出至少一些决定?这或多或少是我目前的策略。因为这就像物理定律,所以在某些时候需要交付一些东西。要么是因为老板的老板想看到结果,要么是因为某些时候东西变得荒谬。 我还发现老板几乎批评了所有事情。甚至是基于他自己的建议...

5
为什么要区分功能需求和非功能需求?
我理解两者之间的区别,但是我的同事质疑将标签要求标记为功能性或非功能性(或过渡性)的好处。为什么要这样做呢?他花了两天的时间仔细检查了一个项目的需求清单,但没有发现任何好处,因为最终结果是将文件提交给另一个业务实体,并下达命令“全部完成”。 我担心的是,要求汇总在一个文档中。我试图用实际的方式来解释好处,但是无法出售。如何出售记录哪些需求有效和哪些需求无效的好处。

8
程序员应该为客户“思考”吗?
我到了讨厌需求收集的地步。客户对于自己的利益过于模糊。在敏捷的环境中,我们可以向客户展示一件完成的工作,这还不错,因为我们可以对功能进行少量的定期更正/更新。 在“瀑布式”的环境中(首先是需求,然后是近乎完整的产品),事情可能变得很难看。这种环境使我不断提出要求。EG客户希望“将输入自动转换为数字1”(指订单中的数量)。但是他们没有考虑的是“输入”可能是一个简单的type-o。文本框中的“ x”可能是“笨蛋”,而不是我想要的那些“牙膏”产品之一。但是,有很多要求,我可以忍受并纠正几个小时,最终弄清他们想要的东西。这是不健康的。 在一家公司工作时,我可以尝试调整文化以适应对我们有帮助的敏捷模型(不小的工作,高于我的薪水等级)。或者,在地毯下扫除丑陋的细节,并希望得到最好的。也许我的客户试图与代码过于接近? 如何处理“为客户考虑”的问题而又不给他们太多的问题而烦恼呢?

4
在整个软件开发生命周期中管理需求的工具
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我正在寻找一种工具来管理软件开发项目的需求或功能。一个由5-10人组成的小型地理位置分散的小组将使用它来提出,讨论和跟踪需求。因此,它将需要: 支持多个用户 基于网络 支持需求之间的层次结构,例如父/子关系 提供讨论个别需求的方法 支持文件上传 具有成本效益。理想情况下免费或 可用的某些项目管理工具过大或过分专注于任务或资源调度,而不是功能/需求。 有没有人有办法解决吗?


4
在确定所有需求之前确定发布日期是否敏捷?
我刚刚开始阅读Craig Larman的《 Applying UML and Patterns》。我觉得这很有趣,因为它挑战了我在工作中遇到的许多问题。我读到,并不是一次就可以完全收集需求,并且需要很多次迭代才能完成需求收集。如果是这样,考虑到明天可能会有一些新的突破性要求(或伪装成要求的变更请求),我是否必须设定一个硬性规定的截止日期,这是我在工作中必须做的,非常敏捷。

5
按故事编写需求规范是个好主意吗?
目前,我们在当前项目中使用的是敏捷方法,并且我们有很多类似的故事: 作为助理,我想向客户退款,以便他们可以在要求时获得一些退款 作为客户,我想付款以购买商品。 到目前为止,我们的工作方式是在每个冲刺中挑选最重要的故事,并将其详细阐述为许多正式的需求规格(我们将一些在相同规格中相似的故事归为一组)。根据故事的不同,它可能只是屏幕上的按钮或整个工作流程。 现在的问题是,因为故事太多,对于系统中与故事相关的任何部分,现在还不清楚。 它可以在开发人员时发挥作用,开发人员的每一次冲刺都只是获得一个规范,概述他们需要做的事情和需要进行的更改。但是就维护此故事列表和进行测试而言,它开始变得很难跟踪错误,并且通常只是维护规范,因为屏幕上的一项功能可能已经记录在许多不同的地方按故事拆分。 根据故事写规范是个好主意吗?我们写故事的方式有误吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.