Tabela de Conteúdos
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:
- Ser um processo ágil
- Razoavelmente documentado
- Fácil de ser gerenciado
Papéis
- 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
- 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
- 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:
- Ferramenta de gerenciamento do projeto e atribuição das tarefas
- Sistema de controle de versões (código e artefatos)
- Para cumprir as tarefas de infra-estrutura ou de apoio:
- Basta realizar o que está sendo solicitado
- Se o texto da tarefa não estiver claro, o solicitado pode requerer maiores explicações
- Para cumprir as tarefas de implementação:
- Atualizar o seu ambiente de desenvolvimento com a versão mais atualizada do repositório do sistema de controle de versão
- Revisar o projeto, esclarecendo as dúvidas com o Gerente ou os Orientadores
- Implementar os componentes envolvidos, realizando os testes de unidade
- 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:
- Estudar a especificação da funcionalidade desejada
- Realizar o projeto da solução (UML), segundo a arquitetura proposta pelo Gerente
- Publicar os artefatos de projeto gerados
- Realizar a tarefa de «implementação»
Atividades e Artefatos
Orientador
- Visão geral do sistema
- Diagrama de casos de uso
- (opcional) Documento de visão
- Marcos de entrega
- Definir na ferramenta de gerenciamento de projeto as tarefas relativas aos marcos de entrega com datas limites
- Especificação de uma funcionalidade
- Detalhamento de um caso de uso
Gerente de Desenvolvimento
- Divisão das tarefas
- Definir as tarefas individuais na ferramenta de gerência
- Arquitetura do sistema
- Modelo de domínio
- Diagrama de pacotes
- Diagrama de componentes genéricos
- Projeto de uma funcionalidade
- Diagrama de interação (sequência)
- Diagrama de classes de projeto
Desenvolvedor
- Projeto de uma funcionalidade
- Idem ao Gerente
- 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