论文部分内容阅读
自60年代出现软件危机以来,世界各国政府、计算机软件研究机构和组织在软件工程化方法、技术和工具的研究、开发和实践方面投入了大量的人力、物力和资金。人们认识到,要高效率、高质量和低成本地开发软件,必须以改善软件生产过程为中心,实施过程指导的软件生产与质量管理。
软件过程建模方法和技术能够帮助软件组织实现以过程为中心的软件生产,对于软件组织保证软件产品质量,提高开发效率具有重要的理论和实践价值。它能够从根本上改变过去手工作坊式的软件生产,使软件开发形成真正的工业化产业。
软件开发过程是一种特殊的生产过程,它高度依赖于人的能力,同样的过程因执行者不同,会生产不同质量和数量的产品;同时,对于实现同样的目标,不同的执行者可能会采用不同的过程完成。现有的软件过程建模方法基于传统制造业过程建模方法的思想,它们在建立过程时仅仅关注过程和活动间的关系,忽视了人的能力对软件生产过程的影响,在过程中缺乏有效的资源描述和资源调度,也无法适应软件过程的动态多变特性。最终导致建立的过程缺乏良好的可预见性和稳定性。
针对这些问题,本文给出一种基于组织实体能力的软件过程建模方法,该方法将一个具有确定资源能力的组织实体,如它们具有确定的目标、技能、过程知识、经验等,定义为一个过程Agent(过程主体),过程Agent能够在目标驱动下主动自治地建立实现目标的项目软件过程,并在过程中分配合适的资源。过程Agent是建模方法的核心,它的定义应该使其具有建模所需要的各种知识以及主动自治的行为机制。本文围绕过程Agent模型展开研究。
本文首先提出一种基于组织实体能力的软件过程Agent模型,它包括知识结构和行为引擎。其中,知识结构是对过程Agent的特征、各种过程要素知识和经验知识的描述,它是过程Agent能力的基础;行为引擎是过程Agent行为机制的载体,能够基于知识实现目标驱动的自治建模行为。通过该模型定义的过程Agent在建立软件过程时充分考虑其完成目标的能力,使建立的过程具有良好的可预见性,具备过程稳定执行的前提。
在过程Agent模型的基础上,本文接下来提出一种过程Agent模型的知识结构构成及组织方法,将知识结构分为描述性知识、过程性知识和经验库三部分。在描述性知识中,本文给出过程Agent的目标、技能、拥有人力资源状态的描述,用于说明过程Agent能够做什么;在过程性知识中,本文给出过程的描述方法和组织方法,用于说明过程Agent如何实现它的目标;在经验库中,本文给出过程Agent经验数据的定义以及经验数据的组织方法,这些经验数据可以用来估算过程Agent在实现目标时需要多少资源。通过上述知识的构成和组织,知识结构各部分知识的作用明确、容易构建、能够独立演化、并对过程Agent行为推理提供有效的支持。
然后,本文提出一种过程Agent模型的行为引擎结构并给出行为机制的实现,将过程Agent的行为引擎分为感知器、效应器、推理引擎、协商引擎、学习引擎和实施引擎等六个功能模块,以及信念、愿望和意图三个辅助状态集合。通过对行为引擎机制的介绍,说明过程Agent如何对给定的目标进行分析、协商、并最终为实现目标生成反映组织实体能力的、具有良好资源调度的、执行情况稳定和可预测的项目软件过程。
最后,在应用实例研究中,对本文提出的过程Agent模型有效性进行验证。该模型能够对过程Agent提供良好的定义,保证了基于组织实体能力软件过程建模方法的实现。