Visão Geral da UML - Fernando Martins Muradas

Embed Size (px)

Citation preview

Viso Geral da UML

Fernando Martins Muradas

Viso Geral da UML Noes bsicas de Orientao a objetos Modelagem de Sistemas Histrico da UML O que a UML Diagramas da UML Diagrama de Casos de Uso Diagrama de Classes Diagrama de Objetos

Viso Geral da UML Diagramas da UML (continuao) Diagrama de Transio de Estados Diagramas de Interao (Sequncia/Colaborao) Diagrama de Atividades Diagrama de Componentes Diagrama de Implantao

Concluses

Viso Geral da UML Noes bsicas de Orientao a objetos Modelagem de Sistemas Histrico da UML O que a UML Diagramas da UML Concluses

Evoluo dos ParadigmasLegibilidade Modificabilidade Controle do Usurio Reusabilidade Reusabilidade de fato

Desvio Estruincondi- turas de cional Controle

Subprogramas

Eventos

Objetos

Componentes

Orientao a Objetos Programao tradicional se baseia na compreenso do sistema como um conjunto de programas que executam processos sobre dados O enfoque em OO, v o mundo como uma coletnea de objetos que interagem entre si e apresentam caractersticas prprias representadas pelos seus atributos e operaes

O mundo real, que queremos modelar, constitudo por objetoscarro caneta aluno concerto congresso conta a pagar relatrio .....................EstruturaComportamento

Qual a estrutura do objeto ? Quais so as operaes sobre o objeto ?

cdigo fabricante tipo cor licena ano de fabricao no motor ..........

ligar acelerar mudar a marcha frear virar esquerda virar direita ..........

Classe-Carrocdigo (inteiro) fabricante (cadeia de caracteres) tipo (inteiro) cor (cadeia de caracteres) licena (cadeia de caracteres) ano de fabricao (inteiro) no motor (inteiro) .......... procedimento ligar procedimento acelerar procedimento mudar a marcha procedimento frear procedimento virar esquerda procedimento virar direita ..........

Com OO

fim-classe

Qual a estrutura do objeto ? Quais so as operaes sobre o objeto ?

matrcula nome endereo data_nascimento curso data_incio notas ..........

incluir dados pessoais matricular alterar endereo incluir nota emitir histrico ..........

Classe-Alunomatrcula (inteiro) nome (cadeia de caracteres) endereo (cadeia de caracteres) data_nascimento (inteiro longo) curso (cadeia de caracteres) data_incio (inteiro longo) notas .......... procedimento incluir dados pessoais procedimento matricular procedimento alterar endereo procedimento incluir nota procedimento emitir histrico ..........

Com OO

fim-classe

Classe

EstruturaOperaes sobre

Comportame ntofim-classe

Orientao a ObjetosBenefcios Os sistemas orientados a objetos podem representar melhor o mundo real ; Espelha a estrutura e o comportamento dos objetos do negcio; Permite uma modelagem mais perfeita e natural; Oferece maior transparncia da modelagem para construo; A mesma notao usada desde a anlise at o projeto e a implementao; Ocorre uma reduo na quantidade de erros; Melhora a comunicao entre desenvolvedores e usurios; Reduo no tempo de manuteno; Favorece a reutilizao; Facilidade de extenso; Impe maior qualidade, produtividade.

Orientao a Objetos Um sistema orientado a objetos um conjunto de objetos que se comunicamClasses de interao Classes de negcio Classes persistentes Classes de sistema

Orientao a Objetos Tradicional Orientao a ObjetosClasse Variveis Atributos

Funes

Mtodos

// programa pessoa estruturada #include void alterarPessoa(tpessoa * p, int i, float t) { p idade = i; p temperatura = t; } void imprimirPessoa(tpessoa p) { printf(%d %f, p.idade, p. temperatura); } typedef struct { int idade; float temperatura; }tpessoa; void main(void) { tpessoa joao; alterarPessoa ( &joao, 18, 36.5); imprimirPessoa( joao ); }

// programa pessoa OO #include class pessoa { private: int idade; float temperatura; public: void alterarPessoa(int i, float t) { idade =i; temperatura = t;} void imprimirPessoa(void) {printf(%d %f, idade, temperatura);} }; void main(void) { pessoa joao; joao.alterarPessoa(18, 36.5); joo.imprimirPessoa( ); }

Orientao a Objetos Classe / ObjetoClasse instanciao Objetos (instncias) Joo Pessoa

Maria

Classe Atributos Especifica Servios

Objeto Estrutura

Comportamento

tipo

varivel

Orientao a Objetos Princpios bsicos Abstrao Encapsulamento Herana Polimorfismo

Orientao a Objetos Abstrao O processo de abstrao consiste em concentrar a ateno em alguns aspectos da realidade modelada, abandonando os demais aspectos Um objeto uma entidade de software que representa uma abstrao de alguma coisa no domnio do problema que precisamos modelar

Orientao a Objetos AbstraoPessoa Nome Altura Peso cor dos olhos cor do cabelo identidade cpf idade filiao naturalidade Sistema para modelos Nome Altura Peso cor dos olhos cor do cabelo idade Sistema para banco Nome identidade cpf idade filiao naturalidade

