A Preliminary Investigation Towards the Impact of Composition Properties on Code Anomalies

Tamanho: px
Começar a partir da página:

Download "A Preliminary Investigation Towards the Impact of Composition Properties on Code Anomalies"

Transcrição

1 A Preliminary Investigation Towards the Impact of Composition Properties on Code Anomalies F. Torres and F. Dantas Abstract Software systems evolve through the composition of their modules. However, the complexity associated with the composition properties emerges as an extremely favorable factor for unwanted code changes. In a parallel context, several studies indicate that the occurrence of code anomalies also generates unwanted changes in the source code. Code anomaly is associated with undesirable symptoms that affect negatively the program structure. Apparently, composition properties and code anomalies share similar characteristics. However, there are no studies that analyze if and how composition properties are related to code anomalies occurrence. This paper presents a preliminary investigation about the impact of composition properties on code anomalies. Our investigation was developed across versions of an evolving software system. Our preliminary findings indicate that variations on composition properties reflect directly on code anomalies occurrence. Keywords Code Anomalies, Composition Properties, Software Evolution. O I. INTRODUÇÃO CÓDIGO fonte de sistemas de software em evolução tendem a sofrer sucessivas e constantes modificações []. De acordo com Fowler [], programadores modificam o código sem possuir, na grande maioria dos casos, a compreensão completa do projeto. Esta falta de compreensão associada a um mau planejamento contribui para que tais modificações se tornem portas de entrada para problemas estruturais de código em evolução, promovendo a sua instabilidade []. Modificações não planejadas possuem um efeito acumulativo ao longo da evolução do código e emergem como uma consequência direta da falta de gerenciamento da complexidade associada à composição de seus elementos []. O termo composição refere-se à união de dois ou mais elementos de código, tais como atributos, métodos ou qualquer outra forma de declaração []. Na verdade, a complexidade das composições de código está associada, principalmente, às suas propriedades, as quais nem sempre estão explícitas ao programador []. O escopo e a volatilidade das composições são exemplos de tais propriedades. O escopo de uma composição delimita os elementos de código afetados pela mesma. Enquanto que a volatilidade de uma composição representa as dependências quebradas durante a preparação de código para que a composição funcione apropriadamente. Assim como as propriedades de composição, anomalias de F. Torres, Universidade do Estado do Rio Grande do Norte, Mossoró, Rio Grande do Norte, Brasil, felipetorres@uern.br. código, que nada mais são do que sintomas indesejados na estruturação do código, também têm sido responsáveis por mudanças não planejadas no código fonte das aplicações []. Neste contexto, vários trabalhos realizados propõem ou estudam estratégias de detecção de anomalias [], [], [] e []. Porém, nenhum desses estudos investiga se as propriedades estão relacionadas com a ocorrência de anomalias e como esta relação se concretiza. Por exemplo, o aumento das responsabilidades de um módulo aumenta o seu escopo e ao mesmo tempo evidencia a ocorrência de uma das anomalias mais conhecidas na literatura, chamada God Class []. No entanto, não há estudos que analisem se e como as propriedades da composição impactam sobre o surgimento de anomalias de código. Neste sentido, através da análise das propriedades de composição buscamos mapear a ocorrência de anomalias de código. Consideramos que um completo entendimento sobre a correlação existente entre as propriedades de composição e anomalias pode fornecer informações para que programadores possam evoluir sistemas de software de maneira mais estável (i.e, sem muitas modificações indesejadas), monitorando as propriedades da composição e, consequentemente, minimizando o surgimento de anomalias de código. Este artigo investiga de forma pioneira a relação existente entre propriedades de composição e anomalias de código. Para tanto, realizou-se uma investigação utilizando um sistema de software em evolução, denominado MobileMedia [] (Seção III). O trabalho foi desenvolvido tomando por base a literatura existente sobre o tema (Seção III) e um planejamento criterioso dos procedimentos (Seção III). Os nossos resultados indicaram a existência de uma relação direta entre as propriedades de composição e a ocorrência de anomalias (Seção IV). Os trabalhos relacionados, as ameaças à validação e as conclusões do estudo são apresentados nas Seções V, VI e VII. II. REVISÃO LITERÁRIA A. Propriedades de Composição Elementos de código podem se relacionar direta ou indiretamente entre si. Quando dois ou mais módulos de um programa estão ligados, eles formam uma composição de código []. Esta ligação ocorre através de dependências entre os seus elementos de código, nem sempre explícitas, e que envolve diferentes quantidades e tipos de elementos, tais como, classes, F. Dantas, Universidade do Estado do Rio Grande do Norte, Natal, Rio Grande do Norte, Brasil, franciscodantas@uern.br. Corresponding author: F. Torres

2 classes abstratas, interfaces e métodos [] (ver Fig. ). Neste cenário, à medida que o código é composto e evolui, surge a necessidade de monitorar as propriedades associadas às composições. Em nosso estudo, as propriedades de composição estudadas foram: o escopo e a volatilidade das composições []. De acordo com [], o escopo das composições refere-se ao mapeamento dos elementos envolvidos na composição. Já a volatilidade quantifica as dependências que foram quebradas como forma de preparação para receber uma nova composição de código. Figura. Cenário de Composição. Na Fig., o escopo da composição destacado pela área tracejada compreende as classes sombreadas. Isto significa que para tal composição acontecer, elementos de código das classes sombreadas foram afetados. Por outro lado, a volatilidade da mesma composição quantifica o número de alterações realizadas nas classes sombreadas para que a composição fosse realizada. O impacto das propriedades do código de composição sobre a estabilidade (i.e., número de mudanças) do código foi estudado de forma pioneira por []. De acordo com uma análise feita por [], alguns fatores de instabilidade tem uma forte correlação com o escopo e a alta volatilidade das composições. Isso acontece principalmente porque a propagação de mudanças nos elementos da composição é delimitada pela própria composição de código e é medida pelo escopo. Em outras palavras, temos o seguinte: modificações realizadas em um determinado módulo tendem a ser propagadas para toda a composição e, eventualmente, serão quantificadas pelo escopo. Por outro lado, a volatilidade também é extremamente significativa para se referir à estabilidade, uma vez que quantifica a necessidade de manipulação de código para que uma composição seja adicionada. Sendo assim, estas propriedades foram utilizadas para analisar a ocorrência de problemas estruturais quando são realizadas mudanças em composições de código. B. Anomalias de Código Sintomas que indicam possível aparecimento de problemas estruturais são chamados de bad smells [], ou anomalias de código []. Durante a evolução de um sistema de software, problemas estruturais criados em uma versão anterior poderão ser maiores e mais prejudiciais ao longo do processo evolutivo. De acordo com Fowler [], o efeito acumulativo causado pela ocorrência destes sintomas torna mais árdua a leitura do código fonte, o que dificulta a sua compreensão, preservação e o torna mais complexo de ser modificado. Por consequência disso, mais rapidamente ele irá apresentar problemas estruturais e isso poderá interferir na estabilidade do sistema, uma vez que quanto mais necessária for a realização de mudanças no código fonte, maior será a probabilidade de que o programa se torne instável []. Divergent Change (DC), God Class (GC) e Shotgun Surgery (SS) são exemplos de anomalias de código []. A anomalia conhecida por Divergent Change [] ocorre quando uma classe precisa ser modificada de diferentes formas para entrar em conformidade com alterações de naturezas distintas. Isto significa dizer que haverá muitas modificações em uma mesma classe e, portanto, tenderá a ser mais instável e mais propensa a erros, uma vez que estabilidade está associada à quantidade de mudanças []. Já a anomalia God Class tende a ser uma classe grande que centraliza muitas funcionalidades (responsabilidades) de um sistema ao mesmo tempo, o que leva a ser uma classe complexa []. Finalmente, a anomalia Shotgun Surgery [] corresponde a uma classe cuja modificação poderá implicar muitas pequenas modificações em muitas outras classes do sistema, em forma de cascata. Na Fig., a classe MediaAccessor possui indicadores das três anomalias citadas. Conforme a Fig., é possível notar que a classe MediaAccessor possui uma alta relevância para a composição de código apresentada. Sendo assim, possui uma alta interconexão de classes e qualquer alteração em seu código potencialmente afetará as outras classes com as quais está conectada. Logo, existe a possibilidade desta classe ter uma alta volatilidade também. Diante disto, resta saber se tais taxas de interconexão (escopo) e volatilidade são altas o suficiente para que a classe MediaAccessor apresente as anomalias dos tipos Divergent Change, God Class e Shotgun Surgery. III. CONFIGURAÇÕES DE ESTUDO A. Estudo de Caso: MobileMedia Para o nosso estudo pioneiro selecionamos as versões Java da aplicação de software denominada MobileMedia []. O MobileMedia é uma linha de produto de software que fornece suporte para gerenciar (criar, apagar, visualizar, reproduzir, enviar) diferentes mídias (foto, música e vídeo) em dispositivos móveis. Durante sua evolução, a arquitetura inicial do núcleo foi sistematicamente enriquecida com recursos obrigatórios, opcionais e alternativos. As características principais são: criar/excluir mídia (foto, música ou vídeo), visualizar/tocar mídia e rotular mídia. Alguns recursos opcionais, entre outros, são: transferência de foto via SMS, contar e ordenar mídia, copiar mídia e definir favoritos.

