Você está na página 1de 100

Anlise e Projeto no RUP

2009 MDS - Bacal 2 15/03/2005 2/28


Contexto
Aps a etapa de anlise de requisitos,
temos documentos de requisitos e os
casos de uso em mos.
Queremos agora gerar um primeiro
modelo do sistema a partir dos casos
de uso.
Este modelo chamado de modelo de
anlise.
2009 MDS - Bacal 3 15/03/2005 3/28
Contexto
Requisitos Anlise Projeto
2009 MDS - Bacal 4 15/03/2005 4/28
Atividade de Anlise
Vai proporcionar um mtodo 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?
2009 MDS - Bacal 5 15/03/2005 5/28
Anlise & RUP
A maneira como vamos realizar a
etapa de anlise se baseia no
processo do RUP (Rational Unified
Process)
A anlise ser orientada a casos de
uso, ou seja, os casos de uso serviro
de guia para a etapa de anlise
2009 MDS - Bacal 6 15/03/2005 6/28
Casos de Uso X Anlise
casos de uso anlise
Descritos na linguagem
do cliente
Descrito na linguagem
dos desenvolvedores
Viso externa do
sistema
Viso interna do sistema
Captura as
funcionalidades do
sistema
Mostra, de modo
abstrato, como a
funcionalidade pode ser
realizada
Estruturado por casos
de uso
Estruturado por classes
e pacotes
2009 MDS - Bacal 7
Anlise & 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
2009 MDS - Bacal 8
Anlise versus Projeto
Foco no entendimento
do problema
Projeto idealizado
Comportamento
Estrutura do sistema
Requisitos funcionais
Modelos simples
Foco no entendimento
da soluo
Operaes e atributos
Performance
Pensamento no cdigo
Ciclo de vida de
objetos
Requisitos no-
funcionais
Modelo complexo
2009 MDS - Bacal 9
Viso geral dos artefatos
Anlise e
projeto
Modelo de anlise
e projeto
Documento da
arquitetura
Modelo de caso
de uso
Modelo de dados
Documento
requisitos
Glossrio
2009 MDS - Bacal 10
Modelo de Analise e Projeto
A construo do modelo de anlise e
projeto o principal objetivo desta
disciplina
O modelo de anlise e projeto contm
as realizaes de casos de uso
Pode ser particionado em dois
modelos
Modelo de Analise
Modelo de Projeto

2009 MDS - Bacal 11
Realizao de Caso de Uso
Realizao de Caso
de Uso
Caso de Uso
Diagramas de Colaborao Diagramas de Colaborao
Diagramas de Classe Diagramas de Classe
Diagramas de Sequncia Diagramas de Sequncia
Descreve como o caso
de uso realizado,
associando o caso de
uso com classes e
outros elementos de
projeto

Requisitos
Analise e projeto
2009 MDS - Bacal 12
Fluxo de Anlise e Projeto
Diagrama de
Atividades
2009 MDS - Bacal 13
Realizar sntese da arquitetura
2009 MDS - Bacal 14
Objetivo
Construir e avaliar uma prova de
conceito arquitetural
Mostrar que existe uma soluo possvel
de satisfazer os requisitos do sistema
relevantes arquitetura
2009 MDS - Bacal 15
Definir a arquitetura candidata
2009 MDS - Bacal 16
Objetivo

Criar o esqueleto inicial da


arquitetura do sistema

Identificar classes de anlise dos


casos de uso arquiteturalmente
relevantes

Atualizar a realizao de caso de uso


com as interaes entre classes de
anlise

2009 MDS - Bacal 17
Analisar comportamento
2009 MDS - Bacal 18
Objetivo

Transformar as descries sobre o


comportamento providas pelos caso
de uso em um conjunto de elementos
nos quais o modelo de projeto vai se
basear

2009 MDS - Bacal 19
Projetar componentes
2009 MDS - Bacal 20
Objetivo

Refinar as definies dos elementos


acrescentado detalhes sobre como
estes elementos implementam o
comportamento requerido

Refinar e atualizar as realizaes de


casos de uso com os novos elementos
identificados

2009 MDS - Bacal 21
Projetar Banco de Dados
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 estratgias


para armazenar e recuperar dados

2009 MDS - Bacal 23
Refinar Arquitetura
2009 MDS - Bacal 24
Objetivo
Permitir uma transio entre os
elementos e mecanismos de anlise
para os de projeto
Manter a consistncia e integrao da
arquitetura
Descrever a arquitetura de execuo
e produo da aplicao

