Engenharia de software
Keywords: Engenharia de software, 1970, 2000, Algoritmo, Análise, Banco de dados, Bases de Dados relacionais, Biblioteca, C mais mais, Camadas de software
Engenharia de software são as tecnologias e práticas usadas para criar software para computadores melhorando a produtividade e qualidade. No ano 2000, estas tecnologias e práticas englobam linguagens de programação, bases de dados, ferramentas, plataformas, bibliotecas, standards e processos.
A Engenharia de Software (ES) surgiu em meados dos anos 1970 numa tentativa de contornar a crise do software e dar um tratamento de engenharia (mais sistemático e controlado) ao desenvolvimento de sistemas de software complexos. Um sistema de software complexo se caracteriza por um conjunto de componentes abstratos de software (estruturas de dados e algoritmos) encapsulados na forma de procedimentos, funções, módulos, objetos ou agentes e interconectados entre si, compondo a arquitetura do software, que deverão ser executados em sistemas computacionais.
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 garantido suas qualidades. Além disto, a engenharia de software deve oferecer mecanismos para se planejar e gerenciar o processo de desenvolvimento.
| Conteúdo |
Definições
Uma definição é a de Fritz Bauer, "Engenharia de software é a criação e a utilização de sólidos princípios de engenharia a fim de obter software de maneira econômica, que seja confiável e que trabalhe eficientemente em máquinas reais."
Um conceito simples seria o que a palavra engenharia já diz, criação, construção, análise, desenvolvimento e manutenção.
Produto
Processo
Processos de Software são conjuntos de atividades que objetiva o desenvolvimento ou evolução do Software.
E mais, pode-se dizer que o processo de desenvolvimento de software se caracteriza pela interação de ferramentas, pessoas e métodos.
Modelos Genéricos
- Sequencial Linear
- Protótipo
- RAD
- Evolucional
- Componentes
- Quarta geração
Gestão
- Pessoal
- Produto
- Processo
- Projeto
Planejamento
- Escopo
- Decomposição
Análise
- Riscos
- Indentificação de riscos
- Previsão de riscos
É a intensificação do processo de coleta de requisitos e concentrados específicamente no software, para entender a natureza dos programas a serem construídos e o domínio da informação.
Contexto Geral da Engenharia de Software
Tecnologias e Práticas
- Linguagens de programação, como Java e C++.
- Bases de Dados relacionais.
- Ferramentas de software, como make, cvs, editores.
- UML, linguagem de modelagem de dados.
- Padrões de desenho documentam técnicas muito usadas e sistematizadas de programação e gestão.
- Processo de desenvolvimento de Software, como RUP, XP, Programação ágil, Praxis, entre outros.
- Plataformas, como PCs WINTEL e mainframes IBM. Á medida que as plataformas ficaram mais poderosas, as ferramentas ficaram mais disponíveis em plataformas menos custosas.
- Camadas de software
- Métricas de software
- Várias aproximações à programação na prática:
- Programação estruturada (programação funcional)
- Programação Orientada a Objectos
- Componentes de Software
- Programação orientada ao estado
- Programação orientada ao aspecto
- Programação Pós objecto
Ciclo de vida (Ponto de vista do modelo em cascata)
- Ciclo de vida do projecto
- Reunião de requisitos e Análise
- Arquitectura de software
- Decomposição funcional
- Programação de computadores
- Testes de Software, focado para detectar Erros de software e garantir a funcionalidade deste.
- Garantia da qualidade, assegura a subordinação ao processo, mas é um termo impróprio, não tem nada a ver com controlo de qualidade.
Gerência de Projetos (Ponto de vista da gestão)
- Gerência de Projetos
- Gerência da Integração do Projeto
- Gerência do Escopo do Projeto
- Gerência do Tempo do Projeto
- Gerência do Custo do Projeto
- Gerência da Qualidade do Projeto
- Gerência dos Recursos Humanos do Projeto
- Gerência das Comunicações do Projeto
- Gerência de Riscos do Projeto
- Gerência das Aquisições do Projeto
Problemas notáveis em engenharia de software
- Complexidade ou escalonamento
- Software brittleness problem
- Sindrome do segundo sistema
- Estimativas
Veja também
- Engenharia de software orientado a objetos
- Análise orientado a objetos
