1 / 29

Unified Modeling Language (UML) - Introdução -

Análise e Concepção de Sistemas de Informação. Unified Modeling Language (UML) - Introdução -. Alberto Manuel Rodrigues da Silva / José Borbinha. UML – Unified Modeling Language : Introdução. Contexto Histórico Âmbito Visão Global Estrutura de Conceitos Mecanismos de Extensão

jud
Download Presentation

Unified Modeling Language (UML) - Introdução -

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Análise e Concepção de Sistemas de Informação Unified Modeling Language (UML)- Introdução - Alberto Manuel Rodrigues da Silva / José Borbinha

  2. UML – Unified Modeling Language: Introdução • Contexto Histórico • Âmbito • Visão Global • Estrutura de Conceitos • Mecanismos de Extensão • Tipos de Dados

  3. Introdução - Contexto Histórico

  4. Introdução - Contribuições para a UML Booch Rumbaugh Jacobson Meyer Pré e Pós Condições Fusion Descrição operações Numeração mensagens Harel Diagramas de Estado Wirfs-Brock Responsabilidades Gamma, et al. Frameworks, patterns, nodes Shlaer-Mellor Ciclos de vida dos objectos Odell Classificação

  5. Introdução - Âmbito UML não é: • Uma metodologia • Um processo de desenvolvimento de software • Dependente de ferramentas CASE • Dependente do domínio de aplicação UML é uma linguagem (Unified Modeling Language) para: • visualização • especificação • construção • documentação ... dos artefactos de um sistema computacional.

  6. Introdução - Âmbito • A UML apresenta como particularidades principais: • Semântica e notação para tratar um grande número de tópicos actuais de modelação. • Mecanismos de extensão de modo que futuras aproximações e notações de modelação possam continuar a ser desenvolvidas sobre o UML. • Semântica e sintaxe para facilitar a troca de modelos entre distintas ferramentas.

  7. Introdução - Âmbito Benefícios que se obtêm com a UML: • Terminam as diferenças, geralmente inconsequentes, entre as linguagens de modelação dos anteriores métodos • Unifica as distintas perspectivas entre diferentes tipos de sistemas (e.g., negócio vs. software), fases de um processo e conceitos internos.

  8. Introdução - Visão Global Um sistema é melhor representado segundo diferentes modelos, visões, facetas ou projecções, complementares.

  9. A Estrutura de Conceitos da UML • “Elementos” • Estrutura • Comportamento • Agrupamento • Anotação • Relações (relacionam “elementos”) • Estruturais ou de Associação • Especialização / Generalização • Realização • Dependência • Diagramas (agrupam “elementos”) • Visão Funcional • Visão Dinâmica • Visão Estática / Estrutural

  10. A Estrutura de Conceitos da UML: Elementos Estrutura

  11. A Estrutura de Conceitos da UML: Relações • Estruturais ou de Associação • Relações de ligação entre classes/objectos (Curso tem 20 Alunos; Carro tem 1 Dono, Aluno frequenta 5 Cursos, ...) • Especialização / Generalização • Relações de herança entre classes (Cliente é uma generalização de Cliente VIP; Aluno Finalista é uma especialização de Aluno; ...) • Realização ou de Interface • Relação em que se define uma interface assegurada por uma entidade (método de uma classe, serviço de um componente ou subsistema, ...) • Dependência • Relações gerais, entre quaisquer elementos do modelo, destinadas apenas a registar o facto de a modelação ou concretização de um elemento depende do outro...

  12. Visão Funcional Diagrama de casos de utilização Diagrama de actividade Visão Dinâmica Diagrama de máquina de estados (state machine diagram) Diagrama de interacção Diagrama de sequência Diagrama de comunicação Diagrama de visão geral da interacção (interaction overview diagram) Diagrama temporal (timing diagram) Visão Estática ou Estrutural Diagrama de pacotes Diagrama de classes Diagrama de objectos Diagrama de estrutura composta (composite structure diagram) Diagrama de componentes Diagrama de instalação A Estrutura de Conceitos da UML: Diagramas Referência extra recomendada: http://www.agilemodeling.com/essays/umlDiagrams.htm

  13. A Estrutura de Conceitos da UML: Exemplos Diagrama de Casos de Utilização: representa a visão funcional do sistema na perspectiva dos seus utilizadores

  14. A Estrutura de Conceitos da UML: Exemplos Diagrama de Classes: especifica a estrutura estática (domínio) de um sistema segundo a abordagem baseada em objectos

  15. A Estrutura de Conceitos da UML: Exemplos Diagrama de Sequências: especifica a dinâmica ou o comportamento de um sistema (interacção entre os objectos)

  16. A Estrutura de Conceitos da UML: Exemplos Diagrama de Actividades: Especifica os processos de negócio ou as actividades de um sistema (exemplo de um processo “Fazer Proposta”)

  17. A Estrutura de Conceitos da UML: Exemplos Diagrama de Componentes: Mostra os componentes de um sistema, com as suas relações, interacções e interfaces públicas (exemplo: arquitectura hardware de um sistema distribuído)

  18. A Estrutura de Conceitos da UML: Exemplos Diagrama de (Transição de) Estados: Descreve os estados e transições entre estados de um objecto

  19. Mecanismos de extensão da UML • Estereótipos (Stereotypes) • Marcas com Valor (Tagged Values) • Constrangimentos (Constraints)

  20. Mecanismos de extensão da UML: Estereótipos http://www.sparxsystems.com/EAUserGuide/index.html?stereotypedlg.htm The OMG UML specification states: "A stereotype is, in effect, a new class of metamodel element that is introduced at modeling time. It represents a subclass of an existing metamodel element with the same form (attributes and relationships) but with a different intent. Generally a stereotype represents a usage distinction. A stereotyped element may have additional constraints on it from the base metamodel class. It may also have required tagged values that add information needed by elements with the stereotype. It is expected that code generators and other tools will treat stereotyped elements specially. Stereotypes represent one of the built-in extensibility mechanisms of UML.“ Um estereótipo é um metatipo • permite definir novos tipos de “coisas” sem se alterar o metamodelo do UML • i.e., permite estender o UML de uma forma consistente. Exemplos • Na modelação de processos de negócio: «trabalhador», «documento», «política» • Na modelação de aplicações específicas: classes de «interface», «controlo», e «entidade»

  21. Mecanismos de extensão da UML: Estereótipos • Um estereótipo define um novo elemento através de: • propriedades (pode providenciar o seu próprio conjunto de marcas) • semântica (pode providenciar a sua próprias restrições) • notação (pode providenciar o seu próprio icon)

  22. Mecanismos de extensão da UML: Estereótipos • Podem ser utilizados para: • alterar o comportamento da geração de código • facilitar a compreensão de um modelo • Estereótipos pré-definidos: • <<actor>>, <<entity>>, <<boundary>>, <<extends>>, ... <<Interface>> <<Control>> <<communicates>> <<Entity>>

  23. Mecanismos de extensão da UML: Marcas com Valor (Tagged value) Declaração explícita de uma propriedade, num par “nome-valor”. Cada “elemento” em UML tem um conjunto de propriedades. Por exemplo, classes têm nome, atributos e operações; associações têm nome e 2 ou mais participantes, etc. “Tagged Values” podem atribuir valoes a essas propriedades, ou definir outras... Com estereótipos introduzem-se novas “coisas” ao UML Com marcas introduzem-se novas propriedades

  24. Mecanismos de extensão da UML: Marcas com Valor • Uma marca com valor não é um atributo de classe! • Deve ser entendido como metadata, pois o seu valor aplica-se ao próprio elemento e não às suas instâncias. • Aplicações Usuais: • geração de código: Ex: {language=Java}, {linker=Blinker} • produção automática de documentação • gestão de configurações: Ex: {autor=AMRS}, {data=...}

  25. Pessoa género:{m, f} Mecanismos de extensão da UML: Restrições(Constraints) Qualquer “coisa” em UML tem uma semântica… • As Restrições permitem adicionar ou alterar a semântica • Uma restrição específica condições que têm de ser validadas para que o modelo seja “bem definido”. • OCL: Object Constraint Language (linguagem para definição de restrições) restrição entre vários elementos Portfolio Empresa {secure-access} 0..1 marido restrição formal usando OCL {or} ContaBancária 0..1 mulher restrição simples {self.mulher.genero=“f” and self.marido.genero=“m”}

  26. Pessoa género:{m, f} Mecanismos de extensão da UML: Restrições(Constraints) Como especificar que uma pessoa pode estar casada apenas com outra pessoa do sexo oposto? {self.mulher.genero=“f” and self.marido.genero=“m”} 0..1 marido 0..1 mulher restrição formal usando OCL OCL (Object Constraint Language) é uma linguagem para especificação formal de restrições; é uma parte definida no UML

  27. Mecanismos de extensão da UML: Restrições(Constraints) Como especificar que uma pessoa, para ser gestor de um departamento tem também de ser, necessariamente, membro desse departamento? Departamento * * {subset} membro gestor 1..* 1 Pessoa

  28. Mecanismos de extensão da UML: Sugestões Ao estender um modelo com estereótipos, valores com marcas, ou restrições, deve ter em conta as seguintes sugestões: • Definir um número reduzido desses elementos. • Escolher nomes curtos e com significado para estereótipos e marcas. • Sempre que a precisão puder ser relaxada usar texto livre para especificação das restrições. Caso contrário, usar OCL.

  29. Tipos de Dados • Um tipo de dadoé uma abstracção utilizada de forma implícita no UML. • Os tipos de dados não são elementos do modelo e por conseguinte não lhe são associados estereótipos, marcas com valor ou restrições. • Um tipo primitivo é um tipo de dados que não tem uma subestrutura. • Exemplos de tipos de dados: • Primitivos: Integer, String, Time • Enumerados: Boolean, AggregationKind, VisibilityKind • Outros: Expression, Mapping, Name, Multiplicity

More Related