<commit_before># Áreas de Conhecimento da Engenharia de Software
#### Segundo [SWEBOK](https://www.computer.org/web/swebok/v3)

## 1. Requisitos de Software

<em>“Os requisitos expressam a necessidade e restrições colocadas sobre o produto de software que contribuem para a solução de algum problema do mundo real. Esta área envolve elicitação, análise, especificação e validação dos requisitos de software. “ (SWEBOK).</em>  
Área responsável pelo levantamento das necessidades que serão implementadas no software/sistema, bem como delimitar o escopo do mesmo. Tem como objetivo produzir um documento técnico de entendimento de todas as partes interessadas, contudo compreende o problema, incluído assim um conjunto de atividades/funções que o sistema deverá atender, o impacto no negócio, aspectos de usabilidade, funcionalidade e de interação para atender os clientes finais.

## 2. Design de Software
<em>“[...] envolve definição da arquitetura, componentes, interfaces e outras características de um sistema ou componente. Visualizado como um processo, esta área é uma etapa do ciclo de vida da Engenharia de Software, onde os requisitos são analisados para produzir uma descrição da arquitetura do software. “ (SWEBOK).</em>  
Área responsável pelo desenvolvimento do projeto arquitetural, onde é desenvolvido um modelo conceitual, composto de módulos e dependências, o projeto de interface com a definição das interfaces de comunicação entre os módulos e o projeto detalhado com a definição final dos módulos e sua tradução para pseudocódigos quando necessário para a sua construção. Neste momento é essencial analisar a solução para definir uma arquitetura que possa atender os requisitos não funcional/qualidade, para assim garantir a evolução do sistema.

## 3. Construção de Software
<em>“Refere-se a implementação do software, verificação, testes de unidade, testes de integração e debugging. Esta área está envolvida com todas as áreas de conhecimento, porém, está fortemente ligada às áreas de Design e Teste de Software, pois o processo de construção abrange significativamente estas duas áreas. ” (SWEBOK).</em>  
Área responsável pela implementação em si do sistema em uma linguagem computacional, buscando minimizar a complexidade e antecipar mudanças, basicamente o desenvolvimento do design especificado na etapa anterior. 

## 4. Teste de Software 
<em>“Teste de software é uma atividade executada para avaliar a qualidade do produto, buscando identificar os defeitos e problemas existentes. ” (SWEBOK).</em>  
Área que busca a entrega de um produto com qualidade para isso verificar se através de teste se os requisitos do sistema estão sendo compreendido/atendido pela solução desenvolvida, emprega-se diversas técnicas de testes que são definidas através de critérios e estratégicos para garantir um nível aceitável de qualidade para o usuário final.  A realização de teste busca basicamente a verificação de presença de erros e o comportamento adequado dos diferentes módulos interagindo quando operado em conjunto.

## 5. Manutenção de Software
<em>“Os esforços de desenvolvimento de software resultam na entrega de um produto de software que satisfaça os requisitos dos usuários. Consequentemente, o produto do software deve mudar ou evoluir. Uma vez em operação, os defeitos são descobertos, os ambientes operacionais mudam.” (SWEBOK).</em>  
Temdo como objetivo garantir a "vida" do software a manutenção de software recebido bastante atenção, uma vez que contruir/desenvolver pensando em manutenibilidade tem se mostrado mais vantajoso. Essa área de conhecimento busca empregar processos, técnicas e esforços, que, deste o desenvolvimento, agregem um bom nível de mautenibilidade ao projeto, e assim se torne viável manter o mesmo.

## 6. Gerência de Configuração de Software
<em>“O gerenciamento de configuração de software (SCM) é um processo de suporte no ciclo de vida de software que beneficia as atividades de gerenciamento de projetos, desenvolvimento e manutenção, atividades de garantia de qualidade, bem como clientes e usuários do produto final.” (SWEBOK).</em>  
Sabemos que software é a combinação de diversos artefatos (código, documentação, itens de configuração). Gerenciar esses artefatos é uma tarefa essencial para o sucesso e evolução do projeto. Identificar, controlar e auditar os itens de configuração são alguns exemplos de processos primordiais, uma vez que evitam que o projeto se torne um "cãos" com artefados "não indexados" e "sem propósito", além de possibilitar o acompanhamento da evolução dos mesmos por meio de auditoria.

