Open-source Education

Palestrante / Instrutor
• Kleber Xavier
• • • Formado em Engenharia Mecatrônica pela POLI-USP e Mestrando em Engenharia de Software pelo IME-USP Experiência Internacional em projetos em Cingapura e Equador Certificações:Java Programmer(SJCP), Web Component Developer(SCWCD), Business Component Developer(SCBCD) e Enterprise Architect(SCEA-I). Instrutor Globalcode;

Agenda
Conceitos Gerais Casos de Uso Diagrama de Casos de Uso Documentos de Casos de Uso Diagrama de Atividades Unified Process Pontos de Caso de Uso Estudo de Caso

Agenda
Conceitos Gerais Casos de Uso Diagrama de Casos de Uso Documentos de Casos de Uso Diagrama de Atividades Unified Process Pontos de Caso de Uso Estudo de Caso

Conceitos Gerais
Requisito: condição ou capacidade que um sistema deve atender. Requisito funcional: descreve uma funcionalidade que deve ser fornecida pelo sistema. Ex: cadastrar novos produtos, gerar relatório de vendas,etc. Requisito não funcional: descreve características do sistema não relacionadas a funcionalidades. Ex: performance, escalabilidade, etc.

Conceitos Gerais
Técnicas para levantamento de requisitos: • Entrevista • Workshop • Brainstorming • Prototipagem

Agenda
Conceitos Gerais Casos de Uso Diagrama de Casos de Uso Documentos de Casos de Uso Diagrama de Atividades Unified Process Pontos de Caso de Uso Estudo de Caso

Casos de Uso
Representam uma unidade funcional fornecida pelo sistema. Conceito criado por Ivar Jacobson. Cada caso de uso captura um ou mais cenários que descrevem como o sistema deve interagir com os usuários para atingir determinada meta ou funcionalidade. Importância dos casos de uso: • Modelagem de requisitos funcionais • Estimativa de esforço • Planejamento de testes

Agenda
Conceitos Gerais Casos de Uso Diagrama de Casos de Uso Documentos de Casos de Uso Diagrama de Atividades Unified Process Pontos de Caso de Uso Estudo de Caso

Diagrama de Casos de Uso
Diagrama da UML utilizado para representação gráfica dos casos de uso. Seus principais elementos são: • Caso de uso • Ator • Associação • Relacionamento de inclusão • Relacionamento de extensão • Generalização

Diagrama de Casos de Uso
Caso de uso: representado graficamente por uma elipse com o nome do caso de uso.

Diagrama de Casos de Uso
Ator: representa um papel representado por uma pessoa, sistema ou dispositivo que interage com o sistema.

Diagrama de Casos de Uso
Associação: representa a interação entre um ator e um caso de uso.

Diagrama de Casos de Uso
Relacionamento de inclusão: relacionamento entre casos de uso no qual um caso de uso inclui incondicionalmente outro caso de uso.

Diagrama de Casos de Uso
Relacionamento de extensão: relacionamento entre casos de uso no qual um caso de uso pode estender a funcionalidade de outro caso de uso.

Diagrama de Casos de Uso
Generalização: relacionamento no qual um ator ou caso de uso possui as mesmas características de um elemento base, mais suas características específicas.

Diagrama de Casos de Uso
Os diagramas de casos de uso visam dois objetivos principais: • Definição de escopo: permitem que sejam visualizadas as funcionalidades presentes no sistema. • Identificação de papéis: permitem identificar quem interage com o sistema e a que funcionalidades tem acesso. Não permitem detalhar os passos necessários para implementação da funcionalidade.

Agenda
Conceitos Gerais Casos de Uso Diagrama de Casos de Uso Documentos de Casos de Uso Diagrama de Atividades Unified Process Pontos de Caso de Uso Estudo de Caso

Documentos de Casos de Uso
Texto que descreve as características relevantes do caso de uso. Apresenta informações que não podem ser representadas no diagrama de casos de uso. Existem diversos modelos de documentos.

Documentos de Casos de Uso
Algumas informações importantes que devem fazer parte do documento de caso de uso: • Nome • Contexto: uma breve descrição do caso de uso. • Ator primário: qual o principal usuário do caso de uso. • Pré-condições: o que se espera que já tenha sido. realizado antes da execução do caso de uso.

Documentos de Casos de Uso
Outras informações importantes: • Pós-condições: condições esperadas no sistema após a execução do caso de uso. • Cenário principal de sucesso: lista de passos que devem ser seguidos na situação normal para completar o caso de uso. • Cenários alternativos: lista de passos que devem ser seguidos em situações anormais ou alternativas.

