1. Gerenciamento de Configuração de Software
1.1. Conflitos
1.1.1. Situação onde não é possível executar a junção de forma automática
1.2. Controle de Concorrência
1.2.1. Otimista
1.2.1.1. Política copia-modifica-resolve. Dois desenvolvedores ou mais podem trabalhar simultaneamente sobre um mesmo item e no momento de salvar a nova versão resolvem entre si possíveis interferências
1.2.2. Pessimista
1.2.2.1. Política trava-modifica-destrava. Um desenvolvedor que copia um item para modificá-lo deve travar o item no repositório, de forma que nenhum outro desenvolvedor poderá alterá-lo até que a modificação seja concluída e a nova versão salva.
1.3. O processo de gerência de configuração é um processo de aplicação de procedimentos administrativos e técnicos, por todo o ciclo da vida de software, destinado a:
1.3.1. Controlar o armazenamento, a manipulação e a distribuição dos itens
1.3.2. Registrar e apresentar a situação dos itens e dos pedidos de modificação
1.3.3. Garantir a completeza, a consistência e a correção dos itens
1.3.4. Controlar as modificações e liberações dos itens
1.3.5. Identificar e definir os itens de software em um sistema, e estabelecer suas vba
1.4. O que a gerência de configuração gerencia?
1.4.1. Artefatos de Software
1.4.2. Controle de mudanças
1.4.3. Executáveis de Sistemas
1.4.4. Compartilhamento multiponto
1.4.4.1. Problemas; Modificações efetuadas por um usuário não são comunicadas a todos os interessados nos artefatos, gerando incompatibilidades de versões.
1.5. Equipe pequenas, solução simples
1.5.1. Os artefatos de software utiliados ficam em uma pasta da rede e todos acessam a partir de lá.
1.5.1.1. Problemas: Perda de trabalho devido a falta de exclusão mútua nos acessos às bibliotecas centralizadas
1.6. Controlar versões
1.6.1. É o processo de identificar, organizar e controlar modificações nos itens de configuração durante a evolução do projeto,
1.6.2. A cada mudança em um artefato, a versão antiga continua armazenada e pode ser acessada para resolver conflitos ou tirar alguma dúvida.
1.6.3. As mudanças nos artefatos são sempre associadas a pessoa que a realizou.
1.6.4. As alterações nos artefatos podem ser feitas em paralelo, abrindo um ramo (branch) na linha principal de um documento.
1.7. Revisões http://2.bp.blogspot.com/-DiMjdapGzWo/ToHnIkESYtI/AAAAAAAABqo/Wpe5msKTbW4/s1600/Esr-release-overview.png
1.7.1. Instâncias de um mesmo item de configuração que diferem entre si em algo
1.8. Repositório
1.8.1. Local onde os itens de configuração são armazedos.
1.8.2. Repositório online
1.9. Check-In
1.9.1. O desenvolvedor vai fazer as alterações nesta cópia do item e posteriormente salvar no repositório uma nova versão do item.
1.10. Check-Out
1.10.1. Os desenvolvedores não trabalham diretamente sobre os itens do repositório, mas sobre cópias destes itens. Assim, um desenvolvedor deve solicitar acesso a um determinado item no repositório, obtendo uma cópia deste.
1.11. Lock
1.11.1. Garante que apenas o usuário que detém o lock pode alterar o arquivo.
1.12. Tags
1.12.1. Exemplo
1.12.2. Marcações que são ligadas a conjuntos de arquivos.
1.13. Branch
1.13.1. Criação de um fluxo alternativo para atualização de revisões de itens de configuração
1.14. Merge
1.14.1. Unificação de diferentes versões de um mesmo item de configuração. Integra o itens de um branch com os itens de configuração do fluxo principal.
1.15. Release
1.15.1. Versão do sistema valida após os diversos tipos de teste.
2. Introdução ao gerenciamento de projetos de Software
2.1. Projeto x Operação continuada
2.1.1. É um empreendimento temporário que cria um produto, serviço ou resultado exclusivo (PMI).
2.1.2. Projeto
2.1.2.1. Características dos projetos
2.1.2.1.1. Propósito único
2.1.2.1.2. Temporário
2.1.2.1.3. Utiliza recursos
2.1.2.1.4. Elaboração progressiva
2.1.2.1.5. Envolve incertezas
2.1.2.2. É um processo único, consistindo em um grupo de atividades coordenadas e controladas.
2.1.2.3. Um projeto deve atingir metas em um tempo determinado, contando com inicio e fim e utiliza recursos(Ex: Construir uma casa).
2.1.3. Operações continuadas
2.1.3.1. São operações permanentes, contínuas e repetitivas (garantem o funcionamento da organização).
2.2. Gerenciamento de Projetos
2.2.1. O gerenciamento de projetos é a aplicação de conhecimento, habilidades, ferramentas e técnicas às atividades do projeto a fim de cumprir seus requisitos." PMBOK
2.2.2. "Fazer o projeto acontecer. É o planejamento do projeto e, depois, a execução do plano para levar o projeto a uma conclusão bem-sucedida." Fergus O'Connel
2.2.3. PMBOK
2.2.3.1. É um guia que apresenta um conjunto de práticas na gestão de projetos organizado pelo instituto PMI e é considerado a base do conhecimento sobre gestão de projetos por profissionais da área.
2.2.3.2. O Guia PMBOK reconhece 47 processos que recaem em 5 grupos de processos e 10 áreas de conhecimento que são típicas em quase todas áreas de projetos.
2.2.3.3. Áreas de conhecimento PMBOK
2.2.3.3.1. Aquisição: adquirir bens e serviços externos a organização executante do projeto
2.2.3.3.2. Risco: assegurar a identificação, análise, planejamento, monitoramento e controle dos riscos do projeto
2.2.3.3.3. Integração: assegurar que os vários elementos do projeto estão sendo coordenados de maneira apropriada
2.2.3.3.4. Escopo: assegurar que o projeto inclui todo o trabalho necessário para o sucesso do projeto e somente este
2.2.3.3.5. Custo: assegurar que o projeto será concluído dentro do orçamento aprovado
2.2.3.3.6. Tempo: assegurar que o projeto será concluído no prazo estimado
2.2.3.3.7. Qualidade: assegurar que o projeto atenderá aos requisitos de qualidade estabelecidos
2.2.3.3.8. Recursos Humanos: assegurar o uso mais efetivo dos recursos humanos do projeto
2.2.3.3.9. Comunicação: assegurar a geração, coleta, disseminação, armazenamento e disponibilização das informações do projeto a tempo e de maneira apropriada
2.2.3.3.10. Partes Interessadas: assegurar o bom relacionamento com as partes interessadas do projeto
2.3. Estrutura Analítica do Projeto
2.3.1. Exemprlo de EAP
2.3.2. Cada nível descendente representa uma definição cada vez mais detalhada
2.3.3. Subdivide o trabalho do projeto por partes menores e mais facilmente gerenciáveis
2.3.4. Organiza e define o escopo total do projeto
2.3.5. Decomposição hierárquica orientada à entrega do trabalho pela equipe do projeto
2.3.6. Os níveis mais baixo, denominados pacotes de trabalho, são adequados para agendar, estimar custos, monitorar e controlar o trabalho planejado
2.4. O Gerente e a Equipe do Projeto
2.4.1. Gerente de Projetos
2.4.1.1. É uma pessoa designada pela organização executora para atingir os objetivos do projeto.
2.4.1.2. Características
2.4.1.2.1. Liderança sobre a equipe
2.4.1.2.2. Capacidade de negocição
2.4.1.2.3. Habilidade de comunicação
2.4.1.2.4. Raciocínio lógico e analítico
2.4.1.2.5. Capacidade de administrar conflitos
2.4.1.2.6. Capacidade de solução de problemas
2.4.1.2.7. Capacidade de adaptação
2.4.1.2.8. Orientação a processos
2.4.1.2.9. Organização
2.4.1.2.10. Capacidade de administrar o tempo
2.4.1.2.11. Comprometimento e responsabilidade
2.4.2. Desenvolver a Equipe do Projeto
2.4.2.1. Desenvolver a equipe é um processo de melhoria de competências, da interação da equipe e do ambiente global da equipe para aprimorar o desempenho do projeto.
2.4.2.2. Seu benefício é resultar uma melhoria no trabalho de equipe, melhorando as competências aprimoradas, empregos motivados, taxas reduzidas de rotatividade de pessoal, e numa melhoria do desempenho do projeto.
3. Try MeisterTask!
4. Estimativas de Software
4.1. Métricas de Software
4.1.1. Análise de pontos de função
4.1.1.1. É uma técnica paramétrica para estimação de esforço para desenvolvimento de software.
4.1.1.2. Esses requisitos serão convertidos em valores numéricos, que depois de ajustados à capacidade da empresa desenvolvedora, representarão o esforço necessário para desenvolver o sistema.
4.1.1.3. Assim, a medida obtida pela técnica é, a princípio, independente de linguagem de programação e de tecnologia empregada.
4.1.2. Análise de pontos de caso de uso
4.1.3. Análise de pontos de história
4.2. Como medir o tamanho de um software?
4.2.1. Horas trabalhadas no desenvolvimento do software
4.2.2. Número de Requisitos
4.2.3. Número de funcionalidades disponíveis para o usuário
4.2.4. Quantidade de arquivos fontes
4.2.5. Número de linhas para cada código fonte
4.2.6. Satisfação do usuário
4.2.7. Qualidade
4.3. Processo de Contagem
4.3.1. Determinação do tipo de contagem
4.3.2. Fronteiras da aplicação
4.3.3. Contar funções de dados
4.3.4. Contar funções de transação
4.3.5. Cálculo dos pontos de função brutos (não ajustados).
4.3.6. Determinação do fator de ajuste
4.3.7. Cálculo dos pontos de função ajustados