Fluxo de Anlise e Projeto
Simplificado
Simplificando/Instanciando o
processo para um contexto
especfico
2009 MDS - Bacal 26
Motivao
O RUP um Framework
Genrico 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 especficas do
projeto antes de sua implantao
2009 MDS - Bacal 27 15/03/2005 27/28
Passos da Atividade de Anlise
Identificar as classes
Identificar persistncia
Identificar responsabilidades das
classes
Identificar relacionamentos
Identificar atributos


2009 MDS - Bacal 28
Fluxo de atividades simplificado
1. Analisar Arquitetura

2. Analisar Caso de Uso

3. Projetar Classes

4. Projetar Banco de Dados
Analisar Arquitetura
2009 MDS - Bacal 30
Analisar Arquitetura
Esforo inicial em definir as partes do
sistema e seus relacionamentos
(Arquitetura Inicial)
Definir as convenes de
modelagem
Identificar os mecanismos de
anlise
Identificao das abstraes-chave
2009 MDS - Bacal 31
Arquitetura Inicial
Quais as principais partes do sistema?
Como elas interagem entre si?
Que padres arquiteturais utilizar (no
todo ou internamente nas partes) ?
MVC
Baseado em camadas
Canais e filtros
Centrado em repositrio
2009 MDS - Bacal 32
Exemplo de arquitetura inicial
Interface Grfica
Negcio
Dados
Mdulo de Vendas
Mdulo de
Estoque
Socket
2009 MDS - Bacal 33
Convenes de modelagem
O que so?
Que diagramas e elementos de modelagem
utilizar
Definir as regras para utilizao desses
componentes
Convenes de nome
Exemplos
Casos de uso devem ser nomeados como aes
(Cadastrar usurio)
Cada realizao de caso de uso deve conter:
Um diagrama de classes
No mnimo um diagrama de seqncia
representando o fluxo principal de aes

2009 MDS - Bacal 34
Mecanismos de anlise
O que so?
Focam nos requisitos no-funcionais do sistema
Deciso estratgica sobre padres, politicas e
prticas a serem utilizadas no projeto
Exemplos
Persistncia
Comunicao
Gerenciamento de transaes
Segurana
2009 MDS - Bacal 35
Identificar Abstraes-chave
Definir classes de anlise preliminares
Conhecimento do domnio
Requisitos
Outros artefatos (Glossrio e modelo de
negcio)

Analisar Caso de Uso
2009 MDS - Bacal 37
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 associaes das
classes
2009 MDS - Bacal 38
Passos para Analisar Caso de
Uso
Para cada caso de uso:
1. Encontrar classes de anlise
2. Distribuir comportamento entre as
classes
Para cada classe:
3. Descrever responsabilidades
4. Descrever atributos e associaes
5. Qualificar mecanismos de anlise
2009 MDS - Bacal 39
Passo 1: Encontrar classes de
anlise
O comportamento do caso de uso
distribudo em classes de anlise


2009 MDS - Bacal 40
O que so classes de anlise?
Representam o conceito mais abstrato dos
elementos do sistema
Primeiro passo concreto at chegar em um sistema
executvel

Categorizao temporria
So 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>>)
2009 MDS - Bacal 41 15/03/2005 41/28
Classes de Fronteira
Utilizada para modelar a interao
entre um ator e o sistema
Para cada interao entre um ator e
caso de uso, criada uma classe de
fronteira
Possuem o esteretipo
<<boundary>>

2009 MDS - Bacal 42
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 interao
ator X caso de uso
<<boundary>>
Notao em UML
2009 MDS - Bacal 43
O Papel de uma Classe de
Fronteira
<<boundary>>
<<entity>>
<<control>>
<<boundary>>
<<boundary>>
<<entity>>
Usurio
Modela interao entre o sistema e seu ambiente
2009 MDS - Bacal 44
Exemplo de classes de fronteira
Matricular-se
Em disciplina
Estudante
Sistema
Academico
<<boundary>>
FormRegistroCursos
<<boundary>>
SistemaAcademico
2009 MDS - Bacal 45 15/03/2005 45/28
Classes de Entidade
Utilizadas para modelar a informao
manipulada pelo sistema
Podem ser persistentes ou no
Conceito anlogo s entidades dos
diagramas ER
So identificadas a partir do fluxo de
eventos do caso de uso
Possuem o esteretipo <<entity>>

