您的当前位置:首页正文

基于BIM的项目管理平台的软件开发需求管理

来源:个人技术集锦
基于BIM的项目管理平台的软件开发需求管理

摘要:一个软件项目的项目进度及软件质量在很大程度上受到需求管理的影响,可以说需求调研是软件工程基础,需求管理是整个软件工程管理的关键。本文基于软件开发项目的需求调研与管理的概念,探讨了广州地铁18 /22号线基于BIM的项目管理平台研发项目需求调研与管理的重要性、存在的问题、解决的原则以及方法等,旨在提高BIM软件研发进度与质量,降低BIM软件开发的成本,使BIM软件满足地铁各参建单位的使用需求。 关键词:需求工程 需求开发 需求管理 1 项目背景

广州地铁18/22号线是中国铁建的总承包项目,是全国采用EPC总承包模式建设的投资最大的项目之一,全国第一条设计时速160公里的高标准市域快速城市轨道线,全国第一条单项合同最大、相对建设时间较短的地铁工程项目(38个月建完),全国第一条全线采用大断面直径8.8米设计的地铁项目。线路建成后,南沙新区到广州东站只需30分钟,对推进国家级新区——南沙新区建设意义重大。 本项目期望通过项目管理平台的建设,满足项目各参与方能便利应用该平台开展各项工程项目管理工作,并将项目实施各个阶段的所有数据、资料实时、完备地记录在平台中,并与三维模型关联。总体目标就是要实现项目各参与方之间的信息共享,支撑地铁建设的多专业协同工作,能够对施工进度、质量、资源、成本、安全和场地进行有效、动态、可视化的管控,实现基于数据的动态集成管理;通过制定电子化集成交付标准,将设计、施工信息集成,用于交付运维,降低运维成本,提升管理与决策水平。

项目管理平台的设计和建设要求充分考虑本项目用户群体的深层次需求与应用场景的特点,针对不同的用户群体提供适合用户习惯、工作方式的应用系统软件,充分理解广州地铁新的BIM管理模式和本项目其它业务系统的集成需求,统筹规划,将基于BIM的项目管理平台和其它第三方业务系统有机地组成一个统一的服务平台,为本项目用户提供一个统一的协作体验。

考虑业主、总承包、各分部工区等各参与方的业务特点,不同参与方使用系统的功能及场景有很大区别。为了满足不同参与方的需求,需要针对不同的参与方的使用场景设计不同的系统。 2 需求管理的概念 2.1软件开发概念

1968年,在NATO组织的一次计算机学术会议上首次提出了软件工程的概念,借鉴工程界严密完整的工程设计原理、原则和方法来进行软件开发,主要包括可行性分析、项目计划与质量管理、需求分析、总体设计、详细设计、程序设计、软件测试、系统实施、软件维护和文档规范等内容。[1]软件开发就是遵循着软件工程的理论基础,将用户需求合理的转化为代码实现的过程,基本上一款软件的生命周期包括需求调研、产品设计、编码实现、软件测试、软件维护,如图1所示。

图1 一般软件开发流程 2.2 需求工程概念的理解

通过软件开发流程的介绍,我们很容易发现,软件需求是软件开发的开端与基础。在软件开发项目的需求分析阶段,开发方和委托方(客户或本单位领导)

必须全面且尽可能细致地讨论并确定项目的应用背景、功能要求、性能要求、操作界面要求、与其他软件的接口要求以及对项目进行评估的各种评价标准。在进行需求分析时,可以首先分析客户原有系统的建设情况,对客户的原有产品进行分析,明确建设目标等等。

软件开发具有系统性和工程性的一系列流程,而在需求阶段的各个活动也具有一个统一的名称,也就是需求工程。需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。它通过合适的工具和记号系统地描述待开发系统及其行为特征和相关约束,形成需求文档,并对用户不断变化的需求演进给予支持。[2]需求工程中的活动可分为两大类,分别为需求开发和需求管理,其中需求开发可细化为4个活动,需求管理可细化为3个活动,如图2所示。

图2 需求工程各项活动拆解 2.2.1软件需求开发过程

(1)需求调研,也称作需求获取,指通过各种途径来获取客户(购买者、使用者和影响者)的原始需求。需求调研的方法有:与用户交流,向用户提出问题,参观用户的工作流程,观察用户的操作,用户工作的情景分析;现有系统的问题报告和改进要求、事件和响应;市场调查或向用户群体发调查问卷;与同行、专家交流,听取他们的意见;分析已经存在的同类软件产品,提取需求;从现有产品或竞争产品的文档中提取需求;从行业标准,规则中提取需求;从Internet上搜查相关资料等。其中,软件产品的直接用户参与的需求调研具有极其重要的作用,一项通过对8380个软件项目的调查发现,导致软件项目失败的最主要的两个原因是缺乏用户参与和不完整的需求以及不完整的需求规格说明书(Standish 1995)。[3]

