| Linha 8: | Linha 8: | ||
<br> | <br> | ||
* | * Pode ser considerada como pesquisa onde 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 | * O papel do profissional da prática (engenheiro de software) é construir sistemas cada vez melhores, utilizando o conhecimento disponível | ||
Edição das 13h16min 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.
- Pode ser considerada como pesquisa onde 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]