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

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

Análise OO / UML Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000 Análise e Projeto.

Apresentações semelhantes


Apresentação em tema: "Análise OO / UML Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000 Análise e Projeto."— Transcrição da apresentação:

1 Análise OO / UML Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000 Análise e Projeto de Sistemas

2 2 Ciclo de Vida de Software Definição dos requisitos Análise Projeto Implementação Teste/Avaliação Implantação Manutenção Documentos são gerados a cada fase e servem de entrada para a fase seguinte

3 3 Ciclo de Vida - Modelo Cascata Intenções Especifica ção do Software Projeto do Software Código do Software Sistema pronto para operar Análise Projeto Implementação Teste Requisitos do Software Definição de Requisitos Documentos gerados durante o ciclo de vida Transformações

4 4 Definição de Requisitos Identificar desejos, intenções, procedimentos atuais e dados; Organizá-los de forma coerente Definir de uma forma geral o que será tratado pelo software interface com o que fica de fora do software Desejos Intenções Procedimentos Dados Requisitos do Software

5 5 Análise do Software Entendimento e Representação Domínio do problema Conceitos Funcionalidades Casos de uso Baseado nos fatores críticos de sucesso do software Especificação do Software Requisitos do Software

6 6 Análise Orientada a Objetos Objetivos Representar todos os conceitos do mundo real que são relevantes para o sistema Modelagem do Sistema segundo o paradigma OO Descrever a estrutura de classes do sistema Produtos Modelo/representação do software Modelo de Análise do Sistema Representação gráfica do diagrama de classes do Sistema e das interações entre os objetos destas classes Documentação Detalhamento e complementação do diagrama de classes do sistema

7 7 Análise Orientada a Objetos

8 8 Diagramas da UML Visão Externa Diagrama de Casos de Uso Visão Estrutural (Estática) Diagrama de Classes Visão Comportamental (Dinâmica) Diagrama de Estado Diagrama de Atividade Visão de Interação Diagrama de Sequência Diagrama de Colaboração Visão da Arquitetura (Implementação) Diagrama de Componentes Diagrama de Implantação Diagrama de Pacotes

9 9 Diagramas de Caso de Uso Especificam a visão externa do sistema Descrevem como o sistema é percebido por seus usuários Descrevem as interações entre os usuários e o sistema Consulta de saldo Ator Solicitação de extrato Interações

10 10 Diagramas de Classe Descrevem a parte estática do sistema, ignorando seu processamento Apresentam Classes (objetos) Atributos Relacionamentos Herança Agregação Associação Serviços

11 11 Diagramas de Estado Apresentam as sequências de estados que um objeto assume em sua existência em resposta a estímulos recebidos Complemento das descrições estáticas de classes Relacionam os possíveis estados que os objetos de uma classe podem ter e quais os eventos que causam mudanças em seu estado. Pedido Registrado Pedido em Análise Pedido para análise requisitado Pedido enviado Pedido em Aprovação Pedido para aprovação Aprovação emitida Pedido Aprovado Pedido será atendido Classe Pedido

12 12 Diagramas de Sequência Apresentam a interação entre os objetos no decorrer do tempo Mostra a sequência de mensagens entre objetos Vendedor Janela PedidoNota Fiscal Fatura Cliente 1: situação financeira do cliente 2: obter pedidos (cliente) 3: obter notas fiscais (pedido) 4: obter faturas vencidas (nota fiscal) 5: obter faturas a vencer (nota fiscal) 6: obter limite de crédito (cliente)

13 13 Diagrama de Classes Passos para confecção Identificação de Classes Identificação de relacionamentos Definição de atributos Definição de serviços

14 14 Identificação de Classes O domínio do problema Um determinado domínio de problemas inclui informações relativas ao mundo real Os requisitos da aplicação Considerados os objetivos da aplicação a ser construída, apenas um subconjunto dessas informações necessita ser representado

