Modelagem de Processos
Prof.: Fernando Ascani
Regras e mecanismos da UML
REGRAS
Especificam o que deverá ser um modelo “bem-formado”.
Um modelo bem formado é aquele que é semanticamente consistente e em harmonia com todos os outros modelos a ele relacionados.
Regras
A UML tem regras semânticas para:
• Nomes
Nomes de coisas, relacionamentos e diagramas
• Escopo
O contexto que dá significado específico a um nome
• Visibilidade
Como esses nomes podem ser vistos e usados por outros
• Integridade
Como as coisas relacionam entre si de maneira própria e consistente
• Execução
O que significa rodar ou simular um modelo.
Regras e mecanismos da UML
Mecanismos
Construções são mais harmônicas se são construídas de acordo com características comuns (pertencente a muitos) padrões.
- Por exemplo, existem estilos: vitoriano, barroco, etc A UML utiliza 4 mecanismos comuns:
• Especificações
• Adorno
• Divisão comum
• Mecanismos de extensão
Mecanismos
Especificações
A UML não é só uma linguagem gráfica – por trás de toda parte
gráfica há uma especificação que define a sintaxe e semântica de um elemento.
Por exemplo, uma classe pode ser mostrada na forma de ícone ou na forma convencional com um ou mais compartimentos mas a
especificação a ela associada é sempre a mesma.
A UML permite uma notação gráfica ou de especificação.
Mecanismos
Especificações
Na notação de especificação são definidos os detalhes de um elemento.
A especificação pode ser construída incrementalmente e estará sempre por trás, valendo para qualquer tipo de exibição utilizado.
As especificações UML provêm um pano de fundo que envolve todas as partes de um modelo.
Um diagrama pode ser considerado uma projeção visual do sistema em um pano de fundo, cada diagrama revelando aspectos
interessantes do sistema.
Mecanismos
Adornos
São itens gráficos ou visuais adicionados à notação básica de um elemento para permitir a especificação de detalhes.
A UML oferece notações gráficas que provêm uma representação visual dos aspectos mais importantes de um elemento.
Adornos podem ser adicionadas a essas representações para acrescentar detalhes.
Mecanismos
Adornos
Uma Nota é um adorno para um comentário preso a um elemento ou a uma coleção de elementos.
Como a UML nunca será capaz de captar 100% das ideias reais do Projeto, usamos as Notas para expressar pequenos detalhes,
pequenas observações, visando complementar a informação presente no elemento, no relacionamento entre elementos, etc.
Mecanismos
Divisão Comum
Dicotomia (divisão em dois) de conceitos utilizados na UML.
Pode dividir classes e objetos e/ou especificação/implementação, por exemplo.
Quase todos os elementos de modelagem apresentam essa dicotomia.
Mecanismos de Extensão
Mecanismos que pretendem estender a linguagem de uma maneira controlada.
• Estereótipos
• Definição de etiquetas (Valores Rotulados / Tagged Values / Tag Definition)
• Restrições (Constrains)
Mecanismos de Extensão
Estereótipos
Permite estender o vocabulário da linguagem, criando novos elementos de modelagem.
O estereótipo estende a semântica mas não a estrutura do elemento.
Pode-se criar novos ícones para representar esses elementos em um forma gráfica individualizada
Mecanismos de Extensão
Definição de Etiqueta
A definição de etiqueta é uma propriedade declarada em um estereótipo.
Essa propriedade é utilizada em tempo de modelagem.
O valor etiquetado é associado ao elemento de modelagem, não a suas instâncias.
Mecanismos de Extensão
Restrições (Constraints)
Uma restrição estende a semântica de um elemento UML, permitindo a definição de novas regras ou modificar regras existentes.
Modelagem de regras de negócio
Regras de Negócio - Definição
Regras de negócios são declarações de políticas ou condições que devem ser cumpridas.
As regras de negócios são tipos de requisitos de como os negócios, incluindo suas ferramentas de negócios, devem operar.
Elas podem ser leis e regulamentos impostos ao negócio, mas também expressam a arquitetura e o estilo de negócio escolhido.
Categorias de Regras de Negócios
As regras de negócios podem ser classificadas pelas categorias:
• Regras de restrição – Especificam políticas e condições que restringem o comportamento e estrutura dos objetos
• Regras de derivação - Especificam políticas ou condições para deduzir ou calcular fatos de outros fatos
• Regras de dedução - especificam que se determinados fatos são verdadeiros, uma conclusão pode ser deduzida.
• Regras de Cálculo - Derivam seus resultados pela forma de processar algoritmos, uma variante mais sofisticada de regras de dedução.
Regras de Restrição
• Regras de estímulo e resposta - restringem o comportamento especificando quando e se as condições devem ser verdadeiras para que o comportamento seja disparado.
• Regras de restrição de operação especificam as condições que devem ser verdadeiras antes e após uma operação para garantir que a operação seja executada corretamente.
• Regras de restrição de estrutura especificam políticas ou condições sobre classes, objetos e seus relacionamentos que não podem ser violados.
OCL
As regras de negócios devem ser expressas rigorosa e formalmente para que sejam uma base para automação.
Uma alternativa pode ser o uso da Linguagem de Restrição de
Objetos (OCL – Object Constraint Language) conforme especificado na Linguagem Unificada de Modelagem.
OCL é uma linguagem declarativa para descrever as regras que se aplicam ao padrão UML.
É uma linguagem proposta para ser utilizada em conjunto com outras ferramentas, tais como os diagramas de classes da UML.
OCL
Algumas vezes a UML não é suficiente para expressar todas as informações necessárias somente pelas suas notações diagramáticas.
A OCL é uma linguagem de expressões para especificar restrições sobre modelos orientados a objetos ou outros artefatos da linguagem UML.
É uma linguagem de texto precisa que fornece afirmações em um modelo orientado a objeto que não possam ser expressados pela notação por diagramas.
Uma das suas principais características é que seu uso não exige um forte conhecimento matemático para ser utilizada corretamente.
OCL
A OCL pode ser utilizada para:
• Para especificar invariantes em classes e tipos do modelos de classes
• Especificar tipos invariantes para estereótipos
• Descrever pré e pós condições em operações
• Como uma linguagem de navegação entre associações
• Como uma linguagem de consulta
• Para descrever protetores.
• Para especificar o alvo das mensagens e ações.
• Para especificar regras de derivações para atributos.
• Especificar restrições sobre operações.
B u rn in g E a rn in g T ra n s a c tio n
po in t s : In te g er da te : D a t e pr o g ra m( ) Lo y a lt yA c c ou n t
po in t s : In te g er ea rn ()
bu rn () is E m pt y( )
0 .. n + tr a n s a c tio n s 0 .. n
C u s to m e r C a rd v a lid : B o o le a n v a lid F ro m : D a te g o o d T h ru : D a te
c o lo r : e n u m {s ilv e r , g o ld } p r in te d N a m e : S tr in g
0 ..n
+ t r a ns a c tion s 0 ..n
+ c a rd S e r v ic e
c o n d itio n : B o o le a n p o in ts E a r n e d : In te g e r p o in ts B u r n e d : In te g e r d e s c r ip tio n : S tr in g
0 ..n + tra n s a c tio n s
0 ..n
M e m b e r s h ip
0 ..1
0 ..1 + c a rd
C u s to m e r n a m e : S tr in g title : S trin g is m a le : B o o le a n d a te O fB ir th : D a te a g e ( )
0 ..n + c a rd s 0 ..n + o w n e r
P r o g ra m P a r tn e r
n u m b e r O fC u s to m e r s : In te g e r
0 ..n + d e liv e r e d S e rv ic e s 0 ..n
Lo y a lt yP r o g r a m
e n ro ll( ) 0 ..n 0 .. n0 .. n
+ p r o g r a m 0 ..n 1 ..n
1 ..n 1 ..n
+ p a r tn e r s 1 ..n
S e r v ic e L e v e l n a m e : S tr in g
0 ..n
+ a v a ila b le S e rv ic e s 0 ..n
0 ..n 0 ..n
+ a c tu a lL e v e l
1 ..n 1 ..n
Invariantes
<<invariant>>
Context Customer inv:
self.age() >= 18
Customer name : String title : String
ismale : Boolean dateofBirth : date age()
<<invariant>>
Context Customercard inv:
printedname = customer.title.concat(
customer.name)
CustomerCard valid : Boolean validfrom : Date goodThru : Date printedName : string