Vous êtes sur la page 1sur 30

Anlise e Concepo de Sistemas de Informao

Unified Modeling Language (UML) Modelao do Comportamento Casos de Utilizao (Use Cases)

Alberto Silva / Jos Borbinha

Modelao da Dinmica do Comportamento

Use Cases (Casos de Utilizao) Use Cases e Cenrios Descrio textual de Use Cases Organizao de Use Cases Diagramas de Use Case
2
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Use Cases (Casos de Utilizao)

A identificao de use cases deve ser feita durante a recolha e anlise de requisitos (...consultar o catlogo da loja..., ...efectuar compra..., ...pedir ajuda...). Por ser mais genrica, a descrio dos use cases pode aparecer, na documentao de requisitos, antes da enunciao dos mesmos (na descrio geral do sistema), para ajudar ao entendimento do contexto. O modelo de use case ajuda a capturar os requisitos de um sistema, atravs do detalhe de todos os cenrios que os utilizadores podem realizar. Os use-cases fazem a ponte entre os requisitos e a modelao do comportamento de um sistema.

O modelo do comportamento (ou da dinmica) de um sistema comea com a anlise de use cases.

3
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Use Cases

Um use case representa um conjunto de aces que um ou mais actores realizam num sistema para obter um resultado concreto Um use case deve ser representado num modo impessoal, por uma frase na voz activa, com um verbo no infinitivo (Gerar relatrios, Criar factura, Calibrar roda) Um use case representa uma viso externa do sistema descreve o que faz um sistema (ou parte deste), no descreve como que tal realizado

4
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Use Cases - Actores


Actor Representa uma funo (ou papel) que um utilizador pode desempenhar relativamente ao sistema a modelar. O conjunto total de actores de todos os use cases reflecte todos os elementos que interactuam com o sistema. Um mesmo utilizador nominal pode desempenhar diferentes papis, podendo, por conseguinte, representar diferentes actores. Um actor pode ser humano ou ser outro sistema!

Cliente

Administrador

Alarme

ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Use Cases e Cenrios

Um cenrio uma instncia de um use case quando este interactua com os actores. Determinada sequncia de aces que ilustra um comportamento do sistema.
normal que um use case possa ser descrito por vrios cenrios

Tipos de cenrios:
Principal: descreve a sequncia normal de aces (happy day scenario) Alternativo ou secundrio: descreve uma sequncia de aces a considerar para alm da principal, o que pode acontecer devido a excepes ou apenas para outras aces possveis
6
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Use Cases e Cenrios (exemplo)


Cenrio principal do use case Fazer encomenda O caso inicia-se quando o cliente selecciona Fazer encomenda O cliente introduz nome e endereo O cliente introduz os cdigos dos produtos desejados O sistema fornece descrio e preo dos produtos O cliente selecciona os produtos desejados O cliente fornece a informao do carto de crdito O cliente submete o pedido O sistema verifica a informao Quando o pagamento confirmado criado e apresentado ao cliente um cdigo do. Caso termina Cenrios secundrios do use case Fazer encomenda Informao do carto de crdito incorrecta Pedido incompleto Cliente pretende pagar por cheque Cliente requer atendimento especial Endereo de entrega incompleto Produto j no comercializado Produto no existe em armazm Produto em promoo

1.

2. 3.

4.

5.

6.

7. 8.

9.

7
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Descrio Textual de Use Cases

Pode-se especificar o comportamento de um use case descrevendo textualmente o fluxo de eventos, de modo que um utilizador no tcnico o possa entender. Tal especificao deve incluir:
Assunes Pr-condies Inicializao: como e quando o caso de utilizao comea Dilogo: quando que o caso de utilizao interactua com os actores Concluso: como e quando o caso de utilizao termina Ps-condies

Outras formas:
Actores que iniciam, que beneficiam... Diagramas de sequncia e/ou de actividades...
8
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Descrio Textual de Use Cases (exemplo de template)


Name
Summary Rationale

