Prévia do material em texto
} Um cliente lhe dá a seguinte missão: “Traga-me uma pedra”. } Quando você entrega a pedra.... ... o cliente diz: “Sim, mas ..., na verdade ..., o que eu queria era uma pequena pedra azul”. } Você entrega a pequena pedra azul, ... o cliente diz: “Sim, mas ..., na verdade ..., o que eu realmente queria era uma pequena pedra esférica e azul”. } Quando você lhe entrega uma pequena pedra esférica e azul, ... ... o cliente diz: “Sim, mas ..., na verdade ..., o que eu realmente queria era uma pequena pedra esférica de mármore azul”. } Quando você lhe entrega uma pequena pedra esférica de mármore azul, ... ... o cliente diz: “Era isso que eu queria”. } Talvez o cliente mudou o desejo sobre o que queria. } Porém ele está convencido de que expressou seus desejos claramente. } Mas na verdade, Foi o analista que não entendeu! t1 2 3 4 § Separação de um todo em seus elementos ou partes componentes. § Estudo pormenorizado de cada parte de um todo, para conhecer melhor sua natureza, funções, relações causas. § Portanto, o trabalho de análise é desenvolver estudos que geralmente partem de problemas complexos, na forma de sistemas, e que são melhor compreendidos quando são separados em partes menores. } A análise enfatiza a investigação do problema. } O objetivo da análise é levar o analista a investigar e a descobrir. } Pode-se dizer que o resultado da análise é o enunciado do problema, e que o projeto será a sua resolução. Problemas mal enunciados podem até ser resolvidos, mas a solução não corresponderá às expectativas. § A qualidade do processo de análise é importante porque um erro de concepção resolvido na fase de análise tem um custo; na fase de projeto tem um custo maior; na fase de implementação maior ainda, e na fase de implantação do sistema tem um custo muito alto. Mais da metade dos projetos de software que estão atualmente em andamento, já ultrapassaram o custo e o cronograma. 25% a 33% desses projetos serão cancelados antes que estejam finalizados. $$$$$ § A meta do trabalho de análise é identificar O QUE deve ser feito. Os estágios da análise de sistemas envolvem determinar: § as necessidades específicas de informações: os requisitos do software; § as funções de processamento de informações requeridas por cada atividade do sistema (entrada, processamento, saída, armazenamento e controle) Que tipo de problemas podemos enfrentar ao desenvolver um software? § Evolução tecnológica; § Especificação incorreta do sistema; § Metodologias inadequadas; § Restrições de pessoal, hardware e software. § Comunicação falha da equipe de trabalho. § Riscos não avaliados adequadamente. § Dificuldade de estimar prazos e recursos. § Conflito de objetivos. § Fraca compatibilidade entre as políticas da empresa com a área de informática. § Cultura da organização. § Depende da clareza do usuário: § É ele o responsável por mostrar ao analista, de maneira clara, quais requisitos o sistema deve atender. § Depende do entendimento do analista: § É ele o responsável por identificar e analisar os requisitos esperados pelo usuário. § Deve documentar de forma clara o seu trabalho, para que os consumidores do mesmo saibam identificar os requisitos esperados pelos usuários. O objetivo de todo sistema é atender a um conjunto de requisitos, as necessidades que o sistema deve satisfazer. } Requisitos de um sistema são descrições dos serviços que devem ser fornecidos por esse sistema e as suas restrições operacionais (SOMMERVILLE, 2007). } Um requisito de um sistema é uma característica do sistema ou a descrição de algo que o sistema é capaz de realizar para atingir seus objetivos (PFLEEGER, 2004). } Um requisito é alguma coisa que o produto tem de fazer ou uma qualidade que ele precisa apresentar (ROBERTSON; ROBERTSON, 2006). } Requisito é uma função, restrição ou outra propriedade que precisa ser fornecida, encontrada ou atendida para satisfazer às necessidades do usuário do futuro sistema (Abbott 86). 20 § O software deve possibilitar o cálculo dos gastos diários, semanais, mensais e anuais com pessoal; § O software deve emitir relatórios de compras a cada quinze dias; § O software deve ser operacionalizado no sistema Linux; § O tempo de desenvolvimento não deve ultrapassar seis meses. } Requisitos do Usuário: São declarações, em linguagem natural e também em diagramas, sobre as funções que o sistema deve fornecer e as restrições sob as quais deve operar; } Requisitos de Sistema: Estabelecem detalhadamente as funções e as restrições de sistema; 22 Requisito do usuário 1. O Sistema deve gerar relatórios gerenciais mensais que mostrem o custo dos medicamentos prescritos por cada clínica durante aquele mês. Requisitos do Sistema 1. No último dia útil de cada mês deve ser gerado um resumo dos medicamentos prescritos, seus custos e as prescrições de cada clínica; 2. Após 17:30h do último dia útil do mês, o sistema deve gerar automaticamente o relatório para impressão; 3. Um relatório será criado para cada clínica, listando os nomes dos medicamentos, o número total de prescrições, o número de doses prescritas e o custo total. Requisitos de Usuário Requisitos de Sistema Gerentes clientes Usuários finais do sistema Engenheiros clientes Gerentes contratantes Arquitetos de sistema Usuários finais do sistema Engenheiros clientes Arquitetos de sistema Desenvolvedores de software 25 Requisitos Funcionais: São declarações de funções que o sistema deve fornecer, como o sistema deve reagir a entradas específicas e como deve se comportar em determinadas situações. Requisitos Não Funcionais: São restrições sobre os serviços ou as funções oferecidas pelo sistema. Os requisitos funcionais são aqueles que descreve o que tem que ser feito pelo sistema Os requisitos não funcionais descrevem como deve ser feito. § Descreve funcionalidade e serviços do sistema § Depende do § Tipo do software § Usuários esperados § Tipo do sistema onde o software é usado São declarações que o sistema deve fornecer, como o sistema deve reagir a entradas específicas e como deve se comportar em determinadas situações. O software deve possibilitar o cálculo dos gastos diários, semanais, mensais e anuais com pessoal; O software deve emitir relatórios de compras a cada quinze dias; Os usuários devem poder obter o número de aprovações, reprovações e trancamentos em todas as disciplinas por um determinado período de tempo. “O usuário deve conseguir fazer buscas em todo o acervo de materiais bibliográficos.” “O sistema deve permitir o cadastro dos fornecedores da loja” “O sistema deve utilizar os dados obtidos a partir dos sensores e interpretá-los para realizar a navegação” IMPRECISÃO DE REQUISITOS § Requisito funcional: § O sistema deve fornecer telas apropriadas para o usuário ler os documentos no repositório de documentos. § Problemas surgem quando os requisitos não são precisamente definidos; § Requisitos ambíguos podem ser interpretados de maneiras diferentes pelos desenvolvedores e usuários. § Considere o termo ‘telas apropriadas’ § Intenção do usuário – tela de propósito especial para cada tipo diferente de documento; § Interpretação do desenvolvedor – fornece uma tela de texto que mostra o conteúdo do documento. § Em princípio, requisitos devem ser ambos, completos e consistentes; § Completeza: § Eles devem incluir descrições de todos os recursos requeridos. § Consistência: § Não deve haver conflitos ou contradições nas descrições dos recursos de sistema. § Na prática, é impossível produzir um documento de requisitos completo e consistente. 33 O sistema deve ser capaz de armazenar todas as informações sobre seus clientes(RG, CPF, Nome, data de nascimento e endereço) no banco de dados. O sistema deverá atribuir um identificador único (código) para cada pedido de produtos. O sistema deverá cancelarautomaticamente um orçamento que tenha sido feito há mais de 30 dias e não tenha sido transformado em venda. 34 Definem propriedades e restrições de sistema; Descrevem como deve ser feito; Em geral se relacionam com padrões de qualidade, como: confiabilidade, performance, robustez, usabilidade, etc.; São muito importantes, pois definem se o sistema será eficiente para a tarefa que se propõe a fazer ou não. 35 A base de dados deve ser protegida para acesso apenas de usuários autorizados; O tempo de resposta do sistema não deve ultrapassar 30 segundo; O software deve ser operacionalizado no sistema Linux; O tempo de desenvolvimento não deve ultrapassar seis meses. Sommerville 9ª. Edição REQUISITOS NÃO- FUNCIONAIS EXEMPLOS § Requisitos do Produto § O sistemas deve ser robusto e tolerante a falhas, de forma a continuar sua operação ou abortar de forma segura o modo autônomo caso haja falha de um ou mais sistemas essenciais § Requisitos Organizacionais § O processo de desenvolvimento do sistema e os produtos liberáveis devem estar em conformidade com o padrão empresarial XYZ. § Requisitos Externos § Os operadores do sistema não devem ter acesso a qualquer dado que não necessitem. § Usabilidade: § Requisitos associados à facilidade de uso da aplicação; § Definem o nível de dificuldade que o usuário terá para executar as operações; § Estão relacionados com a interação do usuário junto ao sistema; § Normalmente associados a interface, mas podem estar associado a outros elementos como: interação com o teclado, tempo de treinamento, nível de conhecimento necessário para interação entre outros; § Ex.: Em um software infantil, é necessário que haja um investimento grande em cores e objetos grandes para facilitar a interação das crianças. § Confiabilidade: § Associados à freqüência e severidade de falhas da aplicação e habilidade de recuperação das mesmas; § São requisitos não funcionais de confiabilidade: § Tempo médio de falhas; § Probabilidade de indisponibilidade; § Taxa de ocorrência de falhas; § Tempo de reinício após falha; § Percentual de eventos causando falhas; § Probabilidade de corrupção de dados após falha. § Exemplo: § O sistema deverá garantir a integridade da matrícula efetuada pelo aluno. § Desempenho: § Associados à eficiência, uso de recursos e tempo de resposta da aplicação (Transações processadas/seg, Tempo de resposta do usuário/evento entre outros) § Exemplos: § Uma consulta aos dados do empregado não pode demorar mais de 10 milésimos; § Ao registrar um item sendo vendido, a descrição e preço devem aparecer em 1 segundo; § A operação de cálculo de salário de empregados, não deve exceder 20 segundos por empregado; § Segurança: § Associados à integridade, privacidade e autenticidade dos dados da aplicação; § Exemplos: § A base de dados deve ser protegida para acesso apenas de usuários autorizados; § Somente chefes de setor podem efetuar os pagamentos de fornecedores; § Um log de todas as operações dos usuários; § Todas as operações do sistema que envolverem aprovação de despesas, devem ser autorizadas através de re-autenticação com usuário e senha e devem respeitar os limites de competência. § Implantação: § Associados ao modo como será implantada a solução, ordem de instalação dos Pacotes ou as configurações iniciais do sistema. § Exemplos: § O sistema “contador de carneirinhos” precisa que o servidor, responsável pelo gerenciamento da contagem, seja previamente instalado na máquina servidora e os clientes, responsáveis por contar os carneirinhos, instalados nas máquinas dos usuários e configurados, conforme a tabela de configuração. § Padrões: § Associados a padrões ou normas que devem ser seguidos pela aplicação ou pelo seu processo de desenvolvimento; § Exemplos: § O sistema deve atender ao padrão de desenvolvimento da empresa, respeitando locais e nomes para variáveis, funções, parâmetros e utilizar os objetos e funções comuns descritas na mesma; § O sistema deverá permitir a compra de materiais, atendendo as necessidades descritas pelos usuários, sem desrespeitar a lei 8.666. § Hardware e software: § Associados a restrições de hardware e software usados para desenvolver ou executar a aplicação; § Exemplos: § O sistema precisará ser executado nas plataformas operacionais: Microsoft Windows XP, Windows 7, Windows NT e Windows 8; § O sistema precisará de uma máquina, com no mínimo 2GB de RAM, com o processador de 2.8 Mghz ou superior. § Requisitos Não-Funcionais podem ser muito difíceis de serem declarados precisamente. § Requisito Não-Funcional Verificável § Declaração que usa alguma métrica que possa ser objetivamente testada. § Exemplo: § Controladores experientes devem ser capazes de usar todas as funções do sistema depois de duas horas de treinamento. Depois desse treinamento, o número médio de erros feito por um usuário experiente não deve exceder dois erros por dia. § Requisitos Não-Funcionais podem ser muito difíceis de serem declarados precisamente. § Podem ser utilizadas “Metas”. § Transmitem as intenções dos usuários do sistema. § Exemplo: O sistema de controle de aeronave deve ser fácil de ser usado por controladores experientes e deve estar organizado de tal maneira que os erros dos usuários sejam minimizados. § Em sistemas complexos são comuns conflitos entre diferentes Requisitos Não-Funcionais. § Exemplo: Sistema para aeronaves. § Para minimizar o peso, o número de chips do sistema deve ser minimizado. § Para minimizar o consumo de energia, chips de menor potência devem ser usados. § Entretanto, usar chips de menor potência pode significar que mais chips devem ser usados. Qual é o requisito mais crítico? Ignorar um grupo de clientes Ignorar um único cliente Omitir um grupo de requisitos Permitir inconsistências entre grupos de requisitos Aceitar requisito inadequado Aceitar requisito incorreto, indefinido, ou impreciso Aceitar um requisito ambíguo e inconsistente 1. Identifique os requisitos funcionais e não funcionais. 2. Aponte possíveis incertezas nessa descrição. § “Um sistema automático de emissão de passagens vende passagens de trem. A partir de uma lista de possíveis destinos, os usuários escolhem seu destino e apresentam um cartão de crédito e um número de identificação pessoal. Os destinos possíveis devem ser organizados de modo a facilitar a escolha. Após a escolha do destino, o sistema deve responder prontamente se há espaço disponível no trem. A passagem é emitida e o custo dessa passagem é incluído em sua conta do cartão de crédito. Quando o usuário pressiona o botão para iniciar, uma tela de menu com os possíveis destinos é ativada, juntamente com uma mensagem para que o usuário selecione um destino. Uma vez selecionado um destino, pede-se que os usuários insiram seu cartão de crédito. A validade do cartão é checada e o usuário então deve fornecer um número de identificação pessoal. Quando a transação de crédito é validada, a passagem é emitida. O formato do bilhete de passagem deve seguir ao padrão definido pelo Sistema Nacional de Tráfego Ferroviário”. EXERCÍCIOS: RESPOSTAS § 1- Requisitos funcionais (RF) § RF1: listar os possíveis destinos § RF1: Quando o usuário pressiona o botão para iniciar, uma tela de menu com os possíveis destinos é ativada, juntamente com uma mensagem para que o usuário selecione um destino. § RF2: receber pagamento de cartão de crédito § RF2: Uma vez selecionado um destino, pede-se que os usuários insiram seu cartão de crédito. § RF3: verificar se existem vagas no destino escolhido § RF3: O sistema deve informar se existem vagas no destino escolhido § RF4: checar a validade do cartão e receber número de identificação pessoal § RF4: A validade do cartão é checada e o usuário então deve fornecer um número de identificação pessoal. § RF5: emitir passagem e debitar custo no cartão de crédito § RF5: Quando a transaçãode crédito é validada, a passagem é emitida e o custo dessa passagem é incluído em sua conta do cartão de crédito. EXERCÍCIOS: RESPOSTAS § 1- Requisitos não funcionais (RNF): § RNF do Produto § RNF1: Usabilidade: facilidade de uso: RNF1: As telas devem facilitar a escolha do destino § RNF2: Desempenho: tempo de resposta adequado: § RNF2: O tempo de resposta sobre vaga no trem deve ser adequado § RNF Organizacional § RNF3: Padrão definido pelo SNTF § RNF3: O formato do bilhete de passagem deve seguir ao padrão definido pelo Sistema Nacional de Tráfego Ferroviário”. 2- APONTE POSSÍVEIS INCERTEZAS NESSA DESCRIÇÃO. “Um sistema automático de emissão de passagens vende passagens de trem. Os usuários escolhem seu destino e apresentam um cartão de crédito e um número de identificação pessoal. A passagem é emitida e o custo dessa passagem é incluído em sua conta do cartão de crédito. Quando o usuário pressiona o botão para iniciar, uma tela de menu com os possíveis destinos é ativada, juntamente com uma mensagem para que o usuário selecione um destino. Uma vez selecionado um destino, pede-se que os usuários insiram seu cartão de crédito. A validade do cartão é checada e o usuário então deve fornecer um número de identificação pessoal. Quando a transação de crédito é validada, a passagem é emitida. O formato do bilhete de passagem deve seguir ao padrão definido pelo Sistema Nacional de Tráfego Ferroviário”. § Definição dos usuários e requisitos funcionais e não funcionais do sistema § Equipe de 3 pessoas § Definição dos usuários e requisitos funcionais e não funcionais do sistema § Equipe de 3 pessoas