PPGCC – Programa de Pós-Graduação em Ciência da Computação
Uma Introdução ao SWEBOK
Prof. Dr. Sandro Ronaldo Bezerra Oliveira
[email protected]
www.ufpa.br/srbo
Qualidade de Software – 2008.2
Faculdade de Computação
Instituto de Ciências e Exatas e Naturais
Universidade Federal de Pará
Conteúdo




SWEBOK (significado, contexto, motivação,
evolução do guia, fases, objetivos, público alvo,
princípios)
Áreas de Conhecimento
Limitações
Conclusões
SWEBOK


Guide to the Software Engineering Body
of Knowledge
É uma iniciativa da IEEE Computer
Society e tem o propósito de criar um
consenso sobre as áreas de conhecimento
da Engenharia de Software e seu escopo.
Engenharia de Software

IEEE:


“(1) The application of a systematic, disciplined,
quantifiable approach to the development, operation,
and maintenance of software; that is, the application of
engineering to software.
(2) The study of approaches as in (1).”
Contexto



Muitos profissionais de Engenharia de Software;
Software como uma realidade na sociedade;
Engenharia de Software não reconhecida como
uma profissão ou uma disciplina da engenharia;
Motivação

É 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 Software Engineering Institute Capability Maturity
Model for Software (SW CMM) e o Capability
Maturity Model Integration (CMMI) são usados para
garantir a capacidade organizacional da Engenharia
de Software. O ISO 9000 tem sido aplicado na
Engenharia de Software pelo novo ISO/IEC 90003;
Motivação

Continuando...


Association for Computing Machinery (ACM) e a
Computer Society of the Institute of Electrical and
Electronics Engineers (IEEE) têm desenvolvido e
adotado, conjuntamente, um código de éticas e
práticas para os profissionais da área;
Tanto a IEEE Computer Society quanto o Institute
for Certification of Computing Professionals (ICCP)
têm oferecido certificação para desenvolvedores e
engenheiros de software.
Evolução do Guia



Começou como uma colaboração entre IEEE CS e
ACM;
Foi iniciado em 1998 - SWECC (Software
Engineering Coordinating Committe);
Foi gerenciado por: Software Engineering
Management Research Laboratory at the
Université du Québec Montreal (UQAM) e École
de technologie supérieure, Montreal, Québec :
Evolução do Guia

Participação de diversos stakeholders: indústria,
agências de pesquisa, profissionais, autores;
Fases – Evolução do Guia

Straw Man


Stone Man




Protótipo mostrando como o projeto seria
organizado
Mais contribuições
Concluído em 2001
Lançado uma versão Trial
Iron Man


2 sub-fases
Conclusão (2004)
Fases – Evolução do Guia
Straw Man
Phase
Stone Man Phase
Experimentation
and Trial Usage
Iron Man Phase
(Sub-phase 1)
Revision
Iron
Man
(SubPhase
phase 2)
Trial Version
1998
1999
2000
2001
2002
2004
Version
2003
Algumas Estatísticas (Versão
2004)





Revisores registrados: 573
Número de países: 55
Número de revisores que
submeteram comentários: 124
Número de países representados: 21
Número de comentários: 1020
Objetivos





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;
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.
Fonte: Wikipedia
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;
Princípios

Transparência


Consenso





O processo é totalmente documentado e publicado
Indústria
Sociedades Profissionais
Corporações de criação de padrões
Ambientes Acadêmicos
Totalmente livre na WEB
Áreas de Conhecimento

Requisitos de Software

Projeto de Software

Construção de Software

Teste de Software

Manutenção de Software

Gerência de Configuração de Software

Gerência da Engenharia de Software

Processo de Engenharia de Software

Ferramentas e Métodos da Engenharia de Software

