Sistemas de Gerenciamento de Banco de Dados AULA: CRIAÇÃO DE BANCO DE DADOS REQUISITOS FUNCIONAIS E OPERACIONAIS PROF.: ANDRÉ LUIZ MONTEVECCHI Criação de Banco de Dados Programadores e gerentes de projeto frequentemente subestimam a importância da coleta e da compreesão dos requisitos de negócio no processo de desenvolvimento de softwares – com efeitos devastadores. Criação de Banco de Dados Estudos da indústria estimam que entre 35% a 50% das falhas de projeto estão relacionadas à falta de entrada do usuário, a requisitos incompletos ou à alteração dos requisitos. O Standish Group International Inc., no Chaos Report and Extreme Chaos Report, estimou que apenas 29% de todos os projetos foram bem sucedidos (finalizados a tempo, dentro do orçamento, com os recursos e funções requeridas). Entendendo os processos do negócio Definir o problema do negócio: Porque estou construindo esta solução? A melhor maneira de entender seus motivos é definir um problema de negócio que você resolverá. Formalize escrevendo um caso de negócio que descreve a necessidade do negócio. Inclua fatores como benefícios do negócio, custos esperados e riscos. Casos de negócio eficientes convencem a gerência de que o investimento no tempo e nos recursos está alinhado com as estratégias do negócio e é financeiramente viável. Entendendo os processos do negócio Coletar requisitos: Um requisito é uma descrição do que uma solução deve fazer. Podem ser descritos como funcionais ou operacionais. Requisitos funcionais são atributos que a solução de software precisa conter a fim de ser aceitável aos interessados. Entre as técnicas utilizadas para coletar requisitos estão as pesquisas, entrevistas, e observação dos usuários. Entendendo os processos do negócio Escrevendo os requisitos: É importante que você declare explicitamente os requisitos em um documento formal. Esse documento formal também é um canal de comunicação aberto com usuários. Entendendo os dados e seus tempos de vida Além dos requisitos funcionais, há um outro conjunto de requisitos: requisitos operacionais. Requisitos operacionais são atributos que uma solução deve possuir para que possam ser aceitáveis a partir da tecnologia da informação. Requisitos operacionais incluem disponibilidade, interoperabilidade, gerenciabilidade, desempenho, confiabilidade, escalabilidade e segurança. Entendendo os dados e seus tempos de vida Exemplos de requisitos operacionais: Os cálculos de folha de pagamento devem demorar menos de 15 minutos. O aplicativo estará disponível por meio da intranet aos usuários previamente autenticados. O aplicativo estará disponível e funcionará adequadamente 99% das vezes. Entendendo os dados e seus tempos de vida Uma maneira de avaliar os requisitos operacionais é analisar o impacto sobre o negócio se o requisito não for atendido. Por exemplo: Qual será o impacto sobre o negócio se o aplicativo não estiver disponível por três horas? Por três dias? Entendendo os dados e seus tempos de vida Requisitos operacionais: Disponibilidade; Interoperabilidade; Gerenciabilidade; Desempenho; Confiabilidade; Escalabilidade; Segurança. Disponibilidade A Disponibilidade refere-se à capacidade da solução, do sistema ou do componente de permanecer operacional pelo tempo necessário. Pode ser definida como o tempo que uma solução está disponível para uso. Interoperabilidade Os requisitos da interoperabilidade demando que o software tenha a capacidade de se comunicar com outros programas utilizando protocolos comuns ou formatos comuns de arquivos. No SQL SERVER 2005 temos os seguintes exemplos: SQL Server Integration Services SQL Reporting Services Gerenciabilidade A gerenciabilidade refere-se à capacidade de o software ser gerenciado ou controlado. Soluções gerenciáveis incluem definições da configuração, contadores de desempenho, logs de aplicativo e assim por diante. Desempenho Os requisitos de desempenho identificam a rapidez com que a solução deve completar um processo sob uma carga de trabalho particular. Há duas maneira de medir o desempenho: throughput e tempo de resposta. O throughput mede quanto trabalho um aplicativo pode realizar, e o tempo de resposta mede a quantidade de tempo entre a solicitação do usuário e o resultado dessa solicitação. Desempenho Um exemplo de requisito de desempenho é que uma home page deve carregar dentro de cinco segundos sob uma carga de 150 usuários. Então são duas medidas: cinco segundos (tempo de resposta) e um throughput implícito para tratar uma determinada quantidade de dados para uma carga de 150 usuários. Desempenho Você deve ter o desempenho em mente ao projetar um aplicativo porque alguns elementos que afetam o desempenho são difíceis de otimizar depois que um banco de dados está em produção. Desempenho Dicas importantes: Estabeleça os requisitos de desempenho para gerenciar as expectativas do usuário e do desenvolvedos. Desenvolva um plano de teste que verifique os requisitos de desempenho. Projete seu banco de dados apropriadamente e use a normalização para reduzir redundância dos dados. Otimize as consultas mais significativas e projete seus índices apropriadamente. Desempenho Dicas importantes: Algumas questões de desempenho podem ser resolvidas aumentando os recursos de hardware, mas aplicativos com sérios defeitos de projeto terão problemas de desempenho independentemente do quanto você aumenta o hardware. Confiabilidade Os requisitos de confiabilidade estabelecem os objetivos da qualidade do software que o ajudam a medir como os usuários e os aplicativos dependem da solução. A confiabilidade e a disponibilidade estão relacionadas, mas elas especificam os requisitos diferentemente. Do ponto de vista da confiabilidade, as causas de uma falha podem incluir não apenas a falta do serviço, mas também a provisão de serviços imprecisos. Confiabilidade Por exemplo, se um aplicativo calcular incorretamente o imposto sobre vendas sob certas condições, ele afetará a confiabilidade do software, mas não afetará a disponibilidade. Por outro lado, se um problema no HD resultar na indisponibilidade do aplicativo por dois ou três dias, a confiabilidade será afetada somente com uma falha, mas a disponibilidade será seriamente afetada. Escalabilidade Escalabilidade é a capacidade da solução de aumentar o throughput total (quantidade de trabalho) quando recursos de hardware são adicionados. Em um aplicativo escalável ideal, um aumento nos recuros de harware aumenta o throughput proporcionalmente. Escalabilidade Aplicativos da Internet e aplicativos que suportam modelos de negócios com uma alta probabilidade de crescimento econômico devem incluir os requisitos de escalabilidade. Segurança Os requisitos operacionais de segurança determinam como controlar o acesso dos usuários às informações. Prevendo o uso do banco de dados Na construção de softwares, você precisa estimar a quantidade de trabalho que o software e o hardware tratarão. Semelhante a um engenheiro que calcula o peso que uma ponte deve suportar, os desenvolvedores de software prevêem e analisam a carga de trabalho que o aplicativo deve tratar. Prevendo o uso do banco de dados Planejar o crescimento e a previsão do pico de uso de um aplicativo envolve testes extensos do desempenho e a mensuração do uso dos recursos e o throughput das transações sob cargas diferentes. Prevendo o uso do banco de dados Todas essas informações o ajudarão a decidir quais tecnologias de banco de dados seu aplicativo utilizará e o hardware que a solução exigirá.