A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos.

Apresentações semelhantes


Apresentação em tema: "Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos."— Transcrição da apresentação:

1 Projetar Arquitetura

2 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos Apresentar os passos necessários para realizar a atividade projetar arquitetura e discutir seus artefatos Apresentar o padrão de arquitetura em camadas Apresentar e exercitar o uso de padrões de projeto Apresentar o Padrão MVC Considerações sobre concorrência e distribuição

3 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Arquiteto de Informação Análise e Projeto OO com UML e Padrões| 3 Analisar Casos de Uso Revisar Projeto Projetar Arquitetura Projetista de Banco de Dados Arquiteto de Software Revisor de projeto Projetar Casos de Uso Projetar Subsistemas Projetar Base de Dados Analista de Sistemas Check List bla bla bla blabla Projetar classes Prototipar Interface gráfica Analisar Serviços Projetar Serviços

4 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 4 O que foi feito até agora Análise de caso de uso - para cada caso de uso: ­ Identificação das classes de análise (fronteira, entidade e controle) ­ Identificação das classes persistentes ­ Distribuição do comportamento do caso de uso entre as classes Elaboração do diagrama de seqüência Geração do diagrama de colaboração ­ Identificação das responsabilidades das classes ­ Identificação dos atributos e relacionamentos

5 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 5 Objetivos desta atividade Avaliar o conjunto das classes de análise Definir elementos de projeto (classes de projeto, cápsulas e subsistemas) e organizá- los em pacotes Definir a estrutura da aplicação No final do projeto da arquitetura tudo deve estar pronto para que os projetistas possam detalhar as realizações dos casos de uso de maneira uniforme!

6 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 6 Visão geral dos artefatos Arquiteto Projetar Arquitetura Documento da Arquitetura Documento de Requisitos Mapeamento das Classes de Análise em Elementos de Projeto Modelo de Análise e Projeto (classes de projeto, cápsulas e subsistemas) Modelo de Análise e Projeto (classes de análise) Modelo de Casos de Uso

7 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 7 Passos para Projetar Arquitetura 1. Mapear classes de análise em elementos (classes, cápsulas e subsistemas) de projeto 2. Identificar oportunidades de reuso 3. Definir a estrutura da aplicação

8 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 8 Passo 1: Mapear classes de análise em elementos (classes, cápsulas e subsistemas) de projeto Identificar classes de projeto Identificar subsistemas Especificar a interface dos subsistemas Fazer o mapeamento 1 classe de análise pode dar origem a 0 ou mais elementos de projeto Mapeamento m : n

9 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 9 Identificando classes de projeto Uma classe de análise simples, que representa uma única abstração, é mapeada para uma única classe de projeto ­ Exemplo: classes de entidade Classes de análise muito simples podem até ser combinadas em uma única classe de projeto Em geral, classes de análise complexas podem ser divididas em várias classes ou transformadas em um pacote ou subsistema

10 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 10 QIB – Identificando classes de projeto Classe Conta ­ Tem duas responsabilidades distintas: controle de acesso e conta bancária ­ Na realidade, modelam duas entidades diferentes A separação favorece o reuso ­ Por exemplo, ContaCorrente é utilizado para clientes que não têm acesso à internet. 1 1

11 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 11 Identificando subsistemas Antes, vamos revisar alguns conceitos... ­ Qual a diferença entre subsistemas e pacotes? ­ Como se descreve o comportamento de um subsistema? ­ Qual a grande vantagem associada aos subsistemas?

12 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 12 > Nome subsistema > Nome subsistema Atributos Realização Subsistemas e interfaces: notação Nome da interface Métodos > Nome da interface Atributos Métodos

13 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 13 Por que usar subsistemas? Subsistemas permitem dividir o sistema em partes independentes (que se tornarão componentes) Cada subsistema pode ser desenvolvido, testado e possivelmente implantado independentemente dos demais Um subsistema pode representar uma abstração (no projeto) de produtos ou sistemas externos que serão incorporados na implementação

14 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 14 Identificando subsistemas Classes de análise ­ Classes de fronteira (interfaces com sistemas externos e com usuários) ­ Classes que fornecem serviços complexos Componentes reusáveis ­ Software de comunicação ­ Suporte ao acesso a BD ­ Estruturas de dados ­ Bibliotecas de utilitários ­ Produtos específicos da aplicação

15 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 15 > Subsistema X Identificando subsistemas Classe A Y() Z() Y() Z() > Interface A Classe complexa

16 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 16 Interface > nomeSubsistema FachadaSubsistema ISubSistema Além da interface, é destacada uma classe fachada de cada subsistema A classe fachada

