Title: CIn Institucional (Portugu
1Uma introdução ao SWEBOK Guide to the Software
Engineering Body of Knowledge
Catarina de Souza Costacsc_at_cin.ufpe.brQualidade
, Processos e Gestão de Software Prof.
Alexandre Vasconceloshttp//www.cin.ufpe.br/proc
essos/ 02/10/2008
2Agenda
- SWEBOK (Guide to the Software Engineering Body of
Knowledge) 1 4 5 6 - Áreas de Conhecimento
- Estudo de Caso
- Conclusões
2
3O que é o SWEBOK?
- Guide to the Software Engineering Body of
Knowledge - É uma iniciativa do IEEE (Institute of
Electrical and Electronics Engineers) Computer
Society. - Tem o propósito de criar um consenso sobre as
áreas de conhecimento da Engenharia de Software e
seu escopo. -
- ?
- PMBOK - é o guia que identifica um subconjunto
do conjunto de conhecimentos em gerenciamento de
projetos. -
3
4O que levou a criação do guia?
- A Engenharia de Software é uma área de
conhecimento em expansão e existem evidências
inquestionáveis do seu nível crescente de
maturidade - Muitas universidades em todo mundo oferecem
curso de graduação em Engenharia de Software. Por
exemplo, University of New South Wales
(Australia), McMaster University (Canada), the
Rochester Institute of Technology (US), the
University of Sheffield (UK), etc - O Capability Maturity Model Integration (CMMI) e
a família ISO 9000 de padrões são usados para
avaliar a capacidade organizacional para a
engenharia de software. - Association for Computing Machinery (ACM)
e a Computer Society of the Institute of
Electrical and Electronics Engineers (IEEE)
desenvolveram, conjuntamente, um código de éticas
e práticas para os profissionais da área
4
5Continuando...
- Tanto o IEEE Computer Society quanto o Institute
for Certification of Computing Professionals
(ICCP) têm oferecido certificação para
desenvolvedores e engenheiros de software. - Todos estes esforços são baseados na presunção
que existe um conjunto de conhecimentos que deve
ser dominado pelos engenheiros de software -
- O Corpo do Conhecimento existe na literatura que
tem se acumulado ao longo dos últimos trinta
anos. - O SWEBOK é um guia que fornece este conjunto de
conhecimento
5
6Como o guia foi criado?
- 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).
6
7Continuando...
Foi contratado o Software Engineering
Management Research Laboratory at the Université
du Québec à Montréal (UQAM)) para gerenciar o
esforço. Nos últimos anos, a UQAM tem se
associado a École de technologie supérieure,
Montréal, Québec.
O plano do projeto compreendia três fases
sucessivas Strawman, Stoneman, e Ironman.
7
8Fases
8
9Fases
- Straw Man (Palha)
- Protótipo mostrando como o projeto seria
organizado - A versão foi publicada em setembro de 1998.
- Stone Man (Pedra)
- Mais contribuições
- Concluído em 2001
- Lançado uma versão Trial
- Iron Man (Ferro)
- 2 sub-fases
- Sub-fase 1 (2000-2002) Experimentação e uso
julgamento do Guia - Sub-fase 2 (2002-2003) Um extenso processo de
revisão - Conclusão (2004)
9
10Quem participou?
Participação de diversos stakeholders
indústria, agências de pesquisa, profissionais,
autores
10
11Objetivos
- Promover uma visão consistente da Engenharia de
Software no mundo - Clarear e marcar as fronteiras entre a Engenharia
de Software e as outras disciplinas relacionadas,
como ciência da computação, gerenciamento de
projetos, matemática... - Caracterizar o conteúdo da disciplina de
Engenharia de Software - Classificar em tópicos a área de conhecimento da
Engenharia de Software - Prover uma fundação para o desenvolvimento do
currículo, para certificação individual e para
licenciamento de material.
11
12Princípios
- Transparência
- O processo é totalmente documentado, publicado e
divulgado. - Consenso
- Indústria (Boeing, Construx Software, a MITRE
Corporation, Rational Software, Raytheon Systems,
e SAP Labs-Canadá). - Agências de Pesquisas (Instituto Nacional de
Padrões e Tecnologia, Conselho Nacional de
Pesquisa do Canadá), o Conselho Canadense de
Engenheiros, e o IEEE Computer Society, que tem
proporcionado suporte financeiro para o projeto.
Ambientes Acadêmicos - Totalmente livre na WEB
- www.swebok.org
12
13Qual o público alvo?
- Organizações públicas e privadas
- Engenheiros de Software
- Sociedades profissionais
- Corporações de criação de padrões
- Estudantes de Engenharia de Software
- Educadores e Instrutores
13
14O que o guia não aborda?
- Muitos aspectos importantes da tecnologia da
informação que pode constituir um conhecimento
importante na engenharia de software não são
abordados no Guia, incluindo linguagens
específicas de programação, bancos de dados
específico, tecnologias de redes... - O Guia abrange os conhecimentos da engenharia de
software que são necessários, mas não o
suficiente para o engenheiro de software
14
15SWEBOK
15
16Agenda
- SWEBOK (Guide to the Software Engineering Body of
Knowledge) - Áreas de Conhecimento 4 5 6
- Estudo de Caso
- Conclusões
16
17SWEBOK Guide 10 Knowledge Areas Mapped TO
ISO/IEC 122071995 processes
KAs Áreas de Conhecimento
Maintenance
Testing
Construction
Design
Requirements
Software Configuration Management
Software Engineering Management
Software Engineering Process
Software Engineering Tools and Methods
Software Quality
Primary Processes
Supporting Processes
17
18KA Requisitos de Software
18
19KA Requisitos de Software
- Preocupa-se com a Elicitação, Análise,
Especificação e Validação de Requisitos - Sub-áreas de conhecimento
- Requisitos Fundamentais (Definição dos
Requisitos, Produto, Processo, Software, Sistema,
Funcionais, Não Funcionais, Propriedades
Emergentes ) - Processo de Requisitos (Modelos de processo,
atores) - Elicitação de Requisitos (Fontes, técnicas para
elicitação) - Análise de Requisitos (Detectar e resolver
conflitos, negociação) - Especificação de Requisitos (Descreve a estrutura
do documento) - Validação de Requisitos (Verifica se o documento
de requisitos define o sistema corretamente) - Considerações Práticas (Gerenciamento de
mudanças, rastreamento) - Projetos na engenharia de software são
criticamente vulneráveis quando estas atividades
são mal desempenhadas
19
20KA Projeto de Software
20
21KA Projeto de Software (Design)
- Processo de definição da arquitetura,
componentes, interfaces e outras características
de um sistema ou componente - Tem como base a definição dos requisitos.
- Sub-áreas de conhecimento
- Conceitos Básicos (Contexto, Processo e Técnicas)
- Conceitos chaves do Design (Persistência,
Controle e tratamento de eventos) - Estrutura e Arquitetura (Estilos, Padrões de
desing, Frameworks) - Análise e Avaliação da qualidade de design
(Métricas) - 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
objetos, Métodos formais, Métodos orientados a
funções)
21
22KA Construção de Software
22
23KA Construção de Software
- Construção de software é um ato fundamental do
planejamento de software - Codificação
- Validação
- Verificação (testes unitários)
- Requer que o desenvolvedor seja lógico e preciso
- Produz software executável
- Uso de Ferramentas para aumento de produtividade
e qualidade. - Sub-áreas de conhecimento
- Fatores fundamentais (Minimizar Complexidade,
Padrões de Construção) - Gerenciamento da construção (Planejamento de
Construção, Avaliando a construção) - Considerações práticas (Codificação, Testar
Construção, Reuso, Integração)
23
24KA Teste de Software
24
25KA 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. - Consiste na verificação dinâmica do comportamento
de um programa com um conjunto finito de casos de
testes, selecionados de um domínio geralmente
infinito de execuções, para confirmar o
comportamento especificado esperado. - Sub-áreas de conhecimento
- Fatores fundamentais (Questões Chaves,
Testando-relacionando terminologias) - Níveis de Teste (A que se destina e quais os
objetivos. Ex. Unidade, Integração) - Técnicas de Teste (Baseada no código, na
especificação, no uso) - Avaliação de Testes (Avaliação do Programa de
Teste, Avaliação dos testes executados. Ex.
Cobertura, Falhas antecipadas) - Processo de Teste (Considerações Práticas,
Atividades de Teste)
25
26KA Manutenção de Software
26
27KA Manutenção de Software
- Manutenção de Software é definida com uma área
totalmente necessária para fornecer eficaz
suporte ao software. - Uma vez em execução, anomalias são descobertas,
ambientes de execução são modificados, e novos
requisitos do usuário surgem. - Sub-áreas de conhecimento
- Conceitos Básicos (Conceitos básicos e noções
utilizando de definições e terminologias) - Processo de Manutenção (Técnicas chaves,
Estimativa de custo da manutenção) - Conceitos Chaves (Processos e Atividades de
Manutenção) - Técnicas de Manutenção (Compreensão do Código,
Reengenharia, Engenharia Reversa)
27
28KA Gerência de Configuração de Software
28
29KA Gerência de Configuração de Software
- Identifica a configuração de um sistema
- -Controle de mudanças
- -Manutenção da integridade da configuração
durante o ciclo de vida do sistema - Sub-áreas de Conhecimento
- Gerenciamento do Processo GCS (Planejamento,
Limitações e direcionamento...) - Identificação da Configuração de Software
(Identifica itens a serem controlados e
estabelece as ferramentas e técnicas a serem
usadas...) - Controle da Configuração de Software (Gerencia as
mudanças durante o ciclo de vida do software...) - Contagem de Status de 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
In-Process...) - Gerenciamento de Release e Entrega do Software
(Gerenciamento de Release e Entrega do
Software...)
29
30KA Gerência da Engenharia de Software
30
31KA Gerência da Engenharia de Software
- Corresponde ao gerenciamento, medição e modelagem
do desenvolvimento de software - Sub-áreas de conhecimento
- 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 (Estimativa
de esforço, riscos...) - Software Project Enactment (Planos de
implementação, processo de medição, monitoração,
controle e relatórios)
- Revisão e Avaliação (Revisão e avaliação de
desempenho)
- Fechamento (Atividades de fechamento)
- Medição da Engenharia de Software (Medições
efetivas se tornaram um do pilares para a
maturidade organizacional. Os tópicos descritos
nessa sub-área seguem o modelo padrão ISO/IEC
15939)
31
32KA Processo de Engenharia de Software
32
33KA Processo de Engenharia de Software
- Preocupa-se com Definição, Implementação,
Medida, Gerenciamento, Mudança e Melhoria - 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)
33
34KA Ferramentas e Métodos da Engenharia de
Software
34
35KA Ferramentas e Métodos da Engenharia de
Software
Objetivam tornar o processo de Engenharia de
Software mais rápido, sistemático e menos
propício a falhas. Incluem Ferramentas Automati
zam as tarefas do processo de engenharia de
software Ambientes de desenvolvimento
Ferramentas computadorizadas que auxiliam no
processo de desenvolvimento de software Automatiz
am tarefas repetitivas e bem definidas. Métodos
de Desenvolvimento Impõe estrutura na atividade
de desenvolvimento de software, com o objetivo de
tornar a atividade sistemática e propícia ao
sucesso Heurísticos, Formais, Prototipagem e
Híbrido.
35
36KA Qualidade de Software
36
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 - Presente em grande parte das áreas de
conhecimento do guia - 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
37
38KA Qualidade de Software
- Fundamentos de Qualidade de Software
- -Cultura e Ética de Engenharia de Software
(qualidade de software como parte de sua cultura,
código de ética) - -Valores e Custos de Qualidade
- Criar software que tenha valor e satisfaça as
expectativas dos clientes - O engenheiro de software deve ser capaz de
apresentar alternativas de qualidade e seus
custos - -Modelos
- CMMI
- -Características de Qualidade
- Funcionalidade, Confiabilidade, Usabilidade,
Eficiência - -Melhoria da Qualidade
- Processos, Pessoas e Tecnologias -
Abordagens como as de Gestão da Qualidade Total
(TQM) processo de Plan, Do, Check e Act (PDCA).
38
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
-
39
40Disciplinas Relacionadas
- O Guia também reconhece oito disciplinas
relacionadas - Ciência da Computação
- Engenharia da Computação
- Engenharia de Sistemas
- Ergonomia de Software
- Gerenciamento
- Gerenciamento da Qualidade
- Gerenciamento de Projeto
- Matemática
40
41Agenda
- SWEBOK (Guide to the Software Engineering Body of
Knowledge) - Áreas de Conhecimento
- Estudo de Caso 2 3
- Conclusões
41
42Using SWEBOK for Education Programs in Industry
and Academia
- Como o guia SWEBOK foi utilizado em uma grande
organização de desenvolvimento de software - a
Securities Industry Automation Corporation
(SIAC) - A Forma com o SWEBOK ajudou a melhorar um
Programa de Mestrado em Engenharia de Software -
Southern Methodist University (SMU) - O resultado education program
42
43Using SWEBOK for Education Programs in Industry
and Academia
Organizations go with what has worked in the
past
Todo mundo está muito ocupado com o produto e
não podem gastar tempo com educação e
treinamentos
A solução CMM para necessidades industriais
O CMM - SEI tem ajudado muitas empresas Mas
muitas vezes os esforços CMM falharam Análise de
falhas aponta para várias causas, mas uma causa
uma persistente é Falta de educação e
formação
43
44Using SWEBOK for Education Programs in Industry
and Academia
SIAC Education Program Assistência para cursos
e diplomas universitários Formação
"Técnica" MAS Engenharia Processos "pouco
valorizados Poucos bons programas de engenharia
de software locaisDifícil achar tempo de
realmente ter formação
Programa SMU MS em Engenharia de
Software -Iniciado em 1993, baseado em SEI
masters level model curriculum SEI CMM
Necessidades da indústria local -Programa
abrangente com vários cursos de engenharia de
software -A maioria dos professores com
experiência industrial -Opções para educação à
distância
44
45Using SWEBOK for Education Programs in Industry
and Academia
Desafios para o Programa SMU -Manter-se
atualizado com os rápidos progressos na área
-Manter os laços com as necessidades industriais
-O ensino à distância -Aprender com os
estudantes
Desafios da indústria -Projetos em crescente
complexidade -A rápida evolução das exigências
-Pressões por maior rapidez -Integração de
novos processos e tecnologias -Escassez de
Talentos habilidades em engenharia de software
particularmente
Por que usar o SWEBOK??
A Necessidade de um Modelo
Academia precisa de um modelo de engenharia de
software para ajudar a evitar falhas no programa
e ajudar a garantir cobertura e integridade
estrutural para programas acadêmicos.
A indústria precisa de um modelo de engenharia de
software para relacionar o conhecimento com as
necessidades organizacionais.
45
46Using SWEBOK for Education Programs in Industry
and Academia
Como o SWEBOK foi usado???
Usando SWEBOK para alinhar as necessidades com o
Corpo de Conhecimento
- Oportunidade de planejar de forma mais rápida
- Intuitiva aceitação da estrutura -
Planejamento Individual e organizacional eram
suportados - Educação e iniciativas SPI estavam
alinhadas
46
47Using SWEBOK for Education Programs in Industry
and Academia
Usando SWEBOK para examinar o programa SMU
Engenharia de software
O curso e os tópicos detalhados foram mapeados
através da estrutura detalhada do SWEBOK. A
estrutura era bastante natural e o mapeamento foi
simples
Lições aprendidas SMU "Buracos e
sobreposições na cobertura dos cursos Por
exemplo, um curso sobre ferramentas de software
foi claramente necessárioNecessidade de
atualizações nos conteúdos de alguns cursos
47
48Using SWEBOK for Education Programs in Industry
and Academia
Bom interesse da SIAC A gerência dedicou
recursos 100 trabalhadores completaram um
overview em 2 dias 25 no programa bridging 60
nos programas certificate
Curso Oferecidos
Lições aprendidas SIAC Mesmo muito ocupadas as
organizações irão abraçar as oportunidades quando
elas percebem um alinhamento com as suas
necessidades e a oportunidade de retorno sobre
seu investimento O SWEBOK apoiou uma
caracterização clara do que era necessário e onde
era necessário formação, permitindo Mais
rapidez nas escolhas a serem feitas Mais
rapidez nos retornos esperados
Flexíveis níveis de participação
48
49Using SWEBOK for Education Programs in Industry
and Academia
Programa que resultou SMU Certificate Programs
Perspectivas Necessidade de Atualização e
Revisão do SWEBOK Toda a utilização do SWEBOK é
embasada no pressuposto de que ele irá acompanhar
os tempos.
49
50Mestrado Profissional em ES CESAR.edu
Tendo como base as disciplinas do SWEBOK, o MPES
é composto por 8 (oito) disciplinas, associadas
de acordo com a Tabela
50
51Agenda
- SWEBOK (Guide to the Software Engineering Body of
Knowledge) - Áreas de Conhecimento
- Estudo de Caso
- Conclusões
51
52Conclusão
- Embora o Guia 2004 do corpo de conhecimento da
Engenharia de Software seja um marco para
alcançar um amplo acordo sobre o conteúdo da
disciplina de engenharia de software, não é o fim
do processo, o guia deve evoluir. - Necessidade evolução e manutenção
- -Surgimento de novas práticas/tecnologias
- O Guia é inerentemente um documento
conservador,)descreve as práticas de Engenharia
de Software consensualmente reconhecidas como
adequadas na maioria dos projetos. - O guia proposto não é definitivo, e nem a única
fonte de referência Referências de material em
outras línguas foram omitidas. - Trabalhos em novas áreas de conhecimento estão
atualmente em curso. Estes novos suplementos de
Kas incluem - Measurement, Security (Coming Soon), Web
Engineering (Coming Soon)... - Segundo www.swebok.org Last Updated January 12,
2007
52
53Referências
1 Borba, Clarissa Cesar. Uma Introdução ao
Swebok. UFPE, Recife, PE, Brasil, 2007.
Disponível em www.cin.ufpe.br/processos/TAES3/sl
ides-2007.2/introducao_swebok.ppt. Acesso em
05-Set-2008. 2 Cesar.edu. Mestrado
profissional em Engenharia de software. Manual do
candidato, 2007. 3 Frailey, Dennis J. Mason.
James. Using SWEBOK for Education Programs in
Industry and Academia. Cseet, 2002. 4 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 05-Set-2008. 5 Rocha, Milena.
Uma Introdução ao Swebok. UFPE, Recife, PE,
Brasil, 2004. Disponível em www.cin.ufpe.br/jbfa
n/qualidade/swebok/mrl-20Swebok_07-07-03.ppt .
Acesso em 05-Set-2008 05-Set-2008. 6 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.
53
54Uma introdução ao SWEBOK
?
Catarina Costa (csc_at_cin.ufpe.br) 02/10/2008
54