890 likes | 1.05k Views
Uma introdução ao SWEBOK. Jairo C. de Oliveira jco@cin.ufpe.br Milena Rocha mrl@cin.ufpe.br 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
E N D
Uma introdução ao SWEBOK Jairo C. de Oliveira jco@cin.ufpe.br Milena Rocha mrl@cin.ufpe.br 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
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
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
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
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
Um ou Ambos Certificação Licenciamento Desenvolvimento da Profissão Influências da Sociedade Profissional Infra-estrutura de Suporte da Profissão Desenvolvimento Individual do Profissional Educação Profissional Inicial Reconhecimento Desenvolvimento de Habilidades Sociedades de Profissionais Desenvolvimento Profissional Status Profissional Completo Código de Ética Uma introdução ao SWEBOK v2.0
Guide to the Software EngineeringBody 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
Fases de Desenvolvimento Straw Man Version Stone Man Version Iron Man Version Trial Version 2004 1998 1999 2000 2001 2002 2003 Uma introdução ao SWEBOK v2.0
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
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
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
Conhecimento avançado em ES Conhecimento do domínio da aplicação Ciência da Computação Conhecimento Especializado em ES Matemática Categorias de Conhecimento • Conhecimento de um Engenheiro de Software Uma introdução ao SWEBOK v2.0
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
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
Time do projeto • Grupo de editoração • Especialistas das áreas de conhecimento • Revisores Uma introdução ao SWEBOK v2.0
Á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
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
Organização das Áreas de Conhecimento Uma introdução ao SWEBOK v2.0
Áreas de conhecimento Uma introdução ao SWEBOK v2.0
Áreas de conhecimento Uma introdução ao SWEBOK v2.0
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
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
KA: Software Requirements Uma introdução ao SWEBOK v2.0
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
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
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
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
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
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
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
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
KA: Software Design Uma introdução ao SWEBOK v2.0
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
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
KA: Software Design • Structure and Architecture • Estruturas e Pontos de Vistas • Estilos • Padrões de Design • Frameworks Uma introdução ao SWEBOK v2.0
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
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
KA: Software Construction Uma introdução ao SWEBOK v2.0
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
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
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
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
KA: Software Testing • Sub-áreas de Conhecimento • Basic Concepts • Test Levels • Test Techniques • Test Measures • Test Management Uma introdução ao SWEBOK v2.0
KA: Software Testing Uma introdução ao SWEBOK v2.0
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
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
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
KA: Software Maintenance Uma introdução ao SWEBOK v2.0
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