Diagramas UML - Classe, Seqüência e...

Post on 12-Sep-2018

251 views 1 download

Transcript of Diagramas UML - Classe, Seqüência e...

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Diagramas UMLClasse, Seqüência e Atividades

Marcio E. F. Maia

Disciplina: Engenharia de SoftwareProfessora: Rossana M. C. Andrade

Curso: Ciências da ComputaçãoUniversidade Federal do Ceará

15 de maio de 2008

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Agenda

1 IntroduçãoAula anteriorFases no desenvolvimento de softwareElementos e relacionamentos

2 Diagrama de ClassesConceitos iniciais

3 Diagrama de SeqüênciaConceitos Iniciais

4 Diagrama de AtividadesConceitos Iniciais

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Agenda

1 IntroduçãoAula anteriorFases no desenvolvimento de softwareElementos e relacionamentos

2 Diagrama de ClassesConceitos iniciais

3 Diagrama de SeqüênciaConceitos Iniciais

4 Diagrama de AtividadesConceitos Iniciais

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Aula anterior

Modelagem, UML e Diagramas de Caso de Uso

Melhorar a comunicação, diminuir inconsistência e tempototal de desenvolvimento, aumentar legibilidade, melhorardocumentação e facilitar manutençãoUML - linguagem completa e amplamente aceita paramodelagem de softwareDiagramas de Caso de Uso - utilizado na fase de análisede requisitos para modelar requisitos funcionais

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Fases no desenvolvimento de software

Fases no desenvolvimento de software

Levantamento e análise de requisitosNecessidades dos usuáriosAnálise

Primeiras abstrações e mecanismos presentes no domíniodo sistemaClasses que pertencem apenas ao domínio principal(Diagrama de Classes)

DesignDetalhamento das especificaçõesSoluções técnicas são apresentadas: concorrência,persistência, interfaces

ImplementaçãoVerificação e validação

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Fases no desenvolvimento de software

Visões

Diferentes aspectos do sistemaFuncional - estrutura estática e interações dinâmicasNão-funcional - responsividade, confiabilidade,replicação, etc.Organizacionais

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Fases no desenvolvimento de software

Visões

Diferentes aspectos do sistemaFuncional - estrutura estática e interações dinâmicasNão-funcional - responsividade, confiabilidade,replicação, etc.Organizacionais

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Fases no desenvolvimento de software

Visão Use-Case

Funcionalidades realizadas pelos atores externosCentral, já que conteúdo será utilizado como base paraconstrução de outras visõesMontada sobre os diagramas de caso de uso e atividade

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Fases no desenvolvimento de software

Visão Lógica

Descreve como a funcionalidade do sistema seráimplementadaEstrutura estática (classes, objetos e relacionamentos) edinâmica (troca de mensagens)Persistência, concorrência, interfaces e estruturas declasses

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Fases no desenvolvimento de software

Visão Componentes

Descrição da implementação dos módulos e dependênciasExecutado por desenvolvedoresDiagrama de componentes

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Fases no desenvolvimento de software

Visão Concorrência

Divisão em processos e processadoresMelhor utilização do ambienteMostra como acontece o controle de concorrência ecomunicação entre processosDiagramas dinâmicos: estado, seqüência, colaboração eatividadeDigramas de implementação: componentes e execução

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Fases no desenvolvimento de software

Visão Organização

Organização física do sistemaConexão entre computadores e periféricosExecutada por desenvolvedores, integradores e testadoresDiagramas de execução e implementação

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Elementos e relacionamentos

Classes

DefiniçãoUma classe representa a descrição de um objeto do mundoreal. Elas devem ser retiradas do domínio do problema enomeadas de acordo com o que representam no sistema.

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Elementos e relacionamentos

Classes

DefiniçãoUma classe representa a descrição de um objeto do mundoreal. Elas devem ser retiradas do domínio do problema enomeadas de acordo com o que representam no sistema.

O que deve ser modelado?

Informações devem seranalisadas ou armazenadas?

Existem sistemas externos?

Classes, bibliotecas,componentes ou modelos?

Papel dos atores dentro dosistema?

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Elementos e relacionamentos

Relacionamentos

AssociaçõesNormais, recursiva, qualificada, ordenada, ternáriaAgregação

Compartilhada, composição

GeneralizaçãoNormalRestrita

Sobreposição e disjuntiva, completa e incompleta,

Dependência e refinamentos

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Elementos e relacionamentos

Associações

NormalRelação comum entre as classesLinha sólida entre duas classesNome que representa a associação

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Elementos e relacionamentos

Associações - Cont.

RecursivaRepresenta a ligação entre dois objetos da mesma classe

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Elementos e relacionamentos

Associações - Cont.

QualificadaUm para vários ou vários para um

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Elementos e relacionamentos

