Prévia do material em texto
Gerenciamento e Planejamento de Software Entendimento Modificação Revalidação Projeto Codificação Teste Análise de Sistema Planejamento Análise de Requisitos Processo de Desenvolvimento de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO Processo de Desenvolvimento de Software Gerência e Planejamento Entendimento Modificação Revalidação Análise de Sistema Planejamento Análise de Requisitos DEFINIÇÃO Projeto Codificação Teste MANUTENÇÃOCONSTRUÇÃO Envolve planejamento, monitoramento e controle Métodos PessoasPolíticas Ferramentas Importância do Planejamento no Processo de Desenvolvimento Requisitos De Software Produto Cumprimento De Prazo, Boa Previsão De Custo, Boa Produtividade Responsabilidades Gerência Eficaz Controle das Atividades Por que Planejar? �Criar propostas que sejam econômicas e realizadas com recursos financeiros pré-estabelecidos �Que estejam de acordo com as necessidades requisitadas � Representem especificamente o que se pode fazer Gerência de Projeto de Software � Atividade guarda chuva - abrange todo o processo de desenvolvimento � possibilita compreender o escopo do trabalho, riscos, recursos exigidos, tarefas a executar, programação(cronograma) a ser seguida, esforço despendido � Enfoque principal: (4 P´s) Produto, Pessoa, Processo e Projeto � atividade fundamental: planejamento “ o tempo é o bem mais valioso que está disponível a um Engenheiro de Software. Se houver tempo disponível, um problema pode ser adequadamente analisado, uma solução pode ser compreensivamente projetada, o código fonte cuidadosamente implementado e testado Nunca há tempo suficiente ... ” Antes de começar um trabalho, é necessário despender tempo para organizar as ações. O planejamento de projeto de software obriga gerentes e profissionais a despender esse tempo Preocupações da Gerência de Projeto • qualidade do produto • avaliação dos riscos • medidas • estimativa de custo • cronograma do projeto • equipe • outros recursos • monitoramento do projeto Preocupações da gerência - os 4P´s � Produto - software a ser construído (objetivo, escopo, soluções). � Pessoa - elemento mais importante de um projeto bem sucedido (competências). � Processo - conjunto de atividades e tarefas da engenharia de software. � Projeto - todo trabalho exigido para tornar o produto uma realidade. Projetos de software Fatores que influenciam o resultado final: • tamanho • data de entrega • custos e orçamentos • domínio da aplicação • tecnologia a ser implantada • restrições do sistema • requisitos do usuário • recursos disponíveis Projetos de software Porque os projetos falham ? • Data de entrega estabelecida não realística •Mudanças nos requisitos do cliente • Esforço necessário subestimado • Riscos previsíveis e/ou imprevisíveis • Dificuldades técnicas • Falta de comunicação entre a equipe de projeto • Falha no gerenciamento do projeto Tarefas do Planejamento � determinar o alcance do trabalho a ser realizado: função, desempenho, interface e segurança � estimar recursos necessários ao desenvolvimento do software: recursos humanos, de hardware e de software � identificar tarefas a serem efetuadas � elaborar cronogramas � estimar esforço (custo) despendido Atividades do Planejamento Combina 2 Tarefas Pesquisa Estimativa define o alcance do software; utiliza a especificação do sistema como guia Incerteza PLANO DE PROJETO DE SOFTWARE Plano de Projeto de Software Objetivos: • comunicar o escopo e os recursos de gerenciamento de software, ao pessoal técnico e ao cliente de software • definir os riscos e sugerir técnicas para evitá-los • definir custos e prazos para revisões gerenciais • oferecer uma abordagem geral ao desenvolvimento de software para todas as pessoas envolvidas no projeto • definir como a qualidade será garantida e mudanças gerenciadas Plano de Projeto de Software • inicie com uma declaração explícita do trabalho a ser feito e verifique se corresponde ao que o cliente espera • em projetos médios e grandes, criam-se subprojetos menores e estima-os separadamente • baseie suas estimativas em dados históricos de projetos semelhantes Plano de Projeto de Software • registre suas estimativas para comparar com os resultados reais no final do projeto • planejamento continua durante desenvolvimento e manutenção • planejamento inicial não é suficiente • planejamento detalhado mais cedo possível (só é possível após a especificação de requisitos) O que é um Plano? • documento que define os recursos disponíveis para o projeto, o trabalho que deverá ser realizado e um cronograma para a realização desse trabalho • apresenta estimativas de tempo e recursos exigidos e um contexto para gerenciamento de controle e revisão para cada tarefa maior • serve de benchmark para comparar com projetos anteriores, quando documentado apropriadamente Esboço do Plano Capa Resumo I. Índice II. Introdução 1. Motivação 2. Objetivos 3. Escopo 4. Público alvo 5. Restrições e riscos III. Descrição da Arquitetura IV. Recursos do Projeto 1. Pessoal 2. Hardware 3. Software V. Estimativas de custo de desenvolvimento VI. Cronograma 1. Rede de tarefas, 2. gráficos de Grantt 3. tabela de recursos X tarefas VII. Conclusões em processo Plano de Projeto-Introdução Enfoque: I- PRODUTO Estabelecer o escopo do software • assegurar que o produto desenvolvido é o produto solicitado • Escopo •contexto (negócio, restrições, etc) •informação objetiva (entrada, saída) • função e desempenho • Decomposição: estabelecer o particionamento funcional (núcleo da análise de requisitos) Plano de Projeto-Recursos IV. RECURSOS DO PROJETO 1. Pessoal 2. Hardware 3. Software Especificar: •habilidades exigidas •disponibilidade •duração das tarefas •data de início Especificar: •descrição •disponibilidade •duração do uso •data de entrega Pessoas Reutilização de Software Ferramentas de Hardware/Software •Menor custo •menor risco •cuidado com mudanças Plano de Projeto-Recursos Pessoa: motivação, habilidades, conhecimento ... � Projetos Pequenos: uma única pessoa � Projetos Grandes: participação várias pessoas através do ciclo de vida Plano de Projeto-Recursos Recursos Humanos: Mito: “Se sairmos fora do cronograma, adicionamos mais programadores e recuperamos o atraso”. Isso pode fazer com que o cronograma atrase ainda mais! Motivo: a comunicação é absolutamente essencial para o desenvolvimento do software. Todo novo caminho de comunicação exige esforço adicional e portanto, tempo adicional. Plano de Projeto-Recursos Recursos Humanos: Análise de requisitos baixo alto Grau de participação no projeto Planejamento Projeto preliminar Pessoal técnico senior Pessoal técnico junior Administrador Projeto detalhado Codificação Teste de unidade Administrador •Pessoal Técnico Senior •Pessoal Técnico Júnior Plano de Projeto-Organização do Pessoal Estrutura de Equipe: � Deve ser considerado o fator humano em seus aspectos psicológicos, individuais e grupais e o reflexo deles no desempenho da equipe � Principais estruturas de equipe: � Equipe Convencional � Equipe Democrática descentralizada � Equipe de Programador Chefe � Equipe Hierárquica Plano de Projeto-Organização do Pessoal Estrutura de Equipe: � Equipe Convencional � Composta pelo pessoal disponível � É designado um gerente de desenvolvimentodo projeto � O trabalho é dividido pelos componentes da equipe � Cada um é responsável pelo projeto e implementação da sua parte no trabalho � Traz um certo sentimento de posse � Tendência a esconder e mesmo não ver os próprios erros Plano de Projeto-Organização do Pessoal Estrutura de Equipe: � Equipe Democrática descentralizada � Relações e comunicações informais entre os seus componentes � Não tem um líder permanente � A liderança fica com o indivíduo que tiver maior capacitação para resolver o problema em pauta � Todos os programas são examinados por outros programadores, além daquele que o escreveu Plano de Projeto-Organização do Pessoal Estrutura de Equipe: � Equipe Programador Chefe � Pequeno número de componentes � Comunicações centralizadas no programador chefe � Decisões tomadas nos níveis mais elevados � O programador chefe tem que ser muito experiente e capacitado para a função Plano de Projeto-Organização do Pessoal Estrutura de Equipe: � Equipe Hierárquica � Proposta de estrutura intermediária � um líder de projeto dirige programadores experientes � cada um desses programadores dirige grupo de programadores menos experientes � comunicação descentralizada nos subgrupos e centralizada nos níveis superiores � o chefe de subgrupo transmite informações para seu subgrupo (elemento de ligação com os outros subgrupos) Exercício Pessoas: � Em grupo elaborar resumo de aptidões pessoais � Definir o papel de cada integrante do grupo baseado nas aptidões listadas anteriormente � Tempo: 10 minutos Plano de Projeto-Recursos Recursos de Hardware: � Hardware de desenvolvimento: usado durante o desenvolvimento (pode ser mais robusto) � Máquina alvo: hardware em que o sistema vai rodar depois de pronto � Outros elementos: hardware que interage com o novo sistema Exercício Recursos de Hardware: � Definir os recursos de Hardware que será utilizado para o desenvolvimento do projeto de controle de conferências � Desenvolvimento � Teste � Máquina alvo � Outros elementos � Tempo: 5 minutos Plano de Projeto-Recursos Recursos de Software: Banco de Dados CASE FERRAMENTAS DE: Planejamento de Sistemas de Informação Gerenciamento de Projetos Apoio Análise e Projeto Programação Integração e Teste Construção de Protótipos e Simulação Manutanção Plano de Projeto-Recursos Recursos de Software: Se o software existente cumprir os requisitos, adquira-o; em geral é mais barato. Se o software existente exigir alguma modificação, cuidado! Pode ficar mais caro que desenvolver. Comprar (reutilizar) X Desenvolver Exercício � Definir recursos de software utilizados para o sistema de controle de conferências � O que se vai comprar / sw livre � O que se vai desenvolver � Software de apoio (ferramentas desenvolvimento, gerenciamento, etc..) �Tempo: 5 minutos Tarefas � Dividir para conquistar � Normalmente atribuída a uma pessoa � Maior facilidade para estimativas � Pode-se associar especialidades necessárias para sua realização � Podem gerar (parte de) resultados desejáveis (milestones) Exemplos de Tarefas � Entrevistar Clientes � Reuniões � Projetar Interfaces � Criar Relatório � Atualizar o Site � Testar Classe Exercício � Com o objetivo de elaborar o site do projeto de controle de conferências pede-se: �Quais as tarefas principais �Estimativa de tempo �Definir os milestones de cada tarefa (ponto final de uma atividade – marco no cronograma) �Definir os deliverables (resultado a ser entregue ao cliente) � Tempo: 15 minutos Cronograma do Projeto � Decompor o projeto em tarefas e estimar o tempo e recursos necessários para completar cada tarefa � Organizar as tarefas concorrentemente de forma a obter maior eficiência da força de trabalho � Minimizar as dependências entre tarefas para evitar atrasos Cronograma do Projeto � Tabela de Tarefas Tarefas Duração (dias) Dependências T1 8 ---- T2 10 ---- T3 5 T1 T4 8 T2 e T3 Cronograma do Projeto � Rede de Atividade Tempo de Desenvolvimento � Pode ser extraído da Rede de Atividades � Determinação do Caminho Crítico (caminho que leva mais tempo para ser concluído) � Gerente deve dar especial atenção ao Caminho Crítico � É crucial ter folgas no Caminho Crítico Custo do Projeto � Recursos Humanos (R$ / Hora) � Instalações (fone, luz, etc…) � Reuniões (tempo, pessoa, etc…) � Material (escritório, informática, etc…) Exercício � Fazer o planejamento do sistema de hotel onde conste: � Tarefas principais (tempo, milestones) � Recursos (Humanos, Hw e Sw) � Alocação de Recursos às tarefas � Previsão de Compras (Hw, Sw, materiais) � Caminho Crítico � Tempo: 10/10/2011 (Turma B) ou 19/10/2011 (Turma A) Pontos-Chaves � Gerenciamento de Projeto está estreitamente relacionado à Qualidade de Processo � O Gerenciamento concentra-se em atividades que têm por objetivo assegurar que o software seja liberado no prazo, de acordo com o cronograma, e atenda aos requisitos das organizações envolvidas � Atividade principal - Planejamento Projetos bem gerenciados algumas vezes falham; projetos mal gerenciados falham inevitavelmente. Planejamento e Gerenciamento � O que e como faremos? � Quem fará o quê? � Quanto tempo levaremos? � O que poderá dá errado (riscos)? � O que usaremos? � Quanto custará? � Como estamos indo? � Estamos documentando (tempo, etc.)?