Orientao a Objetos Encapsulamento Em um nico pacote esto dados (estrutura) e operaes (comportamento) Dados de um objeto so privados do objeto Dados do objeto s so manipulados pelos mtodos do prprio objeto Mtodos de um objeto so pblicos Os mtodos so a interface do objeto

Orientao a Objetos EncapsulamentoAtualizar Salrio Imprimir Dados

Aniversrio

Alterar Idade

Maria Engenheira 30 anos 31 anos R$ 1000,00 Alterar Cargo

Orientao a Objetos / Herana Classes Genricas podem ser especializadas em subclasses Subclasses herdam atributos e mtodos de suas superclasses

Orientao a Objetos / HeranaPessoa idade CPF Alterar Dados Funcionrio idade CPF Funcionrio salrio salrio Alterar Dados Imprimir Salrio Cliente idade CPF Cliente crdito crdito Alterar Dados Calcular Crdito

Orientao a Objetos Herana MltiplaVeculo

Veculo Terrestre

Veculo Aqutico

Carro

Veculo Anfbio

Barco

Classes Concretas e Classes Abstratas

Classes Concretas - So classes instanciveis, ou seja, possuem instncias diretas Classes Abstratas - So classes no instanciveis, ou seja, no possuem instncias diretas (mas suas subclasses possuem).

Classes Concretas e Classes Abstratasnome endereo idade status credito Cliente consultar status consultar credito habilidade .......

atualizar dados pessoais ....... salrio

Pessoa

atualizar salrio Empregado ....... comisso atualizar Vendedor salrio .......

Projetista consultar habilidade .......

Orientao a Objetos Polimorfismo Polimorfismo a capacidade de assumir diferentes formas A subclasse pode redefinir um mtodo herdado de uma superclasse

Orientao a Objetos PolimorfismoFuncionrio Matrcula Salrio Calcular SalrioSalrio = (no. de dias * Valor base)

Vendedor comisso Calcular Salrio

Salrio = (no. de dias * Valor base) + comisso

Gerente nvel

Estado

Conjunto dos valores dos atributos de um Conjunto dos valores dos atributos de um objeto em um determinado momento objeto em um determinado momento

EstadoAtualizar Salario Imprimir Salario

Imprimir Dados Pessoais

Maria Engenheira R$ 1000,00Alterar Dados Pessoais Imprimir Cargo

Alterar Cargo

Orientao a Objetos outros conceitos Evento - algo que acontece que gera uma mudana de estado em um objeto Mensagem - a chamada a um mtodo

Tipos de Objetos Objetos de Negcio (ou do domnio do problema) Entidade de software que representa uma abstrao de alguma coisa no domnio do problema que precisamos modelar

Objetos de Implementao (necessrios construo do software)Objetos de interface; e Objetos de acesso a dados; Entidades de software necessrias para a construo de sistemas Orientados a Objetos, conectando, por exemplo, os objetos de negcio ao mundo exterior (interface) e ao mecanismo de banco de dados

Orientao a Objetos Classe de NegcioAluno matrcula nome notas alterar dados pessoais matricular

Classe de InterfaceJanela dimenso cor estilo redimensionar abrir

Viso Geral da UML Noes bsicas de Orientao a objetos Modelagem de Sistemas Histrico da UML O que a UML Diagramas da UML Concluses

Modelando Sistemas OO Sistema conjunto de elementos interrelacionados, que possuem caractersticas comuns e que podem ser entendidos como um todo.

Modelagem Modelo uma representao de um sistema (ou objeto qualquer). uma abstrao da realidade. O conhecimento humano composto de modelos do mundo real ou de modelos criados a partir de outros existentes em nossa mente. Consiste em criar um modelo de uma parcela do mundo real ou a partir de outro modelo. Em um modelo optamos por representar as caractersticas do mundo real que so do nosso interesse, ou seja, que so relevantes para o propsito da modelagem

Modelar por qu? Possibilitar o estudo do comportamento do sistema; Possibilitar a discusso de correes, modificaes e validao com o usurio, a baixo custo; Facilitar a comunicao entre os membros da equipe; e Documentar o sistema, registrando todas as decises tomadas durante o Projeto.

Modelo Dimenses As dimenses do modelo so as caractersticas da realidade que so enfatizadas no modelo O processo de abstrao determina quais destas caractersticas sero representadas e quais sero excludas do modelo

Nveis de Abstrao Conceitual Especificao ImplementaoLinguagem Domnio

Principais Erros de Especificao de Sistemas No revisar todos os requisitos; No garantir que o texto dos Casos de uso estejam de acordo com o comportamento esperado para o sistema ; No utilizar prottipo para ajudar a validar o comportamento do sistema; Manter seus Casos de Uso em um nvel de abstrao alto demais, que no ajude os clientes no tcnicos a entender o que aquele Caso de Uso implementa; O modelo de domnio no refletir os objetos conceituais do mundo real; (Doug Rosenberg & Kendall Scott - 2001)

Principais Erros de Especificao de Sistemas O texto do Caso de Uso no referenciar os objeto do domnio; No questionar Casos de Uso que no tenham fluxos alternativos; No questionar se todos os fluxos alternativos foram considerados em todos os Casos de Uso; No se preocupar que o texto do Caso de Uso esteja na voz passiva; e No se preocupar que o texto do seu Caso de Uso tenha 4 pginas. (Doug Rosenberg & Kendall Scott - 2001)

