Gerenciamento de Mudanças, Configuração & Distribuição de Software
aula 03
Software Configuration Management
Pós-Graduação
Engenharia de Software
Prof. Msc Rogério Augusto Rondini [email protected]
Gestão de Configuração de Software
Conceitos e Fundamentos
SCM
Processo para organizar e controlar (gerenciar) modificações ao software, bem como estabelecer e manter a integridade dos produtos do projeto de software ao longo do seu ciclo de vida com objetivo principal de maximizar produtividade e minimizar os enganos.
Por que SCM?
●
Dinâmica dos negócios aumentou em
função da demanda de TI
●
A Internet forçou que TI
acompanhasse os negócios
●
Outros aspectos, tais como,
globalização, avanço tecnológico,
pressão competitiva, mostram que as
empresas tem que operar de forma
Por que SCM?
●
A área de TI e o desenvolvimento de
software vêm criando novos
processos, metodologias e
ferramentas
– Mudanças na forma de trabalho – Leis e normas de regulamentação
– Novos Processos de desenvolvimento – Modelos de gestão e qualidade
Por que SCM?
●
Desenvolvimento Iterativo e
Incremental
– Avanço em relação aos modelos
anteriores (ex. Cascata)
● Tolerância às mudanças de requisitos
● Elementos integrados
progressivamente
Por que SCM?
●
Desenvolvimento Iterativo e
Por que SCM?
●
Desenvolvimento Iterativo e
Incremental
Por que SCM?
●
Desenvolvimento Iterativo e
Incremental
– As vantagens tem um preço...
● Equipes trabalhando no mesmo
projeto em funcionalidades e/ou componentes distintos que
compartilham objetos
● Muitas vezes, equipes distribuídas
geograficamente
Por que SCM?
●
PCI-DSS → desenvolvimento seguro
– O PCI-DSS (Payment Card Industry –
Data Security Standard) é um fórum para contínuo desenv. de padrões de segurança p/ proteção de dados de conta
– Desenvolver e manter aplicativos
seguros é um dos itens definidos
pelo PCI-DSS que trata do processo de desenvolvimento de software
Por que SCM?
●
PCI-DSS → desenvolvimento seguro
– Garantia de rastreabilidade das
alterações e correções de código
– Análise de código deve ser
executada, revisada e aprovada antes da liberação
– Documentação de impácto no cliente
deve estar incluída na
documentação de controle de alterações
Por que SCM?
●
Lei Sarbanes-Oxley (SoX)
– Lei criada nos EUA em 2002 com
objetivo de aperfeiçoar os controles financeiros das empresas e
apresentar eficiência na governança corporativa.
– Visa garantir a transparência na
gestão financeira das organizações
Por que SCM?
●
Lei Sarbanes-Oxley (SoX)
– Alguns requisitos...
– Controlar a criação, edição e
versionamento de documentos
– Cadastrar riscos associados a
processos de negócio e armazenar o desenho dos processos
– Gerenciar todos os documentos,
controlando período de retenção e distribuição
Por que SCM?
●
Lei Sarbanes-Oxley (SoX)
– A política de controle deve ser
aplicada também durante o ciclo de desenvolvimento e liberação de
software
– TI é a área responsável por esse
controle, por tanto, deverá estar alinhada na adequação desta lei
– Uso de padrões (ex. ITIL e CMMi)
Por que SCM?
●
Qualidade de Software
– “Qualidade é a conformidade com os
requisitos“ (Philip B. Crosby)
● Quem determina a qualidade é o
cliente...
● mas.... a que custo ?!
– A satisfação do cliente é importante,
mas não pode ser o único fator a ser considerado
Por que SCM?
●
Qualidade de Software
– Para empresa que desenvolve, vários
fatores podem afetar a qualidade
● Baixa produtividade
● Retrabalho
● Esforço além do estimado
● Custo além do previsto
Por que SCM?
●
Qualidade de Software
– Controle de Qualidade
● Atividades operacionais para
monitoramento de processos e eliminação de desempenho
insatisfatório
● No desenvolvimento de software,
monitoramento dos processos de gestão, desenvolvimento e
Por que SCM?
Por que SCM?
●
Qualidade de Software
– Medições para processos de
desenvolvimento
● Visa fundamentalmente a remoção de
defeitos nos produtos gerados ao longo do processo
● Relatórios gerados por ferramentas
de GCS servem de insumos para estas medições
Por que SCM?
●
Qualidade de Software
– Medições importantes
● Progresso na remoção de defeitos
– No. cumulativo de defeitos
identificados
● Defeitos restantes
– Pode ser um número púro, ou seja,
quantidade de defeitos ainda abertos
– Pode ser um número estimado
Por que SCM?
●
Qualidade de Software
– Medições importantes
● Composição de tipos de defeitos
● Composição de defeitos por fase
● Distribuição por modulos
● Tempo médio para correção de
defeitos
Por que SCM?
●
Motivos apresentados anteriormente
impulsionaram a utilização de
processos de SCM nos últimos anos
●
Muitas ferramentas de apoio vem
sendo desenvolvidas
●
SCM não é a bala de prata, mas
contribui muito para minimizar
problemas no desenvolvimento de
software.
Fundamentos
●
SCM é uma área bastante
abrangente.
●
Iremos Considerar 3 macro
atividades
– Gestão de Configuração – Gestão de Mudança
Gestão de Configuração
●
Definições
– Processo para organizar e controlar
modificações ao software
– Estabelecer e manter a integridade
dos produtos do projeto de
software ao longo do seu ciclo de vida
– Maximizar produtividade e minimizar
Gestão de Configuração
●
Definições
– Jacobson, Booch e Rumbaugh
● Tarefa de definir e manter
configurações e versões dos
artefatos. Isto inclui linhas de base, versionamento, status e
Gestão de Configuração
●
Definições
– SEI (Software Engineering Institute)
● 'Envolve identificar a configuração
de um software em certos pontos do tempo, controlando as mudanças e mantendo a integridade e
rastreabilidade da configuração
durante o ciclo de vida do software. Os produtos contralados incluem os entregue ao cliente e os necessários para a criação do software'
Gestão de Configuração
●
Definições
– IEEE-Std-729-1983
● 'Processo de identificar e definir os
itens de um sistema, controlando as modificações durante o seu ciclo de vida, gravando e relatando o status dos itens e das solicitações de
mudanças, verificando a completudo, corretudo e consistência nos mesmos.
Gestão de Configuração
●
Definições
– Buckle (1982)
● Termo usado para designar um
conjunto de técnicas que, quando aplicadas ao desenvolvimento e
manutenção de software, melhorará a qualidade do produto de
software, reduzirá os custos do
ciclo de vida e melhorará a função gerencial no processo de
Gestão de Configuração
●
Atividades
– Definir ambiente de desenvolvimento – Definir políticas de controle
– Definir procedimentos p/ mudanças – Identificar e controlar mudanças
– Manter rastreabilidade
– Garantir a implementação da
Gestão de Configuração
●
GC e Qualidade de Software
– Qualidade de Software, pontos de
vistas diferentes
● Para um diretor, se o software
funciona, tem qualidade
● Para o desenvolvedor, código-fonte
deve ser organizado e de fácil
manutenção. Se este é assim, então o código tem qualidade
Gestão de Configuração
●
GC e Qualidade de Software
Gestão de Configuração
●
GC e Qualidade de Software
– A GCS desempenha um papel central
neste processo,
● permitirá que cada item de
configuração de software seja especificado, projetado,
construído, testado, avaliado, medido e controlado
● garante a efetiva aplicação das
Gestão de Mudança
●
Relacionamento direto com Gestão
de Configuração
●
Processo para avaliar, coordenar e
decidir sobre a realização de
mudanças em itens de configuração
●
Mudanças aprovadas são
implementadas em todos os artefatos
relacionados
Gestão de Mudança
●
Benefícios
– Controle sobre escopo do projeto – Controle sobre o planejamento do
que deve ser feito
– Qualidade no desenvolvimento, visto
que toda mudança passa por análise de impácto
– Geração de dados para
Distribuição de Software
●
Processo para empacotamento de
aplicações (geração de build)
●
Controle de liberação, ou seja, quais
artefatos/componentes foram
liberados e em que versões
SCM - posicionamento
Engenharia de Software RUP Métodos Ágeis CMMi ITIL ISO Cobit GC, GM e DistribuiçãoSCM - Abrangência
●
Começa quando o projeto tem início
●Continua durante todo o
desenvolvimento e versões
posteriores
●
Só termina quando o software sai de
SCM – QA
●
QA → Como garantir que uma
mudança foi adequadamente
implementada
– Dependendo do grau de formalismo
exigidos
● Revisão técnica formal
SCM - QA
●
Revisão Técnica Formal
– Foco na exatidão técnica dos objetos
de configuração
● Normalmente onde existe a maior
probabilidade de falha
– Avalia-se consistência, omissões e
SCM – QA
●
Auditoria
– Deve responder:
● A mudanças especificada foi feita ?
● Padrões foram seguidos ?
● A mudança foi registrada ?
● Todos os itens de configuração foram
atualizados ?
● Mudanças adicionais necessárias
forma feitas e devidamente documentadas ?
SCM - Benefícios
●
Maior rapidez na identificação e
correção de problemas
●
Garante rastreabilidade entre
produtos de software e suas partes
(artefatos)
●