SlideShare una empresa de Scribd logo
1 de 47
Descargar para leer sin conexión
TUDO SÃO DADOS! DIEGO THOMAZ FLÔRES www.ecrayon.com.br PHP Conference 2008
DIEGO THOMAZ FLÔRES Analista e programador PHP há 6 anos, já desenvolveu projetos de médio e grande porte para clientes como o Ministério do Turismo, EMBRATUR, Fundação Getúlio Vargas - RJ, GMagazine, Telefonica e Agência Click.  Atua como Gerente de Projetos na  Bolsoni Tecnologia & Turismo , desenvolvendo e coordenando os projetos Brasil.com.br e Boletim de Ocupação Hoteleira (EMBRATUR/FGV-RJ). É aluno do último ano do curso superior em Análise de Bancos de Dados no IBTA – São Paulo/SP. Além disso, é responsável pela  ECRAYON Tecnologia Criativa , estúdio de desenvolvimento de sistemas  web-based .
ALGUNS CASES
AGENDA ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
“ O modo mais provável do mundo ser destruído, como concorda a maioria dos especialistas, é através de um acidente. É ai que nós entramos. Somos profissionais de computação. Nós causamos acidentes.” Nathaniel Borestein
Estudos mostram que 50% das falhas no setor industrial alemão são causadas por erros em software. 1977: Média de 7-20 defeitos por 1000 linhas de código 1994: Média de 0,2-0,05 defeitos por 1000 linhas de código A tolerância de um nível de defeito de 0,1% significa: por ano: 20.000 medicamentos defeituosos 300 falhas em marcapassos por semana: 500 erros em operações médicas por dia: 16.000 cartas perdidas nos correios 18 quedas de aviões por hora: 22.000 cheques descontados incorretamente
AS SETE QUESTÕES FUNDAMENTAIS PARA O PLANEJAMENTO DE SOFTWARE ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
FASES DO PLANEJAMENTO DE SOFTWARE Definição Desenvolvimento Manutenção Análise do Sistema Planejamento do projeto  Análise de Requisitos Projeto de Software Codificação Realização de Testes Correção Adaptação Expansão
FASE 1: DEFINIÇÃO ou ESPECIFICAÇÃO ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
FASE 2: DESENVOLVIMENTO ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
FASE 3: MANUTENÇÃO ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
MODELOS DE PROCESSO DE SOFTWARE Consiste em uma série de atividades que garantem, técnica e administrativamente que o software pode ser desenvolvido de maneira organizada, disciplinada e previsível. Um modelo de processo procura descrever formalmente e de maneira organizada todas as atividades que devem ser seguidas para a obtenção segura de um produto de software. É importante escolher um modelo apropriado às metas da organização e saber o grau em que esse modelo será implementado. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
MODELOS DE PROCESSOS DE SOFTWARE: LINEAR ou CASCATA Engenharia de Sistemas Análise  de Requisitos  Projeto  Codificação  Testes  Manutenção
PROBLEMAS NA IMPLEMENTAÇÃO LINEAR ou CASCATA ,[object Object],[object Object],[object Object]
MODELOS DE PROCESSOS DE SOFTWARE: PROTOTIPAÇÃO construa/revise o protótipo teste do protótipo pelo cliente ouça o cliente
PROBLEMAS NA IMPLEMENTAÇÃO POR PROTOTIPAÇÃO ,[object Object],[object Object]
MODELOS DE PROCESSOS DE SOFTWARE: ESPIRAL ,[object Object],[object Object],[object Object],Planejamento Análise de Risco Engenharia Construção e Release Avaliação do Cliente Adaptações
TÉCNICAS PARA LEVANTAMENTO DE REQUISITOS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ENTREVISTAS: boas práticas! ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
QUESTIONÁRIOS: boas práticas! ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JAD: IMERSÃO E TRABALHO EM EQUIPE! ,[object Object],[object Object],[object Object],[object Object]
JAD – IMERSÃO E TRABALHO EM EQUIPE! ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
E o que a MODELAGEM DE DADOS tem a ver com tudo isso? TUDO! Assim como para o desenvolvimento de sistemas de software, também para a modelagem de dados o fator mais importante é a interação entre a equipe técnica e o cliente. Sem a compreensão do problema e do contexto onde ele está inserido e sem a compreensão das soluções propostas durante a especificação do sistema, todo o esforço até aqui pode ser desperdiçado por um modelo de dados ruim.
TUDO SÃO DADOS! ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ANÁLISE E MODELAGEM DE DADOS O processo de análise e modelagem de dados tem por objetivo principal definir um modelo claro, conciso e equilibrado da realidade, sem qualquer influência dos meios computacionais que utilizaremos para resolver o problema.  Os dados gerados para ou pelo produto em desenvolvimento a fim de resolver determinado problema devem ser absolutamente independentes da tecnologia que será utilizada para interpretá-lo, fornecê-lo ou consumí-lo. Construir o modelo de dados é um processo evolutivo e se modifica à medida que a realidade é conhecida. Uma modelo de dados representa uma visão parcial da realidade do cliente ou produto. Cada visão da realidade tem vocabulário e regras definidas, que representam as próprias regras do negócio.
BENEFÍCIOS DA MODELAGEM DE DADOS ,[object Object],[object Object],[object Object],[object Object],[object Object]
BENEFÍCIOS DA MODELAGEM DE DADOS Discussões sobre as funções que serão executadas pelo sistema sempre mostram novos requerimentos de dados; discussões sobre os dados e sua estrutura sempre mostram novos requerimentos funcionais. Dessa forma, é importante desenvolver simultaneamente o Modelo de Dados e o Modelo Funcional. Enquanto os Modelos Funcionais descrevem "como" os requisitos serão atendidos pelo sistema, os Modelos de Dados descrevem "o quê" será atendido e "por quem".
MODELO DE PROCESSOS DE MODELAGEM DE DADOS ENTIDADES TABLES CHAVES PRIMARY KEY, FOREIGN KEYS, INDEXES ATRIBUTOS COLUMN TRANSFORMAÇÃO SQL DUMP ESCOPO MODELO LÓGICO FÍSICO
MODELO DE PROCESSOS DE MODELAGEM DE DADOS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CARDINALIDADE ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
EXEMPLO DE MODELO DE DADOS COMPLETO
REGRAS PARA A MODELAGEM DE DADOS: ENTIDADES ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
REGRAS PARA A MODELAGEM DE DADOS: RELACIONAMENTOS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
REGRAS PARA A MODELAGEM DE DADOS: ATRIBUTOS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
REGRAS PARA A MODELAGEM DE DADOS: DERIVAÇÃO ,[object Object],[object Object],[object Object]
REGRAS PARA A MODELAGEM DE DADOS: NEGÓCIOS São regras específicas que uma empresa estabelece para funcionamento do seu negócio. Objetivamente, estabelecem as regras validação das entidade identificadas, seus atributos e relacionamentos. Além disso, são as regras de negócio que definem e especificam as interrelações do Modelo de Dados com a Aplicação, assim como da Aplicação com o Usuário. Regras de Negócios bem definidas auxiliam ainda na interpretação semântica da aplicação e do banco de dados e seus componentes lógicos  (classes, triggers, functions, stored procedures, etc.) , garantindo melhores perspectivas para futuro reaproveitamento e encapsulamento de procedimentos comuns.
INTEGRIDADE REFERENCIAL Uma vez que um banco relacional se apóia em entidades e seus atributos para implementar relacionamentos  (FOREIGN KEY) , a integridade dos dados nos atributos chave  (PRIMARY KEY)  é fundamental. Após a definição das entidades e seus relacionamentos, o passo mais importante do processo é definir a regra de propagação destes. Para cada um deles é necessário definir qual ação deve ser tomada em caso de inserção, alteração ou deleção do registro pai. O slide a seguir define cada uma das configurações possíveis para a propagação de alterações nas PRIMARY KEYS .
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
NORMALIZAÇÃO DO MODELO DE DADOS É o conjunto de regras que objetiva o maior refinamento possível do Modelo de Dados inicial, garantindo que o resultado final  não contenha qualquer redundância lógica. Importante:  um Modelo de Dados completamente normalizado não leva em conta considerações de performance, nem o SGBD onde o sistema será implementado. Durante o desenvolvimento do projeto, a análise de performance poderá provocar modificações do modelo canônico.
NORMALIZAÇÃO DO MODELO DE DADOS: 1ª FORMA NORMAL ,[object Object],[object Object]
NORMALIZAÇÃO DO MODELO DE DADOS: 2ª FORMA NORMAL ,[object Object],[object Object]
NORMALIZAÇÃO DO MODELO DE DADOS: 3ª FORMA NORMAL ,[object Object],[object Object]
NORMALIZAÇÃO DO MODELO DE DADOS: 3ª FORMA NORMAL
MODELAGEM DE DADOS: boas práticas! Em modelagem de dados em particular, assim como em desenvolvimento de sistemas em geral, é extremamente importante adotar e seguir  padrões de nomenclatura de objetos . O dispêndio de tempo e esforço com esta preocupação rende um modelo conciso, claro e sem ambiguidades. Definir as entidades de um modelo é mais do que criar sua estrutura, escolher chaves e criar relacionamentos. É preciso também criar informação que sirva para  documentar a função da existência daquela entidade . Assim como nas entidades, a definição de atributos deve ser feita de maneira clara, e valem as mesmas regras. Assim, as definições de atributos também pedem a mesma coisa: descrição, exemplo e comentários. Além disso, as definições devem ter, sempre que possível,  regras de validação .
LEIS DE CONSISTÊNCIA DE DADOS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LEIS DE CONSISTÊNCIA DE DADOS ,[object Object],[object Object],[object Object],[object Object]
OBRIGADO PELA PRESENÇA! DIEGO THOMAZ FLORES [email_address] www.ecrayon.com.br