3 Por ser um software com vários estágios de evolução conhecido na literatura e amplamente utilizado como uma ferramenta para estudos envolvendo anomalias de código e propriedades da composição, como visto em [], [], [], [] e [], o MobileMedia foi escolhido como artefato de código para a análise de uma possível relação entre anomalias de código e propriedades da composição. B. Procedimentos O estudo foi dividido em três fases principais: () quantificação das propriedades de composição, () quantificação das anomalias e () análise da correlação existente entre elas. Na primeira fase, quantificamos as propriedades de composição (Seção II.A), através da aplicação das métricas propostas por [] e apresentadas na Seção III.C, sobre as versões do MobileMedia (Seção III.A), desenvolvidas em Java. A detecção de anomalias, sobre as mesmas versões, foi realizada através da ferramenta proposta por []. Para tanto, foram utilizadas as estratégias apresentadas na Seção III.C. Finalmente, analisamos a possível correlação existente entre as propriedades de composição e a ocorrência de anomalias (Seção IV). C. Quantificação Para iniciar a análise, foi necessária a construção de informações a partir de duas perspectivas: o mapeamento das propriedades de composições e das anomalias de código em todas as versões do MobileMedia (Seção III.A). Para o mapeamento das composições foram utilizadas quatro métricas para quantificar tais informações: LoI (Local Impact) [], GoI (Global Impact) [] e CoV (Composition Volatility) [], adaptadas para o contexto do paradigma orientado a objetos. As métricas LoI, GoI e CoV são descritas na Tabela I. O valor de LoI para a composição em destaque na Fig. é igual a %. Este valor equivale ao número de elementos afetados pela composição, que é igual a (MediaAcessor), sobre o total de elementos (módulos) do exemplo, que é igual a. O valor para GoI, neste exemplo, seria o mesmo valor de LoI, já que o GoI é igual ao somatório de LoI para cada composição e neste exemplo, temos apenas uma composição. A volatilidade associada à composição contabilizaria todas as dependências existentes entre os elementos que foram quebradas para promover a robustez da composição. TABELA I MÉTRICAS PARA PROPRIEDADES DE COMPOSIÇÃO Métrica LoI GoI Propriedade de Composição Escopo Escopo Definição da Métrica A relação existente entre o número de elementos de programa afetados por uma composição divididos pelo total de elementos de programas. Quantifica o escopo da composição através da relação existente entre o CoV Volatilidade número de todos os elementos afetados pelas composições existentes sobre o número total de elementos da composição. Quantifica o número de dependências quebradas em uma composição enquanto o código está sendo preparado para que a composição em questão funcione apropriadamente. Para o segundo mapeamento, foram utilizadas as estratégias propostas por Silva []. O objetivo dessas estratégias é realizar a detecção de elementos do código considerando o comportamento evolutivo do mesmo. A Tabela II apresenta as estratégias propostas por Silva []. TABELA II ESTRATÉGIAS DE DETECÇÃO DE ELEMENTOS DE CÓDIGO Anomalia Divergent Change God Class Shotgun Surgery Estratégia de Detecção Se a classe depende de muitas outras classes de muitos distintos pacotes, é grande e, ao longo da história, a dependência a outros pacotes foi crescente, então, é uma possível anomalia Divergent Change. Se a complexidade é grande ou tamanho e complexidade já eram grandes em passado recente e tais propriedades continuam crescendo, então, é uma possível anomalia God Class. Se alterações na classe potencialmente afetam muitos métodos e muitas outras classes e muitas são as classes que herdam direta ou indiretamente desta classe, então, é uma possível anomalia Shotgun Surgery. A partir das informações levantadas pela análise da quantificação das propriedades da composição (Tabela I) e da quantificação das anomalias (Tabela II), podemos avaliar a possibilidade de existência de uma correlação entre propriedades da composição e anomalias de código. IV. DISCUSSÃO A evolução de programas é guiada por atualizações regulares em seus módulos com o objetivo de atender a demanda por novos requisitos. Este processo é facilitado quando a evolução acontece de forma estável e livre de anomalias. Neste contexto, sendo o gerenciamento das propriedades de composição um fator determinante para o gerenciamento da estabilidade, a evolução do MobileMedia foi analisada e discutida sob a perspectiva da influência das propriedades de composição na

