Tornar os alunos capazes de projetar, implementar e testar sistemas de software usando conceitos e técnicas de engenharia de software e banco de dados de maneira integrada e evolutiva.
Princípios e técnicas de desenvolvimento de sistemas de software. Arquitetura de software. Teste de software. Persistência de dados. Modelo entidade relacionamento e modelo relacional.
Técnicas para coleta de requisitos, modelagem, projeto e implementação de sistemas de software. Modelo entidade relacionamento e UML. Arquitetura de software, projeto orientado a objetos, padrões de projeto. Persistência de dados: projeto conceitual, lógico e físico de bancos de dados. Modelo relacional: normalização, álgebra relacional, cálculo relacional e linguagem SQL. Integração das linguagens de programação em memória e persistência de dados (por exemplo, Python e SQL). Verificação e validação com testes automatizados.
Bibliografia básica: 1- M.T. Valente. Engenharia de Software Moderna: Princípios e Práticas para Desenvolvimento de Software com Produtividade, Editora: Independente, 2020. Disponível em https://engsoftmoderna.info/ 2- C.J. Date, Introdução a Sistemas de Bancos de Dados, 8a. edição, Campus, 2004. 3- R. Elmasri, S.B. Navathe, Fundamentals of Database Systems, 4th ed., Addison-Wesley, 2003. Bibliografia complementar: 1- J.E. Ferreira, M. Finger, Controle de concorrência e distribuição de dados: a teoria clássica, suas limitações e extensões modernas, Coleção de textos especialmente preparada para a Escola de Computação, 12a, São Paulo, 2000. 2- M.F. Aniche. Effective software testing : a developer's guide. Shelter Island, NY, Manning, 2022. 3- C. Larman, Applying UML and Patterns, Prentice Hall, 2004. 4- E. Freeman, E. Robson, B. Bates, K. Sierra, Head First Design Patterns, O'Reilly . 2004. 5- A. Fox, D. Patterson, Construindo Software como Serviço (SaaS): Uma Abordagem Ágil Usando Computação em Nuvem, Strawberry Canyon, 2015.