9 research outputs found

    THE KNOWLEDGE-GAP REDUCTION IN SOFTWARE ENGINEERING

    Get PDF
    Many papers proposed in the software engineering and information systems literature are dedicated to analysis of software projects missing their schedules, exceeding their budgets, delivering software products with poor quality and in some cases even wrong functionality. The expression “software crisis” has been coined since the late 60’s to illustrate this phenomenon. Various solutions has been proposed by academics and practitioners in order to deal with the software crisis, counter these trends and improve productivity and software quality. Such solutions recommend software process improvement as the best way to build software products needed by modern organizations. Among the well-known solutions, many are based either on software development tools or on software development approaches, methods, processes, and notations. Nevertheless, the scope of these solutions seems to be limited and the improvements they provide are often not significant. We think that since software artifacts are accumulation of knowledge owned by organizational stakeholders, the software crisis is due to a knowledge gap between resulting from the discrepancy between the knowledge integrated in software systems and the knowledge owned by organizational actors. In particular, integrating knowledge management in software development process permits reducing the knowledge gap through building software products which reflect at least partly the organization’s know-how. In this paper, we propose a framework which provides a definition of knowledge based on information systems architecture and describes how to deal with the knowledge gap of a knowledge oriented software development process which may help organizations in reducing the software crisis impacts

    Patterns of Software Development Process

    Get PDF
    This article presents a set of patterns that can be found to perform best practices in software processes that are directly related to the problem of implementing the activities of the process, the roles involved, the knowledge generated and the inputs and outputs belonging to the process. In this work, a definition of the architecture is encouraged by using different recurrent configurations that strengthen the process and yield efficient results for the development of a software project. The patterns presented constitute a catalog, which serves as a vocabulary for communication among project participants [1], [2], and also can be implemented through software tools, thus facilitating patterns implementation [3]. Additionally, a tool that can be obtained under GPL (General Public license) is provided for this purpose

    Q-Method Evaluation of a European Health Data Analytic End User Framework

    Get PDF
    MIDAS (Meaningful Integration of Data Analytics and Services) project is developing a big data platform to facilitate the utilisation of a wide range of health and social care data to support better policy making. Our aim is to explore the use of Q-methodology as part of the evaluation of the implementation of the MIDAS project. Q-methodology is used to identify perspectives and viewpoints on a particular topic. In our case, we defined a concourse of statements relevant to project implementation and goals, by working from a logic model previously developed for the evaluation, and structured interviews with project participants. A 36-item concourse was delivered to participants, using the HTMLQ system. Analysis was done in the qmethod package. Participants had a range of professional backgrounds, and a range of roles in the project, including developers, end-users, policy staff, and health professionals. The q-sort is carried out at 14 months into the project, a few months before the intended first release of the software being developed. Sixteen people took part, 6 developers, 5 managers, 2 health professionals and 3 others. Three factors (distinct perspectives) were identified in the data. These were tentatively labelled ‘Technical optimism’, ‘End-user focus’ and ‘End-user optimism’. These loaded well onto individuals, and there were few consensus statements. Analysis of these factors loaded well onto individuals with a significant number of consensus statements identified. This work is licensed under a&nbsp;Creative Commons Attribution-NonCommercial 4.0 International License.</p

    Introducing knowledge concepts in software process modeling

    Get PDF
    ABSTRACT: Software process is knowledge intensive. Nevertheless, knowledge concepts are rarely taken into account in software process modeling. This paper presents a new software process modeling approach, which takes into account the various conceptual knowledge required to perform a task. The approach is based on the Software & Systems Process Engineering Metamodel (SPEM 2.0). It essentially adds knowledge attributes to existing relationships between roles, tasks and artifacts. Comparison between attributes for a given task provides information on the knowledge-gap between the SPEM elements involved. This information could be used in knowledge oriented project management to evaluate the risk associated to the knowledge gaps. A software tool has been implemented to facilitate the recording of various knowledge concepts while modeling the software process. Example of this approach is presented

    Caractérisation de projets de développement logiciel dans une perspective de flux de connaissances

    Get PDF
    RÉSUMÉ Face aux ratés auxquelles fait face l'industrie du développement logiciel et l'incapacité des différentes approches de processus logiciels à régler ces problèmes, il s‘avère intéressant de se baser, d‘une part, sur les acquis du domaine des processus logiciels et, d‘autre part, de s‘inspirer des innovations de domaines connexes. En particulier, la gestion des connaissances appliquée au génie logiciel est un sujet présentement en émergence. Une meilleure compréhension des mécanismes de création et de conversion de connaissances au sein d'un projet de développement logiciel est une avenue de recherche prometteuse. L'objectif principal de cette thèse de doctorat est donc de caractériser les projets de développement logiciel dans une perspective de flux de connaissances. Cette thèse par articles propose d'atteindre l'objectif de recherche par la présentation de trois articles en plus d'un chapitre détaillant des résultats complémentaires. Le premier article présente et justifie la méthodologie utilisée dans le cadre des travaux de recherche de cette thèse. Plus précisément, l'article détaille la méthodologie ATS (activity time slip), une approche à partir de laquelle des développeurs logiciels doivent enregistrer leurs activités dans une perspective de connaissances. Les données recueillies sont ensuite codifiées selon le modèle de flux de connaissances, qui est inspiré du modèle de création de connaissances de Nonaka & Takeuchi (1995) et qui définit six facteurs cognitifs dans le cadre d'un projet de développement logiciel: l'acquisition, la cristallisation, la validation, la réalisation, la vérification et l'organisation du travail. Une étude de cas multiples est présentée, afin de démontrer l'originalité et la pertinence de la méthodologie proposée. Le second article présente l'utilisation du modèle de flux de connaissances, dans le cadre d'une étude de cas, afin d'analyser les conséquences de la qualité de la documentation lors de la réutilisation de composants FLOSS (free/libre open source software). L'analyse de l'étude de cas permet de déterminer les conséquences négatives d'une documentation inadéquate sur le flux de connaissances au sein d'un projet de développement logiciel. Le troisième article vise à comprendre les mécanismes menant aux divergences observées entre la conception et l'implémentation d'un projet de développement logiciel. L'utilisation de la méthodologie ATS et du modèle de flux de connaissances facilite l'analyse de l'étude de cas. Ainsi, les discordances entre les artefacts de conception et l'implémentation s'expliquent par le fait que la conception n'est qu'une image de possibilités. Les résultats de recherche complémentaires permettent de caractériser trois projets intégrateurs de développement logiciel, à la manière d'une étude de cas multiples de type exploratoire reposant sur la méthodologie ATS et la modélisation par flux de connaissances. Ainsi, l'analyse des jetons d'activité (ATS) permet de porter un jugement sur la rigueur des développeurs et donc sur la fiabilité des jetons, selon les trois profils identifiés. De plus, les facteurs cognitifs sont caractérisés selon leur caractère individuel et participatif. Par ailleurs, le séquencement cognitif permet l'identification de quatre profils de développeurs: le cristallisateur, le codeur, le polyvalent et l'agent libre. Finalement, une forte corrélation a été observée entre un effort d'acquisition élevé et une productivité du code source faible, ce qui constitue une contribution majeure, de par son originalité et ses conséquences théoriques et pratiques.----------ABSTRACT Given the failures faced by the software development industry and the inability of different software process approaches to solve these problems, it is interesting to rely, on the one hand, on achievements in the software process field and, on the other hand, learn from innovations in related fields. In particular, knowledge management applied to software engineering is a subject currently emerging. A better understanding of knowledge creation and conversion's mechanisms in software development projects is promising. The main objective of this thesis is to characterize software development projects from a knowledge flow perspective. This doctoral thesis intends to achieve the research goal by presenting three papers and additional complementary results. The first paper presents and justifies the methodology used in this thesis. The paper details the ATS (activity time slip) methodology, where software developers must log their activities from a knowledge perspective. Data are then codified based on the knowledge flow model, which is related to Nonaka and Takeuchi‘s (1995) knowledge creation model and which defines six cognitive factors: acquisition, crystallization, validation, implementation, verification and work organization. A multiple case study is presented to demonstrate the originality and relevance of the proposed methodology. The second paper presents a case study using the knowledge flow model to analyze the consequences of documentation quality in FLOSS components reuse. The case study's analysis allows the identification of negative consequences on a software development project's knowledge flow resulting from inadequate documentation. The third paper focuses on understanding the mechanisms leading to discrepancies between design and implementation in a software development project. The use of the ATS methodology and the knowledge flow model facilitates the case study's analysis. The discrepancies between design artifacts and implementation can be explained by the fact that design is an image of possibilities. Complementary research results allow the characterization of three software development capstone projects by means of an exploratory multiple case study based on the ATS methodology and the knowledge flow model. The analysis of the activity time slips (ATS) allows to judge the developers' rigor and therefore the reliability of their activity time slips, according to three identified patterns. Also, cognitive factors are characterized from a individual and participative viewpoint. Furthermore, cognitive sequencing allows the identification of four developers profiles: the crystallizer, the coder, the "versatile", and the free agent. Moreover, a strong correlation was observed between high acquisition effort and low source code productivity, which is a major contribution, because of its theoretical and practical implications

    Knowledge management in agile software development : techniques and factors that promote knowledge creation

    Get PDF
    Orientador: Ivan Luiz Marques RicarteDissertação (mestrado) - Universidade Estadual de Campinas, Faculdade de Engenharia Elétrica e de ComputaçãoResumo: O processo de desenvolvimento de software pode ser considerado um processo intensivo de criação de conhecimento. Os membros de equipes ágeis de desenvolvimento de software são trabalhadores que compartilham intensivamente seus conhecimentos tácitos e explícitos para a construção de software inovadores. Esse conhecimento, inicialmente distribuído nas mentes dos programadores, deve ser gerenciado por meio de técnicas e ferramentas que apoiem a aprendizagem organizacional, a criação, a construção e a avaliação de software. Nesse sentido, este trabalho objetivou identificar e compreender as técnicas utilizadas pelas equipes ágeis e os fatores capacitadores que auxiliem a criação de conhecimento em equipes de desenvolvimento de software. Para atingir aos propósitos desta pesquisa, primeiro, foi feita uma revisão de literatura, que seguiu os princípios de revisões sistemáticas, para compreender o Estado da Arte e identificar técnicas das metodologias ágeis e fatores que promovem a criação de conhecimento no desenvolvimento ágil de software. Segundo, para o percurso metodológico dois estudos de caso foram conduzidos por meio de entrevistas e analisados qualitativamente por meio da Teoria Fundamentada em Dados. Como resultados, dois fenômenos centrais emergiram dos dados analisados. O Fenômeno 1 mostra que as equipes ágeis estabelecem técnicas que apoiam a aprendizagem organizacional, a criação e a construção de software. O Fenômeno 2 indica que as equipes ágeis promovem fatores capacitadores que alinham a cultura organizacional e as características pessoais dos colaboradores e essas equipes são gerenciadas mediante uma inteligência coletivaAbstract: The software development process can be considered as an intensive process of knowledge creation. The members of agile software development teams are workers that intensively share their tacit and explicit knowledge to build innovative software. This knowledge, initially distributed in programmer¿s minds, should be managed by means of techniques and tools that support the organizational learning, the creation, the construction and the evaluation of software. Therefore, this study aimed to identify and understand the techniques and the enabling factors that support the creation of knowledge. To achieve the purposes, first, a literature review was made, which followed the principles of systematic reviews, not only to understand the state of the art but also to identify techniques and factors of the agile methodologies that promote the creation of knowledge. Second, two case studies were conducted as a methodology research through interviews whose data was qualitatively analyzed using the Grounded Theory. As results, two main phenomena emerged from the data analyzed. The first phenomenon shows that agile teams establish techniques that support the organizational learning, the creation and the construction of software. The second phenomenon indicates that teams promote enabling factors that align organizational culture and the employees¿ personal characteristics and the team is managed by a collective intelligenceMestradoEngenharia de ComputaçãoMestre em Engenharia ElétricaCAPE

    El mejoramiento del proceso de software como un habilitador de la de auto-producción organizacional

    Get PDF
    Las compañías de software son un tema actual en la economía mundial. Dichas compañías están encargadas de la mayoría de los desarrollos en tecnologías de la información y para tener un desempeño adecuado deben mejorar su propia organización. El mejoramiento del proceso de software (SPI por sus siglas en inglés) es un factor clave que permite a las compañías de software crecer y mejorar. Este proceso ha sido analizado principalmente como un proceso técnico, dejando de lado el factor humano y organizacional. Además en la literatura se ha encontrado una carencia en la reflexión teórica sobre cómo puede ser analizado este proceso. Trabajos recientes indican que el SPI puede ser analizado como un cambio organizacional. Las organizaciones pueden ser vistas como organismos vivos que crecen y evolucionan basados en la teoría de la autopoiesis o los sistemas auto-productivos. Si una compañía de software es entendida como un sistema autopoiético, el SPI puede ser visto como un proceso que habilita la auto-producción organizacional. El objetivo de este trabajo es proveer una primera aproximación al entendimiento del SPI como un habilitador del proceso auto-productivo organizacional, es decir, describir este proceso a la luz de una nueva teoría con el fin de crear una base para entender el desarrollo de este y proveer de nuevas perspectivas a futuros trabajos en el área.Abstract. Software companies are a growing trend in world economy. They are in charge of most IT related developments and in order to deliver a proper product to their costumers they have to improve their own organization. Software Process Improvement (SPI) is a key factor that allows software companies to grow and improve their organization. This process has been mainly treated as a technical process, leaving aside the human factor. Although, in the literature it has been found a lack of a theoretical reflection about how could be analyzed this process. Recent works indicate that SPI could be analyzed as an organizational change. Also organizations can be seen as living organisms that grow and evolve based on the idea of autopoiesis or self-producing systems. If a software company is understood as a self-producing system, the SPI can be seen as a self-producing process. The goal of this work is to provide a first approach in the understanding of SPI as enabler of the organization self-production process, that is to say, describe this process in the light of a new theory in order to create a basis for understanding its development and provide new perspectives for future research in this area.Maestrí

    Cadre de conception multi-perspectives pour la modélisation des processus de génie logiciel

    Get PDF
    RÉSUMÉ La littérature scientifique rapporte abondamment les cas de projets de développement logiciel qui débordent de leurs planifications, dépassent les ressources allouées et présentent une faible qualité. Les chercheurs et les praticiens essayent ensemble de résoudre cette « crise » du logiciel. L‘amélioration des processus de développement est un des moyens fondamentaux pour améliorer la qualité du logiciel et atteindre une efficacité organisationnelle. La modélisation des processus est un des leviers de cette amélioration. La modélisation des processus est une discipline du génie logiciel qui soutient la conception et la maintenance des processus1. Elle explicite les pratiques de développement pour pouvoir les étudier, les améliorer et les utiliser de manière répétable, gérable et possiblement automatisable. Les techniques de cette discipline ne cesse d‘évoluer en passant des processus maison peu profonds et informels des années 1960 aux processus basés sur le paradigme orienté-objet. L‘évolution des langages de modélisation des processus (PML) est supportée par l‘évolution des paradigmes2 du génie logiciel. Alors que cette évolution des langages est clairement marquée au niveau de la syntaxe définissant les composants structurant les processus, elle est moins marquée sur le plan de la sémantique qui reste relativement abstraite et manque d‘une description formelle clarifiant le sens et l‘intention des modèles de processus. L‘aspect sémantique permettrait pourtant de considérer différentes préoccupations du gestionnaire d‘un projet informatique selon des perspectives distinctes (ex. productivité, connaissances, risques, CMMI, etc.). Dans ce projet de recherche, nous proposons un nouveau cadre de modélisation conceptuelle, en complément à une description textuelle, des processus dans le but de produire des modèles de processus adaptés au contexte du projet à développer. Sur le plan théorique, nous proposons un enrichissement sémantique pour considérer différentes perspectives. Nous avons adopté une approche ontologique pour formaliser le concept de relations attribuées entre les composants structurant un modèle de processus. Sur le plan pratique, nous proposons un nouvel outil qui supporte la modélisation nommé : « Domain-Specific-Language for Software Process Modeling » (DSL4SPM). En plus de la perspective de modélisation orientée-Activités conforme au standard SPEM, l‘outil DSL4SPM offre trois autres perspectives : Gestion des connaissances, simulation et alignement avec le CMMI. ----------ABSTRACT Cost and schedule of software projects are often overrun. This fact is closely-related to the software process and less to the final product as acknowledged by researchers and practitioners (Boehm, 1991; Barros et al., 2004; Roy, 2004; McConnell, 2009). However, it is also acknowledged that the software production is human and knowledge-intensive process, which means the nature of uncertainty. In order to build efficient process modeling tools, there is a need for conceptualization of process models to address different concerns such as a breakdown structure of activities, knowledge, simulation, alignment with CMMI practices and so on. Addressing those concerns provide a context for analysis, assessment and enhancement of process models, which in turn enhance the quality of software projects. One attempt to enhance the process modeling flexibility has been made with the tool called DSL4SPM (Domain-Specific Language for Software Process Modeling). DSL4SPM was developed and applied to bring order and structure to the software development process. It implements the Software & Systems Process Engineering Meta-model (SPEM 2.0) specification, and is characterized by: 1) a conceptual framework for designing processes in an abstract way; and 2) multi-view-oriented process modeling, which acknowledges the relevance of a multitude of issues in a process model. The conceptual framework emphasizes the relationships among the SPEM elements
    corecore