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

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

1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

Apresentações semelhantes


Apresentação em tema: "1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo."— Transcrição da apresentação:

1 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo

2 2 Aplicando UML, Padrões e APOO n Objetivo – Desenvolver habilidades práticas na utilização da Tecnologia Objeto para a criação de sistemas de software bem projetados, robustos e modificáveis. n Linguagens OO são um primeiro passo necessário mas insuficiente n Outros recursos importantes – processo de desenvolvimento – padrões – UML

3 3 Atribuindo Responsabilidades n Saber a maneira adequada de atribuir responsabilidades a componentes de software é a habilidade mais importante na APOO – Mais difícil de dominar – Afeta com mais profundidade a robustez, modificabilidade e reusabilidade do sistema n Padrões GRASP descrevem princípios fundamentais para auxiliar na atribuição de responsabilidades n Saber identificar objetos ou abstrações adequados é a segunda habilidade mais importante

4 4 O que é Análise e Projeto? Análise o quê Investigação do problema e dos requisitos Requisitos Casos de uso Restrições Vocabulário Projeto como Descrição de uma solução lógica Objetos Arquitetura Instalação & Operação Interface do usuário Fazer a coisa certa Fazer certa a coisa

5 5 n Termos Análise e Projeto não são fixos, mas usados ao longo de um contínuo. n Significados variam de metodologia para metodologia. n Distinção é útil na prática, mas debater definições rígidas não é construtivo. Conflito de Terminologias Mais orientado a análise Mais orientado a projeto

6 6 O que é APOO? n Na essência, É CONSIDERAR um problema e uma solução dentro da perspectiva de objetos, coisas ou conceitos. n O que é AOO? – Investigação dos objetos de domínio e seus relacionamentos. Descritos no Modelo de Objetos de Domínio n O que é POO? – Elaboração de uma solução lógica em termos de componentes de software e suas colaborações e responsabilidades. Descritos em Diagramas de Classes e Diagramas de Interação

7 7 Representação de um Conceito na APOO n Ex.: O conceito Livro em um sistema de biblioteca Representação no código Conceito de domínio public class Livro { public void imprimir(); private String titulo; } Livro título Representação na análise Livro título Representação no projeto imprimir()

8 8 Uma Analogia: Organizando os Negócios de uma Empresa Documentos Associados APOOAnalogia Casos de usoAnálise de requisitosQuais são os processos de negócio? Modelo conceitualAnálise do domínioQuais são os papeis dos empregados? Diagramas de classes de projeto, diagramas de colaboração / interação Atribuição de responsabilidades, projeto das interações Quem é responsável por o quê? Como eles interagem?

9 9 Modelagem na APOO: um exemplo n Um jogo de dados no qual um jogador lança dois dados. Se o total for sete, ele vence; caso contrário, perde. Definir diagramas de interação Definir diagramas de classes de projeto Definir modelo de domínio Definir casos de usos Exemplo: jogo de dados

10 10 Definir diagramas de interação Definir diagramas de classes de projeto Definir modelo de domínio Definir casos de usos Um Exemplo Jogo de Dados n Casos de uso: são descrições narrativas de processos do domínio no formato de prosa estruturada. Caso de uso: Jogar Atores: Jogador Descrição: Este caso de uso começa quando um jogador pega e lança os dados. Se a soma do valor das faces dos dados totalizar sete, ele vence; caso contrário, perde.

11 11 n Um modelo conceitual descreve conceitos do mundo real, não componentes de software! Um Exemplo Jogo de Dados Definir diagramas de interação Definir diagramas de classes de projeto Definir modelo de domínio Definir casos de usos Modelo conceitual: Conceitos, atributos, e associações que são considerados importantes no domínio da aplicação.

