# Software Engineering Body of Knowledge

O Guide to the Software Engineering Body of Knowledge, conhecido pela sigla SWEBOK, é um documento criado sob o patrocínio da IEEE Computer Society e publicado pela mesma com a finalidade de servir de referência em assuntos considerados, de forma generalizada pela comunidade, como pertinentes a área de Engenharia de Software. Por isso em seu conteúdo mais recente, o SWEBOK V3 publicado em 2014, foi sumarizado em 15 KAs (knowledge areas, em português, áreas de conhecimento) referentes a Engenharia de Software. Em sua 1ª versão publicada em 2004 haviam 10 KAs específicos a área citada anteriormente.
O SWEBOK surgiu através de uma parceria entre o IEEE, a Computer Society e ACM a fim de promover a profissionalização da Engenharia de Software e criar um consenso sobre as áreas de conhecimento da Engenharia de Software e seu escopo. Sendo iniciado em 1998 pelo Software Engineering Coordinating Committee (SWECC) e financiado por organizações como a ACM, a Boeing, o Conselho Canadense de Engenheiros Profissionais, Construx Software, MITRE Corporation, entre outras. O SWEBOK é recomendado para diversos tipos de público, em todo o mundo, com o objetivo de ajudar organizações a terem uma visão consistente da Engenharia de Software. É endereçado a gerentes, engenheiros de software, às sociedades profissionais, estudantes, professores e instrutores desta área de conhecimento.
O SWEBOK apresenta uma classificação hierárquica dos tópicos tratados pela Engenharia de Software, onde o nível mais alto são as Áreas do Conhecimento.
A criação desse documento também tem como objetivos a promoção da profissionalização da Engenharia de Software, a criação de um consenso das principais áreas de conhecimento da mesma e a localização e definição dos limites entre a área/disciplina de Engenharia de Software e outras áreas/disciplinas, como por exemplo a Engenharia da Computação.

## Evolução Histórica

Desde os primeiros computadores comerciais, os softwares implantados ou lançados no mercado se caracterizam, na sua maioria, pela presença de erros encontrados nas fases de verificação e validação, como por exemplo: erros em estimativas, dificuldade no domínio da área de conhecimento específica do software proposto, especificações obscuras, requisitos mal elaborados e mal interpretados, conflitos nos objetivos e mudanças intermináveis e mal controladas. Tais erros aumentaram a importância e responsabilidade dos especialistas ligados a uma das áreas da computação, conhecida como Engenharia de Software. Com isso, o Institute of Electrical and Electronics Engineers (IEEE) e a Association for Computing Machinery (ACM) conduziram estudos de modo a promover ativamente a Engenharia de Software como uma profissão desde 1993, definindo as fronteiras que delimitam a Engenharia de Software, através do Corpo de Conhecimento em Engenharia de Software.
O SWEBOK surgiu através de uma parceria entre o IEEE, a Computer Society e ACM a fim de promover a profissionalização da Engenharia de Software e criar um consenso sobre as áreas de conhecimento da Engenharia de Software e seu escopo. Sendo iniciado em 1998 pelo Software Engineering Coordinating Committee (SWECC) e financiado por organizações como a ACM, a Boeing, o Conselho Canadense de Engenheiros Profissionais, Construx Software, MITRE Corporation, entre outras. O SWEBOK é recomendado para diversos tipos de público, em todo o mundo, com o objetivo de ajudar organizações a terem uma visão consistente da Engenharia de Software.

## Versões

O Guia SWEBOK possui 2 versões, a primeira publicada em 2004 foi reconhecida internacionalmente no ano seguinte pela ISO através do comitê ISO/IEC JTC 1/SC 7, cujo
escopo é Software e Engenharia de Sistemas, o mesmo pode ser descrito como um comitê horizontal que produz padrões genéricos que são agnósticos de tecnologia e independentes do domínio da aplicação. Esses padrões são focados principalmente em modelos de processos e boas práticas (Métodos e técnicas). Sua ISO é identificada como ISO/IEC TR 19759:2005.
O Guia SWEBOK V3 publicado em 2013 foi criada pois desde a publicação do 1º SWEBOK, o comitê responsável pelo conteúdo entendia a necessidade de revisão do mesmo devido ao crescimento da área, o surgimento de novos pontos de vista devido a outras áreas relacionadas que surgiram ou se expandiram e a mudança de conhecimento, métodos e ferramentas.
Contando com uma equipe de editores para revisar e melhorar as KAs e outra equipe para revisões e melhorias gerais, houve mais de 1500 mudanças submetidas e julgadas a serem parte da nova versão do SWEBOK ou não.