15 15 Identificação de Classes Cliente Nome Endereço Altura Peso Idade Sexo Renda Mensal Cor dos Cabelos Número de Dependentes... Cliente Nome Endereço Idade Sexo Renda Mensal Número de Dependentes No mundo real Em uma dada aplicação/sistema

16 16 Identificação de Classes No mundo real Numa aplicação/sistema Cliente Endereço Carro Dependentes Time Nome Cliente Nome Endereço

17 17 Identificação de Classes O que procurar? Objetos Ex. Pessoas, clientes, turmas, cursos, produtos etc. Agentes Ex. cliente, atendente etc. Unidades organizacionais Ex. local para entrega, setor etc. Eventos Reclamação do cliente, pedido pago etc. Quaisquer conceitos que serão armazenados e lembrados pelo sistema.

18 18 Identificação de Classes O que Considerar? Armazenamento necessário O sistema precisará armazenar informações sobre os objetos desta classe? Mais de um objeto em uma classe É possível identificar facilmente os objetos desta classe? Evite classes que representem um só objeto Atributos sempre aplicáveis Todos os atributos identificados para a classe são aplicáveis a todas as suas instâncias?

19 19 Identificação de Classes Notação de classe Nome da Classe

20 20 Identificação de Classes Recomendações Nomenclatura de classes Nome da classe deve descrever claramente o conceito representado Uso de termos de conhecimento de todos Evitar abreviaturas Estabelecimento de padrões para nomeação de classes Evitar ambigüidades (dupla interpretação) Uso Fast Case Prática

21 21 Definição de Atributos Objetivo Identificar e formalizar a definição dos atributos de cada classe presente no diagrama de classes O que considerar? Necessidade do sistema em armazenar as características das instâncias das classes

22 22 Definição de Atributos Representação gráfica Nome da Classe

23 23 Definição de Atributos Notação de atributos Visibilidade Nome do Atributo: Tipo de Expressão = Valor Inicial {Propriedade} Visibilidade: Critério de acesso ao atributo Opcional + visibilidade pública (default) Atributo pode ser acessado por todos, inclusive por serviços de outras classes # visibilidade protegida Atributo é acessado apenas pelos serviços da própria classe ou por serviços de classes dentro de um mesmo pacote - visibilidade privada Atributo é acessado por operações da própria classe

24 24 Definição de Atributos Notação de atributos Visibilidade Nome do Atributo: Tipo de Expressão = Valor Inicial {Propriedade} Visibilidade: Aluno + Nome # Endereço - Créditos

25 25 Definição de Atributos Notação de atributos Visibilidade Nome do Atributo: Tipo de Expressão = Valor Inicial {Propriedade} Nome do atributo Obrigatório!!!! Necessidade de padronização Clareza de significado Evitar abreviaturas Aluno + Nome # EndereçoDoAluno - CréditosObtidos

26 26 Definição de Atributos Notação de atributos Visibilidade Nome do Atributo: Tipo de Expressão = Valor Inicial {Propriedade} Tipo de Expressão Opcional Tipo de implementação do atributo Inteiro String Real... Aluno + Nome: string # EndereçoDoAluno: string - CréditosObtidos: int

27 27 Definição de Atributos Notação de atributos Visibilidade Nome do Atributo: Tipo de Expressão = Valor Inicial {Propriedade} Valor Inicial Valor inicial do atributo Opcional Aluno + Nome: string # EndereçoDoAluno: string - CréditosObtidos: int = 0

28 28 Definição de Atributos Notação de atributos Visibilidade Nome do Atributo: Tipo de Expressão = Valor Inicial {Propriedade} Propriedade Opcional Maior detalhamento do atributo Descrição Tipo Estático Constante Variável Domínio de Valores Aluno + Nome: string # EndereçoDoAluno: string -CréditosObtidos: int = 0 -NumMáximoDeCréditos: int = 70 {constant}

29 29 Definição de Atributos Notação de atributos Exemplo Nome da Classe Atributo Atributo:tipo do dado Atributo:tipo do dado = valor inicial Aluno Nome Endereço:string Créditos:inteiro = 0 Uso Fast Case Prática

