Uma introdução ao SWEBOK Jairo C. de Oliveira [email protected] Milena Rocha [email protected]...
Transcript of Uma introdução ao SWEBOK Jairo C. de Oliveira [email protected] Milena Rocha [email protected]...
Uma introdução ao Uma introdução ao SWEBOK SWEBOK
Jairo C. de OliveiraJairo C. de [email protected]@cin.ufpe.brMilena RochaMilena Rocha
[email protected]@cin.ufpe.br
Tópicos Avançados de ES 3Tópicos Avançados de ES 3
Uma introdução ao SWEBOK v2.0 2
AgendaAgenda• Engenharia de SoftwareEngenharia de Software• Reconhecimento da ProfissãoReconhecimento da Profissão• Desenvolvimento da ProfissãoDesenvolvimento da Profissão• SWEBOK SWEBOK
– Descrição geralDescrição geral– ObjetivosObjetivos– Audiência PretendidaAudiência Pretendida– Princípios BásicosPrincípios Básicos– Time do ProjetoTime do Projeto– Fases de DesenvolvimentoFases de Desenvolvimento– Áreas de ConhecimentoÁreas de Conhecimento– Disciplinas RelacionadasDisciplinas Relacionadas
• ConclusõesConclusões
Uma introdução ao SWEBOK v2.0 3
Engenharia de SoftwareEngenharia de Software
• É uma disciplina que está em É uma disciplina que está em desenvolvimento e existe uma desenvolvimento e existe uma grande tendência ao aumento no seu grande tendência ao aumento no seu nível de maturidadenível de maturidade
• Não é uma disciplina legítima de Não é uma disciplina legítima de engenharia, nem uma profissão engenharia, nem uma profissão reconhecidareconhecida
Uma introdução ao SWEBOK v2.0 4
Reconhecimento da Reconhecimento da ProfissãoProfissão
• É imperativo se chegar a um consenso É imperativo se chegar a um consenso sobre qual é núcleo do conhecimentosobre qual é núcleo do conhecimento
• Segundo Starr*Segundo Starr*– Conhecimento e competência de um Conhecimento e competência de um
profissional devem ser validados por profissional devem ser validados por uma comunidade de peso na áreauma comunidade de peso na área
– Conhecimento é validado se baseado Conhecimento é validado se baseado em fundamentos científicos e racionaisem fundamentos científicos e racionais
– O julgamento do profissional são O julgamento do profissional são direcionados para um conjunto de direcionados para um conjunto de valores reaisvalores reais
*P. Starr, The Social Transformation of American Medicine*P. Starr, The Social Transformation of American Medicine
Uma introdução ao SWEBOK v2.0 5
O que caracteriza uma O que caracteriza uma profissão?profissão?
• Segundo Gary Ford e Norman Gibbs, a Segundo Gary Ford e Norman Gibbs, a profissão de engenharia possui os seguintes profissão de engenharia possui os seguintes componentes:componentes:– Uma educação profissional inicial e um Uma educação profissional inicial e um
curriculum válido por uma sociedade de curriculum válido por uma sociedade de créditocrédito
– Registro da aptidão para praticar por meio Registro da aptidão para praticar por meio de certificação voluntária ou licença de certificação voluntária ou licença obrigatóriaobrigatória
– Desenvolvimento de talento especializado e Desenvolvimento de talento especializado e uma educação profissional contínuauma educação profissional contínua
Uma introdução ao SWEBOK v2.0 6
O que caracteriza uma O que caracteriza uma profissão?profissão?
• Segundo Gary Ford e Norman Gibbs (cont.):Segundo Gary Ford e Norman Gibbs (cont.):– Suporte público através de uma sociedade Suporte público através de uma sociedade
profissionalprofissional– Um comprometimento com normas de Um comprometimento com normas de
conduta, muitas vezes prescritas em um código conduta, muitas vezes prescritas em um código de éticade ética
• O guia SWEBOK contribui para os três O guia SWEBOK contribui para os três primeiros componentes primeiros componentes
• Estabelece um consensoEstabelece um consenso sobre a profissão de sobre a profissão de ESES
Uma introdução ao SWEBOK v2.0 7
Desenvolvimento da Desenvolvimento da ProfissãoProfissão
Sociedades Sociedades de de
ProfissionaisProfissionais
ReconhecimentReconhecimentoo
DesenvolvimentDesenvolvimento Profissionalo Profissional
Código de ÉticaCódigo de Ética
Status Status ProfissionaProfissional Completol Completo
Educação Educação Profissional Profissional
InicialInicial
DesenvolvimentDesenvolvimento de Habilidadeso de Habilidades
Um ou AmbosUm ou Ambos
CertificaçãoCertificação
LicenciamentoLicenciamento
Influências Influências da da Sociedade Sociedade ProfissionaProfissionall
Infra-estrutura de Infra-estrutura de Suporte da Suporte da ProfissãoProfissão
Desenvolvimento Desenvolvimento Individual do Individual do ProfissionalProfissional
Uma introdução ao SWEBOK v2.0 8
Guide to the Software Guide to the Software EngineeringEngineering
Body of Knowledge Body of Knowledge (SWEBOK)(SWEBOK)
• Começou como uma colaboração entre IEEE Começou como uma colaboração entre IEEE CS, ACM e a Université du Québec à MontréalCS, ACM e a Université du Québec à Montréal
• SWECC (Software Engineering Coordinating SWECC (Software Engineering Coordinating Committe) – 1998Committe) – 1998
• Participação internacional da indústria, Participação internacional da indústria, sociedades de profissionais, academia, autoressociedades de profissionais, academia, autores
• Quando o projeto estiver finalizado, Quando o projeto estiver finalizado, literalmente milhares de pessoas terão literalmente milhares de pessoas terão trabalhado neletrabalhado nele
• Após três ciclos de revisões a versão Trial foi Após três ciclos de revisões a versão Trial foi lançada em 2001lançada em 2001
Uma introdução ao SWEBOK v2.0 9
Fases de Fases de DesenvolvimentoDesenvolvimento
19981998 19991999 20002000 20012001 20022002 20032003 20020044
Straw ManStraw ManVersionVersion
Stone ManStone ManVersionVersion
Iron ManIron ManVersionVersion
TrialTrialVersionVersion
Uma introdução ao SWEBOK v2.0 10
Objetivos do Objetivos do SWEBOKSWEBOK
• Oferecer uma visão consistente da Oferecer uma visão consistente da engenharia de software no âmbito engenharia de software no âmbito mundialmundial
• Deixar claros os limites de Deixar claros os limites de planejamento de software com planejamento de software com respeito a outras disciplinasrespeito a outras disciplinas
( Ciência da computação, gerência ( Ciência da computação, gerência de projetos, matemática, entre de projetos, matemática, entre outros)outros)
Uma introdução ao SWEBOK v2.0 11
Objetivos do Objetivos do SWEBOKSWEBOK
• Caracterizar o conteúdo da Caracterizar o conteúdo da disciplina de Engenharia de disciplina de Engenharia de SoftwareSoftware
• Prover uma base para Prover uma base para desenvolvimento curricular e desenvolvimento curricular e material de licença individualmaterial de licença individual
Uma introdução ao SWEBOK v2.0 12
Audiência PretendidaAudiência Pretendida
• Organizações públicas e privadasOrganizações públicas e privadas• Sociedades profissionaisSociedades profissionais• Corporações de criação de Corporações de criação de
padrõespadrões• Estudantes de Engenharia de Estudantes de Engenharia de
SoftwareSoftware• Educadores e InstrutoresEducadores e Instrutores
Uma introdução ao SWEBOK v2.0 13
Categorias de Categorias de ConhecimentoConhecimento
• Conhecimento de um Engenheiro de SoftwareConhecimento de um Engenheiro de Software
Ciência Ciência da da
ComputaComputaçãoção
ConhecimenConhecimento to
EspecializadEspecializado em ESo em ES
ConhecimeConhecimento do nto do
domínio da domínio da aplicaçãoaplicação
MatemátMatemáticaica
ConhecimeConhecimento nto
avançado avançado em ESem ES
Uma introdução ao SWEBOK v2.0 14
Princípios Básicos do Princípios Básicos do ProjetoProjeto
• TransparênciaTransparência– O processo é totalmente documentado e O processo é totalmente documentado e
publicadopublicado
• Construção do consensoConstrução do consenso – IndústriaIndústria– Sociedades ProfissionaisSociedades Profissionais– Corporações de criação de padrões Corporações de criação de padrões – Ambientes AcadêmicosAmbientes Acadêmicos
• Totalmente livre na web Totalmente livre na web (www.swebok.org)(www.swebok.org)
Uma introdução ao SWEBOK v2.0 15
O que está fora do O que está fora do Escopo do SWEBOKEscopo do SWEBOK
• O guia contém os conhecimentos O guia contém os conhecimentos necessários, porém não suficientes para necessários, porém não suficientes para um engenheiro de softwareum engenheiro de software– Linguagem de programação específicaLinguagem de programação específica– Banco de Dados específicoBanco de Dados específico– Tecnologias de RedesTecnologias de Redes– Gerência de projetosGerência de projetos– Engenharia de sistemasEngenharia de sistemas– Ciência da ComputaçãoCiência da Computação
Uma introdução ao SWEBOK v2.0 16
Time do projetoTime do projeto
• Grupo de editoraçãoGrupo de editoração• Especialistas das áreas de Especialistas das áreas de
conhecimentoconhecimento• RevisoresRevisores
Uma introdução ao SWEBOK v2.0 17
Áreas de conhecimento Áreas de conhecimento (KA)(KA)
• Software RequiremetsSoftware Requiremets• Software DesignSoftware Design• Software ConstructionSoftware Construction• Software TestingSoftware Testing• Software MaintenanceSoftware Maintenance• Software Configuration ManagementSoftware Configuration Management• Software Engineering ManagementSoftware Engineering Management• Software Engineering ProcessSoftware Engineering Process• Software Engineering Tools and MethodsSoftware Engineering Tools and Methods• Software QualitySoftware Quality
Uma introdução ao SWEBOK v2.0 18
Disciplinas RelacionadasDisciplinas Relacionadas
• Cognitive Sciences and Human FactorsCognitive Sciences and Human Factors• Computer EngineeringComputer Engineering• Computer ScienceComputer Science• Management and Management ScienceManagement and Management Science• MathematicsMathematics• Project ManagementProject Management• Systems EngineeringSystems Engineering
Uma introdução ao SWEBOK v2.0 19
Organização das Áreas de Organização das Áreas de ConhecimentoConhecimento
Uma introdução ao SWEBOK v2.0 20
Áreas de conhecimentoÁreas de conhecimento
Uma introdução ao SWEBOK v2.0 21
Áreas de conhecimentoÁreas de conhecimento
Uma introdução ao SWEBOK v2.0 22
KA: Software RequirementsKA: Software Requirements
• Um requisito é definido como uma Um requisito é definido como uma característica que pode ser característica que pode ser demonstrada para resolver alguns demonstrada para resolver alguns problemas do mundo realproblemas do mundo real
Uma introdução ao SWEBOK v2.0 23
• Sub-áreas de conhecimentoSub-áreas de conhecimento– Requirement Engineering ProcessRequirement Engineering Process– Requirement ElicitationRequirement Elicitation– Requirement AnalysisRequirement Analysis– Requirement SpecificationRequirement Specification– Requirement ValidationRequirement Validation– Requirement ManagementRequirement Management
KA: Software RequirementsKA: Software Requirements
Uma introdução ao SWEBOK v2.0 24
KA: Software RequirementsKA: Software Requirements
Uma introdução ao SWEBOK v2.0 25
• Requirement Engineering ProcessRequirement Engineering Process– Apresenta o planejamento de requisitosApresenta o planejamento de requisitos– Orienta as outras 5 sub-áreasOrienta as outras 5 sub-áreas– Mostra como o planejamento de Mostra como o planejamento de
requisitos se encaixa com o processo requisitos se encaixa com o processo completo de planejamento de softwarecompleto de planejamento de software
– Descreve modelos de processo, atores e Descreve modelos de processo, atores e suporte ao gerenciamento de requisitossuporte ao gerenciamento de requisitos
KA: Software RequirementsKA: Software Requirements
Uma introdução ao SWEBOK v2.0 26
• Requirement ElicitationRequirement Elicitation– Origem dos requisitosOrigem dos requisitos– Controle do requisitos Controle do requisitos – Fontes de requisitos Fontes de requisitos – Técnicas para ElicitaçãoTécnicas para Elicitação
KA: Software RequirementsKA: Software Requirements
Uma introdução ao SWEBOK v2.0 27
• Requirement AnalysisRequirement Analysis– detectar e resolver conflitos entre detectar e resolver conflitos entre
requisitosrequisitos– descobrir os limites do sistema e como descobrir os limites do sistema e como
ele deve interagir com o seu ambienteele deve interagir com o seu ambiente– aprimorar requisitos do sistema para aprimorar requisitos do sistema para
requisitos de softwarerequisitos de software– IncluiInclui
• Classificação de requisitosClassificação de requisitos• Modelo Conceitual, design arquitetural e alocação de Modelo Conceitual, design arquitetural e alocação de
requisitosrequisitos• Negociação de requisitos.Negociação de requisitos.
KA: Software RequirementsKA: Software Requirements
Uma introdução ao SWEBOK v2.0 28
• Requirement SpecificationRequirement Specification– Descreve e estrutura o documento de Descreve e estrutura o documento de
requisitosrequisitos– Geração dos documentos de definição e Geração dos documentos de definição e
especificação dos requisitos do sistemaespecificação dos requisitos do sistema
KA: Software RequirementsKA: Software Requirements
Uma introdução ao SWEBOK v2.0 29
• Requirement ValidationRequirement Validation– Levanta os problemas antes que os Levanta os problemas antes que os
recursos sejam comprometidosrecursos sejam comprometidos– Verifica se o documento de requisitos Verifica se o documento de requisitos
define o sistema corretodefine o sistema correto• Descrições do comportamento das revisões Descrições do comportamento das revisões
dos requisitosdos requisitos• Criação do ProtótipoCriação do Protótipo• Validação do Modelo Validação do Modelo • Testes de AceitaçãoTestes de Aceitação
KA: Software RequirementsKA: Software Requirements
Uma introdução ao SWEBOK v2.0 30
• Requirement ManagementRequirement Management– Está presente em todo o ciclo de vida de Está presente em todo o ciclo de vida de
um softwareum software– Controla a mudança dos requisitosControla a mudança dos requisitos– Gerencia Características dos requisitosGerencia Características dos requisitos
KA: Software RequirementsKA: Software Requirements
Uma introdução ao SWEBOK v2.0 31
• Processo de definição da Processo de definição da arquitetura, componentes, interfaces arquitetura, componentes, interfaces e outras características de um e outras características de um sistema ou componentesistema ou componente
• Tem como base a definição dos Tem como base a definição dos requisitosrequisitos
KA: Software DesignKA: Software Design
Uma introdução ao SWEBOK v2.0 32
• Sub-áreas de ConhecimentoSub-áreas de Conhecimento– Basic ConceptsBasic Concepts– Key Issues of SoftwareKey Issues of Software– Structure and ArchitectureStructure and Architecture– Software Design Quality Analysis and Software Design Quality Analysis and
EvaluationEvaluation– Desing NotationsDesing Notations– Software Design Strategies and Software Design Strategies and
MethodsMethods
KA: Software DesignKA: Software Design
Uma introdução ao SWEBOK v2.0 33
KA: Software DesignKA: Software Design
Uma introdução ao SWEBOK v2.0 34
• Basic ConceptsBasic Concepts– formam uma base fundamental para o formam uma base fundamental para o
entendimento da função e do escopo do entendimento da função e do escopo do design de softwaredesign de software• conceitos básicos de designconceitos básicos de design• contexto do design de softwarecontexto do design de software• processo de designprocesso de design• técnicas que permitem o design de técnicas que permitem o design de
software.software.
KA: Software DesignKA: Software Design
Uma introdução ao SWEBOK v2.0 35
• Key Issues of SoftwareKey Issues of Software– ConcorrênciaConcorrência– Controle e tratamento de eventosControle e tratamento de eventos– DistribuiçãoDistribuição– Tratamento de erros e de exceçõesTratamento de erros e de exceções– Sistemas interativos Sistemas interativos – PersistênciaPersistência
KA: Software DesignKA: Software Design
Uma introdução ao SWEBOK v2.0 36
• Structure and ArchitectureStructure and Architecture– Estruturas e Pontos de VistasEstruturas e Pontos de Vistas– EstilosEstilos– Padrões de DesignPadrões de Design– FrameworksFrameworks
KA: Software DesignKA: Software Design
Uma introdução ao SWEBOK v2.0 37
• Software Design Quality Analysis Software Design Quality Analysis and Evaluationand Evaluation– Trata da qualidade do design do Trata da qualidade do design do
softwaresoftware– Atributos de qualidadeAtributos de qualidade– Análise de qualidadeAnálise de qualidade– Avaliação de ferramentas Avaliação de ferramentas – MétricasMétricas
KA: Software DesignKA: Software Design
Uma introdução ao SWEBOK v2.0 38
• Design NotationsDesign Notations– Notações estruturais e comportamentaisNotações estruturais e comportamentais
• Software Design Strategies and Software Design Strategies and MethodsMethods– Estratégias GeraisEstratégias Gerais– Métodos Orientados a FunçõesMétodos Orientados a Funções– Métodos Orientados a ObjetoMétodos Orientados a Objeto– Métodos Centrados em Dados EstruturadosMétodos Centrados em Dados Estruturados– Métodos FormaisMétodos Formais
KA: Software DesignKA: Software Design
Uma introdução ao SWEBOK v2.0 39
KA: Software KA: Software ConstructionConstruction
Uma introdução ao SWEBOK v2.0 40
• Construção de software é um ato Construção de software é um ato fundamental do planejamento de fundamental do planejamento de software:software:– CodificaçãoCodificação– ValidaçãoValidação– Verificação (testes unitários)Verificação (testes unitários)
• Requer que o desenvolvedor seja lógico Requer que o desenvolvedor seja lógico e preciso.e preciso.
• Produz software executávelProduz software executável• Relação entre design e construçãoRelação entre design e construção
KA: Software KA: Software ConstructionConstruction
Uma introdução ao SWEBOK v2.0 41
• Uso de Ferramentas para aumento Uso de Ferramentas para aumento de produtividade e qualidadede produtividade e qualidade
• Princípios BásicosPrincípios Básicos– Redução da ComplexidadeRedução da Complexidade
• Remoção, Automação e Localização da Remoção, Automação e Localização da ComplexidadeComplexidade
– Antecipação da DiversidadeAntecipação da Diversidade• Técnicas de Generalização e ExperimentaçãoTécnicas de Generalização e Experimentação
– Estruturação para Validação Estruturação para Validação – Uso de Padrões ExternosUso de Padrões Externos
KA: Software KA: Software ConstructionConstruction
Uma introdução ao SWEBOK v2.0 42
• Estilos/Métodos para Construção de Estilos/Métodos para Construção de SoftwareSoftware– LingüísticoLingüístico
• Uso de linguagem naturalUso de linguagem natural
– FormalFormal– VisualVisual
• Visual C++ Visual C++ • Visual BasicVisual Basic
KA: Software KA: Software ConstructionConstruction
Uma introdução ao SWEBOK v2.0 43
• Consiste na verificação Consiste na verificação dinâmicadinâmica do do comportamento de um programa comportamento de um programa com um conjunto com um conjunto finitofinito de casos de de casos de testes, testes, selecionadosselecionados de um domínio de um domínio geralmente infinito de execuções, geralmente infinito de execuções, para confirmar o comportamento para confirmar o comportamento especificado especificado esperadoesperado..
KA: KA: Software TestingSoftware Testing
Uma introdução ao SWEBOK v2.0 44
• Sub-áreas de ConhecimentoSub-áreas de Conhecimento– Basic ConceptsBasic Concepts– Test LevelsTest Levels– Test Techniques Test Techniques – Test MeasuresTest Measures– Test ManagementTest Management
KA: KA: Software TestingSoftware Testing
Uma introdução ao SWEBOK v2.0 45
KA: KA: Software TestingSoftware Testing
Uma introdução ao SWEBOK v2.0 46
• Basic ConceptsBasic Concepts– Apresentação da terminologia de testesApresentação da terminologia de testes– Bases teóricasBases teóricas– Relacionamento dos testes com outras Relacionamento dos testes com outras
atividadesatividades
• Test LevelsTest Levels– Alvos e ObjetivosAlvos e Objetivos
• Test Techniques Test Techniques – Seleção de Técnicas apropriadasSeleção de Técnicas apropriadas
KA: KA: Software TestingSoftware Testing
Uma introdução ao SWEBOK v2.0 47
• Test MeasuresTest Measures– Trata métricas de testes relacionadosTrata métricas de testes relacionados
• Test ManagementTest Management– Gerenciamento específico para o Gerenciamento específico para o
processo de testesprocesso de testes• GerenciamentoGerenciamento• AtividadesAtividades
KA: KA: Software TestingSoftware Testing
Uma introdução ao SWEBOK v2.0 48
• Uma vez em execução, anomalias Uma vez em execução, anomalias são descobertas, ambientes de são descobertas, ambientes de execução são modificados, e novos execução são modificados, e novos requisitos do usuário surgem.requisitos do usuário surgem.
• Sub-áreas de ConhecimentoSub-áreas de Conhecimento– Basic ConceptsBasic Concepts– Maintenance ProcessMaintenance Process– Key IssuesKey Issues– Techniques for MaintenanceTechniques for Maintenance
KA: KA: Software MaintenanceSoftware Maintenance
Uma introdução ao SWEBOK v2.0 49
KA: KA: Software MaintenanceSoftware Maintenance
Uma introdução ao SWEBOK v2.0 50
• Basic ConceptsBasic Concepts– Definições, Terminologias e EvoluçãoDefinições, Terminologias e Evolução
• Maintenance ProcessMaintenance Process– AtividadesAtividades
• Key IssuesKey Issues– Problemas Técnicos e GerenciamentoProblemas Técnicos e Gerenciamento
• Techniques for MaintenanceTechniques for Maintenance– Compreenção do Programa, Re-Compreenção do Programa, Re-
engenharia, Engenharia Reversa, Análise engenharia, Engenharia Reversa, Análise de Impactode Impacto
KA: KA: Software MaintenanceSoftware Maintenance
Uma introdução ao SWEBOK v2.0 51
• Modelo de Processos de ManutençãoModelo de Processos de Manutenção– IEEE:IEEE:
KA: KA: Software MaintenanceSoftware Maintenance
Solicitação Solicitação de de ModificaçãModificaçãoo
Classificação e
Identificação
Classificação e
Identificação
AnáliseAnálise
DesignDesign
Implementação
Implementação
TesteTesteTeste de AceitaçãoTeste de
Aceitação
EntregaEntrega
Uma introdução ao SWEBOK v2.0 52
KA: Software Configuration KA: Software Configuration Management (SCM)Management (SCM)
• Identifica a configuração de um Identifica a configuração de um sistemasistema– Controle de mudanças Controle de mudanças – Manutenção da integridade da Manutenção da integridade da
configuração durante o ciclo de vida do configuração durante o ciclo de vida do sistemasistema
Uma introdução ao SWEBOK v2.0 53
• Sub-áreas de ConhecimentoSub-áreas de Conhecimento– Management of the SCM processManagement of the SCM process– Software Configuration IdentificationSoftware Configuration Identification– Software Configuration ControlSoftware Configuration Control– Software Configuration Status Software Configuration Status
AccountingAccounting– Software Configuration AuditingSoftware Configuration Auditing– Software Release Management and Software Release Management and
DeliveryDelivery
KA: Software Configuration KA: Software Configuration ManagementManagement
Uma introdução ao SWEBOK v2.0 54
KA: Software Configuration KA: Software Configuration ManagementManagement
Uma introdução ao SWEBOK v2.0 55
• Management of the SCM processManagement of the SCM process– Trata dos tópicos do contexto Trata dos tópicos do contexto
organizacionalorganizacional– Limitações e direcionamentoLimitações e direcionamento– PlanejamentoPlanejamento– Software Configuration Management Software Configuration Management
Plan (SCMP)Plan (SCMP)– Monitoramento do SCMMonitoramento do SCM
KA: Software Configuration KA: Software Configuration ManagementManagement
Uma introdução ao SWEBOK v2.0 56
• Software Configuration Software Configuration IdentificationIdentification– Identifica itens a serem controladosIdentifica itens a serem controlados– Estabelece esquemas de identificação Estabelece esquemas de identificação
para os itens e suas versõespara os itens e suas versões– Estabelece as ferramentas e técnicas a Estabelece as ferramentas e técnicas a
serem usadas para adquirir e gerenciar serem usadas para adquirir e gerenciar itens controláveisitens controláveis
KA: Software Configuration KA: Software Configuration ManagementManagement
Uma introdução ao SWEBOK v2.0 57
KA: Software Configuration KA: Software Configuration ManagementManagement
• Software Configuration ControlSoftware Configuration Control– Gerencia as mudanças durante o ciclo Gerencia as mudanças durante o ciclo
de vida do softwarede vida do software
• Software Configuration Status Software Configuration Status AccountingAccounting– Informações sobre o status da Informações sobre o status da
configuração de softwareconfiguração de software– Relatórios do statusRelatórios do status
Uma introdução ao SWEBOK v2.0 58
• Software Configuration AuditingSoftware Configuration Auditing– Auditoria de configuração funcional do Auditoria de configuração funcional do
softwaresoftware– Auditoria de configuração física do Auditoria de configuração física do
softwaresoftware– Auditoria Auditoria In-ProcessIn-Process
• Software Release Management and Software Release Management and DeliveryDelivery– Gerência de construção e de entrega de Gerência de construção e de entrega de
softwaresoftware
KA: Software Configuration KA: Software Configuration ManagementManagement
Uma introdução ao SWEBOK v2.0 59
• Representação GráficaRepresentação Gráfica
KA: Software Configuration KA: Software Configuration ManagementManagement
Mgmt. & Mgmt. & PlanningPlanning
SCMSCMPP
Mgmt. & Mgmt. & PlanningPlanning
SCMSCMPP
ControlControlMgmt.Mgmt.
ControlControlMgmt.Mgmt.
Status Status AccountiAccounti
ngng
Status Status AccountiAccounti
ngng
Release Release ProcessiProcessi
ngng
Release Release ProcessiProcessi
ngngAuditingAuditingAuditingAuditing
Configurantion IdentificationConfigurantion IdentificationConfigurantion IdentificationConfigurantion Identification
Uma introdução ao SWEBOK v2.0 60
KA: Software Engineering KA: Software Engineering ManagementManagement
• Corresponde ao gerenciamento, Corresponde ao gerenciamento, medição e modelagem do medição e modelagem do desenvolvimento de softwaredesenvolvimento de software
• Sub-áreas de conhecimentoSub-áreas de conhecimento– Organizacional ManagementOrganizacional Management– Process/Project managementProcess/Project management– Software Engineering MeasurementSoftware Engineering Measurement
Uma introdução ao SWEBOK v2.0 61
KA: Software Engineering KA: Software Engineering ManagementManagement
Uma introdução ao SWEBOK v2.0 62
• Organizacional ManagementOrganizacional Management– Política de GerenciamentoPolítica de Gerenciamento– Gerência de PessoalGerência de Pessoal– Gerência de ComunicaçãoGerência de Comunicação– Gerência de AquisiçãoGerência de Aquisição
KA: Software Engineering KA: Software Engineering ManagementManagement
Uma introdução ao SWEBOK v2.0 63
• Process/Project managementProcess/Project management– Definição de escopoDefinição de escopo
• Determinação de requisitos, análise de Determinação de requisitos, análise de viabilidade e revisão dos requisitosviabilidade e revisão dos requisitos
– PlanejamentoPlanejamento• Processo, projetos, Processo, projetos, deliverablesdeliverables, estimativa , estimativa
de esforço, cronograma, alocação de de esforço, cronograma, alocação de recursos, riscos, qualidaderecursos, riscos, qualidade
– EnactmentEnactment• Planos de implementação, processo de Planos de implementação, processo de
medição, monitoração, controle e relatóriosmedição, monitoração, controle e relatórios
KA: Software Engineering KA: Software Engineering ManagementManagement
Uma introdução ao SWEBOK v2.0 64
• Process/Project managementProcess/Project management– Definição de revisão e avaliaçãoDefinição de revisão e avaliação
• Determinação dos requisitos de satisfação, Determinação dos requisitos de satisfação, revisão e avaliação de desempenhorevisão e avaliação de desempenho
– FechamentoFechamento
KA: Software Engineering KA: Software Engineering ManagementManagement
Uma introdução ao SWEBOK v2.0 65
• Software Engineering MeasurementSoftware Engineering Measurement– Objetivos do programa de mediçãoObjetivos do programa de medição– Seleção de medidasSeleção de medidas– Medição do software e do seu Medição do software e do seu
desenvolvimentodesenvolvimento– Coleta de DadosColeta de Dados– Modelos de MétricasModelos de Métricas
KA: Software Engineering KA: Software Engineering ManagementManagement
Uma introdução ao SWEBOK v2.0 66
KA: Software Engineering KA: Software Engineering ProcessProcess
• Preocupa-se com:Preocupa-se com:– DefiniçãoDefinição– ImplementaçãoImplementação– MedidaMedida– GerenciamentoGerenciamento– MudançaMudança– MelhoramentoMelhoramento
Uma introdução ao SWEBOK v2.0 67
• Sub-áreas de conhecimentoSub-áreas de conhecimento– Basic ConceptsBasic Concepts– Process InfrastructureProcess Infrastructure– Measurements Specific to Software Measurements Specific to Software
Engineering ProcessEngineering Process– Process DefinitionProcess Definition– Qualitative Process AnalysisQualitative Process Analysis– Process Implementation and ChangeProcess Implementation and Change
KA: Software Engineering KA: Software Engineering ProcessProcess
Uma introdução ao SWEBOK v2.0 68
KA: Software Engineering KA: Software Engineering ProcessProcess
Uma introdução ao SWEBOK v2.0 69
• Basic ConceptsBasic Concepts– Temas Temas – TerminologiasTerminologias
• Process InfrastructureProcess Infrastructure– Descreve o conceito de grupo e fábricaDescreve o conceito de grupo e fábrica
• Measurements Specific to Software Measurements Specific to Software Engineering ProcessEngineering Process– Apresenta a metodologia e paradigmas Apresenta a metodologia e paradigmas
de medida para diagnóstico quantitativo de medida para diagnóstico quantitativo do processodo processo
KA: Software Engineering KA: Software Engineering ProcessProcess
Uma introdução ao SWEBOK v2.0 70
• Process DefinitionProcess Definition– Vários tipos de definições de processo Vários tipos de definições de processo – Ciclo de vida de modelos de frameworkCiclo de vida de modelos de framework– Ciclo de vida de modelos de softwareCiclo de vida de modelos de software– Notações usadas para representar essas Notações usadas para representar essas
definiçõesdefinições– Métodos de definições de processosMétodos de definições de processos– Automação relativa às várias definiçõesAutomação relativa às várias definições
KA: Software Engineering KA: Software Engineering ProcessProcess
Uma introdução ao SWEBOK v2.0 71
• Qualitative Process AnalysisQualitative Process Analysis– Revisão do processo de definiçãoRevisão do processo de definição– Análise da causa de origemAnálise da causa de origem
• Process Implementation and ChangeProcess Implementation and Change– Descreve os paradigmasDescreve os paradigmas– Descreve as linhas de direção para Descreve as linhas de direção para
implementação e mudança do processoimplementação e mudança do processo– Avaliação do resultado de Avaliação do resultado de
implementação e mudançaimplementação e mudança
KA: Software Engineering KA: Software Engineering ProcessProcess
Uma introdução ao SWEBOK v2.0 72
KA: Software Engineering KA: Software Engineering Tools and MethodsTools and Methods
• Inclui tanto o ambiente de Inclui tanto o ambiente de desenvolvimento de software como desenvolvimento de software como as áreas de conhecimento de as áreas de conhecimento de métodos de desenvolvimentométodos de desenvolvimento
Uma introdução ao SWEBOK v2.0 73
KA: Software Engineering KA: Software Engineering Tools and MethodsTools and Methods
Uma introdução ao SWEBOK v2.0 74
• Ambiente de desenvolvimento de softwareAmbiente de desenvolvimento de software– são ferramentas computacionais com o intuito de são ferramentas computacionais com o intuito de
auxiliar o processo de desenvolvimento de auxiliar o processo de desenvolvimento de software software
• Métodos de DesenvolvimentoMétodos de Desenvolvimento– Impõe estrutura na atividade de desenvolvimento Impõe estrutura na atividade de desenvolvimento
de software, com o objetivo de tornar a atividade de software, com o objetivo de tornar a atividade sistemática e propícia ao sucessosistemática e propícia ao sucesso• HeurísticosHeurísticos• FormaisFormais• PrototipagemPrototipagem• HíbridoHíbrido
KA: Software Engineering KA: Software Engineering Tools and MethodsTools and Methods
Uma introdução ao SWEBOK v2.0 75
KA: Software QualityKA: Software Quality
• Qualidade de Software:Qualidade de Software:– Uso eficiente, efetivo e confortável por Uso eficiente, efetivo e confortável por
um dado conjunto de usuários para um um dado conjunto de usuários para um determinado propósito sob determinado propósito sob determinadas condições.determinadas condições.
• Presente em grande parte das áreas Presente em grande parte das áreas de conhecimento do guiade conhecimento do guia
Uma introdução ao SWEBOK v2.0 76
• Sub-áreas de conhecimentoSub-áreas de conhecimento– Software Quality ConceptsSoftware Quality Concepts– Purpose and Planning of Software Quality Purpose and Planning of Software Quality
Assurance and Verification&ValidationAssurance and Verification&Validation– Activities and Techniques for Software Activities and Techniques for Software
Quality Assurance and Quality Assurance and Verification&ValidationVerification&Validation
– Measurement Applied to Software Quality Measurement Applied to Software Quality Assurance and Verification&ValidationAssurance and Verification&Validation
KA: Software QualityKA: Software Quality
Uma introdução ao SWEBOK v2.0 77
KA: Software QualityKA: Software Quality
Uma introdução ao SWEBOK v2.0 78
• Software Quality ConceptsSoftware Quality Concepts– Trata da medida do valor da qualidadeTrata da medida do valor da qualidade– Trata da descrição ISO 9126 de Trata da descrição ISO 9126 de
qualidadequalidade– Dependência Dependência – Outros tipos especiais de sistemaOutros tipos especiais de sistema
KA: Software QualityKA: Software Quality
Uma introdução ao SWEBOK v2.0 79
• Purpose and Planning of Software Purpose and Planning of Software Quality Assurance (SQA) and Quality Assurance (SQA) and Verification&Validation (V&V)Verification&Validation (V&V)– Atividades de Planejamento da Atividades de Planejamento da
qualidadequalidade– SQA PlanSQA Plan– V&V PlanV&V Plan
KA: Software QualityKA: Software Quality
Uma introdução ao SWEBOK v2.0 80
• Activities and Techniques for SQA Activities and Techniques for SQA and V&Vand V&V– Técnicas Estáticas Técnicas Estáticas – Técnicas People-IntensiveTécnicas People-Intensive– Técnicas AnalíticasTécnicas Analíticas– Técnicas DinâmicasTécnicas Dinâmicas
KA: Software QualityKA: Software Quality
Uma introdução ao SWEBOK v2.0 81
• Measurement Applied to SQA and Measurement Applied to SQA and V&VV&V– Inclui os fundamentos de medição Inclui os fundamentos de medição – Modelos de MediçãoModelos de Medição– Técnicas de análise de medidasTécnicas de análise de medidas– Caracterização de falhaCaracterização de falha
KA: Software QualityKA: Software Quality
Uma introdução ao SWEBOK v2.0 82
Crescimento no interesse Crescimento no interesse na profissão de engenharia na profissão de engenharia
de softwarede software• Diversos centros de estudos e Diversos centros de estudos e
universidades, por todo o mundo universidades, por todo o mundo oferecem graduação em engenharia oferecem graduação em engenharia de software ou possuem algum de software ou possuem algum grupo voltado a estudos do corpo do grupo voltado a estudos do corpo do conhecimento dessa áreaconhecimento dessa área
Uma introdução ao SWEBOK v2.0 83
Crescimento no interesse Crescimento no interesse na profissão de engenharia na profissão de engenharia
de softwarede software• University of New South Wales University of New South Wales
(Australia)(Australia)• McMaster University (Canadá)McMaster University (Canadá)• Rochester Institute of Technology (US)Rochester Institute of Technology (US)• The Canadian Information Processing The Canadian Information Processing
Society tem publicado critérios que Society tem publicado critérios que acreditam em programas de acreditam em programas de engenharia de software para engenharia de software para estudantes ainda não graduadosestudantes ainda não graduados
Uma introdução ao SWEBOK v2.0 84
Crescimento no interesse Crescimento no interesse na profissão de engenharia na profissão de engenharia
de softwarede software• CMM, CMMI e a família ISO 9000 de CMM, CMMI e a família ISO 9000 de
padrões são usados para avaliar a padrões são usados para avaliar a capacidade organizacional para a capacidade organizacional para a engenharia de softwareengenharia de software
• The Texas Board of Professional The Texas Board of Professional Engineers tem começado a licenciar Engineers tem começado a licenciar profissionais de engenharia de profissionais de engenharia de softwaresoftware
Uma introdução ao SWEBOK v2.0 85
Crescimento no interesse Crescimento no interesse na profissão de engenharia na profissão de engenharia
de softwarede software• The Association for Computing MachineryThe Association for Computing Machinery
(ACM) e o Computer Society of the (ACM) e o Computer Society of the Institute ofInstitute of
Electrical and Electronics Engineers (IEEE)Electrical and Electronics Engineers (IEEE)
têm aderido ao desenvolvimento e adotado têm aderido ao desenvolvimento e adotado umum
código de ética para profissionais de código de ética para profissionais de engenharia deengenharia de
softwaresoftware
Uma introdução ao SWEBOK v2.0 86
Crescimento no interesse Crescimento no interesse na profissão de engenharia na profissão de engenharia
de softwarede software
• The Institute for Certification of The Institute for Certification of ComputingComputing
Professionals (ICCP) oferece Professionals (ICCP) oferece certificação tantocertificação tanto
para desenvolvedores de software para desenvolvedores de software quanto paraquanto para
engenheiros de softwareengenheiros de software
Uma introdução ao SWEBOK v2.0 87
Considerações FinaisConsiderações Finais
• É provável que o projeto SWEBOK É provável que o projeto SWEBOK torne-se tão importante dentro da torne-se tão importante dentro da área de Tecnologia da Informação área de Tecnologia da Informação quanto o PMBOK é dentro da área quanto o PMBOK é dentro da área de Gerência de Projetosde Gerência de Projetos
• E seus padrões se tornem guias para E seus padrões se tornem guias para um profissional de Tecnologia da um profissional de Tecnologia da informaçãoinformação
Uma introdução ao SWEBOK v2.0 88
ReferênciasReferências
• Guide to the Software Engineering Body of Guide to the Software Engineering Body of Knowledge. A Project of the Software Knowledge. A Project of the Software Engineering Coordinating Committee - Engineering Coordinating Committee - Leonard Leonard L. TripL. Tripp, Chair, Professional Practices p, Chair, Professional Practices Committee, IEEE Computer SocietyCommittee, IEEE Computer Society
• The Emerging Consensus on Software The Emerging Consensus on Software Engineering Body of Knowledge –Pierre Bourque, Engineering Body of Knowledge –Pierre Bourque, École de technologie supérieure Robert Dupuis, École de technologie supérieure Robert Dupuis, february,2002 february,2002
• Description of the SWEBOK Knowledge Area Description of the SWEBOK Knowledge Area Software Engineering Process- Software Engineering Process- El-Emam, K. El-Emam, K. March 2001March 2001
Uma introdução ao SWEBOK v2.0 89
ReferênciasReferências
• http://www.ipenz.org.nz/ipenz/http://www.ipenz.org.nz/ipenz/publications/Convention/publications/Convention/Steve_McDonell_SWEBOK.pptSteve_McDonell_SWEBOK.ppt
• http://www.site.uottawa.ca/~tcl/http://www.site.uottawa.ca/~tcl/presentations/presentations/SWEBOKandUottMar2000CSEET.pptSWEBOKandUottMar2000CSEET.ppt
• http://www.stevemcconnell.com/http://www.stevemcconnell.com/NovumOrganum.pdfNovumOrganum.pdf