Skip to content
This repository has been archived by the owner on Nov 5, 2023. It is now read-only.

Áreas e Tópicos do SWEBOK

Matheus Ribeiro Pimenta Nunes edited this page Aug 28, 2017 · 11 revisions

Áreas e Tópicos do SWEBOK

Definição das áreas de conhecimento do SWEBOK e dos tópicos de cada uma delas a serem empregados na classificação do conteúdo do Projeto Pedagógico (PP).

1. Requisitos de Software

  1. Fundamentos de Requisitos de Software
    1.1. Definição de Requisitos de Software
    1.2. Requisitos de produtos e processos
    1.3. Requisitos funcionais e não funcionais
    1.4. Propriedades emergentes
    1.5. Requisitos quantificáveis
    1.6. Requisitos de sistema e requisitos de software
  2. Processo de Requisitos
    2.1. Modelos de processo
    2.2. Atores do processo
    2.3. Suporte e gerenciamento de processos
    2.4. Qualidade e melhoria do processo
  3. Requisitos de Elicitação
    3.1. Fontes de Requisitos
    3.2. Técnicas de elicitação
  4. Análise de Requisitos
    4.1. Classificação de Requisitos
    4.2. Modelagem conceitual
    4.3. Design arquitetônico e atribuição de requisitos
    4.4. Negociação de Requisitos
    4.5. Análise formal
  5. Especificação de requisitos
    5.1. Documento de Definição do Sistema
    5.2. Especificação de Requisitos do Sistema
    5.3. Especificação de requisitos de software
  6. Validação de Requisitos
    6.1. Requisitos de Requisitos
    6.2. Protótipos
    6.3. Validação de modelos
    6.4. Testes de aceitação
  7. Considerações práticas
    7.1. Natureza Iterativa do Processo de Requisitos
    7.2. Gerenciamento de mudanças
    7.3. Atributos de requisitos
    7.4. Rastreamento de requisitos
    7.5. Requisitos de medição
  8. Ferramentas de Requisitos de Software

2. Design de Software

  1. Fundamentos de Design de Software
    1.1. Conceitos gerais de design
    1.2. Contexto de Software Design
    1.3. Processo de Design de Software
    1.4. Princípios de Design de Software
  2. Problemas importantes no design de software
    2.1. Concorrência
    2.2. Controle e Manipulação de Eventos
    2.3. Persistência de dados
    2.4. Distribuição de componentes
    2.5. Manipulação de erros e exceções e tolerância a falhas
    2.6. Interação e apresentação
    2.7. Segurança
  3. Estrutura e arquitetura de software
    3.1. Estruturas arquitetônicas e pontos de vista
    3.2. Estilos arquitetônicos
    3.3. Padrões de design
    3.4. Decisões de design de arquitetura
    3.5. Famílias de Programas e Estruturas
  4. Projeto de interface do usuário
    4.1. Princípios gerais de design da interface do usuário
    4.2. Problemas de design da interface do usuário
    4.3. O design das modalidades de interação do usuário
    4.4. Apresentação do design da informação
    4.5. Processo de design da interface do usuário
    4.6. Localização e internacionalização
    4.7. Metáforas e modelos conceituais
  5. Análise e avaliação da qualidade do projeto de software
    5.1. Atributos de qualidade
    5.2. Técnicas de análise e avaliação de qualidade
    5.3. Medidas
  6. Noções de Design de Software
    6.1. Descrições Estruturais (Vista estática)
    6.2. Descrições comportamentais (visão dinâmica)
  7. Estratégias e Métodos de Design de Software
    7.1. Estratégias gerais
    7.2. Design orientado a função (estruturado)
    7.3. Design orientado a objetos
    7.4. Design centrado na estrutura de dados
    7.5. Design baseado em componentes (CBD)
    7.6. Outros métodos
  8. Ferramentas de design de software

