Engenharia de Software

  • Curso: Tecnologia em Sistemas para Internet
  • Disciplina: Engenharia de Software
  • Carga-Horária: 30h (40h/a) Pré-Requisito(s): — Número de créditos: 2

EMENTA

Engenharia de software. Processo, requisitos, análise, projeto, testes e implementação de softwares.

PROGRAMA

Objetivos

• Compreender o conceito de processo de desenvolvimento de software e de modelo de processo de software; • Compreender atividades técnicas de engenharia de software; • Compreender o uso de uma ferramenta CASE; • Compreender a interação sócio-técnica inerente ao exercício da engenharia de software; • Compreender a gestão de projeto de software.

Bases Científico-Tecnológicas (Conteúdos)

  1. Introdução à engenharia de software
    1.1. Conceitos, Elementos, Objetivos, Fundamentos, Princípios;
    1.2. Importância da engenharia de software;
    1.3. Tipos de software;
    1.4. O engenheiro de software.
    
  2. Ciclo de vida de sistemas
    2.1. Ciclo de vida de um software
         2.1.1. Fases
    2.2. Ciclo de desenvolvimento de sistemas
    2.3. Ciclo de manutenções do software
         2.3.1. Ciclo de manutenções do software
         2.3.2. Problemas do excesso de manutenções
         2.3.3. Tipos de manutenção
         2.3.4. Outras características relevantes
         2.3.5. Custos tangíveis
         2.3.6. Custos intangíveis
    2.4. Engenharia Reversa (Reengenharia)
    2.5. Controle de versões e auditoria em software
    
  3. Metodologia de Desenvolvimento de Sistemas
    3.1. Definições
    3.2. Premissas de desenvolvimento
         3.2.1. Modularidade
         3.2.2. Existência
         3.2.3. Equipe multidisciplinar
    3.3. Por que usar as metodologias para o desenvolvimento de sistemas?
    3.4. Justificativas para o uso de metodologia de desenvolvimento
    3.5. Fases da metodologia de desenvolvimento de sistemas
         3.5.1. Estudo preliminar
         3.5.2. Análise do sistema atual
         3.5.3. Projeto lógico
         3.5.4. Projeto físico
         3.5.5. Projeto de implantação
    3.6. Técnicas de Levantamento de Dados
         3.6.1. Importância do Levantamento de Dados
         3.6.2. Alguns aspectos para um bom levantamento de dados
         3.6.3. Fases críticas
         3.6.4. Levantamento de dados adequado para desenvolvimento de software
         3.6.5. Levantamento de dados inadequado para desenvolvimento de software
         3.6.6. Fases do levantamento de dados
         3.6.7. Distribuição de tempo das fases
         3.6.8. Técnicas
               3.6.8.1. Observação pessoal
               3.6.8.2. Questionário
               3.6.8.3. Entrevista
               3.6.8.4. Seminário
    
           3.6.8.5. Pesquisa
           3.6.8.6. Técnica mista
      3.6.9. Documentação do Levantamento de Dados
    
  4. Diagramação e Técnicas de Engenharia de Software

  5. Formas de diagramar software 5.1. Fluxogramas 5.2. Diagrama de Fluxo de Dados - DFD 5.3. Diagrama de Entidade e Relacionamentos – DER

  6. Outros diagramas 6.1. Diagrama de Estrutura Modular - DEM 6.2. Diagrama de Warnier 6.3. Diagrama PERT e COM

  7. Outras ferramentas de diagramação de software (parte II) 7.1. CAD - Computer Aided Desing 7.2. CAM - Computer Aided Management 7.3. CASE - Computer Assisted / Aided Software Engineering

  8. Dicionário de dados

  9. Projetos de software 9.1. Projetos de arquivos 9.2. Testes e treinamento 9.3. Documentação 9.4. Implantação

  10. Tempos e custos de sistemas e software

Procedimentos Metodológicos

• Aulas teóricas expositivas, aulas práticas em laboratório, desenvolvimento de projetos; • Leitura de textos, pesquisas bibliográficas;

Recursos Didáticos

Utilização de quadro branco, computador, projetor multimídia.

Avaliação

• Avaliações escritas e práticas; • Trabalhos individuais e em grupo (artigo, projeto); • Apresentação dos trabalhos desenvolvidos

Bibliografia Básica

  1. PRESSMAN, R. S. Engenharia de software: uma abordagem profissional. 7.ed. Porto Alegre: Bookman 2011.
  2. SOMMERVILLE, I. Engenharia de software. São Paulo: Addison Wesley, 2003.
  3. WAZLAWICK, R. S. Engenharia de software conceitos e práticas. Rio de Janeiro: Elsevier, 2013.

Bibliografia Complementar

  1. DENNIS, A. Análise e projeto de sistemas. 5. ed. Rio de Janeiro: LTC, 2014.

  2. FOWLER, Martin. UML essencial: um breve guia para a linguagem-padrão de modelagem de objetos. 3. ed. Porto Alegre: Bookman, 2005.

  3. TONSIG, S. L. Engenharia de software análise e projeto de sistemas. 2. ed. Rio de Janeiro: Ciência Moderna, 2008.

  4. PILONE, D.; MILES, R. Use a cabeça: desenvolvimento de software. Rio de Janeiro: Alta Books, 2008.

  5. BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML: guia do usuário. Rio de Janeiro: Elsevier, 2012.

                                                Software(s) de Apoio:
    

• Astah Community.