Plano de Desenvolvimento de Software - italopaiva/SiMCTA GitHub Wiki
Plano de Desenvolvimento de Software
SiMCTA
Versão 3.1
Histórico da Revisão
Data | Versão | Descrição | Autor |
---|---|---|---|
03/09/2015 | 1.0 | Criação do documento | Emilie Morais |
04/09/2015 | 1.0 | Adição da organização da equipe | Emilie Morais |
05/09/2015 | 1.0 | Adição do cronograma das iterações 1 e 2 e da seção de Ambiente | Emilie Morais e Ítalo Paiva |
17/10/2015 | 2.0 | Ajuste no controle de qualidade | Emilie Morais |
20/10/2015 | 2.1 | Adição do cronograma da iteração 4 e ajuste na seção Ambiente | Edson Gomes |
22/10/2015 | 3.0 | Realocação das características nas Release | Emilie Morais |
01/11/2015 | 3.1 | Adição da iteração 5 | Emilie Morais |
17/11/2015 | 3.2 | Adição da iteração 6 | Emilie Morais |
1. Introdução
Esse documento apresenta uma visão geral acerca do projeto de desenvolvimento do SiMCTA.
1.1 Finalidade
A finalidade deste documento é definir o projeto em alguns aspectos comuns em projetos de desenvolvimento, para que todos os interessados tenham conhecimento desses aspectos em uma visão unificada.
1.2 Escopo
Para este plano foram considerados os seguintes aspectos:
- Processo de desenvolvimento utilizado: Processo Unificado Ágil (AUP);
- Definições gerais de projeto;
- Visão do Sistema.
1.3 Definições, Acrônimos e Abreviações
AUP - Agile Unified Process: Processo de desenvolvimento de software baseado em princípios ágeis e voltado a construção de sistemas orientados a objetos.
Agile modeler: Papel do AUP responsável por elaborar modelos.
Para outras definições: Consultar Glossário.
1.4 Referências
1.5 Visão Geral
Os aspectos, presentes nesse documento, definidos para o projeto são:
- Visão geral do projeto;
- Organização do projeto;
- Processo de gerenciamento;
- Controle e monitoramento do projeto.
2. Visão Geral do Projeto
2.1 Finalidade, Escopo e Objetivos do Projeto
O projeto tem como objetivo desenvolver um sistema de matrículas para o Centro de Treinamento Automotivo, que se trata de uma escola de cursos técnicos na área automotiva.
2.2 Suposições e Restrições
- Restrição de prazo: tem uma data final determinada;
2.3 Produtos Liberados do Projeto
Como entregáveis do projeto estão os seguintes artefatos:
- Documento de Visão;
- Regras de Negócio;
- Especificações de caso de uso;
- Planos de Iterações;
- Modelo de Domínio;
- Documento de Arquitetura;
- Diagrama de Sequência;
- Diagrama de Classes;
- Incremento de software;
2.4 Evolução do Plano de Desenvolvimento de Software
Esse plano será revisado e refinado, quando necessário, ao final de cada iteração.
3. Organização do Projeto
3.1 Estrutura Organizacional
A equipe de trabalho do projeto é estruturada de modo a permitir que todos do grupo trabalhem igualmente. Assim foi definido que a cada iteração terá uma dupla de gerentes que ficará responsável por planejar, acompanhar e verificar a iteração. Essa estrutura pode ser vista na imagem seguinte.
3.2 Papéis e Responsabilidades
Pessoa | Papéis no AUP |
---|---|
Emilie Morais | Agile Modeler, Gerente de Configuração, Escritor técnico, Desenvolvedor e Testador |
Edson Gomes | Agile Modeler, Gerente de Configuração, Escritor técnico, Desenvolvedor e Testador |
Hugo Martins | Agile Modeler, Gerente de Configuração, Escritor técnico, Desenvolvedor e Testador |
Ítalo Paiva | Agile Modeler, Gerente de Configuração, Escritor técnico, Desenvolvedor e Testador |
Milene Serrano | Interessada |
4. Processo de Gerenciamento
Nessa seção estão descritos alguns tópicos em relação ao projeto, como estimativas do projeto, plano de fases, releases, marcos e iterações e também os recursos utilizados.
4.1 Estimativas do Projeto
Prazo|83 dias -------|---------------|---- Data inicial:|31/08 Data final:| 23/11
4.2 Plano do Projeto
O projeto está dividido em iterações e cada iteração é divida em quatro fases de acordo com o processo utilizado. As fases são: Concepção, Elaboração, Construção e Transição. Também foram determinadas Releases e alguns marcos de verificação por parte de uma das interessadas no projeto.
4.2.1 Plano de Fase
Iteração | Casos de Uso | Objetivos | Data de início | Data de Fim |
---|---|---|---|---|
1 | UC01 UC02 UC03 UC04 | Produzir os artefatos da fase de Concepção e iniciar alguns artefatos da fase de Elaboração e Produzir incremento de software | 31/08 | 13/09 |
2 | UC05 UC06 UC07 UC08 | Refinar os artefatos da fase de Concepção e produzir artefatos da fase de Elaboração, Produzir incremento de software e Integrar incremento de software | 14/09 | 27/09 |
3 | UC09 UC10 UC11 UC12 UC13 | Refinar os artefatos da fase de Concepção e Elaboração, Produzir incremento de software e Integrar incremento de software | 28/09 | 11/10 |
4 | UC14 UC15 UC16 UC17 | Refinar os artefatos da fase de Concepção e Elaboração, Produzir incremento de software e Integrar incremento de software e finalizar a Release 1 | 12/10 | 25/10 |
5 | UC18 UC19 UC20 | Refinar os artefatos da fase de Concepção e Elaboração, Produzir incremento de software, Integrar incremento de software e Preparar para implantação | 26/10 | 08/11 |
5 | UC21 UC22 UC23 UC24 | Finalizar os artefatos da fase de Concepção e Elaboração, Produzir incremento de software, Integrar incremento de software e Realizar a implantação | 09/11 | 22/11 |
4.2.2 Releases
Release | Características | Data |
---|---|---|
1 | Gerenciamento dos cursos, Gerenciamento dos pacotes, Gerenciamento dos alunos, Alocação dos professores | 26/10 |
2 | Gerenciamento das turmas | 23/11 |
4.2.4 Programação do Projeto
Marcos de verificação do projeto por parte da interessada Milene Serrano:
Descrição | Data |
---|---|
Marco 1 | 14/09 |
Marco 2 | 09/10 |
Marco 3 | 26/10 |
Entrega final | 23/11 |
4.2.5 Recursos do Projeto
Os recursos humanos do projeto consistem em uma equipe é formada por quatro integrantes:
- Emilie Morais
- Edson Gomes
- Hugo Martins
- Ítalo Paiva
Os recursos físicos serão os computadores pessoais de cada membro da equipe.
4.3 Controle e Monitoramento do Projeto
Nessa seção estão descritos os aspectos a serem monitorados e controlados no projeto.
Gerenciamento de Requisitos:
O gerenciamento de requisitos será realizado através do sistema de issues do GitHub, sua utilização está melhor explicada na gerência de configuração.
Controle de Programação:
Para padronização do desenvolvimento do sistema, o código-fonte do sistema deve seguir a folha de estilo definida.
O controle do desenvolvimento também será realizado através da gerência de configuração definida.
Controle de Qualidade:
A qualidade do código será controlada por meio de análise estática de código, com a coleta das seguintes métricas:
-
Afferent Connections per Class (Conexões aferentes) - Mede o nível de acoplamento de uma classe através do número de outras classes que a refereciam.
-
Average Cyclomatic Complexity per Method (Complexidade ciclomática média por método) - Mede a quantidade de possíveis caminhos de execução independentes do software.
-
Average Method Lines of Code (Média de linhas de código por método) - Mede a quantidade média de linhas de código dos métodos contidos na aplicação.
-
Average Number of Parameters per Method (Média de parâmetros por método) - Mede a quantidade média de parâmetros utilizados nos métodos da aplicação.
-
Number of Methods (Número de métodos) - Mede a quantidade de métodos existentes na aplicação. Usado para calcular a quantidade média de operações de classe.
-
Number of Public Attributes (Número de atributos públicos) - Mede a quantidade de de atributos públicos nas classes da aplicação.
-
Structural Complexity (Complexidade estrutural) - Mede a complexidade estrutural do software
O controle de qualidade do código também será feito através da cobertura de código, considerando um nível mínimo aceitável de 80%. Também serão realizados testes funcionais pelo cliente para validação de cada incremento.
OBS.: No final de uma iteração, caso seja detectado um nível de cobertura de código abaixo do nível mínimo definido e caso não seja possível alcançar o nível mínimo na iteração corrente, os respectivos testes poderão ser acrescentados no planejamento da iteração seguinte como débito técnico de teste, devidamente endereçados.
Gerenciamento de Riscos:
Classificação de probabilidade (Alta, Média, Baixa) | Classificação de impacto (Alto, Médio, Baixo) | Impacto e Descrição do Risco | Estratégia de Diminuição e/ou Plano de Contingência | Ação a ser tomada |
---|---|---|---|---|
Baixa | Alto | Integrante da equipe sair do projeto | Motivar a equipe | Realocar equipe nas tarefas considerando o novo número de integrantes |
Média | Alto | Falha no cumprimento dos prazos de entrega | Deixar um tempo (dias) na iteração de reserva para eventuais atrasos | |
Média | Médio | Mudança do escopo ao longo do desenvolvimento do projeto | Deixar um tempo (dias) na iteração de reserva para eventuais mudanças | Procurar revisar o escopo definido a cada iteração realizada para alocar da melhor forma possível o escopo adaptado nas próximas iterações. |
Gerenciamento de Configuração:
A Gerência de configuração do projeto pode ser vista no Plano de Gerenciamento da Configuração.
Ambiente:
- Versão do Java: 1.8.0
- IDE: Eclipse Luna 4.4
- Teste:
- JUnit 4
- Mockito 1.10.19
- Cobertura de código: Eclemma
- Banco de Dados: MySQL 5.5.44
- MySQL Connector to Java 5.1.18
- Análise estática: Mezuro