3. Construção de Software

  1. Fundamentos de Construção de Software
    1.1. Minimizar a complexidade
    1.2. Antecipando a mudança
    1.3. Construindo para Verificação
    1.4. Reuso
    1.5. Padrões em construção
  2. Gerenciando a Construção
    2.1. Construção em modelos de ciclo de vida
    2.2. Planejamento de Construção
    2.3. Medição de construção
  3. Considerações práticas
    3.1. Projeto de construção
    3.2. Idiomas de construção
    3.3. Codificação
    3.4. Teste de construção
    3.5. Construção para reutilização
    3.6. Construção com Reutilização
    3.7. Qualidade da construção
    3.8. Integração
  4. Tecnologias de Construção
    4.1. Design e uso da API
    4.2. Problemas de tempo de execução orientados a objetos
    4.3. Parametrização e genéricos
    4.4. Asserções, Design por Contrato e Programação Defensiva
    4.5. Manipulação de erros, Manipulação de Exceção e Tolerância a Falhas
    4.6. Modelos executáveis
    4.7. Técnicas de construção baseadas em estado e orientadas por mesa
    4.8. Configuração de tempo de execução e internacionalização
    4.9. Processamento de entrada baseado em gramática
    4.10. Primitivas de Concorrência
    4.11. Middleware
    4.12. Métodos de construção para software distribuído
    4.13. Construindo Sistemas Heterogêneos
    4.14. Análise de desempenho e ajuste
    4.15. Normas de plataforma
    4.16. Test-First Programming
  5. Ferramentas de construção de software
    5.1. Ambientes de desenvolvimento
    5.2. GUI Builders
    5.3. Ferramentas de teste de unidade
    5.4. Perfis, análise de desempenho e ferramentas de corte

4. Teste de Software

  1. Fundamentos de testes de software
    1.1. Terminologia relacionada ao teste
    1.2. Assuntos chave
    1.3. Relacionamento de testes com outras atividades
  2. Níveis de teste
    2.1. O alvo do teste
    2.2. Objetivos do teste
  3. Técnicas de teste
    3.1. Com base na Intuição e Experiência do Software Engineer
    3.2. Técnicas baseadas em domínio de entrada
    3.3. Técnicas baseadas em código
    3.4. Técnicas baseadas em falhas
    3.5. Técnicas baseadas em uso
    3.6. Técnicas de teste baseadas em modelos
    3.7. Técnicas baseadas na natureza da aplicação
    3.8. Seleção e combinação de técnicas
  4. Medidas relacionadas ao teste
    4.1. Avaliação do Programa em Teste
    4.2. Avaliação dos testes realizados
  5. Processo de teste
    5.1. Considerações práticas
    5.2. Atividades de teste
  6. Ferramentas de teste de software
    6.1. Suporte a ferramentas de teste
    6.2. Categorias de ferramentas

5. Manutenção de Software

  1. Fundamentos de Manutenção de Software
    1.1. Definições e terminologia
    1.2. Natureza da manutenção
    1.3. Necessidade de Manutenção
    1.4. Maioria dos custos de manutenção
    1.5. Evolução do software
    1.6. Categorias de manutenção
  2. Problemas importantes na manutenção do software
    2.1. Questões técnicas
    2.2. Problemas de gerenciamento
    2.3. Estimativa de custo de manutenção
    2.4. Medição de manutenção do software
  3. Processo de manutenção
    3.1. Processos de manutenção
    3.2. Atividades de manutenção
  4. Técnicas de manutenção
    4.1. Compreensão do Programa
    4.2. Reengenharia
    4.3. Engenharia Reversa
    4.4. Migração
    4.5. Aposentadoria

6. Gerência de Configuração de Software

  1. Gerenciamento do Processo
    1.1. Contexto organizacional para Gerenciamento da configuração
    1.2. Restrições e orientação para o processo Gerenciamento da configuração
    1.3. Planejando o Gerenciamento da configuração
    1.4. Plano Gerenciamento da configuração
    1.5. Vigilância do Gerenciamento de Configuração de Software
  2. Identificação da Configuração do Software
    2.1. Identificando itens a serem controlados
    2.2. Biblioteca de Software
  3. Controle de Configuração de Software
    3.1. Solicitando, avaliando e aprovando alterações de software
    3.2. Implementando Alterações de Software
    3.3. Desvios e renúncias
  4. Contabilidade do estado da configuração do software
    4.1. Informações de Status da Configuração do Software
    4.2. Relatório de Status da Configuração do Software
  5. Auditoria de Configuração de Software
    5.1. Auditoria de Configuração Funcional do Software
    5.2. Auditoria de Configuração Física do Software
    5.3. Auditorias em processo de uma linha de base do software
  6. Gerenciamento e entrega de versão de software
    6.1. Construção de Software
    6.2. Gerenciamento de Release de Software
  7. Ferramentas de Gerenciamento de Configuração de Software