Más contenido relacionado

La actualidad más candente

Processos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaRalph Rassweiler
 
Aula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREAula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREErnesto Bedrikow
 
Introdução a engenharia de software aula 01
Introdução a engenharia de software   aula 01Introdução a engenharia de software   aula 01
Introdução a engenharia de software aula 01Franklin Matos Correia
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Sérgio Souza Costa
 
Apresentação de Engenharia de software I - Prof. Cristiane Fidelix
Apresentação de Engenharia de software I - Prof. Cristiane FidelixApresentação de Engenharia de software I - Prof. Cristiane Fidelix
Apresentação de Engenharia de software I - Prof. Cristiane FidelixCris Fidelix
 
Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?Priscilla Aguiar
 
Princípios Fundamentais da Análise de Requisitos
Princípios Fundamentais da Análise de RequisitosPrincípios Fundamentais da Análise de Requisitos
Princípios Fundamentais da Análise de Requisitoselliando dias
 
Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2Fernando Vargas
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareFelipe Goulart
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Softwareelliando dias
 
Princípios da engenharia de software (marcello thiry)
Princípios da engenharia de software (marcello thiry)Princípios da engenharia de software (marcello thiry)
Princípios da engenharia de software (marcello thiry)Marcello Thiry
 
Apostila xp programação ágil
Apostila xp   programação ágilApostila xp   programação ágil
Apostila xp programação ágilDaniel Brandão
 
