[基于生命周期的软件项目知识管理模型研究] 项目生命周期模型

发布时间:2020-03-07 来源: 幽默笑话 点击:

  [摘要]从项目知识生成过程和应用过程出发,分析软件生命周期各阶段知识构成,应用系统工程理论,提出面向时间维、管理维和知识维的三维项目知识管理模型构架,实现项目知识的有效划分和集成;建立基于生命周期的软件项目知识管理模型和知识地图,解决项目开发过程中知识流失和知识检索效率低以及在庞大的知识库中难以找到与主题密切相关知识的问题。提出知识有效度测度模型,为识别项目知识的可用性提供一种新方法。案例表明,该模型能提高软件项目知识管理系统的开发和使用效率。
  [关键词]软件项目 软件项目生命周期 知识管理模型
  [分类号]F270.7
  
  1 引言
  
  知识管理是一种系统化的特定组织过程,它提供了一种知识在组织内如何被组织和使用的管理框架。软件项目知识管理是一项复杂的系统工程,从知识的构成来看,不仅包括软件产品业务领域的知识,还包括项目管理领域的知识以及计算机软硬件知识;从项目的知识载体来看,既有结构化程度较高的电子数据信息,也有非结构化的文档信息,如系统需求分析报告、系统设计说明书等;从知识管理的环节来看,包括知识的获取、检验、存储、使用、共享、查询和创新,这些都给软件项目知识管理增加了难度。同时,软件企业往往在项目结束、总结项目经验、构建项目知识库时,对于较长生命周期的软件项目知识,经常遗忘或流失,尤其是项目生命周期早期阶段形成的知识。现有的项目知识管理系统存在许多缺陷,如知识库规模庞大,关系复杂,项目背景知识难以搜索等。软件项目知识来源于项目的开发与应用过程,项目知识管理必须以系统论为指导,采用不同技术方法促进整个流转过程的顺利进行。本文提出的基于生命周期的软件项目知识管理模型将能克服以上缺陷,实现知识快速查询和重用,具有重要的现实意义。
  
  
  2 软件项目生命周期及知识构成
  
  2.1 软件项目生命周期
  软件项目生命周期指从项目立项、开发、应用到项目退出以及新系统开发的全过程,本文将软件项目生命周期划分为项目立项、系统规划、系统分析、系统设计、系统实施、系统运行维护和系统评价7个阶段,按照各阶段知识特征以及关联的紧密程度,可以概括为软件项目招投标、软件项目开发和项目运行维护等三个主要阶段,各个阶段的逻辑顺序关系如图1所示:
  软件经过若干年应用,随着技术的进步、组织业务的变迁,经过系统评价后,不再满足当前业务的需要,将开始新的项目开发请求,进入新一轮的生命周期。新的项目生命周期各个阶段知识的内涵有着明显的不同:①招投标阶段主要包括对供应商评价、软件组织评价、项目的可行性分析以及子系统划分等方面的知识;②软件项目开发阶段主要包括项目管理、相关的软硬件技术和组织管理方面的知识;③项目运行维护阶段主要包括软件应用、管理维护和软件性能评价方面的知识。与传统工程项目不同的是软件项目各个阶段知识具有较强的逻辑关系,如系统分析阶段形成的逻辑模型知识与系统设计阶段形成的物理模型知识具有一定的映射关系。
  
  
  2.2 基于生命周期的软件项目知识构成
  软件项目是知识密集型项目,由于项目开发过程和软件产品(包括阶段性产品)的不可视性,过程知识的形成和管理相对复杂,不同团队开发不同项目又有较大的差异性,增加了知识管理工作的复杂性。软件项目开发有三类信息需要进行管理:①项目的基本信息,如项目的名称、特征、分类等信息;②软件项目开发过程本身的信息,如项目开发过程的阶段划分、各类资源分配、质量、进度和范围等信息,系统规划、分析和设计等一系列方法以及软件组件、文档以及软件开发过程中积累的经验等;③过程的动态信息,即在项目进行中的某个过程是如何进行的,如在进行中遇到了什么问题,采用了什么样的方法解决,解决的过程和效果如何。软件开发人员经常需要具有逻辑相关和一定背景的系列知识,而不是孤立的知识元,因此,本文从项目生命周期的视角对知识分类,在知识管理系统设计中着重考虑知识的逻辑性以及相关背景知识。通过研究现有文献、软件项目专家和项目开发人员访谈,本文界定软件生命周期各阶段知识的构成如表1所示:
  
  3 软件项目知识管理的三维模型构架
  
  系统工程是解决大型复杂系统的规划、组织、管理问题的思想方法,软件项目开发周期较长、涉及的专业领域较多、知识内容复杂、管理过程繁琐,因此,结合软件生命周期理论,应用霍尔的系统工程原理,建立基于时间维(T)、管理维(M)和知识维(K)的软件项目知识管理的三维模型,如图2所示:
  ?时间维,即软件项目生命周期,包括软件项目立项、系统规划和系统评价7个阶段;在项目开发过程中,根据项目的具体分工,各个阶段还可以设置若干个里程碑事件,如图3所示:
  
  ?管理维,即项目的范围管理、时间管理、成本管理、质量管理、风险管理、人力资源管理、沟通管理、采购管理、集成管理9个环节,各领域均有相应的知识内容。
  ?知识维,包括计算机物理平台、基础软件平台、软件开发平台、应用业务和软件项目管理工具集等5类知识。
  
  4 基于生命周期的软件项目知识管理模型运行机理
  
  我国软件行业正由手工作坊模式向工业化生产模式转变,软件项目开发分工越来越细,专业化分工要求项目开发人员掌握本分工阶段的知识,了解前导阶段和后续阶段以及相关领域的知识。对于大型软件项目,按照软件生命周期阶段(或里程碑节点)进行项目分工是软件组织一个基本模式,因此,为保证软件项目知识的完整性和一致性,应对生命周期的每个阶段或里程碑节点处实施知识获取、存储、共享、应用、检验和创新(见图3):①在管理维和时间维(或里程碑节点)的每一个集合点,产生知识维的各类知识和阶段性软件产品(如文档、组件等),项目知识应在里程碑节点处进行收集、整理和内化。②集成管理。知识管理是一种寻求目标的活动,为了开发预期的软件产品,按照软件生命周期的阶段目标,集成其他8个管理领域。随着软件开发过程不断深入,预定的软件开发目标可能会变化,并且软件开发人员沟通过程中,在项目时间维(T)的多个开发阶段与管理维(M)的不同管理过程交叉产生新的知识,集成管理一方面生成各个应用领域的综合知识,另一方面有助于对这些知识实现综合管理。③软件用户层面知识涉及到软件项目开发个人、团队和组织知识,具有综合性和直观性,这个层面的知识往往以问题和建议或软件缺陷的形式表现。④为了实现知识的分类存储和检索,提高项目开发人员的知识管理效率,一方面将知识按照应用层次分为计算机物理平台、基础软件平台、软件开发平台、应用软件业务、软件项目管理工具集;另一方面还考虑知识的生命周期属性以及针对特定软件项目各应用层次和各个阶段知识的逻辑相关性。⑤基于生命周期的软件项目知识管理流程,由于研究的侧重点以及视角的不同, 软件项目知识管理机制也存在很大差异,但知识的具体管理过程是通用的,笔者在文献[2]中做了详细的研究和论证。
  
  5 软件项目知识管理原型系统
  
  5.1 软件项目知识管理系统物理模型
  基于生命周期的软件项目知识管理原型系统,分为知识产生层、知识管理层和知识应用层(见图4):
  ①知识产生层包括在项目生命周期的各个阶段(或里程碑事件的节点处),由软件项目开发人员总结项目进程中产生的新知识,按照一定的规则填录到知识管理系统中;应用语义处理工具、智能分析工具、分析定制工具和知识管理工具,将开发人员的知识内化到软件项目知识库(KB);②知识管理层包括数据库(DB)和数据库管理系统(DBMS)、模型库(MB)和模型库管理系统(MBMS)、知识库(KB)和知识库管理系统以及方法库(AB)和方法库管理系统(ABMS),完成知识的管理工作;③知识应用层通过用户界面、集成接口、知识地图、查询和共享工具完成项目相关人的知识请求。该物理模型中的知识生成者也是未来的知识用户,因此,更有利于丰富和检验项目知识库内容,保证知识的正确性。
  
  5.2 建立基于项目生命周期的知识地图
  知识元模型包括软件组织基本信息、项目基本信息、文档信息、软件产品信息和文件夹信息等。元模型是构成基于项目生命周期的知识地图基本单位,如图5所示:
  其工作机理:①知识用户首先提出需求的领域知识(包括计算机硬件类、软件类、应用业务和管理工具类)以及知识应用的生命周期阶段,知识地图自动映射到相应的知识目录;②建立目录内各条款之间的关系以及与管理维的关系;③项目知识管理层根据用户知识请求,集成相应的知识元模型,并返回知识的调用结果。
  
  5.3 项目知识有效度测度模型
  对于软件项目开发过程中的同一问题,经常会有不同的知识解决方案,各个解决方案的效果也是不同的,知识用户往往很难判断各知识元的应用效果,基于项目生命周期的知识管理模型引入知识有效度(E(i))的概念。知识有效度是指某知识元的累计使用效果,由该知识使用频次和使用效果评价值的算数平均值计算。第i个知识元的第k次使用效果为e(i),则该知识元有效度E(i)=∑e(i)/k。项目知识的使用人员在每次知识使用后,给出本次的使用效果值(0~1),系统自动计算该知识元的效度和使用频次。这样为今后的系统开发人员识别知识元的可用性提供了参考依据。
  
  5.4 案例研究
  笔者在为山东某软件企业项目知识管理系统版本升级时,应用了基于生命周期的软件项目知识管理模型。按照本文的逻辑模型和物理模型,在系统数据库设计时,建立与之相适应的库表结构,增加了知识元的项目属性、知识的生命周期前导阶段和后续阶段属性、项目的背景信息、知识的三个维度的属性以及知识的效度评价。
  5.4.1 知识管理模型定义 知识管理模型中定义了领域知识类(Domain Information Class,DIC)、项目生命周期信息类(Lifecycle Information Class,LIC)、项目管理知识类(Project Information Class,PIC)、软件项目信息类(Software Project Information Class,SPIC)和知识元信息类(Knowledge Unit Information Class,KUIC)5种信息类。5个信息类之间存在继承、包含等关系(见图5),各类信息类的属性定义如下:
  DIC[领域(Domain_ID)、领域名称、备注);LIC[项目生命周期阶段(Lifecycle_ID)、阶段名称、备注];PIC[管理(PM_ID)、管理名称、备注];SPIC[项目(PmjectID)、项目名称、项目类别、开发环境、开始时间、结束时间、项目关键词];KUIC[知识元(KU_ID)、Domain_ID、Lifecycle jD、PM_ID、PM_ID、知识内容、类别、任务、过程、资源、产品/服务、执行者、时间、地点、关系、项目知识效度E、相关项目ID,相关知识(KU_ID)]。
  5.4.2 主要模块
  ?知识管理工具,实现5个信息类的编辑、添加、修改、删除等基本功能以及软件项目知识库、知识检索模型库、方法库和软件组织数据库管理、构建和维护等操作。在软件项目开发过程中,根据项目知识所属的生命周期阶段、所属领域、管理范畴等关键性信息,创建各阶段各层次的软件产品知识和软件项目过程知识,实现知识的编辑、添加等处理流程,并建立相应的数据库和文档信息对象与其关联,以形成软件组织知识库,其中的文档包括项目生命周期中各类开发文档和阶段性产品(源程序代码),是软件项目知识库中知识的主要表现形式,简化了知识的表现形式,规范了软件项目知识管理。
  ?软件项目知识共享工具。软件项目知识共享工具为项目开发人员提供软件协同开发、同步数据传送、实时的知识获取、软件知识元搜索、不同用户角色的权限控制和知识库版本控制等多项功能的基础支撑工具,能够解决不同软件项目开发团队成员的知识共享难问题。
  ?知识查询应用:①根据开发人员提供的项目生命周期、应用领域和项目管理范畴等关键信息对需要检索的知识进行自动过滤,有助于项目人员迅速准确地获取不同开发阶段所需的项目知识;②整理和查询软件项目开发和实施过程中常见问题及其解决方案;③支持开放式和协作式编辑,允许具有权限的项目开发团队成员动态增加新的项目问题及其参考解决方案;④支持项目开发人员对知识元的应用效果进行评价。
  ?主要接口:①用户界面,为项目开发人员和项目干系人提供友好的人机交互界面,完成对知识管理基础设施的配置和管理功能;②智能分析接口,提供标准方法完成项目开发各类信息分析和知识挖掘程序的调用;③应用集成接口,实现本系统与软件组织其他应用系统的集成,获取软件项目的相关知识;通过引入知识分析集成框架可以方便项目开发人员灵活地定制各种知识分析和知识挖掘工具,用来集成项目干系人的知识管理和应用程序组件。
  5.4.3 系统开发平台 采用基于浏览器/服务器(B/s)的模式,构建基于生命周期的软件项目知识管理平台。系统开发工具采用了JAVA+Javabeans+Ora-cle,并配以JAVA Applet实现。
  从系统的开发和应用效果来看,开发人员根据项目的进程实时地(或定期)整理描述新生成的知识,并追加到系统的知识库,增强了知识的时效性;按照领域和生命周期目录检索知识,使知识的检索效率有明显的提高;增加了项目知识背景信息和知识效度评价,便于开发人员快速识别当前获取的知识是否满足项目开发的需要,提高了软件项目的知识(如软件组件)的重用效率;按项目生命周期进行知识的收集内化,避免了知识的重复整理录入,减少了系统知识库的冗余和有效地控制了知识库规模庞大的问题,使知识库的结构更加优化。
  
  6 结语
  
  基于生命周期的软件项目知识管理模型,根据项目知识形成的过程,合理地划分了知识的分类;各阶段知识的收集、内化由系统开发人员自行完成,规范了知识的生成过程,解决了知识遗忘或流失问题,同时也使分散在生命周期各个阶段的知识得以紧密的链接与传递。系统逻辑模型实现了项目知识的时间维、管理维和知识维有机整合,确保项目知识的完整性,实现知识的有效积累;物理模型促进了项目开发过程知识的流转,使得知识的获取和应用更具弹性;基于生命周期的软件项目知识管理地图建立,实现了软件组织对庞大知识库的分类管理,使得知识在传递与储存的过程中能准确无误地被处理,解决了传统搜索方法不能提供足够背景和相关知识信息的问题,更符合软件组织知识管理的需求。

相关热词搜索:知识管理 生命周期 模型 基于生命周期的软件项目知识管理模型研究 研发项目生命周期模型研究 产品生命周期

版权所有 蒲公英文摘 www.zhaoqt.net