您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
基于模型的需求管理方法与工具
 
俎涛 ,火龙果软件工程技术中心
  16198  次浏览      18
 2019-5-27
 

前言

需求管理是一个所有人都很关注、似乎技术性不强,却很难解决的工程难题。本文提出了一种基于模型的需求管理方法,并基于此理论,选择了主流的建模工具EA,定制开发了对应的需求管理工具。希望面临同样需求管理难题的同行能够获得启发。

正文

需求是很多工作的基础:

  • 项目的范围管理、工作量估算应该基于需求
  • 进行了充分的需求分析,例如 功能、扩展、性能,才能对软件的框架和运行过程进行有效设计。
  • 测试也需要基于需求设计测试用例,制定验证标准。
  • 产品经理很多的工作都是基于需求进行,例如 产品需求分析、产品设计、产品发布管理。


  • 需求管理目前也是软件开发过程、系统工程中问题最多的环节,无论是具有高可靠性要求的航空、航天、汽车上的控制系统,还是面向企业信息化的业务系统,需求的质量都是一直被重视、却从来没有被有效解决的难题。



    需求的工作过程一般是:

  • 首先接收到用户原始请求,然后由需求人员对用户的需求进行分析,描述清楚用例;
  • 在清楚用户需求的基础上,进一步的进行产品需求分析,定义清楚系统的功能模块;
  • 开发方和用户方签订需求契约,明确要开发什么、投入多大工作量、估算出成本和时间、确定预算。
  • 然后开发团队基于需求进行开发,在此过程中用户提出的需求要进行变更控制,以便能够按照预期的时间交付符合质量的产品。
  • 当开发完成后,基于需求进行验证,合格的才能成为交付给用户的产品。
  • 开发过程虽然是可以迭代进行,但是在用户来看,高水平的开发团队应该是确认清楚需求然后才进行开发的,交付的产品也应该是符合质量要求的。



    基于如上的需求工作流程,可以整理出如下需求管理的内容:

  • 用户的原始请求
  • 需求分析的模型,例如:用例模型、接口模型,描述非功能需求的模型。
  • 正在开发或者交付的系统或者软件本身。
  • 需求验证的用例。
  • 发现的缺陷或者需求不一致问题


  • 需求的管理内容看似各种各样,而且还要关联到后续的设计、开发、测试的工件,这样相关的内容就更多了,如何管理好呢?可以把各种工作的管理内容整理为三类:

  • 文档,例如:需求文档、设计文档、开发文档、测试文档。
  • 条目数据,例如:需求的用例列表、设计的模块列表、开发的code目录、测试的bug列表。
  • 模型,例如:需求模型、架构模型、数据模型、代码模型、测试模型。


  • 虽然各个内容不同,但是同一种形式的管理方法基本相同。在三种形式中,模型适合作为专业化分析设计工作的形式;文档则可以提供给所有人阅读,尤其是那些非设计和开发人员;条目数据则适合进行跟踪管理。



    通过如上分析,无疑模型是整个研发过程中工作的关键,如果没有充分的分析设计,管理的内容质量都不行、条理不清楚,再好的管理流程和工具也管理不好。正是基于这样的原因,我们提出基于模型的需求管理方法,主要的思路是:

  • 基于模型进行专业的需求分析、系统设计、软件设计和测试分析设计。
  • 基于模型的逻辑关系中的层级关系,把模型变为条目列表,进行跟踪管理,重点是要建立各种模型元素之间的关联关系,例如:需求中的用例和设计中的组件的实现关系,测试中的bug和对应的需求用例或者组件的跟踪关系。
  • 把各种文档,可以基于模型生成,这样文档就自然关联到了模型上,也可以通过列表的形式进行跟综合管理。通过把模型转化为列表数据,可以很方便的支持对象列表、影响分析矩阵、跟踪树、看板、统计图等形式,各个版本的需求差异分析也方便多了。


  • 为此我们专门开发了基于模型的需求管理工具iSpace,它基于主流建模工具EA的模型生成条目化数据进行管理,今后可以根据用户需要,扩展到其他建模工具的模型。
    如下是iSpace的一些使用场景界面截图和说明。

    把EA模型中的元素,采用iSapce的列表视图,可以方便进行跟踪管理。



    基于系统工程或者软件工程的全周期模型:需求模型、设计模型、代码模型、测试模型,都可以条目列表的视图浏览和管理。这样就很方便进行完整的管理,各种管理(需求管理、设计管理、代码管理、测试管理)都有一套方法,有些是重叠的,如果分别在不同的工具里面管理,则互相之间的关联是一个复杂的工作。如果在一个建模工具中把所有的模型都建立了,再基于模型对应到各种管理视图,看似复杂的各种管理一起就简单了,很多关联问题就很容易解决了。



    如下是在iSpace中编辑对应的元素和属性内容,会自动地同步到建模工具里面,反之亦然。



    还可以很方便的选中一个元素,通过关联选择器快速的选择其他关联的元素,这样操作方便多了,关键是在建模工具EA中还能自动同步出模型图上对应元素之间的关系。



    为了弥补建模工具的描述方式比较单一的问题(以文本为主),特别提供了一个富文本编辑区域,用户可以:

  • 创建表格
  • 粘贴图片
  • 上传视频
  • 挂接文档
  • 这对于有些工作场景非常有用,例如:

  • 需求人员要把一个界面原型图或者专业算法图放在一个用例下面。
  • 测试人员发现了bug,要截屏,然后把截图放在一个bug模型元素下面。


  • 还可以基于模型里的元素关系,快速生成一个关联脉络图,这对需求变更的影响分析或者bug的影响分析很有实用价值。



    下面就针对需求的各种管理的工作场景专门截图说明。



    如下是变更影响分析,建立了各种模型(需求模型、设计模型、code模型、测试模型)后,如果用户提出了需求变更,可以生成关联脉络图,选中一个变更,就可以查看影响的所有模型的内容。



    如下是bug影响分析,建立了各种模型(需求模型、设计模型、code模型、测试模型)后,如果发现了bug,可以生成关联脉络图,选中一个bug,就可以查看影响的所有模型的内容。



    需求还需要跟踪各种状态(提出、待开发、待测试、待发布、已发布),目前看板是一个很实用的跟踪方法,iSpace可以根据各种元素的状态自动分配到看板的状态列上,还可以通过拖动改变元素状态。如果配上一个大屏幕,就是一个很好的电子看板了。



    需求管理需要进行各种统计,例如 需求完成统计、需求验证覆盖率统计、需求质量统计,为此提供了各种统计图,统计的数据都来自于模型,用户可以随时转换到统计视图,实时了解需求的各种信息,指导相关的开发、测试和管理工作。



    后记

    希望您读了此文后有所受益。

    如果您有经验乐于分享,欢迎投稿给我们。

    如果您对我们的培训、咨询和工具感兴趣:

  • 建模工具:EA
  • 基于模型的需求管理工具:iSpace
  • 课程:MBSE(基于模型的系统工程)
  • 课程:基于模型的需求分析、建模于管理
  • 咨询方案:MBSE(基于模型的系统工程)
  • 咨询方案:基于UML的模型驱动的开发
  • 所有建模有关的课程:http://www.modeler.org.cn/course/index.asp
  • 所有的需求管理课程:http://course.uml.org.cn/course/requirement.asp
  • 咨询方案:基于模型的工程管理

    欢迎联系我们: 俎涛 Zutao@uml.net.cn

  •    
    16198 次浏览       18
     
    相关文章

    UML概览
    UML图解:用例图(Use case diagram )
    UML图解:活动图(activity diagram )
    UML图解:类图(class diagram )
    UML图解:对象图(object diagram)
    UML图解:顺序图( sequence diagram )
     
    相关文档

    模型跟踪:跟踪图、矩阵、关系(建模工具EA)
    自定义表格(Custom Table)在EA中的使用
    元素的详情浏览控制
    UAF 1.2规范解读(DMM 和 UAFML )
    EA中支持的各种图表
    EA中的界面原型建模
     
    相关课程

    UML与面向对象分析设计
    UML + 嵌入式系统分析设计
    业务建模与业务分析
    基于SysML和EA进行系统设计与建模
    基于模型的需求管理
    业务建模 & 领域驱动设计