12 12 Um Exemplo Jogo de Dados n Alocação de responsabilidades para objetos ilustrando como eles interagem via mensagens. n Mostram o fluxo de mensagens entre instâncias e a invocação de métodos. pedro:Jogador dado1 : Dado dado2 : Dado joga() 1: r1 := lança() 2: r2 := lança() Definir diagramas de interação Definir diagramas de classes de projeto Definir modelo de domínio Definir casos de usos instância Diagrama de Colaboração

13 13 Um Exemplo Jogo de Dados Definir diagramas de interação Definir diagramas de classes de projeto Definir modelo de domínio Definir casos de usos Diagrama Interação Barra de Interação – Linha de Vida

14 14 n Como os objetos (de software) se conectam? n Quais são os métodos de uma classe? Um Exemplo Jogo de Dados Definir diagramas de interação Definir diagramas de classes de projeto Definir modelo de domínio Definir casos de usos

15 15 APOO X APE Sistema de Biblioteca Sistema A&P Orientados a Objeto Decomposição por objetos ou conceitos A&P Estruturados Decomposição por funções ou processos Registra Empréstimos Adiciona Recursos Reporta Multas Catálogo Livro Bibliotecário Biblioteca n Metodologias mais antigas, como Análise e Projeto Estruturados, baseiam-se em outras dimensões de decomposição.

16 16 n A UML é a linguagem padrão de diagramação para visualizar os resultados da análise e projeto n A notação (a própria UML) é relativamente trivial n Muito mais importante: habilidade para modelar com objetos – Só aprender a notação UML não ajuda n A UML não é – um processo ou metodologia – APOO – regras de projeto A Linguagem de Modelagem Unificada

17 17 Origem e Evolução da UML Unified Method 0.8 Unificação I (Out95) Booch93 OMT-2 Outros métodos Booch91 OMT-1 OOSE Fragmentação UML 1.0 Parceiros da UML Padronização (Jan97) UML 1.1 Industrialização (Set97) UML 0.9 & 0.91 Unificação II (Out96)

18 18 Processo de Desenvolvimento n Organização das atividades relacionas à produção e manutenção de sistemas de software n Útil, mas um fator de segunda ordem – O principal: equipe qualificada n Boa equipe + bom processo = menor risco n O processo racional unificado (RUP), baseado no modelo iterativo, é o processo padrão na indústria

19 19 n Simplificação do processo iterativo unificado n Fácil extensão e customização n Não inclui atividades importantes como – Verificação & validação – Divisão do trabalho – Gerência de projeto – Documentação Um Processo Iterativo Simplificado Planejamento & Elaboração ConstruçãoImplantação

20 20 Fases n Planejamento e Elaboração – Concepção inicial, investigação de alternativas, definição de requisitos, etc. n Construção – Construção do sistema através de múltiplos ciclos de análise, projeto, implementação e teste n Implantação – Instalação e operação do sistema

21 21 Modelos e Artefatos n Um modelo descreve e abstrai aspectos essenciais de um sistema – Modelo estático (estrutura) – Modelo dinâmico (comportamento) n Modelos são compostos por artefatos diagramas e documentos que descrevem os elementos do modelo n Na APOO, a UML é usada para descrever e visualizar os modelos e artefatos produzidos em cada fase do processo de desenvolvimento

22 22 Fase de Planejamento e Elaboração 2. Criar Rel. Prel. de Investigação 3. Definir Requisitos 9. Refinar Plano 7. Definir Mod. Conc. Inicial c 4. Reg. Termos no Glossário a 6. Definir Casos de Uso 1. Definir Plano Inicial 5. Implementar Protótipo b, d a. contínua b. opcional c. adiável d. ordem variada 8. Definir Arquit. Inicial a, c, d Notas Planejamento & Elaboração ConstruçãoImplantação

23 23 Fase de Planejamento e Elaboração n Atividades: 1. Definir plano inicial Prazos, recursos, orçamento 2. Criar relatório preliminar de investigação Motivação, alternativas, necessidades de negócio 3. Definir requisitos Especificação declarativa dos requisitos 4. Registrar termos no glossário Dicionário de termos, regras, restrições 5. Implementar protótipo Protótipo do sistema para ajudar na definição dos requisitos