UC-8: Search
All occurrences of a search term are replaced with replacement text. While editing a document, many users find that there is text somewhere in the file being edited that needs to be replaced, but searching for it manually by looking through the entire document is time-consuming and ineffective. The search-and-replace function allows the user to find it automatically and replace it with specified text. Sometimes this term is repeated in many places and needs to be replaced. Other times, only the first occurrence should be replaced. The user may also wish to simply find the location of that text without replacing it. All users A document is loaded and being edited. 1. 2. 3. The user indicates that the software is to perform a search-and-replace in the document. The software responds by requesting the search term and the replacement text. The user inputs the search term and replacement text and indicates that all occurrences are to be replaced. The software replaces all occurrences of the search term with the replacement text. In step 3, the user indicates that only the first occurrence is to be replaced. In this case, the software finds the first occurrence of the search term in the document being edited and replaces it with the replacement text. The postcondition state is identical, except only the first occurrence is replaced, and the replacement text is highlighted. In step 3, the user indicates that the software is only to search and not replace, and does not specify replacement text. In this case, the software highlights the first occurrence of the search term and the use case ends. The user may decide to abort the search-and-replace operation at any time during steps 1, 2 or 3. In this case, the software returns to the precondition state. 9

Users Preconditions Basic Course of Events

4.
Alternative Paths 1.

2.

3. Postconditions

All occurrences of the search term have been replaced with the replacement text.
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Descrio Textual de Use Cases (exemplo de template)

Use Case Name: Primary Actor:

ID: Use Case Type:

Importance Level:

Elementos Gerais

Stakeholders and Interests: Brief Description: Trigger:

Relaes Fluxo de Eventos

Relationships: (Association, Include, Extend, Generalization) Normal Flow of Events: Subflows: Alternate/Exceptional Flows:
10
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Descrio Textual de Use Cases (exemplo)


Validar Utilizador

Fluxo de Eventos Principal


O caso de utilizao inicia-se quando o sistema apresenta um cran a pedir ao cliente o seu carto electrnico. O cliente introduz o seu carto MB e, atravs de um pequeno teclado, o seu PIN. Note-se que o cliente pode limpar a introduo do seu PIN inmeras vezes e reintroduzir um novo nmero antes de activar o boto Entrar. O cliente activa o boto Entrar para confirmar. O sistema l o PIN e a respectiva identificao do carto MB, e verifica se vlido. Se o PIN for vlido o sistema aceita a entrada e o caso de utilizao termina.

Cenrio Alternativo 1 (Cliente cancela operao)


O cliente pode cancelar a transaco em qualquer momento activando o boto Cancelar, implicando a reinicializao do caso de utilizao. No realizada qualquer alterao conta do cliente.

Cenrio Alternativo 2 (PIN invlido)


Se o cliente introduz um PIN invlido, o carto MB ejectado e o caso de utilizao reinicializado. Se tal ocorrer 3 vezes consecutivas, o sistema cativa (i.e., recolhe) o carto MB e cancela a transaco, no permitindo qualquer interaco nos 2 minutos seguintes.
11
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Organizao de Use Cases


Os use cases podem ser organizados :

Agrupados em packages Em diagramas especificando relaes entre casos de utilizao do tipo generalizao, incluso (include) e extenso (extend)

12
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Organizao de Use Cases


Packages :
Segurana

Efectuar Backup

Substituir Passwords

Auditar Logs

Help-Desk Submeter Pergunta

Responder

Insistir em Pergunta

13
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Organizao de Use Cases - Generalizao


Uma relao de generalizao entre casos de utilizao permite definir casos custa de outros j existentes, pelo mecanismo de especializao, ou alternativamente, permite definir casos mais abstractos a partir de casos concretos pelo mecanismo da reduo ou generalizao

O use case filho herda o comportamento e semntica do seu pai; o filho pode substituir especificaes definidas no seu pai.
14
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Use Cases um parnteses importante!!!


Relembremos: Um use case uma sequncia de aces que um ou mais actores realizam num sistema para obter um resultado concreto

Tendo em considerao esta definio, Validar Utilizador no dever ser encarado como um verdadeiro caso de utilizao, j que por si s no produz qualquer resultado particular para o sistema. Contudo, nalgumas circunstncias estes pseudo casos de utilizao usam-se no modelo para explicitar comportamentos comuns a vrios casos de utilizao. Em alternativa, tais comportamentos podero alternativamente ser especificados atravs de assunes, ao nvel de cada caso ou mesmo ao nvel geral do modelo.

15
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Organizao de Use Cases - Generalizao de Actores

generalizao de actores
Cliente Cliente Annimo Cliente VIP

16
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Organizao de Use Cases - Incluso

