毕业论文——基于社会网络挖掘的项目成员推荐系统的设计与应用_第1页
毕业论文——基于社会网络挖掘的项目成员推荐系统的设计与应用_第2页
毕业论文——基于社会网络挖掘的项目成员推荐系统的设计与应用_第3页
毕业论文——基于社会网络挖掘的项目成员推荐系统的设计与应用_第4页
毕业论文——基于社会网络挖掘的项目成员推荐系统的设计与应用_第5页
免费预览已结束,剩余51页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业论文基于社会网络挖掘的项目成员推荐系统的设计与应用Social Network Mining Based Project MemberRecommendation System Design and Application姓名:学号:学院:软件学院系:软件工程专业:软件工程年级:校外指导教师:校内指导教师:二XX 年 X 月摘要作为知识密集型的产业,软件与传统工业有着很大的不同,软件开发的过程具有不确定性,动态多变性,高度依赖于开发人员的能力。在大型的软件项目中,开发团队通常会将复杂的项目分为更小的且相互依存的任务,然后分配给不同的小组,除了完成独立工作以外,在各个小组的成员之间也需要经常的交流与合作。因此除了个人能力的高低以外成员之间的合作能力也是影响软件过程能否顺利进行的根本因素。而在传统软件开发的团队的创建过程中,主要还是依靠项目经理的主观判断,这在一定程度上依赖于做出决定的人当时的心情,状态等,缺乏客观性、稳定性。近年来,软件从业人员和研究人员逐渐意识到,软件组织资产库中保存了大量历史项目开发的信息,包括项目的状态,过程和演化发展。通过一些数据挖掘技术,可以从中挖掘出很多隐藏的具有潜在价值的信息。而社会网络分析作为数据挖掘的一个分支,近年来发展较快。社会网络是以图或者矩阵的形式显示复杂系统中的关系的数据集,适用于分析关系数据。在分析中,可以过滤系统中纷繁复杂的背景信息,只保留系统的基本结构,有助于反映人与人之间的关系,可以提高组织中的协作能力、知识创新和知识传播。为了更好地为软件项目开发管理提供决策支持,提高软件产品的质量,本文提出了基于社会网络挖掘的项目成员推荐方法,与大多其他相关研究不同的是,本文主要考虑项目成员之间的合作情况和项目团队的整体组织结构,而不是对成员属性的描述。该方法从任务级别上分析历史相关项目中的成员合作情况,并利用社会网络分析的方法对项目团队的组织结构进行分析,得到形象的可视化分析结果,并以此为依据为新项目团队的创建推荐合适的成员。论文首先介绍了组织资产库,社会网络分析方法,软件质量保证平台(Qone)和使用到的历史数据,然后在此基础上详细介绍了从 Qone 中分析历史项目的组织结构的方法,并根据提出的方法进行实验,对实验结果进行比较分析,最后得出本文结论,并提出未来需要改进的工作。关键词:社会网络;组织资产库;人力资源;QoneAbstractSoftware, a knowledge- intensive industry, is different from traditional manufacturing industry, software process is uncertain, dynamic and highly dependent on programmers capability, and also communication & co-ordination activities are central to large software projects. Usually, organizations carry out complex projects by dividing them into smaller interdependent tasks assigned to groups and coordination arises as a response to those interdependent activities. So in addition to the personal capacity, teamwork is also the fundamental factor which influents software process. However, project managers usually choose the team members depending on their subjective judgment and experience which is impacted by peoples mood, mental state or psychological state.Recently, practitioners and researchers discovered that software repositories contain a wealth of information about projects status, process, and evolution. Using well established data mining techniques, practitioners and researchers can explore the potential of this valuable data. As a part of data mining field, SNA (social network analysis) develops rapidly in recent years. Social network analysis views social relationships in terms of nodes and ties. Nodes are the individual actors within the networks, and ties are the relationships between the actors. The resulting graph-based structures are often very complex. SNA presents data on interpersonal relationships in graph or matrix form. It has also been used to examine how organizations interact with each other. And in the network we can only pay attention to the basic structure of the system and ignore much complex information to learn the common denominators.In order to provide decision support, to better manage their projects and to produce higher-quality software system, this paper presents a member recommendation approaches based on SNA. Different from many other researches, we mainly consider the co-operation between members and the organization structure of the team, rather than the description of the members of attributes. Firstwe measure task dependent interpersonal relationships among members in the team. And then analysis the social structure in a relevant history project based on SNA. Finally, we propose a visualization backend and make a tool to recommend members participant in the new project.In this paper, we begin with an introduce of software repositories, the method of social network analysis, Qone and history data used from Qone, base on which describes the approach to analyzing social network structure in the successful relevant history projects from Qone. And then describe our tools and carry out experiments on history data according to the method and presents some preliminary results. Finally it closes with conclusions and the future woks.Keywords: Social Network; Software Repositories; Human Resource; Qone目录第一章 引言 .11.1研究背景及选题意义 .11.2研究现状及存在的问题.21.3本文内容 .31.4本文结构安排 .4第二章 相关工作 .52.1社会网络理论 .52.1.1社会网络定义 .52.1.2社会网络的形式化表达 .62.2社会网络分析概述 .92.2.3社会网络分析.92.2.4社会网络分析方法.102.3组织资产库挖掘概述 .122.4Qone 概述 .132.3.1Qone 平台简介 .132.3.2Qone 中的历史数据 .142.5小结 .16第三章 项目成员推荐方法 .173.1系统框架 .173.2 SNA 算法设计 .183.2.1模块化衡量 .183.2.2算法思想 .203.2.3算法设计 .223.3历史数据的选取 .253.4创建社会网络图 .263.5构建社团划分 .273.6 确定成员角色273.7 推荐原则283.8 小结29第四章原型系统及实验数据分析304.1 系统功能304.2 过程执行实例324.3 实验结果及分析364.4 存在的问题394.5 小结39第五章 结论及未来工作40致谢语41参考文献42附录 A45ContentsChapter 1Introduction .11.1Research Background .11.2Present Research .21.3Contents .31.4Organization .4Chapter 2Related Work .52.1Theory of Social Network .52.1.1Definition of Social Network.52.1.2Formulation of Social Network.62.2Outline of Social Network Analysis.92.1.3Social Network Analysis.92.1.4Methods of Social Network Analysis.102.3Outline of Software Repositories.122.4Outline of Qone .132.3.1Introduction of Qone.132.3.2History Data in Qone.142.5 Summary .16Charpter 3Member Recommendation Approach .173.1System Architecture .173.2Design of SNA Algorithm .183.2.1Modularization Evaluating.183.2.2Algorithm Idea.203.2.3Algorithm Design.223.3Data Extraction .253.4Creating of the Social Network .263.5Division of the Network .273.6 Indentify Developer Roles273.7 Principle of Recommedation283.8 Summary29Charpter 4System Intorduce and Experiment304.1 System Functions304.2 Experime nt324.3 Analysis of Running Results364.4 Existing Proble ms394.5 Summary39Charpter 5Conclusions and Future Works40Acknowledgements41References42Appendix A45基于社会网络挖掘的项目成员推荐系统的设计与应用第一章引言1.1 研究背景及选题意义在软件行业中,软件项目的管理包括对成本、人员、进度、质量、风险等进行分析和管理。而软件作为一个知识密集型的产业,高度依赖于人的能力,不同的人即使在相同的设备配置上,也可能生产出质量和功能完全不同的软件产品,其生产效率甚至可以相差数十倍1。可见人在其中扮演着极其重要的角色,被认为是项目中最大的资源,因此他们的组织结构在很大程度上影响着软件工程项目组的生产能力和生产质量。只有合理地对人员进行组织和调度才能更好地将软件人员的个人能力转化为企业的实际开发能力,使得软件开发过程有序且有效地进行。而在建立复杂软件系统的生命周期中,软件产品的开发效率不仅与个人的能力有关,还与人员的组织结构,内部成员的相互配合的默契程度有着很大的关系。为了更好地进行开发工作,软件开发人员之间必定存在着交流合作,包括从对需求的理解,到对测试的信息反馈,以及编码的各个模块之间的协调等等,一些交流中的误解可能会影响项目的进展和产品质量。例如,开发人员与需求分析人员之间的误解,会导致开发过程中需求的不明确,使得开发出来的产品无法满足客户的需要。也正因为交流合作这一特殊的需求,使得在团队中增加新的开发人员并不一定会提高项目开发的效率1。如果新加入的成员与小组中其他成员之间有过合作经验,或者说彼此之间相互了解,对彼此的做事风格也非常熟悉,那么他们之间就能够较快较好地进行沟通,从而提高工作效率。相反,如果将一个陌生的人放入一个开发小组中,那么,他们之间还要花费大量的时间来相处、磨合。目前,项目团队成员的确定还主要依靠项目经理的经验判断,主观地考虑成员能力和项目经验。这样的做法存在着五个问题:1. 对人的依赖程度较高。项目经理的个人素质和判断能力对项目团队的构成有着很大影响。2. 缺少对个人能力的客观评价。对历史项目中的各个成员的工作情况也只是进行主观的判断,缺少客观的衡量标准。1基于社会网络挖掘的项目成员推荐系统的设计与应用3. 忽略了人与人之间的合作能力。4. 忽略了成员之间的组织结构对项目的影响。5. 这种主观地判断具有不稳定性,在一定程度上依赖于做出决定的人当时的心情,状态等。因此,如何合理、客观地评价项目成员的合作经验,并且发现项目团队中的实际组织结构情况将对了解项目成员之间的合作关系,都将对软件开发组织的高效运营提供有利的帮助。1.2 研究现状及存在的问题近年来,基于 SNA(Social Network Analysis,即社会网络分析)的技术,因其能描述成员之间的关系,分析关系数据,而被广泛的关注。网络描述被普遍应用到很多科学和技术上,从神经生物学,到计算机网络或者语言学。V.F. GregMadey 和 R.Tynan 证明了自由软件工程的组织可以被看成是自主组织的社会网络2。R.A.Ghosh 考虑模块之间源的依赖关系提出了一种自由软件项目的网络分析方法3。因此,利用 SNA 来清楚地描述软件工程开发项目的人员合作关系是可行的。20 世纪 70 年代以来,软件从业人员和研究人员逐渐意识到,软件开发过程中的大量信息被保存在组织资产库中,通过一些数据挖掘技术,可以从中挖掘出很多隐藏的具有潜在价值的信息,从而可以为历史项目的实际参与情况提供客观形象地描述,并提供决策支持。Peter Weigerber 等人通过对版本控制系统中历史数据的分析,利用可视化技术来研究开发者之间如何协同工作4。Liguo Yu 和Srini Ramaswamy 利用模型来描述项目中开发人员的合作关系,再用挖掘技术来分析各个开发人员在项目中承担的角色5。Chris Jensen 和 Walt Scacchi 从任务依赖的角度出发,利用文本分析方法来描述开发团队中人员的组织关系6。ChristianBird 等人通过挖掘邮件列表中的历史数据来发现开源软件开发人员中存在的的人际网络7。Shen Zhang 通过对版本控制系统进行数据挖掘来评价开发人员的能力8。上面的研究大多是分析开源软件中的成员组织结构,他们认为开源软件的开发团队是不稳定且未知的,需要进行分析来发现其中的参与成员之间的实际合作2基于社会网络挖掘的项目成员推荐系统的设计与应用关系。而本文认为,依赖于主观判断得到项目组织结构和内部的合作情况是不全面的,不客观的,不可取的,因此,也需要通过对历史项目进行分析,获得较为客观的结果。另一方面,已有的研究大多都仅仅是对某个历史项目进行的分析,了解在该历史项目中的合作情况,本文在此基础上,为新的项目团队的创建推荐项目成员,从而解决上面提到的依靠项目经理的经验判断来确定项目团队成员存在的一些问题。1.3 本文内容历史数据是项目完成之后保留在组织资产库中的过程实际执行所产生的各种数据,对于项目成员来说,每一次项目的成功合作经历都可以提高他们之间配合的默契程度,加深彼此之间的了解。为解决 1.1 提到的依靠项目经理的经验来主观地判断并确定项目团队成员所存在的问题,本文根据成功的历史相关项目的组织结构来为新创建的项目自动推荐项目成员。在这一推荐过程中,主要考虑以下三个问题。1. 基于任务考察历史项目中的成员的合作情况。2. 推荐的成员需要覆盖各个相关的技术领域。3. 优先推荐各个项目组中的核心成员和桥接成员(见 3.6)。根据项目的合作情况,首先可以对项目成员进行分组。我们认为在同一组中的成员合作较为紧密,共同完成项目中的某些任务,那么他们必定存在着某些相似之处,掌握着相似的技术。本文中,这些小组参与的任务所用到的共同的技术的集合就被称为技术领域。在一个新建的项目中,它所需要的技术应该大致与相关项目类似。本文主要利用 Qone 中的历史数据,使用在传统领域中已经广泛存在的社会网络分析方法,考虑以开发者作为顶点,共同的合作频率作为连接的权值。用加权图来表示开发者之间的关系,这些关系描述了相互之间的合作和交流。首先,对历史项目做如下分析:1.是否有一个或多个主要的开发成员。2.每个开发人员是否只在他自己的文件、模块里工作。是否存在一个模块和3基于社会网络挖掘的项目成员推荐系统的设计与应用文档同时被多个开发人员一起来做。3.每个开发人员是否存在这样一个阶段,开发非常活跃。4.是否存在一些人,他们通常合作完成一些特定的内容。然后,根据相关历史项目的实际组织结构向新项目推荐参与成员。也可以在项目维护阶段,快速找到合适的人员来解决问题。该系统可以减少人工参与,降低对人的主观判断的依赖程度,提供一个较为客观的判断依据。1.4 本文结构安排本文共五章,其中:第一章 引言:介绍了本文研究的背景及研究意义。第二章 相关工作:介绍了与本文密切相关的基于组织资产库的挖掘,社会网络分析理论,社会网络分析方法以及 Qone 软件质量管理平台,并介绍了所涉及到的历史数据的结构。第三章 项目成员推荐方法:首先介绍了对历史项目的成员进行社会网络分析时所采用的算法的思想以及其在加权图分析中的应用,然后根据形成推荐成员序列的过程依次介绍每个方法。第四章 应用系统与实验数据分析:介绍模型工具,并详细描述一次实际执行过程中,按本文方法得到推荐人选的过程,然后基于实验结果分析方法的优点和不足。第五章 总结及未来工作:对本文工作进行总结并提出进一步的工作计划。4基于社会网络挖掘的项目成员推荐系统的设计与应用第二章相关工作2.1 社会网络理论2.1.1 社会网络定义社会网络是一个古老的学科,人们对传统社会网络的研究已有上百年的历史。它起源于群体社会心理学,随后在对社区进行的社会学和社会人类学的研究中逐渐发展起来。从社会学的角度来看,社会网络描述的是一个集体,每一个人和同一集体中的其他人都相互了解9。下面对社会网络这个概念做进一步说明:行动者(Actor):指在一个网络中与他人(行动者)相联结的具体的个人、组织、事件或其他集体性质的社会实体。社会网络(Social Network):指的是社会行动者及其间的关系的集合,即一个社会网络是有多个点社会行动者和各点之间的连线行动者之间的关系组成的集合。根据维基百科(Wikipedia)较为通俗的解释,社会网络就是指“有多个代表个人或组织的节点构成的社会结构,它显示了这些节点之间的联系通过偶尔结识的熟人,或紧密的家庭纽带。一个社会网络的最大规模是 150 人,平均规模124 人”。社会网络图(Socialgram):指在一个两维空间中以点代表行动者,以线代表行动者之间关系的一种图形。也叫社群图。用点和线来表达网络,这是社会网络的形式化界定。社会网络这个概念强调每个行动者都与其它行动者有或多或少的关系。社会网络分析者建立这些关系的模型,力图描述群体关系的结构,研究这种结构对群体功能或者群体内部个体的影响。社团结构(Community Structure):关于网络中的社团结构目前还没有被广泛认可的唯一的定义,较为常用的是基于相对连接频数的定义:网络中的顶点可以分成组,组内连接稠密而组间连接稀疏10,11。这一定义中提到的“稠密”和“稀疏”都没有明确的判断标准,所以在探索网络社团结构的过程中不便使用。因此人们试图给出一些定量化的定义,如提出了强社团和弱社团的定义。强社团的定5基于社会网络挖掘的项目成员推荐系统的设计与应用义12,13为:子图 V 中任何一个顶点与 V 内部顶点连接的度大于其与 V 外部顶点连接的度。弱社团的定义12,13为:子图 V 中所有顶点与 V 内部顶点的度之和大于 V 中所有顶点与 V 外部顶点连接的度之和。此外,还有比强社团更为严格的社团定义LS 集14,一个 LS 集是一个由顶点构成的集合,它的任何真子集与该集合内部的连边都比与该集和外部的连边多。另一类定义则是以连通性为标准定义社团,称之为派系15。一个派系是指由3 个或 3 个以上的顶点组成的全连通子图,即任何两点之间都直接相连。这是要求最强的一种定义,它可以通过弱化连接条件进行拓展,形成 n-派系。例如:2-派系是指子图中的任意两个顶点不必直接相连,但最多通过一个中介点就能够连通。这种定义允许社团间存在重叠性15 。所谓重叠性是指单个顶点并非仅仅属于一个社团,而是可以同时属于多个社团。社团与社团由这些有重叠归属的顶点相连。有重叠的社团结构问题有研究的价值,因为在实际系统中,个体往往同时具有多个群体的属性。除上述提到的社团定义以外,还有多种其他定义方式,在 Wasserman S 和Faust K 14的相关文献中有更为详细的介绍,这里就不在重复。本文重点关注于可以完全分离的社团结构问题,并采用较为常用的基于相对连接频数的社团结构定义。2.1.2 社会网络的形式化表达从数学角度上讲,图论是社会网络分析的基础数学理论之一,社会网络的形式化描述可分为社会关系网络图及社会关系矩阵。图 2-1 社会网络关系图(无向)6基于社会网络挖掘的项目成员推荐系统的设计与应用在图论中,网络可以分为有向网络和无向网络。因此,社会关系网络也可以分为有向和无向两种。社会关系网络图由一组节点 N= n1,n2 , ,nk及节点间的连线 L =l1,l2,ln所组成,其中,点代表行动者,线代表行动者之间的关系。在无向网络中,节点之间的连线是没有方向的,用直线表示,如图 2-1 所示。在有向网络中,节点之间的连线是有方向的,用带箭头的直线表示。如图2-2 所示。图 2-2 社会网络关系图(有向)用社会网络图的方式表现社会关系可以达到比较直观、清晰、明确的效果,并且使得社会行动者之间的关系一目了然,可以很清晰地观察社会网络的成员及他们之间的关系。但是当所研究的社会网络规模比较大时,社会关系网络图将变得十分复杂。同时,这种表达方式也不利于对社会关系进行定量分析,而社会关系矩阵则可以避免这种弊端。利用矩阵表达关系网络,可以用来研究多元关系,研究两种关系或者多种关系的“叠加”。这种方法最先由 H.White 和 J.P.Boyd 提出来。社会关系矩阵则是由社会关系网络图转换而来的,矩阵元素表示行为者之间的关系。社会关系矩阵的表达形式比较规范,利于计算机进行处理,是计算机存储及进行定量分析的基础。如果行和列都代表来自于一个行动者集合的“社会行动者”,那么矩阵中的要素代表的就是各个行动者之间的“关系”。为了简单明了地说明问题,下面就以无向网络为例。假设在该无向社会网络关系中,仅考虑行动者之间有无关系,而不考虑关系的强度,因此用 1 表示两者之间存在某种关系,7基于社会网络挖掘的项目成员推荐系统的设计与应用而 0 表示两者之间不存在某种关系。矩阵是由图 2-1 转换而来的简单的社会关系矩阵,从中可以看出,用二值表示的无向网络关系的矩阵是对称矩阵。如果没有数学工具图论、矩阵代数的支持,社会网络分析就不可能取得重要进展。用社会网络图网络的形式对实际的系统进行抽象时,可以过滤系统中原本纷繁复杂的一些背景信息,而仅仅保留系统的基本结构,这有助于对系统内在共同特征和性质进行研究。而在对众多实际网络的研究中,可以发现其中存在的一个共同的属性,即网络的社团结构。根据网络中节点的密集程度,可以将网络划分成若干个子群体或社团,每个群体或社团内的节点之间的连接是紧密的,而群体之间的连接是稀疏的。如图 2-3 所示24。在这个例子中,可以明显地看出存在着三个社团,每个社团用虚线的圆标记。可以看出每个社团的内部链接的密度较大,而外部链接的密度较小。图 2-3 一个小型的网络结构8基于社会网络挖掘的项目成员推荐系统的设计与应用2.2 社会网络分析概述2.2.3 社会网络分析社会网络分析( SocialNetwork Analysis, SNA) 发端于 20 世纪 30 年代,成熟于 20 世纪 70 年代,是一种用来测量各种社会网络图绘制过程中信息流动及信息沟的技术。研究者通过建立社会行动者之间关系的模型,力图描述群体关系的结构,研究这种结构对群体功能或者群体内部个体的影响。在最近十年中,社会网络分析已经发展为一套绘制和分析人、组织以及事物之间关系的方法。在引入图片和系统理论之后,这一分析已经成为一项强大的分析工具,用来研究物质世界及社会内部的网络构成,包括互联网上的社会网络情况。SNA 就是要对社会网络中行为者之间的关系进行量化研究,是社会网络理论中的一个具体工具。它是社会科学中的一个独特视角,它是建立在如下假设基础上的:在互动的单位之间存在的关系非常重要。社会网络理论、模型以及应用都是建立在数据基础上的,其中关系是网络分析理论的基础。网络模型把结构社会结构、经济结构等概念转化为各个行动者之间的关系模型。社会网络分析( SocialNetwork Analysis, SNA):是指利用一系列的方法,技术和工具分析社会网络,发现网络中自然存在的若干个群体,它是个人,群体,组织,计算机或其它信息、知识处理的实体之间信息交流和相互关系的映射与度量。网络中的节点是个人或群体,他们之间的联系显示了结点之间的信息交流或相互关系19。它需要具备四个特征20:1. SNA 表示的是行动者之间的相互关系而非他们本身的各种性质。2. 行动者之间的关系必须通过系统化的方法搜集得到。3. 需要建立在图模型的基础之上。4. 可以利用数学,计算工具等从这些关系中获得有价值的信息。社会网络分析主要是研究包括两个方面:1. 研究社会实体的关系连结以及这些连结关系的模式、结构和功能。社会网络分析同时也可用来探讨社区众个体间的关系以及由个体关系所形成的结构及其内涵。换句话说,社会网络分析的主要目标是从社会网络的潜在结构中分析9基于社会网络挖掘的项目成员推荐系统的设计与应用发掘其中次团体之间的关系动态。2. 研究行动者以及彼此之间的关系。通过对行动者之间关系与联系的连结情况进行研究与分析,将能显露出行动者的社会网络信息,甚至进一步观察并了解行动者的社会网络特征。而通过社会网络,除了能显示个人社会网络特征外,还能够了解许多社会现象。正是因为社会网络在组织中扮演着相当重要的无形角色,当人们在解决问题或是寻找合作伙伴时通常都需要依循所拥有的社会网络来寻找最可能提供帮助和协作的对象。社会网络作为数据挖掘的一个分支,近年来发展较快。在分析中,社会网络是由图来表示的复杂系统中的关系的数据集。这种方法被成功地应用在很多不同的科学和技术领域。例如:科学引文与合作21,生态系统22,流行病的传播23,犯罪网络的研究等。在网络分析中通常会用到很多指标来评价网络中各个不同节点的属性19,本文用到的相关指标如下: Similary:代表两个顶点之间的相似程度。 Degree:代表两个顶点之间的紧密度,权值越高,他们之间的关系越牢固。 Cost of Relationship:与权值相反,代表两个顶点之间的距离。 Degree of Vertex:与这个顶点链接的边的数目。 Weighted Degree of a Vertex:所有相连的边的权值之和。表示一个顶点和他的直接邻居之间的关系度。2.2.4 社会网络分析方法社会网络分析的方法主要分为四大类:凝聚,分裂2627,搜索和其他过程。这里主要介绍前两种。凝聚方法的基本思想是将每个节点是为一个独立的社团,用某种方法计算出各节点对之间的相似度,然后根据相似度进行节点的合并,往一个节点数为 n 而边的数目为 0 的原始空网络中添加边。这个过程可以中止于任何一步,而最终组成这个网络的独立集合就被认为是社团。从空图到最终图的整个算法的流程可以用系统图来表示,如图 2-4 所示。10基于社会网络挖掘的项目成员推荐系统的设计与应用图 2-4 聚类方法的系统图表示图中底部的各个圆代表了网络中的各个节点。当水平虚线从树的底端逐步上移时,各节点也逐步聚合成为更大的社团。当虚线移至顶部时,即表示整个网络聚合成为一个社团。在该树状图的任何一个位置用虚线断开,就对应着一种社团结构。相反地,在分裂算法中,一般是从所关注的网络整体着手,然后逐渐移除连接其中的边。重复这个过程,就逐步把整个网络分成越来越小的各个部分。同样地,可以在任何情况下终止,并且把此状态下的网络看作若干网络社团。与凝聚方法类似,可以利用系统图来表示分裂方法的流程,更好地描述整个网络逐步分解为若干个越来越小的子社团的这一连续过程。如图 2.3,水平虚线逐步下移,当移至底部时,每个节点就是一个独立的社团,这个过程也可以在任意一步停止,在虚线对应的位置断开,就对应着一种社团结构。搜索过程不拘泥于统一的凝结或分裂,而是建立一个逐步优化目标的探索过程,社团结构直接由最后的优化结果给出。搜索的方法可以应用成型的算法,Potts模型算法中就应用了模拟退火算法进行搜索。其他过程包含不归属于上述 3 个过程中的其他社团形成过程。如谱分析算法等。在大型软件项目开发的过程中,存在着大量的交流和合作,开发人员所构成的复杂的社会网络也始终影响着整个开发的过程,在一些前人的论文中45725将社会网络分析的方法应用到软件开发领域中,但他们都是以开源软件的开发团队作为研究对象,他们的研究主要是对属性数据的统计分析,即对一些社会网络的指标进行统计分析,并没有分析团队的组织结构和成员之间的相互关系。本文将利用图模型,分析了解软件项目开发团队中的社会网络关系,分析原有组织的11基于社会网络挖掘的项目成员推荐系统的设计与应用实际组织结构,不仅可以发现实际组织情况与原有计划的差别,还可以为以后的团队的组建提供客观依据。2.3 组织资产库挖掘概述组织资产库(Software Repositories)是在软件开发的过程中产生的大量历史数据信息的总和,代表了详细、丰富的历史系统的开发记录,包含项目的状态,发展,演化等。20 世纪 70 年代以来,研究人员开始从中挖掘出潜在的信息并用于软件项目的维护,缺陷状态的跟踪等等,如软件过程建模,软件开发演进和模式的理解,软件缺陷分析等,使得软件开发团队能够更好地进行软件工程的管理,改善生产效率,提高生产质量等等。它通常包含了如下信息9,16:1. 源代码,保存了源代码和版本的修订过程。2. 缺陷跟踪系统,包含项目开发过程中的缺陷状态,缺陷类型和修改历史等。3. 开发人员之间的交流信息,如 E- mail,论坛交流记录等。4. 项目文档,如需求文档,设计文档,测试文档等。5. 软件开发过程数据,包括项目开发的成本估算,里程碑,任务分配,资源等信息。以上这些数据,按照其性质的不同,分别被保存在不同的数据源中,一般的存储系统包括:1. 版本控制系统,如 CVS,SVN 等,主要用于对软件开发过程中的源代码、项目相关文档和人员交流信息等数据进行版本控制。2. 缺陷跟踪系统,记录缺陷,进行状态跟踪等。3. 项目管理系统,包含项目计划,资源分配,过程执行,成本预算等较为宏观的数据。虽然这一方面的研究起步较

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论