• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 27
  • 3
  • Tagged with
  • 30
  • 30
  • 18
  • 15
  • 9
  • 9
  • 6
  • 6
  • 6
  • 6
  • 6
  • 3
  • 3
  • 3
  • 3
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
11

Soluções reutilizáveis para a implementação de mecanismos de controle de atomicidade em programas tolerantes a falhas

Fernandes, Acauan Pereira January 2001 (has links)
Tolerância a falhas é um dos aspectos mais importantes a serem considerados no desenvolvimento de aplicações, especialmente com a participação cada vez maior de sistemas computacionais em áreas vitais da atividade humana. Dentro deste cenário, um dos fatores a serem considerados na persecução deste objetivo é o gerenciamento de atomicidade. Esta propriedade, por sua vez, apresenta duas vertentes principais: o controle de concorrência e a recuperação de estados. Considerando-se a tolerância a falhas e, particularmente, a atomicidade como requisitos com alto grau de recorrência em aplicações, verifica-se a importância de sua reutilização de forma simples e transparente e do estudo de meios de prover tal capacidade. O presente trabalho procurou pesquisar e aplicar meios de produzir soluções reutilizáveis para implementação de programas tolerantes a falhas, mais especificamente de técnicas de controle de atomicidade, utilizando vários paradigmas computacionais. Neste intuito, foram pesquisados mecanismos de introdução de atomicidade em aplicações e suas respectivas demandas, para então extrair critérios de análise dos paradigmas a serem utilizados na implementações das soluções. Buscou-se suporte nestes paradigmas às demandas previamente pesquisadas nos mecanismos de gerenciamento de atomicidade e procurou-se chegar a soluções reutilizáveis mantendo simplicidade de uso, possibilidade de alteração dinâmica, transparência, adaptabilidade e velocidade de desenvolvimento. Devido à existência de uma grande diversidade de situações que requerem diferentes implementações de atomicidade, alguns cenários típicos foram selecionados para aplicação e avaliação das técnicas aqui sugeridas, procurando abranger o maior número possível de possibilidades. Desta maneira, este trabalho comparou situações opostas quanto à concorrência pelos dados, implementando cenários onde ocorrem tanto acesso cooperativo quanto competitivo aos dados. Dentro de cada um dos cenários estudados, buscaram-se situações propícias ao emprego das características dos paradigmas e analisou-se o resultado de sua aplicação quanto aos critérios definidos anteriormente. Várias soluções foram analisadas e comparadas. Além dos mecanismos de gerenciamento de atomicidade, também foram estudados vários paradigmas que pudessem ser empregados na implementação de soluções com alto grau de reutilização e adaptabilidade. As análises e sugestões posteriores às implementações serviram como substrato para conclusões e sugestões sobre a melhor maneira de empregar tais soluções nos cenários atômicos estudados. Com isso, foi possível relacionar características e capacidades de cada paradigma com a melhor situação de demanda de atomicidade na qual os mesmos são aplicáveis, moldando uma linha de soluções que favoreçam sua reutilização. Um dos objetivos mais importantes do trabalho foi, entretanto, observar o funcionamento conjunto destes paradigmas, estudando como os mesmos podem atuar de forma simbiótica e de que forma os conceitos de um paradigma podem complementar os de outro.
12

APSEE-Reuse : um meta-modelo para apoiar a reutilização de processos de software

