PDM的软件项目管理

【导读】
PDM(Product Data Management,产品数据管理)技术,最早出现在20世纪80年代初期。当时,随着CAD/CAM/CAE/CAPP技术的日益成熟,企业出现大量的电子图档,而且电子图档在数量上呈指数级增长
2.1产品数据管理(PDM)
2.1.1 PDM的基本概念

    PDM(Product Data Management,产品数据管理)技术,最早出现在20世纪80年代初期。当时,随着CAD/CAM/CAE/CAPP技术的日益成熟,企业出现大量的电子图档,而且电子图档在数量上呈指数级增长。因此,如何有效地管理这些文档就成为企业必须面对的问题。这种需求,直接导致了PDM原型技术的出现。

 
 
    著名的咨询机构CIM data对PDM的是这样定义的:“PDM是一门管理所有与产品相关的信息和过程的技术。”而Gartner Group对PDM的定义则为:“PDM是一个使能器,它用于在企业范围内构造一个从产品策划到产品实现的并行协作环境,一个成熟的PDM系统能够使所有参与创建、交流以及维护产品设计意图的人员在整个产品生命周期中自由共享与产品相关的所有异构数据,如图纸与数字化文档、CAD文件与产品结构等。”

    PDM是以软件技术为基础,以产品为核心,实现对与产品相关的数据、过程、资源集成管理的技术。PDM的核心思想是数据共享、人员协同和过程优化,是企业信息集成和协同产品开发的平台。PDM系统以管理产品数据为基础,通过控制与这些信息相关的过程和人员,确保用户在需要的时候能够访问到正确的信息,并提高用户和用户之间以及应用与应用之间的信息反馈速度,从而达到缩短产品的开发周期、降低成本、提高质量和改善产品性能的目的。

    产品数据管理(PDM)是一门管理所有与产品相关的信息(包括电子文档、数字化文件、数据库记录等)和所有与产品相关的过程(包括工作流程和更改流程)技术。它提供产品全生命周期的信息管理,并可在企业范围内为产品设计与制造建立一个并行化的协作环境。


2.1.2 PDM的体系结构
    PDM的体系结构可以分为四层,它们分别是用户界面层、功能模块及开发工具层、框架核心层和系统支撑层,如图2-1所示。 
 
图2-l PDM体系结构

    1、用户界面层
    向用户提供交互式的图形界面,包括图示化的浏览器、各种菜单、对话框等,用于支持命令的操作与信息的输入输出。通过PDM提供的图视化用户界面,用户可以直观方便地完成管理整个系统中各种对象的操作。

    2、功能模块及开发工具层
    PDM为用户提供的主要功能模块有系统管理、电子仓库与文档管理、工作流管理、零件分类与检索、工程变更管理、产品结构与配置管理、集成工具等。

    3、框架核心层
    提供实现PDM各种功能的核心结构与架构,由于PDM系统的对象管理框架具有屏蔽异构操作系统、网络、数据库的特性,用户在应用PDM系统的各种功能时,实现了对数据的透明化操作、应用的透明化调用和过程的透明化管理等。

    4、系统支撑层
    以目前流行的关系数据库系统为PDM的支持平台,通过关系数据库提供的数据操作功能支持PDM系统对象对底层数据库的管理。