30 30 Definição de Serviços Objetivo Identificar e formalizar a definição das operações de cada classe presente no diagrama de classes O que considerar? Necessidade de cada classe em realizar operações que atendam às funcionalidades do sistema

31 31 Definição de Serviços Representação Gráfica Nome da Classe

32 32 Definição de Serviços Notação de serviços Visibilidade Nome do Serviço (Parâmetro): Expressão de Tipo de Retorno {Propriedade} Visibilidade: Critério de acesso ao serviço Opcional + visibilidade pública (default) Serviço pode ser acessado por todos, inclusive por serviços de outras classes # visibilidade protegida Serviço é acessado apenas pelos serviços da própria classe ou por serviços de classes dentro de um mesmo pacote - visibilidade privada Serviço é acessado por operações da própria classe

33 33 Definição de Serviços Notação de serviços Visibilidade Nome do Serviço (Parâmetro): Expressão de Tipo de Retorno {Propriedade} Visibilidade: Aluno Nome Endereço Créditos + InformarNome( ):string # InformarEndereço( ):string - CancelarCréditos( códigoCadeira )

34 34 Definição de Serviços Notação de serviços Visibilidade Nome do Serviço (Parâmetro): Expressão de Tipo de Retorno {Propriedade} Nome do serviço Obrigatório!!!! Necessidade de padronização Clareza de significado Evitar abreviaturas Aluno Nome Endereço Créditos + InformarNome( ):string # InformarEndereço( ):string - CancelarCréditos( códigoCadeira )

35 35 Definição de Serviços Notação de Serviços Visibilidade Nome do Serviço (Parâmetro): Expressão de Tipo de Retorno {Propriedade} Parâmetros Lista de valores utilizados pelo serviço Aluno Nome Endereço Créditos + InformarNome( ):string # InformarEndereço( ):string -CancelarCréditos( códigoCadeira ) -AtualizarCréditos( códigoCadeira, ano, número de Créditos )

36 36 Definição de Serviços Notação de serviços Visibilidade Nome do Serviço (Parâmetro): Expressão de Tipo de Retorno {Propriedade} Expressão de tipo de retorno Tipo do valor de retonor do serviço Aluno Nome Endereço Créditos + InformarNome( ):string # InformarEndereço( ):string -CancelarCréditos( códigoCadeira ) -AtualizarCréditos( códigoCadeira, ano, número de Créditos )

37 37 Definição de Atributos Notação de serviços Visibilidade Nome do Serviço (Parâmetro): Expressão de Tipo de Retorno {Propriedade} Propriedade Opcional Maior detalhamento do serviço Classificação Construtor: incializam/constroem instâncias da classe Destrutor: destróem instâncias da classe Modificador de atributos: modificam valores de atributos Seletor de atributos: utilizam mas não modificam valores de atributos Prés e pós condições Exceções Propriedades dependentes da linguagem de programação Aluno Nome Endereço Créditos + CriarAluno( nome ) { construtor } + InformarNome( ):string # InformarEndereço( ):string -CancelarCréditos( códigoCadeira ) { modificador } -AtualizarCréditos( códigoCadeira, ano, número de Créditos )

38 38 Definição de Serviços Persistência Objetos Persistentes – armazenado no banco de dados Objetos transientes – em memória Construtores e Destrutores Coleta automática de lixo Serviços para acesso a atributos Uso Fast Case Prática

39 39 Identificação de Relacionamentos Objetivo Identificar associações, agregações e relacionamentos de generalização/ especialização (herança) entre classes O que considerar? Necessidade do sistema em lembrar relacionamentos entre as classes O que procurar? Todos os relacionamentos entre instâncias de classes que sejam relevantes para o sistema

40 40 Identificação de Relacionamentos Associação Relacionamentos simples entre instâncias de classes Descrevem algum vínculo, relacionamento ou interdependência entre instâncias de classes

