UML
UML
UML
Agenda
Software e modelagem; UML
Introduo; Diagramas;
Comentrios finais;
Agenda
Software e modelagem; UML
Introduo; Diagramas;
Comentrios finais;
Evoluo do software
O surgimento de sistemas de software complexos resultou na necessidade de reavaliar a forma de desenvolver sistemas; As tcnicas tem evoludo de forma impressionante, notavelmente no que tange modelagem de sistemas.
Modelagem
Um modelo pode ser visto como uma representao idealizada de um sistema a ser construdo; Maquetes de edifcios e de avies e plantas de circuitos eletrnicos so apenas alguns exemplos de modelos; Uma simplificao da realidade que nos ajuda a entender um problema complexo;
Modelagem de software
A modelagem de sistemas de software consiste na utilizao de notaes grficas e textuais com o objetivo de construir modelos que representam as partes essenciais de um sistema, considerando-se diversas perspectivas diferentes e complementares.
Evoluo da modelagem
Na primeira metade da dcada de 90 surgiram vrias propostas de tcnicas para modelagem de sistemas; Houve uma grande proliferao de propostas para modelagem de sistemas segundo o paradigma orientado a objetos; Existiam diferentes notaes grficas para modelar uma mesma perspectiva de um sistema.
Necessidade de um padro
Percebeu-se a necessidade de um padro para a modelagem de sistemas, que fosse aceito e utilizado amplamente; Surgiram esforos nesse sentido de padronizao, sendo o principal liderado por James Rumbaugh, Grady Booch e Ivar Jacobson (Rational).
Agenda
Software e modelagem; UML
Introduo; Diagramas;
Comentrios finais;
UML...
Surge a UML em 1996 como a melhor candidata para ser a linguagem unificadora de notaes; Em 1997 a UML aprovada como padro pela OMG; Desde ento tem tido grande aceitao; Atualmente na verso 2.0;
Caractersticas da UML
uma linguagem visual; independente de linguagem de programao; independente de processo de desenvolvimento; No uma linguagem de programao; No uma metodologia.
Usos da UML
Objeto
Cliente
N
Web Server
Interface
IImprimivel
Componente
ocv.dll
Relacionamentos
Estados
Conectando
Mensagens
Ator
Operador
Notas
Notas servem para adicionar alguma informao nos diagramas
Tagged Values
{nome=Joo da Silva Cpf=12345678901}
Regras de negcio
Banco de Dados
Agenda
Software e modelagem; UML
Introduo; Diagramas;
Comentrios finais;
Descreve o que o sistema faz do ponto de vista do observador externo; Ajuda a esclarecer os requisitos do sistema; Ajuda a dividir o desenvolvimento do sistema em tarefas;
Programar produo
Produzir pedido
Solicitar material
Diferentes usurios que operam o sistema; Sistemas externos que interagem com o sistema;
Operador Gerente
Sistema de estoque
Representa a comunicao entre o ator e o caso de uso; Tambm existem associaes entre casos de usos;
Gerente
Sistema de estoque
<<entity>> Pedido -data: date -status: Integer -obs: String -valorTotal: Float +calcImposto() +calcTotal() -calcSubTotal() +setCliente(cliente: Cliente) +inserirItem(item: ItemPedido)
Mtodos
Pagamento
-quantia: Float +getQuantia()
<<entity>> Pedido -data: date -status: Integer -obs: String -valorTotal: Float +calcImposto() +calcTotal() -calcSubTotal() +setCliente(cliente: Cliente) +inserirItem(item: ItemPedido)
0..* 1 <<entity>> Cliente -razaoSocial: String -cpf: String +getRazaoSocial() +setRazaoSocial(razaoSocial: String)
Multiplicidade; Navegabilidade;
<<entity>> Pedido -data: date -status: Integer -obs: String -valorTotal: Float +calcImposto() +calcTotal() -calcSubTotal() +setCliente(cliente: Cliente) +inserirItem(item: ItemPedido)
Agregao; Composio;
Computador
1 1..*
Cpu
Teclado
Monitor
Generalizao; Dependncia;
Pagamento -quantia
<<entity>> Pedido -data: date -status: Integer -obs: String -valorTotal: Float +calcImposto() +calcTotal() -calcSubTotal() +setCliente(cliente: Cliente) +inserirItem(item: ItemPedido)
Cheque -banco
Interface
Regras de negcio
Banco de Dados
Pagamento
-quantia: Float +getQuantia()
<<boundary>> FormPedido 1 +criarPedido() +gravarPedido() 1..* <<entity>> ItemPedido 1 0..* +qtd: Integer +setQuantidade(qtd: Integer) +setProduto(produto: Produto) <<entity>> Cartao +numero: Integer +tipo: Integer <<entity>> Cheque -banco: Integer
<<entity>> Dinheiro
Diagrama de Seqncia
Mostra um conjunto de objetos, seus relacionamentos e as mensagens que podem ser enviadas entre eles; Diagrama de seqncia d nfase seqncia de mensagens;
<<entity>> : ItemPedido
8 : setQuantidade()
10 : calcSubTotal()
sd Insere itens
Diagrama de Seqncia
<<boundary>> : FormPedido : Atendente 1 : cria pedido() 2 : create() 3 : informa cliente() 4 : setCliente() <<entity>> : Pedido Diagrama de sequncia referente insero de pedidos
<<entity>> : ItemPedido
Diagrama de estados
Exibe os possveis estados de um objeto; Exibe tambm as transies que causam a mudana de estado.
State1
State3
Rejeitando Cancelado
Lendo usurio
Capturando teclas
Lendo Senha
Mostra a configurao de software ou hardware; Permite avaliar as diferentes situaes de implantao do sistema.
Componente; N.
servidor.exe
Servidor de aplicao
<<jdbc>>
SGBD
Agenda
Software e modelagem; UML
Introduo; Diagramas;
Comentrios finais;
Engenharia Reversa
til quando se quer trabalhar com sistemas sem documentao; Nem sempre o resultado satisfatrio;
Ferramentas sugeridas
StarUML em www.staruml.com Poseidon em www.gentleware.com Umbrello em http://uml.sourceforge.net/index.php Rational Rose em www.rational.com Dentre outras...
Fontes
OMG www.omg.org UML www.uml.org UML Essencial Grady Booch, Ivar Jacobson e James Rumbaugh
Obrigado...
[email protected]