Reis, Rodrigo Quites January 2002 (has links)
Dentre as principais áreas que constituem a Ciência da Computação, uma das que mais influenciam o mundo atual é a Engenharia de Software, envolvida nos aspectos tecnológicos e gerenciais do processo de desenvolvimento de software. Software tornou-se a base de sustentação de inúmeras organizações dos mais diversos ramos de atuação espalhados pelo planeta, consistindo de um elemento estratégico na diferenciação de produtos e serviços atuais. Atualmente, o software está embutido em sistemas relacionados a infindável lista de diferentes ciências e tecnologias. A Tecnologia de Processo de Software surgiu em meados da década de 1980 e representou um importante passo em direção à melhoria da qualidade de software através de mecanismos que proporcionam o gerenciamento automatizado do desenvolvimento de software. Diversas teorias, conceitos, formalismos, metodologias e ferramentas surgiram nesse contexto, enfatizando a descrição formal do modelo de processo de software, para que possa ser automatizado por um ambiente integrado de desenvolvimento de software. Os modelos de processos de software descrevem o conhecimento de uma organização e, portanto, modelos que descrevem experiências bem sucedidas devem ser continuamente disseminados para reutilização em diferentes projetos. Apesar da importância desse tópico, atualmente apenas uma pequena porção do conhecimento produzido durante o desenvolvimento de software é mantido para ser reutilizado em novos projetos. Embora, à primeira vista, o desafio de descrever modelos reutilizáveis para processos de software pareça ser equivalente ao problema tratado pela tradicional área de reutilização de produtos software, isso é apenas parcialmente verdade, visto que os processos envolvem elementos relacionados com aspectos sociais, organizacionais, tecnológicos e ambientais. A crescente complexidade da atual modelagem de processos vem influenciando a investigação de tecnologias de reutilização que sejam viáveis nesse campo específico. A investigação conduzida nesse trabalho culminou na especificação de um meta-modelo que tem como objetivo principal aumentar o nível de automação fornecido na reutilização de processos, apoiando a modelagem de processos abstratos que possam ser reutilizados em diferentes contextos. O meta-modelo proposto por esse trabalho - denominado APSEE-Reuse - fornece uma série de construtores sintáticos que permitem que os diferentes aspectos desse contexto sejam descritos segundo múltiplas perspectivas, complementares entre si, contribuindo para diminuir a complexidade do modelo geral. A solução proposta destaca-se por fornecer um formalismo para modelagem de processos, o qual é integrado à uma infraestrutura de automação de processos de software, permitindo que a reutilização esteja intimamente relacionada com as outras etapas do ciclo de vida de processos. Os diferentes componentes envolvidos na definição do modelo APSEE-Reuse proposto foram especificados algebricamente, constituindo uma base semântica de alto 15 nível de abstração que deu origem a um conjunto de protótipos implementados no ambiente PROSOFT-Java. O texto ainda discute os experimentos realizados com o meta-modelo proposto na especificação de diferentes estudos de casos desenvolvidos a partir de exemplos retirados na literatura especializada, e de processos que fornecem soluções em contextos e necessidades específicas de projetos desenvolvidos no PPGC-UFRGS. Finalmente, são apresentadas considerações acerca dos trabalhos relacionados, os elementos críticos que influenciam a aplicabilidade do modelo e as atividades adicionais vislumbradas a partir do trabalho proposto.
13

Especificação formal de uma ferramenta de reutilização de especificações de requisitos / Formal specification of a requirements reuse tool

