软件需求是对目标系统特性和功能的描述。需求传达了用户对软件产品的期望。从客户的角度来看,需求可以是明显的或隐藏的、已知的或未知的、预期的或意外的。
从客户那里收集软件需求、分析和记录它们的过程称之为需求工程。
需求工程的目标是开发和维护复杂的和描述性的“系统需求规范”的文件。
这是一个四步骤的过程,其中包括:
让我们来看看这个过程。
当客户接近组织以开发所需的产品时,它会粗略地想出软件必须执行的所有功能以及软件期望的所有功能。
分析人员参考这些信息,详细研究所需的系统及其功能是否可以开发。
可行性研究的重点是组织的目标。研究分析了软件产品是否可以在实施、项目对组织的巩县、成本约束以及根据组织的价值观和目标方面实际实现。它探讨了项目和产品的技术方面,例如可用性、可维护性、生产力和集成能力。
这一阶段的输出应该是一个可行性研究报告,其中应包含对管理层是否开展该项目的充分评论和建议。
如果可行性报告对承接该项目是肯定的,下一阶段就从收集用户的需求开始。收集来自各利益相关方的要求后,系统分析员创建SRS文档.分析师和工程师与客户和最终客户沟通,以了解他们对软件你应该提供什么以及他们希望软件包含哪些功能的想法。
SRS(Software Requirement Specification,软件需求规格)是系统分析师在从各个利益相关者那里收集需求后创建文档。
SRS定义了预期软件将如何与硬件、外部接口、操作速度、系统响应时间、软件跨各种平台的可移植性、可维护性崩溃后恢复速度、安全性、质量、限制等交互。.
从客户那里收到的要求是用自然语言编写的。系统分析师有责任用技术语言记录需求,以便软件开发团队能够理解它们并对其有用。
SRS应该具备以下功能:
开发需求规范后,将验证本文档中提到的需求。用户可能会要求非法、不切实际的解决方案,或者专家可能会错误地解释要求。如果不将其扼杀在萌芽状态,这将导致成本的巨大增加。可以根据以下条件检查要求:
可以使用以下图表描述需求获取过程。
需求获取是通过与客户、最终用户、系统用户和其他与软件系统开发有利益关系的人沟通,找出预期软件系统需求的过程。
有多种方法可以发现需求:
面试时收集需求的有力媒介。组织可能会进行多种类型的面试,例如:
组织可以通过询问他们对即将到来的系统的期望和要求,在不同的利益相关者只之间进行调查。
一份带有预先定义的客观问题和相应选项的文件被交给所有利益相关者回答,这些问题被收集和编译。
这种技术的一个缺点是,如果问卷中没有提到某个问题的选项,这个问题会无人注意。
工程师和开发团可以分析需要新系统的操作。如果客户已经有一些软件来执行某些操作,则对其进行研究并收集建议系统的要求。
每个软件都属于某个领域类别。该领域的专家可以极大地帮助分析一般和特定需求。
在不同的利益相关者之间举行非正式辩论,并记录他们的所有意见以供进一步的需求分析。
原型设计是在不添加详细功能的情况下构建用户界面,以供用户解释预期软件产品的功能。它有助于更好地了解需求。如果客户端没有安装供开发者参考的软件,并且客户端不知道自己的需求,则开发者根据最初提到的需求创建原型。将原型展示给客户并记录反馈。客户反馈作为需求收集的输入。
专家团队访问客户的组织或工作场所。他们观察现有安装系统的实际工作情况。他们观察客户端的工作流程以及如何处理执行问题。团队本身得出了一些有助于形成软件与其需求的结论。
收集软件需求是整个软件开发项目的基础。因此,它们必须清晰、正确和定义明确。
一个完整的软件需求规格必须是:
我们应该尝试了解在需求获取阶段可能会出现什么样的需求,以及从软件系统中期望什么样的需求。
从广义上讲,软件需求应分为两类:
与软件功能方面相关的需求属于这一类、
它们定义了软件系统的内部和来自软件系统的功能和功能性。
例子:
与软件功能方面无关的需求属于这一类。它们是用户假设的软件的隐含或预期特征。
非功能性需求,包括:
需求按逻辑分类为:
在开发软件,'必须拥有'必须执行,“应该有”的争论与利益相关者和否定的问题,而“可能”和“愿望清单”,可以保持软件更新.
UI(User Interface,用户界面)是任何软件、硬件或混合系统的重要组成部分。一个软件被广泛接受,那么它是:
用户的接受程度主要取决于用户如何使用软件。UI 是用户感知系统的唯一途径。一个性能良好的软件系统还必须配备有吸引力、清晰、一致和响应迅速的用户界面。否则软件系统的功能不能方便的使用。如果一个系统提供了有效使用它的方法,那么它就被认为是好的。下面简要提到用户界面要求:
IT 组织中的系统分析师是一个人,他分析提议系统的需求并确保正确和正确地构思和记录需求。分析师的角色始于 SDLC 的软件分析阶段。分析师有责任确保开发的软件满足客户的需求。
系统分析员有以下职责:
软件度量可以理解为量化和符号化软件各种属性和方面的过程。
软件指标为软件过程和软件产品的各个方面提供度量。
软件度量是软件工程的基本要求。它们不仅有助于控制软件开发过程,而且有助于保持最终产品的卓越质量。
据 Tom·DeMarco 的说法,“你无法控制你无法衡量的东西。”用他的话说,软件度量的重要性不言而喻。
让我们来看看一些软件指标: