Maria Istela Cagnin, R. Penteado, Fernão S. R. Germano, P. C. Masiero
{"title":"Reengenharia com Uso de Padrões de Projeto","authors":"Maria Istela Cagnin, R. Penteado, Fernão S. R. Germano, P. C. Masiero","doi":"10.5753/sbes.1999.23927","DOIUrl":"https://doi.org/10.5753/sbes.1999.23927","url":null,"abstract":"O processo de reengenharia de um sistema originalmente desenvolvido orientado a procedimentos em linguagem C foi conduzido com mudança de paradigma para orientação a objetos. Esse processo é precedido pela engenharia reversa orientada a objetos do sistema legado usando o método Fusion/RE. Foi também precedido por uma primeira fase em que é mantida a linguagem C, utilizando um processo de segmentação em que o código é reestruturado para atender a algumas características de orientação a objetos. Neste trabalho usa-se a linguagem Java e o Banco de Dados Relacional Sybase fazendo-se três variantes de implementação de acordo com os três modos alternativos sugeridos no padrão Persistent Layer. O padrão CRUD é usado para o projeto dessa camada de persistência. As operações do padrão CRUD são implementadas: nas classes da aplicação (primeiro modo); em classes específicas para cada classe da aplicação (segundo modo) e em uma classe Broker, que faz o mapeamento de qualquer tipo de objeto para o banco de dados relacional (terceiro modo). Modelos de objetos das diferentes implementações e exemplos de código fonte são incluídos no trabalho para ilustrar a efetividade da evolução alcançada com as três configurações. Essas são usadas para avaliar o processo de segmentação que resulta em uma implementação similar àquela obtida no primeiro modo sugerido para implementar o padrão Persistent Layer, pois a herança envolvida nela é praticamente restrita à assinatura nas classes abstratas. Isto é compatível com a falta de herança da linguagem C.","PeriodicalId":325756,"journal":{"name":"Anais do XIII Simpósio Brasileiro de Engenharia de Software (SBES 1999)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1999-10-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127522169","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Aquisição de Conhecimento no Contexto de Análise de Domínio","authors":"Mônica Zopelari Roseti, C. Werner","doi":"10.5753/sbes.1999.23935","DOIUrl":"https://doi.org/10.5753/sbes.1999.23935","url":null,"abstract":"Este artigo aborda a questão sobre a aquisição de conhecimento no contexto de análise de domínio, apresentando três estudos de caso concretos. Os resultados desses estudos mostram a real necessidade de elaboração de uma sistemática para aquisição de conhecimento, adequada ao contexto de análise de domínio, e indicam caminhos para a sua elaboração e refino. Os estudos de caso apresentam resultados gradativos em relação à maturidade e rigor da sistematica experimentada em cada um deles, tentando-se na medida do possível contornar as dificuldades diagnosticadas no estudo anterior. Técnicas de aquisição como análise de protocolo, auto-explicação, a técnica LEL, entrevistas e brainstorming, juntamente com representações tais como esquemas facetados, modelos Orientados a Objetos e diagramas de características, são combinados para explorar ao máximo o conhecimento existente sobre o domínio de interesse.","PeriodicalId":325756,"journal":{"name":"Anais do XIII Simpósio Brasileiro de Engenharia de Software (SBES 1999)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1999-10-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127602251","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Especificação Formal de uma Ferramenta de Trabalho Colaborativo através da Composição de Objetos Náutilus","authors":"Cirney Carneiro, Rodrigo Quites Reis, P. Menezes","doi":"10.5753/sbes.1999.23916","DOIUrl":"https://doi.org/10.5753/sbes.1999.23916","url":null,"abstract":"A construção de programas concorrentes e distribuídos que sejam corretos e confiáveis consiste em uma importante meta atual da Engenharia de Software. A linguagem baseada em objetos concorrentes Náutilus é um formalismo voltado a construção de programas desta natureza. Para ilustrar as facilidades de Náutilus, esta linguagem foi usada para especificar um editor colaborativo síncrono (CoEdit) anteriormente implementado em Java. Com a utilização de Náutilus, a especificação se mostrou mais clara, pois foi possível expressar a sincronização de processos concorrentes facilmente através das construções existentes na linguagem. Além disso, uma importante extensão ao programa CoEdit original foi realizada a partir da utilização dos mecanismos de abstração da linguagem, reutilizando os componentes especificados anteriormente e adicionando nova funcionalidade à especificação.","PeriodicalId":325756,"journal":{"name":"Anais do XIII Simpósio Brasileiro de Engenharia de Software (SBES 1999)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1999-10-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116475913","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
A. M. R. Vincenzi, J. Maldonado, E. Barbosa, M. E. Delamaro
{"title":"Operadores Essenciais de Interface: Um Estudo de Caso","authors":"A. M. R. Vincenzi, J. Maldonado, E. Barbosa, M. E. Delamaro","doi":"10.5753/sbes.1999.23933","DOIUrl":"https://doi.org/10.5753/sbes.1999.23933","url":null,"abstract":"Apesar de evidências obtidas em estudos empíricos da eficácia do Teste de Mutação, seu alto custo, decorrente principalmente do grande número de mutantes gerados, tem motivado a proposição de diversas abordagens alternativas para a sua aplicação [1, 2, 3, 16, 19, 20, 27], dentre essas a determinação de conjuntos essenciais de operadores de mutação. Nesse contexto, alguns estudos já foram conduzidos para a determinação de um conjunto essencial de operadores de mutação para as linguagens Fortran e C [2, 3, 20, 27]. A aplicação do teste de mutação no nível de unidade para a linguagem C é apoiada pela ferramenta Proteum, que implementa 71 operadores de mutação [4]. No estudo empírico conduzido por Barbosa [2, 3], utilizando a ferramenta Proteum, foi proposto o procedimento Essencial, contribuindo para a determinação de um conjunto essencial de operadores de mutação para a linguagem C. Explorando o conceito de mutação no teste de integração foi proposto o critério Mutação de Interface [5]. A ferramenta PROTEUM/IM, desenvolvida para apoiar a aplicação do critério Mutação de Interface, possui 33 operadores de mutação desenvolvidos para modelar erros típicos de integração [5]. Este trabalho investiga a aplicação do procedimento Essencial para a determinação de um conjunto essencial de operadores para o teste de integração, contribuindo para o estabelecimento de estratégias de teste incrementais baseadas no teste de mutação que englobe as fases de unidade e de integração.","PeriodicalId":325756,"journal":{"name":"Anais do XIII Simpósio Brasileiro de Engenharia de Software (SBES 1999)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1999-10-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124454774","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Um Mecanismo de Adaptação para Aplicações Tempo Real Baseado em Computação Imprecisa e Reflexão Computacional","authors":"Rômulo Silva de Oliveira, Olinto J. V. Furtado","doi":"10.5753/sbes.1999.23925","DOIUrl":"https://doi.org/10.5753/sbes.1999.23925","url":null,"abstract":"Diversas aplicações com restrições de tempo real são disseminadas através da Internet na forma de applets Java ou componentes Active-X. Por exemplo, aplicações que lidam com áudio e vídeo, ferramentas para trabalho cooperativo e vídeogames. A satisfação das restrições temporais torna-se um problema pois estas aplicações devem executar em diferentes plataformas (processadores e sistemas operacionais), as quais apresentam os mais variados níveis de desempenho e ocupação. Um problema importante é como projetar os componentes do software de forma que eles apresentem desempenho satisfatório nestas diferentes plataformas. Uma das técnicas que possibilitam esta adaptação é a Computação Imprecisa, na medida em que ela flexibiliza o tempo de execução das tarefas. O uso de Reflexão Computacional facilita a implementação da Computação Imprecisa, separando as questões funcionais das questões de controle responsáveis pela adaptação da aplicação. O objetivo deste artigo é mostrar como variações da Computação Imprecisa, implementadas através de reflexão computacional, podem ser utilizadas para permitir a adaptação de aplicações de tempo real a diferentes plataformas no contexto da Internet. O modelo de programação RTR será utilizado para ilustrar a forma como esta adaptação pode ser realizada.","PeriodicalId":325756,"journal":{"name":"Anais do XIII Simpósio Brasileiro de Engenharia de Software (SBES 1999)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1999-10-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125893522","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Suporte ao Desenvolvimento e Uso de Componentes Flexíveis","authors":"Ricardo Pereira e Silva, R. T. Price","doi":"10.5753/sbes.1999.23911","DOIUrl":"https://doi.org/10.5753/sbes.1999.23911","url":null,"abstract":"Component-oriented development is being stimulated by the availability of devices allowing component interoperability, regardless of programming language, running platform and executing location. However, there are some unsolved problems concerning search and selection, functionality understanding and adaptation of components. Flexibility is an important feature for increasing component reusability. Some approaches like wrappers, help in adapting actual components to systems not fully compatible. In this paper we propose to develop components as object-oriented frameworks. This leads to flexible components, much more suitable to reuse. On the other hand, this approach makes more complex the development and the use of components. SEA is an environment supporting development and use of reusable software artifacts. It employs a describing approach like those used in OOAD methodologies. The environment supports development, semantic checking and semi-automatic translation of design specifications. In this paper we describe how SEA supports the development and the use of flexible components.","PeriodicalId":325756,"journal":{"name":"Anais do XIII Simpósio Brasileiro de Engenharia de Software (SBES 1999)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1999-10-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122510854","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Data Flow Based Integration Testing","authors":"P. Vilela, J. Maldonado, M. Jino","doi":"10.5753/sbes.1999.23934","DOIUrl":"https://doi.org/10.5753/sbes.1999.23934","url":null,"abstract":"An approach to extend Structural Unit Testing Criteria to the Integration Testing is presented. The approach is based on the concept of Potential Uses, which basically states that a data flow association exists between a definition of a variable and every point reachable from that definition through a definition-clear subpath, even without an explicit usage of the variable - it is called a potential data flow association. A practical procedure to implement the approach, based on testing information generated during unit testing, is also presented.","PeriodicalId":325756,"journal":{"name":"Anais do XIII Simpósio Brasileiro de Engenharia de Software (SBES 1999)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1999-10-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130004596","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
V. D. Feltrim, Renata Pontin de M. Fortes, W. Silva
{"title":"Aspectos de Validação do Método de Engenharia Reversa Fusion-RE/I aplicado a um Sistema Hipermídia","authors":"V. D. Feltrim, Renata Pontin de M. Fortes, W. Silva","doi":"10.5753/sbes.1999.23926","DOIUrl":"https://doi.org/10.5753/sbes.1999.23926","url":null,"abstract":"The growth of the software market has leading to an increasing use of development techniques, which are, sometimes, informal ones. The maintenance of such software is problematic, since its documentation rarely reflects the implemented code. In this context Reverse Engineering of Software can help by means of recovering the project information lost during the development phase and documenting the current software state. This article discusses the issues emerged during the application of the method of reverse engineering named Fusion-RE/I. The described experiment is part of the re-engineering of a prototype hypermedia system, which has, as main goal, to adapt it to a Software Engineering domain. Since the target is a hypermedia system, the results obtained during the use of Fusion-RE/I can be registered as a hyperdocument. By doing that, it is possible to observe and analyse some relevant issues concerning the method Fusion-RE/I.","PeriodicalId":325756,"journal":{"name":"Anais do XIII Simpósio Brasileiro de Engenharia de Software (SBES 1999)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1999-10-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122436291","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Configurando Protocolos de Interação na Abordagem R-RIO","authors":"Alexandre Sztajnberg, Marcelo Lobosco, Orlando Loques","doi":"10.5753/sbes.1999.23912","DOIUrl":"https://doi.org/10.5753/sbes.1999.23912","url":null,"abstract":"Aplicações modernas possuem natureza dinâmica e necessitam de suporte para se adaptarem a novas demandas funcionais e não-funcionais. Novas demandas funcionais são criadas por usuários das aplicações, que precisam funções não previstas originalmente ou necessitam alterar funções existentes. Durante o ciclo de vida das aplicações, podem também surgir requisitos não-funcionais que, em geral, não estão associados diretamente com a aplicação. Modelos mais usuais para o desenvolvimento de software não oferecem as facilidades necessárias para a produção de aplicações que se adaptem dinamicamente a essas demandas. Portanto, uma abordagem que facilite a concepção dessas aplicações se faz necessária. Apresentamos neste artigo a abordagem R-RIO, que estende o conceito tradicional de configuração, permitindo que se descreva a arquitetura das aplicações a partir de componentes e suas interações e, adicionalmente, seus aspectos não-funcionais como a distribuição, coordenação e protocolos de comunicação. A arquitetura de uma aplicação é descrita com o uso de CBabel, a linguagem de configuração de R-RIO. A partir da descrição da arquitetura um middleware, chamado configurador, pode criar instâncias de seus componentes e iniciar a execução da aplicação. O configurador também oferece suporte para adaptação das aplicações que necessitam reagir à mudanças de requisitos ou de condições de operação, inclusive durante a fase de funcionamento. O exemplo do Jogo da Velha (TicTacToe) é utilizado para ilustrar a concepção de uma aplicação com um protocolo de interação complexo utilizando-se R-RIO e para permitir uma comparação com outras abordagens.","PeriodicalId":325756,"journal":{"name":"Anais do XIII Simpósio Brasileiro de Engenharia de Software (SBES 1999)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1999-10-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122507786","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Fábio Augusto das Dores Silva, Rodrigo Quites Reis, C. Reis, D. J. Nunes
{"title":"Um Modelo de Simulação de Processos de Software Baseado em Agentes Cooperativos","authors":"Fábio Augusto das Dores Silva, Rodrigo Quites Reis, C. Reis, D. J. Nunes","doi":"10.5753/sbes.1999.23920","DOIUrl":"https://doi.org/10.5753/sbes.1999.23920","url":null,"abstract":"Este artigo apresenta um modelo e uma ferramenta de simulação de processo de software baseada em conhecimento através de agentes inteligentes e cooperativos. O objetivo desta abordagem é validar e refinar um modelo de processo de software antes de sua execução real, prevenindo, desta forma, os custos decorrentes de falhas na modelagem, alocação de recursos e definição de prazos. O modelo AgentProcess simula o comportamento dos desenvolvedores através de agentes cognitivos. Esses agentes possuem habilidades na execução de algumas tarefas e afinidades com outros agentes. Assim, este modelo apresenta um mecanismo mais adequado para a simulação de processos de software pois trata o envolvimento cooperativo dos desenvolvedores nas suas atividades do processo através de uma base de conhecimento distribuída em agentes.","PeriodicalId":325756,"journal":{"name":"Anais do XIII Simpósio Brasileiro de Engenharia de Software (SBES 1999)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"1999-10-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124448617","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}