• 2.98 MB
  • 2022-04-22 11:16:22 发布

基于xml与软件过程建模及仿真平台毕业论文.doc

  • 56页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'上海交通大学学位论文原创性声明本人郑重声明所呈交的学位论文是本人在导师的指导下独立进行研究工作所取得的成果除文中已经注明引用的内容外本论文不包含任何其他个人或集体已经发表或撰写过的作品成果对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明本人完全意识到本声明的法律结果由本人承担学位论文作者签名黄超白日期12005年1月20日 上海交通大学学位论文版权使用授权书本学位论文作者完全了解学校有关保留使用学位论文的规定同意学校保留并向国家有关部门或机构送交论文的复印件和电子版允许论文被查阅和借阅本人授权上海交通大学可以将本学位论文的全部或部分内容编入有关数据库进行检索可以采用影印缩印或扫描等复制手段保存和汇编本学位论文     保密本学位论文属于               不保密请在以上方框内打在   年解密后适用本授权书   学位论文作者签名 黄超白          指导教师签名黄上腾 日期 2005年1月20日      日期2 2005年1月20日 上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 基于XML的软件过程建模及仿真平台摘要 本课题以针对软件过程的建模仿真环境为目的提出了一套以过程为中心的软件过程元模型及软件过程建模语言SPSL并且实现了软件过程仿真环境 在学术界人们对工作流的仿真建模进行了很多年的讨论和研究并且已经有支持各种工作流建模和仿真的平台出现广义上来说软件过程是工作流的一种但是它与其它工作流相比有很多的不同之处 1软件开发面临着很大的需求变化的可能性由于软件开发的特点需求变化不可避免所以软件开发过程面临很高的风险为了规避风险一般会在软件开发的整个周期对软件制品的制造流程进行多次的迭代以确定高风险的模块覆盖可能的变化等等但是在一般的工作流元模型中并没有迭代的概念也没有建模语言提供了对软件活动中的风险迭代以及不同迭代策略的支持 2难以实施对从事创新活动的软件开发人员的技能管理软件开发目前主要是人的创新活动虽然立足于代码自动生成的模型驱动开发已经成为非常热门的课题但是目前为止还没有成熟的系统方法来实现它软件开发很大程度上还是依赖于开发团队成员的技能即使是模型驱动开发成熟起来开发人员的技能仍然占软件开发过程的主导地位软件开发的技能种类很多分类也相当复杂有不少公司尝试对员工的进行管理以期在需要的时候合理调配但是目前这项工作还没有软件过程改进领域所覆盖 3软件过程的工作量很难用一般方法来预估为了解决这个问题在软件工程领域有一门特殊的学科叫做软件度量软件度量的参数具有特殊性无法在目前的工作流仿真环境中覆盖需要一种平台能够支持对软件度量参数和对仿真结果集的扩展 针对以上问题我们基于软件过程的特点以及迄今为止软件工程领域的一些 - 4 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 研究成果提出了一种软件过程仿真语言SPSL以及基于SPSL的软件过程建模仿真平台与传统的软件过程建模方法相比用SPSL建立的模型可以从组织流程制品等多角度描述软件过程从而更加准确和有效地控制软件开发过程而基于SPSL的仿真平台能够对用SPSL所建模型进行仿真可进一步对建模的执行效果进行观察和改进 首先构建了比较完整的软件过程元模型元模型的研究大多是集中在某一个特定的领域对于元模型的建模我们提出了软件工程的三视图模型定义方法从组织过程产品三个不同的角度来描述软件过程 其次在此元模型的基础上提出了软件过程建模语言SPSL作为一种软件过程描述语言SPSL结合了仿真系统的需求将仿真模型拆分成几个不同的层面覆盖了过程定义企业级数据及仿真结果等几个部分分别予以定义具备良好的扩展性能 最后开发了基于SPSL的软件过程仿真环境基于SPSL语言的仿真环境的建立使软件工程研究者和企业软件过程改进组的成员能够拥有一个仿真平台支持建模扩展和软件过程运行的分析和改进 该模型建立在若干个实践项目和工作流元模型和领域工程理论的基础上过程模型具有广泛的适用性本文在后面的几章中将对此平台的建模与实现以及在该平台上可以进行的仿真和研究活动进行了充分地探讨该平台尚有很大的继续改进和优化的余地并且可以在此基础上进行进一步的扩展希望能有更多的人共同参与研究  关键字软件过程 元模型 XML SPSL 仿真  - 5 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 PlatformforSoftwareProcessModelingandSimulationBasedonXMLABSTRACTTobuildsimulatingmodelingenvironmentofsoftwareprocess,thisarticleraisetheconceptofsoftwareprocessmeta-modelbasedonprocessandonemodelinglanguagewhichissoftwareprocesssimulationlanguage(SPSL),andfinallyrealizethesimulatingenvironmentofsoftwareprocess.Inthecomputerfield,manyscientistshavebeeninvestigatingtosimulatingmodelingforworkflowprocessmanyyearswithmanyexistingplatformswhichsupportallkindsofmodelingandsimulatingworkflowprocess.Fromthewidepointofview,softwareprocesshasmanydifferencestootherworkflowalthoughitisonekindofworkflow.Thedifferencesareasbelow:1.Dependsontherapidrequirementchangeinsoftwaredevelopment,softwaredevelopmentprocessfaceshigherriskthanotherworkflowprocess.Toavoidsuchariskitisoftentoiteratethesoftwareprocessseveraltimesduringtheproducttolocatethehigh-riskmoduleandcoverthepotentialchange.Butonthecontrast,inthecommonprocessmodelithasnoconceptofiteration,modelinglanguageforsupportingtheriskinsoftwaredevelopmentandthestrategytoimplementtheiteration.2.Incurrentsituationssoftwaredevelopmentismainlydrivenbycreativeinnovationofmankind.Althoughtherearemanyhotdiscussionsaboutmodeldrivendevelopment,mostsoftwaredevelopmentsaredependontheskillandcompetenceofmembersinadevelopteam.Intheforeseenfutureinspiteofthematureofmodeldrivendevelopment,theknowledgeofthedeveloperstillplaysadominantrole.Therearedifferentskillsofsoftwaredevelopmentandthecategoryisalsosomewhat - 6 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 complicated.Currentlymanycompanieshavebeentryingtomanagetheemployeetoallocatethemwhennecessarybutthiskindofworkstillhavenotbeencoveredbysoftwareprocessimprovement.3.Theworkloadofsoftwareprocessishardtoevaluatebycommonfunctions.Tosolvethisprobleminsoftwareprocessareatherehasaspecificsubjectwhichnamessoftwaremeasurement.Theparameterforsoftwaremeasurementhasitsspecification,whichcan’tbecoveredincurrentworkflowsimulatingenvironment.Itneedsaplatformtobeabletosupportexpansionofparameterinsoftwaremeasurementandsetofsimulatingresult.Fromabove3points,thecurrentmodelingforworkflowandsimulatingplatformcan’tmeettherequirementoftheresearchandinvestigatingsoftwareprocess.Afteranalysisbasedonthecharacterofsoftwareprocessandsomeresearchresultofsoftwareprocessuptonow,anewsoftwareprocesssimulatinglanguage(SPSL)andasoftwareprocessmodelsimulatingplatformbasedonSPSLareraisedinthisarticle.ThemainconceptofSPSLislikebelow:Firstly,buildanalmostcompletemeta-modelforsoftwareprocess.Theresearchofmeta-modelisoftenfocusinaspecificarea.Forthemodelingofmeta-model,softwareprocesscanbedescribedfromorganization,process,andproductaccordingtothetri-viewdefinitionofthemodelinsoftwareprocess.Secondly,SPSLisraisedbasedonthismeta-model.Asadescriptionlanguageforsoftwareprocess,SPSLcombinestherequirementsforsimulatingsystemanddividethesystemintoseverallayersthatcoverthepartssuchasprocessdefinition,enterpriseleveldataandsimulatingresult.SPSLgiveseparatedefinitionsofthesepartsandithashighabilitytoexpand.Finally,asoftwareprocess-simulatingenvironmentisdevelopedbasedonSPSL,whichmeanssoftwareprocessresearcherandmembersinprocessimprovementteamincompanycanhaveasimulatingplatformformodeling,expandingandrunningtoanalysisandimprovesoftwareprocess.Suchakindofmodelisbuiltonseveralpracticeprojectsandthetheoryof - 7 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 workflowmeta-modelandareaprocess.Processmodelhaswildavailabilityinmanyareasandinthefollowseveralchapterswewilldiscussthemodelingandimplementonthisplatformtogetherwithsimulatingandresearchingonthisplatform.Thisplatformhasmanyareastoimproveandoptimize,whichcanalsobeenexpandedonthecurrentbaseinthefuture.KeyWords:SoftwareProcessMeta-ModelXMLSPSLSimulation - 8 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 第一章 引言随着软件企业规模的不断扩大和不断复杂化对软件过程模型在实际投入运行之前进行验证诊断分析和优化实现软件过程愈来愈重要这时需要对传统的工作流管理技术加以补充和完善与企业过程重组应用密切相关的工作流模型的仿真分析技术便是需要补充的一个关键技术目前仿真作为一种有效的模型验证和分析的手段已为大多数软件组织接受但是多数工作流产品并没有为过程模型的仿真及仿真数据的统计和分析提供有效的手段因此在支持企业经营过程重组方面都存在一定的不足本课题以针对软件过程的建模仿真环境为目的提出了一套以过程为中心的软件过程元模型及软件过程建模语言SPSL并且实现了软件过程仿真环境在第二章中我们首先介绍了对软件过程仿真领域的行业背景国内外研究最新动态说明了软件过程与其他工作流的不同之处然后概括地阐述了整个系统所要解决的问题以及在整个工作中预想会碰到的一些问题第三章我们将会介绍一些元模型建模的背景知识并且介绍当下一些比较受认可的工作流元模型对我们之后的软件过程建模有一定的参考和借鉴作用第四章我们将花较多的篇幅详细描述整个课题的核心部分软件过程的概念模型以及元模型的定义我们构建了比较完整的软件过程元模型元模型的研究大多是集中在某一个特定的领域对于元模型的建模我们提出了软件工程的三视图模型定义方法从组织过程产品三个不同的角度来描述软件过程第五章在此元模型的基础上提出了软件过程建模语言SPSL作为一种软件过程描述语言SPSL结合了仿真系统的需求将仿真模型拆分成几个不同的层面覆盖了过程定义企业级数据及仿真结果等几个部分第六章介绍基于SPSL的软件过程仿真环境以及软件工程研究者和企业软件过程改进组的成员如果运用SPSL仿真平台支持建模扩展和软件过程运行的分析和改进第七章对本文的课题进行的总结和展望 - 9 -  上海交通大学计算机应用硕士学位论文第二章背景概述基于XML的软件过程建模及仿真平台 2.1行业背景一些调查表明大约70%的软件开发项目超出了估算的时间大型项目平均超出计划交付时间的20%~50%并且项目越大超出项目计划的程度越高过程已经成为软件工业发展的瓶颈和软肋从上世纪八十年代末期开始过程工程就逐渐成为了各行各业的研究热点其中并行工程和软件工程已成为两个典型的应用领域前者侧重于业务流程重组后者关注于软件过程改进而在一个开发团队中对软件过程进行改进往往是非常困难的因为这需要很长的时间的观察分析来确认新的过程是否可行并有效基于这个原因在采用新的软件过程之前对软件过程的可行性和带来的效益进行评估就显得尤为重要系统仿真Simulation是对新系统进行分析的一种广泛被采用的手段仿真就技术层面而言仿真无疑是个有力的研究工具并且随着工作流技术的发展以及它在过程管理方面的显著特点这几年开始将它作为使能工具来支持过程工程的研究的想法已经越来越成熟这样软件过程仿真自然而然地就成为了一个新的研究点相对于过程建模仿真还是一个比较薄弱的环节其难点主要在于理论模型难以被转换成可供运行的仿真平台尤其是对于软件工程这个本身发展比较有限的领域情况更是如此基于这些成果人们对工作流的仿真建模进行了很多年的讨论和研究并且已经有支持各种工作流建模和仿真的平台出现广义上来说软件过程是工作流的一种但是它与其它工作流相比有很多的不同之处l软件开发面临着很大的需求变化的可能性由于软件开发的特点需求变化不可避免所以软件开发过程面临很高的风险为了规避风险一般会在软件开发的整个周期对软件制品的制造流程进行多次的迭代以确定高风险的模块覆盖可能的变化等等但是在一般的工作流元模型中并没有迭代的概念也没有建模语言提供了对软件活动中的风险迭代以及不同迭代策略的支持l软件开发目前主要是人的创新活动虽然立足于代码自动生成的模型驱动开发已经成为非常热门的课题但是目前为止还没有成熟的系统方法来实现它软件开发很大程度上还是依赖于开发团队成员的技能即使是模型驱动开发成熟起来开发人员的技能仍然占软件开发过程的主导地位软件开发的技能种类很多分类也相当复杂有不少公司尝试对员工的进行管理以期在需要的时候合理调配盖但是目前这项工作还没有软件过程改进领域所覆l软件过程的工作量很难用一般方法来预估为了解决这个问题在软件工程领域有一门特殊的学科叫做软件度量软件度量的参数具有特殊性无法在目前的工作流仿真环境中覆盖需要一种平台能够支持对软件度量参数和对 - 10 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 仿真结果集的扩展软件过程模型是对软件过程的抽象描述这种抽象描述可以是形式化的也可以是非形式化的进行这种抽象活动的工程活动就成为软件过程建模软件过程建模的目的及其广泛主要有使人们易于理解软件过程并在此基础上进行交流支持软件过程中各参与人员之间的通讯与协调支持对软件过程的分析与改进支持对软件过程的实施与管理支持过程重用提供对过程的指导与自动执行支持等研究过程建模与过程是对软件生产工程化自动化和过程重用有重要意义可以使软件项目具有更好的预见性使软件产品具有更高的质量从根本上改善软件生产过程和软件生产率提高软件组织的过程成熟级别以适应各行各业日益加剧的对软件产品的需求但是目前还没有对于软件过程建模的统一标准现在大家所知晓的有效的所谓软件过程模型已经有很多种从XP这样的用最佳实践的方式来表述的敏捷过程到非常详细的运用V-Model来描述过程细节的RUP框架他们各有各的描述方法表述不统一不利于进一步进行比较计算和研究同时也容易对同一种软件过程描述产生不同的解读这对于软件过程的仿真以及自动软件过程执行都是显然的问题目前的软件过程模型主要是基于Petri网和形式语义等语言虽然他们是一种很好的学术研究平台能够避免解读过程规范中的不明确但是对于仿真层面来说却难于接受因为所有这些方法都用他们各自的语法语义以及各自的数据交换格式并且他们都局限于软件过程模型的某一个方面比如时间特性数据特性并行性特性等想要扩展这些模型或者转换是一件非常困难的事情因为他们不易于被解读并且缺乏标准工具的支持虽然有一些形式化语义的研究工具但是要将它们应用在工业领域面临很大的技术瓶颈并且还远没有达到我们想要的功能针对以上问题我们基于软件过程的特点以及迄今为止软件工程领域的一些研究成果提出了一种软件过程仿真语言SPSL以及基于SPSL的软件过程建模仿真平台与传统的软件过程建模方法相比用SPSL建立的模型可以从组织流程制品等多角度描述软件过程从而更加准确和有效地控制软件开发过程而基于SPSL的仿真平台能够对用SPSL所建模型进行仿真可进一步对建模的执行效果进行观察和改进该平台还有很大的继续改进和优化的余地并且可以在此基础上进行进一步的扩展2.2国内外研究进展软件过程仿真平台的基础是软件过程元模型目前国内外几乎还没有针对软件过程的元模型规范在工作流领域有一些主流的工作流元模型如下WfMC的工作流元模型WfMC的元模型确定了基本的对象类型集允许不同工作流管理系统间进行过程定义转换该元模型是一个基于活动的元模型一个工作流过程由许多实用工作流相关数据的活动组成活动间的转移通过相关的转移信息来实现转移信息可能涉及到活动间传递和产生工作流相关数据活动可能调用工作流应用也 - 11 -  上海交通大学计算机应用硕士学位论文可能调用一个子过程为了避免通用数据实体和属性的重复定义基于XML的软件过程建模及仿真平台 WfMC提出了包元模型的概念在工作流模型中包就像一个容器多个过程定义被捆绑到一起通用的数据实体只需定义一次WIDEWIDE是西班牙意大利荷兰等国的不同单位合作开发的工作流管理系统主要利用分布式数据库和活动数据库技术来实现工作流管理它的工作模型包括组织模型信息模型和过程模型支持组织建模复杂活动约束分配动态流程控制复杂过程结构以及工作流事务处理WIDE是对WfMC参考模型的扩展WIDE过程元模型是基于任务的每个任务由任务开始条件行为任务结束条件角色约束和异常处理组成WIDE元模型提供表示任务控制序列的连接器包括全分叉全连接条件分叉作流表示为3级工作流模型WIDE对于异常处理做了充分研究处理方法WAMO部分连接WIDE将任务超级任务和工它使用主动规则技术来描述异常情况和WAMO工作流由多个活动数据对象和代理组成活动说明了企业过程中的工作单元数据对象表示活动间交换的信息代理表示执行活动的人或计算机系统WAMO元模型除了提供传统的建模特征之外还具有事务处理的功能其另一个主要优点是提供了意外处理机制WAMO通过使子过程表示的复杂活动支持工作流分级一个活动可以同时参与几个活动特别是同过几次参与另一个活动来提高重用性WAMO提供的控制结构包括顺序并行嵌套有序选择和自由选择不能再分解的活动叫做任务任务是工作流内部最终执行真实工作的黑盒ActionWorkflowActionWorkflow是一个基于通讯的元模型基于活动的元模型将工作流看作任务间的信息流动而ActionWorkflow则将任务定义为循环中的请求和执行每个任务被当作一个闭合的循环它由4个阶段组成即提议磋商执行和满意模型中存在两个特殊的角色即消费者和执行者企业过程被看作两个特殊角色间的对话在ActionWorkflow元模型中工作流结构通过人们的语言行为来定义过程模型的基本部分是对话或工作流主要工作流通过链接机制被连接到次要工作流Act根据不同的阶段执行相应的行为每种行为都可能转变工作流状态以上这些都是基于工作流的引擎目前为止我们还没有看到真正针对软件过程需求而制定的规范作为软件工程如此之大的一个研究领域这不得不说是一个非常薄弱的环节 - 12 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 2.3项目概述本课题尝试解决了以下几个问题基于以上几点现有的工作流建模和仿真平台无法满足软件过程研究的需要所以我们提出了一种软件过程仿真语言SPSL以及基于SPSL的软件过程建模仿真平台首先构建了比较完整的软件过程元模型元模型的研究大多是集中在某一个特定的领域对于元模型的建模我们提出了软件工程的三视图模型定义方法从组织过程产品三个不同的角度来描述软件过程见图2-1其次在此元模型的基础上提出了软件过程建模语言SPSL作为一种软件过程描述语言SPSL结合了仿真系统的需求将仿真模型拆分成几个不同的层面覆盖了过程定义企业级数据及仿真结果等几个部分分别予以定义具备良好的扩展性能最后开发了基于SPSL的软件过程仿真环境基于SPSL语言的仿真环境的建立使软件工程研究者和企业软件过程改进组的成员能够拥有一个仿真平台支持建模扩展和软件过程运行的分析和改进计算无关模型测试过程模型业务关系开发过程模型业务关系管理过程模型平台无关模型测试过程设计模型元数据开发过程设计模型元数据管理过程设计模型平台相关模型基于XML的测试过程模型元数据基于XML的开发过程模型元数据基于XML的管理过程模型图2-1SPSL软件过程概念结构Diagram2-1SoftwareProcessConceptStructure该模型建立在若干个实践项目和工作流元模型和领域工程理论的基础上过程模型具有广泛的适用性本文在后面的几章中将对此平台的建模与实现以及在该平台上可以进行的仿真和研究活动进行了充分地探讨该平台尚有很大的继续改进和优化的余地并且可以在此基础上进行进一步的扩展希望能有更多的人共同参与研究 - 13 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 第三章 基于元模型的建模方法3.1元模型的概念3.1.1元模型规范对软件过程仿真的开发首先要解决各子系统模型的集成问题这就需要管理各种不同类型和结构的数据不同领域的仿真应用是为了某一特定目的而开发的一旦建成常常不能用于其它的环境中随着时间的积累用于特定的目的仿真模型不断增加当已经存在的模型对于新的应用程序来说不是非常完美时就需要花费大量的金钱用于创建新的模型利用元模型技术进行软件过程仿真的建模利用元数据对不同类型的数据进行管理可以在比各不同领域模型更高的层次上对模型进行分析和研究我们要研究软件过程仿真平台中模型的集成问题就需要对各领域的模型进行分析解决它们之间的集成和互操作问题本文中基于元模型的软件过程仿真建模方法的特点主要有l基于MOF规范由于MOF规范是OMG组织为了帮助销售商开发者和用户更好的使用元模型和元数据技术而制定的因此符合MOF规范的元模型具有开放性扩展性和互操作性MOF规范对应着一个MOFmodel它实际上是一个元元模型metameta-model它定义了描述元模型的语言虽然MOFmodel是一个强大的描述大量的信息模型的建模语言但是它不是最终的建模语言人们使用MOF只是把它作为一个规范和工具去设计和实现更优秀的元模型建模系统l基于XMI规范现在将MOF产生的元模型映射到实际的模型中有两种标准IDL映射(IDLMapping)和XMI映射(XMIMapping)在我们的基于MOF的开发系统使用XMI映射首先用XMLDTD来描述元模型然后根据XMI规范生成使用XML语言描述的软件过程的系统模型ll构成软件过程的各子系统之间的互操作是通过信息交换来实现的首先确定信息交换的方式对这些信息进行分析研究收集整理这些信息对应的所有的元数据和它们之间的元关系将这些元数据封装成元类同时分析构成元类的元属性很难找到一个严格意义上的符合所有软件过程的元模型而且由于软件过程的新概念不断增加通常是不可能有这样一个元模型的元模型一般是在特定的领域内能够描述该领域内的全部信息而且元模型的产生过程不是一磋而就的因此在软件过程仿真的开发过程中不可能一开始就确定一个软件过程的元模型最初的元模型往往是很抽象的只能描述系统的部分信息元数据以及它们之间的关系但是针对相对特定的复杂仿真系统通过不断反复分析研究的过程尽可能的抽象出软件过程中所有的模型数据的共同概念得到系统的元数据和它们之间的语义以及语法依赖从而实现这个 - 14 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 软件过程仿真的元模型仿真平台中的集成首先要解决的问题就是模型集成问题基于元模型的建模技术可以使子系统模型在比模型更高的层次上进行集成在这一章中我们首先介绍基于元模型的建模方法并且将这种建模技术用于软件过程的建模中然后给出了软件过程仿真平台中元模型建模方法的实现方案在文章的最后通过一个原型系统的实现对这种实现方案的进行了验证元模型是关于模型的模型是关于如何建立模型模型的语义或模型之间如何集成和互操作等信息的描述是对某一特定领域建模环境的规范定义它定义了该领域的语法和语义能够表示该领域内的所有或全部系统元模型比模型的抽象程度高因此能够较好地解决模型集成中的问题同理元元模型(Meta-metamodel)是对给定元模型建模环境中的语法和语义的规范定义元模型建模Metamodeling是一种创建元模型的活动它和一般的建模很相似都是对特定信息和对象建立模型但它们是针对于不同特性的建模元模型建模是系统化的建模技术是对系统高层次上的抽象这种模型的抽象技术是一种减少仿真模型的复杂性而保持仿真结果有效性的方法元模型建模是一种模型集成化的工程分析方法它允许在特定领域内创建多种模型的集成集合这种集合也就是元模型Metamodel为了更好的将元数据和元模型技术用于实际的系统建模方法中对象管理组织(OMGtheObjectManagementGroup)制定了相应的MOF(MetaObjectFacility)规范和XMI(XMLMetadataInterchange)规范下面介绍用来定义元模型的MOF核心的元建模结构也就是MOF的抽象语言MOF元建模主要为元数据定义信息模型MOF主要使用对象建模框架结构它是UML核心的基本子集四个主要的建模概念是l类(Class)对MOF对象进行建模l关联(Association)对元对象之间的双向关系进行建模l数据类型(DataTypes)对其它数据也就是简单类型外部类型等等进行建模l包Package使模型模块化XMI的主要目的是在分布式的异构环境中元数据可以在基于OMG-UML的建模工具和基于OMGMOF的元数据仓库之间容易的进行交换XMI集成了三个主要的工业标准llXML-eXtensibleMarkupLanguageUML-UnifiedModelingLanguage它是一个W3C标准它是一个OMG建模标准lMOF-MetaObjectFacility一个OMG元建模和元数据仓库标准这些标准集成到XMI中结合了OMG和W3C中元数据和建模技术的最优秀的部分使得分布式系统的开发者可以共享对象模型和INTERNER上的其它元数据XMI与MOF和UML一起构成了OMG元数据仓库体系结构的核心内容 - 15 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 3.1.2元模型建模技术实际上建模和元模型建模是一致的活动不同之处在于对它们的解释模型是对真实世界系统和过程的抽象描述元模型是对模型的抽象描述因此用于建模的概念也同样可以用于元模型建模这个逻辑也能够扩展出元元模型建模的过程但是建模元模型建模和元元模型建模的目的是截然不同的通常所用的元模型建模的四层概念框架如下表所示它说明了元元模型元模型模型和用户数据之间的关系它们一层在另一层之上构成了四层结构如图3-1和表3-2所示一些应用实际上使用超过四层的结构但是这种体系结构很容易扩充到超过四层图3-1元模型结构层次图Diagram3-1Meta-ModelHierarchyandStructure表3-2元模型概念层次Table3-1Meta-ModelConceptHierarchy元模型建模和其它的学科一样有自己的术语下面给出元建模学科中一些被通常使用的定义及其相关概念以区别于在其它的学科中的不同用法l模型(Model)集合例如在系统(特别是软件系统)建模的过程中属性(Attribute)方法(Method)等等一些人为定义的信息l元模型(Metamodel)能够表达建模中信息的信息模型元模型的相关概念有元类(MetaClass)元过程(MetaPro-cess)元方法(MetaMethod)元赋值 - 16 - 层次描述元元模型(Meta-Metamodel)元模型建模的支撑系统定义了描述元模型的语言元模型(Metamodel)元元模型的一个实例定义了详细说明模型的语言模型(Model)元模型的一个实例定义了描述信息领域的语言用户对象(Userobjects)模型的一个实例定义了详细说明信息领域的语言 上海交通大学计算机应用硕士学位论文(MetaAssignment)等等基于XML的软件过程建模及仿真平台 l元元模型Meta-metamodel这往往人们看问题的起点但实际上是非常简单的为了创建一个元模型人们需要一种能够表达这种元模型的语言元元模型就是这种语言之所以取这个名字是因为元元模型和元模型之间的关系与元模型和模型之间的关系是类似的就象我们熟悉的对象类和它的实例之间的关系一样是抽象和具体的关系l元类MetaClass类似于一般建模中的类但是用于元模型l元实体MetaEntity实际上是元类的同义词l元关系MetaRelationship类似于一般建模中的关系但是用于元模型l元属性MetaAttribute类似于一般建模中的属性但是用于元模型l元对象经常作为组成元模型建模语言的所有事物things的通用术语例如元类元关系元属性通常和完全成熟的模型的信息建模语言相比元元模型元模型建模语言提供的元对象的数量是相当少的l元对象实例MetaObjectInstance当用户利用元模型提供的概念创建一个模型时元模型才被实例化例如类Customer是元类Class的一个实例类似的可以理解元关系和元属性的实例特别需要提出的是有人认为没有元元模型只有元模型甚至有些人认为没有元模型只有模型这主要是一个学术问题通常的共识是各种各样的模型可以代表不同的角色例如一个模型可以作为其它模型的模型那么就可以被称为元模型其它的元层次(MetaLevel)也是一样的所以元(Meta)属性不是模型的属性而是模型在与其它模型的关系中所充当的角色3.2迭代化软件开发3.2.1传统开发流程的问题本文的另一个观点是任何软件开发中都是存在迭代的传统的软件开发流程是一个文档驱动的流程它将整个软件开发过程划分为顺序相接的几个阶段每个阶段都必需完成全部规定的任务文档后才能够进入下一个阶段如必须完成全部的系统需求规格说明书之后才能够进入概要设计阶段编码必需在系统设计完成之后才能够进行这就意味着只有当所有的系统模块全部开发完成之后我们才进行系统集成对于一个由上百个模块组的软件过程来说这是一个非常艰巨而漫长的工作随着我们所开发的软件项目越来越复杂传统的瀑布型开发流程不断地暴露出以下问题-需求或设计中的错误往往只有到了项目后期才能够被发现例如系统交付客户之后才发现原先对于需求的理解是错误的系统设计中的问题要到测试阶段才能被发现-对于项目风险的控制能力较弱项目风险在项目开发较晚的时候才能够真正降低往往是经过系统测试之后才能确定该设计是否能够真正满足系统需求 - 17 -  上海交通大学计算机应用硕士学位论文-软件项目常常延期完成或开发费用超出预算基于XML的软件过程建模及仿真平台 项目开发进度往往会被意外发生的问题所打乱需要进行返工或其他一些额外的开发周期造成项目延期或费用超支-项目管理人员专注于文档的完成和审核来估计项目的进展情况所以项目经理对于项目状态的估计往往是不准确的当他回答系统已完成了80%的开发任务时剩下20%的开发任务实际上消耗的是整个项目80%的开发资源在传统的瀑布模型中需求和设计中的问题是无法在项目开发的前期被检测出来的只有当第一次系统集成时这些设计缺陷才会在测试中暴露出来从而导致一系列的返工重新设计编码测试进而导致项目的延期和开发成本的上升为了解决传统软件开发流程中的问题我们建议采用迭代化的开发方法来取代瀑布模型在瀑布模型中我们要完成的是整个软件系统开发这个大目标在迭代化的方法中我们将整个项目的开发目标划分成为一些更易于完成和达到的阶段性小目标这些小目标都有一个定义明确的阶段性评估标准迭代就是为了完成一定的阶段性目标而所从事的一系列开发活动在每个迭代开始前都要根据项目当前的状态和所要达到的阶段性目标制定迭代计划整个迭代过程包含了需求设计实施编码部署测试等各种类型的开发活动迭代完成之后需要对迭代完成的结果进行评估并以此为依据来制定下一次迭代的目标3.2.2采用多次迭代开发控制项目风险与传统的瀑布式开发模型相比较迭代化开发具有以下特点-允许变更需求需求总是会变化这是事实给项目带来麻烦的常常主要是需求变化和需求蠕变它们会导致延期交付工期延误客户不满意开发人员受挫通过向用户演示迭代所产生的部分系统功能我们可以尽早地收集用户对于系统的反馈及时改正对于用户需求的理解偏差从而保证开发出来的系统真正地解决客户的问题-逐步集成元素在传统的项目开发中由于要求一下子集成系统中所有的模块集成阶段往往要占到整个项目很大比例的工作量最高可达40%这一阶段的工作经常是不确定并且非常棘手在迭代式方法中集成可以说是连续不断的每一次迭代都会增量式集成一些新的系统功能要集成的元素都比过去少得多所以工作量和难度都是比较低的-尽早降低风险迭代化开发的主要指导原则就是以架构为中心在早期的迭代中所要解决的主要问题就是尽快确定系统架构通过几次迭代来尽快地设计出能够满足核心需求的系统架构这样可以迅速降低整个项目的风险等到系统架构稳定之后项目的风险就比较低了这个时候再去实现系统中尚未完成的功能进而完成整个项目-有助于提高团队的士气 - 18 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 开发人员通过每次迭代都可以在短期内看到自己的工作成果从而有助于他们增强信心更好地完成开发任务而在非迭代式开发中开发人员只有在项目接近尾声时才能看到开发的结果在此之前的相当长时间大家还是在不确定性中摸索前近-生成更高质量的产品每次迭代都会产生一个可运行的系统通过对这个可运行系统进行测试我们在早期的迭代中就可以及时发现缺陷并改正性能上的瓶颈也可以尽早发现并处理因为在每次迭代中总是不断地纠正错误我们可以得到更高质量的产品-保证项目开发进度每次迭代结束时都会进行评估来判断该次迭代有没有达到预定的目标项目经理可以很清楚地知道有哪些需求已经实现了并且比较准确地估计项目的状态对项目的开发进度进行必要的调整保证项目按时完成-容许产品进行战术改变迭代化的开发具有更大的灵活性在迭代过程中可以随时根据业务情况或市场环境来对产品的开发进行调整例如为了同现有的同类产品竞争可以决定采用抢先竞争对手一步的方法提前发布一个功能简化的产品-迭代流程自身可在进行过程中得到改进和精炼一次迭代结束时的评估不仅要从产品和进度的角度来考察项目的情况而且还要分析组织和流程本身有什么待改进之处务3.2.3开发资源分配基于RUP风险驱动的迭代化开发模式以便在下次迭代中更好地完成任我们只需要在项目的先启阶段投入少量的资源对项目的开发前景和商业可行性进行一些探索性的研究在精化阶段再投入多一些的研发力量来实现一些与架构相关的核心需求逐步地把系统架构搭建起来等到这两个阶段结束之后项目的一些主要风险和问题也得到了解决这时候再投入整个团队进行全面的系统开发等到产品化阶段主要的开发任务已经全部完成项目不再需要维持一个大规模的开发团队开发资源也可以随之而减少在项目开发周期中开发资源的分配可以如下图所示3.2.4迭代策略如何以合理的性价比在预定的时间内开发出高质量的软件是30余年来软件界一直在努力解决的问题但是软件危机依然存在其主要原因在于软件生产是一个相当复杂的过程从60年代侧重于编码阶段的研究到70年代采用软件工程学的观点乃至80年代对软件工具和环境的研制注意力主要集中在软件制造过程的产品上提出了很多种方法和技术来提高软件产品的生产率和质量希望质量的提高减少开发次数降低维护费用从而达到降低整个软件开发周期的费用但随着软件项目规模的日益庞大系统也越来越复杂这个问题远未得到很 - 19 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 好的解决近年来注意力逐渐转移到制造软件产品的过程本身软件过程SoftwareProcess这是基于如下的认识软件和其他工业产品一样其生产率和质量的高低最终取决于生产产品的过程的好坏故通过对软件过程本身的研究改进软件过程的质量可以使软件项目的实施更有效更可预见获得高的生产率和高质量的软件软件过程是建立维护和进化软件产品的整个过程中所有技术活动和管理活动的集合也可以认为一个软件过程是一组受约束的协同活动其中一些活动是自动执行的过程建模的主要方面是建模方法和建模语言方法和语言是紧密相关的目前主要的建模方法有基于过程控制流的建模方法基于角色的建模方法和基于模板的建模方法基于过程控制流的建模方法将一个过程视为由若干步骤过程步组成的工作流程先确定过程之间的执行顺序关系再以过程步为中心收集过程的其他数据来描述过程基于角色的建模方法则认为一个软件项目是由一些角色指参与过程中的人或工具来协同完成的故先描述参与过程的各个角色角色的行为及角色之间的协同关系然后再以角色为中心收集过程的其他信息来建立过程模型而基于模板的建模方法是先确定过程中的各类实体如事件角色产品等将这些实体定义成模板然后再针对每一个模板在各个不同的抽象层次上构造该模板的具体对象然后再定义各类实体在同一抽象层次中所有对象之间的各种关系 - 20 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 第四章 软件过程元模型4.1模型结构4.1.1基本定义为了更加清楚地阐述本章节的内容首先定义以下与软件过程模型相关的基本概念定义1软件过程元模型软件过程元模型描述了过程定义所需要的上层实体是为了定义软件开发领域的工作流模型而定义的抽象模型它描述了软件过程内部的各个元素元素的属性及元素之间的关系软件过程是工作流的一种传统的工作流元模型分为三个相互关联的子模型即a过程定义元模型模型元素用于定义业务过程中控制工作流的执行b组织机构元模型描述单位部门人员的组织关系以及所担当的角色c相关数据元模型工作流生产和消费的数据以及它们的流动关系他们是分割开来的三个整体组织机构元模型互相有关联过程定义元模型如图4-1所示相关数据元模型图4-1传统工作流元模型结构Diagram4-1TraditionalWorkflowMeta-ModelStructure - 21 -  上海交通大学计算机应用硕士学位论文可见这三个模型之间有着非常错综的关联基于XML的软件过程建模及仿真平台 是不能够完全分割开来看待的所以在本文中我们提出了软件过程元模型中的视图概念定义2视图不同的视图有不同的侧重点从不同的维度来描述软件过程同一个实体概念可能出现在一个或几个视图中他们分别是abc流程视图组织视图制品视图对应于过程定义元模型对应于组织机构元模型对应于产品数据元模型可见过程组织和数据是严密联系的三个有机组成部分我们可以从任意一个纬度来描述软件过程模型三个视图应当是一致并且互相契合流程视图强调是最主要的一个维度流程消费并处理和传递软件制品其实会包含很多规则的描述这些规则我们称为模型约束制品视图强调的是另一个维度他作为流程以及活动的输入输出是软件工程中信息交换的主要形式下图中表述了三个视图间的关系组织视图软件过程概念模型制品视图流程视图图4-2改进的软件过程元模型结构Diagram4-2Meta-ModelHierarchyandStructure在上图中我们可以看到在改进后的软件过程元模型结构中我们可以从不同的视角去描述相同的信息这三个视角所包含的信息是不同的我们将在后面的章节中详细阐述这三种视图合成软件过程元模型其中流程视图是元模型的核心组织和制品视图则作为必要的补充在这里我们为了区分过程的概念将其命名为流程视图软件过程元模型规约出元素类型的一个基本集合这些元素类型适合于基本的软件过程定义元模型结构的基础是软件过程概念模型目前对概念模型的定义莫衷一是定义3软件过程概念模型软件过程概念模型是使用软件过程元模型中的基本概念对某个应用域的业务过程抽象描述所得到的结果它可以用自然语言或简单的图形描述不需要具有标准的形式化的描述基于软件过程概念模型我们可以建立软件过程建模语言定义4软件过程定义语言软件过程定义语言是基于软件过程元模型而定义的用于形式化地描述工作流模型的语言目前基于工作流的定义语言有很多如表4-3所示 - 22 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 表4-3一些主流工作流定义语言Table4-3SomeMainWorkflowDefinitionLanguage定义5软件过程模型软件过程模型是使用软件过程定义语言对软件开发过程形式化描述所得到的结果它包含软件开发过程所需要的信息定义6软件过程软件过程是软件过程模型的一个实例它表示软件过程的一次执行4.1.2元模型构成以上这些概念之间的关系如图4-4软件过程模型是基于软件过程元模型而使用软件过程定义语言所描述对于一个软件过程模型可以生成多个软件过程实例每个软件过程有一个ID它唯一标识该工作流实例软件过程软件过程模型软件过程定义语言软件过程元模型软件过程概念模型图4-4基本概念结构关系Diagram4-4BasicConceptStructureandRelationship4.1.3三视图模型制品是软件开发所作用的对象这些应用数据有各自不同的类型定义不同的组织方式活动在执行中可能需要执行者(人或代理)的参与这些执行者构成一个组织他们之间存在着某种关系对于这些执行者有两种划分准则一 - 23 - 名称特点图形符号简单直观便于用户使用Petri网便于业务过程分析ECA规则具有灵活性CTR逻辑便于业务过程分析超媒体结构便于表示层次结构的过程模型工作流环适用于交互型工作流管理系统WIDE工作流模型适用于分布式工作流管理系统 上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 种是按照执行者的职能将其划分为不同的角色如部门经理会计另一种是按照组织结构将其划分为不同的组织单元如财务部人事部一个执行者属于某个组织单元充当某个角色基于上述对现实世界业务过程的分析我们应该从三个方面来描述业务过程即业务过程构成数据模型和组织结构因此在建立工作流模型时应使工作流模型包含这三个方面的信息而且为了支持大规模组织中的业务过程处理应该对这三个方面分别进行描述为此我们提出一个三视图软件过程模型它包括三个视图组织视图制品视图和流程视图组织模型描述了组织内部各个实体及其相互关系数据模型描述了业务过程所访问的数据及其视图过程模型描述了业务过程结构中的各种实体及其约束关系(包括控制流和数据流)一个业务过程实际上是由这三个模型中的若干个实体所构成业务过程作为框架将过程模型组织模型和数据模型中的各种实体关联起来子模型之间的相互关系流程模型制品模型和组织模型实际上是从不同的侧面描述一个工作流包含工作流执行所需要的相关信息然而它们之间并不是孤立的而是有机地相互关联在三视图软件过程模型的三个视图中流程视图处于主要位置它显式地描述一个业务过程而组织模型和数据模型则处于隐式位置对于一个软件过程模型来说这三个视图通过某些实体相互关联起来从而完整地表达工作流的语法和语义信息他们通过角色和活动的执行关系将过程模型与组织模型关联起来使得组织模型和过程模型的变化不会相互影响通过活动和外部应用的调用关系以及活动和应用数据的存取关系将过程模型和数据模型关联起来在工作流执行时外部应用与工作流引擎之间存在某种交互接口从而工作流引擎能够与外部应用交换数据软件过程元模型中元素与元素之间的关系主要有三种单向关联聚集和泛化单向关联容易建立和维护有助于寻找可复用的元素支持用户复用已有的过程元素聚集关系简化了软件过程中元素的定义一个复杂的对象这将有利于对复杂事物的分析和理解减少出错的可能性泛化关系体现了软件过程各元素之间的分类与继承原则4.1.4模型定义实体关系图在软件过程中涉及到的概念可以入下面定义的所述在这里我们来定义这些概念假定Aattr是属性名称的集合Arole是角色名城的集合而实体关系模型可定义为如下结构实体E=(CLASS,ATTc,ASSOCc,ð)其中lCLASS是分类符的集合在UML中分类符包括简单数据类型类和接口lATT是操作符ac:c→s的集合ac是一个函数把类型对象映射成一个属性值值的类型是s其中ac∈Aattr - 24 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 lASSOC是操作符r:c→s的集合r∈Arole是关联末端的角色名末端的数量结果要么是单值c′要么是多值Set(c′)或Sequence(c′)根据l4.2ð是C上的偏序关系软件过程元模型它反映了类别间的范化关系4.2.1组织视图4-5组织机构概念模型是对一个组织内各种实体及其相互关系的描述见图在组织视图中软件过程存在如下关系l组成关系连接两个实体表示一个实体是另一个实体的组成部分l管理关系连接执行者和功能组表示某个执行者管理该功能组l替代关系连接两个执行者表示当一个执行者不在时由另一个代替l充当关系连接执行者和角色表示一个执行者充当某个角色一个执行者可以充当多个角色一个角色也可以由多个执行者充当l拥有关系连接角色和能力表示一个角色拥有这种能力 - 25 -  上海交通大学计算机应用硕士学位论文过程基于XML的软件过程建模及仿真平台 项目项目标识过程标识时间R/41组织标识 (FK)预期规模实际规模采用隶属开发P团队组织资源代理团队标识组织标识 (FK)P包含 /隶属组织标识拥有资源代理标识调度策略隶属组成角色角色标识需要负责充当能力能力标识培养时间调用人力资源资源标识资源代理标识 (FK)姓名单位成本负荷具备调用物质资源资源标识资源代理标识 (FK)单位成本数量图4-5组织视图结构Diagram4-5OrganizationAspectStructure定义1项目项目是团队工作的基本组织方式从管理的角度来看项目是一个活动在它的分解过程中往往要建立活动之间的纵向关系以支持自顶向下的项目分解llllEProj={Proj,ATTProj,ASSOCProj,ð}ATTProj={ProjID:Proj→String,ProjName:Proj→String}ð=∅ASSOCOrg={TopOrg:Org→Set(Resource),ProjOrg:Proj→Org}定义2组织组织是软件开发系统的基本构造单元它是用来管理或执行软件开发任务的客观实体完成同一个软件项目的所有资源包括人力和物质资源的总和统称为一个组织llllEorg={Org,ATTOrg,OPOrg,ASSOCOrg,ð}ATTorg={OrgID:Org→String,OrgName:Org→String}ð=∅ASSOCOrg={TopOrg:Org→Set(Resource)} - 26 - , 上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 定义3团队团队是软件组织的一种基本构造单元是资源与过程的集合团队与项目关系密切通常贯穿于项目的生命周期一般一个组织是由若干个团队构成团队是一种层次化结构有子团队的概念它是对组织内某个部门的抽象描述llllETeam={Team,ATTTeam,OPTeam,ASSOCTeam,ð}ATTTeam={TeamID:Team→String,TeamName:Team→String}ð=∅ASSOCTeam={SubTeam:Team→Set(Team)}定义3角色角色是活动类型及其对执行者资格要求的描述它被赋予了权限和能力的含义当给定一个角色时就可以知道它能够执行哪些活动活动的真正执行是靠扮演某种角色的执行实体Agent(人员硬件和软件等)来完成的角色存在继承关系如果ABRisa则拥有角色B的执行实体可以执行分配给角色A的活动即角色的子类除了可以执行分配给其本身的活动还可以执行父类的活动角色是具有某种身份或权限的命名标识属性包括名称所属部门能力列表和充当此角色的执行者列表等等llllERole={Role,ATTRole,OPRole,ASSOCRole,ð}ATTRole={RoleID:Role→String,RoleName:Role→String}ð=∅ASSOCRole={RoleSkill:Role→Set(Skill)}定义4技能技能指所一个角色需要具备的能力llllESkill={Skill,ATTSkill,OPSkill,ASSOCSkill,ð}ATTSkill={SkillID:Skill→String,SkillName:Skill→String}ð=∅ASSOCSkill={RoleSkill:Role→Set(Skill),SkillResrouce:Skill→Set(Resrouce)}根据各软件组织的经验任何技能都分为5个级别1.非常有研究能够解决技术困难2.非常了解能够帮助别人完成3.了解能够独立完成4.稍有了解需要在他人帮助下完成5.毫无了解定义5资源资源是完成一个软件项目所需要的基础设施它的耗费需要记入软件成本资源包括人力资源和物质资源人力资源指具备某种能力的人员的集合物质资源指软件开发需要使用的工具设备场地等这其中并不包括软件制品软件制品作为一个单独的实体概念将在随后相关数据一节中提到llEResource={Resource,ATTResource,OPResource,ASSOCResource,ð}ATTResource={ResourceID:Resource→String,ResourceName:Resource→String} - 27 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 llð=∅ASSOCResource={SkillResource:Skill→Set(Resource)}4.2.2流程视图过程定义概念模型是对业务过程结构中各种实体及其约束关系的描述见图4-6流程视图中存在着如下关系l组成关系连接过程和活动表示一个过程由多个活动所组成llll先序关系继承关系引用关系调用关系表示活动之间存在的约束关系活动是抽象实体在建模时要具体化为原子活动或者子过程表示一个子过程在执行时引用另一个过程对象表示活动在执行时可能调用某个应用程序同一抽象层次的活动之间存在着先序关系这种关系定义了业务过程中的控制流和数据流WfMC定义了4种类型的控制结构即顺序结构并行结构选择结构和重复结构所有工作流可以由这4种基本控制结构组合而成 - 28 -  上海交通大学计算机应用硕士学位论文并行策略并行策略标识使用使用过程过程标识并行策略标识 (FK)迭代策略标识 (FK)时间迭代策略基于XML的软件过程建模及仿真平台 迭代策略迭代策略标识角色角色标识P进行隶属迭代迭代标识过程标识 (FK)并行策略标识 (FK)迭代策略标识 (FK)包含活动执行/合作消息消息标识正文输出 /输入活动标识迭代标识 (FK)过程标识 (FK)并行策略标识 (FK)迭代策略标识 (FK)工作量前置图4-6流程视图结构Diagram4-6FlowAspectStructure定义1过程表示一种由工作流管理系统设定的自动操作为形式的商业过程过程定义由各种活动以及相互之间的网状关系组成标识了过程的开始和终止并且包含个体行为的信息比如各个参与者与IT相关的应用程序和数据等它是对现实世界一个业务过程结构的抽象描述属性包括名称时限活动列表开始活动结束活动和优先级等等llEProcess={Process,ATTProcess,OPProcess,ASSOCProcess,ð}ATTProcess={ProcessID:Process→String,ProcessName:Process→String} - 29 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 llð=∅ASSOCProcess={ProcessIteration:Process→Iteration}父过程模型和子过程模型子过程是对另一过程模型的引用属性包括名称描述开始条件结束条件输入数据输出数据和过程模型名称等如果一个过程模型中包含某个子过程这个子过程引用另一个过程模型则称前者为后者的父过程模型而称后者为前者的子过程模型父过程模型和子过程模型是相对的一个过程模型可以有多个子过程模型而一个子过程模型只能有唯一的父过程模型因此所有具有这种关系的过程模型构成一个具有层次的树状结构  引入子过程是工作流建模的需要它为软件过程建模和控制执行带来以下好处(1)优化过程模型的结构层次抽象是人们分析问题普遍所使用的方法使用子过程可以隐藏某些非重要因素便于工作流建模而且使过程模型具有良好的结构(2)提高过程模型的重用性子过程也是过程建模中的基本单元一个过程模型可以作为子过程被其它过程模型所重用(3)便于工作流模型的分析在分析一个工作流模型时我们往往将其中某部分作为一个子过程以降低分析复杂度而后再对这个子过程模型进行分析(4)便于工作流的分布执行在分布式工作流控制执行中子过程往往作为一个基本单位在不同工作流引擎间分布调度定义2活动一个活动由操作和操作对象构成引入活动概念的目的是让活动的操作和操作对象联接起来区别于活动的抽象概念在机制上把对象和操作分离操作和应用分离在过程定义时操作和对象绑定生成活动在执行时操作和应用功能动态绑定形成活动的执行实际上是应用功能和操作对象的绑定活动的执行者是具体的资源这一般要在软件过程执行时才会确定llllEActivity={Activity,ATTActivity,OPActivity,ASSOCActivity,ð}ATTActivity={ActivityID:Activity→String,ActivityName:Activity→String}ð=∅ASSOCActivity={ActivityIteration:Activity→Iteration}定义3迭代迭代是一组活动的有序集合llllEIteration={Iteration,ATTIteration,OPIteration,ASSOCIteration,ð}ATTIteration={IterationID:Iteration→String,IterationName:Iteration→String}ð=∅ASSOCIteration={IterationActivity:Iteration→Set(Activity)}定义4并行策略并行策略是指两个或更多过程同时或先后展开时他们之间的并行关系lEConStr={ConStr,ATTConStr,OPConStr,ASSOCConStr,ð} - 30 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 llATTConStr={ConStrID:ConStr→String,ConStrName:ConStr→String}ð=∅假设有两个过程A和B我们总结了以下几种并行策略并行策略1序列AB图4-7序列流程Diagram4-7SequentialFlow并行策略2选择或AB与AB图4-8选择流程图Diagram4-8SelectiveFlow并行策略3聚合AB或AB与图4-9聚合流程图Diagram4-9AggregativeFlow定义5迭代策略迭代策略指在迭代开发中几个迭代开始的时间先后关系lllEIterStr={IterStr,ATTIterStr,OPIterStr,ASSOCIterStr,ð}ATTIterStr={IterStrID:IterStr→String,IterStrName:IterStr→String}ð=∅我们总结了迭代的几种普遍适用的迭代策略迭代策略1单次迭代传统的瀑布模型可以看作是迭代化开发的一个特例整个开发流程只有一次 - 31 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 迭代但这种模式有一个固有的弱点由于它对风险的控制能力较差往往会在产品化阶段产生一些额外的迭代造成项目的延误迭代策略2顺序迭代顺序迭代即在一次迭代结束之后才开始第二次迭代特点是易于管理和控制ABC图4-10顺序迭代Diagram4-10SequentialIteration迭代策略3中途迭代在第一个迭代执行到某一时间的时候开始第二次迭代ABC图4-11中途迭代Diagram4-11Half-wayIteration4.2.3制品视图制品概念模型是对软件过程中的中间制品及产品本身其制造过程及其约束关系的描述见图4-12 - 32 -  上海交通大学计算机应用硕士学位论文制品制品标识存放位置基于XML的软件过程建模及仿真平台 消息完成度版本修改历史是否中间制品负责人力资源资源标识资源代理标识 (FK)姓名单位成本负荷附带消息标识输出 /输入活动活动标识迭代标识 (FK)过程标识 (FK)工作量前置图4-12制品视图结构Diagram4-12ArtifactAspectStructure定义1制品制品是被软件开发过程所利用或通过软件开发过程所生产的一段信息如外部文档或工作产物制品可以是一个模型描述或软件数据模型是对工作流执行过程中所访问数据对象的描述数据模型不像组织模型那样有清晰的模型定义在企业应用当中各种数据对象具有不同的类型定义因此应该依照应用语义建立相应的数据模型根据数据对象在工作流中的作用将其分为三种类型控制数据应用数据和外部数据控制数据是指被工作流管理系统所使用的内部数据这些数据主要用来表示工作流实例或活动实例的状态它们不能被外部应用直接访问在分布式执行环境中这些数据可以在不同的工作流服务器之间交换另外有些控制数据可以提供给某些工具如实例监控工具以获取工作流实例的状态一般来说控制数据使用变量来表示变量是信息的基本单位其属性包括类型名称为私有变量和共享变量私有变量只能被一个工作流中的所有活动访问而共享变量可以被不同的工作流所访问llllEorg={Org,ATTOrg,OPOrg,ASSOCOrg,ð}ATTorg={OrgID:Org→String,OrgName:Org→String}ð=∅ASSOCOrg={TopOrg:Org→Set(Resource)} - 33 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 第五章 软件过程建模语言SPSL5.1SPSL简介软件过程建模和仿真归根结蒂是通过软件过程定义语言来进行的语言是模型的另一种通用表述形式它的存在是为了便于将模型与运行平台联系起来过程建模语言是过程的表示工具是过程技术的关键所在由于软件产品及其他生产过程不同于一般的工业产品及其生产过程要达到过程建模的目的具有严格的形式化基础的建模语言是必要的图形语言和文本描述作为必要的辅助手段我们提出一种基于XML的过程定义语言SPSL他是通过对实体关系图转化而得到的经过对实体关系模型分析已经能在不涉及模式语言的语法问题前清楚地捕获XML文档模式的基本术语以及关系这里将结合ER图模型模式语言的特点XML文档模式的目的例如是面向数据的还是面向文本的以及习惯用法等来设计XML文档模式把实体关系图映射成XML文档模式这里由实体关系图生成文档模式的关键是一要保证准确地捕获U模型域的语义二要充分利用XML的优点调整模式使其具有XML特有的设计特征软件过程模型是工作流定义语言的强化子集同时针对仿真需求增加了部分属性值含义这些属性值的含义只有在SPSL引擎中才具有特殊含义所以对元素之间的包含关系进行了更加严格的限制使得流程定义被描述的更加简洁使得元素之间的层次关系更加明细5.2元模型向XML模式的转换方法5.2.1映射实体和属性实体关系图定义了一个复杂的数据结构在XML模式中复杂类型用来组织复杂的数据结构实体的属性组成了实体的数据结构对应于XML模式中复杂类型中的子元素或者属性这样把实体映射到复杂类型实体属性映射到复杂数据类型中的子元素在XML中对于不可能有子元素的信息将优先选用属性来表示5.2.2映射关联实体的数据结构不仅包括属性也包括与其它类的关联根据类之间关系的紧密程度关联可分为聚集和普通关联两种具有聚集关系的对象的生命周期通 - 34 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 常一样而普通关联则往往不同5.2.3映射继承继承在面向对象技术中是一个很基本也很关键的概念人们将具有共同特性的事物抽象成类并通过增加其内涵而进一步分类继承定义了一般事物和特殊事物之间的分类关系用实体关系图中复杂类型的扩展机制很容易表示类的继承关系5.2.4顶层元素与包前面都是定义模式中的数据类型没有定义可以用来直接约束XML文档的顶层元素为了有效地对XML文档约束至少需要定义一个顶层元素顶层元素的默认名字与复杂类型名字相同由于使用不同的命名空间所以不会产生冲突另外常常需要加一些其它的信息到XML文档这些信息一般用于指示数据的作用行为或处理操作如传递更新等创建时间等作为整个文档的附加信息作者为根元素添加一些属性来表示这些信息这些属性及其表示的信息称为信封Envelope许多XML服务器如BizTalk就是用这种机制来描述附加信息的考虑到复用这里直接改XML复杂类型定义以便容纳信封是不合适的好的办法是为特定XML文档跟元素使用派生的匿名复杂类型以便容纳信封的定义SPSL元模型中视图是对模型组件进行分组的基本机制通常把关系比较紧密的一组实体放到一个视图中或者把一个可重用的组件放到一个包中包和XML中命名空间的概念非常相似依照类图生成XML文档模式的时候Java语言就是用包来管理名字空间的通常把一个包中类生成的模式放入到一个单独的模式文档同时根据包的名字为此模式文档定义命名空间NameSpace方便模式以后的管理和重用表5-1是实体关系到XML模式的主要映射规则表5-1实体关系到XML模式的主要映射规则Table5-1RulesofMappingERtoXMLSchema - 35 - 实体关系XML模式包单独模式文件实体名复杂类型名关联聚集子元素继承派生多重性minOccursmaxOccurs简单类型内置或自定义简单类型初始值默认值 上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 5.3元素与结构5.3.1过程过程定义复杂类型ProcessDef子元素Process属性id,name,startPoint,endPoint,strategy活动引用复杂类型ActivityRef子元素无属性id,name,prereq - 36 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 制品引用复杂类型ArtifactRef子元素无属性id,name,operation角色定义复杂类型Roles子元素Role属性id,name迭代策略定义复杂类型Iteration子元素ActivityRef属性id,name,strategy - 37 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 活动定义复杂类型Activity子元素PreCondition,Output属性id,name,performer活动子元素定义复杂类型Output子元素ArtifactRef - 38 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 复杂类型ResourceRef属性id,count5.3.2组织组织定义复杂类型Organization子元素Resources/Skills/RoleDef技能定义复杂类型SkillGroup子元素Skill属性id,name - 39 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 角色技能定义复杂类型RoleDef子元素RoleRef/Skills属性id,level - 40 -  上海交通大学计算机应用硕士学位论文资源定义基于XML的软件过程建模及仿真平台 复杂类型Resources子元素StaffGroup/Material人力资源定义复杂类型Actifacts子元素Artifact属性id,name,ownerRole,type物质资源定义 - 41 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 复杂类型Material属性id,name,cost,count5.3.3制品制品定义复杂类型Actifacts子元素Artifact属性id,name,ownerRole,type5.3.4输出运作周期复杂类型Output子元素Durations - 42 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 属性id,time5.4示例软件组织A公司5.4.1组织视图我们运用SPSL对他的需求变化过程为例建立模型角色定义表5-2描述了需求变化过程关系到几个角色表5-2需求变化关联角色Table5-2RolesHavingConcernstoRequirementChange系统结构 - 43 - 角色名称描述项目经理负责联系客户了解最新需求在项目组中是需求变化的来源技术主管负责评估需求变化制定实施计划开发人员负责维护开发环境开发源代码测试人员负责维护测试环境维护测试脚本并执行测试 上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 资源技能表5-4描述了需求变化过程中每个角色所需要的技能表5-4需求变化技能需求Table5-4SkillRequiredforRequirementChange - 44 - 角色名称描述项目经理管理5级技术主管管理3级编程4级软件架构4级开发人员编程3级网络2级测试人员测试3级网络2级 上海交通大学计算机应用硕士学位论文5.4.2流程视图图5-3描述了需求变化的流程基于XML的软件过程建模及仿真平台 项目经理技术主管撰写需求说明撰写架构实现验收递交开发人员测试人员图5-3实现代码撰写测试用例需求变化流程修改测试Diagram5-3FlowofRequirementChange流程定义这个过程中包含有两个多次迭代 - 45 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 12实现代码↔撰写测试用例修改↔测试活动定义图中每一个图标就是一个活动 - 46 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台  - 47 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 5.4.3制品视图5.4.4小结以上几个文件的定义组成了一个完整的软件过程即包含过程本身的定义也包含了企业级的数据可以看到在流程视图中我们引入了迭代的概念将开 - 48 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 发的流程以及测试的流程定义成两个迭代在过程中可以定义迭代的次数和策略能够满足目前软件过程的需要其次在组织制图中我们为每个角色定义了技能每项技能中定义了级别在结果集中包含每个活动的执行时间信息如果我们需要研究某一个过程在不同规模不同背景的软件组织中的实施效果只需要替换不同的组织相关输入文件即可同样如果需要针对某一个企业进行单独的仿真可以在不改变软件组织相关输入文件的情况下替换不同的软件过程定义这种松耦合的仿真模式能够契合不同研究者的需要 - 49 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 第六章 支持SPSL的仿真系统6.1简介SPSL软件过程仿真系统通过一个运行在客户端的仿真引擎来模拟活动的执行自动推进软件过程实例经过多次仿真运行得到一系列关于工作流模型的统计数据用户可在这些统计数据的基础上进一步分析和评价软件过程的各项性能从而在实际执行之前消除隐患例如死锁问题某些瓶颈因素等,并且可以进一步分析软件过程的性能是否良好是否有必要重新考虑和重新设计流程从而改善一些重要的性能指标例如成本时间质量和资源利用等从而最终得到一个优化的过程模型该仿真系统对于一个过程模型的仿真可以分为三个步骤进行分别为初始化仿真场景进行仿真和生成仿真报告以下分别进行阐述6.2系统结构在第二章中我们简单地描述了整个仿真系统的架构现在我们就图6-1系统数据流图做具体的阐述企业数据仿真引擎结果集格式化格过程定义式化数据优化引擎分析结果分析引擎图6-1SPSL软件过程仿真平台数据流图Diagram6-1DataFlowDiagramofSPSLSoftwareProcessSimulationPlatform系统流程说明12基于SPSL-PROCESS语言定义软件过程配置仿真引擎 - 50 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 3基于SPSL-ORG构建企业数据4运行仿真引擎获取结果数据初始化仿真场景当过程模型由仿真引擎仿真执行时与用户的交互和第三方应用的激活完全抛弃了这时驱动仿真的参数由用户通过界面按照个人意图进行设置这就是仿真场景的设置而用户设置哪些仿真参数如何设置都对最后生成的仿真模型有非常大的影响仿真场景可以包括资源级别可利用时间工作时间和路由规则等但总的来说仿真场景的设置分为三种一种是与仿真运行有关的配置参数例如仿真报告名称人类行为建模相关参数仿真的次数另一种是与分析统计有关的参数例如组织视图组织名称组织描述下属组织资源视图资源名称资源数量资源所属组织资源的成本和资源的加班成本等第三种是活动仿真数据的设置例如活动所用资源及数量资源完成任务的类型静态活动的发生次数输出设定循环转移的发生次数等进行仿真仿真场景设置完成后系统根据用户的设置生成仿真模型仿真引擎依据一系列仿真执行规则负责解释仿真模型模拟活动的执行自动推进过程实例仿真引擎模拟活动的执行时主要判断活动是否可执行并负责修改活动的状态修改资源状态进行时间的累加取走前驱信牌箱中的信牌和往后继信牌箱中放信牌等同时负责在仿真过程中采集数据并将数据写入仿真数据库中若仿真过程中有活动的状态发生改变还要根据当前的活动状态刷新用户界面的动画显示区和文字显示区而作为特殊活动对待的信牌箱当有信牌放入时会判断信牌数是否满足后继转移的权值要求若满足则触发后继活动的仿真执行其中因为过程模型中存在手工活动该活动的实际执行需要人的参与而人的思维和行为有一定的反复无常性这种由人为因素引起的不确定性必须在仿真过程中进行有效的模拟对于这种情况仿真引擎进行处理时根据用户设置的人类行为建模参数对活动的模拟执行作以控制从而影响采集的仿真数据在一定程度上增强了仿真结果的可信度使仿真结果更有说服力生成仿真报告仿真引擎完成对过程模型的模拟执行后仿真报告生成器负责从仿真数据表中读取仿真数据并根据用户所设置的显示方式装配仿真数据生成仿真分析报表输出到用户界面供建模或者管理人员进行分析若他们想查找以前的仿真报告进行比较则仿真报告生成器从历史仿真数据表中得到数据并装配成表格进行提交为了给建模和管理人员提供更多的决策依据SPSL仿真器支持对仿真结果集的扩展6.3仿真引擎本系统基于HLA的体系结构和功能HLA采用面向对象的方法建立对象模 - 51 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 型并分析系统以标准化规范化的对象模型模板OMT(ObjectModelTemplate)的形式定义和描述仿真实体的对象信息和交互信息并通过运行时间支撑系统管理各仿真应用RTI(RunTimeInfrastructure)提供较好的仿真应用的互操作性和仿真资源的可重用性以保证不同类型的仿真应用能够协调工作完成复杂的仿真任务组织代理制品代流程代理企业数据初始化代结果代理结果集SPSL解析构造过程定义图6-2SPSL仿真引擎结构Diagram6-2ArchitectofSPSLSimulationEngine初始化代理负责将解析企业数据并初始化仿真环境分别对组织代理制品代理和过程代理进行初始化仿真环境可以有一些特殊的配置参数也会在这一阶段进行初始化结果代理负责收集仿真现场数据组织代理负责提供组织信息制品代理并且生成基于SPSL的仿真结果负责管理各制品的元信息已经状态信息管理并行访问流程代理仿真引擎的主要部分负责管理软件开发流程及向结果代理传递流程仿真的结果数据 - 52 -  上海交通大学计算机应用硕士学位论文搜索开始点基于XML的软件过程建模及仿真平台 是否迭代过程是否解析子过程当活动结束寻找可以开始的活动有可以开始的活动无结束有对于每个活动启动活动并管理状态是是否有充分资源否减少资源需求增加新资源或等待图6-3流程代理流程图Diagram6-3FlowDiagramofFlowAgent以上几部分共同组成了SPSL的仿真引擎遵循三视图元模型的概念仿真引擎的关键在于将过程资源和组织包装成服务并且提供统一的调用接口这种松耦合关系将便于今后对仿真引擎的扩展 - 53 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 第七章 结语软件过程模型仿真作为一种经济安全可靠效率高的分析手段越来越受到大家的关注SPSL软件过程建模及仿真平台基于我们提出的基于过程迭代的软件过程元模型提出了一整套仿真引擎的执行过程和执行规则通过一个运行在客户端的仿真引擎来模拟活动的执行自动处理过程中的自动活动人工活动以及其他类型的活动并利用对人类行为进行建模的方法来处理仿真过程中所遇到的不确定性因素另外为了增强仿真结果的可视性在用户界面显示执行数据报告我们构建了比较完整的软件过程元模型元模型的研究大多是集中在某一个特定的领域我们需要的是一种能够将不同的领域的元模型相互整合的系统方法提出了三视图模型定义方法从组织流程制品三个不同的角度来描述软件过程在此元模型的基础上提出了软件过程建模语言SPSL作为一种软件过程描述语言SPSL结合了仿真系统的需求将仿真模型拆分成几个不同的层面覆盖了过程定义企业级数据及仿真结果等几个部分分别予以定义具备良好的扩展性能我们也开发了基于SPSL的软件过程仿真环境基于SPSL语言的仿真环境的建立使软件工程研究者和企业软件过程改进组成员能够拥有一个仿真平台在整个课题的研究过程中我们仍然发现了很多问题这些问题对我们来说既是一个遗憾也是未来我们可以继续改进的重点首先活动时间对于软件质量的关联关系在软件项目中某个制品的完善没有绝对时间以测试为例理论上来说软件系统的缺陷是永远存在的所以测试的执行时间和软件质量之间就存在权衡关系如何在仿真引擎中定义这样的关系是我们今后需要解决的问题其次对于结果集的分析是另一个需要完善的部分目前我们的实现中还没有分析引擎原因在于软件过程分析是一个很复杂的课题不是我们这个系统需要覆盖的问题但是我们可以做到的是为各种分析引擎提供统一的标准这是我们下一步需要做的事情同时基于系统的分析结果可以实现对过程定义的静态优化我们还需要进一步完善SPSL的语法使得这种优化更容易实现综上所述本课题完成的SPSL软件过程建模和仿真平台是一个很好的开端为软件工程研究者提供了平台为软件工程领域的基础研究提出了一种新的思路但是SPSL还存在很大的完善余地希望各位的共同探讨 - 54 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 参考文献[1]eXtensibleMarkupLanguage(XML).http://www.w3.org/TR/2004/REC-xml-20040204[2]ObjectConstraintLanguageSpecification(OCL).ObjectManagementGroup.http://www.omg.org[3]RationalUnifiedProcess(RUP).IBM,http://www-306.ibm.com/software/awdtools/rup/[4]XMLProcessingDescriptionLanguage(XPDL).http://www.wfmc.org/standards/XPDL.htm[5]MetaObjectFacility(MOF)Specification,V.1.3.ObjectManagementGroup.http://www.omg.org[6]RumbaughJ,JacobsonI,BoochG.Theunifiedmodelinglanguagereferencemanual.Boston:AddisonWesley,1999[7]RichtersM,GogollaM.OnformalizingtheUMLobjectconstraintlanguageOCL.In:Proceedingsof17thInternationalConferenceonConceptualModeling(ER).German:SpringerVerlag,1998.[8]CasatiF,GrefenP,PerniciB,etal.WIDEworkflowmodelandarchitecture.TechnicalReport96219,CentreforTelematicsandInformationTechnology(CTIT),UniversityofTwente,Netherlands,1996[9]TatsiopoulosIP,PanayiotouN.Theintegrationofactivitybasedcostingandenterprisemodelingforreengineeringpurposes.InternationalJournalofProductionEconomics,2000.[10]GertZulch,BerndBrinkmeier.Simulationofactivitycostsforthereengineeringofproductionsystems.InternationalJournalofProductionEconomics,1998.[11]SpeddingTA,SunGQ.Applicationofdiscreteeventsimulationtotheactivitybasedcostingofmanufacturingsystems.[12]TzviRaz,DanElnathan.Activitybasedcostingforprojects.InternationalJournalofProjectManagement,1999.[13]FuQian.Researchonworkflowsimulationforsoftwareprocessimprovement[D].Shanghai:DepartmentofComputerScienceandEngineering,ShanghaiJiaotongUniversity,2002.[14]RichtersM,GogollaM.OnformalizingtheUMLobjectconstraintlanguageOCL[A].In:LingTW,RamS,LeeML,eds.Procof17thIntConfConceptualModeling[C].Berlin:Springer,1998.[15]PeiweiMi,WaltScacchi.AKnowledge-basedEnvironmentforModelingandSimulatingSoftwareEngineeringProcesses.KnowledgeandDataEngineering,1990.[16]JamesChoi,WaltScacchi.ModelingandSimulatingSoftwareAcquisitionProcessArchitectures.TheJournalofSystemsandSoftware,2000. - 55 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 [17]N.Boudjlida,H.Basson.IntegrationMechanismsinALF,aProcessModel-BasedProjectSupportEnvironment.1992.[18]FeliceBalarin,LucianoLavagno,ClaudioPasserone,AlbertoSangiovanni-Vincentelli,YosinoriWatanabe,GuangYang.Advancesinsystemspecificationandsystemdesignframeworks:Concurrentexecutionsemanticsandsequentialsimulationalgorithmsforthemetropolismeta-model.May2002.[19]GavinYang.Coordinationmodels,languagesandapplications:Auniformmeta-modelformodelingintegratedcooperation.ACMsymposiumonAppliedcomputing,March2002.[20]K.SuzanneBarber,JimHolt,GeoffBaker.Softwaredomainmodelingandmeta-modeling:Performanceevaluationofdomainreferencearchitectures.the14thinternationalconferenceonSoftwareengineeringandknowledgeengineering.July2002.[21]VivianeTorresdaSilva,RicardoChoren,CarlosJ.P.deLucena.AUMLBasedApproachforModelingandImplementingMulti-AgentSystems.theThirdInternationalJointConferenceonAutonomousAgentsandMultiagentSystems-Volume2,July2004.[22]Brazier,F.M.T.;Keplicz,B.Dunin;Jennings,N.;Trenr,J.Modellingmulti-agentsystemsinacompositionalformalframework.InternationalJournalofCooperativeInformationSystems,6:67--94,.1997.[23]Brnsciani,Perini,Giorgini,Giunchiglia,F.;JohnMylopoulns,J..AKnowledgeLevelSoftwareEngineeringMethodologyforAgentOrientedProgramming.ProceedingsofAOSE2001.[24]Dardene,AvanLamsweerde,Fickas,S.:Goal-DirectedRequirementsAcquisition.ScienceofComputerProgramming.Vol20,NorthHolland,1993,pp.3-50[25]Demazeau,Y.:FrominteractionsWcollectivebehaviourinagent-basedsystems.InEuropeanConferenceonCognitiveSciences,1995.[26]Ferber,J,Gutkuecht,O.:AMeta-ModelfortheAnalysisandDesignofOrganizationsinMulti-AgentSystems.ProceedingsoflCMAS98.[27]KendallE.:AMethodologyforDevelopingAgentBasedSystemsforEnterpriseIntegration.IFIPWorkingConferenceofTC5SpecialInterestGrouponArchitecturesforEnterpriseIntegration,Queensland,Australia,November1995.[28]Kruchten,P.:TheRationalUnifiedProcess.Addison-Wesley,1999.[29]Massonet,P.etal.:MESSAGE:EngineeringAgentb~stemswithUML.ProceedingsofAOSE2001. - 56 -  上海交通大学计算机应用硕士学位论文基于XML的软件过程建模及仿真平台 致谢本文是在导师黄上腾教授的悉心指导下完成的论文的成稿凝聚着导师的心血黄老师在课题开发中对我的支持和帮助令我难以忘怀他诲人不倦的师德不仅在学术上也在做人的道理上给予我鞭策和指引对黄老师在学习科研和生活上给予的精心指导和无微不至的关怀我无以为谢谨铭记终生同时还要感谢我的父母姚顺祥以及多位好友在论文期间给予我的莫大的支持和鼓励 - 57 - '