24 24 Fase de Planejamento e Elaboração n Atividades: 6. Definir casos de uso Descrição em prosa estruturada dos processos de negócio 7. Definir modelo conceitual inicial Objetos de domínio e seus relacionamentos 8. Definir arquitetura inicial Principais subsistemas e suas dependências 9. Refinar plano n Atividades não lineares – Ex.: 7, 4, 6 em paralelo

25 25 Fase de Construção Ciclo de Desenv. 1 Sinc. Artefatos AnáliseProjetoTeste Refin. Plano Impl. Ciclo de Desenv Planejamento & Elaboração ConstruçãoImplantação

26 26 Fase de Construção n Repetição de ciclos de desenvolvimento – Construção progressiva do sistema até atingir uma versão que satisfaça corretamente os requisitos n Atividades típicas de cada ciclo: 1. Refinar plano 2. Sincronizar artefatos 3. Análise 4. Projeto 5. Implementação 6. Teste

27 27 Ciclos de Desenvolvimento n Cada ciclo implementa um conjunto reduzido de requisitos, adicionando novas funções ao sistema – Crescimento incremental, através de expansões e refinamentos sucessivos n Ciclos com tempo fixo de duas a oito semanas n Vantagens: – Evita complexidade excessiva – Antecipa feedback dos usuários

28 28 Ciclos de Desenvolvimento e Casos de Uso n Um ciclo deve atacar um ou mais casos de uso ou versões simplificadas de casos de uso. n Casos de uso mais relevantes devem ser atacados nos primeiros ciclos. – Prioridade para serviços com grande influência na arquitetura do sistema ou de alto risco. Ciclo de Desenv. 1 Caso de uso A Versão Simplificada Ciclo de Desenv. 2 Caso de uso A Versão Completa Ciclo de Desenv. 3 Caso de uso B Caso de uso C

29 29 Análise a. se ainda não feito b. contínuo c. opcional 2. Refinar Diag. Casos de Uso 3. Refinar Modelo Conceitual 4. Refinar Glossário b 6. Definir Contrat. de Operação 1. Definir Casos de Uso Essenciais a 5. Definir Diag. Seq. 7. Definir Diag. Estado c Notas... Ciclo de Desenv. 1 Sinc. Artefatos AnáliseProjetoTeste Refin. Plano Impl. Ciclo de Desenv. 2

30 30 Análise n Sub-atividades: 1. Definir casos de uso essenciais 2. Refinar diagramas de casos de uso 3. Refinar modelo conceitual 4. Refinar glossário 5. Definir diagramas de seqüência do sistema 6. Definir contratos de operação 7. Definir diagramas de estado

31 31 Projeto 2. Definir Relatórios, Interface Usuário 4. Definir Diag. Interação 5. Definir Diag. Classes a 6. Definir Esquema do BD 1. Definir Casos de Uso Reais 3. Refinar Arquitetura b Notas a. em paralelo com diag. interação b. ordem variada... Ciclo de Desenv. 1 Sinc. Artefatos AnáliseProjetoTeste Refin. Plano Impl. Ciclo de Desenv. 2

32 32 Projeto n Sub-atividades: 1. Definir casos de uso reais 2. Definir relatórios e interfaces com o usuário 3. Refinar arquitetura do sistema 4. Definir diagramas de interação 5. Definir diagramas de classes de projeto 6. Definir esquema do banco de dados

33 33 Padrões de Projeto (introdução) 1. Objetivos de Projeto e 2. Vantagens no uso de Padrões de Projeto

34 34 Padrão de Projeto n Descrição de um problema recorrente, de forma genérica. n Descrição de uma solução também genérica, que deve ser adaptada de acordo com o contexto em que o problema se manifesta.

