evolução das engenharias de ti

21
Metodologia e Conceitos de Implantação de Sistemas Márcio Moreira – 28/7/2009 [email protected]

Upload: lenci

Post on 07-Feb-2016

37 views

Category:

Documents


0 download

DESCRIPTION

Metodologia e Conceitos de Implantação de Sistemas Márcio Moreira – 28/7/2009 [email protected]. Evolução das Engenharias de TI. Análise ClássicaA. EstruturadaA. EssencialModelagem O. Objeto. Engenharia de Software. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Evolução das Engenharias de TI

Metodologia e Conceitos de Implantaçãode Sistemas

Márcio Moreira – 28/7/2009

[email protected]

Page 2: Evolução das Engenharias de TI

Até 1969 Década de 70 Década de 80 Década de 90 Atualmente

Evolução das Engenharias de TIAnálise Clássica

A. Estruturada

A. EssencialModelagem O. Objeto

Programação Procedural P. Estruturada Orientada a Eventos O. Objetos

Testes: DepuraçãoProfissionalização

Qualidade TotalAutomaçãoCiclo Cascata Incremental Evolutivo e Espiral Iterativo & Incremental

Fontes: BEI90, CAR98, KRU98, MYE79, PRE95 e SUM07

Engenharia de Software

Instalação ArtesanalInstaladores

DistribuidoresEmpirismo

Transição (RUP/ITIL)Engenharia

de Transição

Engenharia de

Implantação

Page 3: Evolução das Engenharias de TI

Metodologia de Implantação

•Estruturar e planejar os inícios dos projetosDefinição

•Definir processos e requisitos de negócioDescoberta

•Arquitetar, projetar e especificar as soluçõesDesenho•Configurar, parametrizar e customizar softwaresConstrução

•Testar unidades, sistemas, integrações e aceitaçãoTeste

•Capacitar analistas e usuários dos softwaresTreinamento

•Migrar dados dos softwares legados para os novosMigração

•Entregar os softwares para a área de operação de TITransição Tecnológica

•Entregar, assistir e garantir softwares em produçãoDistribuição

Page 4: Evolução das Engenharias de TI

Etapa Artefato

DefiniçãoPlano do ProjetoCronogramaTemplates (modelos)Lista de Entregáveis

Descoberta

Pain PointsRequisitosProcessosGuias de DesenvolvimentoMatriz de Rastreabilidade

Desenho

Estrutura de ProdutosBlue PrintBD (Desenho de Negócio)Matriz de RastreabilidadeTD (Desenho Técnico)TD de InterfaceControle de Acessos

Construção Drops e BuildsMatriz de Rastreabilidade

Principais artefatos de cada etapa

Etapa Artefato

TesteEstratégia de TestesPlano de TestesCasos de TestesRelatórios de Execução

TreinamentoEstratégia de TreinamentoPlano de CapacitaçãoMateriais de TreinamentoCertificados

Migração

Estratégia de MigraçãoPlanos de MigraçãoMapeamento de DadosETL (Extratores, Transformadores e Carregadores)Auditores de Migração

Transição Tecnológica

Estratégia de TransiçãoPlanos de Transição

Distribuição Planos de DistribuiçãoManuais

Page 5: Evolução das Engenharias de TI

Etapas & atividades da metodologiaDefiniçã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)

Treinamen-to Técnico Multiplicador Usuário Final

Migração Levantamento Análise e Detalhamento Construção Testes de

MigraçãoDiagnóstico de Dados

Implementa-ção

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

Page 6: Evolução das Engenharias de TI

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.

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.

Conceitos de Descoberta (Discovery) 1/2

Processos

Atividades

Tarefas

Instruções de Trabalho

Grupos de processos

Page 7: Evolução das Engenharias de TI

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.

Page 8: Evolução das Engenharias de TI

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.

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.

Pain Points Processos

eTOM ITIL Know How

Requisitos

Blue Print

Desenho de Negócio

Especificação de

Interface

Desenho Técnico

D. Técnico de Interface

Build

Page 9: Evolução das Engenharias de TI

Conceitos de Desenho 2/2 Projeto de Integração:

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.

Processos

Requisitos

Desenho de Negócio

Desenho Técnico

Especificaç

ão Completa

Page 10: Evolução das Engenharias de TI

Conceitos de Construção 1/2

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”.

Parametrização

Configuração

Customização

Page 11: Evolução das Engenharias de TI

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.

Page 12: Evolução das Engenharias de TI

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.

Page 13: Evolução das Engenharias de TI

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.

Page 14: Evolução das Engenharias de TI

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.

Page 15: Evolução das Engenharias de TI

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.

Page 16: Evolução das Engenharias de TI

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ídos

Validados

Destinos

Extração

LimpezaTransformaçãoValidação

Carga

Page 17: Evolução das Engenharias de TI

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.

Page 18: Evolução das Engenharias de TI

Conceitos de TransiçãoTecnoló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.

Page 19: Evolução das Engenharias de TI

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.

Page 20: Evolução das Engenharias de TI

ReferênciasSigla 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.

Page 21: Evolução das Engenharias de TI

Obrigado!