PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
PROCESSO UNIFICADO
1
Objetivos
Discutir a necessidade de um processo
“padrão”
Apresentar um subconjunto do Processo
Unificado.
Simular a execução do processo
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
2
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Motivação
3
Processos
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
É necessário adotar um processo de
desenvolvimento para manter a execução
das atividades em um fluxo coerente.
People are more important than any process.
Good people with a good process will outperform good
people with no process every time.
—Grady Booch
4
Processo Unificado
Processo Iterativo e Incremental
Orientado a Casos de Uso
Define um conjunto de
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
◦
◦
◦
◦
Atividades – o que fazer
Papéis – que participa
Artefatos – quais dados são necessários
Workflows – organização das atividades
5
UP - Resumo
Fases
Disciplinas do Processo
Concepção
Elaboração
Construção
Transição
Modelagem do Negócio
Requisitos
Análise e Projeto
Implementação
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Teste
Entrega
Disciplinas do Suporte
Gerenciamento de
Alterações e Configuração
Gerenciamento de Projeto
Ambiente
Iteração(ões)
Preliminar(es)
Iter.
#1
Iter.
#2
Iter.
#n
Iter.
Iter.
#n+1 #n+2
Iter.
#m
Iter.
#m+1
6
Fases e Disciplinas
Organizam o trabalho em blocos lógicos
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
◦ Fases – Identificam o momento dentro do
ciclo-de-vida.
◦ Disciplinas – Identificam quais elementos de
processo são usados para resolver um
problema específico dentro do ciclo-de-vida.
7
Fases
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Concepção: estabelece o caso de negócio para o
sistema e delimita o escopo do projeto.
Elaboração: envolve a análise do domínio do
problema e a especificação da arquitetura do
sistema.
Construção: envolve a elaboração do software a
partir de arquitetura em um produto completo
para utilização pelos usuários.
Transição: viabiliza que o software possa ser
utilizado pelos usuários.
8
Disciplinas
Análise de Negócio
Requisitos
Análise e Projeto
Implementação
Testes
Entrega
Gerenciamento de Mudanças
Ambiente
Gerenriamento de Projeto
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
9
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
UP & Cronograma
From Larman
10
Iterativo e Incremental
No contexto do ciclo de vida de desenvolvimento de
um software:
Iterativo: processo que envolve o gerenciamento de
uma seqüência de versões executáveis.
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
◦ Cada iteração pode ser vista como um mini-projeto,
envolvendo um ciclo completo de desenvolvimento,
resultando em uma versão de um produto executável.
Incremental: processo que envolve a integração
contínua da arquitetura do sistema para a produção
de novas versões do sistema, onde cada nova versão
incorpora aperfeiçoamentos incrementais em relação
a anterior pela incorporação do produto resultante
da última iteração.
11
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Experimentando........
12
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Um Processo Unificado*
* Tipicamente processos são específicos para um projeto
13
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Uma Sequência
14
O Problema (Documento de Visão)
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Este projeto tem como objetivo implementar um sistema que
simula um jogo de dados. O jogo começa quando o jogador
arremessa dois dados. Caso a soma das faces dos dados seja 7,
o jogador é vencedor, caso contrário é perdedor.
Os dados possuem 6 lados e em cada lado há um número de 1
a 6 (sem repetições)
REQ01: O Jogador pode iniciar um jogo novo
REQ02: O Jogador arremessa os dados.
REQ Não Funcionais: O sistema deverá ser desenvolvido
utilizando linha de comando, ou seja, não há interface gráfica.
15
Concepção/Elaboração
Modelo de Casos de Uso (Funcional)
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
◦ Diagrama de Caso de Uso
◦ Especificação de Casos de Uso
Modelo de Classes (Estrutural)
◦ Classes de Análise
16
Diagrama de Caso de Uso
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Especifica os atores que interagem com o
sistema
Especifica quais funções cada ator tem “acesso”
17
Especificação de Caso de Uso
Texto estruturado que detalha um Caso
de Uso em específico.
Contém
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
◦ Nome do Caso de Uso
◦ Atores Envolvidos
◦ Lista com pré e pós condições para a
execução do Caso de Uso
◦ Fluxos básicos e alternativos, com os passos
executados pelo ator e pelo sistema.
18
Exemplo
UC: Arremessar Dados
Atores : Jogador
Pré-condição : jogo inicializado
Pós-condição : vencedor é conhecido
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Ator
Sistema
Solicita Arremesso de dados
Simula Arremesso
Apresenta resultados
19
Importante!!!!!
Como
o Caso de Uso é um modelo da fase de
análise não é desejável atrelá-lo a uma
plataforma de execução.
Ator
Sistema
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Seleciona Menu Arremesso de dados Simula Arremesso
Apresenta resultados
Quem
disse que o sistema tem menu??? Será
que não dá para fazer a mesma função via
comando de voz?
20
Como achar Casos de Uso/Atores
Analisar
Requisitos Funcionais
Dica: Analisar os verbos e sujeitos presentes na
especificação.
ações que o sistema faz e que são
perceptíveis para um elemento externo(atores).
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Procurar
Imprimir Texto, Pagar com Cartão de Crédito, Fazer
Empréstimo, etc
Procurar
quem dispara as ações
Gerente Faz Empréstimo, Cliente Paga com Cartão,
etc
21
Diagrama de Classes
Estamos usando o Processo Unificado
como referência, ou seja, a abstração
utilizada na implementação será orientada
a objetos.
Casos de Uso organizam funções, mas
não ressaltam os conceitos e
relacionamentos importantes para o
sistema.
Classes expressam conceitos e seus
relacionamentos.
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
24
Classes – Modelo Conceitual
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Especifica conceitos, seus
atributos e relacionamentos
É parte da fase de Análise
25
Importante!!!
Classes de Análise não especificam
operações. Estas entram no início do
projeto.
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
◦ Não há metodos
Classes de Análise também não
especificam conceitos da plataforma de
execução.
◦ Menu, Banco de Dados,......
26
Descobrindo Classes
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Destacando COISAS no texto de
requisitos
◦ REQ01: O Jogador pode iniciar um jogo
novo
◦ REQ02: O Jogador arremessa os dados
Cartões CRC
◦ Class – Responsability - Collaboration
27
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Descobrindo Operações
CRC
Cenários de Execução
28
Cenário - Iniciar Jogo
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Utiliza o Diagrama de
Sequencia da UML para simular
a execução de um Caso de
Uso, distribuindo as
funcionalidades pelas classes
especificadas anteriormente
(Classes de Análise)
29
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Cenário – ArremessarDados
30
Classes – Modelo de Projeto
As classes de projeto refinam as classes
descobertas na análise.
Adicionam operações
Verificam Boas Práticas de Modelagem
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
◦ Coesão, Acoplamento, Reuso
Se conectam com a plataforma de
execução
◦ Hibernate, J2EE, .NET
31
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Classes de Projeto
A Classe jogador foi eliminada ->
Não há necessidade durante
execução
Os relacionamentos foram
direcionados -> Assim o
acoplamento é diminuído.
As operações apareceram
(vieram do diagrama de sequencia)
32
Código
public class Dado {
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
private int resultado;
public class Jogo {
public Dado dado;
public Dado dado_1;
protected void Randomize() {
// your code here
}
public void ApresentaResultado() {
// your code here
}
public void Arremessa() {
// your code here
}
}
public void ZerarSoma() {
// your code here
}
}
33
Resumindo
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
O Processo utilizado
◦ ....foi capaz de capturar as informações
necessárias para a implementação do sistema
eu questão.
◦ ..facilitou o entendimento pois organizou as
atividades de “raciocínio” em uma sequência.
Os conceitos capturados estão
claramente presentes em vários modelos
e é possível rastreá-los.
34
Mais informações...
Openup
◦ http://epf.eclipse.org/wikis/openup/
PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
UpEDU
◦ http://www.upedu.org/
35