论RUP在需求分析过程中的应用
2016-03-04明延艳谢东亮
明延艳 谢东亮
(重庆工程学院软件学院 重庆 400056)
论RUP在需求分析过程中的应用
明延艳 谢东亮
(重庆工程学院软件学院 重庆 400056)
软件开发过程可以分为结构化软件开发和面向对象软件开发方法,它们各自适用于不同的开发场景。每种开发过程有典型的软件开发模型,其中最典型和最为流行的是RUP,本文将针对如何使用RUP软件开发理论指导需求分析进行论述。
RUP 人才资源管理系统 HR
引言
RUP[1]英文表述为Rational Unifi ed Process,最初源于Rational公司进行开发和维护过程产品的实践中。RUP是一种将软件研发过程中的任务及责任分配到各个单位人的记录性方法。RUP并非仅仅适用于某个或某几个软件的开发过程,而是一个通用化的过程结构,适用于多种具有不同特征的软件开发、不同类别的软件应用领域、不同功能作用等级以及不同规模的项目。RUP具有用例驱动、结构是关键、多次迭代以及增量三个方面的主要特征。三个特性具有同等的效力,其中结构可以指导多次的迭代,用例将目标明确化,同时驱动多次迭代的进行。
本文简要论述了使用RUP指导需求分析的全过程。需求分析过程。
一、需求获取
需求包括业务需求,用户需求和功能需求以及非功能需求,在需求开发之前,需要先定义需求开发的过程,形成文档,内容包括:需求开发的步骤,每一个步骤如何实现,如何处理意外情况,如何规划开发资源等。
1. 需求获取的维度
(1)项目范围确定:需求开发前期,我们应该获取用户的业务需求,定义好项目的范围,使得所有的涉众对项目有一个共同的理解,同时确定系统的边界,和所涉及的问题域。
(2)用户确定:确定用户群和分类,对用户组进行详细描述,包括使用产品频率,所使用的功能,优先级别,熟练程度等等。对每一个用户组确定用户的代言人。对于大型项目,我们需要先确定中心客户组,中心客户组的需求具有高级别的优先级,需要先实现的核心功能。
(3)用例确定:与用户代表沟通,了解他们需要完成的任务,得到用例模型。同时根据用例导出功能需求。用例描述应该采用标准模板。
2. 需求获得方式
主要关注需求分析方法:
软件的开发项目覆盖各行各业,相对于其他类型的项目具有明显的特殊性。此外,软件项目开发的风险性比较高,因此,开发前的需求分析对于软件项目的成败至关重要,但要确切的了解客户的需求又是一件十分困难的事。比如:客户对自身需求表达不清、需求是动态的、系统分析员或者客户理解不到位等客观原因造成需求分析实施难度,所以在需求获取过程中要重视与用户的沟通并详细定义用户的需求。
二、需求分析
需求分析的目标是对用户的需求进行准确、全面的识别与定义,对用户需求的变化进行有效的跟踪,并且把用户的需求落实到系统分析与设计中,以保证系统的分析与系统的设计能够符合用户实际需求。
需求分析有三个特点,其分别是:一致性、完整性以及可追溯性。其中,完整性指的是精确、完整的对用户实际需求进行描述。一致性指的是在分析整理用户需求的基础之上对其进行规范,消除存在矛盾的需求项。可追溯性有两层意思,一是,要实时保持和客户的沟通,使规范后的需求能与其最新的需求相符。二是保证规范后的需求与系统分析与设计相符。
在进行需求分析工作前,必须要构建有效的需求分析的技术框架,在技术上确保需求分析能够高质量的完成,在有效技术框架的支持下,项目的需求分析工作才能很好的符合客户的实际需求,而不至于产生较大的偏差,使项目徒劳无功。
需求分析可以采用多种评价指标来进行评价,具体包括:功能性、全面性、合理性、准确性、可行性等指标。
三、文档化
用户和开发小组对将要开发的产品达成一致协议是需求开发的最终成果。协议综合了业务新要求、用户需求和软件功能需求。项目视图和范围文档包含了业务需求,而使用实例文档则包含了用户需求。必须编写从使用实例派生出的功能需求文档,还要编写产品的非功能需求文档,包括质量属性和外部接口需求。只有以结构化和可读性方式编写这些文档,并由项目的风险承担着评审通过后,各方面人员才能确信他们所赞同的需求是可靠的。
结语
RUP具有很多长处:提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构,为开发过程提供较大的通用性。但同时它也存在一些不足:RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。可以说RUP是一个非常好的开端,但并不完美,在实际的应用中可以根据需要对其进行改进并可以用OPEN和OOSP等其他软件过程的相关内容对RUP进行补充和完善。本文介绍了RUP软件开发过程,并简要论述了如何使用RUP指导需求分析过程,以完成良好的软件需求分析过程,并定义清晰的系统需求与文档化系统需求。
[1] 刘治国。RUP在现代软件工程中的应用. 天津职业大学学报. 2010;第3期:83-85