UNIVERSIDADE FEDERAL DO AMAZONAS
              INSTITUTO DE COMPUTAÇÃO




          PLANO DE PROJETO DE SOFTWARE


TÍTULO: SISTEMA DE GERENCIAMENTO DE SERVIÇOS – SGS
                     VERSÃO 1.0




                               Equipe:
                                   Rafael do Nascimento Almeida
                                      Rodrigo Azevedo da Costa
                                           Tiago Lahan da Silva


                               Professor Orientador:
                                    Rogério P. C. do Nascimento




                     Manaus – AM
                        2011
Sumário

1. INTRODUÇÃO ....................................................................................................................... 3

   1.1 Âmbito do Projeto.......................................................................................................... 3

   1.2 Funções principais do produto de software .......................................................... 3

   1.3 Requisitos comportamentais ou de performance ................................................ 4

   1.4 Gestão e Restrições Técnicas.................................................................................... 4

2. ESTIMAÇÕES DO PROJETO ............................................................................................. 5

   2.1 Dados históricos utilizados para as estimativas .................................................. 5

   2.2 Técnicas de estimativas e resultados ...................................................................... 5

   2.2.1 Técnicas de estimativa ............................................................................................. 5

   2.3 Resultados....................................................................................................................... 6

   2.4 Recursos do Projeto ..................................................................................................... 7

3. ANÁLISE E GESTÃO DE RISCOS ..................................................................................... 8

   3.1 Riscos do Projeto .......................................................................................................... 8

   3.2 Tabela de Riscos ........................................................................................................... 9

   3.3 Estratégias para Gestão de Riscos ........................................................................ 10

4. PLANEJAMENTO TEMPORAL ......................................................................................... 13

   4.1 Conjunto de Tarefas do Projeto ............................................................................... 13

   4.2 Diagrama de Gantt....................................................................................................... 13

5. ORGANIZAÇÃO DO PESSOAL ........................................................................................ 14

   5.1 Estrutura da equipe..................................................................................................... 14

   5.2 Mecanismos de comunicação .................................................................................. 14

   5.3 Uso do Edu-blog como ferramenta de apoio ....................................................... 15




Plano de Projeto de Software                                                                                                 Página 2
1. INTRODUÇÃO

1.1 Âmbito do Projeto


       Atualmente na Universidade Federal do Amazonas - UFAM, as requisições de
serviços são solicitadas por meio de uma requisição em papel, o que muitas vezes
pode causar perda, esquecimento ou até extravio de alguma requisição importante. A
prefeitura então, recebe a requisição, envia para a divisão responsável que executa as
atividades necessárias. Existe um controle das requisições solicitadas mas, sem um
acompanhamento das atividades realizadas por parte do usuário nem controle sobre
os gastos com tais atividades.
       Dessa forma, o Sistema de Gestão de Serviços - SGS, visa disponibilizar um
melhor controle estatístico e financeiro dos serviços realizados assim como,
possibilitar o acompanhamento das atividades de um serviço pelo requisitante. O SGS
proporcionará também um controle da requisição desde a sua criação até o seu
arquivamento ou descarte.


1.2 Funções principais do produto de software


       O escopo do sistema SGS é composto das principais funções:
   •   Cadastro de requisições de serviço;
   •   Consulta eletrônica da situação das atividades do serviço;
   •   Controle estatístico e financeiro de requisições cadastradas;
   •   Categorização de acesso de acordo com cada usuário;
   •   Emissão de relatórios para consulta por: Divisão, Unidade Solicitante, Situação
       e Data;


       O sistema deve permitir as seguintes funcionalidades para os usuários;


       Administrador
           o     Manter usuários do sistema;
           o     Gerir requisições;
           o     Cancelar requisições em andamento;
           o     Emissão de relatórios estatísticos e financeiros.


Plano de Projeto de Software                                                    Página 3
Requisitante
           o   Solicitar requisição;
           o   Acompanhar as atividades de um serviço;


1.3 Requisitos comportamentais ou de performance


       Sobre os requisitos comportamentais, as funcionalidades não são consideradas
críticas, porém, devem atender o máximo possível as funcionalidades já existentes em
versões anteriores ao SGS, pois, a cultural comportamental dos servidores afeta no
desempenho e na utilização do software.
       Em termos de performance, o software terá que responder adequadamente a
certos critérios, sendo fundamentais, a interface e a acessibilidade. Dessa forma, é
necessário que a interface seja agradável para o utilizador do sistema. Deve atender a
pessoas que possuem pouco ou nenhum conhecimento em informática ou utilização
de ambiente web.


1.4 Gestão e Restrições Técnicas


       Esta seção lista os itens que trazem restrição para o desenvolvimento do
sistema e, delimita o escopo em que o sistema deverá ser produzido.

       • O sistema deverá importar a base de dados do SIE.
       • O sistema deverá ser construído utilizando a tecnologia Grails.
       • Falta de experiência prática com as ferramentas e métodos utilizados para o
          desenvolvimento.




Plano de Projeto de Software                                                 Página 4
2. ESTIMAÇÕES DO PROJETO

       Estimativas de projeto são realizadas com o intuito de acompanhar todo o fluxo
