Análise e Projeto de Sistemas Aula 4 Professor: Italo Rodrigues Castro O que são Requisitos? Condição ou capacidade necessitada por um usuário para resolver um problema ou atingir um objetivo. Uma condição ou capacidade que deve ser cumprida ou possuída por um sistema ou componente do sistema para satisfazer um contrato, padrão, especificação ou outro documento formal imposto. Por que os Requisitos são importantes? O que acontece quando os Requisitos não são satisfeitos? - Atraso e custos além do orçamento. - Os clientes e usuários finais podem não ficar satisfeitos com o sistema. - O sistema pode ficar inviável de ser utilizado. - O custo de manter e evoluir o sistema pode ser muito significativo. Por que os Requisitos são importantes? Requisitos devem ser especificados antes de se tentar construir o produto. - Falta da definição de requisitos ou requisitos incorretos levam a um produto que não atende às necessidades dos usuários. - 60% dos erros são criados no projeto dos sistemas. Fases do processo de desenvolvimento de Software Problemas com o Desenvolvimento de Software Softwares... - Nem sempre fazem o que deveriam fazer. O desenvolvimento estoura o cronograma e custo. o Sintomas - Não adequação ao especificado (Requisitos Incompletos). - Baixa Qualidade. Problemas com o Desenvolvimento de Software Causas - Má compreensão dos requisitos. - Dificuldades de gerência e controle. - Processos inadequados. - Deficiência da tecnologia ou metodologia. da Problemas com o Desenvolvimento de Software Resumo dos Principais problemas: - Requisitos Incompletos Falta de envolvimento do usuário. Falta de Recursos. Expectativas irreais. Mudança de requisitos. Falta de planejamento. Sistema não é mais necessário. - - - Análise de Requisitos A análise de requisitos é fundamental para o desenvolvimento de sistemas, pois trata justamente de descobrir o que o cliente quer com o sistema; A análise de requisitos está associada ao processo de descobrir quais são as operações que o sistema deve realizar e quais são as restrições que existem sobre estas operações; Requisitos funcionais x Não-Funcionais Requisitos podem ser: Funcionais: o que o sistema deve fazer; (capacidade, resultado, funcionalidade) Não-Funcionais: restrições sobre como o sistema deve desempenhar suas funções. “De que forma, como, quando, onde, para quem, por quanto tempo, etc. Tais operações se realizam?” são perguntas típicas. Requisitos Funcionais Algumas questões que nos ajudam a definir os Requisitos Funcionais: O que o sistema deve fazer? Quando ele deve atuar? Quais cálculos devem ser realizados? Como o sistema deve reagir a eventos externos? Requisitos Funcionais Requisitos Funcionais também definem informações sobre os dados: Qual deve ser o formato dos dados de entrada e saída? Quais dados devem ser armazenados? Requisitos Funcionais O professor deve cadastrar as avaliações da disciplina. O usuário deve ser capaz de pesquisar todo o acervo da biblioteca. Cada pedido de compra deverá ser analisado pelo gestor de compras, que poderá decidir por aprová-lo ou retorná-lo ao solicitante. Requisitos Não-Funcionais Podem ser mais críticos do que requisitos funcionais. Se eles não forem atendidos, o sistema pode se tornar inútil. Podem influenciar um ou mais requisitos funcionais, ou mesmo todos. Devido à sua própria definição, requisitos não-funcionais devem ser mensuráveis. Requisitos Não-Funcionais Eficiência: Há restrições no tempo de execução ou de resposta do sistema? Qual é o volume de dados que o sistema deve ser capaz de processar? Requisitos Não-Funcionais Eficiência (Cont.): Qual é a quantidade de acessos que o sistema deverá ser capaz de atender simultaneamente? Qual é a taxa de processamento esperada para este sistema? Requisitos Não-Funcionais Usabilidade: Quanto deve ser fácil para um usuário compreender e usar o sistema? Quanto deve ser para um usuário usar incorretamente o sistema? Requisitos Não-Funcionais Confiabilidade: O sistema deve detectar e/ou recuperar-se de falhas? Qual é a tolerância para o tempo médio entre falhas? Existe um nível de tolerância a falhas e interrupções? Requisitos Não-Funcionais Manutenibilidade: Quanto dever ser simples a adição de novas funcionalidades ao sistema? Qual é o tempo aceitável para diagnóstico de problemas? Qual é o tempo aceitável para resolução de problemas? Requisitos Não-Funcionais Portabilidade: O sistema deve ser portável a outras plataformas? Tipos de Requisitos Implícitos: expectativas dos clientes e usuários. Normativos: leis, padrões, etc. Explícitos: descritos em um documento que apresenta os requisitos de um produto. Tipos de Requisitos Classificação dos requisitos quanto à importância: Essencial: sem seu atendimento, o produto torna-se inaceitável. Condicional: seu atendimento aumenta o valor do produto, mas sua ausência pode ser considerada em caso de necessidade. Opcional: pode ou não ser implementado, dependendo dos prazos e recursos disponíveis Requisitos funcionais x Não-Funcionais Exemplo: Registrar o empréstimo de um filme é um requisito funcional; Estabelecer que o tempo de empréstimo da fita não pode ser superior a 48 horas é uma restrição, ou requisito não-funcional. O professor deve cadastrar as avaliações da disciplina é um requisito funcional; O usuário deve ser capaz de pesquisar todo o acervo da biblioteca é um requisito funcional; Requisitos funcionais x Não-Funcionais Responda se os requisitos abaixo é um requisito funcional ou não funcional. Permitir a consulta de lista de pedidos pendentes. O sistema deve ser construído utilizando a linguagem Java. O sistema deve ser feito em português e inglês. O operador deverá cadastrar os dados de atendimento aos clientes tais como nome, motivo da ligação, data e hora e detalhes da conversa. Cliente X Sistema Exemplo Necessidade do Cliente: Construir um sistema para gerenciar o estoque dos produtos da organização. Funcionalidades a serem cumpridas pelo sistema: - Cadastrar os produtos comercializados; -Registrar entradas e saídas de produtos; -Gerenciar alterações de preços; Cliente X Sistema Exemplo Necessidade do Cliente: Construir um sistema para gerenciar o estoque dos produtos da organização. Funcionalidades a serem cumpridas pelo sistema: - Cadastrar os produtos comercializados; -Registrar entradas e saídas de produtos; -Gerenciar alterações de preços; Passos a seguir Descobrir / Modelar a visão da empresa para o sistema; O que a empresa quer com o projeto? Por que ele está sendo proposto? Há tempo disponível? Construir ou Comprar? O cliente tem dinheiro para pagar o desenvolvimento? O projeto é viável / realizável? Passos a seguir Levantamento de Requisitos Entrevistas Análise de Documentos Estudo Bibliográfico Comparativo Organização de Requisitos Planejamento dos Ciclos Iterativos Passos a seguir Planejar o desenvolvimento: Métricas; Cronograma; Recursos. Exercício proposto – Levantamento de Requisitos O sistema tem como objetivo básico realizar o cadastro dos alunos, divididos por turma. O aluno deverá se matricular em uma turma, estilo de pós graduação. Para esta turma o mesmo terá que cumprir diversas disciplinas. Os professores por sua vez deverão lançar todas as atividades e suas nota, ou seja o valor máximo da atividade, e a nota da atividade para cada aluno. Além das notas a chamada também deverá ser realizada diretamente no sistema escolar. Todas os professores deverão ser cadastrados no sistema, assim como todas as disciplinas que o mesmo leciona. Um calendário das disciplinas deverá ser gerado, com o nome das disciplinas, nome do professor, e todas as datas que ocorrerão suas aulas. Os seguintes relatórios devem ser emitidos: Diário de classe por disciplina. Boletim de notas para os alunos, com as disciplinas e sua pontuação, e seu status, aprovado ou reprovado. Histórico escolar de um determinado aluno. Quantidade de alunos por turma. Gerar um ranking geral(total de pontos) dos alunos. Levantamento de Requisitos 1-Quem são os usuários do Sistema? (Perfis) 2- O que o Sistema deverá fazer? (Funcionalidades-Requisitos Funcionais) 3- Qual é o escopo do Sistema? 4- Caracterize o problema da Organização 5- Propósito de solução para o problema. 6- Restrições do Sistema (Requisitos nãofuncionais).