340 likes | 515 Views
Processo Unificado. Objetivos. Discutir a necessidade de um processo “padrão” Apresentar um subconjunto do Processo Unificado. Simular a execução do processo. Motivação. Processos. É necessário adotar um processo de desenvolvimento para manter a execução das atividades em um fluxo coerente.
E N D
Processo Unificado PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
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
Motivação PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Processos • É 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 PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Processo Unificado • Processo Iterativo e Incremental • Orientado a Casos de Uso • Define um conjunto de • Atividades – o que fazer • Papéis – que participa • Artefatos – quais dados são necessários • Workflows – organização das atividades PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Fases Disciplinas do Processo Elaboração Construção Transição Concepção Modelagem do Negócio Requisitos Análise e Projeto Implementação Teste Entrega Disciplinas do Suporte Gerenciamento de Alterações e Configuração Gerenciamento de Projeto Ambiente Iter.#1 Iter.#2 Iter.#n Iter.#n+1 Iter.#n+2 Iter.#m Iter.#m+1 Iteração(ões) Preliminar(es) UP - Resumo PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Fases e Disciplinas • Organizam o trabalho em blocos lógicos • 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. PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Fases • 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. PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
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
UP & Cronograma PRISMA@COPPE/UFRJ - Toacy C. de Oliveira From Larman
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. • 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. PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Experimentando........ PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Um Processo Unificado* PRISMA@COPPE/UFRJ - Toacy C. de Oliveira * Tipicamente processos são específicos para um projeto
Uma Sequência PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
O Problema (Documento de Visão) 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. PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Concepção/Elaboração • Modelo de Casos de Uso (Funcional) • Diagrama de Caso de Uso • Especificação de Casos de Uso • Modelo de Classes (Estrutural) • Classes de Análise PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Diagrama de Caso de Uso • Especifica os atores que interagem com o sistema • Especifica quais funções cada ator tem “acesso” PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Especificação de Caso de Uso • Texto estruturado que detalha um Caso de Uso em específico. • Contém • 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. PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Exemplo UC: Arremessar Dados Atores : Jogador Pré-condição : jogo inicializado Pós-condição : vencedor é conhecido PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
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. • Quem disse que o sistema tem menu??? Será que não dá para fazer a mesma função via comando de voz? PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Como achar Casos de Uso/Atores • Analisar Requisitos Funcionais • Dica: Analisar os verbos e sujeitos presentes na especificação. • Procurar ações que o sistema faz e que são perceptíveis para um elemento externo(atores). • 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 PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
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
Classes – Modelo Conceitual • Especifica conceitos, seus atributos e relacionamentos • É parte da fase de Análise PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Importante!!! • Classes de Análise não especificam operações. Estas entram no início do projeto. • Não há metodos • Classes de Análise também não especificam conceitos da plataforma de execução. • Menu, Banco de Dados,...... PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Descobrindo Classes • 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 PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Descobrindo Operações CRC Cenários de Execução PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Cenário - Iniciar Jogo • 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) PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Cenário – ArremessarDados PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Classes – Modelo de Projeto • As classes de projeto refinam as classes descobertas na análise. • Adicionam operações • Verificam Boas Práticas de Modelagem • Coesão, Acoplamento, Reuso • Se conectam com a plataforma de execução • Hibernate, J2EE, .NET 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) PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Código public class Dado { private intresultado; protected void Randomize() { // your code here } public void Arremessa() { // your code here } } public class Jogo { public Dado dado; public Dado dado_1; public void ApresentaResultado() { // your code here } public void ZerarSoma() { // your code here } } PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Resumindo • 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. PRISMA@COPPE/UFRJ - Toacy C. de Oliveira
Mais informações... • Openup • http://epf.eclipse.org/wikis/openup/ • UpEDU • http://www.upedu.org/ PRISMA@COPPE/UFRJ - Toacy C. de Oliveira