4 ocorrência de anomalias. A discussão é guiada pelas métricas definidas na Seção III.C. Escopo global vs. Anomalias. Como podemos observar na Fig., o escopo global das composições tende a se manter constante; enquanto que o número de ocorrências de anomalias tende a variar. Apenas as versões V e V apresentam o mesmo número de anomalias. Nas demais versões, há uma variação significativa. Enquanto GoI não variou de forma expressiva, o número de anomalias entre as versões cresceu em quase %. Esta falta de correlação se explica pelo fato do cálculo do escopo global considerar todas as composições existentes em cada uma das versões. Isto significa que os valores de GoI também consideram o escopo das composições dos módulos não infectados por anomalias. Total de Anomalias Figura. Escopo Global vs. Anomalias. Escopo dos módulos é um bom indicador da ocorrência de anomalias. Analisando isoladamente o escopo dos módulos anômalos, percebemos claramente a relação existente entre o escopo do módulo e a ocorrência de anomalias, através dos valores de LoI. A Fig. ilustra este comportamento. Em particular, o módulo MediaAccessor (V), apresenta-se infectado pelas anomalias do tipo Divergent Change, God Class e Shotgun Surgery, o que certamente explica o maior valor de escopo para V. Total de Anomalias Anomalias Escopo V V V V V V Figura. Escopo Local vs. Anomalias. Versões do MobileMedia Anomalias Escopo Local V V V V V V Versões do MobileMedia,,,,,,,,,,,,,,,,,, GoI LoI De forma complementar, a análise isolada dos módulos de V indica que o módulo MediaAccessor se encontra entre os módulos de maiores escopos da versão. Os módulos MediaController e MediaListController também aparecem entre os módulos com maiores escopos, sendo o primeiro também infectado pelas anomalias Divergent Change e God Class, e o segundo pela anomalia Divergent Change. Esta concentração dos módulos anômalos no maior nível do escopo é um indicador forte da relação existente entre as propriedades de composição e a ocorrência de anomalias. Módulos voláteis tendem a ser anômalos. A Fig. ilustra a variação da volatilidade dos módulos anômalos versão a versão. De acordo com os valores de CoV, os módulos com o maior número de anomalias instaladas foram também os que apresentaram o maior número de quebra de dependências ao longo do processo de evolução. Analisando os valores de CoV, podemos identificar que a volatilidade também se relaciona com a ocorrência de anomalias. Em particular, o módulo MediaAccessor foi ao mesmo tempo o módulo que sofreu mais quebras de dependências e o que possui as três anomalias da análise instaladas (DC, GC e SS). Total de Anomalias Anomalias Volatilidade V V V V V V Figura. Volatilidade vs. Anomalias. Versões do MobileMedia V. TRABALHOS RELACIONADOS Dantas et al. [], conduziu um estudo pioneiro sobre o impacto das propriedades de composição código na estabilidade de sistemas de software em evolução, usando técnicas de programação avançadas. Segundo os autores, a estabilidade de sistemas é afetada negativamente pelos efeitos das propriedades de composição. No campo das anomalias, Padilha [] identificou que ainda falta conhecimento empírico quanto à eficácia de métricas de interesse na identificação de anomalias de código, apesar de já terem sido utilizadas em estudos experimentais. Em [] foram investigadas se métricas de interesse podem fornecer indicadores úteis para a detecção de algumas anomalias de código, dentre elas, Divergent Change, God Class e Shotgun Surgery. O estudo feito em [] apresenta um sistema para detectar anomalias código arquitetonicamente relevantes e que ajuda os desenvolvedores a priorizarem a remoção de anomalias de acordo com uma classificação de anomalias. Já em [] foi apresentado um estudo empírico sobre a influência de anomalias de código sobre os sintomas de degradação arquiteturais, analisando a relação entre anomalias de código e problemas arquiteturais. Por fim, um estudo feito em [] estava incluído a detecção de anomalias nas versões em evolução do MobileMedia, onde a utilização de estratégias de detecção formadas por métricas que consideram características do histórico de evolução foi proposta CoV

5 e avaliada. Entretanto, a estratégia utilizada por Silva em [] não obteve um resultado com % de acerto para a detecção, deixando margem para melhorias. Neste contexto, muitos pesquisadores tem investigado o comportamento anômalo dos elementos de código [], [], [], [] e []. Em paralelo, trabalhos que analisam as propriedades da composição, como em [], [] e [], têm sido reportados. Contudo, nenhum trabalho relaciona as propriedades da composição de código com a ocorrência de anomalias de código. VI. AMEAÇAS À VALIDAÇÃO Uma das ameaças mais relevantes do nosso estudo diz respeito à validade externa. Ameaças à validação externas são condições que não permitem a generalização dos resultados. A fim de minimizar esta ameaça, escolhemos uma aplicação já utilizada em outros estudos empíricos []. Esta aplicação é representativa de projetos do mundo real e possui um tamanho significativo. Além disso, ela contém ocorrências de anomalias e também possui cenários ricos para analisar as propriedades de composição sobre diferentes aspectos em um cenário evolutivo. Desta forma, através dela foi possível observar as diferenças entre os resultados. No entanto, ainda é necessário realizar outras avaliações com outras aplicações similares de modo a fornecer maiores evidências sobre as nossas conclusões. VII. CONSIDERAÇÕES FINAIS Este trabalho relatou uma investigação exploratória sobre a relação existente entre as propriedades de composição e as anomalias de código. Através deste estudo preliminar, foi possível adquirir conhecimento sobre a relação existente entre as propriedades de composição e a ocorrência de anomalias de código. Torna-se evidente que os programadores devem ter ciência do impacto que as propriedades de composição geram sobre o código e como gerenciá-lo de modo a minimizar a ocorrência de anomalias. Neste contexto, as propriedades de composição, escopo local e volatilidade, mostraram-se mais relacionados com ocorrência de anomalias. O escopo global, por considerar todas as composições de uma versão do software, afasta-se muito no que diz respeito a indicar a ocorrência de anomalias. Como trabalho futuro, vislumbramos a inclusão de novas aplicações para validar os resultados aqui apresentados, bem como a sugestão de heurísticas expressem o relacionamento existente entre as propriedades de composição com a ocorrência de anomalias de código. AGRADECIMENTOS Agradecimento à Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES) pelo financiamento de concessão de bolsa de estudos de pós-graduação, em nível de mestrado, ao autor correspondente Felipe Torres. REFERÊNCIAS [] M. Fowler, K. Beck, J. Brant, W. Opdyke and D. Roberts, Refactoring: Improving the Design of Existing Code.. ed. [S.l.]: Addison-Wesley Professional,. [] F. Dantas, A. Garcia and J. Whittle, On the role of composition code properties on evolving programs. In: ACM. Proceedings of the ACM- IEEE international symposium on Empirical software engineering and measurement. [S.l.], p... [] I. Macía, R. Arcoverde, A. Garcia, C. Chavez and A. v. Staa, On the relevance of code anomalies for identifying architecture degradation symptoms. In: th European Conference on Software Maintenance and Reengineering. [S.l.], p.. IEEE Computer Society Washington, DC, USA,. [] L. M. d. Silva, F. Dantas, G. Honorato, A. Garcia and C. Lucena, Detecting modularity flaws of evolving code: What the history can reveal?. Fourth Brazilian Symposium. In: IEEE. Software Components, Architectures and Reuse (SBCARS) [S.l.], p... [] R. Arcoverde, I. Macía, A. Garcia and A. v. Staa, Automatically detecting architecturally-relevant code anomalies. In: IEEE PRESS. Proceedings of the Third International Workshop on Recommendation Systems for Software Engineering. [S.l.], p... [] A. L. Silva, Reuso de Estratégias Sensíveis a Domínio para Detecção de Anomalias de Código - Um Estudo de Múltiplos Casos. Dissertação (Mestrado) - Pontifícia Universidade Católica do Rio de Janeiro (PUC- Rio). Disponível em: < completo.pdf>. Agosto,. [] J. Padilha, Detecção de Anomalias de Código Usando Métricas de Software. Dissertação (Mestrado) - UFMG,. [] E. Figueiredo, N. Cacho, C. Sant Anna, M. Monteiro, U. Kulesza, A. Garcia, S. Soares, F. Ferrari, S. Khan, F. Filho and F. Dantas, Evolving software product lines with aspects. In: IEEE. Software Engineering, p.. On th International Conference ACM/IEEE. ICSE. [S.l.],. [] D. Albuquerque, A. Garcia, R. Oliveira, and W. Oizumi, Detecção interativa de anomalias de código: Um estudo experimental. In: Proceedings of Workshop on Software Modularity, WMOD. [S.l.: s.n.],. [] D. Kelly, A study of design characteristics in evolving software using stability as a criterion. IEEE Transactions on Software Engineering, v., n., p... [] K. Sethi, Y. Cai, S. Wong, A. Garcia and C. Sant'Anna, From retrospect to prospect: Assessing modularity and stability from software architecture. In: WICSA/ECSA. Joint Working IEEE/IFIP Conference on Software Architecture, & European Conference on Software Architecture. [S.l.], p... [] F. Dantas and A. Garcia, Stability of product lines with composition filters: An exploratory study. AOSD/ESCOT, v., p. -. Disponível em: < p=rep&type=pdf>.. [] D. d. L. Albuquerque, Automatic detection of architectural violations in evolutionary systems. Dissertação (Mestrado) - Universidade do Minho, Disponível em: < ssertacao_pg.pdf>. Maio,. [] M. Kaur and P. Kumar, Spotting the phenomenon of bad smells in mobilemedia product line architecture. In: IEEE. Seventh International Conference on Contemporary Computing (IC). [S.l.], p... [] W. N. Oizumi, A. F. Garcia, T. E. Colanzi, M. Ferreira and A. v. Staa, On the relationship of code-anomaly agglomerations and architectural problems. Journal of Software Engineering Research and Development, Springer, v., n., p... [] I. Macía, C. Sant'Anna and A. v. Staa, Detectando problemas de design em diagramas de classes: Um estudo experimental. In: V Experimental Software Engineering Latin American Workshop (ESELAW). [s.n.].. [] L. M. d. Silva, Uma Abordagem Sensível à História para Detecção de Anomalias de Código. Dissertação (Mestrado) - Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio). Disponível em: < Agosto,.