41 41 Identificação de Relacionamentos Associação - Representação Unária Binária Pessoa Aluno É pai de 0..* 1..2 Cadeira 0..* Cursa 0..*

42 42 Identificação de Relacionamentos Associação - Representação N-ária Avaliação FuncionárioQuesito * * Projeto *

43 43 Identificação de Relacionamentos Agregação Relacionamentos com uma semântica bem definida: a de composição Relacionamentos que representem: montagens e suas partes Ex. Um carro e suas partes (motor, chassi, rodas …) recipientes e seus conteúdos Ex. Vôo e passageiros conjuntos e seus membros Ex. Turma e alunos

44 44 Identificação de Relacionamentos Agregação - notação EmpresaDepartamento Todo Parte 1..* 1

45 45 Identificação de Relacionamentos Herança O que procurar? Diferenças e similaridades entre classes Várias classes com características comuns Notação Veículo Ano Cor Carro Ônibus Caminhão Ano Cor No de Assentos Ano Cor Capacidade Ano Cor No de Portas

46 46 Generalização / Especialização O que procurar? (cont.) Uma classe com atributos aplicáveis apenas a subconjuntos de suas instâncias Funcionário Nome Nasc Salário Projeto Funcionário_Maria Nome = Maria Nasc = 16/02/70 Salário = 2500 Projeto = Funcionário_João Nome = João Nasc = 10/05/65 Salário = 3000 Projeto = Call Center Gerente Projeto

47 47 Identificação de Relacionamentos Nome/Semântica do relacionamento Multiplicidade 1 somente um *muitos (zero ou mais) 0..* muitos (zero ou mais) 0..1opcional (zero ou um) 1..*maior ou igual a um M..Nsequência específica Ex (de um a 27), 23..* (acima de 23) Papéis Navegabilidade Restrições Uso Fast Case Prática

48 48 Diagramas de Estado Objetos de uma classe possuem um ciclo de vida São gerados Assumem posições (estados) Dão origem a outros objetos Deixam de existir (são destruídos) O estudo dos diferentes estados de um objeto de uma classe e das transições entre estes estados permite o levantamento de serviços adicionais a serem incorporados na classe

49 49 Diagramas de Estado Notação Estado: condição ou situação durante a vida de um objeto no qual satisfaz alguma condição, executa alguma atividade em resposta a um evento ou espera pela ocorrência de algum evento. Início Fim

50 50 Diagramas de Estado Notação Evento: Ocorrência que deve ser reconhecida e gerar uma reação pelo sistema em estudo. A ocorrência de um evento provoca a transição entre estados de instâncias de alguma classe pertencente ao sistema Estado 1Estado 2 evento

51 51 Diagramas de Estado Exemplo – Classe PedidoDeCompra Pedido Registrado Envio de pedido Pedido cancelado Pedido em Análise Requisição de análise de pedido Pedido Pendente Pedido não pode ser atendido neste momento Pedido já pode ser atendido Pedido Aprovado Pedido é aprovado Pedido cancelado Pedido Atendido Atendimento a Pedido Uso Fast Case Prática

52 52 Diagramas de Sequência Objetivo Identificar o envio de mensagens entre os objetos das diversas classes do diagrama em resposta a cada caso de uso Um diagrama de sequência mostra interações de objetos organizadas em uma sequência de tempo e de mensagens trocadas

53 53 Diagrama de Sequência um objeto outro objeto Tempo (top-down) ativação Linha de vida criar mensagem retorno excluir Símbolo de exclusão ator (evento)

54 54 Diagrama de Sequência Vendedor Janela PedidoNota Fiscal Fatura Cliente 1: situação financeira do cliente 2: obter pedidos (cliente) 3: obter notas fiscais (pedido) 4: obter faturas vencidas (nota fiscal) 5: obter faturas a vencer (nota fiscal) 6: obter limite de crédito (cliente) Uso Fast Case Prática


Carregar ppt "Análise OO / UML Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000 Análise e Projeto."

Apresentações semelhantes


Anúncios Google