2,159 research outputs found

    A lingualization strategy for knowledge sharing in large-scale DevOps

    Get PDF
    DevOps has become a generally accepted practice for software projects in the last decade and approaches certain shortcomings of the agile software development and the steadily gaining popularity of cloud infrastructure. While it shifts more and more responsibilities towards software engineering teams, the prevailing opinion is to keep DevOps teams small to reduce the complexity of inter-team communication. In circumstances where products outgrow the performance capability of a single team, microservice architecture enables multiple DevOps teams to contribute to the same application and meet the increased requirements. Since DevOps teams operate typically self-sufficiently and more or less independently inside an organization, such large-scale DevOps environments are prone to knowledge-sharing barriers. Textual Domain-Specific Languages (DSLs) are one of the cornerstones of DevOps and enable key features like automation and infrastructure provisioning. Nonetheless, most commonly accepted DSLs in the context of DevOps are cumbersome and have a steep learning curve. Thus, they fall short of their potential to truly enable cross-functional collaboration and knowledge sharing, not only between development and operation, but to the whole organization. DevOps teams require tools and DSLs, that treat knowledge sharing and reuse as a first-class citizen, in order to operate sufficiently on a large scale. However, developing DSLs is still presumed as an expensive task which can easily offset the resulting benefits. This dissertation presents a lingualization strategy for addressing the challenge of knowledge sharing in large-scale DevOps. The basic idea is to provide custom-tailored Domain-Specific Modeling Languages (DSMLs) that target single phases of the DevOps lifecycle and ease the DevOps adoption for newly formed teams. The paradigm of Language-Driven Engineering (LDE) bridges the semantic gap between stakeholders by custom-tailored DSMLs and thus is a natural fit for knowledge sharing. Key to a successful practice of LDE is as a new class of stakeholders. In the context of large-scale DevOps, language development can be realized by so-called Meta DevOps teams. Those teams, which themselves practice DevOps internally, manage a centralized repository of small DSMLs and offer them as a service. DevOps teams act as the customers of the Meta DevOps teams and can request new features or complete new DSMLs and provide feedback to already existing DSMLs. The presented Rig modeling environment serves as an exemplary DSML that targets the purpose of Continuous Integration and Deployment (CI/CD), one of the most important building blocks of DevOps. Rig comes with an associated code generator to fully-generate CI/CD workflows from graphical models. Those graphical models provide an executable documentation and assist knowledge-sharing between stakeholders. The fundamental modeling concepts of the lingualization strategy are evaluated against previously published requirements by Bordeleau et al. on a DevOps modeling framework in an industrial context. In addition to that, Rig is evaluated based on results of a workshop during the 6th International School on Tool-Based Rigorous Engineering of Software Systems. Both evaluations yield encouraging results and demonstrate the potential of the lingualization strategy to break down knowledge-sharing barriers in large-scale DevOps environments

    Supporting Multiple Stakeholders in Agile Development

    Get PDF
    Agile software development practices require several stakeholders with different kinds of expertise to collaborate while specifying requirements, designing and modeling software, and verifying whether developers have implemented requirements correctly. We studied 112 requirements engineering (RE) tools from academia and the features of 13 actively maintained behavior-driven development (BDD) tools, which support various stakeholders in specifying and verifying the application behavior. Overall, we found that there is a growing tool specialization targeted towards a specific type of stakeholders. Particularly with BDD tools, we found no adequate support for non-technical stakeholders —- they are required to use an integrated development environment (IDE) —- which is not adapted to suit their expertise. We argue that employing separate tools for requirements specification, modeling, implementation, and verification is counter-productive for agile development. Such an approach makes it difficult to manage associated artifacts and support rapid implementation and feedback loops. To avoid dispersion of requirements and other software-related artifacts among separate tools, establish traceability between requirements and the application source code, and streamline a collaborative software development workflow, we propose to adapt an IDE as an agile development platform. With our approach, we provide in-IDE graphical interfaces to support non-technical stakeholders in creating and maintaining requirements concurrently with the implementation. With such graphical interfaces, we also guide non-technical stakeholders through the object-oriented design process and support them in verifying the modeled behavior. This approach has two advantages: (i) compared with employing separate tools, creating and maintaining requirements directly within a development platform eliminates the necessity to recover trace links, and (ii) various natively created artifacts can be composed into stakeholder-specific interactive live in-IDE documentation. These advantages have a direct impact on how various stakeholders collaborate with each other, and allow for rapid feedback, which is much desired in agile practices. We exemplify our approach using the Glamorous Toolkit IDE. Moreover, the discussed building blocks can be implemented in any IDE with a rich-enough graphical engine and reflective capabilities

    Supporting multiple stakeholders in agile development

    Get PDF
    Agile software development practices require several stakeholders with different kinds of expertise to collaborate while specifying requirements, designing, and modelling software, and verifying whether developers have implemented requirements correctly. We studied 112 requirements engineering (RE) tools from academia and the features of 13 actively maintained behavior-driven development (BDD) tools, which support various stakeholders in specifying and verifying the application behavior. Overall, we found that there is a growing tool specialization targeted towards a specific type of stakeholders. Particularly with BDD tools, we found no adequate support for non-technical stakeholders-- they are required to use an integrated development environment (IDE)-- which is not adapted to suit their expertise. We argue that employing separate tools for requirements specification, modelling, implementation, and verification is counterproductive for agile development. Such an approach makes it difficult to manage associated artifacts and support rapid implementation and feedback loops. To avoid dispersion of requirements and other software-related artifacts among separate tools, establish traceability between requirements and the application source code, and streamline a collaborative software development workflow, we propose to adapt an IDE as an agile development platform. With our approach, we provide in-IDE graphical interfaces to support non-technical stakeholders in creating and maintaining requirements concurrently with the implementation. With such graphical interfaces, we also guide non-technical stakeholders through the object-oriented design process and support them in verifying the modelled behavior. This approach has two advantages: (i) compared with employing separate tools, creating, and maintaining requirements directly within a development platform eliminates the necessity to recover trace links, and (ii) various natively created artifacts can be composed into stakeholder-specific interactive live in-IDE documentation. These advantages have a direct impact on how various stakeholders collaborate with each other, and allow for rapid feedback, which is much desired in agile practices. We exemplify our approach using the Glamorous Toolkit IDE. Moreover, the discussed building blocks can be implemented in any IDE with a rich-enough graphical engine and reflective capabilities

    Exploring student perceptions about the use of visual programming environments, their relation to student learning styles and their impact on student motivation in undergraduate introductory programming modules

    Get PDF
    My research aims to explore how students perceive the usability and enjoyment of visual/block-based programming environments (VPEs), to what extent their learning styles relate to these perceptions and finally to what extent these tools facilitate student understanding of basic programming constructs and impact their motivation to learn programming

    PROMOTING THE USE OF MOBILE DEVICES FOR E-LEARNING SOLUTIONS: DEVELOPING AN ANDROID APP FOR NATIONAL OPEN UNIVERSITY OF NIGERIA

    Get PDF
    E-Learning is a broad and relatively novel concept that covers the use of electronic devices in delivering formal education. This research work aims to consider some of the diversities entailed and some of the specific ways that electronic devices can promote learning. Of particular interest is the use of mobile devices, considering the contemporary surge in smartphones and the roles these can play in individualized learning. The shift in possibilities, as well as the seemingly endless options available, are some of the concepts explored in this work. The android app developed is primarily to show the prospects of establishments such as National Open University of Nigeria (NOUN) which offer strictly open and distance learning that mobile devices can be used to promote learning. This will be shown to be innumerable and could easily validate many more studies in this field. The application (app) developed in this project was for an android device, which by far is the most common mobile operating system available presently. The procedure involved the use of android studio which provides an environment for coding and testing apps on an android phone. The widespread preference, as well as the ubiquitous occurrence of android based smartphones, was the factor behind this platform choice

    The affordances of virtual world technologies to empower the visualisation of complex theory concepts in computer science: Enhancing success and experience in higher education

    Get PDF
    Abstract:This research targeted complex abstract concepts in Computer Science and focused on bringing about the visualisation of such concepts using virtual world technologies. The research proposed the use of virtual world elements to support the understanding and learning of six computer science subjects having difficult theory concepts at the Higher Education level.The researcher decided to choose Higher Education as the platform for this research, due to the significant need to understand and learn complex abstract concepts of Computer Science at this level. The framework of the research is Higher Education within Further Education, which was chosen for its challenging nature with regards to students’ background and the level of additional support required for their success.The Second Life virtual world was selected and utilised to build purposely designed and scripted scenarios to empower the visualisation of complex theory concepts of the selected computer science subjects. These scenarios were embedded, in a predetermined order, within the curriculum delivery of a number of selected Computer Science modules from a Foundation Degree and a BSc (Hons) in Computing Programmes in a FE college in England. The research activities were carried out in two academic years, 2012/2013 and 2013/2014, in order to involve more students and obtain additional data to effectively, and more accurately, answer the research questions.The research aimed at identifying the extent to which using virtual world technologies to visualise difficult theory concepts in Computer Science subjects, might enhance students' learning and achievement. The research outcomes provided positive answers to the four research questions, which pursued the extent to which the visualisation of such concepts using Second life virtual world might, 1) facilitate students’ understanding of the complex abstract concepts in their HE Computer Science subjects, 2) increase students’ engagement in their HE Computer Science sessions, 3) enhance affective quality (to include elements such as appeal, enjoyment, interest and appreciation), and 4) improve student’s achievement (i.e. grades) in the targeted modules.In answer to these questions, the research outcomes showed that subject difficulty was reduced by 25% and around three quarters of students acknowledged enhanced learning in the virtual environment. Seventy percent of students acknowledged becoming more engaged in their study sessions that were carried out in virtual worlds, and more than three quarters of students acknowledged enhanced affective quality. Finally, around 85% of the modules covered by the research witnessed improved students’ achievement (i.e. higher grades).The researcher explained potential use, advantages and limitations of employing Second Life in Higher Education in general and HE Computer Science in particular, and provided recommendations to academic institutions that are interested in applying such virtual world technologies to overcome the challenges involved
    • …
    corecore