Escolar Documentos
Profissional Documentos
Cultura Documentos
CURSO DE VERO
Introduo UML
PROJETO DE SOFTWARE
UML (Unified Modelling Language)
uma linguagem para especificao, construo, visualizao e documentao de sistemas uma evoluo das linguagens para especificao dos conceitos de Booch, OMT e OOSE e tambm de outros mtodos de especificao de requisitos de software orientados a objetos ou no
U.M.L
Prof Edmundo JAN/2010 Aula 3
Histrico da UML
Incio em Outubro de 1994, Booch e Jim Rumbaugh comearam um esforo para unificar o mtodo de Booch e OMT (Object Modeling Language) Uma primeira verso, chamada Unified Method, foi divulgada em outubro de 1995 Jacobson juntou-se ao grupo, agregando o mtodo OOSE (Object-Oriented Software Engineering) O esforo dos trs resultou na liberao da UML verso 0.9 e 0.91 em junho e outubro de 1996
Ferramentas de Apoio
Diversas empresas lanaram ferramentas para auxiliar a modelagem e projeto de sistemas utilizando UML, gerar cdigo a partir da modelagem e projeto e realizar engenharia reversa, ou seja, obter o modelo em UML a partir do cdigo. Exemplos:
A famlia Rational Rose Interprise (da Rational Software Corporation http://www-306.ibm.com/software/rational/) que gera cdigo para SMALLTALK, PowerBuilder, C++, J++, Visual Basic. http://www.omg.org/technology/uml/index.htm#Links-Tools (lista de ferramentas que envolvem a UML) MVCase: Desenvolvida por pesquisadores da UFSCAR. Disponvel em http://www.recope.dc.ufscar.br/mvcase/
5 6
STATECHARTS (Harel)
Diagrama de statecharts (Diagrama de estados)
BOOCH
Diagrama de estados Diagrama de classes Diagrama de objetos (Diagrama de colaborao) Diagrama de processos (Diagrama de implantao) Diagrama de mdulos (Diagrama de componentes)
UML
OMT (Rumbaugh)
Diagrama de classes Diagrama de estados (Diagrama de atividades)
OOSE (Jacobson)
Diagramas da UML
UML aborda
Comportamento interno do software: Modela a resposta aos estmulos externos e a comunicao entre as partes internas
Diagramas de Estados Diagramas de Seqncia Diagramas de de Colaborao Diagramas de Atividade
Diagramas de Casos de Uso Diagramas de Classe Diagramas de Comportamento Diagrama de Estado Diagrama de Atividade Diagrama de Seqncia Diagrama de Colaborao Diagramas de Implementao Diagrama de Componente Diagrama de Implantao (Deployment)
7
Comportamento externo do software: Descrio de cenrios de interao entre elementos externos e o sistema
Diagramas de Casos de Usos
8
UML aborda
Arquitetura de implementao: Descrio dos componentes de software que formam o sistema e a arquitetura de hardware
Diagramas de Componentes Diagramas de Implantao
Estrutura de suporte: Estrutura das partes que formam o sistema e suas relaes internas
Diagramas de Classes Diagramas de Pacotes
9
Atores
entidades do sistema, pessoas ou outros subsistemas que interagem com o sistema em desenvolvimento
A coleo de casos de uso dever especificar todas as formas existentes de uso do sistema
13
14
Identificao de atores
Atores so externos ao sistema Para a identificao de todos os atores de um sistema poder ser necessrio vrias iteraes. Diretrizes:
Pergunte a voc prprio por que o sistema est sendo desenvolvido? Quem sero as pessoas que o sistema ajudar? Quais sero os outros sistemas que precisaro interagir com o novo sistema?
Cliente
15
16
Cl ient e
17
18
oval
representam a
CadastrarCliente
19
20
msg01 Cliente
cadastrarCliente
21
22
Verificar senha
23
Scan da retina
24
25
26
Cliente msg02
EfetuarPedido <<includes>>
ValidarCliente
27
28
CadastrarCliente
29 30
Retornar item
<<extends>>
Item preso
31
32
Detalha o que o sistema deve fornecer para o ator quando o caso de uso for executado Contedos tpicos
Como o use case comea e termina Fluxo normal de eventos Fluxo alternativo de eventos Fluxo excepcional de eventos (respostas a erros)
2 3 4 5 6
35
<<extends>>
Cliente <<extends>>
Locar Fitas
<<extends>>
Marcar Consultas
Validar Cliente Pagar com Cheque Pagar com Dinheiro Pagar com Carto
Paciente Efetuar Pagamento
37
38
<<includes>>
<<includes>>
<<includes>>
Identificar Cliente
Validar Conta
Caso de Uso de Incluso: Validar Conta obtenha informaes sobre a conta obtenha status e limite da conta
39 40
Classe Notao
Nome
Forma
origem
Mtodos
Classe Visibilidade
Pode-se usar marcaes de acesso para especificar o tipo de acesso permitido aos atributos e mtodos
pblico: uso por todas as classes protegido: uso por qualquer descendente da classe privado: uso: somente pela prpria classe
t e s te x 1 : int n o m e : s t rin g c o d ig o : c h a r
1..n
Produto
Tipos de relacionamentos
Associaes Agregaes Dependncias Generalizaes
45
Multiplicidade
indica quantos objetos uma classe pode possuir e por quantos objetos uma classe possuda 0..1 (opcional- 0 ou mais) 1 (exatamente 1) 0..* (muitos- 0 ou mais) 1..* (1 ou mais) 1..n ( de 1 a n)
46
1..n
Produto
47
48
Companhia
1
possui
1 .. *
trabalha
Empregado
chefia 1
subordinado 0 .. *
Aluguel AluDataInicio : Date = GetDate
49
50
de
Herana/Generalizao
Funcionarios
relacionamento entre um elemento mais geral (superclasse ou pai) e um mais especfico (subclasse ou filho)
Pessoa
Composio: Composio: As partes s podem pertencer ao todo e so criadas e destrudas com ele
Garagem
Dependentes
Pessoa Fsica
Pessoa Jurdica
51
52
Cursos
edicao : String ano : int titulo : String autor : String editora : String 1 pertence 1..* 53
54
Interaes
Mostram os aspectos dinmicos de um sistema, enfatizando a troca de mensagens entre objetos
Diagramas de Interao
- Diagrama de Seqncia
- Diagrama de Colaborao
Dois diagramas podem ser usados para modelar as interaes: diagramas de sequncia e diagramas de colaborao
55 56
Utilidades
Modelar as interaes em um sistema uma das tcnicas mais poderosas para a descoberta das classes e das operaes do sistema Diagramas de interao
facilitam o entendimento de sistemas com comportamento complexo teis para sistemas OO porque a funcionalidade nesses sistemas geralmente distribuda em muitas classes diferentes
57
58
Diagrama de colaborao
d nfase na organizao estrutural dos objetos que enviam e recebem mensagens
59
60
10
63
64
Chamada (Call) Retorno (Return) Envio (Send) Criao (Create) Destruio (Destroy)
66
11
67
68
69
70
1: retira fone do gancho 2: tom de discar 3: discagem do nmero chamado 4: tom de controle 5: toque de chamada 6: retira fone do gancho 7: conversao 8: conversao
71
72
12
73
74
Jose:Chamador
Antonio:Chamado
Exemplos:
Ocioso Recebendo Pagamento Entregando item
77 78
13
Ociosa
cancelar / devolver moedas
Recebendo R$
[ item vazio ]
selecionar (item)
[ troco < 0 ]
Oferendo servios
[ troco = 0 ] [ troco > 0 ]
Despachando Item
Entregando Troco
79 80
Estado final
um estado de parada que representa um estado final ou terminal de um sistema
Partes de um Estado
Nome Aes de entrada (Entry) Aes da sada (Exit) Atividades (do:)
81
82
Ao de Entrada (Entry)
Quando entra no estado a ao executada Exemplo
ao entrar no estado Acompanhar, a ao Entry setModo(onAcompanhar) executada
Ao da sada (Exit)
Quando sai do estado a ao executada Exemplo
ao sair do estado Acompanhar, a ao Exit setModo(offAcompanhar) ser executada
83
84
14
Atividades (do:)
Enquanto estiver no estado, o objeto faz algo que continuar ser executado at ser interrompido por um evento Exemplo
enquanto estiver no estado Acompanhar atividade do: seguirAlvo ser executada a
Representao de um estado
85
86
Transio
um relacionamento entre dois estados
Indica que o objeto no primeiro estado ir executar certas aes e entrar no segundo estado quando o evento especificado ocorrer e as condies especificadas forem satisfeitas
Transio
Utiliza-se transies de estado para conectar dois estados em um diagrama de estado ou mostrar transies de um estado para ele mesmo O cone para uma transio de estado uma linha com uma ponta de flecha apontando para o prximo estado
Evento
Ocioso
Ao
Esfriando
Quente demais/Esfriar
Transio
87 88
Transio
Rotular a transio com o evento que a ativou e a ao resultante.
Partes da transio
Estado fonte Evento de disparo Condio de guarda Ao Estado alvo
89
90
15
Evento de disparo
Ocorrncia de um estmulo que pode disparar uma transio de estado Ex: Apertar o boto do mouse, Discar um dgito (nmero) possvel haver uma transio sem um evento de disparo
Condio de guarda
Expresso booleana entre [ ] colocada aps o evento de disparo avaliada apenas aps a ocorrncia do evento de disparo da transio
91
92
Ao
Resposta instantnea a uma transio
usualmente associada a uma transio, embora possa ser associada a um estado
Ocioso
Ac om panhar
al voE m ( p ) [ Am eaa ] / t. adic ioneA lvo( p) evento de disparo c om parm etros ao guarda contato
Disparando
93
94
Subestados
Registration A dd student[ Count < 10 ] A dd s tud ent / Set c ount = 0 Initializ ation do: Initialize c ourse
Concorrncia
Concorrncia dentro de um objeto Concorrncia entre objetos
Open
95
96
16
alarmeON
12hs InserirBateria
alarmeOFF
24hs
acabouBateria
97
98
Transmisso
Ignio
Freios
Acelerador
Cada objeto mantm o seu prprio estado concorrentemente com outros objetos
Ignio
Diagrama de Estados
girar a chave para ligar [cmbio neutro]
soltar a chave
desligado
iniciando
girar a chave para desligar
ligado
100
Dicas
Somente construa Diagrama de Estados para classes de objetos com um comportamento dinmico significativo Nem todas as classes necessitam de um Diagrama de Estados Somente considere os atributos quando da definio de um estado relevantes
Nem todos os atributos mostrados nas classes precisam ser usados no Diagrama de Estados
101
17
Notao
Estado 1 evento Estado-2
103
104
105
106
Transio e Condies
Transio sem condies so disparadas assim que as atividades correspondentes terminam Transio com condies s disparam quando a atividade termina e as condies so satisfeitas
107
108
18
109
110
111
112
Pessoa
[sem caf]
[sem Coca]
Procurar bebida
Fork
Colocar caf no filtro
[achou caf]
[achou Coca]
Pegar xcara
Ligar mquina
Filtrar caf
113
Beber
114
19
Cliente
H
Solicitar produto
Vendas
Estoque
Enviar pe dido
Re cebe r pe dido
117
118
relacionamentos,
Acadmico
119
120
20
Interface GUI
Compra
Venda
121
122
ser
Diagrama de componente
usado para modelar os aspectos fsicos de um sistema
123
A nica restrio que o que est sendo modelado deve ser fsico (formado por bits) e no conceitual (ou lgico)
124
Um componente, tipicamente, uma verso fsica de elementos lgicos, como classes e interfaces
125 126
21
Component1
Interface_1
Interfaces Requeridas
Interface_2
Interface Fornecida
Interface_3
127
128
Exemplos
Autenticao.exe
Animator.exe
IScripts
IModelos
IAnimacao
IRenderizao
129
130
Componentes e dependncias
Format.dll JanelasComuns.dll
Palavras.exe
Palavras.ini Palavras.hlp
Ortograf.dll
131
132
22
entre
133
134
135
136
1. Processador
PC Pentium 300
2. Dispositivo
Modem
3. Conexo
137
PC Pentium 200
Fibra tica
Impressora HP 700
138
23
PC - G309
Principal.html
PC PC PC
servidorWeb
FormCadastro.html
Autenticao.exe servidorDeArquivos
Internet
Cadastro.exe
servidorBancoDeDados
SGBD
Concluso
Tecnologia OO recente e veio para ficar
Outras abordagens recentes baseadas em OO
Desenvolvimento Baseado em componentes Desenvolvimento Orientado a Aspectos
Referncias Bibliogrficas
Utilizando UML e Padres Craig Larman, Bookman, 2003. Rumbaugh, J., Jacobson, I., Booch, G.; UML, Campus, 1999. Medeiros, E. Desenvolvendo Software com UML definitivo 2.0, Makron Books, 2004. Preesman, R. S. Software Engineering: A Practitioners Approach, McGraw-Hill, sixth edition, 2005. Gimenes, I.; Huzita, E. Desenvolvimento baseado em Componentes: Conceitos e Tcnicas, Cincia Moderna, 2005.
Existem mtodos, tcnicas e ferramentas de software OO que acompanham o processo de desenvolvimento do software desde a anlise at a implementao
141
142
Esteretipos (Stereotypes)
http://www.rational.com (Rational) http://www.omg.org (Object Management Group) Page-Jones, M.; Fundamentos do desenho orientado a objeto com UML, Makron Books, 2001. Furlan, J. D.; Modelagem de Objetos Atravs da UML, Makron Books, 1998. Rumbaugh, J., Jacobson, I., Booch, G.; The Unified Modeling Language Reference Manual, AddisonWesley, c1999. Conallen, J.; Building Web Applications with UML, Addison-Wesley, 1999. Fowler, M.; Scott, K.; UML Essencial, Bookman, 2000.
143 144
Mecanismo de extenso que permite estender o metamodelo para suprir necessidades que no encontramse entre os meta-elementos disponveis, desde que a definio semntica da prpria linguagem no seja ferida Um esteretipo pode ser aplicado a classes, relacionamentos de dependncia, atributos, operaes, casos de uso, etc. Ex: <<abstract>>, <<metaclass>>, <<extends>>
24
Diagrama de caso de uso - similar aos do mtodo OOSE Diagrama de classes - fuso do OMT, Booch e maioria dos mtodos OO, com novos elementos Diagrama de estado - statechart de Harel Diagrama de atividade - possui a mesma semntica do diagrama de estado e parecido com diagramas de workflow Diagrama de seqncia - so encontrados em diversos mtodos sob muitos nomes (interao, eventos, mensagem) Diagrama de colaborao - foi adaptado do Booch e Fusion Diagramas de implementao (diagrama de componente e diagrama de disponibilidade) - so derivados dos diagramas de mdulo e processo do mtodo Booch
145 146
Exerccio 1
Uma empresa atende pedidos de seus clientes, que podem ser atacadistas ou varejistas. Para o atendimento de pedidos o cliente deve estar cadastrado (nome, endereo, cpf/cnpj). Ao enviar um pedido esse ser aceito se o produto solicitado estiver cadastrado e se o cliente no excedeu seu limite de crdito. Se o produto no estiver cadastrado, uma mensagem enviada ao cliente que seu pedido foi cancelado. Os pedidos de atacadistas constam de um s produto em grande quantidade. Os pedidos de varejistas constam sempre de mais de um produto em quantidades inferiores h 200 unidades. Os produtos podem ser perecveis ou no. Os produtos perecveis possuem uma taxa de desconto que no existe para os outros produtos. Se no existir a quantidade suficiente do produto, o pedido ser colocado em pendncia at que o uma nova remessa do mesmo seja reposta em estoque. A empresa emite uma solicitao de compra aos fornecedores dos produtos em falta, semanalmente. Quando os produtos comprados chegam empresa, a solicitao de compra conferida com a nota fiscal do fornecedor e os pedidos pendentes so atendidos, com prioridade. A nica forma de pagamento disponvel para qualquer tipo de cliente por meio de faturas emitidas quando as compras so realizadas e com data de vencimento prestabelecida
147 148
Exerccio 2
A empresa EqManut tem como principal atividade a prestao de servios de manuteno em equipamentos mdicos. A empresa composta basicamente de tcnicos em eletrnica e pessoal administrativo. A empresa atualmente possui contratos com diversos clientes. Estes contratos so estabelecidos pelos vendedores. Todo contrato referente a um determinado cliente e envolve um ou mais equipamentos. Os equipamentos dos contratos devem obrigatoriamente ser de tipos de equipamentos que a empresa esteja habilitada a oferecer manuteno. Para cada equipamento deve ser informado sua data de fabricao e seu nmero de srie, e a empresa atribui um nmero de manuteno que deve ser informado pelo cliente quando este solicitar uma manuteno. Os contratos recebem um nmero seqencial e possuem um perodo de validade. O valor de um contrato estabelecido em funo do nmero de equipamentos e seus respectivos tipos uma vez que existe um preo de manuteno para cada tipo de equipamento. O pagamento de um contrato parcelado em cotas com valores fixos. A solicitao de servio tcnico realizada atravs de chamadas por telefone. As chamadas so recebidas pelo atendente que solicita ao cliente o nmero do equipamento e o motivo da chamada. Antes de abrir um chamado o atendente verifica se o equipamento est coberto por um contrato vlido e se existem pagamentos com atraso superior a 30 dias. Com base nas chamadas recebidas e os motivos informados pelo cliente, um supervisor aloca um tcnico para cada chamada para que seja efetuado o servio. Quando um tcnico retorna da visita ao cliente, este apresenta um relatrio tcnico, contendo os equipamentos reparados, os componentes trocados bem como os problemas identificados e as solues adotadas. A empresa recebe de 50 a 70 chamados por dia e trabalha com dois supervisores, quarenta tcnicos, um atendente. O sistema deve controlar todo as etapas de uma chamada, desde o momento do 149 registro at a finalizao do servio.
25