软件需求
需求定义
前置背景
- 软件开发的目标 软件开发要能够满足各方面的需求
- 错误需求具有严重的扩散效应,而且修复代价很高,其根本原因是 需求的鸿沟(期望差异): 开发者开发的与用户所想得到 的软件存在着巨大期望差异
软件需求的定义
以一种清晰、简洁、一致且无二义性的方式,描述用 户对目标软件系统在功能、行为、性能、设计约束等方面的期望, 是在开发过程中对系统的约束
需求分类
系统的功能性需求:系统的功能性需求是指满足系统需求需要提供的功能
业务需求 | 用户需求 | 系统需求 | |
---|---|---|---|
定义 | 客户对于系统的高层 次目标要求(high-level objectives) ,定义了项目的远景和 范畴(vision and scope) | 描述的是用户的目标,或用户 要求系统必须能完成的任务。用例、场景描述和事件――响应表 都是表达用户需求的有效途径。 | 系统应该提供的功能或服务, 通常涉及用户或外部系统与该系统之间的交互,不考虑系统内部的实 现细节。 |
企业的业务需求是关于企业业务的陈述 | 用户需求描述了用户能使用系统来做些什么 | ||
携程旅行的业务需求是卖飞机票 | 用户可以通过Internet随时查询图书信息和个人借阅情况,并可以快 速查找和浏览需要的电子资料 | 订票系统需要和用户数据库交互 //新的软件会使得汽车的启动速度加倍 |
非功能性需求和功能性需求
非功能性需求定义软件系统以及软件开发过程为满足系统功能需求要 满足的其他约束条件
非功能需求:检验起来非常困难,一般采用一些可度量的特性进 行描述。
非功能性需求的修改案例
非功能性需求
系统在20秒内响应所有的请求;
系统应该每周7天、每天24小时都可使用;
业务规则(BusinessRule):对某些功能的可执行性或内部执行逻 辑的一些限定条件。
通常表达为“如果…,那么…”的形式
如果借书卡类型为“教师”,那么一次借阅的最大数量为8本;
如果订单金额大于10000元,那么该订单的折扣为10%;
外部接口需求(External Interface Requirement):描述系统与其所处的外部 环境之间如何进行交互
约束条件(Constraint):限制了开发人员设计和构建系 统时的选择范围
-成本不能超出50万元,要求半年内交付使用等等