7. Gerência da Engenharia de Software

  1. Iniciação e definição do escopo
    1.1. Determinação e Negociação de Requisitos
    1.2. Análise de Viabilidade
    1.3. Processo para Revisão e Revisão de Requisitos
  2. Planejamento de Projetos de Software
    2.1. Planejamento de processo
    2.2. Determinar entregáveis ​​ 2.3. Esforço, programação e estimativa de custo
    2.4. Atribuição de recursos
    2.5. Gerenciamento de Riscos
    2.6. Gestão da Qualidade
    2.7. Gerenciamento de planos
  3. Projeto de Projeto de Projeto
    3.1. Implementação de planos
    3.2. Aquisição de software e gerenciamento de contratos de fornecedores
    3.3. Implementação do Processo de Medição
    3.4. Processo de Monitoramento
    3.5. Processo de controle
    3.6. Relatórios
  4. Revisão e Avaliação
    4.1. Determinando Satisfação de Requisitos
    4.2. Revisando e Avaliando o Desempenho
  5. Encerramento
    5.1. Determinando encerramento
    5.2. Atividades de encerramento
  6. Medição de Engenharia de Software
    6.1. Estabelecer e Sustentar o Compromisso de Medição
    6.2. Planejar o processo de medição
    6.3. Execute o processo de medição
    6.4. Avalie a Medição
  7. Ferramentas de gerenciamento de engenharia de software

8. Processo de Engenharia de Software

  1. Definição do Processo de Software
    1.1. Gerenciamento de Processos de Software
    1.2. Infraestrutura de Processo de Software
  2. Ciclos de vida do software
    2.1. Categorias de Processos de Software
    2.2. Modelos do ciclo de vida do software
    2.3. Adaptação de Processo de Software
    2.4. Considerações Práticas
  3. Avaliação e melhoria do processo de software
    3.1. Modelos de Avaliação de Processo de Software
    3.2. Métodos de Avaliação de Processo de Software
    3.3. Modelos de melhoria de processos de software
    3.4. Avaliação contínua e programada do processo de software
  4. Medição de software
    4.1. Processo de software e medição do produto
    4.2. Qualidade de Medição Resultados
    4.3. Modelos de informações de software
    4.4. Técnicas de Medição de Processo de Software
  5. Ferramentas de Processo de Engenharia de Software

9. Modelos e Métodos de Engenharia de Software

  1. Modelagem
    1.1. Princípios de modelagem
    1.2. Propriedades e Expressão dos Modelos
    1.3. Sintaxe, semântica e pragmática
    1.4. Condições prévias, pós-condições e invariantes
  2. Tipos de modelos
    2.1. Modelagem de informação
    2.2. Modelagem comportamental
    2.3. Modelagem de Estrutura
  3. Análise dos modelos
    3.1. Analisando a Conclusão
    3.2. Analisando para Consistência
    3.3. Analisando a correção
    3.4. Traçabilidade
    3.5. Análise de Interação
  4. Métodos de Engenharia de Software
    4.1. Métodos Heurísticos
    4.2. Métodos formais
    4.3. Métodos de Prototipagem
    4.4. Métodos ágeis

10. Qualidade de Software

  1. Fundamentos de qualidade do software
    1.1. Engenharia de Software Cultura e Ética
    1.2. Valor e Custos de Qualidade
    1.3. Modelos e características de qualidade
    1.4. Melhoria da qualidade do software
    1.5. Software Safety
  2. Processos de gerenciamento de qualidade de software
    2.1. Garantia de qualidade do software
    2.2. Verificação e Validação
    2.3. Comentários e auditorias
  3. Considerações Práticas
    3.1. Requisitos de qualidade do software
    3.2. Caracterização de defeito
    3.3. Técnicas de gerenciamento de qualidade de software
    3.4. Medição de qualidade do software
  4. Ferramentas de qualidade de software

