9 research outputs found

    Knowledge work practices in global software development

    Get PDF
    peer-reviewedThis paper is an exploration of knowledge work practices in a distributed software development setting. The author has undertaken an empirical study in the Irish subsidiary of a multinational company over a 16-month period. Our methods were inspired by ethnography; by spending an extended period of time with a software development team working on a specific project, we had the opportunity to observe real work practices in a real work setting in the specific circumstances of distributed work. The purpose of the current study is to highlight the ways in which technical and social factors are inextricably entwined in distributed work settings

    Evaluating an automated procedure of machine learning parameter tuning for software effort estimation

    Get PDF
    Software effort estimation requires accurate prediction models. Machine learning algorithms have been used to create more accurate estimation models. However, these algorithms are sensitive to factors such as the choice of hyper-parameters. To reduce this sensitivity, automated approaches for hyper-parameter tuning have been recently investigated. There is a need for further research on the effectiveness of such approaches in the context of software effort estimation. These evaluations could help understand which hyper-parameter settings can be adjusted to improve model accuracy, and in which specific contexts tuning can benefit model performance. The goal of this work is to develop an automated procedure for machine learning hyper-parameter tuning in the context of software effort estimation. The automated procedure builds and evaluates software effort estimation models to determine the most accurate evaluation schemes. The methodology followed in this work consists of first performing a systematic mapping study to characterize existing hyper-parameter tuning approaches in software effort estimation, developing the procedure to automate the evaluation of hyper-parameter tuning, and conducting controlled quasi experiments to evaluate the automated procedure. From the systematic literature mapping we discovered that effort estimation literature has favored the use of grid search. The results we obtained in our quasi experiments demonstrated that fast, less exhaustive tuners were viable in place of grid search. These results indicate that randomly evaluating 60 hyper-parameters can be as good as grid search, and that multiple state-of-the-art tuners were only more effective than this random search in 6% of the evaluated dataset-model combinations. We endorse random search, genetic algorithms, flash, differential evolution, and tabu and harmony search as effective tuners.Los algoritmos de aprendizaje automático han sido utilizados para crear modelos con mayor precisión para la estimación del esfuerzo del desarrollo de software. Sin embargo, estos algoritmos son sensibles a factores, incluyendo la selección de hiper parámetros. Para reducir esto, se han investigado recientemente algoritmos de ajuste automático de hiper parámetros. Es necesario evaluar la efectividad de estos algoritmos en el contexto de estimación de esfuerzo. Estas evaluaciones podrían ayudar a entender qué hiper parámetros se pueden ajustar para mejorar los modelos, y en qué contextos esto ayuda el rendimiento de los modelos. El objetivo de este trabajo es desarrollar un procedimiento automatizado para el ajuste de hiper parámetros para algoritmos de aprendizaje automático aplicados a la estimación de esfuerzo del desarrollo de software. La metodología seguida en este trabajo consta de realizar un estudio de mapeo sistemático para caracterizar los algoritmos de ajuste existentes, desarrollar el procedimiento automatizado, y conducir cuasi experimentos controlados para evaluar este procedimiento. Mediante el mapeo sistemático descubrimos que la literatura en estimación de esfuerzo ha favorecido el uso de la búsqueda en cuadrícula. Los resultados obtenidos en nuestros cuasi experimentos demostraron que algoritmos de estimación no-exhaustivos son viables para la estimación de esfuerzo. Estos resultados indican que evaluar aleatoriamente 60 hiper parámetros puede ser tan efectivo como la búsqueda en cuadrícula, y que muchos de los métodos usados en el estado del arte son solo más efectivos que esta búsqueda aleatoria en 6% de los escenarios. Recomendamos el uso de la búsqueda aleatoria, algoritmos genéticos y similares, y la búsqueda tabú y harmónica.Escuela de Ciencias de la Computación e InformáticaCentro de Investigaciones en Tecnologías de la Información y ComunicaciónUCR::Vicerrectoría de Investigación::Sistema de Estudios de Posgrado::Ingeniería::Maestría Académica en Computación e Informátic

    Identification and classification of shareable tacit knowledge associated with experience in the Chinese software industry sector

    Get PDF
    The study reported in this thesis aimed to provide an ontology of professional activities in the software industry that require and enable the acquisition of experience and that, in turn, is the basis for tacit knowledge creation. The rationale behind the creation of such an ontology was based on the need to externalise this tacit knowledge and then record such externalisations so that these can be shared and disseminated across organisations through electronic records management. The research problem here is to conciliate highly theoretical principles associated with tacit knowledge and the ill-defined and quasi-colloquial concept of experience into a tool that can be used by more technical and explicit knowledge minded practitioners of electronic records management. The ontology produced and proposed here provides exactly such a bridge, by identifying what aspects of professional and personal experience should be captured and organising these aspects into an explicit classification that can be used to capture the tacit knowledge and codify it into explicit knowledge. Since such ontologies are always closely related to actual contexts of practice, the researcher decided to choose her own national context of China, where she had worked before and had good guarantees of industrial access. This study used a multiple case-study Straussian Grounded Theory inductive approach. Data collection was conducted through semi-structured interviews in order to get direct interaction with practitioners in the field and capture individuals opinions and perceptions, as well as interpret individuals understandings associated with these processes. The interviews were conducted in three different and representative types of company (SMEs, State Owned and Large Private) in an attempt to capture a rich variety of possible contexts in the SW sector in a Chinese context. Data analysis was conducted according to coding the procedures advocated by Grounded Theory, namely: open, axial and selective coding. Data collection and analysis was conducted until the emergent theory reached theoretical saturation. The theory generated identified 218 different codes out of 797 representative quotations. These codes were grouped and organised into a category hierarchy that includes 6 main categories and 31 sub-categories, which are, in turn, represented in the ontology proposed. This emergent theory indicates in a very concise manner that experienced SW development practitioners in China should be able to understand the nature and value of experience in the SW industry, effectively communicate with other stake holders in the SW development process, be able and motivated to actively engage with continuous professional development, be able to share knowledge with peers and the profession at large, effectively work on projects and exhibit a sound professional attitude both internally to their own company and externally to customers, partners and even competitors. This basic theory was then further analysed by applying selective coding. This resulted in a main theory centred on Working in Projects, which was clearly identified as the core activity in the SW Industry reflecting its design and development nature. Directly related with the core category, three other significant categories were identified as enablers: Communication, Knowledge Sharing and Individual Development. Additionally, Understanding the Nature of Experience in the SW Industry and Professional Attitude were identified as drivers for the entire process of reflection, experience acquisition and tacit knowledge construction by the individual practitioners. Finally, as an integral part of any inductive process of research, the final stage in this study was to position the emerged theory in the body of knowledge. This resulted in the understanding that the theory presented in this study bridges two extremely large bodies of literature: employability skills and competencies. Both of these bodies of literature put their emphasis in explicit knowledge concerning skills and competencies that are defined so that they can be measured and assessed. The focus of the theory proposed in this thesis on experience and resulting acquisition of tacit knowledge allows a natural link between the employability skills and competencies in the SW industry that was hitherto lacking in the body of knowledge. The ontology proposed is of interest to academics in the areas of knowledge management, electronic records management and information systems. The same ontology may be of interest to human resources practitioners to select and develop experienced personnel as well as knowledge and information professionals in organisations

    Software development in the post-PC era : towards software development as a service

    Get PDF
    PhD ThesisEngineering software systems is a complex task which involves various stakeholders and requires planning and management to succeed. As the role of software in our daily life is increasing, the complexity of software systems is increasing. Throughout the short history of software engineering as a discipline, the development practises and methods have rapidly evolved to seize opportunities enabled by new technologies (e.g., the Internet) and to overcome economical challenges (e.g., the need for cheaper and faster development). Today, we are witnessing the Post-PC era. An era which is characterised by mobility and services. An era which removes organisational and geographical boundaries. An era which changes the functionality of software systems and requires alternative methods for conceiving them. In this thesis, we envision to execute software development processes in the cloud. Software processes have a software production aspect and a management aspect. To the best of our knowledge, there are no academic nor industrial solutions supporting the entire software development process life-cycle(from both production and management aspects and its tool-chain execution in the cloud. Our vision is to use the cloud economies of scale and leverage Model-Driven Engineering (MDE) to integrate production and management aspects into the development process. Since software processes are seen as workflows, we investigate using existing Workflow Management Systems to execute software processes and we find that these systems are not suitable. Therefore, we propose a reference architecture for Software Development as a Service (SDaaS). The SDaaS reference architecture is the first proposal which fully supports development of complex software systems in the cloud. In addition to the reference architecture, we investigate three specific related challenges and propose novel solutions addressing them. These challenges are: Modelling & enacting cloud-based executable software processes. Executing software processes in the cloud can bring several benefits to software develop ment. In this thesis, we discuss the benefits and considerations of cloud-based software processes and introduce a modelling language for modelling such processes. We refer to this language as EXE-SPEM. It extends the Software and Systems Process Engineering (SPEM2.0) OMG standard to support creating cloudbased executable software process models. Since EXE-SPEM is a visual modelling language, we introduce an XML notation to represent EXE-SPEM models in a machine-readable format and provide mapping rules from EXE-SPEM to this notation. We demonstrate this approach by modelling an example software process using EXE-SPEM and mapping it to the XML notation. Software process models expressed in this XML format can then be enacted in the proposed SDaaS architecture. Cost-e cient scheduling of software processes execution in the cloud. Software process models are enacted in the SDaaS architecture as workflows. We refer to them sometimes as Software Workflows. Once we have executable software process models, we need to schedule them for execution. In a setting where multiple software workflows (and their activities) compete for shared computational resources (workflow engines), scheduling workflow execution becomes important. Workflow scheduling is an NP-hard problem which refers to the allocation of su cient resources (human or computational) to workflow activities. The schedule impacts the workflow makespan (execution time) and cost as well as the computational resources utilisation. The target of the scheduling is to reduce the process execution cost in the cloud without significantly a ecting the process makespan while satisfying the special requirements of each process activity (e.g., executing on a private cloud). We adapt three workflow scheduling algorithms to fit for SDaaS and propose a fourth one; the Proportional Adaptive Task Schedule. The algorithms are then evaluated through simulation. The simulation results show that the our proposed algorithm saves between 19.74% and 45.78% of the execution cost, provides best resource (VM) utilisation and provides the second best makespan compared to the other presented algorithms. Evaluating the SDaaS architecture using a case study from the safety-critical systems domain. To evaluate the proposed SDaaS reference architecture, we instantiate a proof-of-concept implementation of the architecture. This imple mentation is then used to enact safety-critical processes as a case study. Engineering safety-critical systems is a complex task which involves multiple stakeholders. It requires shared and scalable computation to systematically involve geographically distributed teams. In this case study, we use EXE-SPEM to model a portion of a process (namely; the Preliminary System Safety Assessment - PSSA) adapted from the ARP4761 [2] aerospace standard. Then, we enact this process model in the proof-of-concept SDaaS implementation. By using the SDaaS architecture, we demonstrate the feasibility of our approach and its applicability to di erent domains and to customised processes. We also demonstrate the capability of EXE-SPEM to model cloud-based executable processes. Furthermore, we demonstrate the added value of the process models and the process execution provenance data recorded by the SDaaS architecture. This data is used to automate the generation of safety cases argument fragments. Thus, reducing the development cost and time. Finally, the case study shows that we can integrate some existing tools and create new ones as activities used in process models. The proposed SDaaS reference architecture (combined with its modelling, scheduling and enactment capabilities) brings the benefits of the cloud to software development. It can potentially save software production cost and provide an accessible platform that supports collaborating teams (potentially across di erent locations). The executable process models support unified interpretation and execution of processes across team(s) members. In addition, the use of models provide managers with global awareness and can be utilised for quality assurance and process metrics analysis and improvement. We see the contributions provided in this thesis as a first step towards an alternative development method that uses the benefits of cloud and Model-Driven Engineering to overcome existing challenges and open new opportunities. However, there are several challenges that are outside the scope of this study which need to be addressed to allow full support of the SDaaS vision (e.g., supporting interactive workflows). The solutions provided in this thesis address only part of a bigger vision. There is also a need for empirical and usability studies to study the impact of the SDaaS architecture on both the produced products (in terms of quality, cost, time, etc.) and the participating stakeholders

    Empirical methodologies in software engineering

    Get PDF
    The collection and use of evidence in Software Engineering practice and research are essential elements in the development of the discipline. This paper discusses the need for evidence-based software engineering, the nature of evidence in its various forms and some of the research methodologies used in other disciplines for the collection of evidence, which are also relevant to software engineering. Two frameworks or models are proposed which illustrate the relationships between the methodologies discussed. In particular, the paper highlights the importance and roles of both positivist and interpretivist methods of investigation

    Empirical Methodologies in Software Engineering

    No full text
    corecore