Agenda
Conceitos Gerais Casos de Uso Diagrama de Casos de Uso Documentos de Casos de Uso Diagrama de Atividades Unified Process Pontos de Caso de Uso Estudo de Caso

Diagrama de Atividades
Diagrama da UML utilizado para representar o fluxo de atividades dentro de um processo. No contexto da análise de requisitos, pode ser utilizado para detalhamento dos passos de um caso de uso. Semelhantes a fluxogramas.

Elementos do Diagrama de Atividades
Atividade: representa uma etapa em um processo.

Elementos do Diagrama de Atividades
Transição: fluxo de uma atividade para outra.

Elementos do Diagrama de Atividades
Condição de guarda:condição necessária para a realização da transição.

Elementos do Diagrama de Atividades
Decisão: dependendo de uma condição, mostra as diferentes transições.

Elementos do Diagrama de Atividades
Ponto de junção: mostra a união de atividades em um único fluxo.

Elementos do Diagrama de Atividades
Início e fim: indicam o início e o término do fluxo de atividades.

Elementos do Diagrama de Atividades
Concorrência: indica atividades executando em paralelo.

Elementos do Diagrama de Atividades
Raia: separa as atividades de acordo com o ator que as executa.

Agenda
Conceitos Gerais Casos de Uso Diagrama de Casos de Uso Documentos de Casos de Uso Diagrama de Atividades Unified Process Pontos de Caso de Uso Estudo de Caso

Unified Process
Estabelece um conjunto de tarefas para transformar os requisitos do cliente em um software. Baseado em desenvolvimento iterativo utilizando os seguintes elementos: • Atividades: tarefas a serem realizadas. • Trabalhadores: aqueles que realizam as tarefas. • Artefatos: documentos produzidos pelas tarefas. • Workflow: define a ordem na qual as atividades são executadas.

Unified Process
Cada workflow tem seu conjunto de trabalhadores, atividades e artefatos bem definido. O processo unificado define os seguintes workflows: • Requisitos • Análise • Projeto • Implementação • Testes

Unified Process
O processo é dividido em quatro fases: • Concepção • Elaboração • Construção • Transição Em cada fase podem ser executadas diversas iterações, onde cada iteração corresponde a um ciclo completo, desde a captura de requisitos até a execução de testes.

Unified Process

Agenda
Conceitos Gerais Casos de Uso Diagrama de Casos de Uso Documentos de Casos de Uso Diagrama de Atividades Unified Process Pontos de Caso de Uso Estudo de Caso

Pontos de Caso de Uso
Metodologia para estimativa de esforço de desenvolvimento de sistemas de software. Criada por Gustav Karner em 1993. Baseada no princípio de que o tamanho do software está relacionado as funcionalidades que o usuário enxerga no sistema (casos de uso). Semelhante ao método de pontos de função.

Pontos de Caso de Uso
A metodologia envolve os seguintes passos: 1. Contagem do número de atores (UAW): somam-se os atores envolvidos em todos os casos de uso aplicandose um peso de acordo com sua complexidade.
Classificação Peso simples médio complexo 1 2 3 Descrição Sistema com API bem definida Sistema através de protocolo de comunicação Usuário via interface gráfica

Contagem de Atores
• Para um sistema com 1 ator médio e 4 complexos: UAW = 1 * 2 + 4 * 3 = 14

Contagem de Casos de Uso
2. Contagem dos casos de uso (UUCW) : somam-se os os casos de uso aplicando-se um peso de acordo com sua complexidade.
Classificação Peso simples médio complexo 5 10 15 Descrição 3 ou menos transações 4 a 7 transações Mais de 7 transações

Contagem de Casos de Uso
• Para um sistema com 3 casos de uso simples, 6 médios e 1 complexos: UUCW = 3 * 5 + 6 * 10 + 1 * 15 = 90

Complexidade Técnica
3. Estabelecer o fator de complexidade técnica (TCF): calculado aplicando-se um valor de 0 a 5 a cada um dos fatores técnicos e multiplicando pelo respectivo peso. O valor encontrado (Tfactor) é aplicado na fórmula. TCF = 0,6 + (0,01*Tfactor)
Fator Sistema distribuído Tempo de resposta Eficiência do usuário final Processamento complexo Peso 2 1 1 1

Complexidade Técnica
Fator Código reutilizável Facilidade de instalação Facilidade de uso Portabilidade Facilidade de mudanças Concorrente Segurança Acesso a sistemas de terceiros Treinamento especial necessário Peso 1 0,5 0,5 2 1 1 1 1 1

