Manutenção de Frameworks Orientados a Objetos Usando Orientação a Aspectos
|
|
- Vagner Marques
- 5 Há anos
- Visualizações:
Transcrição
1 Manutenção de Frameworks Orientados a Objetos Usando Orientação a Aspectos André L. de Oliveira 1, Valter V. de Camargo, Rosângela Ap. D. Penteado 1 Departamento de Computação Universidade Federal de São Carlos (UFSCar) Caixa Postal São Carlos SP Brazil {andre_oliveira, valter, rosangela}@dc.ufscar.br Abstract. Object-Oriented Frameworks (OOF) need maintenance to evolve or be adapted to new technologies and environments. When maintenance activities use aspect-oriented (AO) techniques, some problems can emerge, such as increasing the number of framework components, hindering the coupling, as well as reducing the cohesion among them. In this study are presented some guidelines to support software engineers in performing maintenance of OOF using AO techniques in order to address those problems. Resumo. Frameworks orientados a objetos (FOO) necessitam de manutenção para evoluir ou serem adaptados a novas tecnologias e ambientes. Quando as atividades de manutenção envolvem técnicas de orientação a aspectos (OA) alguns problemas podem ocorrer, dentre eles, o aumento do número de componentes do framework, prejudicando o acoplamento e reduzindo da coesão dos componentes. Neste trabalho são apresentadas algumas diretrizes para auxiliar aos engenheiros de software a realizar manutenção em FOO utilizando técnicas de OA para resolver ou tratar esses problemas. 1. Introdução Quaisquer modificações que são realizadas em sistemas podem levar a efeitos colaterais e outros problemas diversos. O mesmo problema pode ocorrer no contexto de frameworks, fazendo com que o engenheiro de software tenha que tomar decisões sobre a forma como o framework deve ser reimplementado ou em como implementar uma solução para resolver um problema específico [Bosch et al., 2000]. O processo de manutenção de frameworks trata de modificações e adaptações que podem ocorrer em nível funcional (requisitos) e não-funcional e inclui aspectos qualitativos como portabilidade e reusabilidade [Fayad and Schmidt, 1997]. Uma das alternativas de manutenção existentes que podem ser aplicadas a frameworks orientados a objetos (OO) é utilizar técnicas de orientação a aspectos (OA). Quando se decide utilizar orientação a aspectos para a manutenção de frameworks OO, usualmente há aumento no número de seus componentes (classes, interfaces e aspectos) o que, consequentemente, leva ao aumento do tamanho do framework, a maiores níveis de acoplamento e à redução da coesão de seus componentes. Isso conduz ao aumento da complexidade do framework, o que dificulta o seu entendimento e consequentemente sua manutenção, extensão e utilização. Um framework de aplicação OO que tenha a implementação de um determinado interesse entrelaçada e espalhada pelo código fonte de várias classes pode ser re-projetado 1 Apoio Financeiro FAPESP Proc. Nro. 2008/
2 utilizando técnicas de Orientação a Aspectos. Duas estratégias podem ser utilizadas para modularizar a implementação desses interesses espalhados: 1) criar um aspecto para cada classe do framework que contém código relacionado ao interesse a ser modularizado. Esse aspecto irá introduzir/entrecortar um conjunto de atributos e operações relacionados a esse interesse nessa classe; 2) criar um único aspecto para introduzir/entrecortar um conjunto de atributos e operações relacionado ao interesse a ser modularizado em todas as classes que contém indícios desse interesse. O uso da estratégia 1) reduz a complexidade do código dos aspectos, favorecendo a legibilidade, porém, tem como desvantagem o aumento do número de componentes do framework. O uso da estratégia 2) reduz o número de componentes do framework, mas aumenta complexidade do código dos aspectos, dificultando a legibilidade. Neste trabalho são relatados os problemas que podem ocorrer quando essas estratégias são utilizadas e são fornecidas diretrizes para solucioná-los. Além desta seção há outras cinco. Na Seção 2 são discutidos os problemas do uso de orientação a aspectos na manutenção de frameworks OO. Na Seção 3 são apresentadas as diretrizes de manutenção que podem ser aplicadas para resolver problemas citados na Seção 2. Na Seção 4, um estudo de caso ilustra como as diretrizes foram aplicadas. Na Seção 5 são citados os trabalhos relacionados a este e na Seção 6 são apresentadas as considerações finais e as propostas de trabalhos futuros. 2. Problemas do Uso de Orientação a Aspectos na Manutenção de Frameworks OO Toda manutenção apresenta algumas dificuldades, principalmente aquelas em que a técnica ou tecnologia de desenvolvimento do software não é a mesma que a utilizada em sua manutenção. Nesta seção são relatados alguns problemas e armadilhas de manutenção que engenheiros de software podem se deparar ao utilizarem técnicas de OA para modularizar frameworks OO. Quando a implementação de um interesse se encontra distribuída por várias classes, uma solução é a utilização de aspectos para modularizar a implementação desse interesse. Como comentado anteriormente, duas estratégias podem ser usadas para modularizar esse interesse em aspectos. A estratégia 1) proporciona melhor legibilidade no código fonte que contém os aspectos, visto que cada aspecto introduz/entrecorta atributos e operações apenas de uma classe. Porém, há o aumento do número de componentes do framework e do acoplamento, além de ocorrer a quebra do princípio de separação de interesses [Dijkstra, 1976]: cada interesse deve ser implementado em uma única unidade (classe, interface, aspecto). O uso da estratégia 2) encapsula a implementação do interesse em uma única unidade, reduzindo o acoplamento e aumentando a coesão do framework e o tamanho do vocabulário do framework. Porém, há a redução da legibilidade do código dos aspectos, aumentando a complexidade do código. Outro problema que pode ocorrer é a dificuldade de mapeamento das variabilidades do framework. Sem um mapeamento preciso, não é possível refatorar todas as funcionalidades fornecidas pelo framework OO para aspectos. Um mapeamento falho pode conduzir a detecção imprecisa do nível de entrelaçamento e espalhamento de interesses. E, consequentemente, isso se reflete na modularização inadequada das funcionalidades do framework.
3 3. Diretrizes de Manutenção Com o intuito de prevenir ou amenizar os problemas relacionados ao uso de OA na manutenção de frameworks OO, nesta seção são apresentadas as seguintes diretrizes: a) Analisar a documentação e o código fonte do framework e mapear suas variabilidades; b) Analisar a presença de espalhamento de interesses; c) Analisar a presença de entrelaçamento de interesses; d) Analisar entrelaçamento e espalhamento de interesses de maneira objetiva e subjetiva e; e) Encapsular o entrelaçamento, o espalhamento e cada variabilidade do framework em aspectos. a) Analisar a documentação e o código do framework e mapear suas variabilidades: deve-se identificar os pontos variantes ou variabilidades (hot spots) do framework e representá-las em um diagrama de features, utilizando a notação proposta por Kang et al. (1990) ou a de Gomaa (2004), baseada na linguagem UML. Isso facilita o engenheiro de software no processo de modularização de frameworks, permitindo a compreensão dos elementos obrigatórios, alternativos e opcionais do framework, levando-o a implementar cada feature de modo a desacoplá-la do núcleo (frozen-spots) do framework. b) Analisar a presença de espalhamento de interesses: deve-se verificar se a implementação de cada interesse do framework que passará por manutenção está distribuída por unidades modulares destinadas a implementar outros interesses. Ou seja, para um interesse x, verificar se há código relacionado a esse interesse nas unidades modulares que implementam os interesses y, w e z. c) Analisar a presença de entrelaçamento de interesses: deve-se verificar se a implementação de cada interesse do framework que passará por manutenção está misturada com a implementação de outros interesses. Ou seja, para um interesse x verificar se há código relacionado aos interesses y, w e z nas unidades modulares que implementam o interesse x. d) Analisar entrelaçamento e espalhamento de interesses de maneira objetiva e subjetiva: deve-se analisar o código fonte de cada método do framework e verificar a presença de indícios do interesse avaliado. Objetivamente, é possível identificar alguma palavra chave relacionada ao interesse em análise no código? Após isso, deve-se fazer uma análise subjetiva, ou seja, analisar o conteúdo semântico do método e concluir se está relacionado ao interesse avaliado. Dessa forma, evita-se problemas que um dado método m, destinado a implementar o interesse x, contenha em sua lista de parâmetros um tipo destinado a implementar o interesse y. Se o método m for analisado apenas quanto as palavras-chave pode-se concluir que ele é destinado a implementar os interesses x e y, quando, realmente, é destinado a implementar somente o interesse x. e) Encapsular o entrelaçamento, o espalhamento e cada variabilidade do framework em aspectos: deve-se analisar o diagrama de features do framework para identificar suas features opcionais e alternativas, encapsular cada uma delas em aspectos, analisar o entrelaçamento e o espalhamento de interesses e utilizar aspectos para modularizá-los. Por exemplo, dada a unidade modular u destinada a implementar o interesse x que contém código relacionado ao interesse y. Um aspecto deve ser criado para separar a implementação do interesse y da unidade modular u. Com isso, as funcionalidades do framework são refatoradas para aspectos, de modo a facilitar a composição de diferentes combinações de suas funcionalidades.
4 4. Estudo de Caso: Processo de Manutenção do Framework GRENJ Nesta Seção é apresentado um estudo de caso para ilustrar alguns dos problemas de manutenção que podem ocorrer quando se utiliza linguagem orientada aspectos para modularização de frameworks OO. GRN (Gestão de Recurso de Negócio Business Resource Management) [Braga et al., 1999] é uma linguagem de padrões, em nível de análise, composta por quinze padrões, para apoiar o desenvolvedor na modelagem de sistemas no domínio de gestão de recursos de negócio. GRENJ [Durelli, 2008] é um framework de aplicação OO, desenvolvido com base na linguagem de padrões GRN, que permite a instanciação de sistemas utilizando esses padrões para atender aos requisitos solicitados pelos clientes. Na forma como os padrões da GRN estão implementados na versão OO do GRENJ, há entrelaçamento e espalhamento de interesses relacionados a cada padrão. Isso gera muitos relacionamentos de dependência entre as classes do framework, fazendo com que toda aplicação baseada no GRENJ tenha que carregar todas as classes nele implementadas, independente se são ou não utilizadas. Por exemplo, dado os módulos A e B, que implementam padrões distintos, na versão OO do GRENJ há código relacionado ao módulo A dentro da implementação do módulo B. Para resolver esse problema, o framework GRENJ passou por um processo de modularização com orientação a aspectos, separando a implementação de cada padrão e suas variantes do núcleo do framework. Em virtude da restrição de espaço para apresentação do artigo, somente a modularização do padrão Quantificar Recurso é apresentada. É importante ressaltar que o uso de refatoração OO não é suficiente para efetuar essa modularização, visto que a adição de padrões ou variantes afetam o comportamento estático e dinâmico do framework. Desse modo, há a necessidade de utilizar construções como inter-type declarations e advices, presentes em linguagens orientadas a aspectos como AspectJ, para adicionar atributos e operações em classes, bem como comportamento no contexto de execução de determinados métodos do framework. A orientação a objetos não provê esses mecanismos. O padrão Quantificar Recurso fornece quatro formas de quantificar os recursos de negócio de uma aplicação: i) como único, quando não é necessário ter o controle de uma instância específica do recurso; ii) instanciável, quando é necessário ter o controle de uma instância específica do recurso, como em sistema de biblioteca, em que um livro (o recurso) contém várias cópias; iii) mensurável, quando é necessário lidar com certas quantidades de recurso; ou iv) em lotes. Cada uma dessas formas de quantificação é uma variante do padrão e sua implementação está entrelaçada com a implementação do padrão Identificar Recurso (P1), como ilustrado na Figura 1. Cada método da classe Resource está marcado com um estereótipo, que representa os padrões e variantes que eles implementam. Por exemplo, o método getmeasureunity() de Resource está marcado com os estereótipos <<QR-V2>> e <<QR-V3>>, indicando que é destinado a implementar as variantes Recurso Mensurável e Recurso em Lotes do padrão Quantificar Recurso. Na implementação OO do padrão Quantificar Recurso no GRENJ, há métodos relacionados aos padrões da GRN Locar Recurso e Comercializar Recurso, na classe QuantificationStrategy, que é destinada a implementar o padrão Quantificar Recurso, como ilustrado na Figura 1. Outro problema é a existência de métodos relacionados a todas as estratégias de quantificação em QuantificationStrategy.
5 Figura 1. Implementação OO do padrão Quantificar Recurso Com isso, a separação de interesses, o acoplamento e a coesão do código do padrão ficam afetados, uma vez que é necessário fornecer implementações vazias para métodos não correspondentes a estratégia de quantificação implementada por cada classe. Por exemplo, a classe SingleResource implementa a estratégia de quantificação Recurso Único, e dentro dessa classe é necessário fornecer implementações vazias para métodos como getmeasureunity() e getinstances(), que estão relacionados às estratégias de quantificação Recurso Mensurável ou em Lotes e Recurso Instanciável. Esse entrelaçamento existente na implementação das variantes desse padrão na versão OO GRENJ prejudica a manutenibilidade e a reusabilidade do código. Para modularizar o padrão Quantificar Recurso, primeiramente foram mapeadas as suas variabilidades. Posteriormente, foram analisadas as classes do framework para a detecção de entrelaçamento de espalhamento de interesses. Finalmente, a implementação de cada uma das variantes do padrão Quantificar Recurso foi modularizada com aspectos, como ilustrado na Figura 2. Essa implementação evita que as classes citadas forneçam implementações abstratas como comentado anteriormente. Além disso, na implementação OA desse padrão, os métodos relacionados a ele foram removidos da classe Resource, aumentando a coesão dessa classe e conseqüentemente da implementação do padrão Identificar Recurso. Os métodos relacionados aos padrões Locar Recurso e Comercializar Recurso também foram removidos da classe QuantificationStrategy, que implementa o padrão Quantificar Recurso, aumentando a coesão da mesma. Na Figura 2a) tem-se a representação das classes da implementação OA da variante Recurso Único. ResourceWithQuantificationContainerLoaderAspect é um aspecto comum a todas as variantes do padrão e introduz, por meio do mecanismo de inter-type declarations de AspectJ, atributos e métodos relacionados ao padrão Quantificar Recurso na classe Resource. Essa classe implementa o padrão Identificar Recurso, garantindo que o comportamento do framework permaneça inalterado.
6 Figura 2. Implementação OA do padrão Quantificar Recurso Na implementação OA, da variante Recurso Mensurável ou em Lotes, Figura 2b), os métodos relacionados a essas variantes foram removidos das classes Resource e QuantificationStrategy, sendo encapsulados nos aspectos MeasurableQuantStrategyContainerLoaderAspect e MeasurableResourceContainerLoaderAspect. Esses aspectos introduzem métodos relacionados a essa variante, como getquantityinstock() e getmeasureunity(), nas classes Resource e QuantificationStrategy. Evita-se, assim, que essa variante fique entrelaçada com a implementação de outros padrões e as suas demais variantes. Esse mesmo processo ocorreu com a implementação OA da variante Recurso Instanciável, (Figura 2c). Com a elaboração da versão OA dos padrões da GRN implementados no framework GRENJ, verificou-se que o desenvolvedor pode utilizar um aspecto para introduzir membros ou entrecortar métodos em cada classe que contém indícios do interesse a ser modularizado, para separar esse interesse dessas classes. Dessa forma, é possível reduzir a complexidade do código dos aspectos já que há redução do número de linhas de código de uma unidade modular, facilitando a compreensão e manutenção do código. Um problema com essa estratégia é o aumento do número de componentes do padrão. Além disso, essa estratégia quebra o princípio básico de separação de interesses da orientação a aspectos (cada interesse deve ser implementado em um único módulo) fazendo com que existam vários aspectos que encapsulam a implementação do mesmo interesse. Para resolver esse problema as diretrizes de manutenção da Seção 3 foram usadas. Os interesses relacionados a cada padrão ou variante foram encapsulados em um único aspecto, como ilustrado na Figura 3. O aspecto ResourceWithQuantification, como ilustrado na Figura 3, é comum a todas as variantes do padrão, e introduz atributos e métodos relacionados ao padrão Quantificar Recurso na classes Resource, que implementa o padrão Identificar Recurso. Os aspectos MeasurableQuantStrategyContainerLoaderAspect e MeasurableResourceContainerLoaderAspect, que introduzem atributos e operações relacionados à variante Recurso Mensurável ou em Lotes do padrão Quantificar Recurso nas classes Resource e QuantificationStrategy, foram removidos e foi criado o aspecto MeasurableQuantStrategy para introduzir esses atributos e operações em ambas as classes, como mostrado na Figura 3b). O mesmo procedimento foi utilizado para o Recurso Instanciável, sendo criado o aspecto InstantiableQuantStrategy.
7 Figura 3. Padrão Quantificar Recurso após a aplicação das diretrizes de manutenção 5. Trabalhos Relacionados Bayer e Milewski (2008) desenvolveram uma IDE para apoiar o processo de manutenção. Ela fornece informação do projeto comportamental por meio de um formulário gráfico, o que possibilita que os engenheiros de software compreendam mais facilmente como o sistema funciona e possam localizar o código fonte relevante, sem a necessidade de consultar a documentação. Essa abordagem pode auxilia a detecção de entrelaçamento e espalhamento de interesses e o mapeamento das variabilidades de frameworks. Kawakami et al. (2007) propuseram uma ferramenta de reengenharia denominada ReJAsp (Reengenharia de Java para Aspectos), um plugin do Eclipse, para automatizar a abordagem Aspecting [Ramos et al. 2004], que trata da identificação de interesses transversais. É possível a identificação dos interesses transversais de persistência em banco de dados relacional, persistência em memória intermediária e logging. Posteriormente, Costa et al. (2009) desenvolveram uma ferramenta chamada DMAsp, também um plugin do Eclipse, para apoiar a geração de um modelo orientado a objetos anotado com indícios de interesses transversais, identificados pela ferramenta ReJAsp. Para a aplicação das diretrizes Analisar a Presença Espalhamento de Interesses e Analisar a Presença Entrelaçamento de Interesses propostas neste trabalho, pode-se utilizar as ferramentas ReJAsp e DMAsp. A abordagem Phoenix (Garcia et al., 2005) realiza a reengenharia de software OO para uma mistura de objetos com abstrações OA. Tem seu enfoque em aspect-mining para identificar potenciais interesses transversais a serem modelados e implementados como aspectos, e em técnicas de refactoring para reorganizar o código utilizando transformações de código, o que possibilita a recuperação de um projeto OA. Assim, a abordagem Phoenix pode ser utilizada juntamente com as diretrizes aqui apresentadas para a manutenção de frameworks, sendo gerado um modelo de projeto OA a partir de um código OO. 6. Considerações Finais Durante a manutenção de um framework OO utilizando OA foram verificados problemas como, por exemplo, a existência de vários interesses implementados com entrelaçamento e espalhamento e para modularizá-los foram utilizados aspectos. Na análise da versão original do GRENJ, usado como estudo de caso, foi verificado que a implementação de um interesse se encontra distribuída por várias classes framework. Após essa análise, pode-se utilizar aspectos para modularizar a implementação desse interesse. Uma das duas estratégias comentadas na Seção 2 pode ser utilizada. O uso das diretrizes de manutenção de frameworks apresentadas auxilia na composição de cada uma das features do framework a ser modularizado. Isso permite que aplicações baseadas em
8 frameworks tenham somente código relacionado às funcionalidades necessárias aos requisitos da aplicação. Ao contrário do que ocorre em frameworks convencionais como Spring (2010) e Hibernate (2010) em que é necessário carregar todas as features do framework independente se são utilizadas ou não. Além disso, o uso dessas diretrizes conduz ao projeto de um framework com um menor nível de acoplamento e alta coesão entre suas classes. Isso facilita a manutenção, a extensão e o processo de uso e reúso do framework. A elaboração de um processo para apoiar a manutenção de frameworks orientados a objetos para orientado a aspectos, bem como um estudo sobre o impacto e os problemas do uso de métricas de software nesse processo de manutenção são alguns dos trabalhos futuros. Referências Bayer, R., Milewski, A. E. (2008). Improving Software Maintenance Efficiency With Behavior-Based Cognitive Models. In Proceedings of SMC 2008, Singapore. Bosch, J., Molin, P., Mattsson, M., and Bengtsson, P. (2000). Object-oriented framework-based software development: problems and experiences. ACM Comput. Surv. 32, 1es (Mar. 2000). Braga, R. T. V., Germano, F. S. R., e Masiero, P. C. (1999). A Pattern Language for Business Resource Management. Proceedings of the Annual Conference on Pattern Languages of Programs, 6:1 33. Costa, H. A., Junior, P. A., de Camargo, V. V., and Penteado, R. A. (2009). Recovering Class Models Stereotyped with Crosscutting Concerns. In Proceedings of the 16th Working Conference on Reverse Engineering (October 13-16, 2009). WCRE. IEEE Computer Society, Washington, DC, Dijkstra, Edsger W. (1976). A Discipline of Programming. Prentice-Hall, NJ. Durelli, V. (2008). Um processo de reengenharia ágil de frameworks OO. Dissertação de Mestrado. Departamento de Computação, Universidade Federal de São Carlos. Fayad, M. and Schmidt, D. C. (1997). Object-oriented application frameworks. Communications of ACM 40, 10 (Oct. 1997), Garcia, V. C., Lucrédio, D., Prado, A. F. do, Almeida, E. S. de, Alvaro, A., Meira, S. R. de L. (2005). Towards an Approach for Aspect-Oriented Software Reengineering. In the 7th International Conference on Enterprise Information Systems (ICEIS'2005), May, Miami, USA. Gomaa, Hassan. (2004). Designing Software Product Lines With UML From Use Case to Pattern- Based Software Architectures. Addison-Wesley, 1a. Edição, Hibernate (2010). Hibernate Framework. Kang, K. C., Cohen, S. G., Hess, J. A., Novak, W. E., Peterson, A. S. Feature Oriented Domain Analysis (FODA), (1990). Feasibility Study. Techinical Report CMU/SEI-90-TR-21, Software Engineering Institute, Carnegie Mellon University. Kawakami, D., Penteado R. A. D., Ramos, R. A. (2007). Uma Abordagem para Reengenharia de Sistemas implementados em Java para AspectJ. 1st LA-WASP. Ramos, R. A.; Penteado, R. A. D.; Masiero, P. C. (2004) Um Processo de Reestruturação de Código Baseado em Aspectos. XVIIII SBES v. 1. p Spring (2010). Spring Framework.
Um Estudo Quantitativo das Implementações Orientadas a Aspectos do Padrão Data Access Object
Um Estudo Quantitativo das Implementações Orientadas a Aspectos do Padrão Data Access Object André L. de Oliveira 1, André L. A. Menolli 2, Ricardo G. Coelho 2, Valter V. de Camargo 3, Ricardo A. Ramos
Leia mais3 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 maisUm Perfil UML para Frameworks Transversais
Um Perfil UML para Frameworks Transversais Aluno: José Uetanabara Júnior 1 Orientador: Valter Vieira de Camargo 2 ¹Instituto de Informática Univem Centro Universitário Eurípides de Marília Marília, São
Leia maisUma Proposta de Reúso de Interface Gráfica com o Usuário Baseada no Padrão Arquitetural MVC
Uma Proposta de Reúso de Interface Gráfica com o Usuário Baseada no Padrão Arquitetural MVC Vinícius H. S. Durelli 1, Matheus C. Viana 2, Rosângela A. D. Penteado Departamento de Computação (DC) - Universidade
Leia mais9 Conclusão e trabalhos futuros
255 9 Conclusão e trabalhos futuros O aumento da complexidade das aplicações de software de hoje em dia e o advento de tecnologias inovadoras e recentes fazem com que os sistemas de software incorporem
Leia maisFerramenta MVCase Uma Ferramenta Integradora de Tecnologias para o Desenvolvimento de Componentes Distribuídos
Ferramenta MVCase Uma Ferramenta Integradora de Tecnologias para o Desenvolvimento de Componentes Distribuídos Eduardo Santana de Almeida Daniel Lucrédio Calebe de Paula Bianchini Antonio Francisco do
Leia maisUm Método para o Desenvolvimento de Software Baseado em Componentes e Aspectos
Roteiro Um Método para o Desenvolvimento de Software Baseado em Componentes e Aspectos Marcelo Medeiros Eler Universidade de São Paulo Av. do Trabalhador São-Carlense, 400 São Carlos, SP Email: mareler@icmc.usp.br
Leia mais4 O Framework de Avaliação
4 O Framework de Avaliação O propósito central do uso de aspectos é melhorar a separação de concerns. Entretanto a orientação a aspectos pode afetar também outros atributos de software, tais como acoplamento,
Leia maisDesenvolvimento de Sistemas de Informação Flexíveis Utilizando Frameworks com Separação de Regras de Negócio
Desenvolvimento de Sistemas de Informação Flexíveis Utilizando Frameworks com Separação de Regras de Negócio Sérgio E. C. Netto Faculdade Professor Miguel Ângelo da Silva Santos (FeMASS) sergioecnetto@gmail.com
Leia maisAvoiding Code Pitfalls in Aspect-Oriented Programming
Avoiding Code Pitfalls in Aspect-Oriented Programming A. Santos, P. Alves, E. Figueiredo, and F. Ferrari Science of Computer Programming (SCP, 2015) Apresentação: Aline Brito Programação Orientada a Aspecto
Leia maisFerramenta MVCASE - Estágio Atual: Especificação, Projeto e Construção de Componentes
Ferramenta MVCASE - Estágio Atual: Especificação, Projeto e Construção de Componentes Antônio Francisco do Prado Daniel Lucrédio e-mail: prado@dc.ufscar.br Resumo Este artigo apresenta a ferramenta CASE
Leia maisSeminário de aspectos: conceitos, características e exemplos
Seminário de aspectos: conceitos, características e exemplos Daniel Bruno Conrado Thiago Gottardi Departamento de Computação Universidade Federal de São Carlos (UFSCar) São Carlos SP Brasil dbconrado@gmail.com,
Leia maisIntrodução à Análise e Projeto de Sistemas
Introdução à I. O Que vamos fazer na Disciplina? Saber uma linguagem de programação orientada a objeto (OO) não é suficiente para criar sistemas OO Tem que saber Análise e Projeto OO (APOO) Isto é, Análise
Leia mais10/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 maisUma 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 maisArquitetura de Referência para Projeto Detalhado de Frameworks Transversais de Persistência
Arquitetura de Referência para Projeto Detalhado de Frameworks Transversais de Persistência Aluno: Rogério Lazanha 1 Orientador: Valter Vieira de Camargo 2 ¹Centro Universitário Eurípedes Soares da Rocha
Leia maisUma ferramenta CASE para o Desenvolvimento de Software Orientado a Aspectos
Uma ferramenta CASE para o Desenvolvimento de Software Orientado a Aspectos Vinicius Cardoso Garcia 1, Daniel Lucrédio 1, Luíza Frota de Paula Pinto 1, Alexandre Alvaro 2, Eduardo Santana de Almeida 2,
Leia maisDesenvolvimento 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 mais2 Estado da Arte e Trabalhos Relacionados
18 2 Estado da Arte e Trabalhos Relacionados Neste capítulo, serão apresentados alguns conceitos relativos a frameworks orientado a objetos, e o paradigma da programação orientada a aspectos. Além disso,
Leia mais3 Estado da Arte e Trabalhos Relacionados
29 3 Estado da Arte e Trabalhos Relacionados Neste capítulo resumimos alguns trabalhos existentes na literatura que se relacionam à abordagem de avaliação proposta nesta dissertação. O objetivo de todo
Leia maisIDENTIFICAÇÃO DE ASPECTOS EM NÍVEL DE ANÁLISE BASEADO EM ATRIBUTOS DE REQUISITOS NÃO FUNCIONAIS
IDENTIFICAÇÃO DE ASPECTOS EM NÍVEL DE ANÁLISE BASEADO EM ATRIBUTOS DE REQUISITOS NÃO FUNCIONAIS Leandro Siqueira da Silva [Voluntário], Simone Nasser Matos [Orientadora] Departamento de Informática Câmpus
Leia maisApresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP:
Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP: 8429016 Definição de MDA OMG (Object Management Group) propôs uma aplicação abrangente das práticas
Leia maisVisões Arquiteturais. Visões Arquiteturais
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 maisINF1013 MODELAGEM DE SOFTWARE
INF1013 MODELAGEM DE SOFTWARE Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 1 O Paradigma Orientado a Objetos A Linguagem UML Descrição da Arquitetura 1 Programa
Leia maisComposiçã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 maisAspectos para Construção de Aplicações Distribuídas
Aspectos para Construção de Aplicações Distribuídas Cristiano Amaral Maffort maffort@gmail.com Programa de Pós-Graduação em Informática PUC Minas Belo Horizonte MG 12 de junho de 2007 Middleware Objetivo:
Leia maisVisão Geral da UML. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012
Visão Geral da UML SSC 121 - Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012 Conteúdo Introdução Ferramentas de Apoio Diagramas da UML Elementos Genéricos Material sobre UML
Leia maisModel Driven Development (MDD)
Model Driven Development (MDD) Mestrado em Engenharia de Produção e Sistemas Computacionais Profa. Adriana Pereira de Medeiros adrianamedeiros@puro.uff.br Sumário Introdução Desenvolvimento de Software
Leia maisImplementação de Padrões de Projeto em Java e AspectJ
Implementação de Padrões de Projeto em Java e AspectJ Jan Hannemann e Gregor Kiczales University of British Columbia Bruno Cardoso Reutilização de Software 18/09/13 DCC/ICEx/UFMG Padrões de Projeto (GoF
Leia mais4 Desenvolvimento de Software Orientado a Aspectos
4 Desenvolvimento de Software Orientado a Aspectos Apesar de ser a tecnologia atualmente dominante no desenvolvimento de software, a orientação a objetos possui algumas limitações nas tarefas de projetar
Leia maisDIAGRAMAS DE CLASSE UML
DIAGRAMAS DE CLASSE UML Projeto Detalhado de Software (PDS) Profa. Cynthia Pinheiro Antes de mais nada... Calendário de Reposições Aula 1: 27/10/2017, 8h-10h, Sala 8 Aula 2: A verificar Aula 3: A verificar
Leia maisEngenharia de Domínio e Desenvolvimento Baseado em Componentes. Processo DBC-Arch-DE Apoio do Ambiente Odyssey no Processo Considerações Finais
Um Processo de Engenharia de Domínio com foco no Projeto Arquitetural Baseado em Componentes Ana Paula Blois Cláudia Werner Karin Becker Agenda Motivação Engenharia de Domínio e Desenvolvimento Baseado
Leia maisCaptor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos
Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior 1 Paulo Cesar Masiero 1 Rosana Teresinha Vaccare Braga 1 1 Instituto de Ciências
Leia maisAnálise de Sistemas. Aula 5
Análise de Sistemas Aula 5 Prof. Emerson Klisiewicz CONTEXTUALIZAÇÃO Aula 5 Análise Orientada a Objetos Introdução a UML Histórico e Visão Geral Ferramentas CASE O Sucesso... Clientes satisfeitos Eles
Leia maisEngenharia de Software
Engenharia de Software Design Principles Representando SW em UML OO em C Pattens úteis para embedded Rodrigo M A Almeida Design Principles Design Principles são guias para decompor as funcionalidades e
Leia mais3 Tecnologias Relacionadas
Tecnologias Relacionadas 31 3 Tecnologias Relacionadas O objetivo deste capítulo é apresentar um resumo de cada tecnologia relacionada ao processo proposto nesta dissertação, mostrando suas principais
Leia maisAvoiding code pitfalls in Aspect-Oriented Programming
Avoiding code pitfalls in Aspect-Oriented Programming Adriano Santos, Péricles Alves, Eduardo Figueiredo, Fabiano Ferrari 18º Simpósio Brasileiro de Linguagens de Programação Maceió, 2014 Apresentação:
Leia maisRAFAEL HENRIQUE DE MORAES AUGUSTO
FUNDAÇÃO DE ENSINO EURÍPIDES SOARES DA ROCHA CENTRO UNIVERSITÁRIO EURÍPIDES DE MARÍLIA UNIVEM CURSO DE CIÊNCIA DA COMPUTAÇÃO RAFAEL HENRIQUE DE MORAES AUGUSTO UMA COMPARAÇÃO ENTRE APLICAÇÕES ORIENTADAS
Leia maisFigura 1. Estrutura do agente de software.
24 2 Conceitos Básicos A engenharia de software baseada em agentes é uma área emergente cujo objetivo é oferecer suporte ao desenvolvimento de sistemas multi-agentes (Garcia et al., 2003; Jennings & Wooldridge,
Leia maisMetamodelos para Banco de Dados. Carlos Julian Menezes Araújo Prof. Dr. Robson do Nascimento Fidalgo
Metamodelos para Banco de Dados Carlos Julian Menezes Araújo cjma@cin.ufpe.br Prof. Dr. Robson do Nascimento Fidalgo 1 Agenda Metadados MDA MOF Metamodelos CWM Pacote Relacional Referências 2 Metadados
Leia maisModel Driven Development (MDD)
DCC / ICEx / UFMG Model Driven Development (MDD) Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Motivação para MDD Software é caro Os EUA sozinho investem mais de $250 bilhões em software Nos EUA,
Leia mais3.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 maisCombinação e Aplicação de Técnicas para o Desenvolvimento de Software Orientado a Aspectos
Combinação e Aplicação de Técnicas para o Desenvolvimento de Software Orientado a Aspectos Gabriel Costa Silva, Munif Gebara Junior, Daniela Eloise Flor Curso de Sistemas de Informação, Universidade Paranaense
Leia maisExtração de Aspectos. PUC Minas Instituto de Informática. Mestrado em Informática. Aluno: Marcelo Nassau Malta
Transformações de Código C para Extração de Aspectos PUC Minas Instituto de Informática Mestrado em Informática Aluno: Marcelo Nassau Malta Orientador: Prof. Marco Túlio de Oliveira Valente Sumário Motivação
Leia mais6 A Ferramenta de Medição e Avaliação
77 6 A Ferramenta de Medição e Avaliação Neste capítulo é apresentada a ferramenta AJATO, acrônimo para Ferramenta de Avaliação AspectJ 11. Esta ferramenta permite medir e avaliar sistemas implementados
Leia maisPROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001
PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO Projeto de Programas PPR0001 QUALIDADE DO PROJETO 2 3 Qualidade do Projeto de Software Modularidade: gerar particionamento em elementos que executam funções
Leia maisEvento: XXV SEMINÁRIO DE INICIAÇÃO CIENTÍFICA
INTEGRAÇÃO DE APLICAÇÕES APLICADA À EXTRAÇÃO E QUALIFICAÇÃO AUTOMÁTICA DE PUBLICAÇÕES DE PESQUISADORES: UM CASO BASEADO NO CURRÍCULO LATTES 1 APPLICATION INTEGRATION APPLIED TO AUTOMATIC EXTRACTION AND
Leia maisApoio Computacional para auxiliar a Reengenharia de Sistemas Legados Java para AspectJ
UNIVERSIDADE FEDERAL DE SÃO CARLOS DEPARTAMENTO DE COMPUTAÇÃO PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO Apoio Computacional para auxiliar a Reengenharia de Sistemas Legados Java para AspectJ Daniel
Leia mais2 Desenvolvimento de Linhas de Produtos de Softwares
19 2 Desenvolvimento de Linhas de Produtos de Softwares Este capítulo apresenta uma visão geral do desenvolvimento de Linhas de Produtos de Software (LPS). Diversos conceitos relacionados ao desenvolvimento
Leia mais4 Processo de Transformação
Tecnologias Relacionadas 43 4 Processo de Transformação Com a constante mudança nos requisitos (funcionais e não funcionais) do domínio da aplicação, há uma grande necessidade de que os sistemas estejam
Leia mais2 Desenvolvimento de Software Orientado a Aspectos
20 2 Desenvolvimento de Software Orientado a Aspectos A divisão em partes é um importante instrumento para se reduzir a complexidade de sistemas de software. É muito difícil para o ser humano compreender
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
Programação Orientada a Objetos 1.1 - Perspectiva histórica: Conceitos A evolução das linguagens de programação tem-se feito na procura de ferramentas: -cada vez mais próximas da percepção humana - e que
Leia maisVisões Arquiteturais. Visões Arquiteturais. Visões Arquiteturais. Visão Conceitual
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 maisContexto. 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 maisPadrões de Projeto. Conteúdo. Objetivos
Padrões de Projeto Conteúdo O que são Padrões de Projeto? Para que servem? Vantagens/Desvantagens, Pontos Fortes/Fracos Exemplos e Alternativas Objetivos Conhecer diferentes padrões; Entender sua utilidade;
Leia maisEstilo: BlackBoard. BlackBoard = repositório de dados compartilhados
Estilo: BlackBoard Útil para problemas no qual não há uma solução determinística Uma coleção de programas independentes que trabalham cooperativamente em uma estrutura de dados comum (blackboard) Vários
Leia mais8 Princípios e Diretrizes para o Design Orientado a Aspectos
8 Princípios e Diretrizes para o Design Orientado a Aspectos Este Capítulo apresenta alguns princípios para o design de sistemas orientados a aspectos e diretrizes preliminares para a modelagem orientada
Leia maisUNIVERSIDADE FEDERAL DE P ERNAMBUCO
UNIVERSIDADE FEDERAL DE P ERNAMBUCO GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO CENTRO DE INFORMÁTICA 2015.2 Programação Orientada a Aspectos com AspectJ nos frameworks Java atuais PROPOSTA DE TRABALHO DE GRADUAÇÃO
Leia maisEspecificação de Sistemas de Software e a UML
Modelagem de sistema Especificação de Sistemas de Software e a UML A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema Modelo => visão simplificada e abstrata de um sistema
Leia maisIntrodução à Engenharia de Software
Introdução à Engenharia de Software Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br Imagem Clássica Objetivo da aula Depois desta aula você terá uma visão sobre o que é a engenharia
Leia maisUNIVERSIDADE FEDERAL DO PARANÁ - UFPR Bacharelado em Ciência da Computação
SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 16 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar, discutir o conceito de métricas de software. DESENVOLVIMENTO Métricas
Leia maisFrameworks. Viviane Torres da Silva
Frameworks Viviane Torres da Silva viviane.silva@ic.uff.br http://www.ic.uff.br/~viviane.silva/es1 Frameworks Motivação Definição Classificação Características Propriedades Técnicas de Customização Frameworks
Leia maisIntroduçã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 maisMODELAGEM E DESENVOLVIMENTO DE UMA FERRAMENTA HIPERMÍDIA DE ENSINO VOLTADA AO SETOR AGROPECUÁRIO, USANDO OOHDM
MODELAGEM E DESENVOLVIMENTO DE UMA FERRAMENTA HIPERMÍDIA DE ENSINO VOLTADA AO SETOR AGROPECUÁRIO, USANDO OOHDM RESUMO Rodrigo de Oliveira André Luiz Zambalde Rêmulo Maia Alves Sérgio Augusto Carvalho Gomes
Leia maisBibIme - 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 maisMetamodelo para Integração de Ferramentas de Mineração de Interesses Transversais e de Visualização de Software
Metamodelo para Integração de Ferramentas de Mineração de Interesses Transversais e de Visualização de Software Oscar José Fernandes Tanner 1, Rosângela Aparecida Dellosso Penteado 1, Matheus Carvalho
Leia maisCapítulo 2. Orientação a Objetos
Capítulo 2 Orientação a Objetos Princípios da Orientação a Objetos Os princípios da orientação a objetos afetam todo o processo de desenvolvimento de software: Seres humanos pensam em termos de substantivos
Leia mais5 Trabalhos Relacionados
5 Trabalhos Relacionados Este capítulo busca apresentar os trabalhos diretamente relacionados com a presente dissertação e as subseções seguintes apresentam os trabalhos focados em ferramentas (Seção 5.1)
Leia maisCampus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /
Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: ENGENHARIA DE SOFTWARE Aula N : 16 Tema:
Leia mais15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos
DCC / ICEx / UFMG Pensar Orientado a Objetos Projeto Orientado a Objetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Onde quer que você olhe no mundo real, você vê objetos Pessoas, animais, plantas,
Leia maisTópicos da Aula. Desenvolvimento Dirigido por Modelos (MDD) Reusar cada vez mais... Reusar cada vez mais... O que é modelagem? Reuso: Código x Modelos
Reuso de Software Aula 20 Tópicos da Aula Desenvolvimento Dirigido por Modelos (MDD) Introdução a UML Visão geral de alguns diagramas Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com
Leia maisNotas 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 maisAgenda da Aula. Programação Orientada a Características com AHEAD. Característica Modular. Programação Orientada a Características (FOP)
DCC / ICEx / UFMG Agenda da Aula Programação Orientada a Características com AHEAD Programação Orientada a Características (FOP) Segundo Don Batory Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo
Leia mais7 Análise dos Estudos de Caso, Discussões e Lições Aprendidas
147 7 Análise dos Estudos de Caso, Discussões e Lições Aprendidas Este capítulo apresenta uma análise da abordagem OA proposta a partir dos estudos de caso realizados. Inicialmente são apresentados os
Leia maisA Arquitetura de Software ArchM
5 A Arquitetura de Software ArchM Como dito anteriormente, uma possível solução para o problema de separação de mobilidade em SMAs, investigada neste trabalho, envolve o DSOA. Nosso trabalho propõe: (1)
Leia maisReengenharia, 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- 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 maisPrograma 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 maisDesenvolvimento de Software Orientado a Aspectos João Roberto Silva de Almeida
Desenvolvimento de Software Orientado a Aspectos João Roberto Silva de Almeida Universidade Federal de Juiz de Fora Instituto de Ciências Exatas Departamento de Ciência da Computação Bacharelado em Ciência
Leia maisCLÁUDIO ROSSE PANDOLFI SUPORTE DE INTERESSES TRANSVERSAIS PARA FRAMEWORK CODEIGNITER
FUNDAÇÃO DE ENSINO EURÍPIDES SOARES DA ROCHA CENTRO UNIVERSITÁRIO EURÍPIDES DE MARÍLIA UNIVEM CURSO DE CIÊNCIA DA COMPUTAÇÃO CLÁUDIO ROSSE PANDOLFI SUPORTE DE INTERESSES TRANSVERSAIS PARA FRAMEWORK CODEIGNITER
Leia maisFrameworks. SSC-526 Análise e Projeto Orientados a Objeto Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2013
Frameworks SSC-526 Análise e Projeto Orientados a Objeto Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2013 1 Frameworks Definições: Aplicação semi-completa reutilizável que, quando especializada, produz
Leia maisArquitetura 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 maisDESENVOLVIMENTO DE UMA SOLUÇÃO DE INTEGRAÇÃO DE APLICAÇÕES PARA AUTOMATIZAR RESERVAS DE VIAGEM 1
DESENVOLVIMENTO DE UMA SOLUÇÃO DE INTEGRAÇÃO DE APLICAÇÕES PARA AUTOMATIZAR RESERVAS DE VIAGEM 1 Edinaldo Gaspar Da Silva 2, Fabricia Roos Frantz 3, Rafael Z. Frantz 4, Sandro Sawicki 5. 1 Projeto de pesquisa
Leia maisCiência da Computação ENGENHARIA DE SOFTWARE. Métricas e Estimativas do Projeto
Ciência da Computação ENGENHARIA DE SOFTWARE Métricas e Estimativas do Projeto Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com Roteiro Introdução Métricas APF Análise de Pontos de Função Estimativas
Leia maisAvaliação da adequação do uso de aspectos na implementação de variabilidades de linha de produto de software
Avaliação da adequação do uso de aspectos na implementação de variabilidades de linha de produto de software Rodrigo de C. Brito¹, Thelma E. Colanzi 1 ¹Departamento de Informática Universidade Estadual
Leia maisALM Aplicações em Linguagem de Montagem. Introdução. A produção de Software é uma atividade build and fix. build. fix
Introdução A produção de Software é uma atividade build and fix. 1 Introdução build 2 Introdução fix 3 1 Introdução 4 P s Só pessoas motivadas e comprometidas com o projeto garantem o respectivo sucesso;
Leia mais7 Conclusão e Trabalhos Futuros
7 Conclusão e Trabalhos Futuros Como um novo e poderoso paradigma para o design e a implementação de sistemas de software (Lind, 2001;Wooldridge et al., 2001), o SMA requer metodologias, linguagens de
Leia maisEngenharia de Software
Prof. M.Sc. Ronaldo C. de Oliveira ronaldooliveira@facom.ufu.br FACOM - 2011 UML Linguagem Unificada de Modelagem Projeto de Software Introdução O que é projeto em software? O termo projeto é um tanto
Leia maisVisõ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 maisPerguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software
Engenharia de Software Aula 03 Perguntas da Aula 2 Processos de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@gmail.com 12 Março 2012 Inconsistente: perguntei laranjas, respondeu
Leia maisUm Middleware Orientado a Aspectos Baseado em uma Arquitetura de Referência
Um Middleware Orientado a Aspectos Baseado em uma Arquitetura de Referência Aluno: José Diego Saraiva da Silva¹ Orientadores: Thaís Batista¹, Flávia Delicato¹ e Paulo Pires¹ ¹Programa de Pós-Graduação
Leia mais6.1. Teste Baseado em Gramática e Outras Abordagens de Teste
6 Discussão Além das técnicas de teste usando modelos gramaticais, existem outras abordagens de teste funcional de sistemas que estão sendo estudadas pela comunidade científica. Algumas delas se dedicam
Leia maisMarilan Ricardo Tagliari - TCC Marilan Ricardo Tagliari - TCC Orientando: Marilan Ricardo Tagliari Orientador: Everaldo Artur Grahl
Orientando: Marilan Ricardo Tagliari Orientador: Everaldo Artur Grahl UNIVERSIDADE REGIONAL DE BLUMENAU Introdução Objetivos Especificação Estruturada Especificação Orientada a Objetos Estratégia de Mapeamento
Leia maisIntrodução à UML. Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX. Prof. Fernando Maia da Mota
Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX Introdução à UML Prof. Fernando Maia da Mota Slides gentilmente cedidos por Profa. Dra. Maria Istela Cagnin Machado UFMS/FACOM Introdução
Leia mais4 ALBATROZ : Um ambiente para desenvolvimento de SMA
41 4 ALBATROZ : Um ambiente para desenvolvimento de SMA Resumo Neste capítulo será apresentado o processo de desenvolvimento do ambiente Albatroz. Cada ferramenta é detalhada indicando suas funcionalidades.
Leia maisIntrodução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão
Sumário Introdução à UML BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos Humberto Mossri de Almeida hmossri_cursos@yahoo.com.br Marcelo Nassau Malta nassau_cursos@yahoo.com.br
Leia maisBy Gian Ricardo Berkenbrock & Eduardo Dockhorn da Costa
By Gian Ricardo Berkenbrock & Eduardo Dockhorn da Costa Problema; AOP; Aspect J; Proposta ao Problema; Conclusões; Referências. Desenvolver os tipos abstratos de dados: lista, fila, pilha e deque. Estes
Leia maisMarcelo Henrique dos Santos
Marcelo Henrique dos Santos Mestrado em Educação (em andamento) MBA em Negócios em Mídias Digitais (em andamento) MBA em Marketing e Vendas Especialista em games Bacharel em Sistema de Informação Email:
Leia maisDesign Dirigido ao Domínio - DDD
Design Dirigido ao Domínio - DDD Daniel Alcântara Cordeiro, Frederico A. Lima Junior, Saulo Mendonça Universidade Salvador (Unifacs) Edf. Civil Empresarial. Rua Doutor José Peroba, nº 251, STIEP, Salvador
Leia mais