8 research outputs found
Using protocol analysis to explore the creative requirements engineering process
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
This paper proposes a new approach to engaging and stimulating users in the requirements analysis process when developing a new information system – 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
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
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
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
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
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
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