11. Prática Profissional de Engenharia de Software

  1. Profissionalismo
    1.1. Acreditação, Certificação e Licenciamento
    1.2. Códigos de Ética e Conduta Profissional
    1.3. Natureza e Papel das Sociedades Profissionais
    1.4. Natureza e papel dos padrões de engenharia de software
    1.5. Impacto econômico do software
    1.6. Contratos de Emprego
    1.7. Questões legais
    1.8. Documentação
    1.9. Análise de tradeoff
  2. Dinâmica de grupos e psicologia
    2.1. Dinâmica do Trabalho em Equipes / Grupos
    2.2. Cognição individual
    2.3. Lidar com a complexidade do problema
    2.4. Interagindo com as partes interessadas
    2.5. Lidando com incerteza e ambiguidade
    2.6. Lidar com ambientes multiculturais
  3. Habilidades de comunicação
    3.1. Leitura, compreensão e resumo
    3.2. Escrevendo
    3.3. Comunicação de equipe e grupo
    3.4. Habilidades de Apresentação

12. Economia de Engenharia de Software

  1. Fundamentos de economia de engenharia de software
    1.1. Finanças
    1.2. Contabilidade
    1.3. Controlando
    1.4. Fluxo de caixa
    1.5. Processo de tomada de decisão
    1.6. Avaliação
    1.7. Inflação
    1.8. Depreciação
    1.9. Tributação
    1.10. Tempo-Valor do dinheiro
    1.11. Eficiência
    1.12. Eficácia
    1.13. Produtividade
  2. Ciclo de vida Economia
    2.1. Produto
    2.2. Projeto
    2.3. Programa
    2.4. Carteira
    2.5. Ciclo de vida do produto
    2.6. Ciclo de vida do projeto
    2.7. Propostas
    2.8. Decisões de investimento
    2.9. Horizonte de planejamento
    2.10. Preço e preços
    2.11. Custo e Custeio
    2.12. Medição de desempenho
    2.13. Gerenciamento de Valor Ganhos
    2.14. Decisões de cessão
    2.15. Decisões de substituição e aposentadoria
  3. Risco e Incerteza
    3.1. Metas, estimativas e planos
    3.2. Técnicas de estimativa
    3.3. Abordando a Incerteza
    3.4. Priorização
    3.5. Decisões sob risco
    3.6. Decisões sob Incerteza
  4. Métodos de análise econômica
    4.1. Análise de decisão com fins lucrativos
    4.2. Taxa mínima aceitável de retorno
    4.3. Retorno do investimento
    4.4. Retorno do capital empregado
    4.5. Análise custo-benefício
    4.6. Análise de custo-efetividade
    4.7. Análise de ruptura
    4.8. Caso comercial
    4.9. Avaliação de Atributos Múltiplos
    4.10. Análise de Otimização
  5. Considerações práticas
    5.1. O princípio "bom o suficiente"
    5.2. Economia livre de fricção
    5.3. Ecossistemas
    5.4. Subcontratação e Deslocação