(2)需求分析,产品经理对用户需求进行汇总、分解和梳理,通过需求规格书的形式进行书面化表达,并最终得到用户的进一步确认。分析要素包括功能需求、性能需求、接口需求、可靠性需求等,分析的方法主要有结构化分析法、数据流程图、数据字典等方法。

(3)需求文档编写,在前面所做工作的基础上,完整的按照客户要求,以结构化和可读性方式编写客户需求文档,即《需求规格说明书》,整个项目参与人员必须都要依据《需求规格说明书》开展后续的设计、开发和测试等工作。

(4)完成需求文档的编写并不代表已完成需求开发阶段的工作,还要需要保证所编写文档的质量,也就是需求验证,主要围绕编写文档的质量特性展开,包括正确性、无二义性、完整性、可验证性、一致性、可修改性和可跟踪性等。验证需求文档质量的主要手段有需求评审和软件测试,需求评审意指《需求规格说明书》由项目的风险承担者、需求提出人及部分用户等评审通过后,各方人员才能确信他们所赞同的需求是可靠的;软件测试即是对需求的第二次验证,只有根据《需求规格说明书》开发的软件功能满足各方使用需求才能证明需求的质量。 2.2.2软件需求管理

需求管理是CMM(Capability Maturity Model for Software)第二级(可重复级)的第一个关键过程域,它不涉及软件项目需求的收集和分析。需求管理

(Requirement Management)的目的是在客户与开发方之间建立对需求的共同理解,维护需求与其他工作成果的一致性,并控制需求的变更。[4]简单地说,需求管理就是要确定便于所有人理解的需求,稳定软件需求并说明需求的更改对项目成本和进度的影响。在此,将需求管理主要划分为三个活动,即变更控制、版本

控制、需求跟踪。

(1)需求变更是指在软件需求基线已经确定后又要增添新的功能或进行较大的改动,而变更控制是指对需求变更从提出变更申请、变更评估到变更的具体实施进行控制的过程。在需求变更过程中,需要修改原文档中不正确的内容,从而产生新的需求文档,所涉及的问题不仅仅是需求变更变身,而更要注意迟到的需求变更是否会对已进行的工作存在较大的影响;假如不加以控制,就会导致项目开发人员不断采纳新的需求,不断地调整项目计划,最终影响整个项目的进度、成本以及质量,使项目存在失控的风险。

(2)版本控制指的是需求文档的版本控制,其目的在于保证需求文档中记录和反映所有的需求变化,确保每个项目成员都能准确得到最新的需求,避免因需求版本的混淆导致项目进度滞后。需求文档的版本控制要求每一个公布的需求文档应该包括一个修正版本的历史状况,即变更内容、变更日期、变更人姓名、变更原因等,同时设定统一的版本号,如图3所示。

图3 需求文档版本记录示例

(3)需求跟踪活动贯穿于“设计文档→代码编写→产品测试”等阶段,每一个阶段都通过与需求文档进行比较,建立与维护“需求文档→设计文档→代码编写→测试用例”之间的一致性,确保产品依据需求文档进行开发。[5]当项目的需求发生变化时,使用需求跟踪可以确保不忽略每个受到影响的系统元素,明确此次变更对其他需求是否存在影响,保证需求变更的准确实施,进而降低由变更所带给项目的风险。

在需求管理中,我们常用到的是需求的正向跟踪和逆向跟踪,正向跟踪定义为检查需求文档中的每个需求是否都在后续工作成果中找到对应点,反过来,逆向跟踪可以定义为检查设计文档、代码、测试用例等工作成果是否都能在需求文档中找到相应的出处。[4]综合正向跟踪和逆向跟踪,我们可以理解为这是需求与成果间的相互验证,如图5和图6所示。

图4 正向追踪 图5逆向追踪

3 基于BIM的项目管理平台的研发需求管理 3.1 项目特点

通过项目管理平台的建设,满足项目各参与方能应用该平台开展各项工程项目管理工作,并将项目实施的各个阶段的所有数据、资料实时、完备地记录在平台中,并与三维模型关联。总体目标就是要实现项目各参与方之间的信息共享,支撑地铁建设的多专业协同工作,能够对施工进度、质量、资源、成本、安全和场地进行有效、动态、可视化的管控,实现基于数据的动态集成管理;通过制定电子化集成交付标准,将设计、施工信息集成,用于交付运维,降低运维成本,提升管理与决策水平。

本项目涉及地铁建设的各参与方,所以我们在业务需求调研上必须考虑业主、总承包、各分部工区、监理单位等各参与方的业务特点,不同参与方使用系统的功能及场景有很大区别,需要 制定满足各方需求的工程业务流程。同时,项目管理系统管理人员多为工程人员出身,对系统研发管理经验不足。另一方面,为了满足不同参与方的需求,调研工作经常需要对接不同单位的业务人员,需要梳理各方提供的大量资料,最终得出能够满足参与方的业务需求方案。综上所述我们不难发现,本项目的需求管理工作的特点在于“难”与“复杂”,所以,我们更需要一个完整且适合本项目的需求管理机制。

3.2 需求开发及管理过程

