Metodologia e Conceitos de Implantação
de Sistemas
Márcio Moreira – 28/7/2009
[email protected]
Evolução das Engenharias de TI
Até 1969
Ciclo Cascata
Década de 70
Incremental
Década de 80
Evolutivo e Espiral
Década de 90
Engenharia
de Software
Iterativo & Incremental
Atualmente
Engenharia
de
Implantação
Engenharia
de
Transição
Fontes: BEI90, CAR98, KRU98, MYE79, PRE95 e SUM07
Metodologia de Implantação
Definição
Descoberta
Desenho
Construção
Teste
Treinamento
Migração
Transição Tecnológica
Distribuição
•Estruturar e planejar os inícios dos projetos
•Definir processos e requisitos de negócio
•Arquitetar, projetar e especificar as soluções
•Configurar, parametrizar e customizar softwares
•Testar unidades, sistemas, integrações e aceitação
•Capacitar analistas e usuários dos softwares
•Migrar dados dos softwares legados para os novos
•Entregar os softwares para a área de operação de TI
•Entregar, assistir e garantir softwares em produção
Principais artefatos de cada etapa
Etapa
Artefato
Definição
Plano do Projeto
Cronograma
Templates (modelos)
Lista de Entregáveis
Descoberta
Pain Points
Requisitos
Processos
Guias de Desenvolvimento
Matriz de Rastreabilidade
Desenho
Construção
Estrutura de Produtos
Blue Print
BD (Desenho de Negócio)
Matriz de Rastreabilidade
TD (Desenho Técnico)
TD de Interface
Controle de Acessos
Drops e Builds
Matriz de Rastreabilidade
Etapa
Artefato
Teste
Estratégia de Testes
Plano de Testes
Casos de Testes
Relatórios de Execução
Treinamento
Estratégia de Treinamento
Plano de Capacitação
Materiais de Treinamento
Certificados
Migração
Estratégia de Migração
Planos de Migração
Mapeamento de Dados
ETL (Extratores,
Transformadores e
Carregadores)
Auditores de Migração
Transição
Tecnológica
Estratégia de Transição
Planos de Transição
Distribuição
Planos de Distribuição
Manuais
Etapas & atividades da metodologia
Definição
Iniciação
Descoberta
Pain Points
Processos
Requisitos
Desenho
Arquitetura de
Solução
Desenho de
Negócio
Projeto de
Integração
Desenho
Técnico
Construção
Construção
Teste
Unitário
Sistema
Integrado
Aceitação
(UAT)
Treinamento
Técnico
Multiplicador
Usuário Final
Migração
Levantamento
Análise e
Detalhamento
Construção
Testes de
Migração
Diagnóstico
de Dados
Transição
Tecnológica
Definição da
Estratégia
Estratégia de
Operação
Competências
Ambientes
Processos
Distribuição
Transição
(Ambiente)
Deploy
(Instalação)
Go Live
Operação
Assistida
Garantia
Implementação
Conceitos de Descoberta (Discovery) 1/2
 Pain Points:
 Conjunto de pontos de dor que os gestores e a
corporação tinham e que impediam a fluidez e o
bom funcionamento da corporação na época.
 Serviu de base para a definição de processos e
requisitos.
Grupos de
processos
Processos
 Processos:
 Conjunto de funções de negócio, mapeadas até o
nível de atividades, seguindo o modelo e a
arquitetura eTOM e complementado pelo modelo
ITIL nos processos de Garantia de Qualidade
(Assurance).
 Transação:
• Conjunto de atividades dos processos que representam
uma interação do cliente com a empresa.
• Ex.: Prover Novo Serviço, Mudança de Endereço, etc.
Atividades
Tarefas
Instruções
de
Trabalho
Conceitos de Descoberta (Discovery) 2/2
 Requisitos:
 “Descreve uma condição ou capacidade que o sistema deve