de atividades de um determinado projeto de software. Assim, temos uma visão geral
dos prazos e cronogramas a serem obedecidos. As estimações levam em
consideração uma série de fatores tais como: número de pessoas envolvidas,
complexidade do projeto, material disponível para execução das atividades,
conhecimento técnico dos envolvidos entre outros que influenciam diretamente no
sucesso da aplicação.
       As estimativas mostram ao gerente de projeto o que tem que ser feito em cada
etapa da longevidade do processo de desenvolvimento, mostrando ainda se o projeto
está em dia, em atraso ou, adiantado. Dessa forma, o gerente pode cobrar resultados
dos responsáveis e, acompanhar de perto cada fase que está sendo realizada,
possuindo embasamento teórico para isso.


2.1 Dados históricos utilizados para as estimativas


       É nosso primeiro trabalho de projeto levando em consideração cálculos para
estimativas e, nenhum membro possui experiência em gerência projeto de software.


2.2 Técnicas de estimativas e resultados


       Para estimar o prazo total do projeto, foi utilizada a métrica de Lorenz & Kidd
(orientado a classes), apresentada pela Lacertae Software. Aqui, demonstramos o
cálculo realizado e os fatores envolvidos.


    2.2.1 Técnicas de estimativa


    Utilização da técnica Lorenz & Kidd:
    a. Definição do número de Classes-chave;
    b. Definição do número de Classes de suporte. Consiste em classificar o tipo de
       Interface do Produto e determinar um valor Multiplicador para as Classes de
       suporte;
    c. Multiplicar a quantidade de Classes-chave pelo valor Multiplicador, obtendo o
       número de Classes de suporte;

Plano de Projeto de Software                                                 Página 5
d. Cálculo da quantidade total de classes (Classes-chave + Classes de suporte);
    e. Multiplicar o total de classes pelo número médio de unidades de trabalho (dias-
       pessoa);
    f. Determinar a quantidade de esforço estimada;
    g. Cálculo do tempo previsto para a realização do projeto.


       A Tabela 1, abaixo, mostra os fatores de multiplicação utilizados para encontrar
a quantidade de classes de suporte:


                               Interface        Valor multiplicador
                      Não gráfica                         2
                      Baseada em texto                   2,25
                      GUI                                2,5
                      GUI Complexa                        3
                                Tabela 1. Fator de multiplicação




2.3 Resultados


   De acordo com a métrica descrita acima se obteve os seguintes resultados:


   1. Número de classes chaves = 10;
   2. Sistema em ambiente web. Então, interface gráfica GUI = 2,5;
   3. Classes chaves x multiplicador (10 x 2,5) = 25 classes de suporte;
   4. Número total de classes: Classes chaves + classes de suporte (10 + 25) = 35;
   5. Por falta de experiência da equipe em trabalhos do gênero, consideramos o
       máximo de dias indicado pela métrica (20 dias-pessoa);
   6. Para calcular a quantidade de esforço estimada: 35 x 20 = 700 dias de
       trabalho;


       No melhor caso, considerando três pessoas envolvidas no projeto, temos:
700 dias ÷ 3 pessoas = 233,33 dias-pessoa o que dividindo por 30 (dias/mês) resulta
no tempo total de aproximadamente 8 meses. Para este cálculo, utilizou-se a
quantidade total de dias no mês (30) e não apenas os dias úteis (22).




Plano de Projeto de Software                                                  Página 6
2.4 Recursos do Projeto


    2.4.1 Recursos Humanos


       O projeto contará com três pessoas que exercerão os diversos papéis
necessários para a execução do projeto de desenvolvimento do software, Na Tabela 2,
abaixo, verificamos os envolvidos de acordo com os seus respectivos papéis.


                             Papel                      Responsável
                Gerente do Projeto             Tiago Lahan
                Analista de Sistemas           Rafael Almeida
                Projetista de Software         Rodrigo Azevedo
                Codificador                    Tiago Lahan, Rafael Almeida
                Testador                       Rodrigo Azevedo
                                     Tabela 2. Recursos Humanos


    2.4.2 Recursos do ambiente de desenvolvimento


       Para o desenvolvimento deste projeto foram utilizados os seguintes recursos
de software:


           •   Netbeans: Ambiente gráfico que suporta desenvolvimento em Grails;
           •   Grails: Framework de desenvolvimento
           •   Groovy: Linguagem de programação com recursos para Web;
           •   Mysql: Banco de dados free com suporte a múltiplas linguagens;
           •   MsProject 2010: Ferramenta case que auxilia na gerência das atividades
               do projeto;
           •   Editor de texto Word: Realizar a documentação do projeto;
           •   Subversion: Ferramenta para controlar as versões de software produzidas.


       Para a composição física do projeto, utilizaremos dois microcomputadores em
rede local com todos os recursos de software descritos para o desenvolvimento do
projeto.




Plano de Projeto de Software                                                    Página 7
3. ANÁLISE E GESTÃO DE RISCOS

       Esta etapa consiste em uma série de passos que permitem compreender e
gerir as incertezas que podem ocorrer. Dessa forma, quanto aos riscos, precisamos
identificá-los, avaliar sua probabilidade de ocorrência e estimar o seu impacto no
projeto de software para que possamos estar preparados para administrá-los.


3.1 Riscos do Projeto


       Relacionamos os riscos envolvidos no projeto de acordo com a sua categoria.