2009 MDS - Bacal 46
Classes de Entidade
Abstraes chave dos casos de uso
<<entity>>
Glossrio
Descrio do
Caso de uso
<<entity>>
<<entity>>
2009 MDS - Bacal 47
O Papel de uma Classe de
Entidade
<<boundary>>
<<entity>>
<<control>>
<<boundary>>
<<boundary>>
<<entity>>
Usurio
Armazenam e gerenciam informao no sistema
2009 MDS - Bacal 48
Exemplo de classes de entidade
<<entity>>
Estudante
<<entity>>
Curso
<<entity>>
Horario
2009 MDS - Bacal 49 15/03/2005 49/28
Classes de Controle
Classes responsveis por controlar o
fluxo de execuo do caso de uso
Normalmente criada uma classe de
controle para cada caso de uso
Possuem o esteretipo <<control>>

2009 MDS - Bacal 50
Classes de Controle
Coordenam o comportamento (lgica
de controle) do caso de uso
Interface entre fronteira e entidade
<<control>>
2009 MDS - Bacal 51
O Papel de uma Classe de
Controle
<<boundary>>
<<entity>>
<<control>>
<<boundary>>
<<boundary>>
<<entity>>
Usurio
Coordenam o comportamento do caso de uso
2009 MDS - Bacal 52
Exemplo de Classe de Controle
Matricular-se
Em disciplina
Estudante
Sistema
Academico
<<control>>
ControladorMatricula
matricurlarAluno()
2009 MDS - Bacal 53 15/03/2005 53/28
registrar faltas
registrar smulas
das aulas
Professor
consultar freqncia
Aluno
editar alunos
remover alunos
adicionar turma
remover turma
editar turma
Servidor de e-mail
adicionar alunos
Secretria
Usuario
efetuar login
Exemplo
2009 MDS - Bacal 54 15/03/2005 54/28
Exemplo
Efetuar Login
Fluxo de eventos:
1. Usurio informa login e senha
2. Sistema checa se o login e senha
conferem
3. Sistema registra a sesso do aluno e
a tela principal do sistema exibida

2009 MDS - Bacal 55 15/03/2005 55/28
Exemplo
Que classes preciso criar?
uma classe de fronteira para lidar com a
interao dos atores com o sistema
uma classe de entidade para representar
as informaes relevantes do aluno
uma classe de controle para gerenciar o
fluxo de execuo do caso de uso
2009 MDS - Bacal 56 15/03/2005 56/28
Exemplo
ControladorLogin Usuario TelaLogin
ControladorLogin
<<control>>
Usuario
<<entity>>
TelaLogin
<<boundary>>
H diferentes opes de visualizao dos esteretipos. A opo
padro mostrada acima - os esteretipos so visualizados atravs
da mudana dos cones das classes. H tambm a opo de se
visualizar os esteretipos do modo convencional (<<esteretipo>>).
2009 MDS - Bacal 57 15/03/2005 57/28
Persistncia
Mas caso alguma classe de entidade
precise ser persistente?
Que classe ser responsvel por
realizar as tarefas de persistncia?
Para cada classe de entidade que
precise ser persistente, criada uma
nova classe com o esteretipo
<<entity collection>>
2009 MDS - Bacal 58 15/03/2005 58/28
Exemplo
TelaLogin
<<boundary>>
CadastroUsuarios
<<entity collection>>
ControladorLogin
<<control>>
Usuario
<<entity>>
2009 MDS - Bacal 59
Passo 2: Distribuir
comportamento
Para cada fluxo de eventos
Identificar classes de anlise
participantes
Alocar responsabilidades do caso de uso
s classes de anlise
Modelar interaes entre as classes
atravs dos diagramas de interao
2009 MDS - Bacal 60
Distribuindo comportamento
entre as classes



Caso de uso
Diagrama de seqncia
Diagrama de colaborao
Classes de anlise
Classes de anlise com
responsabilidades
2009 MDS - Bacal 61
Alocando responsabilidades
Use esteretipos de anlise como guia
Classes de fronteira
Comportamento que envolve comunicao com
um ator
Classes de entidade
Comportamento que envolve informao
encapsulada na abstrao
Classes de controle
Comportamento especfico ao (lgica de
controle do) caso de uso
2009 MDS - Bacal 62
Guia: Alocando
responsabilidades
Quem tem a informao necessria
para realizar a responsabilidade
isso pode envolver apenas uma classe,
mas pode ser preciso criar novas classes
ou relacionamentos entre classes
2009 MDS - Bacal 63
Modelando interaes
Diagramas de interao (colaborao e
seqncia) modelam interaes do sistema
com seus atores
A interao iniciada por um ator e
envolve instncias (objetos) das classes
Diagramas de interao capturam a
semntica do fluxo de eventos do caso de
uso
Auxiliam a identificar classes, responsabilidades
e relacionamentos
Mecanismo de validao da arquitetura
2009 MDS - Bacal 64
Vrios diagramas podem ser
necessrios

