148 research outputs found
Experts Recommender System Using Technical and Social Heuristics
Nowadays, successful cooperation and collaboration among developers is crucial to build
successful projects in distributed software system development (DSSD). Assigning wrong
developers to a specific task not only affects the performance of a component of this task but
also affects other components since these projects are composed of dependent components.
Another aspect that should be considered when teams are built is the social relationships between
the members; disagreements between these members also affect the project team’s performance.
These two aspects might cause a project’s failure or delay. Therefore, they are important to
consider when teams are created. In this thesis, we developed an Expert Recommender System
Framework (ERSF) that assists developers (Active Developers) to find experts who can help
them complete or fix the bugs in the code at hand. The ERSF analyzes the developer technical
expertise on similar code fragments to the one they need help on assuming that those who have
worked on similar fragments might understand and help the Active Developer; also, it analyzes
their social relationships with the Active Developer as well as their social activities within the
DSSD. Our work is also concerned with improving the system performance and
recommendations by tracking the developer communications through our ERSF in order to keep
developer profiles up-to-date. Technical expertise and sociality are measured using a
combination of technical and social heuristics. The recommender system was tested using
scenarios derived from real software development data, and its recommendations compared
favourably to recommendations that humans were asked to make in the same scenarios; also,
they were compared to the recommendations of the NaiveBayes and other machine learning
algorithms. Our experiment results show that ERSF can recommend experts with good to
excellent accuracy
Engaging developers in open source software projects: harnessing social and technical data mining to improve software development
As software development has evolved, an increasing amount of collaboration and management is done online. Open source software, in particular, has benefited greatly from communication and collaboration on the Internet. As software projects increase in size, the codebase complexity and required communication between developers increases. The barriers of entry for development participation are not only technical in nature but involve understanding the changing dynamics of the community.
Social Technical Congruence (STC) attempts to understand and model the synergies between technical development and communication. Motivated by this theory, three algorithms were developed that leverage data from version control history and email mailing list communication to help developers better understand the community. The “code impact” algorithm identifies commits that are impactful to the overall technical structure of the source code. The “developer knowledge” algorithm calculates the knowledge that a developer or developers have for a particular section of code. Lastly, the “communication suggestions” algorithm provides suggestions about who a developer could be increasing communication with on the mailing list based on shared technical dependencies and recent communication. These algorithms were implemented in an online website called “Jamii”. Through an interactive front-end, the website provides relevant development-centric information to the community. The website was evaluated with Mozilla and KDE, two large open source communities.
Quantitative and qualitative analysis provide details about the socialization process before the website was developed through an initial survey as well as afterwards. The results from the initial survey paint a primarily positive picture of socialization and inclusion for KDE and a more complex process of socialization and inclusion for Mozilla because of the large size of its community and codebase.
In many cases for both communities, the ratings on a number of factors regarding the socialization process and effective coordination were actually higher for the beginner participants as compared to the veterans. This suggests that new participants may have an overly-inflated positive view
than veteran members. This work provides fundamental contributions to the field of STC and may generalize to other distributed online collaboration efforts
Software development process mining: discovery, conformance checking and enhancement
Context. Modern software projects require the proper allocation of human, technical and
financial resources. Very often, project managers make decisions supported only by their personal
experience, intuition or simply by mirroring activities performed by others in similar
contexts. Most attempts to avoid such practices use models based on lines of code, cyclomatic
complexity or effort estimators, thus commonly supported by software repositories which are
known to contain several flaws.
Objective. Demonstrate the usefulness of process data and mining methods to enhance the
software development practices, by assessing efficiency and unveil unknown process insights,
thus contributing to the creation of novel models within the software development analytics
realm.
Method. We mined the development process fragments of multiple developers in three
different scenarios by collecting Integrated Development Environment (IDE) events during their
development sessions. Furthermore, we used process and text mining to discovery developers’
workflows and their fingerprints, respectively.
Results. We discovered and modeled with good quality developers’ processes during programming
sessions based on events extracted from their IDEs. We unveiled insights from
coding practices in distinct refactoring tasks, built accurate software complexity forecast models
based only on process metrics and setup a method for characterizing coherently developers’
behaviors. The latter may ultimately lead to the creation of a catalog of software development
process smells.
Conclusions. Our approach is agnostic to programming languages, geographic location or
development practices, making it suitable for challenging contexts such as in modern global
software development projects using either traditional IDEs or sophisticated low/no code platforms.Contexto. Projetos de software modernos requerem a correta alocação de recursos humanos,
técnicos e financeiros. Frequentemente, os gestores de projeto tomam decisões suportadas
apenas na sua própria experiência, intuição ou simplesmente espelhando atividades executadas
por terceiros em contextos similares. As tentativas para evitar tais práticas baseiam-se em
modelos que usam linhas de código, a complexidade ciclomática ou em estimativas de esforço,
sendo estes tradicionalmente suportados por repositĂłrios de software conhecidos por conterem
várias limitações.
Objetivo. Demonstrar a utilidade dos dados de processo e respetivos métodos de análise na
melhoria das práticas de desenvolvimento de software, colocando o foco na análise da eficiência
e revelando aspetos dos processos até então desconhecidos, contribuindo para a criação de
novos modelos no contexto de análises avançadas para o desenvolvimento de software.
Método. Explorámos os fragmentos de processo de vários programadores em três cenários
diferentes, recolhendo eventos durante as suas sessões de desenvolvimento no IDE. Adicionalmente,
usámos métodos de descoberta e análise de processos e texto no sentido de modelar o
fluxo de trabalho dos programadores e as suas caracterĂsticas individuais, respetivamente.
Resultados. Descobrimos e modelámos com boa qualidade os processos dos programadores
durante as suas sessões de trabalho, usando eventos provenientes dos seus IDEs. Revelámos factos
desconhecidos sobre práticas de refabricação, construĂmos modelos de previsĂŁo da complexidade
ciclomática usando apenas métricas de processo e criámos um método para caracterizar
coerentemente os comportamentos dos programadores. Este último, pode levar à criação de um
catálogo de boas/más práticas no processo de desenvolvimento de software.
Conclusões. A nossa abordagem é agnóstica em termos de linguagens de programação,
localização geográfica ou prática de desenvolvimento, tornando-a aplicável em contextos complexos
tal como em projetos modernos de desenvolvimento global que utilizam tanto os IDEs
tradicionais como as atuais e sofisticadas plataformas "low/no code"
Holistic recommender systems for software engineering
The knowledge possessed by developers is often not sufficient to overcome a programming problem. Short of talking to teammates, when available, developers often gather additional knowledge from development artifacts (e.g., project documentation), as well as online resources. The web has become an essential component in the modern developer’s daily life, providing a plethora of information from sources like forums, tutorials, Q&A websites, API documentation, and even video tutorials. Recommender Systems for Software Engineering (RSSE) provide developers with assistance to navigate the information space, automatically suggest useful items, and reduce the time required to locate the needed information. Current RSSEs consider development artifacts as containers of homogeneous information in form of pure text. However, text is a means to represent heterogeneous information provided by, for example, natural language, source code, interchange formats (e.g., XML, JSON), and stack traces. Interpreting the information from a pure textual point of view misses the intrinsic heterogeneity of the artifacts, thus leading to a reductionist approach. We propose the concept of Holistic Recommender Systems for Software Engineering (H-RSSE), i.e., RSSEs that go beyond the textual interpretation of the information contained in development artifacts. Our thesis is that modeling and aggregating information in a holistic fashion enables novel and advanced analyses of development artifacts. To validate our thesis we developed a framework to extract, model and analyze information contained in development artifacts in a reusable meta- information model. We show how RSSEs benefit from a meta-information model, since it enables customized and novel analyses built on top of our framework. The information can be thus reinterpreted from an holistic point of view, preserving its multi-dimensionality, and opening the path towards the concept of holistic recommender systems for software engineering
D4.6 Report on the results of cycle 3 demonstrators:Aggregates internal deliverables ID4.12, ID4.13, ID4.14, ID4.15, ID4.16
Hernández-Leo, D., Sligte, H., Glahn, C., Krekels, B., Keuls, C., Louys, A., Stefanov, K., Perez, M., Chacón, J., Santos, P., Mazzetti, A., Herder, E., Maxwell, K., Kiercheben, J., Griffiths, D., & Kluijfhout, E. (2009). D4.6 - Report on the results of cycle 3 demonstrators. Aggregates internal deliverables ID4.12, ID4.13, ID4.14, ID4.15, ID4.16. TENCompetence.This document includes the evaluation results of the Cycle 3 real-life evaluation activities. A cross-analysis of the results is compiled in order to present the impact indicators of the project in terms of outreach, learning benefits, organizational implications, and business opportunities identified in these experiences. The implementations and eight business/market-relevant demonstrators conducted in collaboration with external "adopter organizations" from different countries in Europe. These external organizations are Associated Partners or different units within the partners'organization. The revised pilots and the demonstrators test the tooling achieved along DIP-3. Both pilots and business demonstrators show to provide benefits to socially- and industrially-relevant scenarios. Areas of proven special impact include adult competence developmentfor social inclusion, provision of learning paths to support competence development of distributed professionals, informal competence development, human resources personal competence development, and sharing of competence profiles between organizations to support the mobility of their professionals.The work on this publication has been sponsored by the TENCompetence Integrated Project that is funded by the European Commission's 6th Framework Programme, priority IST/Technology Enhanced Learning. Contract 027087 [http://www.tencompetence.org
- …