Anda di halaman 1dari 55

Linguagem UML

Prof Fabiana Alves Diniz de Moura Curso: Sistemas de Informao CEULJI/ULBRA

O que so modelos????

Uma simplificao da realidade. Oferece um desenho de um sistema em um determinado nvel de abstrao Exemplos de modelos:

Modelo planetrio Modelo atmico Modelo de um sistema de transporte coletivo Modelo de um sistema operacional Modelo de um sistema de gerenciamento de alunos

Por que modelamos?

Porque

uma forma de entendermos melhor o sistema que estamos construindo.

Onde um modelo nos ajuda?

Nos ajuda a visualizar um sistema como ele ou como desejamos que seja Nos permite especificar a estrutura ou o comportamento de um sistema Na construo de um guia para a construo do sistema Na documentao das decises tomadas no projeto

Modelagem de Sistemas Orientados a Objetos

Antigamente no havia uma forma padro de se analisar e modelar sistemas orientados a objetos.
Diferentes metodologias levavam a um desentendimento e confuso por parte de analistas e desenvolvedores, por suas diferentes caractersticas, elementos conceituais e notao. Algumas metodologias eram boas em determinadas caractersticas, mas ruins ou inexistentes em outras necessidades da anlise e modelagem OO. Grady Booch, James Rumbaugh e Ivar Jacobson (os trs amigos) se juntaram, unificaram suas metodologias e criaram a UML, pegando o melhor de cada e melhorando com o suporte e ajuda da comunidade, e hoje mantida pela OMG (Object Management Group).

Avano metodolgico

1970 a 1980: programao estruturada. 1980 a 1985: Anlise estruturada e desenho estruturado 1985 a 1990: Engenharia da informao. 1990 a 1995: Orientao a objetos.

O que um objeto?

Objeto uma ocorrncia especfica (instncia) de uma classe (o que uma classe???). Na programao orientada a objeto, um objeto qualquer coisa, real ou abstrata, sobre a qual armazenamos dados e operaes que manipulam os dados. Ex de objetos: Uma pessoa, um veculo, um documento, uma regio etc...

Exemplo de Classe e Objeto

UML (Unified Modeling Language): Histrico


Verso UML 0.8 UML 0.9 Ano 1995 1996 Principais Fatos Ocorridos. Lanamento do primeiro esboo da UML. Integrao de Jacobson equipe da Rational Software, e seu mtodo OOSE expanso do escopo da UML; formao de um consrcio de empresas, com o objetivo de apoiar a definio da UML.

UML 1.0

1997

A UML foi submetida como candidata a linguagem-padro de modelagem OMG (Object Management Group, uma entidade de padronizao estabelecida pela indstria de software).

UML 1.1
UML 1.2

1997
1998

Expanso do consrcio formado por empresas para apoiar a definio da UML, e aceitao da UML pela OMG.
Revises e novas padronizaes

UML 1.3 UML 1.4, 1.5 UML 2.0 UML 2.0

1998 1999 2000 a 2003 2005

