8 research outputs found

    Using protocol analysis to explore the creative requirements engineering process

    Full text link
    Protocol analysis is an empirical method applied by researchers in cognitive psychology and behavioural analysis. Protocol analysis can be used to collect, document and analyse thought processes by an individual problem solver. In general, research subjects are asked to think aloud when performing a given task. Their verbal reports are transcribed and represent a sequence of their thoughts and cognitive activities. These verbal reports are analysed to identify relevant segments of cognitive behaviours by the research subjects. The analysis results may be cross-examined (or validated through retrospective interviews with the research subjects). This paper offers a critical analysis of this research method, its approaches to data collection and analysis, strengths and limitations, and discusses its use in information systems research. The aim is to explore the use of protocol analysis in studying the creative requirements engineering process.<br /

    Into the future : inspiring and stimulating users\u27 creativity

    Get PDF
    This paper proposes a new approach to engaging and stimulating users in the requirements analysis process when developing a new information system &ndash; an ICT innovation for business. The approach is based on a synthesis of a constructivist learning theory and a creativity education theory. In contrast to previous approaches in which the systems analyst elicits requirements from the user, in the proposed approach, the user is engaged and stimulated to become a proactive and creative learner in the process of identifying and discovering their business problem as well as exploring opportunities to apply ICT innovations to solve the problem.Two experiential digital simulations are described as a proof of concept to demonstrate the proposed approach a learning environment. Learning from the case study suggests that both systems analyst and business users can be stimulated to be active learners in their discovery of problem, creative ideas and problem solutions in requirements elicitation and discovery.<br /

    A Conceptual Approach to Exploring Creativity in Requirements Engineering

    Get PDF
    Requirements engineering (RE), an early phase in software development, is the process of discovery, analysis, modelling and specification of user and business requirements for information systems. The lack of creativity theories and models within RE has been gaining increasing recognition within the RE community. This paper synthesises concepts from creativity research and RE creativity research to build a theoretical foundation for the study of creativity in RE. We argue that creativity in RE goes beyond technical aspects and involves different levels, loci, and inter-related elements including product, process, domain, people and socio-organisational context. Different facets of creativity need to be integrated within RE approaches and methods to effectively foster and support creativity in this field

    Students' and Professionals' Perceived Creativity In Software Engineering: A Comparative Study

    Full text link
    Creativity is a critical skill that professional software engineers leverage to tackle difficult problems. In higher education, multiple efforts have been made to spark creative skills of engineering students. However, creativity is a vague concept that is open to interpretation. Furthermore, studies have shown that there is a gap in perception and implementation of creativity between industry and academia. To better understand the role of creativity in software engineering (SE), we interviewed 33 professionals via four focus groups and 10 SE students. Our results reveal 45 underlying topics related to creativity. When comparing the perception of students versus professionals, we discovered fundamental differences, grouped into five themes: the creative environment, application of techniques, creative collaboration, nature vs nurture, and the perceived value of creativity. As our aim is to use these findings to install and further encourage creative problem solving in higher education, we have included a list of implications for educational practice

    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

    Intégration de la visualisation à multiples vues pour le développement du logiciel

    Full text link
    Le dĂ©veloppement du logiciel actuel doit faire face de plus en plus Ă  la complexitĂ© de programmes gigantesques, Ă©laborĂ©s et maintenus par de grandes Ă©quipes rĂ©parties dans divers lieux. Dans ses tĂąches rĂ©guliĂšres, chaque intervenant peut avoir Ă  rĂ©pondre Ă  des questions variĂ©es en tirant des informations de sources diverses. Pour amĂ©liorer le rendement global du dĂ©veloppement, nous proposons d'intĂ©grer dans un IDE populaire (Eclipse) notre nouvel outil de visualisation (VERSO) qui calcule, organise, affiche et permet de naviguer dans les informations de façon cohĂ©rente, efficace et intuitive, afin de bĂ©nĂ©ficier du systĂšme visuel humain dans l'exploration de donnĂ©es variĂ©es. Nous proposons une structuration des informations selon trois axes : (1) le contexte (qualitĂ©, contrĂŽle de version, bogues, etc.) dĂ©termine le type des informations ; (2) le niveau de granularitĂ© (ligne de code, mĂ©thode, classe, paquetage) dĂ©rive les informations au niveau de dĂ©tails adĂ©quat ; et (3) l'Ă©volution extrait les informations de la version du logiciel dĂ©sirĂ©e. Chaque vue du logiciel correspond Ă  une coordonnĂ©e discrĂšte selon ces trois axes, et nous portons une attention toute particuliĂšre Ă  la cohĂ©rence en naviguant entre des vues adjacentes seulement, et ce, afin de diminuer la charge cognitive de recherches pour rĂ©pondre aux questions des utilisateurs. Deux expĂ©riences valident l'intĂ©rĂȘt de notre approche intĂ©grĂ©e dans des tĂąches reprĂ©sentatives. Elles permettent de croire qu'un accĂšs Ă  diverses informations prĂ©sentĂ©es de façon graphique et cohĂ©rente devrait grandement aider le dĂ©veloppement du logiciel contemporain.Nowadays, software development has to deal more and more with huge complex programs, constructed and maintained by large teams working in different locations. During their daily tasks, each developer may have to answer varied questions using information coming from different sources. In order to improve global performance during software development, we propose to integrate into a popular integrated development environment (Eclipse) our new visualization tool (VERSO), which computes, organizes, displays and allows navigation through information in a coherent, effective, and intuitive way in order to benefit from the human visual system when exploring complex data. We propose to structure information along three axes: (1) context (quality, version control, etc.) determines the type of information; (2) granularity level (code line, method, class, and package) determines the appropriate level of detail; and (3) evolution extracts information from the desired software version. Each software view corresponds to a discrete coordinate according to these three axes. Coherence is maintained by navigating only between adjacent views, which reduces cognitive effort as users search information to answer their questions. Two experiments involving representative tasks have validated the utility of our integrated approach. The results lead us to believe that an access to varied information represented graphically and coherently should be highly beneficial to the development of modern software

    Étude empirique du travail collaboratif ad hoc rĂ©alisĂ© au cours d'un processus de gĂ©nie logiciel

    Get PDF
    RÉSUMÉ ConsidĂ©rĂ©e d’abord et avant tout comme une tĂąche purement technique, la construction de logiciels est nĂ©anmoins de plus en plus reconnue comme une activitĂ© dĂ©finitivement humaine. Tandis qu’elle constitue une tĂąche cognitive intense en plus de reprĂ©senter «un exercice en complexes interrelations» tel qu’évoquĂ© par Fred Brooks en 1975 (Brooks, 1975), plusieurs facteurs humains sont de ce fait impliquĂ©s lors du dĂ©veloppement d’un logiciel. Ce document prĂ©sente donc une recherche empirique qui a Ă©tĂ© entreprise dans le cadre d’une Ă©tude de cas industrielle et qui a pour but d’analyser l’un des nombreux aspects humains impliquĂ©s en gĂ©nie logiciel, soit le travail collaboratif ad hoc qui a lieu entre les concepteurs de logiciels au cours d’un processus de gĂ©nie logiciel.----------ABSTRACT Recognized above all as a technical task, the construction of software is nevertheless more and more acknowledged as a genuine human experience for the most part. While being an intensive cognitive task in the same time as it also constitutes “an exercise in complex interrelationships” as expressed by Fred Brooks in 1975 (Brooks, 1975), many human factors are thus involved during the development of a software. This document presents an empirical research that was undertaken in a industrial software engineering setting with the aim of examining one of the various human aspects of software development: the ad hoc collaborative activities taking place between teammates during a software development process

    Teaching and learning introductory programming : a model-based approach

    Get PDF
    The dissertation identifies and discusses impact of a model-based approach to teaching and learning introductory object-oriented programming both for practitioners and for computer science education research.Learning to program is notoriously difficult. This dissertation investigates ways to teach introductory object-oriented programming at the university level. It focuses on a model-based approach, describes and argues for this approach and investigates several of its aspects. It gives an overview of the research in teaching introductory programming in an objects-first way. The dissertation also investigates ways for university teachers to share and document best practices in teaching introductory object-oriented programming through pedagogical patterns. The dissertation addresses both traditional young full-time students and experienced programmers (although not in object-orientation) participating in part-time education. It examines whether the same success factors for learning programming apply to a model-based approach as to introductory programming courses in general for full-time students and gives a general overview of research in success factors for introductory programming. Some factors are the same, because students‘ math competence is positively correlated with their success. The dissertation examines how experienced programmers link a model-based programming course to their professional practices. The general answer is that the part-time students do not need to have a direct link to their specific work-practice, they expect to create the link themselves; but the teacher must be aware of the conditions facing the part-time students in industry. Furthermore, the dissertation addresses interaction patterns for part-time students learning model-based introductory programming in a net-based environment. A previously prepared solution to an exercise is found to mediate the interaction in three different ways. Design patterns have had a major impact on the quality of object-oriented software. Inspired by this, researchers have suggested pedagogical patterns for sharing best practices in teaching introductory object-oriented programming. It was expected that university teachers‘ knowledge of pedagogical patterns was limited, but this research proved that to be wrong; about half of the teachers know pedagogical patterns. One of the problems this dissertation identifies is the lack of a structuring principle for pedagogical patterns; potential users have problems identifying the correct patterns to apply. An alternative structuring principle based on a constructivist learning theory is suggested and analysed
    corecore