6 [] F. Dantas, Reuse vs. maintainability: Revealing the impact of composition code properties. In: Proceedings of the rd International Conference on Software Engineering (ICSE), p.. Disponível em: < ACM. ISBN New York, NY, USA,. Felipe Torres, Mestre em Ciência da Computação pelo Programa de Pós-Graduação em Ciência da Computação (PPgCC) pela parceria entre Universidade do Estado do Rio Grande do Norte (UERN) e Universidade Federal Rural do Semi-Árido (UFERSA). Bacharel em Ciência da Computação pela UFERSA e ex-professor substituto da UFERSA. Atualmente é professor substituto da UERN. Suas pesquisas se concentram na grande Área de Engenharia de Software e desde trabalha com projetos de Startups de TI. Francisco Dantas, Doutor em Informática pela Pontifícia Universidade Católica do Rio de Janeiro, Rio de Janeiro/RJ, em colaboração com a Universidade de Lancaster, Lancaster/UK. É professor da Universidade do Estado do Rio Grande do Norte. Tem experiência na área de Ciência da Computação, com ênfase em Engenharia de Software, atuando principalmente nos seguintes temas: Técnicas Avançadas para Programação Modular, Linhas de Produto, Métricas de Software, Arquitetura de Software e Engenharia de Software Empírica.

10 Lições Aprendidas ao Desenvolver um Estudo na Indústria

10 Lições Aprendidas ao Desenvolver um Estudo na Indústria 10 Lições Aprendidas ao Desenvolver um Estudo na Indústria Manuele Ferreira OPUS Research Group LES PUC-Rio {manueleferreira}@inf.puc-rio.br LES DI PUC-Rio - Brazil OPUS Group Método Pesquisa-ação Solução

Leia mais

DEFINING METRIC THRESHOLDS FOR SOFTWARE PRODUCT LINES: A COMPARATIVE STUDY

DEFINING METRIC THRESHOLDS FOR SOFTWARE PRODUCT LINES: A COMPARATIVE STUDY DEFINING METRIC THRESHOLDS FOR SOFTWARE PRODUCT LINES: A COMPARATIVE STUDY APRESENTADO POR: BRUNO LUAN DE SOUSA QUA L I DA DE E MEDIÇÃO DE SOFTWA R E U N I V E R S I DA D E F E D E R A L D E MINAS G E

Leia mais

Um Método para Identificação de Bad Smells a partir de Diagramas de Classes

Um Método para Identificação de Bad Smells a partir de Diagramas de Classes Um Método para Identificação de Bad Smells a partir de Diagramas de Classes Henrique Gomes Nunes 1, Mariza A. S. Bigonha 1, Kecia A. M. Ferreira 2, Flávio Airjan Madureira 1 1 Departamento de Ciência da

Leia mais

Reengenharia, Refatoração e Bad Smell

Reengenharia, Refatoração e Bad Smell DCC / ICEx / UFMG Reengenharia, Refatoração e Bad Smell Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Reengenharia de Sistemas Reestruturação ou reescrita de parte ou de todo um sistema legado

Leia mais

Aula 2: Planejamento da RS

Aula 2: Planejamento da RS Universidade de São Paulo Instituto de Ciências Matemática e de Computação SSC 5905 - Revisão Sistemática Aula 2: da RS Profa. Dra. Elisa Yumi Nakagawa 1. Semestre de 2013 Processo de Revisão Sistemática

Leia mais

Ciclo de vida: fases x atividades

Ciclo de vida: fases x atividades Ciclo de vida Fase de definição Análise e Especificação Estudo de Viabilidade Estimativas Planejamento Fase de desenvolvimento Design Implementação e integração Verificação e Validação Fase de operação

Leia mais

15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software

15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software Professor Ariel da Silva Dias Modelos de Processo de Software Conjunto de atividades que leva à produção de um produto de Software [Sommerville,2011]; Podemos contar com ferramentas de apoio com o objetivo

Leia mais

Instituto Federal da Bahia Análise e Desenvolvimento de Sistemas INF022 Tópicos Avançados. Medição de Sofware

Instituto Federal da Bahia Análise e Desenvolvimento de Sistemas INF022 Tópicos Avançados. Medição de Sofware Instituto Federal da Bahia Análise e Desenvolvimento de Sistemas INF022 Tópicos Avançados Medição de Sofware Prof. Dr. Renato L. Novais renato@ifba.edu.br Agenda Medição de software Por que medir? Exemplos

Leia mais

3 Trabalhos Relacionados

3 Trabalhos Relacionados 3 Trabalhos Relacionados O objetivo deste capítulo é situar o leitor quanto às características deste trabalho em relação ao que já está disponível na literatura, além de apontar possíveis vantagens e desvantagens

Leia mais

Estratégias e Perfis de Programadores Iniciantes na Identificação de Anomalias de Modularidade de Software

Estratégias e Perfis de Programadores Iniciantes na Identificação de Anomalias de Modularidade de Software Estratégias e Perfis de Programadores Iniciantes na Identificação de Anomalias de Modularidade de Software João Marcelo Moraes Fernandes, Glauco de Figueiredo Carneiro Universidade Salvador (UNIFACS),

Leia mais

5 Estratégias de Detecção Sensíveis à História

5 Estratégias de Detecção Sensíveis à História 5 Estratégias de Detecção Sensíveis à História O objetivo dessas estratégias é realizar a detecção de elementos do código considerando algum comportamento evolutivo do mesmo. Nesse sentido, estratégias

Leia mais

5 Processo de Reificação e de Desenvolvimento com ACCA

5 Processo de Reificação e de Desenvolvimento com ACCA Uma Arquitetura para a Coordenação e a Composição de Artefatos de Software 53 5 Processo de Reificação e de Desenvolvimento com ACCA Resumo Este capítulo visa esclarecer e descrever atividades existentes

Leia mais

10/10/2012. Artigo: Autores:

10/10/2012. Artigo: Autores: Artigo: Apresentar um estudo sistemático sobre as métricas de acoplamento na Programação Orientada a Aspectos e seu impacto na manutenibilidade e estabilidade do projeto. Autores: Rachel Burrows, Alessandro

Leia mais

3 Arquitetura para a Coordenação e a Composição de Artefatos de Software

3 Arquitetura para a Coordenação e a Composição de Artefatos de Software Uma Arquitetura para a Coordenação e a de Artefatos de 23 3 Arquitetura para a Coordenação e a de Artefatos de Resumo Este capítulo apresenta a arquitetura ACCA, que é a parte central deste trabalho. A

