SWEBOK José Benito David Embiruçu Leandro barbosa Pablo Alessandro Sergio Sette.
Transcript of SWEBOK José Benito David Embiruçu Leandro barbosa Pablo Alessandro Sergio Sette.
SWEBOK
José BenitoDavid EmbiruçuLeandro barbosaPablo AlessandroSergio 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 Diversos atributos são geralmente considerados
importantes para a obtenção de um desenho de software de boa qualidade.
Análise de Qualidade e Técnicas de avaliação 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