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

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

Análise e Projeto Orientados a Objeto com UML e Padrões

Apresentações semelhantes


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

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

2 Aplicando UML, Padrões e APOO
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. Linguagens OO são um primeiro passo necessário mas insuficiente Outros recursos importantes processo de desenvolvimento padrões UML

3 Atribuindo Responsabilidades
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 Padrões GRASP descrevem princípios fundamentais para auxiliar na atribuição de responsabilidades Saber identificar objetos ou abstrações adequados é a segunda habilidade mais importante

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

6 O que é APOO? Na essência, É CONSIDERAR um problema e uma solução dentro da perspectiva de objetos, coisas ou conceitos. O que é AOO? Investigação dos objetos de domínio e seus relacionamentos. Descritos no Modelo de Objetos de Domínio 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 Representação de um Conceito na APOO
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 na análise no projeto imprimir()

8 Uma Analogia: Organizando os Negócios de uma Empresa
APOO Documentos Associados Quais são os processos de negócio? Análise de requisitos Casos de uso Quais são os papeis dos empregados? Análise do domínio Modelo conceitual 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 Modelagem na APOO: um exemplo
Definir casos de usos Definir modelo de domínio Definir diagramas de interação Definir diagramas de classes de projeto Exemplo: jogo de dados Um jogo de dados no qual um jogador lança dois dados. Se o total for sete, ele vence; caso contrário, perde.

10 Um Exemplo — Jogo de Dados
Definir casos de usos Definir modelo de domínio Definir diagramas de interação Definir diagramas de classes de projeto 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. Casos de uso: são descrições narrativas de processos do domínio no formato de prosa estruturada.

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

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

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

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

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

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

17 Origem e Evolução da UML
Outros métodos Booch’91 OMT-1 OOSE Fragmentação UML 1.1 Industrialização (Set’97) UML 1.0 Parceiros da UML Padronização (Jan’97) UML 0.9 & 0.91 Unificação II (Out’96) Unified Method 0.8 Unificação I (Out’95) Booch’93 OMT-2

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

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

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

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

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

23 Fase de Planejamento e Elaboração
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 Fase de Planejamento e Elaboração
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 Atividades não lineares Ex.: 7, 4, 6 em paralelo

25 Fase de Construção Planejamento & Elaboração Construção Implantação
Ciclo de Desenv. 1 Ciclo de Desenv. 2 ... Refin. Plano Sinc. Artefatos Análise Projeto Impl. Teste

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

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

28 Ciclos de Desenvolvimento e Casos de Uso
Um ciclo deve atacar um ou mais casos de uso ou versões simplificadas de casos de uso. 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 Ciclo de Desenv. 2 Ciclo de Desenv. 3 Caso de uso A Versão Simplificada Caso de uso A Versão Completa Caso de uso B Caso de uso C

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

30 Análise 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 Projeto Ciclo de Desenv. 1 Ciclo de Desenv. 2 Refin. Plano Sinc.
Notas Ciclo de Desenv. 1 Ciclo de Desenv. 2 a. em paralelo com ... diag. interação b. ordem variada Refin. Plano Sinc. Artefatos Análise Projeto Impl. Teste 1. Definir Casos de Uso Reais 2. Definir Relatórios, Interface Usuário 3. Refinar Arquitetura b 4. Definir Diag. Interação 5. Definir Diag. Classes 6. Definir Esquema do BD a

32 Projeto 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 Padrões de Projeto (introdução)
1. Objetivos de Projeto e 2. Vantagens no uso de Padrões de Projeto

34 Padrão de Projeto Descrição de um problema recorrente, de forma genérica. 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 Objetivos de projeto Reusabilidade, flexibilidade e manutenibilidade
reutilize projetos flexíveis mantenha o código em um nível geral minimize dependência de outras classes Robustez reutilize projetos seguros reutilize partes robustas Suficiência e correção modularize o projeto reutilize partes confiáveis

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

37 Exemplo de Problema Recorrente : Composição
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. 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 Composição em Sistema de Arquivos
ComponenteSistemaArquivos Arquivo Pasta listar ( ) {abstract} listar ( ) tamanho tipo 0..*

39 Composição em Documento
0..* ElementoDocumento Caráter Imagem ElementoCompostoDocumento Documento Página Coluna Frame LinhaTexto

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

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

42 Um exemplo: Processar Venda
Ator Principal: Caixa Interessados e Interesses: 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. Vendedor: deseja comissões sobre vendas atualizadas. 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. 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. Ó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. 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 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 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 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 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 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 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 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 Um exemplo: Processar Venda (continuação)
Requisitos Especiais 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. Resposta de autorização de crédito dentro de 30 segundos em 90% do tempo. De alguma forma, queremos uma recuperação robusta quando o acesso aos serviços remotos, tal como o sistema de estoque, estiver falhando. Internacionalização de linguagem no texto exibido. Regras de negócio “plugáveis” que podem ser inseridas nos passos 2 e 6. ...

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

53 APOO 1. Exercício


Carregar ppt "Análise e Projeto Orientados a Objeto com UML e Padrões"

Apresentações semelhantes


Anúncios Google