suportar. Eles podem ser derivado de necessidades, contratos,
padrões, especificações ou imposições” (JAC98).
 Classificações (GRA92 e IE610.12):
• Funcionais:
– “Ações que o sistema deve ser capaz de executar, sem levar em conta
restrições físicas. Também descrevem o comportamento de entrada e
saída do sistema.”
– Normalmente associados a: funcionalidades e usabilidade.
• Não funcionais:
– “Descrevem atributos do sistema ou do ambiente do sistema”.
– Normalmente associados a: confiabilidade, performance, suportabilidade,
projeto, implementação, interface, físicos, etc.
 No programa:
• Os requisitos devem ser escritos no nível de requisitos (necessidade) de
negócio, não entrando em detalhes técnicos (estes podem ser chamados de
requisitos técnicos) nem no mérito da solução.
Conceitos de Desenho 1/2
 Arquitetura de Solução:
 Como as responsabilidades dos
requisitos devem ser divididas entre
os sistemas envolvidos, tomando-se
como base as transações do processo
de negócio e os fluxos de integração
entre os sistemas, resultando no Blue
Print.
eTOM
ITIL
Pain Points
Processos
Requisitos
Blue Print
 Desenho de Negócio:
 Como os requisitos de negócio e a
solução definida no Blue Print devem
ser implementados em cada sistema.
 Cada documento deve explicitar as
regras de negócio e telas envolvidas,
além dos fluxos básicos e
alternativos da solução.
Desenho
de Negócio
Especificação
de Interface
Desenho
Técnico
D. Técnico
de Interface
Build
Know
How
Processos
Conceitos de Desenho 2/2
Especificação
Completa
Desenho
 Projeto de Integração:
Requisitos
de Negócio
Desenho
Técnico
 Projeto das integrações especificadas no Blue Print que serão
implementadas entre os sistemas.
 Cada integração é descrita num documento de Especificação de Interface,
separando-se as interfaces de entrada (inbound) e saída (outbound)
descrevendo-se a especificação dos contratos (XSD, XML e WSDL)
associados.
 Desenho Técnico:
 Documentos de Desenho Técnico:
• Especificação técnica das soluções definidas nos Desenhos de Negócio
detalhando: camada de apresentação (telas, visões, applets, etc.), camada de
controle (objetos e componentes de negócio, fluxos de trabalho, regras,
máquinas de estado, etc.) e camada de persistência (entidades e modelo de
dados).
 Documentos de Desenho Técnico de Interfaces:
• Especificação técnica das interfaces de integração dos sistemas detalhando os
serviços (de negócio e de Internet), fluxos de trabalho, agendamento, carga e
extração de dados.
Customi
zação
Conceitos de Construção 1/2
Configu
ração
Parametrizaç
ão
 Construção:
 São configurações, parametrizações e customizações no
software guiadas pelos Desenhos de Negócio e Técnico.
 Configuração/Parametrização:
• “Ação de determinar parâmetros em um determinado sistema
através da inserção, alteração e remoção de dados em
campos e atributos nativos do próprio sistema”.
 Customização:
• “Alterações, supressões ou inclusões no código fonte e/ou
alterações no modelo de dados da aplicação, bem como a
utilização de objetos, parâmetros, funcionalidades ou modelo
de dados para atender requisitos para os quais a aplicação
não foi projetada, ou ainda qualquer outra alteração que
impeça ou dificulte a migração para novas versões da
aplicação”.
Conceitos de Construção 2/2
 Build:
 “Versão operacional (instalável) de um software, ou de
parte dele, que demonstra um sub-conjunto de
funcionalidades (capacidades) oferecidas no produto final
(software)” (RUP03).
 Os Builds devem fazer parte do controle de configuração
(versões do software), pois fornecem um ponto de revisão
das entregas do software e ajudam a resolver questões de
instalações, configuração, integração, etc.
 Drop:
 Neste programa, representa uma iteração (GIL88) na