Na Tabela 3 podemos visualizar esta ligação.


                 Riscos                        Projeto   Técnico    Negócio   Comum    Especial
Requisitos incompletos                            x                             x
Treinamento                                                                     x
Mudança no cronograma para entrega                x        x
Rotatividade da equipe                                                                    x
Mudança da tecnologia adotada                     x        x
Regras de negócio não foram definidas                                  x
                               Tabela 3. Riscos Gerais do Projeto



       Avaliação global dos riscos:

       1. O Gerente de software dá suporte ao projeto?
       Sim, o gerente é um dos participantes diretos no desenvolvimento do projeto

       2. Os clientes estão entusiasmados com o projeto e o produto?
       Sim, eles buscam sempre saber mais informações e ficam no desejo de ver
algo pronto o quanto antes.

        3. A equipe de desenvolvimento compreende bem os requisitos?
        Sim, uma vez que, todos participaram do processo de elicitação e análise dos
requisitos definidos

       4. Os clientes estiveram envolvidos na definição dos requisitos?
       Sim, esta etapa foi realizada com todos os membros da equipe de
desenvolvimento, os clientes da Prefeitura e contou com a presença do mediador
Edson.




Plano de Projeto de Software                                                        Página 8
5. Os requisitos do projeto são estáveis?
        Sim, e também são baseados em uma versão anterior do sistema chamado
Sistema de Controle de Serviços – SisCon, haverá apenas a modificação de ambiente,
usabilidade e performance do sistema.

       6. A equipe de desenvolvimento tem experiência na tecnologia a implementar?
       Os membros já trabalharam juntos em projetos anteriores, mas, com outras
tecnologias.

        7. É adequado o número de pessoas da equipa de trabalho?
        De acordo com as métricas utilizadas não, pois, precisaríamos de mais um ou
dois membros, mas, a equipe já se conhece e sabe o quê e como pode realizar as
atividades do projeto.


3.2 Tabela de Riscos


       Para a elaboração da Tabela de Riscos, durante a reunião de brainstorming,
cada membro do grupo relacionou os possíveis riscos existentes no projeto. Na fase
seguinte atribuímos uma probabilidade de ocorrência e o grau de impacto para cada
risco catalogado.
       Feito isto, juntamos as listas e realizamos uma análise circular dos riscos o que
gerou a Tabela 4, abaixo.


Nº                        Riscos                       Categoria      Prob.     Impacto

     Razoabilidade do prazo de entrega
 1                                                      Negócio       75%     Catastrófico
     Dúvidas sobre o que a
 2   funcionalidade solicitada é capaz de fazer       Tecnológico     75%     Catastrófico
     Ferramentas são integradas com o outro
 3   sistema                                            Processo      75%     Catastrófico
     Tamanho estimado do produto em número
 4   de programas                                      Tamanho        50%        Critico
     Você já trabalhou com o cliente no passado
 5                                                       Cliente      90%       Marginal
     Utilização de novos métodos de
 6   engenharia de software                           Tecnológico     75%       Marginal
     Quadro de processo comum estabelecido
 7                                                      Processo      30%       Marginal
     Número de mudanças projetadas para as
 8   exigências do produto                             Tamanho        25%       Marginal
                               Tabela 4. Riscos do Projeto




Plano de Projeto de Software                                                   Página 9
3.3 Estratégias para Gestão de Riscos


       Para as estratégias de redução, supervisão e gestão dos riscos (RSGR)
identificados, foram selecionados os principais. São eles:
       1. Razoabilidade do prazo de entrega;
       2. Dúvidas sobre o que a funcionalidade solicitada é capaz de fazer;
       3. Ferramentas são integradas com outros sistemas;
       4. Tamanho estimado do produto em número de programas;
       5. Você já trabalhou com o cliente no passado;
       6. Utilização de novos métodos de engenharia de software.
 1. Razoabilidade do prazo de entrega
 Risco: 2                        Probabilidade: 75%               Impacto: Catastrófico
 Descrição: Este risco se refere ao prazo estimado que foi calculado, através das
 métricas, e o prazo real de entrega do produto para o cliente.
 Estratégia de redução: Realizar reuniões semanais com o Professor Edson e
 reuniões mensais com o cliente afim de possibilitar a detecção de erros o quanto
 antes para a devida correção.
 Plano de contingência: Alterar planejamento e negociar novos prazos
 Responsável: Tiago Lahan
 Status: Em Andamento
                                   Tabela 5. Gestão de Riscos 1

 2. Dúvidas sobre o que a funcionalidade solicitada é capaz de fazer
 Risco: 7                        Probabilidade: 75%               Impacto: Catastrófico
 Descrição:    Este   risco    reflete   sobre   as    dúvidas    existentes   ao   longo   do
 desenvolvimento, tais como funcionalidades do sistema, perfis de usuários e modos
 de acesso.
 Estratégia de redução: Minimizar ao máximo as incertezas de projeto através de
 reuniões de brainstorming e entrevistas com o cliente final e documentar tais
 atividades.
 Plano de contingência: Realizar novas reuniões só para tirar dúvidas e manter
 contato através de email e telefone.
 Responsável: Tiago Lahan
 Status: Concluído
                                   Tabela 6. Gestão de Riscos 2



