PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ                                                                         ...
Artigo halan t14_seminário28042007
Artigo halan t14_seminário28042007
Artigo halan t14_seminário28042007
Artigo halan t14_seminário28042007
Artigo halan t14_seminário28042007
Artigo halan t14_seminário28042007
Artigo halan t14_seminário28042007
Artigo halan t14_seminário28042007
Artigo halan t14_seminário28042007
Artigo halan t14_seminário28042007
Artigo halan t14_seminário28042007
Artigo halan t14_seminário28042007
Artigo halan t14_seminário28042007
Artigo halan t14_seminário28042007
Artigo halan t14_seminário28042007
Artigo halan t14_seminário28042007
Artigo halan t14_seminário28042007
Upcoming SlideShare
Loading in …5
×

Artigo halan t14_seminário28042007

1,178 views

Published on

Project Management

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,178
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
16
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Artigo halan t14_seminário28042007

  1. 1. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIA Uma Abordagem Visando Planejamento de Processo Produtivo em Projetos de Desenvolvimento de Software Halan Ridolphi (Algoritma Software) halan@ufrj.br Engenheiro de Software, Pós-Graduação em Gerenciamento de Projetos (SEGRAC/POLI/UFRJ) Orientador Lysio Séllos (SEGRAC/POLI/UFRJ) lysio@poli.ufrj.br Engenheiro Civil, D.Sc.Resumo Este artigo tem como propósito discorrer sobre relatos de experiência e compilaçãode boas práticas vivenciadas pelo autor objetivando planejar o processo produtivo em umcenário de trabalho focado em projeto de desenvolvimento de software. Frequentemente,projetos de software envolvem o esforço de equipes de trabalho geograficamente distribuídasem distintas instalações (fábricas, laboratórios, escritórios), elicitando e especificandorequisitos e regras de negócio complexas, cooperando no detalhamento do projeto técnico,criando distintos modelos de software em paralelo e com dependências entre si,compartilhando baselines comuns de código fonte e especificação. Além disso, em frentes detrabalho de projetos de software encontramos pessoas programando centenas de módulos deprograma interdependentes, executando providências para garantia de qualidade do produtofinal e treinando usuários finais. Portanto, configurando um contexto de projeto suscetível àgeração de conflitos, surgimento de problemas, ocorrência de riscos potenciais, perda defoco e objetivos, queda de produtividade entre pessoas das equipes envolvidas por conta dacompreensão insuficiente acerca do processo de trabalho a ser realizado visando oatingimento de metas e propósitos do projeto. O artigo expressa o raciocínio geral do autor,propondo a utilização de mecanismos, tecnologias e conceitos para efetivamente abordar aorganização do processo produtivo de projeto de software. Assim sendo, contemplando oplanejamento de atividades técnicas, sociais e gerenciais, a definição de responsabilidades,habilidades e perfis nas equipes de trabalho, a utilização de ferramental para elaboração deartefatos do projeto, a realização de reuniões do projeto e dentre outros aspectos. Emresumo, objetivando contribuir para o bom gerenciamento das frentes de trabalho em umprojeto de construção de sistema de software, de modo a assegurar melhor confiabilidade equalidade do produto final construído neste cenário de projeto.Palavras chave: Processo, Projeto, Qualidade, Planejamento, Software, Equipe.1. IntroduçãoEste documento tem por objetivo detalhar uma abordagem para padronização de processoprodutivo de projeto de software em uma empresa desenvolvedora de software. A Figura 1demonstra sucintamente o cenário de projeto mencionado.SEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 1Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJhttp://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  2. 2. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIAO propósito a ser alcançado com a definição de um processo produtivo padrão é a adoção deabordagem sistemática, repetível e organizada visando construção de sistemas de software dequalidade desejada e cuja operação seja confiável, com menor custo possível e dentro dosprazos acordados. Figura 1 – Cenário de desenvolvimento de software Fonte: do autorNa experiência do autor, entre os grandes desafios deste contexto de projeto está anecessidade de prover uma forma de trabalho metódica e não burocrática, de fácilentendimento e operacionalização, capaz de tornar a capacidade de produção das pessoas maiseficaz e efetiva. A disseminação do uso da tecnologia da informação tem tornado a sociedadecada vez mais ávida e dependente de sistemas de software confiáveis, os quais, comumente,alcançam grandes dimensões no decorrer de sua construção, bem como, envolvem aautomação de regras de negócio complexas. Para viabilizar tais sistemas de software, quasesempre, várias pessoas estão cooperando em distintas frentes de trabalho (construção, garantiade qualidade, homologação, implantação, suporte, gerenciamento) e compartilhando artefatosdo projeto (especificação, código fonte, planos, relatórios, cronogramas). Em nossoentendimento, a falta de abordagem sistemática de trabalho neste cenário de projeto, podeSEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 2Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJhttp://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  3. 3. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIAculminar na atuação das pessoas na forma de “apagar incêndio” quase que na maioria dotempo. Ou seja, um ambiente de trabalho que será uma visão do "inferno", onde quase não se“respira” ou se discute soluções, havendo boa carga de trabalho sendo realizado na forma deimprovisação e, com criatividade, inovação e produtividade fortemente minadas pelosincidentes e suas recorrências.O desafio do autor neste contexto de projeto tem sido organizar, coordenar e servir equipes deengenharia de software, mantendo visão sistêmica dos objetivos e metas, facilitando com queprovidências necessárias aconteçam e, como também, antecipação de problemas. Além disso,viabilizar e formalizar melhor organização do ambiente de trabalho, visando minimizar aimprovisação da equipe, promovendo a adoção de padrões, para que se possam alcançarresultados efetivos e eficazes na conclusão do projeto. Neste sentido, algumas idéias paracontribuir com o bom gerenciamento de projetos de software foram especificadas visandoaperfeiçoar a atuação das pessoas neste cenário de trabalho e, portanto, será objeto deapresentação neste estudo.2. Conceituando Processo de SoftwareA preocupação com o estabelecimento de um processo de software padrão está relacionada ànecessidade de entender, avaliar, controlar, aprender, comunicar, melhorar, predizer ecertificar o trabalho realizado pelas pessoas de uma organização desenvolvedora de software. cd Processo SW Processo_de_Softw are 1 Possui 1..* 0..* Recurso Ativ idade Compõe Procedimento Requer 1..* * * Utiliza 0..* * 1..* Consome Produz 0..* 1..* Artefato Figura 2 – Conceitos de processo de software Fonte: do autorSEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 3Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJhttp://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  4. 4. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIAA Figura 2 apresenta as entidades principais constituintes de um processo de software:a. Processo de SoftwareOrganização de um conjunto de atividades com objetivo de desenvolver artefatos de umproduto de software específico.b. AtividadeUma ação de transformação que produz artefatos. Para ser executada uma atividade necessitade recursos e consome artefatos. Podem ser classificadas em atividades de construção,garantia de qualidade e gerenciamento. Podem ser organizadas em atividades menores outarefas visando orientar o desenvolvimento de artefatos de software.Exemplos: Planejamento de Projeto, Análise de Requisitos, Projeto do Sistema, Codificação,Teste do Sistema, Homologação, Implantação.c. RecursoTudo que é requisitado por uma atividade, mas que não pode ser considerado uma entradapara ela, no sentido que não é incorporado ao artefato produzido. Pode ser software,hardware, pessoas, documentos ou banco de dados.d. ProcedimentoAções bem definidas para executar uma atividade. Basicamente, compõe a base técnica paraconstrução de artefato de software e é classificado em métodos, técnicas e scripts.Exemplos: Projeto Orientado a Objetos, Modelagem de Casos de Uso, Prototipação, UML,Análise de Pontos de Função, Padrões de Projeto, Projeto Estruturado, Linguagens deProgramação (Object Pascal, ADA, Java, C++, Cobol, Modula 2).e. ArtefatoA entrada ou saída de uma atividade.Exemplos: Categoria do Artefato Artefato Plano de Projeto Cronograma de Projeto Diagrama de Marcos do Projeto Plano de Release Plano de Comunicação Gerencial Plano de Riscos Estimativas de Pontos por Função Estimativas de Pontos por Casos de Uso Plano de Garantia de Qualidade Ata de Reunião Relatório de Progresso Técnico Modelo de Requisitos Diagramas de Projeto Técnico Arquitetura de Software Modelo de DadosSEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 4Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJhttp://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  5. 5. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIA Código Fonte Código Binário Mapa de Navegação Modelo de Casos de Uso Modelo de Interface do Usuário (Protótipos de Telas/Relatórios) Plano de Teste Plano de Treinamento Plano de Implantação Manual do Usuário Tabela 1 – Exemplos de artefatos gerados em projetos de software Fonte: do autor3. Padronizando o Processo Produtivo de Projeto de SoftwareA abordagem de padronização para processo de software contempla a especificação daestrutura de trabalho genérica adotada durante a realização de projeto de desenvolvimento deum produto de software. Inclui a definição e sequenciamento de atividades de gerenciamento,construção e garantia de qualidade, com aplicação de métodos, técnicas e ferramentas daengenharia de software visando à consolidação de processo de desenvolvimento de softwareeficaz e efetivo na construção de produto de qualidade elevada, e que supere as expectativasdos modelos de negócios. Os seguintes tópicos são abordados:− Escopo de atividades fundamentais do processo produtivo do projeto de software;− Organização da equipe de projeto de software e definição dos perfis profissionais;− Alocação dos recursos humanos nas atividades e respectivas competências;− Modelos de ciclo de vida a ser adotado;− Atividades a serem realizadas e ordem de execução das mesmas durante o desenvolvimento de um produto de software;− O conjunto mínimo de artefatos de software que devem ser construídos em cada atividade do processo de software;− A menção as técnicas, métodos, ferramentas e procedimentos a serem observados pela equipe de projeto durante as atividades realizadas ao longo do processo de desenvolvimento de software.SEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 5Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJhttp://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  6. 6. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIA4. Definindo o Escopo do Processo Produtivo de Projeto de Software Figura 3 – WBS do processo produtivo de projeto de software detalhando fases e atividades Fonte: do autor Fases Atividades/Tarefas Associadas Planejamento Estimativas de tamanho (APF), custo e orçamentação Elaboração de proposta de fornecimento de software Desenvolvimento, controle e monitoração de cronograma Promoção da integração entre equipes do projeto Coordenação de levantamento de necessidades Gerência de Projeto Gerenciamento de custos e recursos Gerenciamento de objetivos Gerenciamento de riscos Gerenciamento de problemas Metodologias e ferramentas de controle gerencial Elaboração e avaliação de relatórios de progresso Análise de Requisitos Levantamento de necessidades junto ao cliente Estimativas de tamanho (APF) Especificação de requisitosSEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 6Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJhttp://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  7. 7. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIA Revisão de requisitos Definição de solução técnica Definição da arquitetura de software Definição padrões de desenvolvimento (frameworks, design patterns) Definição de ferramentas CASE Controlar e monitorar cronograma de entregas de releases Projeto Técnico & Codificação Construção Teste unitário Correção de defeitos Inspeção de código Inspeção de projeto técnico Apoio ao planejamento de implantação Definição de ferramentas IDE Identificação itens de configuração Definição de ferramentas de controle da configuração de software Controle de mudanças Gerência de Configuração Controle de versões Relatório de alterações e respectivos impactos Armazenamento, manipulação e distribuição dos itens de configuração Planejamento de teste integrado Elaboração de planos de testes Execução de planos de testes Inspeção de código Garantia de Qualidade Inspeção de projeto técnico Revisão de requisitos Relatórios de não conformidades Compilação dos resultados de testes Teste de regressão Teste de aceitação Planejamento de instalação Homologação Relatórios de não conformidades Correção de defeitos Controle da documentação Plano de treinamento Empacotamento do produto Planejamento de produção Customização e suporte técnico Criação de bancos de dados Entrega e Produção Otimização de query e stored procedures Planejamento de capacidade de bases de dados Planejamento de capacidade de servidores de arquivos Definições de segurança da rede de computadores Definições de links de comunicação de dados Criação de contas, grupos e domínios de usuários Tabela 2 – Detalhamento de fases, atividades e tarefas associadas em projetos de softwareSEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 7Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJhttp://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  8. 8. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIA Fonte: do autor5. Organizando a Equipe do Projeto de SoftwareNeste tópico comentamos sobre os grupos de trabalho envolvidos, responsabilidades erespectivas habilidades requeridas no escopo do processo produtivo de um projeto dedesenvolvimento de software. Neste sentido, descrevemos a estrutura organizacional e rede derelacionamentos de reporte entre os membros da equipe de projeto participantes do processode desenvolvimento de sistema de software.5.1. Organograma da Equipe Figura 4 – OBS do projeto de software detalhando a rede formal de relacionamentos de reporte Fonte: do autor5.2. Definição de Responsabilidades Matriz de Responsabilidades RecursosSEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 8Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJhttp://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  9. 9. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIA Comitê de Direcionamento Gerente de Projeto Líder de Equipe Programador Projetista Testador Analista Cliente Produto, Evento ou Atividade Plano de Projeto & Cronograma X R R RA Orçamento X R RA Levantamento de Requisitos R C C R Especificação de Requisitos R R R A A Projeto Técnico & Arquitetura R C R A I Modelagem de Dados R C R R A I Documentação do Produto R CX I R I R Programação de Subsistemas R C Plano de Testes R R C S S I X Teste de Software R E EX EX S AI X Revisões de Artefatos de Software R E EX EX S I X Gerência de Configuração R R E E X AI Plano de Implantação R C R S I Homologação R S S S X Empacotamento do Produto R R S CX Treinamento R C A Instalação A C S R Tabela 3 – Detalhamento de matriz de responsabilidades para projeto de software Fonte: do autorLegenda: A Aprovação I Informação E Especificação R RevisãoSEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 9Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJhttp://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  10. 10. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIA C Construção S Suporte X Execução5.3. Definição de Habilidades Recursos Humanos Habilidades Validar se soluções estão alinhadas às estratégias de negócio. Direcionamento estratégico do projeto. Garantir a o comprometimento das áreas envolvidas. Solucionar pendências, minimizando impactos no projeto. Comitê de Direcionamento Avaliar os benefícios estratégicos / financeiros das solicitações de mudança durante a execução do projeto. Autoriza ou rejeita mudanças propostas que possam gerar impacto no escopo, prazo ou orçamento do projeto. Aprovação do escopo, prioridades e orçamento. Planejamento, controle, acompanhamento e liderança do projeto Definição de processo produtivo de realização do projeto Manutenção de foco e prioridades Supervisão de progresso do projeto Monitoração e acionamento de medidas de mitigação de riscos do projeto Inspeção, revisão e refinamento da solução técnica empregada no projeto Definição de prioridades de desenvolvimento no projeto Auxílio na estratégia e revisão da solução técnica Planejamento, melhoria e mediação da comunicação entre membros da equipe do projeto Resolução de conflitos Estimativas de tamanho (APF), custos e orçamentação Gerente de Projeto Organização de equipe do projeto Desenvolvimento e acompanhamento de cronogramas do projeto Avaliação do cumprimento de compromissos e requisitos do projeto Verificação se procedimentos internos formais estão sendo seguidos e, não elevando custos internos (treinamento, retrabalho, atrasos) Gerenciamento de recursos financeiros, técnicos e humanos do projeto Gerenciamento de objetivos Alcançar os objetivos do projeto, no prazo acordado, com o custo orçado e contribuindo para a competitividade do negócio do cliente Gerenciamento de problemas Planejamento de treinamento, instalação do produto de software no ambiente alvo do cliente Controle de mudanças de escopo do projeto Líder de Equipe de Projeto Entendimento e levantamento de necessidades junto ao cliente Definição processo produtivo de realização do projeto Resolução de conflitos Manutenção de foco e prioridades Organização de equipe do projeto Estimativas de tamanho do produto (APF) Especificação e revisão da solução técnicaSEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 10Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJhttp://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  11. 11. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIA Definição das prioridades de desenvolvimento no projeto Auxílio na definição de arquitetura e componentes da solução técnica Modelagem de dados Inspeção de requisitos Padronizar a construção dos subprodutos (entregáveis) previstos pelo plano do projeto Planejamento da certificação interna do produto do projeto Planejamento da entrega do produto do projeto Acompanhamento da operação inicial do produto no ambiente alvo do cliente Apoio na revisão de planos de testes Apoio na execução de planos de testes Elaboração de relatórios de progresso Reportar o andamento das atividades ao gerente de projeto Controlar e monitorar cronograma de entregas de release Orientar a equipe na realização de atividades do processo produtivo do projeto Orientar a equipe na construção dos subprodutos (entregáveis) previstos pelo plano do projeto Reportar progresso das atividades ao cliente Argumentar para equipe do projeto que o trabalho de desenvolvimento de software é totalmente independente do ego: • O êxito ou fracasso é resultado da equipe e, nunca de membros individuais; • Pessoas são a chave do sucesso; • Poucas pessoas boas é melhor que muitas pessoas ruins; • Fazer correto antes de fazer rápido. Auxiliar o cliente na definição de necessidades Entendimento e levantamento de requisitos e regras de negócio junto ao cliente Especificação de requisitos Modelagem de dados Revisão de requisitos Inspeção de requisitos Planejamento de teste integrado Elaboração de planos de teste Execução de planos de teste Elaboração de planos de implantação Analistas Relatórios de não conformidade Compilação das evidências de teste Elaborar planejamento de instalação de artefatos do produto de software em ambiente alvo de produção Elaborar planejamento de certificação de artefatos do produto de software Auxiliar na definição e especificação de arquitetura e componentes da solução técnica Auxiliar na gerência de configuração do produto de software Auxiliar nas estimativas de tamanho do produto (APF) Auxiliar o cliente na homologação da solução técnica Reportar progresso das atividades ao líder de equipeSEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 11Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJhttp://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  12. 12. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIA Definição padrões de arquitetura de software (Orientada a Serviços, Pipelines, Orientada a Eventos, Cliente-Servidor, Repositório, MVC, MDA, CORBA, ORB, J2EE, Estruturada {Sistemas, Módulos, Sub-rotinas}, .NET) Definição padrões de desenvolvimento (frameworks, design patterns, orientação a componentes, bibliotecas de códigos reusáveis, APIs) Planejamento de desenvolvimento centrado na arquitetura de software: • Particionamento funcional do domínio de aplicação; • Definição da estrutura de software (componentes e suas conexões {comunicação e controle}); Projetistas • Alocação de funcionalidade do domínio na estrutura de software. Definição de ferramentas CASE (Ant, JUnit, Microsoft Web Stress Tools, Borland StarTeam) Definição de ferramentas RAD (wizards, NetBeans, Borland Entreprise Studio, Microsoft Visual Studio) Inspeção de projeto Inspeção de código Definição de arquitetura e componentes da solução técnica Viabilizar gerência de configuração do produto de software Reportar progresso das atividades ao líder de equipe Codificação Teste unitário Inspeção de código Correção de defeitos Apoio ao planejamento de implantação Definição de ferramentas CASE Programadores Seniores Definição de ferramentas RAD (wizards) Definição padrões de programação (refactoring, frameworks, programação orientada a objetos, programação estruturada) Auxiliar na definição de arquitetura e componentes da solução Auxiliar na gerência de configuração do produto de software Reportar progresso das atividades aos projetistas Codificação Teste unitário Programadores Juniores Correção de defeitos Reportar progresso das atividades aos programadores seniores Elaboração de planos de testes Execução de planos de testes Testadores Relatórios de não conformidades Coleta de evidências de testes Reportar progresso das atividades aos analistas Digitação de manuais de usuário Digitação de manuais técnicos Documentadores Digitação de planos de implantação Digitação de especificações gerais Administradores de Banco Criação de bancos de dados de Dados Otimização de query e stored proceduresSEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 12Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJhttp://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  13. 13. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIA Elaboração de planos de execução Planejamento de capacidade de armazenamento de dados Planejamento de execução periódica de rotinas de backup de dados Customização e otimização de servidores de bancos de dados Definições de segurança da rede de computares Definições de links de comunicação de dados Criação de contas, grupos e domínios de usuários Administradores de Redes Planejamento de execução periódica de rotinas de backup de dados de Computadores Planejamento de capacidade de tráfego de dados Customização e otimização de servidores de arquivos Customização e otimização de servidores de conteúdo para Internet Customização e otimização de servidores de aplicação Tabela 4 – Detalhamento de matriz de habilidades para equipe do projeto Fonte: do autor6. Planejando o Processo Produtivo do Projeto de Software6.1. Processo de Gerência de ProjetoDefine as atividades essenciais a serem praticadas na coordenação do desenvolvimento de umproduto de software.Neste processo o gerente de projeto executa as seguintes atividades:− Planejamento: decidir ‘o que fazer’, ‘como fazer’, ‘quando fazer’ e ‘quem deve fazer’;− Organização: definir estrutura organizacional, eficiente e eficaz, que facilite a execução das atividades do projeto, que estabeleça autoridades e defina responsabilidades para execução dessas atividades;− Seleção de Pessoal: selecionar, treinar e desenvolver pessoas para ocupar os cargos definidos na estrutura organizacional;− Liderança: executar tarefas que motivem as pessoas a executar as tarefas definidas;− Controle: garantir que a execução do projeto ocorra conforme o planejado. Medir desempenho e resultados, identificar desvios e definir ações corretivas;− Estimação: elaborar estimativas de custo, tamanho, cronograma e esforço para viabilizar a execução do projeto de software.Os procedimentos técnicos envolvidos na realização deste processo incluem:− Estimativas de tamanho por Análise de Pontos Por Função ou COCOMO II;− Práticas PMI (PMBOK).Dentre as ferramentas a serem utilizadas como repositório dos itens de configuração:− Microsoft SharePoint (repositório de documentação);− Microsoft Office (plano de projeto);SEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 13Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJhttp://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  14. 14. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIA− Microsoft Report Server (relatórios gerenciais);− Microsoft Project (cronograma);− Microsoft Visio (timeline).Dentre os artefatos resultantes da execução deste processo incluem:− Estimativas de Pontos por Função− Proposta de Fornecimento de Serviço de Software− Cronograma de Projeto− Plano de Projeto • Plano de Riscos • Plano de Comunicação • Plano de Garantia de Qualidade • Plano de Recursos Humanos • Plano de Gerência de Configuração− Diagrama de Marcos do Projeto− Relatório de ProgressoA seguir, citamos alguns exemplos de artefatos gerenciais como modelos a serem observados.a. Exemplo de CronogramaExemplo de cronograma para detalhamento de prazos das atividades que compõem cada fasedo processo de desenvolvimento de software e a rede de precedências.SEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 14Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJhttp://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  15. 15. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIA Figura 5 – Exemplo de cronograma de projeto de software detalhando fases, atividades e tarefas associadas Fonte: do autorSEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 15Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJhttp://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  16. 16. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIAb. Exemplo de Plano de ComunicaçãoO exemplo de plano de comunicação para garantir que as questões sejam conhecidas com a antecedência necessária de forma a minimizar osimpactos sobre o projeto.Escala de Reuniões do ProjetoOrdem dePrecedência da Reuniões do Projeto Periodicidade Participantes ObjetivosComunicaçãoInterna Gerenciar o progresso do projeto como um todo e resolver questões escaladas nas reuniões das equipes de requisitos, projeto técnico e construção, além de Gerente de Projeto determinar as diretrizes gerais do projeto; Reunião da gerência Líder de Equipe Apresentar riscos, problemas e discutir alternativas de solução para avanço do 4 Quinzenal do projeto Analistas projeto; Projetistas Discutir de relatório de progresso do projeto; Discutir feedback obtido junto ao cliente. Definir e priorizar alternativas de solução técnica; Analisar status de progresso das atividades; Revisar status do projeto, milestones e produtos, issues, dependências e riscos e Reunião de equipe de Líder de Equipe identificar issues de infra-estrutura e avaliar questões que devem ser 3 requisitos e projeto Semanal Analistas encaminhadas para reunião com Gerente de Projeto; técnico Projetistas Discutir técnicas de inspeção e revisão (projeto técnico); Melhorar padrões de especificação técnica; Discutir planejamento de homologação e entrada do produto em produção;SEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 16Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJhttp://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  17. 17. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIA Melhorar comunicação interna com equipe de construção. Discutir abordagens de desenvolvimento; Analisar status de progresso das atividades; Discutir problemas e alternativas de solução; Reunião de equipe de Projetistas 2 Semanal Discutir técnicas de inspeção e revisão (código); construção Programadores Discutir entendimento das especificações técnicas. Melhorar comunicação interna com equipes de requisitos, projeto técnico e garantia de qualidade. Discutir e planejar o esforço de teste a ser executado; Discutir técnicas de inspeção e revisão (requisitos); Apresentar problemas quando da realização das últimas tarefas de testes; Líder de Equipe Discutir formas de melhorar comunicação com equipe de construção; Reunião de equipe de 1 Semanal Analistas garantia de qualidade Priorizar issues apresentados pelo cliente; Testadores Revisar defeitos nas especificações de requisitos; Discutir novas abordagens de teste e automação do processo de teste; Compilação das evidências de teste; Quadro 1 – Exemplo de matriz de reuniões da equipe do projeto Fonte: do autorSEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 17Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJhttp://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  18. 18. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIAMatriz de Participação em Reuniões do ProjetoReuniões do Projeto Gerente do Projeto Líder de Equipe Analistas Projetistas Programadores TestadoresReunião da gerência do X X X XprojetoReunião de equipe de X X Xrequisitos e projeto técnicoReunião de equipe de X XconstruçãoReunião de equipe de X X Xgarantia de qualidade Tabela 5 – Exemplo de matriz de participação nas reuniões do projeto Fonte: do autorSEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 18Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJhttp://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  19. 19. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIA c. Exemplo de Plano de Risco O exemplo de matriz de risco para detalhamento de medidas de contingência e mitigação de riscos do projeto. ProbabilidadeRisco Efeito Impacto do Risco Mitigação do Risco Contingência ao Risco /Prioridade Construção do software errado; Construção de protótipos; Realização de um contrato deMá compreensão dos Moderada/Alta Catastrófico Degradação do orçamento e Revisão de casos de uso com cliente; seguro, a fim de cobrir qualquerrequisitos cronograma. Inspeções de requisitos. perda financeira. Remanejamento de atividades ao Treinamento cruzado; pessoal de maior talento e Atraso na entrega do produto; Pessoal principal previamente experiência;Perda de pessoal Moderada/Alta Sério Elevação de custos por conta de agendado (comprometimento); Negociação de novos prazos finaisfundamental treinamento e ambientação de pessoal. Cuidado com aspectos morais da de entrega do produto; equipe (confiança, etc.). Contratação de pessoal externo ao projeto em caráter temporário. Não realização de testes de Aceleração do desenvolvimento por regressão; Entrega do produto com defeitos reutilização de software; Certificação das funcionalidadesTempo insuficiente para críticos; Desenvolvimento incremental com Moderada/Alta Sério mais relevantes do release a serrealização de testes Desempenho não aceitável. liberação de releases intermediárias do liberado; produto, certificando grupos de Negociação de novos prazos de funcionalidades independentes. entrega. Estimativa detalhada de custo e Realização de contrato de seguro; Atraso na entrega do produto; cronograma, a partir de várias fontes de Renegociação de prazos e Insuficiência de verba para conclusão doCronogramas e informação; orçamento com cliente. Moderada/Alta Catastrófico projeto;orçamentos não realistas Projeto de acordo com o custo; Sem compensação financeira para Simplificação dos requisitos; equipe do projeto. Reutilização de software. SEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 19 Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJ http://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  20. 20. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIA Não aceitação pelo usuário final; Realização de contrato de seguro;Desenvolvimento de Construção de protótipos; Aumento dos custos do projeto por Renegociação de prazos einterface do usuário Moderada/Alta Catastrófico Revisão de requisitos de usabilidade retrabalho; orçamento com cliente.inadequada com área usuária. Ampliação do prazo final. Atraso na entrega do produto; Orçamento por homem-hora e não Criação de projeto técnico flexível;Fluxo contínuo de Aumento dos custos do projeto; por projeto fechado; Desenvolvimento incremental,modificações nos Moderada/Alta Sério Retrabalho; Renegociação de prazos e protelando mudanças para fasesrequisitos Diminuição da produtividade e moral da orçamento com cliente. posteriores. força de trabalho. Programar algoritmos paralelos na solução; Simulação; Revisão técnica;Insuficiência no Não aceitação pelo usuário final; Instrumentação; Simplificação de requisitos dedesempenho em tempo Moderada/Alta Sério Inviabiliza realização das funções de Otimização de código; desempenho;real negócio. Testes de stress. Análise de custo-benefício; Expansão do tempo e esforço dos testes. Análise de compatibilidade; Realização de contrato de seguro; Iniciar cedo o entendimento e Escolhe de novo fornecedorInsuficiência nos Atraso na entrega do produto; certificação de componentes externo;componentes fornecidos Baixa/Alta Sério Aumento dos custos do projeto; desenvolvidos por terceiros; Renegociação de prazos eexternamente Desempenho não aceitável. Inspeções de conteúdo e orçamento com cliente; funcionalidades; Revisão da solução de integração Benchmarking. no projeto. Quadro 2 – Exemplo de matriz de contingência e mitigação de riscos do projeto Fonte: Adaptado de Rocha, 2001 SEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 20 Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJ http://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  21. 21. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIA6.2. Processo de Garantia da QualidadeDefine as atividades para garantir a conformidade dos processos e produtos de software, nociclo de vida do projeto, com seus requisitos especificados e sua aderência aos planosestabelecidos. Esse processo evidencia a relação entre a qualidade do produto e a qualidade doprocesso de software utilizado em sua construção. O processo de garantia da qualidade deveestar coordenado com tarefas de verificação, validação, revisão e resolução de problemas.Na realização deste processo estão envolvidos gerente, analistas, projetistas, testadores eprogramadores os quais devem observar as atividades descritas adiante.a. Garantia do ProdutoA atividade de garantia do produto implica nas seguintes tarefas técnico-administrativas:− Garantir que todos os planos exigidos pelo contrato de fornecimento estejam de acordo com o mesmo, sejam documentados, estejam mutuamente consistentes e sejam executados quando exigidos;− Garantir que os produtos de software e sua documentação estejam de acordo com o contrato e os planos;− Garantir que os produtos de software satisfaçam totalmente os requisitos contratuais e sejam aceitáveis pelo cliente.b. Garantia do ProcessoA atividade de garantia do processo implica nas seguintes tarefas técnico-administrativas:− Garantir que os processos do ciclo de vida do software utilizados no projeto estejam de acordo com o contrato e os planos;− Garantir que as práticas de engenharia de software, o ambiente de desenvolvimento, o ambiente de teste e as bibliotecas estejam de acordo com o contrato, com as negociações e com os planos;− Garantir, no caso de subcontratação, que os requisitos aplicáveis sejam passados ao subcontrato e que seus produtos de software satisfaçam os requisitos do contrato original;− Garantir que o cliente e outras partes envolvidas o apoio e a cooperação necessários;− Garantir que as medições do produto e do processo de software estejam de acordo com os padrões e procedimentos estabelecidos;− Garantir que a equipe tenha a qualificação e o conhecimento necessários para o projeto e receba todo o treinamento necessário.c. Sistema de Garantia da QualidadeResumidamente, o sistema de garantia da qualidade deve observar as seguintes tarefastécnicas:− Investigar métodos e procedimentos de prevenção de defeitos;− Medir o desempenho dos processos de software descritos nesta norma;− Aprender a identificar as causas dos problemas ou defeitos;− Saber agir corretiva e preventivamente para eliminar esses problemas ou defeitos e, principalmente, as suas causas.SEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 21Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJhttp://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  22. 22. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIAd. Verificação e Validação do SoftwareAs atividades de verificação e validação objetivam minimizar a ocorrência de erros e falhasassociadas no produto de software. O objetivo da verificação é assegurar que o software, ouuma determinada função do mesmo, esteja sendo implementada corretamente. O objetivo davalidação é assegurar que o software que está sendo desenvolvido é o software correto deacordo com os requisitos do cliente.A condução efetiva das atividades de verificação e validação requer a elaboração de ummodelo de erros que capte os erros típicos, os riscos associados, a freqüência de ocorrência edemais aspectos relevantes, de maneira que a experiência e o conhecimento dedesenvolvimento de software da equipe de projeto sejam utilizados em planejamentos futurospara novos projetos. O número de locais no produto que podem conter erros é praticamenteinfinito para fins práticos e, portanto, a adoção de estratégia baseada em um modelo de errostende a conduzir as atividades de V&V com maior eficiência e produtividade. O papel domodelo de erros é orientar a procura por erros nos locais que apresentam, segundoinformações estatísticas, maiores probabilidades de apresentarem defeitos. Um ‘bom’ modelode erros é capaz de retratar os defeitos e seus atributos contidos em sistemas reais. O modelode erros deve ser mantido em base histórica de incidentes em repositório de documentação.Neste caso específico, a ferramenta Microsoft SharePoint pode ser utilizada para armazenaresse conhecimento na forma de lista de histórico dos incidentes do projeto.Ressaltamos também que, um Modelo de Casos de Uso estabelece uma base de concordânciaentre o cliente e desenvolvedores sobre o que o sistema de software deve fazer e, nestesentido, este artefato possibilita a validação se o sistema de software está sendo modelado emconformidade com regras de funcionamento esperadas pelo cliente, constituindo emferramenta de apoio à garantia de qualidade:− Inspeção de requisitos (identificar defeitos na definição): • Estão corretos, consistentes, sem ambigüidades, completos;− Validação de requisitos (conceber o software correto): • Estão refletindo a realidade, sem omissão, sem informação estranha;As atividades de verificação e validação compreendem tarefas técnicas descritas nas próximasseções.Análise EstáticaA análise estática não envolve a execução propriamente dita do produto de software e visadeterminar propriedades do produto válidas para qualquer execução do produto final. Aanálise estática pode e deve ser aplicada em qualquer artefato de software gerado notranscorrer do processo de desenvolvimento. Os métodos empregados na realização de análiseestática incluem as revisões de requisitos (PBR – Perspective-Based Reading), revisões deprojeto (OORT – Object-Oriented Readind Techniques), revisões de código (Refactoring),análise da árvore de falhas, compilação e otimização de código.Análise DinâmicaA análise dinâmica tem por objetivo detectar defeitos ou erros no software e envolve aexecução do produto. As tarefas de simulação e teste constituem uma análise dinâmica doproduto. O teste de software é uma tarefa usada para fornecer evidências da confiabilidade doSEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 22Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJhttp://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  23. 23. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIAsoftware em complemento às revisões de software. As informações obtidas durante asrevisões são extremamente úteis para o teste por permitirem a identificação dos móduloscríticos e propensos a erros.A liberação de novo release do produto não é permitida sem antes haver uma conduçãosistemática de análise dinâmica e avaliação dos resultados alcançados.Os métodos empregados na realização de análise dinâmica incluem a adoção de técnicas deteste (funcional, estrutural, baseada em erros, baseada em máquinas de estado finito) a seremutilizadas para estabelecer planos de testes, casos de teste, critérios de teste e a própriarealização dos procedimentos de teste, de modo a verificar se os requisitos especificados parao software foram corretamente implementados.Verificação Propriamente DitaOutras tarefas de escopo da verificação de acordo com a norma ISO/IEC 12207 incluem:− Verificação do contrato;− Verificação do processo;− Verificação de requisitos;− Verificação do projeto;− Verificação do código;− Verificação da integração;− Verificação da documentação.Validação Propriamente DitaOutras tarefas de escopo da validação de acordo com a norma ISO/IEC 12207 incluem:− Preparar os requisitos de teste, casos de teste, planos de teste para analisar os resultados;− Assegurar-se de que esses artefatos de teste reflitam os requisitos particulares para um uso específico do software;− Conduzir testes considerando teste de estresse, de carga e de entradas específicas, avaliando a habilidade do produto de software para isolar e minimizar os efeitos de erros;− Conduzir testes com usuários representativos para avaliar se eles conseguem realizar suas tarefas usando o produto de software;− Validar se o produto de software satisfaz seu uso específico e testar o produto de software propriamente no seu ambiente-alvo.e. Teste de SoftwareO teste de software é uma atividade crítica de garantia de qualidade que consiste na análisedinâmica do produto, ou seja, na execução do produto de software com o objetivo de verificara presença de defeitos e aumentar a confiança na correção do software. A atividade de testeenvolve a execução das etapas de planejamento, projeto de casos de teste, execução eavaliação de resultados. No planejamento da atividade de teste são estimados recursos e sãodefinidos estratégias, métodos e técnicas de teste, caracterizando-se um critério de aceitaçãodo software em desenvolvimento. Em geral, atividade de teste não pode mostrar a correção deum software, pois o conjunto dos dados de entrada normalmente é infinito ou muito extenso, aSEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 23Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJhttp://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br
  24. 24. PÓS-GRADUAÇÃO EM GERENCIAMENTO DE PROJETOS - UFRJ SEGRAC – NÚCLEO DE PESQUISA EM CIÊNCIAS DA ENGENHARIAponto de ser inviável testar todas as possibilidades, o que corresponderia ao teste exaustivo,pelo qual a correção poderia ser comprovada. A atividade de teste é dividida em fases visandominimizar a complexidade, tanto na abordagem desenvolvimento procedimental quanto naorientada a objetos. Basicamente, há três fases de teste: de unidade, de integração e desistema.Técnicas de Teste As técnicas de teste são classificadas de acordo com a origem das informações utilizadas paraestabelecer os requisitos de teste, a saber:− Técnica Funcional ou Caixa Preta;− Técnica Estrutural ou Caixa Branca;− Técnica Baseada em Erros;− Técnica Baseada em Máquinas de Estado Finito.Critérios de TesteUm critério de teste serve para selecionar e avaliar casos de teste de forma a aumentar aspossibilidades de revelar a presença de defeitos ou, quando isso não ocorre, estabelecer umnível elevado de confiança na correção do produto. Um caso de teste é um par ordenadocomposto por um dado de entrada, isto é, um elemento do domínio de entrada, e pela saídaesperada.Os critérios de teste podem ser utilizados como:− Critério de adequação de casos de teste;− Critério de geração de casos de teste.As propriedades mínimas desejáveis em um critério de teste são:− Garantir, do ponto de vista do fluxo de controle, a execução de todas as transferências de fluxo de controle;− Exigir, do ponto de vista do fluxo de dados, ao menos um uso de todo resultado computacional;− Exigir um conjunto de casos de teste finito.f. Revisões de SoftwareAs revisões (inspeções) no produto de software compreendem o ideal de assegurar que oartefato produzido, seja ele um documento, especificação de requisitos, projeto técnico ououtro resultado a ser fornecido, possui qualidade suficiente para ser utilizado por seu usuário.Os artefatos são revisados ao longo do processo de desenvolvimento de software, paragarantir que a equipe de projeto esteja utilizando documentos pelo menos com a qualidademínima especificada. As revisões de software são aplicadas a código-fonte, projeto técnico,requisitos durante o processo de desenvolvimento, de maneira a encontrar defeitos. Osdefeitos encontrados pelas revisões de software referem-se à faltas. Uma falta em algumartefato estático – pro exemplo, diagrama de projeto – é importante por levar aimplementações nas quais as falhas ocorrem. Defeitos encontrados por teste representamsempre falhas do software e podem ser rastreadas por meio de depuração.SEGRAC – Núcleo de Pesquisa em Ciências da Engenharia 24Escola Politécnica da Universidade Federal do Rio de Janeiro -CT– Bloco A – 2º andar - Cidade Universitária – Rio de Janeiro – RJhttp://www.segrac.poli.ufrj.br – segrac@poli.ufrj.br

×