Modelação
Aula T05
Engenharia de Requisitos
Modelos Estrutural e Dinâmico
Referências:
– Conceptual Modeling of Information Systems (Capítulos 1.4, 2 e 3)
– UML, Metodologias e Ferramentas CASE (Capítulos 4 e 5)
José Borbinha
Programa
T01-T03 – Módulo 1
– Introdução à Modelação de Sistemas
T04-T07 – Módulo 2
– Modelação Conceptual de Sistemas
• T05
– Engenharia de Requisitos
– Modelo Estrutural
» Modelo de Domínio (introdução)
– Modelo de Dinâmica
» Casos de Uso
T08-T11 – Módulo 3
– Ontologias
"Je n'ai fait celle-ci plus
longue que parce que je
n'ai pas eu le loisir de la
faire plus courte".
(Pascal - 16ª Provinciale)
...Escrevi esta carta longa
porque não tive tempo de
a escrever mais curta...
T12-T15 – Módulo 4
– Modelação de Sistemas: Dinâmica
T16-T18 – Módulo 5
– Modelação de Sistemas: Arquitectura
T19-T25 – Módulo 6
– Temas avançados
Modelação
Mas o que é que isto tem a
ver com a matéria de hoje?
2
Engenharia de
Requisitos
Modelação
3
Engenharia de Requisitos
1. O Processo de Eng.ª de Requisitos
2. Levantamento de Requisitos
3. Análise de Requisitos
4. Negociação de Requisitos
Modelação
4
Sobre Requisitos
• Um requisito é uma condição ou restrição sobre um serviço
ou sistema.
– Um requisito errado significa, mais tarde ou mais cedo, problemas no
projecto (erros, atrasos, ...).
• Engenharia de requisitos é o processo (conjunto estruturado
de actividades) que envolve um levantamento de requisitos
– Não há processos ideias, mas há técnicas já provadas que se podem
usar em algumas situações típicas (a ver adiante...)
• O custo de um processo de levantamento de requisitos
depende da natureza do problema e da metodologia usada,
mas pode ser bastante substancial e nunca deve ser
desprezado!!!
– O resultado de um processo de levantamento de requisitos é
geralmente um “Documento de Requisitos” (a ver adiante...)
Modelação
5
Principais tipos de requisitos
• Requisitos funcionais (RF) dizem o que é que o sistema deve fazer...
Exemplos:
– Deve ser possível obter os nomes de todos os clientes numa lista
ordenada alfabeticamente.
– Sempre que é emitida uma factura deve ser enviado um email para o
responsável financeiro da organização
– Deve ser mantido um registo para todas as operações de alterações de
dados dos últimos 30 dias.
• Requisitos não funcionais (RNF) dizem como é que o sistema deve
ser feito e deve funcionar...
Exemplos:
– A apresentação da lista ordenada dos nomes de todos os clientes não
deve demorar mais do que 1 segundo.
– Todas as interfaces de utilizador devem ser apresentadas em Português e
em Inglês
– O sistema de gestão de base de dados deve ser o MySQL
– Todo o sistema deve ser programado em Java, para ambiente Linux ou
Windows
Modelação
6
Processo Geral de Engenharia de Requisitos
•
•
•
•
•
•
Objectivos de negócio
Necessidades dos utilizadores
Informação sobre o domínio
Informação sobre os sistemas existentes
Normas, leis e regulamentos a cumprir
..,
Identificação de
requisitos
(“elicitation”)
Análise de
Requisitos e
Negociação
Documentação
dos Requisitos
Validação dos
Requisitos
Documento de
Requisitos
Especificação do
Sistema...
Modelação
7
Utilizadores do Documento de Requisitos
• Clientes do sistema
– Especificam ou validam os requisitos
• Gestores de projecto
– Planeamento de custos e prazos para o processo de
desenvolvimento
• Engenheiros de sistemas e desenvolvimento
– Entendimento do sistema a desenhar e desenvolver
• Equipas de teste do sistema
– Usam os requisitos para desenvolver teste de validação
• Equipas de manutenção do sistema
– Usam os requisitos para o melhor compreender
Modelação
8
O standard IEEE/ANSI 830-1993 propõe uma estrutura
para documentos de requisitos de software
1. Introdução
1.1 Propósito do documento 1.2 Contexto do produto
1.3 Definições, acrónimos e abreviaturas
1.4 Referências
1.5 Visão geral do documento
2. Descrição geral
2.1 Perspectiva do produto
2.2 Funções do produto
2.3 Características dos utilizadores
2.4 Restrições gerais
2.5 Assunções e dependências
3. Requisitos específicos
Este ponto aparece tipicamente estruturado em requisitos
funcionais e em requisitos não funcionais...
4. Apêndices
Modelação
9
Classificação de Requisitos Não Funcionais
segundo o IEEE-Std 830 – 1993
•
•
•
•
•
•
Requisitos de desempenho
Requisitos de interface
Requisitos operacionais
Requisitos de recursos
Requisitos de verificação
Requisitos de aceitação
•
•
•
•
•
•
Requisitos de documentação
Requisitos de segurança
Requisitos de portabilidade
Requisitos de qualidade
Requisitos de fiabilidade
Requisitos de manutenção
Modelação
Em cada projecto
concreto devem
ser usadas as
classes que se
considerem
relevantes...
10
Mais exemplos de Requisitos Funcionais
(do livro “Systems analysis and design with UML”)
Modelação
11
Mais exemplos de Requisitos Não Funcionais
(do livro “Systems analysis and design with UML”)
Modelação
12
Níveis de Maturidade do processo de Engenharia
de Requisitos numa organização
• Nível inicial (Initial level)
– Não se reconhece o problema ou pensa-se que o mesmo não
se aplica. Não existe processo. Risco de problemas de
volatilidade de requisitos e custos elevados de alterações. O
sucesso da actividade é muito dependente da capacidade e
experiência individual das pessoas.
• Nível Repetitivo (Repeatable level)
– Reconhecimento do problema e vontade de lidar devidamente
com ele. São definidas normas para os documentos de
requisitos e para os procedimentos de gestão de requisitos,
geralmente copiando ou adaptando modelos exteriores.
• Nível Definido (Defined level)
– O processo está definido com base em boas práticas,
existindo uma preocupação na melhoria activa do processo. O
processo é visto como uma vantagem competitiva da
organização.
Modelação
13
Engenharia de Requisitos
1. O Processo de Eng.ª de Requisitos
2. Levantamento de Requisitos
3. Análise de Requisitos
4. Negociação de Requisitos
Modelação
14
Processo Geral de Engenharia de Requisitos
•
•
•
•
•
•
Objectivos de negócio
Necessidades dos utilizadores
Informação sobre o domínio
Informação sobre os sistemas existentes
Normas, leis e regulamentos a cumprir
..,
Identificação de
requisitos
(“elicitation”)
Análise de
Requisitos e
Negociação
Documentação
dos Requisitos
Validação dos
Requisitos
Documento de
Requisitos
Especificação do
Sistema...
Modelação
15
Técnicas de levantamento de requisitos
•
•
•
•
•
•
•
Questionários
Análise de documentos
Entrevistas
JAD - Joint Application Design
Etnografia
Prototipagem
Casos de Uso (de novo...)
Modelação
16
Questionários
• Relevante num cenário
– Com muitos utilizadores conhecedores profundos do negócio
e já com processos de negócio estabelecidos (mesmo que
não formalizados),
– Em que há uma percepção da necessidade do sistema, mas
há ainda pouco conhecimento consolidado sobre os seus
requisitos, especialmente funcionais.
• Processo
– Seleccionar participantes (representativos dos stakeholders)
– Definir questionário (selecção cuidada das questões)
– Administrar o questionário (definir estratégias para obter
respostas em bom número e de qualidade)
– Follow-up do questionário (enviar os resultados do
questionário aos participantes, para validação, ainda que
implícita, e reconhecimento pelo papel dos mesmos)
Modelação
17
Análise de Documentos
• Relevante num cenário em que já há processos
de negócio bem estabelecidos ou mesmo já
sistemas instalados (cenário “as-is”) que se
pretendem substituir (cenário “to-be”)
• Documentos típicos:
– Formulários
– Relatórios
– Manuais de procedimento
• Procurar documentos e práticas de uso dos mesmos
menos usuais (formulários, procedimentos locais, ...)
Modelação
18
Entrevistas
• Relevante quando os requisitos dependem de um
número relativamente pequeno e bem identificado de
utilizadores ou decisores bastante especializados mas
ao mesmo tempo com perspectivas diferenciadas.
• Adequada a cenários com orgânicas rígidas
• Planeamento
–
–
–
–
Documentar-se e ler material de suporte
Estabelecer claramente os objectivos da entrevista
Decidir quem entrevistar (cuidado com as hierarquias)
Avisar antecipadamente o entrevistado (dando-lhe a
possibilidade de se preparar devidamente)
– Decidir cuidadosamente os tipos de questões e a sua estrutura
Modelação
19
Joint Application Design (JAD)
• Técnica relevante quando se pretende algo de novo mas os
requisitos dependem de um conjunto alargado de classes de
utilizadores ou decisores
• Adequada a cenários de organizações horizontais ou em que a
cultura organizacional suporta a resolução de problemas em grupo
• Processo:
– Organizar entre 2 a 3 sessões de um dia fora do local do trabalho para
minimizar interferências. Planear ambiente funcional, com comida e
bebidas
– Só realizar as reuniões se todos os participantes podem estar
presentes. Um dos participantes deve registar o conteúdo da sessão
• Participantes:
– Pelo menos 1 analista e 1 ou 2 técnicos especializados, que devem ter
papéis passivos (contribuição reservada para a análise)
– 1 moderador, escolhido com base no seu poder de comunicação, não
devendo ser o analista. O supervisor directo do moderador deve
pertencer ao grupo
– 8 a 12 utilizadores
– Um executivo de topo de aparecer como patrocinador, introduzindo
concluindo a sessão
Modelação
20
Análise comparativa da JAD
• Riscos
• Vantagens
– Menos 15% do tempo em
comparação com as
entrevistas individuais
– Permite desenho criativo e
desenvolvimento rápido
– Os utilizadores sentem-se
integrados no
desenvolvimento do sistema
– Permite ao analista efectuar o
levantamento de requisitos
com os utilizadores
Modelação
– Exige que os vários
participantes tenham tempo
disponível para todas as
sessões
– Exige grande esforço de
preparação (ou a sessão pode
não ter sucesso)
– Se o relatório de uma sessão
estiver incompleto pode por em
risco a próxima sessão
– Cultura organizacional pode
não ser na realidade
compatível com a JAD
21
Já agora, a galeria das “figurinhas” difíceis: Esta relação pode ser apresentada no início da
primeira reunião JAD, após as apresentações, a fim de inibir tais procedimentos...
http://blog.nicholas.eti.br/2006/06/23/jad-joint-application-design/
O Atrasadinho
- Sempre chega atrasado. Dá seu “show” na chegada.
O que sai mais cedo
- Abala a energia e a moral do grupo.
O Ampulheta
- “Joga areia” em todas as ideias.
- Sempre esfriando o entusiasmo do grupo, dizendo algo como “isso nunca vai funcionar”.
O desinteressado
- Senta afastado da mesa ou no fundo da sala.
- Pode cochilar, ler alguma coisa, ficar rabiscando papéis.
O disco quebrado
- Traz de volta sempre o mesmo ponto.
- Dificulta o avanço do grupo para novos itens.
O cochichador
- Vive cochichando durante as reuniões, mantendo conversas paralelas.
O Rei da Voz
- Fala muito e excessivamente alto. Domina a discussão.
- Parece impossível fazê-lo calar.
O Intérprete
- Sempre fala por outra pessoa, normalmente sem ser solicitado.
- Recoloca ideias alheias distorcendo-as durante sua explanação.
O Móveis e Utensílios
- Usa credencias como idade e tempo de casa para fazer prevalecer suas ideias.
O Ocupado
- Sempre entrando e saindo das reuniões com papéis debaixo do braço.
- Permite que seja chamado frequentemente por secretárias e subordinados.
- Tenta dar a impressão de muito ocupado e portanto, muito importante.
Modelação
22
Etnografia
• Técnica desenvolvida na área das ciências sociais. Relevante
quando já existem processos em prática mas é difícil
descrever como que se realizam. A solução é observar como
as tarefas são realizadas e tentar depois fazer o “reverse
engineering” dos processos.
• Permite detectar divergências entre os métodos de trabalho
usados e a sua definição formal
• Processo:
–
–
–
–
–
–
Procurar métodos de trabalho pouco usuais
Estabelecer uma relação de confiança com os utilizadores
Manter notas detalhadas sobre os métodos de trabalho.
Combinar observação com entrevistas abertas
Organizar sessões regulares de esclarecimento
Só por si esta técnica é insuficiente, pelo que se devem usar
sempre outras técnicas como complemento
Modelação
23
Prototipagem
• Protótipos são versões iniciais de um sistema para experimentação
que devem estar disponíveis durante o levantamento de requisitos.
• Técnica relevante quando é necessário testar provas de conceito
(especialmente em cenários de grande inovação), especialmente
quando o resultado final depende bastante de pormenores de
interface.
• Processos
– Protótipos “throw-away”: ajudam ao levantamento e desenvolvimento
dos requisitos difíceis de perceber
– Protótipos Evolutivos: desenvolvimento rápido de uma versão inicial do
sistema, especialmente quando já há requisitos bem definidos e
aceites
• Os protótipos podem ser feitos na mesma tecnologia do sistema
final (protótipos evolutivos), ou noutra tecnologia mais adequada a
fins de curto prazo (especialmente para protótipos “throw-away”)
Modelação
24
Prototipagem em papel,,,
Modelação
25
Casos de Uso (ver continuação adiante...)
•
•
•
•
•
A técnica de casos de uso ajuda a capturar os requisitos de um
sistema através do detalhe de todos os cenários de interacção do
sistema com o seu exterior.
O resultado de um processo de desenho de casos de uso deve ser um
conjunto de diagramas (tipicamente em UML, representando-se mais
que um caso em cada diagrama) e um conjunto de descrições textuais
(uma para cada caso)
Um caso de uso deve ser representado num modo impessoal, por uma
frase na voz activa, com um verbo no infinitivo (“Registar Cliente”, “Emitir
Factura”, “Efectuar Compra”, ...)
Os casos podem ser usados como técnica de levantamento de requisitos, e
depois mais tarde também para fazer a ponte entre os requisitos e a
modelação do comportamento de um sistema (tipicamente o desenho do
modelo da dinâmica de um sistema começa com a análise dos seus casos
de uso)
Por ser mais genérica, a descrição dos casos de uso pode aparecer na
documentação de requisitos, antes da enunciação dos mesmos (na
descrição geral do sistema), para ajudar ao entendimento do contexto.
Modelação
26
Engenharia de Requisitos
1. O Processo de Eng.ª de Requisitos
2. Levantamento de Requisitos
3. Análise de Requisitos
4. Negociação de Requisitos
Modelação
27
Processo Geral de Engenharia de Requisitos
•
•
•
•
•
•
Objectivos de negócio
Necessidades dos utilizadores
Informação sobre o domínio
Informação sobre os sistemas existentes
Normas, leis e regulamentos a cumprir
..,
Identificação de
requisitos
(“elicitation”)
Análise de
Requisitos e
Negociação
Documentação
dos Requisitos
Validação dos
Requisitos
Documento de
Requisitos
Especificação do
Sistema...
Modelação
28
Análise de Requisitos
• O objectivo é encontrar problemas, falhas
e inconsistências
• A análise deve ser intercalada com o
levantamento de requisitos e suportada
por uma lista de verificação de problemas
Modelação
29
Lista típica de verificação de requisitos
• Para cada requisito concreto aplicar verificação:
– Desenho prematuro: Verificar se inclui informação prematura sobre o
design ou a implementação
– Detalhe: Verificar é um único requisito ou se o mesmo deve ser dividido em
diferentes requisitos
– Necessidade: Verificar se é apenas uma adição “cosmética” ao sistema.
– Tecnologia não normalizada: Detectar se o requisito obriga ao uso de
hardware ou outra tecnologia não “standard”.
– Conformidade com os objectivos de negócio: Verificar se é consistente com
os objectivos definidos na introdução do documento de requisitos
– Ambiguidades: Verificar se o requisito pode ser lido de forma diferentes por
diferentes pessoas e quais as interpretações possíveis?
– Realismo: Verificar se o requisito é realista, especialmente tendo em conta
o custo e a tecnologia a ser usada para implementar o sistema
– Teste: Verificar se é possível derivar um teste a partir da descrição do
requisito que mostre que o sistema satisfaz esse requisito
Modelação
30
Matrizes de Interacção
• Técnica para determinar as interacções entre
requisitos, evidenciando conflitos e sobreposições:
– 0
=> Requisitos independentes
– 1
=> Requisitos em conflito (contraditórios)
– 1000 => Requisitos sobrepostos (dizem a mesma
coisa, total ou parcialmente)
Requirement
R1
R2
R3
R4
R5
R6
R1
0
0
1000
0
1
1
R2
0
0
0
0
0
0
R3
1000
0
0
1000
0
1000
Modelação
R4
0
0
1000
0
1
1
R5
1
0
0
1
0
0
R6
1
0
1000
1
0
0
31
Engenharia de Requisitos
1. O Processo de Eng.ª de Requisitos
2. Levantamento de Requisitos
3. Análise de Requisitos
4. Negociação de Requisitos
Modelação
32
Processo Geral de Engenharia de Requisitos
•
•
•
•
•
•
Objectivos de negócio
Necessidades dos utilizadores
Informação sobre o domínio
Informação sobre os sistemas existentes
Normas, leis e regulamentos a cumprir
..,
Identificação de
requisitos
(“elicitation”)
Análise de
Requisitos e
Negociação
Documentação
dos Requisitos
Validação dos
Requisitos
Documento de
Requisitos
Especificação do
Sistema...
Modelação
33
Negociação de requisitos
• A negociação de requisitos tenta encontrar soluções de
concordância. Pode ser um processo demorado, pois
obriga a consensos
• Fases do Processo:
– Informação: Explicar os problemas associados com os requisitos
a negociar
– Discussão: “Stakeholders” devem ter oportunidade de comentar
os requisitos que lhes dizem respeito. Usar esta fase para
atribuir prioridades aos requisitos
– Resolução: Eliminar, alterar ou refinar o requisito
Modelação
34
Sobre Linguagens
de Modelação
Perspectiva Geral
Modelação
35
Relembrando da aula T04...
• O modelo de um domínio, do sistema, ou base de
informação*, são as entidades e relações desse domínio
*Termo usado em “Conceptual Modeling of Information Systems”
• A descrição do modelo de domínio de um sistema é o
esquema estrutural desse sistema.
• O esquema de comportamento especifica as acções
válidas e as mudanças no estado do domínio que o
sistema pode executar
• Ao conjunto formado pelo esquema estrutural e pelo
esquema de comportamento de um sistema dá-se o
nome de esquema conceptual.
Modelação
36
Diagrama de Classes dos diagramas da linguagem UML 2.0
Comportamento e Estrutura
(http://www.omg.org/)
Modelação
37
Diagrama de Classes dos diagramas da linguagem
SysML (subconjunto da UML com extensões para satisfazer requisitos
de engenharia de sistemas.. voltaremos a isto nos módulos 5 e 6...)
http://www.omgsysml.org/)
Modelação
38
Diagrama de Classes dos diagramas da linguagem SysML
Modelação
39
Modelo Estrutural
Modelo de Domínio
Modelação
40
• Entidades e relações...
• o que se explicar aqui do modelo pode-se
depois aproveitar para suportar o resto da
conversa dos casos de uso (i.e., casos de
uso são entidades e relações tal como nos
diagramas de domínio...)
Modelação
41
Modelação da Estrutura
• Uma visão pragmática:
– Classes
– Relações
– Diagramas de Classes
Nota: Adiante vamos apresentar uma explicação
muito pragmática destes conceitos. Mais
adiante no curso iremos voltar a este assunto
para os formalizar melhor...
Modelação
42
Classes
Uma classe representa um conceito ou
categoria de objectos que partilham:
– atributos (que determinam o estado dos objectos)
– operações (que definem o comportamento)
Nome da classe
Estereótipo de
representação
de uma classe
em UML
Pessoa
Nome
Atributo da classe
atribuirNome()
retornarNome()
Modelação
Operações da classe
43
Uma classe bem estruturada
• Providencia uma abstracção definida a partir do
vocabulário do domínio do sistema
• Agrega um conjunto restrito e bem definido de
propriedades
• Providencia uma separação clara entre a
especificação abstracta e a sua implementação
• É simples e facilmente entendida.
Modelação
44
Modelação da Estrutura
• Uma visão pragmática:
– Classes
– Relações
– Diagramas de Classes
Modelação
45
Relações
• Uma relação é uma ligação entre elementos.
• Numa linguagem de modelação orientada a objectos os
três tipos de relações mais importantes são:
– Dependências
– Generalizações
– Associações
Relação
Carro
Pessoa
Nome
Modelo
atribuirNome()
VelocidadeMax()
retornarNome()
ConsumoMedio()
Modelação
46
Relações - Dependência
Uma dependência indica que a alteração na especificação de um
elemento (por exemplo, pacote “UML 0.9”) pode afectar outro elemento
que o usa (pacote “UML 1.0”) mas não necessariamente o oposto.
Em UML as dependências são usadas entre normalmente com
packages, componentes e notas.
Modelação
47
Relações - Generalização
Shape
Uma generalização é uma relação
entre um elemento geral
(superclasse) e um tipo mais
específico desse elemento
(subclasse).
Geralmente conhecida como uma
relação “is-a” ou “is-a-kind-of”.
origin
move()
resize()
display()
Rectangle
corner: Point
Circle
radius: Float
Polygn
points: List
Square
No contexto de classes usam-se generalizações para ilustrar
relações de herança.
Modelação
48
Relações - Associação
Uma associação é uma relação semântica entre dois ou mais
elementos de um modelo.
• Este exemplo lê-se:
• Uma pessoa pode trabalhar para várias empresas (0 ou mais).
• Numa empresa trabalham 1 ou mais pessoas.
Modelação
49
Relações - Associação
• Multiplicidade de uma associação
– Define quantos objectos participam na relação
– O número de instâncias de uma classe relacionadas com uma
instância da outra classe
– Especificada para cada participante (classe) da associação
Não especificada
Apenas uma
1
Zero ou mais
0..* ou apenas *
Uma ou mais
1..*
Zero ou uma
0..1
Intervalo especificado
2..4
Valores e intervalos múltiplos
Modelação
2, 4..6
50
Relações – Associação
• Relações entre classes do tipo “is-part-of” ou “has-a” são representadas
através de agregação.
... uma Pessoa
pode existir sem
uma Empresa...
• Uma composição é uma agregação forte ( “todo” em relação à “parte”) e
com tempo de vida delimitado (as “partes” não podem existir sem o “todo”).
O “todo” é responsável pela criação e destruição das suas “partes”.
... um
Departamento
não existe sem o
contexto de uma
Empresa...
Modelação
51
Relações - Associação
Modelação
52
Relações – Associação...
• «Uma mesa é constituída por um tampo e por quatro pernas…»
• «Uma mesa é constituída por um tampo e por duas a seis pernas, as
quais têm de estar ordenadas…»
Mesa
Mesa
1
1
1
1
1
1
4
Tampo
Tampo
Ordem
2..6
Perna
Perna
Modelação
53
Relações - Associação
• Classes-Associação
• Numa associação entre classes, a associação pode
também ter as suas próprias propriedades, devendo ser,
por conseguinte, modelada também como uma classe.
Pessoa
*
1..*
empregado
empregador
Empresa
Tarefa
descrição
dataInício
salário
Modelação
classe associação
54
Relações - Associações Reflexivas
Quando uma classe tem uma associação consigo própria...
Departamento
*
professor 1
sub-departamento
1
“um departamento
universitário pode
conter outros
departamentos”
Docente
*
assistente
• “um docente, enquanto
professor, pode ser responsável
por outros docentes, designados
por assistentes”
• “um docente, enquanto
assistente, está dependente de
um outro docente, designado por
professor”
Modelação
55
Modelação da Estrutura
• Uma visão pragmática:
– Classes
– Relações
– Diagramas de Classes
Modelação
56
Diagramas de classes
• Representam o modelo de domínio (a visão lógica) do
sistema, expressa pelo conjunto de todas as suas
classes e respectivas relações.
• Elementos UML que são representados num diagrama
de classes:
– Classes e sua estrutura interna
– Relações
•
•
•
•
•
Tipos (Associações, Agregações, Dependências, Generalização)
Multiplicidade
Navegabilidade
Nome da relação e papel de cada interveniente
....
Modelação
57
Modelação
58
Modelação
59
Modelo de
Dinâmica
Casos de Uso
Modelação
60
Organização de Casos de Uso - Generalização
• Uma relação de generalização entre casos de utilização permite
definir casos à custa de outros já existentes, pelo mecanismo de
especialização, ou alternativamente, permite definir casos mais
abstractos a partir de casos concretos pelo mecanismo da redução
ou generalização
• O caso de uso filho herda o comportamento e semântica do seu
pai; o filho pode substituir especificações definidas no seu pai.
Modelação
61
Casos de Uso - Generalização de Actores
generalização
de actores
Cliente
Cliente Anónimo
Cliente VIP
Modelação
62
Casos de Uso - Inclusão
• A relação de inclusão entre casos de uso corresponde a uma
relação típica de delegação, significando que o caso base
incorpora o comportamento do outro caso relacionado.
• Usa-se a relação de inclusão para evitar descreverem-se os
mesmos fluxos de eventos inúmeras vezes… (reutilização)
Modelação
63
Casos de Uso - Extensão
• Numa relação de extensão 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 outros casos.
• Uma relação de extensão permite representar:
– A parte de um caso que um actor vê como opcional, ou como existindo várias
alternativas.
– Um sub-fluxo de acções que é executado apenas se determinadas condições
se verificarem.
– Vários fluxos de acções que podem ser inseridos num determinado ponto de
extensão, de forma controlada, através de uma interacção explícita com um
actor.
• O caso de uso de base é estendido num ou mais pontos, designados por
“pontos de extensão”.
Atribui lugar
à janela
«extend»
Atribui lugar
Modelação
64
Diagramas de Casos de Uso

Um diagrama de casos de uso ilustra um conjunto de Casos de Uso,
de Actores, e as suas Relações, com objectivos de
 Modelação do contexto de um sistema, com ênfase na
identificação da fronteira do sistema, dos seus actores e no
significado das suas funções.
 Modelação dos requisitos de um sistema, consistindo na
identificação do que o sistema deve fazer e independentemente
de como o sistema o deve realizar.
Modelação
65
Diagramas de Caso de Uso
• Um diagrama de Casos de Utilização é utilizado para ilustrar a interacção
entre os actores e os casos de utilização pelo envio recíproco de
“estímulos”.
• Uma associação de comunicação entre um actor e um caso de utilização
implica uma interacção entre ambos.
• Cada função nesta associação tem uma propriedade de navegação, que
indica a direcção da comunicação.
• Se for bidireccional, omite-se a representação da direcção.
Use Case
A
Actor
Use Case
A
Use Case
A
Actor
Actor
Modelação
66
Diagramas de Caso de Uso - Exemplo
A Máquina de Bebidas
Comprar Bebida
Cliente
Repor Bebidas
Agente do
Fornecedor
Dono
Retirar dinheiro
Colector
Modelação
67
Diagramas de Caso de Uso – Exemplo com Inclusão
A Máquina de Bebidas
Comprar Bebida
Cliente
Repor bebidas
Agente do
Fornecedor
Dono
«include»
Abrir a
Máquina
«include»
«include»
Retirar dinheiro
Colector
«include»
Modelação
Fechar a
Máquina
68
Diagramas de Caso de Uso – Exemplo com Extensão
• Representa-se agora a possibilidade da reposição de bebidas na
máquina depender de um algoritmo considerando as marcas e número
de unidades vendidas...
A Máquina de Bebidas
«include»
Agente do
Fornecedor
Abrir a
Máquina
Repor Bebidas
Dono
Extension Point
encher prateleiras
«include»
Fechar a
Máquina
«extend»
(encher prateleiras)
Repor Bebidas
segundo as vendas
Modelação
69
Download

cad-Mod-2008_T05