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