本项目中的需求管理方式依托于第二章的软件需求管理工程描述,实际的实施过程中包含了软件需求工程中的所有步骤,下面进行逐一描述。 (1)需求调研

于第二章中我们列举了各种需求获取途径,基于本产品只适用于固定范围的用户群的特性,最方便的需求获取方式便是调研用户,并且本产品的最终、最基础的用户为各个承包商的工作人员,所以我们着重开展对这些用户的调研,即“从用户中来到用户中去”。在调研过程中,对用户提出的信息化管理需求进行详细的原始记录,主要包含对业务需求描述、用户的要求、业务流程、该功能所涉及的用户角色以及相应的功能权限,若该业务功能涉及到表格文件,应当要求用户提供这些文件,如图6所示,以质量安全管理功能的需求记录为例。

图6 质量安全管理功能需求记录

(2)根据调研用户的原始记录,对用户需求进行整理、筛选、理解和分析工作,并结合企业相关业务的管理规定、操作规程、行业标准或规范等,对用户所提出的需求合理性进行初步的分析、判断和筛选,并转化成信息化语言形成详细的用户需求描述。需求分析包括业务需求分析和功能需求分析,在业务需求分析阶段,我们通常通以流程图和数据流的方式,梳理各个功能所涉及的业务流程以及采集哪些数据、输出哪些数据,明确数据的格式等,如图7、图8、图9所示;而在功能需求分析阶段,主要分析用户需要在系统实现怎样的功能以及描述整个操作过程,如图10所示的功能用例。

图7 物资进场报审验功能的业务需求分析 图8 物资进场报审验功能的业务流程分析

图9 某功能的数据采集要求梳理 图10 物资进场报审功能的描述 (3)编写需求文档

通过整合需求调研及需求分析的内容,形成需求文档。这里所指的需求文档与产品需求文档不同,最明显的区别是,这里的需求文档不涉及界面原型和交互内容,因为界面原型和交互涉及的内容深入到细节,修改频次和内容数量都很多,会使文档变得不易维护。同时,需求文档的内容变得庞大和复杂,并且会让文档的可读性变差。当然,这里的需求文档会包含需求名称、版本记录、业务背景、需求分析等四大块内容,如图11所示。

图11 需求文档主要结构示意 (4)需求验证

在需求文档编写完成以后,须将经过项目负责人、需求提出人、需求记录人和最终用户共同开会评审,并出具相应的评审会议纪要,作为项目推进的重要证明材料。评审通过后,应用开发人员须将《需求分析文档》及时进行归档,作为下一阶段工作的依据。这一步的工作会暴露出研发单位的需求分析人员对需求的理解程度,但也确保了后续研发出的功能能够满足用户的使用需求,避免出现已研发或已上线的功能需要经常“回炉重造”的情况,也是软件研发项目过程中重点关注的步骤。

图12 需求评审会议纪要示例

(5)需求管理

谈到需求管理,最直观的联想到的是需求池和优先级,这也是需求管理的核心。所谓需求池,顾名思义就是存放需求的地方,不同状态的需求放置于不同的需求池子中,而需求的状态一般包括筹备中、待排期、待开发、开发中、待测试、测试中、待上线、已完成等。需求池中最重要的也最熟悉的元素是优先级,需求分析人员在分析需求时,需要对各个需求进行评估并确定优先级。

在本项目中,我们以“禅道系统”中的需求管理模块作为我们的需求池,需求提出人在该系统上进行需求描述,并指派给研发需求开发人员进行分析、编写需求文档等工作。使用禅道管理平台的好处是各方可以实时掌握某个需求的状态,也避免了某些需求来源不一或不知去向的情况发生。

图13 本项目中所涉及需求管理平台 4 总结

本项目是广州市轨道交通十八和二十二号线基于BIM的项目管理平台研发项目,项目的部分参与者并不具备软件开发的基本知识,所以运用科学且系统的需求开发和管理手段,在参与方众多的地铁建设管理平台研发项目中,能够快速且有效的开展软件开发工程的首要工作,有效引导各方配合及解决项目开展中所遇到的阻碍。本文首先介绍了需求工程的概念,接着介绍在本项目需求开发阶段的工作在需求工程各个阶段的体现,以需求工程为基础管理的需求能有效减少需求的变更,进而在需求开发阶段保证了软件产品本身的质量,同时避免因需求频繁变更导致的研发进度滞后的情况发生。 参考文献:

[1]曲宝胜,王晓丹,QuBaosheng,et al.软件开发流程方法探析[J].智能计算机与应用,2008(1):62-63

[2]田忠,钱乐秋.需求工程综述[J].计算机应用与软件,1996(5):16-22.

[3]史川军.面向对象的软件需求工程及其在MIS系统的应用[D].电子科技大学,2001.

[4]龙能.基于CMM的软件需求管理平台设计与实现[D].吉林大学,2004. [5]杨海平,黄会民,YANGHai-ping,et al.软件开发需求工程研究[J].信阳农林学院学报,2005,15(1):44-45.

因篇幅问题不能全部显示,请点此查看更多更全内容