17 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 17 Análise Projeto QIB – Efetuar Pagamento do Qualiti Card Identificando subsistemas > ComunicacaoOperadoraCartao enviar() > SubsistemaComunicacao OperadoraCartao ISubsistemaComunicacao OperadoraCartao enviar()

18 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 18 QIB – Efetuar Pagamento do Qualiti Card ISubsistemaComunicacao OperadoraCartao enviar() FachadaComunicacaoOperadoraCartao PagamentoCartao Contexto do subsistema ControladorPagamentoQualitiCard

19 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 19 Passo 2. Identificar oportunidades de reuso Internas ao sistema ­ Similaridades entre pacotes e subsistemas Externas ao sistema ­ Componentes disponíveis no mercado ­ Componentes de aplicações já desenvolvidas ­ Componentes que podem se tornar reusáveis para outros projetos

20 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 20 Identificando oportunidades de reuso A partir das interfaces de subsistemas ou componentes existentes analisar onde estes podem ser reutilizados Para um candidato a subsistema ­ Procure interfaces similares (podendo requerer engenharia reversa de subsistemas existentes) ­ Tente adaptar a interface nova às existentes, ou tornar as existentes mais gerais ­ Substitua a interface nova por existentes

21 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 21 Passo 3. Definir a estrutura da aplicação Definir as camadas da aplicação Determinar o meio de armazenamento que será utilizado Agrupar as classes, cápsulas e protocolos em pacotes e especificar a fachada da aplicação

22 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 22 Definir as camadas da aplicação O arquiteto pode seguir um padrão já existente para estruturar a aplicação Se o arquiteto adotar uma estrutura diferente do padrão, deve descrevê-la no Documento da Arquitetura O arquiteto também pode definir novos padrões ou atualizar orientações já existentes

23 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 23 Estruturação em camadas Separação do código: ­ interface com o usuário (GUI) ­ comunicação ­ regras de negócio ­ acesso a dados Interface com o usuário (GUI) Comunicação Negócio Dados

24 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 24 Benefícios Modularidade: ­ Dividir para conquistar ­ Separação de conceitos ­ Reusabilidade ­ Extensibilidade Mudanças em uma camada não afetam as outras, desde que as interfaces sejam preservadas ­ plug-and-play

25 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 25 Benefícios Uma mesma versão de uma camada trabalhando com diferentes versões de outra camada ­ várias GUIs para a mesma aplicação ­ vários mecanismos de persistência suportados pela mesma aplicação ­ várias plataformas de distribuição para acesso a uma mesma aplicação

26 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 26 Camada de negócios Responsável por implementar a lógica do negócio Classes inerentes ao domínio da aplicação: ­ classes básicas do negócio ­ coleções de negócio ­ fachada do sistema

27 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 27 Classes básicas do negócio Representam conceitos básicos do domínio da aplicação

28 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 28 Coleções de negócio Representam conjuntos de objetos das classes básicas Responsáveis pela inclusão, remoção, atualização e consultas a instâncias das classes básicas Encapsulam as verificações e validações inerentes ao negócio

29 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 29 Fachada do sistema Segue o padrão de projeto Facade Representa os serviços oferecidos pelo sistema Centraliza as instâncias das coleções de negócio e/ou controladores Gerencia as transações do sistema CadastroContasCadastroPagamentos Cartao CadastroContasFachadaCadastroPagamentos Cartao ControladorPagamento QualitiCard Fachada efetuarPagamentoQualitiCard()

30 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 30 Camada de dados Responsável pela manipulação da estrutura física de armazenamento dos dados Isolam o resto do sistema do meio físico usado Classes coleções de dados

31 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 31 Coleções de dados Executam inclusões, remoções, atualizações e consultas a instâncias das classes básicas no meio de armazenamento usado Implementadas de acordo com o meio físico usado RepositorioContasBDR

32 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 32 Coleções de dados Dependem do meio de armazenamento! RepositorioContasBDR RepositorioContasBDOO RepositorioContasArquivo

33 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 33 Independência do meio de armazenamento Como isolar as coleções de negócio de mudanças na coleção de dados correspondente? RepositorioContasBDRRepositorioContasArquivoCadastroContas > RepositorioContas

34 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 34 Interface negócio-dados Sugestão de serviços > RepositorioContas inserir(conta: Conta): void atualizar(conta: Conta): void remover(conta: Conta): void consultarConta(login: String): Conta

