Escolar Documentos
Profissional Documentos
Cultura Documentos
Tpicos
ENGENHARIA DE SOFTWARE
PARTE 2 LINGUAGEM DE MODELAO UML
Introduo Viso Histrica Tipos de Elementos Bsicos Tipos de Relaes Tipos de Diagramas Mecanismos Comuns
C AP. 4 U M L V I S O G E R AL
Introduo
Introduo
O UNL promovido pelo Object Management Group (OMG), com contribuies e direitos de autoria das seguintes empresas:
Hewlett-Packard, IBM, ICON Computing, i-Logix, IntelliCorp, Electronic Data Services, Microsoft, ObjecTime, Oracle, Platinum, Ptech, Rational, Reich, Softeam, Sterling, Taskon A/S e Unisys.
Mecanismos de extenso de modo a permitir que futuras aproximaes e notaes de modelao possam continuar a ser desenvolvidas sobre o UML. Semntica e sintaxe para facilitar a troca de modelos entre ferramentas distintas.
Introduo
Introduo
O UML alarga o mbito de aplicaes alvo, pois permite, por exemplo, a modelao de sistemas
concorrentes, distribudos, para a Web, de informao geogrficos,
Objetivo do UML:
adotar diferentes processos/metodologias, mantendo-se contudo a utilizao da mesma linguagem de modelao em funo
do tipo de projeto, da ferramenta de suporte, ou da organizao envolvida.
O ponto forte do UML est na definio de uma linguagem de modelao standard, logo independente
das linguagens de programao, das ferramentas CASE, bem como dos processos de desenvolvimento.
O UML independente das ferramentas de modelao. Princpios bsicos no esforo de definio do UML:
simplicidade, coerncia na unificao de diferentes elementos existentes em vrios mtodos, e introduo de novos elementos apenas quando tal fosse absolutamente necessrio (quando tais elementos no existissem em mtodos anteriores).
Introduo
Introduo
Diagramas de arquitetura:
Diagramas de componentes Diagramas de instalao
Viso Histrica
Viso Histrica
Viso Histrica
Viso Histrica
O objetivo que seja possvel estender o UML sem ser necessrio redefinir o seu ncleo principal.
A estrutura de conceitos do UML pode ser vista atravs das seguintes noes:
(1) coisas ou elementos bsicos, com base nos quais se definem os modelos; (2) relaes, que relacionam elementos; e (3) diagramas, que agrupam elementos.
Resumo dos elementos de estrutura: classes, classes ativas, interfaces, casos de uso/utilizao, atores, colaboraes, componentes e ns.
Os
elementos
encontram-se
organizados
consoante
sua
Tipos de Relaes
permitem
o estabelecimento de interdependncias entre os elementos bsicos.
Tipos de Relaes
Tipos de Diagramas
Diagramas
so conceitos que traduzem a possibilidade de agrupar elementos bsicos e as suas relaes de uma forma lgica ou de uma forma estrutural. proporcionam ao utilizador os meios de visualizar e manipular os elementos do modelo.
UML
Existem diferentes tipos de diagramas: para cada tipo usado
um subconjunto dos elementos bsicos, com diferentes tipos de relaes que tenha sentido existir.
Com base no princpio de modelao P4, definiu diferentes tipos de diagramas, cuja utilizao e aplicao permitem vises complementares. Os diagramas podem mostrar todas ou parte das caractersticas dos elementos do modelo, com um nvel de detalhe que seja apropriado no contexto de um tipo de diagrama.
Engenharia de Software - 2011/2012 Carlos Barrico - DIDI-UBI Engenharia de Software - 2011/2012 Carlos Barrico - DIDI-UBI
Tipos de Diagramas
Tipos de diagramas:
Diagramas de Casos de Uso/Utilizao:
Diagramas de Casos de Uso/Utilizao
Diagramas de Arquitetura:
Diagramas de componentes e Diagramas de instalao
Engenharia de Software - 2011/2012 Carlos Barrico - DIDI-UBI Engenharia de Software - 2011/2012 Carlos Barrico - DIDI-UBI
Diagrama de Classes
Descrevem a estrutura esttica de um sistema, em particular
as entidades existentes, as suas estruturas internas, e relaes entre si.
Diagrama de Objetos
Descreve um conjunto de instncias compatveis com determinado diagrama de classes. Permite ilustrar os detalhes de um sistema em determinado momento ao providenciarem cenrios de possveis configuraes.
Engenharia de Software - 2011/2012 Carlos Barrico - DIDI-UBI Engenharia de Software - 2011/2012 Carlos Barrico - DIDI-UBI
Diagramas de Sequncia
Ilustram interaes entre objetos num determinado perodo de tempo. Os objetos
so representados pelas suas linhas de vida e interagem por troca de mensagens ao longo de um determinado perodo de tempo.
Diagramas de Colaborao
Ilustram interaes entre objetos com nfase para a representao das ligaes entre objetos. Como estes diagramas no mostram o tempo como um elemento explcito (tal como acontece nos diagramas de sequncia), a sequncia de mensagens e de atividades concorrentes determinada usando-se nmeros sequenciais, com diferentes nveis hierrquicos. Colaboraes so entidades de modelao principais e constituem
Diagramas de Atividades
So um caso particular dos diagramas de transio de estado, no qual
a maioria dos estados so substitudos pelos conceitos correspondentes a aes e/ou atividades, e as transies so desencadeadas devido concluso de aes nos estados originais.
O objetivo representar os fluxos conduzidos por processamento interno, em contraste com eventos externos representados nos diagramas de estado. Este tipo de diagramas pode ser encarados como um caso particular de diagramas de estados e inspirados nos diagramas de workflow, fluxogramas ou naqueles baseados em SDL (Specification and Description Language).
Diagramas de Componentes
Descrevem as dependncias entre componentes de software, incluindo componentes de cdigo fonte, cdigo binrio e executveis. So representados na forma de tipos e no na forma de instncias.
Diagramas de Instalao
Descrevem a configurao de elementos de suporte de processamento, e de componentes de software, processos e objetos existentes nesses elementos.
Mecanismos Comuns
O UML contm um conjunto de mecanismos comuns que so aplicados de modo consistente ao longo dos seus diferentes diagramas. Os dois mecanismos comuns mais usados so os seguintes:
Notas/Anotaes, e Mecanismos de extenso.
Notas/Anotaes
So os adornos mais importantes que existem autonomamente (sem estarem diretamente associados a outros elementos). Ilustram comentrios e no tem qualquer impacto semntico, j que os seus contedos no alteram o significado do modelo no qual se encontram.
O UML providencia os seguintes mecanismos que permitem estender a sua linguagem de forma consistente:
Esteretipos, Marcas, e Restries.
Visibilidade:
podem-se esconder ou tornar visveis (isto dependendo das ferramentas de suporte).
Extenso:
devem-se usar referncias (nomes de documentos ou URL) caso se pretenda um comentrio mais extenso.
Evoluo:
h medida que o modelo evolui as notas mais antigas (cuja relevncia e utilidade deixem de ter sentido) devem ser eliminadas dos modelos.
especificao das restries (caso contrrio, usar a linguagem OCL). A definio destes mecanismos de extenso do UML, em particular a introduo de esteretipos, deve ser realizada por um nmero restrito de especialistas em UML e deve ser devidamente documentado.
Esteretipos
Um esteretipo um meta-tipo (um tipo que descreve tipos). Permite definir novos tipos de elementos sem se alterar o meta-modelo do UML, e por conseguinte permite estender o UML. O nome de um esteretipo representado entre os caracteres e . Exemplos:
Na modelao de processos de negcio: trabalhador, documento, poltica. Na modelao de aplicaes especficas: classes de interface, controlo, e entidade. Na modelao de aplicaes Web, usando o Web Application Extension: classes de Server Page, Client Page, Form, Select Element.
Esteretipos (exemplo)
Esteretipos
A definio de um esteretipo tem de ter em conta os seguintes aspetos:
Propriedades (pode providenciar o seu prprio conjunto de marcas), Semntica (pode providenciar as suas prprias restries), Notao (pode providenciar o seu prprio cone), e A classe base do meta-modelo que vai ser estendida (se o esteretipo estende uma classe, uma associao, um componente, etc.)
um conceito que deve ser entendido como meta-data (isto , dados que descrevem dados) pois o seu valor aplica-se ao prprio elemento e no s suas instncias. Um par marca e valor delimitado entre os caracteres { e }.
Restries (constraints)
Permitem adicionar ou alterar a semntica assumida por omisso de qualquer elemento UML. Consistem na especificao de uma condio delimitada pelos caracteres { e } (a condio pode ser especificada numa linguagem formal (OCL) ou informal texto em portugus). Permitem especificar condies que tm de ser validadas para que o modelo esteja bem definido.
Tipos de Dados
Restries (constraints)
Um tipo de dados uma abstrao utilizada de forma implcita no UML. Os tipos de dados no so elementos do modelo e por conseguinte no lhe so associados esteretipos, marcas com valor ou restries. Exemplos de tipos de dados:
Primitivos: Integer, String, Time Enumerados: Boolean, AggregationKind, VisibilityKind Outros: Expression, Mapping, Name, Multiplicity
Pacote (package):
um elemento meramente organizacional. Permite agregar diferentes elementos de um sistema em grupos de forma que semntica ou estruturalmente faa sentido. Pode conter outros elementos, incluindo: classes, interfaces, componentes, ns, casos de utilizao, e mesmo outros pacotes. Um elemento encontra-se definido em apenas um nico pacote.
Os pacotes so representados por uma pasta (tabbed folder) com duas zonas complementares:
um pequeno retngulo (tabulador ou tab), com o nome do pacote; e um retngulo maior onde se especificam os elementos constituintes desse pacote ou, pelo menos, os seus elementos pblicos.
Exemplos de pacotes:
A necessidade da existncia de pacotes na modelao de sistemas de mdia/grande dimenso: impossvel modeliz-los de uma s vez. Os principais benefcios da utilizao de Pacotes so:
(1) facilitar a gesto e procura de artefactos; (2) evitar os conflitos de nomes (X::A diferente X::Y:A diferente Z::A); e (3) providencia um mecanismo de controlo de acessos (visibilidade).
Engenharia de Software - 2011/2012 Carlos Barrico - DIDI-UBI Engenharia de Software - 2011/2012 Carlos Barrico - DIDI-UBI
Exemplo 2:
uma forma alternativa de representar um pacote em que no so apresentados os seus elementos: o nome do pacote Regras de Negcio e encontra-se colocado no meio do retngulo maior.
Visibilidade
Os smbolos +, - e # permitem indicar o tipo de visibilidade que os elementos constituintes de um pacote apresentam:
Um elemento com visibilidade pblica (prefixo +) pode ser usado/referenciado por qualquer outro elemento independentemente do local onde definido. Um elemento com visibilidade privada (prefixo -) pode ser usado/referenciado por elementos definidos no mesmo pacote. Um elemento com visibilidade protegida (prefixo #) pode ser usado/referenciado por um elemento definido no mesmo pacote ou num outro pacote que seja uma especializao (atravs da relao de herana) do primeiro.
Engenharia de Software - 2011/2012 Carlos Barrico - DIDI-UBI
Exemplo 3:
(1) Possibilidade de relaes de hierarquia ou de incluso entre pacotes: o pacote Docentes est contido no pacote DEI e pode ser identificado univocamente pela concatenao dos vrios nomes separados pelo smbolo ::. (2) Possibilidade de caracterizar o pacote atravs dos mecanismos comuns, tais como especificao de marcas ({version=1.4}), esteretipos ou restries.
Engenharia de Software - 2011/2012 Carlos Barrico - DIDI-UBI
Visibilidade (cont)
possvel definir-se uma relao de friend entre dois pacotes ( uma relao de dependncia entre pacotes, com esteretipo friend).
Neste caso, um pacote que friend de outro pode aceder/referenciar todos os seus elementos independentemente da sua visibilidade. Contudo este tipo de dependncia deve ser evitado sempre que possvel pois viola os princpios do encapsulamento e da minimizao de dependncias.
Importao e Exportao
Um pacote faz a exportao, por definio, de todos os seus elementos pblicos.
Mas tal facto no implica que um elemento definido noutro pacote possa aceder/referenciar um elemento exportado num outro pacote (para que tal ocorresse deveria existir explicitamente uma relao de importao entre esses dois pacotes).
A relao de importao
uma relao de dependncia entre pacotes, especificando que o pacote base importa todos os elementos pblicos definidos no pacote destino (os elementos pblicos definidos no pacote destino podem ser usados por elementos no pacote base). representada graficamente atravs de uma linha dirigida, a tracejado, com esteretipo import.
Importao e Exportao
A relao de importao no transitiva.
Exemplo da figura: WebDEI importa DEIServlets, e este importa javax::serlets::http; no entanto, WebDEI no importa o javax::serlets::http. Isto , os elementos definidos em WebDEI podem aceder aos elementos pblicos de DEIServlets, mas no aos de javax::serlets::http; para tal acontecer, dever-se-ia definir explicitamente uma relao de importao entre esses dois pacotes.
Os elementos exportados por cada pacote devem ser do tipo interface, uma vez que providenciam uma interface de programao sem revelarem os detalhes de implementao e as relaes de classes definidas internamente no respetivo pacote.
Engenharia de Software - 2011/2012 Carlos Barrico - DIDI-UBI Engenharia de Software - 2011/2012 Carlos Barrico - DIDI-UBI
Generalizao
A relao de generalizao entre pacotes
semelhante homloga existente entre classes, e usada para a especificao de famlias de pacotes, tpicas em sistemas complexos ou flexveis (significativamente parametrizveis, multi-plataforma, multi-linguagem).
Nos exerccios acadmicos a dimenso e/ou a simplicidade do problema faz com que um pacote seja simplesmente um pacote. Em situaes reais de modelao de sistemas de mdia/grande dimenso, realizada por equipas de vrios indivduos, torna-se
system:
Pacote que representa o sistema inteiro; tipicamente este pacote agrega pacotes dos restantes tipos (subsistema, ).
subsystem:
Pacote que representa uma parte constituinte do sistema inteiro.
necessrio tipificar os prprios pacotes. A especificao atual do UML prope 5 esteretipos standard aplicados a pacotes: system, subsystem, facade, framework e stub. Em geral os pacotes mais usados so do tipo system e subsystem Por omisso assume-se que um pacote do tipo system (se for de primeiro nvel) e subsystem (se for de segundo ou mais nvel).
facade:
Pacote com elementos (tipicamente classes e interfaces) que constituem a fachada (ou a interface de programao) providenciada conjunta e
coerentemente por outros pacotes. A fachada permite esconder os detalhes de arquitetura e de implementao de vrios elementos eventualmente organizados em distintos pacotes. Os elementos definidos numa fachada apenas referem outros elementos definidos noutros pacotes.
framework:
Um framework uma arquitetura de classes e interfaces com inmeros pontos de variabilidade ou de extenso e com estruturas de objetos padronizadas, conhecidas por padres de desenho. O desenvolvimento de sistemas baseados em frameworks e em componentes de software um tpico emergente extremamente atual.
Compete a cada processo de desenvolvimento de software formalizar ou dar sugestes relativamente forma de organizar todo o processo atravs de uma estrutura adequada de pacotes. Algumas das formas clssicas de organizao dos artefactos de projetos em termos de pacotes, so as seguintes:
Organizao por casos de utilizao:
Aproximao em que o sistema e respetivos modelos se encontram distribudos por pacotes, consoante os vrios casos de utilizao.
stub:
usado quando se pretende partir um sistema em diferentes pacotes por motivos de diviso de trabalho, quer em termos fsicos/espaciais, quer em termos temporais. Permite que duas equipas consigam trabalhar paralelamente em diferentes locais, mas mantendo algum nvel de interdependncia.