Fator de Ambiente
4. Estabelecer o fator de ambiente (EF): calculado aplicando-se um valor de 0 a 5 a cada um dos fatores de ambiente e multiplicando pelo respectivo peso. O valor encontrado (Efactor) é aplicado na fórmula. EF = 1,4 + (-0,03*Efactor)
Fator Familiaridade com processo Experiência em desenvolvimento Experiência em OO Capacitação do analista líder Peso 1,5 0,5 1 0,5

Fator de Ambiente
Fator Motivação Estabilidade dos requisitos Trabalhadores em tempo parcial Linguagem de programação Peso 1 2 -1 -1

Cálculo Final
5. Aplicar a fórmula para o cálculo do número de pontos de caso de uso. UCP = (UAW + UUCW) * TCF * EF 6. Transformar o número de pontos calculados em número de horas. O método original recomenda atribuir 20 horas a cada ponto. Experiências de mercado tem mostrado que este valor fica entre 15 e 30 horas.

Agenda
Conceitos Gerais Casos de Uso Diagrama de Casos de Uso Documentos de Casos de Uso Diagrama de Atividades Unified Process Pontos de Caso de Uso Estudo de Caso

Sistema de Vendas Online
Apresentamos a seguir um exemplo de utilização de casos de uso para um sistema de vendas online.

Diagrama de Casos de Uso

Documento de Casos de Uso
Exemplo de documento para o caso de uso Comprar Produtos:
Nome Contexto Ator primário Comprar Produtos (VO-03) O ator primário deseja comprar produtos oferecidos pelo catálogo da loja online. Cliente

Pré-condições O cliente está logado no sistema. Póscondições É criado um pedido de compras para o cliente.

Documento de Casos de Uso
Cenário principal de sucesso 1 – cliente solicita compra de produtos 2 – cliente visualiza catalogo de produtos (caso de uso VO-02) 3 – cliente seleciona produto para compra. 4 – sistema adiciona o produto no carrinho de compras do cliente. cliente repete passos 3 e 4 até indicar que terminou 5 – cliente efetua pagamento (caso de uso VO-06). 6 – sistema cria um pedido. 7 – sistema confirma criação de pedido para cliente.

Documento de Casos de Uso
Cenários alternativos 3a – cliente remove um produto da lista de compras: .1 – sistema remove o produto do carrinho de compras 4a – carrinho de compras inexistente: .1 sistema cria um carrinho de compras para o cliente. volta ao passo 4

Pontos de Caso de Uso
1. Contagem de atores: 1 ator complexo UAW = 1*3 = 3 2. Contagem de casos de uso: 4 casos de uso simples e 4 médios UUCW = 4 * 5 + 4 * 10 = 60

Pontos de Caso de Uso
3. Fator de complexidade técnica :
Fator Sistema distribuído Tempo de resposta Eficiência do usuário final Processamento complexo Código reutilizável Facilidade de instalação Facilidade de uso Peso 2 1 1 1 1 0,5 0,5 Valor 3 2 1 3 3 0 0 Valor ajustado 6 2 1 3 3 0 0

Pontos de Caso de Uso
Fator Portabilidade Facilidade de mudanças Concorrente Segurança Acesso a sistemas de terceiros Treinamento especial necessário Peso 2 1 1 1 1 1 Valor 1 3 1 1 1 0 Valor ajustado 2 3 1 1 1 0

TCF = 0,6 + (0,01 * 23) = 0,83

Pontos de Caso de Uso
4. Fator de ambiente :
Fator Familiaridade com processo Experiência em desenvolvimento Experiência em OO Capacitação do analista líder Motivação Estabilidade dos requisitos Peso 1,5 0,5 1 0,5 1 2 Valor 3 5 5 5 4 4 Valor ajustado 4,5 2,5 5 2,5 4 8

Pontos de Caso de Uso
Fator Trabalhadores em tempo parcial Linguagem de programação Peso -1 -1 Valor 0 1 Valor ajustado 0 -1

EF = 1,4 + (-0,03 * 25,5) = 0,635

Cálculo Final
5. Cálculo do número de pontos de caso de uso: UCP = (3 + 60) * 0,83 * 0,635 = 33,20 6. Número de horas: estimativa = 33,20 * 20 = 664 horas

Referências
Alistair Cockburn – Escrevendo Casos de Uso Eficazes Brazilian Function Point User Group: http://www.bfpug.com.br Pontos de Casos de Uso – Kirsten Ribu