SWEBOK
José Benito
David Embiruçu
Leandro barbosa
Pablo Alessandro
Sergio Sette
Roteiro



Introdução
KA’s
 Software Requiremets
 Software design
 Software construction
 Software testing
 Software maintenance
 Software configuration management
 Software engineering management
 Software engineering process
 Software engineering tools and methods
 Software quality
Conclusão
Introdução

Contexto



Cada vez mais profissionais na área da
engenharia de software
Software agregando valor a sociedade
Recentemente a engeharia de software atingiu o
status de uma disciplina da engenharia e uma
profissão reconhecida
Introdução

Engenharia de Software

Engenharia de Software é a uma área de
interesse (disciplina) preocupada com a criação e
manutenção de aplicações de software pela
aplicação de tecnologias e práticas da ciência da
computação, gerência de projetos, engenharia,
domínios de aplicação e outros campos.
Introdução

SWEBOK




Guide to the Software Engineering Body of
Knowledge
Parceria entre a IEEE Computer Society e
Association for Computing Machinery
Promover a profissionalização da engenharia de
software
Criar um consenso sobre as áreas de
conhecimento da engenharia de software e seu
escopo
Introdução

SWEBOK – Objetivos





Oferecer uma visão consistente da engenharia de software
no âmbito mundial
Deixar claros os limites de engenharia de software com
respeito a outras disciplinas como ciência da computação,
gerência de projetos, matemática e outras
Caracterizar o conteúdo da disciplina de Engenharia de
Software
Prover um acesso tópico ao corpo do conhecimento da
engenharia de software
Prover uma base para desenvolvimento curricular e
material de licença e certificação.
Introdução

Audiência Pretendida





Organizações públicas e privadas
Sociedades profissionais
Corporações de criação de padrões
Estudantes de Engenharia de Software
Educadores e Instrutores
Introdução

KA´s










Software Requiremets
Software design
Software construction
Software testing
Software maintenance
Software configuration management
Software engineering management
Software engineering process
Software engineering tools and methods
Software quality
Software Requiremets


Responsável pela elicitação, análise,
especificação e validação de requisitos
Esta área é dividida em sete sub-áreas:







Fundamentos de requisitos de software
Processo de requisitos
Elicitação de requisitos
Análise de requisitos
Especificação dos requisitos
Validação dos requisitos
Considerações práticas.
Software Requiremets
Software Requiremets

Fundamentos de requisitos de
software

Definições Básicas






Requisitos de Software
Requisitos de Produto e Software
Requisitos Funcionais e não Funcionais
Propriedades Emergentes
Requesitos quantificáveis
Requisitos de Sistema e de Software
Software Requiremets

Requirements Process




Apresenta os processos de requisitos de
software
Orientando as outras cinco subáreas
Mostra como o planejamento de requisitos
se encaixa com o processo completo de
planejamento de software
Se preocupa com modelos de processo,
atores, suporte, gerenciamento de requisitos,
melhoria e qualidade do processo.
Software Requiremets

Requirements Elicitation



Se preocupa com a origem dos
requisitos e como os engenheiros de
software podem coletar eles
Primeiro estágio para o entendimento
de como o problema poderá ser
resolvido.
Identificar Fontes e definir as técnicas
para extrair requisitos dos stakeholders
Software Requiremets

Requirements Analysis




Detectar e resolver conflitos entre
requisitos
Descobrir os limites do sistema e
como ele deve interagir com o
ambiente de operação
Aprimorar requisitos do sistema para
requisitos de software.
Classificação dos requisitos
Software Requiremets

Requirements Specification



Produção do documento de definição
do sistema
Espeficicação dos requisitos do
sistema e derivação dos requisitos de
software a partir dos do sistema
Especifição dos compomentes de
software
Software Requiremets

Requirements Validation


Garantir o entendimento dos requisitos
pelos engenheiros de software
Verificar se o documento de requisitos
está conforme com os padrões da
organização, estão consistentes e
completos:



Revisões
Prototipação
Testes de aceitação
Software Requiremets

Pratical Considerations




Gerenciamento de mudança e
manutenção dos requisitos
Atributos dos requisitos
Acompanhamento dos Requisitos
Avaliar o tamanho das mudanças em
requisitos,e estimar o custo do
desenvolvimento e manutenção da
tarefa.
Software Design


O projeto de software é a definição da arquitetura,
dos componentes, das interfaces de um sistema ou
dos seus componentes.
Esta área é dividida em seis sub-áreas:






Fundamentos de design de software
Questões chave no design de software
Estrutura e arquitetura de software
Análise de qualidade e avaliação em design de software
Notações no design de software
Estratégias e métodos de design de software
Software Design
Software Design

Fundamentos do design de software



Consiste em conceitos notações e
terminologias que norteia e fazem
compreender os papéis e o escopo do
design de software.
Contexto do design de software.
Permissão de técnicas:



Modularização
Abstração
Coesão...
Software Design

Questões chave no design de software




Um certo número de questões
fundamentais deve ser tratado no projeto
de software. Algumas dizem respeito à
qualidade, por exemplo, o desempenho.
Manipulação e controle de eventos.
Manipulação de exceções e tolerância a
erros.
Interação e apresentação.
Software Design