35 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 35 Juntando tudo - Visão geral da arquitetura GUI / Comunicação NEGÓCIO Interfaces negócio- dados DADOS Fachada TelaLogin TelaPagamentoQualitiCard ControladorLogin ControladorPagamentoQualitiCard CadastroPagamentosCartao... ContaInternet PagamentoCartao IRepositorioContasInternet IRepositorioPagamentosCartao RepositorioPagamentos CartaoBDR RepositorioPagamentos CartaoBDOO RepositorioContas InternetBDR RepositorioContas InternetArquivo CadastroContas Internet

36 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 36 QIB – Efetuar Login e Efetuar Pagamento do Qualiti Card Mapeamento entre análise e projeto Classes de AnáliseElementos de Projeto Fachada TelaMenu Data Hora ContaContaInternet ContaCorrente CadastroContas CadastroPagamentosCartaoCadastroTransacoes IRepositorioTransacoes RepositorioTransacoesBDR ComunicacaoOperadoraCartao SubsistemaComunicacaoOperadoraCartao ISubsistemaComunicacaoOperadoraCartao FachadaComunicacaoOperadoraCartao CadastroContasInternet IRepositorioContasInternet RepositorioContasInternetBDR CadastroContasCorrente IRepositorioContasCorrente RepositorioContasCorrenteBDR

37 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 37 QIB – Efetuar Login e Efetuar Pagamento do Qualiti Card Projeto da arquitetura Comprovante FachadaComunicacaoOperadoraCartao Hora Data PagamentoCartao numeroFatura contaBancaria valor RepositorioContas CorrenteBDR RepositorioContas InternetBDR RepositorioPagame ntosCartaoBDR ContaCorrente ContaInternet 1 1 1 1 IRepositorio ContasCorrente TelaLoginTelaMenuTelaPagamentoQualitiCard IRepositorio PagamentosCartao IRepositorio ContasInternet ControladorLogin CadastroContasCorrente 1 1 1 1 Fachada 1 0..n 1 1 1 1 1 1 1 1 ISubsistemaComunicacao OperadoraCartao CadastroPagamentosCartao 1 1 1 1 CadastroContasInternet 1 1 1 1 1 1 1 1 ControladorPagamentoQualitiCard 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

38 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 38 Exercício – Qualiti Internet Banking Dado: ­ As classes de análise do caso de uso Realizar Doc ­ A tabela de mapeamento e o projeto de arquitetura de Efetuar Login e Efetuar Pagamento do Qualiti Card Identificar para o Realizar Doc: ­ subsistemas e suas interfaces ­ elementos de projeto (classes e subsistemas) Produzir: ­ Tabela mapeando as classes de análise nos elementos de projeto ­ Diagrama de contexto dos subsistemas (opcional) ­ Projeto da arquitetura com incluindo Realizar DOC

39 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 39 Agrupar as classes em pacotes À medida que os elementos de projeto são identificados, a complexidade do modelo vai aumentando Para organizá-lo, os elementos devem ser agrupados em pacotes As camadas guiam essa organização

40 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 40 Evite dependências cíclicas Critérios para definição dos pacotes Acoplamento e Coesão ­ Agrupa as classes em bibliotecas ­ Exemplo: cliente, conta, banco, util, etc. Distribuição – usuário ­ Agrupa as classes por locais de implantação ­ Exemplo: clienteRecife, clienteSaoPaulo, etc. Segurança ­ Agrupa as classes por permissão de acesso ­ Exemplo: gerência, programadores, etc.

41 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 41 Pacote Global Pode ser usado por todos os outros pacotes ­ classes utilitárias Não é necessário explicitar as dependências

42 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 42 QIB – Efetuar Login e Efetuar Pagamento do Qualiti Card conta Organização de pacotes protocolos

43 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 43 QIB – Pacote conta IRepositorioContas Corrente > CadastroContasCorrente > 1 1 1 1 RepositorioContasCorrenteBDR ContaCorrente numero saldo getSaldo() debitar() > ContaInternet login senha > 1111 IRepositorioContasInternet > CadastroContasInternet > 1 1 1 1 RepositorioContasInternetBDR

44 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 44 QIB – Pacotes Dependência entre pacotes > util controladores GUI conta > subsistemaComunicaca o OperadoraCartao transacao ISubsistemaComunicacao OperadoraCartao protocolos

45 Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 45 Exercício – Qualiti Internet Banking Dado: ­ Os elementos de projeto ­ A estrutura definida para a aplicação Definir os pacotes da aplicação e os elementos que devem estar presentes em cada pacote (incluir os elementos do caso de uso Realizar DOC) Elaborar um diagrama mostrando as dependências entre pacotes (opcional


Carregar ppt "Projetar Arquitetura. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2 Objetivos."

Apresentações semelhantes


Anúncios Google