Leia mais

Estudo de Visualizações da Evolução de Códigos Fonte de Software

Estudo de Visualizações da Evolução de Códigos Fonte de Software Estudo de Visualizações da Evolução de Códigos Fonte de Software Marcello Henrique Dias de MOURA Hugo Alexandre Dantas do NASCIMENTO Instituto de Informática Universidade Federal de Goiás Goiânia, Goiás,

Leia mais

Profs. Rosana Braga e Paulo C. Masiero ICMC-USP 1º. 2017

Profs. Rosana Braga e Paulo C. Masiero ICMC-USP 1º. 2017 Profs. Rosana Braga e Paulo C. Masiero ICMC-USP 1º. 2017 1. Motivação 2. Conceitos Básicos 3. Engenharia de Software Experimental Revolução na tecnologia da informação: Software faz parte da maioria dos

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE 1 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE Nickerson Fonseca Ferreira nickerson.ferreira@ifrn.edu.br Introdução 2 Antes de qualquer

Leia mais

Identifying thresholds for object-oriented software metrics

Identifying thresholds for object-oriented software metrics Identifying thresholds for object-oriented software metrics Kecia A.M. Ferreira 1 Mariza A.S. Bigonha 1 Roberto S. Bigonha 1 Luiz F.O. Mendes 1 Heitor C. Almeida 1 1 Dept. Computer Science, Federal University

Leia mais

BibIme - Um Software Gerenciador de Bibliotecas Produzido de Forma Cooperativa

BibIme - Um Software Gerenciador de Bibliotecas Produzido de Forma Cooperativa BibIme - Um Software Gerenciador de Bibliotecas Produzido de Forma Cooperativa Dairton Bassi, Kelly Braghetto, Eduardo Colli, Fabio Kon, João Eduardo Ferreira Instituto de Matemática e Estatística Universidade

Leia mais

- Engenharia Reversa - Evolução de Sofware. Desenvolvimento como. Requisitos o que. Sistema porque. Profa. Dra. Sandra Fabbri. operacional.

- Engenharia Reversa - Evolução de Sofware. Desenvolvimento como. Requisitos o que. Sistema porque. Profa. Dra. Sandra Fabbri. operacional. Unidade V Evolução de Sofware - Engenharia Reversa - Profa. Dra. Sandra Fabbri Fases Genéricas do Ciclo de Vida Engenharia Sistemas Análise Projeto Codificação Manutenção Teste Sistema Requisitos Desenvolvimento

Leia mais

UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO CENTRO DE INFORMÁTICA

UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO CENTRO DE INFORMÁTICA UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO CENTRO DE INFORMÁTICA Behaviour Driven Development (BDD), um estudo de caso. PROPOSTA DE TRABALHO DE GRADUAÇÃO Aluno: Marcos Vinícius

Leia mais

Desenvolvimento de uma Linha de Produto de Software para Módulos de Aprendizagem Interativa

Desenvolvimento de uma Linha de Produto de Software para Módulos de Aprendizagem Interativa Desenvolvimento de uma Linha de Produto de Software para Módulos de Aprendizagem Interativa Danilo Leite Dalmon Orientador: Prof. Dr. Leônidas de O. Brandão Qualificação de Mestrado Instituto de Matemática

Leia mais

Introdução INTRODUÇÃO AO SWEBOK. Origens do corpo de conhecimentos da Engenharia de Software: Introdução a Computação e Engenharia de Software

Introdução INTRODUÇÃO AO SWEBOK. Origens do corpo de conhecimentos da Engenharia de Software: Introdução a Computação e Engenharia de Software INTRODUÇÃO AO SWEBOK Introdução a Computação e Engenharia de Software Profa. Cynthia Pinheiro Introdução Origens do corpo de conhecimentos da Engenharia de Software: Engenharia da Computação Ciência da

Leia mais

Isela Macía Bertrán. Avaliação da Qualidade de Software com Base em Modelos UML. Dissertação de Mestrado

Isela Macía Bertrán. Avaliação da Qualidade de Software com Base em Modelos UML. Dissertação de Mestrado Isela Macía Bertrán Avaliação da Qualidade de Software com Base em Modelos UML Dissertação de Mestrado Dissertação apresentada como requisito parcial para a obtenção do título de Mestre pelo Programa de

Leia mais

Adriano Medeiros dos Santos. Suporte a Componentes Compostos Para o Middleware SCS. Dissertação de Mestrado

Adriano Medeiros dos Santos. Suporte a Componentes Compostos Para o Middleware SCS. Dissertação de Mestrado Adriano Medeiros dos Santos Suporte a Componentes Compostos Para o Middleware SCS Dissertação de Mestrado Dissertação apresentada ao Programa de Pós graduação em Informática do Departamento de Informática

Leia mais

Tipos para uma Linguagem de Transformação

Tipos para uma Linguagem de Transformação Universidade Federal de Pernambuco Graduação em Ciência da Computação Centro de Informática Proposta de Trabalho de Graduação Tipos para uma Linguagem de Transformação Aluno: Orientador: Alexandra Barreto

Leia mais

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

INTRODUÇÃO A ENGENHARIA DE SOFTWARE Universidade Estadual Vale do Acaraú AGENDA INTRODUÇÃO A ENGENHARIA DE SOFTWARE Processos Modelos de Desenvolvimento de Software Engenharia de Requisitos Projeto de Interface com o Usuário Projeto Arquitetural

Leia mais

Engenharia de Software II

Engenharia de Software II Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Engenharia de Software II Aula 07 (rogerio@fct.unesp.br) Conceitos Básicos do Rational Unified

Leia mais

3.1 Reflexão Computacional

3.1 Reflexão Computacional 3 Adaptação Dinâmica Adaptação dinâmica é a capacidade de um sistema ser modificado durante sua execução para se adequar a novas necessidades. Recentemente, esse tem se tornado um tópico de pesquisa proeminente

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE CURSO TÉCNICO DE INFORMÁTICA Módulo A ENGENHARIA DE SOFTWARE Processos de Software O PROCESSO É LENTO... Todo software deve ser construído de forma organizada, através de processos. Um processo pode ser

Leia mais

Usando aprendizagem de máquina para identificar anomalias de design prejudiciais à manutenibilidade: um estudo preliminar

Usando aprendizagem de máquina para identificar anomalias de design prejudiciais à manutenibilidade: um estudo preliminar Usando aprendizagem de máquina para identificar anomalias de design prejudiciais à manutenibilidade: um estudo preliminar Fabrício F. Cardim 1, Cláudio Sant Anna 1 1 Departamento de Ciência da Computação

Leia mais

um estudo exploratório sobre a identificação de aglomerações de interesses em alto nível

um estudo exploratório sobre a identificação de aglomerações de interesses em alto nível um estudo exploratório sobre a identificação de aglomerações de interesses em alto nível thiago delgado pinto tpinto@inf.puc-rio.br inf2921 introdução à engenharia de software experimental puc-rio prof.

Leia mais

Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo

Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo Ciência da Computação Análise e Projeto Orientado a Objetos UML Anderson Belgamo 1 Evolução do Software O rápido crescimento da capacidade computacional das máquinas resultou na demanda por sistemas de

Leia mais

Evolução de Software e Refatoração. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 21 1

Evolução de Software e Refatoração. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 21 1 Evolução de Software e Refatoração Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 21 1 Mudança de software Mudança de software é inevitável Novos requisitos surgem quando o software

Leia mais