A relao de incluso entre casos de utilizao corresponde a uma relao tpica de delegao, significando que o caso base incorpora o comportamento do outro caso relacionado. Usa-se a relao de incluso para evitar descreverem-se os mesmos fluxos de eventos inmeras vezes (reutilizao)

17
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Organizao de Use Cases - Incluso


Obter Extracto de Conta
include

Validar Utilizador

Use case Obter Extracto de Conta


Nome: Obter Extracto de Conta Cenrio Principal: Incluir caso de utilizao Validar Utilizador. Obter e verificar o nmero da conta. Seleccionar todas as linhas de movimentos realizados nos ltimos 30 dias. Produzir uma lista resumo com esses movimentos, apresentando a data, o tipo de movimento (dbito ou crdito), uma breve descrio e o valor do movimento. Produzir o saldo corrente da conta. Emitir um documento com essa informao, ejectando no terminal de Multibanco o referido documento. Apresentar mensagem no visor do terminal para o cliente retirar o extracto. Registar na conta do cliente que esta operao foi realizada com sucesso.
18
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Organizao de Use Cases - Extenso


Atribui lugar janela

extend

Atribui lugar

Numa relao de extenso o caso base incorpora implicitamente o seu comportamento num local especificado indirectamente pelo caso que o usa. Ou seja, um caso destino pode ser estendido com o comportamento de outro(s) caso(s). Uma relao de extenso permite representar:
A parte de um caso que um utilizador v como opcional, ou como existindo vrias alternativas. Um sub-fluxo de aces que executado apenas se determinadas condies se verificarem. Vrios fluxos de aces que podem ser inseridos num determinado ponto de extenso, de forma controlada, atravs de uma interaco explcita com um actor.

O use case de base estendido num ou mais pontos, designados por pontos de extenso.
19
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Organizao de Use Cases - Extenso


Nome: Obter Extracto de Conta Pontos de Extenso: N de dias Cenrio Principal: Incluir caso de utilizao Validar Utilizador. Obter e verificar o nmero da conta. Seleccionar o n. de dias com base no qual se produz o extracto. (N. de dias). Por omisso so seleccionados os ltimos 30 dias. Produzir uma lista resumo com esses movimentos, apresentando a data, o tipo de movimento (dbito ou crdito), uma breve descrio e o valor do movimento. Produzir o saldo corrente da conta. Emitir um documento com essa informao produzida ejectando no terminal de Multibanco o referido documento. Apresentar mensagem no visor do terminal para o cliente retirar o extracto. Registar na conta do cliente que esta operao foi realizada com sucesso.

20
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Organizao de Use Cases - Extenso


Nome: Selecciona N. de Dias Tipo: Abstracto Cenrio Principal apresentado um cran em que o utilizador pode especificar o n. de dias desejado, atravs da marcao em vrios botes numricos (de 0 a 9). H uma caixa de texto construda dinamicamente que vai apresentando o valor corrente. Por fim, o utilizador marca o boto Confirmar e o valor construdo retornado ao caso destino no seu respectivo ponto de extenso. Cenrio Alternativo 1 Idntico ao cenrio principal. Em qualquer momento o utilizador pode marcar sobre o boto Apagar de modo a apagar o algarismo introduzido mais recentemente. Cenrio Alternativo 2 Idntico ao cenrio principal. Quando o utilizador marca Confirmar e o valor introduzido for superior a 59 dias apresentada uma mensagem de aviso que o nmero mximo 59, e o caso reiniciado. Cenrio Alternativo 3 Idntico ao cenrio principal. Em qualquer momento o utilizador pode seleccionar o boto Cancelar- O caso termina e retornado o valor 1 (dia) por omisso..

21
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Diagramas de Use Cases


Um diagrama de use cases ilustra um conjunto de Use Cases, de Actores, e as suas relaes. Estes diagramas tm duas aplicaes comuns: Modelao do contexto de um sistema; nfase na identificao da fronteira do sistema, dos seus actores e no significado das suas funes. Modelao dos requisitos de um sistema; consiste na identificao do que o sistema deve fazer, independentemente de como o sistema o deve realizar.

22
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Diagramas de Use Cases

Um diagrama de Casos de Utilizao utilizado para ilustrar a interaco entre os actores e os casos de utilizao pelo envio recproco de estmulos. Uma associao de comunicao entre um actor e um caso de utilizao implica uma interaco entre ambos. Cada funo nesta associao tem uma propriedade de navegao, que indica a direco da comunicao. Se for bidireccional, omite-se a representao da direco.

