Baixe o app para aproveitar ainda mais
Prévia do material em texto
Análise de Sistemas aula 03 Jobson Luiz Massollar jobson.luiz@gmail.com Análise de Sistemas 2 Requisitos As informações coletadas durante a elicitação devem ser registradas em um documento (Documento de Visão ou Documento de Requisitos). Entretanto, é preciso definir algumas boas práticas para o registro desses requisitos. É importante destacar que as informações, nessa fase do desenvolvimento, ainda estão definidas em um alto grau de abstração e estão diretamente relacionadas às demandas ou necessidades definidas pelos stakeholders. Análise de Sistemas 3 Requisitos Funcionais Um padrão para registro de requisitos comumente sugerido na literatura pode ser visto a seguir: O sistema [não] deve [verbo + objeto | frase verbal] + [agente] + [condições] Análise de Sistemas 4 Requisitos Funcionais onde: Verbo é um verbo simples que expressa a funcionalidade daquele requisito. Dependendo do tipo do verbo, objeto pode ser um objeto direto ou um objeto direto seguido de um objeto indireto. Frase verbal é uma frase que expressa a funcionalidade do requisito. Análise de Sistemas 5 Requisitos Funcionais onde: Agente é a identificação de um agente relacionado com o requisito. Esse complemento pode ser descrito por um objeto indireto. Agente pode ser uma pessoa, uma instituição, um grupo ou um dispositivo físico externo ao software. Condições são sentenças que estabelecem situações específicas nas quais o requisito é válido. Análise de Sistemas 6 Requisitos Funcionais Como verbo podemos ter várias possibilidades. Alguns exemplos: permitir, apoiar, calcular, enviar, gerar, importar, exportar, controlar, processar, apresentar, transmitir, informar, manter, atender. Análise de Sistemas 7 Requisitos Funcionais Exemplos: O sistema deve emitir o documento de cobrança para o cliente no último dia útil do mês. O sistema deve permitir que o usuário realize a inscrição no processo seletivo dos cursos oferecidos. O sistema deve permitir o cadastramento de clientes. O sistema deve alterar o estado do DVD de disponível para emprestado, quando o DVD for alugado. O sistema deve registrar a data e hora nas operações de empréstimo e retorno de livros. O sistema deve solicitar, obrigatoriamente, CPF, nome e endereço do cliente ao realizar o cadastramento. Análise de Sistemas 8 Requisitos Funcionais Em algumas ocasiões é preciso definir requisitos de qualidade (não funcionais) que restringem os requisitos funcionais. Nesse caso, devemos acrescentar explicitamente essas restrições: O sistema [não] deve [verbo + objeto | frase verbal] + [agente] + [condições] + [restrições] Análise de Sistemas 9 Requisitos Funcionais Exemplos: O sistema deve emitir o recibo para o cliente em no máximo 5 segundos. O sistema deve permitir que, em 80% dos casos, o cliente realize a operação de saque em conta corrente em no máximo 2 minutos. O sistema deve estar disponível aos usuários 24 horas por dia, 7 dias da semana, não podendo ficar mais de 5% desse tempo indisponível. Análise de Sistemas 10 Requisitos Funcionais Conforme visto anteriormente, a técnica 5W1H oferece um checklist de perguntas que nos ajudam a avaliar se todas as informações relevantes estão sendo capturadas: 1. Why: porque é assim ? (justificativa) 2. What: o que é isso ? (conceitos) 3. Where: onde é feito ? (local) 4. When: quando é feito ? (tempo, pré-condições, eventos) 5. Who: por quem é feito ? (responsabilidade) 6. How: como é feito (método, técnica ou ferramenta) Análise de Sistemas 11 Requisitos Funcionais "A cafeteira deve ser feita de aço" "Por que a cafeteria deve ser feita de aço ?" "Qual a razão para ser feita com esse material ?" "Existe uma explicação para isso ?" A ideia é tentar fazer o usuário verbalizar o que há por trás dessa demanda. Análise de Sistemas 12 Requisitos Funcionais "Porque se for de vidro pode quebrar" Qual o requisito real aqui ? Análise de Sistemas 13 Requisitos Funcionais "Porque se for de vidro pode quebrar" Qual o requisito real aqui ? "A cafeteira deve ser feita de material inquebrável" Poder ser: Plástico Aço ... Análise de Sistemas 14 Requisitos Funcionais "Porque se for de vidro pode quebrar" Qual o requisito real aqui ? "A cafeteira deve ser feita de material inquebrável" Poder ser: Plástico Aço ... Requisto ou necessidade Possíveis soluções Análise de Sistemas 15 Requisitos Funcionais "A cafeteira deve ter uma luz vermelha que pisca quando está ligada esquentando a água. Quando a água chega na temperatura ideal a luz deve ficar ligada (sem piscar)" Quais seriam as perguntas do tipo "por que" ? Quais são os requisitos reais ? Análise de Sistemas 16 Requisitos Funcionais "A cafeteira deve ter uma luz vermelha que pisca quando está ligada esquentando a água. Quando a água chega na temperatura ideal a luz deve ficar ligada (sem piscar)" Quais seriam as perguntas do tipo "por que" ? Quais são os requisitos reais ? A cafeteria deve ter um indicador que avisa ao usuário quando a água está sendo esquentada. A cafeteira deve ter um indicador que avisa ao usuário que a temperatura da água atingiu o ponto ideal. Análise de Sistemas 17 Requisitos Não Funcionais Usuários geralmente não são bons para verbalizar requisitos não funcionais objetivos e mensuráveis. Entretanto, eles conhecem as razões para querer um sistema com "alto desempenho", "amigável", "flexível", "portável", etc. Assim, devemos procurar entender a necessidade real de forma mais objetiva, onde os critérios de avaliação sejam explícitos. Análise de Sistemas 18 Requisitos Não Funcionais Imagine no contexto de um sistema de caixa eletrônico exista um requisito descrito como: "o sistema deve ser fácil de aprender" Esse tipo de requisito é de pouca utilidade, pois não informa: Como avaliar ou medir isso ? Em quais tarefas/atividades isso é importante ? Para que tipo de usuário ? Quais as pré-condições ? Análise de Sistemas 19 Requisitos Não Funcionais Refraseando a especificação anterior: O sistema deve permitir que 70% dos clientes sem nenhum treinamento prévio realize a operação de saque em até 2 minutos, desde a inserção do cartão até a retirada do dinheiro. Análise de Sistemas 20 Requisitos Não Funcionais Refraseando a especificação anterior: O sistema deve permitir que 70% dos clientes sem nenhum treinamento prévio realize a operação de saque em até 2 minutos, desde a inserção do cartão até a retirada do dinheiro. Qual a pré- condição Quais usuários Como avaliar Qual a tarefa Análise de Sistemas 21 Requisitos Não Funcionais Requisitos não funcionais podem ser classificados segundo o padrão ISO: Característica Definição 1. Desempenho Desempenho relativo à quantidade de recursos utilizada sob as condições estabelecidas. 2. Compatibilidade Nível em que um produto, sistema ou componente pode trocar informações com outros produtos, sistemas ou componentes e/ou realizar suas funções requeridas, enquanto compartilha o mesmo ambiente de software e hardware. 3. Usabilidade Nível em que um produtoou sistema pode ser utilizado pelos usuários especificados para atingir objetivos específicos com eficácia, eficiência e satisfação em um determinado contexto de uso. 4. Confiabilidade Nível em que um sistema, produto ou componente realiza funções especificadas sob determinadas condições por um período de tempo específico. 5. Segurança Nível em que um produto ou sistema protege a informação e os dados de forma que pessoas ou outros produtos e sistemas tenham o nível de acesso apropriado aos dados e os devidos tipos e níveis de autorização. 6. Manutenibilidade Nível de eficácia e eficiência com a qual um produto ou sistema pode ser modificado pelos potenciais mantenedores. 7. Portabilidade Nível de eficácia e eficiência com a qual um sistema, produto ou componente pode ser transferido de um hardware, software ou ambiente operacional para outro. Análise de Sistemas 22 Requisitos Não Funcionais Exemplos: Desempenho • O sistema deve suportar até 2000 usuários simultâneos acessando o banco de dados central a qualquer momento, e até 500 usuários simultâneos acessando os serviços locais a qualquer momento. • O sistema deve prover acesso aos dados legados armazenados em banco de dados com não mais de 10 segundos de latência. • O sistema deve ser capaz de completar 80% das suas transações em até 2 minutos. Compatibilidade • O sistema deve operar juntamente com sistemas legados existentes, os quais operam no IBM zEnterprise System (main frame). • O sistema deve prover interface com o sistema de pagamento, o qual opera no IBM zEnterprise System (main frame). • A interface baseada na web para o sistema deve ser compatível com a máquina virtual Java 7. Análise de Sistemas 23 Requisitos Não Funcionais Exemplos: Usabilidade • A interface com o usuário do sistema deve ser projetada para fácil utilização e apropriada para um público-alvo com conhecimentos em informática, sem treinamento adicional no sistema. • Toda funcionalidade do sistema deve ter uma ajuda online integrada para o usuário. Esta ajuda deve incluir instruções passo- a-passo de como utilizar o sistema. Ainda, deve incluir definições para termos e acrônimos. • A interface com usuário "desktop" deve possuir padrões de utilização compatível com Windows 7. Confiabilidade • O sistema deve estar disponível 24 horas por dia, 7 dias por semana. Não podendo permanecer mais de 4% do tempo indisponível. • O tempo médio entre falhas deve ser maior que 300 horas. Análise de Sistemas 24 Requisitos Não Funcionais Exemplos: Segurança • O sistema deve prover um mecanismo de segurança capaz de identificar o usuário e permitir que este acesse somente as suas informações e informações públicas (de uso compartilhado). • O sistema deve manter as informações confidenciais sob criptografia ao trafegá-las em rede ou armazená-las em repositório/banco de dados. Manutenibilidade • Upgrades para a aplicação cliente do sistema devem ser baixados de um servidor disponível na internet. Esta característica permite fácil acesso às atualizações do sistema. Portabilidade • As funcionalidades do sistema disponibilizadas por meio de interface baseada em páginas web deve funcionar corretamente, sem prejudicar a apresentação e a interação, tanto em computadores rodando Windows, Linux e Mac OS, quanto em tablets e celulares rodando iOS e Android. Análise de Sistemas 25 Requisitos Exemplo 1: crie uma lista de requisitos funcionais para o seguinte cenário: Um dentista quer automatizar o atendimento aos pacientes de seu consultório. Quando um paciente deseja marcar uma consulta, é verificada a agenda do dentista e oferecido o primeiro horário (data e hora) disponível, de acordo com o que o paciente deseja. Se o paciente concordar com o horário, é registrado na agenda o nome do paciente e o horário combinado. Os pacientes já cadastrados têm a ficha de consulta preenchida automaticamente. Os pacientes novos devem fornecer seus dados de cadastro: RG, endereço, telefone, data nascimento, profissão. A consulta consiste de dois tipos de serviços: de limpeza e restauração, ou exames para diagnóstico. Na realização da consulta, o dentista faz o registro do serviço efetuado em detalhes e, se necessário, o paciente marca uma nova consulta. O dentista pode pesquisar as fichas de seus pacientes por nome ou data de consultas. Diariamente, é impressa a agenda com dois dias de antecedência para que os pacientes confirmem a consulta. Também pode ser impressa a agenda do dia ou da semana. As agendas deverão ser listadas na tela com a possibilidade de imprimir em papel, se necessário. Análise de Sistemas 26 Requisitos Exemplo 1: crie uma lista de requisitos funcionais para o seguinte cenário: O sistema deve... 1. permitir a marcação da consulta dos pacientes a) oferecer o primeiro horário disponível durante a marcação da consulta b) registrar o nome do paciente e data/horário escolhido na agenda de consulta c) preencher a fica de paciente já cadastrados 2. permitir o cadastramento de novos pacientes a) solicitar RG, endereço, telefone, data de nascimento e profissão durante o cadastramento de pacientes 3. permitir o registro do serviço executado na consulta com dois tipos de serviço (limpeza e restauração ou exame) 4. permitir a consulta da ficha dos pacientes por nome ou data da consulta 5. permitir a listagem da agenda de consultas de um dia específico da semana ou da semana toda 6. permitir a impressão da agenda consultada Análise de Sistemas 27 Requisitos Exemplo 2: crie uma lista de requisitos funcionais para o seguinte cenário: Eu gostaria de desenvolver um sistema automático de venda e emissão de passagens de ônibus, como um quiosque de autoatendimento. Imagino que o sistema deva funcionar da seguinte forma: quando o usuário pressiona o botão 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, data, hora e assento, pede-se que o usuário insira seu cartão de crédito. A validade do cartão é checada e o usuário digita a senha. Quando a transação de crédito é validada a passagem é emitida e o seu custo é debitado do cartão de crédito. Também é preciso guardar todas as informações sobre as passagens emitidas. Análise de Sistemas 28 Requisitos Exemplo 2: crie uma lista de requisitos funcionais para o seguinte cenário: O sistema deve... 1. permitir que o cliente compre passagens de ônibus. a) solicitar os dados da viagem (destino, data e hora da viagem e assento) b) solicitar o cartão de crédito para realizar o pagamento da passagem c) solicitar a senha do cartão para obter a autorização de compra d) emitir as passagens no ato da compra, após a confirmação do pagamento e) registrar todas as informações relacionadas à compra da passagem Análise de Sistemas 29 Requisitos Exemplo 3: crie uma lista de requisitos funcionais para o seguinte cenário: Uma empresa de transporte de cargas recebe solicitação de transporte de volumes por telefone. Quando recebe um chamado, é anotado o cliente, a quantidade de volumes, o endereço para busca e o endereço para entrega. Neste momento é emitido uma solicitação de orçamento de frete dos volumes, em duas vias. Uma das vias do orçamento de fretes dos volumes é entregue a um setor de alocação de caminhões, que verifica a possibilidade de busca e entrega da carga. A outra vai para o setor financeiro, que faz o cálculo do custo do frete. Feito isso, o cliente recebe uma estimativa de prazo e custo e autoriza ou não ao transporte. Caso o transporte seja autorizado, é emitido um romaneio detransporte em duas vias. Uma das vias segue com a carga e a outra vai para o cliente para que este efetue o pagamento do frete. Após efetuado o pagamento é recebida uma confirmação de frete pago, que deve ser armazenada para posteriores consultas. Após entregue a carga, essa informação é recebida e deve ser registrada. Análise de Sistemas 30 Requisitos Exemplo 3: crie uma lista de requisitos funcionais para o seguinte cenário: O sistema deve... 1. permitir que o cliente crie uma solicitação de transporte a) solicitar os dados do cliente, endereços de busca e entrega e quantidade de volumes 2. emitir uma solicitação de orçamento para os setores de alocação de caminhão e financeiro 3. permitir que o setor de alocação de caminhão defina se é possível ou não atender a uma solicitação de transporte 4. permitir que o setor financeiro registre o valor do frete relativo a uma solicitação de transporte 5. permitir o envio do orçamento para o cliente 6. permitir que o cliente autorize ou não o transporte a partir do orçamento recebido 7. permitir a emissão do romaneio em duas vias, caso o transporte tenha sido autorizado pelo cliente 8. permitir o registro do pagamento do frete 9. permitir o registro de carga entregue Análise de Sistemas 31 Requisitos Exemplo 4: crie uma lista de requisitos funcionais para o seguinte cenário: Ao chegar na veterinária, o dono do animal deve se identificar. Caso este não esteja registrado, a secretária deverá cadastrar os dados pessoais do cliente, bem como do seu animal. Ao consultar um cliente, uma listagem de todos os animais por ele possuídos, será apresentada juntamente com seus dados pessoais. Caso o animal para o qual o cliente deseja marcar uma consulta não esteja registrado, a secretária deverá cadastrá-lo. Ao selecionar um animal, a secretária pode visualizar o histórico de tratamentos já realizados ou ainda em andamento. A partir da listagem de tratamentos, a secretária pode selecionar um destes, o que fará surgir juntamente com as informações gerais do tratamento, todas as consultas já realizadas durante o mesmo, permitindo também que outra consulta possa ser marcada. Sempre que for registrar uma nova consulta, a secretária deve informar a data e a hora para o cliente. Na consulta, o veterinário informa os sintomas gerais e o tratamento. Análise de Sistemas 32 Requisitos Exemplo 4: crie uma lista de requisitos funcionais para o seguinte cenário: O sistema deve... 1. permitir o cadastramento do cliente 2. permitir o cadastramento dos animais de um cliente 3. permitir a consulta de um cliente com seus respectivos animais 4. permitir a visualização do histórico de tratamentos de um animal (realizados ou em andamento) 5. permitir a visualização das consultas associadas a um tratamento 6. permitir a marcação de uma consulta para um animal a) solicitar a data e hora da consulta 7. permitir que o veterinário informe os sintomas e o tratamento. Análise de Sistemas 33 Métodos de Análise Principais abordagens para análise: Orientado a funções • Função como foco principal do desenvolvimento (utilização de diagrama de fluxo de dados) Orientado a dados • Dados como foco do desenvolvimento • Mapeamento de estruturas que representam estes dados (utilização de diagrama de entidade e relacionamento) Orientado a objetos • Combinação de dados e funções • Abstrai o mundo real em objetos Análise de Sistemas 34 Métodos de Análise Metodologias de Análise: Metodologia Abordagem Ferramentas Análise tradicional Funcional Textos Fluxogramas Análise Estruturada Funcional Dados DFD (Diagrama de Fluxo de Dados) DD (Dicionário de Dados) Especificação de Processos Diagrama de Estrutura de Dados Análise Essencial Funcional Dados Controle Tabela de Eventos Diagrama de Contexto DFD DD (Dicionário de Dados) Especificação de Processos DER (Diagrama de Entidades e Relacionamentos) DTE (Diagrama de Transição de Estados) Análise OO Funcional e Dados de forma unificada UML Análise de Sistemas 35 Métodos de Análise Análise Estruturada/Essencial O sistema é constituído por um conjunto de programas que executam processos (funções) que, por sua vez, manipulam e transformam dados. Conjunto de técnicas e ferramentas para análise que se apoia na construção top-down do sistema por refinamentos sucessivos de suas funções ou processos. Análise de Sistemas 36 Métodos de Análise Análise Orientada a Objetos O mundo real é constituído de objetos que possuem características e comportamentos. Exemplos: Cão: • Características: raça, cor, idade, ... • Comportamentos: latir, andar, dormir, ... Carro: • Características: cor, modelo, número de portas, ... • Comportamentos: andar, parar, abastecer, acender faróis, ... Aluno: • Características: nome, matrícula, endereço,... • Comportamentos: matricular, realizar avaliação, frequentar aula, ... Análise de Sistemas 37 Métodos de Análise Análise Orientada a Objetos O sistema é constituído por um conjunto de objetos, que possuem dados e funções, e que interagem entre si. Conjunto de técnicas e ferramentas para análise que se apoia na: • Definição dos objetos do domínio do problema e seu funcionamento interno (dados e funções); • Definição de como esses objetos se relacionam e interagem. Análise de Sistemas 38 Métodos de Análise Análise Estruturada/Essencial x Análise Orientada a Objetos Sistema da Biblioteca Análise Estruturada Decomposição por funções ou processos • Registrar empréstimos • Calcular multa • Administrar livros • Cadastrar alunos Análise OO Decomposição por objetos ou conceitos do domínio • Livro • Periódico • Aluno • Empréstimo Análise de Sistemas 39 Análise Essencial Ferramentas: 1. Tabela de Eventos Identifica quais eventos do mundo exterior o sistema deve responder. Ajuda a delimitar as fronteiras do sistema. Análise de Sistemas 41 Análise Essencial Ferramentas: 3. Diagrama de Fluxo de Dados (DFD) Gráfico que representa a rede de processos (funções) do sistema e dos dados que fluem entre esses processos. Mostra o que o sistema deve fazer sem detalhar como deve ser feito. O DFD é composto de: • Processos • Entidades • Fluxo de dados • Repositório de dados Análise de Sistemas 42 Análise Essencial Ferramentas: 3. Diagrama de Fluxo de Dados (DFD) Análise de Sistemas 43 Análise Essencial Ferramentas: 4. Dicionário de Dados (DD) Definição textual dos elementos que compõem os modelos do sistema: fluxos de dados, depósitos de dados e processos. Componente Significado pedido_reserva nome + telefone + período período data_inicio_hospedagem + data_fim_hospedagem dados_reserva nome + telefone + tipo + situação tipo [simples | duplo | triplo | quádruplo] situação [efetivada | cancelada | reservada | quitada] reservas nome + telefone + tipo + período + situação Análise de Sistemas 44 Análise Essencial Ferramentas: 5. Especificação dos Processos Definição textual ou gráfica de como os processos devem realizar as tarefas Essa especificação pode ser realizada através de várias técnicas: • Linguagem estruturada • Pré e pós-condições • Tabelas e árvores de Decisão • Fluxogramas • Diagramas de Nassi-Shneiderman • etc. Análise de Sistemas 45 Análise Essencial Ferramentas: 5. Especificação dos Processos Análisede Sistemas 46 Análise OO Ferramentas: São utilizados modelos para representar: • A estruturas dos objetos • O comportamento dos objetos • Os relacionamentos entre os objetos No início existiam várias métodos propostos para essas representações: • Coad & Yourdon • Shlaer & Mellor • Wirfs-Brock • Booch • Rumbaugh • Jacobson Análise de Sistemas 47 Análise OO Ferramentas: São utilizados modelos para representar: • A estruturas dos objetos • O comportamento dos objetos • Os relacionamentos entre os objetos No início existiam várias métodos propostos para essas representações: • Coad & Yourdon • Shlaer & Mellor • Wirfs-Brock • Booch • Rumbaugh • Jacobson • Em 1995, Booch, Rumbaugh e Jacobson unificaram seus métodos (Booch, OOSE e OMT). • Em 1997 é lançada a UML 1.1 • A UML é hoje o padrão de fato para modelagem de sistemas usando o paradigma OO Análise de Sistemas 48 Análise OO Problemas: Usuários não pensam seus problemas de forma orientada a objetos. Requisitos não são orientados a objetos. É preciso fazer uma ponte entre esses dois mundos: Identificar os objetos a partir das informações coletadas dos usuários; Descrever o comportamento e a estrutura do sistema: • Casos de Uso • Modelos conceituais
Compartilhar