Title: Tabelas Mutantes no Oracle
1(No Transcript)
2Introdução ao SWEBOK Guide to the Software
Engineering Body of Knowledge
André Luís de Lucena Torreslucenaster_at_gmail.com
Qualidade, Processos e Gestão de
Software Professores Alexandre Vasconcelos e
Hermano Perrelli http//www.cin.ufpe.br/process
os
3Agenda
- Introdução ao SWEBOK
- Objetivos
- Áreas de Conhecimento
- Requisitos de Software
- Gerência da Engenharia de Software
- Projeto de Software
- Ferramentas e Métodos da Engenharia
- Construção de Software
- Processo de Engenharia de Software
- Teste de Software
- Qualidade de Software
- Manutenção de Software
- Gerência de Configuração de Software
- Disciplinas relacionadas
- Conclusões
4Introdução
- Software Engineering Body of Knowledge Corpo de
Conhecimento da Engenharia de Software - Estudo conduzido pela IEEE (Institute of
Electrical and Electronics Engineers) - Patrocinado por empresas como
5IEEE
Associação profissional mundial sem fins
lucrativos para suporte ao avanço da
tecnologia. Missão O IEEE promove o processo
de engenharia, criando, desenvolvendo,
integrando, compartilhando e aplicando
conhecimento sobre tecnologia eletroeletrônica,
tecnologia da informação e ciências para o
benefício da humanidade e da profissão.
6Como surgiu o guia?
- Surgiu da necessidade da comissão de
especialistas da área de Engenharia de Software,
visando uma definição das fronteiras que a
delimitam. (SWEBOK, 2004) - Importante para o reconhecimento da profissão de
Engenheiro de Software - Delimita o conhecimento inerente à competência
do profissional - Validado pela comunidade / mantido em campo
científico e racional
7Quando surgiu o guia?
- Começou como uma colaboração entre IEEE CS e ACM
- de 1993 a 2000, o IEEE Computer Society e a
Association for Computing Machinery (ACM)
cooperaram para promover a profissionalização da
engenharia de software, juntos eles articularam o
Software Engineering Coordinating Committee
(SWECC). - O projeto SWEBOK foi iniciado em 1998 pela SWECC
(Software Engineering Coordinating Committee).
8SWEBOK
Guia de uso e aplicação das melhores práticas de
Engenharia de Software, divido em 11 áreas de
Conhecimento - Knowledge Area (KAs). Sendo
elas
Requisitos de Software Gerência da Eng. de Software
Projeto de Software Ferramentas e Métodos da Engenharia
Construção de Software Processo de Engenharia de Software
Teste de Software Qualidade de Software
Manutenção de Software Gerência de Configuração de Software
Disciplinas relacionadas Disciplinas relacionadas
9Objetivos
- Estabelecer um conjunto apropriado de critérios
e normas para a prática profissional da
Engenharia de Software. - Determinar as fronteiras entre Engenharia de
Software e outras disciplinas relacionadas - Prover acesso tópico ao Corpo de Conhecimento
- Mapeamento entre os tópicos e materiais de
referência - Fundamentar a criação de currículos,
certificação e licenciamento de profissionais
10SWEBOK 2010
- Adicionado material sobre Interfaces
Humano-Computador no design de software e Teste
de Software - Remoção da seção Ferramentas e métodos de
Engenharia de Software (distribuídos para outras
áreas de conhecimento) - Redistribuição de materias entre as áreas de
conhecimento - Entre outras modificações.
11Estrutura do SWEBOK
- Introdução sobre as áreas de conhecimento
- Visão Geral, escopo e seus relacionamentos com
outras áreas - Hierarquia de sub-áreas, tópicos e sub-tópicos
delimitam o conteúdo da área de conhecimento - Breve descrição sobre cada tópico/sub-tópico
12Estrutura do SWEBOK
13Estrutura do SWEBOK
14KA Requisitos de Software
Preocupa-se com a Elicitação, Análise,
Especificação e Validação de Requisitos São
problemas do mundo real que devem ser
explicitados para serem solucionados (O que será
feito?). Está dividida em sete sub-áreas.
Fundamentos dos Requisitos Especificação de Requisitos
Processo de Requisitos Validação de Requisitos
Declaração de Requisitos Considerações Práticas
Análise de Requisitos
15KA Requisitos de Software
16Requisitos O que pode acontecer
17KA Gerência de Eng de Software
Corresponde ao gerenciamento, medição e modelagem
do desenvolvimento de software Sub-áreas de
conhecimento
Iniciação e Definição do Escopo Planej. do Projeto de Software
Software Project Enactment Revisão e Avaliação
Fechamento Medição da Eng. de Software
18KA Gerência de Eng de Software
19KA Gerência de Eng de Software
- Iniciação e Definição do Escopo
- Determinação de requisitos, análise de
viabilidade e revisão dos requisitos - Planejamento do Projeto de Software
- Processo, projetos, estimativa de esforço,
cronograma, alocação de recursos, riscos,
qualidade
20KA Gerência de Eng de Software
- Software Project Enactment
- Planos de implementação, processo de medição,
monitoração, controle e relatórios - Revisão e Avaliação
- Determinação dos requisitos de satisfação,
revisão e avaliação de desempenho
21KA Gerência de Eng de Software
- Fechamento
- Determinar fechamento e suas atividades
- Medição da Engenharia de Software
- Seguem o modelo padrão ISO/IEC 15939 (Norma
Internacional de medição de processo de
software).
22KA Projeto de Software
Processo de definição da arquitetura, componentes
e demais características do sistema Tem como
base a definição dos requisitos Sub-áreas de
conhecimento
Conceitos Básicos Análise e Avaliação da qualidade de design
Conceitos chaves do Design Notações de Design
Estrutura e Arquitetura Estratégias e Métodos de design de software
23KA Projeto de Software
- Conceitos Básicos
- Formam uma base fundamental para o entendimento
da função e do escopo do design de software - Conceitos chave do Design
- Concorrência
- Controle e tratamento de eventos
- Distribuição
- Tratamento de erros e de exceções
- Sistemas interativos
- Persistência
24KA Projeto de Software
- Estrutura e Arquitetura
- Estruturas
- Estilos
- Padrões de desing
- Frameworks
- Análise e Avaliação da Qualidade do Design
- Trata da qualidade do design do software
- Características de qualidade
- Análise de qualidade
- Avaliação de ferramentas
- Métricas
25KA Projeto de Software
- Notações de Design
- Notações estruturais e comportamentais
- Estratégias e Métodos de Design de Software
- Estratégias gerais
- Métodos orientados a funções
- Métodos orientados a objetos
- Métodos formais
- Métodos transformacionais
26KA Ferramentas e métodos da Engenharia
- Ferramentas
- Automatizam as tarefas do processo de
engenharia de software - Há um tópico para cada uma das outras dez KAs
- Métodos
- Impõe estrutura na atividade de desenvolvimento
de software, com o objetivo de tornar a atividade
sistemática e propícia ao sucesso. - Possuem três tópicos
- Heurísticos para a abordagem informal
- Matemáticos para a abordagem formal
- Protótipos para a abordagem do software
baseado em telas
27KA Construção de software
- Refere-se a criação do conjunto de programas
(componentes) que compõe o software e a
verificação de conformidade com o desenho
(projeto), da funcionalidade individual (teste
unitário), da funcionalidade integrada e a
depuração de erros (debug). - Codificação
- Validação
- Verificação (testes unitários)
28KA Construção de software
Divido em três sub-áreas
Fundamentos da Construção de Software Gerenciamento da Construção de software Considerações práticas da construção de software
Minimizar Complexidade Antecipar Mudanças Constructing com Verificação Padrões de Construção Modelos de Construção Planejamento de Construção Avaliação a Construção Projeto de Construção Linguagem Própria Codificação Testar Construção Reuso Qualidade Integração
29KA Processo de Eng. de software
- Consiste na definição, implementação, avaliação,
medição, gerenciamento, mudanças e evolução do
próprio processo de software - Preocupa-se com
- Definição
- Implementação
- Medida
- Gerenciamento
- Mudança
- Melhoramento
30KA Processo de Eng. de software
31KA Processo de Eng. de software
- Sub-áreas de conhecimento
- Implementação e Mudança do Processo (Descreve
as linhas de direção para implementação e mudança
do processo) - Definição do Processo (Vários tipos de
definições de processo, Métodos de definições de
processos) - Avaliação do Processo (Métodos e modelos usados
para avaliação do processo) - Medição do Produto e do Processo (Apresenta a
metodologia e paradigmas de medida para
diagnóstico quantitativo do processo e do produto)
32KA Processo de software - Exemplos
- RUP Rational Unifided Process (Rational/IBM)
- XP eXtreme Programming
- Projetos cujos requisitos mudam com muita
freqüência, orientados a objetos, desenvolvido
por equipes de até 12 desenvolvedores, com
processo incremental (ou interativo). - PRAXIS Processo para Aplicativos extensíveis
Interativos - Para projetos realizados individualmente ou por
pequenas equipes, com duração de seis meses a um
ano.
33KA Teste de Software
Teste é uma atividade realizada para avaliar a
qualidade do produto, e para melhorá-lo, através
da identificação de defeitos e problemas. Consist
e na verificação do comportamento de um programa
ou grupo de programas, a partir de um conjunto de
casos selecionados no domínio do negócio,
comparando-os ao comportamento esperado, definido
na especificação de requisitos.
34KA Teste de Software
Fatores Fundamentais Níveis de Teste Técnicas de Teste Avaliação de Teste Processo de teste
Questões chaves Unidades Integração Sistema Aceitação Instalação Alpha Beta Regressão Baseada no código/ especificação/ No uso Cobertura Falhas antecipadas Pontuação de acordo com Mutação Considerações práticas Atividades de teste
35KA Teste de Software
36KA Teste de Software
Grandes Limitações do Teste de Software 1
Você não pode testar o software em todos os
sistemas nos quais ele será carregado. Solução
testar em (configurações) de sistemas
padronizadas. 2 Você não pode dialogar com a
máquina até a exaustão, porque a linguagem é
finita, mas os diálogos são infinitos. Solução
técnicas de cobertura de testes.
37KA Qualidade de software
- Área de conhecimento da Engenharia de Software
que objetiva garantir a qualidade do software
através da definição e normalização de processos
de desenvolvimento - Trata dos aspectos estáticos, ou seja, daqueles
que não exigem a execução do software para
avaliá-lo. - Sub-áreas de conhecimento
Fundamentos da Qualidade de Software Gerenciamento do Processo de Qualidade de Software Considerações Práticas
38KA Qualidade de software
- Fundamentos de Qualidade de Software
- Suas sub-áreas de conhencimento são
- Cultura e Ética de Engenharia de Software Tem
a qualidade de software como pilar para sua
cultura e seu código de ética - Valores e Custos de Qualidade Criação de
software com custo/beneficio aceitáveis e
satisfaça as expectativas dos clientes -
- Modelos e características de qualidade
- Exemplo CMMI
- Funcionalidade, Confiabilidade, Usabilidade,
Eficiência - Melhoria da Qualidade
- Utilização de abordagens como as de
Gestão da Qualidade Total (TQM) e PDCA.
39KA Qualidade de software
- Gerência do Processo de Qualidade de Software
- Garantia de Qualidade de Software Diretrizes e
boas práticas - Verificação e Validação
- Revisões e Auditorias
- Revisar para encontrar erros
- Auditar para garantir as conformidades
- Considerações Práticas
- Requisitos de Qualidade para Aplicações
- Caracterização de Defeitos
- Técnicas de Gerência de Qualidade de Software
- Medição da Qualidade de Software
-
40KA Manutenção de software
Uma vez em operação, anomalias são descobertas,
ambientes operacionais mudam e novos requisitos
surgem. A fase de manutenção inicia-se a partir
da entrega, mas as atividades de manutenção
começam antes mesmo da entrega. Está dividida em
quatro sub-áreas
Fundamentos da Manutenção Questões Chave
Processo de Manutenção Técnicas de Manutenção
41KA Manutenção de software
- Fundamentos da Manutenção
- Definições e terminologia
- O papel da manutenção
- Custos da manutenção
- Categorias de manutenção
- Questões chave
- Problemas técnicos
- Problemas de gerenciamento
- Estimação de custo
- Métricas
42KA Manutenção de software
43KA Manutenção de software
- Técnicas de Manutenção
- Compreensão do programa
- Re-engenharia
- Engenharia reversa
44KA Gerência de Configuração de software
Consiste em identificar a configuração do
software em diferentes momentos com o propósito
de controlar sistematicamente as mudanças
ocorridas e garantir a integridade e a
rastreabilidade das configurações ao longo do
ciclo de vida do software. Está dividida em seis
sub-áreas
Processo de Gerenciamento de Configurações Identificação da Configuração
Controle da Configuração Registro do Estado da Configuração
Auditoria da Configuração Entrega e Gerenciamento de Versões
45KA Gerência de Configuração de software
- Processo de Gerenciamento de Configurações
- Planejamento
- Limitações
- Direcionamento
- Identificação da Configuração
- Identifica itens a serem controlados e estabelece
as ferramentas e técnicas a serem usadas - Controle da Configuração
- Gerencia as mudanças durante o ciclo de vida do
software
46KA Gerência de Configuração de software
- Registro do estado da Configuração de Software
- Informações sobre o status da configuração de
software, Relatórios do status - Auditoria de Configuração de Software
- Auditoria de configuração funcional do software
- Auditoria de configuração física do software
- Auditoria In-process
- Entrega e Gerenciamento de versões
- Gerência de construção de software
- Gerência de entrega de software
47KA Disciplinas relacionadas
- Engenharia da Computação
- Ciência da Computação
- Gestão de Negócios
- Matemática
- Gerenciamento de Projetos
- Gestão da Qualidade
- Ergonomia (acessibilidade e usabilidade)
- Engenharia de Sistemas
48Conclusão
- 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 - Os padrões do guia não possuem os conhecimentos
suficientes para um engenheiro de software como
Linguagem de programação específica, Banco de
Dados Relacional, Redes, Gerência de projetos,
Engenharia de sistemas, Ciência da Computação.
49Referências
1 Borba, Clarissa Cesar. Uma Introdução ao
Swebok. UFPE, Recife, PE, Brasil,
2007. Disponível em www.cin.ufpe.br/processos/TA
ES3/slides207.2/introducao_swebok.ppt. Acesso em
27-Ago-2009. 2 Embiruçu, David L. Neto, José
B.F.A Barbosa, Leandro M Viana, Pablo A. B
Sette, Sergio S. The Guide to the Software
Engineering Body of Knoledge - SWEBOK. UFPE,
Recife, PE, Brasil,2008. Disponível em
http//www.cin.ufpe.br/amlv/monografias_if720.zip
. Acesso em 31-Ago-2009 3 Lopes, Edvaldo.
Swebok - Software Engineering Body of Knowledge.
UFPE, Recife, PE, Brasil, 2007. Disponível em
www.cin.ufpe.br/rqf/swebok20final.ppt . Acesso
em 27-Ago-2009. 4 SWEBOK. Guide to the
Software Engineering Body of Knowledge. 2004
Version. A project of the IEEE Computer Society
Professional Practices Committee. Disponível em
http//www.swebok.org.
50(No Transcript)