Oferecer uma visão geral a respeito das atividades de gerenciamento de configuração, manutenção e evolução de software.
Identificação de configuração (itens de configuração e linha-base). Controle de mudanças e versões. Integração e entrega contínua. Monitoramento do desenvolvimento de software. Gerenciamento do processo de construção/build (mapeamento de ferramentas para ambientes de desenvolvimento e produção). Pacotes e dependência de software. Princípios e técnicas de manutenção e evolução de software. Sustentabilidade de software. Dívida técnica.
1 - Conceitos básicos e fundamentos Introdução a licenças de software. Desenvolvimento colaborativo e distribuído. 2 - Controle de Versão Tipos e exemplos de sistemas de controle de versão. Estratégias de commit. Versões experimentais (branch). Estratégias de mesclas (merges). 3 - Entrega Contínua Linha-base. Integração contínua. Empacotamento. 4 - Monitoramento da Qualidade Interna Estratégias de código limpo. Padrões de implementação. Métricas de código-fonte. 5 - Manutenção e Evolução de software Manutenção corretiva. Manutenção preventiva. Sustentabilidade. 6 - Projeto de Manutenção e Evolução de Software Implementação de melhorias em projetos de software (em uso/produção) Dívida técnica: conceitos e definições. Gestão e resolução de dívida técnica.
Livro Texto Sommerville, I. Engenharia de software. 8th ed., Pearson Addison Wesley, 2007. Pressman, R. S. Engenharia de software. 6th ed., McGraw-Hill, 2006. Valente, M. T. Engenharia de Software Moderna: Princípios e Práticas para Desenvolvimento de Software com Produtividade, 2020 (https://engsoftmoderna.info/). Bibliografia Complementar (eBrary) Hongji Yang, Martin Ward. Successful Evolution of Software Systems. Artech House, 2002. Tripathy, P.; Naik, K. Software evolution and maintenance: a practitioner's approach. Hoboken, N.J.: J. Wiley & Sons, 2015. xxii, 393 p. ISBN 9780470603413.