2.1.3 PDM的主要功能
    各软件商提供的PDM系统一般包括以下几个基本功能:
    l、数据仓库和文档管理
    数据仓库和文档管理功能是PDM的核心,由数据以及指向描述产品不同方面的物理数据和文件的指针组成,它为PDM控制环境和外部(用户和应用系统)之间的传递数据提供一种安全的手段。一个完全分布式的数据仓库和文档管理功能允许用户迅速无缝 地访问企业的产品信息,而不用考虑用户和数据的物理位置。它包括文件检.N(Check—in)和检出(Check.out),按属性搜索机制,动态浏览/导航能力,分布式文件管理/分布式仓库管理,安全机制(记录锁定,域锁定)。

    2、工作流程/过程管理
    该功能是用来定义和控制人们创建和修改数据的方法,它主要管理当一个用户对数据进行操作时会发生什么,人与人之间的数据流动以及在一个项目的生命周期内跟踪所有事务和数据的活动。它为产品开发过程的自动管理提供了保证,并支持企业产品开发过程的重组以获得最大的经济效益。它主要包括下面几方面的功能:面向任务,临时插入或变更的工作流;规划驱动的结构化的工作流;触发器、提醒和报警;图形化工作流设计工具。

    3、设计检索和零件库
    该功能是为最大程度地重新利用现有设计创建新的产品提供支持,这样可以充分发挥和利用设计人员已有的经验和智力财富,快速设计新的产品。其功能主要有:零件数据库接口;基于内容的而不是基于分类的检查;构造电子仓库属性编码过滤器功能。

    4、项目管理
    目前,多数PDM系统只能提供有限的项目管理功能。PDM应提供用于项目计划的工具,辅助企业进行项目的周详计划,帮助企业在计划中明确项目的目标、任务间的制约关系,发现其中的缺陷,进行资源的合理调度。仅仅只有一个周详的计划,对于成功的项目管理是不够的,成功的项目管理还需要一个强有力的监督、监控手段来保证任务的有效执行。

    5、CAD/CAM/CAE/CAPP等单元技术的集成平台
    随着计算机应用的日益广泛和深入,人们发现,只有当CAD系统一次性输入的信息能在后续环节(如CAM,CAE,CAPP)中一再被应用才是最经济的。目前,PDM系统是最好的4C集成平台,它支持分布、异构环境下的不同软硬件平台、不同网络和不同数据库,不同的CAx系统都可以从PDM中提取各自所需的信息,再把结果放回PDM中,从而真正实现了4C的无缝集成。





2.2软件项目管理
    从软件工程的角度讲,软件生存期(软件孕育、诞生、成长、成熟、衰亡的过程) 包括六个阶段:制定计划(Planning)、需求分析和定义(Requirement Analysis and Definition)、软件设计(Software Design)程序编写(cod啦Programming)、软件测试(Testing)和运行/维护(Running/Maintenance)。


2.2.1软件需求管理
    IEEE在1997年的软件工程标准词汇表中定义需求为:
    →用户解决问题或达到目标所需的条件;
    →系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力;
    →一种能反映以上两点所描述的条件或权能的文档说明。

    IEEE从用户角度(系统的外部行为)和开发者角度(系统内部特性)来阐述了需求。简单地来说,需求就是开发者和使用者对要开发实现的产品达成共识。

    软件需求在软件项目中占有重要地位,它是一个软件项目的开端,也是软件设计和软件实现的基础。随着软件系统规模的扩大,软件需求在软件项目中越来越重要,直接关系着软件项目的成败。在以往失败的项目中,80%是由于需求分析的不明确而造成的。因此,一个软件项目成功的关键因素之一就是对需求分析的把握程度。而软件项目的整体风险往往表现在需求分析不明确、业务流程不合理方面。
 
    Standish Group对美国8380个软件应用项目进行了调查,访问了365个软件开发者,得出了一些软件成功和失败的因素,其中,导致软件项目成功的前3个因素是:用户参与率(15.9%)、行政管理人员的支持和清晰准确的需求说明(13.0%)。而在导致项目可能失败的因素中,与需求相关的两个因素也被视为影响项目成功的罪魁祸首:不完整的需求或者规范为12.3%,不断变化的需求或者规范为11.8%。这些事实都说明了需求分析在软件工程中的重要地位。

    软件需求管理是一种获取、组织并记录软件需求的系统化方案,同时也是一个使客户与项目团队不断变更的软件需求达成并保持一致的过程。它分为需求获取、需求建模、形成需求规格和需求验证四个独立的过程。


