Kleinner Farias, PhD

Assistant Professor at the
University of Vale do Rio dos Sinos,
Building 6B - Room 412 - PIPCA,
+55 51 3591-1100 ext 1610


Kleinner Farias is an Assistant Professor in the Interdisciplinary Postgraduate Program in Applied Computing (PIPCA) at the University of Vale do Rio dos Sinos (Unisinos). Farias received his Ph.D. in Software Engineering in 2012 from the Department of Informatics at the Pontifical Catholic University of Rio de Janeiro (PUC-Rio), under the supervision of Dr. Alessandro Garcia and Dr. Carlos Lucena. He also received an M.S. in Computer Science in 2008 from the Pontifical Catholic University of Rio Grande do Sul (PUC-RS), under the supervision of Dr. Toacy Oliveira. Moreover, Farias earned a B.Sc. in Computer Science in 2006 from the Computer Science Department at the Federal University of Alagoas, and a B.Sc. in Information Technology in 2006 from the Department of informatics at the Federal Institute of Alagoas. As a researcher, his work focuses on software modeling, domain-specific modeling language, empirical software engineering, aspect-oriented software development, software architecture, neuroscience applied to software engineering, and model-driven software development. Today, Farias investigates how software developers invest effort to compose design models created in parallel by different development teams. The knowledge produced in the last five years has been used to: (1) develop new tools and stimulate new researches; (2) establish new facts, and restate the results of previous works; or even (3) encourage other researchers for replicating empirical studies in different contexts. He has published his research results in premier software engineering conferences, including ICSE, MODELS, AOSD, and journals, including JUCS and SoSym. Farias is a member of the OPUS Research Group and MobiLab.

Hot topic:
Empirical evaluation of success and failure factors in composition of design models.
  • [2008–2012] Ph.D. in Software Engineering,
    Supervisors: Dr. Alessandro Garcia and Dr. Carlos Lucena,
    Pontifical Catholic University of Rio de Janeiro, Brazil (in cooperation with Lancaster University (UK)).

  • [2006–2008] M.Sc. in Computer Science,
    Supervisor: Dr. Toacy Cavalcante de Oliveira,
    Pontifical Catholic University of Rio Grande do Sul, Brazil.

  • [2002–2006] B.Sc. in Computer Science,
    Supervisors: Evandro Barros and Hyggo Almeida
    Federal University of Alagoas, Alagoas, Brazil.

  • [2002–2006] B.Sc. in Information Technology, Federal Institute of Alagoas, Alagoas, Brazil.

Journal Papers

  1. Kleinner Farias, Alessandro Garcia, Jon Whittle, Christina Chavez, Carlos Lucena,
    NEW Evaluating the Effort of Composing Design Models: A Controlled Experiment,
    Journal on Software and Systems Modeling, pages 1-17, DOI: 10.1007/s10270-014-0408-2, 2014. [pdf]

  2. Kleinner Farias, Alessandro Garcia, Carlos Lucena,
    NEW Effects of Stability on Model Composition Effort: an Exploratory Study,
    Journal on Software and Systems Modeling, pages 1-22, DOI: 0.1007/s10270-012-0308-2, 2013. [pdf]

  3. Kleinner Farias, Karin Breitman, Toacy Oliveira,
    A Flexible Strategy-Based Model Comparison Approach: Bridging the Syntactic and Semantic Gap,
    Journal of Universal Computer Science, Vol. 15, No. 11, pages 2225-2253, DOI: 10.3217/jucs-015-11-2225, 2009. [pdf]

  4. Alex Orozco, Kleinner Oliveira, Flávio Oliveira, Avelino Zorzo,
    Derivação de Casos de Testes Funcionais: um Abordagem Baseada em Modelos UML,
    RESI: Revista Eletrônica de Sistemas de Informação, Vol. 8, pp. 1-15, DOI:10.5329/RESI, 2009. [pdf]