## 7. Gerência da Engenharia de Software
<em>“O gerenciamento de engenharia de software pode ser definido como a aplicação de atividades de gerenciamento para garantir que os produtos de software e os serviços de engenharia de software sejam entregues de forma eficiente, efetiva e em benefício das partes interessadas.” (SWEBOK).</em>   
Os principais tópicos abordados nessa área são: planejamento, aprovação, avaliação e medição do projeto/software. É uma área integradora que está envolvida na "consução" do projeto de software tendo como base as demais áreas de conhecimento.

## 8. Processo de Engenharia de Software
<em>“Um processo de engenharia consiste em um conjunto de atividades inter-relacionadas que transformam um ou mais insumos em resultados ao mesmo tempo em que consomem recursos para realizar a transformação.” (SWEBOK).</em>   
Conduzir um projeto de desenvolvimento/construção, não apenas de software, exije um processo, mesmo que empírico. Essa área de conhecimento trata da definição e medição desses processos e suas atividades dentro do ciclo de vida. Esses processos visam "padronizar" a execução de determinadas atividades bem como a forma/conteúdo de seus produtos, permitindo que os mesmos sejam medidos e que a partir disso evoluam, seja por meio da correção dos problemas percebidos ou pela difusão do conhecimento.  

## 9

## 10

## 11

## 12

## 13
"O escopo de conhecimento dos fundamentos da computação é uma área que engloba o desenvolvimento e o ambiente operacional no qual software executa e evolui. Visto que nenhum Software existe no vácuo ou existe sem um computador" (SWEBOK).  
Fundamentos da Computação são divididos em 17 tópicos que são: Técnicas de resolução de problemas, Abstração, Fundamentos de programação, Noções básicas de linguagem de programação, Ferramentas de depuração e técnicas, Estrutura e Representação de Dados, Algoritmos e complexidade, Conceito Básico de um Sistema, Organização computacional, Princípios básicos do compilador, Noções básicas de sistemas operacionais, banco de dados e gerenciamento de dados(Básico),Conceitos básicos de comunicação de rede, Computação Paralela e Distribuída, Fatores humanos básicos do usuário ,Desenvolvimento básico dos fatores humanos, Desenvolvimento seguro de software e Manutenção

## 14

## 15<commit_msg>alteração na formatação do tópico 13<commit_after># Áreas de Conhecimento da Engenharia de Software
#### Segundo [SWEBOK](https://www.computer.org/web/swebok/v3)

## 1. Requisitos de Software

<em>“Os requisitos expressam a necessidade e restrições colocadas sobre o produto de software que contribuem para a solução de algum problema do mundo real. Esta área envolve elicitação, análise, especificação e validação dos requisitos de software. “ (SWEBOK).</em>  
Área responsável pelo levantamento das necessidades que serão implementadas no software/sistema, bem como delimitar o escopo do mesmo. Tem como objetivo produzir um documento técnico de entendimento de todas as partes interessadas, contudo compreende o problema, incluído assim um conjunto de atividades/funções que o sistema deverá atender, o impacto no negócio, aspectos de usabilidade, funcionalidade e de interação para atender os clientes finais.

## 2. Design de Software
<em>“[...] envolve definição da arquitetura, componentes, interfaces e outras características de um sistema ou componente. Visualizado como um processo, esta área é uma etapa do ciclo de vida da Engenharia de Software, onde os requisitos são analisados para produzir uma descrição da arquitetura do software. “ (SWEBOK).</em>  
Área responsável pelo desenvolvimento do projeto arquitetural, onde é desenvolvido um modelo conceitual, composto de módulos e dependências, o projeto de interface com a definição das interfaces de comunicação entre os módulos e o projeto detalhado com a definição final dos módulos e sua tradução para pseudocódigos quando necessário para a sua construção. Neste momento é essencial analisar a solução para definir uma arquitetura que possa atender os requisitos não funcional/qualidade, para assim garantir a evolução do sistema.

## 3. Construção de Software
<em>“Refere-se a implementação do software, verificação, testes de unidade, testes de integração e debugging. Esta área está envolvida com todas as áreas de conhecimento, porém, está fortemente ligada às áreas de Design e Teste de Software, pois o processo de construção abrange significativamente estas duas áreas. ” (SWEBOK).</em>  
Área responsável pela implementação em si do sistema em uma linguagem computacional, buscando minimizar a complexidade e antecipar mudanças, basicamente o desenvolvimento do design especificado na etapa anterior. 

