Share
Embed
Transcript
67 slides
-
Metodologia de Desenvolvimento de Software/TRE-TO: Experiências & Boas Práticas Michael
Schuenck dos Santos @michaelss Palmas-TO, 11 de junho de 2012 segunda-feira, 11 de junho de 12 -
Quem sou eu? MSc. em Sistemas e Computação Engenharia de
Software Analista de Sistemas no TRE-TO Ex-professor @michaelss zeropontoum.wordpress.com segunda-feira, 11 de junho de 12 -
Roteiro Lições aprendidas na aplicação da MDS Especificação de novos
sistemas Procedimentos de apoio Acompanhamento da implementação segunda-feira, 11 de junho de 12 -
Elementos no DS Pessoas Tecnologias Comunicação Procedimentos LP’s IDE’s BD’s
SO’s... Desenvolvimento de Sistemas segunda-feira, 11 de junho de 12 -
Elementos no DS Pessoas Tecnologias Comunicação Procedimentos LP’s IDE’s BD’s
SO’s... Desenvolvimento de Sistemas Equipe Cliente Direção segunda-feira, 11 de junho de 12 -
Elementos no DS Pessoas Tecnologias Comunicação Procedimentos LP’s IDE’s BD’s
SO’s... Desenvolvimento de Sistemas Equipe Cliente Direção Cultura Mudanças Individualidade segunda-feira, 11 de junho de 12 -
Elementos no DS Pessoas Tecnologias Comunicação Procedimentos LP’s IDE’s BD’s
SO’s... Desenvolvimento de Sistemas Equipe Cliente Direção Estabelecidos Conhecidos Aperfeiçoados Cobrados Cultura Mudanças Individualidade segunda-feira, 11 de junho de 12 -
Elementos no DS Pessoas Tecnologias Comunicação Procedimentos LP’s IDE’s BD’s
SO’s... Desenvolvimento de Sistemas Equipe Cliente Direção Estabelecidos Conhecidos Aperfeiçoados Cobrados Verbal e Documentada Cultura Mudanças Individualidade segunda-feira, 11 de junho de 12 -
Metodologias Ágeis Baseadas em UP X Codificação Especificação Menor risco
de retrabalho Valor para o cliente segunda-feira, 11 de junho de 12 -
Metodologias Ágeis Baseadas em UP X Codificação Especificação Menor risco
de retrabalho Valor para o cliente Uso do Scrum: projetos com mais de 2 pessoas segunda-feira, 11 de junho de 12 -
Requisitos Sequência Básica Diagrama de Casos de Uso Casos de
Uso Wireframes Diagrama de Entidades Prova de Conceito segunda-feira, 11 de junho de 12 -
Requisitos Funcionais ID Nome Dono Prioridade 1 Visualizar pedidos Depto.
X Alta 2 Emitir relatórios Depto. Y Média 3 Cadastrar pedidos Depto. Z Baixa segunda-feira, 11 de junho de 12 -
Requisitos Não Funcionais ID Nome Requisito 1 Só é possível
cadastrar pedidos para a filial do usuário 3 A maioria se torna Regra de Negócio segunda-feira, 11 de junho de 12 -
Diagrama de Casos de Uso Numeração Nomes informativos Reuso Permissões
Extends: regras de negócio Gerenciar: CRUD segunda-feira, 11 de junho de 12 -
Wireframes (protótipos de telas) A numeração dos Casos de Uso
é útil Ferramentas: Axure (paga, Windows) Pencil (gratuita, extensão para o Firefox) Cacoo e Mockingbird (gratuitas, on-line) Abstração Validação do Cliente Erros nos UC segunda-feira, 11 de junho de 12 -
Wireframes (protótipos de telas) A numeração dos Casos de Uso
é útil Ferramentas: Axure (paga, Windows) Pencil (gratuita, extensão para o Firefox) Cacoo e Mockingbird (gratuitas, on-line) Abstração Validação do Cliente Erros nos UC segunda-feira, 11 de junho de 12 -
4. Fluxo Principal 1. O ator acessa o menu Mesários
e Auxiliares/Equipes. 2. O sistema exibe a tela de listagem de equipes {301- Gerenciar equipes/Listar}. 3. O ator escolhe a opção cadastrar nova equipe. {O usuário escolhe opção editar equipe} 4. O sistema exibe o formulário de cadastro de equipe: {301- Gerenciar equipes/Cadastrar}. 5. O ator preenche os dados da equipe [RN01] e [RN02] e aciona a opção para gravar. 6. O sistema efetua o cadastro da equipe e exibe a mensagem MSGI03 do documento de mensagens geral do sistema. {Campo obrigatório não informado} 7. Retorna para a tela de listagem de equipes {301-Gerenciar equipes/Listar}. Casos de Uso segunda-feira, 11 de junho de 12 -
4. Fluxo Principal 1. O ator acessa o menu Mesários
e Auxiliares/Equipes. 2. O sistema exibe a tela de listagem de equipes {301- Gerenciar equipes/Listar}. 3. O ator escolhe a opção cadastrar nova equipe. {O usuário escolhe opção editar equipe} 4. O sistema exibe o formulário de cadastro de equipe: {301- Gerenciar equipes/Cadastrar}. 5. O ator preenche os dados da equipe [RN01] e [RN02] e aciona a opção para gravar. 6. O sistema efetua o cadastro da equipe e exibe a mensagem MSGI03 do documento de mensagens geral do sistema. {Campo obrigatório não informado} 7. Retorna para a tela de listagem de equipes {301-Gerenciar equipes/Listar}. “Diálogo” entre ator e sistema. Casos de Uso segunda-feira, 11 de junho de 12 -
4. Fluxo Principal 1. O ator acessa o menu Mesários
e Auxiliares/Equipes. 2. O sistema exibe a tela de listagem de equipes {301- Gerenciar equipes/Listar}. 3. O ator escolhe a opção cadastrar nova equipe. {O usuário escolhe opção editar equipe} 4. O sistema exibe o formulário de cadastro de equipe: {301- Gerenciar equipes/Cadastrar}. 5. O ator preenche os dados da equipe [RN01] e [RN02] e aciona a opção para gravar. 6. O sistema efetua o cadastro da equipe e exibe a mensagem MSGI03 do documento de mensagens geral do sistema. {Campo obrigatório não informado} 7. Retorna para a tela de listagem de equipes {301-Gerenciar equipes/Listar}. Como chegar ao UC Casos de Uso segunda-feira, 11 de junho de 12 -
4. Fluxo Principal 1. O ator acessa o menu Mesários
e Auxiliares/Equipes. 2. O sistema exibe a tela de listagem de equipes {301- Gerenciar equipes/Listar}. 3. O ator escolhe a opção cadastrar nova equipe. {O usuário escolhe opção editar equipe} 4. O sistema exibe o formulário de cadastro de equipe: {301- Gerenciar equipes/Cadastrar}. 5. O ator preenche os dados da equipe [RN01] e [RN02] e aciona a opção para gravar. 6. O sistema efetua o cadastro da equipe e exibe a mensagem MSGI03 do documento de mensagens geral do sistema. {Campo obrigatório não informado} 7. Retorna para a tela de listagem de equipes {301-Gerenciar equipes/Listar}. Indicação da tela Casos de Uso segunda-feira, 11 de junho de 12 -
4. Fluxo Principal 1. O ator acessa o menu Mesários
e Auxiliares/Equipes. 2. O sistema exibe a tela de listagem de equipes {301- Gerenciar equipes/Listar}. 3. O ator escolhe a opção cadastrar nova equipe. {O usuário escolhe opção editar equipe} 4. O sistema exibe o formulário de cadastro de equipe: {301- Gerenciar equipes/Cadastrar}. 5. O ator preenche os dados da equipe [RN01] e [RN02] e aciona a opção para gravar. 6. O sistema efetua o cadastro da equipe e exibe a mensagem MSGI03 do documento de mensagens geral do sistema. {Campo obrigatório não informado} 7. Retorna para a tela de listagem de equipes {301-Gerenciar equipes/Listar}. Fluxo Alternativo Casos de Uso segunda-feira, 11 de junho de 12 -
4. Fluxo Principal 1. O ator acessa o menu Mesários
e Auxiliares/Equipes. 2. O sistema exibe a tela de listagem de equipes {301- Gerenciar equipes/Listar}. 3. O ator escolhe a opção cadastrar nova equipe. {O usuário escolhe opção editar equipe} 4. O sistema exibe o formulário de cadastro de equipe: {301- Gerenciar equipes/Cadastrar}. 5. O ator preenche os dados da equipe [RN01] e [RN02] e aciona a opção para gravar. 6. O sistema efetua o cadastro da equipe e exibe a mensagem MSGI03 do documento de mensagens geral do sistema. {Campo obrigatório não informado} 7. Retorna para a tela de listagem de equipes {301-Gerenciar equipes/Listar}. Indicação de Regra de Negócio Casos de Uso segunda-feira, 11 de junho de 12 -
4. Fluxo Principal 1. O ator acessa o menu Mesários
e Auxiliares/Equipes. 2. O sistema exibe a tela de listagem de equipes {301- Gerenciar equipes/Listar}. 3. O ator escolhe a opção cadastrar nova equipe. {O usuário escolhe opção editar equipe} 4. O sistema exibe o formulário de cadastro de equipe: {301- Gerenciar equipes/Cadastrar}. 5. O ator preenche os dados da equipe [RN01] e [RN02] e aciona a opção para gravar. 6. O sistema efetua o cadastro da equipe e exibe a mensagem MSGI03 do documento de mensagens geral do sistema. {Campo obrigatório não informado} 7. Retorna para a tela de listagem de equipes {301-Gerenciar equipes/Listar}. Fluxo de Exceção Casos de Uso segunda-feira, 11 de junho de 12 -
4. Fluxo Principal 1. O ator acessa o menu Mesários
e Auxiliares/Equipes. 2. O sistema exibe a tela de listagem de equipes {301- Gerenciar equipes/Listar}. 3. O ator escolhe a opção cadastrar nova equipe. {O usuário escolhe opção editar equipe} 4. O sistema exibe o formulário de cadastro de equipe: {301- Gerenciar equipes/Cadastrar}. 5. O ator preenche os dados da equipe [RN01] e [RN02] e aciona a opção para gravar. 6. O sistema efetua o cadastro da equipe e exibe a mensagem MSGI03 do documento de mensagens geral do sistema. {Campo obrigatório não informado} 7. Retorna para a tela de listagem de equipes {301-Gerenciar equipes/Listar}. Mensagem ao usuário Casos de Uso segunda-feira, 11 de junho de 12 -
4. Fluxo Principal 1. O ator acessa o menu Mesários
e Auxiliares/Equipes. 2. O sistema exibe a tela de listagem de equipes {301- Gerenciar equipes/Listar}. 3. O ator escolhe a opção cadastrar nova equipe. {O usuário escolhe opção editar equipe} 4. O sistema exibe o formulário de cadastro de equipe: {301- Gerenciar equipes/Cadastrar}. 5. O ator preenche os dados da equipe [RN01] e [RN02] e aciona a opção para gravar. 6. O sistema efetua o cadastro da equipe e exibe a mensagem MSGI03 do documento de mensagens geral do sistema. {Campo obrigatório não informado} 7. Retorna para a tela de listagem de equipes {301-Gerenciar equipes/Listar}. Casos de Uso segunda-feira, 11 de junho de 12 -
Outros Artefatos Prova de conceito Glossário Especificação suplementar Pendências LP,
frameworks, servidores, layout, outros sistemas, documentação segunda-feira, 11 de junho de 12 -
Dificuldades Necessidade de abstração Estamos acostumados a começar programando Programar
é divertido Consistência entre os artefatos e suas versões Comunicação Liberação tardia segunda-feira, 11 de junho de 12 -
Bugzilla Estados dos bugs Git Práticas baseadas no ITIL Ferramentas
segunda-feira, 11 de junho de 12 -
Registro das Funcionalidades/Bugs Uso do Bugzilla Funcionalidades/bugs não atendidos, atendidos,
resolvidos, homologados, em produção Usado apenas na codificação Objetivos: maior controle sobre as tarefas, rastreamento, lista de afazeres segunda-feira, 11 de junho de 12 -
Homologação Funcionalidade/bug concluído Feita por outra pessoa, diferente do desenvolvedor
Atualmente: ad hoc Objetivo: evitar sistemas em produção com erros ou que não atendam a funcionalidade/bug segunda-feira, 11 de junho de 12 -
Implantação Quartas-feiras, às 19:30 Uma só pessoa Uma implantação: uma
versão Funcionalidades/bugs atendidos Tag no Git Aplicações Java e Grails Objetivo: evitar que o ambiente de produção fique instável segunda-feira, 11 de junho de 12 -
Fluxo dos bugs NEW ASSIGNED Bug identificado Funcionalidade definida Atendimento
autorizado pelo gerente. Nova versão definida segunda-feira, 11 de junho de 12 -
Fluxo dos bugs NEW ASSIGNED RESOLVED Bug identificado Funcionalidade definida
Atendimento autorizado pelo gerente. Nova versão definida Tarefa concluída pelo desenvolvedor. Pronto para homologação segunda-feira, 11 de junho de 12 -
Geralmente o desenvolvedor completará outros bugs para então solicitar a
homologação. Fluxo dos bugs NEW ASSIGNED RESOLVED Bug identificado Funcionalidade definida Atendimento autorizado pelo gerente. Nova versão definida Tarefa concluída pelo desenvolvedor. Pronto para homologação segunda-feira, 11 de junho de 12 -
Fluxo dos bugs NEW ASSIGNED RESOLVED REOPENED Bug identificado Funcionalidade
definida Atendimento autorizado pelo gerente. Nova versão definida Tarefa concluída pelo desenvolvedor. Pronto para homologação Solução não passou na homologação segunda-feira, 11 de junho de 12 -
Fluxo dos bugs NEW ASSIGNED RESOLVED REOPENED Bug identificado Funcionalidade
definida Atendimento autorizado pelo gerente. Nova versão definida Tarefa concluída pelo desenvolvedor. Pronto para homologação Solução não passou na homologação segunda-feira, 11 de junho de 12 -
Fluxo dos bugs NEW ASSIGNED RESOLVED VERIFIED REOPENED Bug identificado
Funcionalidade definida Atendimento autorizado pelo gerente. Nova versão definida Tarefa concluída pelo desenvolvedor. Pronto para homologação Solução não passou na homologação Solução passou na homologação. Pronto para implantação segunda-feira, 11 de junho de 12 -
Fluxo dos bugs NEW ASSIGNED RESOLVED VERIFIED REOPENED CLOSED Bug
identificado Funcionalidade definida Atendimento autorizado pelo gerente. Nova versão definida Tarefa concluída pelo desenvolvedor. Pronto para homologação Solução não passou na homologação Solução passou na homologação. Pronto para implantação Nova versão implantada segunda-feira, 11 de junho de 12 -
Papéis NEW ASSIGNED RESOLVED VERIFIED REOPENED CLOSED Consulta com bugs
ASSIGNED: quem tá fazendo o que? segunda-feira, 11 de junho de 12 -
Papéis NEW ASSIGNED RESOLVED VERIFIED REOPENED CLOSED Consulta com bugs
ASSIGNED: quem tá fazendo o que? Consulta com bugs REOPENED: quem está “errando” mais? segunda-feira, 11 de junho de 12 -
Papéis NEW ASSIGNED RESOLVED VERIFIED REOPENED CLOSED Consulta com bugs
ASSIGNED: quem tá fazendo o que? Consulta com bugs REOPENED: quem está “errando” mais? Depois que todos os bugs foram verificados, o desenvolvedor gera o pacote e pede a implantação segunda-feira, 11 de junho de 12 -
Mensagem Final É comum deixar de usar metodologias ou procedimentos
devido à dificuldade de uso por parte da equipe como um todo. Contra isto, deve-se encontrar formas de melhorá-los paulatinamente, envolvendo a equipe e obtendo feedback. segunda-feira, 11 de junho de 12 -
Metodologia de Desenvolvimento de Software/TRE-TO: Experiências & Boas Práticas Michael
Schuenck dos Santos @michaelss zeropontoum.wordpress.com Palmas-TO, 11 de junho de 2012 segunda-feira, 11 de junho de 12