análise e projeto no rup - facom.ufu.brbacala/esof/04a - análiseprojetooo.pdfo rup é um framework...

101

Upload: others

Post on 24-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso
Page 2: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Contexto Após a 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 (requisitos funcionais).

Este modelo é chamado de modelo de análise.

Analisando os requisitos não funcionais, é feita escolha da Arquitetura a ser usada;

Definida a arquitetura, geramos um modelo de projeto a ser implementado.

2/28

2012 2

Page 3: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Contexto

3/28

Requisitos Análise Projeto

2012 3

Arquitetura

Page 4: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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?

4/28

2012 4

Page 5: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 5

Page 6: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 6

Page 7: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 7

Page 8: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 8

Page 9: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 9

Page 10: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 10

Page 11: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 11

Page 12: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Fluxo de Análise e Projeto

Diagrama de Atividades

2012 12

Page 13: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Realizar síntese da arquitetura

2012 13

Page 14: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 14

Page 15: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Definir a arquitetura candidata

2012 15

Page 16: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 16

Page 17: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Analisar comportamento

2012 17

Page 18: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 18

Page 19: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Projetar componentes

2012 19

Page 20: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 20

Page 21: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Projetar Banco de Dados

2012 21

Page 22: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 22

Page 23: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Refinar Arquitetura

2012 23

Page 24: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 24

Page 25: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Simplificando/Instanciando o processo para um contexto específico

Page 26: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Motivação O RUP é um Framework

Genérico e complexo demais, pois visa atender todos os tipos de projetos de desenvolvimento de software

Toda disciplina do RUP deve ser analisada e customizada de acordo com as necessidades específicas do projeto antes de sua implantação

2012 26

Page 27: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Passos da Atividade de Análise Identificar as classes

Identificar persistência

Identificar responsabilidades das classes

Identificar relacionamentos

Identificar atributos

2012 27

Page 28: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Fluxo de atividades simplificado

1. Analisar Caso de Uso

2. Analisar Arquitetura

3. Projetar Classes

4. Projetar Banco de Dados

2012 28

Page 29: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso
Page 30: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 30

Page 31: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 31

Page 32: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Passo 1: Encontrar classes de análise O comportamento do caso de uso é distribuído em

classes de análise

2012 32

Page 33: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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>>)

2012 33

Page 34: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 34

Page 35: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 35

Page 36: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

O Papel de uma Classe de Fronteira

<<boundary>>

<<entity>>

<<control>>

<<boundary>>

<<boundary>>

<<entity>>

Usuário

Modela interação entre o sistema e seu ambiente

2012 36

Page 37: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Exemplo de classes de fronteira

Matricular-se Em disciplina Estudante Sistema

Academico

<<boundary>> FormRegistroCursos

<<boundary>> SistemaAcademico

2012 37

Page 38: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 38

Page 39: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Classes de Entidade Abstrações chave dos casos de uso

<<entity>>

Glossário

Descrição do

Caso de uso

<<entity>>

<<entity>>

2012 39

Page 40: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

O Papel de uma Classe de Entidade <<boundary>>

<<entity>>

<<control>>

<<boundary>>

<<boundary>>

<<entity>>

Usuário

Armazenam e gerenciam informação no sistema

2012 40

Page 41: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Exemplo de classes de entidade

<<entity>> Estudante

<<entity>> Curso

<<entity>> Horario

2012 41

Page 42: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 42

Page 43: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Classes de Controle Coordenam o comportamento (lógica de controle) do

caso de uso

Interface entre fronteira e entidade

<<control>>

2012 43

Page 44: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

O Papel de uma Classe de Controle

<<boundary>>

<<entity>>

<<control>>

<<boundary>>

<<boundary>>

<<entity>>

Usuário

Coordenam o comportamento do caso de uso

2012 44

Page 45: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Exemplo de Classe de Controle

Matricular-se Em disciplina Estudante Sistema

Academico

<<control>> ControladorMatricula

matricurlarAluno()

2012 45

Page 46: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 46

Page 47: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 47

Page 48: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 48

Page 49: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 49

Page 50: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 50

Page 51: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Exemplo

TelaLogin

<<boundary>>

CadastroUsuarios

<<entity collection>>

ControladorLogin

<<control>>

Usuario

<<entity>>

2012 51

Page 52: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 52

Page 53: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 53

Page 54: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 54

Page 55: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 55

Page 56: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 56

Page 57: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Vários diagramas podem ser necessários

2012 57

Page 58: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 58

Page 59: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 59

Page 60: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Diagrama de Colaboração

:Cliente :Fornecedor

Objetos

Mensagem

1: Solicita serviço

Ligação

2012 60

Page 61: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 61

Page 62: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Exemplo

: usuário : TelaLogin : ControladorLogin : CadastroAlunos

efetuarLogin(login, senha)

efetuarLogin(login, senha)

checar(login, senha)

registrarSessao()

2012 62

Page 63: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 63

Page 64: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 64

Page 65: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Como fazer?

:Cliente :Fornecedor

// Executar responsabilidade

Fornecedor

// Executar responsabilidade

diagrama de

classe

diagrama de

interação

2012 65

Page 66: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Classes com métodos

66 2012

Page 67: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Passo 4: Descrever atributos e associações

Definir atributos

Estabelecer agregações e associações

2012 67

Page 68: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 68

Page 69: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 69

Page 70: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 70

Page 71: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 71

Page 72: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Encontrando Relacionamentos

:Client :Supplier

Link

Supplier

PerformResponsibility()

Diagrama

de classe

Diagrama de

Colaboração

Association

Client Supplier

Client

1: PerformResponsibility

Prime suppliers

0..* 0..*

2012 72

Page 73: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Diagrama final

2012 73

Page 74: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 74

Page 75: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 75

Page 76: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 76

Page 77: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso
Page 78: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 78

Page 79: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 79

Page 80: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Exemplo de arquitetura inicial

Interface Gráfica

Negócio

Dados

Módulo de Vendas

Módulo de Estoque

Socket

2012 80

Page 81: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 81

Page 82: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 82

Page 83: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Identificar Abstrações-chave Definir classes de análise preliminares

Conhecimento do domínio

Requisitos

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

2012 83

Page 84: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso
Page 85: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 85

Page 86: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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:

2012 86

Page 87: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 87

Page 88: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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…

2012 88

Page 89: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Projetando classes de entidade Classes de Entidade são

Transitórias

Persistentes

São detalhadas no passo “Identificar classes persistentes”

2012 89

Page 90: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 90

Page 91: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 91

Page 92: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 92

Page 93: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Mapeando operações

:Fornecedor :Cliente

// Realizar alguma operação

:Fornecedor :Cliente

fazerAlgo()

Projeto

Análise

+ concreto

- concreto

2012 93

Page 94: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 94

Page 95: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 95

Page 96: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 96

Page 97: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 97

Page 98: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

Passo 6: Definir Relacionamentos

Dependências

Associações

Simples

Agregação

Composição

Generalização

2012 98

Page 99: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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, …)

2012 99

Page 100: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

2012 100

Page 101: Análise e Projeto no RUP - facom.ufu.brbacala/ESOF/04a - AnáliseProjetoOO.pdfO RUP é um Framework ... Entidade () 2012 33 . Classes de Fronteira ... preciso

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

2012 101