Pimenta, Alexandre January 1998 (has links)
A Engenharia de Software vem, ao longo das últimas décadas, merecendo cada vez mais atenção da comunidade cientifica. A capacidade de construir software com qualidade, dentro dos prazos e orçamentos, atendendo a demanda do mercado, um dos objetivos almejados pelas pesquisas nesta área. Dentro deste contexto, os Métodos Formais e a Reutilização de Software tem sido utilizados para aumentar a qualidade e a produtividade de Software. Os métodos formais possibilitam o desenvolvimento e a verificação de software através de uma notação matemática rigorosa. Este rigor matemático permite que aspectos de consistência, completeza e exatidão possam ser avaliados sistematicamente. Para serem consistentes, fatos declarados em uma especificação não devem ser contraditos em outro lugar. A consistência é garantida matematicamente, provando que fatos iniciais podem ser formalmente traçados (usando-se regras de inferência). A reutilização de software a uma técnica de aproveitamento de informações produzidas durante desenvolvimentos de software anteriores, com o objetivo de reduzir o esforço necessário para o desenvolvimento de um novo sistema. 0 pressuposto básico da reutilização é produzir sistemas de maior qualidade e confiabilidade de forma mais produtiva. Assim, a produtividade é aumentada a medida que soluções de problemas anteriores podem ser aproveitadas para resolver novos problemas. Existe uma tendência de explorar a reutilização nas fases iniciais do desenvolvimento de software. Esta tendência se justifica pela grande importância dada a estas fases. Entretanto, os produtos das fases iniciais são fortemente relacionados com o domínio da aplicação, fazendo com que a reutilização de especificações, de modelos de requisitos ou estratégias de projeto só possa ser realizada com sucesso entre aplicações da mesma família, ou seja, aplicações que compartilhem requisitos e restrições. A noção de domínio é, pois, fundamental a reutilização nas fases iniciais. Um trabalho importante nesta área é o de Maiden, que pesquisou a analogia como um paradigma para reutilização de especificações de requisitos, e identificou 22 domínios abstratos representados por um conjunto de predicados. Este trabalho esta inserido no projeto PROSOFT, que a um ambiente de desenvolvimento de software construído no Grupo de Sistemas de Informação do CPGCC/UFRGS sob a coordenação do Prof. Dr. Daltro Jose Nunes e tem como objetivo apoiar o engenheiro de software desde a analise de requisitos ate a implementação do programa utilizando métodos formais. Ambientes de desenvolvimento de software que se propõem a ajudar o engenheiro de software não podem desprezar o potencial da reutilização, visto que esta técnica oferece condição de se produzir software com mais qualidade de forma mais produtiva Na atual fase de desenvolvimento do PROSOFT, não existe um modelo de reutilização. Se um usuário desejar construir um novo sistema, o ambiente não apresenta suporte para auxiliá-lo na localização e recuperação de especificações de requisitos já implementadas que poderiam ser adaptadas a uma nova solução. Portanto este trabalho tem como objetivo apresentar e especificar formalmente uma ferramenta de reutilização de requisitos para o ambiente PROSOFT. O modelo de reutilização de requisitos desenvolvido por Maiden, "reutilização de especificá-lo de requisitos por analogia" , foi utilizado como referência. / During the last decades Software Engeneering has caught the attention of the scientific community. The ability to develop Software with quality, in the time and cost estimated according to the marketing, is one of the desired goals in this research area. In this context, Formal Methods and Software Reuse have been used to improve Software's quality. Formal Methods enables the software development and verification through a rigorous mathematical notation. This mathematical rigidity allows the systematic assessment of aspects like consistency, completion and correction. The consistency is mathematicaly guaranteed, proving that initial facts are formaly traced (using inference rules). Software Reuse is a technique for making good use of the information produced in previous developments, with the purpose of reducing the efforts to develop new sytems . The basic goal in reusing is to produce systems with higher quality and robustness in a more efficient fashion. There is a tendency to explore the reuse in the initial phases of software development. This is justified by the great importance given to these phases. Nevertheless, the products of the initial phases are strongly related to the application domain, causing the specifications, requirements model or projects strategies reuse succeed only with applications of the same class, that is, applications sharing requirements and restrictions. The notion of domain is fundamental for reusability of software in the initial phases. An important work in this area is Maiden's doctoral thesis, which presents the research of the analogy as a paradigm of requirements specifications reusability , and the identification of 22 abstract domains represented by a predicate set. This work is part of the PROSOFT project, a software development environment built by the CPGCC/UFRGS Information Systems Group, with the purpose of supporting the software engineer, from the requirements analysis to the program implementation using formal methods. Software development environments that propose to help the software engineer cannot ignore the potential for reuse, as this technique offers conditions to produce higher quality software in a more productive way. In the PROSOFT's current development, there is no reuse model. If the user wants to build a new system, the environment does not have any support to help him/her in the identification and recovery of requirements specifications that could be adjusted to the new solution. Hence this work has the purpose of presenting and formaly specifying a requirement reuse tool for the PROSOFT environment. Maiden's requirement reuse model "Analogical Requirement Specification Reuse" was used as reference.
14