etapa de Construção, onde um conjunto de funcionalidades
do software são escolhidas para serem entregues em um
ou mais Builds.
Conceitos de Testes 1/3
 Caso de Teste:
 “Especificação formal de entradas, condições e resultados
esperados, identificados com o propósito de avaliar um ou
mais aspectos de um determinado item do software”
(RUP03).
 Passos dos Casos de Teste (Test Script):
• “Instruções detalhadas para realização de cada etapa do Caso
de Teste” (RUP03).
 Cenários dos Casos de Teste:
• Identificação das variações (tipos de: clientes, produtos, etc.)
cada Caso de Teste deve ser executado.
 Unidade (RUP03):
 Menor elemento (parte) com o qual cada desenvolvedor
pode trabalhar, usualmente um componente do software.
Conceitos de Testes 2/3
 Teste Unitário (RUP03):
 Teste realizado com cada unidade testável do software.
 Normalmente é executado pelo próprio desenvolvedor e envolve
teste de funcionalidades e de controle de fluxo.
 Teste de Sistema (RUP03):
 Teste realizado com o software inteiro funcionando.
 Utilizando um ciclo iterativo de desenvolvimento é possível
executar este teste com parte do software pronto.
 Teste Integrado (RUP03):
 Teste realizado com a integração (acoplamento) de módulos
(pacotes ou sub-sistemas) de um mesmo software.
 Testa interfaces e não deve ser executado por desenvolvedores.
 No programa:
• Consideramos cada software como um módulo e estamos testando a
integração dos vários softwares.
Conceitos de Testes 3/3
 Teste de Aceitação (UAT: User Acceptance Test):
 Teste executado por usuários para verificar se o software
está pronto para ser distribuído e utilizado pelos demais
usuários na realização de suas atividades (RUP03).
 Podem ser feitos de forma (RUP03):
• Formal:
– Seguindo uma seqüência de Casos de Testes planejados.
• Informal (aleatória ou ad hoc):
– O teste é feito de forma livre, exploratória ou aleatória, ou seja,
não segue uma seqüência pré-definida.
 Teste de Regressão (RUP03):
 Execução repetida dos Casos de Testes que falharam, bem
como os Casos de Testes impactados por eles, após a
correção dos erros que causaram as falhas.
Conceitos de Treinamentos
 Treinamentos Técnicos:
 Capacitação de Analistas de Sistemas e de Negócios para
realização de suas atividades no projeto ou na Operação
do Software.
 Normalmente, ministrados por fabricantes ou integradores.
 Treinamentos de Multiplicadores:
 Capacitação de usuários quem tenham habilidade
multiplicar aos usuários finais os conhecimentos adquiridos
sobre a utilização do software.
 Normalmente, ministrados pelos integradores.
 Treinamentos de Usuários:
 Capacitação dos usuários finais na utilização do software.
 Normalmente, ministrados pelos multiplicadores.
Conceitos de Migração 1/2
 ETL (Extract, Transform and Load)(KIM04):
 Extração:
• Leitura dos dados nos legados, conversão destes em
um esquema intermediário e cópia para área
intermediária (base de extração).
 Transformação:
• Limpeza, adequação (transformação), validação dos
dados aos domínios (tipos, formatos, etc.) destinos ou
geração de erros.
• Limpeza:
– Inclui a definição de valores padrões, tratamento de dados
ausentes, campos obrigatórios, únicos, etc.
– Uma parte significativa pode e deve ser feita nos legados.
 Carga:
• Colocação dos dados válidos nos respectivos destinos.
• Envolve criação de registros, gestão de agregações e a
carga destes.
Legados
Extração
Extraídos
Limpeza
Transformação
Validação
Validados
Carga
Destinos
Conceitos de Migração 2/2
 Mapeamento dos dados:
 Identificação, à partir do destino, de quais atributos de origem
(legados) representam quais atributos de destino.
 Auditoria de dados:
 Verificação se os dados de origem passaram por todas etapas do