Revises e novas padronizaes Revises e novas padronizaes Vrias novidades em relao as verses anteriores Verso oficial adotada pelo OMG (http://www.omg.org/)

UML (Unified Modeling Language): O que ?

UML uma linguagem de modelagem de sistemas, usada para: especificar modelar visualizar documentar

Usando UML para especificar

Especificar construir modelos precisos, sem ambigidades e completos UML atende a todas as decises importantes em termos de anlise, projeto e implementao de sistemas de software.

Usando UML para modelar

Modelos gerados em UML podem ser conectados a vrias linguagens de programao


possvel mapear modelos UML em linguagens de programao e vice-versa (engenharia reversa, mas nem sempre possvel).

Usando UML para visualizar

UML permite elaborar modelos explcitos que facilitam a comunicao UML utiliza um conjunto de smbolos que permite comunicar idias sem ambigidade Ex: Um modelo escrito por um desenvolvedor pode ser interpretado por outro desenvolver.

Usando UML para documentar

Auxilia na documentao de artefatos de software como: requisitos, arquitetura e projeto UML proporciona uma linguagem para expresso de requisitos e para a realizao de testes UML auxilia na modelagem das atividades de planejamento do projeto e gerenciamento e verses.

Unified Modeling Language (UML): O que ?


A UML uma linguagem, e como tal, fornece um vocabulrio e as regras para a combinao de palavras desse vocabulrio com a finalidade de comunicar algo (criao de modelos bem formados). UML no um processo, portanto no indica quais modelos devero ser criados, nem quando devero ser criados.

Porque utilizar UML?

Desenvolver o modelo de uma aplicao antes de constru-la, to essencial quanto ter uma planta para a construo de uma casa. Bons modelos so essenciais para a comunicao entre os times de projetos e para assegurar a beleza arquitetural. Com o aumento da complexidade dos sistemas, importante conhecer boas tcnicas de modelagem. Ter um rigoroso padro de linguagem de modelagem um fator essencial para o sucesso de um projeto. Como a UML se tornou uma notao padro da indstria de arquitetura de software, ela assunto abordado em muitos livros, seminrios e sites.

Fases do Desenvolvimento de um software

Anlise de Requisitos: Fase que captura as intenes e necessidades dos usurios do sistema, atravs das funes desejadas no sistema, chamadas de Casos de Uso.
Anlise: Onde se cria as primeiras abstraes e mecanismos presentes no domnio do problema. Design (Projeto): O resultado da anlise expandido em solues tcnicas. As classes do domnio do problema so mescladas com classes de infra-estrutura. o detalhamento para a fase de programao. Programao: Os modelos criados so convertidos em cdigos de linguagem.

Testes: Testes unitrios, testes de integrao e testes de aceitao.

Diagramas da UML

Com a UML possvel modelar os projetos de sistemas, baseados em diagramas. Os diagramas so divididos, basicamente, em: Diagramas Estruturais: diagrama de classes, diagrama de objetos, diagrama de componentes e diagrama de disponibilizao. Diagramas de Comportamento: diagrama de casos de uso, diagrama de seqncia, diagrama de atividades, diagrama de colaborao e diagrama de estados. Diagramas de Gerenciamento do Modelo: pacotes, subsistemas e modelos.

Por que tantos diagramas?

Fornecer mltiplas vises do sistema a ser modelado, analisando-o e modelando-o sob diversos aspectos. Procurar atingir a completitude da modelagem, permitindo que cada diagrama complete o outro. Cada diagrama da UML analisa o sistema, ou parte dele, sob uma determinada tica. A utilizao de vrios diagramas permite que falhas sejam descobertas, diminuindo a possibilidade da ocorrncia de erros futuros.

Estudo de caso

Para nosso aprendizado, usaremos um caso de estudo simples.

Imagine um loja, que vende seus produtos na internet. Os usurio podero fazer o login no site, escolher os produtos que deseja adquirir e consolidar o seu pedido, com a efetuao da compra, no caso, a venda, para a loja.

Diagrama de caso de Uso

Descreve as funcionalidades do sistema desempenhada pelos atores externos a viso central, base para as outras vises do sistema O Diagrama de Casos de Uso serve para visualizar os relacionamentos entre os atores e os casos de uso do sistema (cenrios), numa viso geral. Serve para modelar os requisitos funcionais do sistema.

Diagrama de caso de uso

Elementos
Caso de Uso

Nome do Caso

ASSOCIAO ATOR

Diagrama de caso de uso

Exemplo: Estudo de caso

Diagrama de Atividades

O objetivo do diagrama de atividades mostrar o fluxo de atividades em um nico processo. Eles capturam aes e seus resultados Eles focam o trabalho executado na implementao de uma operao (mtodo) Tipicamente as atividades so estados de ao estados que transitam para outro estado

Diagrama de Atividades

Elementos
INICIO

Nome do Estado

ESTADO FIM

TRANSIO

FLUXO PARALELO TOMADA de DECIO

Diagrama de Atividades

Exemplo

Diagrama de Atividades

A maior qualidade dos diagramas de atividades est no fato de que eles suportam e encorajam comportamento paralelo. A maior desvantagem destes diagramas que eles no deixam muito claras as ligaes entre aes e objetos.

Diagrama de Atividades

Devemos utilizar diagramas de atividades nas seguintes situaes:


Analisando um caso de uso. Descrevendo um algoritmo seqencial complicado Lidando com aplicaes de processamento paralelo.

Diagrama de Classes

a descrio de conjunto de objetos que compartilham os mesmos atributos e relacionamentos (estado), operaes e semntica (comportamento)
O Diagrama de Classes mostra a estrutura esttica do modelo da aplicao Este diagrama exibe as classes do sistema e o grau do relacionamentos entre elas

Diagrama de Classes

Elementos
ASSOCIAO
Nome da Classe Atributos Operaes

Cliente Nome : String Idade : Num Criar() Destruir()

COMPOSIO

GENERALIZAO

DEPENDENCIA AGREGAO

Diagrama de Classes

Diagrama de classe (simples)

Escola

matricula
Aluno

contrata

Professor

Diagrama de Classes

Exemplo: Sistema escola


Escola
alunos: Alunos[ ] professores: Professores[ ] adicionarAlunos(Aluno a) : void adicionarProfessor (Professor p) : void listarAlunos( ): void executar( ) : void

1 Professor
nome: String matricula: int turmas: int construtor( ):

Aluno
nome: String matricula: int nota1: int nota2: int construtor( ):

Diagrama de Classes

Exemplo

Diagrama de Classes

Uma agregao um relacionamento do tipo parte de, nos quais objetos representando os componentes so associados com objetos representando uma montagem. Se A parte de B e B parte de C, ento A parte de C
Sistema 1
contm

Linguagem 1
contm

Estojo 1

contm

Lapis *

Turma *

Aluno *

Diagrama de Classes

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

Diagrama de Objetos

O Diagrama de Objetos muito similar ao Diagrama de Classes e utiliza quase a mesma notao Este diagrama mostra uma fotografia dos objetos existentes em um determinado momento na execuo do sistema So muito teis para exemplificar relacionamentos complexos entre objetos em determinado momento

Diagrama de Objetos

Exemplo

Diagrama de Estado

O Diagrama de Estados serve para mostrar todos os estados possveis dos objetos de uma classe do modelo, e que eventos do sistema causam essas mudanas de estado. No h a necessidade de representar os estados dos objetos de todas as classes.

Diagrama de Estado

Exemplo

Diagrama de Sequncia

O Diagrama de Sequncia mostra a interao entre os objetos da aplicao arranjados numa linha do tempo. So utilizados para descrever a seqncia de um fluxo ou caso de uso da aplicao. muito til para se levantar quais so os envolvidos no fluxo e definir a interface de alguns objetos.

Diagrama de Sequncia : Exemplo

Diagrama de Colaborao

O Diagrama de Colaborao semelhante ao Diagrama de Seqncia, mostrando a colaborao dinmica entre os objetos, sem levar em conta a linha do tempo. Neste diagrama, alm da troca de mensagens, podese perceber o relacionamento entre os objetos. Se a nfase do diagrama for o decorrer do tempo:

Diagrama de seqncia

Se a nfase for o contexto do sistema:

Diagrama de colaborao.

Diagrama de Colaborao

Exemplo

Diagrama de Componentes

Um componente representa um mdulo fsico do cdigo. O Diagrama de Componentes mostra o lado funcional, expondo a relao entre seus componentes e suas dependncias. As dependncias entre componentes mostram como mudanas em um componente podem causar mudanas em outros componentes

Determina tipo A Componente de Pagamento

Determina tipo B Componente de Pagamento

Diagrama de Componentes

Vamos criar pedaos de cdigo ou componentes que iro materializar as diferentes perspectivas obtidas com os diagramas de casos de uso, classes, actividades, estados, sequncia e colaborao.

Diagrama de Componentes

Relacionamentos de dependncia so utilizados entre componentes para indicar que um componente refere-se a servios oferecidos por outros componentes. A relao de dependncia representada atravs de uma seta tracejada desenhada no sentido componente cliente para o componente fornecedor.

Determina tipo A Componente de Pagamento

Determina tipo B Componente de Pagamento

Diagrama de Componentes : exemplo


GestoEncomendas.Exe - responsvel por todas as operaes relacionadas com encomendas. Depende do componente ControloAcesso.dll para verificar se o utilizador possui permisses para executar as operaes. Depende dos outros mdulos pois necessita de informaes sobre produtos e clientes e guardar os dados numa base de dados.
Determina tipo GestaoEncomendas.Exe de Pagamento

Determina tipo GestoClientes.dll de Pagamento

Determina tipo ControloAcesso.dll de Pagamento

GestoProdutos.dll - responsvel por todas as operaes relativas gesto de produtos. Depende do componente ControloAcesso.dll para verificar se o utilizador possui permisses para executar as operaes. Depende tambm do mdulo BaseDados.dll para guardar os dados numa base de dados.

Determina tipo GestoProdutos.dll de Pagamento

Determina tipo BaseDados.dll de Pagamento

Diagrama de Componentes : exemplo


GestoClientes.dll - responsvel por todas as operaes relacionadas com a gesto de clientes. semelhana dos anteriores, depende do componente ControloAcesso.dll e BaseDados.dll.
Determina tipo GestaoEncomendas.Exe de Pagamento

Determina tipo GestoClientes.dll de Pagamento

ControloAcesso.dll - responsvel por conter as regras e poltica de acesso s operaes e objectos do sistema. S depende do componente BaseDados.dll para guardar os seus dados.

Determina tipo ControloAcesso.dll de Pagamento

BaseDados.dll - responsvel por conter as operaes de acesso e manuteno da informao nas bases de dados, separando assim os outros componentes dos diferentes tipos de bases de dados.

Determina tipo GestoProdutos.dll de Pagamento

Determina tipo BaseDados.dll de Pagamento

Diagrama de Execuo
O Diagrama de Execuo mostra o lado funcional, exibindo a arquitetura fsica do hardware e do software do sistema.

Diagrama de Execuo

Exemplo:

Classs de Acesso (Applet) Classes da Aplicao Cliente A

TCP/IP TCP/IP

Servidor Banco

SQL - TCP/IP

Servidor Dados

Cliente B

Perguntas?????

Exerccios

1) Identifique os atores e casos de uso em cada um dos planos de discurso a seguir. a) o sistema possibilita ao cliente atualizar seus dados cadastrais acessando o site na internet b) o caixa eletrnico permitir ao associado da cooperativa emitir um extrato da sua conta, bem como retirar ou depositar uma quantia financeira na sua conta c) a secretria pode importar o Registro Acadmico dados dos alunos do sistema administrativo, desde que informe o seu login e senha

2) De acordo com a imagem a seguir responda:

De acordo com a imagem a seguir responda: a) Descreva as funcionalidades que o sistema capaz de realizar. b) Identifique os erros, e justifique o seu ajuste. c) Construa um novo diagrama de caso de uso corrigindo os erros.

3) Crie um diagrama de classes para o seguinte problema: Sistema de gesto de vendas imobilirias Uma empresa de imobilirio vende imveis. Para tal detm uma carteira de clientes e uma carteira de imveis que tenta conciliar. Os clientes so descritos pelo seu nome e cdigo, endereo e telefone.Os imveis so descritos pelo seu cdigo, tipologia, zona, ano de construo e preo. Os clientes tm um conjunto de interesses que descrevem as suas preferncias por tipologia, zona e preo. Os clientes podem firmar acordos de promessa de compra/venda com a empresa para um determinado imvel, sendo este acordo firmado numa determinada data. Um cliente pode comprar mais do que um imvel, mas para cada compra ter de ter um acordo distinto. Identifique algumas operaes nas classe e monte 1 diagrama de seqncia como exemplo.