Especificação formal de uma ferramenta de reutilização de especificações de requisitos / Formal specification of a requirements reuse tool

Pimenta, Alexandre January 1998 (has links)
A Engenharia de Software vem, ao longo das últimas décadas, merecendo cada vez mais atenção da comunidade cientifica. A capacidade de construir software com qualidade, dentro dos prazos e orçamentos, atendendo a demanda do mercado, um dos objetivos almejados pelas pesquisas nesta área. Dentro deste contexto, os Métodos Formais e a Reutilização de Software tem sido utilizados para aumentar a qualidade e a produtividade de Software. Os métodos formais possibilitam o desenvolvimento e a verificação de software através de uma notação matemática rigorosa. Este rigor matemático permite que aspectos de consistência, completeza e exatidão possam ser avaliados sistematicamente. Para serem consistentes, fatos declarados em uma especificação não devem ser contraditos em outro lugar. A consistência é garantida matematicamente, provando que fatos iniciais podem ser formalmente traçados (usando-se regras de inferência). A reutilização de software a uma técnica de aproveitamento de informações produzidas durante desenvolvimentos de software anteriores, com o objetivo de reduzir o esforço necessário para o desenvolvimento de um novo sistema. 0 pressuposto básico da reutilização é produzir sistemas de maior qualidade e confiabilidade de forma mais produtiva. Assim, a produtividade é aumentada a medida que soluções de problemas anteriores podem ser aproveitadas para resolver novos problemas. Existe uma tendência de explorar a reutilização nas fases iniciais do desenvolvimento de software. Esta tendência se justifica pela grande importância dada a estas fases. Entretanto, os produtos das fases iniciais são fortemente relacionados com o domínio da aplicação, fazendo com que a reutilização de especificações, de modelos de requisitos ou estratégias de projeto só possa ser realizada com sucesso entre aplicações da mesma família, ou seja, aplicações que compartilhem requisitos e restrições. A noção de domínio é, pois, fundamental a reutilização nas fases iniciais. Um trabalho importante nesta área é o de Maiden, que pesquisou a analogia como um paradigma para reutilização de especificações de requisitos, e identificou 22 domínios abstratos representados por um conjunto de predicados. Este trabalho esta inserido no projeto PROSOFT, que a um ambiente de desenvolvimento de software construído no Grupo de Sistemas de Informação do CPGCC/UFRGS sob a coordenação do Prof. Dr. Daltro Jose Nunes e tem como objetivo apoiar o engenheiro de software desde a analise de requisitos ate a implementação do programa utilizando métodos formais. Ambientes de desenvolvimento de software que se propõem a ajudar o engenheiro de software não podem desprezar o potencial da reutilização, visto que esta técnica oferece condição de se produzir software com mais qualidade de forma mais produtiva Na atual fase de desenvolvimento do PROSOFT, não existe um modelo de reutilização. Se um usuário desejar construir um novo sistema, o ambiente não apresenta suporte para auxiliá-lo na localização e recuperação de especificações de requisitos já implementadas que poderiam ser adaptadas a uma nova solução. Portanto este trabalho tem como objetivo apresentar e especificar formalmente uma ferramenta de reutilização de requisitos para o ambiente PROSOFT. O modelo de reutilização de requisitos desenvolvido por Maiden, "reutilização de especificá-lo de requisitos por analogia" , foi utilizado como referência. / During the last decades Software Engeneering has caught the attention of the scientific community. The ability to develop Software with quality, in the time and cost estimated according to the marketing, is one of the desired goals in this research area. In this context, Formal Methods and Software Reuse have been used to improve Software's quality. Formal Methods enables the software development and verification through a rigorous mathematical notation. This mathematical rigidity allows the systematic assessment of aspects like consistency, completion and correction. The consistency is mathematicaly guaranteed, proving that initial facts are formaly traced (using inference rules). Software Reuse is a technique for making good use of the information produced in previous developments, with the purpose of reducing the efforts to develop new sytems . The basic goal in reusing is to produce systems with higher quality and robustness in a more efficient fashion. There is a tendency to explore the reuse in the initial phases of software development. This is justified by the great importance given to these phases. Nevertheless, the products of the initial phases are strongly related to the application domain, causing the specifications, requirements model or projects strategies reuse succeed only with applications of the same class, that is, applications sharing requirements and restrictions. The notion of domain is fundamental for reusability of software in the initial phases. An important work in this area is Maiden's doctoral thesis, which presents the research of the analogy as a paradigm of requirements specifications reusability , and the identification of 22 abstract domains represented by a predicate set. This work is part of the PROSOFT project, a software development environment built by the CPGCC/UFRGS Information Systems Group, with the purpose of supporting the software engineer, from the requirements analysis to the program implementation using formal methods. Software development environments that propose to help the software engineer cannot ignore the potential for reuse, as this technique offers conditions to produce higher quality software in a more productive way. In the PROSOFT's current development, there is no reuse model. If the user wants to build a new system, the environment does not have any support to help him/her in the identification and recovery of requirements specifications that could be adjusted to the new solution. Hence this work has the purpose of presenting and formaly specifying a requirement reuse tool for the PROSOFT environment. Maiden's requirement reuse model "Analogical Requirement Specification Reuse" was used as reference.
15

