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

1元 10元 50元





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



  求知 文章 文库 Lib 视频 Code iProcess 课程 角色 咨询 工具 火云堂 讲座吧   建模者  
会员   
  求知 文章 文库 Lib 视频 Code iProcess 课程 角色 咨询 建模者 工具 火云堂 讲座吧    
会员   
 
   
 
  
每天15篇文章
不仅获得谋生技能
更可以追随信仰
 
     
   
 订阅
  捐助
基于模型的需求管理方法与工具
 
俎涛 ,火龙果软件工程技术中心
726 次浏览     评价:  
 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

  •    
    726 次浏览  评价: 差  订阅 捐助
     
    相关文章

    UML建模之时序图
    UML状态图
    区分UML类图中的几种关系
    UML建模之活动图介绍
     
    相关文档

    UML统一建模语言参考手册
    网上商城UML图
    UML建模示例:JPetStor
    UML序列图编写规范
     
    相关课程

    UML与面向对象分析设计
    UML + 嵌入式系统分析设计
    业务建模与业务分析
    基于UML和EA进行系统分析设计
    每天2个文档/视频
    扫描微信二维码订阅
    订阅技术月刊
    获得每月300个技术资源
     
     

    关于我们 | 联系我们 | 京ICP备10020922号 京公海网安备110108001071号