análise e projeto no rupbacala/mds2011/mds6.pdf · 2011. 5. 3. · 2009 mds - bacalá 12 fluxo de...

99
Análise e Projeto no RUP

Upload: others

Post on 11-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

Análise e Projeto no RUP

Page 2: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 2

Contexto

Após a etapa de análise de requisitos, temos documentos de requisitos e os casos de uso em mãos.

Queremos agora gerar um primeiro modelo do sistema a partir dos casos de uso.

Este modelo é chamado de modelo de análise.

Page 3: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 3 3

Contexto

Requisitos Análise Projeto

Page 4: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 4

Atividade de Análise

Vai proporcionar um método que permita que criemos um modelo de classes do sistema a partir dos casos de uso

Trará a resposta para a pergunta:

Quais classes preciso para implementar estes casos de uso?

Page 5: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 5

Análise & RUP

A maneira como vamos realizar a etapa de análise se baseia no processo do RUP (Rational Unified Process)

A análise será orientada a casos de uso, ou seja, os casos de uso servirão de guia para a etapa de análise

Page 6: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 6

Casos de Uso X Análise

casos de uso análise

Descritos na linguagemdo cliente

Descrito na linguagemdos desenvolvedores

Visão externa dosistema

Visão interna do sistema

Captura as

funcionalidades dosistema

Mostra, de modo

abstrato, como afuncionalidade pode serrealizada

Estruturado por casosde uso

Estruturado por classese pacotes

Page 7: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 7

Análise & Projeto

Os objetivos do fluxo:

Transformar os requisitos em um projeto do

sistema do que o sistema será

Derivar uma arquitetura robusta do sistema

Adaptar o projeto

Page 8: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 8

Análise versus Projeto

Foco no entendimento do problema

Projeto idealizado

Comportamento

Estrutura do sistema

Requisitos funcionais

Modelos simples

Foco no entendimento da solução

Operações e atributos

Performance

Pensamento no código

Ciclo de vida de objetos

Requisitos não-funcionais

Modelo complexo

Page 9: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 9

Visão geral dos artefatos

Análise e

projeto

Modelo de análise e projeto

Documento da arquitetura

Modelo de caso de uso

Modelo de dados

Documento requisitos

Glossário

Page 10: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 10

Modelo de Analise e Projeto

A construção do modelo de análise e projeto é o principal objetivo desta disciplina

O modelo de análise e projeto contém as realizações de casos de uso

Pode ser particionado em dois modelos Modelo de Analise

Modelo de Projeto

Page 11: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 11

Realização de Caso de Uso

Realização de Caso

de Uso

Caso de Uso

Diagramas de ColaboraçãoDiagramas de ColaboraçãoDiagramas de Classe Diagramas de Classe

Diagramas de SequênciaDiagramas de Sequência

Descreve como o caso de uso é realizado, associando o caso de uso com classes e outros elementos de projeto

Requisitos Analise e projeto

Page 12: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 12

Fluxo de Análise e Projeto

Diagrama de Atividades

Page 13: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 13

Realizar síntese da arquitetura

Page 14: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 14

Objetivo

Construir e avaliar uma prova de conceito arquitetural

Mostrar que existe uma solução possível de satisfazer os requisitos do sistema relevantes à arquitetura

Page 15: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 15

Definir a arquitetura candidata

Page 16: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 16

Objetivo

Criar o esqueleto inicial da arquitetura do sistema

Identificar classes de análise dos casos de uso arquiteturalmente relevantes

Atualizar a realização de caso de uso com as interações entre classes de análise

Page 17: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 17

Analisar comportamento

Page 18: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 18

Objetivo

Transformar as descrições sobre o comportamento providas pelos caso de uso em um conjunto de elementos nos quais o modelo de projeto vai se basear

Page 19: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 19

Projetar componentes

Page 20: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 20

Objetivo

Refinar as definições dos elementos acrescentado detalhes sobre como estes elementos implementam o comportamento requerido

Refinar e atualizar as realizações de casos de uso com os novos elementos identificados

Page 21: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 21

Projetar Banco de Dados

Page 22: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 22

Objetivo

Identificar classes persistentes no modelo de projeto

Projetar as estruturas de banco de dados (Modelo de dados)

Definir mecanismos e estratégias para armazenar e recuperar dados

Page 23: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 23

Refinar Arquitetura

Page 24: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 24

Objetivo

Permitir uma transição entre os elementos e mecanismos de análise para os de projeto

Manter a consistência e integração da arquitetura

