手机软件开发需求-开发手机客户端软件
出品 | 51Testing软件测试网
第 6 章需求开发与管理
软件需求是整个软件开发的基础。 无论是软件开发工程师还是软件测试工程师,本质上都依赖于软件需求来开展工作,于是软件需求工程(Requirement Engineering,RE)应运而生。 软件测试工程师还需要了解需求工程,尤其是需求管理的部分。
6.1 要求
了解需求管理的第一步是就需求是什么达成一致。 软件行业的问题之一是缺乏统一定义的术语来描述相应的工作。 客户定义的“需求”,对于开发者来说,似乎是一个高层次的产品概念,而开发者所说的“需求”,对于用户来说,则像是详细的设计。 事实上,软件需求包括多个层次,不同层次的需求从不同的角度和程度反映细节。
6.1.1 什么是要求
需求在 IEEE 软件工程标准词汇表 (1997) 中定义如下。
• 用户解决问题或实现目标所需的条件或能力。
• 满足合同、标准、规范或其他正式规定的文件应具备的条件或能力的系统或系统组件。
• 反映第 1 条或第 2 条中描述的条件或能力的书面描述。
要求不仅包括通常意义上的产品特性,还包括行业规范中定义的标准。 例如,对于相应的产品,银行行业技术规范和电信网络接入标准是需求,我们在开发行业软件时需要结合这些标准来分析需求。 我们在开发手机的时候,一定要了解手机行业的规范。 不能说手机能打电话,能发短信,就说明它满足了手机通讯功能; 在设计和开发金融系统时,我们必须了解其行业背景。 不能孤立地看待这个问题。
举个简单的例子手机软件开发需求,用户想让我们生产一台榨汁机,用户想要的榨汁机的需求如下。
·功能:可榨豆浆、果汁(苹果、梨、西瓜……)。
·性能:榨1kg黄豆需1小时。
·能耗:压榨1kg大豆耗电量为1kW·h。
·安全:榨汁过程有人身安全保护措施和漏电保护。
·可靠性:榨汁机可连续稳定运行1小时。
使用方便:榨汁机操作简单方便。
这些要求已经详细了吗? 是否可以开始生产?
答:没有。对于这么小的榨汁机,还要考虑行业背景,比如家电的3C标准。 如果卖到不同的国家,插头和电源标准也不同。 英国、法国和其他国家的标准不同。 不同的是,如果不考虑这些背景,生产出来的榨汁机即使运到销售地,也卖不出去。
6.1.2 需求类型
需求有不同的类型,各个组成部分之间的关系如图6-1所示。
图6-1 需求的各个组成部分之间的关系
01
第一部分
业务需求
业务需求代表组织或客户的高级目标。 业务需求通常来自项目投资人、购买产品的客户、实际用户的管理者、营销部门或产品策划部门。 业务需求描述了一个组织为什么要开发一个系统,即组织想要达到什么。 使用项目愿景和范围文档记录业务需求,有时称为项目章程或市场需求文档。
以自动柜员机(ATM)为例,从银行人员的角度来看,ATM可以代替柜员进行存取款操作,节省人工成本。 这是ATM的业务需求。
02
第一部分
用户需求
用户需求(user requirement)描述了用户的目标,或者说用户要求系统完成的任务。 场景描述和事件响应表都是表达用户需求的有效方式,即用户需求描述了用户可以使用系统做什么。
为了获得可用的ATM,用户应该描述ATM实现的功能。 这是ATM的用户需求,自动存款,自动取款,账户查询,密码验证,错误处理,...
03
第一部分
系统要求
系统需求用于描述包含多个子系统的产品(系统)的顶层需求。 一个系统可以只包含软件系统,也可以同时包含软件和硬件子系统。 人也可以是系统的一部分,所以有些系统功能可能要由人来承担。
ATM简单分为软件子系统和硬件子系统。 软件部分主要实现用户验证、存取款账户处理、远程通信等功能,硬件部分主要实现吞吐卡、触摸屏、点/验钞机等功能。
04
第一部分
功能要求
功能需求(functional requirement)规定了开发者必须在产品中实现的软件功能,用户使用这些功能来完成任务,满足业务需求。 功能需求有时也被称为行为需求(behavioral requirements),因为习惯上总是用“应该”来描述它们,比如“系统应该发送邮件通知用户他们的预订已被接受”。 功能需求描述了开发人员需要实现的目标。
ATM的软件功能需求如下。
(1) 用户登录
·验证卡的合法性和密码正确后,用户即可登录。
·我们的银行卡...
· 外行卡...
·密码错误...
(二)提款
· 判断取款金额的合法性。
· 账户扣除处理。
·手续费...
业务规则包括公司政策、政府法规、行业标准、会计准则和计算方法。 业务计划本身不是软件需求,因为它们不在任何特定软件系统的范围内。 然而,业务规则往往会限制谁可以执行某些操作,或者规定系统必须实现某些功能才能遵守相关规则。 有时,功能(由功能实现)中的特定质量属性也源自业务规则。 因此,当对一些功能需求进行追溯时手机软件开发需求,会发现其源头是某条具体的业务规则。
ATM机应遵守相关银行电子系统规范,如《银行计算机信息系统安全技术规范》中关于系统网络安全的规定,要求ATM机与后台服务器之间的网络通信必须具有高度的安全性。安全,必须使用加密机制。
05
第一部分
软件需求规范
软件需求规范(Software Requirement Specification,SRS)中的功能需求充分描述了软件系统应具备的外部行为。 软件需求规范在开发、测试、质量保证、项目管理和相关项目功能中发挥着重要作用。 对于一个复杂的产品,软件功能需求可能只是系统需求的一个子集。
作为功能需求的补充,软件需求说明书还应该包括非功能需求,它描述了系统向用户执行的行为和操作。 软件需求规范包括产品必须遵守的标准、规范和合同、外部接口的具体细节、性能要求、设计或实现约束和质量属性。 约束是指对开发者设计和构建软件产品的限制; 质量属性从各个角度描述产品的特性,从而反映产品的功能。
从上面的定义可以看出,需求不包括设计细节、实现细节、项目计划信息或测试信息。 需求与这些无关,它关注的是客户想要开发什么样的软件产品。 项目还有其他的要求,比如开发环境要求或者发布产品和迁移到配套环境的要求。
……