Plano de Projeto de Software                                                         Página 10
3. Ferramentas são integradas com outros sistemas
 Risco: 3                      Probabilidade: 75%              Impacto: Catastrófico
 Descrição: Este risco se refere ao fato do SGS se integrar ao sistema SIE, já
 existente, a outras ferramentas e como essa integração será realizada.
 Estratégia de redução: Contatar os responsáveis pelo sistema SIE para reuniões
 sobre integração para tirar as dúvidas existentes.
 Plano de contingência: Pesquisar modos de integração e ferramentas para realizar
 estas atividades.
 Responsável: Rafael Almeida
 Status: Em Andamento
                                Tabela 7. Gestão de Riscos 3

 4. Tamanho estimado do produto em número de programas
 Risco: 4                      Probabilidade: 50%              Impacto: Crítico
 Descrição: Este risco se refere a quantidade de módulos necessários ao
 desenvolvimento do sistema.
 Estratégia de redução: Determinar o escopo do projeto na fase de Análise e, segui-lo
 prontamente ao longo do desenvolvimento
 Plano de contingência: Limitar as funcionalidades extras, sem perder o escopo
 proposto
 Responsável: Tiago Lahan, Rafael Almeida
 Status: Concluído
                                Tabela 8. Gestão de Riscos 4

 5. Você já trabalhou com o cliente no passado
 Risco: 5                      Probabilidade: 90%              Impacto: Marginal
 Descrição: Este risco se refere a falta de conhecimento da equipe de
 desenvolvimento com relação ao cliente
 Estratégia de redução: Realizar reuniões periódicas para tirar dúvidas e conhecer o
 cliente através de técnicas de engenharia de software
 Plano de contingência: Manter contato com o cliente através de telefone, email e
 reuniões periódicas
 Responsável: Tiago Lahan
 Status: Concluído
                                Tabela 9. Gestão de Riscos 5




Plano de Projeto de Software                                                       Página 11
6. Utilização de novos métodos de engenharia de software
 Risco: 5                          Probabilidade: 75%              Impacto: Marginal
 Descrição: Este risco se refere a utilização de novos métodos para o
 desenvolvimento do projeto, desde ferramentas case à linguagem de programação
 Estratégia de redução: Estudar a linguagem proposta através de cursos, vídeos-aula
 e leitura em tutoriais próprios
 Plano de contingência: Utilização de plugins que facilitem o desenvolvimento
 Responsável: Rafael Almeida
 Status: Em Andamento
                                   Tabela 10. Gestão de Riscos 6




Plano de Projeto de Software                                                           Página 12
4. PLANEJAMENTO TEMPORAL

       No Planejamento Temporal são definidas as datas de execução das tarefas
assim como, os responsáveis por cada uma delas através do Diagrama de Gantt
elaborado pelo Gerente do Projeto.


4.1 Conjunto de Tarefas do Projeto


                     Tarefas                   Porcentagem    Dias de trabalho
     Planejamento                                    3%               21
     Análise de Requisitos e Modelagem              40 %              280
     Codificação                                    20 %              140
     Testes                                         37 %              259
                                Tabela 11. Dias por Tarefa



4.2 Diagrama de Gantt


       Na Tabela 12, visualizamos o Diagrama de Gantt com as atividades de acordo
com o processo de software. Para este projeto utilizamos metodologia de
desenvolvimento ágil por ter sido desenvolvido no framework Grails.




                               Figura 11. Diagrama de Gantt

Plano de Projeto de Software                                                Página 13
5. ORGANIZAÇÃO DO PESSOAL

       Cada membro da equipe possui as suas atribuições e deveres bem definidos,
assim, cada um sabe qual tarefa deve ser realizada e até onde ele pode fazer. As
decisões serão tomadas em conjunto com todos os stakeholders do projeto.


5.1 Estrutura da equipe

   • Gerente de Projeto: Sua função é gerenciar o progresso do empreendimento
       e através das variáveis (qualidade, custo, prazo e âmbito) verificar seus
       desvios. Desta forma, seu objetivo geral é minimizar as falhas inerentes aos
       processos.
       Responsável: Tiago Lahan


   • Analista de Sistema: estudam os diversos sistemas existentes entre
       hardwares (equipamentos), softwares (programas) e o usuário final.
       Responsável: Rafael Almeida


   • Projetista de software: mapear as estruturas e funcionalidades identificadas
       na análise de requerimentos dentro do contexto e das restrições da arquitetura.
       Responsável: Rodrigo Azevedo


   • Testador: Faz a investigação do software a fim de fornecer informações sobre
       sua qualidade em relação ao contexto em que ele deve operar. Isso inclui o
       processo de utilizar o produto para encontrar seus defeitos.
       Responsável: Rodrigo Azevedo



5.2 Mecanismos de comunicação

       Para um melhor gerenciamento do projeto como um todo, a equipe estabelece
comunicação direta entre seus membros e, cliente. Dessa forma, além do contato
interpessoal ser fortificado a relação existente aumenta a facilidade com que o
problema é entendido.
       A monitorização do projeto se dará por reuniões periódicas entre os membros
da equipe e, a cada etapa do processo de desenvolvimento (Planejamento, Análise de

Plano de Projeto de Software                                                Página 14
Requisitos, Codificação, Testes) é feita uma avaliação dos resultados obtidos para
possíveis correções e adequação das etapas em cada nível do projeto.