Use Case A Actor Use Case A Actor


23

Use Case A Actor

ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Diagramas de Use Cases - Exemplo

A Mquina de Bebidas

Comprar Bebida
Cliente

Repor Bebidas
Agente do Fornecedor Dono

Retirar dinheiro
Colector

24
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Diagramas de Use Cases - Exemplo


Incluso...
A Mquina de Bebidas Comprar Bebida
Cliente

Repor bebidas
Agente do Fornecedor
include

Dono
include include

Abrir a Mquina

Retirar dinheiro
Colector
include

Fechar a Mquina
25

ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Diagramas de Use Cases - Exemplo


Extenso...

A possibilidade da reposio de bebidas na mquina depender agora de um algoritmo dependente das marcas e do nmero de latas vendidas...

A Mquina de Bebidas
include

Abrir a Mquina

Agente do Fornecedor

Repor Bebidas
Extension Point encher prateleiras

Dono
include

extend (encher prateleiras)

Fechar a Mquina

Repor Bebidas segundo as vendas

26
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Exemplos (certo/errado)

27
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Exemplo...

28
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Exemplo...
Name: Enroll in University Identifier: UC 19 Description: Enroll someone in the university. Preconditions: The Registrar is logged into the system. The Applicant has already undergone initial checks to verify that they are eligible to enroll.

Postconditions: The Applicant will be enrolled in the university as a student if they are eligible.
Basic Course of Action: 1. An applicant wants to enroll in the university. 2. The applicant hands a filled out copy of form UI13 University Application Form to the registrar. [Alternate Course A: Forms Not Filled Out] 3. The registrar visually inspects the forms. 4. The registrar determines that the forms have been filled out properly. [Alternate Course B: Forms Improperly Filled Out]. 5. The registrar clicks on the Create Student icon. 6. The system displays UI89 Create Student Screen. 7. The registrar inputs the name, address, and phone number of the applicant. [Extension Point: UC34 Perform Security Check. Applicable to Step 17] 8. The system determines that the applicant does not already exist within the system according to BR37 Potential Match Criteria for New Students. [Alternate Course F: Students Appears to Exist Within The System]. 9. The system determines that the applicant is on the eligible applicants list. [Alternate Course G: Person is Not Eligible to Enroll] 10. The system adds the applicant to its records. The applicant is now considered to be a student. 11. The registrar helps the student to enroll in seminars via the use case UC 17 Enroll in Seminar. 12. The system calculates the required initial payment in accordance to BR16 Calculate Enrollment Fees. 13. The system displays UI15 Fee Summary Screen. 14. The registrar asks the student to pay the initial payment in accordance to BR19 Fee Payment Options. 15. The student pays the initial fee. [Alternate Course D: The Student Cant Pay At This Time] 16. The system prints a receipt. 17. The registrar hands the student the receipt. 18. The use case ends. Alternate Course A: ..
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

29

Diagramas de Use Cases (uma metodologia)


1. 2.

Identificar os actores do sistema Identificar, para cada actor, os seus casos de utilizao principais
Note-se que podem existir casos que envolvam a participao de mais que um actor.

3.

Factorizar: identificar relaes de incluso


Com base nos casos de utilizao originais, identificar, factorizar e colocar em evidncia casos de utilizao que sejam recorrentes em mais que um dos casos originais. Nessa situao, cria-se o novo caso de utilizao (em geral um caso abstracto) e os casos originais envolvidos estabelecem uma relao de incluso com o dito caso. Repetir o processo at no se conseguir identificar qualquer outro caso a reutilizar

4.

Flexibilizar: identificar relaes de extenso


Para tratar casos de utilizao que pretendam ser flexveis e versteis, definir pontos de extenso (ou de variabilidade) e conjuntamente definir um ou mais casos de utilizao (abstractos) que os permitam estender nesses pontos. Nesta situao, cria-se uma relao de extenso do caso abstracto para o caso estendido.

5.

Especificar textualmente cada caso de utilizao


Seguir um formato previamente definido; no esquecer a explicitao dos pontos de extenso e de incluso anteriormente identificados
30
ACSI/UML-Dynamic, Copyright, Alberto Silva / Jos Borbinha

Vous aimerez peut-être aussi