Fase de Concepção (Início, Planejamento) Objetivos Conhecer a empresa Levantar requisitos Organizar requisitos Casos de Uso Manutenção de Entidades Consultas / Relatórios Esboçar o modelo conceitual do sistema Planejar o desenvolvimento Iterações Cronograma Recursos Conhecimento da Empresa O que a empresa quer com o projeto? Por que ele está sendo proposto? Por que a empresa vai gastar dinheiro com o projeto? O projeto é realizável? A equipe de desenvolvimento tem condições de realizar este projeto? Em caso de uma empresa produtora de software para clientes externos:O cliente tem dinheiro para pagar o desenvolvimento? Há tempo disponível? Comprar ou desenvolver? Conhecimento da Empresa (2) Se as respostas são positivas, o passo seguinte é elaborar o sumário executivo do projeto Primeiro artefato Artefatos Sumário Executivo Documento de Requisitos Casos de Uso Modelo Conceitual Sumário Executivo Sumário Executivo É um documento de 3 páginas, no máximo, que responde às seguintes perguntas Por quê? O quê? [Onde?] Também chamado de Visão Geral do Sistema Estudo de Caso: sistema de locação de vídeo Sumário Executivo documento de texto em formato livre Sistema Videolocadora Visão Geral do Sistema É proposto o desenvolvimento de um sistema de controle de videolocadora, que vai informatizar as funções de empréstimo, devolução e reserva de fitas. O objetivo do sistema é agilizar o processo de empréstimo e garantir maior segurança, ao mesmo tempo que possibilita um melhor controle das informações por parte da gerência. Deverão ser gerados relatórios de empréstimos por cliente, empréstimos por fita e empréstimos no mês. O sistema deverá calcular automaticamente o valor dos pagamentos a serem efetuados em cada empréstimo inclusive multas e descontos devidos. A cada devolução de fitas corresponderá um pagamento, não sendo possível trabalhar com sistema de créditos. A impossibilidade de efetuar um pagamento deve deixar o cliente suspenso, ou seja, impossibilitado de emprestar novas fitas até saldar a dívida. Sumário Executivo (2) Exercício: avalie o documento do slide anterior Ele permitiria responder bem a estas perguntas Por quê? O quê? [Onde?] Documento de Requisitos Levantamento de Requisitos Entrevistas Análise de Documentos Existentes na Empresa Estudo Bibliográfico Comparativo Requisitos Requisitos funcionais correspondem à listagem de todas as coisas primitivas ou atômicas que o sistema deve fazer para bem gerir o negócio do usuário Requisitos não funcionais são restrições que se colocam sobre como o sistema deve realizar seus requisitos funcionais Requisitos Funcionais Requisitos funcionais evidentes são efetuados com conhecimento do usuário Requisitos funcionais ocultos são efetuados pelo sistema sem o conhecimento explícito do usuário A negação de requisito funcional evidente Requisitos Não Funcionais Permanentes (o contrário: Transitório) Desejáveis (o contrário: Obrigatório) Requisitos Não Funcionais Categoria de interface de implementação de eficiência de tolerância a falhas de segurança de compatibilidade etc Requisitos Não Funcionais Associados a requisitos funcionais Suplementares Associados a qualquer requisito funcional, indistintamente Requisitos Funcionais Código do requisito funcional (Ex.: F1, F2, F3, ...) Nome do requisito funcional (especificação curta) Descrição (especificação longa, ou detalhamento do requisito) Evidente ou oculto? Requisitos Não Funcionais Código de requisito não funcional associado (Ex.: NF1.1, NF1.2, ... NF2.1, NF2.2, ...) Nome do requisito não funcional (especificação curta) Restrição: especificação (longa) do requisito não funcional, por categoria de restrição Obrigatório ou Desejável? Permanente ou Transitório? Requisitos Não Funcionais (2) Suplementares S<índice i > Requisitos Funcionais e Não Funcionais Associados Oculto ( ) F1 Registrar empréstimos Descrição: O sistema deve registrar empréstimos de fitas, indicando o cliente e as fitas que foram emprestadas, bem como a data do empréstimo e valor previsto para pagamento na devolução. Requisitos Não Funcionais Nome Restrição Categoria Desejável Permanente ( ) (x) NF1.1 Controle de A função só pode ser acessada por usuário com perfil Segurança Acesso de operador ou superior. ( ) (x) NF1.2 Identificação de As fitas devem ser identificadas por um código de Interface Fitas barras ( ) ( ) NF1.3 Identificação do O cliente deverá ser identificado a partir de seu nome Interface cliente (x) ( ) NF1.4 Tempo de O tempo para registro de cada fita deve ser inferior a Performance registro um segundo. (x) (x) NF1.5 Janela única Todas as funções relacionadas a empréstimos devem Interface ser efetuadas em uma única janela ... ... ... ... ... Oculto ( x ) F2 Calcular descontos Descrição: O sistema deve calcular descontos nos empréstimos em função da política da empresa. Requisitos Não Funcionais Nome Restrição Categoria Desejável Permanente ( ) ( ) NF2.1 Desconto de fim Nos fins de semana, usuários que levam 4 fitas Especificação de semana pagam apenas 3. ... ... ... ... ... Requisitos Funcionais e Não Funcionais Associados (2) Com relação a F1 e F2, e para sermos mais precisos (atomicidade) Registrar (1) empréstimo Calcular (1) desconto Requisitos Suplementares Nome Restrição S1 Tipo de Interface As interfaces do sistema devem ser Interface implementadas como formulários acessíveis em um browser html. A camada de persistência deve ser implementada Persistência de forma que diferentes tecnologias de bancos de dados possam vir a ser utilizadas no futuro ( ) ( ) ( ) (x) S3 Perfis de usuário Os perfis de usuário para acesso ao sistema são: 3. Administrador - pode efetuar todas as operações. 2. Operador - pode efetuar as operações de empréstimo, devolução, pagamento e cadastramento. 1. Convidado - pode efetuar apenas consultas nos próprios dados (cliente). Segurança ( ) ( ) ... ... ... ... ... S2 Armazenamento de dados Categoria Desejável Permanente Desafios da Análise de Requisitos Como descobrir os requisitos Como comunicar os requisitos para as outras fases e as equipes do projeto Como lembrar dos requisitos durante o desenvolvimento e verificar se foram todos atendidos Como gerenciar a mudança Organização dos Requisitos Casos de Uso Manutenção de Conceitos (Entidades) Consultas/Relatórios Casos de Uso Caso de Uso Um cenário de interação usuário-sistema Ordenação de um subconjunto de requisitos funcionais, e seus requisitos não-funcionais associados, relacionados com a interação Implica em mudança de estado do sistema ( consulta / relatório) Pouco detalhado na fase de concepção Bastante detalhado na fase de elaboração (refinamento de casos de uso) Caso de Uso (2) Um caso de uso pode ser também pensado como um grande nível de agregação mais alto requisito funcional Caso de Uso F1 F2 Fi Pelo menos um requisito funcional deve modificar o estado do sistema Fn Caso de Uso (3) O nome de um caso de uso é sempre uma expressão verbal Emprestar Fitas Devolver Fitas Reservar Fitas Validação de Requisitos Funcionais Dado um requisito funcional, ele deve aparecer em pelo menos um caso de uso, ou uma manutenção de entidade, ou um relatório / consulta Organizando Requisitos em Casos de Uso Nome Atores Descrição Emprestar Cliente, O cliente se identifica e identifica as fitas que deseja levar. Fitas Funcionário O funcionário faz o registro e libera as fitas para empréstimo. Devolver Cliente, O cliente entrega ao funcionário as fitas. O funcionário Fitas Funcionário faz o registro da devolução e o cliente efetua o pagamento devido. Reservar Cliente, O cliente solicita a reserva de um ou mais filmes. O Fitas Funcionário funcionário registra a reserva. Referências Cruzadas F1, F3, F5, F9, F10 F2, F4, F6, F7, F8 F11, F12 Exercício: Mostre que cada caso de uso modifica, à sua maneira, o estado do sistema Diagrama UML de Casos de Uso (Alto Nível, ou sem Decomposição) Diagrama de Caso de Uso Em geral, na fase de concepção, um caso de uso não é decomposto Decomposição é detalhamento (fase de elaboração) Atores primários e secundários Funcionário: primário Interage diretamente com o sistema Cliente: secundário Interage com o sistema via um ator primário ‘Tamanho’ de um Caso de Uso Um caso de uso deve ser uma unidade lógica de trabalho Critérios de tamanho de um caso de uso De 3 a 10 passos Um passo é um elemento descritivo, não necessariamente um requisito Duração de minutos a 1 hora Um caso de uso deve ser interativo, com informações fluindo para dentro e para fora do sistema Um caso de uso deve produzir uma alteração consistente na informação armazenada Uma seqüência de consultas puras ao sistema não caracteriza um caso de uso ‘Tamanho’ de um Caso de Uso (2) Algumas operações relativamente simples e elementares (de um único passo), como o registro de uma fita, ou de um pagamento, não devem ser consideradas como casos de uso por si só (um único passo) Outra maneira de dizer: nestas casos, o caso de uso reduz-se a um requisito funcional Modelo Conceitual Preliminar Modelo Conceitual A entrada para o modelo conceitual são os casos de uso Cada conceito ou entidade, assim como seus relacionamentos, deve aparecer direta ou indiretamente nas descrições dos casos de uso Terminologia UML Diagrama de Classes em Alto Nível, ou Diagrama de Entidades e Relacionamentos ‘Mais tarde’, conceitos ou entidades se tornam classes de software Diagrama de Classes Caso de Uso: Diagrama Preliminar de Entidades e Relacionamentos Entidades (não exaustivamente) Cliente, Empréstimo, Reserva, Fita Note que entidades são designadas por substantivos Relacionamentos (não exaustivamente) Cliente Fez Empréstimo Cliente Solicitou Reserva Empréstimo Locou Fita Reserva Referenciou Fita Note que relacionamentos são designados por verbos Estes relacionamentos e entidades foram extraídos dos casos de uso Emprestar Fitas e Reservar Fitas Diagrama Preliminar Diagrama Preliminar (2) Note que o diagrama está incompleto Faltando contemplar o caso de uso Devolver Fitas Esta situação é normal, na fase de concepção Os refinamentos e detalhamentos são feitos principalmente durante a fase de elaboração Diagrama Preliminar (3) Note também que faltam as multiplicidades dos relacionamentos 1:1 1:N M:N As multiplicidades devem aparecem já no modelo conceitual preliminar Diagrama Preliminar (4) Exercícios Qual a diferença entre Modelo e Diagrama? Modifique o diagrama para só contemplar um empréstimo ou uma reserva correntes Inclua as multiplicidades dos relacionamentos Modifique o diagrama para contemplar históricos de empréstimos e reservas Inclua as multiplicidades dos relacionamentos Manutenção de Conceitos ou Entidades O Padrão Manutenção de Caso de Uso Cada conceito normalmente tem operações associadas de inserção (I) alteração (A) exclusão (E) consulta a um conceito (C) Isso configura um padrão de caso de uso Manter Conceitos ou Entidades Cada caso de uso do padrão é uma manutenção de entidade Recebe um tratamento específico e simplificado Manutenção (Estudo de Caso) Conceito I A E C Obs Ref. Cruza das Cliente X X X X Só é possível excluir se não houver empréstimos associados F13, F14, F20, F21 Fita X X X X Só é possível excluir se não houver empréstimos associados F18, F30, F31, F32 Reserva X I, A e E: dentro dos casos de F15, F16 uso Reservar Fitas (I e A) e Emprestar Fitas (E) Empréstimo X A: não é possível I e E: dentro dos casos de uso Emprestar Fitas (I) e Devolver Fitas (E) F17, F19 Consultas / Relatórios Organização de Requisitos em Consultas / Relatórios Muitos requisitos funcionais não mudam o estado do sistema Eles podem ser organizados em consultas / relatórios Não incluem consultas a entidades simples Consultas / relatórios são importantes para validar modelos conceituais Importante: qualquer sistema de informação tem um conjunto relativamente diverso de consultas / relatórios Organização de Requisitos em Consultas / Relatórios (Estudo de Caso) Nome Vendas Mensais Clientes Suspensos ... Referências Cruzadas F20, F21, F22 F13, F23, F1 ... Planejamento das Iterações Planejamento do Desenvolvimento Alocar o desenvolvimento em ciclos iterativos de mesma duração Observar as fases do processo UP (“Major milestones”) Estimativa de esforço para cada iteração Estabelecendo Prioridades Prioridade #1: Casos de Uso Críticos Definidos pelo cliente Prioridade #2: Casos de Uso Nãocríticos Prioridade #3: Manutenção de Conceitos Prioridade #4: Consultas / Relatórios Estabelecendo Prioridades (2) Fase de Elaboração Requisitos funcionais Alguns requisitos não-funcionais associados a requisitos funcionais Fase de Construção Requisitos não-funcionais associados a requisitos funcionais Requisitos não-funcionais suplementares Planejamento dos Ciclos Iterativos (Fase de Elaboração) Ciclo 1 2 3 4 Casos de Uso Emprestar Fita (550) Manutenção de Informações - Consultas Observações - Devolver Fita (300) Reservar Filme (270) - - - Neste ciclo ainda não será implantado o mecanismo de persistência Implementar mecanismo de persistência (300 horas) - Fita (100), Cliente (100) e Reserva (100) Emprestimo (100) todas (400) - Esforço estimado 550 horas 600 horas 570 horas 500 horas Cronograma de Execução Considerar Tempo total estimado para o projeto (em hora/pessoa) Tempo disponível (em semanas ou meses) Tamanho da equipe Estruturação em equipes Planejamento com 4 equipes Dias: 1-10 11-20 Ciclo 1 análise projeto Ciclo 2 análise Ciclo 3 Ciclo 4 Implantação 21-30 implementação projeto análise 31-40 testes implementação projeto análise 41-50 51-60 61-70 70-90 testes implementação testes projeto implementação testes implantação Planejamento com 2 equipes Dias: Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Implantação 1-20 análise 21-40 projeto 41-60 impl. análise 61-80 testes projeto 81-100 101-120 impl. análise testes projeto 121-140 141-160 161-180 181-200 impl. análise testes projeto impl. testes 201-220 implant. Observações Note que, associando requisitos nãofuncionais a requisitos funcionais, uma parte dos requisitos não-funcionais é implementada na fase de elaboração Fase de construção: os demais requisitos nãofuncionais e os requisitos suplementares Note também que, trabalhando com várias equipes, somente as atividades de implementação-testes são seqüênciais Atividades de análise-projeto podem ocorrer em paralelo Projeto do Curso Projeto Fase Início (Concepção, Planejamento) Documento constando de: Sumário Executivo Requisitos Funcionais e Não-funcionais Associados Requisitos suplementares Casos de uso Modelo Conceitual Manutenção de Entidades Consultas / Relatórios Planejamento das Iterações Prazo de entrega: 20/07