Viso Geral da UML Noes bsicas de Orientao a objetos Modelagem de Sistemas Histrico da UML O que a UML Diagramas da UML Concluses

Histrico da UML Incio dos anos 70 - Programao Estruturada Meados dos anos 70 - Anlise Estruturada Meados dos anos 80 - Anlise Essencial Incio dos anos 90 - Anlise Orientada por Objetos Fim dos anos 90 - Maturidade em OO e UML

Histrico da UML Anlise Estruturada Centrada em processos Focada para os fluxos de dados Voltada para grandes sistemas batch Viso Top Down

Histrico da UML Anlise Essencial Modelo Essencial do Sistema Particionamento por eventos Sincroniza modelagem de dados com modelagem de processos Viso Middle out

Histrico da UML Anlise Orientada a Objetos O sistema uma coletnea de objetos que interagem entre si Programao mais prxima do mundo real A mesma notao usada da anlise at o projeto e a implementao Melhor comunicao entre desenvolvedores e usurios Facilidade para reutilizao

Histrico da UML Booch (Grady Booch) OMT (James Rumbaugh) - Object Modeling Technique; OOSE (Ivar Jacobson) - Object Oriented Software Engineering Coad/Yourdon (Peter Coad/Ed Yourdon) outros

Histrico da UML 1995 - Booch e Rumbaugh na Rational lanam UML verso 0.8 1995 - Jacobson na Rational 1996 - OMG - Object Management Group decide criar um padro em OO jan 1997 - Rational lana UML verso 1.0 set 1997 - Rational lana UML verso 1.1

Histrico da UML 1997 - OMG adota UML 1.1 como padro 1998 - UML verso 1.2 1999 - UML verso 1.3 atualmente - UML verso 2.0

Viso Geral da UML Noes bsicas de Orientao a objetos Modelagem de Sistemas Histrico da UML O que a UML Diagramas da UML Concluses

O que a UML Linguagem de Modelagem Unificada a padronizao da linguagem para desenvolvimento de sistemas orientados a objetos para visualizao, especificao, construo e documentao de sistemas Pode ser utilizada em todo o ciclo de desenvolvimento de software

O que a UML Mostra os limites de um sistema e suas funes principais (Casos de Uso) Representa a estrutura esttica do sistema (Diagrama de Classes) Mostra funes bsicas do sistema (Diagramas de interao) Modela o comportamento dos objetos (Diagrama de Transio de Estados)

O que a UML Descreve a implementao dos mdulos e suas dependncias (Diagrama de Componentes) Mostra a organizao fsica do sistema, computadores e perifricos e como eles se conectam entre si (Diagrama de Implantao)

Viso Geral da UML Noes bsicas de Orientao a objetos Modelagem de Sistemas Histrico da UML O que a UML Diagramas da UML Concluses

Diagrama de Casos de Uso Caso de Uso em conjunto de seqncias de aes que um sistema desempenha para produzir um resultado observvel de valor a um ator especfico Um Caso de Uso descreve uma funcionalidade a ser oferecida pelo sistema, ou seja, um servio prestado ao usurio

Caso de Uso Sistema de Negcio Simboliza parte de um negcio, onde so definidas as responsabilidades do sistema e as do ambiente.Ambiente Fronteira Sistema de Negcio

Caso de Uso O que Um caso de uso uma sequncia de aes que um ator executa em um sistema com um propsito especfico.

Caso de Uso O que Um caso de uso uma sequncia de aes que um ator executa em um sistema com um propsito especfico. Fluxo especfico de eventos para o sistema; Ocorrem em uma mesma ocasio; Diversas alternativas so melhor agrupadas em um caso de uso.

Caso de Uso O que Um caso de uso uma sequncia de aes que um ator executa em um sistema com um propsito especfico. provocado por estmulo proveniente de um ator evento externo; Ou por um instante no tempo, alcanado pelo sistema evento temporal; Consiste em um conjunto de aes, decises e transmisso de estmulos de/para atores.

Caso de Uso O que Um caso de uso uma sequncia de aes que um ator executa em um sistema com um propsito especfico. Raciocinar com atores individuais; O ator representa um papel ou outro sistema; O ator qualquer coisa externa ao sistema que interage em algum momento com o sistema

Caso de Uso O que Um caso de uso uma sequncia de aes que um ator executa em um sistema com um propsito especfico. O sistema suporta integralmente o Caso de Uso

Caso de Uso O que Um caso de uso uma sequncia de aes que um ator executa em um sistema com um propsito especfico. O resultado tem que ser mensurvel; Importante para identificar casos de uso no nvel adequado; O sistema ajuda o ator a executar uma tarefa de valor identificvel para um ator.

Caso de Uso Na modelagem de um caso de uso observamos dois aspectos: O ambiente onde se encontra o Ator O sistema onde se desenvolve o Caso de Uso Queremos modelar a interao, sob o enfoque do ator, ou seja, sem apresentar detalhes internos do funcionamento do Sistema

Ator Externo ao sistema; Papel de algum, ou de alguma coisa; Abstrao de alguma pessoa ou coisa que utiliza o sistema, inclusive outros sistemas; Tudo aquilo que interage com o sistema e que interessa ser modelado