Descrever a arquitetura de execução e produção da aplicação

Page 25: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

Fluxo de Análise e Projeto Simplificado

Simplificando/Instanciando o RUP para um contexto

específico

Page 26: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 26

Passos da Atividade de Análise

Identificar as classes

Identificar persistência

Identificar responsabilidades das classes

Identificar relacionamentos

Identificar atributos

Page 27: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 27

Fluxo de atividades simplificado

1. Analisar Arquitetura

2. Analisar Caso de Uso

3. Projetar Classes

4. Projetar Banco de Dados

Page 28: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

Analisar Arquitetura

Page 29: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 29

Analisar Arquitetura

Esforço inicial em definir as partes do sistema e seus relacionamentos (Arquitetura Inicial)

Definir as convenções de modelagem

Identificar os mecanismos de análise

Identificação das abstrações-chave

Page 30: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 30

Arquitetura Inicial

Quais as principais partes do sistema?

Como elas interagem entre si?

Que padrões arquiteturais utilizar (no todo ou internamente nas partes) ?

MVC

Baseado em camadas

Canais e filtros

Centrado em repositório

Page 31: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 31

Exemplo de arquitetura inicial

Interface Gráfica

Negócio

Dados

Módulo de Vendas

Módulo de Estoque

Socket

Page 32: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 32

Convenções de modelagem

O que são? Que diagramas e elementos de modelagem

utilizar

Definir as regras para utilização desses componentes

Convenções de nome

Exemplos Casos de uso devem ser nomeados como ações

(Cadastrar usuário)

Cada realização de caso de uso deve conter:

Um diagrama de classes

No mínimo um diagrama de seqüência representando o fluxo principal de ações

Page 33: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 33

Mecanismos de análise

O que são?

Focam nos requisitos não-funcionais do sistema

Decisão estratégica sobre padrões, politicas e práticas a serem utilizadas no projeto

Exemplos

Persistência

Comunicação

Gerenciamento de transações

Segurança

Page 34: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 34

Identificar Abstrações-chave

Definir classes de análise preliminares

Conhecimento do domínio

Requisitos

Outros artefatos (Glossário e modelo de negócio)

Page 35: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

Analisar Caso de Uso

Page 36: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 36

Objetivos

Identificar as classes que executam o fluxo de eventos do caso de uso

Distribuir o comportamento do caso de uso nestas classes

Identificar atributos, responsabilidades e associações das classes

Page 37: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 37

Passos para Analisar Caso de Uso

Para cada caso de uso:

1. Encontrar classes de análise

2. Distribuir comportamento entre as classes

Para cada classe:

3. Descrever responsabilidades

4. Descrever atributos e associações

5. Qualificar mecanismos de análise

Page 38: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 38

Passo 1: Encontrar classes de análise

O comportamento do caso de uso é distribuído em classes de análise

Page 39: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 39

O que são classes de análise?

Representam o conceito mais abstrato dos elementos do sistema

Primeiro passo concreto até chegar em um sistema executável

Categorização temporária

São convertidas para classes de projeto

Servem para diminuir o gap entre os requisitos e projeto

Podem ser dos seguintes tipos Fronteira (<<boundary>>)

Controle (<<control>>)

Entidade (<<entity>>)

Page 40: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 40 40/28

Classes de Fronteira

Utilizada para modelar a interação entre um ator e o sistema

Para cada interação entre um ator e caso de uso, é criada uma classe de fronteira

Possuem o estereótipo <<boundary>>

Page 41: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 41

Classes de Fronteira

Itermediam a interface para qualquer coisa externa ao sistema

Exemplos de classes fronteira

GUI

Interface com outros sistemas

Interface com dispositivos

Uma classe de Fronteira por interação ator X caso de uso

<<boundary>>

Notação em UML

Page 42: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 42

O Papel de uma Classe de Fronteira

<<boundary>>

<<entity>>

<<control>>

<<boundary>>

<<boundary>>

<<entity>>

Usuário

Modela interação entre o sistema e seu ambiente

Page 43: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 43

Exemplo de classes de fronteira

Matricular-se Em disciplina Estudante Sistema

Academico

<<boundary>> FormRegistroCursos

<<boundary>> SistemaAcademico

Page 44: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 44

Classes de Entidade

Utilizadas para modelar a informação manipulada pelo sistema

Podem ser persistentes ou não

Conceito análogo às entidades dos diagramas ER

São identificadas a partir do fluxo de eventos do caso de uso

Possuem o estereótipo <<entity>>

