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

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

Análise e Projeto de Sistemas

Apresentações semelhantes


Apresentação em tema: "Análise e Projeto de Sistemas"— Transcrição da apresentação:

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

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

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

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 Análise do Software Entendimento e Representação Requisitos do
Domínio do problema Conceitos Funcionalidades Casos de uso Baseado nos fatores críticos de sucesso do software Requisitos do Software Especificação do Software

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 Análise Orientada a Objetos

8 Diagramas da UML Visão Externa Visão Estrutural (Estática)
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 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 Solicitação de extrato Ator Interações

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 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. Classe Pedido Pedido enviado Pedido Registrado Pedido para análise requisitado Pedido em Análise Pedido para aprovação Pedido em Aprovação Aprovação emitida Pedido Aprovado Pedido será atendido

12 Diagramas de Sequência
Apresentam a interação entre os objetos no decorrer do tempo Mostra a sequência de mensagens entre objetos Janela Pedido Nota Fiscal Fatura Cliente Vendedor 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 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 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 Identificação de Classes
No mundo real Em uma dada aplicação/sistema 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

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

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 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 Identificação de Classes
Notação de classe Nome da Classe <lista de atributos> <Lista de serviços/operações>

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 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 Definição de Atributos
Representação gráfica Nome da Classe <lista de atributos> <Lista de serviços/operações>

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 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 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 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 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 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 Definição de Atributos
Notação de atributos Exemplo Aluno Nome da Classe Atributo Atributo:tipo do dado Atributo:tipo do dado = valor inicial Nome Endereço:string Créditos:inteiro = 0 Uso Fast Case Prática

30 Definição de Serviços Objetivo O que considerar?
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 Definição de Serviços Representação Gráfica Nome da Classe
<lista de atributos> <Lista de serviços/operações>

32 Definição de Serviços Notação de serviços Visibilidade:
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 Definição de Serviços Notação de serviços Visibilidade: Aluno Nome
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 Definição de Serviços Notação de serviços Nome do serviço
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 Definição de Serviços Notação de Serviços Parâmetros
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 Definição de Serviços Notação de serviços Expressão de tipo de retorno
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 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 Definição de Serviços Persistência Construtores e Destrutores
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 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 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 Identificação de Relacionamentos
Associação - Representação Unária Binária Pessoa 0..* É pai de 1..2 Aluno Cadeira 0..* Cursa 0..*

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

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 Identificação de Relacionamentos
Agregação - notação Departamento Empresa 1 1..* “Parte” “Todo”

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 Portas Ano Cor No de Assentos Ano Cor Capacidade

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

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 Diagramas de Estado Notação Início Fim 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. <nome do estado> Início Fim

50 Diagramas de Estado Notação evento 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 evento Estado 1 Estado 2

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

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 Diagrama de Sequência um objeto outro objeto Tempo (top-down) ator
criar outro objeto (evento) mensagem retorno excluir ativação Símbolo de exclusão Linha de vida

54 Diagrama de Sequência Uso Fast Case Prática Vendedor Janela Pedido
Nota 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)


Carregar ppt "Análise e Projeto de Sistemas"

Apresentações semelhantes


Anúncios Google