892 resultados para Android, Java, mobile, database, PHP, App, Json, design pattern, compatibilità, UML
Resumo:
This paper presents a way to describe design patterns rigorously based on role concepts. Rigorous pattern descriptions are a key aspect for patterns to be used as rules for model evolution in the MDA context, for example. We formalize the role concepts commonly used in defining design patterns as a role metamodel using Object-Z. Given this role metamodel, individual design patterns are specified generically as a formal pattern role model using Object-Z. We also formalize the properties that must be captured in a class model when a design pattern is deployed. These properties are defined generically in terms of role bindings from a pattern role model to a class model. Our work provides a precise but abstract approach for pattern definition and also provides a precise basis for checking the validity of pattern usage in designs.
Resumo:
Products and services explicitly intended to influence users’ behaviour are increasingly being proposed to reduce environmental impact and for other areas of social benefit. Designing such interventions often involves adopting and adapting principles from other contexts where behaviour change has been studied. The ‘design pattern’ form, used in software engineering and HCI, and originally developed in architecture, offers benefits for this transposition process. This article introduces the Design with Intent toolkit, an idea generation method using a design pattern form to help designers address sustainable behaviour problems. The article also reports on exploratory workshops in which participants used the toolkit to generate concepts for redesigning everyday products—kettles, curtains, printers and bathroom sinks/taps—to reduce the environmental impact of use. The concepts are discussed, along with observations of how the toolkit was used by participants, suggesting usability improvements to incorporate in future versions.
Resumo:
Com o desenvolvimento das tecnologias da Comunicação, o ser humano tem alterado os seus hábitos de consumo televisivo. Neste contexto, destaca-se o uso de aplicações mobile designadas como Second Screen, as quais, entre outras possibilidades, permitem interagir com conteúdos adicionais aos que se encontram a ser transmitidos na televisão. Sendo este fenómeno relativamente recente, pretende-se compreender qual a abordagem a adotar no desenvolvimento de uma prototipagem ágil de aplicações Second Screen centradas no utilizador. De modo a compreender o respetivo processo, iniciou-se o estudo com um enquadramento teórico, que possibilitou a familiarização com as aplicações Second Screen e ferramentas de prototipagem ágil já existentes. Após o enquadramento teórico, procedeu-se à criação de dois mockups de aplicações Second Screen, que foram testados em Focus Groups. A partir dos dados obtidos, desenvolveram-se dois protótipos ágeis, os quais foram submetidos a uma última fase de testes (Experimentação por observação, Entrevista e Questionário de avaliação, respetivamente). Os participantes deste estudo foram os mesmos para ambas as fases de testes, constituindo um grupo de consumidores, um grupo de designers e um grupo de especialistas na área de prototipagem. Os resultados obtidos, a partir dos protótipos concebidos, comprovam a validade do processo realizado neste estudo, podendo este ser usado para desenvolver protótipos de aplicações mobile e Second Screen.
Resumo:
Alternate Reality Game (ARG) represent a new genre of transmedia practice where players hunt for scattered clues, make sense of disparate information, and solve puzzles to advance an ever-evolving storyline. Players participate in ARGs using multiple communications technologies, ranging from print materials to mobile devices. However, many interaction design challenges must be addressed to weave these everyday communication tools together into an immersive, participatory experience. Transmedia design is not an everyday process. Designers must create and connect story bits across multiple media (video, audio, text) and multiple platforms (phones, computers, physical spaces). Furthermore, they must engage with players of varying skill levels. Few studies to-date have explored the design process of ARGs in learning contexts. Fewer still have focused on challenges involved in designing for youth (13-17 years old). In this study, I explore the process of designing ARGs as vehicles for promoting information literacy and participatory culture for adolescents (13-17 years old). Two ARG design scenarios, distinguished by target learning environment (formal and informal context) and target audience (adolescents), comprise the two cases that I examine. Through my analysis of these two design cases, I articulate several unique challenges faced by designers who create interactive, transmedia stories for – and with – youth. Drawing from these design challenges, I derive a repertoire of design strategies that future designers and researchers may use to create and implement ARGs for teens in learning contexts. In particular, I propose a narrative design framework that allows for the categorization of ARGs as storytelling constructs that lie along a continuum of participation and interaction. The framework can serve as an analytic tool for researchers and a guide for designers. In addition, I establish a framework of social roles that designers may employ to craft transmedia narratives before live launch and to promote and scaffold player participation after play begins. Overall, the contributions of my study include theoretical insights that may advance our understanding of narrative design and analysis as well as more practical design implications for designers and practitioners seeking to incorporate transmedia features into learning experiences that target youth.
Resumo:
A interacção dos humanos com os computadores envolve uma combinação das tarefas de programação e de utilização. Nem sempre é explícita a diferença entre as duas tarefas. Introduzir comandos num programa de desenho assistido por computador é utilização ou programação numa linguagem interpretada? Modificar uma folha de cálculo com macros é utilização ou programação? Usar um “Integrated Development Environment” ou IDE para inserir dados num ficheiro é utilização (do IDE) ou programação? A escrita de um texto usando LaTeX ou HTML é utilização ou programação numa “markup language”? Recorrer a um programa de computação simbólica é utilização ou programação? Utilizar um processador de texto é utilização ou programação visual? Ao utilizador não se exige um conhecimento completo de todos os comandos, todos os menus, todos os símbolos do software que utiliza. Nem a memorização da sintaxe e de todos os pormenores de funcionamento de um programa é um atributo necessário ou sequer útil ao utilizador; a concretização desse conhecimento não assegura maior eficiência na utilização. Quando se começa, apenas algumas instruções elementares são recebidas, por vezes de um colega, de um Professor, ou obtidas recorrendo à pesquisa na Internet. Com a familiarização, o utilizador exige mais do Software que usa e de si próprio: um manual passa a ser um recurso de grande utilidade. A confiança conquistada gera, periodicamente, a necessidade de auto-exame e de aumento do âmbito do conhecimento. Desta forma, quem utiliza computadores acaba por ser confrontado com uma tarefa que, efectivamente, pode ser considerada ou requer programação. Põe-se uma questão no imediato (se ninguém decidiu por si) que é a da selecção da linguagem de programação. A abordagem multiparadigma e longa experiência de utilização do C++ tornam-no atractivo para aplicações onde a eficiência se combina com a disponibilidade de estruturas de dados e algoritmos adoptados pela indústria (o que coloquialmente se denomina STL, Standard Template Library, cf. [#breymann, #josuttis], mais geralmente biblioteca Standard). Adicionalmente, linguagens populares como o Java, C# e PHP possuem sintaxes inspiradas e em muitas partes coincidentes com as do C e C++. Por exemplo, um ciclo “for” em Java é parcialmente coincidente com o do C99, que é um sub-conjunto do “for” do C++. São os pormenores, a eficiência e as capacidades do C++ que permitem a criação de software Profissional. Todos os sistemas operativos clássicos (Unix, Microsoft Windows, Linux) dispõem de compiladores, IDE, bibliotecas e são em grande parte construídos recorrendo a C e C++. Relativamente a outras linguagens, a quantidade de ferramentas disponível e o conhecimento adquirido durante décadas é difícil de ignorar. Esse conhecimento faz com que a sintaxe do C++ pareça muito maior do que o estritamente necessário e afaste potenciais interessados. A longa evolução do C++ introduziu também uma diferença no estilo muito marcada. Código dos anos 80 e 90 do século XX é frequentemente menos legível do que o que correntemente se produz. Muitos tutoriais disponíveis online fazem parecer a linguagem menos rigorosa (e mais complexa) do que na realidade é, já que raramente é apresentado o caso geral da sintaxe. Constata-se que muitos autores ainda usam os cabeçalhos do C, quando já não são necessários. Scott Meyers afirma que o C++ é uma federação de linguagens [#scottmeyers] e por esse facto requer perspectivas de abordagem distintas de outras linguagens. Sem alguma sistematização é difícil apreciar a sua compacidade e coerência. Porém, a forma harmoniosa como as componentes sintácticas se encaixam é uma grande mais-valia do C++ só constatada com experimentação e leitura atenta. A presente monografia dirige-se a quem pretenda utilizar o C++ como ferramenta profissional de Software. Em termos de pré-requisitos Académicos, dir-se-á que um curso (1º Ciclo) de Ciência ou de Engenharia aumentará o interesse por certos aspectos mais técnicos da linguagem mas qualquer indivíduo com gosto pela experimentação tirará proveito do conteúdo. Este texto não busca a exaustividade enciclopédica na cobertura do tema. Neste texto forneço, de forma directa, uma introdução ao C++ a qual permite começar a produzir código sem os custos da dispersão de fontes e notações na recolha de informação. Antecipo assim a sua utilização nos Países de Língua Portuguesa, uma vez que os textos que encontrei são ora mais exigentes ora menos completos, frequentemente ambos.
Resumo:
La gestione e il recupero dei rifiuti è un aspetto fondamentale per tentare di ridurre l’impatto negativo delle nostre attività sull’ambiente; è responsabilità di ognuno di noi contribuire all’arresto del processo di degrado a cui è sottoposto il pianeta. È noto che gli agglomerati urbani, con i loro scarichi e scarti, sono una delle cause principali di contaminazione ambientale. La vertiginosa espansione dei tessuti urbani degli ultimi cinquant’anni ha notevolmente aumentato la produzione di rifiuti. Ogni cittadino italiano, secondo i dati ISPRA 2021, produce circa 500 kg di rifiuti in un anno. La rincorsa verso il benessere conquistato attraverso l’accumulo di beni materiali non ha lasciato spazio alla cultura attenta al rispetto delle risorse naturali e ne paghiamo le conseguenze. Il focus di questa ricerca è supportare la gestione dei rifiuti urbani e garantire il loro recupero e riutilizzo immediato. L’obiettivo finale è quello della diminuzione/eliminazione dell’abbandono dei rifiuti della plastica, mettendo in relazione operosa gli attori coinvolti nel processo e sviluppando un servizio che semplifichi e rafforzi i meccanismi di raccolta e di riuso. Collocandosi nel contesto di Zaragoza, in Spagna, vengono introdotte alcune specifiche azioni strategiche al fine di condurre i cittadini ad adottare precise pratiche per la salvaguardia ambientale. L’azione a livello locale diventa prototipo con prospettiva globale. Un’osservazione dal basso ci può mostrare cose che, dalla distanza, non si sarebbero potute vedere. Si parte da identità specifiche, considerando i comportamenti di individui che abitano uno stesso luogo e concentrandosi sulla dimensione collettiva delle loro pratiche cercando di cambiarle attraverso obiettivi chiari e premialità. Analizzando i comportamenti di piccoli gruppi, sono state individuate azioni capaci di indirizzarli verso modelli più appropriati modificando le regole del progetto a partire dall’osservazione di questi comportamenti.
Resumo:
L'obiettivo di questo lavoro di tesi è, quindi, quello di studiare delle soluzioni all'avanguardia ed effettuare la progettazione di un nuovo modulo innovativo di una web app attualmente in uso sul sito #Cesenadavivere di Casa Bufalini. Quest'ultima dovrà essere in grado di introdurre la navigazione di percorsi in modalità gaming, cioè tramite funzioni di riconoscimento automatico di punti di interesse come monumenti, edifici o stanze, a partire da immagini di elementi che li caratterizzano. Il progetto prevede anche di analizzare lo stato dell'arte dello sviluppo della web app e definirne al meglio l'evoluzione. Per renderlo possibile è necessario uno studio approfondito dello stato dell'arte di User Experience e Gamification. Queste due materie vengono sempre più utilizzate nella progettazione di applicazioni e tecnologie di contesti non di gioco, con il fine di aumentare il coinvolgimento degli utenti e migliorando la qualità del prodotto finale. Infatti, queste tecniche sono tutt'altro che utilizzate per il solo scopo di gioco, ma hanno il compito di rendere più fruibili e coinvolgenti le partecipazioni o utilizzi delle persone. L'obiettivo finale è quello di realizzare e proporre la realizzazione di un prototipo dell'interfaccia grafica che successivamente verrà valutata con un coinvolgimento di utenti target. Il risultato atteso sarà ottenere la migliore interfaccia grafica per soddisfare le necessità date dalla scelta delle possibili tecnologie da utilizzare. Queste necessità verranno prima ipotizzate dallo studio dello stato dell'arte delle materie e della piattaforma e poi verranno successivamente convalidate tramite dei test, i quali verranno effettuati cercando di coinvolgere un numero che vada da minimo cinque a dieci persone.
Resumo:
Lo sviluppo dei dispositivi mobili negli ultimi anni ha permesso la creazione di pedometri efficienti. Uno dei problemi principali nella realizzazione dei contapassi `e l’accuratezza e la precisione nei risultati. Il seguente elaborato fornisce un’analisi dettagliata dei vari studi presenti in rete a riguardo. La ricerca ha avuto scopo di riassumere le diverse scelte implementative, confrontandole tra di loro e di risaltare i punti in comune fornendo un’analisi sull’effettiva efficacia di ognuna di esse. Il focus di questo studio si concentrer`a sull’analisi di algoritmi per la rilevazione di passi calcolati non in tempo reale. L’elaborato `e stato diviso in quattro differenti fasi. Durante la prima fase vengono esposti i principali studi e le principali metodologie relative all’argomento appena descritto. Nella seconda fase viene presentata la Tassonomia, cio`e una classificazione ordinata di concetti secondo determinati criteri. Nella terza fase `e stata quindi sviluppata una applicazione Android in cui vengono implementanti gli algoritmi descritti nelle fasi precedenti. Nell’ultima fase viene testata l’applicazione attraverso l’uso di specifici test confrontando tra loro i diversi algoritmi proposti.
Resumo:
The reported productivity gains while using models and model transformations to develop entire systems, after almost a decade of experience applying model-driven approaches for system development, are already undeniable benefits of this approach. However, the slowness of higher-level, rule based model transformation languages hinders the applicability of this approach to industrial scales. Lower-level, and efficient, languages can be used but productivity and easy maintenance seize to exist. The abstraction penalty problem is not new, it also exists for high-level, object oriented languages but everyone is using them now. Why is not everyone using rule based model transformation languages then? In this thesis, we propose a framework, comprised of a language and its respective environment, designed to tackle the most performance critical operation of high-level model transformation languages: the pattern matching. This framework shows that it is possible to mitigate the performance penalty while still using high-level model transformation languages.
Resumo:
En aquest projecte s'ha realitzat el disseny i la implementació d'un sistema PDM genèric mitjançant el qual sigui posible crear i gestionar la informació relacionada amb un producte. Amb aquesta eina web realitzada fent ús del patró d'arquitectura MVC, es pretèn disminuir la pèrdua de temps i de dades a la organització de dades de disseny, millorar la productivitat i augmentar la col·laboració.
Resumo:
El projecte consisteix en l'estudi i avaluació de diferents alternatives existents al mercat per a realitzar l'anàlisi i desenvolupament d'un conjunt de components que constitueixin un marc de treball per a simplificar i agilitzar el desenvolupament de la capa de presentació per a les aplicacions de client prim d'un determinat Framework desenvolupades amb la plataforma J2EE i basats en el patró de disseny Model-Vista-Controlador.
Resumo:
Disseny i implementació parcial d'un Videoclub online en J2EE. Es fa ús dels patrons de disseny i frameworks més adients les diferents capes de l'arquitectura justificant la seva elecció. Així mateix, es desenvolupa una llibreria de tags pròpia, que dóna suport en el desenvolupament de les vistes d'un model de negoci d'aquest tipus.
Resumo:
La finalidad de este proyecto es la construcción de un framework para la capa de presentación para aplicaciones web bajo la plataforma J2EE.
Resumo:
Reusability has become more popular factor in modern software engineering. This is mainly because object-orientation has brought methods that allow reusing more easily. Today more and more application developer thinks how they can reuse already existing applications in their work. If the developer wants to use existing components outside the current project, he can use design patterns, class libraries or frameworks. These provide solution for specific or general problems that has been already encountered. Application frameworks are collection of classes that provides base for the developer. Application frameworks are mostly implementation phase tools, but can also be used in application design. The main purpose of the frameworks is separate domain specific functionalities from the application specific. Usually the frameworks are divided into two categories: black and white box. Difference between those categories is the way the reuse is done. The application frameworks provide properties that can be examined and compared between different frameworks. These properties are: extensibility, reusability, modularity and scalability. These examine how framework will handle different platforms, changes in framework, increasing demand for resources, etc. Generally application frameworks do have these properties in good level. When comparing general purpose framework and more specific purpose framework, the main difference can be located in reusability of frameworks. It is mainly because the framework designed to specific domain can have constraints from external systems and resources. With general purpose framework these are set by the application developed based on the framework.