Processo de Análise e Desenvolvimento de Software (PDS)
Processo de Análise e Desenvolvimento de Software (PDS)Processo de Análise e Desenvolvimento de Software (PDS)
Processo de Análise e Desenvolvimento de Software (PDS)Maicon Amarante
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de softwarediha36
 
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...Natanael Simões
 

La actualidad más candente (20)

Processos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e prática
 
Aula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREAula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWARE
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 
Introdução a engenharia de software aula 01
Introdução a engenharia de software   aula 01Introdução a engenharia de software   aula 01
Introdução a engenharia de software aula 01
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
 
Desenvolvimento Ágil
Desenvolvimento ÁgilDesenvolvimento Ágil
Desenvolvimento Ágil
 
Apresentação de Engenharia de software I - Prof. Cristiane Fidelix
Apresentação de Engenharia de software I - Prof. Cristiane FidelixApresentação de Engenharia de software I - Prof. Cristiane Fidelix
Apresentação de Engenharia de software I - Prof. Cristiane Fidelix
 
Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?
 
Princípios Fundamentais da Análise de Requisitos
Princípios Fundamentais da Análise de RequisitosPrincípios Fundamentais da Análise de Requisitos
Princípios Fundamentais da Análise de Requisitos
 
Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
Princípios da engenharia de software (marcello thiry)
Princípios da engenharia de software (marcello thiry)Princípios da engenharia de software (marcello thiry)
Princípios da engenharia de software (marcello thiry)
 