Conference Papers

  1. Kleinner Farias, Alessandro Garcia, Carlos Lucena, Luiz Gonzaga Jr,
    Cristiano André da Costa, Rodrigo da Rosa Righi, Fábio Basso, Toacy Oliveira
    NEW Towards a Quality Model for Model Composition Effort,
    In: Proceedings of the 29th Symposium On Applied Computing (SAC.14),
    Gyeongju, Korea, March, 2014. [pdf]

  2. Everton Guimaraes, Alessandro Garcia, Kleinner Farias
    NEW On the Impact of Obliviousness and Quantification on Model Composition Effort,
    In: Proceedings of the 29th Symposium On Applied Computing (SAC.14),
    Gyeongju, Korea, March, 2014. [pdf]

  3. Fábio Paulo Basso, Toacy Cavalcante Oliveira, Kleinner Farias
    NEW Extending JUnit 4 with Java Annotations and Reflection to Test Variant Model Transformation Assets,
    In: Proceedings of the 29th Symposium On Applied Computing (SAC.14),
    Gyeongju, Korea, March, 2014. [pdf]

  4. César Silveira, Luiz Gonzaga Jr, Kleinner Farias, Fabio Mierlo, Cristiano Costa, Rodrigo Righi,
    NEW Faster Seam Carving With Minimum Energy Windows,
    In: Proceedings of the 29th Symposium On Applied Computing (SAC.14),
    Gyeongju, Korea, March, 2014. [pdf]

  5. Rodrigo Righi, Cristiano Costa, Luiz Gonzaga Jr, Kleinner Farias, Alexandre Andrade, Lucas Graebin,
    NEW Redesigning Transaction Load Balancing on Electronic Funds Transfer Scenarios,
    In: Proceedings of the 29th Symposium On Applied Computing (SAC.14),
    Gyeongju, Korea, March, 2014. [pdf]

  6. Kleinner Farias, Alessandro Garcia, Jon Whittle, Carlos Lucena,
    Analyzing the Effort of Composing Design Models of Large-Scale Software in Industrial Case Studies,
    In: Proceedings of the 16th International Conference on Model-Driven Engineering Languages and Systems (MODELS'13),
    pages 639-655, Miami, USA, September 2013. [pdf]

  7. Kleinner Farias, Alessandro Garcia, Carlos Lucena,
    Evaluating the Impact of Aspects on Inconsistency Detection Effort: A Controlled Experiment,
    In: Proceedings of the 15th International Conference on Model-Driven Engineering Languages and Systems (MODELS'12),
    Vol. 7590, pages 219-234, Innsbruck, Austria, 2012. (selected among the best papers) [pdf]

  8. Kleinner Farias, Alessandro Garcia, Jon Whittle, Christina Chavez, Carlos Lucena,
    Evaluating the Effort of Composing Design Models: A Controlled Experiment,
    In: Proceedings of the 15th International Conference on Model-Driven Engineering Languages and Systems (MODELS'12),
    Vol. 7590, pages 676-691, Innsbruck, Austria, 2012. (selected among the best papers) [pdf]

  9. Kleinner Farias,
    Analyzing the Effort on Composing Design Models in Industrial Case Studies,
    In: 10th International Conference on Aspect-Oriented Software Development Companion (AOSD'11),
    pages 79-80, Porto de Galinhas, Brazil, 2011. [pdf]

  10. Enyo Gonçalves, Kleinner Farias, Mariela Cortís, Allan Feijó, Francisco Oliveira, Viviane Silva,
    MAS-ML Tool: A Modeling Environment for Multi-Agent Systems,
    In: Proceedings of the 13th International Conference on Enterprise Information Systems (ICEIS'11),
    Vol. 2, pages 192-197, Beijing, China, 2011. [pdf]

  11. Kleinner Farias,
    Empirical Evaluation of Effort on Composing Design Models,
    In: 32nd ACM/IEEE International Conference on Software Engineering, Doctoral Syumposium,
    Vol. 2, pages 405-408, Cape Town, South Africa, 2010. [pdf]

  12. Kleinner Farias, Alessandro Garcia, Jon Whittle,
    Assessing the Impact of Aspects on Model Composition Effort,
    In: 9th International Conference on Aspect-Oriented Software Development (AOSD'10),
    pages 73-84, Rennes and Saint-Malo, France, 2010. (Indicated to Best Paper Award) [pdf]

  13. Alex Orozco, Kleinner Farias, Flávio Oliveira, Avelino Zorzo,
    Derivação de Casos de Testes Funcionais: Uma Abordagem Baseada em Modelos UML,
    In: 4th Simpósio Brasileiro de Sistemas de Informação,
    pages 61-72, Brasília, Brazil, 2009. [pdf]

  14. Kleinner Farias, Karin Breitman, Toacy Oliveira,
    Ontology Aided Model Comparison,
    In: 14th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS'09),
    pages 78-83, Potsdam, Germany, 2009. [pdf]

  15. Kleinner Farias, Toacy Oliveira,
    Model Comparision: A Strategy-Based Approach,
    In: 20th International Conference on Software Engineering and Knowledge Engineering (SEKE'08),
    Vol. 20, pp. 912-917, San Francisco, USA, 2008. [pdf]

  16. Kleinner Farias, Marcos Thadeu, Toacy Oliveira, Paulo Alencar,
    Uma Abordagem Flexível para Comparação de Modelos UML,
    In: 2nd Brazilian Symposium on Software Components, Architectures, and Reuse (SBCARS'08),
    pages 150-163, Porto Alegre, Brazil, 2008. [pdf]

  17. Kleinner Oliveira, Toacy Oliveira,
    A Guidance for Model Composition,
    In: 2nd International Conference on Software Engineering Advances (ICSEA'07),
    pages 27-33, French Riviera, France. [pdf]

Workshop Papers

  1. Kleinner Farias, Alessandro Garcia, Carlos Lucena,
    Evaluating the Effects of Stability on Model Composition Effort: an Exploratory Study,
    In: Proceedings of 8th Experimental Software Engineering Latin American Workshop (ESELAW'11),
    pages 77-86, Rio de Janeiro, Brazil, 2011. [pdf]

  2. Ana Medeiros, Kleinner Farias, Alessandro Garcia, Thais Batista,
    Evaluating Composition Techniques for Architectural Specifications: A Comparative Study,
    In: Empirical Evaluation of Software Composition Techniques (ESCOT'10) at
    9th Annual Aspect-Oriented Software Development Conference (AOSD'10), Rennes, France, 2010. [pdf]

  3. Everton Guimarães, Alessandro Garcia, Kleinner Farias,
    Analyzing the Effects of Aspect Properties on Model Composition Effort: A Replicated Study,
    In: 6th Workshop on Aspect-Oriented Modeling at MODELS'10, Oslo, Norway, 2010. [pdf]

  4. Enyo Gonçalves, Kleinner Farias, Mariela Cortís, Viviane Silva, Rafael Feitosa,
    Modelagem de Organizações de Agentes Inteligentes: uma Extensão da MAS-ML Tool,
    In: 1st Workshop on Autonomous Software Systems at CBSoft'10, Salvador, Bahia, 2010. [pdf]

  5. Kleinner Farias, Alessandro Garcia, Carlos Lucena,
    On the Comparative Evaluation of Aspect-Oriented Model Composition Techniques,
    In: 3rd Latin American Workshop on Aspect-Oriented Software Development (LAWASP'09) at
    Brazilian Symposium on Software Engineering, pages 45-49, Fortaleza, Ceará, 2009. [pdf]

  6. Kleinner Farias, Ingrid Nunes, Carlos Lucena,
    MAS-ML Tool: Um Ambiente de Modelagem de Sistemas Multi-Agentes,
    In: 5th Workshop on Software Engineering for Agent-oriented Systems at
    Brazilian Symposium on Software Engineering, pages 1-12, Ceará, Brazil, 2009. [pdf]

  7. Kleinner Farias, Alessandro Garcia, Jon Whittle,
    On the Quantitative Assessment of Class Model Compositions: An Exploratory Study,
    In: Empirical Studies of Model-Driven Engineering (ESMDE'08) co-located MODELS'08,
    Vol. 1, pages 1-10, Toulouse, France, 2008. [pdf]

  8. Kleinner Oliveira, Toacy Oliveira,
    Composição de UML Profiles,
    In: Workshop de Tese e Dissertações em Engenharia de Software (WTDES) at
    Brazilian Symposium on Software Engineering, Vol. 7, pages 17-23, João Pessoa, Brazil, 2007. [pdf]

Minor Publications

  1. Kleinner Farias, Marcos Thadeu, Evandro Costa,
    Live Plants: Sistema de Catalogação Dinâmicas de Dados Científicos,
    In Semana Acadêmica da Universidade Federal de Alagoas,
    Vol. 5, pp. 18-20, Maceió, Brazil, 2005.

  2. Kleinner Farias, Evandro Costa,
    Sistema de Recomendação Aplicado ao Ambiente de Lojas Virtuais,
    In Semana Acadêmica da Universidade Federal de Alagoas,
    Vol. 2, pp. 12-14, Maceió, Brazil, 2005.

  3. Kleinner Farias, Evandro Costa,
    COMPOR-Test: uma Ferramenta de Teste para o Arcabouço de Componentes COMPOR,
    In Semana Acadêmica da Universidade Federal de Alagoas,
    Vol. 5, pp. 10-12, Maceió, Alagoas, 2005.

Research Topics

  1. Unified Modeling Language

  2. Empirical Software Engineering

  3. Neuroscience Applied to Software Engineering

  4. Domain-Specific Modeling Languages

  5. Model Driven Software Development

  6. Aspect-Oriented Software Development

  7. Software Metrics

  8. Software Modeling

  9. Software Procuct Lines

  10. Software Architecture

  11. Design Patterns

  12. Collaborative Software Development

Current Students and Research Assistants

  1. Maicon dos Santos (MSc, 2015.1)

  2. Vanessa Weber (MSc, 2015.1)

  3. Vinicius Bischoff (MSc, 2015.1)

  4. Lucian Gonçalves (MSc, 2015.1)

  5. Maurício Saraiva (MSc, 2014.2)

  6. Raul António (UGrad, 2014.2)

  7. Daniel Armino (MSc, 2014.1)

  8. Murilo Scholl (UGrad, 2013.2)

  9. Catiane Rosa (MSc, 2013.2)

  10. Vivian Pedo (MSc, 2013.1)

Graduated Students

  1. Joni Canal (UGrad, 2014.1-2014.2)

  2. Guilherme Ermel (UGrad, 2014.1-2014.2)
    Uma Ferramenta para Composição de Diagramas de Componentes da UML [pdf]

  3. Maicon (UGrad, 2013-2014)

  4. Moisés (UGrad, 2013-2014)

  5. Felipe Varga (UGrad, 2013-2014)

  6. Mateus Mânica (UGrad, 2013-2014)

Current Research Projects

Composição de modelos desempenha um papel fundamental em muitas atividades de Engenharia de Software como, por exemplo, na evolução de modelos de software para adicionar novas características. Diante desse contexto, muitas técnicas de composição de modelos de software têm emergido para dar suporte à integração de modelos de projeto, potencializar a manutenibilidade dos artefatos de software e minimizar o esforço investido pelos desenvolvedores. Porém, alguns problemas são críticos ao bom funcionamento e à avaliação da eficácia de tais técnicas de composição de modelos, tais como: (i) as estratégias atuais de avaliação de composição de modelos são rígidas e imprecisas; (ii) as técnicas não garantem a ausência de inconsistências e não detectam os efeitos colaterais de tais inconsistências nos modelos; e (iii) as técnicas não garantem a eficácia das composições. Sendo assim, dois objetivos gerais são identificados: (i) definir uma forma de avaliação de composição de modelos; e (ii) produzir evidências empíricas sobre o esforço que os desenvolvedores investem para compor modelos de software. Os resultados esperados são: (1) um modelo de qualidade para composição de modelos de software; (2) conhecimento empírico sobre o esforço de composição e sobre os fatores que influenciam a prática de integrar modelos; (3) um catálogo de padrões de inconsistências em modelos de sistemas de software evolutivos; (4) algoritmos capazes de detectar e resolver inconsistências; (5) uma ferramenta de apoio à composição de modelos de software; e (6) artigos científicos a serem publicados em conferências de primeira de linha em Engenharia de Software e dissertações de mestrado.

Past Research Projects

Sistemas de software evolutivos são caracterizados por serem alvo constante de modificações de suas funcionalidades. As inclusões inadvertidas ou deliberadas de anomalias de modularidade nesses sistemas têm impacto negativo na manutenção, reuso e confiabilidade dos mesmos. Uma anomalia de modularidade é um problema estrutural no projeto ou implementação de sistemas, e a sua permanência acarreta em dificuldades de reuso e degenerações do projeto, possivelmente levando ao seu desuso e prejuízos incalculáveis para empresas de software. Estudos recentes revelam que até 90% das falhas em programas são causadas pela presença de anomalias de modularidade. Uma ampla série de domínios críticos de software para a economia do Estado do Rio de Janeiro têm sido alvo constante dos efeitos colaterais de anomalias de modularidade. Alguns exemplos destes domínios são aplicações de visualizações de dados, computação científica, informática médica, e famílias de programas para a Web. Entretanto, as técnicas e ferramentas existentes para detecção de anomalias não são adequadas para sistemas evolutivos nestes domínios por uma série de motivos, tais como: (i) não permitem explorar o histórico de modificações e outras informações associadas com a evolução dos programas, (ii) geram listas de candidatos a anomalias que usualmente são amplamente incorretas e ignoradas por serem irrelevantes para a geração das próximas versões do sistema, e (iii) não levam em consideração a evolução de decisões de projeto e históricos de execuções do sistema que não podem ser extraídas estaticamente do código fonte de uma versão única do programa. Neste contexto, este projeto visa buscar apoio para consolidação do grupo emergente DAnSis. O grupo tem por objetivo reunir um grupo de jovens pesquisadores com experiência em disciplinas complementares da Computação e áreas afins, e com o conhecimento necessário para concepção de técnicas e ferramentas eficazes para detecção de anomalias em sistemas evolutivos.
Princípios e técnicas de desenvolvimento de software modular têm emergido de maneira contínua nas últimas décadas, visando maximizar manutenibilidade dos sistemas de software. No entanto, anomalias de modularidade podem ser introduzidas durante a implementação e manutenção do código dos sistemas independentemente da técnica de modularidade utilizada. Neste contexto, os esforços deste projeto serão direcionados para alcançar os seguintes objetivos: (1) investigar padrões recorrentes de (co-ocorrência de) anomalias de modularidade em sistemas existentes; (2) estudar empiricamente o impacto em degradação arquitetural exercido por padrões recorrentes de anomalias de modularidade; (3) analisar empiricamente a relação entre padrões de anomalias de modularidade e outros efeitos críticos no código fonte, tais como taxa de falhas observadas e refatorações ineficazes; e (4) projetar um conjunto de estratégias para detecção de padrões de anomalias relevantes arquiteturalmente.
Um dos desafios atuais da Engenharia de Software consiste em encontrar uma solução para a distância entre o projeto arquitetural e a implementação do software, o que leva o desenvolvimento de software ser mais custoso e difícil de ser implementado. Os paradigmas tradicionais de desenvolvimento de software (e.g. orientação a objetos) não são suficientes para solucionar tal problema. Por outro lado, técnicas contemporâneas de programação oferecem mecanismos avançados de composição para combinar de forma mais direta as diferentes abstrações nas quais o projeto arquitetural do sistema é decomposto. Desse modo, o projeto AMAComp visa conduzir o planejamento e execução de um conjunto de estudos empíricos, através do uso de métricas adequadas, para avaliação de mecanismos avançados de composição. O propósito inovador dos estudos é: (i) avaliar a facilidade ou dificuldade de modificar ou evoluir software através do uso de tais mecanismos, e (ii) identificar até que ponto anomalias no código causadas pelo uso de tais mecanismos provocam a ocorrência de anomalias e violações das arquiteturas. Além disso, o projeto definirá um novo conjunto de técnicas de medição com a finalidade de fornecer um]recurso adequado para avaliação arquitetural do código nos estudos empíricos. Além disso, estas métricas permitirão a quantificação e análise de propriedades de modularidade associadas com a evolução dos interesses transversais em artefatos de projeto e implementação de software.
Os principais objetivos deste projeto são: 1. Avaliar Empiricamente o Impacto de Mecanismos Emergentes de Modularização na Manutenibilidade de Software: avaliar os pontos positivos e negativos dos mecanismos de programacao orientada a aspectos e caracteristicas (features) em termos de propriedades desejáveis para manutenção ou evolução de software, tais como estabilidade de projeto e resistência a introdução de falhas. 2. Definir um Arcabouço de Medição Sensível a Interesses: definir e avaliar novas métricas adequadas para analisar o impacto dos mecanismos modernos de programação modular na evolução de interesses e suas interações; e 3. Identificação de Adaptações e Elaboração de Recomendações para uso de Mecanismos Contemporâneos de Programação Modular: estender o conhecimento atual sobre técnicas avançadas de modularização através da catalogação de boas práticas empiricamente observadas, e identificar melhorias no projeto destes mecanismos.
Este projeto tem o intuito de investigar e desenvolver técnicas eficazes para reuso, manutenção e evolução de artefatos com MDD. Em curto prazo, espera-se identificar quais são os principais problemas vivenciados por desenvolvedores atualmente na manutenção e evolução de modelos, geradores de código, e do próprio código em plataformas MDD. O projeto seguirá uma abordagem empírica para diagnosticar tais problemas, através de questionários, entrevistas e estudos de caso com usuários e projetos associados com os ambientes MDD, tais como o MDArte. A partir de tal investigação inicial, o projeto envolverá a concepção de técnicas eficazes para modelagem e geração de código de propriedades transversais, e suporte à manutenção de código gerado, tais como métricas e estratégias semi-automáticas para identificação de anomalias de código. Estas técnicas serão, em princípio, integradas com a plataforma MDArte. As melhorias serão baseadas nas práticas de desenvolvimento e nas necessidades presentes na indústria, assim como no conhecimento compartilhado pela comunidade de MDD. Além disso, as melhorias serão disponíveis para uso e possível adaptação pelos pesquisadores e desenvolvedores, conforme necessário. Portanto, o projeto abordará tanto questões de pesquisa em aberto, quanto à solução destas questões na prática.
Sistemas orientados a recuperação são desenvolvidos com a perspectiva de que falhas de hardware, software e operação são fatos que devem ser tratados. Muitas destas falhas são inseridas durante o processo de desenvolvimento. Logo, torna-se fundamental a existência de um sistema orientado a recuperação com capacidade de proativamente emitir uma notificação sempre que um candidato à falha no código for observado ou mesmo informar que regras de projeto (regras arquiteturais) foram violadas. De forma a minimizar custos e acelerar desenvolvimento destas propriedades, estas devem ser implementadas de forma modular, adaptável e reutilizável. Além disso, estudos empíricos têm indicado que manifestação de faltas no código de sistemas de software deve-se freqüentemente à inexistência de modularidade de código dedicado a recuperação. No entanto, as técnicas convencionais de composição como herança e padrões de projeto deixam muito a desejar no que diz respeito à modularização do código de identificação de faltas ou violações de projeto. Deste modo, justifica-se uma investigação do uso e adaptação dos mecanismos emergentes de programação modular, tais como: composição baseada em mixins, classes virtuais e aspectos para promover o desenvolvimento de código suficientemente modular, reutilizável e confiável algo imprescindível em sistemas orientados a recuperação. Nosso estudo vai ser desenvolvido em cooperação com a Minds at Work empresa de desenvolvimento de software orientado a recuperação em diferentes domínios de aplicações.
O projeto CASA tem por objetivo avaliar sistematicamente a efetividade de novos mecanismos de composição no desenvolvimento paralelo, reuso e manutenção de artefatos de software. Em particular, iremos focalizar em duas categorias de técnicas de composição: (i) técnicas heurísticas e algorítmicas para composição de modelos, e (ii) técnicas recentes para composição orientada à aspectos de sistemas, tais como explicit pointcut interfaces e programação orientada a features. Uma família de estudos empíricos será projetado e desenvolvido em parceira pelas duas instituições envolvidas neste projeto. Os estudos serão de naturezas diferentes, variando de estudos etnográficos, questionários e entrevistas até estudos exploratórios, quantitativos e experimentos controlados. No contexto desse trabalho, as aplicações utilizadas serão predominantemente Linhas de Produtos de Software (LPS) e sistemas de middleware.
O objetivo deste projeto é investigar a eficácia de avaliações de LPSs baseados em métricas e heurísticas sensíveis à história das modificações ocorridas sobre produtos e arquiteturas das LPSs. A hipótese inicial que vem sendo aceita é que estes mecanismos possam reduzir a ocorrência comum de falsos positivos e falsos negativos observados em análises quantitativas convencionais de modularidade em LPSs. Várias informações históricas podem ser fundamentais para tomadas de decisões em processos de manutenção e evolução de LPSs. Os objetivos específicos deste projeto são: (i) efetuar a análise e adaptação das métricas existentes sensíveis a história para LPSs, (ii) definir novas métricas e heurísticas para avaliação de modularidade e manutenibilidade da arquitetura e projeto LPSs, (iii) implementar a ferramenta de medição sensível a história e (iv) realizar um conjunto de estudos empíricos para avaliar a abordagem proposta.
Técnicas contemporâneos para programação modular de sistemas software, tais como programação orientada a aspectos (POA) e programação orientada a características (POC), representam uma das mais importantes mudanças de paradigma na área de Engenharia de Software na última década. Estas técnicas vêm despertando o interesse de pesquisadores e profissionais da indústria de software, com a promessa de melhorar a produtividade e a manutenibilidade de sistemas computacionais. Através dos mecanismos de POA e POC, interesses relacionados a distribuição, tratamento de exceções, segurança e persistência de dados, por exemplo, são tratados de forma mais modular. Entretanto, desenvolvedores de software não têm disponível diretivas de boas práticas para construir softwares estáveis e confiáveis com mecanismos contemporâneos de programação modular. Neste contexto, os esforços deste projeto serão direcionados para alcançar quatro objetivos: (1) executar um conjunto de estudos empíricos com a finalidade de avaliar tais mecanismos em termos de propriedades que definem a capacidade de evolução de um software; (2) identificar e construir um novo método de medição para suportar o primeiro objetivo, focado em avaliação sensível a interesses; (3) definir uma lista de boas práticas com a finalidade de promover uma adoção de mecanismos avançados de modularidade de uma forma mais consciente; e (4) adaptar ou definir novos mecanismos de modularidade, baseado em conhecimento empírico obtido no primeiro objetivo e na realização do terceiro objetivo.
O objetivo do projeto REACT é investigar novos mecanismos e modelos para aperfeiçoar a construção de aplicações ubíquas sensíveis ao contexto. Em particular, o foco do projeto é investigar o uso da ciência de contexto no aprimoramento da caracterização e do tratamento de condições errôneas, com especial atenção aos desafios introduzidos pelo uso predominante de comunicação assíncrona. De fato, a literatura carece de modelos de tratamento de exceções adaptados para sistemas de comunicação assíncrona. Este projeto visa preencher esta lacuna, assim como investigar formas de facilitar o desenvolvimento desse tipo de aplicação, seja através de linguagens ou modelos de programação alternativos. Para tanto, a proposta do projeto consiste em repensar sob a ótica da construção de aplicações ubíquas confiáveis tanto as abstrações e mecanismos de tratamento de exceções como também as técnicas de tolerância a falhas, como ações atômicas coordenadas e replicação. Como resultado deste projeto, pretende-se produzir a implementação de um arcabouço para construção de sistemas assíncronos sensíveis ao contexto. Esse arcabouço será validado através da implementação de um conjunto de aplicações adotadas como estudos de caso.
Um dos grandes desafios do projeto CODES é, através das experiências complementares dos dois grupos, investigar adaptações de métodos, técnicas e ferramentas de Engenharia de Software na construção e evolução de aplicações convencionais para o contexto de aplicações específicas para a plataforma TVDI. Além disso, tendo em vista à complexidade inerente a sistemas de software para TVDI (infra-estrutura e aplicações), conforme discutido acima, estes servirão como objetos ímpares de estudo para aplicação de técnicas emergentes da Engenharia de Software. Neste contexto, o projeto CODES tem importância científica e acadêmica. Do ponto de vista científico, o projeto é justificado por abordar um tema atual como eixo condutor, apresentando uma série de desafios importantes na concepção de técnicas para desenvolvimento de software para TVDI. Além disso, o projeto CODES permitirá reunir especialistas nas áreas de Engenharia de Software e de Sistemas (em particular, o Sistema de Televisão Digital Brasileiro) e domínios como Arquitetura de Software, Engenharia de Software Experimental, Linhas de Produtos, Sistemas Multimídia e Hipermídia. Do ponto de vista acadêmico, o projeto CODES prevê uma parceria entre dois programas de pósgraduação em Computação, sendo um bem estabelecido e consolidado, nacional e internacionalmente, e outro emergente, iniciado em 2007, seguindo um modelo inovador de interação (multiinstitucional). Este tipo de integração é exatamente um dos objetivos principais dos projetos de cooperação promovidos pela Capes.
ArCo é um arcabouço extensível e de código aberto para a construção de ambientes de comunidades virtuais. O arcabouço dispõe de ferramentas para a interação e colaboração de atores, componentes de infra-estrutura e interface gráfica, além de suportar integração com outros sistemas através de OpenLDAP e Web Services. Apresenta abordagens de sistematização de desenvolvimento, tais como escalabilidade e reúso. Isso gera um ganho significativo no custo de produção e na sua evolução perante a inserção de novos recursos ou mesmo a atualização dos existentes. Além disso, tais abordagens apresentam suporte à personalização do ambiente desenvolvido ou à criação de serviços personalizados para uma determinada comunidade. Para prover maior flexibilidade ao projeto do arcabouço, utilizou-se tecnologias de software livre, tais como J2EE, Web services, OpenLDAP, Struts e JetSpeed.
Com o crescimento da Internet, a necessidade de busca de informações mais rápidas e acuradas é um fato. Isso está levando pesquisadores de todo o mundo a um processo de migração da Internet em direção a uma Web Semântica, onde a informação codificada pode ser interpretada por pessoas e máquinas, tornando necessário a necessidade de métodos, ferramentas e técnicas que apóiem o desenvolvimento de ontologias. Esta tecnologia desponta como uma forma viável de estruturar informações esparsas, disponíveis na rede, provendo contexto ainda a diversas aplicações. Com base nisso, foi proposto desenvolver uma ferramenta, chamada FrOnt (Frame-Based Ontology System), que permita a construção e a edição de ontologias por não especialistas.
O projeto COMPOR (http://www.compor.net) visa a definição de métodos, linguagens, arcabouços, modelos e ferramentas para a composição dinâmica de software baseada nos diversos paradigmas de engenharia de software: componentes, serviços, agentes, e entre outros.
  1. Software Architecture (2013.1, 2013.2, 2014.1, 2014.2)

  2. Software Development I (2014.1)

  3. Software Development II (2013.2, 2014.2)

  4. Database I (2013.1, 2013.2)

  5. Programming Language (OO in Java) (2012.1, 2012.2)

  6. Database II (2012.1, 2012.2)

  7. Introduction to Informatics (2012.2)

  8. Data Structure (2012.2)

  9. Development and Evolution of Software Product Lines: An Experimental Approach (2010.2)

  10. Aspect-Oriented Software Development (2010.1)

  11. Software Analysis and Design (2007.1)