2009 MDS - Bacal 65
Anatomia de um Diagrama de
Seqncia
:Cliente
:Fornecedor
Objetos
Linha da vida
1: Solicita servio
1.1: Solicita outro
servio
Mensagem
reflexiva
Foco do
controle
Numerao
hierrquica
Mensagem
2009 MDS - Bacal 66
Exemplo de diagrama de
Seqncia
: Aluno
janela de
matrcula
controle de
matrcula
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
2009 MDS - Bacal 67
Diagrama de Colaborao
:Cliente :Fornecedor
Objetos
Mensagem
1: Solicita servio

Ligao
2009 MDS - Bacal 68
Exemplo de diagrama de
colaborao
: Secretaria
janela de curso :
JanelaCurso
gerenciador :
GerenciadorCurriculo
curso :
Curso
1: informao do curso
2: processa
3: adiciona curso
4: novo curso
2009 MDS - Bacal 69 15/03/2005 69/28
Exemplo
: usurio : TelaLogin : ControladorLogin
: CadastroAlunos
efetuarLogin(login, senha)
efetuarLogin(login, senha)
checar(login, senha)
registrarSessao()
2009 MDS - Bacal 70
Colaborao X Sequncia
Colaborao
Mostra os
relacionamentos,
alm das interaes
Melhor para
visualizar a
colaborao
Melhor de ser
usado em reunies
Sequncia
Mostra a sequncia
explicta de
mensagens
Melhor para
visualizar o fluxo
Melhor para
cenrios complexos
2009 MDS - Bacal 71
Passo 3: Descrever
Responsabilidades
Atualizar os diagramas de classes
com as responsabilidades
identificadas no de iterao

Mensagens nestes diagramas
resultam em responsabilidades nas
classes receptoras
2009 MDS - Bacal 72
Como fazer?
:Cliente
:Fornecedor
// Executar responsabilidade
Fornecedor
// Executar responsabilidade
diagrama de
classe
diagrama de
interao
2009 MDS - Bacal 73 15/03/2005 73/28
Classes com mtodos
2009 MDS - Bacal 74
Passo 4: Descrever atributos e
associaes
Definir atributos

Estabelecer agregaes e associaes
2009 MDS - Bacal 75 15/03/2005 75/28
Identificando Atributos
Tambm necessrio identificar
quais os atributos das classes
Um bom conhecimento do domnio do
problema bastante importante para
esta tarefa, principalmente na
identificao de atributos das classes
de entidade
Nesta etapa ainda no precisamos
indicar quais os tipos dos atributos
2009 MDS - Bacal 76
Encontrando Atributos
Possveis fontes: conhecimento do negcio,
requisitos, glossrio, modelo do negcio, etc.

So propriedades/caractersticas das classes
identificadas
informao de propriedade exclusiva do objeto
informao que pode ser lida ou escrita por
operaes, mas sem outro comportamento a no ser
fornecer um valor

Se a informao tem comportamento complexo ou
compartilhada, deve gerar uma classe
2009 MDS - Bacal 77 15/03/2005 77/28
Identificando relacionamentos
As classes identificadas no
funcionam isoladamente, elas se
relacionam com as demais classes
Os diagramas de interao so muito
teis nesta tarefa
Para cada ligao presente nos
diagramas de interao, necessrio
um relacionamento no diagrama de
classes

2009 MDS - Bacal 78
Encontrando Relacionamentos

Interaes entre objetos nos diagrama de
interao pode indicar a necessidade de
definir um relacionamento entre as classes

Adicionar os elementos de um
relacionamento
Tipo e nome
Navegabilidade
Multiplicidade
Papis
2009 MDS - Bacal 79
Encontrando Relacionamentos
:Client :Supplier
Link
Supplier
PerformResponsibility()
Diagrama
de classe
Diagrama de
Colaborao
Association
Client
Supplier
Client
1: PerformResponsibility
Prime suppliers
0..* 0..*
2009 MDS - Bacal 80 15/03/2005 80/28
Diagrama final
2009 MDS - Bacal 81
Gerenciando a consistncia
Classes com responsabilidades similares
so 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 so candidatas a serem
reexaminadas

