Projeto Arquitetural de Software Orientado a Aspectos

Slides:



Advertisements
Apresentações semelhantes
Soluções elegantes para problemas recorrentes
Advertisements

Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.
Desenvolvimento de Software Orientado por Aspectos Autores: 4033 – Daniel Grilo 4223 – Nelson Rodgrigues Autores: 4033 – Daniel Grilo 4223 – Nelson Rodgrigues.
Aspect Oriented Software Development - AOSD 1 Elaborado por: Bruno Nunes nº 3202 Pedro Casqueiro nº 2163.
UML Visões – Parte 2.
Projeto conceitual Mostra ao cliente exatamente o que o sistema fará
Projeto 1.
Engenharia de Software
Rational Unified Process(RUP)
Metodologias Equipe do Curso de ES para SMA
Metodologia de Desenvolvimento de Software
Arquitetura em Camadas
Alunos: Eduardo Akira Yonekura Rogério Esteves Salustiano
RAD – Rapid Application Development
Arquitetura de Aplicações Web
Professora: Aline Vasconcelos
Programação Orientada a Aspectos
Padrões GoF – Factory Method
Análise Estruturada O mais amplamente usado dos métodos de modelagem de requisitos Modelos que retratam fluxo e o conteúdo da informação (dados e controle)
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
PROGRAMAÇÃO ORIENTADA A ASPECTOS EM JAVA Introdução a conceitos teóricos e práticos Adriano G. do Prado José Eduardo M. Lemos José Fernando da S. Cruz.
Como o AspectJ tece o código
Princípios e Conceitos de Software(v2)
Uma visão geral Grupo: Alexandre Henrique Vieira Soares
Configuração de manutenção
Copyright Marcos L. Chaim 2005 Princípios de Projeto de Software Orientado a Objetos Segundo Semestre 2005 Marcos L. Chaim ACH Turma 02 EACH – USP.
Separation of Concerns (SoC)
Projeto de Sistemas de Software
P ROGRAMAÇÃO ORIENTADA A ASPECTOS Equipe: Leandro Oliveira Anusio Menezes.
Conceitos.
Desenvolvimento de Sistemas Orientados a Aspectos
Desenvolvimento de Sistemas Orientados a Aspectos
Métodos de Construção de Software: Orientação a Objetos
Estilos de Arquitetura- uma outra visão
Introdução a Desenvolvimento de Sistemas
Projeto de Banco de Dados
Aspect Oriented Programming (AOP)
Prof: Leandro Maranim Dei Santi Prof. Eduardo Rossit Paiossin
O Processo Unificado (UP)
Sistemas operacionais
Padrão- MVC Model, View, Controller
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Padrões de Arquitetura
Diagrama de Componentes
Padrões de Interação com o Usuário
13/11/2007 João Arthur Brunet Monteiro GMF/DSC/CEEI/UFCG Evolução de Software A Survey of Software Refactoring Reconstruction of Successful Software Evolution.
Linguagem orientada a Aspectos 2 Luiz Carlos d’Oleron Tiago Vinícius.
Desenvolvimento de Software Dirigido a Modelos
IEEE Melhores Práticas para Descrições de Projeto de Software (DPS)
Tarciane Andrade Análise de Casos de Uso Tarciane Andrade
Discussing Aspects of AOP Alunos: Ezequiel Jonacir Mazza João Andrei Cetenareski Curso: Mestrado em Informática Aplicada Disciplina: Orientação a Objetos.
© Nabor C. Mendonça Processo / Metodologia de Desenvolvimento de Software.
Equipe Equipe: Ana Carolina M. Pilatti Igor de Souza Paiva Igor de Souza Paiva Rafael Stubs Parpinelli Rafael Stubs Parpinelli Vera Lúcia Marchiori Vera.
1 Arquitetura de Software Prof a : Francilene Garcia Disciplina: Projeto I DSC – CCT – UFCG Março Rogério Dourado
Desenvolvimento Global de Software
Arquitetura de Software Projetos de Interface
APRESENTAÇÃO E COMPREENSÃO DO ARTIGO. O Que Ele Quer Estabelecer  Discutir “modularização” como mecanismo de aprimoração de um sistema enquanto encurta.
Copyright © 2006 Qualiti. Todos os direitos reservados. Projetar Classes.
Qualidade de Produtos de Software
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
PADROES DE PROJETO PROF. OSIEL MARLON. PADRÕES DE PROJETO INTRODUÇÃO Padrões de projeto têm emergido como uma das mais promissoras abordagens para a melhoria.
IF 718 Análise e Projeto de Sistemas Augusto Sampaio Vitor Braga (Estágio docência) Camila Sá (Monitora) Parte do material cedido pela Qualiti Software.
Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1.
/ de Julho de UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados.
Projeto de Arquitetura de Software
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
Uma Extensão do Fluxo de Análise e Projeto do RUP com suporte a Desenvolvimento Baseado em Componentes Eduardo Almeida
Delegação  É uma maneira de tornar a composição tão poderosa para fins de reutilização como a herança. Na delegação, dois objetos são envolvidos no tratamento.
Princípios de design SOLID Padrões de Projeto Orientados a Objetos Profa. Danielle Martin Universidade de Mogi das Cruzes.
Transcrição da apresentação:

