Académique Documents
Professionnel Documents
Culture Documents
Bibliografia Booch, G., Rumbaugh, J. e Jacobson, I., The Unified Modeling language User Guide, Addison-Wesley, 1999.
O que UML ? UML uma linguagem de modelagem, no uma metodologia (ou mtodo). A linguagem de modelagem a notao (principalmente grfica) utilizada em metodologias para expressar os projetos. Metodologia composta de: uma linguagem de modelagem e um processo, que descreve os passos a serem seguidos na elaborao de um sistema. A linguagem de modelagem a parte chave para a comunicao entre as partes envolvidas em um projeto. Os participantes devem ser capazes de entender a linguagem de modelagem e no o processo utilizado no desenvolvimento do projeto.
Histrico Existiam vrias metodologia de modelagem OO a disposio da comunidade de desenvolvedores OO. Entre elas : Mtodo de Booch - do Booch, Tcnica de Modelagem de Objetos (OMT) - do Rumbaugh, OOSE/Objectory - do Ivar Jacobson Estes trs resolveram criar uma linguagem de modelagem unificada. A UML rene as melhores idias de cada uma das metodologias. UML passou por um processo de padronizao pela OMG (Object Management Group) e agora um padro OMG. Os trs amigos tambm desenvolveram um processo unificado, que eles chamaram de RUP (Rational Unified Process). No necessrio utilizar RUP para usar UML
Vantagens de UML 1) Independncia de metodologia de desenvolvimento. 2) Padro aberto e no proprietrio. 3) Aplicvel a todas as fases do ciclo de desenvolvimento. 4) Independncia de linguagem de implementao. 5) Integrao das melhores prticas de modelagem. 6) Suporte conceitos de alto nvel. 7) Usada para modelagem de Softwares OO mas tambm aplicadas em sistemas mecnicos e processos em geral da organizao. 8) Facilidade para visualizar, especificar, construir e documentar sistemas grandes e complexos.
O que possvel fazer com a UML 1) Explicitar as fronteiras do sistema e suas principais funcionalidades (casos de uso e atores); 2) Ilustrar a realizao dos casos de usos (diagramas de interao); 3) Representar as estruturas estticas do sistema (diagramas de classes). 4) Modelar o comportamento dos objetos (diagramas de transio de estados); 5) Mostrar a arquitetura fsica da implementao (diagramas de componentes) 6) Capturar a topologia de hardware do sistema (diagrama de implantao)
A notao UML Vises - Mostram diferentes aspectos do sistema. Cada viso mostrar aspectos particulares do sistema dando enfoque a ngulos e nveis de abstraes diferentes. Viso no um grfico, mas uma abstrao consistindo em uma srie de diagramas. Modelo de Elementos - Os conceitos usados nos diagramas so modelos de elementos que representam definies comuns da orientao a objetos. Mecanismos Gerais - Inclui comentrios suplementares, informaes, ou semntica sobre os elementos que compem os modelos. Diagramas - So os grficos que descrevem o contedo em uma viso. UML possui nove tipo de diagramas que so usados em combinao para prover todas as vises do sistema.
Vises Um sistema composto por diversos aspectos: Funcional Sua estrutura esttica e suas interaes dinmicas. No Funcional requisitos de tempo, confiabilidade, desenvolvimento, etc. Organizacionais - organizao do trabalho, mapeamento dos mdulos de cdigo, etc. Cada viso descrita por um nmero de diagramas que contm informaes que do nfase aos aspectos particulares do sistema. Existem em alguns casos uma certa sobreposio entre os diagramas o que significa que um destes pode fazer parte de mais de uma viso.
Viso Use-Case" Descreve a funcionalidade do sistema desempenhada pelos atores externos do sistema. Viso central, base do desenvolvimento das outras vises do sistema. Essa viso montada sobre: Diagramas de Use-Case e Diagramas de Atividade (eventualmente)
Viso Lgica Em contraste com a viso use-case, a viso lgica observa e estuda o sistema internamente. Descreve e especifica a estrutura esttica do sistema (classes, objetos, e relacionamentos) e as colaboraes dinmicas quando os objetos enviarem mensagens uns para os outros para realizarem as funes do sistema. A estrutura esttica : Diagramas de Classes e Objetos. A modelagem dinmica : Diagrama de Seqncia, Colaborao e Diagramas de Estado, Atividade.
Viso de Componentes uma descrio da implementao dos mdulos e suas dependncias. principalmente executado por desenvolvedores, e consiste nos componentes dos diagramas. Captura as informaes do modelo fsico de implementao, tais como arquivos de programas e sub-sistemas.
Viso de concorrncia Trata a diviso do sistema em processos e processadores. Permite observar se o sistema possui execues paralelas, e se existe gerenciamento de eventos assncronos. Uma vez dividido o sistema em linhas de execuo de processos concorrentes (threads), esta viso de concorrncia dever mostrar como se d a comunicao e a concorrncia destas threads. A viso de concorrncia suportada : Diagramas Dinmicos, que so os diagramas de estado, seqncia, colaborao e atividade, Diagramas de Implementao, que so os diagramas de componente e execuo.
Viso de Organizao Mostra a organizao fsica do sistema, os computadores, os perifricos e como eles se conectam entre si. Esta viso ser executada pelos desenvolvedores, integradores e testadores, e ser representada pelo diagrama de execuo.
Viso de Componentes
Viso de Organizao
Modelos de Elementos Os conceitos usados nos diagramas so chamados de modelos de elementos. Um modelo de elemento definido com sua semntica e possui representao grfica que mostrada nos diagramas da UML. Um elemento pode existir em diversos tipos de diagramas, mas existem regras que definem que elementos podem ser mostrados em que tipos de diagramas. Alguns exemplos de modelos de elementos so as classes, objetos, estados, pacotes e componentes. Os relacionamentos tambm so modelos de elementos.
Objeto
Um objeto uma entidade independente que armazena dados,
encapsula servios, troca mensagens com outros objetos e modelado para executar as funes do sistema.
Java : Turma
Estrutura : Turma
Maria : Pessoa
Bono : Produto
Luis : Pessoa
Classe Uma classe uma descrio de um conjunto de objetos que compartilham os mesmos atributos (caractersticas) , operaes, relacionamentos e semntica. Todos os objetos so instncias de classes, onde a classe descreve as propriedades e comportamentos daquele objeto.
Turma
quantidadeAlunos codigo professor quantidadeAlunosMatriculados adicionarAluno() retirarAluno()
Classe
Turma
quanti adeAlunos : int codi o : String professor : Pessoa quantidadeAlunosMatriculados : int adicionarAluno() retirarAluno()
Atributos da Classe
Atributos so propriedades de uma classe, que descreve um intervalo de valores que as instncias podem apresentar. Uma classe pode ter qualquer nmero de atributos ou nenhum. Operaes correspondem aos processos que a classe pode realizar.
Estado de um Objeto Todos os objetos possuem um estado resultante de atividades executadas pelo objeto. Este estado determinado pelos valores dos atributos e ligaes com outros objetos. Um objeto muda de estado quando acontece algo e o fato de acontecer alguma coisa com o objeto chamado de evento. Atravs da anlise da mudana de estados dos tipos de objetos de um sistema podemos prever os possveis comportamentos dos objetos de acordo com os eventos que o mesmo possa sofrer. Deve ser construdo um Diagrama de Estados para cada classe cujos objetos apresentem algum comportamento dinmico significante.
Estado de um Objeto A modificao de estado causada por um evento chamada transio. Um estado tem : 1) Nome do Evento: mostra o nome do evento. Geralmente descreve o que o estado realiza. 2) Atividades: lista os eventos e aes. Dividido em trs eventos : Entrar, Fazer e Sair.
Abrindo
entry/ fazer depsito inicial do/ inserir lista de clientes exit/ informar limite disponibilizado
UML - Unified Modeling Language Herana Herana a capacidade de uma classe definir o seu comportamento e sua estrutura aproveitando definies de outra classe, normalmente conhecida como classe base ou classe pai.
Conta codigo titular saldo adicionarValor() retirarValor()
Note que as subclasses herdam tudo o que a classe pai possui e acrescenta as suas caractersticas particulares.
UML - Unified Modeling Language Especializao e Generalizao Atravs do mecanismo de herana possvel definir classes genricas que agreguem um conjunto de definies comuns a um grande nmero de objetos (Generalizao). A partir destas especificaes genricas pode-se construir novas classes, mais especficas, que acrescentem novas caractersticas e comportamentos aos j existentes (Especializao).
Profissional Sade
Generalizao
examinarPaciente()
Medico
Fisioterapeuta realizarFisioterapia()
Especializao
realizar irugia()
UML - Unified Modeling Language Mensagens So estmulos enviados aos objetos solicitando que alguma operao seja realizada por um dado objeto. Nome da mensagem Parmetros A mensagem especifica O QUE deve ser feito. O comportamento de um objeto dado pelo conjunto de mensagens que ele pode responder.
Dr. Paulo : Medico Dr. Luis : Medico aplicarInjecao( ) fazerCurativo( ) Daniel : Enfermeiro
Diagrama de Seqncia
UML - Unified Modeling Language Interfaces As interfaces so estritamente modelos de comportamento. As interfaces no podem ser instanciadas pois no produzem objetos. A relao existente entre as classes que implementam uma Interface e a Interface uma relao do tipo implementa os mtodos de. No precisa ter significado semntico.
UML - Unified Modeling Language Mecanismos Gerais - Ornamentos e Notas Especificao de multiplicidade de relacionamentos so ornamentos. Tambm um ornamento separar tipo de uma instncia da classe. Nem tudo pode ser definido em uma linguagem de modelagem. Para permitir adicionar informaes a um modelo, UML prov a capacidade de adicionar Notas. Uma Nota pode ser colocada em qualquer lugar em um diagrama, e pode conter qualquer tipo de informao
UML - Unified Modeling Language Diagramas Em UML os modelos so desenvolvidos a partir de blocos tais como: classes, interfaces, colaboraes, dependncias, generalizaes, associaes, etc. Os diagramas so os meios utilizados para visualizao de blocos de construo. Os diagramas utilizados pela UML so compostos por nove tipos: Diagramas de Casos de Uso Diagramas de Classes Diagramas de Objetos Diagramas de Estado Diagramas de Atividade Diagramas de Seqncia Diagramas de Colaborao Diagramas de Componentes Diagramas de Execuo
UML - Unified Modeling Language Diagramas O modelo funcional Diagramas de Casos de Uso O modelo esttico Diagramas de Classes e Diagramas de Objetos O modelo dinmico Diagramas: de Estado, Sequencia, Colaborao Atividade Arquitetura Fsica do Sistema Diagramas de Componentes e Diagrama de Execuo
UML - Unified Modeling Language Diagramas de Casos de Uso Este tipo de diagrama ilustra um conjunto de casos de uso para um sistema, os atores e a relao entre os atores e os casos de usos. O modelo de caso de uso consiste de atores e casos de uso.
Sistema de Matricula
Sistema Bancrio
Adicionar Valor Conta
Matricular Aluno
Aluno
Cliente Retir r V l r C ta
ator
Caso de uso
ator
Casos de uso
UML - Unified Modeling Language Atores Atores representam usurios ou sistemas que interagem com o sistema modelado. Um ator um tipo (uma classe), no uma instncia. Um ator se comunica com o sistema atravs de mensagens, embora estas mensagens no estejam especificadas. Um ator pode ser: primrio: usa funes principais do sistema secundrio: usa as funes que mantm o sistema (gerenciamento) ativo: inicia um caso de uso passivo: nunca inicia, mas apenas participa do caso de uso
UML - Unified Modeling Language Casos de Uso Casos de Uso so cenrios que o sistema percorre em resposta ao estmulo de um ator. Casos de Uso so descritos por um texto contendo: Objetivo do Caso de Uso e Como o caso de Uso iniciado O fluxo de mensagens entre atores e casos de uso Fluxo alternativo (execues alternativas) Como o caso de uso termina e retorna um valor para o ator Trs tipos de relacionamentos entre os casos de uso: Incluso: quando deseja evitar a repetio de aes Generalizao: acrescenta comportamento a casos de usos base Extenso: acrescenta comportamento a casos de usos base, explicando os pontos de extenso
UML - Unified Modeling Language Diagramas de Casos de Uso Diagramas de Caso de Uso determinam as funes que devero ser suportadas pelo sistema modelado. Os diagramas do uma viso geral mas as descries dos casos de uso so tipicamente textuais. No existe preocupao com implementao de cada uma das funes pois o propsito determinar somente a funcionalidade que ser oferecida. Ferramenta til na captura de requisitos e no planejamento. Esta captura uma das tarefas bsicas necessrias para construo do sistema.
Sistema de Matricula
Aluno
Matricular Aluno
<<extend>>
<<include>> Cadastar Cliente Funcionrio Banco Criar Conta <<include>> erificar Tipo de Conta <<include>> Retirar alor Conta Cliente Identificar Conta <<include>> Adicionar alor Conta S pode ter uma conta corrente
erificar Cliente
Sistema Bancrio
UML - Unified Modeling Language Diagramas de Classes Descreve as classes do sistema, seus atributos, operaes e relacionamentos. Representa a viso esttica do sistema. Um sistema pode possuir alguns diagramas de classes. Neste caso, uma classe pode participar em vrios diagramas. Existem trs perspectivas para projetar diagramas. Conceitual : Representa os conceitos do mundo real. Sem preocupao quanto aos aspectos de implementao. Especificao: Aspetos de interface, no de implementao. Implementao: Temos realmente as classes e as definies de implementao.
UML - Unified Modeling Language Relacionamento entre Classes 1) Associao Associaes e ligaes so os mecanismos para estabelecer relacionamentos entre objetos e classes. Uma associao descreve um conjunto de ligaes potenciais.
Cliente 1
Possui
Conta 1..*
ivo 0.. *
acessivel por
Pessoa 0..*
Alguns atributos dizem respeito a associaes e no a classes. Estes se transformam em classes de Associao.
UML - Unified Modeling Language Relacionamento entre Classes 1) Associao Embora associaes sejam bidirecionais por padro, freqentemente desejvel limitar sua navegao em uma nica direo. Se a navegao for limitada, uma seta adicionada para indicar a direo na qual a associao pode ser percorrida. Pedido Cliente
* 1
Uma associao recursiva representa uma associao entre objetos da mesma classe.
No ProximoNo : No 0..1
aponta para
0..2 1
aponta para
UML - Unified Modeling Language Relacionamento entre Classes 1) Associao Associaes qualificadas so usadas com associaes de um para vrios (1..*) ou vrios para vrios (*..*). O qualificador (identificador da associao qualificada) especifica como um determinado objeto no final da associao "n" identificado, e pode ser visto como um tipo de chave para separar todos os objetos na associao. O qualificador permite reduzir a multiplicidade da associao para 1. O identificador desenhado como uma pequena caixa no final da associao junto classe de onde a navegao deve ser feita.
Cli
od 1 0..1
Cont Corr nt
UML - Unified Modeling Language 2) Agregao Uma agregao um relacionamento do tipo parte de, nos quais objetos representando os componentes so associados com objetos representando uma montagem. Agregao uma forma de associao com alguma semntica adicional. transitiva (se A parte de B e B parte de C, ento A parte de C)
Sist ma 1
cont m
Lin ua 1
Agregao Compartilhada um tipo especial de agregao que ocorre quando uma das classes uma parte, ou est contida na outra, mas esta parte pode estar contida na outra vrias vezes em um mesmo momento.
Estojo 1
cont m
Lapis *
Turma *
cont m
luno *
UML - Unified Modeling Language 3) Composio uma forma mais forte de agregao. Na composio, o objeto parte pode pertencer somente a um todo e espera-se que as partes vivam e morram com o todo. Se o objeto da classe que contm for destrudo, as classes da composio sero destrudas juntamente.
Formulario
JTextField
JTextArea
JButton
JComboBox
UML - Unified Modeling Language 4) Dependncia Forma mais fraca de relacionamento, onde uma classe (o cliente) depende de outra classe (o servidor) para um servio especfico. Uma mudana no elemento independente ir afetar o modelo dependente. Uma relao de dependncia simbolizada por uma linha tracejada com uma seta no final de um dos lados do relacionamento.
Declaracao Imposto
Usa
alculadora
UML - Unified Modeling Language 4) Dependncia Existe um relacionamento de dependncia entre duas classes quando: um objeto da classe servidora passado como parmetro de um mtodo da classe cliente ou, um objeto da classe servidora declarado localmente em um mtodo da classe cliente ou, um objeto global da classe servidora acessado pela classe. Um dos objetivos do desenvolvimento manter as dependncias ao mnimo. Manter a interface das classes evita problemas de dependncias.
Sistema Bancrio
1
Banco 1 1
Agregaes
Conta Poupanca 0..* Conta * Conta Corrente
Cliente
0..* 1
Generalizao
Associao bidirecional
Operacao 0..*
Classe de Associao
UML - Unified Modeling Language Diagramas de Objetos O diagrama de Objetos fazem a modelagem de instncias de itens contidos em diagramas de classes. Mostra um conjunto de objetos e seus relacionamentos em um determinado ponto do tempo. uma variao do diagrama de classes e utiliza quase a mesma notao. A diferena que os objetos so escritos com seus nomes sublinhados e todas as instncias num relacionamento so mostradas. Envolve a modelagem do sistema em um determinado ponto. Pode-se considerar o diagrama de objetos como um diagrama de colaborao sem mensagens.
Ana : Cliente
UML - Unified Modeling Language Diagramas de Interao Diagramas de interao descrevem como os casos de uso so realizados atravs das interaes entre objetos. Dinmica do sistema : forma pela qual os objetos se comunicam no sistema e alteram seus estados durante o tempo de vida do sistema. A comunicao entre um conjunto de objetos, com o propsito de executar alguma funo, chamada interao. Pode ser descrita pelos: Diagramas de Seqncia Diagramas de Colaborao Tambm chamados Diagramas de Atividades de Diagramas de Interao Alm destes diagramas, o modelo dinmico pode ser descrito com auxlio dos Diagramas de Estado.
UML - Unified Modeling Language Diagramas de Estado Mostra todos os estados possveis nos quais objetos de uma certa classe podem se encontrar e mostra quais os eventos que provocam mudanas entre estes estados. No so escritos para todas as classes de um sistema, mas apenas para aquelas que possuem um nmero de estados conhecidos. um complemento para a descrio das classes. Os estados representam as condies dos objetos em um determinado momento. Os eventos representam incidentes que causam a mudana de um estado para outro. As linhas de transio descrevem o movimento de um estado para o outro.
Argumentos
Operando
ef etuar opera o( t ipo operacao ) / saldo=0
do/ adicionar alor Conta (depsitos) do/ retirar a lor Conta (retiradas) exi t/ informar Saldo
solicitar encerramento da conta pelo cliente
Evento Atividade
Estado f inal de uma conta bancria
Ao de Transio
Fec ando
entry / zerar saldo exit/ desv incular cliente da conta
UML - Unified Modeling Language Diagramas de Atividades Diagramas de atividades capturam aes e seus resultados, com foco no trabalho executado na implementao de uma operao (mtodo) e suas atividades numa instncia de um objeto. uma variao do diagrama de estado onde todos os estados tm uma ao interna e nenhuma transio tem um evento de entrada. Os estados no diagrama de atividade mudam para um prximo estgio quando uma ao executada, sem ser necessrio especificar eventos como no diagrama de estados. Representa o que acontece mas no quem faz. No diz que classe responsvel por cada atividade. Atravs do uso de divisores (Swimlanes) podemos separar as atividades de acordo com as classes responsveis.
UML - Unified Modeling Language Diagramas de Atividades Decises e condies, como execuo paralela, tambm podem ser mostrados neste diagrama.
Atividade
Condio de Guarda
Desvio
Atividade
UML - Unified Modeling Language Diagramas de Seqncia Mostra a colaborao dinmica entre os vrios objetos de um sistema. Tipicamente, captura o comportamento de um nico caso de uso. A partir deste diagrama podemos perceber a seqncia de mensagens enviadas entre os objetos. Descrio : Consiste em um nmero de objetos mostrado em linhas verticais. O tempo visualizado no sentido vertical de cima para baixo e as mensagens enviadas por cada objeto so simbolizadas por setas.
: FormularioCliente
: anco
liente
efetuarOperacao( )
UML - Unified Modeling Language Diagramas de Colaborao Um diagrama de colaborao mostra de maneira semelhante ao diagrama de seqncia, a colaborao dinmica entre os objetos. Alm de mostrar a troca de mensagens entre os objetos, percebe-se tambm os objetos com os seus relacionamentos. Se a nfase do diagrama for o decorrer do tempo: diagrama de seqncia Se a nfase for o contexto do sistema: diagrama de colaborao. As setas de mensagens so desenhadas entre os objetos para mostrar o fluxo de mensagens entre eles. As mensagens nomeadas mostram a ordem em que as mensagens so enviadas.
: FormularioOperacaoConta
2: verificaSeExisteCliente( ) 1: executarOperacao( )
: Banco
Se existir cliente
3: efetuarOperacao( )
: Cliente
: FormularioConta
2: verificaSeExisteCliente( ) 4: criarContaCorrente( )
1: solicitarAnaliseCriarConta(String, String)
3: verificarExistenciaContaCorrente( )
: Cliente
UML - Unified Modeling Language Diagramas de Componentes Diagramas de Componentes so usados para modelar os aspectos fsicos de um sistema. Descreve os componentes de software e suas dependncias, representando a estrutura do cdigo gerado. Componentes so a implementao, na arquitetura fsica, dos conceitos e da funcionalidade definidos na arquitetura lgica (classes, objetos e seus relacionamentos). Um componente, tipicamente, uma verso fsica de elementos lgicos, como classes e interfaces. Pode ser utilizado para representar bibliotecas, objetos COM, Java Beans, cdigo fonte, esquemas de banco de dados, etc. Componentes podem ser executadas em ns (processadores, dispositivos, etc.)
UML - Unified Modeling Language Diagramas de Componentes Um diagrama de componentes mostra apenas componentes como tipos. A dependncia entre componentes mostrada por uma linha tracejada, simbolizando que um componente precisa do outro. O diagrama de componentes composto por : 1. Componentes. 2. Pacotes de componentes - representa os grupos de componentes relacionados. 3. Interfaces - define os mtodos visveis de uma classe ou componente. 4. Relacionamento de dependncia - Exibe quando um componente usa servios de outro componente.
Nvel de Interface
Nvel de Ngocios
<<object>> Cliente
PackageAcessoDadosBanco
DataAcess Object
Nvel de Dados
UML - Unified Modeling Language Diagramas de Implantao (Utilizao/Execuo) Diagrama de Implentao mostra as relaes fsicas entre componentes de software e hardware no sistema implementado. composto de: 1) Componentes de software 2) Ns, objetos fsicos que fazem parte do sistema, tais como mquinas servidoras, mquinas clientes em uma LAN, impressoras, roteadores. 3) Conexes entre ns e componentes que, juntos, compem toda a arquitetura fsica do sistema. Mostra a arquitetura do sistema em tempo de execuo composta de seus processadores, dispositivos e componentes de software.
Classes da plicao
UML - Unified Modeling Language Resumo A Arquitetura Lgica de um sistema contm a lgica da aplicao. Em UML os diagramas usados para descrever a arquitetura lgica so: Os Diagramas de Casos de uso representam uma viso externa do sistema. Os Diagramas de Classes mostram a estrutura esttica do sistema. O Diagrama de Objetos as instncias dos objetos e seus relacionamentos em um dado momento. Diagramas de interao descrevem como os casos de uso so realizados atravs das interaes entre objetos. Se a nfase desejada for o decorrer do tempo usa-se Diagrama de Sequncia. Se a nfase for o contexto do sistema usa-se o Diagrama de Colaborao.
UML - Unified Modeling Language Resumo O Diagrama de Estado mostra os estados possveis de objetos de uma certa classe e os eventos que provocam tais mudanas. O Diagrama de Atividades descreve a sequencia de atividades, com suporte para comportamento condicional e paralelo. A Arquitetura Fsica de um sistema apresenta uma descrio dos componentes de software e hardware. Em UML os diagramas usados para descrever a arquitetura fsica so: O Diagrama de Componentes contm os componentes de software. O Diagrama de Implantao mostra a arquitetura em tempo de execuo, ou seja, os computadores, dispositivos etc.