Apostila xp programação ágil
Apostila xp   programação ágilApostila xp   programação ágil
Apostila xp programação ágil
 
Processo de Análise e Desenvolvimento de Software (PDS)
Processo de Análise e Desenvolvimento de Software (PDS)Processo de Análise e Desenvolvimento de Software (PDS)
Processo de Análise e Desenvolvimento de Software (PDS)
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
 
Aula4 levantamento requisitos
Aula4 levantamento requisitosAula4 levantamento requisitos
Aula4 levantamento requisitos
 
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
 

Similar a Tudo são Dados - PHP Conference 2008

Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trataRoni Reis
 
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMASLIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMASOs Fantasmas !
 
Processo de software individual
Processo de software individualProcesso de software individual
Processo de software individualAdivaldo_badinho
 
Gerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de softwareGerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de softwareRoberto Brandini
 
Aula 3 desenvolvimento de projetos
Aula 3 desenvolvimento de projetosAula 3 desenvolvimento de projetos
Aula 3 desenvolvimento de projetosThiago Cetroni
 
Analise de Requisitos de Software
Analise de Requisitos de SoftwareAnalise de Requisitos de Software
Analise de Requisitos de SoftwareRobson Silva Espig
 
Implantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLImplantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLAnnkatlover
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Rennan Martini
 
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANFernando Palma
 
Engenharia de Software Dia-a-Dia
Engenharia de Software Dia-a-DiaEngenharia de Software Dia-a-Dia
Engenharia de Software Dia-a-DiaTathiana Machado
 
Artigo asap - metodologia de gestão de projetos para implementação de pacot...
Artigo   asap - metodologia de gestão de projetos para implementação de pacot...Artigo   asap - metodologia de gestão de projetos para implementação de pacot...
Artigo asap - metodologia de gestão de projetos para implementação de pacot...Garage Criativa | Garage Hub
 
Analise e desenvolvimento
Analise e desenvolvimentoAnalise e desenvolvimento
Analise e desenvolvimentoGabriel Moura
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareEmerson Henrique
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareLuciano Almeida
 

Similar a Tudo são Dados - PHP Conference 2008 (20)

Aula 1 analise e projeto
Aula 1   analise e projetoAula 1   analise e projeto
Aula 1 analise e projeto
 
Métodos Ágeis - Aula02
Métodos Ágeis - Aula02Métodos Ágeis - Aula02
Métodos Ágeis - Aula02
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trata
 
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMASLIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
 
Artigo corrigido
Artigo corrigidoArtigo corrigido
Artigo corrigido
 
Processo de software individual
Processo de software individualProcesso de software individual
Processo de software individual
 
Gerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de softwareGerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de software
 
Aula 3 desenvolvimento de projetos
Aula 3 desenvolvimento de projetosAula 3 desenvolvimento de projetos
Aula 3 desenvolvimento de projetos
 
Analise de Requisitos de Software
Analise de Requisitos de SoftwareAnalise de Requisitos de Software
Analise de Requisitos de Software
 
Implantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLImplantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SL
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)
 
Mini aula análise de requisitos
Mini aula análise de requisitosMini aula análise de requisitos
Mini aula análise de requisitos
 
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
 
Engenharia de Software Dia-a-Dia
Engenharia de Software Dia-a-DiaEngenharia de Software Dia-a-Dia
Engenharia de Software Dia-a-Dia
 
