470,863 research outputs found

    Run-time Architecture Models for Dynamic Adaptation and Evolution of Cloud Applications

    Get PDF
    Cloud applications are subject to continuous change due to modifications of the software application itself and, in particular, its environment. To manage changes, cloud-based systems provide diverse self-adaptation mechanisms based on run-time models. Observed run-time models are means for leveraging self- adaption, however, are hard to apply during software evolution as they are usually too detailed for comprehension by humans.In this paper, we propose iObserve, an approach to cloud-based system adaptation and evolution through run-time observation and continuous quality analysis. With iObserve, run-time adaptation and evolution are two mutual, interwoven activities that influence each other. Central to iObserve is (a) the specification of the correspondence between observation results and design models, and (b) their use in both adaptation and evolution. Run-time observation data is promoted to meaningful values mapped to design models, thereby continuously updating and calibrating those design models during run-time while keeping the models comprehendible by humans. This engineering approach allows for automated adaptation at run-time and simultaneously supports software evolution. Model-driven software engineering is employed for various purposes such as monitoring instrumentation and model transformation. We report on the experimental evaluation of this approach in lab experiments using the CoCoME benchmark deployed on an OpenStack cloud

    Leveraging Evolutionary Changes for Software Process Quality

    Full text link
    Real-world software applications must constantly evolve to remain relevant. This evolution occurs when developing new applications or adapting existing ones to meet new requirements, make corrections, or incorporate future functionality. Traditional methods of software quality control involve software quality models and continuous code inspection tools. These measures focus on directly assessing the quality of the software. However, there is a strong correlation and causation between the quality of the development process and the resulting software product. Therefore, improving the development process indirectly improves the software product, too. To achieve this, effective learning from past processes is necessary, often embraced through post mortem organizational learning. While qualitative evaluation of large artifacts is common, smaller quantitative changes captured by application lifecycle management are often overlooked. In addition to software metrics, these smaller changes can reveal complex phenomena related to project culture and management. Leveraging these changes can help detect and address such complex issues. Software evolution was previously measured by the size of changes, but the lack of consensus on a reliable and versatile quantification method prevents its use as a dependable metric. Different size classifications fail to reliably describe the nature of evolution. While application lifecycle management data is rich, identifying which artifacts can model detrimental managerial practices remains uncertain. Approaches such as simulation modeling, discrete events simulation, or Bayesian networks have only limited ability to exploit continuous-time process models of such phenomena. Even worse, the accessibility and mechanistic insight into such gray- or black-box models are typically very low. To address these challenges, we suggest leveraging objectively [...]Comment: Ph.D. Thesis without appended papers, 102 page

    Revisiting Continuous Deployment Maturity : A Two-Year Perspective

    Get PDF
    Background: Achieving a steady stream of small releases and employing practices such as continuous deployment requires maturity in company processes. Maturity models provide one approach for companies to pinpoint areas of improvement by providing a position and hints to reflect on. Incorporating maturity models with agile software development and continuous deployment has its challenges, though. Aims: The focus of the study is in understanding the evolution of software processes towards continuous deployment in an industry organization over time when a maturity model is used as a yardstick in evaluation. Method: An embedded case study by design, the study utilizes and replicates a survey on the state of software projects in a large Finnish software company, Solita. The survey was initially conducted in 2015 with responses from 35 projects and now replicated in 2017 with responses from 43 projects. Both quantitative and qualitative approaches for survey responses are used in the analysis. Results: Maturity of software processes in the case company show improvement in deployment and in monitoring, albeit short of statistical significance. Technological advances in the application of cloud computing have likely spurred development in these areas. Capability in processes related to test automation and quality has not changed much in two years. Conclusions: Maintaining maturity in software processes requires constant attention as impressions on process quality can gradually diminish. Projects which are built on a compatible technology stack have a greater chance in achieving continuous deployment and thus being more mature. Customer preferences also make a difference in the ability to reach certain maturity levels.Peer reviewe

    Review on Quality Models for Open Source Software and its reflection on Social Coding

    Get PDF
    Social Coding Sites (SCSs) are social media services for sharing software development projects on the Web, many open source projects are currently being developed on SCSs. Assessing the quality is a crucial element for better selection of a specific project serving people requirements or needs. In this paper, we reviewed existing traditional models which evolved prior the evolution of open source software as well as open source quality models. We evaluated the selected models according to their reflection with respect to social coding project success factors: sociality, popularity, activity and supportability. Eight models were included in our research as we only selected models that introduces explicit metrics well defined for measuring, neither a process nor a generic methodology. Based on our selection criteria, a summary of the findings we obtained is that existing models doesn't fully consider or cover social factors for open source software evaluation hence there is a need for a model to measure the maturity / quality of open source projects from social factors perspective. We have also evaluated the existing models against a selected open source project hosted on social coding GitHub to assess each model applicability. Some of the measurements from the existing models were not applicable for evaluation

    Mobile Interaction Capturing System in Real Environments

    Get PDF
    Abstract: Mobile applications are being used in a great range of fields and application areas. As a result, many research fields have focused on the study and improvement of such devices. The current Smartphones are the best example of the research and the evolution of these technologies. Moreover, the software design and development is progressively more focused on the user; finding and developing new mobile interaction models. In order to do so, knowing what kind of problems the users could have is vital to enhance a bad interaction design. Unfortunately, a good software quality evaluation takes more time than the companies can invest. The contribution revealed in this work is a new approach to quality testing methodology focused on mobile interactions and their context in use where external capturing tools, such as cameras, are suppressed and the evaluation environments are the same as the user will use the application. By this approach, the interactions can be captured without changing the context and consequently, the data will be more accurate, enabling the evaluation of the quality-in-use in real environments

    Surrogate-assisted Bayesian inversion for landscape and basin evolution models

    Full text link
    The complex and computationally expensive features of the forward landscape and sedimentary basin evolution models pose a major challenge in the development of efficient inference and optimization methods. Bayesian inference provides a methodology for estimation and uncertainty quantification of free model parameters. In our previous work, parallel tempering Bayeslands was developed as a framework for parameter estimation and uncertainty quantification for the landscape and basin evolution modelling software Badlands. Parallel tempering Bayeslands features high-performance computing with dozens of processing cores running in parallel to enhance computational efficiency. Although parallel computing is used, the procedure remains computationally challenging since thousands of samples need to be drawn and evaluated. In large-scale landscape and basin evolution problems, a single model evaluation can take from several minutes to hours, and in certain cases, even days. Surrogate-assisted optimization has been with successfully applied to a number of engineering problems. This motivates its use in optimisation and inference methods suited for complex models in geology and geophysics. Surrogates can speed up parallel tempering Bayeslands by developing computationally inexpensive surrogates to mimic expensive models. In this paper, we present an application of surrogate-assisted parallel tempering where that surrogate mimics a landscape evolution model including erosion, sediment transport and deposition, by estimating the likelihood function that is given by the model. We employ a machine learning model as a surrogate that learns from the samples generated by the parallel tempering algorithm. The results show that the methodology is effective in lowering the overall computational cost significantly while retaining the quality of solutions.Comment: Under review. arXiv admin note: text overlap with arXiv:1811.0868

    Uso de modelos de qualidade de software em empresas de desenvolvimento de software em Curitiba

    Get PDF
    Orientador : Prof. Dr. Egon Walter WildauerDissertação (mestrado) - Universidade Federal do Paraná, Setor de Ciências Sociais Aplicadas, Programa de Pós-Graduação em Ciência, Gestão e Tecnologia da Informação. Defesa: Curitiba, 20/02Inclui referênciasResumo: A compreensão da qualidade como um atributo do software levou à importância da inclusão de modelos de qualidade de software no Brasil. A partir da década de 90 com as avaliações CMM e na década seguinte com as avaliações e MPS.BR o mercado brasileiro começou a implantar os modelos de qualidade que melhorassem os processos de software nas empresas de desenvolvimento de sistemas computacionais. Em outro aspecto, os modelos de qualidade de software para avaliação como o modelo SQUARE verificam por meio quantitativo se o produto tem qualidade e também interferem na satisfação do cliente. Foram selecionados três modelos referentes à qualidade do produto que refletem a evolução da avaliação do software (McCall, FURPS e SQUARE). A utilização dos modelos de avaliação de software é útil para garantir que o software produzido obtenha garantia da qualidade. A pesquisa também identificou três modelos de melhoria de processo de software (CMMI, SPICE e MPS.Br). Durante o processo de pesquisa se desenvolveu um instrumento de coleta de dados com o objetivo de identificar o uso de modelos de avaliação e de melhoria de processos em desenvolvedoras de software em Curitiba. Os resultados obtidos por meio do questionário foram formatados e analisados, das 75 empresas respondentes apenas 26 delas utilizam modelos de qualidade de software. As empresas que utilizam modelos de maturidade (independente do modelo) avaliaram o impacto do uso desses modelos como grau 5 (em um intervalo de 1-5) em seis critérios (custo, tempo de produção, desempenho, retrabalho, satisfação do cliente e manutenção do software), porém, na maior parte das empresa que utiliza modelos de qualidade utiliza modelos desenvolvidos na própria empresa com base em experiências vividas na empresa. O impacto do uso dos modelos é positivo no primeiro momento o processo de melhoria se torna caro e dispendioso, com gastos com treinamento e na mudança cultural da empresa, em um segundo estágio, depois da consolidação do uso dos modelos, a empresa passa a ter economia, com menos erros e gastos desnecessários. Por meio dos resultados desta pesquisa pode se concluir que existem modelos compatíveis com as necessidades das empresas desenvolvedoras, mas em função do custo as empresas adotam modelos próprios de maturidade e de avaliação de software. Palavras-chave: Modelos de Qualidade de software. Informação. Qualidade de software. Curitiba (PR)Abstract: The understanding of quality as a software attribute led to the importance of including software quality models in Brazil. From the 90s to the CMM reviews and a decade later with the reviews and MPS.BR the Brazilian market began to implement quality models that would improve software processes in the development of computer systems companies. In another aspect, the software quality models for evaluation as the model SQUARE check by quantitative means the product has quality and also interfere in customer satisfaction. Three models related to product quality that reflect the evolution of software evaluation (McCall, FURPS and SQUARE) were selected. The use of software evaluation models is useful to ensure that the software produced obtain quality assurance. The survey also identified three models of improvement of software process (CMMI, SPICE and MPS.Br). During the research process developed a data collection instrument in order to identify the use of valuation models and process improvement in software developers in Curitiba. The results obtained from the questionnaire were analyzed and formatted, the 75 respondent companies only use 26 software quality models. Companies using maturity models (regardless of model) evaluated the impact of the use of these models as grade 5 (in a range of 1-5) on six criteria (cost, production time, performance, rework, customer satisfaction and maintenance software), however, most of the company using quality models use models developed in-house based on experiences in the company. The impact of the use of models is positive at first the improvement process becomes expensive and costly, with spending on training and cultural change of the company, in a second stage, after the consolidation of the use of models, the company will have economy, with fewer errors and unnecessary spending. Through the results of this research can be concluded that there are models compatible with the needs of developing companies, but due to the cost companies adopt own maturity models and assessment software. Keywords: Quality Model software. Information. Quality software. Curitiba (PR

    Quantitative Modeling and Verification of Evolving Software

    Get PDF
    Mit der steigenden Nachfrage nach Innovationen spielt Software in verschiedenenWirtschaftsbereichen eine wichtige Rolle, wie z.B. in der Automobilindustrie, bei intelligenten Systemen als auch bei Kommunikationssystemen. Daher ist die Qualität für die Softwareentwicklung von großer Bedeutung. Allerdings ändern sich die probabilistische Modelle (die Qualitätsbewertungsmodelle) angesichts der dynamischen Natur moderner Softwaresysteme. Dies führt dazu, dass ihre Übergangswahrscheinlichkeiten im Laufe der Zeit schwanken, welches zu erheblichen Problemen führt. Dahingehend werden probabilistische Modelle im Hinblick auf ihre Laufzeit kontinuierlich aktualisiert. Eine fortdauernde Neubewertung komplexer Wahrscheinlichkeitsmodelle ist jedoch teuer. In letzter Zeit haben sich inkrementelle Ansätze als vielversprechend für die Verifikation von adaptiven Systemen erwiesen. Trotzdem wurden bei der Bewertung struktureller Änderungen im Modell noch keine wesentlichen Verbesserungen erzielt. Wahrscheinlichkeitssysteme werden als Automaten modelliert, wie bei Markov-Modellen. Solche Modelle können in Matrixform dargestellt werden, um die Gleichungen basierend auf Zuständen und Übergangswahrscheinlichkeiten zu lösen. Laufzeitmodelle wie Matrizen sind nicht signifikant, um die Auswirkungen von Modellveränderungen erkennen zu können. In dieser Arbeit wird ein Framework unter Verwendung stochastischer Bäume mit regulären Ausdrücken entwickelt, welches modular aufgebaut ist und eine aktionshaltige sowie probabilistische Logik im Kontext der Modellprüfung aufweist. Ein solches modulares Framework ermöglicht dem Menschen die Entwicklung der Änderungsoperationen für die inkrementelle Berechnung lokaler Änderungen, die im Modell auftreten können. Darüber hinaus werden probabilistische Änderungsmuster beschrieben, um eine effiziente inkrementelle Verifizierung, unter Verwendung von Bäumen mit regulären Ausdrücken, anwenden zu können. Durch die Bewertung der Ergebnisse wird der Vorgang abgeschlossen.Software plays an innovative role in many different domains, such as car industry, autonomous and smart systems, and communication. Hence, the quality of the software is of utmost importance and needs to be properly addressed during software evolution. Several approaches have been developed to evaluate systems’ quality attributes, such as reliability, safety, and performance of software. Due to the dynamic nature of modern software systems, probabilistic models representing the quality of the software and their transition probabilities change over time and fluctuate, leading to a significant problem that needs to be solved to obtain correct evaluation results of quantitative properties. Probabilistic models need to be continually updated at run-time to solve this issue. However, continuous re-evaluation of complex probabilistic models is expensive. Recently, incremental approaches have been found to be promising for the verification of evolving and self-adaptive systems. Nevertheless, substantial improvements have not yet been achieved for evaluating structural changes in the model. Probabilistic systems are usually represented in a matrix form to solve the equations based on states and transition probabilities. On the other side, evolutionary changes can create various effects on theese models and force them to re-verify the whole system. Run-time models, such as matrices or graph representations, lack the expressiveness to identify the change effect on the model. In this thesis, we develop a framework using stochastic regular expression trees, which are modular, with action-based probabilistic logic in the model checking context. Such a modular framework enables us to develop change operations for the incremental computation of local changes that can occur in the model. Furthermore, we describe probabilistic change patterns to apply efficient incremental quantitative verification using stochastic regular expression trees and evaluate our results
    corecore