Page 45: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 45

Classes de Entidade

Abstrações chave dos casos de uso

<<entity>>

Glossário

Descrição do

Caso de uso

<<entity>>

<<entity>>

Page 46: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 46

O Papel de uma Classe de Entidade

<<boundary>>

<<entity>>

<<control>>

<<boundary>>

<<boundary>>

<<entity>>

Usuário

Armazenam e gerenciam informação no sistema

Page 47: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 47

Exemplo de classes de entidade

<<entity>> Estudante

<<entity>> Curso

<<entity>> Horario

Page 48: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 48

Classes de Controle

Classes responsáveis por controlar o fluxo de execução do caso de uso

Normalmente é criada uma classe de controle para cada caso de uso

Possuem o estereótipo <<control>>

Page 49: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 49

Classes de Controle

Coordenam o comportamento (lógica de controle) do caso de uso

Interface entre fronteira e entidade

<<control>>

Page 50: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 50

O Papel de uma Classe de Controle

<<boundary>>

<<entity>>

<<control>>

<<boundary>>

<<boundary>>

<<entity>>

Usuário

Coordenam o comportamento do caso de uso

Page 51: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 51

Exemplo de Classe de Controle

Matricular-se Em disciplina Estudante Sistema

Academico

<<control>> ControladorMatricula

matricurlarAluno()

Page 52: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 52

registrar faltas

registrar súmulas

das aulas

Professor

consultar freqüência

Aluno

editar alunos remover alunos

adicionar turma

remover turma

editar turma

Servidor de e-mailadicionar alunos

Secretária

Usuarioefetuar login

Exemplo

Page 53: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 53

Exemplo

Efetuar Login

Fluxo de eventos:

1. Usuário informa login e senha

2. Sistema checa se o login e senha conferem

3. Sistema registra a sessão do aluno e a tela principal do sistema é exibida

Page 54: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 54

Exemplo

Que classes preciso criar?

uma classe de fronteira para lidar com a interação dos atores com o sistema

uma classe de entidade para representar as informações relevantes do aluno

uma classe de controle para gerenciar o fluxo de execução do caso de uso

Page 55: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 55

Exemplo

ControladorLogin UsuarioTelaLogin

ControladorLogin

<<control>>

Usuario

<<entity>>

TelaLogin

<<boundary>>

Há diferentes opções de visualização dos estereótipos. A opção padrão é mostrada acima - os estereótipos são visualizados através da mudança dos ícones das classes. Há também a opção de se visualizar os estereótipos do modo convencional (<<estereótipo>>).

Page 56: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 56

Persistência

Mas caso alguma classe de entidade precise ser persistente?

Que classe será responsável por realizar as tarefas de persistência?

Para cada classe de entidade que precise ser persistente, é criada uma nova classe com o estereótipo <<entity collection>>

Page 57: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 57

Exemplo

TelaLogin

<<boundary>>

CadastroUsuarios

<<entity collection>>

ControladorLogin

<<control>>

Usuario

<<entity>>

Page 58: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 58

Passo 2: Distribuir comportamento

Para cada fluxo de eventos

Identificar classes de análise participantes

Alocar responsabilidades do caso de uso às classes de análise

Modelar interações entre as classes através dos diagramas de interação

Page 59: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 59

Distribuindo comportamento entre as classes

Caso de uso

Diagrama de seqüência Diagrama de colaboração

Classes de análise

Classes de análise com

responsabilidades

Page 60: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 60

Alocando responsabilidades

Use estereótipos de análise como guia

Classes de fronteira

Comportamento que envolve comunicação com um ator

Classes de entidade

Comportamento que envolve informação encapsulada na abstração

Classes de controle

Comportamento específico ao (lógica de controle do) caso de uso

Page 61: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 61

Guia: Alocando responsabilidades

Quem tem a informação necessária para realizar a responsabilidade

isso pode envolver apenas uma classe, mas pode ser preciso criar novas classes ou relacionamentos entre classes

Page 62: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 62

Modelando interações

Diagramas de interação (colaboração e seqüência) modelam interações do sistema com seus atores

A interação é iniciada por um ator e envolve instâncias (objetos) das classes

Diagramas de interação capturam a semântica do fluxo de eventos do caso de uso Auxiliam a identificar classes, responsabilidades

e relacionamentos

Mecanismo de validação da arquitetura

Page 63: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 63

Vários diagramas podem ser necessários

Page 64: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 64

Anatomia de um Diagrama de Seqüência

:Cliente :Fornecedor

Objetos