Associações - Cont.

ExclusivaOnde nem todas as associações são válidasEspecifica que um objeto pode participar apenas de umaassociação por ver

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Elementos e relacionamentos

Associações - Cont.

TernáriaMais de duas classes associadas entre si

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Elementos e relacionamentos

Agregação

Caso particular de uma associaçãoIndica que uma classe é parte, ou está contida em outraclasse

Compartilhada: pode estar contida várias vezes ou emdiferentes momentosComposição: Classe vive e constitui a outra. A maior dita otempo de vida das menores

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Elementos e relacionamentos

Generalizações

Também conhecida como herançaElemento mais específico possui todas as característicasdo mais geral, além de responsabilidades extras

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Elementos e relacionamentos

Generalizações Restritas

Sobreposição edisjuntivaSubclasses podemherdar de mais de umasuperclasse

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Elementos e relacionamentos

Generalizações Restritas

Sobreposição edisjuntivaSubclasses podemherdar de mais de umasuperclasse

Completa e incompletaTodas as subclasses jáforam especificadas

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Elementos e relacionamentos

Dependência

Uma alteração na classe independente gera umamudança de comportamento na classe dependenteEx. Um objeto recebido como parâmetro ou uma variávelglobal

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Elementos e relacionamentos

Refinamento

Utilizados para modelar diferentes implementações de ummesmo comportamento

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Agenda

1 IntroduçãoAula anteriorFases no desenvolvimento de softwareElementos e relacionamentos

2 Diagrama de ClassesConceitos iniciais

3 Diagrama de SeqüênciaConceitos Iniciais

4 Diagrama de AtividadesConceitos Iniciais

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos iniciais

Diagrama de classes

Características

Identifica as entidades e as características de cada umadelasMostra como cada uma dessas entidades se relacionamAgrupa características semelhantes e especializacomportamentos

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos iniciais

Diagrama de classes

Características

Identifica as entidades e as características de cada umadelasMostra como cada uma dessas entidades se relacionamAgrupa características semelhantes e especializacomportamentos

Definição

O diagrama de classes é uma coleção de classes e interfaces,além das colaborações e relações existentes entre elas.

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos iniciais

Diagrama de Classes - Cont.

É uma representação em alto nível do sistemaArquitetos experientes modelam as classes do sistemaVisão estática do sistema

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos iniciais

Diagrama de Classes - Cont.

É uma representação em alto nível do sistemaArquitetos experientes modelam as classes do sistemaVisão estática do sistema

Qual a relação entre os diagramas de Caso de Uso e deClasses???

Cada requisito é agora convertido de "O quê"para "Como"O caso de uso é analisado e desmembrado em váriasentidades atômicasAlém dos casos de uso, outros artefatos como documentode requisitos, especificações funcionais e glossário podemser utilizados para criar um diagrama de classes

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos iniciais

Elementos de um diagrama de classes

Classes: é uma entidade do sistema que encapsula umdeterminado comportamento. Esses comportamento éacessado por outras classes através de métodos.Adicionalmente, cada classe possui característicaspróprias denominadas atributosInterface: fornece apenas uma definição dafuncionalidade. A implementação propriamente dita deveser realizada por uma outra classePacote: agrupa classes e interfaces com comportamentossemelhantes

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos iniciais

Tipos de classes

Também conhecidos como classes de análise ou esteriótiposFronteira: modela comunicação entre vizinhança dosistema e estrutura interna. Ex. Interface, protocolo decomunicação, Interface de impressão.Entidade: modela objetos e comportamento persistentes.Ex. Lista de alunos, catálogo, matrícula.Controle: modela comportamento funcional do use-case.

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos iniciais

Como mapear diagramas de Caso de Uso paradiagramas de classe?

1 Identificar elementos ativos: classes e interfacesrepresentam elementos importantes do domínio denegócio

2 Identificar elementos passivos: refletem o domínio denegócio (classes de negócio)

3 Categorizar e mapear funcionalidades: casos de usodevem ser mapeados para um dos dois elementos citadosanteriormente

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos iniciais

Mapeando diagramas de Caso de Uso paradiagramas de classe - Cont.

Cursos e tópicos que formam uma disciplinaProfessores que ministram uma disciplinaAdministradores que gerenciam a atribuição de umadisciplina para um professorCatálogo é geradoEstudantes consultam o catálogosEstudantes requisitam matrícula em algumas disciplinas

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos iniciais

Mapeando diagramas de Caso de Uso paradiagramas de classe - Cont.

Entidades ativasProfessoresAdministradoresEstudantes

Entidades PassivasCursosTópicosCatálogo

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos iniciais

Mapeando diagramas de Caso de Uso paradiagramas de classe - Cont.

Funcionalidades identificadas

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos iniciais

Exemplo 1