## 4. Teste de Software 
<em>“Teste de software é uma atividade executada para avaliar a qualidade do produto, buscando identificar os defeitos e problemas existentes. ” (SWEBOK).</em>  
Área que busca a entrega de um produto com qualidade para isso verificar se através de teste se os requisitos do sistema estão sendo compreendido/atendido pela solução desenvolvida, emprega-se diversas técnicas de testes que são definidas através de critérios e estratégicos para garantir um nível aceitável de qualidade para o usuário final.  A realização de teste busca basicamente a verificação de presença de erros e o comportamento adequado dos diferentes módulos interagindo quando operado em conjunto.

## 5. Manutenção de Software
<em>“Os esforços de desenvolvimento de software resultam na entrega de um produto de software que satisfaça os requisitos dos usuários. Consequentemente, o produto do software deve mudar ou evoluir. Uma vez em operação, os defeitos são descobertos, os ambientes operacionais mudam.” (SWEBOK).</em>  
Temdo como objetivo garantir a "vida" do software a manutenção de software recebido bastante atenção, uma vez que contruir/desenvolver pensando em manutenibilidade tem se mostrado mais vantajoso. Essa área de conhecimento busca empregar processos, técnicas e esforços, que, deste o desenvolvimento, agregem um bom nível de mautenibilidade ao projeto, e assim se torne viável manter o mesmo.

## 6. Gerência de Configuração de Software
<em>“O gerenciamento de configuração de software (SCM) é um processo de suporte no ciclo de vida de software que beneficia as atividades de gerenciamento de projetos, desenvolvimento e manutenção, atividades de garantia de qualidade, bem como clientes e usuários do produto final.” (SWEBOK).</em>  
Sabemos que software é a combinação de diversos artefatos (código, documentação, itens de configuração). Gerenciar esses artefatos é uma tarefa essencial para o sucesso e evolução do projeto. Identificar, controlar e auditar os itens de configuração são alguns exemplos de processos primordiais, uma vez que evitam que o projeto se torne um "cãos" com artefados "não indexados" e "sem propósito", além de possibilitar o acompanhamento da evolução dos mesmos por meio de auditoria.

## 7. Gerência da Engenharia de Software
<em>“O gerenciamento de engenharia de software pode ser definido como a aplicação de atividades de gerenciamento para garantir que os produtos de software e os serviços de engenharia de software sejam entregues de forma eficiente, efetiva e em benefício das partes interessadas.” (SWEBOK).</em>   
Os principais tópicos abordados nessa área são: planejamento, aprovação, avaliação e medição do projeto/software. É uma área integradora que está envolvida na "consução" do projeto de software tendo como base as demais áreas de conhecimento.

## 8. Processo de Engenharia de Software
<em>“Um processo de engenharia consiste em um conjunto de atividades inter-relacionadas que transformam um ou mais insumos em resultados ao mesmo tempo em que consomem recursos para realizar a transformação.” (SWEBOK).</em>   
Conduzir um projeto de desenvolvimento/construção, não apenas de software, exije um processo, mesmo que empírico. Essa área de conhecimento trata da definição e medição desses processos e suas atividades dentro do ciclo de vida. Esses processos visam "padronizar" a execução de determinadas atividades bem como a forma/conteúdo de seus produtos, permitindo que os mesmos sejam medidos e que a partir disso evoluam, seja por meio da correção dos problemas percebidos ou pela difusão do conhecimento.  

## 9

## 10

## 11

## 12

## 13
<em>"O escopo de conhecimento dos fundamentos da computação é uma área que engloba o desenvolvimento e o ambiente operacional no qual software executa e evolui. Visto que nenhum Software existe no vácuo ou existe sem um computador" (SWEBOK).</em>    
Fundamentos da Computação são divididos em 17 tópicos que são: Técnicas de resolução de problemas, Abstração, Fundamentos de programação, Noções básicas de linguagem de programação, Ferramentas de depuração e técnicas, Estrutura e Representação de Dados, Algoritmos e complexidade, Conceito Básico de um Sistema, Organização computacional, Princípios básicos do compilador, Noções básicas de sistemas operacionais, banco de dados e gerenciamento de dados(Básico),Conceitos básicos de comunicação de rede, Computação Paralela e Distribuída, Fatores humanos básicos do usuário ,Desenvolvimento básico dos fatores humanos, Desenvolvimento seguro de software e Manutenção

## 14

## 15
{'fraction_non_alphanumeric': 0.040378503322739095, 'fraction_numerical': 0.00361167292689974, 'mean_word_length': 5.205737337516808, 'pattern_counts': {'":': 0, '<': 37, '<?xml version=': 0, '>': 37, 'https://': 2, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1679674', 'n_tokens_mistral': 4371, 'n_tokens_neox': 4302, 'n_words': 1952}