Identificao de Atores Atores so descobertos observando-se: Quem utiliza o sistema; Quem o responsvel por manter o sistema; Hardware externo usado pelo sistema; Outros sistemas que precisam interagir com o sistema.

Identificao de Casos de Uso A partir dos atores:1. Identificar os atores relacionados ao sistema ou organizao; 2. Para cada ator, identificar os processos que ele iniciam ou em que participa.

A partir dos eventos:1. Identificar os eventos externos aos quais o sistema deve responder; 2. Relacionar os eventos a atores e a casos de uso

Casos de Uso - Nomes Expressa o que acontece quando uma instncia do caso executada. O nome deve ser ativo verbo no infinitivo + substantivo.Servir Almoo cliente Adquirir material gerente catlogo

Casos de Uso - Descrio Quando um cliente entra no restaurante, ele saudado na porta e convidado a retirar seu casaco. A seguir, o cliente ocupa uma mesa e recebe o menu. Aps o cliente ficar algum tempo escolhendo, ele solicitado a fazer o seu pedido, ou o cliente pode chamar o garom, e o pedido passado cozinha, onde preparado. Quando o pedido est pronto, ele servido ao cliente. Aps a refeio, espera-se que o cliente chame o garom para efetuar o pagamento. Depois de pagar, o cliente pode solicitar seu casaco e deixar o restaurante

Casos de Uso - Passos Cliente entra no restaurante Recepcionista convida-o a retirar o casaco Cliente ocupa a mesa Garom entrega o menu Cliente escolhe o prato Cliente faz seu pedido Garom passa o pedido a cozinha A cozinha prepara o pedido O pedido servido ao cliente Cliente solicita a conta Cliente efetua o pagamento Cliente solicita seu casaco Cliente deixa o restaurante

Casos de Uso - Extenso Alternativa onde os casos bsicos so mostrados no modelo e outros cursos de eventos so adicionados. Utiliza o outro caso de uso em algumas situaes.Servir Almoo cliente

Servir sobremesa

Casos de Uso - Incluso Alternativa onde os partes comuns de dois ou mais casos de uso so descritas em uma rea comum. Ou quando um caso de uso utiliza sempre outro integralmente.Servir Almoo

cliente Servir Jantar

Pagar conta

Casos de Uso - Formato A UML no especifica um formato rgido para descrio de casos de uso, somente para sua diagramao. Ela pode ser alterada para atender a necessidades especficas, aumentar a clareza da documentao ou melhorar a comunicao. Normalmente as descries so construdas como um texto explicativo ou passos de um procedimento, em portugus.

Casos de Uso Conceitos Avanados

GeneralizaoCasos de Uso Ator

Representao de Requisitos NoFuncionais

Casos de Uso GeneralizaoVender Carro Vender Veculo Vender Utilitrio

vendedor

Atores GeneralizaoVender Equipamento vendedor

Autorizar Crdito Gerente

Representao de Requisitos No-FuncionaisTempo mximo de resposta = 1 s

Autorizar Crdito Gerente

Diagrama de Casos de UsoElementos:-Ator Qualquer elemento externo ao sistema que interage com omesmo. Pode ser um usurio, um outro sistema, etc.

-Caso de Uso -Comunicao

Uma funcionalidade do sistema que retorna algo de valor para um ator, e ocorre em um nico momento. Indica que existe um fluxo de comunicaes entre o Ator e o Caso de Uso. Pode ainda indicar quem iniciou a comunicao

-Fronteira

Mostra o escopo do sistema, dentro os casos de uso e fora os atores.

Diagrama de Casos de UsoSistema de vendas Emitir relatrio de vendas gerente Cadastrar cliente clienteSistema Administradora de CC

Diagrama de Casos de Uso(Descrio de Caso de Uso)Caso de Uso: 1 Cadastrar Cliente Descrio Geral : Caso de Uso onde cliente efetua o seu cadastramento pela internet Atores : Cliente, Adm de carto Incio : Esse caso de uso tem seu inco quando o cliente acessa o portal da locadora na internet. Fluxo Tpico o N Ao 1 Cliente informa o nmero do seu CPF 2 Sistema solicita os dados do cliente 3 Cliente informa seus dados 4 Sistema valida CC junto a adm de CC 5 Adm de CC informa CC OK 6 Sistema informa senha do cliente e encerra Caso de Uso Alternativa 1: No 5 6 Fluxos Alternativos Adm CC informa CC no OK. Ao Adm informa CC no OK Sistema emite mensagem para cliente e encerra Caso de Uso

Diagrama de Classes Grfico bi-dimensional de elementos de modelagem Este diagrama evolui ao longo do ciclo de vida do desenvolvimento Mostra as classes e o relacionamento entre elas

Diagrama de Classes Descreve relaes estticas, basicamente: Classes e sub-classes Associaes

Atemporal Objeto = qualquer coisa que faz sentido no contexto da aplicao Classe = conjunto de objetos com atributos, comportamentos e semntica comuns.

Perspectivas Conceitual Especificao ImplementaoLinguagem Domnio

Modelo Conceitual No modelo conceitual representamos conceitos relativos ao domnio de um problema. Devemos nos concentrar no negcio e no em detalhes de implementao. No entanto, devemos tambm lembrar que o objetivo da modelagem a construo de um sistema