processo de migração até chegar ao destino.
 Construção de Migração:
 Construção das ferramentas: extratores, transformadores,
carregadores, auditores, etc.
 Testes de Migração:
 Verificação se ferramentas construídas estão realizando o
trabalho como deveriam.
 Diagnóstico de Dados:
 Verificação e execução de rotinas de limpeza, adequação e
inclusão de dados nos sistemas legados.
Conceitos de Transição
Tecnológica
 Transição Tecnológica (CAR07):
 Conceito ITIL que refere-se à entrega de um projeto para a área
de operações de TI.
• Envolve gestão de: mudanças na infra-estrutura de TI, riscos e
garantia de qualidade dos serviços de TI.
• Deve ser planejado para entregar não só as aplicações testadas, mas
também transferir o conhecimento.
 No programa foram tratadas as seguintes dimensões:
• Ambientes:
– Infra-estrutura, Sistemas Operacionais, Bancos de Dados e Aplicações.
• Processos:
– Transição (operação assistida, bugs, etc.), gestão (demandas, defeitos,
etc.) procedimentos (instruções de trabalho) e operação.
• Competências:
– Capacitação, treinamentos, transferência de know how, perfis e pessoas.
• Administração financeira:
– Contratos, licenças, associados e espaço físico.
Conceitos de Distribuição
(Deployment)
 Transição (implantação)(RUP03):
 Preparação das condições (infra, documentação, etc.) necessárias
para colocação do software no ambiente e em ritmo de produção.
 Deploy (RUP03):
 Ação de instalação do software num determinado ambiente.
 Go Live (colocar em produção):
 Execução dos procedimentos das mudanças (changes ITIL) para
colocação do software em produção.
 Operação Assistida:
 Período no qual os integradores e a equipe do projeto devem
apoiar a equipe de Operação de TI. Normalmente 30 dias.
 Garantia:
 Período no qual os integradores devem oferecer gratuitamente a
correção de erros nos softwares. Normalmente 90 dias.
Referências
Sigla
Referência
BEI90
BEIZER, Boris. Software testing techniques. Scottdale: Coriolis Group, 1990, 2 ed.
CAR98
CARZANIGAYZ, A., et. al. A Characterization Framework for Software Deployment Technologies.
Technical Report CU-CS-857-98, University of Colorado, April 1998.
CAR07
CARTLIDGE, A., HANNA, A., & et al. An Introductory Overview of ITIL V3. London: itSMF UK.
2007. http://www.itsmfi.org/files/itSMF_ITILV3_Intro_Overview_0.pdf.
GIL88
Tom Gilb. Principles of Software Engineering Management. 1988. Harlow, England: Addison
Wesley Longman
GRA92
Robert Grady. Practical Software Metrics for Project Management and Process Improvement.
1992. Prentice-Hall.
IE610.12
IEEE Std 610.12-1990. IEEE Standard Glossary of Software Engineering Terminology. The
Institute of Electrical and Electronics Engineers, Inc.: New York, NY, 10017-2394, USA. 1990.
JAC98
Ivar Jacobson, Grady Booch, and James Rumbaugh. The Unified Software Development Process.
1998. Addison Wesley Longman.
KIM04
Kimball, Ralph; Joe Caserta. The Data Warehouse ETL Toolkit. Wiley. 2004. ISBN 0-7645-6757-8.
KRU98
P. Kruchten; The Rational Unified Process: An Introduction, Object
Technology Series, Addison-Wesley, 1998.
MYE79
MYERS, Glenford J. The art of software testing. New York: John Wiley & Sons, 1979.
PRE95
PRESSMAN, R. S. Engenharia de software. São Paulo: Makron Books. 1995.
RUP03
Rational Software. RUP – Rational Unified Process. 2003. Rational Software Corporation and IBM.
SUM07
Sommerville, Ian. Engenharia de Software. 8ª Ed. Pearson / Prentice Hall. 2007.
Obrigado!
Download

Márcio Moreira - Bom dia TI - 2009