Especificação formal de uma ferramenta de reutilização de especificações de requisitos / Formal specification of a requirements reuse tool

Pimenta, Alexandre January 1998 (has links)
A Engenharia de Software vem, ao longo das últimas décadas, merecendo cada vez mais atenção da comunidade cientifica. A capacidade de construir software com qualidade, dentro dos prazos e orçamentos, atendendo a demanda do mercado, um dos objetivos almejados pelas pesquisas nesta área. Dentro deste contexto, os Métodos Formais e a Reutilização de Software tem sido utilizados para aumentar a qualidade e a produtividade de Software. Os métodos formais possibilitam o desenvolvimento e a verificação de software através de uma notação matemática rigorosa. Este rigor matemático permite que aspectos de consistência, completeza e exatidão possam ser avaliados sistematicamente. Para serem consistentes, fatos declarados em uma especificação não devem ser contraditos em outro lugar. A consistência é garantida matematicamente, provando que fatos iniciais podem ser formalmente traçados (usando-se regras de inferência). A reutilização de software a uma técnica de aproveitamento de informações produzidas durante desenvolvimentos de software anteriores, com o objetivo de reduzir o esforço necessário para o desenvolvimento de um novo sistema. 0 pressuposto básico da reutilização é produzir sistemas de maior qualidade e confiabilidade de forma mais produtiva. Assim, a produtividade é aumentada a medida que soluções de problemas anteriores podem ser aproveitadas para resolver novos problemas. Existe uma tendência de explorar a reutilização nas fases iniciais do desenvolvimento de software. Esta tendência se justifica pela grande importância dada a estas fases. Entretanto, os produtos das fases iniciais são fortemente relacionados com o domínio da aplicação, fazendo com que a reutilização de especificações, de modelos de requisitos ou estratégias de projeto só possa ser realizada com sucesso entre aplicações da mesma família, ou seja, aplicações que compartilhem requisitos e restrições. A noção de domínio é, pois, fundamental a reutilização nas fases iniciais. Um trabalho importante nesta área é o de Maiden, que pesquisou a analogia como um paradigma para reutilização de especificações de requisitos, e identificou 22 domínios abstratos representados por um conjunto de predicados. Este trabalho esta inserido no projeto PROSOFT, que a um ambiente de desenvolvimento de software construído no Grupo de Sistemas de Informação do CPGCC/UFRGS sob a coordenação do Prof. Dr. Daltro Jose Nunes e tem como objetivo apoiar o engenheiro de software desde a analise de requisitos ate a implementação do programa utilizando métodos formais. Ambientes de desenvolvimento de software que se propõem a ajudar o engenheiro de software não podem desprezar o potencial da reutilização, visto que esta técnica oferece condição de se produzir software com mais qualidade de forma mais produtiva Na atual fase de desenvolvimento do PROSOFT, não existe um modelo de reutilização. Se um usuário desejar construir um novo sistema, o ambiente não apresenta suporte para auxiliá-lo na localização e recuperação de especificações de requisitos já implementadas que poderiam ser adaptadas a uma nova solução. Portanto este trabalho tem como objetivo apresentar e especificar formalmente uma ferramenta de reutilização de requisitos para o ambiente PROSOFT. O modelo de reutilização de requisitos desenvolvido por Maiden, "reutilização de especificá-lo de requisitos por analogia" , foi utilizado como referência. / During the last decades Software Engeneering has caught the attention of the scientific community. The ability to develop Software with quality, in the time and cost estimated according to the marketing, is one of the desired goals in this research area. In this context, Formal Methods and Software Reuse have been used to improve Software's quality. Formal Methods enables the software development and verification through a rigorous mathematical notation. This mathematical rigidity allows the systematic assessment of aspects like consistency, completion and correction. The consistency is mathematicaly guaranteed, proving that initial facts are formaly traced (using inference rules). Software Reuse is a technique for making good use of the information produced in previous developments, with the purpose of reducing the efforts to develop new sytems . The basic goal in reusing is to produce systems with higher quality and robustness in a more efficient fashion. There is a tendency to explore the reuse in the initial phases of software development. This is justified by the great importance given to these phases. Nevertheless, the products of the initial phases are strongly related to the application domain, causing the specifications, requirements model or projects strategies reuse succeed only with applications of the same class, that is, applications sharing requirements and restrictions. The notion of domain is fundamental for reusability of software in the initial phases. An important work in this area is Maiden's doctoral thesis, which presents the research of the analogy as a paradigm of requirements specifications reusability , and the identification of 22 abstract domains represented by a predicate set. This work is part of the PROSOFT project, a software development environment built by the CPGCC/UFRGS Information Systems Group, with the purpose of supporting the software engineer, from the requirements analysis to the program implementation using formal methods. Software development environments that propose to help the software engineer cannot ignore the potential for reuse, as this technique offers conditions to produce higher quality software in a more productive way. In the PROSOFT's current development, there is no reuse model. If the user wants to build a new system, the environment does not have any support to help him/her in the identification and recovery of requirements specifications that could be adjusted to the new solution. Hence this work has the purpose of presenting and formaly specifying a requirement reuse tool for the PROSOFT environment. Maiden's requirement reuse model "Analogical Requirement Specification Reuse" was used as reference.
16

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ços