Domnio do Problema O Domnio do Problema abrange as coisas e os conceitos do mundo real relacionados ao problema que se deseja resolver. Podemos considerar que estamos querendo trabalhar com somente a essncia do problema.

Modelo Conceitual O qu? Representamos no modelo conceitual: Conceitos Atributos relacionados aos conceitos Associao entre conceitos

Modelo Conceitual Para qu? No existe um modelo conceitual totalmente correto ou incorreto. Existem modelos teis e inteis Se modelamos um conceito de uma determinada maneira, devemos nos questionar quanto a sua utilidade e se a forma que modelamos a que mais nos facilitar. Queremos: Representar abstraes Independncia de implementaes Facilidade de comunicao

Modelo Conceitual Como? Conceito uma idia ou um algo tangvel uma coisa Construmos o modelo: Usando nomes comuns ao negcio Omitindo coisas ou detalhes irrelevantes Sem acrescentar coisas que no estejam no negcio

Notao (elementos) Classes Atributos Operaes Associaes

Diagrama de Classes Notao da Classe ExemploAluno matrcula nome notas alterar dados pessoais matricular

Nome da Classe atributos mtodos

Diagrama de Classes ClassesAluno Aluno matrcula nome notas alterar dados matricular Aluno - matrcula: int - nome: char # notas: float + alterar dados + matricular

Atributos Visibilidade nome: expresso-tipo[multipicidade] = valorinicial Visibilidade Privado Pblico + Protegido #

Expresso-tipo Tipo de atributo. Depende da linguagem

Multiplicidade Seno indicada [1..1]

Mtodos Visibilidade nome(lista de parmetros): expresso-tipo-retorno Visibilidade Privado Pblico + Protegido #

Lista de parmetros Gnero nome:expresso-tipo = valor default Gnero in, out ou inout Expresso tipo depende da linguagem Valor-default opcional

Expresso tipo retorno Se no indicada no retornado nenhum valor

Diagrama de ClassesRelacionamentos - Associao - Agregao - Generalizao - Dependncia

Diagrama de ClassesAssociao A associao um conjunto de vnculos entre elementos do modelo. Tipos de associaoUnria uma relao de uma classe consigo mesma (autorelacionamento)Funcionrio Chefia

Diagrama de ClassesBinria uma relao de uma classe com outra.Aluno Cursa Disciplina

N-ria uma relao entre trs ou mais classes, mas uma nica pode aparecer mais de uma vez.Equipe Jogador

Temporada

Diagrama de ClassesNome da associao - mostrado prximo linha do relacionamento para ajudar o entendimento deste relacionamento, no sendo obrigatrio. Pode-se ainda colocar um tringulo indicando o sentido de leitura do nome.

Aluno

Cursa

Disciplina

Diagrama de ClassesMultiplicidade Colocada nas extremidades do caminho da associao, identifica o nmero de instncias de uma classe que pode se relacionar com outra. A multiplicidade especificada em uma extremidade determina que essa a quantidade de instncias da classe oposta que se relacionar na associao. Apesar de ser opcional s deve ser omitida nas primeiras verses do diagrama. Muitos Exatamente 1 Zero ou Muitos Um ou Muitos Zero ou um Mn ou mx 1,2 ou 4 ____________* ____________1 __________0..* __________1..* __________0..1 __________n..m _________1..2,4

Diagrama de ClassesPapelColocada nas extremidades do caminho da associao, indica o papel representado pela classe na associao. Normalmente o nome da classe j identifica o papel desta na associao, tornando assim a representao do o papel desnecessria.

Funcionrio Gerente Departamento

Setor

Diagrama de ClassesNavegabilidadeUma seta pode ser colocada na extremidade de uma associao indicando que a navegao determinada na direo para onde partiu a seta. Se no existe seta a navegao bi-direcional. Se a seta vai da classe eleitor para a classe candidato, isto significa que a partir de um eleitor podemos determinar qual o seu candidato, mas a partir de candidato no saberemos os seus eleitores.

Eleitor

Candidato

Diagrama de ClassesQualificador um atributo ou uma lista de atributos, presentes em uma associao, cujos valores servem para particionar o conjunto de instncias associadas com a outra instncia do lado qualificado. Determina qual atributo identifica a instncia da outra classe.

Edifcio

No. Apto

Apartamento

Diagrama de ClassesClasse de AssociaoRepresenta uma associao que possui propriedades de classes com atributos, operaes e outras associaes, ou seja numa associao se percebermos que a mesma possui elementos prprios, estamos diante de uma classe de associao.

1..* Funcionrio

*

Diviso

Alocao Data

Diagrama de ClassesClasse de Associao X Classe1 *Contrato Data

Pessoa

* 1 Empresa Pessoa * 1..* Empresa

Contrato Data

Diagrama de ClassesAgregaoA hierarquia de agregao permite representar no Modelo de Objetos, estruturas todo-parte Um objeto (o agregado) contm, como atributos, outros objetos, de sua ou de outras classes O objeto parte tem existncia prpria independente da existncia do objeto todo indicado por parte de

Turma

*

Aluno

Diagrama de ClassesComposio uma forma de agregao (por valor), com uma forte propriedade de vida coincidente da parte com o todo. O objeto todo declara uma instncia real do objeto parte dentro de seu prprio corpo tornando o objeto parte fisicamente nele contido (atributo) O objeto parte no tem existncia prpria sem a existncia do objeto todo

