Linha 87: Linha 87:
* Outras Metodologias
* Outras Metodologias
** Microsoft Solution Framework ( MSF )
** Microsoft Solution Framework ( MSF )
= Modelagem =
<br>
* Análise estruturada [Gane & Searson]
* Análise Essencial [Palmer & McMenamin e Ed. Yourdon]
* UML [Grady Booch, Ivar Jacobson & Jaimes Rumbaugh]

Edição das 13h15min de 20 de setembro de 2011

Engenharia de Software é uma ciência?


  • Wikipedia:
    • "Engenharia de software é uma área do conhecimento da computação voltada para a especificação, desenvolvimento e manutenção de sistemas de software aplicando tecnologias e práticas de gerência de projetos e outras disciplinas, objetivando organização, produtividade e qualidade"
    • Os fundamentos científicos para a engenharia de software envolvem o uso de modelos abstratos e precisos que permitem ao engenheiro especificar, projetar, implementar e manter sistemas de software, avaliando e garantindo suas qualidades. Além disso, a engenharia de software deve oferecer mecanismos para se planejar e gerenciar o processo de desenvolvimento de um sistema de informação Sistema computacional, pois ambos se confundem!
    • Atualmente, essas tecnologias e práticas englobam linguagens de programação, banco de dados, ferramentas, plataformas, bibliotecas, padrões, processos e a questão da Qualidade de Software.


  • O papel do pesquisador é compreender a natureza dos processos, produtos e o relacionamento entre os dois no contexto do sistema
  • O papel do profissional da prática (engenheiro de software) é construir sistemas cada vez melhores, utilizando o conhecimento disponível
  • Mais que em outras disciplinas, estes papéis são simbióticos
  • O pesquisador precisa dos laboratórios para observar e manipular as variáveis
  • Elas somente existem quando os engenheiros de software constróem sistemas de software
    • O engenheiro de software precisa compreender melhor como construir sistemas melhores
    • O pesquisador pode produzir modelos para ajudar


Engenharia de Software é desenvolvimento


  • As tecnologias da disciplina são baseadas no elemento humano
  • O Software não é o mesmo o tempo todo
    • Existe um enorme número de variáveis que provocam diferenças
    • Seus efeitos precisam ser entendidos
  • Atualmente,
    • o Conjunto de modelos insuficientes que nos permita pensar sobre a disciplina
    • Falta de conhecimento dos limites das tecnologias para certos contextos
    • Análise e experimentação insuficientes (empirismo x experimentação)


Processo de Software


  • Modelos ciclo de vida
  • Sequencial ou Cascata (Waterfall)
  • Desenvolvimento iterativo e incremental
  • Evolucional ou Prototipação
  • V-Model
  • Espiral
  • Componentizado
  • Formal
  • Ágil
  • RAD
  • Quarta geração


Modelos de Maturidade


  • Capability Maturity Model Integration (CMMi)
  • MPS-BR


Metodologias e Métodos


  • Metodologia Estruturada
    • Análise Estruturada
    • Projeto Estruturado
    • Programação Estruturada
    • Análise Essencial
    • SADT
    • DFD - Diagrama de Fluxo de Dados
    • MER - Modelo de Entidades e Relacionamentos


  • Metodologia Orientada a Objetos
    • Orientação a Objetos
    • Rational Unified Process ( RUP )


  • Desenvolvimento ágil de software
    • Feature Driven Development ( FDD )
    • Enterprise Unified Process (EUP)
    • Scrum (Scrum)
    • Crystal (Crystal Clear, Crystal Orange, Crystal Orange Web)
    • Programação extrema ( XP )


  • Outras Metodologias
    • Microsoft Solution Framework ( MSF )

Modelagem


  • Análise estruturada [Gane & Searson]
  • Análise Essencial [Palmer & McMenamin e Ed. Yourdon]
  • UML [Grady Booch, Ivar Jacobson & Jaimes Rumbaugh]