38 research outputs found

    A pattern language for evolution reuse in component-based software architectures

    Get PDF
    Context: Modern software systems are prone to a continuous evolution under frequently varying requirements and changes in operational environments. Architecture-Centric Software Evolution (ACSE) enables changes in a system’s structure and behaviour while maintaining a global view of the software to address evolution-centric trade-offs. Lehman’s law of continuing change demands for long-living and continuously evolving architectures to prolong the productive life and economic value of software. Also some industrial research shows that evolution reuse can save approximately 40% effort of change implementation in ACSE process. However, a systematic review of existing research suggests a lack of solution(s) to support a continuous integration of reuse knowledge in ACSE process to promote evolution-off-the-shelf in software architectures. Objectives: We aim to unify the concepts of software repository mining and software evolution to discover evolution-reuse knowledge that can be shared and reused to guide ACSE. Method: We exploit repository mining techniques (also architecture change mining) that investigates architecture change logs to discover change operationalisation and patterns. We apply software evolution concepts (also architecture change execution) to support pattern-driven reuse in ACSE. Architecture change patterns support composition and application of a pattern language that exploits patterns and their relations to express evolution-reuse knowledge. Pattern language composition is enabled with a continuous discovery of patterns from architecture change logs and formalising relations among discovered patterns. Pattern language application is supported with an incremental selection and application of patterns to achieve reuse in ACSE. The novelty of the research lies with a framework PatEvol that supports a round-trip approach for a continuous acquisition (mining) and application (execution) of reuse knowledge to enable ACSE. Prototype support enables customisation and (semi-) automation for the evolution process. Results: We evaluated the results based on the ISO/IEC 9126 - 1 quality model and a case study based validation of the architecture change mining and change execution processes. We observe consistency and reusability of change support with pattern-driven architecture evolution. Change patterns support efficiency for architecture evolution process but lack a fine-granular change implementation. A critical challenge lies with the selection of appropriate patterns to form a pattern language during evolution. Conclusions: The pattern language itself continuously evolves with an incremental discovery of new patterns from change logs over time. A systematic identification and resolution of change anti-patterns define the scope for future research

    Adopting Automated Bug Assignment in Practice: A Longitudinal Case Study at Ericsson

    Full text link
    The continuous inflow of bug reports is a considerable challenge in large development projects. Inspired by contemporary work on mining software repositories, we designed a prototype bug assignment solution based on machine learning in 2011-2016. The prototype evolved into an internal Ericsson product, TRR, in 2017-2018. TRR's first bug assignment without human intervention happened in April 2019. Our study evaluates the adoption of TRR within its industrial context at Ericsson. Moreover, we investigate 1) how TRR performs in the field, 2) what value TRR provides to Ericsson, and 3) how TRR has influenced the ways of working. We conduct an industrial case study combining interviews with TRR stakeholders, minutes from sprint planning meetings, and bug tracking data. The data analysis includes thematic analysis, descriptive statistics, and Bayesian causal analysis. TRR is now an incorporated part of the bug assignment process. Considering the abstraction levels of the telecommunications stack, high-level modules are more positive while low-level modules experienced some drawbacks. On average, TRR automatically assigns 30% of the incoming bug reports with an accuracy of 75%. Auto-routed TRs are resolved around 21% faster within Ericsson, and TRR has saved highly seasoned engineers many hours of work. Indirect effects of adopting TRR include process improvements, process awareness, increased communication, and higher job satisfaction. TRR has saved time at Ericsson, but the adoption of automated bug assignment was more intricate compared to similar endeavors reported from other companies. We primarily attribute the difference to the very large size of the organization and the complex products. Key facilitators in the successful adoption include a gradual introduction, product champions, and careful stakeholder analysis.Comment: Under revie

    Learning preferences for personalisation in a pervasive environment

    Get PDF
    With ever increasing accessibility to technological devices, services and applications there is also an increasing burden on the end user to manage and configure such resources. This burden will continue to increase as the vision of pervasive environments, with ubiquitous access to a plethora of resources, continues to become a reality. It is key that appropriate mechanisms to relieve the user of such burdens are developed and provided. These mechanisms include personalisation systems that can adapt resources on behalf of the user in an appropriate way based on the user's current context and goals. The key knowledge base of many personalisation systems is the set of user preferences that indicate what adaptations should be performed under which contextual situations. This thesis investigates the challenges of developing a system that can learn such preferences by monitoring user behaviour within a pervasive environment. Based on the findings of related works and experience from EU project research, several key design requirements for such a system are identified. These requirements are used to drive the design of a system that can learn accurate and up to date preferences for personalisation in a pervasive environment. A standalone prototype of the preference learning system has been developed. In addition the preference learning system has been integrated into a pervasive platform developed through an EU research project. The preference learning system is fully evaluated in terms of its machine learning performance and also its utility in a pervasive environment with real end users

    Personalised privacy in pervasive and ubiquitous systems

    Get PDF
    Our world is edging closer to the realisation of pervasive systems and their integration in our everyday life. While pervasive systems are capable of offering many benefits for everyone, the amount and quality of personal information that becomes available raise concerns about maintaining user privacy and create a real need to reform existing privacy practices and provide appropriate safeguards for the user of pervasive environments. This thesis presents the PERSOnalised Negotiation, Identity Selection and Management (PersoNISM) system; a comprehensive approach to privacy protection in pervasive environments using context aware dynamic personalisation and behaviour learning. The aim of the PersoNISM system is twofold: to provide the user with a comprehensive set of privacy protecting tools and to help them make the best use of these tools according to their privacy needs. The PersoNISM system allows users to: a) configure the terms and conditions of data disclosure through the process of privacy policy negotiation, which addresses the current “take it or leave it” approach; b) use multiple identities to interact with pervasive services to avoid the accumulation of vast amounts of personal information in a single user profile; and c) selectively disclose information based on the type of information, who requests it, under what context, for what purpose and how the information will be treated. The PersoNISM system learns user privacy preferences by monitoring the behaviour of the user and uses them to personalise and/or automate the decision making processes in order to unburden the user from manually controlling these complex mechanisms. The PersoNISM system has been designed, implemented, demonstrated and evaluated during three EU funded projects

    Valuing diversity and establishing an approach to supporting excluded groups

    Get PDF
    Minority students and minority employees in Higher Engineering Education experience inequality. For academic staff these inequalities impact their personal development and career progression. To continue to grow and for engineering education to thrive as a professional discipline we must encourage diversity within both the student and staff populations. This paper cautions against a simple notion of diversity, rather a truly diverse culture within engineering is needed, one in which there is diversity of opportunity, diversity of thought and diversity of experience. To enable a more inclusive environment to flourish we must understand the scale of the inequalities which exist. However, this paper demonstrates that there are significant limitations to the current diversity data within the UK which leaves room for under-reporting and over-generalising. In addition, there are cultural challenges which give further likelihood to non-disclosure and lack of self-reporting. This paper proposes that further research is needed into the true lack of diversity within engineering and describes one example of a ‘thought experiment’ conducted by the researchers to start unpacking the data and highlighting the scale of the issue

    public class Graphic_Design implements Code { // Yes, but how? }: An investigation towards bespoke Creative Coding programming courses in graphic design education

    Get PDF
    Situated in the intersection of graphic design, computer science, and pedagogy, this dissertation investigates how programming is taught within graphic design education. The research adds to the understanding of the process, practice, and challenges associated with introducing an audience of visually inclined practitioners—who are often guided by instinct—to the formal and unforgiving world of syntax, algorithms, and logic. Motivating the research is a personal desire to contribute towards the development of bespoke contextualized syllabi specifically designed to accommodate how graphic designers learn, understand, and use programming as an integral skill in their vocational practice.The initial literature review identifies a gap needing to be filled to increase both practical and theoretical knowledge within the interdisciplinary field of computational graphic design. This gap concerns a lack of solid, empirically based epistemological frameworks for teaching programming to non-programmers in a visual context, partly caused by a dichotomy in traditional pedagogical practices associated with teaching programming and graphic design, respectively. Based on this gap, the overarching research question posed in this dissertation is: “How should programming ideally be taught to graphic designers to account for how they learn and how they intend to integrate programming into their vocational practice?”A mixed methods approach using both quantitative and qualitative analyses is taken to answer the research questions. The three papers comprising the dissertation are all built on individual hypotheses that are subsequently used to define three specific research questions.Paper 1 performs a quantitative mapping of contemporary, introductory programming courses taught in design schools to establish a broader understanding of their structure and content. The paper concludes that most courses are planned to favor programming concepts rather than graphic design concepts. The paper’s finding can serve as a point of departure for a critical discussion among researchers and educators regarding the integration of programming in graphic design education.Paper 2 quantitatively assesses how the learning style profile of graphic design students compares with that of students in technical disciplines. The paper identifies a number of significant differences that call for a variety of pedagogic and didactic strategies to be employed by educators to effectively teach programming to graphic designers. Based on the results, specific recommendations are given.Paper 3 proposes a hands-on, experiential pedagogic method specifically designed to introduce graphic design students to programming. The method relies on pre-existing commercial graphic design specimens to contextualize programming into a domain familiar to graphic designers. The method was tested on the target audience and observations on its use are reported. Qualitative evaluation of student feedback suggests the method is effective and well-received. Additionally, twenty-four heuristics that elaborate and extend the paper’s findings by interweaving other relevant and influential sources encountered during the research project are provided. Together, the literature review, the three papers, and the heuristics provide comprehensive and valuable theoretical and practical insights to both researchers and educators, regarding key aspects related to introducing programming as a creative practice in graphic design education

    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