Pedido

1..*

Item Pedido

Diagrama de ClassesDependnciaIndica a ocorrncia de um relacionamento semntico entre dois ou mais elementos, onde uma classe cliente dependente de alguns servios da classe fornecedora, mas no tem dependncia estrutural interna. Indica uma situao na qual uma mudana em um elemento (independente) pode afetar outro elemento (dependente).

Classe A

Classe B

Diagrama de ClassesX-ORSomente ma das associaes indicadas pode existir para um determinada instncia da classe comum.

Pessoa Fsica

Veculo

{X-or}

Pessoa Jurdica

Diagrama de ClassesPacote Elemento que agrupa recursos (na UML elementos de

modelagem) Apresenta tambm a dependncia entre partes de umprojeto Contitui uma unidade que pode ser trabalhada de forma independente A dependncia entre pacotes normalmente uma importao. Pode ser tambm um acesso.

Diagrama de ClassesPacote - Notao

Pacote

Pacote

Diagrama de ClassesPacote Um pacote define um escopo, ou seja, quando trabalhando dentro de um pacote, s se conhece o que est dentro do mesmo ou o de outro que ele importe. Um diagrama de pacotes serve para apresentar as interdependncias, ou seja, uma arquitetura.

Diagrama de ClassesPacote - NotaoAutorizao para uso. A visibilidade de acesso deve ser ajustada

PlanejamentoX&D

Carrega o importado. Acesso direto. Visibilidade resolvida

Oramento

Oramento

Diagrama de ClassesGeneralizao / Especializao um relacionamento entre um elemento mais geral e um elemento mais especfico que completamente consistente com o primeiro elemento somandoo informao adicional especializada. Tambm conhecido como herana Subclasses especializam uma classe Superclasses generalizam uma classe Identificado por um Subclasses herdam atributos, operaes e associaes da superclassePessoa

Aluno

Professor

Diagrama de ClassesGeneralizao / Especializao (Restries)Restries pr-definidas podem ser usadas para indicar semnticas entre classes filhas. Essas restries so colocadas entre chaves, separadas por vrgula junto a seta do relacionamento.

Existem quatro tipos de restrio: sobreposio; disjuno; completo; e incompleto.

Diagrama de ClassesGeneralizao / Especializao (Restries)Sobreposio subclasses podem ocorrer simultaneamente com relao a mesma superclasse. Um aluno pode tambm ser simultaneamente um professor.

Pessoa {sobreposio}

Aluno

Professor

Diagrama de ClassesGeneralizao / Especializao (Restries)Disjuno subclasses ocorrem de maneira mutuamente exclusiva com relao a mesma superclasse. Uma pessoa no pode ser simultaneamente homem e mulher.

Pessoa {disjuno}

Homem

Mulher

Diagrama de ClassesGeneralizao / Especializao (Restries)Completo todas as subclasses da superclasse j foram especificadas (dentro do contexto do sistema). No permitida nenhuma especializao adicional.

Pessoa {completo}

Fsica

Jurdica

Diagrama de ClassesGeneralizao / Especializao (Restries)Incompleto nem todas as subclasses da superclasse foram especificadas (dentro do contexto do sistema). permitida especializao adicional.

Animal {incompleto}

Mamfero

Ave

Diagrama de ClassesProfessor Pessoa Aluno 1..40 1..6 Turma 1..* * 1..* 1..* Curso 1

1 Disciplina

Diagrama de ObjetosMatemtica : Disciplina

Joo : Professor

Engenharia : Curso

Pedro : Professor

Fsica : Disciplina

Descobrindo Classes Faa uma inspeo gramatical nos Casos de Uso, observando o seguinte:Substantivos so fortes candidatos a classes e objetos Verbos so normalmente operaes ou associao Demonstrao de posse indica que um objeto deve ser um atributo ou uma agregao. Baseado na inspeo acima elabore uma lista de

candidatos a classe.

Modelo de Anlise Tente identificar generalizaes ou especializaes entre classes candidatas Se achar que facilita o prosseguimento da modelagem, desenhe as classes e as hierarquias encontradas usando a notao simplificada Ainda com base na inspeo gramatical, procure identificar associaes entre as classes candidatas Verifique se as associaes encontradas possuem propriedades que sejam independentes das classes associadas. Se for o caso, use classes de associao.

Modelo de Anlise Verifique as associaes e adicione as multiplicidades. Nomeie as associaes. Isto aumenta a legibilidade do modelo e ajuda na sua verificao. Use composio ao invs de agregao somente se a regra de negcio sendo representada assim determinar. Caso contrrio, a composio aparecer no modelo de implementao (projeto). O mtodo de refinamentos sucessivos uma excelente tcnica para a construo de um bom modelo.

Diagrama de Classes - RecomendaoEstabelea um tempo para a modelagem e respeite-o. A modelagem conceitual pode acabar levando mais tempo do que deveria. No entanto, lembre-se que a qualidade do modelo determinar, em grande parte, o atendimento s necessidades do cliente, a flexibilidade e a escalabilidade do sistema.