Linha da vida

1: Solicita serviço

1.1: Solicita outro serviço

Mensagem reflexiva

Foco do controle Numeração

hierárquica

Mensagem

Page 65: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 65

Exemplo de diagrama de Seqüência

: Aluno janela de

matrícula controle de

matrícula

mat 101

1: preenche info

2: submete

3: ad curso(Jose, mat 101)

4: ad(Jose)

5: curso aberto?

6: ad(Jose)

mat 101

section 1

Page 66: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 66

Diagrama de Colaboração

:Cliente :Fornecedor

Objetos

Mensagem

1: Solicita serviço

Ligação

Page 67: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 67

Exemplo de diagrama de colaboração

: Secretaria

janela de curso :

JanelaCurso

gerenciador :

GerenciadorCurriculo

curso :

Curso

1: informação do curso

2: processa

3: adiciona curso

4: novo curso

Page 68: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 68

Exemplo

: usuário : TelaLogin : ControladorLogin : CadastroAlunos

efetuarLogin(login, senha)

efetuarLogin(login, senha)

checar(login, senha)

registrarSessao()

Page 69: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 69

Colaboração X Sequência

Colaboração

Mostra os relacionamentos, além das interações

Melhor para visualizar a colaboração

Melhor de ser usado em reuniões

Sequência

Mostra a sequência explicíta de mensagens

Melhor para visualizar o fluxo

Melhor para cenários complexos

Page 70: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 70

Passo 3: Descrever Responsabilidades

Atualizar os diagramas de classes com as responsabilidades identificadas no de iteração

Mensagens nestes diagramas resultam em responsabilidades nas classes receptoras

Page 71: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 71

Como fazer?

:Cliente :Fornecedor

// Executar responsabilidade

Fornecedor

// Executar responsabilidade

diagrama de

classe

diagrama de

interação

Page 72: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 72

Classes com métodos

Page 73: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 73

Passo 4: Descrever atributos e associações

Definir atributos

Estabelecer agregações e associações

Page 74: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 74

Identificando Atributos

Também é necessário identificar quais os atributos das classes

Um bom conhecimento do domínio do problema é bastante importante para esta tarefa, principalmente na identificação de atributos das classes de entidade

Nesta etapa ainda não precisamos indicar quais os tipos dos atributos

Page 75: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 75

Encontrando Atributos

Possíveis fontes: conhecimento do negócio, requisitos, glossário, modelo do negócio, etc.

São propriedades/características das classes identificadas

informação de propriedade exclusiva do objeto

informação que pode ser lida ou escrita por operações, mas sem outro comportamento a não ser fornecer um valor

Se a informação tem comportamento complexo ou é compartilhada, deve gerar uma classe

Page 76: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 76

Identificando relacionamentos

As classes identificadas não funcionam isoladamente, elas se relacionam com as demais classes

Os diagramas de interação são muito úteis nesta tarefa

Para cada ligação presente nos diagramas de interação, é necessário um relacionamento no diagrama de classes

Page 77: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 77

Encontrando Relacionamentos

Interações entre objetos nos diagrama de interação pode indicar a necessidade de definir um relacionamento entre as classes

Adicionar os elementos de um relacionamento

Tipo e nome

Navegabilidade

Multiplicidade

Papéis

Page 78: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 78

Encontrando Relacionamentos

:Client :Supplier

Link

Supplier

PerformResponsibility()

Diagrama

de classe

Diagrama de

Colaboração

Association

Client Supplier

Client

1: PerformResponsibility

Prime suppliers

0..* 0..*

Page 79: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 79

Diagrama final

Page 80: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 80

Gerenciando a consistência

Classes com responsabilidades similares são candidatas a serem combinadas

Uma classe com responsabilidades disjuntas é candidata a ser dividida

Classes sem (ou com apenas uma responsabilidade) e classes que interagem com muitas classes são candidatas a serem reexaminadas

Page 81: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 81

Passo 5: Qualificar mecanismos de análise

Mapear classes de análise em mecanismos de análise

Classes de análise Mecanismos de análise

Estudante Persistente

ControladorMatricula Distribuição, Segurança

Curso Persistente, Interface Legado

Page 82: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 82

Passo 6: Unificar classes de análise

Realização de Caso

de Uso

Diagramas de Classe Diagramas de Classe

Realização de Caso

de Uso

Diagramas de Classe Diagramas de Classe

Realização de Caso

de Uso

Diagramas de Classe Diagramas de Classe

Diagramas de Classe Diagramas de Classe

