-
Notifications
You must be signed in to change notification settings - Fork 1
Plano de Desenvolvimento de Software
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 |
Esse documento apresenta uma visão geral acerca do projeto de desenvolvimento do SiMCTA.
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.
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.
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.
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.
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.
- Restrição de prazo: tem uma data final determinada;
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;
Esse plano será revisado e refinado, quando necessário, ao final de cada iteração.
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.
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 |
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.
Prazo|83 dias -------|---------------|---- Data inicial:|31/08 Data final:| 23/11
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.
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 |
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 |
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 |
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.
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