Diagrama de Transio de Estados Todos os objetos possuem um estado que significa o resultado de atividades executadas pelo objeto, e normalmente determinada pelos valores de seus atributos e ligaes com outros objetos Um objeto muda de estado quando um evento acontece Um DTE ajuda a prever o comportamento dos objetos ao longo do tempo No necessrio desenvolver um DTE para todos os objetos, somente para os que tenham mudanas significativas ao longo de suas vidas.

Diagrama de Transio de EstadosEstado o resultado cumulativo da vida do objeto at um determinado momento Um estado uma condio ou situao existente na vida de um objeto durante a qual o estado satisfaz alguma condio, executa alguma atividade ou espera por algum evento. O estado de um objeto representado por seus atributos e associaes.

Aguardando Pagamento

Diagrama de Transio de Estados Um estado pode ser opcionalmente subdividido em compartimentos separados cada qual por uma linha horizontal. So eles: Compartimento de nome Armazena o nome do estado

Compartimentos de transies internas Armazena uma lista de aes ou atividades internas que so executadas enquanto o objeto se apresenta no referido estado. Uma transio interna no modifica o estado do objeto.

Diagrama de Transio de EstadosCompartimentos de transies internas Existem algumas palavras reservadas que representam as transies internas: Entry --> identifica uma ao que executada na entrada do estado Exit --> identifica uma ao que executada na sada do estado Do --> identifica uma atividade em andamento, ou seja, que executada continuamente durante o tempo em que o objeto permanece neste estado Include --> usado para identificar a invocao de uma submquina.

Diagrama de Transio de EstadosCompartimentos de transies internas O formato geral Tipo do evento/expresso-ao (lista de parmetros separadas por vrgula)[condio de guarda ]

Digitando senha Entry/echoInvisvel(True) Exit/echoInvisvel(False) Do/ValidarCaracter( )

Diagrama de Transio de Estados Estado Inicial --> um tipo de estado que indica o local de incio na mquina de estados ou em um subestadoAguardando Leitura de Carto

e Estado Final--> um tipo de estado que indica que a mquina de estados ou estado composto concluiu sua execuo

Atualizando lanamentos

Diagrama de Transio de Estados Transies --> uma transio um relacionamento entre dois estados indicando que houve um mudana de estado e determinadas aes sero executadas, quando um evento especfico ocorrer, garantindo que condies foram satisfeitas. Esta transio um evento que gera uma mudana de estados. Formato: nome-do evento [condio de guarda]

Aguardando Nota

Nota lanada [nota>=0]

Atualizando Mdia

Diagrama de Transio de EstadosEstado composto Um estado composto um estado que possui uma decomposio grfica em dois ou mais subestados.

Editando TextoCaracter validado e processado

Aguardando ao do usurio

Caracter Digitado

Tratando entrada

Diagrama de Transio de EstadosEstados compostos - concorrentes

Pit StopTrocando pneus Entrando no Box Abastecndo Entrando no Box

Diagrama de Transio de EstadosCliente solicita reserva Atendente Cancela Reserva [No h Disponibilidade] Reserva em aberto entrada/verificar disponibilidade Reserva concluda Cliente faz check out Cliente cancela reserva Reserva fechada Cliente faz check in Reserva iniciada

Cliente confirma reserva

Diagrama de Atividades Variao do DTE onde os estados representam execuo de operaes O evento dado pelo trmino da atividade anterior Este diagrama mostra o fluxo sequencial das atividades e normalmente utilizado para demonstrar atividades executadas por uma operao especfica do sistema

Diagrama de Atividades-Atividade -Transio Uma tarefa desempenhada para atender o sistema. Uma transio um relacionamento entre duas atividades que indica o trmino da primeira e o consequente incio da posterior. Indica que neste ponto o fluxo pode seguir um dentre vrios caminhos. O caminho a ser seguido depender das condies de guarda

-Deciso

-Bifurcao Mostra que neste momento vrias atividades esto sendo disparadas em paralelo -Unio Mostra que neste momento as vrias atividades que estavam sendo executadas em paralelo voltaro a seguir um nico fluxo.

Diagrama de Atividades-Raia Mostra o responsvel por desempenhar aquela atividade. Indica o incio do diagrama.

- Incio

- Fim

Indica o final do diagrama. Um ponto de sada.

Diagrama de Atividadeshotel setor reservaObter pedido de reserva

Informar capacidade do hotel

Obter quantidade de pessoas

[Qtde insuficiente]

[Qtde suficiente]

Recusar reserva

Confirmar reserva

Diagramas de Interao So diagramas que mostram a interao entre os objetos do sistema Inclui uma sequncia de trocas de mensagens entre objetos dentro de um contexto para realizar um propsito especfico do sistema Os dois tipos existentes so : Diagrama de Sequncia e Diagrama de Colaborao

Diagrama de Sequncia Mostra a interao entre os objetos Considera a sequncia no tempo O tempo mostrado de maneira Top-Down Mostra as interaes de objetos organizadas em uma sequncia de tempo e de mensagens trocadas

Diagrama de Sequncia - Concepo Cada Caso de Uso prov vrios cenrios Um cenrio uma instncia de um caso de uso O diagrama de classes mostra os objetos do domnio da aplicao Fazemos um Diagrama de Sequncia mostrando a interao dos objetos em um determinado cenrio, ou seja, para cada cenrio de um Caso de uso teremos um diagrama Completam o trip da anlise: Casos de Uso comportamento externo (funcional) Diagramas de Classes viso esttica internos Diagramas de Sequncia viso dinmica