35 35 Objetivos de projeto n Reusabilidade, flexibilidade e manutenibilidade – reutilize projetos flexíveis – mantenha o código em um nível geral – minimize dependência de outras classes n Robustez – reutilize projetos seguros – reutilize partes robustas n Suficiência e correção – modularize o projeto – reutilize partes confiáveis

36 36 Vantagens no uso de Padrões de Projeto n Evita a redescoberta de soluções n Propicia o uso de soluções corretas n Melhora a qualidade do software n Melhora a confiabilidade do software n Provê uma linguagem comum entre desenvolvedores n Reduz o volume de documentação n Economiza esforço e tempo de desenvolvimento e manutenção n Conduz ao bom uso de orientação a objetos

37 37 Exemplo de Problema Recorrente : Composição n Em um sistema de arquivos, existem arquivos e pastas (diretórios), sendo que todo arquivo está contido em uma pasta e toda pasta pode conter arquivos e também outras pastas. n Em um documento, existem caracteres e imagens como elementos básicos, e páginas, colunas, frames e linhas de texto como elementos compostos, sendo que todo elemento básico está contido em um elemento composto e todo elemento composto pode conter elementos básicos e também outros elementos compostos.

38 38 Composição em Sistema de Arquivos ComponenteSistemaArquivos ArquivoPasta listar ( ) {abstract} listar ( ) tamanho tipo 0..*

39 39 Composição em Documento ElementoDocumento CaráterImagemElementoCompostoDocumento DocumentoPáginaColunaFrameLinhaTexto 0..*

40 40 Referências Bibliográficas n Design Patterns: Elements of Reusable Object-Oriented Software. Erich Gamma e outros (GoF), Addison-Wesley, n Patterns in Java: a catalog of reusable design patterns illustraded in UML, Volume 1. Mark Grand, John Wiley & Sons, n Projeto de Software: da programação à arquitetura (Software design: from programming to architecture). Eric Braude, John Wiley & Sons, 2004.

41 41 Caso de Uso (Detalhamento) 1. Um exemplo: Processar Venda

42 42 Um exemplo: Processar Venda Ator Principal: Caixa Interessados e Interesses: n Caixa: deseja entrada rápida, precisa e sem erros, de pagamento, pois a falta de dinheiro na gaveta do caixa será deduzida do seu salário. n Vendedor: deseja comissões sobre vendas atualizadas. n Cliente: deseja comprar, receber um serviço rápido e com mínimo esforço. Deseja um comprovante da compra, necessário no caso de devoluções de mercadorias. n Empresa: deseja registrar precisamente as transações e satisfazer aos interesses do cliente. Quer garantir que os pagamentos a receber do Serviço de autorização de Pagamentos sejam registrados. Deseja algum tipo de proteção contra falhas para permitir que as vendas sejam capturadas mesmo se os componentes do servidor (por exemplo, validação remota de crédito) se encontrarem indisponíveis. Deseja uma atualização automática e rápida da contabilidade e do estoque. n Órgãos fiscais governamentais: desejam cobrar os impostos de cada venda. Podem estar envolvidos vários órgãos, como por exemplo, federais, estaduais e municipais. n Serviço de autorização de pagamentos: deseja receber solicitações de autorização digital no formato e protocolo corretos. Deseja contabilizar com precisão seus débitos a pagar para a loja. Pré-Condições: o Caixa é identificado e autenticado. Pós-Condições: a Venda é salva. Os impostos são corretamente calculados. A Contabilidade e o Estoque são atualizados. As Comissões são registradas. O Recibo é gerado. As aprovações de pagamento são registradas.

