Pré-requisitos: Projeto e Construção de Sistemas
Professor Responsável: Gleison Santos
Objetivos da Disciplina
- Capacitar o aluno a compreender a necessidade de uso de processos para o desenvolvimento de software e seus benefícios para equipes e organizações.
- Capacitar o aluno a identificar e diferenciar os principais tipos de ciclo de vida para o desenvolvimento de software, tradicionais e ágeis, e atividades relacionadas à melhoria da qualidade de processos de software.
- Aplicar o conhecimento adquirido para definição, em alto nível, de processos de software baseados em ciclo de vida tradicionais e ágeis.
- Capacitar o aluno a definir instrumentos de apoio à execução de processos de software, como, laudos de garantia da qualidade, plano de medição, avaliação de aderência a modelos de processo, definição de lições aprendidas
Ementa
Processo de Software. Modelos de ciclo de vida de desenvolvimento de software. Homologação. Implantação de Software. Manutenção de Software. Gerência de requisitos. Garantia da Qualidade de Processos e Produtos. Métricas e Medições. Fábrica de Software. Modelos de qualidade de processos de software.
Conteúdo Programático
- Introdução à Engenharia de Software
- Crise do Software
- Mitos e Realidades no Desenvolvimento de Software
- Qualidade de Software
- Processo de Software
- O que é e seus benefícios
- Papel do Processo de Software para Qualidade de Software
- Características de empresas maduras e imaturas
- Diferença entre software e sistema
- Estrutura básica dos processos de software:
- Levantamento de requisitos
- Análise de requisitos
- Gerência de Requisitos
- Projeto (design) de software
- Codificação
- Testes (unidade, integração, software, sistema, homologação, implantação)
- Homologação
- Implantação
- Manutenção (corretiva, emergencial, preventiva, adaptativa, perfectiva)
- Modelos de ciclo de vida tradicionais
- Cascata, RAD, Prototipagem
- Incremental, Iterativo, Evolutivo
- Espiral
- Processo Unificado (RUP)
- Métodos Ágeis
- Manifesto Ágil
- Práticas Ágeis
- Métodos Ágeis SCRUM e eXtreme Programing
- Modelos de qualidade de processos de software
- Modelos de processo
- Normas Internacionais: ISO/IEC 12207, ISO/IEC 15504, Série ISO 9000
- Modelos de Maturidade: MR-MPS-SW (MPS.BR), CMMI-Dev
- Iniciativas de Melhoria de Processos de Software
- Importância para Fábricas de Software
- Atividades de apoio ao processo de software
- Definição de processos padrão
- Garantia da qualidade de processos e produtos
- Métricas e medições
- Gerência de conhecimento e lições aprendidas
Metodologia
Exposição de conteúdo: serão apresentados o conteúdo teórico referente aos tópicos estudados.
Aprendizagem baseada em tarefas práticas: para o entendimento dos conteúdos serão passados exercícios práticos onde o conhecimento téorica precisará ser aplicado. Após e durante a execução dos exercícios, haverá discussão sobre as dificuldades e resultados.
Aprendizagem baseada em dinâmica em grupo: os alunos participarão de uma dinâmica com o objetivo de simular o trabalho de uma equipe de desenvolvimento onde serão discutidos: definição e uso de processos de software, garantia da qualidade e medição de software.
Avaliação
Avaliação somativa: ao longo da disciplina haverá duas avaliações com o objetivo de avaliar pontos específicos do conteúdo programático de forma individual.
Avaliação continuada: a presença e participação dos alunos nas aulas será avaliada e poderá compor parte da nota final.
Cálculo da nota final: a média final (M) será uma composição das notas das duas avaliações provas e da nota de participação.
Se M maior ou igual a 7,0, então aluno será aprovado com média M.
Se M menor 4,0, então aluno será reprovado com média M.
Se M maior ou igual a 4,0 e M menor que 7,0, aluno deverá fazer prova final PF e MF = (M + PF) / 2.
MF será a média final nesse caso e será aprovado o aluno com MF maior ou igual a 5.
Bibliografia Básica
Não vai ser utilizado um livro texto. A maior parte do conteúdo está coberto diretamente nas notas de aula que serão disponibilizadas no sistema de apoio ao ensino Moodle ao longo do período.
Referencias Bibliográficas
- PRESSMAN, R. S. Engenharia de Software – Uma Abordagem Profissional. 7ª Ed. Bookman, 2011.
- PFLEEGER, S. L. Engenharia de Software – Teoria e Prática. 2ª Ed. Prentice Hall Brasil, 2004.
- SOFTEX (ASSOCIAÇÃO PARA PROMOÇÃO DA EXCELÊNCIA DO SOFTWARE BRASILEIRO) – Guias de Implementação (vários volumes)