Guimarã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.
17

Uma abordagem flexível para execução de processos de software evolutivos / A flexible approach to evolvable software process enactment

Reis, Carla Alessandra Lima January 2003 (has links)
Buscando aumentar a qualidade de software, a área de Engenharia de Software tem produzido ferramentas para auxílio ao desenvolvimento de software assim como tem estudado e produzido formas de controlar o processo de desenvolvimento. A tecnologia existente para coordenação de atividades humanas - incluindo sistemas de Workflow e PSEE (Process-Centered Software Engineering Environments) - possui algumas limitações. Uma das principais é a falta de flexibilidade. Algumas características importantes de processos de software não têm sido levadas em consideração pela tecnologia disponível, como por exemplo: o aspecto humano envolvido, a dificuldade em definir todo o processo antes de executá-lo, o tratamento de mudanças durante a execução, dentre outras. Além disso, quando se considera a construção de PSEEs, notase a necessidade de uma abordagem formal adequada, que permita um melhor entendimento, análise e comparação com outros modelos. Este trabalho apresenta e discute um modelo conceitual e mecanismos para contribuir para o aumento da flexibilidade e do nível de automação fornecidos para execução de processos. Para atingir os objetivos do trabalho, foi proposta uma arquitetura, denominada APSEE, construída a partir de um meta-modelo unificado que integra informações organizacionais, gerenciais, sobre artefatos do processo, e sobre ferramentas do ambiente. O modelo proposto define de forma rigorosa seus componentes. Assim, as propriedades de recursos e pessoas são descritas visando melhorar o controle de sua alocação, permitindo a construção de um mecanismo de apoio à instanciação de recursos e pessoas em processos. Além disso, uma linguagem de modelagem visual de processos de software é proposta. Por fim, é fornecido o mecanismo de execução de processos que permite modificações dinâmicas, verifica a consistência dessas modificações, e permite acompanhamento da execução de processos pelo gerente. Os diferentes componentes envolvidos na definição do modelo APSEE proposto foram especificados formalmente através de método algébrico e também através da abordagem de gramáticas de grafos, constituindo uma base semântica de alto nível de abstração que deu origem a um conjunto de protótipos implementados como ferramentas do ambiente PROSOFT-Java. A implementação também serviu para constatar a viabilidade do uso do APSEE como plataforma de integração para vários serviços de gerência de processos desenvolvidos como atividades de pesquisa no contexto do grupo PROSOFT. Finalmente, são apresentadas considerações acerca dos trabalhos relacionados, os elementos críticos que influenciam a aplicabilidade do modelo e as atividades adicionais vislumbradas a partir do trabalho proposto. / Software Engineering evolved to increase software quality through the definition of tools to support both development and management processes. However, the existing technology to provide automated support for human activity coordination - mainly represented by Workflow Management Systems and Process-Centered Software Engineering Environments (PSEEs) - has some limitations. One of the most important limitations is related to the low level of flexibility provided by current tools. Existing technologies provide limited support for some important software process characteristics, which includes, for example, the humanistic aspect of software processes, the difficult to completely prescribe the process model in advance, and the lack of adequate support for dynamic changes on enacting processes. Besides, the construction of a PSEE demand an adequate formal approach for its specification, which can improve its understandability and analysis, while constitutes a basis for comparison with similar proposals. This work presents and discusses a conceptual model and mechanisms which jointly aim to increase the level of flexibility and automation provided for software processes enactment. In order to reach this goal, a software-based architecture is proposed, named APSEE, which provides a unified meta-model that integrates organizational and management information, along with software artifact and tool support. The proposed meta-model rigorously defines its components. Therefore, resource and people properties are formally described in order to allow better allocation through an automated process instantiation mechanism. In addition, a visual software process modeling language is provided which is, in turn, related to the underlying meta-model. Finally, a flexible process enactment mechanism was specified to support dynamic changes on process models that work together with consistency check and monitoring mechanisms. The required software components for the proposed meta-model were specified using algebraic specification and graph grammar-based techniques which, in turn, were used to build prototypes for the Java-PROSOFT environment. This implementation was also useful to evaluate the feasibility of using APSEE as an integration platform for a number of process management services developed by PROSOFT research group. Finally, it is discussed how this proposal relates to the current technological state-ofthe- art, the critical elements that can influence its applicability and effectiveness, and the expected future activities.
18

Compreensão visual de frameworks através da introspeção de exemplos / Visual understanding of frameworks through instrospection of examples

Campo, 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.
19

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ços

Guimarã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.
20

Compreensão visual de frameworks através da introspeção de exemplos / Visual understanding of frameworks through instrospection of examples

Campo, 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.

Page generated in 0.0548 seconds