5.3 Uso do Edu-blog como ferramenta de apoio


       Achamos o Edu-blog uma excelente ferramenta de apoio à disciplina, pois é
fácil e agradável de utilizar. Permite ao professor disponibilizar todo o material
referente à disciplina e possibilita a comunicação entre o docente e todos os alunos,
sendo muito útil para cada um apresentar as suas dúvidas e sugestões.
       A utilização do Edu-blog como ferramenta que auxilie no compartilhamento de
informações é importante, pois cria um canal fixo de comunicação entre todas as
equipes, permitindo um local onde todos possam acessar e pesquisar assuntos que
possam enriquecer o trabalho individual.




Plano de Projeto de Software                                               Página 15

Plano de Projeto SGS

  • 1.
    UNIVERSIDADE FEDERAL DOAMAZONAS INSTITUTO DE COMPUTAÇÃO PLANO DE PROJETO DE SOFTWARE TÍTULO: SISTEMA DE GERENCIAMENTO DE SERVIÇOS – SGS VERSÃO 1.0 Equipe: Rafael do Nascimento Almeida Rodrigo Azevedo da Costa Tiago Lahan da Silva Professor Orientador: Rogério P. C. do Nascimento Manaus – AM 2011
  • 2.
    Sumário 1. INTRODUÇÃO .......................................................................................................................3 1.1 Âmbito do Projeto.......................................................................................................... 3 1.2 Funções principais do produto de software .......................................................... 3 1.3 Requisitos comportamentais ou de performance ................................................ 4 1.4 Gestão e Restrições Técnicas.................................................................................... 4 2. ESTIMAÇÕES DO PROJETO ............................................................................................. 5 2.1 Dados históricos utilizados para as estimativas .................................................. 5 2.2 Técnicas de estimativas e resultados ...................................................................... 5 2.2.1 Técnicas de estimativa ............................................................................................. 5 2.3 Resultados....................................................................................................................... 6 2.4 Recursos do Projeto ..................................................................................................... 7 3. ANÁLISE E GESTÃO DE RISCOS ..................................................................................... 8 3.1 Riscos do Projeto .......................................................................................................... 8 3.2 Tabela de Riscos ........................................................................................................... 9 3.3 Estratégias para Gestão de Riscos ........................................................................ 10 4. PLANEJAMENTO TEMPORAL ......................................................................................... 13 4.1 Conjunto de Tarefas do Projeto ............................................................................... 13 4.2 Diagrama de Gantt....................................................................................................... 13 5. ORGANIZAÇÃO DO PESSOAL ........................................................................................ 14 5.1 Estrutura da equipe..................................................................................................... 14 5.2 Mecanismos de comunicação .................................................................................. 14 5.3 Uso do Edu-blog como ferramenta de apoio ....................................................... 15 Plano de Projeto de Software Página 2
  • 3.
    1. INTRODUÇÃO 1.1 Âmbitodo Projeto Atualmente na Universidade Federal do Amazonas - UFAM, as requisições de serviços são solicitadas por meio de uma requisição em papel, o que muitas vezes pode causar perda, esquecimento ou até extravio de alguma requisição importante. A prefeitura então, recebe a requisição, envia para a divisão responsável que executa as atividades necessárias. Existe um controle das requisições solicitadas mas, sem um acompanhamento das atividades realizadas por parte do usuário nem controle sobre os gastos com tais atividades. Dessa forma, o Sistema de Gestão de Serviços - SGS, visa disponibilizar um melhor controle estatístico e financeiro dos serviços realizados assim como, possibilitar o acompanhamento das atividades de um serviço pelo requisitante. O SGS proporcionará também um controle da requisição desde a sua criação até o seu arquivamento ou descarte. 1.2 Funções principais do produto de software O escopo do sistema SGS é composto das principais funções: • Cadastro de requisições de serviço; • Consulta eletrônica da situação das atividades do serviço; • Controle estatístico e financeiro de requisições cadastradas; • Categorização de acesso de acordo com cada usuário; • Emissão de relatórios para consulta por: Divisão, Unidade Solicitante, Situação e Data; O sistema deve permitir as seguintes funcionalidades para os usuários; Administrador o Manter usuários do sistema; o Gerir requisições; o Cancelar requisições em andamento; o Emissão de relatórios estatísticos e financeiros. Plano de Projeto de Software Página 3
  • 4.
    Requisitante o Solicitar requisição; o Acompanhar as atividades de um serviço; 1.3 Requisitos comportamentais ou de performance Sobre os requisitos comportamentais, as funcionalidades não são consideradas críticas, porém, devem atender o máximo possível as funcionalidades já existentes em versões anteriores ao SGS, pois, a cultural comportamental dos servidores afeta no desempenho e na utilização do software. Em termos de performance, o software terá que responder adequadamente a certos critérios, sendo fundamentais, a interface e a acessibilidade. Dessa forma, é necessário que a interface seja agradável para o utilizador do sistema. Deve atender a pessoas que possuem pouco ou nenhum conhecimento em informática ou utilização de ambiente web. 1.4 Gestão e Restrições Técnicas Esta seção lista os itens que trazem restrição para o desenvolvimento do sistema e, delimita o escopo em que o sistema deverá ser produzido. • O sistema deverá importar a base de dados do SIE. • O sistema deverá ser construído utilizando a tecnologia Grails. • Falta de experiência prática com as ferramentas e métodos utilizados para o desenvolvimento. Plano de Projeto de Software Página 4
  • 5.
    2. ESTIMAÇÕES DOPROJETO Estimativas de projeto são realizadas com o intuito de acompanhar todo o fluxo de atividades de um determinado projeto de software. Assim, temos uma visão geral dos prazos e cronogramas a serem obedecidos. As estimações levam em consideração uma série de fatores tais como: número de pessoas envolvidas, complexidade do projeto, material disponível para execução das atividades, conhecimento técnico dos envolvidos entre outros que influenciam diretamente no sucesso da aplicação. As estimativas mostram ao gerente de projeto o que tem que ser feito em cada etapa da longevidade do processo de desenvolvimento, mostrando ainda se o projeto está em dia, em atraso ou, adiantado. Dessa forma, o gerente pode cobrar resultados dos responsáveis e, acompanhar de perto cada fase que está sendo realizada, possuindo embasamento teórico para isso. 2.1 Dados históricos utilizados para as estimativas É nosso primeiro trabalho de projeto levando em consideração cálculos para estimativas e, nenhum membro possui experiência em gerência projeto de software. 2.2 Técnicas de estimativas e resultados Para estimar o prazo total do projeto, foi utilizada a métrica de Lorenz & Kidd (orientado a classes), apresentada pela Lacertae Software. Aqui, demonstramos o cálculo realizado e os fatores envolvidos. 2.2.1 Técnicas de estimativa Utilização da técnica Lorenz & Kidd: a. Definição do número de Classes-chave; b. Definição do número de Classes de suporte. Consiste em classificar o tipo de Interface do Produto e determinar um valor Multiplicador para as Classes de suporte; c. Multiplicar a quantidade de Classes-chave pelo valor Multiplicador, obtendo o número de Classes de suporte; Plano de Projeto de Software Página 5
  • 6.
    d. Cálculo daquantidade total de classes (Classes-chave + Classes de suporte); e. Multiplicar o total de classes pelo número médio de unidades de trabalho (dias- pessoa); f. Determinar a quantidade de esforço estimada; g. Cálculo do tempo previsto para a realização do projeto. A Tabela 1, abaixo, mostra os fatores de multiplicação utilizados para encontrar a quantidade de classes de suporte: Interface Valor multiplicador Não gráfica 2 Baseada em texto 2,25 GUI 2,5 GUI Complexa 3 Tabela 1. Fator de multiplicação 2.3 Resultados De acordo com a métrica descrita acima se obteve os seguintes resultados: 1. Número de classes chaves = 10; 2. Sistema em ambiente web. Então, interface gráfica GUI = 2,5; 3. Classes chaves x multiplicador (10 x 2,5) = 25 classes de suporte; 4. Número total de classes: Classes chaves + classes de suporte (10 + 25) = 35; 5. Por falta de experiência da equipe em trabalhos do gênero, consideramos o máximo de dias indicado pela métrica (20 dias-pessoa); 6. Para calcular a quantidade de esforço estimada: 35 x 20 = 700 dias de trabalho; No melhor caso, considerando três pessoas envolvidas no projeto, temos: 700 dias ÷ 3 pessoas = 233,33 dias-pessoa o que dividindo por 30 (dias/mês) resulta no tempo total de aproximadamente 8 meses. Para este cálculo, utilizou-se a quantidade total de dias no mês (30) e não apenas os dias úteis (22). Plano de Projeto de Software Página 6
  • 7.
    2.4 Recursos doProjeto 2.4.1 Recursos Humanos O projeto contará com três pessoas que exercerão os diversos papéis necessários para a execução do projeto de desenvolvimento do software, Na Tabela 2, abaixo, verificamos os envolvidos de acordo com os seus respectivos papéis. Papel Responsável Gerente do Projeto Tiago Lahan Analista de Sistemas Rafael Almeida Projetista de Software Rodrigo Azevedo Codificador Tiago Lahan, Rafael Almeida Testador Rodrigo Azevedo Tabela 2. Recursos Humanos 2.4.2 Recursos do ambiente de desenvolvimento Para o desenvolvimento deste projeto foram utilizados os seguintes recursos de software: • Netbeans: Ambiente gráfico que suporta desenvolvimento em Grails; • Grails: Framework de desenvolvimento • Groovy: Linguagem de programação com recursos para Web; • Mysql: Banco de dados free com suporte a múltiplas linguagens; • MsProject 2010: Ferramenta case que auxilia na gerência das atividades do projeto; • Editor de texto Word: Realizar a documentação do projeto; • Subversion: Ferramenta para controlar as versões de software produzidas. Para a composição física do projeto, utilizaremos dois microcomputadores em rede local com todos os recursos de software descritos para o desenvolvimento do projeto. Plano de Projeto de Software Página 7
  • 8.
    3. ANÁLISE EGESTÃO DE RISCOS Esta etapa consiste em uma série de passos que permitem compreender e gerir as incertezas que podem ocorrer. Dessa forma, quanto aos riscos, precisamos identificá-los, avaliar sua probabilidade de ocorrência e estimar o seu impacto no projeto de software para que possamos estar preparados para administrá-los. 3.1 Riscos do Projeto Relacionamos os riscos envolvidos no projeto de acordo com a sua categoria. Na Tabela 3 podemos visualizar esta ligação. Riscos Projeto Técnico Negócio Comum Especial Requisitos incompletos x x Treinamento x Mudança no cronograma para entrega x x Rotatividade da equipe x Mudança da tecnologia adotada x x Regras de negócio não foram definidas x Tabela 3. Riscos Gerais do Projeto Avaliação global dos riscos: 1. O Gerente de software dá suporte ao projeto? Sim, o gerente é um dos participantes diretos no desenvolvimento do projeto 2. Os clientes estão entusiasmados com o projeto e o produto? Sim, eles buscam sempre saber mais informações e ficam no desejo de ver algo pronto o quanto antes. 3. A equipe de desenvolvimento compreende bem os requisitos? Sim, uma vez que, todos participaram do processo de elicitação e análise dos requisitos definidos 4. Os clientes estiveram envolvidos na definição dos requisitos? Sim, esta etapa foi realizada com todos os membros da equipe de desenvolvimento, os clientes da Prefeitura e contou com a presença do mediador Edson. Plano de Projeto de Software Página 8
  • 9.
    5. Os requisitosdo projeto são estáveis? Sim, e também são baseados em uma versão anterior do sistema chamado Sistema de Controle de Serviços – SisCon, haverá apenas a modificação de ambiente, usabilidade e performance do sistema. 6. A equipe de desenvolvimento tem experiência na tecnologia a implementar? Os membros já trabalharam juntos em projetos anteriores, mas, com outras tecnologias. 7. É adequado o número de pessoas da equipa de trabalho? De acordo com as métricas utilizadas não, pois, precisaríamos de mais um ou dois membros, mas, a equipe já se conhece e sabe o quê e como pode realizar as atividades do projeto. 3.2 Tabela de Riscos Para a elaboração da Tabela de Riscos, durante a reunião de brainstorming, cada membro do grupo relacionou os possíveis riscos existentes no projeto. Na fase seguinte atribuímos uma probabilidade de ocorrência e o grau de impacto para cada risco catalogado. Feito isto, juntamos as listas e realizamos uma análise circular dos riscos o que gerou a Tabela 4, abaixo. Nº Riscos Categoria Prob. Impacto Razoabilidade do prazo de entrega 1 Negócio 75% Catastrófico Dúvidas sobre o que a 2 funcionalidade solicitada é capaz de fazer Tecnológico 75% Catastrófico Ferramentas são integradas com o outro 3 sistema Processo 75% Catastrófico Tamanho estimado do produto em número 4 de programas Tamanho 50% Critico Você já trabalhou com o cliente no passado 5 Cliente 90% Marginal Utilização de novos métodos de 6 engenharia de software Tecnológico 75% Marginal Quadro de processo comum estabelecido 7 Processo 30% Marginal Número de mudanças projetadas para as 8 exigências do produto Tamanho 25% Marginal Tabela 4. Riscos do Projeto Plano de Projeto de Software Página 9
  • 10.
    3.3 Estratégias paraGestão de Riscos Para as estratégias de redução, supervisão e gestão dos riscos (RSGR) identificados, foram selecionados os principais. São eles: 1. Razoabilidade do prazo de entrega; 2. Dúvidas sobre o que a funcionalidade solicitada é capaz de fazer; 3. Ferramentas são integradas com outros sistemas; 4. Tamanho estimado do produto em número de programas; 5. Você já trabalhou com o cliente no passado; 6. Utilização de novos métodos de engenharia de software. 1. Razoabilidade do prazo de entrega Risco: 2 Probabilidade: 75% Impacto: Catastrófico Descrição: Este risco se refere ao prazo estimado que foi calculado, através das métricas, e o prazo real de entrega do produto para o cliente. Estratégia de redução: Realizar reuniões semanais com o Professor Edson e reuniões mensais com o cliente afim de possibilitar a detecção de erros o quanto antes para a devida correção. Plano de contingência: Alterar planejamento e negociar novos prazos Responsável: Tiago Lahan Status: Em Andamento Tabela 5. Gestão de Riscos 1 2. Dúvidas sobre o que a funcionalidade solicitada é capaz de fazer Risco: 7 Probabilidade: 75% Impacto: Catastrófico Descrição: Este risco reflete sobre as dúvidas existentes ao longo do desenvolvimento, tais como funcionalidades do sistema, perfis de usuários e modos de acesso. Estratégia de redução: Minimizar ao máximo as incertezas de projeto através de reuniões de brainstorming e entrevistas com o cliente final e documentar tais atividades. Plano de contingência: Realizar novas reuniões só para tirar dúvidas e manter contato através de email e telefone. Responsável: Tiago Lahan Status: Concluído Tabela 6. Gestão de Riscos 2 Plano de Projeto de Software Página 10
  • 11.
    3. Ferramentas sãointegradas com outros sistemas Risco: 3 Probabilidade: 75% Impacto: Catastrófico Descrição: Este risco se refere ao fato do SGS se integrar ao sistema SIE, já existente, a outras ferramentas e como essa integração será realizada. Estratégia de redução: Contatar os responsáveis pelo sistema SIE para reuniões sobre integração para tirar as dúvidas existentes. Plano de contingência: Pesquisar modos de integração e ferramentas para realizar estas atividades. Responsável: Rafael Almeida Status: Em Andamento Tabela 7. Gestão de Riscos 3 4. Tamanho estimado do produto em número de programas Risco: 4 Probabilidade: 50% Impacto: Crítico Descrição: Este risco se refere a quantidade de módulos necessários ao desenvolvimento do sistema. Estratégia de redução: Determinar o escopo do projeto na fase de Análise e, segui-lo prontamente ao longo do desenvolvimento Plano de contingência: Limitar as funcionalidades extras, sem perder o escopo proposto Responsável: Tiago Lahan, Rafael Almeida Status: Concluído Tabela 8. Gestão de Riscos 4 5. Você já trabalhou com o cliente no passado Risco: 5 Probabilidade: 90% Impacto: Marginal Descrição: Este risco se refere a falta de conhecimento da equipe de desenvolvimento com relação ao cliente Estratégia de redução: Realizar reuniões periódicas para tirar dúvidas e conhecer o cliente através de técnicas de engenharia de software Plano de contingência: Manter contato com o cliente através de telefone, email e reuniões periódicas Responsável: Tiago Lahan Status: Concluído Tabela 9. Gestão de Riscos 5 Plano de Projeto de Software Página 11
  • 12.
    6. Utilização denovos métodos de engenharia de software Risco: 5 Probabilidade: 75% Impacto: Marginal Descrição: Este risco se refere a utilização de novos métodos para o desenvolvimento do projeto, desde ferramentas case à linguagem de programação Estratégia de redução: Estudar a linguagem proposta através de cursos, vídeos-aula e leitura em tutoriais próprios Plano de contingência: Utilização de plugins que facilitem o desenvolvimento Responsável: Rafael Almeida Status: Em Andamento Tabela 10. Gestão de Riscos 6 Plano de Projeto de Software Página 12
  • 13.
    4. PLANEJAMENTO TEMPORAL No Planejamento Temporal são definidas as datas de execução das tarefas assim como, os responsáveis por cada uma delas através do Diagrama de Gantt elaborado pelo Gerente do Projeto. 4.1 Conjunto de Tarefas do Projeto Tarefas Porcentagem Dias de trabalho Planejamento 3% 21 Análise de Requisitos e Modelagem 40 % 280 Codificação 20 % 140 Testes 37 % 259 Tabela 11. Dias por Tarefa 4.2 Diagrama de Gantt Na Tabela 12, visualizamos o Diagrama de Gantt com as atividades de acordo com o processo de software. Para este projeto utilizamos metodologia de desenvolvimento ágil por ter sido desenvolvido no framework Grails. Figura 11. Diagrama de Gantt Plano de Projeto de Software Página 13
  • 14.
    5. ORGANIZAÇÃO DOPESSOAL Cada membro da equipe possui as suas atribuições e deveres bem definidos, assim, cada um sabe qual tarefa deve ser realizada e até onde ele pode fazer. As decisões serão tomadas em conjunto com todos os stakeholders do projeto. 5.1 Estrutura da equipe • Gerente de Projeto: Sua função é gerenciar o progresso do empreendimento e através das variáveis (qualidade, custo, prazo e âmbito) verificar seus desvios. Desta forma, seu objetivo geral é minimizar as falhas inerentes aos processos. Responsável: Tiago Lahan • Analista de Sistema: estudam os diversos sistemas existentes entre hardwares (equipamentos), softwares (programas) e o usuário final. Responsável: Rafael Almeida • Projetista de software: mapear as estruturas e funcionalidades identificadas na análise de requerimentos dentro do contexto e das restrições da arquitetura. Responsável: Rodrigo Azevedo • Testador: Faz a investigação do software a fim de fornecer informações sobre sua qualidade em relação ao contexto em que ele deve operar. Isso inclui o processo de utilizar o produto para encontrar seus defeitos. Responsável: Rodrigo Azevedo 5.2 Mecanismos de comunicação Para um melhor gerenciamento do projeto como um todo, a equipe estabelece comunicação direta entre seus membros e, cliente. Dessa forma, além do contato interpessoal ser fortificado a relação existente aumenta a facilidade com que o problema é entendido. A monitorização do projeto se dará por reuniões periódicas entre os membros da equipe e, a cada etapa do processo de desenvolvimento (Planejamento, Análise de Plano de Projeto de Software Página 14
  • 15.
    Requisitos, Codificação, Testes)é feita uma avaliação dos resultados obtidos para possíveis correções e adequação das etapas em cada nível do projeto. 5.3 Uso do Edu-blog como ferramenta de apoio Achamos o Edu-blog uma excelente ferramenta de apoio à disciplina, pois é fácil e agradável de utilizar. Permite ao professor disponibilizar todo o material referente à disciplina e possibilita a comunicação entre o docente e todos os alunos, sendo muito útil para cada um apresentar as suas dúvidas e sugestões. A utilização do Edu-blog como ferramenta que auxilie no compartilhamento de informações é importante, pois cria um canal fixo de comunicação entre todas as equipes, permitindo um local onde todos possam acessar e pesquisar assuntos que possam enriquecer o trabalho individual. Plano de Projeto de Software Página 15