Processo de desenvolvimento de software

a ser utilizado nas equipes de desenvolvimento

  • Baseado nos conceitos do UP (Unified Process) e em algumas práticas XP (eXtreme Programming)
  • Objetivos:
  1. Ser um processo ágil
  2. Razoavelmente documentado
  3. Fácil de ser gerenciado

Papéis

  1. Orientador
  • Papel desempenhado por um professor pesquisador
  • Fazer a interface da equipe com o “cliente” (gestor da SETEC/MEC ou gestor de instituição de EPT)
  • Oferecer uma visão do sistema e especificar os sistemas e módulos a serem desenvolvidos
  • Definir os marcos de entrega (releases)
  • Validar as entregas parciais e versões geradas pela equipe de desenvolvimento, propondo a realização de ajustes e correções de rumo quando necessário
  1. Gerente de Desenvolvimento
  • Papel desempenhado por um professor pesquisador ou um aluno com experiência em desenvolvimento
  • Quebrar a especificação em tarefas individuais necessárias a implementação da especificação
  • Responsável pela definição da arquitetura a ser utilizada e verificação da sua aplicação
  • Quanto ao projeto da solução (UML), pode ser feito pelo gerente ou delegado a um desenvolvedor
  • Garantir a publicação dos projetos
  1. Desenvolvedor
  • Em alguns casos, irá ser responsável pelo projeto (UML) de uma funcionalidade do sistema que foi encarregado de implementar, segundo a arquitetura definida pelo Gerente
  • De posse do projeto, implementar e testar, e em caso de mudança no projeto, atualizar os artefatos finalizada a implementação, deverá integrar o que desenvolveu ao sistema como um todo
  • Utilizar adequadamente a ferramenta de controle de versão

Desenvolvimento

  • O desenvolvimento do projeto é baseado em um planejamento macro realizado pelos Orientadores
  • O desenvolvimento é orientado a tarefas, visando atingir os marcos estabelecidos
  • As tarefas podem ser atribuídas pelos Orientadores ou pelos Gerentes
  • As tarefas pode ser: de infra-estrutura ou de apoio; de implementação; e de projeto e implementação
  • Para auxiliar o desenvolvimento serão utilizadas ferramentas de apoio, dentre elas:
  1. Ferramenta de gerenciamento do projeto e atribuição das tarefas
  2. Sistema de controle de versões (código e artefatos)
  • Para cumprir as tarefas de infra-estrutura ou de apoio:
  1. Basta realizar o que está sendo solicitado
  2. Se o texto da tarefa não estiver claro, o solicitado pode requerer maiores explicações
  • Para cumprir as tarefas de implementação:
  1. Atualizar o seu ambiente de desenvolvimento com a versão mais atualizada do repositório do sistema de controle de versão
  2. Revisar o projeto, esclarecendo as dúvidas com o Gerente ou os Orientadores
  3. Implementar os componentes envolvidos, realizando os testes de unidade
  4. Concluindo com sucesso, deverá integrar o que desenvolveu ao repositório e atualizar os artefatos de projeto
  • Para cumprir as tarefas de projeto e implementação:
  1. Estudar a especificação da funcionalidade desejada
  2. Realizar o projeto da solução (UML), segundo a arquitetura proposta pelo Gerente
  3. Publicar os artefatos de projeto gerados
  4. Realizar a tarefa de «implementação»

Atividades e Artefatos

Orientador
  1. Visão geral do sistema
    • Diagrama de casos de uso
    • (opcional) Documento de visão
  2. Marcos de entrega
    • Definir na ferramenta de gerenciamento de projeto as tarefas relativas aos marcos de entrega com datas limites
  3. Especificação de uma funcionalidade
    • Detalhamento de um caso de uso
Gerente de Desenvolvimento
  1. Divisão das tarefas
    • Definir as tarefas individuais na ferramenta de gerência
  2. Arquitetura do sistema
    • Modelo de domínio
    • Diagrama de pacotes
    • Diagrama de componentes genéricos
  3. Projeto de uma funcionalidade
    • Diagrama de interação (sequência)
    • Diagrama de classes de projeto
Desenvolvedor
  1. Projeto de uma funcionalidade
    • Idem ao Gerente
  2. Implementação
    • Definição dos contratos para cada método
    • Classes, atributos e métodos envolvidos
    • Classes de teste (teste unitário) para cada classe desenvolvida ou alterada

Práticas XP Estimuladas

Test-Driven Development

Simple Design

Refactoring

Continuous Integration

Coding Standard

Collective Ownership

Small Releases

tutoriais/devguide/processo.txt · Modificada em: 2009/04/14 21:04 (external edit)
Recent changes RSS feed Creative Commons License Donate Driven by DokuWiki