43 43 Um exemplo: Processar Venda (continuação) Fluxo Básico 1. O Cliente chega à saída do PDV com bens ou serviços para adquirir. 2. O Caixa começa uma nova venda. 3. O Caixa digita o identificador do item. 4. O Sistema registra a linha de item da venda e apresenta uma descrição do item, o seu preço e o total parcial da venda. O preço é calculado segundo um conjunto de regras de preços. O Caixa repete os passos 3 e 4 até que indique ter terminado. 5.O Sistema apresenta o total com impostos calculados. 6.O Caixa diz ao Cliente o total e solicita o pagamento. 7.O Cliente paga e o Sistema trata o pagamento. 8.O Sistema registra a venda completada e envia as informações de venda e pagamento para o Sistema externo de contabilidade (para contabilidade e comissões) e o Sistema de Estoque (para atualizar o estoque). 9.O Sistema emite recibo. 10.O Cliente sai com recibo e bens (se houver).

44 44 Um exemplo: Processar Venda (continuação) Fluxos Alternativos *a. A qualquer momento, o Sistema falha: Para fornecer suporte para a recuperação e a correta contabilização, garanta que todas as informações de estado sensíveis das transações e de todos os eventos possam ser recuperadas a partir de qualquer passo do cenário. 1. O Caixa reinicia o Sistema, registra-se e solicita a recuperação do estado anterior. 2. O Sistema restaura o estado anterior. 2a. O Sistema detecta anomalias que impedem a restauração: 1. O Sistema avisa ao Caixa sobre o erro, registra o erro e, então, entra em um novo estado consistente: 2. O Caixa começa uma nova venda.

45 45 Um exemplo: Processar Venda (continuação) Fluxos Alternativos (continuação) 3a. Identificador inválido: 1. O Sistema informa o erro e rejeita a entrada. 3b. Existem vários itens do mesmo tipo e rastrear o item físico individual não é importante (p. ex: 5 pacotes de sanduíches naturais). 1. O Caixa pode digitar o identificador do tipo do item e a quantidade. 3-6a. O Cliente pede ao Caixa para remover um item da compra: 1. O Caixa digita o identificador do item a ser removido da venda. 2. O Sistema exibe o total parcial atualizado. 3-6b. O Cliente diz ao Caixa para cancelar a venda: 1. O Caixa cancela a venda no Sistema. 3-6c. O Caixa suspende a venda: 1. O Sistema registra a venda de forma que ela fique disponível para acesso a partir de qualquer terminal PDV.

46 46 Um exemplo: Processar Venda (continuação) Fluxos Alternativos (continuação) 4a. O preço do item gerado pelo Sistema não é desejado (por exemplo, o Cliente se queixa de que algo está sendo oferecido a um preço mais baixo): 1. O Caixa digita o preço que prevalecerá. 2. O Sistema apresenta o novo preço. 5a. O Sistema detecta uma falha na comunicação com o serviço externo de cálculo de impostos: 1. O Sistema reinicia esse serviço no nó PDV e continua. 1a. O Sistema detecta que o serviço não reinicia. 1. O Sistema sinaliza o erro. 2. O Caixa pode calcular manualmente e digitar o imposto ou cancelar a venda. 5b. O Cliente diz que tem direito a um desconto (por exemplo, empregado, cliente preferencial): 1. O Caixa sinaliza uma solicitação de desconto. 2. O Caixa entra com a identificação do Cliente. 3. O Sistema apresenta o total do desconto com base nas regras para descontos. 5c. O Cliente diz que tem um crédito na sua conta que pode ser usado para pagar a compra: 1. O Caixa sinaliza uma solicitação de crédito. 2. O Caixa digita a identificação do Cliente. 3. O Sistema aplica o crédito até que o preço=0 e deduz do pagamento remanescente.

47 47 Um exemplo: Processar Venda (continuação) Fluxos Alternativos (continuação) 6a. O Cliente diz que pretendia pagar com dinheiro, mas não tem dinheiro suficiente: 1a. O Cliente usa um método de pagamento alternativo. 1b. O Cliente diz ao Caixa para cancelar a venda. O Caixa cancela a venda no Sistema. 7a. Pagamento com dinheiro: 1. O Caixa digita a quantia de dinheiro fornecida. 2. O Sistema apresenta o valor do troco e libera a gaveta de dinheiro. 3. O Caixa deposita o dinheiro fornecido e entrega o troco para o Cliente. 4. O Sistema registra o pagamento em dinheiro.