13 Fundamentos da Computação

  1. Técnicas de resolução de problemas
    1.1. Definição de Resolução de Problemas
    1.2. Formulando o problema real
    1.3. Analisar o problema
    1.4. Projetar uma Estratégia de Pesquisa de Soluções
    1.5. Resolução de problemas usando programas
  2. Abstração
    2.1. Níveis de Abstração
    2.2. Encapsulamento
    2.3. Hierarquia
    2.4. Abstração alternativa
  3. Fundamentos de programação
    3.1. O processo de programação
    3.2. Paradigmas de programação
  4. Fundamentos da linguagem de programação
    4.1. Visão geral da linguagem de programação
    4.2. Sintaxe e semântica de linguagens de programação
    4.3. Linguagens de programação de baixo nível
    4.4. Linguagens de programação de alto nível
    4.5. Linguagens de programação declarativas versus imperativas
  5. Ferramentas e técnicas de depuração
    5.1. Tipos de erros
    5.2. Técnicas de depuração
    5.3. Ferramentas de depuração
  6. Estrutura e representação de dados
    6.1. Visão geral da estrutura de dados
    6.2. Tipos de estrutura de dados
    6.3. Operações em estruturas de dados
  7. Algoritmos e Complexidade
    7.1. Visão geral dos algoritmos
    7.2. Atributos de Algoritmos
    7.3. Análise Algorítmica
    7.4. Estratégias de projeto algorítmico
    7.5. Estratégias de análise algorítmica
  8. Conceito Básico de um Sistema
    8.1. Propriedades do sistema Emergente
    8.2. Engenharia de Sistemas
    8.3. Visão geral de um sistema informático
  9. Organização de Computadores
    9.1. Visão Geral da Organização de Computadores
    9.2. Sistemas digitais
    9.3. Lógica Digital
    9.4. Expressão de Computador de Dados
    9.5. A Unidade Central de Processamento (CPU)
    9.6. Organização do Sistema de Memória
    9.7. Entrada e Saída (E / S)
  10. Princípios básicos do compilador
    10.1. Visão geral do compilador
    10.2. Interpretação e compilação
    10.3. Processo de Compilação
  11. Princípios básicos dos sistemas operacionais
    11.1. Visão geral dos sistemas operacionais
    11.2. Tarefas de um sistema operacional
    11.3. Abstrações do Sistema Operacional
    11.4. Classificação dos Sistemas Operacionais
  12. Base de dados básicos e gerenciamento de dados
    12.1. Entidade e Esquema
    12.2. Sistemas de gerenciamento de banco de dados (SGBD)
    12.3. Idioma da consulta do banco de dados
    12.4. Tarefas de pacotes de DBMS
    12.5. Gerenciamento de dados
    12.6. Data Mining
  13. Fundamentos de Comunicação de Rede
    13.1. Tipos de Rede
    13.2. Componentes básicos da rede
    13.3. Protocolos e padrões de rede
    13.4. A Internet
    13.5. Internet das coisas
    13.6. Rede Privada Virtual (VPN)
  14. Computação Paralela e Distribuída
    14.1. Visão geral da computação paralela e distribuída
    14.2. Diferença entre computação paralela e distribuída
    14.3. Modelos de computação paralela e distribuída
    14.4. Questões principais na computação distribuída
  15. Fatores humanos do usuário básico
    15.1. Entrada e saída
    15.2. Mensagens de erro
    15.3. Software robusto
  16. Desenvolvedores Básicos Fatores Humanos
    16.1. Estrutura
    16.2. Comentários
  17. Desenvolvimento e manutenção de software seguro
    17.1. Requisitos de software Segurança
    17.2. Segurança do projeto de software
    17.3. Segurança de Construção de Software
    17.4. Segurança de teste de Software
    17.5. Construa Segurança no Processo de Engenharia de Software
    17.6. Diretrizes de segurança do software

14 Fundamentos Matemáticos

  1. Definição, Relações, Funções
    1.1. Definir Operações
    1.2. Propriedades do Conjunto 1.3. Relação e Função
  2. Lógica básica
    2.1. Lógica proposicional
    2.2. Lógica predicativa
  3. Técnicas de Prova
    3.1. Métodos de provar teoremas
  4. Fundamentos da contagem
  5. Gráficos e Árvores
    5.1. Gráficos
    5.2. Árvores
  6. Probabilidade discreta
  7. Máquinas de estado finito
  8. Gramática
    8.1. Reconhecimento de Idioma
  9. Precisão numérica, precisão e erros
  10. Teoria dos números
    10.1. Divisibilidade
    10.2. Número primo, GCD
  11. Estruturas algébricas
    11.1. Grupo
    11.2. argolas

15 Fundamentos da Engenharia

  1. Métodos empíricos e técnicas experimentais
    1.1. Experiência projetada
    1.2. Estudo de observação
    1.3. Estudo Retrospectivo
  2. Análise estatística
    2.1. Unidade de Análise (Unidades de Amostragem), População e Amostra
    2.2. Conceitos de correlação e regressão
  3. Medição
    3.1. Níveis (Escalas) de Medição
    3.2. Medidas diretas e derivadas
    3.3. Confiabilidade e validade
    3.4. Avaliando Confiabilidade
  4. Design de Engenharia
    4.1. Design de Engenharia em Educação de Engenharia
    4.2. Design como uma atividade de solução de problemas
    4.3. Etapas envolvidas em design de engenharia
  5. Modelagem, simulação e prototipagem
    5.1. Modelagem
    5.2. Simulação
    5.3. Prototipagem
  6. Padrões
  7. Análise da Causa Raiz
    7.1. Técnicas para realizar análise de causa raiz