2.2.2软件项目计划管理
    1、软件项目计划
    软件项目计划是软件项目活动的基础,它是开发一个软件项目的行动蓝图,体现了 对客户需求的管理,并为软件项目的开发提供了可行的计划。软件项目计划是软件项目进入系统实施启动阶段时,跟踪、监督、评审计划执行情况的依据。制定周密、简洁和精确的软件项目计划是成功地开发软件项目的关键,完善的软件项目计划常常会事半功倍。

    软件项目计划管理过程可以分为计划初始阶段、计划制订阶段、计划审查和批准阶段、计划实施阶段、开发过程度量和评价以及修改计划阶段六个阶段。

    2、软件项目规模度量
    软件项目估算是指提交给客户的软件系统的规模、完成它所需要的工作量和成本估计。软件规模估算是进行工作量估算、进度估算以及成本估算的前提条件。为了估算软件项目的工作量和完成期限,首先需要预测软件规模。目前,国际上已有许多软件规模估计方法和模型,如代码行(Line of Code)、功能点(Function Point)、特征点(Feature Point)、对象点(Object Point)、德尔菲(Delphi)、模糊逻辑(Fuzzy Logic)、标准构件法(Standard Component)、用例点(Use Case Point)等,每个方法和模型都有其适用的环境、时机和限制。这里主要介绍常用方法:代码行和功能点。

    →代码行
    代码行LOC是一种定量估算软件规模的方法。该方法是估计实现一个功能需要的源程序行数,它依据的是以往开发类似产品的经验和历史数据。因此,当有类似项目的历史数据可供参考时,用该方法估计出的数据比较准确。最后只要把实现每个功能需要的源程序行数累加起来,就得到实现整个软件需要的源程序行数。

    →功能点
    功能点技术依据对信息域特性和软件复杂性的评估结果来度量软件规模。此度量方法的注意力主要用功能点(FP)为单位,度量软件规模。功能点技术定义了信息域的5个特性,分别是输入项数(Inp)、输出项数(Out、查询数(Inq)、主文件数(Mat)和外部接口数(Inf)。 
 
    3、软件项目成本估算
    软件项目成本估算是对完成软件项目所需要的费用的估计和计划,是软件项目计划中的一个重要的组成部分。要实现成本控制,首先要进行成本估算。成本估算的模型通常静态单变量模型、动态多变量模型和构造型模型等。

    (1)静态单变量模型
    静态单变量模型的总体结构形式如下:

    其中,A、BC是由经验数据导出的常数,E是以人月为单位的工作量,ev是估算变量(LOC或FP)。此外,大多数模型都有某种形式的调整成份,使得E能够依据项目的其他特性加以调整。 

    对于相同的KLOC和FP值,用不同模型估算可以得出不同的结果。主要原因是,这些模型多数都是依据若干应用领域的有限项目的经验数据推导出来的,适用范围有限。因此必须根据当前项目的特点选择适用估算模型,并根据需要适当地调整估算模型。

    (2)动态多变量模型
    它是根据4000多个当代软件项目中收集的生产率数据推导出来的。这种模型把工作量看作是软件规模和开发时间这两个变量的函数。由此可以看出,开发同一个软件(即LOC固定)的时候,如果把项目持续时问延长一些,则可降低完成项目所需要的工作量。

    (3)COCOMO模型
    软件开发依据开发成本估算模型进行成本估算。成本估算模型的开发通常采用经验公式来预测软件项目计划所需要的成本、工作量和进度。在公开发表的估算模型中,COCOMO模型被广泛地接受和使用。所谓COCOMO模型就是Boehm提出的构造性成本模型,它是一种层次结构的软件估算模型。Boehm的模型层次具有以下形式。

    →基本COCOMO模型,把软件开发工作量作为程序规模的函数来计算,程序规模用估算的代码行表示。

    →中级COCOMO模型,把软件开发工作量作为程序规模及一组“成本因素”的函数来计算,其中成本因素包括对产品、硬件、人员及项目属性的主观评价。

    →高级COCOMO模型,包含了中级模型的所有特性,并结合了对成本因素对软 件工程过程中每个步骤地影响评估。

    (4)Putnam模型
    Putnam模型是Putnam于1978年在来自美国计算机系统指挥部的200多个大型项目数据的基础上推导出来的一种动态多变量模型。


2.2.3软件进度管理
    软件项目的进度安排是一项活动,它通过把工作量分配给特定的软件工程任务,并规定完成任务的起、止日期,从而将估算的工作量分布于计划好的项目持续期内。进度计划随着时间的流逝而不断演化。最常见的进度计划方法有:Gantt图(横道图)、里程碑图、平衡线和网络图等。其中网络图又包括计划评审技术(PERT)、关键路径法(CPM)、优先图法(PDM)、图形评审技术(GERT)、风险评审技术(VERT)等。

    l、Gantt图
    Gantt图也叫横道图,是历史悠久、应用广泛的进度计划工具,它具有直观简明、容易学习、容易绘制等优点。Gantt图是各种任务活动与日历表的对照表。它用水平线段来表示任务的工作阶段,其中线段的长度表示完成任务所需要的时问,起点和终点分别表示任务的开始和结束。图2.2就是Gantt图的一个实例。 
 
图2-2 甘特图

    Gantt图能形象地描绘任务分解情况,以及每个任务的开始时间和结束时间,清楚地表明了项目的计划进度,并能动态反映当前开发进展情况。但其也有不足之处:Gantt图不能显式地表示关键路径和关键任务以及任务之间复杂的逻辑关系;每一任务的完成不以能否继续下一阶段的任务为标准,其标准是是否交付相应的文档和通过评审,因此,进度计划的关键部分不明确,难于判断那些部分应当是主攻和主控的对象;计划中有潜 力的部分及潜力的大小不明确,往往造成潜力的浪费。因此,在管理大型软件项目时,仅用Gantt图是不够的,不仅难于制定既节省资源又保证进度的计划,而且还容易发生错误。

    2、PERT图
    计划评审技术(Program Evaluation and Review Technique,PERT)的理论基础是假设项目持续时间以及整个项目完成时间是随机的,且服从某种概率分布,可以估计整个项目在某个时间内完成的概率。其基本原理是用网络图来表达项目中各项活动的进度和它们之间的相互关系,并在此基础上,进行网络分析,计算网络中各项时间的多少,确定关键活动与关键路线,利用时差不断地调整与优化网络,以求得最短周期。然后,还可将成本与资源考虑进去,以得到综合优化的项目计划方案。

    3、工程网络图
    工程网络是制定进度计划时另一种常用的图形工具,它同样能描绘任务分解情况以及每项作业的开始时间和结束时间,此外,它还显式地描绘各个任务彼此间的依赖关系。在工程网络图中用箭头表示任务,用圆圈表示事件。事件仅仅是可以明确定义的时间点,它并不消耗时间和资源。作业通常既消耗资源又需要持续一定时间。图2.3是工程网络图的一个实例。 
 
图2-3 工程网络图

    软件配置管理(简称配置管理)涉及组织、管理各种软件产品及文档和控制其变化的一系列活动,贯穿整个软件生命周期。它是指一套按规则管理软件开发和软件维护以及其中各种中间软件产品的方法,它研究怎样在不同时刻标识软件系统的配置,以便系统化地控制配置的改变,以及在整个软件生命周期内维护配置的完整性和可追踪性。经典的软件配置管理活动包括:

    → 配置识别:反映产品结构,标识产品组件及类型并提供唯一标识; 

    → 变更控制:通过设置基线等方式,控制软件生命周期中软件产品变更;

    → 状态统计:记录报告产品组件及变更请求状态,收集组件的重要数据;

    → 审计和评审:确认产品的完整性并维护产品组件间的一致性。

    软件配置管理包含版本控制、配置支持、构造支持、审计控制、统计报告、变化控制、过程支持和团队支持八方面的功能。

2.2.5软件风险管理
    软件风险是指软件开发过程中存在着大量的需求、技术、人员、过程、组织等方面的不确定性,可能导致软件产品朋臣务的功能不能满足要求、费用超出预算、进度延迟或项目被迫取消等不期望的后果。

    与一般项目相比,软件项目具有更大的不确定性。软件风险管理是对影响软件项目、过程或产品的风险进行估计和控制的实践过程。软件项目开发和管理中一直存在着种种不确定性,严重影响着项目的顺利完成和提交。20世纪80年代,Boehm比较详细地对软件开发中的风险进行了论述,并提出了软件风险管理的方法。
 
    Boelun指出:“软件风险管理试图以一种可行的原则和实践,规范化地控制影响项目成功的风险,其目的是辨别、描述和消除风险因素,以免它们威胁软件的成功运作。”软件风险管理是一项包含风险识别、风险分析、风险计划、风险监督与风险控制的系统过程。软件项目风险管理被认为是管理软件项目特别是管理大型软件项目的最佳实践中最重要的方面。

    目前,经典的软件项目风险管理模型有Barry Boehm的模型、SEI的CRM模型、基于Leavitt模型和Riskit风险管理过程。

    (1)Barry Boehm的模型
    Boehm用公式RE=P(UO)*L(UO)对风险进行定义,其中RE表示风险或者风险所造成的影响,P(UO)表示令人不满意的结果所发生的概率,L(UO)表示糟糕的结果产生破坏性的程度。

    (2)SEI的CRM模型
    SEI(Software Engineering Institution)提出的CRM(Continuous Risk Management)模型要求在项目生命期的所有阶段都关注风险识别和管理,它将风险管理分为5个步骤:风险识别、分析、计划、跟踪、控制。

    (3)基于Lcavitt模型 
    1964年提出的Leavitt模型将形成各种系统的组织划分为4个有趣的组成部分:任务、结构、角色和技术。使用Leavitt模型从4个方面分别识别和分析软件项目的风险是极有条理性和比较全面的。在进行软件项目管理时,可以采用不同的方法对不同的方面进行风险管理。

    Lcavitt理论的设计方法和实现研究己经广泛应用于信息系统中,它所考虑的都是软件风险管理中十分重要的环节,而且简单、定义良好、适用于分析风险管理步骤。

    (4)Riskit风险管理过程
    Riskit方法是fljMaryland大学提出的,旨在对风险的起因、触发事件及其影响等进行完整的体现和管理,并使用合理的步骤评估风险。该方法使用图形形式化的方法支持在定量分析前进行风险情景的定性分析,其评估方法是基于历史数据的或者是对当前项目风险的预测。


2.2.6软件质量管理
    质量是产品的固有属性。软件作为一种特殊的产品,从不同的角度看待软件质量反映了软件质量的多属性与多侧面。因此,对软件质量的定义是采用不同的质量特性来定义的。McCall提出了代表软件的十一种属性:正确性、可靠性、效率、完整性、使用性、维护性、测试性、灵活性、移植性、复用性和共运行性。国际上从20世纪70年代初就开始研究软件的质量控制问题,随着软件质量领域知识的增长,一些重要的国际标准纷纷出台。IS09000和CMM(Capability maturity Model)就是其中最具有代表性的成果。

    软件质量管理包括决定质量决策、质量目标和质量责任的全面管理职能的所有活动,以及通过诸如质量系统中的质量计划编制、质量保证、质量控制和质量提高等手段对这些活动的实施。一个有效的软件质量保证及管理活动主要包括:软件评审、软件测试、软件缺陷跟踪、缺陷预防等。





2.3基于PDM的软件项目管理研究
2.3.1 PDM的核心功能理念
    PDM系统以产品对象为核心,通常建立在关系型数据库的基础上,采用面向对象 的数据存储和组织方式,通过产品本身的组织层次来分解产品信息,使数据易于管理和操作。PDM保证了数据的透明性,不需考虑应用软件的运行路径、安装版本以及用户或数据的物理位置,就可以访问到所需要的以数字方式存储的产品数据信息。PDM系统统一管理所有产品数据,使用版本管理的方法记录下产品开发过程中的各类信息,保证数据的唯一性。

    PDM对产品过程的管理涵盖了产品的整个生命周期,所有的产品信息都通过PDM进行管理,使工作人员和系统都能根据需要,访问正确的数据信息,而且对各个部门人员组织的管理,PDM可以根据规则和要求控制各阶段信息在各部门、工作人员间的流向,有利于建立并行的工作模式。
 
    PDM数据管理的一项最基本的功能理念就是实现数据的共享和流程化监控。保证在PDM软件平台之上实现不同格式数据的转换以及不同模块之间数据的交互与传递。在PDM系统的功能模块中,文档管理是一个基准点,其他的模块比如产品结构管理、工作流管理、项目管理都围绕这一点完善管理流程。


2.3.2 PDM在软件项目管理中的应用
    PDM是一门管理所有与产品相关的信息和过程的技术,PDM的一项最基本的功能理念就是实现数据的共享和流程化的监控。因此,我们可以将PDM技术引入到软件企业中,将软件视为软件企业的产品,通过对软件产品的研制过程分析,对软件项目进行全生命周期管理。本文提出的基于PDM的软件项目管理主要包括以下两点:

    1、管理与软件产品相关数据
    软件项目管理紧密围绕软件项目合理有效地组织项目中的人员,管理项目所需的各种资源和数据,保证软件项目按照计划顺利实施。由于软件产品只是包括程序代码和技术文档,并没有其他的物质结果,所以什么样的文档对应软件项目的哪个阶段,软件项目的一个阶段到另一个阶段的过渡需要传递什么样的文档资料对软件项目的顺利实施是相当重要的。因此,如何对软件项目相关文档在项目开展中合理有效地管理,及怎样在文档管理中以一种合适的状态表征文档与软件项目进展的关系,这些都是在软件项目管理的过程中不可忽视的问题。
 
    文档管理是PDM一项基本功能。首先,PDM通过将文档放置于不同的电子仓库,对不同的用户赋予不同的操作权限,使得他们只能在规定的权限下处理规定范围内的文档,保证各类文档不被非法盗用和修改,从而保证文档在计 算机中的安全性,其次,PDM可以将提供给其他用户共享的文档放置于专门的共享电子仓库中,只有对共享电子仓库具有查询权限的用户才能看到相关的资料。因此,可以将PDM的文档管理引入软件项目管理中,管理所有与软件产品相关的数据。

    软件项目管理覆盖了整个软件企业中的所有过程,包括软件的市场需求分析、软件设计、软件开发、软件销售、软件服务与维护等。基于PDM的软件项目管理可以定义为管理所有与软件产品相关的文档和所有与软件产品相关的过程。它提供软件产品全生命周期的信息管理,并可在企业范围内为软件产品设计与开发建立一个并行化的协作环境。在基于PDM的软件项目管理系统的功能模块中,软件文档管理是一个基准点,其他的模块比如软件计划管理、软件配置管理、软件风险管理管理和软件质量管理围绕这一点完善软件项目管理流程。

    2、管理与软件产品相关的过程
    软件项目管理一般遵循起始、计划、执行/控制和结束的过程。其中,软件项目计划的好坏影响着整个软件项目的成败,它涉及对项目进度、资源、成本进行合理安排。而进度、资源、成本又都与任务相关,因此,任务是软件项目管理的基础单元,它包含或关联了诸如资源、成本、进度等各种软件项目信息。
 
    现有的软件项目管理软件大都从项目管理层面看,缺乏业务流程的监控,比如任务进度状态由人工手动更新,任务实际开始和完成时间也由人工控制,随意性很大。因而,对软件项目进度的实时监控以及成本核算等都会产生不利影响,很难实现有效的控制。而业务流程是PDM技术的一个核心,PDM系统可以很好的实现对业务流程的建模、执行和监控,我们可以把PDM的微观业务流程引入软件开发,将微观业务流程及其相关信息作为软件项目管理的基础数据,可以实现任务进度的实时监控,根据任务实际开始和完成时间的记录实现人力成本核算等。


2.3.3系统基本模型设计
2.3.3.1组织模型
    组织模型是每个软件企业具有的组织结构和开发运营方式的抽象。组织模型描述软件企业的组织和活动两方面,组织是软件企业活动展开的主体单元定义和约束,组织的结构关系形成组织结构,组织结构和生产经营活动交互构成组织模型。组织模型既可以是软件企业职能部门的静态组织模型,也可以是反应在软件产品开发环境中形成的以软 件项目为中心的动态组织模型。组织模型在一定程度上会影响资源模型,组织模型中的组织单元决定了业务过程中资源的配置方式,尤其人员的配置方式。组织模型中的人员/角色对应基本活动单元——活动,描述了人员/角色在业务活动中的责任和权力。


2.3.3.2资源模型
    资源是软件企业活动的基础,通过对资源的定义,我们可以得到不同过程和活动需要利用和消耗的资源,从而形成系统的资源模型。资源的组织即资源的分类和结构则需要进一步分析得到。在软件产品开发领域,主要包括人力资源、系统软件资源和系统硬件资源。一个完善的资源模型不仅包含优化的资源分类,还应当提供资源能力和资源状态的描述。根据组织模型的不同,可以将资源优化按职能或者项目来分类。


2.3.3.3任务模型
    制定软件项目计划很重要的一个环节就是确定工作分解结构,即将软件项目划分为若干个总任务,再将总任务细分为若干个子任务,根据需要还可以再细分下去,如此形成树状的层次结构模型。任务模型的建立正是基于这种思想,任务模型可以表示为:任务模型={Project,Gen_Task,Sub_Task,TT_Relation}。

    (1)Project(项目):用于描述一个项目对象,为完成预定目标在时间、人力、成本的约束下进行的一系列活动的集合。

    (2)Gen_Task(总任务):用于描述总任务的对象。

    (3)Sub_Task(子任务):用于描述子任务的对象。

    (4)TT_Relation(任务之间的关系):两个任务之间的搭接关系表示它们完成的顺序。

    如果两个任务必须按某一顺序进行,可以在它们之间创建完成到完成、完成到开始、开始到完成和开始到开始的搭接关系,以保证它们的先后顺序正确。

2.3.3.4过程管理模型
    过程管理模型体现了组织的业务过程,而动态数据在过程管理模型中的活动是实现业务需求的最基本的元素。过程管理模型的建立包括以下几方面的内科:

    (1)定义流程的适用范围;

    (2)定义满足流程需求的过程节点数及节点间的业务逻辑关系;

    (3)每个过程节点中用户或角色的工作方式;

    (4)流程推进过程中的对象状态变化规则。


2.3.3.5任务——业务流程模型 
    软件项目管理一般遵循起始、计划、执行/控制和结束的过程。其中,软件项目计划的好坏影响着整个软件项目的成败,涉及对项目进度、资源、成本进行合理安排。而进度、资源、成本又都与任务相关,因此,任务是软件项目管理的基础单元,它包含或关联了诸如资源、成本、进度等各种软件项目信息。而现有的软件项目管理软件大都从项目管理层面看,缺乏业务流程的监控。比如任务进度状态由人工手动更新,任务实际开始和完成时间也由人工控制,随意性很大。
 
    因而,对项目进度的实时监控以及成本核算等都会产生不利影响,很难实现有效的控制。而业务流程是PDM技术的一个核心,PDM系统可以很好的实现对业务流程的建模、执行和监控,我们可以把PDM的微观业务流程引入软件企业,将微观业务流程及其相关信息作为软件项目管理的基础数据,可以实现任务进度的实时监控,根据任务实际开始和完成时间的记录实现人力成本核算等。

    建立任务一业务流程模型的关键是建立每一个单元任务(不可再分解的任务)与业务流程中的过程之间的一一对应关系,这样才能将流程状态、时间记录等相关信息映射到任务上,从而实现任务状态、进度自动更新、时间参数计算等。由于过程是流程模型中的基本单元,任务是项目管理过程的基本单元;过程在流程模型中是可以重复使用的,而任务是一次性的,这样就会出现多个任务对应于用一个过程的现象,那么要建立这两者之间的直接对应关系是很难实现的。
 
    用业务对象作为任务和过程一一对应的连接桥梁可以解决这一难题。通过建立业务对象与每个单元任务的对应关系,当业务对象提交流程之后建立与流程中每个过程的历史记录关系,因此,每个单元任务可以通过业务对象获取流程的各种相关信息,同时还可以利用流程模型中的自动处理过程,调用相应的消息自动更新任务进度。如下图2-4所示,子任务和每个过程建立一一对应关系,提交的业务对象成功通过过程l意味着子任务l完成,业务流程中的AP表示自动处理过程,用以自动更新甘特图的任务进度。 
 
图2-4 任务与流程对应图


2.3.4系统体系结构
    软件项目管理系统功能的不断增加离不开其体系结构的发展,体系结构决定了一个系统的主体结构、宏观特性、具体的基本功能及特性。体系结构的合理与否决定了软件项目管理系统的实用性、可扩展性和实施性。在软件开发过程中,会产生大量数据,所有的产品信息都需要能平稳的在开发人员间流动,如何找到一个良好的体系架构为软件开发提供支持成为软件项目管理里首要考虑的问题。
 
    基于PDM的特点,针对软件产品开发过程及其过程管理的要求,将PDM的技术应用于软件项目管理中,成为支持软件产品开发的一种有效的解决方案。基于PDM的软件项目管理系统采用四层体系结构,即用户界面层、功能模块层、框架核心层和系统支撑层。如图2.5所示。 
 
图2-5 基于PDM的软件项目管理系统体系结构 
 
    (1)用户界面层:向用户提交交互式的图形界面,所有用户都在统一的用户界面上进行 操作,包括可视化的浏览器、各种菜单、对话框、用于支持命令的操作与信息的输入输出。通过系统提供的可视化用户界面,用户可以直观方便地完成管理整个系统中各种对象的操作。是实现系统各种功能的手段、媒介,处于最上层。

    (2)功能模块层:基于PDM的软件项目管理系统为用户提供的主要功能模块有:系统管理、软件需求管理、软件计划管理、文档管理、软件进度管理、软件配置管理、软件风险管理和软件质量管理。

    (3)框架核心层:提供实现系统各种功能的核心架构,由于基于PDM的软件项目管理系统的对象管理框架具有屏蔽异构操作系统、网络、数据库的特性,用户在应用系统的各种功能时,实现了对数据的透明化操作、应用的透明化调用和过程的透明化管理。

    (4)系统支撑层:以目前流行的关系数据库系统为平台,通过关系数据库提供的数据操作功能支持系统对象在底层数据库的管理。


2.3.5系统功能结构
    本课题所开发的基于PDM的软件项目管理系统划分如图2-6所示,共分八个子系统:系统管理子系统、软件需求管理子系统、软件文档管理子系统、软件计划管理子系统、软件进度管理子系统、软件配置管理子系统、软件风险管理子系统和软件质量管理子系统。各子系统又分别细分为相应的小模块。 
 
图2-6 功能结构图 
 
    各子系统实现的主要功能:
    →系统管理子系统:主要包括用户管理、用户组管理、角色管理以及系统的备份及日志文件的管理。

    →软件需求管理子系统:主要对需求的获取、组织及记录过程进行管理,保证用户与项目开发团队对不断变更的软件需求保持一致。

    →软件计划管理子系统:根据历史数据和输入的基础数据对项目进行工作量、成本、开发时间和人员的估算;按任务安排时间进度。

    →软件文档管理子系统:对文档过程进行控制、跟踪和管理。实现对软件质量保证过程的管理。

    →软件配置管理子系统:软件配置管理(简称配置管理)包括组织、管理各种软件产品及文档和控制其变化的一系列活动,贯穿整个软件生命周期。

    →软件进度管理子系统:根据各个任务的开始、进展和完成情况,反映当前的总体进度,并自动提示任务超时的现象;根据用户输入信息,完成各项任务的进度查询。

    →软件风险管理子系统:软件风险管理过程是一个不断识别风险、分析风险、计划风险、跟踪风险和应对风险的过程。软件风险管理系统主要实现软件的风险管理。

    →软件质量管理子系统:完成对当前软件的质量评价。





2.4系统设计模式与开发工具
2.4.1 MVC设计模式
    MVC是通过创建模型(Model)、视图(view)和控制器(Controller)三个层,将面向对象的设计与可视化接口分开。MVC模式旨在实现Web系统的职能分工。MVC包括三类对象,Model是应用对象,View是它在屏幕上的表示,Controller定义用户界面对用户输入的响应方式。Model层完成系统业务逻辑的处理,用JavaBean来实现。View层用于与用户的交互,用JSP来实现。Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。MVC架构如图2-8所示。 
 
图2-8 MVC框架

    MVC模式的优点如下:
    (1)将表示层(View)和逻辑层(Model)分开,容易在某种数据的基础上,增加多种表现形式或者改变某种形式。

    (2)将逻辑层(Model)和表示层(View)分开,使褥它们各自能够独立的变化。进而使得可维护性,可以扩展性,可测试性方面得到很大的改善。

    (3)将控制层(Contr01)和表示层(View)分开,可以动态地决定表示的形式。

    (4)将控制层(Contr01)和逻辑层(Model)分开,使得用户的输入和数据处理之间的关系可以灵活决定。

    MVC模式对软件的健壮性、代码重用和结构方面提供了很强大的支持。因此,本文系统的设计采用MVC模式。


2.4.2开发环境
    本系统选用Eclipse3.1作为集成开发环境,Java作为开发语言,Tomcat5.5为Web服务器,SQL Server为数据库。考虑到系统所要处理的业务逻辑比较复杂,系统的实现采用了MVC构架框架,将表现层和数据逻辑及其控制分开,即采用JSP来表现页面,使用Servia服务器程序为后台控制程序,来完成大量数据处理的方法。 
 

  • 2019-07-18 09:25
  • 我要分享:
声明:文章"PDM的软件项目管理"为上海御云信息科技有限公司原创文章,转载请注明出处,谢谢合作!您所在位置:PLM系统 > PLM新闻 > PDM资讯 >

联系清泰代表

热门文章
热门标签