Evolução de Software. Agenda a Aula. Evolução de Software. Evolução de Software. Atividades Comuns. Atividades de Desenvolvimento

Evolução de Software. Agenda a Aula. Evolução de Software. Evolução de Software. Atividades Comuns. Atividades de Desenvolvimento Engenharia de Software Aula 12 Atividades Comuns Evolução de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@gmail.com 16 Abril 2012 1. Especificação de requisitos 2. Projeto de Software

Leia mais

Tarefas de Gerenciamento de Configuração

Tarefas de Gerenciamento de Configuração Tarefas de Gerenciamento de Configuração 1- Tarefas Preliminares 2- Identificação 3- Controle de Mudanças 4- Controle de Versão 5- Auditoria de Configuração 6- Relato de Situação 7- Controle de Interface

Leia mais

Autor 1 Orientador: 1. dia de mês de ano

Autor 1 Orientador: 1. dia de mês de ano Título Autor 1 Orientador: 1 1 Laboratório de Sistemas de Computação Universidade Federal de Santa Maria dia de mês de ano Roteiro Introdução Fundamentação Desenvolvimento Resultados Conclusão e Trabalhos

Leia mais

Aula 12: Princípios da Coesão de Pacotes

Aula 12: Princípios da Coesão de Pacotes Aula 12: Princípios da Coesão de Pacotes Programação Modular Jefersson Alex dos Santos (jefersson@dcc.ufmg.br) Roteiro Projeto de classes Modularização fundamental para garantir a qualidade de software

Leia mais

15 Congresso de Iniciação Científica AVALIAÇÃO DA RELAÇÃO ENTRE EFICÁCIA E CUSTO NA ATIVIDADE DE TESTE DE SOFTWARE

15 Congresso de Iniciação Científica AVALIAÇÃO DA RELAÇÃO ENTRE EFICÁCIA E CUSTO NA ATIVIDADE DE TESTE DE SOFTWARE 15 Congresso de Iniciação Científica AVALIAÇÃO DA RELAÇÃO ENTRE EFICÁCIA E CUSTO NA ATIVIDADE DE TESTE DE SOFTWARE Autor(es) CAROLINA FONTANA Orientador(es) Waldo Luís de Lucca Apoio Financeiro FAPIC 1.

Leia mais

Objetivo do Curso. Introdução à Interação Humano-Computador. Professora: Raquel Oliveira Prates

Objetivo do Curso. Introdução à Interação Humano-Computador. Professora: Raquel Oliveira Prates Introdução à Interação Humano-Computador Professora: Raquel Oliveira Prates http://www.dcc.ufmg.br/~rprates/ihc \ Aula 1: 14/05 1 Objetivo do Curso Apresentação dos conceitos básicos da área de Interação

Leia mais

CRI Minas Indústria 4.0. Case Vallourec: Golden Batch na produção de tubos

CRI Minas Indústria 4.0. Case Vallourec: Golden Batch na produção de tubos CRI Minas Indústria 4.0 Case Vallourec: Golden Batch na produção de tubos 02 05 2018 G o l d e n B a t c h A n a l y s i s Case Vallourec Líder mundial em soluções tubulares premium, a Vallourec assegura

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Engenharia de Software Arquitetura de Software Prof.: Fabrízzio A A M N Soares Aula 1 - Apresentação Ementa Definição de arquitetura de software. Importância e impacto

Leia mais

Revisão Sistemática da Literatura sobre Métodos de Localização de Características

Revisão Sistemática da Literatura sobre Métodos de Localização de Características Revisão Sistemática da Literatura sobre Métodos de Localização de Características Cleice Souza 14 de maio de 2014 Roteiro Introdução Característica ou Feature Planejamento da Revisão Sistemática Condução

Leia mais

Contexto. Motivação. variabilidade. variabilidade

Contexto. Motivação. variabilidade. variabilidade Representação de Variabilidades em Componentes de Negócio no Contexto da Engenharia de Domínio Regiane Oliveira Ana Paula Blois Aline Vasconcelos Claudia Werner Roteiro Contexto Motivação Variabilidade

Leia mais

Aula 01: Apresentação. Revisão para Prova 1. Aula 02: Técnicas de Reuso. Panorama de Reuso. Aula 03: POO e Padrões. Bibliografia da Aula 02

Aula 01: Apresentação. Revisão para Prova 1. Aula 02: Técnicas de Reuso. Panorama de Reuso. Aula 03: POO e Padrões. Bibliografia da Aula 02 Reutilização de Software Aula 13 Aula 01: Apresentação Revisão para Prova 1 Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com 23 Setembro 2013 Bibliografia Método de avaliação

Leia mais

Engenharia de Software

Engenharia de Software PLANO DE AVALIAÇÕES Engenharia de Software 1ª AP: 08 de setembro 2ª AP: 13 de outubro 3ª AP: 10 de novembro NAF: 17 de novembro Referência bibliográfica: SOMMERVILLE, I. Engenharia de Software. 8ª ed.

Leia mais

UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO PROPOSTA DE TRABALHO DE CONCLUSÃO DE CURSO

UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO PROPOSTA DE TRABALHO DE CONCLUSÃO DE CURSO UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO 2014.2 PROPOSTA DE TRABALHO DE CONCLUSÃO DE CURSO O USO DE PROCESSOS DE GESTÃO NA AVALIAÇÃO DA EFETIVIDADE DA

Leia mais

Refatoração de Software

Refatoração de Software Refatoração de Software O que é? Atividade em que a estrutura interna de um software é modificada de modo que seu comportamento externo seja preservado; O objetivo é melhorar a qualidade do software; Cada

Leia mais

Composição e Geração de Aplicações usando Aspectos

Composição e Geração de Aplicações usando Aspectos Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior 1 Rosana Teresinha Vaccare Braga 1 1 Programa de Mestrado em Ciências de Computação e Matemática Computacional

Leia mais

FATORES E MÉTRICAS DE QUALIDADE

FATORES E MÉTRICAS DE QUALIDADE FATORES E MÉTRICAS DE QUALIDADE 1 2 FATORES DE QUALIDADE OPERAÇÃO DO PRODUTO CORRETITUDE (FAZ O QUE EU QUERO?) CONFIABILIDADE (SE COMPORTA COM PRECISÃO?) EFICIÊNCIA (RODARÁ TÃO BEM QUANTO POSSÍVEL?) INTEGRIDADE

Leia mais

Bibliografia. Quais são os problemas? capacidade de construção. acompanha a demanda por novos programas. ameaçada por projetos ruins.

Bibliografia. Quais são os problemas? capacidade de construção. acompanha a demanda por novos programas. ameaçada por projetos ruins. Bibliografia Quais são os problemas? 4 A sofisticação do software ultrapassou nossa capacidade de construção. 4 Nossa capacidade de construir programas não acompanha a demanda por novos programas. 4 Nossa

Leia mais

Uma Abordagem para a Evolução Transparente em Repositórios de Medição de Software

Uma Abordagem para a Evolução Transparente em Repositórios de Medição de Software Bernardo Arraes Vinhosa Uma Abordagem para a Evolução Transparente em Repositórios de Medição de Software O sistema Clairvoyant Dissertação de Mestrado Dissertação apresentada como requisito parcial para

Leia mais

Diferença estrutural entre versões de um programa

Diferença estrutural entre versões de um programa Diferença estrutural entre versões de um programa @ UFCG 6 de agosto de 2008 Rodrigo Rocha Questão de Pesquisa A partir duas versões de um programa, como descobrir quais mudanças

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Processos de Software Professor: Charles Leite O processo de software Um conjunto estruturado de atividades, procedimentos, artefatos e ferramentas necessários para o desenvolvimento

