Escolar Documentos
Profissional Documentos
Cultura Documentos
Viso Geral
Definindo Requisitos
Podemos definir um requisito como uma especificao que deve ser implementada. Existem dois tipos de requisitos:
Funcional: o que o sistema deve fazer. No-funcional: uma propriedade especfica ou restrio sobre o sistema.
Requisitos so (ou deveriam ser) a base de todo o sistema. So declaraes do que o sistema deve fazer. Requisitos devem ser apenas uma declarao do que o sistema deve fazer e no de como deve fazer. Ns podemos especificar o que um sistema deve fazer e qual comportamento deve exibir sem necessariamente dizer qualquer coisa sobre como esta funcionalidade deve ser realizada.
Requisitos Bem-Formados
A UML no faz nenhuma recomendao sobre como escrever um documento SRS. A UML trata os requisitos usando use cases. No entanto, apenas use cases no so suficientes. Precisamos de SRS e ferramentas de gerenciamento. Recomendamos um formato muito simples para declarar requisitos:
<id> O <sistema> deve <funo>
Identificador nico Nome do sistema Palavrachave Funo a ser executada
Requisitos de Software
Modelagem Use Case
Atores: papis interpretados por pessoas ou coisas que usam o sistema Use Cases: coisas que os atores podem fazer com o sistema Relacionamentos: associaes importantes entre atores e usa cases Fronteira do sistema: Conjunto de atores e use cases do sistema
A Fronteira do Sistema
A primeira coisa a ser feita quando pensamos em construir um sistema decidir onde est a fronteira do sistema. Isto , precisamos definir o que parte do sistema (dentro da fronteira do sistema) e o que externo (fora da fronteira do sistema). Isso parece bvio, mas muitos projetos sofrem de srios problemas devido incerteza sobre a fronteira do sistema.
A Fronteira do Sistema
A falta ou impreciso na definio da fronteira do sistema pode causar enorme impacto nos requisitos funcionais (e algumas vezes, no funcionais). Requisitos a mais ou a menos um grande problema. A fronteira do sistema definida por quem usar o sistema (isto , atores), e pelos benefcios especficos que o sistema ir fornecer a essas atores (isto , use cases).
A Fronteira do Sistema
A fronteira do sistema definido pelo conjunto de atores e use cases apresentados num Diagrama Use Case. Exemplo de um Diagrama Usa Case.
A Fronteira do Sistema
Diagram a Us e Cas e
Receber Pedidos
Cancelar Pedidos
Transportadora
Enviar Pedido
Supervisor de Entregas
Enviar Catlogo
O que so Atores?
Um ator especifica algum ou alguma coisa que interage diretamente com o sistema. O ator est sempre fora da fronteira do sistema. Um ator representado em UML como stick man:
Cliente
O que so Atores?
importante ficar muito claro e cristalino de que Atores so externos ao sistema, mas que o sistema pode manter informaes sobre esses Atores. Ou seja, uma representao interna de indivduos que utilizam o sistema.
Identificando Atores
As seguintes questes podem ajudar a identificar os atores do sistema:
1. 2. 3. 4. 5. 6. 7. 8.
Quem ou o que utiliza o sistema? Quais so os papis que eles interpretam durante a interao com o sistema? Quem instala o sistema? Quem inicia ou desativa o sistema? Quem mantm o sistema? Que outros sistemas interagem com o sistema? Quem obtm ou fornece informaes para o sistema? Existe alguma coisa que acontece em tempos determinados?
Identificando Atores
Pontos a serem lembrados durante a identificao de atores:
1. 2. 3.
4.
5. 6.
Atores so externos ao sistema portanto, eles esto fora do controle do sistema Atores interagem diretamente com o sistema Atores representam papis que pessoas ou coisas interpretam em relao ao sistema, no so pessoas ou coisas especficas Uma pessoa ou coisa pode interpretar vrios papis. Por exemplo, num sistema de biblioteca voc pode ser Usurio ou Bibliotecrio (caso voc trabalhe numa biblioteca) Cada ator deve ter um nome curto e que faa sentido na perspectiva de negcio Cada ator deve ter uma breve descrio que esclarea o qual o seu papel na perspectiva de negcio
Tim e
Cancelar Pedidos
10
Quais funes um ator especfico quer que o sistema tenha? O sistema armazena ou recupera informaes? Se sim, quais atores ativam esse comportamento? Algum ator tem que ser avisado quando o sistema muda seu estado? Existe algum evento externo que afete o sistema? Quem informa o sistema sobre esse evento?
11
Receber Pedidos
Cancelar Pedidos
Transportadora
Enviar Pedido
Supervisor de Entregas
Enviar Catlogo
12
O Glossrio do Projeto
O Glossrio do Projeto pode ser um dos principais artefatos do projeto. Todo domnio de negcio tem sua linguagem prpria e o principal propsito da engenharia e anlise de requisitos entender e capturar essa linguagem. O glossrio define um dicionrio dos principais termos de negcio. Ele deve ser conhecido por todos do projeto, inclusive pelos stakeholders. Alm da definio dos principais termos, o Glossrio do Projeto deve resolver sinnimos e homnimos.
O Glossrio do Projeto
Sinnimos so palavras diferentes com o mesmo significado.
Como analista OO voc deve escolher uma das palavras (aquele que seja a mais utilizada) e no usar nenhum outro sinnimo. Os outros sinnimos devem ser completamente excludos do modelo para evitar que se criem, por exemplo, duas classes com nomes distintos, mas que fazem mais ou menos a mesma coisa. Se fosse permitido o uso de sinnimos, a semntica das classes poderia, com o tempo, divergir.
13
O Glossrio do Projeto
Homnimos ocorrem quando a mesma palavra possui significados diferentes para pessoas diferentes.
Isso sempre traz problemas de comunicao e de desentendimentos. A maneira de resolver esse problema escolher apenas um significado para o termo.
O Glossrio do Projeto
No Glossrio de Projeto, deve-se registrar os termos preferidos, bem como quaisquer de seus sinnimos. Talvez voc tenha que convencer alguns stakeholders de que alguns termos so melhores do que outros. A UML no padroniza o formato para o Glossrio do Projeto. Assim, recomendamos que use um formato semelhante ao de um dicionrio, organizado em ordem lexicogrfica dos termos do glossrio.
14
15
Pr e Ps-condies
Pr e Ps-condies so restries
As pr-condies restringem o estado do sistema antes que o use case possa iniciar sua execuo. Pense nelas como guardis que previnem que um ator inicie a execuo do use case at que todas as condies tenham sido atendidas. Ps-condies restringem o estado do sistema aps a finalizao da execuo do use case.
16
Pr e Ps-condies
Pr e Ps-condies nos ajudam a projetar sistemas que funcionem corretamente. Pr e Ps-condies sempre devem ser declaraes simples sobre o estado do sistema que podem ser testados como verdadeiro ou falso eles so conhecidos como condies booleanas.
Fluxo de Eventos
O fluxo de eventos lista os passos de um use case. Ele sempre comea com um ator fazendo alguma coisa para iniciar o use case. Uma boa maneira de iniciar um fluxo de eventos :
O use case inicia quando o <ator><alguma ao>
Lembre-se que o Time pode ser um ator, assim, o use case pode tambm ser iniciado com uma expresso de tempo no lugar do ator, como no exemplo do use case: Pagar Taxa. O fluxo de eventos consiste de uma seqncia de breves passos que so declarativos, numerados e ordenados no tempo.
17
Fluxo de Eventos
Cada passo no fluxo do use case deve ser da forma: <nmero>O <alguma coisa><alguma ao>
Exemplo: 1. O use case inicia quando o cliente seleciona a opo fazer pedido. 2. O cliente entra com seu nome e endereo no formulrio.
Esses passos so bem formatados. Em ambos os casos, temos uma declarao simples de alguma coisa executando alguma ao.
Fluxo de Eventos
O fluxo de eventos do use case pode tambm ser capturada como uma prosa. No entanto, ns no recomendamos isso, pois geralmente muito impreciso. (Takai quer a prosa) Ns podemos mostrar alternativas num fluxo do use case ramificando ou listando os fragmentos do comportamento sob o cabealho de um fluxo alternativo do use case. Veremos isso depois.
18
19
20
21
n+1.
22
n+1.
23
24
Rastreando Requisitos
Com um documento SRS e um conjunto de use cases, ns temos efetivamente duas bases de dados de requisitos funcionais. muito importante relacionar essas duas bases para verificar se existe alguma no SRS no esteja coberto pelos use cases e vice-versa. Este um dos aspetos de rastrear requisitos. Rastrear requisitos funcionais para use cases complicado pelo fato de ser um relacionamento muitos-para-muitos entre eles.
Rastreando Requisitos
Isso pode ser feito com facilidade criando uma matriz de rastreabilidade de requisitos:
Use Cases Requisitos UC1 UC2 UC3 UC4 R1 R2 R3 R4 R5
25
Rastreando Requisitos
A matriz de requisitos uma ferramenta muito til para verificar consistncias. Se existir um requisito que no tenha sido mapeado para um use case, ento existe ao menos um use case faltando. Por outro lado, se existir um use case que no possa ser mapeado para algum requisito, ento os requisitos esto incompletos.
26
FS 3 FS 1 FS 2
Interrupo
27
Use Case: Fechar Pedido ID: UC14 Atores: Cliente Pr-condies: Fluxo Bsico: 1. O use case inicia quando o Cliente seleciona a opo fechar pedido. 2. O sistema exibe o pedido do Cliente. 3. O sistema solicita a identificao do Cliente. 4. O Cliente entra com uma identificao vlida. 5. O sistema recupera e exibe os detalhes do Cliente. 6. O sistema solicita informaes do carto de crdito nome escrito no carto, nmero e data de expirao. 7. O Cliente informa os dados do carto conforme solicitado. 8. O sistema solicita confirmao do pedido. 9. O Cliente confirma o pedido. 10. O sistema debita no carto de crdito. 11. O sistema exibe a fatura. Fluxos Secundrios: Identificador do Cliente Invlido Detalhes do Carto Invlido Limite Excedido do Carto de Crdito Carto de Crdito Expirado Ps-condies:
28
29
30
31
Requisitos de Software
Modelagem Use Case Avanada
32
33
Listar Produtos
Pedir Produtos
Calcular Com is s o
34
Com prador
Pedir Produtos
Vendedor
(f rom Actors)
Calcular Com is s o
35
Cl iente
(f rom Actors)
Encontrar Produtos
Encontrar Livros
Encontrar CDs
36
Fluxo de Eventos: 1. O Cliente seleciona a opo encontrar produtos. 2. O sistema solicita o critrio de busca ao Cliente. 3. O Cliente informa o critrio solicitado. 4. O sistema procura por produtos de acordo com o critrio de busca informado pelo Cliente. 5. Se o sistema encontrar produtos que satisfaam o critrio de busca ento 5.1. O sistema mostra uma lista com os produtos encontrados 6. Seno 6.1. O sistema informa ao Cliente que nenhum produto pde ser encontrado. Ps-condies: Fluxo Alternativo: 1. Em qualquer momento, o Cliente ir para uma pgina diferente. Ps-condies:
37
stereotype
fornecedor
Mudar Detalh es Em pregados <<include>>
Ger ente
Relacionamento de dependncia
38
Ps-condies:
39
Relacionamento De dependncia
Bibliotecrio
(from Actors)
Emprestar Livro
Encontrar Livro
40
41
Devolver Livro
Pr-condies: 1.O Bibliotecrio vlido no sistema Fluxo de eventos: 1. O Bibliotecrio entra com o ID do emprestador. 2. O sistema mostra os detalhes do emprestador incluindo a lista de livros emprestados. 3. O Bibliotecrio procura o livro devolvido nessa lista. <dataDevoluoVencida> 4. O Bibliotecrio d baixa no livro. 5. ... Ps-condies: O livro foi devolvido.
ponto de extenso
Lanar Multa
42
43
Devolver Livro
<<extend>> (dataDevoluoVencid a)
Use case de extenso: Lanar Multa ID: UC10 Pr-Condies: 1. Existe livros em atrasado.
Lanar Multa
Segmento de Insero: 1. O Bibliotecrio usa o sistema para registrar e imprimir a multa. Ps-condies: Multa registrada.
44
Use case de extenso: Lanar Multa ID: UC10 Pr-Condies: 1. Existe livros em atrasado. Segmento de Insero 1: 1. O Bibliotecrio usa o sistema para registrar e imprimir a multa. Segmento de Insero 2: 1. Se o emprestador escolher pagar o total da multa imediatamente ento 1.1. O Bibliotecrio aceita o pagamento da multa. 1.2. ... Ps-condies: Multa registrada.
Lanar Mul ta
45
Devolver Li vro
L anar Mul ta
46
47