68 research outputs found
Understanding, Analysis, and Handling of Software Architecture Erosion
Architecture erosion occurs when a software system's implemented architecture diverges from the intended architecture over time. Studies show erosion impacts development, maintenance, and evolution since it accumulates imperceptibly. Identifying early symptoms like architectural smells enables managing erosion through refactoring. However, research lacks comprehensive understanding of erosion, unclear which symptoms are most common, and lacks detection methods. This thesis establishes an erosion landscape, investigates symptoms, and proposes identification approaches. A mapping study covers erosion definitions, symptoms, causes, and consequences. Key findings: 1) "Architecture erosion" is the most used term, with four perspectives on definitions and respective symptom types. 2) Technical and non-technical reasons contribute to erosion, negatively impacting quality attributes. Practitioners can advocate addressing erosion to prevent failures. 3) Detection and correction approaches are categorized, with consistency and evolution-based approaches commonly mentioned.An empirical study explores practitioner perspectives through communities, surveys, and interviews. Findings reveal associated practices like code review and tools identify symptoms, while collected measures address erosion during implementation. Studying code review comments analyzes erosion in practice. One study reveals architectural violations, duplicate functionality, and cyclic dependencies are most frequent. Symptoms decreased over time, indicating increased stability. Most were addressed after review. A second study explores violation symptoms in four projects, identifying 10 categories. Refactoring and removing code address most violations, while some are disregarded.Machine learning classifiers using pre-trained word embeddings identify violation symptoms from code reviews. Key findings: 1) SVM with word2vec achieved highest performance. 2) fastText embeddings worked well. 3) 200-dimensional embeddings outperformed 100/300-dimensional. 4) Ensemble classifier improved performance. 5) Practitioners found results valuable, confirming potential.An automated recommendation system identifies qualified reviewers for violations using similarity detection on file paths and comments. Experiments show common methods perform well, outperforming a baseline approach. Sampling techniques impact recommendation performance
Технология комплексной поддержки жизненного цикла семантически совместимых интеллектуальных компьютерных систем нового поколения
В издании представлено описание текущей версии открытой технологии онтологического проектирования, производства и эксплуатации семантически совместимых гибридных интеллектуальных компьютерных систем (Технологии OSTIS). Предложена стандартизация интеллектуальных компьютерных систем, а также стандартизация методов и
средств их проектирования, что является важнейшим фактором, обеспечивающим семантическую совместимость интеллектуальных компьютерных систем и их компонентов, что
существенное снижение трудоемкости разработки таких систем.
Книга предназначена всем, кто интересуется проблемами искусственного интеллекта, а также специалистам в области интеллектуальных компьютерных систем и инженерии знаний. Может быть использована студентами, магистрантами и аспирантами специальности «Искусственный интеллект».
Табл. 8. Ил. 223. Библиогр.: 665 назв
JavaScript Dead Code Identification, Elimination, and Empirical Assessment
Web apps are built by using a combination of HTML, CSS, and JavaScript. While
building modern web apps, it is common practice to make use of third-party
libraries and frameworks, as to improve developers' productivity and code
quality. Alongside these benefits, the adoption of such libraries results in
the introduction of JavaScript dead code, i.e., code implementing unused
functionalities. The costs for downloading and parsing dead code can negatively
contribute to the loading time and resource usage of web apps. The goal of our
study is two-fold. First, we present Lacuna, an approach for automatically
detecting and eliminating JavaScript dead code from web apps. The proposed
approach supports both static and dynamic analyses, it is extensible and can be
applied to any JavaScript code base, without imposing constraints on the coding
style or on the use of specific JavaScript constructs. Secondly, by leveraging
Lacuna we conduct an experiment to empirically evaluate the run-time overhead
of JavaScript dead code in terms of energy consumption, performance, network
usage, and resource usage in the context of mobile web apps. We applied Lacuna
four times on 30 mobile web apps independently developed by third-party
developers, each time eliminating dead code according to a different
optimization level provided by Lacuna. Afterward, each different version of the
web app is executed on an Android device, while collecting measures to assess
the potential run-time overhead caused by dead code. Experimental results,
among others, highlight that the removal of JavaScript dead code has a positive
impact on the loading time of mobile web apps, while significantly reducing the
number of bytes transferred over the network
Microservice security: a systematic literature review
International audienceMicroservices is an emerging paradigm for developing distributed systems. With their widespread adoption, more and more work investigated the relation between microservices and security. Alas, the literature on this subject does not form a well-defined corpus : it is spread over many venues and composed of contributions mainly addressing specific scenarios or needs. In this work, we conduct a systematic review of the field, gathering 290 relevant publications—at the time of writing, the largest curated dataset on the topic. We analyse our dataset along two lines: (a) quantitatively, through publication metadata, which allows us to chart publication outlets, communities, approaches, and tackled issues; (b) qualitatively, through 20 research questions used to provide an aggregated overview of the literature and to spot gaps left open. We summarise our analyses in the conclusion in the form of a call for action to address the main open challenges
Using Active Learning to Teach Critical and Contextual Studies: One Teaching Plan, Two Experiments, Three Videos.
Since the 1970s, art and design education at UK universities has existedas a divided practice; on the one hand applying active learning in thestudio and on the other hand enforcing passive learning in the lecturetheatre. As a result, art and design students are in their vast majorityreluctant about modules that may require them to think, read and writecritically during their academic studies. This article describes, evaluatesand analyses two individual active learning experiments designed todetermine if it is possible to teach CCS modules in a manner thatencourages student participation. The results reveal that opting foractive learning methods improved academic achievement, encouragedcooperation, and enforced an inclusive classroom. Furthermore, andcontrary to wider perception, the article demonstrates that activelearning methods can be equally beneficial for small-size as well aslarge-size groups
Mining app reviews to support software engineering
The thesis studies how mining app reviews can support software engineering.
App reviews —short user reviews of an app in app stores— provide a potentially rich source of information to help software development teams maintain and evolve their products. Exploiting this information is however difficult due to the large number of reviews and the difficulty in extracting useful actionable information from short informal texts.
A variety of app review mining techniques have been proposed to classify reviews and to extract information such as feature requests, bug descriptions, and user sentiments but the usefulness of these techniques in practice is still unknown. Research in this area has grown rapidly, resulting in a large number of scientific publications (at least 182 between 2010 and 2020) but nearly no independent evaluation and description of how diverse techniques fit together to support specific software engineering tasks have been performed so far.
The thesis presents a series of contributions to address these limitations. We first report the findings of a systematic literature review in app review mining exposing the breadth and limitations of research in this area. Using findings from the literature review, we then present a reference model that relates features of app review mining tools to specific software engineering tasks supporting requirements engineering, software maintenance and evolution.
We then present two additional contributions extending previous evaluations of app review mining techniques. We present a novel independent evaluation of opinion mining techniques using an annotated dataset created for our experiment. Our evaluation finds lower effectiveness than initially reported by the techniques authors. A final part of the thesis, evaluates approaches in searching for app reviews pertinent to a particular feature. The findings show a general purpose search technique is more effective than the state-of-the-art purpose-built app review mining techniques; and suggest their usefulness for requirements elicitation.
Overall, the thesis contributes to improving the empirical evaluation of app review mining techniques and their application in software engineering practice. Researchers and developers of future app mining tools will benefit from the novel reference model, detailed experiments designs, and publicly available datasets presented in the thesis
Practical approaches to delivering pandemic impacted laboratory teaching
#DryLabsRealScience is a community of practice established to support life science educators with the provision of laboratory-based classes in the face of the COVID-19 pandemic and restricted access to facilities. Four key
approaches have emerged from the innovative work shared with the network: videos, simulations, virtual/augmented reality, and datasets, with each having strengths and weaknesses. Each strategy was used pre-COVID and has a sound theoretical underpinning; here, we explore how the pandemic has forced
their adaptation and highlight novel utilisation to support student learning in the laboratory environment during the challenges faced by remote and blended teaching
Green AI: Do Deep Learning Frameworks Have Different Costs?
The use of Artificial Intelligence (ai), and more specifically of Deep
Learning (dl), in modern software systems, is nowadays widespread
and continues to grow. At the same time, its usage is energy demanding and contributes to the increased CO2
emissions, and has
a great financial cost as well. Even though there are many studies
that examine the capabilities of dl, only a few focus on its green
aspects, such as energy consumption.
This paper aims at raising awareness of the costs incurred when
using different dl frameworks. To this end, we perform a thorough empirical study to measure and compare the energy consumption and run-time performance of six different dl models
written in the two most popular dl frameworks, namely PyTorch
and TensorFlow. We use a well-known benchmark of dl models,
DeepLearningExamples, created by nvidia, to compare both the
training and inference costs of dl. Finally, we manually investigate
the functions of these frameworks that took most of the time to
execute in our experiments.
The results of our empirical study reveal that there is a statistically significant difference between the cost incurred by the two
dl frameworks in 94% of the cases studied. While TensorFlow
achieves significantly better energy and run-time performance than
PyTorch, and with large effect sizes in 100% of the cases for the
training phase, PyTorch instead exhibits significantly better energy and run-time performance than TensorFlow in the inference
phase for 66% of the cases, always, with large effect sizes. Such a
large difference in performance costs does not, however, seem to
affect the accuracy of the models produced, as both frameworks
achieve comparable scores under the same configurations. Our manual analysis, of the documentation and source code of the functions
examined, reveals that such a difference in performance costs is
under-documented, in these frameworks. This suggests that developers need to improve the documentation of their dl frameworks,
the source code of the functions used in these frameworks, as well
as to enhance existing dl algorithms
On the performance of WebAssembly
Dissertação de mestrado integrado em Informatics EngineeringThe worldwide Web has dramatically evolved in recent years. Web pages are dynamic, expressed by pro grams written in common programming languages given rise to sophisticated Web applications. Thus,
Web browsers are almost operating systems, having to interpret/compile such programs and execute
them. Although JavaScript is widely used to express dynamic Web pages, it has several shortcomings and
performance inefficiencies. To overcome such limitations, major IT powerhouses are developing a new
portable and size/load efficient language: WebAssembly.
In this dissertation, we conduct the first systematic study on the energy and run-time performance
of WebAssembly and JavaScript on the Web. We used micro-benchmarks and real applications to have
more realistic results. The results show that WebAssembly, while still in its infancy, is starting to already
outperform JavaScript, with much more room to grow. A statistical analysis indicates that WebAssembly
produces significant performance differences compared to JavaScript. However, these differences differ
between micro-benchmarks and real-world benchmarks. Our results also show that WebAssembly improved
energy efficiency by 30%, on average, and show how different WebAssembly behaviour is among three
popular Web Browsers: Google Chrome, Microsoft Edge, and Mozilla Firefox. Our findings indicate that
WebAssembly is faster than JavaScript and even more energy-efficient. Our benchmarking framework is
also available to allow further research and replication.A Web evoluiu dramaticamente em todo o mundo nos últimos anos. As páginas Web são dinâmicas,
expressas por programas escritos em linguagens de programação comuns, dando origem a aplicativos
Web sofisticados. Assim, os navegadores Web são quase como sistemas operacionais, tendo que interpre tar/compilar tais programas e executá-los. Embora o JavaScript seja amplamente usado para expressar
páginas Web dinâmicas, ele tem várias deficiências e ineficiências de desempenho. Para superar tais
limitações, as principais potências de TI estão a desenvolver uma nova linguagem portátil e eficiente em
tamanho/carregamento: WebAssembly.
Nesta dissertação, conduzimos o primeiro estudo sistemático sobre o desempenho da energia e do
tempo de execução do WebAssembly e JavaScript na Web. Usamos micro-benchmarks e aplicações reais
para obter resultados mais realistas. Os resultados mostram que WebAssembly, embora ainda esteja
na sua infância, já está começa a superar o JavaScript, com muito mais espaço para crescer. Uma
análise estatística indica que WebAssembly produz diferenças de desempenho significativas em relação
ao JavaScript. No entanto, essas diferenças diferem entre micro-benchmarks e benchmarks de aplicações
reais. Os nossos resultados também mostram que o WebAssembly melhorou a eficiência energética em
30%, em média, e mostram como o comportamento do WebAssembly é diferente entre três navegadores
Web populares: Google Chrome, Microsoft Edge e Mozilla Firefox. As nossas descobertas indicam que
o WebAssembly é mais rápido que o JavaScript e ainda mais eficiente em termos de energia. A nossa
benchmarking framework está disponível para permitir pesquisas adicionais e replicação
- …