Leia mais

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Processos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Objetivos Apresentar modelos de processos de software Descrever três modelos genéricos de processo e quando

Leia mais

Uma Estratégia para Avaliação e Evolução de Especificações de Teste Funcional de Software

Uma Estratégia para Avaliação e Evolução de Especificações de Teste Funcional de Software Uma Estratégia para Avaliação e Evolução de Especificações de Teste Funcional de Software Gilmar Ferreira ARANTES; Plínio de Sá Leitão JÚNIOR Universidade Federal de Goiás Instituto de Informática gilmar.arantes@gmail.com;

Leia mais

As Visões. Visões arquiteturais (revisão)

As Visões. Visões arquiteturais (revisão) As 4 + 1 Visões Jair C Leite Visões arquiteturais (revisão) Separar diferentes aspectos em visões separadas com o objetivo de gerenciar complexidade. Cada visão descreve diferentes conceitos da engenharia.

Leia mais

Verificação e Validação. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 22 Slide 1

Verificação e Validação. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 22 Slide 1 Verificação e Validação Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 22 Slide 1 Objetivos Apresentar a verificação e validação de software e discutir a distinção entre elas Descrever

Leia mais

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO Sumário PREFÁCIO...3 MODELO DA DOCUMENTAÇÃO...3 1. INTRODUÇÃO AO DOCUMENTO...3 1.1. Tema...3 2. DESCRIÇÃO

Leia mais

Medidas de Esforço de Desenvolvimento de Software

Medidas de Esforço de Desenvolvimento de Software Medidas de Esforço de Desenvolvimento de Software Unidade 1 Fundamentos de Métricas e Medidas Luiz Leão luizleao@gmail.com http://www.luizleao.com Unidade 1 Fundamentos de métricas e medidas Introdução

Leia mais

Uma Proposta de Múltiplas Visões Coordenadas para Apoiar Análise de Impacto de Mudança

Uma Proposta de Múltiplas Visões Coordenadas para Apoiar Análise de Impacto de Mudança Uma Proposta de Múltiplas Visões Coordenadas para Apoiar Análise de Impacto de Mudança Fernanda Madeiral Delfim 1, Rogério Eduardo Garcia 1 1 Departamento de Matemática e Computação Faculdade de Ciências

Leia mais

Refatoração: uma introdução. Prof. André Luiz Peron Martins Lanna

Refatoração: uma introdução. Prof. André Luiz Peron Martins Lanna Refatoração: uma introdução Prof. André Luiz Peron Martins Lanna Agenda Introdução Idéias preliminares Um primeiro exemplo Conclusões Bibliografia Introdução Em DSW o assunto principal foi o Projeto de

Leia mais

TEMPLATE PARA TCC IFFAR - SVS

TEMPLATE PARA TCC IFFAR - SVS MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA FARROUPILHA - CAMPUS SÃO VICENTE DO SUL TEMPLATE PARA TCC IFFAR - SVS TRABALHO

Leia mais

Sobre a execução de workflows científicos sobre diferentes estrategias de dados de entrada - Uma Avaliação Experimental

Sobre a execução de workflows científicos sobre diferentes estrategias de dados de entrada - Uma Avaliação Experimental Sobre a execução de workflows científicos sobre diferentes estrategias de dados de entrada - Uma Avaliação Experimental Douglas Oliveira Cristina Boeres Fábio Laboratório Nacional de Computação Científica

Leia mais

10/09/2012. Preliminary Guidelines for Empirical Research in Software Engineering

10/09/2012. Preliminary Guidelines for Empirical Research in Software Engineering Preliminary Guidelines for Empirical Research in Software Engineering Kitchenham, B.A., Pfleeger, S.L., Pickard, L. M., Jones, P.W., Hoaglin, D.C., El-Emam, K., and Rosenberg, J. Aluna: Erica Rodrigues

Leia mais

Requisitos de sistemas

Requisitos de sistemas Requisitos de sistemas Unidade III - Casos de Uso Identificação de casos de uso Conceitos de orientação a objetos Modelagem do diagrama de classes e casos de uso 1 Casos de uso CONCEITO Especifica o comportamento

Leia mais

Processos de Software

Processos de Software Processos de Software Centro de Informática - Universidade Federal de Pernambuco Kiev Gama kiev@cin.ufpe.br Slides originais elaborados por Ian Sommerville e adaptado pelos profs. Márcio Cornélio, Vinicius

Leia mais

Arquitetura de Software: Documentação

Arquitetura de Software: Documentação Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Arquitetura de Software: Documentação SSC-0527 Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa Tiago Volpato Introdução

Leia mais

18/10/2013. Resumo. Os mecanismos. Introdução. Padrões de projeto (OO) Compilação condicional

