Características de uma Engenharia (SWEBOK, 1999)
• Educação de iniciação profissional validada e legitimada pela sociedade
• Registro da adequação à prática através de certificação voluntária ou licenciamento compulsório
• Desenvolvimento de habilidades especializadas e educação profissional continuada
• Suporte através de sociedades profissionais
• Compromisso a normas de conduta freqüentemente estabelecidas em um código de ética
10 Áreas da Engenharia de Software
Gerência de Configuração de Software: Identifica a configuração do sistema (características documentadas do hardware e software que o compõem) em pontos discretos no tempo, de modo a controlar sistematicamente suas mudanças e manter sua integridade e rastreabilidade durante o ciclo de vida do sistema.
Gerência de Engenharia de Software: Gerencia projetos de desenvolvimento de software.
Processo de Engenharia de Software: Define, implementa, mede, gerencia, modifica e aperfeiçoa o processo de desenvolvimento de software.
Ferramentas e Métodos: Ferramentas de software automatizam o processo de engenharia de software Métodos impõem estrutura sobre a atividade de desenvolvimento e manutenção de software com o objetivo de torna-la sistemática e mais propensa ao sucesso.
Qualidade de Software: Conjunto de atividades relacionadas com garantia de qualidade de software, entre estas as atividades de verificação e validação.
Requisitos de software: Aquisição, análise, especificação e gestão de requisitos de software.
Design de software: Transformação de requisitos (de software), tipicamente estabelecidos em termos relevantes ao domínio do problema, em uma descrição explicando como solucionar os aspectos do problema relacionados com software.
Construção de Software: Construção de programas funcionais e coerentes através da codificação, autovalidação, e teste unitário.
Teste de Software: Verificação dinâmica do comportamento do programa através do uso de um conjunto finito de casos de teste - adequadamente selecionados de um domínio de execuções usualmente infinito - contra o comportamento esperado deste.
Manutenção de Software: Atividades de suporte custo-efetivo a um sistema de software, que pode ocorrer antes e após a entrega do software. Após a entrega do software são feitas modificações com o objetivo de corrigir falhas, melhorar seu desempenho ou adapta-lo a um ambiente modificado.
fonte: As 10 Áreas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004