48 48 Um exemplo: Processar Venda (continuação) Fluxos Alternativos (continuação) 7b. Pagamento a crédito: 1. O Cliente digita as informações de sua conta de crédito. 2. O Sistema envia a solicitação de autorização de pagamento para um serviço externo de Autorização de Pagamento e solicita sua aprovação. 2a. O Sistema detecta uma falha ao tentar colaborar com o sistema externo: 1. O Sistema sinaliza erro ao Caixa. 2. O Caixa pede ao Cliente uma forma de pagamento alternativa. 3. O Sistema recebe aprovação do pagamento e sinaliza a aprovação ao Caixa 3a. O Sistema recebe rejeição do pagamento: 1. O Sistema sinaliza rejeição ao Caixa. 2. O Caixa solicita ao Cliente uma forma alternativa de pagamento. 4. O Sistema registra o pagamento a crédito, que inclui a aprovação do pagamento. 5. O Sistema apresenta o mecanismo para entrada da assinatura do pagamento a crédito. 6. O Caixa solicita ao Cliente uma assinatura para pagamento a crédito. O Cliente fornece a assinatura.

49 49 Um exemplo: Processar Venda (continuação) Fluxos Alternativos (continuação) 7c. Pagamento com cheque... 7d. Pagamento com débito em contra... 7e. O Cliente apresenta cupons: 1. Antes de tratar o pagamento, o Caixa registra cada cupom e o Sistema reduz o preço conforme estabelecido. O Sistema registra os cupons usados por razões contábeis. 1a. O Cupom digitado não serve para quaisquer dos itens comprados: 1. O Sistema sinaliza erro ao Caixa. 9a. Existem descontos específicos para certos produtos: 1. O Sistema apresenta os formulários de descontos e os recibos de descontos para cada item ao qual se aplica um desconto. 9b. O Cliente solicita o recibo para presente e o Sistema apresenta o mesmo.

50 50 Um exemplo: Processar Venda (continuação) Requisitos Especiais n Interface de Usuário (IU) por tela sensível ao toque em um monitor de painel plano grande. O texto deve ser visível a uma distância de um metro. n Resposta de autorização de crédito dentro de 30 segundos em 90% do tempo. n De alguma forma, queremos uma recuperação robusta quando o acesso aos serviços remotos, tal como o sistema de estoque, estiver falhando. n Internacionalização de linguagem no texto exibido. n Regras de negócio plugáveis que podem ser inseridas nos passos 2 e 6. n...

51 51 Um exemplo: Processar Venda (continuação) Lista de Variações Tecnológicas e de Dados: 3a. Identificador de item inserido por leitor a laser de código de barras (quando o item tiver código de barras) ou pelo teclado. 3b. Identificador de item pode ser qualquer um dos seguintes esquemas de codificação: CUP, NAE, NAJ ou SKU. 7a. Informação sobre a conta de crédito inserida por leitora de cartão ou pelo teclado. 7b. Assinatura de pagamento a crédito capturada em recibo de papel. NO entanto, prevemos que, dentro de dois anos, muitos clientes desejarão captura de assinatura digital. Freqüência de Ocorrência: Poderia ser quase continuo.

52 52 Um exemplo: Processar Venda (continuação) Problemas em Aberto: n Quais são as variações das leis de impostos? n Deve-se explorar o problema de recuperação de serviço remoto. n Qual personalização é necessária para diferentes negócios? n Um Caixa deve levar sua gaveta de dinheiro quando ele sai do Sistema? n O Cliente pode usar diretamente a leitora de cartão ou é o Caixa que deve fazê-lo?

53 53 APOO 1. Exercício


Carregar ppt "1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo."

Apresentações semelhantes


Anúncios Google