61 |
Modelo conceitual para instanciação de aplicações de realidade virtual em uma plataforma baseada em serviços. / Conceptual model for the instantiation of virtual reality application in a service-based platform.Evandro César Freiberger 11 July 2014 (has links)
A Realidade Virtual é usada na produção de simulações complexas de ambientes virtuais 3D, envolvendo dispositivos de entrada e saída não triviais, para proporcionar aos usuários sensações de imersão em mundos simulados de tempo real. O projeto e o desenvolvimento de aplicações de realidade virtual caracterizam-se como tarefas complexas, devido à necessidade de integração de técnicas de diferentes áreas da computação e dispositivos não convencionais. Com o objetivo de aumentar o potencial de reutilização e compartilhamento de elementos de aplicações de realidade virtual, este trabalho propõe o RM-VRServices, um modelo conceitual de representação de aplicações de realidade virtual, e o VRServices, um modelo arquitetural para uma plataforma de software que apoia a produção, execução e compartilhamento de elementos de aplicações de realidade virtual em ambiente on-line. O RM-VRServices foi desenvolvido por meio da representação hierárquica de conceitos de mundos virtuais e aplicações de realidade virtual. A plataforma VRServices foi projetada com base no paradigma de computação orientada a serviços, com o objetivo de promover o compartilhamento de conteúdo, a interoperabilidade e a flexibilidade de acesso às funcionalidades da plataforma. O desenvolvimento de protótipos do modelo RM-VRServices e da plataforma VRServices, possibilitou a produção de aplicações de realidade virtual, em um ambiente on-line, acessível por meio de serviços, com interoperabilidade de linguagem de programação e plataforma computacional. / Virtual reality is used in the production of complex simulations of 3D virtual environments, involving nontrivial input and output devices, to provide users with sensations of immersion in the simulated world in real time. The design and development of virtual reality applications are characterized with complex tasks, due to the need to integrate techniques from different areas of computing and non-conventional devices. In order to increase the potential for reuse and sharing of elements of virtual reality applications, this work proposes the RM-VRServices, a conceptual model for representing virtual reality applications, and the VRServices, an architectural model for a software platform to support the production, implementation and element sharing of virtual reality applications in an online environment. The RM-VRServices was developed by using the hierarchical representation of virtual world concepts and virtual reality applications. The VRServices platform was designed based on the paradigm of service-oriented computing, with the goal of promoting content sharing, interoperability and flexibility of access to the features of the platform. The development of prototypes of the RM-VRServices model and the VRServices platform, enabled the production of virtual reality applications in an online environment, accessible through services, with interoperability of programming language and computing platform.
|
62 |
MADAE-PRO: UM PROCESSO BASEADO NO CONHECIMENTO PARA ENGENHARIA DE DOMÍNIO E DE APLICAÇÕES MULTIAGENTE. / MADAE-PRO: A knowledge-based process for Domain Engineering and multiagent applications.COSTA, Adriana Leite 17 February 2009 (has links)
Submitted by Maria Aparecida (cidazen@gmail.com) on 2017-08-21T13:05:14Z
No. of bitstreams: 1
Adriana Leite.pdf: 5184172 bytes, checksum: 6e560c465acfbbc76b4bfc1dd01bd86b (MD5) / Made available in DSpace on 2017-08-21T13:05:14Z (GMT). No. of bitstreams: 1
Adriana Leite.pdf: 5184172 bytes, checksum: 6e560c465acfbbc76b4bfc1dd01bd86b (MD5)
Previous issue date: 2009-02-17 / The interest in the agent-oriented paradigm development has increased in recent
years. This is due mainly to the increasing complexity of current software that
requires new characteristics as autonomy behavior. In the agent-oriented paradigm,
the software has no longer a strictly predictable behavior, has from the control over
their own behavior and can make decisions based on observations the environment
and inferences upon its knowledge base. A set of meth and process have been
already proposed for agent-oriented software engineering. Domain Engineering is a
process for the development of a reusable application family in a particular domain
problem, and Application Engineering, the one for the construction of a specific
application in a family based on the reuse of software artifacts in the application
family previously produced in the Domain Engineering process. MADAE-Pro is an
ontology-driven process for multi-agent domain and application engineering which
promotes the construction and reuse of agent-oriented applications families. The
process is specified in a formal representation language, thus avoiding ambiguous
interpretations. Another differential of MADAE-Pro is the reuse of software support in
all levels of abstraction, from the requirements to the deployment. / O interesse pelo paradigma de desenvolvimento orientado a agentes tem
aumentado nos últimos anos. Isso se deve principalmente ao crescente aumento da
complexidade dos produtos de software atuais que requerem novas características
como comportamento autônomo. No paradigma orientado a agentes, o software
deixa de ter comportamento estritamente previsível e passa a ter controle sobre seu
próprio comportamento, podendo tomar decisões a partir de observações do
ambiente e de inferências realizada em sua base de conhecimento. Para guiar o
desenvolvimento orientado a agentes tem sido proposto um conjunto de
metodologias e processos pela comunidade da Engenharia de Software. Nesse
trabalho, apresenta-se MADAE-Pro, um processo para o desenvolvimento de
sistemas multiagente com alguns diferenciais em relação aos já propostos pela
comunidade. A Engenharia de Domínio é um processo para criação de abstrações
de software reusáveis no desenvolvimento de uma família de aplicações em um
domínio particular de problema. A Engenharia de Aplicações é um processo para
construção de aplicações baseadas no reúso de artefatos de software previamente
produzidos no processo da Engenharia de Domínio. O MADAE-Pro é um processo
dirigido por ontologias para a Engenharia de Domínio e de Aplicações Multiagente, o
qual promove a construção e o reúso de famílias de aplicações. O processo é
especificado em uma linguagem de representação de processos formal, evitando
assim interpretações ambíguas. Outro diferencial do MADAE-Pro é o suporte ao
reúso de software em todos os níveis de abstração, desde os requisitos até a
implementação.
|
63 |
Modelo conceitual para instanciação de aplicações de realidade virtual em uma plataforma baseada em serviços. / Conceptual model for the instantiation of virtual reality application in a service-based platform.Freiberger, Evandro César 11 July 2014 (has links)
A Realidade Virtual é usada na produção de simulações complexas de ambientes virtuais 3D, envolvendo dispositivos de entrada e saída não triviais, para proporcionar aos usuários sensações de imersão em mundos simulados de tempo real. O projeto e o desenvolvimento de aplicações de realidade virtual caracterizam-se como tarefas complexas, devido à necessidade de integração de técnicas de diferentes áreas da computação e dispositivos não convencionais. Com o objetivo de aumentar o potencial de reutilização e compartilhamento de elementos de aplicações de realidade virtual, este trabalho propõe o RM-VRServices, um modelo conceitual de representação de aplicações de realidade virtual, e o VRServices, um modelo arquitetural para uma plataforma de software que apoia a produção, execução e compartilhamento de elementos de aplicações de realidade virtual em ambiente on-line. O RM-VRServices foi desenvolvido por meio da representação hierárquica de conceitos de mundos virtuais e aplicações de realidade virtual. A plataforma VRServices foi projetada com base no paradigma de computação orientada a serviços, com o objetivo de promover o compartilhamento de conteúdo, a interoperabilidade e a flexibilidade de acesso às funcionalidades da plataforma. O desenvolvimento de protótipos do modelo RM-VRServices e da plataforma VRServices, possibilitou a produção de aplicações de realidade virtual, em um ambiente on-line, acessível por meio de serviços, com interoperabilidade de linguagem de programação e plataforma computacional. / Virtual reality is used in the production of complex simulations of 3D virtual environments, involving nontrivial input and output devices, to provide users with sensations of immersion in the simulated world in real time. The design and development of virtual reality applications are characterized with complex tasks, due to the need to integrate techniques from different areas of computing and non-conventional devices. In order to increase the potential for reuse and sharing of elements of virtual reality applications, this work proposes the RM-VRServices, a conceptual model for representing virtual reality applications, and the VRServices, an architectural model for a software platform to support the production, implementation and element sharing of virtual reality applications in an online environment. The RM-VRServices was developed by using the hierarchical representation of virtual world concepts and virtual reality applications. The VRServices platform was designed based on the paradigm of service-oriented computing, with the goal of promoting content sharing, interoperability and flexibility of access to the features of the platform. The development of prototypes of the RM-VRServices model and the VRServices platform, enabled the production of virtual reality applications in an online environment, accessible through services, with interoperability of programming language and computing platform.
|
64 |
Investigation Of The Effects Of Reuse On Software Quality In An Industrial SettingDeniz, Berkhan 01 January 2013 (has links) (PDF)
Software reuse is a powerful tool in order to reduce development and maintenance time and cost. Any software life cycle product can be reused, not only fragments of source code. A high degree of reuse correlates with a low defect density. In the literature, many theoretical and empirical researches have examined the relationship of software reuse and quality. In this thesis, the effects of reuse on software quality are investigated in an industrial setting. Throughout this study, we worked with Turkey&rsquo / s leading defense industry company: Aselsan&rsquo / s software engineering department. We aimed to explore their real-life software projects and interpret reuse and quality relations for their projects. With this intention, we defined four different hypotheses to determine reuse and quality relations / and in order to confirm these hypotheses / we designed three separate case studies. In these case studies, we collected and calculated reuse and quality metrics i.e. Object-oriented quality metrics, reuse rates and performance measures of individual modules, fault-proneness of software components, and productivity rates of different products. Finally, by analyzing these measurements, we developed suggestions to further benefit from reuse in Aselsan through systematic improvements to the reuse infrastructure and process. Similar case studies have been reported in the literature, however, in Turkey, there are not many case studies using real-life project data, particularly in the defense industry.
|
65 |
Variability Modeling In Software Product LinesKasikci, Baris Can Cengiz 01 September 2009 (has links) (PDF)
Software product lines provide enhanced means for systematic reuse when constructing systems within a particular domain. In order to achieve this, systems in a product line are expected to have a significant amount of commonality. Variability is what distinguishes these systems from one another and is spread across various product line artifacts. This thesis focuses on modeling and managing product line variability. The concept of concerns is proposed as a means of variability modeling. Another proposal is related to the use of context free grammars to represent product line variability and to guarantee that any application derived according to the variability framework thus defined will be a valid one. This approach is evaluated for an example domain, in the light of novel evaluation criteria that are also introduced in the scope of this thesis.
|
66 |
Compreensão visual de frameworks através da introspeção de exemplos / Visual understanding of frameworks through instrospection of examplesCampo, Marcelo Ricardo January 1997 (has links)
Os frameworks orientado a objetos oferecem um grande potencial para aumentar a produtividade e a qualidade no desenvolvimento de software. Um framework e uma infra-estrutura ou esqueleto de uma família de aplicações pertencentes a um domínio determinado. Basicamente, aplicações especificas são construídas especializando as classes do framework para fornecer a implementação de alguns métodos, enquanto a maior parte da funcionalidade da aplicação e herdada. Esta característica permite a reutilização tanto do código quanto o projeto das aplicações do domínio, o qual representa um beneficio muito significativo a respeito de outras tecnologias de reutilização. Entretanto, começar a utilizar um framework para construir aplicações especificas e complicado para um usuário que não seja o projetista do framework. Compreender um framework é frequentemente muito mais difícil que compreender bibliotecas de componentes que podem ser reutilizados independentemente. Neste caso, e suficiente compreender sua interface externa. No caso dos frameworks, para aproveitar ao Máximo as possibilidades de reutilização que oferece, e necessário compreender o projeto interno de suas classes, como essas classes colaboram entre si, bem como a forma na qual instancias dessas classes colaboram em tempo de execução. Compreender estes aspectos uma tarefa reconhecidamente complexa e demorada, sendo este e um dos fatores mais limitantes da tecnologia para ser de utilidade efetiva na produção de software. Neste trabalho, apresenta-se uma abordagem reflexiva para a construção de ferramentas de apoio a compreensão de frameworks. Esta abordagem e suportada por Luthier, um framework projetado, e implementado em Smalltalk-80, para a construção de ferramentas de analise dinâmica e visualização de programas orientados a objetos. Luthier introduz três contribuições importantes: Utilização de técnicas de reflexão computacional baseadas no conceito de gerenciadores de meta-objetos, o qual suporta a implementação de metaarquiteturas de meta-objetos especializadas para a análise de aplicações. Controle interativo do grau de detalhe das visualizações (zoom semântico) através do suporte explícito de escalas de abstração. As escalas de abstração são controladas por objetos denominados abstratores. Um abstrator permite encapsular em objetos específicos algoritmos de derivação de abstracões, filtragem e seleção de informação, bem como o controle do nível de detalhe mostrado pelas visualizações. Esta separação de funcionalidade permite implementar complexas funcionalidades de análise de programas, sem a necessidade de modificar as classes que implementam visualizações ou a representação da informação. Suporte de uma estratégia de análise orientada pela visualização da arquitetura. Esta abordagem divide o processo de compreensão em duas fases iterativa: 1) compreensão dos principais aspectos estruturais do framework a partir de da recuperação e visualização da arquitetura,; 2) análise detalhada do comportamento de instâncias envolvidas em pontos específicos da arquitetura, os quais são selecionados pelo usuário a partir da visualização arquitetônica. Luthier fornece suporte flexível para construção de ferramentas de visualização dinamicamente adaptáveis para diferentes funcionalidades de análise, através de quatro subframeworks: LuthierMOPs. o qual fornece o suporte adaptável de meta-objetos para captura de informação das aplicações analisadas; LuthierBooks que fornece suporte genérico de gerenciamento de hiperdocumentos para a representação da informação capturada e gerenciamento de livros persistentes de projeto; LuthierAbstractors, que prove suporte genérico para a derivação de abstrações da informação coletada e escalas de abstração dinamicamente variáveis; e LuthierViews, extensão do framework MVC para a construção de visualizações da informação coletada, com capacidades de manipulação direta e zooming utilizando visualizações alternativas, as quais podem ser dinamicamente selecionadas pelo usuário. Com o suporte fornecido por Luthier, uma ferramenta, especialmente projetada para apoiar a compreensão de frameworks a partir da analise de exemplos, foi desenvolvida. Esta ferramenta fornece um conjunto de visualizações estruturais, com capacidade de animação de fluxo de controle do framework, bem como visualizações alternativas de subsistemas e padrões de projeto. Estas abstrações são reconhecidas através da análise da informação coletada dos exemplos analisados. Através das visualizações providas, o usuário pode explorar um dado framework através de mecanismos de navegação entre diferentes representações visuais, bem como filtragem e consulta acerca de informação relevante a ser visualizada. Este mecanismos são integrados com mecanismos de zoom semântico que habilitam a visualização da informação em diferentes níveis de abstração. Através da representação de hiperdocumento, a ferramenta suporta a construção manual, bem como a geração automática em alguns casos, de livros persistentes de documentação, com capacidade de edição, de importação de diagramas produzidos pelas visualizações, e de navegação sobre diferentes livros e o código fonte do framework. Esta características habilita a geração de documentação durante o processo de compreensão, facilidade não disponível, habitualmente, nas ferramentas de compreensão desenvolvidas até hoje. A capacidade de Luthier para a construção de ferramentas foi testada com a construção de outras ferramentas, como por exemplo, depuradores visuais e de coleta de métricas. A viabilidade e eficácia da abordagem foi testada através de experimentos, os quais mostraram que grupos utilizando a ferramenta de apoio produziram aplicações com maior nível de reutilização do framework que grupos de usuários não utilizando a ferramenta. / Object-oriented frameworks are a powerful reuse technique for building applications in a given domain. A framework works as a template or skeleton for building applications, being composed of a set of classes abstracting the general characteristics of an application domain. Building a specific application requires the specialization of some classes that provide the implementation of methods that will complete the necessary behaviour, while the global control structure is given by the framework. Frameworks offer a great potential to increase the productivity and quality in software development. However, starting to use a framework to build a specific application is complicated for any user other than a framework designer. Understanding a framework is frequently much harder than understanding libraries of components that can be reused independently. To adequately reuse isolated classes of a class library, it is sufficient to understand their external interface. In case of a framework, in contrast, to take full advantage of the services provided, it is necessary to understand the way its classes collaborate, as well as the internal design of some of them. These classes code the complex behaviour of a network of instances dynamically created. Therefore, it is often needed not only to understand how the classes are organized in static inheritance hierarchies, but also how instances collaborate at runtime. This work presents a reflective approach for the construction of tools for framework comprehension. This approach is supported by Luthier, a framework designed, and implemented in Smalltalk-80, which provides a flexible support for building tools for the dynamic analysis and visualization of object-oriented programs. Luthier introduces three important contributions: The use of computational reflection techniques, based on the concept of meta-object managers, which support the implementation of specialized meta-object-based metaarchitectures for the dynamic analysis of applications Support for building visualizations with different levels of abstraction under interactive control of the user (semantic zoom) through the explicit support of abstraction scales. Abstraction scales are controlled by objects called abstractors, which allow the encapsulation, in specific objects, of algorithms for abstraction derivation, filtering and information selection, as well as the interactive control of the detail level to be shown by visualizations. This separation of concerns enables the implementation of complex program analysis functionalities without the need of modifying classes implementing visualizations or information representation. Support for an architecture-driven analysis strategy. This approach divides the understanding process in two iterative phases: I) comprehension of the global structural and behavioural aspects of the framework from the recovery and visualization of its architecture.; 2) detailed analysis of specific instances involved in particular points of the architecture, selected by the user form the architectural view. Luthier provides a flexible support for the construction of visualization tools dynamically adaptable to different analysis functionalities through four sub-frameworks: LuthierMOPs, which provides an adaptable support of meta-objects for information gathering from the analyzed applications; LuthierBooks, which provides generic support for hyperdocument management to represent captured information and management of persistent design books: LuthierAbstractors, which provides generic support for the derivation of abstractions and dynamically variable abstraction-scales: and LuthierViews. extension of the MVC framework for the construction visualizations of the captured information, with capabilities of direct manipulation and zooming using alternative visualizations, dynamically selected by the user. With the support provided by Luthier a tool, specially designed to support framework comprehension from analysis of examples, was developed. This tool provides a set of structural visualizations with control-flow animation capabilities, as well as alternative visualizations of subsystems and design patterns, recognized through the analysis of information gathered from examples. Through these visualizations the user can explore a given framework by using mechanisms for navigating among different visual representations, as well as information filtering and queries about relevant information to be visualized. These functionalities are fully integrated with semantic zoom mechanisms that enable information visualization at different levels of abstraction. With the hyperdocument support, the tool allows for manual construction, as well as automatic generation in some cases, of persistent documentation books. These books offers editing capabilities, importation of diagrams from visualizations, as well as navigation through different books and through the source code of the analyzed framework.. These characteristics allows the support of additional documentation generation during the comprehension process, facility which is not normally available in current understanding tools. The capabilities for tool construction supported by Luthier were tested through the development of different tools, such as, visual debuggers and metrics collectors. The viability of the approach was tested through experiments. These experiments suggest that users using the understanding tool produce applications with a greater re-use level than groups of users not using it.
|
67 |
A Method To Support The Adoption of Reuse Technology in Large Software OrganizationsAmorim, Luiz Augusto Matos de 06 May 2016 (has links)
Submitted by Kleber Silva (kleberbs@ufba.br) on 2017-06-06T18:45:59Z
No. of bitstreams: 1
Tese LUIZ AMORIM versãoFinal3 Copy.pdf: 32419362 bytes, checksum: 6dea59d389ff891c3dd4a94e44e9d361 (MD5) / Approved for entry into archive by Vanessa Reis (vanessa.jamile@ufba.br) on 2017-06-16T15:32:04Z (GMT) No. of bitstreams: 1
Tese LUIZ AMORIM versãoFinal3 Copy.pdf: 32419362 bytes, checksum: 6dea59d389ff891c3dd4a94e44e9d361 (MD5) / Made available in DSpace on 2017-06-16T15:32:04Z (GMT). No. of bitstreams: 1
Tese LUIZ AMORIM versãoFinal3 Copy.pdf: 32419362 bytes, checksum: 6dea59d389ff891c3dd4a94e44e9d361 (MD5) / The process of adopting a software technology in a large organization is significantly influenced by organizational culture and behavioral aspects of the practitioners involved in the process. The identification of factors that will facilitate or hinder this process is strongly correlated with the existing system of beliefs and represents a key element to the planning of this process. The adoption of software reuse technology in particular significantly alters the software process of the organization as well as the modus operandi of the involved practitioners. Our aim is to propose an action model based on classes of beliefs that will support the process of adoption of software reuse technology, providing a means to deal with beliefs that may hinder the adoption process. A case study was conducted in a large organization to validate and refine the proposed method. As a result of this work, we propose a method based on the identification of classes of beliefs and re-signification of those that hinders the adoption of software reuse technologies. Also is provided a catalog of beliefs weighted when the impact in the technology adoption process, validated by a group of experts in the reuse area. / O processo de adoção de uma tecnologia de software em uma organização de
grande porte é significativamente influenciado pela cultura organizacional e aspectos
comportamentais dos profissionais envolvidos no processo. A identificação de fatores que
facilitam ou dificultam este processo está fortemente correlacionada com o sistema de
crenças atual e representa um elemento-chave para o planejamento desse processo. A
adoção da tecnologia de reutilização de software em particular altera significativamente o
processo de software da organização, bem como o modus operandi dos profissionais
envolvidos. Esta tese propõe um modelo de ação baseado em classes de crenças para
apoiar o processo de adoção da tecnologia de reutilização de software, fornecendo um
meio para tratar as crenças que podem dificultar o processo de adoção. Um estudo de caso
foi realizado em uma organização de grande porte para validar e aperfeiçoar a abordagem
proposta. Como resultado deste trabalho, é proposto um método baseado na identificação
de classes de crenças e re-significação daquelas que dificultam a adoção de tecnologias de
reutilização de software. Também é apresentado um catalogo de crenças referentes à
tecnologia de reuso de software, devidamente ponderadas quando ao impacto no processo
de adoção da tecnologia, validado por um conjunto de especialistas da área de reuso de
software.
|
68 |
A reuse-based approach to promote the adoption of info vis tecniques for network and service management tasks / Uma abordagem baseda em reuso para promover a adoção de técnicas de visualização de informações no contexto de gerenciamento de redes de serviçosGuimarães, Vinícius Tavares January 2016 (has links)
Ao longo dos anos, diferentes ferramentas vem sendo utilizadas pelos administradores de rede para realizar as tarefas de gerenciamento (por exemplo, protocolos de gerência e soluções de monitoramento de rede). Dentre tais ferramentas, a presente tese foca em Visualização de Informações (ou simplesmente InfoVis). Essencialmente, entende-se que o objetivo final dessas ferramentas de gestão é diminuir a complexidade e, consequentemente, otimizar o trabalho diário dos administradores. Assim, eles podem melhorar sua produtividade, o que incide diretamente na redução de custos. Com base nesse pressuposto, esta tese tem como objetivo investigar como promover a adoção de técnicas InfoVis pelos administradores de rede, com foco em melhorar produtividade e diminuir custos. A percepção chave é que, na maioria dos casos, os administradores de rede não são habilitados no domínio InfoVis. Desse modo, a escolha por adotar técnica InfoVis requer a imersão em campo desconhecido, podendo gerar, assim, um risco elevado nos indicadores de produtividade e custos. Em essência, essa tese argumenta que o emprego de técnicas InfoVis pelos administradores pode ser muito trabalhosa, despendendo um montante muito significativo de tempo, o que leva a diminuir produtividade e, consequentemente, eleva os custos de gerenciamento. Focando essa questão, é apresentada uma proposta para promover adoção de técnicas InfoVis, pelo encorajamento do reuso. Argumenta-se que os conceitos e princípios de reuso propostos e padronizados pelo campo da engenharia de software podem ser adaptados e empregados, uma vez que a construção de visualizações (ou seja, o projeto e desenvolvimento) é, primariamente, uma tarefa de desenvolvimento de software. Assim, a avaliação da proposta apresentada nesta tese utiliza o método Common Software Measurement International Consortium (COSMIC) Functional Size Measurement (FSM), o qual permite estimar o dimensionamento de software através de pontos por função. A partir deste método, torna-se então possível a estimativa de esforço e, consequentemente, produtividade e custos. Os resultados mostram a viabilidade e eficácia da abordagem proposta (em termos de produtividade e custos), bem como os benefícios indiretos que o reuso sistemático pode fornecer quando da adoção de visualizações para auxílio nas tarefas de gerenciamento de redes. / Throughout the years, several tools have being used by network administrators to accomplish the management tasks (e.g., management protocols and network monitoring solutions). Among such tools, this thesis focuses on Information Visualization one (a.k.a InfoVis). Mainly, it is understood that the ultimate goal of these management tools is to decrease the complexity and, consequently, optimize the everyday work of administrators. Thus, they can increase their productivity, which leads to the cost reduction. Based on this assumption, this thesis aims at investigating how to promote the adoption of InfoVis techniques by network administrators, focusing on enhancing productivity and lowering costs. The key insight is that, in most cases, network administrators are unskilled on InfoVis. Therefore, the choice to adopt visualizations can require an immersion into the unknown that can be too risky regarding productivity and cost. In essence, this thesis argues that the employment of InfoVis techniques by administrators can be very laborious by spending a significant amount of effort that decreases their productivity and, consequently, increases the management costs. To overcome this issue, an approach to promote the adoption of InfoVis techniques by encouraging their reuse is introduced. It is argued that the concepts and principles of software reuse proposed and standardized in the software engineering field can be adapted and employed once the building up of visualizations (i.e., the design and development) can be defined primarily as a software development task. So, the evaluation of the proposal introduced in this thesis employs the Common Software Measurement International Consortium (COSMIC) Functional Size Measurement (FSM) method that measures software sizing through Function Points (FP). From this method, it was possible estimating effort and, consequently, productivity and costs. Results show the feasibility and effectiveness of the proposed approach (in terms of productivity and cost) as well as some indirect benefits that the systematic reuse can provide in the adoption of InfoVis techniques to assist in the management tasks.
|
69 |
Compreensão visual de frameworks através da introspeção de exemplos / Visual understanding of frameworks through instrospection of examplesCampo, Marcelo Ricardo January 1997 (has links)
Os frameworks orientado a objetos oferecem um grande potencial para aumentar a produtividade e a qualidade no desenvolvimento de software. Um framework e uma infra-estrutura ou esqueleto de uma família de aplicações pertencentes a um domínio determinado. Basicamente, aplicações especificas são construídas especializando as classes do framework para fornecer a implementação de alguns métodos, enquanto a maior parte da funcionalidade da aplicação e herdada. Esta característica permite a reutilização tanto do código quanto o projeto das aplicações do domínio, o qual representa um beneficio muito significativo a respeito de outras tecnologias de reutilização. Entretanto, começar a utilizar um framework para construir aplicações especificas e complicado para um usuário que não seja o projetista do framework. Compreender um framework é frequentemente muito mais difícil que compreender bibliotecas de componentes que podem ser reutilizados independentemente. Neste caso, e suficiente compreender sua interface externa. No caso dos frameworks, para aproveitar ao Máximo as possibilidades de reutilização que oferece, e necessário compreender o projeto interno de suas classes, como essas classes colaboram entre si, bem como a forma na qual instancias dessas classes colaboram em tempo de execução. Compreender estes aspectos uma tarefa reconhecidamente complexa e demorada, sendo este e um dos fatores mais limitantes da tecnologia para ser de utilidade efetiva na produção de software. Neste trabalho, apresenta-se uma abordagem reflexiva para a construção de ferramentas de apoio a compreensão de frameworks. Esta abordagem e suportada por Luthier, um framework projetado, e implementado em Smalltalk-80, para a construção de ferramentas de analise dinâmica e visualização de programas orientados a objetos. Luthier introduz três contribuições importantes: Utilização de técnicas de reflexão computacional baseadas no conceito de gerenciadores de meta-objetos, o qual suporta a implementação de metaarquiteturas de meta-objetos especializadas para a análise de aplicações. Controle interativo do grau de detalhe das visualizações (zoom semântico) através do suporte explícito de escalas de abstração. As escalas de abstração são controladas por objetos denominados abstratores. Um abstrator permite encapsular em objetos específicos algoritmos de derivação de abstracões, filtragem e seleção de informação, bem como o controle do nível de detalhe mostrado pelas visualizações. Esta separação de funcionalidade permite implementar complexas funcionalidades de análise de programas, sem a necessidade de modificar as classes que implementam visualizações ou a representação da informação. Suporte de uma estratégia de análise orientada pela visualização da arquitetura. Esta abordagem divide o processo de compreensão em duas fases iterativa: 1) compreensão dos principais aspectos estruturais do framework a partir de da recuperação e visualização da arquitetura,; 2) análise detalhada do comportamento de instâncias envolvidas em pontos específicos da arquitetura, os quais são selecionados pelo usuário a partir da visualização arquitetônica. Luthier fornece suporte flexível para construção de ferramentas de visualização dinamicamente adaptáveis para diferentes funcionalidades de análise, através de quatro subframeworks: LuthierMOPs. o qual fornece o suporte adaptável de meta-objetos para captura de informação das aplicações analisadas; LuthierBooks que fornece suporte genérico de gerenciamento de hiperdocumentos para a representação da informação capturada e gerenciamento de livros persistentes de projeto; LuthierAbstractors, que prove suporte genérico para a derivação de abstrações da informação coletada e escalas de abstração dinamicamente variáveis; e LuthierViews, extensão do framework MVC para a construção de visualizações da informação coletada, com capacidades de manipulação direta e zooming utilizando visualizações alternativas, as quais podem ser dinamicamente selecionadas pelo usuário. Com o suporte fornecido por Luthier, uma ferramenta, especialmente projetada para apoiar a compreensão de frameworks a partir da analise de exemplos, foi desenvolvida. Esta ferramenta fornece um conjunto de visualizações estruturais, com capacidade de animação de fluxo de controle do framework, bem como visualizações alternativas de subsistemas e padrões de projeto. Estas abstrações são reconhecidas através da análise da informação coletada dos exemplos analisados. Através das visualizações providas, o usuário pode explorar um dado framework através de mecanismos de navegação entre diferentes representações visuais, bem como filtragem e consulta acerca de informação relevante a ser visualizada. Este mecanismos são integrados com mecanismos de zoom semântico que habilitam a visualização da informação em diferentes níveis de abstração. Através da representação de hiperdocumento, a ferramenta suporta a construção manual, bem como a geração automática em alguns casos, de livros persistentes de documentação, com capacidade de edição, de importação de diagramas produzidos pelas visualizações, e de navegação sobre diferentes livros e o código fonte do framework. Esta características habilita a geração de documentação durante o processo de compreensão, facilidade não disponível, habitualmente, nas ferramentas de compreensão desenvolvidas até hoje. A capacidade de Luthier para a construção de ferramentas foi testada com a construção de outras ferramentas, como por exemplo, depuradores visuais e de coleta de métricas. A viabilidade e eficácia da abordagem foi testada através de experimentos, os quais mostraram que grupos utilizando a ferramenta de apoio produziram aplicações com maior nível de reutilização do framework que grupos de usuários não utilizando a ferramenta. / Object-oriented frameworks are a powerful reuse technique for building applications in a given domain. A framework works as a template or skeleton for building applications, being composed of a set of classes abstracting the general characteristics of an application domain. Building a specific application requires the specialization of some classes that provide the implementation of methods that will complete the necessary behaviour, while the global control structure is given by the framework. Frameworks offer a great potential to increase the productivity and quality in software development. However, starting to use a framework to build a specific application is complicated for any user other than a framework designer. Understanding a framework is frequently much harder than understanding libraries of components that can be reused independently. To adequately reuse isolated classes of a class library, it is sufficient to understand their external interface. In case of a framework, in contrast, to take full advantage of the services provided, it is necessary to understand the way its classes collaborate, as well as the internal design of some of them. These classes code the complex behaviour of a network of instances dynamically created. Therefore, it is often needed not only to understand how the classes are organized in static inheritance hierarchies, but also how instances collaborate at runtime. This work presents a reflective approach for the construction of tools for framework comprehension. This approach is supported by Luthier, a framework designed, and implemented in Smalltalk-80, which provides a flexible support for building tools for the dynamic analysis and visualization of object-oriented programs. Luthier introduces three important contributions: The use of computational reflection techniques, based on the concept of meta-object managers, which support the implementation of specialized meta-object-based metaarchitectures for the dynamic analysis of applications Support for building visualizations with different levels of abstraction under interactive control of the user (semantic zoom) through the explicit support of abstraction scales. Abstraction scales are controlled by objects called abstractors, which allow the encapsulation, in specific objects, of algorithms for abstraction derivation, filtering and information selection, as well as the interactive control of the detail level to be shown by visualizations. This separation of concerns enables the implementation of complex program analysis functionalities without the need of modifying classes implementing visualizations or information representation. Support for an architecture-driven analysis strategy. This approach divides the understanding process in two iterative phases: I) comprehension of the global structural and behavioural aspects of the framework from the recovery and visualization of its architecture.; 2) detailed analysis of specific instances involved in particular points of the architecture, selected by the user form the architectural view. Luthier provides a flexible support for the construction of visualization tools dynamically adaptable to different analysis functionalities through four sub-frameworks: LuthierMOPs, which provides an adaptable support of meta-objects for information gathering from the analyzed applications; LuthierBooks, which provides generic support for hyperdocument management to represent captured information and management of persistent design books: LuthierAbstractors, which provides generic support for the derivation of abstractions and dynamically variable abstraction-scales: and LuthierViews. extension of the MVC framework for the construction visualizations of the captured information, with capabilities of direct manipulation and zooming using alternative visualizations, dynamically selected by the user. With the support provided by Luthier a tool, specially designed to support framework comprehension from analysis of examples, was developed. This tool provides a set of structural visualizations with control-flow animation capabilities, as well as alternative visualizations of subsystems and design patterns, recognized through the analysis of information gathered from examples. Through these visualizations the user can explore a given framework by using mechanisms for navigating among different visual representations, as well as information filtering and queries about relevant information to be visualized. These functionalities are fully integrated with semantic zoom mechanisms that enable information visualization at different levels of abstraction. With the hyperdocument support, the tool allows for manual construction, as well as automatic generation in some cases, of persistent documentation books. These books offers editing capabilities, importation of diagrams from visualizations, as well as navigation through different books and through the source code of the analyzed framework.. These characteristics allows the support of additional documentation generation during the comprehension process, facility which is not normally available in current understanding tools. The capabilities for tool construction supported by Luthier were tested through the development of different tools, such as, visual debuggers and metrics collectors. The viability of the approach was tested through experiments. These experiments suggest that users using the understanding tool produce applications with a greater re-use level than groups of users not using it.
|
70 |
Uma abordagem para modularização de frameworks de múltiplos domínios em linha de produtos de frameworksPinto, Victor Hugo Santiago Costa 31 October 2013 (has links)
Made available in DSpace on 2016-06-02T19:06:10Z (GMT). No. of bitstreams: 1
5674.pdf: 10691357 bytes, checksum: 01bd64a7f9ae5a29efe62ec0159122e0 (MD5)
Previous issue date: 2013-10-31 / Financiadora de Estudos e Projetos / Frameworks are tools for software reuse that contribute for reducing costs and increased productivity in application development. Nowadays they are widely used and they tend to provide a satisfactory set of variabilities of a given domain. In general, a common trend in the evolution of these frameworks is the addition of new variabilities in attempting to address demands of a growing set of users. However, when such evolutions are not well designed and managed, the original architecture of the framework ends deviating from what had been previously planned, resulting in a complex and inflexible architecture. In addition, the new variabilities may belong to domains that were not originally planned for the framework, and become what we call Multiple Domains Frameworks (MDF). A problem of this kind of framework is that some variabilities may be useless for certain applications supported by the framework. Thus, MDF have problems for the Application Engineers (AE) and for Framework Engineers (FE). In the first case, the learning curve and the productivity are compromised, because AE will need to live together with a vast set of variabilities that may be unnecessary. For FE, the inflexibility of architecture complicates maintenance and composition/decomposition of smaller and more restrict versions of the framework. In this context, as an alternative to the aforementioned problems, we present an approach for modularization of MDFs into Framework Product Lines (FPL). An FPL is a product line in which the generated members are frameworks instead of applications. The main idea is that flexibility of this new architecture allows the generation of smaller and directed frameworks to the requirements of a domain/subdomain, avoiding the presence of features/variabilities that will never be used. One of the key points of this approach is to determine the Usage Scenario that the FPL must satisfy. Thus, an MDF can be decomposed in features with appropriate levels of granularity, a factor that directly impacts in the quality of an FPL. For the design of this approach, we conducted a case study in which the application framework GRENJ was modularized into an FPL. Two kinds of evaluation were performed. The first was an experiment to compare the effort to modularize a FMD in FPL using Aspect-Oriented Programming and Model-Driven Development. The second was a comparative study among applications developed with support of original framework and applications developed from the resulting FPL. The results show advantages in the reduction of efforts and increased productivity. / Frameworks são ferramentas de reuso que contribuem para a reducão de custos e aumento da produtividade no desenvolvimento de aplicações. Eles são amplamente empregados atualmente e tendem a fornecer um conjunto satisfatório de variabilidades de um determinado domínio. Em geral, uma característica comum no processo de evolução de frameworks e a adição de novas variabilidades na tentativa de atender demandas de um conjunto cada vez maior de usuários. Entretanto, quando tais evoluções não são bem planejadas e gerenciadas, a arquitetura original do framework acaba se desviando da que havia sido previamente planejada, resultando em uma arquitetura complexa e inflexível. Além disso, as novas variabilidades adicionadas podem pertencer a domínios que não foram originalmente planejadas para o framework; levando ao que chamamos de Frameworks de Multiplos Dominios (FMDs). Um problema desse tipo de framework e que determinadas variabilidades podem ser inúteis para certas aplicações apoiadas pelo framework. Dessa forma, FMDs apresentam problemas tanto para os engenheiros de aplicação (EA) quanto para os engenheiros do framework (EF). No primeiro caso, a curva de aprendizado e a produtividade são comprometidas, pois o EA precisara conviver com um conjunto grande de variabilidades que podem ser desnecessarias. Para os EFs, a inflexibilidade arquitetural acaba dificultando manutenções e a composição/decomposições de versões menores e mais restritas do framework. Nesse contexto, como uma alternativa para os problemas supracitados, apresenta-se neste trabalho uma abordagem para reestruturar FMDs em Linhas de Produtos de Frameworks (LPFs). Uma LPF e uma linha de produtos em que os membros gerados são frameworks ao invés de aplicações prontas. A ideia principal e que a flexibilidade dessa nova arquitetura permita a geração de frameworks menores e mais direcionados aos requisitos de um dominio/subdominio, evitando a presença de features/variabilidades que nunca serão usadas. Um dos pontos chave da abordagem proposta consiste em determinar o cenário de utilização que a LPF deve satisfazer. Assim, pode-se decompor um FMD em features com niveis adequados de granularidade, fator que impacta diretamente na qualidade da LPF. Para a concepção da abordagem conduziu-se um estudo de caso no qual o framework de aplicação GRENJ foi transformado em uma LPF. Foram realizados dois tipos de avaliação. O primeiro foi um experimento para comparar o esforço de remodularizar um FMD em LPF usando programação orientada a aspectos e desenvolvimento dirigido a modelos. O segundo foi um estudo que comparou aplicações desenvolvidas com o apoio do framework original com aplicações desenvolvidas a partir da LPF resultante. Os resultados apontaram vantagens com relação a redução dos esforços e aumento da produtividade.
|
Page generated in 0.0669 seconds