预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共72页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第2章软件项目需求管理2.1需求工程简单地说,软件需求就是确定系统需要做什么. 严格意义上,软件需求是系统或软件必须达到的目标与能力需求管理2.1.2软件需求层次软件需求的抽象层次如图2.2所示:原始问题:描述是对要解决问题的叙述 用户需求:是用自然语言和图表给出的关于系统需要提供的服务及系统的操作约束 系统需求:用详细的术语给出系统要提供的服务及受到的约束,因而系统需求文档也称为功能描述. 软件设计:描述是在系统需求的基础上加入更详细的内容构成的,它作为软件详细设计和实现的基础,是对软件设计活动的概要描述.原始问题描述和用户需求的抽象层次比较高.能帮助我们在较高的抽象层次上进行交流,便于用户和软件开发人员之间的理解和沟通. 系统需求和软件设计描述则是具体的,可以根据它们来进行编码实现. 通常情况下,经常提到的是用户需求和系统需求.用户需求 用户需求从用户的角度描述系统的需求,以便没有专业技术背景的用户能看懂.它只描述系统的外部行为,尽量避免涉及系统内部的设计特性,因而用户需求就不可能使用任何实现模型来描述,而只能通过自然语言,图表,图形等来叙述.使用自然语言可能出现如下问题 描述困难 需求混乱 因此写需求文档应遵守一些简单原则: 标准的格式 使用一致的语言 使用特殊文本 尽量避免专业术语系统需求系统需求的描述语言:系统需求的分类(1)功能需求 功能需求描述系统所应提供的功能和服务,包括系统应该提供的服务,对输入如何响应及特定条件下系统行为的描述. 系统的功能需求应该具备全面性和一致性.要做到全面和一致几乎是不可能的.原因有二,其一是系统本身固有的复杂性;其二是用户和开发人员站在不同的立场上,导致他们对需求的理解有偏颇,甚至出现矛盾 为保证软件项目的成功,无论在哪个阶段,只要发现问题,都必须修正需求文档.(2)非功能需求 非功能需求是指那些不直接与系统的具体功能相关的一类需求,但它们与系统的总体特性相关,如可靠性,响应时间,存储空间等。 非功能需求定义了对系统提供的服务或功能的约束,包括时间约束,空间约束,开发过程约束及应遵循的标准等。 按照非功能需求的起源,可将其分为三大类:产品需求,机构需求,外部需求;产品需求对产品的行为进行描述;机构需求描述用户与开发人员所在机构的政策和规定;外部需求范围比较广,包括系统的所有外部因素和开发过程。 非 功 能 需 求(3)领域需求 领域需求的来源不是系统的用户,而是系统应用的领域,反应了该领域的特点。 领域需求可能是功能需求,也可能是非功能需,其确定需要领域知识。2.1.3软件需求质量评价产生 人们逐渐认识到需求分析活动不再仅限于软件开发的最初阶段,而是贯穿于软件项目开发的整个生命周期。 需求工程是一个包括创建和维护需求文档所必需的所有活动的过程,是将用户非形式化的软件需求转变为形式化的需求规格说明的过程。 需求规格说明又是软件设计、实现、测试直至维护的主要基础。 发展 需求工程的发展趋势是对象化、形式化和自动化,并将向着纵深发展和综合发展。 (1)对象化 需求工程的对象化主要是指需求模型及其构造方法的对象化,面向对象需求模型及需求定义语言是其研究的关键。 (2)形式化 需求规格描述方法有三种:形式化方法、非形式化方法和半形式化方法。 形式化方法:是具有严格数学基础的描述系统特征的方法,具有准确、无二义性的特点,有助于验证有效性和完整性。 非形式化方法:使用未作任何限制的自然语言,易于理解和使用,但它固有二义性,且难以保证正确性、可维护性,难以用计算机系统提供自动化的支持。 半形式化方法:介于上述两者之间,在宏观上对语言和语义有较精确的描述,而在某些局部方面则允许使用非形式化的自然语言。(3)自动化 在自动化的层次方面,已从实现级、设计级发展到功能级,并逐渐渗透到需求级。 2.1.5需求工程研究内容(1)建立需求分析模型 分析模型是描述软件需求的一组模型。 需求分析模型包含问题及其环境所涉及的信息流、处理功能、用户界面、行为模型及设计约束等,是形成需求说明、进行软件设计及实现的基础。 (2)编写SRS SRS的编写要以需求分析模型为基础、按照软件组织定义的SRS大纲、采用某种需求描述语言来进行。 需求工程的层次分解 需求工程可分为需求开发和需求管理,前者测重于需求的生成,而后者测重于需求变更的控制。需求开发和需求管理是有界限的如图2.4所示:2.2需求开发2.2.1需求开发活动2.2.2需求获取确定需求开发过程 编写项目视图和范围文档 用户群分类 选择产品代表 建立核心队伍 确定使用实例 召开应用程序开发联系会议 分析用户工作流程 确定质量属性 检查问题报告 需求重用2.2.3需求分析绘制关联图 创建用户接口原型 分析可行性 确定需求优先级 建立需求模型 编写数据字典 应用质量