Plano de ensino de Tópicos Complementares de Engenharia de Software
Plano de Ensino
Nome do professor Paulo Marcotti
E-mail: paulo.marcotti@cs.edu.br
Curso: Sistemas de Informação
Título da disciplina Tópicos complementares em engenharia de software
Carga horária: 80 horas aula
Semestre 7o Período Noturno
Justificativa Conhecer as normas de qualidade, confiabilidade e segurança de software. Entender os modelos de maturidade que permitem certificações das empresas produtoras de software. Reconhecer o software como produto, processo e pacote. Conhecer a gestão de configuração de software. Entender as técnicas e especificação de testes, verificação e validação do software. Entender as métricas de software. Objetivos Entender e dominar as metodologias para garantia da qualidade de software aplicáveis às fases do ciclo de vida do software. Entender e dominar os conceitos ligados ao software, como produto, processo e pacote; Conhecer as Normas de Qualidade do Software; Entender os Modelos de Maturidade para empresas de software; Entender e dominar cálculos de custeio e precificação de software; Conhecer os conceitos ligados ao desenvolvimento ágil. Ementa Tópicos complementares em Engenharia de Software; Qualidade de software; Normas de qualidade aplicadas ao software; Características e subcaracterísticas que definem um software de qualidade; Métodos Ágeis para a modelagem e desenvolvimento de software; Modelos de Maturidade CMMi, MPS.br; SwEBoK; Modelos de Testes de software (Casos de Testes; Suite de Teste); Validação e Verificação do software; Revisões, Inspeções e Auditorias; Medições e Métricas de Software (Custos, APF, Pontos de Caso de Uso); Gerência de Configuração. Conteúdo Programático
1. Conhecer a garantia de qualidade para o desenvolvimento do software; 2. Normas de qualidade de software como produto, suas características e sub-características; 3. Normas de qualidade de software como processo, seus métodos e ferramentas; 4. Modelos de Testes de software; 5. Casos de Teste; 6. Verificação e Validação do software; 7. Revisões, Inspeções e Auditorias no software; 8. Verificação contínua da qualidade do Software; 9. Modelo de qualidade: Funcionalidades, Usabilidade, Confiabilidade (Reliability), Performance, Suportabilidade entre outros; 10. Modelos de Maturidade para empresas de software; 11. Software Engineering Body of Knowledge; 12. Medições e Métricas de Software; 13. Avaliação de custos, Análise de Ponto de Função, Pontos de Caso de Uso; 14. Gerência de Configuração; 15. Métodos Ágeis para a modelagem e desenvolvimento de software.
Metodologias de ensino A metodologia aplicada utiliza aulas teóricas expositivas e materiais de estudo disponibilizados em plataforma de ensino a distância, mescladas com parte prática (aplicação dos conceitos e técnicas apresentadas), através de exercícios (executados presencialmente e a distância) e elaboração de projeto (com a formação de equipes de alunos) e ainda seminários apresentados pelos alunos. Avaliação - critérios e instrumentos As notas P1 e P2 são compostas por prova individual (com peso 70 %) e atividades avaliativas durante cada bimestre (com peso 30 %). Uma média geral do semestre é calculada como a média aritmética das notas bimestrais P1 e P2. A nota MI (corresponde a uma avaliação multidisciplinar, realizada pela instituição com todas questões de todas as disciplinas do curso) é adicionada à média geral. Ao final do semestre o aluno pode fazer uma prova substitutiva, que pode substitui a menor nota da prova P1 ou P2, compondo novamente com os trabalhos, recalculando a média caso melhore a média final. O aluno é aprovado com média final maior ou igual a 6,0. Bibliografia básica
1. PAULA FILHO, Wilson de Pádua. Engenharia de software: fundamentos, métodos e padrões. 3 ed. Rio de Janeiro: LTC, 2009; 2. MAFFEO, Bruno. Engenharia de software e especificação de sistemas. Rio de Janeiro: Campus, 1992; 3. PETERS, James F.; PEDRYCZ, Witold. Engenharia de software: teoria e prática. Rio de Janeiro: Campus, 2001.
Bibliografia Complementar
1. Barbosa, E. F. Et al, Introdução ao Teste de Software, ICMC, USP. Disponível em < http://conteudo.icmc.usp.br/CMS/Arquivos/arquivos_enviados/BIBLIOTECA_113_ND_65.pdf >, acesso em 03/01/2018. 2. COUTINHO, Pedro Henrique Mannato. Teste de Software. ESAB – Escola Superior Aberta do Brasil. 2011. Disponível em < https://docgo.net/modulo-vi-teste-de-software >, acesso em 05/01/2018. 3. CUNHA, Luiz Egidio Costa. Análise de sistemas. Instituto Federal de Colatina, disponível em < http://ead.ifap.edu.br/netsys/public/livros/Livros%20do%20Curso%20de%20Inform%C3%A1tica%20para%20Internet/Modulo%20III/analise_sistemas.pdf >, acesso em 15/08/2017; 4. FALBO, Ricardo de Almeida Falbo. Engenharia de Software. UFES: Vitória: 2005; Disponível em < https://inf.ufes.br/~falbo/download/aulas/es-g/2005-1/NotasDeAula.pdf >, acesso em 15/08/2017. 5. SOFTEX, Disponível em < www.softex.br/mpsbr/modelos/ >, acesso em 04/01/2018.
Distribuição do tempo 1ª semana: Apresentação da disciplina, plano de ensino e projeto final da disciplina. Visão atual da Engenharia de Software necessidades atuais da área. 2ª semana: Garantia de qualidade para o software. 3ª semana: Normas de qualidade de software. 4ª semana: Software como produto, processo e pacote. 5ª semana: Características e Sub-Características de um software de qualidade. 6ª semana: Normas de qualidade de software como processo. 7ª semana: Métodos e ferramentas para garantir a qualidade do processo de desenvolvimento de um software. 8ª semana: Modelos de teste de software. 9ª semana: Semana de prova. As questões de prova serão sobre os conceitos e qualidade de Engenharia de Software. 10ª semana: Vista das provas. Casos de teste de software. 11ª semana: Test Driven Development (TDD). Verificação e Validação de Software. Revisões, inspeções e auditorias no software. 12ª semana: Verificação contínua da qualidade do software. Modelo de qualidade: Funcionalidades, Usabilidade, Confiabilidade (Reliability), Performance, Suportabilidade entre outros. Extreme Programming - Metodologia; Pragmatic Programming; Lean Software Development (LSD). 13ª semana: Feature Driven Development (FDD); Dynamic Systems Development Method (DSDM); Adaptive Software Development (ASD); Crystal; Kanban; MSF Microsoft Solutions Framework. 14ª semana: Modelos de Maturidade para empresas desenvolvedoras de software; Modelo CMM. Modelos de Maturidade para empresas brasileiras de desenvolvimento de software; Modelo MPS.br. 15ª semana: SwEBoK - Software Engineenring Body of Knowledge. 16ª semana: Medições e Métricas de Software. Avaliação de custos, Análise de Pontos de Função, Pontos de Caso de Uso. 17ª semana: Semana de Prova P2. Questões sobre os modelos da Engenharia de Software: estruturado, espiral, formais, prototipação, RAD e concorrente. 18ª semana: Vista de provas, considerações finais e balanço dos resultados obtidos pela disciplina. 19ª semana: Semana de provas substitutivas. 20ª semana: Plantão de dúvidas.
Trabalhos Domiciliares/Plano de Adaptação e ou DP Considerando as 4 primeiras semanas de aula, descreva atividades a serem realizadas pelo aluno caso fique afastado neste período. Leia atentamente o plano de ensino dessa disciplina; Explicar a utilização das normas de qualidade de software NBR/ISO-9126, 13596, 12207 e 15504. Considerando as semanas de 5 a 8, descreva atividades a serem realizadas pelo aluno caso fique afastado neste período. Explicar os modelos de teste de software. Considerando as semanas de 10 a 13, descreva atividades a serem realizadas pelo aluno caso fique afastado neste período. Descrever detalhadamente a certificação CMM e MPS.br. Considerando as semanas de 14 a 17, descreva atividades a serem realizadas pelo aluno caso fique afastado neste período. Explicar e exemplificar o cálculo de custo de um software através da Análise de Pontos de Função e Pontos de Caso de Uso.