18/10/2013. Resumo. Os mecanismos. Introdução. Padrões de projeto (OO) Compilação condicional On the Use of Feature-Oriented Programming for Evolving Software Product Lines A Comparative Study Gabriel Coutinho Sousa Ferreira, Felipe Nunes Gaia, Eduardo Figueiredo and Marcelo de Almeida Maia {gabriel,

Leia mais

ArchLint: Uma Ferramenta para Detecção de Violações Arquiteturais usando Histórico de Versões

ArchLint: Uma Ferramenta para Detecção de Violações Arquiteturais usando Histórico de Versões ArchLint: Uma Ferramenta para Detecção de Violações Arquiteturais usando Histórico de Versões Cristiano Maffort 1, Marco Tulio Valente 1, Mariza A. S. Bigonha 1, Leonardo H. Silva 1, Gladston Junio Aparecido

Leia mais

Histórico: Linha de Produção

Histórico: Linha de Produção Escola Regional de Informática ERI-MG Linha de Produtos de Software: Conceitos Histórico: Linha de Produção Produtos em geral eram feitos manualmente Com o crescimento do consumo, foi necessário automatizar

Leia mais

Arquitetura de Software: Introdução

Arquitetura de Software: Introdução Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Arquitetura de Software: Introdução SSC-121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2012 Conteúdo

Leia mais

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

Notas de Aula 03: Introdução a Orientação a Objetos e a UML Notas de Aula 03: Introdução a Orientação a Objetos e a UML Objetivos da aula: Introduzir os conceitos da Orientação à Objetos (O.O) Introduzir os conceitos da UML Relacionar os processos às ferramentas

Leia mais

Visões Arquiteturais. Arquitetura de Software Thaís Batista

Visões Arquiteturais. Arquitetura de Software Thaís Batista Visões Arquiteturais Separar diferentes aspectos em visões separadas com o objetivo de gerenciar complexidade. Cada visão descreve diferentes conceitos da Engenharia. Visões permitem reduzir a quantidade

Leia mais

Introdução ao Catalysis

Introdução ao Catalysis Introdução ao Catalysis Tópicos Avançados de Engenharia de Software João Bosco jbapf@cin.ufpe.br Roteiro Dificuldades Motivação Componentes Desenvolvimento Baseado em Componentes (DBC) Catalysis jbapf@cin.ufpe.br

Leia mais

A Reengenharia de software com o propósito de criar uma Linha de Produto de Software

A Reengenharia de software com o propósito de criar uma Linha de Produto de Software A Reengenharia de software com o propósito de criar uma Linha de Produto de Software Matheus Catarino de Aguilar 1, Jandira Guenka Palma 1 1 Departamento de Computação Universidade Estadual de Londrina

Leia mais

Uma Abordagem de Reengenharia de Software Orientado a Objetos para Componentes apoiada por Métricas

Uma Abordagem de Reengenharia de Software Orientado a Objetos para Componentes apoiada por Métricas Uma Abordagem de Reengenharia de Software Orientado a Objetos para Componentes apoiada por Métricas Ana Maria da Mota Moura Orientadoras: Cláudia Werner e Aline Vasconcelos Programa de Engenharia de Sistemas

Leia mais

Agenda da Aula. Arquitetura de Software e Padrões Arquiteturais. Elementos de um Padrão. Arquitetura de Software. Arquitetura de Software

Agenda da Aula. Arquitetura de Software e Padrões Arquiteturais. Elementos de um Padrão. Arquitetura de Software. Arquitetura de Software Reuso de Software Aula 04 Agenda da Aula Arquitetura de Software e Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com 14 Março 2012 Arquitetura de Software Padrões arquiteturais

Leia mais

Referências bibliográficas

Referências bibliográficas Referências bibliográficas 108 Referências bibliográficas [Apache09] The Apache Software Foundation - Disponível em: http://www.apache.org. Acesso em: 02/02/2009. [Archermann00] Achermann F. Nierstrasz

Leia mais

Programa Analítico de Disciplina INF323 Engenharia de Software II

Programa Analítico de Disciplina INF323 Engenharia de Software II 0 Programa Analítico de Disciplina Departamento de Informática - Centro de Ciências Exatas e Tecnológicas Número de créditos: Teóricas Práticas Total Duração em semanas: 15 Carga horária semanal 0 Períodos

Leia mais

O Efeito Coorte e o Desenvolvimento das Preferências por Moda Feminina

O Efeito Coorte e o Desenvolvimento das Preferências por Moda Feminina Christine dos Santos Pina O Efeito Coorte e o Desenvolvimento das Preferências por Moda Feminina Dissertação de Mestrado Dissertação apresentada como requisito parcial para obtenção do grau de Mestre pelo

Leia mais

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks 48 3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks Este capítulo apresenta uma visão geral da contribuição principal deste trabalho: uma abordagem orientada a aspectos para o

Leia mais

Disciplina Medições e Qualidade de Software. Tópicos da Disciplina. Método de Avaliação. Qualidade de Software.

Disciplina Medições e Qualidade de Software. Tópicos da Disciplina. Método de Avaliação. Qualidade de Software. Engenharia de Software Aula 19 Disciplina 2012-2 Medições e Qualidade de Software Medição e Qualidade de Software Terças e quintas: 9:25 as 11:05 Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@gmail.com

Leia mais

Engenharia de Software. Processos. Desenvolvimento de Software Tradicionais 2014/2. Prof. Luís Fernando Garcia

Engenharia de Software. Processos. Desenvolvimento de Software Tradicionais 2014/2. Prof. Luís Fernando Garcia Engenharia de Software Processos Desenvolvimento de Software Tradicionais 2014/2 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR Processos Um conjunto estruturado de atividades necessárias para o desenvolvimento

Leia mais

Uma Linha de Produto de Software para Módulos de Aprendizagem Interativa

Uma Linha de Produto de Software para Módulos de Aprendizagem Interativa Uma Linha de Produto de Software para Módulos de Aprendizagem Interativa Danilo Leite Dalmon Orientador: Prof. Dr. Leônidas de O. Brandão Defesa de Mestrado Instituto de Matemática e Estatística - Universidade

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE ENGENHARIA DE SOFTWARE Curso: Sistemas de Informação Profª: Janaide Nogueira ENGENHARIA DESOFTWARE APRESENTAÇÃO Formação Técnica: Informática(IFCE-Campus Tianguá-CE) Secretária Escolar(FDR) Graduação:

Leia mais

Arquiteturas de Computadores. Programa de Pós-Graduação em Ciência da Computação. Plano da aula

Arquiteturas de Computadores. Programa de Pós-Graduação em Ciência da Computação. Plano da aula Arquiteturas de Computadores Programa de Pós-Graduação em Ciência da Computação Norian Marranghello Março/Junho de 2006 Plano da aula Informações gerais Provas e testes Programa da disciplina Informações

Leia mais

Requisitos para Integração de Ferramentas de Engenharia de Software

Requisitos para Integração de Ferramentas de Engenharia de Software Requisitos para Integração de Ferramentas de Engenharia de Software Rodrigo Eduardo Silva 1 1 Departamento de Ciência da Computação Universidade Federal de Minas Gerais (UFMG) Belo Horizonte, MG Brasil

Leia mais

ISO/IEC Roteiro IEC ISO. Histórico ISO/IEC ISO

ISO/IEC Roteiro IEC ISO. Histórico ISO/IEC ISO Roteiro Processos do Ciclo de Vida de Software Diego Martins dmvb@cin.ufpe.br Histórico Objetivos Organização Processos Fundamentais Processos Organizacionais de Processo IEC ISO International Electrotechnical

Leia mais

ICET CURSO: Ciência da Computação e Sistemas de Informação (Engenharia de Software) Campus: Data: / / Nome:

ICET CURSO: Ciência da Computação e Sistemas de Informação (Engenharia de Software) Campus: Data: / / Nome: ICET CURSO: Ciência da Computação e Sistemas de Informação (Engenharia de Software) Estudos Disciplinares Campus: Data: / / Nome: RA: Turma: Questão 1: Assinale a função correta de engenharia de requisitos:

Leia mais

Engenharia de Software Processo de Desenvolvimento de Software

Engenharia de Software Processo de Desenvolvimento de Software Engenharia de Software Processo de Desenvolvimento de Software Prof. Elias Ferreira Elaborador por: Prof. Edison A. M. Morais Objetivo (1/1) Conceituar PROCESSO E CICLO DE VIDA, identificar e conceituar

Leia mais

ENGENHARIA DE SOFTWARE. Introdução

ENGENHARIA DE SOFTWARE. Introdução ENGENHARIA DE SOFTWARE Introdução AGENDA Conceitos de Engenharia de Software Processo de desenvolvimento de software ENGENHARIA DE SOFTWARE CONCEITOS CENÁRIO INICIAL Desenvolvimento informal e não suficiente

Leia mais

Etc & Tal. Volume 1 - Número 1 - Dezembro 2008 SBC HORIZONTES 57

Etc & Tal. Volume 1 - Número 1 - Dezembro 2008 SBC HORIZONTES 57 Armazenando Dados em Aplicações Java Parte de : Entendendo o problema Hua Lin Chang Costa, hualin@cos.ufrj.br, COPPE/UFRJ. Leonardo Gresta Paulino Murta, leomurta@ic.uff.br, IC/UFF. Vanessa Braganholo,

Leia mais

4 Caso de Uso no Ambiente Oracle

4 Caso de Uso no Ambiente Oracle 4 Caso de Uso no Ambiente Oracle No capítulo anterior foi definido o processo para definição de uma estratégia de rastreabilidade. Neste capítulo será realizada uma instanciação do processo em um ambiente

Leia mais

Geração semi-automática de massas de testes funcionais a partir da composição de casos de uso e tabelas de decisão

Geração semi-automática de massas de testes funcionais a partir da composição de casos de uso e tabelas de decisão Luiz Rodolfo Neves Caldeira Geração semi-automática de massas de testes funcionais a partir da composição de casos de uso e tabelas de decisão Dissertação de Mestrado Dissertação apresentada como requisito

Leia mais

Módulo I Princípios e Padrões de Projeto de SW em Java

Módulo I Princípios e Padrões de Projeto de SW em Java Módulo I Princípios e Padrões de Projeto de SW em Java Professores Eduardo Bezerra edubezerra@gmail.com Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

Leia mais