42 research outputs found
Recommended from our members
Patterns of Design
In a straightforward meta-level shift of focus, we use design patterns as a medium and process for capturing insight about the process of design. We survey mainstream design genres, and draw conclusions about how they can help inform the design of intelligent systems
Patterns pedagógicos: possibilidades para a docência com as tecnologias
O desafio de integrar tecnologias às práticas pedagógicas tem se tornando mais premente à medida que novos recursos se tornam disponíveis em intervalos cada vez menores. A partir de uma revisão bibliográfica, identificamos propostas para disseminação das práticas pedagógicas com as tecnologias, a partir da teoria de patterns. Observou-se, contudo, que se trata de uma visão reducionista em comparação com a proposta original. Este artigo apresenta um recorte de pesquisa que analisou as concepções de patterns na Educação, revelando pouco consenso em relação às formas de identificação, catalogação, compartilhamento e, efetivamente, aplicação no contexto da docência com tecnologias educacionais. Adicionalmente, pouca empiria sobre o impacto da abordagem de patterns nas práticas pedagógicas foi encontrada. Comparando com a abordagem aplicada à computação, com conceitos e práticas bem estabelecidas, percebe-se a necessidade de adequação da teoria às diferentes propostas e atores na construção de práticas pedagógicas com as tecnologias
Leveraging Evolutionary Changes for Software Process Quality
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
A Pattern-Language for Self-Healing Internet-of-Things Systems
Internet-of-Things systems are assemblies of highly-distributed and heterogeneous parts that, in orchestration, work to provide valuable services to end-users in many scenarios. These systems depend on the correct operation of sensors, actuators, and third-party services, and the failure of a single one can hinder the proper functioning of the whole system, making error detection and recovery of paramount importance, but often overlooked. By drawing inspiration from other research areas, such as cloud, embedded, and mission-critical systems, we present a set of patterns for self-healing IoT systems. We discuss how their implementation can improve system reliability by providing error detection, error recovery, and health mechanisms maintenance. (c) 2020 ACM
Grounded patterns : creating a socio-spatial language for residents’ participation in cohousing landscapes
Since 'A Pattern Language' was published in 1977, it has inspired students, practitioners and communities to create places that reflect a timeless human quality. The purpose of a pattern is to succinctly document, communicate, and implement commonly occurring and well-functioning ideas in a particular setting, to offer anyone the ability to replicate them in their everyday environment. Despite this, methods for identifying patterns and collating them into a language remain ambiguous. This paper advances a grounded approach to identifying patterns and collating them into a language through the study of cohousing residents' participation in shared outdoor spaces. As well as outlining a grounded pattern methodology, the research aims to test the pattern language as a collaborative tool for residential communities and design practitioners and explore the wider contribution to urban theory
Studying Software Engineering Patterns for Designing Machine Learning Systems
Machine-learning (ML) techniques have become popular in the recent years. ML
techniques rely on mathematics and on software engineering. Researchers and
practitioners studying best practices for designing ML application systems and
software to address the software complexity and quality of ML techniques. Such
design practices are often formalized as architecture patterns and design
patterns by encapsulating reusable solutions to commonly occurring problems
within given contexts. However, to the best of our knowledge, there has been no
work collecting, classifying, and discussing these software-engineering (SE)
design patterns for ML techniques systematically. Thus, we set out to collect
good/bad SE design patterns for ML techniques to provide developers with a
comprehensive and ordered classification of such patterns. We report here
preliminary results of a systematic-literature review (SLR) of good/bad design
patterns for ML
Development of components for microservice based applications
[Resumen] La utilización de la computación en la Niebla está ganando terreno en el dominio de la fabricación avanzada. Este paradigma de computación distribuida habilita el análisis de los datos producidos por los activos de fabricación en los procesos industriales, acercando los servicios que suele ofrecer la Nube a los dispositivos que producen los datos, mejorando la seguridad de estos y el rendimiento de las comunicaciones. Las aplicaciones desplegadas en la Niebla suelen diseñarse como conjuntos de componentes distribuidos que aprovechan el paradigma de microservicios, generalmente encapsulados en contenedores, para adaptar su despliegue en nodos con capacidades heterogéneas. Este artículo hace uso de la Ingeniería Conducida por Modelos para proporcionar a los programadores de componentes pautas y herramientas a la hora de diseñar y desarrollar dichos componentes de aplicación, preparándolos para su posterior despliegue en forma de microservicios.[Abstract] Fog computing is getting more widespread on the advanced manufacturing domain. This distributed computing paradigm enables analysing the data produced by the manufacturing assets at the industrial processes, offering Cloud-like services closer to the devices that produce the data, improving their data security and the performance of their communications. The applications deployed on the Fog layer are usually designed as sets of distributed components that leverage the advantages of the microservice paradigm, generally encapsulated in containers, to adapt their deployment to nodes with heterogeneous capabilities. This article makes use of Model Driven Engineering to provide component programmers with tools and steps when designing and developing said application components, preparing them for their latter deployment as microservices.Ministerio de Ciencia e Innovación; RTI2018-096116-B-I00Universidad del País Vasco; PES18/4