49
Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba [email protected]

Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba [email protected]

Embed Size (px)

Citation preview

Page 1: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

Uma introdução ao SWEBOK

Universidade Federal de Pernambuco

Centro de Informática

Clarissa César [email protected]

Page 2: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

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

Page 3: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

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.

Page 4: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

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).”

Page 5: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

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;

Page 6: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

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;

Page 7: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

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.

Page 8: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

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 :

Page 9: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

Evolução do Guia

• Participação de diversos stakeholders: indústria, agências de pesquisa, profissionais, autores;

Page 10: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

Fases – Evolução do Guia• Straw Man

– Protótipo mostrando como o projeto seria organizado

• Stone Man– Mais contribuições– Concluído em 2001– Lançado uma versão Trial

• Iron Man– 2 sub-fases– Conclusão (2004)

Page 11: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

Fases – Evolução do Guia

1998 1999 2000 2001 2002 2003

Straw ManPhase

Stone Man Phase

Iron Man Phase(Sub-phase 1)

Iron Man Phase(Sub-phase 2)

Trial Version

Revision

Experimentation and Trial Usage

2004 Version

Page 12: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

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

Page 13: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

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

Page 14: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

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;

Page 15: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

Princípios• Transparência

– O processo é totalmente documentado e publicado

• Consenso– Indústria– Sociedades Profissionais– Corporações de criação de padrões – Ambientes Acadêmicos

• Totalmente livre na WEB

Page 16: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

Á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

Page 17: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

Guide to the Software Engineering Body of Knowledge2004 Version

SoftwareConstruction

SoftwareMaintenanceSoftware Testing

Basic Conceptsof Construction

ManagingConstruction

SoftwareMaintenance

Fundamentals

Key Issues inSoftware

Maintenance

Techniques forMaintenance

SofwareTesting

Fundamentals

Test Levels

Test Techniques

Test RelatedMeasures

TestProcess

Software Design

Software DesignFundamentals

Key Issues inSoftware Design

Software Structureand Architecture

Software DesignQuality Analysisand Evaluation

Software DesignNotations

SoftwareRequirements

SoftwareRequirementsFundamentals

RequirementsProcess

RequirementsElicitation

RequirementsSpecification

RequirementsValidation

RequirementsAnalysis

Software DesignStrategies and

Methods

PracticalConsiderations

PracticalConsiderations

MaintenanceProcess

Page 18: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

RelatedDisciplines

ComputerScience

Management

Mathematics

Projectmanagement

Qualitymanagement

SoftwareErgonomics

Systemsengineering

Closure

ProcessAssessment

Software Design Tools

Guide to the Software Engineering Body of Knowledge

(2004 Version)

SoftwareConfigurationManagement

SoftwareEngineering Tools

and Methods

SoftwareEngineering

ProcessSoftware Quality

SoftwareConfigurationManagementFundamentals

KeysIssues in

SCM

SoftwareConfiguration

Control

SoftwareConfiguration

Status Accounting

SoftwareConfiguration

Auditing

Software ReleaseManagement and

Delivery Software Methods

Software ToolsProcess

Implementationand Change

Process andProduct

Measurement

Software QualityFundamentals

Software QualityManagement

Processes

Heuristic Methods

Formal Methods

Prototyping Methods

Software RequirementsTools

Software Testing Tools

Software MaintenanceTools

Software EngineeringProcess Tools

ProcessDefinition

PracticalConsiderations

Software ConstructionTools

Software Quality Tools

Software ConfigurationManagement Tools

Software EngineeringManagement Tools

Infrastructure SupportTools

Miscellaneous ToolIssues

Miscellaneous MethodIssues

SoftwareEngineeringManagement

Initiation andScope

Definition

SoftwareProject

Planning

Software ProjectEnactment

Review andEvaluation

SW EngineeringMeasurement

ComputerEngineering

Page 19: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

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

Page 20: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

KA: Software Requirements

Page 21: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

• 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

Page 22: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

KA: Software Design

Page 23: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

• 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

Page 24: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

KA: Software Construction

Page 25: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

• Estilos/Métodos para Construção de Software:– Lingüístico

• Uso de linguagem natural– Formal– Visual

• Visual C++ • Visual Basic

KA: Software Construction

Page 26: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

• 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

Page 27: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

KA: Software Testing

Page 28: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

• 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

Page 29: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

KA: Software Maintenance

Page 30: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

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.

Page 31: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

KA: Software Configuration Management

Page 32: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

KA: Software Engineering Management

• Corresponde ao gerenciamento, medição e modelagem do desenvolvimento de software.

Page 33: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

KA: Software Engineering Management

Page 34: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

KA: Software Engineering Process

• Preocupa-se com:– Definição;– Implementação;– Medida;– Gerenciamento;– Mudança;– Melhoramento.

Page 35: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

KA: Software Engineering Process

Page 36: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

KA: Software Engineering Tools and Methods

• Inclui tanto o ambiente de desenvolvimento de software como as áreas de conhecimento de métodos de desenvolvimento.

Page 37: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

KA: Software Engineering Tools and Methods

Page 38: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

• 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 Engineering Tools and Methods

Page 39: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

KA: Software Quality

• Presente em grande parte das áreas de conhecimento do guia

Page 40: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

KA: Software Quality

Page 41: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

Disciplinas Relacionadas• Computer engineering• Computer science• Management• Mathematics• Project management• Quality management• Software ergonomics• Systems engineering

Page 42: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

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.

Page 43: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

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.

Page 44: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

SWEBOK Guide = 10 Knowledge AreasMapped TO ISO/IEC 12207:1995 processes

Software Quality

Software Engineering Tools and Methods

Software Engineering Process

Software Engineering ManagementSoftware Configuration Management

MaintenanceTestingConstructionDesignRequirements

Primary Processes Supporting Processes

Page 45: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

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ós-

graduação tem adotado o SWEBOK como padrão.

Page 46: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

Referências• http://pt.wikipedia.org/wiki/

Software_Engineering_Body_of_Knowledge• 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

• Abran, Alain (2004). An international Consensus on the Software Engineering Body of Knowledge. Disponível em: http://www.enre.umd.edu/iwss2004/Presentations/SoftwareEngineeringBodyofKnowledge.ppt

• Trial Version SWEBOK. A Project of the Software Engineering Coordinating Committee. Disponível em: http://www2.dem.inpe.br/ijar/SWEBOK.pdf

Page 47: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

Referências• The First International Workshop on the Evolution of the

Guide to the Software Engineering Body of Knowledge. Edinburgh, Scotland, July 25-28, 2005. Disponível em: http://www.swebok.org/Swebok_CFP.pdf

• Rocha, Milena e Oliveira, Jairo. Uma Introdução ao SWEBOK. Disponível em: http://www.cin.ufpe.br/~processos/TAES3/programacao-2006-2.html

• Rocha, Thayssa. Guide to the Software Engineering Body of Knowledge. Disponível em: http://www.cin.ufpe.br/~processos/TAES3/programacao-2006-2.html

• Kotonya, Gerald e Sommerville, Ian. Requirements Engineering Processes and Techniques.

Page 48: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

Perguntas?

Page 49: Uma introdução ao SWEBOK Universidade Federal de Pernambuco Centro de Informática Clarissa César Borba ccb@cin.ufpe.br

Uma introdução ao SWEBOK

Universidade Federal de Pernambuco

Centro de Informática

Clarissa César [email protected]