Projeto Arquitetural de Software Orientado a Aspectos Alessandra Guaracy de Oliveira Patrick Henrique da Silva Brito

Sumário Introdução Motivação Ferramentas Arquitetura de Software Orientada a Aspectos Conceito de Orientação a Aspectos no projeto de Arquitetura Extensão de UML Estudo de caso (elevador) Considerações Finais

Referências Bibliográficas Kandé, Kienzle, Strohmeier. From AOP to UML: Towards na Aspect-Oriented Architetural Modeling Approach. Agosto, 2002. Mens, Kim. Architectural Aspects. Fevereiro, 2002. Kishi, Tomoji. Studies on Software Architectural Design. Junho, 2002. Kishi, Tomoji; Noda, Natsuko. Aspect-Oriented Analysis for Architectural Design. 2002. Piveta, Eduardo. Aspect-Oriented Principles Applied to Architectural Styles. Junho 2003.

Introdução “Quando analisamos, é importante considerar não somente os requisitos funcionais do sistema, mas também atributos de qualidade, porque a arquitetura de software pode ser alterada se houver mudança dos requisitos não funcionais.” [Tomoji Kishi & Natsuko Noda, 2002]

Motivação Conseqüências do entrelaçamento de código: Aumento da complexidade dos componentes funcionais do sistema. Pouca modularidade (entrelaçamento de código) É uma abordagem que permite a separação dos requisitos funcionais e não funcionais do sistema de uma forma natural e concisa. Porque não também usar esse conceito na etapa de projeto do software (inclusive arquitetural)?

Orientação a Aspectos Pelo não entrelaçamento de código, proporciona: Maior legibilidade; Maior modularidade Maior manutenibilidade; Maior flexibilidade; Divide o sistema em dois níveis Componentes funcionais – Requisitos funcionais Aspectos – Requisitos não-funcionais ou “entrelaçados”

Orientação a Aspectos O requisito não-funcional fica espalhado porque é tratado na dimensão errada! Tracing O requisito não-funcional é ortogonal à decomposição funcional! Join Point – Pontos onde aspectos podem interceptar componentes funcionais Before, around , after

Ferramentas AspectJ: Before After returning After throwing After Around

Arquitetura de Software Orientada a Aspectos O conceito de Orientação a Aspectos pode ser incorporado em estilos arquiteturais já conhecidos (ou estilos combinados): Crosscuting (atalho), evitando o entrelaçamento de código Aspectos são visões das funções ou dos atributos de qualidade

Arquitetura de Software Orientada a Aspectos É importante tratar os requisitos do software de uma maneira particular: Tratamento dos requisitos de cada aspecto separadamente; Categorização desses requisitos; Análise geral dos requisitos (todos); Os requisitos não-funcionais são desmembrados em fatores;

Conceito de Orientação a Aspectos no projeto de Arquitetura “Estes aspectos podem ser modelados/implementados usando filtros de composição, onde cada filtro afeta um ou mais sub-sistemas ou componentes, em um alto nível de granularidade.” [Piveta, 2003] Os filtros podem ser mudados dinamicamente, flexibilizando a adequação do sistema aos requisitos representados por aspectos. (normalmente não-funcionais)

Extensão de UML Implementar o conceito de pontos de conexão (connection points) Detecção dos pontos de conexão:

Extensão de UML Aspectos Pontos de conexão Representação dos “advices” Tipos: Entrada (passivo)  Mapeado para uma chamada pointcut em AspectJ Saída (ativo)  Mapeado para interface ou classe abstrata Características: Semelhantes a Interface Podem ser instanciados Podem ter atributos e implementação de métodos Necessidade de elementos de interface entre componentes (“porta”) – Expansibilidade Representação dos “advices” before, around, after

Extensão de UML Conectores “Conectores de software ... Interação intermediária entre componentes; que estabelece regras que governam interações e mecanismos auxiliares necessários” [Shaw e Garlan] Assim como conectores, aspectos são intermediários entre componentes que se interceptam e são modularizados nessa abstração.

Estudo de caso (elevador)

Considerações Finais Ideal para sistemas que tenham muitos requisitos não-funcionais ou funções “espalhadas” no código. Pontos Fracos: Falta de padronização em UML. Falta de padronização da arquitetura. Inexistência de ferramentas específicas para suporte ao projeto arquitetural.

Considerações Finais “Como a arquitetura de software é a base para o projeto e algumas decisões dependem da arquitetura, mudanças arquiteturais podem ser muito caras” [Tomoji Kishi & Natsuko Noda, 2002] “O conceito de ‘crosscutting’ (atalho) não afeta a análise tanto quanto o projeto, porque na análise, requisitos não funcionais normalmente não são modelados. No desenvolvimento de software orientado a aspectos (AOSD), o projeto pode ser modificado para atualizar apenas o local do atalho.” [Piveta, 2003] “A arquitetura orientada a aspectos mostra a estrutura estática do aspecto e especifica pontos de conexão bem definidos, que são a base da ligação entre componentes. Como essa abordagem utiliza o conceito de porta, a expansibilidade da conexão se torna possível graças a esses ‘pontos de extensão’.” [Kandé & Kienzle & Strohmeier, 2002]