Artigo asap - metodologia de gestão de projetos para implementação de pacot...
Artigo   asap - metodologia de gestão de projetos para implementação de pacot...Artigo   asap - metodologia de gestão de projetos para implementação de pacot...
Artigo asap - metodologia de gestão de projetos para implementação de pacot...
 
APS - RAD x Ágeis
APS - RAD x ÁgeisAPS - RAD x Ágeis
APS - RAD x Ágeis
 
Analise e desenvolvimento
Analise e desenvolvimentoAnalise e desenvolvimento
Analise e desenvolvimento
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de Software
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de Software
 
Do Zero à Produção
Do Zero à ProduçãoDo Zero à Produção
Do Zero à Produção
 

Tudo são Dados - PHP Conference 2008

  • 1. TUDO SÃO DADOS! DIEGO THOMAZ FLÔRES www.ecrayon.com.br PHP Conference 2008
  • 2. DIEGO THOMAZ FLÔRES Analista e programador PHP há 6 anos, já desenvolveu projetos de médio e grande porte para clientes como o Ministério do Turismo, EMBRATUR, Fundação Getúlio Vargas - RJ, GMagazine, Telefonica e Agência Click. Atua como Gerente de Projetos na Bolsoni Tecnologia & Turismo , desenvolvendo e coordenando os projetos Brasil.com.br e Boletim de Ocupação Hoteleira (EMBRATUR/FGV-RJ). É aluno do último ano do curso superior em Análise de Bancos de Dados no IBTA – São Paulo/SP. Além disso, é responsável pela ECRAYON Tecnologia Criativa , estúdio de desenvolvimento de sistemas web-based .
  • 4.
  • 5. “ O modo mais provável do mundo ser destruído, como concorda a maioria dos especialistas, é através de um acidente. É ai que nós entramos. Somos profissionais de computação. Nós causamos acidentes.” Nathaniel Borestein
  • 6. Estudos mostram que 50% das falhas no setor industrial alemão são causadas por erros em software. 1977: Média de 7-20 defeitos por 1000 linhas de código 1994: Média de 0,2-0,05 defeitos por 1000 linhas de código A tolerância de um nível de defeito de 0,1% significa: por ano: 20.000 medicamentos defeituosos 300 falhas em marcapassos por semana: 500 erros em operações médicas por dia: 16.000 cartas perdidas nos correios 18 quedas de aviões por hora: 22.000 cheques descontados incorretamente
  • 7.
  • 8. FASES DO PLANEJAMENTO DE SOFTWARE Definição Desenvolvimento Manutenção Análise do Sistema Planejamento do projeto Análise de Requisitos Projeto de Software Codificação Realização de Testes Correção Adaptação Expansão
  • 9.
  • 10.
  • 11.
  • 12.
  • 13. MODELOS DE PROCESSOS DE SOFTWARE: LINEAR ou CASCATA Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção
  • 14.
  • 15. MODELOS DE PROCESSOS DE SOFTWARE: PROTOTIPAÇÃO construa/revise o protótipo teste do protótipo pelo cliente ouça o cliente
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23. E o que a MODELAGEM DE DADOS tem a ver com tudo isso? TUDO! Assim como para o desenvolvimento de sistemas de software, também para a modelagem de dados o fator mais importante é a interação entre a equipe técnica e o cliente. Sem a compreensão do problema e do contexto onde ele está inserido e sem a compreensão das soluções propostas durante a especificação do sistema, todo o esforço até aqui pode ser desperdiçado por um modelo de dados ruim.
  • 24.
  • 25. ANÁLISE E MODELAGEM DE DADOS O processo de análise e modelagem de dados tem por objetivo principal definir um modelo claro, conciso e equilibrado da realidade, sem qualquer influência dos meios computacionais que utilizaremos para resolver o problema. Os dados gerados para ou pelo produto em desenvolvimento a fim de resolver determinado problema devem ser absolutamente independentes da tecnologia que será utilizada para interpretá-lo, fornecê-lo ou consumí-lo. Construir o modelo de dados é um processo evolutivo e se modifica à medida que a realidade é conhecida. Uma modelo de dados representa uma visão parcial da realidade do cliente ou produto. Cada visão da realidade tem vocabulário e regras definidas, que representam as próprias regras do negócio.
  • 26.
  • 27. BENEFÍCIOS DA MODELAGEM DE DADOS Discussões sobre as funções que serão executadas pelo sistema sempre mostram novos requerimentos de dados; discussões sobre os dados e sua estrutura sempre mostram novos requerimentos funcionais. Dessa forma, é importante desenvolver simultaneamente o Modelo de Dados e o Modelo Funcional. Enquanto os Modelos Funcionais descrevem "como" os requisitos serão atendidos pelo sistema, os Modelos de Dados descrevem "o quê" será atendido e "por quem".
  • 28. MODELO DE PROCESSOS DE MODELAGEM DE DADOS ENTIDADES TABLES CHAVES PRIMARY KEY, FOREIGN KEYS, INDEXES ATRIBUTOS COLUMN TRANSFORMAÇÃO SQL DUMP ESCOPO MODELO LÓGICO FÍSICO
  • 29.
  • 30.
  • 31. EXEMPLO DE MODELO DE DADOS COMPLETO
  • 32.
  • 33.
  • 34.
  • 35.
  • 36. REGRAS PARA A MODELAGEM DE DADOS: NEGÓCIOS São regras específicas que uma empresa estabelece para funcionamento do seu negócio. Objetivamente, estabelecem as regras validação das entidade identificadas, seus atributos e relacionamentos. Além disso, são as regras de negócio que definem e especificam as interrelações do Modelo de Dados com a Aplicação, assim como da Aplicação com o Usuário. Regras de Negócios bem definidas auxiliam ainda na interpretação semântica da aplicação e do banco de dados e seus componentes lógicos (classes, triggers, functions, stored procedures, etc.) , garantindo melhores perspectivas para futuro reaproveitamento e encapsulamento de procedimentos comuns.
  • 37. INTEGRIDADE REFERENCIAL Uma vez que um banco relacional se apóia em entidades e seus atributos para implementar relacionamentos (FOREIGN KEY) , a integridade dos dados nos atributos chave (PRIMARY KEY) é fundamental. Após a definição das entidades e seus relacionamentos, o passo mais importante do processo é definir a regra de propagação destes. Para cada um deles é necessário definir qual ação deve ser tomada em caso de inserção, alteração ou deleção do registro pai. O slide a seguir define cada uma das configurações possíveis para a propagação de alterações nas PRIMARY KEYS .
  • 38.
  • 39. NORMALIZAÇÃO DO MODELO DE DADOS É o conjunto de regras que objetiva o maior refinamento possível do Modelo de Dados inicial, garantindo que o resultado final não contenha qualquer redundância lógica. Importante: um Modelo de Dados completamente normalizado não leva em conta considerações de performance, nem o SGBD onde o sistema será implementado. Durante o desenvolvimento do projeto, a análise de performance poderá provocar modificações do modelo canônico.
  • 40.
  • 41.
  • 42.
  • 43. NORMALIZAÇÃO DO MODELO DE DADOS: 3ª FORMA NORMAL
  • 44. MODELAGEM DE DADOS: boas práticas! Em modelagem de dados em particular, assim como em desenvolvimento de sistemas em geral, é extremamente importante adotar e seguir padrões de nomenclatura de objetos . O dispêndio de tempo e esforço com esta preocupação rende um modelo conciso, claro e sem ambiguidades. Definir as entidades de um modelo é mais do que criar sua estrutura, escolher chaves e criar relacionamentos. É preciso também criar informação que sirva para documentar a função da existência daquela entidade . Assim como nas entidades, a definição de atributos deve ser feita de maneira clara, e valem as mesmas regras. Assim, as definições de atributos também pedem a mesma coisa: descrição, exemplo e comentários. Além disso, as definições devem ter, sempre que possível, regras de validação .
  • 45.
  • 46.
  • 47. OBRIGADO PELA PRESENÇA! DIEGO THOMAZ FLORES [email_address] www.ecrayon.com.br