Page 83: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

Projetar classes

Page 84: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 84

Objetivo

Detalhar as partes do sistema

Concretização dos conceitos definidos até o momento Detalhes de implementação e ambiente

de produção Produtos utilizados

Linguagem de programação

Distribuição

Performance

Restrições físicas

Page 85: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 85

Passos do projeto de classes

1. Criar classes de projeto

2. Identificar classes persistentes

3. Definir métodos

4. Definir atributos

5. Definir estados

6. Definir relacionamentos

7. Contemplar os requisitos não-funcionais

Para cada classe:

Page 86: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 86

Passo 1: Criar classes de projeto

Converter classes de análise (Fronteira, Controle e Entidade) em classes de projeto

Padrões de projeto podem ser incorporados

As classes são refinadas para incorporar os mecanismos arquiteturais

Page 87: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 87

Projetando classes de fronteira

GUI (Graphical User Interface)

Que ferramenta de desenvolvimento de interface gráfica será utilizada?

Quant pode ser criada pela ferramenta?

Que padrões serão utilizados?

Sistemas Externos

Que tecnologias/mecanismos de integração?

Que padrões?

Projetar como um subsistema…

Page 88: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 88

Projetando classes de entidade

Classes de Entidade são

Transitórias

Persistentes

São detalhadas no passo “Identificar classes persistentes”

Page 89: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 89

Projetando classes de controle

Decisões que deve ser tomadas:

Elas são realmente necessárias?

Elas podem/devem ser agrupadas?

Como decidir?

Complexidade

Operações relacionadas

Probabilidade de mudar

Performance e distribuição

Page 90: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 90

Passo 2: Identificando classes persistentes

Instancias da classe precisam preservar o seu estado

Estratégia de persistencia é definida para cada classe persistente

Curso BD Relacional

Candidato Arquivo

JDBC

Serialização

Page 91: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 91

Passo 3: Definir Métodos

Tem como propósito mapear responsabilidades identificada na análise para métodos na classe

Deve-se considerar

Nome, assinatura e visibilidade dos métodos

Page 92: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 92

:Fornecedor

Mapeando operações

:Cliente

// Realizar alguma operação

:Fornecedor :Cliente

fazerAlgo()

Projeto

Análise

+ concreto

- concreto

Page 93: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 93

Passo 4: Definir Atributos

Tem como propósito formalizar a definição dos atributos

Deve-se considerar

Persistência

Visibidade, nome, tipo e valor inicial

Page 94: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 94

Passo 5: Definir estado

Tem como objetivo definir como o objeto se comporta

Relevante apenas para objetos com ciclo de vida complexo

Pode ser especificado em UML

Diagrama de estados

Diagrama de atividades

Page 95: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 95

Diagrama de Estados

Um diagrama de estados mostra o ciclo de vida de um objeto

Nome do estado

Variavel: Tipo = valor

Ação de entrada Ação de saída

Atividade

Evento(args)

[condição]

/ Operacao(args)

^obj.enviarMensagem(args) Estado

Ações

Atividades Transição

Page 96: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 96

Exemplo de diagrama de estado

Inicializado Aberto

Fechado

Cancelado

do: Incializa Curso

do: Finaliza curso

do: Notifica Alunos

Adiciona Aluno / contador = 0

Adiciona Aluno[ contador < 10 ]

[ contador = 10 ]

Cancela

Cancela

Cancela

Page 97: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 97

Passo 6: Definir Relacionamentos

Dependências

Associações

Simples

Agregação

Composição

Generalização

Page 98: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 98

Passo 7: Contemplar os requisitos não-funcionais

Concretização dos mecanismos de análise Incorporar responsabilidades em algumas

classes

Criar novas classes

Exemplos: Segurança Como armazenar as senhas? Que

algoritmo usar para criptografar uma mensagem?

Distribuição Que tecnologia utilizar? Qual o impacto da tecnologia nos objetos já definidos?

Tratamento de logs Que tipo de operações deve ter log (Acesso a dados, execução de negócio, …)

Page 99: Análise e Projeto no RUPbacala/MDS2011/MDS6.pdf · 2011. 5. 3. · 2009 MDS - Bacalá 12 Fluxo de Análise e Projeto Diagrama de Atividades . 2009 MDS - Bacalá 13 Realizar síntese

2009 MDS - Bacalá 99

Projetar Banco de Dados

Mapear as classes persistentes em conceitos do Banco de Dados

Definir os tipos de dados mais adequados para o BD

Normalizar se necessário