1 Unified Modeling Language (UML) - Modelação da Arquitectura - Alberto Silva / José Borbinha...

Preview:

Citation preview

1

Unified Modeling Language (UML)- Modelação da Arquitectura -

Alberto Silva / José Borbinha

Análise e Concepção de Sistemas de Informação

2

3

Modelação da Arquitectura

• Introdução• Componentes

• Diagramas de Componentes

• Nós

• Diagramas de Instalação

4

Diagramas de Arquitectura

Diagramas de arquitectura (ou estrutura) permitem

• A descrição física do software: Os diagramas de componentes são usados para modelar a arquitectura de um sistema na perspectiva dos seus componentes de software (e.g., ficheiros de código fonte, de executáveis, de configuração, tabelas de dados, documentos de gestão do projecto), explicitando principalmente as suas múltiplas dependências.

• A descrição física do hardware: Os diagramas de instalação, por outro lado, são usados para modelar a arquitectura de um sistema na perspectiva dos seus componentes de hardware (e.g., computadores, adaptadores de rede, impressoras, routers, cablagem), explicitando as suas dependências de comunicação.

• A integração do software com o hardware: Os diagramas de instalação com componentes são usados para modelar um determinado ambiente de execução com componentes, através da identificação de instâncias de componentes que são instaladas em determinada instância de nó computacional.

5

Modelação da Arquitectura

• Introdução

• Componentes• Diagramas de Componentes

• Nós

• Diagramas de Instalação

6

Componentes (de software)

• Um componente de software é uma agregação de várias peças de software.

• Um componente pode concretizar uma ou mais classes.

• Vantagens e motivações para a construção de modelos de componentes:– os clientes podem ver a estrutura final do sistema– a equipa de desenvolvimento tem uma estrutura de

orientação que lhe permite trabalhar de forma controlada– a equipa de documentação e ajudas (help) podem

entender melhor o âmbito do seu trabalho– promove-se a reutilização– ...

7

Componentes

8

Componentes e Interfaces (outra vez...)

Interface– Providencia uma separação clara entre a vista

externa e a vista interna de uma abstracção– Permite compreender melhor uma abstracção

sem conhecer os seus detalhes de implementação

– Promove a abstracção; desenvolvimento baseado em componentes; separação de aspectos

– Suportada por algumas linguagens de programação (e.g., Java, Corba IDL, COM IDL, …)

– A adequada definição de interfaces é essencial para um bom desenho e desenvolvimento de sistemas OO

9

Componentes e Interfaces (outra vez...)

exemplo de interfaces de uma componente em Active-X...

WP.exe wordsmith.dll

ISpell<<Interface>>

ISpell

WP.exe wordsmith.dll

10

Componentes e Interfaces

exemplo de interfaces de uma componente em Active-X...

wordsmith.dll

componente

ISpell

IThesaurus

IUnknown

interfaces

11

Componentes e Interfaces

As interfaces têm um impacto significativo nos conceitos de substituição e reutilização de componentes:

– Pode-se substituir um componente por outro, se o novo componente providenciar as interfaces do anterior

– Pode-se reutilizar um componente noutro sistema, se o novo sistema puder aceder e reutilizar o componente através das suas respectivas interfaces

Substituição e Reutilização

12

Componentes

Componentes de trabalho, a partir dos quais são criados os componentes de instalação (ficheiros com código fonte, ficheiros de dados, documentos, ...)

Componentes de instalação, constituem a base dos sistemas executáveis (DLL, executáveis, controlos Active-X, classes Java, ...)

Componentes de execução, criados como resultado da execução de um sistema, ou seja, correspondem a instâncias dos componentes de instalação (processos, threads, agentes de software, ...)

NOTA: Os componentes de execução são apenas representados nos diagramas de instalação (como instâncias de “componentes de instalação”)

Tipos de Componentes

13

Componentes

• Estereótipos para componentes (UML, v1.3)

«document»: denota um documento.

«executable»: denota um programa que possa ser executado num nó.

«file»: denota um documento contendo código fonte ou dados.

«libary»: denota uma biblioteca dinâmica ou estática.

«table»: denota uma tabela de uma base de dados.

14

Modelação da Arquitectura

• Introdução

• Componentes

• Diagramas de Componentes • Nós

• Diagramas de Instalação

15

Diagramas de Componentes

Um diagrama de componentes ilustra as dependências entre vários componentes de software.

Incluem-se nesta definição lata, por exemplo, artefactos: de código fonte, de código binário, de código executável, procedimentos de negócio, documentos...

Notas: Um diagrama de componentes representa apenas tipos de

componentes e nunca instâncias de componentes (para ilustrar instâncias de componentes devem ser usados diagramas de instalação)

Apenas se ilustram componentes executáveis...

16

Diagramas de Componentes

Componentes de Instalação e Interfaces…

A relação entre interface e componente designa-se por realização

17

Diagramas de Componentes

Relação entre Componentes

18

Diagramas de Componentes

Representação de vários detalhes de um componente

19

Diagramas de Componentes

Um componente pode conter outros componentes: inclusão física