Qualidade de Software
Guide to the Software Engineering Body of Knowledge
2004 Version
Software
Requirements
Software Design
Software
Construction
Software
Requirements
Fundamentals
Software Design
Fundamentals
Basic Concepts
of Construction
Requirements
Process
Key Issues in
Software Design
Managing
Construction
Sofware
Testing
Fundamentals
Test Levels
Software
Maintenance
Software
Maintenance
Fundamentals
Key Issues in
Software
Maintenance
Maintenance
Process
Requirements
Elicitation
Software Structure
and Architecture
Requirements
Analysis
Software Design
Quality Analysis
and Evaluation
Test Related
Measures
Requirements
Specification
Software Design
Notations
Test
Process
Requirements
Validation
Software Design
Strategies and
Methods
Practical
Considerations
Practical
Considerations
Software Testing
Test Techniques
Techniques for
Maintenance
Guide to the Software Engineering Body of Knowledge
(2004 Version)
Software
Configuration
Management
Software
Engineering
Management
Software
Configuration
Management
Fundamentals
Initiation and
Scope
Definition
Keys
Issues in
SCM
Software
Configuration
Control
Software
Configuration
Status Accounting
Process
Implementation
and Change
Software
Project
Planning
Process
Definition
Software Project
Enactment
Process
Assessment
Software
Engineering Tools
and Methods
Software Tools
Software Requirements
Tools
Software Design Tools
Software Construction
Tools
Software Testing Tools
Software Quality
Related
Disciplines
Software Quality
Fundamentals
Computer
Engineering
Software Quality
Management
Processes
Computer
Science
Practical
Considerations
Management
Software Maintenance
Tools
Review and
Evaluation
Process and
Product
Measurement
Software Engineering
Process Tools
Closure
Software Engineering
Management Tools
Infrastructure Support
Tools
SW Engineering
Measurement
Mathematics
Software Quality Tools
Software Configuration
Management Tools
Software
Configuration
Auditing
Software Release
Management and
Delivery
Software
Engineering
Process
Miscellaneous Tool
Issues
Project
management
Quality
management
Software
Ergonomics
Software Methods
Heuristic Methods
Formal Methods
Prototyping Methods
Miscellaneous Method
Issues
Systems
engineering
KA: Software Requirements

“Requisitos são definidos como uma
especificação do que deve ser implementado. São
descrições de como o sistema deve se comportar,
de informações do domínio da aplicação ou
restrições nas operações do sistema.”
Fonte: Kotonya e Sommerville
KA: Software Requirements
KA: 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.
KA: Software Design
KA: Software Construction

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.
KA: Software Construction
KA: Software Construction

Estilos/Métodos para Construção de Software:

Lingüístico



Uso de linguagem natural
Formal
Visual


Visual C++
Visual Basic
KA: Software Testing

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.
KA: Software Testing
KA: Software Maintenance

Uma vez em execução, anomalias são
descobertas, ambientes de execução são
modificados, e novos requisitos do usuário
surgem.
KA: Software Maintenance
KA: Software Configuration
Management (SCM)

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.
KA: Software Configuration
Management
KA: Software Engineering
Management

Corresponde ao gerenciamento, medição e
modelagem do desenvolvimento de software.
KA: Software Engineering
Management
KA: Software Engineering Process

Preocupa-se com:






Definição;
Implementação;
Medida;
Gerenciamento;
Mudança;
Melhoramento.
KA: Software Engineering Process
KA: Software Engineering Tools
and Methods

Inclui tanto o ambiente de desenvolvimento de
software como as áreas de conhecimento de
métodos de desenvolvimento.
KA: Software Engineering Tools
and Methods
KA: Software Engineering Tools
and Methods

Ambiente de desenvolvimento de software


são ferramentas computacionais com o intuito de
auxiliar o processo de desenvolvimento de software.
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.
KA: Software Quality

Presente em grande parte das áreas de
conhecimento do guia
KA: Software Quality
Disciplinas Relacionadas








Computer engineering
Computer science
Management
Mathematics
Project management
Quality management
Software ergonomics
Systems engineering
Limitações


O guia inclui o conhecimento que é necessário
para a Engenharia de Software, mas não
suficiente para um engenheiro de software;
O guia não cobre assuntos importantes:



Linguagens de programação específicas;
Banco de Dados específicos;
Tecnologias de Redes.
Limitações



Novas tecnologias e práticas surgem com muita
freqüência. O guia precisará evoluir junto;
O guia proposto não é definitivo, e nem a única
fonte de referências;
Referências de material em outras línguas foram
omitidas.
SWEBOK Guide = 10 Knowledge Areas
Mapped TO ISO/IEC 12207:1995 processes
Requirement
s
Design
Construction
Testin
g
Maintenance
Software Configuration Management
Software Engineering Management
Software Engineering Process
Software Engineering Tools and Methods
Software Quality
Primary
Processes
Supporting Processes
Conclusões




Aprovado pelo IEEE Computer Society Board of
Governors;
Adotado como ISO Technical Report 19759;
SWEBOK Guide 2008?
A maioria dos cursos de graduação e pósgraduação tem adotado o SWEBOK como padrão.
Download

Tópicos Especiais - Qualidade de Software