![Page 1: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/1.jpg)
Engenharia de Software Engenharia de Software Fluxo de Fluxo de RequisitosRequisitos
Alexandre Monteiro
![Page 2: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/2.jpg)
ObjetivosObjetivos::
Entender os conceitos básicos do fluxo de Requisitos e como eles afetam a Análise e Projeto
Entender como ler e interpretar os artefatos gerados por este fluxo
![Page 3: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/3.jpg)
Finalidade do fluxo de requisitosFinalidade do fluxo de requisitos
A finalidade deste fluxo é:
• Chegar a um acordo com o cliente e o usuário sobre o que o sistema deve fazer.
• Oferecer ao desenvolvedor um melhor entendimento dos requisitos do sistema.
• Delimitar o escopo sistema.• Prover uma base para o planejamento do conteúdo
das iterações.• Definir uma interface do sistema com o usuário.
![Page 4: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/4.jpg)
Artefatos mais relevantes do fluxo de Artefatos mais relevantes do fluxo de requisitosrequisitos
...
Especificações de Caso de Uso
Modelo de caso de uso
Casos de Uso
Atores
Descrição do Problema
EspecificaçõesSuplementares
Glossário
Atributos dos Requisitos
Matriz de rastreabilidade
![Page 5: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/5.jpg)
Descrição do problema (documento de Descrição do problema (documento de visão)visão)
Mostra a descrição geral do problema a ser resolvido com o sistema, bem como as funcionalidades básicas do sistema.
Descrição doproblema
![Page 6: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/6.jpg)
GlossárioGlossário
•Introdução•Termos
Glossário
![Page 7: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/7.jpg)
Modelo de casos de usoModelo de casos de uso
•Introdução•Pacotes de casos de uso
•Diagramas de casos de uso•Especificações de casos de usos
Modelo de casos de uso
AtoresCasos de Uso
Especificações de Casos de Uso
![Page 8: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/8.jpg)
Modelo de casos de usoModelo de casos de uso
Use Cases direcionam o trabalho desde os requisitos até os testes
Verificado porImplementado por
Realizado por
![Page 9: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/9.jpg)
Exemplo de Diagrama de casos de usoExemplo de Diagrama de casos de uso
Transferir entre contas
Cliente
Realizar depósito
Sacar dinheiro
Consultar saldo
Solicitar extrato
Alterar senha
![Page 10: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/10.jpg)
Especificação de caso de usoEspecificação de caso de uso•Breve descriçãoBreve descrição•AtorAtor•PrioridadePrioridade•Interfaces Gráficas Interfaces Gráficas Associadas (opcional)Associadas (opcional)•Entradas e Pré-condiçõesEntradas e Pré-condições•Saídas e Pós-condiçõesSaídas e Pós-condições•Fluxo de eventos principalFluxo de eventos principal•Fluxos secundários: Fluxos secundários: alternativos e de exceção alternativos e de exceção (opcional)(opcional)
Modelo de caso de uso
Atores
Casos de Uso
Especificações de Use Case
...
![Page 11: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/11.jpg)
Fluxos de eventos x diagramas de Fluxos de eventos x diagramas de atividadesatividades
Diagramas de atividades: Podem ser usados para representar
graficamente o fluxo de eventos (fluxo básico + fluxos alternativos)
São compostos de: atividades transições decisões
![Page 12: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/12.jpg)
Diagrama de atividadesDiagrama de atividades
São um caso especial dos Diagramas de Estados, com a maioria das transições resultantes do término das atividades.
São muito usados para modelar atividades concorrentes.
![Page 13: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/13.jpg)
Diagrama de atividades: exemploDiagrama de atividades: exemplo
![Page 14: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/14.jpg)
Especificações suplementaresEspecificações suplementares
• Descrevem requisitos não-funcionais:•Confiabilidade•Desempenho (performance)•Segurança•Distribuição•Adequação a Padrões•Restrições de Hardware e Software•etc.
Especificações Suplementares
![Page 15: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/15.jpg)
Devem ser testáveis, para isso devem ser mensuráveis!
Precisam estar definidos em números e nomes O sistema precisa ser rápido. Quão rápido? O sistema deve ser implementado numa
plataforma robusta. Que plataforma?
Requisitos não-funcionaisRequisitos não-funcionais
![Page 16: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/16.jpg)
Requisitos não funcionais xRequisitos não funcionais x casos de uso casos de uso
Associados a um caso de uso específico Associados a todo o sistema Para serem atendidos podem gerar novos
casos de uso
![Page 17: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/17.jpg)
Fluxo de Requisitos - Visão da AtividadeFluxo de Requisitos - Visão da Atividade
Projetista daInterface com o Usuário
Especificadorde UC
Arquiteto Priorizar UC
Analista de Sistema
DesenvolverDocumento de
Visão
Elicitar necessidades
dos Stakeholders
Encontrar Atores eCasos de Uso
Revisor deRequisitos
GerenciarDependências
Capturar umvocabulário comum
Detalhar UC
Modelar aInterface com o Usuário
Revisar os Requisitos
Prototipar aInterface com o Usuário
Estruturar oModelo de UC
![Page 18: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/18.jpg)
Atividade: Desenvolver Documento de Atividade: Desenvolver Documento de VisãoVisão
Nesta atividade, o Analista de Sistemas deve identificar os stakeholders, definir os limites do sistema e descrever as características primárias do sistema. A execução da atividade deve produzir o documento de Visão que apresenta uma visão geral dos requisitos do projeto.
![Page 19: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/19.jpg)
Atividade: Gerenciar DependênciasAtividade: Gerenciar Dependências
Nesta atividade, o Analista de Sistemas deve obter um entendimento dos atributos dos requisitos, o que auxilia no gerenciamento do escopo do projeto e da aplicação. A execução da atividade deve produzir o artefato Atributos dos Requisitos e Matriz de Rastreabilidade.
![Page 20: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/20.jpg)
Atividade: Elicitar Necessidades dos Atividade: Elicitar Necessidades dos StakeholdersStakeholders
Nesta atividade, o Analista de Sistemas deve entender o que os stakeholders esperam do sistema, coletar informações e necessidades que o sistema deve cumprir e priorizar as necessidades dos stakeholders. A execução da atividade tem como artefatos resultantes o documento de Necessidades dos Stakeholders e o Modelo de casos de uso, brevemente esboçado.
![Page 21: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/21.jpg)
Atividade: Capturar um Vocabulário ComumAtividade: Capturar um Vocabulário Comum
Nesta atividade, o Analista de Sistemas deve definir um vocabulário comum que pode ser usado em descrições dos sistema. A execução da atividade deve produzir o Glossário.
![Page 22: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/22.jpg)
Atividade: Encontrar Atores e Casos de UsoAtividade: Encontrar Atores e Casos de Uso
Nesta atividade, o Analista de Sistemas esboça a funcionalidade do sistema, define o que será feito pelo sistema e o que será feito fora do sistema, define quem e o que interagirá com o sistema, divide o modelo em pacotes com atores e casos de uso e cria os diagramas do modelo de casos de uso. A execução desta atividade produz o Modelo de Casos de Uso e as Especificações Suplementares.
![Page 23: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/23.jpg)
Agrupamento de casos de usoAgrupamento de casos de uso
Dividir os casos de uso em pacotes Ator Funcionalidades correlatas Processos
![Page 24: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/24.jpg)
Atividade: Priorizar Casos de UsoAtividade: Priorizar Casos de Uso Nesta atividade, o Arquiteto deve definir o conjunto de
cenários de casos de uso que serão analisados na iteração atual (o conjunto de cenários e casos de uso que representam alguma funcionalidade significativa e o conjunto de casos de uso que têm uma cobertura arquitetural substancial ou que ilustram um ponto específico e delicado da arquitetura). A execução da atividade deve produzir uma versão inicial do documento de Arquitetura de Software e um refinamento do Glossário e do Plano de Iteração.
![Page 25: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/25.jpg)
Prioridades de Casos de UsoPrioridades de Casos de Uso
Essencial para gerenciar os requisitos e para montar as iterações
Deve-se definir as prioridades de todos os casos de uso, as quais podem ser: Essencial Importante Desejável
![Page 26: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/26.jpg)
Atividade: Estruturar o Modelo de Casos de Atividade: Estruturar o Modelo de Casos de UsoUso
Nesta Atividade, o Analista de Sistemas extrai o comportamento dos casos de uso que necessitam ser considerados como abstratos e encontra novos atores abstratos que definem papéis que são compartilhados por vários outros atores. A execução desta atividade produz um refinamento do Modelo de Casos de Uso.
![Page 27: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/27.jpg)
Por que estruturar o modelo?Por que estruturar o modelo?
Extrair descrições de funcionalidades genéricas e compartilhadas que podem ser usadas por mais de um caso de uso.
Extrair descrições de funcionalidades adicionais que possam estender descrições específicas
Facilitar o entendimento do modelo
![Page 28: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/28.jpg)
Relacionamentos entre casos de usoRelacionamentos entre casos de uso
Inclusão
Extensão
Generalização
![Page 29: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/29.jpg)
Relacionamento entre atores: generalizaçãoRelacionamento entre atores: generalização Quando um ator A realiza todos os casos
de uso que o ator B, dizemos que A estende B.
VendedorRealizar venda
Estabelecer créditoSupervisor
![Page 30: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/30.jpg)
Atividade: Detalhar Casos de UsoAtividade: Detalhar Casos de Uso
Nesta atividade, o Especificador de Casos de Uso descreve o fluxo de eventos dos casos de uso em detalhes de forma que o cliente e os usuários possam entender. A execução da atividade tem como resultado a descrição de Casos de Uso, as Especificações Suplementares e os Atributos dos Requisitos e Matriz de Rastreabilidade atualizados
![Page 31: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/31.jpg)
Quando e por que detalhar os casos de Quando e por que detalhar os casos de uso? uso?
Quando? após fazer levantamento dos principais casos de
uso do sistema Por que?
descrever detalhes do caso de uso descrever fluxo de eventos e outras
propriedades uniformizar entendimento entre clientes,
usuários e equipe de desenvolvimento
![Page 32: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/32.jpg)
Fluxo de eventos básicoFluxo de eventos básico Série de passos que compõem um caso de
uso Sugestões:
Concentre-se inicialmente na funcionalidade básica/central do caso de uso
Pense nos fluxos secundários depois!
![Page 33: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/33.jpg)
Fluxos secundáriosFluxos secundários
Só devem ser analisados e descritos após a descrição dos fluxos básicos.
Fluxos alternativos situações especiais (saque além do limite para
um cliente especial) Fluxos de erro
situações de erro
![Page 34: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/34.jpg)
Atividade: Modelar a Interface com o Atividade: Modelar a Interface com o UsuárioUsuário
Nesta atividade, o Designer de Interface com o Usuário constrói um modelo de interface com o usuário que suporta o melhoramento da usabilidade. A execução desta atividade produz os StoryBoards dos casos de uso e a definição das Classes de Fronteira, representando janelas da interface com o usuário.
![Page 35: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/35.jpg)
Atividade: Prototipar a Interface com o Atividade: Prototipar a Interface com o UsuárioUsuário
Nesta atividade, o Designer de Interface com o Usuário deve criar um protótipo de interface gráfica.
![Page 36: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/36.jpg)
Protótipo de interface com o usuárioProtótipo de interface com o usuário Ferramenta para compreensão do caso de uso
o nível de detalhes deve ser adequado ao usuário
Facilidade para a descrição de críticas básicas tamanho e tipo dos campos máscaras de edição
![Page 37: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/37.jpg)
Atividade: Revisar os RequisitosAtividade: Revisar os Requisitos
Nesta atividade, o Revisor de Requisitos formalmente verifica os resultados do fluxo de requisitos conforme a visão do cliente do sistema. A execução da atividade deve apresentar como resultado uma versão aprovada ou rejeitada com as respectivas alterações dos artefatos de requisitos.
![Page 38: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/38.jpg)
Checklists: Modelo de Casos de UsoChecklists: Modelo de Casos de Uso O modelo de caso de usos está fácil de se entender? Estudando o modelo de caso de usos, você pode ter
uma idéia clara das funções do sistema e como elas estão relacionadas?
Todos os requisitos foram levantados? O modelo de caso de usos contém algum
comportamento supérfluo? A divisão em pacotes do modelo de caso de usos
está apropriada?
![Page 39: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/39.jpg)
Checklists: AtoresChecklists: Atores
Todos os atores foram identificados? Cada ator está envolvido com pelo menos um caso
de uso? Cada ator desempenha um papél? Algum deveria ser
fundido com outro ou ser dividido em dois? Existem dois ou mais atores desempenhando o
mesmo papél em relação a um caso de uso? Os atores têm nomes intuitivos e descritivos? Tanto
os usuários como os patrocinadores do software têm um entendimento comum?
![Page 40: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/40.jpg)
Checklists: Casos de UsoChecklists: Casos de Uso
Cada caso de uso está envolvido com pelo menos um ator?
Os caso de usos são independentes uns dos outros? Algum dos caso de usos tem comportamento ou
fluxo de eventos muito similares? Os caso de usos têm nomes únicos, intuitivos e
explicativos de modo que não podem ser confundidos em um estágio posterior?
Os patrocinadores e usuários entendem os nomes e descrições dos caso de uso?
![Page 41: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/41.jpg)
Checklists: Especificação de Caso de UsoChecklists: Especificação de Caso de Uso Está claro quem deseja executar um caso de uso? A finalidade de cada caso de uso está clara? A descrição breve dá uma idéia clara do significado do caso de
uso? Está claro como e quando os fluxos de eventos de cada caso
de uso começam e terminam? A seqüência de comunicação entre um ator e um caso de uso
está de acordo com as expectativas do usuário? As interações e trocas de informação entre os atores e o
sistema estão claras? Existe algum caso de uso demasiadamente complexo? Os fluxos de eventos (básicos e alternativos) estão modelados
de forma clara?
![Page 42: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/42.jpg)
Checklists: GlossárioChecklists: Glossário
Os termos têm uma definição clara e concisa? Cada termo do glossário foi incluído em algum lugar
nas descrições dos caso de usos? Os termos são usados consistentemente nas
descrições dos atores e dos caso de usos?
![Page 43: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/43.jpg)
Requisitos - Visão dos artefatosRequisitos - Visão dos artefatos
Analista de Sistema
Visão Necessidades dos Stakeholders
Modelo deUse Case
EspecificaçãoSuplementar
Glossário Atributos dosRequisitos
e Matriz de
Rastreabilidade
Casosde Uso Pacote de
Use Case
Especificadorde UC
Responsável por Responsável por
Arquiteto
Documentode Arquiteturade Software
Responsável porProjetista
da Interface com o Usuário
UCStoryboard
Protótipo daInterface com o usuário
Classes de Fronteira
Responsável por
Revisor deRequisitos
![Page 44: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/44.jpg)
O documento de requisitos simplificado: O documento de requisitos simplificado: estruturaestrutura
Introdução Descrição Geral do Sistema Requisitos Funcionais (casos de uso) Requisitos Não Funcionais Descrição da Interface com o usuário
![Page 45: Engenharia de Software Fluxo de Requisitos Alexandre Monteiro](https://reader037.vdocuments.mx/reader037/viewer/2022102915/570638591a28abb8238fd0cb/html5/thumbnails/45.jpg)
ReferênciasReferências Applying Use Cases: A Practical Guide
Geri Schneider e Jason P. Winters Addison-Wesley, 1998.
UML DistilledMartin FowlerAddison-Wesley, 1997.
The Unified Software Development ProcessIvar Jacobson, Grady Booch e James RumbaughAddison-Wesley, 1998.
The Unified Modeling Language: The User GuideIvar Jacobson, Grady Booch e James RumbaughAddison-Wesley, 1999.