Engenharia de Software: fundamentos, métodos e padrões - segunda edição - conteúdo

1.       Processos: Engenharia de software e ciência da computação. Conceitos fundamentais da engenharia de software: produtos, projetos, requisitos, prazos, custos e qualidade. Processos em engenharia de software. Elementos constituintes de um processo. Exemplos de processos. O processo Praxis: arquitetura, fases, iterações, fluxos, artefatos e garantia da qualidade.

2.       Melhoria dos Processos: Maturidade na produção de software: a crise permanente e a dependência de indivíduos. Problemas de escala. Principais riscos dos projetos de software.Princípios da melhoria de processos de software. Mal-entendidos comuns. Os benefícios da melhoria dos processos. Estratégias para a melhoria de processos. Modelos de maturidade de processos de software: o paradigma SW-CMM. Estrutura, limites, benefícios e interpretação do SW-CMM. Uma estrutura organizacional básica para o SW-CMM. Outros paradigmas de capacitação em informática. O sistema de comprometimento.

3.       Requisitos: Engenharia dos requisitos de software. Qualidade dos requisitos. Atividades do fluxo de Requisitos. Requisitos de interface, funcionais e não-funcionais. Casos de uso. Principais técnicas de captura de requisitos: uso da prototipagem; oficinas de requisitos; relacionamento com clientes. Padrão para propostas de especificação. Padrão para especificação de requisitos.

4.       Análise: Atividades do fluxo de Análise. Técnicas de análise orientada a objetos: identificação de classes, relacionamentos, operações e atributos. Realização de casos de uso. Validação dos modelos.

5.       Desenho: Atividades do fluxo de Desenho. Desenho arquitetônico. A arquitetura de cinco camadas. Desenho das interfaces de usuários. Detalhamento dos casos de uso. Diretrizes básicas para interfaces de usuário. Desenho das classes de controle, entidade e sistema: visibilidade e navegação.  Estilos de interação. Camadas de persistência. Documentação do desenho.

6.       Testes: Atividades do fluxo de Testes. Princípios dos testes: objetivos e métodos. Tipos de teste: de integração, de aceitação e de regressão. Planejamento, desenho e realização de testes. Documentação de testes.

7.       Implementação: Atividades do fluxo de Implementação. Desenho detalhado. Codificação. Inspeção de implementação. Testes de unidade. Integração. Modularização. Padrões de desenho detalhado e codificação. Diretrizes específicas para Java. Documentação para usuários: diretrizes e padrões.

8.       Gestão de projetos: Gestão dos requisitos de software. Planejamento de projetos. Técnicas para estimativa de projetos de software: dimensionamento do tamanho, esforço e custos; elaboração de cronogramas. Gestão de riscos. Planos de desenvolvimento de software. Acompanhamento e controle da execução dos projetos. Relatórios de acompanhamento de projetos de software. Subcontratação de software. Seleção de subcontratados. Acompanhamento e controle de projetos subcontratados.

9.       Gestão da qualidade: Garantia da qualidade de software. Grupos de garantia da qualidade. Planos da qualidade de software. Auditorias da qualidade. Revisões de software. Princípios, preparação, condução e relato das revisões técnicas. Variantes: revisões individuais, revisões gerenciais, revisões de apresentação e inspeções. Resultados das revisões. Gestão de configurações de software. Grupos de gestão de configurações. Ferramentas e bibliotecas de gestão de configurações. Procedimentos de gestão de alterações. Processos de manutenção de software.

10.   Engenharia de processos: Gestão de processos. Capacitação das organizações. Bibliotecas de documentação de processos. Manutenção, personalização e normatização de processos. Gestão de métricas. Gestão do treinamento: planejamento e execução. Melhoria da tecnologia. Planejamento e análise de tecnologia. Teste e implantação de tecnologia. Melhoria de processos. Planejamento e análise de processos. Desenvolvimento, teste e implantação de processos.