Uma empresa consiste de departamentos. Departamentosestão situados em um ou mais escritórios. Um escritóriofunciona como gerencia. Cada departamento possui umgerente que é recrutado de um conjunto de empregados.Como modelar esse sistema em um diagrama de classes?

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos iniciais

Exemplo 1

Uma empresa consiste de departamentos. Departamentosestão situados em um ou mais escritórios. Um escritóriofunciona como gerencia. Cada departamento possui umgerente que é recrutado de um conjunto de empregados.Como modelar esse sistema em um diagrama de classes?

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos iniciais

Exemplo 2Uma rede local baseada no algoritmo token-ring é uma rede formada por nós que enviam pacotes pela rede. Cadanó possui um nome único na rede, e se comunica com o próximo nó. Diferentes tipos de nós existem: workstationse originadores de mensagens; servidores e impressoras são nós que podem receber mensagens. Pacotes contêmuma origem, um destinatário, um conteúdo, e são enviados pela rede. A rede é formada de forma circular pelosdispositivos.

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos iniciais

Exemplo 2Uma rede local baseada no algoritmo token-ring é uma rede formada por nós que enviam pacotes pela rede. Cadanó possui um nome único na rede, e se comunica com o próximo nó. Diferentes tipos de nós existem: workstationse originadores de mensagens; servidores e impressoras são nós que podem receber mensagens. Pacotes contêmuma origem, um destinatário, um conteúdo, e são enviados pela rede. A rede é formada de forma circular pelosdispositivos.

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos iniciais

Diagrama de Classes - O que fazer e o que não fazer

As classes devem ser descritivas e nomeadas de acordocom as entidades de negócio. Isso melhora a legibilidadedo diagramaAs relações podem não ser aparentes nas primeirasinterações. Revise e refine o seu diagrama a cada iteraçãoNão tente capturar todos os detalhes do diagrama declasses na primeira iteração.

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Agenda

1 IntroduçãoAula anteriorFases no desenvolvimento de softwareElementos e relacionamentos

2 Diagrama de ClassesConceitos iniciais

3 Diagrama de SeqüênciaConceitos Iniciais

4 Diagrama de AtividadesConceitos Iniciais

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos Iniciais

Diagrama de Seqüência

Definição

Diagramas de Seqüência são utilizados para representar emodelar o fluxo de mensagens, eventos e ações entre objetose componentes de um sistema.

Descreve a seqüência de mensagens que devem sertrocadas para realizar um determinado cenário.São também utilizados para modelar a arquitetura dossistemas

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos Iniciais

Diagrama Seqüência - Exemplo

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos Iniciais

Diagrama Seqüência - Cont.

Diagramas de Seqüência são úteis para modelar os seguintescenários:

Complexas interações entre os sistemas: bastante útilquando componentes estão sendo desenvolvidas emparaleloElaboração dos casos de uso: auxílio visual que permiteuma maior clareza do que está escritoModelar sistemas distribuídos: troca de mensagensentre os diferentes sistemasFerramenta de colaboração: permite que aespecificação possa ser discutida em termos concretosDocumentação: permite documentar a dinamicidade dosistema, o que é particularmente difícil em diagramasestáticos como o de classe.

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos Iniciais

Conceitos Básicos

Linha do tempoRepresentam papeis e instancias de objetos queparticipam da interação sendo modelada.

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos Iniciais

Conceitos Básicos - Cont.

Mensagens

Modela a comunicação entre os diferentes processosSíncrona: seta cheiaAssíncrona: seta tracejada

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos Iniciais

Conceitos Básicos - Cont.

GuardasCondições que devem ser atendidas para que umamensagem possa ser enviada

Síncrona: seta cheiaAssíncrona: seta tracejada

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Agenda

1 IntroduçãoAula anteriorFases no desenvolvimento de softwareElementos e relacionamentos

2 Diagrama de ClassesConceitos iniciais

3 Diagrama de SeqüênciaConceitos Iniciais

4 Diagrama de AtividadesConceitos Iniciais

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos Iniciais

Diagrama de Atividades

Definição

Diagrama de atividades representam os fluxos de negócios eoperacionais do sistema

Podemos definí-lo como um fluxo do códigoLógica de negócio e eventos que geram decisões e açõesno código

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos Iniciais

Diagrama de Atividades - Cont.

Descrevem comportamentos acontecendo em paralelo......ou como vários comportamentos presentes nos casosde uso interagem

Desvantagens

Não definem quais objetos executam as funcionalidades(Diagrama de Estado e Seqüencia)Nem o fluxo de mensagens (Diagrama de Seqüência)

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos Iniciais

Diagrama de Atividades - Cont.

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos Iniciais

Diagrama de Atividades - Cont.

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades

Conceitos Iniciais

Obrigado!marcio@great.ufc.br