内容摘要
1.什么是需求工程
2.什么是软件需求工程?
3.软件需求的重要性
4.软件需求的困难
5.软件需求内容
6.需求工程的活动
要求:
(1)识记:需求工程的活动,传统需求分析阶段的具体任务,需求分析方法。
(2)领会:数据流图,状态图的相关概念以及描述方法等
(3)综合应用:能够对一个规模适度的应用系统用结构化分析方法进行需求分析,给出数据流图。
1. 什么是需求工程
需求工程(RE)的概念
是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。
需求工程RE可分为:
系统需求工程(如果是针对由软硬件共同组成的整个系统)
软件需求工程(如果仅是专门针对纯软件部分)。
2.什么是软件需求工程
软件需求——是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。
软件需求工程——是一门分析并记录软件需求的学科,它把系统需求分解成一些主要的子系统和任务,把这些子系统或任务分配给软件,并通过一系列重复的分析、设计、比较研究、原型开发过程把这些系统需求转换成软件的需求描述和一些性能参数。
3.软件需求的重要性
需求的重要性
Frederick Brooks在他1987年经典文章“No Silver Bullet”中阐述了需求的重要性:
开发软件系统最困难的部分就是准确说明开发什么。最困难的概念性工作是编写出详细的需求,包括所有面向用户、面向机器和其它软件系统的接口。此工作一旦做错,将会给系统带来极大的损害,并且以后对它修改也极为困难。
4. 软件需求的困难
软件需求是软件工程中最复杂的过程之一:
应用领域的广泛性,它的实施无疑与各个应用行业的特征密切相关。
非功能性需求建模技术的缺乏及其与功能性需求有着错综复杂的联系,大大增加了需求工程的复杂性。
沟通上的困难,由于系统分析员、需求分析员等各方面人员有不同的着眼点和不同的知识背景,给需求工程的实施增加了人为的难度。
6. 需求工程的活动
需求工程中的活动可分为两大类,一类属于需求开发,另一类属于需求管理。
常用的需求分析方法:
功能分解方法
面向数据流的结构化分析方法 (SA)
面向数据结构的分析方法
信息建模法
面向对象的分析方法 (OOA)
需求工程小结
软件需求工程,是软件开发人员与用户密切配合,充分交换意见,获得对需求一致意见的过程。
在开发者一方,参与工作的主要角色是系统分析员和系统工程师等,负责沟通用户和开发人员的认识和见解,起着桥梁作用。
需求工程阶段的最终任务是要完成目标系统的需求规格说明,确定系统的功能、非功能需求和性能,为后阶段的开发打下基础。
本阶段常用的有SA法,原型法,OOA法等。