Diagrama de Sequncia - ConcepoDiag. ClassesProfessor Pessoa Aluno 1..40 1..6 1..* Turma 1..* Curso 1 * 1..*

Caso de UsoCaso de Uso: 1 Cadastrar Cliente Descrio Geral : Caso de Uso onde cliente efetua o seu cadastramento pela internet Atores : Cliente, Adm de carto Incio : Esse caso de uso tem seu inco quando o cliente acessa o portal da locadora na internet. Fluxo Tpico o N Ao 1 Cliente informa o nmero do seu CPF 2 Sistema solicita os dados do cliente 3 Cliente informa seus dados 4 Sistema valida CC junto a adm de CC 5 Adm de CC informa CC OK 6 Sistema informa senha do cliente e encerra Caso de Uso Alternativa 1: No 5 6 Fluxos Alternativos Adm CC informa CC no OK. Ao Adm informa CC no OK Sistema emite mensagem para cliente e encerra Caso de Uso

1 Disciplina

Operaes

Diag. Sequncia

Objetos

interface : cli en Cliente solicita te cadastro ( ) Sistema solicita dados ( ) cli Cliente informa (dados) Criar :cliente dados (dados)

Cenrio

Diagrama de Sequncia-Ator Qualquer elemento externo ao sistema que interage com o mesmo. Pode ser um usurio, um outro sistema, etc. Solicitao de um servio para uma classe. a chamada a um mtodo do objetoCliente solicita cadastro ( )

-Mensagem

Objeto

-Objeto

uma instncia de uma classe.

-Linha de Vida

Mostra o tempo de existncia do objeto

-Excluso de Objeto Posicionada sobre a linha de vida, mostra que o objeto foi excludo da base de dados loop -loop Indica que o grupo de mensagens que estiverem dentro do loop se`ao repetidas vrias vezes

Diagrama de Sequncia:clienteinterface Visa :adm cartao Interface Adm CC

:adm CC

Cliente solicita cadastro ( ) Sistema solicita dados ( ) Cliente informa dados (dados)

Criar (dados)

cli :clienteVerificar (no. CC) Verificar (no. CC) Verificar (no. CC) Carto OK( )

Gerar no. Matricula( ) Confirmar Cadastro(no.mat) confirmar(no. mat )

Diagrama de Colaborao Mostra uma interao organizada em torno dos objetos e seus vnculos formando uma base de padres Mostra os relacionamentos entre objetos, mas no trata o tempo como uma dimenso separada Prioriza a colaborao entre objetos e no a sequncia em que isto ocorre

Diagrama de Colaborao-Ator Qualquer elemento externo ao sistema que interage com o mesmo. Pode ser um usurio, um outro sistema, etc.

Cliente solicita cadastro ( )

-Mensagem

Solicitao de um servio para uma classe. a chamada a um mtodo do objeto

Objeto

-Objeto

uma instncia de uma classe.

-Linha de Comunicao

Mostra que existem mensagens trocadas entre estes objetos

Diagrama de Colaborao1.Cliente solicita cadastro ( ) 2.Sistema solicita dados ( ) 3.Cliente informa dados (dados) 4.Criar (dados) 9.Gerar no. Matricula( ) 10.confirmar(no. mat )

:cliente

11.Confirmar Cadastro(no.mat)

:interface

cli :cliente

5.Verificar (no. CC)

7.Verificar (no. CC) 8.Carto OK( )

:adm CC

: interface Adm CC

6.Verificar (no. CC)

Visa :adm cartao

Diagrama de Componentes Este diagrama est relacionado diretamente a implementao do sistema Mostra as organizaes e dependncias entre componentes de software, representado a estrutura do cdigo gerado

Diagrama de ComponentesCadastro.exe

-Componente

Apresenta os componentes do cdigo do sistema

- Chamada

Indica a chamada para utilizao de outro componente.

Diagrama de ComponentesCadastro.exe

Hotel.exe

Acesso ao BD.dll

Diagrama de Implantao Mostra como os elementos de Hardware so interligados Apresenta uma estrutura de ns, onde um n um elemento de hardware Pode mostrar quais componentes estaro sendo executados em cada n

Diagrama de ImplantaoAlarme de incndio

-N

Indica um elemento de hardware do sistema. Podem ser processadores ou perifricos.

- Conexo

Indica uma conexo fsica entre os elementos de hardware.

Diagrama de ImplantaoAlarme de incndio SUN ProvedorETHERNET

TCP/IP

PC Coleta

TCP/IP

ETHERNET

Alarme de umidade

PC Monitorao Ckliente

Viso Geral da UML Noes bsicas de Orientao a objetos Modelagem de Sistemas Histrico da UML O que a UML Diagramas da UML Concluses

Concluses A UML uma linguagem de modelagem no uma metodologia A UML fornece ferramentas para modelagem , mas no diz como fazer Com base na UML os 3 amigos elaboraram um Processo Unificado que levou a criao do RUP (Rational Unified Process), que porm no um padro

Concluses O Banco de dados OO ainda no utilizado largamente no mercado, o que dificulta a utilizao da UML em toda a modelagem A UML um padro mundial,vamos us-la!