148 research outputs found

    Experts Recommender System Using Technical and Social Heuristics

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Purple Computational Environment With Mappings to ACE Requirements for the General Availability User Environment Capabilities

    Full text link

    Using contextual and social links in information retrieval

    Get PDF
    [no abstract

    D4.6 Report on the results of cycle 3 demonstrators:Aggregates internal deliverables ID4.12, ID4.13, ID4.14, ID4.15, ID4.16

    Get PDF
    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
    • …
    corecore