## Versão SWEBOK V3 2013 e suas KAs

O Guia SWEBOK V3 possuí as mesmas KAs, revisadas e melhoradas, com o complemento de mais 5 KAs. Suas disciplinas relacionas também são as mesmas, porém revisadas e melhoradas, porém não há mais “Ergonomia de Software”. Seguem:
* Requisitos de Software: Se refere a análise, especificação e validação dos requisitos de software.
* Desenho de Software: Se refere a análise dos requisitos de software com a finalidade de produzir uma descrição da estrutura interna do software que sirva como base para a construção do mesmo.
* Construção de Software: Se refere a criação detalhada do software mediante a combinação de codificação, verificação, testes unitários, testes de integração e depuração.
* Testes de Software: Se refere a avaliação da qualidade de um produto mediante seus defeitos e/ou problemas para melhorá-lo.
* Manutenção de Software: Se refere ao software após criado e “entregue”, pois devem haver melhorias e atualizações para que a qualidade se mantenha.
* Gestão de Configuração de Software: Se refere ao controle e entendimento de diferentes partes do software, para que mudanças realizadas sejam feitas da melhor e mais correta maneira para que a qualidade e funcionalidade do software não sejam comprometidas.
* Gestão de Engenharia de Software: Se refere a aplicação consistente de atividades de gestão para assegurar que o desenvolvimento e manutenção de um software estão sendo realizados de forma sistemática, disciplinada e quantificável.
* Processos de Engenharia de Software: Se refere a definição, implementação, validação, medição,gestão, mudanças e melhorias existentes dentro do próprio ciclo de vida do software.
* Ferramentas e Métodos: Se refere ao uso de ferramentas e métodos que ajudam no processo de criação e manutenção de um software.
* Qualidade de Software: Se refere as técnicas que auxiliam a alcançar uma maior qualidade em um software.
* Prática Profissional de Engenharia de Software.
* Economia na Engenharia de Software.
* Fundamentos de Computação.
* Fundamentos de Matemática.
* Fundamentos de Engenharia.

## Certificações

O guia, como é convencionalmente chamado, divide a Engenharia de Software em dez áreas de Conhecimento - KnowLedge Areas (KAs): (1) requisitos, (2) Projeto, (3) Construção, (4) testes, (5) manutenção, (6) configuração, (7) gerenciamento, (8) processo, (9) ferramentas e métodos, (10) Qualidade, além de disciplinas relacionadas à Engenharia de Software. É importante comentar que o IEEE oferece duas modalidades de certificação sobre o SWEBOK, disponibilizadas para engenheiros e desenvolvedores. São elas:
* Certificação de associados para o desenvolvimento de Software - Certified Software Development Associate (CSDA);
* Certificação Profissional para desenvolvimento de Software - Certified Software Development Professional (CSDP).
Depois de pesquisa extensa, os líderes do IEEE reconheceram a necessidade de um endereçamento do programa de certificação aos iniciantes e profissionais no desenvolvimento de software. O propósito do programa de CSDA é estabelecer um nível mínimo de habilidades e conhecimento, sendo o primeiro passo para se tornar um Profissional de Desenvolvimento de Software Certificado (CSDP). A certificação CSDP é recomendada para profissionais mais experientes e tem como objetivo ampliar as habilidades e conhecimentos técnicos especializados relevantes sobre o SWEBOK.

## Objetivos

* Promover uma visão consistente da engenharia de software no mundo.
* Clarear e marcar as fronteiras entre a engenharia de software e as outras disciplinas relacionadas
* Caracterizar o conteúdo da disciplina de engenharia de software
* Classificar em tópicos a área de conhecimento da engenharia de software (programas)
* Prover uma fundação para o desenvolvimento do currículo, para certificação individual e para licenciamento de material

## Áreas do Conhecimento

O SWEBOK 3.0 é composto por 15 áreas do conhecimento.
* Requisitos de Software
* Projeto de Software
* Construção de Software
* Teste de Software
* Manutenção de software
* Gerência de Configuração de Software
* Gerência da Engenharia de Software
* Processos de Engenharia de Software
* Ferramentas e Métodos da Engenharia de Software
* Qualidade de Software
* Práticas Profissionais em Engenharia de Software
* Economia da Engenharia de Software
* Fundamentos de Computação
* Fundamentos de Matemática
* Fundamentos de Engenharia

## Disciplinas relacionadas

* Ciência da computação
* Engenharia da computação
* Engenharia de sistemas
* Engenharia de software
* Ergonomia de software
* Gestão
* Gestão da qualidade
* Gestão de projeto
* Matemática
* Sistemas de informação