339 research outputs found
Microservice Transition and its Granularity Problem: A Systematic Mapping Study
Microservices have gained wide recognition and acceptance in software
industries as an emerging architectural style for autonomic, scalable, and more
reliable computing. The transition to microservices has been highly motivated
by the need for better alignment of technical design decisions with improving
value potentials of architectures. Despite microservices' popularity, research
still lacks disciplined understanding of transition and consensus on the
principles and activities underlying "micro-ing" architectures. In this paper,
we report on a systematic mapping study that consolidates various views,
approaches and activities that commonly assist in the transition to
microservices. The study aims to provide a better understanding of the
transition; it also contributes a working definition of the transition and
technical activities underlying it. We term the transition and technical
activities leading to microservice architectures as microservitization. We then
shed light on a fundamental problem of microservitization: microservice
granularity and reasoning about its adaptation as first-class entities. This
study reviews state-of-the-art and -practice related to reasoning about
microservice granularity; it reviews modelling approaches, aspects considered,
guidelines and processes used to reason about microservice granularity. This
study identifies opportunities for future research and development related to
reasoning about microservice granularity.Comment: 36 pages including references, 6 figures, and 3 table
Architectural stability of self-adaptive software systems
This thesis studies the notion of stability in software engineering with the aim of understanding its dimensions, facets and aspects, as well as characterising it. The thesis further investigates the aspect of behavioural stability at the architectural level, as a property concerned with the architecture's capability in maintaining the achievement of expected quality of service and accommodating runtime changes, in order to delay the architecture drifting and phasing-out as a consequence of the continuous unsuccessful provision of quality requirements. The research aims to provide a systematic and methodological support for analysing, modelling, designing and evaluating architectural stability. The novelty of this research is the consideration of stability during runtime operation, by focusing on the stable provision of quality of service without violations. As the runtime dimension is associated with adaptations, the research investigates stability in the context of self-adaptive software architectures, where runtime stability is challenged by the quality of adaptation, which in turn affects the quality of service. The research evaluation focuses on the effectiveness, scale and accuracy in handling runtime dynamics, using the self-adaptive cloud architectures
Using Free/Libre Open Source Software Projects as E-learning Tools
Free/Libre Open Source Software (FLOSS) projects can be considered as learning environments in which heterogeneous communities get together to exchange knowledge through discussion and put it into practice through actual contributions to software development, revision and testing. This has encouraged tertiary educators to attempt the inclusion of participation in FLOSS projects as part of the requirements of Software Engineering courses, and pilot studies have been conducted to test the effectiveness of such an attempt. This paper discusses two pilot studies with reference to several studies concerning the role of learning in FLOSS projects and shows how using FLOSS projects as E-learning tools has a potential to increase the quality of the software product
Software Startups -- A Research Agenda
Software startup companies develop innovative, software-intensive products
within limited time frames and with few resources, searching for sustainable
and scalable business models. Software startups are quite distinct from
traditional mature software companies, but also from micro-, small-, and
medium-sized enterprises, introducing new challenges relevant for software
engineering research. This paper's research agenda focuses on software
engineering in startups, identifying, in particular, 70+ research questions in
the areas of supporting startup engineering activities, startup evolution
models and patterns, ecosystems and innovation hubs, human aspects in software
startups, applying startup concepts in non-startup environments, and
methodologies and theories for startup research. We connect and motivate this
research agenda with past studies in software startup research, while pointing
out possible future directions. While all authors of this research agenda have
their main background in Software Engineering or Computer Science, their
interest in software startups broadens the perspective to the challenges, but
also to the opportunities that emerge from multi-disciplinary research. Our
audience is therefore primarily software engineering researchers, even though
we aim at stimulating collaborations and research that crosses disciplinary
boundaries. We believe that with this research agenda we cover a wide spectrum
of the software startup industry current needs
From start-ups to scale-ups: Opportunities and open problems for static and dynamic program analysis
This paper describes some of the challenges and opportunities when deploying static and dynamic analysis at scale, drawing on the authors' experience with the Infer and Sapienz Technologies at Facebook, each of which started life as a research-led start-up that was subsequently deployed at scale, impacting billions of people worldwide. The paper identifies open problems that have yet to receive significant attention from the scientific community, yet which have potential for profound real world impact, formulating these as research questions that, we believe, are ripe for exploration and that would make excellent topics for research projects
- âŠ