Uma introdução ao
SWEBOK
Jairo C. de Oliveira
[email protected]
Milena Rocha
[email protected]
Tópicos Avançados de ES 3
Agenda
•
•
•
•
Engenharia de Software
Reconhecimento da Profissão
Desenvolvimento da Profissão
SWEBOK
–
–
–
–
–
–
–
–
Descrição geral
Objetivos
Audiência Pretendida
Princípios Básicos
Time do Projeto
Fases de Desenvolvimento
Áreas de Conhecimento
Disciplinas Relacionadas
• Conclusões
Uma introdução ao SWEBOK v2.0
2
Engenharia de Software
• É uma disciplina que está em desenvolvimento e
existe uma grande tendência ao aumento no seu
nível de maturidade
• Não é uma disciplina legítima de engenharia,
nem uma profissão reconhecida
Uma introdução ao SWEBOK v2.0
3
Reconhecimento da Profissão
• É imperativo se chegar a um consenso sobre qual é
núcleo do conhecimento
• Segundo Starr*
– Conhecimento e competência de um profissional
devem ser validados por uma comunidade de peso
na área
– Conhecimento é validado se baseado em
fundamentos científicos e racionais
– O julgamento do profissional são direcionados para
um conjunto de valores reais
*P. Starr, The Social Transformation of American Medicine
Uma introdução ao SWEBOK v2.0
4
O que caracteriza uma profissão?
• Segundo Gary Ford e Norman Gibbs, a profissão de
engenharia possui os seguintes componentes:
– Uma educação profissional inicial e um curriculum
válido por uma sociedade de crédito
– Registro da aptidão para praticar por meio de
certificação voluntária ou licença obrigatória
– Desenvolvimento de talento especializado e uma
educação profissional contínua
Uma introdução ao SWEBOK v2.0
5
O que caracteriza uma profissão?
• Segundo Gary Ford e Norman Gibbs (cont.):
– Suporte público através de uma sociedade
profissional
– Um comprometimento com normas de conduta,
muitas vezes prescritas em um código de ética
• O guia SWEBOK contribui para os três
primeiros componentes
• Estabelece um consenso sobre a profissão de ES
Uma introdução ao SWEBOK v2.0
6
Desenvolvimento da Profissão
Influências da
Sociedade
Profissional
Infra-estrutura de
Suporte da Profissão
Reconhecimento
Desenvolvimento
Individual do
Profissional
Educação
Profissional Inicial
Desenvolvimento de
Habilidades
Sociedades de
Profissionais
Um ou Ambos
Certificação
Desenvolvimento
Profissional
Código de Ética
Uma introdução ao SWEBOK v2.0
Licenciamento
Status
Profissional
Completo
7
Guide to the Software Engineering
Body of Knowledge (SWEBOK)
• Começou como uma colaboração entre IEEE CS,
ACM e a Université du Québec à Montréal
• SWECC (Software Engineering Coordinating
Committe) – 1998
• Participação internacional da indústria, sociedades de
profissionais, academia, autores
• Quando o projeto estiver finalizado, literalmente
milhares de pessoas terão trabalhado nele
• Após três ciclos de revisões a versão Trial foi lançada
em 2001
Uma introdução ao SWEBOK v2.0
8
Fases de Desenvolvimento
Straw Man
Version
Stone Man
Version
Iron Man
Version
Trial
Version
1998
1999
2000
2001
2002
Uma introdução ao SWEBOK v2.0
2003
2004
9
Objetivos do SWEBOK
• Oferecer uma visão consistente da engenharia de
software no âmbito mundial
• Deixar claros os limites de planejamento de
software com respeito a outras disciplinas
( Ciência da computação, gerência de projetos,
matemática, entre outros)
Uma introdução ao SWEBOK v2.0
10
Objetivos do SWEBOK
• Caracterizar o conteúdo da disciplina de
Engenharia de Software
• Prover uma base para desenvolvimento
curricular e material de licença individual
Uma introdução ao SWEBOK v2.0
11
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
Uma introdução ao SWEBOK v2.0
12
Categorias de Conhecimento
• Conhecimento de um Engenheiro de Software
Conhecimento
do domínio da
aplicação
Conhecimento
avançado em
ES
Ciência da
Computação
Conhecimento
Especializado
em ES
Matemática
Uma introdução ao SWEBOK v2.0
13
Princípios Básicos do Projeto
• Transparência
– O processo é totalmente documentado e publicado
• Construção do consenso
–
–
–
–
Indústria
Sociedades Profissionais
Corporações de criação de padrões
Ambientes Acadêmicos
• Totalmente livre na web (www.swebok.org)
Uma introdução ao SWEBOK v2.0
14
O que está fora do Escopo do
SWEBOK
• O guia contém os conhecimentos necessários, porém
não suficientes para um engenheiro de software
– Linguagem de programação específica
– Banco de Dados específico
– Tecnologias de Redes
– Gerência de projetos
– Engenharia de sistemas
– Ciência da Computação
Uma introdução ao SWEBOK v2.0
15
Time do projeto
• Grupo de editoração
• Especialistas das áreas de conhecimento
• Revisores
Uma introdução ao SWEBOK v2.0
16
Áreas de conhecimento (KA)
•
•
•
•
•
•
•
•
•
•
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
Uma introdução ao SWEBOK v2.0
17
Disciplinas Relacionadas
•
•
•
•
•
•
•
Cognitive Sciences and Human Factors
Computer Engineering
Computer Science
Management and Management Science
Mathematics
Project Management
Systems Engineering
Uma introdução ao SWEBOK v2.0
18
Organização das Áreas de
Conhecimento
Uma introdução ao SWEBOK v2.0
19
Áreas de conhecimento
Uma introdução ao SWEBOK v2.0
20
Áreas de conhecimento
Uma introdução ao SWEBOK v2.0
21
KA: Software Requirements
• Um requisito é definido como uma característica
que pode ser demonstrada para resolver alguns
problemas do mundo real
Uma introdução ao SWEBOK v2.0
22
KA: Software Requirements
• Sub-áreas de conhecimento
–
–
–
–
–
–
Requirement Engineering Process
Requirement Elicitation
Requirement Analysis
Requirement Specification
Requirement Validation
Requirement Management
Uma introdução ao SWEBOK v2.0
23
KA: Software Requirements
Uma introdução ao SWEBOK v2.0
24
KA: Software Requirements
• Requirement Engineering Process
– Apresenta o planejamento de requisitos
– Orienta as outras 5 sub-áreas
– Mostra como o planejamento de requisitos se
encaixa com o processo completo de planejamento
de software
– Descreve modelos de processo, atores e suporte ao
gerenciamento de requisitos
Uma introdução ao SWEBOK v2.0
25
KA: Software Requirements
• Requirement Elicitation
–
–
–
–
Origem dos requisitos
Controle do requisitos
Fontes de requisitos
Técnicas para Elicitação
Uma introdução ao SWEBOK v2.0
26
KA: Software Requirements
• Requirement Analysis
– detectar e resolver conflitos entre requisitos
– descobrir os limites do sistema e como ele deve
interagir com o seu ambiente
– aprimorar requisitos do sistema para requisitos de
software
– Inclui
• Classificação de requisitos
• Modelo Conceitual, design arquitetural e alocação de requisitos
• Negociação de requisitos.
Uma introdução ao SWEBOK v2.0
27
KA: Software Requirements
• Requirement Specification
– Descreve e estrutura o documento de requisitos
– Geração dos documentos de definição e
especificação dos requisitos do sistema
Uma introdução ao SWEBOK v2.0
28
KA: Software Requirements
• Requirement Validation
– Levanta os problemas antes que os recursos sejam
comprometidos
– Verifica se o documento de requisitos define o
sistema correto
•
•
•
•
Descrições do comportamento das revisões dos requisitos
Criação do Protótipo
Validação do Modelo
Testes de Aceitação
Uma introdução ao SWEBOK v2.0
29
KA: Software Requirements
• Requirement Management
– Está presente em todo o ciclo de vida de um
software
– Controla a mudança dos requisitos
– Gerencia Características dos requisitos
Uma introdução ao SWEBOK v2.0
30
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
Uma introdução ao SWEBOK v2.0
31
KA: Software Design
• Sub-áreas de Conhecimento
–
–
–
–
–
–
Basic Concepts
Key Issues of Software
Structure and Architecture
Software Design Quality Analysis and Evaluation
Desing Notations
Software Design Strategies and Methods
Uma introdução ao SWEBOK v2.0
32
KA: Software Design
Uma introdução ao SWEBOK v2.0
33
KA: Software Design
• Basic Concepts
– formam uma base fundamental para o entendimento
da função e do escopo do design de software
•
•
•
•
conceitos básicos de design
contexto do design de software
processo de design
técnicas que permitem o design de software.
Uma introdução ao SWEBOK v2.0
34
KA: Software Design
• Key Issues of Software
–
–
–
–
–
–
Concorrência
Controle e tratamento de eventos
Distribuição
Tratamento de erros e de exceções
Sistemas interativos
Persistência
Uma introdução ao SWEBOK v2.0
35
KA: Software Design
• Structure and Architecture
–
–
–
–
Estruturas e Pontos de Vistas
Estilos
Padrões de Design
Frameworks
Uma introdução ao SWEBOK v2.0
36
KA: Software Design
• Software Design Quality Analysis and
Evaluation
–
–
–
–
–
Trata da qualidade do design do software
Atributos de qualidade
Análise de qualidade
Avaliação de ferramentas
Métricas
Uma introdução ao SWEBOK v2.0
37
KA: Software Design
• Design Notations
– Notações estruturais e comportamentais
• Software Design Strategies and Methods
–
–
–
–
–
Estratégias Gerais
Métodos Orientados a Funções
Métodos Orientados a Objeto
Métodos Centrados em Dados Estruturados
Métodos Formais
Uma introdução ao SWEBOK v2.0
38
KA: Software Construction
Uma introdução ao SWEBOK v2.0
39
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
• Relação entre design e construção
Uma introdução ao SWEBOK v2.0
40
KA: Software Construction
• Uso de Ferramentas para aumento de
produtividade e qualidade
• Princípios Básicos
– Redução da Complexidade
• Remoção, Automação e Localização da Complexidade
– Antecipação da Diversidade
• Técnicas de Generalização e Experimentação
– Estruturação para Validação
– Uso de Padrões Externos
Uma introdução ao SWEBOK v2.0
41
KA: Software Construction
• Estilos/Métodos para Construção de Software
– Lingüístico
• Uso de linguagem natural
– Formal
– Visual
• Visual C++
• Visual Basic
Uma introdução ao SWEBOK v2.0
42
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.
Uma introdução ao SWEBOK v2.0
43
KA: Software Testing
• Sub-áreas de Conhecimento
–
–
–
–
–
Basic Concepts
Test Levels
Test Techniques
Test Measures
Test Management
Uma introdução ao SWEBOK v2.0
44
KA: Software Testing
Uma introdução ao SWEBOK v2.0
45
KA: Software Testing
• Basic Concepts
– Apresentação da terminologia de testes
– Bases teóricas
– Relacionamento dos testes com outras atividades
• Test Levels
– Alvos e Objetivos
• Test Techniques
– Seleção de Técnicas apropriadas
Uma introdução ao SWEBOK v2.0
46
KA: Software Testing
• Test Measures
– Trata métricas de testes relacionados
• Test Management
– Gerenciamento específico para o processo de testes
• Gerenciamento
• Atividades
Uma introdução ao SWEBOK v2.0
47
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.
• Sub-áreas de Conhecimento
–
–
–
–
Basic Concepts
Maintenance Process
Key Issues
Techniques for Maintenance
Uma introdução ao SWEBOK v2.0
48
KA: Software Maintenance
Uma introdução ao SWEBOK v2.0
49
KA: Software Maintenance
• Basic Concepts
– Definições, Terminologias e Evolução
• Maintenance Process
– Atividades
• Key Issues
– Problemas Técnicos e Gerenciamento
• Techniques for Maintenance
– Compreenção do Programa, Re-engenharia,
Engenharia Reversa, Análise de Impacto
Uma introdução ao SWEBOK v2.0
50
KA: Software Maintenance
• Modelo de Processos de Manutenção
– IEEE:
Análise
Classificação e
Identificação
Design
Solicitação de
Modificação
Entrega
Implementação
Teste de
Aceitação
Uma introdução ao SWEBOK v2.0
Teste
51
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
Uma introdução ao SWEBOK v2.0
52
KA: Software Configuration
Management
• Sub-áreas de Conhecimento
–
–
–
–
–
–
Management of the SCM process
Software Configuration Identification
Software Configuration Control
Software Configuration Status Accounting
Software Configuration Auditing
Software Release Management and Delivery
Uma introdução ao SWEBOK v2.0
53
KA: Software Configuration
Management
Uma introdução ao SWEBOK v2.0
54
KA: Software Configuration
Management
• Management of the SCM process
–
–
–
–
–
Trata dos tópicos do contexto organizacional
Limitações e direcionamento
Planejamento
Software Configuration Management Plan (SCMP)
Monitoramento do SCM
Uma introdução ao SWEBOK v2.0
55
KA: Software Configuration
Management
• Software Configuration Identification
– Identifica itens a serem controlados
– Estabelece esquemas de identificação para os itens e
suas versões
– Estabelece as ferramentas e técnicas a serem usadas
para adquirir e gerenciar itens controláveis
Uma introdução ao SWEBOK v2.0
56
KA: Software Configuration
Management
• Software Configuration Control
– Gerencia as mudanças durante o ciclo de vida do
software
• Software Configuration Status Accounting
– Informações sobre o status da configuração de
software
– Relatórios do status
Uma introdução ao SWEBOK v2.0
57
KA: Software Configuration
Management
• Software Configuration Auditing
– Auditoria de configuração funcional do software
– Auditoria de configuração física do software
– Auditoria In-Process
• Software Release Management and Delivery
– Gerência de construção e de entrega de software
Uma introdução ao SWEBOK v2.0
58
KA: Software Configuration
Management
• Representação Gráfica
Mgmt. &
Planning
SCMP
Control
Mgmt.
Status
Accounting
Release
Processing
Auditing
Configurantion Identification
Uma introdução ao SWEBOK v2.0
59
KA: Software Engineering
Management
• Corresponde ao gerenciamento, medição e
modelagem do desenvolvimento de software
• Sub-áreas de conhecimento
– Organizacional Management
– Process/Project management
– Software Engineering Measurement
Uma introdução ao SWEBOK v2.0
60
KA: Software Engineering
Management
Uma introdução ao SWEBOK v2.0
61
KA: Software Engineering
Management
• Organizacional Management
–
–
–
–
Política de Gerenciamento
Gerência de Pessoal
Gerência de Comunicação
Gerência de Aquisição
Uma introdução ao SWEBOK v2.0
62
KA: Software Engineering
Management
• Process/Project management
– Definição de escopo
• Determinação de requisitos, análise de viabilidade e
revisão dos requisitos
– Planejamento
• Processo, projetos, deliverables, estimativa de esforço,
cronograma, alocação de recursos, riscos, qualidade
– Enactment
• Planos de implementação, processo de medição,
monitoração, controle e relatórios
Uma introdução ao SWEBOK v2.0
63
KA: Software Engineering
Management
• Process/Project management
– Definição de revisão e avaliação
• Determinação dos requisitos de satisfação, revisão e
avaliação de desempenho
– Fechamento
Uma introdução ao SWEBOK v2.0
64
KA: Software Engineering
Management
• Software Engineering Measurement
–
–
–
–
–
Objetivos do programa de medição
Seleção de medidas
Medição do software e do seu desenvolvimento
Coleta de Dados
Modelos de Métricas
Uma introdução ao SWEBOK v2.0
65
KA: Software Engineering Process
• Preocupa-se com:
–
–
–
–
–
–
Definição
Implementação
Medida
Gerenciamento
Mudança
Melhoramento
Uma introdução ao SWEBOK v2.0
66
KA: Software Engineering Process
• Sub-áreas de conhecimento
– Basic Concepts
– Process Infrastructure
– Measurements Specific to Software Engineering
Process
– Process Definition
– Qualitative Process Analysis
– Process Implementation and Change
Uma introdução ao SWEBOK v2.0
67
KA: Software Engineering Process
Uma introdução ao SWEBOK v2.0
68
KA: Software Engineering Process
• Basic Concepts
– Temas
– Terminologias
• Process Infrastructure
– Descreve o conceito de grupo e fábrica
• Measurements Specific to Software Engineering
Process
– Apresenta a metodologia e paradigmas de medida
para diagnóstico quantitativo do processo
Uma introdução ao SWEBOK v2.0
69
KA: Software Engineering Process
• Process Definition
–
–
–
–
–
–
Vários tipos de definições de processo
Ciclo de vida de modelos de framework
Ciclo de vida de modelos de software
Notações usadas para representar essas definições
Métodos de definições de processos
Automação relativa às várias definições
Uma introdução ao SWEBOK v2.0
70
KA: Software Engineering Process
• Qualitative Process Analysis
– Revisão do processo de definição
– Análise da causa de origem
• Process Implementation and Change
– Descreve os paradigmas
– Descreve as linhas de direção para implementação e
mudança do processo
– Avaliação do resultado de implementação e mudança
Uma introdução ao SWEBOK v2.0
71
KA: Software Engineering Tools and
Methods
• Inclui tanto o ambiente de desenvolvimento de
software como as áreas de conhecimento de
métodos de desenvolvimento
Uma introdução ao SWEBOK v2.0
72
KA: Software Engineering Tools and
Methods
Uma introdução ao SWEBOK v2.0
73
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
•
•
•
•
Heurísticos
Formais
Prototipagem
Híbrido
Uma introdução ao SWEBOK v2.0
74
KA: Software Quality
• Qualidade de Software:
– Uso eficiente, efetivo e confortável por um dado
conjunto de usuários para um determinado
propósito sob determinadas condições.
• Presente em grande parte das áreas de
conhecimento do guia
Uma introdução ao SWEBOK v2.0
75
KA: Software Quality
• Sub-áreas de conhecimento
– Software Quality Concepts
– Purpose and Planning of Software Quality
Assurance and Verification&Validation
– Activities and Techniques for Software Quality
Assurance and Verification&Validation
– Measurement Applied to Software Quality
Assurance and Verification&Validation
Uma introdução ao SWEBOK v2.0
76
KA: Software Quality
Uma introdução ao SWEBOK v2.0
77
KA: Software Quality
• Software Quality Concepts
–
–
–
–
Trata da medida do valor da qualidade
Trata da descrição ISO 9126 de qualidade
Dependência
Outros tipos especiais de sistema
Uma introdução ao SWEBOK v2.0
78
KA: Software Quality
• Purpose and Planning of Software Quality
Assurance (SQA) and Verification&Validation
(V&V)
– Atividades de Planejamento da qualidade
– SQA Plan
– V&V Plan
Uma introdução ao SWEBOK v2.0
79
KA: Software Quality
• Activities and Techniques for SQA and V&V
–
–
–
–
Técnicas Estáticas
Técnicas People-Intensive
Técnicas Analíticas
Técnicas Dinâmicas
Uma introdução ao SWEBOK v2.0
80
KA: Software Quality
• Measurement Applied to SQA and V&V
–
–
–
–
Inclui os fundamentos de medição
Modelos de Medição
Técnicas de análise de medidas
Caracterização de falha
Uma introdução ao SWEBOK v2.0
81
Crescimento no interesse na
profissão de engenharia de software
• Diversos centros de estudos e universidades, por
todo o mundo oferecem graduação em
engenharia de software ou possuem algum
grupo voltado a estudos do corpo do
conhecimento dessa área
Uma introdução ao SWEBOK v2.0
82
Crescimento no interesse na
profissão de engenharia de software
•
•
•
•
University of New South Wales (Australia)
McMaster University (Canadá)
Rochester Institute of Technology (US)
The Canadian Information Processing Society
tem publicado critérios que acreditam em
programas de engenharia de software para
estudantes ainda não graduados
Uma introdução ao SWEBOK v2.0
83
Crescimento no interesse na
profissão de engenharia de software
• CMM, CMMI e a família ISO 9000 de padrões
são usados para avaliar a capacidade
organizacional para a engenharia de software
• The Texas Board of Professional Engineers tem
começado a licenciar profissionais de engenharia
de software
Uma introdução ao SWEBOK v2.0
84
Crescimento no interesse na
profissão de engenharia de software
• The Association for Computing Machinery
(ACM) e o Computer Society of the Institute of
Electrical and Electronics Engineers (IEEE)
têm aderido ao desenvolvimento e adotado um
código de ética para profissionais de engenharia de
software
Uma introdução ao SWEBOK v2.0
85
Crescimento no interesse na
profissão de engenharia de software
• The Institute for Certification of Computing
Professionals (ICCP) oferece certificação tanto
para desenvolvedores de software quanto para
engenheiros de software
Uma introdução ao SWEBOK v2.0
86
Considerações Finais
• É provável que o projeto SWEBOK torne-se
tão importante dentro da área de Tecnologia da
Informação quanto o PMBOK é dentro da área
de Gerência de Projetos
• E seus padrões se tornem guias para um
profissional de Tecnologia da informação
Uma introdução ao SWEBOK v2.0
87
Referências
• Guide to the Software Engineering Body of Knowledge. A
Project of the Software Engineering Coordinating Committee Leonard L. Tripp, Chair, Professional Practices Committee, IEEE
Computer Society
• The Emerging Consensus on Software Engineering Body of
Knowledge –Pierre Bourque, École de technologie supérieure
Robert Dupuis, february,2002
• Description of the SWEBOK Knowledge Area Software Engineering
Process- El-Emam, K. March 2001
Uma introdução ao SWEBOK v2.0
88
Referências
• http://www.ipenz.org.nz/ipenz/publications/C
onvention/Steve_McDonell_SWEBOK.ppt
• http://www.site.uottawa.ca/~tcl/presentations/
SWEBOKandUottMar2000CSEET.ppt
• http://www.stevemcconnell.com/NovumOrgan
um.pdf
Uma introdução ao SWEBOK v2.0
89
Download

Swebok_14-01-04 - Centro de Informática da UFPE