2009 MDS - Bacal 82
Passo 5: Qualificar mecanismos de
anlise
Mapear classes de anlise em
mecanismos de anlise
Classes de anlise Mecanismos de anlise
Estudante Persistente
ControladorMatricula Distribuio, Segurana
Curso Persistente, Interface
Legado
2009 MDS - Bacal 83
Passo 6: Unificar classes de anlise
Realizao de Caso
de Uso
Diagramas de Classe Diagramas de Classe

Realizao de Caso
de Uso
Diagramas de Classe Diagramas de Classe

Realizao de Caso
de Uso
Diagramas de Classe Diagramas de Classe

Diagramas de Classe Diagramas de Classe
Projetar classes
2009 MDS - Bacal 85
Objetivo
Detalhar as partes do sistema
Concretizao dos conceitos definidos
at o momento
Detalhes de implementao e ambiente
de produo
Produtos utilizados
Linguagem de programao
Distribuio
Performance
Restries fsicas
2009 MDS - Bacal 86
Passos do projeto de classes
1. Criar classes de projeto
2. Identificar classes persistentes
3. Definir mtodos
4. Definir atributos
5. Definir estados
6. Definir relacionamentos
7. Contemplar os requisitos no-funcionais
Para cada classe:
2009 MDS - Bacal 87
Passo 1: Criar classes de
projeto
Converter classes de anlise
(Fronteira, Controle e Entidade) em
classes de projeto

Padres de projeto podem ser
incorporados

As classes so refinadas para
incorporar os mecanismos
arquiteturais
2009 MDS - Bacal 88
Projetando classes de fronteira
GUI (Graphical User Interface)
Que ferramenta de desenvolvimento de interface
grfica ser utilizada?
Quant pode ser criada pela ferramenta?
Que padres sero utilizados?
Sistemas Externos
Que tecnologias/mecanismos de integrao?
Que padres?
Projetar como um subsistema
2009 MDS - Bacal 89
Projetando classes de entidade
Classes de Entidade so
Transitrias
Persistentes
So detalhadas no passo Identificar
classes persistentes
2009 MDS - Bacal 90
Projetando classes de controle
Decises que deve ser tomadas:
Elas so realmente necessrias?
Elas podem/devem ser agrupadas?
Como decidir?
Complexidade
Operaes relacionadas
Probabilidade de mudar
Performance e distribuio

2009 MDS - Bacal 91
Passo 2: Identificando classes
persistentes
Instancias da classe precisam preservar o
seu estado
Estratgia de persistencia definida para
cada classe persistente
Curso BD Relacional
Candidato Arquivo
JDBC
Serializao
2009 MDS - Bacal 92
Passo 3: Definir Mtodos
Tem como propsito mapear
responsabilidades identificada na
anlise para mtodos na classe
Deve-se considerar
Nome, assinatura e visibilidade dos
mtodos

2009 MDS - Bacal 93
:Fornecedor
Mapeando operaes
:Cliente
// Realizar alguma operao
:Fornecedor :Cliente
fazerAlgo()
Projeto
Anlise
+ concreto
- concreto
2009 MDS - Bacal 94
Passo 4: Definir Atributos
Tem como propsito formalizar a
definio dos atributos
Deve-se considerar
Persistncia
Visibidade, nome, tipo e valor inicial
2009 MDS - Bacal 95
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
2009 MDS - Bacal 96
Diagrama de Estados
Um diagrama de estados mostra o
ciclo de vida de um objeto

Nome do estado
Variavel: Tipo = valor
Ao de entrada
Ao de sada
Atividade
Evento(args)
[condio]
/ Operacao(args)
^obj.enviarMensagem(args)
Estado
Aes
Atividades Transio
2009 MDS - Bacal 97
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
2009 MDS - Bacal 98
Passo 6: Definir Relacionamentos
Dependncias
Associaes
Simples
Agregao
Composio
Generalizao
2009 MDS - Bacal 99
Passo 7: Contemplar os
requisitos no-funcionais
Concretizao dos mecanismos de anlise
Incorporar responsabilidades em algumas
classes
Criar novas classes
Exemplos:
Segurana Como armazenar as senhas? Que
algoritmo usar para criptografar uma
mensagem?
Distribuio Que tecnologia utilizar? Qual o
impacto da tecnologia nos objetos j definidos?
Tratamento de logs Que tipo de operaes
deve ter log (Acesso a dados, execuo de
negcio, )
2009 MDS - Bacal 100
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 necessrio

Você também pode gostar