Estrutura e arquitetura de software




Uma descrição dos subsistemas e
componentes de um sistema de software e
as relações entre eles.
Estruturação e pontos de vista da
Arquitetura.
Padrões de design.
Famílias de programas e frameworks.

Permitem o reuso de software.
Software Design

Análise de Qualidade e Avaliação do Projeto
de Software


Inclui uma série de tópicos sobre qualidade e
avaliação que estão especificamente relacionadas
com a concepção do software.
Qualidade de Atributos


Análise de Qualidade e Técnicas de avaliação


Diversos atributos são geralmente considerados
importantes para a obtenção de um desenho de
software de boa qualidade.
Conjunto de ferramentas e técnicas que ajudam a
assegurar a qualidade no projeto de software.
Medições

Utilizadas para avaliar ou para estimar
quantitativamente vários aspectos de um projeto de
software.
Software Design

Notações no design de software

Notações e linguagens usadas para
descrever a organização estrutural do
projeto ou representar o comportamento
do software.
Software Design

Estratégias e métodos de design de
software

Conjunto de estratégias gerais que ajudam
a guiar o processo de design.




Design orientado à função (estruturado)
Design orientado a objetos
Design baseado em componentes
Outros métodos
Software construction


Embora a qualidade de software seja importante em
todas as áreas de conhecimento (KA’s), o código é
a ultima entrega de um projeto de software e,
portanto a qualidade de software está intimamente
ligada à construção de software.
Esta área é dividida em três sub-áreas:



Fundamentos da construção de software
Gerenciando a construção de software
Considerações Práticas
Software construction
Software construction

Fundamentos da Construção de
software




Minimização da Complexidade que
este é alcançado através da
utilização de normas. Ela também é
apoiada pela construção focada em
técnicas de qualidade.
Antecipação as mudanças
Construção para verificação
Padrões em construção
Software construction

Planejamento da Construção

É definida a ordem na qual
componentes são criados e
integrados, o processo de gestão
de qualidade de software, a
alocação de tarefas atribuídas para
engenheiros de software
específicos, e as outras tarefas, de
acordo com o método escolhido.
Software construction

Considerações Práticas

Na Qualidade na Construção exitem
inúmeras técnicas para garantir a
qualidade do código e como ele é
construído. As principais técnicas
utilizadas para construção incluem:






Teste de unidade e testes de integração
Teste do primeiro desenvolvimento
Uso de asserções
Depuração
Analises técnicas
Analise estática
Software testing


Teste é uma atividade realizada para avaliar
a qualidade de produto e, para melhorá-la,
através da identificação de defeitos e
problemas.
Esta área é dividida em cinco sub-áreas:





Fundamentos de teste de software
Níveis de teste
Técnicas de teste
Medidas relacionadas ao teste
Processo de teste
Software testing
Software testing

Fundamentos do teste de software



Usado para estudar as terminologias
usadas nessa (KA).
Termos na engenharia de software
descrevem mal funcionamento, defeito,
falha, falta, erro e muitas outras.
Relacionamento entre teste e outras
atividades.
Software testing

Níveis de teste

O alvo dos testes.


Teste de software são normalmente realizados
em diferentes níveis ao longo dos processos de
desenvolvimento e manutenção.
Objetivos do teste

Testes são realizados tendo em vista um
objetivo específico e têm diversos graus
de precisão.
Software testing

Técnicas de teste




Um dos objetivos dos testes é o de revelar o
máximo possível do potencial de fracasso e
muitas técnicas têm sido
desenvolvidas para fazer isso: tentativas de
"quebrar" o programa.
Testes ‘caixa preta’ e ‘caixa branca’.
Baseados na intuição e experiência do
engenheiro de software.
Técnicas baseadas em especificação:



Tabelas de decisão
Baseada em máquina de estado finitos
Testes aleatórios
Software testing

Medidas relacionadas ao teste



A medição é geralmente considerada
fundamental para a qualidade análise.
A medição pode também ser utilizado
para otimizar o planejamento e execução
dos testes.
Teste de gestão pode usar várias medidas
para monitorar o progresso.
Software testing

Processo de Teste

Considerações práticas


Atitudes e programação em conjunto como um
componente muito importante para o sucesso
nos testes, visto que, atitudes colaborativas
para testes e atividades de garantia de
qualidade se mostram eficientes.
Atividades de teste




Planejamento
Geração de casos de teste
Desenvolvimento do ambiente de testes
Execução ...
Conclusão





Cada vez mais importante para a área da
engenharia de software
Definição da profissão
Estabelecimento da engenharia de software como
uma disciplina de engenharia
Fundamentam profissional deTI
Com a evolução da engenharia de software o guia
precisará evoluir por isso o mesmo não é definitivo
e não deve ser a única fonte de referências.
Referências





SWEBOK - Guide to the Software
Engineering Book of Knowledge – Thayssa
Rocha
Uma Introdução ao SWEBOK – Milena
Rocha
Uma Introdução ao SWEBOK – Jairo Oliveira
Guide to the Software Engineering Book of
Knowledge – 2004 Version
www.swebok.org
Download

Swebok - jbfan