Documentação de Sistema
EasyPSP
Autores:
André Luiz de Castro Leal
Marcelo Santos Daibert
Viçosa
Minas Gerais – Brasil
Abril / 2007
EasyPSP – Documentação de Sistema 0
Folha de Aprovação
EasyPSP – Documentação de Sistema 1
Revisões Anteriores
EasyPSP – Documentação de Sistema 2
Sumário
1 INTRODUÇÃO ......................................................................................................... 5
1.1 Propósito do Documento .......................................................................................... 5
1.2 Escopo ...................................................................................................................... 5
1.3 Definições e Siglas ................................................................................................... 5
1.4 Contratantes ............................................................................................................. 5
7 PLANEJAMENTO .................................................................................................. 19
7.1 Equipe de Desenvolvimento ................................................................................... 19
7.2 Ciclos de Desenvolvimento .................................................................................... 19
7.3 Cronograma ............................................................................................................ 20
7.4 Gráfico de Gantt ..................................................................................................... 21
7.5 EAP – Estrutura Analítica do Projeto (WBS – Work Breakdown Structure) ........... 22
7.6 Seqüências de Atividades – Diagrama de Precedências ....................................... 23
EasyPSP – Documentação de Sistema 3
8 ESPECIFICAÇÃO DE CASOS DE USO ................................................................ 24
8.1 UC1 – Caso de Uso: Gerir Projetos .................................................................... 24
8.2 UC2 – Caso de Uso: Definir Nível PSP ............................................................... 28
8.3 UC3 – Caso de Uso: Definir Fase do Projeto ...................................................... 30
8.4 UC4 – Caso de Uso: Mudar Status da Fase ....................................................... 32
8.5 UC5 – Caso de Uso: Gerir Planejamento ........................................................... 33
8.6 UC6 – Caso de Uso: Gerir Tempo ...................................................................... 36
8.7 UC7 – Caso de Uso: Contabilizar Automaticamente .......................................... 39
8.8 UC8 – Caso de Uso: Contabilizar Manualmente ................................................. 40
8.9 UC9 – Caso de Uso: Totalizar Tempo ................................................................ 42
8.10 UC10 – Caso de Uso: Gerir Defeitos .................................................................. 44
8.11 UC11 – Caso de Uso: Contabilizar LOC ............................................................. 48
8.12 UC12 – Caso de Uso: Gerar Estatísticas ............................................................ 50
8.13 UC13 – Caso de Uso: Gerar Gráficos ................................................................. 51
13 BIBLIOGRAFIA ...................................................................................................... 78
EasyPSP – Documentação de Sistema 4
1. Introdução
1.2. Escopo
1.4. Contratantes
EasyPSP – Documentação de Sistema 6
2. Descrição Geral
2.1. Visão Geral do Produto
Por definição do SEI, o PSP em seu níves 0 e 0.1 tem por metas medir o
desempenho atual do engenheiro de software a fim de se auxiliar no gerenciamento de
projetos. Portanto, o EasyPSP fará os controles do processo atual de
desenvolvimento, medições básicas de padrões de codificação, propostas de
melhoria, estimativas de tempo e comparações por meio de gráficos de tempos
planejados e realizados.
• Gestão de Projetos;
• Gestão de Tempo;
• Gestão de Erros;
• Gestão Linhas de Código;
• Impressão de gráficos;
EasyPSP – Documentação de Sistema 7
2.6. Usuários do Sistema
EasyPSP – Documentação de Sistema 8
3. Requisitos Específicos
3.1. Requisitos Funcionais
EasyPSP – Documentação de Sistema 9
Requisito Funcional 5: O sistema deve permitir ao desenvolvedor a iniciar
um relógio automático de contagem de tempo para cada fase do projeto, permitindo ao
final cadastrar o que foi realizado no tempo contabilizado.
Requisitos de Dados: Hora de início, hora final e descrição.
EasyPSP – Documentação de Sistema 10
Requisito Funcional 9: O sistema deve permitir ao desenvolvedor
visualizar, editar e excluir os defeitos (bugs) cadastrados durantes as fases de cada
projeto em separado.
Requisitos de Dados: Tipo de defeitos (documentação, sintaxe,
compilação, lógica, interface, versionamento, checagem, condicionais, funções,
sistema, linguagem e ambiente), defeito de referência cruzada (não obrigatório),
defeito inserido em qual fase do projeto, defeito removido em qual fase do projeto,
tempo para conserto e descrição.
EasyPSP – Documentação de Sistema 11
Requisito Funcional 13: O sistema deve fornecer ao desenvolvedor uma
interface para visualização de estatísticas dos defeitos cadastrados. Número e
porcentagem de defeitos inseridos e retirados em cada fase do projeto. Porcentagem
do tipo de defeito.
EasyPSP – Documentação de Sistema 12
Requisito Não Funcional 2: O sistema deve possibilitar que todos os
relatórios e/ou gráficos sejam pré-visualizados antes do envio para a impressora.
EasyPSP – Documentação de Sistema 13
4. Matriz de Rastreabilidade
4.1. Requisitos Funcionais x Requisitos Funcionais
RF1 RF2 RF3 RF4 RF5 RF6 RF7 RF8 RF9 RF10 RF11 RF12 RF13 RF14 RF15
RF1
RF2 x
RF3 x
RF4 x
RF5 x
RF6 x
RF7 x x x
RF8 x
RF9 x
RF10 x
RF11 X
RF12 x
RF13 x x
RF14 x x x x x x x x x x x
RF15 x x x x x x x x x x x
RF1 RF2 RF3 RF4 RF5 RF6 RF7 RF8 RF9 RF10 RF11 RF12 RF13 RF14 RF15
RNF1 x x x x x x x x x x x x x x x
RNF2 x x x x
RNF3 x x x x x x x x x x x x x x x
RNF4 x x x x x x x x x x x x x x x
RNF5 x x x x x x x x x x x x x x x
EasyPSP – Documentação de Sistema 14
5. Diagrama de Casos de Uso
EasyPSP – Documentação de Sistema 15
Ator: Desenvolvedor
Descrição: O caso de uso é iniciado quando o desenvolvedor solicita ao sistema a
modificação do status da fase (concluído ou em andamento) do projeto. O objetivo
deste caso de uso é possibilitar ao desenvolvedor finalizar ou reabrir uma
determinada fase do projeto.
EasyPSP – Documentação de Sistema 16
UC12: Gerar Estatísticas
Ator: Desenvolvedor
Descrição: O caso de uso é iniciado quando o desenvolvedor solicita ao sistema a
geração de estatísticas do projeto ou de todos os projetos cadastrados. O objetivo
deste caso de uso fornecer ao desenvolvedor uma interface gerar, analisar e
comparar as estatísticas dos projeto cadastrados. Número e porcentagem de defeitos
inseridos e retirados em cada fase do projeto. Porcentagem do tipo de defeito.
Comparativo entre planejamento e realidade cadastrada no sistema, incidência de
defeitos, tipos de defeitos, local de incidência de defeitos, tempo de desenvolvimento
médio por fase, linhas de código por hora na fase de codificação.
EasyPSP – Documentação de Sistema 17
6. Matriz de Dependência
6.1. Casos de Uso x Requisitos Funcionais
RF1 RF2 RF3 RF4 RF5 RF6 RF7 RF8 RF9 RF10 RF11 RF12 RF13 RF14 RF15
UC1 x
UC2 x
UC3 X
UC4 x
UC5 x x x x
UC6 x x x
UC7 x
UC8 x
UC9 x
UC10 x x
UC11 x
UC12 x x x
UC13 x
UC1 UC2 UC3 UC4 UC5 UC6 UC7 UC8 UC9 UC10 UC11 UC12 UC13
RNF1 x x x x x x x x x x x x x
RNF2 x x
RNF3 x x x x x x x x x x x x x
RNF4 x x x x x x x x x x x x x
RNF5 x x x x x x x x x x x x x
EasyPSP – Documentação de Sistema 18
7. Planejamento
7.1. Equipe de Desenvolvimento
Ciclo 1
UC1: Gerir Projetos 16h
UC2: Definir Nível PSP 16h
Casos de Uso
UC3: Definir Fase do Projeto 16h
UC4: Mudas Status de Fase 16h
Esforço Estimado Total 64h
Ciclo 2
UC5: Gerir Planejamento 24h
UC6: Gerir Tempo 24h
Casos de Uso UC7: Contabilizar Automaticamente 16h
UC8: Contabilizar Manualmente 16h
UC9: Totalizar Tempo 12h
Esforço Estimado Total 92h
Ciclo 3
UC10: Gerir Defeitos 24
UC11: Contabilizar LOC 64
Casos de Uso
UC12: Gerar Estatísticas 48
UC13: Gerar Gráficos 48
Esforço Estimado Total 184
EasyPSP – Documentação de Sistema 19
7.3. Cronograma
EasyPSP – Documentação de Sistema 20
7.4. Gráfico de Gantt
EasyPSP – Documentação de Sistema 21
7.5. EAP – Estrutura Analítica do Projeto (WBS - Work Breakdown Structure)
EasyPSP – Documentação de Sistema 22
7.6. Seqüências de Atividades – Diagrama de Precedências
EasyPSP – Documentação de Sistema 23
8. Especificação de Casos de Uso
8.1. UC1 – Caso de Uso: Gerir Projetos
Gerir Projetos
Desenvolvedor
Ator Principal:
Desenvolvedor
Sumário:
O caso de uso é utilizado para descrever a primeira ação do desenvolvedor do sistema
para assim incluir os dados do projeto no qual irá trabalhar. O objetivo deste caso de
uso é possibilitar que ocorra a definição do nível de PSP utilizado para o projeto
cadastrado.
Pré-Condições:
Não Aplicável.
Fluxo Principal:
1. O sistema exibe a tela de projetos.
2. O sistema executa o subfluxo Pesquisa Projeto.
Fluxos Alternativos:
Não Aplicável.
EasyPSP – Documentação de Sistema 24
Fluxos de Exceção:
1. A descrição do projeto, nome do desenvolver e/ou status não foram
preenchidos. Sistema exibe uma mensagem e retorna ao formulário Novo Projeto;
2. Alteração de registro alterado. Sistema exibe uma mensagem informando que
a operação não pode ser realizada indicando o motivo do cancelamento da operação;
3. Alteração de registro excluído. Sistema exibe uma mensagem informando que
a operação não pode ser realizada indicando o motivo do cancelamento da operação;
4. Exclusão de registro alterado. Sistema exibe uma mensagem informando que a
operação não pode ser realizada indicando o motivo do cancelamento da operação.
Requisitos de interface:
1. Os projetos devem ser exibidos por meio de uma lista de projetos em ordem
alfabética crescente. O desenvolvedor poderá alterar a ordem de classificação dos
projetos na lista;
2. O desenvolvedor poderá pesquisar por descrição de projetos e por status;
3. O status do projeto deve ser exibido em uma caixa de combinação;
4. O nome do desenvolvedor e a descrição do projeto devem estar dispostos em
controles de texto.
Pós-condições:
Possibilitar definir nível de PSP do projeto
Regras de Negócio:
RN1: Os campos obrigatórios são: descrição do projeto, nome do desenvolvedor e
status do projeto;
RN2: Os status do projeto devem estar previamente cadastrados e com o seguinte
conteúdo listados na seguinte ordem: concluído e em andamento.
Diagrama de Seqüência:
EasyPSP – Documentação de Sistema 25
EasyPSP – Documentação de Sistema 26
EasyPSP – Documentação de Sistema 27
8.2. UC2 – Caso de Uso: Definir Nível PSP
<<include>>
Ator Principal:
Desenvolvedor
Sumário:
O caso de uso é utilizado para definir o nível de PSP ao qual o projeto se encontra. O
objetivo deste caso de uso é possibilitar a utilização completa do sistema,
compreendendo a definição de fase do projeto, mudança de status de fase,
gerenciamento de planejamento, tempo, defeitos, contabilização de linhas de código,
geração de estatísticas e gráficos.
Pré-Condições:
Projeto Cadastrado.
Fluxo Principal:
1. O sistema exibe a tela de consulta de projetos definida no subfluxo Consulta de
Projetos do Caso de Uso Gerir Projetos;
EasyPSP – Documentação de Sistema 28
2. O sistema apresenta a opção de definir nível de PSP para o projeto;
3. O sistema efetua a leitura do registro a partir do projeto escolhido;
4. O sistema apresenta uma interface exibindo a descrição do projeto e as opções
de escolha para definir o nível do PSP: PSP0 ou PSP0.1.
5. O desenvolvedor escolhe o nível de PSP;
6. O sistema solicita a confirmação dos dados;
7. O desenvolvedor confirma os dados.
8. O sistema registra as a escolha e defini o nível PSP para o projeto;
9. O sistema fecha a interface.
Fluxos Alternativos:
Não Aplicável.
Fluxos de Exceção:
1. O nível de PSP não foi escolhido. Sistema exibe uma mensagem e retorna ao
formulário de escolha de nível de PSP;
2. O desenvolvedor pode cancelar a operação a qualquer momento antes de
confirmar os dados;
3. Alteração de registro alterado. Sistema exibe uma mensagem informando que
a operação não pode ser realizada indicando o motivo do cancelamento da operação;
Requisitos de interface:
1. O nível de PSP deve ser exibido em uma caixa de combinação;
2. A descrição do projeto deve estar disposto em texto simples.
Pós-condições:
Possibilitar a definição de fase do projeto.
Possibilitar a mudança de status de fase do projeto;
Possibilitar o gerenciamento de planejamento;
Possibilitar o gerenciamento de defeitos;
Possibilitar a contabilização de linhas de código fonte;
Possibilitar a geração de estatísticas e gráficos.
Regras de Negócio:
Não Aplicável.
Diagrama de Seqüência:
EasyPSP – Documentação de Sistema 29
8.3. UC3 – Caso de Uso: Definir Fase do Projeto
Ator Principal:
Desenvolvedor
Sumário:
O caso de uso é utilizado para definir a fase (Planejamento, Projeto, Codificação,
Compilação, Teste, Postmortem) que determinado projeto se encontra. O objetivo
deste caso de uso é possibilitar ao desenvolvedor identificar qual fase do nível de PSP
o projeto esta sendo desenvolvido, proporcionando o gerenciamento de erros e tempo.
Pré-Condições:
Nível de PSP definido.
EasyPSP – Documentação de Sistema 30
Fluxo Principal:
1. O sistema exibe a tela principal;
2. O sistema recupera o nível PSP do projeto e exibe as fases de acordo com o
nível.
3. O sistema apresenta a opção de definir a fase que o projeto se encontra
(Planejamento, Projeto, Codificação, Compilação, Teste, Postmortem);
4. O desenvolvedor define a fase do projeto, em concordância com a RN1;
5. O sistema registra a fase do projeto;
Fluxos Alternativos:
Não Aplicável.
Fluxos de Exceção:
1. Alteração de registro alterado. Sistema exibe uma mensagem informando que
a operação não pode ser realizada indicando o motivo do cancelamento da operação;
Requisitos de interface:
1. A fase do projeto deve ser exibido em uma caixa de combinação;
Pós-condições:
Possibilitar a mudança de status de fase do projeto;
Possibilitar o gerenciamento de tempo;
Regras de Negócio:
RN1: O desenvolvedor poderá voltar a qualquer fase a qualquer momento, mesmo que
a fase já esteja finalizada.
Diagrama de Seqüência:
EasyPSP – Documentação de Sistema 31
8.4. UC4 – Caso de Uso: Mudar Status da Fase
Ator Principal:
Desenvolvedor
Sumário:
O caso de uso é iniciado quando o desenvolvedor solicita ao sistema a modificação do
status da fase (concluído ou em andamento) do projeto. O objetivo deste caso de uso
é possibilitar ao desenvolvedor finalizar ou reabrir uma determinada fase do projeto.
Pré-Condições:
EasyPSP – Documentação de Sistema 32
Fase do Projeto Definida.
Fluxo Principal:
1. O sistema exibe a tela principal;
2. O sistema apresenta a opção de mudar o status (concluída ou em andamento)
da fase do projeto em uso;
3. O desenvolvedor modifica o status da fase do projeto em uso, em concordância
com a RN1;
4. O sistema registra o status da fase do projeto;
Fluxos Alternativos:
Não Aplicável.
Fluxos de Exceção:
1. Alteração de registro alterado. Sistema exibe uma mensagem informando que
a operação não pode ser realizada indicando o motivo do cancelamento da operação;
Requisitos de interface:
1. O status da fase do projeto deve ser exibida em uma caixa de seleção: Quando
ativado significa concluído, quando não ativado significa em andamento;
Pós-condições:
Não Aplicável.
Regras de Negócio:
RN1: O desenvolvedor poderá reabrir uma fase já finalizada.
Diagrama de Seqüência:
EasyPSP – Documentação de Sistema 33
Gerir Planejamento
Desenvolvedor
Ator Principal:
Desenvolvedor
Sumário:
O caso de uso é iniciado quando o desenvolvedor solicita ao sistema a gestão de
planejamento pessoal ao sistema. O objetivo deste caso de uso é possibilitar ao
desenvolvedor cadastrar o planejamento de tempo a ser gasto em cada fase do
projeto e o número final de linhas de código fonte.
Pré-Condições:
Nível de PSP Definido.
Fluxo Principal:
1. O sistema exibe interface de visualização do planejamento do projeto
selecionado com os dados reais já cadastrados e contabilizados, divididos por cada
fase do projeto. É disponibilizada também uma interface para cadastro do
planejamento de linhas de código ao sistema a ser desenvolvido. É apresentado
também o número de linhas de código reais já cadastradas no sistema para
comparação;
2. O sistema apresenta a interface para definição do planejamento por cada fase
do projeto - Planejamento, Projeto, Codificação, Compilação, Teste, Postmortem e de
linhas de código fonte do sistema;
3. O desenvolvedor informa os dados solicitados;
4. O sistema solicita a confirmação dos dados;
5. O desenvolvedor confirma os dados;
6. O sistema efetua as validações necessárias de formato de tempo;
7. O sistema registra o os dados apresentados pelo desenvolvedor.
Fluxos Alternativos:
1. Caso já exista um planejamento para o projeto cadastrado, o sistema recupera
este planejamento e disponibiliza a interface para alteração dos dados.
Fluxos de Exceção:
1. Alteração de registro alterado. Sistema exibe uma mensagem informando que
a operação não pode ser realizada indicando o motivo do cancelamento da operação;
Requisitos de interface:
1. As informações de planejamento devem estar dispostas em controles de texto
de forma organizada por cada fase do projeto.
Pós-condições:
Não Aplicável.
Regras de Negócio:
Não Aplicável.
Diagrama de Seqüência:
EasyPSP – Documentação de Sistema 34
EasyPSP – Documentação de Sistema 35
8.6. UC6 – Caso de Uso: Gerir Tempo
Gerir T empo
Desenvolvedor
Ator Principal:
Desenvolvedor
Sumário:
O caso de uso é o utilizado para descrever a ação do usuário de cadastramento dos
tempos de parada no sistema em cada fase do projeto. O objetivo deste caso de uso é
EasyPSP – Documentação de Sistema 36
possibilitar que ocorra a inclusão de cursos no sistema, a consulta, a alteração ou a
exclusão daqueles já existentes.
Pré-Condições:
Fase do Projeto Definida.
Status da Fase Definida como em Andamento.
Fluxo Principal:
1. O sistema exibe a interface de gestão de tempo. Ela é dividia de acordo com as
fases do projeto. Para cada fase é possível cadastrar vários tempos com suas
descrições.
2. O sistema executa o subfluxo de Pesquisa/Visualizar Tempo.
Fluxos Alternativos:
1. O desenvolvedor cancela a operação. O sistema exibe a interface de gestão de
tempo.
Fluxos de Exceção:
1. A descrição do tempo, descrição, hora inicial ou final não foram preenchidos ou
não foram preenchidos corretamente. Sistema exibe uma mensagem e retorna ao
formulário de gestão de tempo;
2. Alteração de registro alterado. Sistema exibe uma mensagem informando que
a operação não pode ser realizada indicando o motivo do cancelamento da operação;
3. Alteração de registro excluído. Sistema exibe uma mensagem informando que
a operação não pode ser realizada indicando o motivo do cancelamento da operação;
4. Exclusão de registro alterado. Sistema exibe uma mensagem informando que a
operação não pode ser realizada indicando o motivo do cancelamento da operação.
Requisitos de interface:
1. A interface de visualização dos tempos deve ser categorizada de acordo com
as fases do projeto.
2. O campo hora inicial e hora final devem ser dispostos com controles de texto
com suporte à máscara de tempo: __:__:__ HH:mm:ss.
3. O campo descrição deve ser disposto com controle de texto com área de
digitação.
Pós-condições:
Não Aplicável.
Regras de Negócio:
Não Aplicável.
EasyPSP – Documentação de Sistema 37
Diagrama de Seqüência:
EasyPSP – Documentação de Sistema 38
8.7. UC7 – Caso de Uso: Contabilizar Automaticamente
<<extend>>
Ator Principal:
Desenvolvedor
Sumário:
O caso de uso é iniciado quando o desenvolvedor inicia o relógio automático para
contabilização do tempo de acordo com a fase escolhida. O objetivo deste caso de uso
é prover uma interface para inserção automática dos tempos medidos de acordo com
as atividades exercidas dentro das fases do projeto.
Pré-Condições:
Fase do Projeto Definida.
Status da Fase Definida como em Andamento.
Fluxo Principal:
1. O sistema exibe a interface principal.
2. O desenvolvedor aciona a opção de inicio da contabilização automática de
tempo.
3. O desenvolvedor aciona a opção para finalizar a contabilização automática de
tempo.
4. O sistema apresenta uma interface para cadastrar a descrição do tempo
contabilizado.
5. O desenvolvedor apresenta os dados da descrição solicitada pelo sistema.
6. O sistema registra o novo tempo.
Fluxos Alternativos:
EasyPSP – Documentação de Sistema 39
1. O desenvolvedor cancela a operação. O sistema exibe a interface Principal.
Fluxos de Exceção:
1. A descrição do tempo não foi preenchida ou não foram preenchidos
corretamente. Sistema exibe uma mensagem e retorna ao formulário de cadastro
automático de tempo;
2. Alteração de registro alterado. Sistema exibe uma mensagem informando que
a operação não pode ser realizada indicando o motivo do cancelamento da operação;
Requisitos de interface:
1. O campo descrição deve ser disposto com controle de texto com área de
digitação.
Pós-condições:
Não Aplicável.
Regras de Negócio:
Não Aplicável.
Diagrama de Seqüência:
EasyPSP – Documentação de Sistema 40
<<extend>>
Ator Principal:
Desenvolvedor
Sumário:
O caso de uso é iniciado quando o desenvolvedor solicita ao sistema a inserção
manual de um tempo em alguma fase do projeto. O objetivo deste caso de uso é
prover uma interface para inserção manual dos tempos medidos de acordo com as
atividades exercidas dentro das fases do projeto.
Pré-Condições:
Fase do Projeto Definida.
Status da Fase Definida como em Andamento.
Fluxo Principal:
1. O sistema exibe a interface de gestão de tempo. Ela é dividia de acordo com as
fases do projeto. Para cada fase é possível cadastrar vários tempos com suas
descrições.
2. O desenvolvedor aciona a opção de cadastro de tempo de acordo com a fase
selecionada na interface de gestão de tempo.
3. O sistema apresenta o formulário de cadastro de tempo (hora inicial, hora final
e descrição do tempo).
4. O desenvolvedor preenche os dados solicitados e os envia ao sistema.
6. O sistema registra o novo tempo.
Fluxos Alternativos:
1. O desenvolvedor cancela a operação. O sistema exibe a interface de gestão de
tempo.
Fluxos de Exceção:
1. A descrição do tempo, descrição, hora inicial ou final não foram preenchidos ou
não foram preenchidos corretamente. Sistema exibe uma mensagem e retorna ao
formulário de gestão de tempo;
Requisitos de interface:
1. A interface de visualização dos tempos deve ser categorizada de acordo com
as fases do projeto.
2. O campo hora inicial e hora final devem ser dispostos com controles de texto
com suporte à máscara de tempo: __:__:__ HH:mm:ss.
3. O campo descrição deve ser disposto com controle de texto com área de
digitação.
Pós-condições:
Não Aplicável.
Regras de Negócio:
Não Aplicável.
Diagrama de Seqüência:
EasyPSP – Documentação de Sistema 41
8.9. UC9 – Caso de Uso: Totalizar Tempo
<<include>>
Ator Principal:
Desenvolvedor
EasyPSP – Documentação de Sistema 42
Sumário:
O caso de uso é iniciado quando o desenvolvedor entra na interface de gestão de
tempo. O objetivo deste caso de uso é totalizar os tempos já cadastrados de cada fase
e totalizar o tempo das fases.
Pré-Condições:
Nível de PSP Definido.
Fluxo Principal:
1. O sistema exibe a interface de gestão de tempo. Ela é dividia de acordo com as
fases do projeto. Para cada fase é possível cadastrar vários tempos com suas
descrições.
2. O sistema apresenta as totalizações de todos os tempos já cadastrados por
fase e para o projeto todo.
Fluxos Alternativos:
Não Aplicável.
Fluxos de Exceção:
Não Aplicável.
Requisitos de interface:
1. Os tempos totalizados devem ser exibidos ao lado de cada fase do projeto. A
soma total dos tempos de todas as fases deve ser exibidos ao lado do nome do
projeto na interface de gestão de tempos.
2. O formato das totalizações deve ser HH:mm:ss.
Pós-condições:
Não Aplicável.
Regras de Negócio:
Não Aplicável.
Diagrama de Seqüência:
EasyPSP – Documentação de Sistema 43
8.10. UC10 – Caso de Uso: Gerir Defeitos
Gerir Defeitos
Desenvolvedor
Ator Principal:
Desenvolvedor
Sumário:
O caso de uso é iniciado quando o desenvolvedor solicita ao sistema a interface de
cadastro ou gestão de defeitos. O objetivo deste caso de uso fornecer ao
desenvolvedor uma interface para o cadastro de defeitos e sua manutenção
(visualização, alteração e exclusão).
Pré-Condições:
Nível de PSP Definido.
Fluxo Principal:
1. O sistema exibe a tela de defeitos.
2. O sistema executa o subfluxo Pesquisa Defeitos.
Fluxos Alternativos:
1. O sistema exibe a tela principal.
2. O desenvolvedor solicita ao sistema a inclusão de um defeito.
3. O sistema apresenta a tela de cadastro de defeito.
4. O fluxo segue as operações definidas no subfluxo Operação Incluir.
Fluxos de Exceção:
1. O tipo de defeitos (documentação, sintaxe, compilação, lógica, interface,
versionamento, checagem, condicionais, funções, sistema, linguagem e ambiente),
defeito de referência cruzada (não obrigatório), defeito inserido em qual fase do
projeto, defeito removido em qual fase do projeto, tempo para conserto e descrição
não foram preenchidos ou não foram preenchidos corretamente. Sistema exibe uma
mensagem e retorna ao formulário de gestão de tempo;
2. Alteração de registro alterado. Sistema exibe uma mensagem informando que
a operação não pode ser realizada indicando o motivo do cancelamento da operação;
3. Alteração de registro excluído. Sistema exibe uma mensagem informando que
a operação não pode ser realizada indicando o motivo do cancelamento da operação;
4. Exclusão de registro alterado. Sistema exibe uma mensagem informando que a
operação não pode ser realizada indicando o motivo do cancelamento da operação.
Requisitos de interface:
1. Os tipos de defeito, fase de inserção e remoção do defeito devem ser exibidos
em uma caixa de combinação;
2. O defeito de referência cruzada deve apresentar um controle texto, com a
possibilidade de buscar por outro defeito já cadastrado. Ao escolher, o ID do defeito
referenciado irá aparecer no controle de texto.
3. O campo de tempo de conserto deve ser dispostos com controles de texto com
suporte à máscara de tempo: __:__:__ HH:mm:ss.
4. O campo descrição deve ser exibido em um controle de texto com área exposta
para o texto.
Pós-condições:
Não Aplicável.
Regras de Negócio:
Não Aplicável.
Diagrama de Seqüência:
EasyPSP – Documentação de Sistema 45
EasyPSP – Documentação de Sistema 46
EasyPSP – Documentação de Sistema 47
8.11. UC11 – Caso de Uso: Contabilizar LOC
Contabilizar LOC
Desenvolvedor
Ator Principal:
Desenvolvedor
Sumário:
EasyPSP – Documentação de Sistema 48
O caso de uso é iniciado quando o desenvolvedor solicita ao sistema a interface de
contabilização de linhas de código. O objetivo deste caso de uso fornecer ao
desenvolvedor uma interface para adicionar os arquivos de código fonte para que o
sistema calcule o número de linhas de código automaticamente.
Pré-Condições:
Nível de PSP Definido.
Fluxo Principal:
1. O sistema exibe a tela cadastro de linhas de código com todos os campos
habilitados.
2. O sistema solicita ao desenvolvedor os seguintes dados: Local dos arquivos
para contabilização automática das linhas de código.
3. O usuário apresenta os arquivos e confirma para o sistema.
4. O sistema contabiliza as linhas de código dos arquivos apresentados, seguindo
a RN1.
5. O sistema exibe o resultado e solicita a confirmação.
6. O desenvolvedor confirma o número de linhas de código fonte contabilizados.
7. O sistema registra o número de linhas de código fonte contabilizadas para o
projeto.
Fluxos Alternativos:
1. O desenvolvedor cancela a operação. O sistema exibe a interface de principal.
Fluxos de Exceção:
1. O arquivo ao ser lido não esta disponível pelo sistema operacional. Sistema
exibe uma mensagem informando que a operação não pode ser realizada indicando o
motivo do cancelamento da operação;
2. Alteração de registro alterado. Sistema exibe uma mensagem informando que
a operação não pode ser realizada indicando o motivo do cancelamento da operação;
Requisitos de interface:
1. Interface para selecionar múltiplos arquivos.
Pós-condições:
Não Aplicável.
Regras de Negócio:
RN1: É considerada uma linha de código, toda linha de código existente no arquivo
fonte, desde que não seja uma linha em branco.
Diagrama de Seqüência:
EasyPSP – Documentação de Sistema 49
8.12. UC12 – Caso de Uso: Gerar Estatísticas
Gerar Estatísticas
Desenvolvedor
Ator Principal:
Desenvolvedor
Sumário:
O caso de uso é iniciado quando o desenvolvedor solicita ao sistema a geração de
estatísticas do projeto ou de todos os projetos cadastrados. O objetivo deste caso de
uso fornecer ao desenvolvedor uma interface gerar, analisar e comparar as
estatísticas dos projeto cadastrados. Número e porcentagem de defeitos inseridos e
retirados em cada fase do projeto. Porcentagem do tipo de defeito. Comparativo entre
planejamento e realidade cadastrada no sistema, incidência de defeitos, tipos de
defeitos, local de incidência de defeitos, tempo de desenvolvimento médio por fase,
linhas de código por hora na fase de codificação.
EasyPSP – Documentação de Sistema 50
Pré-Condições:
Nível de PSP Definido.
Fluxo Principal:
1. O sistema exibe a tela de estatísticas.
Fluxos Alternativos:
Não Aplicável.
Fluxos de Exceção:
Não Aplicável.
Requisitos de interface:
1. O sistema deve apresentar as estatísticas de forma clara e ampla para análise
dos dados pelo desenvolvedor.
Pós-condições:
Não Aplicável.
Regras de Negócio:
Não Aplicável.
Diagrama de Seqüência:
EasyPSP – Documentação de Sistema 51
Gerar Gráficos
Desenvolvedor
Ator Principal:
Desenvolvedor
Sumário:
O caso de uso é iniciado quando o desenvolvedor solicita ao sistema a geração de
gráficos do projeto ou de todos os projetos cadastrados. O objetivo deste caso de uso
fornecer ao desenvolvedor uma interface gerar, analisar e comparar as estatísticas
dos projeto cadastrados. Número e porcentagem de defeitos inseridos e retirados em
cada fase do projeto. Porcentagem do tipo de defeito. Comparativo entre planejamento
e realidade cadastrada no sistema, incidência de defeitos, tipos de defeitos, local de
incidência de defeitos, tempo de desenvolvimento médio por fase, linhas de código por
hora na fase de codificação.
Pré-Condições:
Nível de PSP Definido.
Fluxo Principal:
1. O sistema exibe a tela de gráficos.
Fluxos Alternativos:
Não Aplicável.
Fluxos de Exceção:
Não Aplicável.
Requisitos de interface:
1. O sistema deve apresentar as estatísticas de forma clara e ampla para análise
dos dados pelo desenvolvedor.
Pós-condições:
Não Aplicável.
Regras de Negócio:
Não Aplicável.
Diagrama de Seqüência:
EasyPSP – Documentação de Sistema 52
EasyPSP – Documentação de Sistema 53
9. Modelagem Conceitual
9.1. Modelo MVC (Model View Controller)
EasyPSP – Documentação de Sistema 54
9.3. Diagrama de Classes (Modelo)
0..1 TipoDefeito
CodigoFonte
0..1
0..1 1
Planejamento
Estatistica 0..1 0..*
0..* Defeito
0..* 1
0..* 0..*
1 0..* 0..*
1
1
1 Projeto NivelPSP FaseProjeto
0..* 0..1 * *
1 0..* 0..* 1
1
00 01
0..*
0..* Tempo
EasyPSP – Documentação de Sistema 55
9.4. Atributos e Métodos das Classes de Domínio
EasyPSP – Documentação de Sistema 56
recuperaObjetos list Tempo
excluir boolean
setDados – Métodos set void
getDados – Métodos get void
EasyPSP – Documentação de Sistema 57
getDados – Métodos get void
EasyPSP – Documentação de Sistema 58
9.5. Mapeamento Objeto-Relacional – Diagrama de Tabelas Relacionais
EasyPSP – Documentação de Sistema 59
10. Contratos do Sistema
EasyPSP – Documentação de Sistema 60
Classe: Projeto Operação: atualizar
Pré-Condições:
- descrição, nome_desenvolvedor e status do projeto.do Projeto estão configurados em
SetDados().
Pós-Condições:
- descrição, nome_desenvolvedor e status do projeto são atualizados no cadastro;
- É exibida mensagem ao Usuário de confirmação de atualização.
Exceções:
- Exibe mensagem de erro ao usuário ao não conseguir atualizar o objeto.
EasyPSP – Documentação de Sistema 61
Pré-Condições:
- Execução da operação Criar;
- descrição da Fase.do Projeto esta setada em SetDados().
Pós-Condições:
- A fase é adicionada ao Projeto;
- É exibida mensagem ao Usuário de confirmação de gravação.
Exceções:
- Exibe mensagem de erro ao usuário ao não conseguir persistir o objeto.
EasyPSP – Documentação de Sistema 63
- Existe Projeto selecionado;
- Existe Tempo cadastrado na Fase PSP associada ao Projeto.
Pós-Condições:
- Os tempos indicados na Fase PSP do Projeto foi excluída da base de dados.
Exceções:
- A Fase PSP do Projeto foi excluída da base de dados;
- Todos os registros associados à Fase PSP do Projeto em outras classes foram excluídos da
base de dados.
EasyPSP – Documentação de Sistema 65
Classe: Tipo de Defeito Operação: atualizar
Pré-Condições:
- os dados do Tipo de Defeito estão setados em SetDados();
Pós-Condições:
- os dados do Tipo de Defeito são atualizados no cadastro;
- É exibida mensagem ao Usuário de confirmação de atualização.
Exceções:
- Exibe mensagem de erro ao usuário ao não conseguir atualizar o objeto.
EasyPSP – Documentação de Sistema 66
- tempo e número de linhas de código para as fases definidas para o projeto estão setados em
SetDados().
Pós-Condições:
- tempo e número de linhas de código são cadastrados para a Fase do Projeto;
- É exibida mensagem ao Usuário de confirmação de gravação.
Exceções:
- Exibe mensagem de erro ao usuário ao não conseguir persistir o objeto.
EasyPSP – Documentação de Sistema 67
- Nível do PSP é cadastrado para o Projeto;
- É exibida mensagem ao Usuário de confirmação de gravação.
Exceções:
- Exibe mensagem de erro ao usuário ao não conseguir persistir o objeto.
EasyPSP – Documentação de Sistema 68
Classe: Estatistica Consulta: gerarGrafico(tipoGrafico:int)
Pré-Condições:
- Existem dados de tempo, defeitos, planejamento, número de linhas de código cadastrados
para um projeto;
- Usuário selecionar um projeto.
Retorno:
- Retorna Gráficos de um projeto selecionado.
EasyPSP – Documentação de Sistema 69
- Retorna mensagem de informação ao usuário caso não exista o objeto solicitado.
EasyPSP – Documentação de Sistema 70
11. Protótipos de Interface
Principal
Inicio Fim
Projeto Gráficos
Planejamento Defeitos
Tempo
EasyPSP – Documentação de Sistema 71
11.2. Protótipos
EasyPSP – Documentação de Sistema 72
EasyPSP – Documentação de Sistema 73
EasyPSP – Documentação de Sistema 74
12. Código Fonte Sugerido
EasyPSP – Documentação de Sistema 75
CREATE TABLE Tempo (
idTempo INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
FaseProjeto_idNivelPSP INTEGER UNSIGNED NOT NULL,
Projeto_idProjeto INTEGER UNSIGNED NOT NULL,
hora_inicio TIME NULL,
hora_final TIME NULL,
descricao VARCHAR NULL,
PRIMARY KEY(idTempo),
INDEX Tempo_FKIndex1(Projeto_idProjeto),
INDEX Tempo_FKIndex2(FaseProjeto_idNivelPSP),
FOREIGN KEY(Projeto_idProjeto)
REFERENCES Projeto(idProjeto)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY(FaseProjeto_idNivelPSP)
REFERENCES FaseProjeto(idNivelPSP)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
EasyPSP – Documentação de Sistema 76
tempo_desenvolvimento TIME NULL,
numero_LOC INTEGER UNSIGNED NULL,
PRIMARY KEY(idPlanejamento),
INDEX Planejamento_FKIndex1(Projeto_idProjeto),
INDEX Planejamento_FKIndex2(CodigoFonte_idCodigoFonte),
FOREIGN KEY(Projeto_idProjeto)
REFERENCES Projeto(idProjeto)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY(CodigoFonte_idCodigoFonte)
REFERENCES CodigoFonte(idCodigoFonte)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
EasyPSP – Documentação de Sistema 77
13. Bibliografia
BOGGS, W; BOGGS, M. Mastering UML with Rational Rose 2002. Sybex; Pap/Cdr
edition. 2002.
EasyPSP – Documentação de Sistema 78