Upload
carlos-belem-dinis
View
215
Download
0
Embed Size (px)
Citation preview
SWEBOKSoftware Engineering Body
of KnowledgeUm modelo de negócio emergente
Edvaldo Lopes, David Cardoso, Phillip César, João Gabriel, Rodrigo Freitas
{eslf2,dmc4,jgqlm,pcas,rqf}@cin.ufpe.br
AbordagemIntrodução Objetivos Á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
Considerações Finais
IntroduçãoMaturidade da disciplina de Engenharia de Software;
Acervo literário acumulado ao longo de 30 anos; Existência de um corpo de conhecimento; Aparecimento de cursos de graduação em ES;
Necessidade de criar um material que estruturasse o corpo de conhecimento e servisse de guia para o acesso à literatura. Conhecimento necessário ao profissional de ES;
Necessário ≠ Suficiente Transparente
Elaboração bem documentada e exposta publicamente; Consensual
Participação de colaboradores e revisores de universidades e organizações do mundo inteiro;
Visão unificada, consistente de todos os campos que formam a base da disciplina;
IntroduçãoImportante para o reconhecimento da profissão de
Engenheiro de Software;Delimita o conhecimento inerente à competência do
profissional;Validado pela comunidade / mantido em campo científico e
racional;Estrutura aderente aos padrões ISO / IEEE relacionados com
Engenharia de Software;Não confundir o Corpo de Conhecimento com o Guia.
Ciência x Engenharia;Foco na criação de artefatos;Foco no conhecimento da engenharia ao invés de
tecnologias/modelos específicos;Conhecimento “generalizadamente aceito” x Conhecimento
avançado e de pesquisa;
ObjetivosPromover uma visão consistente da Engenharia de
Software no âmbito mundial; Participação de 500 revisores e 42 países;
Determinar as fronteiras entre Engenharia de Software e outras disciplinas relacionadas; Organização do guia em 10 áreas do conhecimento; Identificação de pelo menos 8 disciplinas relacionadas:
Engenharia da computação, ciência da computação, gerenciamento, matemática, gerência de projeto, gestão da qualidade, software ergonomics, engenharia de sistemas.
Caracterizar o conteúdo da disciplina de ES Tópicos hierarquizados em 3 níveis;
Prover “acesso tópico” ao Corpo de Conhecimento Mapeamento entre os tópicos e materiais de referência;
Fundamentar a criação de currículos, certificação e licenciamento de profissionais;
EstruturaIntrodução sobre a área de conhecimento;
Visão Geral, escopo e seus relacionamentos com outras áreas;
Hierarquia de subáreas, tópicos e sub-tópicos delimitam o conteúdo da área de conhecimento;Breve descrição sobre cada tópico/sub-tópico;Lista de materiais de referência para o
conhecimento associado;Matriz de mapeamento entre tópicos e fontes
de referência;
Requisitos de SoftwarePreocupa-se com a Elicitação, Análise, Especificação e
Validação de Requisitos;Hierarquia compatível com sessão do IEEE 12207 que
se refere a Requisitos;6 Subáreas + 1 seção de fechamento:
Fundamentos de RequisitosProcesso de RequisitosElicitação de Requisitos;Análise de Requisitos;Especificação de Requisitos;Validação de Requisitos;Considerações Práticas.
Projeto de Software
Projeto de SoftwareDura por todo o ciclo de vida do softwareMudança no gerenciamentomanutenção dos requisitos em um estado que
reflete exatamente o software a ser construído
Projeto de SoftwareSub-áreas de conhecimento
Conceitos BásicosConceitos chaves do DesignEstrutura e ArquiteturaAnálise e avaliação da qualidade de designNotações de DesignEstratégias e métodos de design de software
Projeto de SoftwareConceitos Básicos
Formam uma base fundamental para o entendimento da função e do escopo do design de software contexto do design de software processo de design técnicas que permitem o design de software.
Projeto de SoftwareConceitos chave do Design
Concorrência controle e tratamento de eventos distribuiçãotratamento de erros e de exceções sistemas interativos persistência.
Projeto de SoftwareEstrutura e Arquitetura
EstruturasEstilosPadrões de desingFrameworks
Projeto de SoftwareAnálise e Avaliação da Qualidade do Design
Trata da qualidade do design do software Características de qualidade Análise de qualidade Avaliação de ferramentas Métricas
Projeto de SoftwareNotações de Design
Notações estruturais e comportamentais
Estratégias e Métodos de Design de SoftwareEstratégias geraisMétodos orientados a funçõesMétodos orientados a objetosMétodos formaisMétodos transformacionais
Construção de Software
Fatores FundamentaisMinimizar ComplexidadeAntecipar MudançasConstructing com VerificaçãoPadrões de Construção
Gerenciando a ConstruçãoModelos de ConstruçãoPlanejamento de ConstruçãoAvaliando a Construção
Considerações PráticasProjeto de ConstruçãoLinguagem PrópriaCodificaçãoTestar ConstruçãoReusoQualidadeIntegração
Teste de Software
Pontos Fundamentais
Níveis de Teste
Unidade Integração SistemaAceitaçãoInstalação Alpha BetaRegressão
StressPerformanceConfiguraçãoUsabilidade
A que se destina e quais são os objetivos:
Avaliações do ProdutoDensidadeConfiabilidadeTipos de Falhas e Estatísticas
Avaliações do TesteCoberturaFalhas antecipadasPontuação de acordo com Mutação
AtividadesPlanejamentoGeração de Casos de TesteDesenvolvimento de ambienteExecuçãoAvaliação de ResultadosReportar ProblemasRastrear Defeitos
Considerações PráticasGuias de TesteGerenciamento do ProcessoDocumentaçãoReuso e Padrões
Manutenção de Software
Manutenção de SoftwareUma 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 conhecimentoConceitos BásicosProcesso de ManutençãoConceitos ChaveTécnicas de Manutenção
Manutenção de Software
Manutenção de SoftwareConceitos Básicos
Apresenta os conceitos básicos e noções utilizando de Definições e Terminologias que formam uma base fundamental para o entendimento da Manutenção do Sistema. Traz um breve analise dos custos.
Manutenção de SoftwareProcesso de Manutenção
Variam consideravelmente É iniciado por um conjunto de pedidos de
mudanças por parte dos usuários do sistema, de gerencia ou dos clientes.
O custo e o impacto dessas mudanças são calculados
Manutenção de SoftwareConceitos Chave
Agrupa técnicas utilizadas para efetuar manutenção
Custo e a estimativa tanto de tamanho do escopo quanto do tempo associado a possíveis mudanças.
Liberações de versões de tempos em tempos
Técnicas de ManutençãoCompreensão do CódigoReengenhariaEngenharia ReversaAnalise de Impacto
Gerência de Configuração de Software
Gerência de Configuração de Software
Identifica a configuração de um sistemaControle de mudanças Manutenção da integridade da configuração
durante o ciclo de vida do sistema
Gerência de Configuração de Software
Sub-áreas de ConhecimentoGerenciamento do Processo GCSIdentificação da Configuração de SoftwareControle da Configuração de SoftwareContagem de Status de Configuração de
SoftwareAudição da Configuração de SoftwareGerenciamento de Release e Entrega do
Software
Gerência de Configuração de Software
Gerência de Configuração de Software
Gerenciamento do Processo GCSTrata dos tópicos do contexto organizacionalLimitações e direcionamentoPlanejamentoSoftware Configuration Management Plan
(SCMP)Monitoramento do GCS
Gerência de Configuração de Software
Identificação da Configuração de SoftwareIdentifica itens a serem controladosEstabelece esquemas de identificação para os
itens e suas versõesEstabelece as ferramentas e técnicas a serem
usadas para adquirir e gerenciar itens controláveis
Gerência de Configuração de Software
Controle da Configuração de SoftwareGerencia as mudanças durante o ciclo de vida
do softwareContagem de Status de Configuração de
SoftwareInformações sobre o status da configuração de
softwareRelatórios do status
Gerência de Configuração de Software
Audição da Configuração de SoftwareAuditoria de configuração funcional do
softwareAuditoria de configuração física do softwareAuditoria In-Process Gerenciamento de Release e Entrega do
SoftwareGerência de construção e de entrega de
software
Gerência de Engenharia de Software
Gerência de Engenharia de SoftwareCorresponde ao gerenciamento, medição e
modelagem do desenvolvimento de softwareSub-áreas de conhecimento:
Iniciação e Definição do Escopo Planejamento do Projeto de Software Software Project Enactment
Revisão e Avaliação
Fechamento
Mensuração da Engenharia de Software
Gerência de Engenharia de Software
Gerência de Engenharia de SoftwareIniciação e Definição do Escopo
Determinação de requisitos, análise de viabilidade e revisão dos requisitos
Planejamento do Projeto de SoftwareProcesso, projetos, deliverables, estimativa de
esforço, cronograma, alocação de recursos, riscos, qualidade
Software Project EnactmentPlanos de implementação, processo de
medição, monitoração, controle e relatórios
Gerência de Engenharia de SoftwareRevisão e Avaliação
Determinação dos requisitos de satisfação, revisão e avaliação de desempenho
FechamentoDeterminar fechamento e suas atividades
Gerência de Engenharia de SoftwareMensuração da Engenharia de Software
Objetivos do programa de mediçãoSeleção de medidasMedição do software e do seu desenvolvimentoColeta de DadosModelos de Métricas
Processo de Engenharia de Software
Processo de Engenharia de SoftwarePreocupa-se com:
DefiniçãoImplementaçãoMedidaGerenciamentoMudançaMelhoramento
Processo de Engenharia de SoftwareSub-áreas de conhecimento
Implementação e Mudança do ProcessoDefinição do ProcessoAvaliação do ProcessoMensuração do Produto e do Processo
Processo de Engenharia de Software
Processo de Engenharia de SoftwareImplementação e Mudança do Processo
Descreve os paradigmasDescreve as linhas de direção para
implementação e mudança do processoAvaliação do resultado de implementação e
mudança
Processo de Engenharia de SoftwareDefinição do Processo
Vários tipos de definições de processo Ciclo de vida de modelos de frameworkCiclo de vida de modelos de softwareNotações usadas para representar essas
definiçõesMétodos de definições de processosAutomação relativa às várias definições
Processo de Engenharia de SoftwareAvaliação do Processo
Métodos e modelos usados para avaliação do processo
Mensuração do Produto e do ProcessoApresenta a metodologia e paradigmas de
medida para diagnóstico quantitativo do processo e do produto
Ferramentas e Métodos da Engenharia de Software
Ferramentas e Métodos da Engenharia de Software
Ferramentas e Métodos da Engenharia de Software
Ferramentas e Métodos da Engenharia de Software
Ferramentas e Métodos da Engenharia de Software
Qualidade de Software
Qualidade de Software
Qualidade de Software
Qualidade de Software
Considerações FinaisNecessidade evolução e manutenção do SWEBOK;
Surgimento de novas práticas/tecnologias;O conhecimento “generalizadamente aceito” muda com
o passar do tempo;Novas técnicas são incorporadas enquanto as antigas
são descartadas;As fronteiras estabelecidas entre o conhecimento
inerente à Engenharia de Softwares e outras disciplinas podem mudar com o tempo.Engenharia de Software é uma disciplina muito nova;
O conteúdo do Guia deve ser a base para a criação de novas versões com o passar do tempo;