Análise e Projeto de Sistemas

Slides:



Advertisements
Apresentações semelhantes
IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Advertisements

Análise e Projeto Orientado a Objetos
INFORMAÇÕES COMPLEMENTARES
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
UML Modelando um sistema.
UML – Visões Parte 1 Modelando um sistema.
(Unified Modeling Language)
Diagrama de Classes.
Interação entre objetos
1 INQUÉRITOS PEDAGÓGICOS 2º Semestre 2003/2004 ANÁLISE GERAL DOS RESULTADOS OBTIDOS 1.Nº de RESPOSTAS ao inquérito 2003/2004 = (42,8%) 2.Comparação.
UML: Diagrama de Classes
Diagramas de Seqüência
Orientação a Objetos: Encapsulamento e Classificação
Unified Modeling Language
DIAGRAMA DE ESTADOS DIAGRAMA ESTADO TRANSIÇÃO ENTRE ESTADOS.
Linguagens de Modelagem para SMA
Análise de Requisitos Use Case Renata Araujo Ricardo Storino
Relações Adriano Joaquim de O Cruz ©2002 NCE/UFRJ
PERSPECTIVA CONCEITUAL
1 MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) BREVE HISTÓRICO CARACTERÍSTICAS CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS MODELAGEM DE ANÁLISE E DE.
EXPRESSÕES ARITMÉTICAS
EXPRESSÕES ARITMÉTICAS
Professora: Aline Vasconcelos IF Fluminense
Projeto de Software Orientado a Objetos
Professora: Aline Vasconcelos
FUNÇÃO MODULAR.
(Linguagem de Modelagem Unificada)
ANÁLISE E PROJETO ORIENTADAS A OBJETOS (parte 2) UFRJ/IM/DCC Lab PSI mai/1999.
ANÁLISE E PROJETO ORIENTADA A OBJETOS UFRJ/IM/DCC Lab PSI mai/1999.
Prof. Alexander Roberto Valdameri
Aula 4 Nomes, Vinculações, Tipos e Escopos
FES – Grupo 4 – Trabalho 4 – 2008/1 1 Grupo 4 Artur Figueira de Santana Carlos Wagner da Silva Fellipe Ribeiro Duarte Francisco Garrigó Departamento de.
Fases do desenvolvimento de software UML
Classes e objetos Modelagem
Classes e objetos P. O. O. Prof. Grace.
AP 1.
Provas de Concursos Anteriores
UML - Unified Modeling Language
Diagramas de Seqüência
Análise de Sistemas Análise e Projeto Prof. Jeime Nunes Site:
Engenharia de Requisitos
UML - Unified Modeling Language
José Roberto Blaschek Gerência do Escopo José Roberto Blaschek.
1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 12. Estados Objetivo: compreender a notação do diagrama de estados.
Aluno: Mário Monteiro Orientador: Sérgio Soares 1.
DIAGRAMA DE CASO DE USO Prof. Fabíola Gonçalves C. Ribeiro.
DIAGRAMA DE CLASSE Modelagem de Software
. Smalltalk HISTÓRICO . Década de 60 – POO . Dynabook (Alan Kay)
Coordenação Geral de Ensino da Faculdade
Profa Simone Sawasaki Tanaka
Sommerville – Pressman – UML 2 - Uma Abordagem Prática
1/40 COMANDO DA 11ª REGIÃO MILITAR PALESTRA AOS MILITARES DA RESERVA, REFORMADOS E PENSIONISTAS - Mar 06 -
Semântica de Linguagens de Programação
 - PSF Grupo: abc, agsj, fcac.
Projeto de Banco de Dados
Fase de Concepção (Início, Planejamento)
Marcio de Carvalho Victorino
Máquina de Turing Universal
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS EM JAVA
UML - Unified Modeling Language
Módulo Compras Relatórios e Relações 1. Objetivo 2 Conhecer os relatórios e as relações do sistema disponibilizadas no módulo Compras.
Unified Modeling Language Professor Mário Dantas A NÁLISE O RIENTADA A O BJETOS Nov/2010.
POO Aula 03 Projeto OO com UML Eduardo Figueiredo 11 de Março de 2010.
Professora Cláudia Abreu Paes
Modelagem de Sistemas Orientada a Objeto Com UML
Engenharia de Software Orientada a Objetos
Fundamentos de Engenharia de SW Diagramas da UML Usados no Projeto de Software.
Diagrama de Classes Herança Dependências.
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1 Análise e Projeto de Sistemas Modelagem de Requisitos com Casos de Uso.
Transcrição da apresentação:

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

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

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

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

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

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

Análise Orientada a Objetos

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

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

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

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

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)

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

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

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

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

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.”

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?

Identificação de Classes Notação de classe Nome da Classe <lista de atributos> <Lista de serviços/operações>

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

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

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

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

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

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

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

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

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}

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

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

Definição de Serviços Representação Gráfica Nome da Classe <lista de atributos> <Lista de serviços/operações>

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

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 )

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 )

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 )

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 )

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 )

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

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

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

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

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

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

Identificação de Relacionamentos Agregação - notação Departamento Empresa 1 1..* “Parte” “Todo”

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

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

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. 1..27 (de um a 27), 23..* (acima de 23) Papéis Navegabilidade Restrições Uso Fast Case Prática

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

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

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

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

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

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

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)