Separation of Concerns (SoC)

Slides:



Advertisements
Apresentações semelhantes
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Advertisements

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.
Engenharia de Software
Objetivos e princípios da OO
Engenharia de Software
Centrado na arquitetura
Análise Orientada a Objetos
Faculdade de Ciências Sociais de Aplicadas de Petrolina – FACAPE
Faculdade de Ciências Sociais e Aplicadas de Petrolina – FACAPE
Projeto Arquitetural de Software Orientado a Aspectos
Padrões GoF - Façade.
Introdução ao paradigma de programação: Orientado a Objetos
Objetos Distribuídos Padrão CORBA
Tecnologia da Informação Orientação a Aspectos
GERENCIAMENTO DE REDES
Fundação Aplicações de Tecnologias Críticas - Atech
Introdução Visão Geral do Método.
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Gerencia de Projeto OO Aspectos Avançados em Engenharia de Software Aula 5 Fernanda Campos DCC/UFJF.
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Princípios e Conceitos de Software(v2)
Uma visão geral Grupo: Alexandre Henrique Vieira Soares
Introdução a Arquitetura Orientada a serviços
Paradigmas de programação
1 Modelos de Sistemas Distribuídos. Introdução - Dificuldades e ameaças para SD. Grande variação na utilização de SD )carga de trabalho e requerimentos.
Conceitos.
Desenvolvimento de Sistemas Orientados a Aspectos
Análise e Projeto de Sistemas
Sistemas Distribuídos
Middleware Orientado a Aspectos - MOA
Aspect Oriented Programming (AOP)
PSBD II Projeto de Sistemas de Banco de Dados II
Orientação a Objetos Parte I
Programação Orientada à Objetos
O Processo de desenvolvimento de software
ALGORITMOS Intensivo Janeiro e Fevereiro de 2011
O Processo Unificado (UP)
PROGRAMAÇÃO ORIENTADA A OBJETOS
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 Interação com o Usuário
Integração de Ferramentas CASE
Construtores e Destrutores
Tarciane Andrade Análise de Casos de Uso Tarciane Andrade
Ferramentas para Linhas de Produtos de Aplicações Móveis - FLIP Carlos Eduardo Pontual Fernanda d’Amorim Leopoldo Teixeira.
Discussing Aspects of AOP Alunos: Ezequiel Jonacir Mazza João Andrei Cetenareski Curso: Mestrado em Informática Aplicada Disciplina: Orientação a Objetos.
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
CloudSim Um framework para modelagem e simulação de infraestrutura e serviços de Computação em Nuvem.
Introdução a Orientação a Objetos
Arquitetura de Software Projetos de Interface
Análise e Projeto de Sistemas Orientado a Objetos Profa. Ana Karina Barbosa.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana /08/2012 Professor Leomir J. Borba-
Introdução à Programação Orientada a Objeto
Orientação a Objetos e Java Alexandre Mota  Centro de Informática, UFPE.
Módulo II Capítulo 1: Orientação a Objetos
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.
Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 2 Professor: Italo Rodrigues Castro.
APSI II Análise e Projeto de Sistemas de Banco de Dados II.
Eduardo C. Nicácio ITIL v3 Foundation Certified.  As melhores práticas do ITIL abrangem cinco processos de suporte a serviços, além do papel do Service.
1 Projeto Piloto Conclusão em Agenda Projeto Piloto –Descrição –Execução da aplicação –Implementação de requisitos funcionais e não- funcionais.
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos.
Engenharia de Software Conceitos e elementos 1. Engenharia   Resolução de problemas através de soluções economicamente viáveis  Motivacão: Limitação.
O Processo Unificado (PU). 2 O que é o Processo Unificado (PU)? É um modelo de processo de software baseado no modelo incremental, visando a construção.
INTRODUÇÃO A POO Dilvan Moreira. Por que estudar POO?  Escrever código é fácil  Entender código é difícil  Boa organização e um bom projeto do código.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Separation of Concerns (SoC)

Separation = Separação SoC Definição Separation = Separação Concerns = Interesses, Preocupações, Responsab.

Divisão do sistema Requisitos Funcionais Requisitos Não funcionais SoC Divisão do sistema Requisitos Funcionais Requisitos Não funcionais Ex. Requisito Funcional Cadastro de Cliente Ex. Requisito Não Funcional Tratamento de Erros Autorizações Persistência

SoC Para se ter um sistema de fácil gerenciamento é comum a identificação e separação dos problemas e funcionalidades de acordo com suas características em comum. Esses problemas são conhecidos pelo nome de concerns.

Tipos de Concern Os concerns estão divididos em dois tipos: SoC Tipos de Concern Os concerns estão divididos em dois tipos: core concern (requisito central): Abrange as funcionalidades centrais do módulo, posicionando- se de forma bem localizada, são os requisitos funcionais do sistema; crosscutting concern (requisito transversal) são tipos especiais de concerns, que afetam outros de forma transversal. Eles compõem os requisitos não- funcionais do sistema responsáveis por restrições e propriedades sistêmicas, como sincronização, persistência, entre outros.

POO e Concerns Vantagens Limitações SoC Alto Grau de Modularidade Reuso de Componentes Baixa complesxidade no Desenvolvimento Bom mecanismo para separação de concerns Limitações Dificuldade para resolver crosscutting concerns Entrelaçamento do código Espalhamento do código

SoC Apesar de muito útil e eficaz, a POO tem suas limitações, podendo ser facilmente utilizada para resolver os core concerns, porém é insuficiente para solucionar a maior parte dos crosscutting concerns (por exemplo, persistência de dados, segurança, auditoria, etc). Essa dificuldade causa o entrelaçamento e o espalhamento de código, tornando o sistema complexo e de difícil manutenção.

SoC Objetivo SoC Um objeto deve fazer apenas uma tarefa e fazê-la bem. Não se deve preocupar com o que os outros objetos fazem Num sistema macroscópico em que um objeto coordena objetos menores, ele confia que esses objetos executam bem a sua tarefa e não se preocupa com o como eles a executam. A única coisa que tem que existir entre todos os objetos é o consenso de com o quê , cada um, deve se preocupar.

Como alcançar o Objetivo SoC Como alcançar o Objetivo A única resposta a esta pergunta é: Encapsulamento. É através das diferentes formas de encapsulamento que o objeto concretiza seu objetivo.

Formas de Encapsulamento SoC Formas de Encapsulamento A Classe detém todos os conhecimento sobre o objeto: como o criar e destruir, o que ele faz e o que é. A Classe é a tradução da primeira forma de encapsulamento. Os modificadores de acesso (default, protected , private e public) instituem diferentes níveis de oclusão implementando assim, a segunda forma de encasupalmento. A Interface dá corpo à terceira forma de encapsulamento, permitindo que um só objeto tenha várias caras e execute o mesmo trabalho sob condições diferentes.

SoC Embora os artefatos embutidos na linguagem sejam os blocos fundamentais da construção de objetos e implantação do Principio de Separação de Responsabilidades existem diferentes combinações possíveis. O uso exaustivo dessas combinações levar-nos-á a encontrar um conjunto de padrões recorrentes que poderemos então usar diretamente na construção de nossos objetos: os Padrões de Projeto.

SoC Promessa para resolução do problema de espalhamento e entrelaçamento, visando o crosscutting concern: POA – Programação Orientada a Aspecto