Componentes com Componentes…

wordsmith.dll

wordsmith.dll

Speller.obj

Thesaurus.obj

Speller.obj

Thesaurus.obj

20

Diagramas de Componentes

Exemplo1: Página Web com um applet Java

demo/applets/Animator/example1.html

<html> <head> <title>The Animator Applet - example 1</title> </head> <body> <h1>The Animator Applet - example 1</h1> <applet codebase=".“ code=Animator.class width=46 height=160> </applet> <a href="Animator.java">The source.</a> <hr> </body></html>

21

Diagramas de ComponentesExemplo: Pretende-se o diagrama de componentes da aplicação WinCOR, desenvolvida sobre ambiente

Windows, para gestão de correspondência de uma organização, que consiste no seguinte conjunto de componentes de instalação:

wincor.exe: ficheiro que contêm o executável da aplicação pblib32.dll, sde32.dll, sdemdb32.dll: bibliotecas com código binário de funcionalidades adicionais wincor.hlp: ficheiro de ajuda sobre a aplicação. wincor.ini: ficheiro de configuração da aplicação entrada.db, saida.db: ficheiros/tabelas da base de dados de suporte

22

Modelação da Arquitectura

• Introdução

• Componentes

• Diagramas de Componentes

• Nós• Diagramas de Instalação

23

Nós

Um nó é um objecto físico que representa uma recurso, geralmente tendo capacidades de memória e de processamento.

24

Nós e instâncias

25

NósOs nós podem consistir em recursos

– computacionais (hardware)– humanos– organizacionais – processamento mecânico

Nós e Componentes

Semelhanças Ambos podem participar em relações de

generalização, dependência e associação Ambos podem ser aninhados Ambos podem ter instâncias Ambos podem participar em interacções

Diferenças Componentes são coisas que participam na

execução de um sistema Nós são coisas que executam componentes

Componentes representam agrupamento de elementos lógicos

Nós representam a instalação fisica de componentes

26

Modelação da Arquitectura

• Introdução

• Componentes

• Diagramas de Componentes • Nós

• Diagramas de Instalação

27

Diagramas de Instalação (“deployment”)

O objectivo dos diagramas de instalação é mostrar a configuração de hardware de um sistema, consistindo na identificação de...

• nós (computadores, periféricos, …)• instâncias de componentes de software• objectos

...bem como nos canais de comunicação existentes entre esses nós...

28

Diagramas de Instalação

Podem-se representar os componentes relevantes que existem ou são suportados em determinado nó…

(relação de dependência, de estereótipo «support»)

Nós e Componentes

29

Diagramas de Instalação

Embora a ligação seja o tipo de associação mais comum entre dois nós, outros tipos de associações (e.g., agregação e dependência) são também possíveis.

“connection”: associação que representa a ligação fisica entre nós

30

Diagramas de Instalação

Nós e Componentes

31

Diagramas de Instalação - Exemplo

“O sistema de trabalho doméstico”: Diagrama de componentes e Diagrama de instalação com componentes

32

Diagramas de Instalação...

33

Diagramas de Instalação - Exemplo (2)

Web Browser (e.g., IE)

Servidor Web (e.g., IIS, Apache)

Interfaces Web (e.g., HTML, JSP, ASPX)

Servidor Base Dados (e.g., Oracle, SQL Server)

Componentes Aplicacionais (e.g., .NET, EJB)

Base Dados

Servidor Map (e.g., ArcIMS, MapGuide)

Ficheiro SIG (e.g., .shp, .dwg)

Editor SIG-C-Gás (e.g., baseado em ArcEditor, Map, GeoMedia)

Servidor Aplicacional (e.g. .NET/COM+, J2EE)

HTTPHTTP

PC com acesso ao SIG-C-Gás, via Web

Browser

PC com SIG-C-Gás e GestãoGIS

Servidor SIG-C-Gás

34

Relações entre Diagramas de Componentes e de Instalação

Exemplo: Sistema de informação de uma universidade

35

Exemplo: Diagrama de Componentes do Sistema de informação de uma universidade

36

Exemplo: Diagrama de Instalação do Sistema de informação de uma universidade

37

Exemplo: Sistema de informação de uma universidade

38

A propósito dos Diagramas de Arquitectura

• Estes diagramas podem também ser aplicados na modelação de negócios e de organizações em que

– os componentes de “código” representam os procedimentos e regras de negócio;

– os nós (isto é, os componentes não digitais) representam a infra-estrutura da organização através de um conjunto de recursos do negócio (humanos e outros).

39

40

...!!! Extra à matéria da cadeira !!!...Diagrama de Estrutura Composta (“Composite Structure Diagram”)

• Diagrama para representar a estrutura interna de alguns elementos (classes, componentes, nós, ...) usando:

• Partes (instâncias que compõem o elemento)• Portos (pontos de interacção entre as Partes)• Conectores (“links” entre Partes ou Portos)

• Pode ser equivalente aos diagramas de classes, mas mostra as partes individuais das classes, em vez das classes no seu todo...

Recommended