uml frei joaquim josé hangalo [email protected] universidade católica de angola faculdade de...

128
UML Frei Joaquim José Hangalo Frei Joaquim José Hangalo [email protected] [email protected] Universidade Católica de Angola Faculdade de Engenharia

Upload: internet

Post on 16-Apr-2015

111 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

UML

Frei Joaquim José HangaloFrei Joaquim José Hangalo

[email protected]@gmail.com

Universidade Católica de AngolaFaculdade de Engenharia

Page 2: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

UMLUML A Unified Modeling Language (UML) é a A Unified Modeling Language (UML) é a

linguagem mais utilizada atualmente linguagem mais utilizada atualmente para especificação e projecto de para especificação e projecto de software na abordagem orientada a software na abordagem orientada a objectos. A UML é o instrumento que objectos. A UML é o instrumento que permite a modelagem do software permite a modelagem do software “visualmente”, tornando fácil partir dos “visualmente”, tornando fácil partir dos requisitos do sistema à implementação requisitos do sistema à implementação de uma forma amigável.de uma forma amigável.

Page 3: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

UMLUML

A UML está formalmente em A UML está formalmente em desenvolvimento desde 1994, porém, a desenvolvimento desde 1994, porém, a UML não é uma ideia que partiu do UML não é uma ideia que partiu do zero, a UML é uma consolidação de zero, a UML é uma consolidação de renomadas técnicas retiradas de renomadas técnicas retiradas de metodologias já existentes e bastante metodologias já existentes e bastante praticadas até então.praticadas até então.

Page 4: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

A UML abrange todas as etapas da A UML abrange todas as etapas da produção de software, mas produção de software, mas principalmente é utilizada para traduzir principalmente é utilizada para traduzir os requerimentos(requisitos) do sistema os requerimentos(requisitos) do sistema (em alto nível e mais próximos do (em alto nível e mais próximos do usuário) em componentes codificáveis usuário) em componentes codificáveis (mais próximos da aplicação). (mais próximos da aplicação).

Page 5: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

UMLUML Mesmo estando entre essas duas Mesmo estando entre essas duas

camadas, a UML pretende ser fácil de camadas, a UML pretende ser fácil de entender para todos os envolvidos. A entender para todos os envolvidos. A UML é uma linguagem, e como tal, é UML é uma linguagem, e como tal, é um meio de comunicação. Através de um meio de comunicação. Através de diagramas gráficos é mais fácil discutir diagramas gráficos é mais fácil discutir e visualizar as ideias e soluções entre a e visualizar as ideias e soluções entre a equipa, ou com o usuário. Muito mais equipa, ou com o usuário. Muito mais simples do que com programas em simples do que com programas em código.código.

Page 6: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de casos de UsoDiagrama de casos de Uso

Page 7: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Casos de UsoCasos de Uso

Modelando ou escrevendo, o principal Modelando ou escrevendo, o principal para entender a importância do Caso para entender a importância do Caso de Uso são os objectivos dele:de Uso são os objectivos dele:

Definir EscopoDefinir Escopo Organizar e dividir o trabalhoOrganizar e dividir o trabalho Estimar o tamanho do projectoEstimar o tamanho do projecto Direccionar os testesDireccionar os testes

Page 8: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Escopo do sistema com Casos de Escopo do sistema com Casos de UsoUso

Definir Escopo: Um conjunto de Casos Definir Escopo: Um conjunto de Casos de Uso define o escopo do sistema de de Uso define o escopo do sistema de uma maneira simples. Se no diagrama uma maneira simples. Se no diagrama aparece um Caso de uso chamado aparece um Caso de uso chamado “Plantar Batata”, os usuários não “Plantar Batata”, os usuários não poderão dizer que “plantar couve” está poderão dizer que “plantar couve” está no escopo do sistema.no escopo do sistema.

Page 9: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Organizar e dividir o trabalho:Organizar e dividir o trabalho: O Caso de Uso é uma importante O Caso de Uso é uma importante

unidade de organização do trabalho unidade de organização do trabalho dentro do projecto, geralmente nas dentro do projecto, geralmente nas equipes de projecto é comum ouvir que equipes de projecto é comum ouvir que “o Zé está trabalhando no Caso de Uso “o Zé está trabalhando no Caso de Uso X e o João está com o Caso de Uso Y”.X e o João está com o Caso de Uso Y”.

Page 10: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Organizar e dividir o trabalho:Organizar e dividir o trabalho: A unidade do Caso de Uso divide o A unidade do Caso de Uso divide o

trabalho da equipe entre as pessoas, trabalho da equipe entre as pessoas, fora isso, é comum dizer que o Caso de fora isso, é comum dizer que o Caso de Uso está em Análise, em Programação Uso está em Análise, em Programação ou em Teste.ou em Teste.

Page 11: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Organizar e dividir o trabalho:Organizar e dividir o trabalho: Casos de Uso também são entregues Casos de Uso também são entregues

separadamente aos usuários em separadamente aos usuários em conjuntos divididos em fases ou conjuntos divididos em fases ou iterações no projecto. Então, dizemos iterações no projecto. Então, dizemos que a primeira iteração (ou entrega) que a primeira iteração (ou entrega) terá os Casos de Uso X, Y, Z e W e na terá os Casos de Uso X, Y, Z e W e na segunda iteração terá os Casos de Uso segunda iteração terá os Casos de Uso T, H, I e J.T, H, I e J.

Page 12: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Estimar o tamanho do projecto: Estimar o tamanho do projecto: O Caso de Uso fornece métricas para definir o tempo O Caso de Uso fornece métricas para definir o tempo

de desenvolvimento. Uma das métricas que pode ser de desenvolvimento. Uma das métricas que pode ser aplicada sobre Casos de Uso é a UCP (Use Case aplicada sobre Casos de Uso é a UCP (Use Case Point) que consiste em classificar os Casos de Uso em Point) que consiste em classificar os Casos de Uso em nível de complexidade e somando todos os Casos de nível de complexidade e somando todos os Casos de Uso do projecto (e mais alguns factores) você Uso do projecto (e mais alguns factores) você consegue estimar o esforço do projecto em horas. consegue estimar o esforço do projecto em horas. Além do UCP, podem ser aplicadas as técnicas de Além do UCP, podem ser aplicadas as técnicas de Pontos de Função (Function Points) que são mais Pontos de Função (Function Points) que são mais padronizadas e completas.padronizadas e completas.

Page 13: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Direccionar os testes:Direccionar os testes: Os testes do sistema (essencialmente os Os testes do sistema (essencialmente os

funcionais que são os mais importantes) são funcionais que são os mais importantes) são derivados do Caso de Uso. Essa característica é derivados do Caso de Uso. Essa característica é uma das mais importantes e geralmente é uma das mais importantes e geralmente é desprezada, pois com Casos de Uso, os testes desprezada, pois com Casos de Uso, os testes são planejados no início do projecto e não no fim, são planejados no início do projecto e não no fim, diminuindo os riscos. A partir dos Casos de Uso, diminuindo os riscos. A partir dos Casos de Uso, Casos de Teste são criados para validar o Casos de Teste são criados para validar o funcionamento do software.funcionamento do software.

Page 14: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

Page 15: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

• O diagrama de O diagrama de CASOS DE USOCASOS DE USO procura, por meio procura, por meio de uma linguagem de uma linguagem simplessimples, possibilitar a , possibilitar a compreensão do compreensão do comportamentocomportamento externo do externo do sistema por qualquer pessoa, através da sistema por qualquer pessoa, através da perspectiva perspectiva do do usuáriousuário ... ...

• Diagrama mais ABSTRATODiagrama mais ABSTRATO• Diagrama mais FLEXÍVELDiagrama mais FLEXÍVEL• Diagrama mais INFORMALDiagrama mais INFORMAL

Page 16: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Olhando para um diagrama de Casos de Olhando para um diagrama de Casos de Uso, pela sua simplicidade, um analista Uso, pela sua simplicidade, um analista poderá observar rapidamente as poderá observar rapidamente as funcionalidades envolvidas no sistema, os funcionalidades envolvidas no sistema, os usuários envolvidos e integrações com usuários envolvidos e integrações com sistemas externos. O propósito maior do sistemas externos. O propósito maior do Caso de Uso é fornecer uma descrição do Caso de Uso é fornecer uma descrição do comportamento do sistema do ponto de comportamento do sistema do ponto de vista do usuário.vista do usuário.

Page 17: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

• MAS MAS extremamente importanteextremamente importante ... ...

• Mapeamento dos Mapeamento dos REQUISITOSREQUISITOS• Base para os demais diagramas da UMLBase para os demais diagramas da UML

Page 18: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

Objetivos – FunçõesObjetivos – Funções

• Apresentar uma visão externa geral das funções e Apresentar uma visão externa geral das funções e serviços que o sistema deverá oferecer aos usuáriosserviços que o sistema deverá oferecer aos usuários

• Sem se preocupar com o Sem se preocupar com o COMOCOMO

• Tenta identificar os tipos de usuários que irão Tenta identificar os tipos de usuários que irão interagir com o sistema, quais os papéis que estes interagir com o sistema, quais os papéis que estes usuários irão assumir e quais funções serão usuários irão assumir e quais funções serão requisitas por cada usuário específicorequisitas por cada usuário específico

Page 19: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

COMPONENTES PRINCIPAISCOMPONENTES PRINCIPAIS

Page 20: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

A notação básica do diagrama são Atores A notação básica do diagrama são Atores representados pelos bonequinhos. Uma representados pelos bonequinhos. Uma linha conecta atores aos Casos de Uso linha conecta atores aos Casos de Uso informando que o sistema permitirá ao informando que o sistema permitirá ao Ator usar o Caso de Uso directamente. Os Ator usar o Caso de Uso directamente. Os Casos de Uso são representados por Casos de Uso são representados por elipses (existem notações alternativas elipses (existem notações alternativas para os elementos, mas essas são as para os elementos, mas essas são as mais usuais).mais usuais).

Page 21: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

ACTORESACTORES

• Representam os papéis desempenhados pelos Representam os papéis desempenhados pelos diversos usuários que poderão utilizar de alguma diversos usuários que poderão utilizar de alguma maneira os serviços e funções do sistemamaneira os serviços e funções do sistema

• Normalmente Normalmente PESSOASPESSOAS• Eventualmente Eventualmente HARDWARE – SOFTWARE que HARDWARE – SOFTWARE que

interajam com o sistemainterajam com o sistema

Page 22: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

ACTORESACTORES

um Actor é um PAPEL DESEMPENHADO POR um Actor é um PAPEL DESEMPENHADO POR ALGUMA COISA EXTERNA ao sistema (não ALGUMA COISA EXTERNA ao sistema (não necessariamente uma pessoa). Até mesmo o tempo necessariamente uma pessoa). Até mesmo o tempo pode ser um Actor para tarefas que ocorrem com pode ser um Actor para tarefas que ocorrem com frequência temporal.frequência temporal.

Page 23: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

ATORES - representaçãoATORES - representação

Page 24: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

componentes internos do sistema não são componentes internos do sistema não são Actores: Actores: É comum o analista imaginar que porque É comum o analista imaginar que porque sistemas externos podem ser atores, o banco de sistemas externos podem ser atores, o banco de dados da aplicação que está sendo desenvolvida dados da aplicação que está sendo desenvolvida deve ser um actor também, mas isso é errado, deve ser um actor também, mas isso é errado, lembre que Actor é um papel de responsabilidade lembre que Actor é um papel de responsabilidade externa ao sistema. O que deve funcionar dentro da externa ao sistema. O que deve funcionar dentro da responsabilidade do sistema não pode ser extraído responsabilidade do sistema não pode ser extraído como um Actor.como um Actor.

Page 25: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

• • Hardwares internos do sistema não são Atores: Hardwares internos do sistema não são Atores: pode-se imaginar que um servidor é externo ao sistema, pode-se imaginar que um servidor é externo ao sistema, ou uma impressora num Caso de Uso que precise ou uma impressora num Caso de Uso que precise imprimir alguma coisa é externa ao sistema também, imprimir alguma coisa é externa ao sistema também, porém, esses itens externos ao sistema são componentes porém, esses itens externos ao sistema são componentes que o software pressupõe que existem e cumprirão seu que o software pressupõe que existem e cumprirão seu papel. Então, são como os componentes do papel. Então, são como os componentes do funcionamento interno do software (como a base de dados funcionamento interno do software (como a base de dados da aplicação) e assim sendo, não são Actores.da aplicação) e assim sendo, não são Actores.

Page 26: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Alguns tipos de hardwares podem ser ActoresAlguns tipos de hardwares podem ser Actores, mas , mas somente quando for importante para a análise do sistema somente quando for importante para a análise do sistema destacar a presença desse hardware. Por exemplo, destacar a presença desse hardware. Por exemplo, softwares para controles industriais podem ter alguns softwares para controles industriais podem ter alguns sensores que indicam algum tipo de problema na linha de sensores que indicam algum tipo de problema na linha de produção e disparam algum comportamento (Caso de produção e disparam algum comportamento (Caso de Uso) no sistema. Este sim pode ser um hardware que é Uso) no sistema. Este sim pode ser um hardware que é um Actor no sistema, pois é importante destacar isso um Actor no sistema, pois é importante destacar isso para o funcionamento do Caso de Uso. Outro hardware para o funcionamento do Caso de Uso. Outro hardware que pode ser um Actor seria o aparelho de controlo de que pode ser um Actor seria o aparelho de controlo de ponto (entrada e saída de funcionários) para um sistema ponto (entrada e saída de funcionários) para um sistema de Administração de Pessoal. Ela desempenha um papel de Administração de Pessoal. Ela desempenha um papel no sistema, seria um Actor.no sistema, seria um Actor.

Page 27: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

A definição de Actores (e Casos de A definição de Actores (e Casos de Uso) não é o controle de acessos da Uso) não é o controle de acessos da aplicação: aplicação: Esse erro também é comum: Esse erro também é comum: confundir a definição de Actores com o confundir a definição de Actores com o que os usuários podem ou não fazer que os usuários podem ou não fazer dentro do sistema. Não é essa a ideia! A dentro do sistema. Não é essa a ideia! A representação do Actor somente destaca representação do Actor somente destaca o papel que um usuário assume ao usar o o papel que um usuário assume ao usar o Caso de Uso.Caso de Uso.

Page 28: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Papéis x Utilizadores

Neste exemplo, o diagrama de Casos de Uso somente diz que para “Emitir Pedido” o utilizador deverá assumir o papel de “Vendedor”, isso não implica que um usuário que possui o cargo de vendedor na organização não possa “Aprovar Pedido”.

Page 29: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

O que consideramos mais importante na O que consideramos mais importante na definição de Actores é dar nome aos definição de Actores é dar nome aos papéis que pessoas assumirão ao utilizar o papéis que pessoas assumirão ao utilizar o sistema e informar integrações com sistema e informar integrações com sistemas externos. Enfim, em 90% dos sistemas externos. Enfim, em 90% dos casos um Actor será uma pessoa casos um Actor será uma pessoa (utilizador do sistema) ou um sistema (utilizador do sistema) ou um sistema externo. Isso serve para dar clareza a externo. Isso serve para dar clareza a quem lê o diagrama deixando as coisas o quem lê o diagrama deixando as coisas o mais simples possível.mais simples possível.

Page 30: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

é possível definir uma herança entre é possível definir uma herança entre Actores para estabelecer generalizações Actores para estabelecer generalizações de Actores.de Actores.

Generalização de Actores

Page 31: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

A generalização de Atores serve para A generalização de Atores serve para passar a ideia de algo em comum entre passar a ideia de algo em comum entre papéis no sistema. Assim, se um Caso papéis no sistema. Assim, se um Caso de Uso requer um “Vendedor”, de Uso requer um “Vendedor”, vendedores remotos e locais se vendedores remotos e locais se encaixam no papel pela herança. Essa encaixam no papel pela herança. Essa notação também não é muito comum, notação também não é muito comum, pois para pessoal não técnico, o pois para pessoal não técnico, o conceito de generalização não é fácil de conceito de generalização não é fácil de compreender.compreender.

Page 32: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

casos de usocasos de uso

Page 33: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

CASOS DE USOCASOS DE USO

• Referem-se aos serviços, tarefas ou funções que Referem-se aos serviços, tarefas ou funções que podem ser utilizados pelos usuários do sistemapodem ser utilizados pelos usuários do sistema

• Utilizados para expressar/documentar os Utilizados para expressar/documentar os comportamentos pretendidos para as funções do comportamentos pretendidos para as funções do sistemasistema

Abrir ContaAbrir Conta

Page 34: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

A representação do Caso de Uso no A representação do Caso de Uso no Diagrama é simples: a elipse representa Diagrama é simples: a elipse representa uma forma que o sistema se comporta do uma forma que o sistema se comporta do ponto de vista do Actor. O nome do Caso ponto de vista do Actor. O nome do Caso de Uso é uma forma de elucidar esse de Uso é uma forma de elucidar esse comportamento do sistema, assim sendo, comportamento do sistema, assim sendo, o nome do caso de uso define o o nome do caso de uso define o OBJETIVO do Actor, isto é, o que ele OBJETIVO do Actor, isto é, o que ele quer fazer no sistema.quer fazer no sistema.

Page 35: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Caso de Uso = Objectivo do Actor

Page 36: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Todo o conjunto de Casos de Uso e Todo o conjunto de Casos de Uso e Actores do sistema organiza o escopo Actores do sistema organiza o escopo do sistema a respeito dos objectivos do sistema a respeito dos objectivos que os usuários atingirão quando o que os usuários atingirão quando o sistema estiver pronto.sistema estiver pronto.

Page 37: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Todos os Casos de Uso = Escopo

Page 38: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Dar nomes aos Casos de Uso com o Dar nomes aos Casos de Uso com o objectivo do Actor é a maneira de tornar objectivo do Actor é a maneira de tornar o diagrama claro para o pessoal menos o diagrama claro para o pessoal menos técnico saber exactamente o que será técnico saber exactamente o que será possível fazer no sistema. A narrativa possível fazer no sistema. A narrativa (texto) do Caso de Uso deve ser (texto) do Caso de Uso deve ser consistente com esse objectivo definido consistente com esse objectivo definido pelo seu nome.pelo seu nome.

Page 39: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

Narrativa ou documentaçãoNarrativa ou documentação

do Caso de Usodo Caso de Uso

Page 40: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

existem inúmeros formatos ou existem inúmeros formatos ou templates de preenchimento de uma templates de preenchimento de uma narrativa de Caso de Uso.narrativa de Caso de Uso.

a UML não define o modo como uma a UML não define o modo como uma narrativa deve ser descrita.narrativa deve ser descrita.

Page 41: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

• NarrativaNarrativa• ObjectivoObjectivo

• Descrever, através de uma linguagem simples, a Descrever, através de uma linguagem simples, a função em linhas gerais do caso de uso, quais função em linhas gerais do caso de uso, quais atores interagem com o mesmo, quais etapas atores interagem com o mesmo, quais etapas devem ser executadas pelo ator e pelo sistema, devem ser executadas pelo ator e pelo sistema, quais parâmetros devem ser fornecidos e quais as quais parâmetros devem ser fornecidos e quais as restrições/validações o caso de uso deve possuirrestrições/validações o caso de uso deve possuir

Page 42: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

A narrativa do Caso de Uso é um texto A narrativa do Caso de Uso é um texto passo a passo sobre as acções que o passo a passo sobre as acções que o Actor pode tomar e como o Sistema Actor pode tomar e como o Sistema responderá a esta acção. A narrativa responderá a esta acção. A narrativa vai então evoluindo, entre acções do vai então evoluindo, entre acções do Actor e as respostas do Sistema, para o Actor e as respostas do Sistema, para o objectivo do Actor, até este ser objectivo do Actor, até este ser alcançado.alcançado.

Page 43: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

o Caso de Uso “Emitir Pedido” envolve o Caso de Uso “Emitir Pedido” envolve várias tarefas menores como várias tarefas menores como seleccionar produtos, escolher forma de seleccionar produtos, escolher forma de pagamento, calcular descontos, pagamento, calcular descontos, escolher forma de entrega, porém, tudo escolher forma de entrega, porém, tudo isso são partes do objectivo maior que isso são partes do objectivo maior que é emitir o pedido.é emitir o pedido.

Page 44: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

IMPORTANTE: Na narrativa do Caso IMPORTANTE: Na narrativa do Caso de Uso a resposta do sistema deve-se de Uso a resposta do sistema deve-se limitar somente ao que o Actor limitar somente ao que o Actor consegue ver. Não é necessário se consegue ver. Não é necessário se preocupar em como o sistema obteve preocupar em como o sistema obteve ou calculou os dados. Limite-se a ou calculou os dados. Limite-se a escrever o que o sistema responde e escrever o que o sistema responde e não como ele obtém a resposta.não como ele obtém a resposta.

Page 45: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

Page 46: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

Page 47: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

ASSOCIAÇÕESASSOCIAÇÕES

• Representam INTERAÇÕES/RELACIONAMENTOS Representam INTERAÇÕES/RELACIONAMENTOS entre:entre:• ATORESATORES• ATORES e CASOS DE USOATORES e CASOS DE USO• CASOS DE USO e CASOS DE USOCASOS DE USO e CASOS DE USO

• Relacionamentos entre CASOS DE USO: Relacionamentos entre CASOS DE USO: • INCLUSÃOINCLUSÃO• EXTENSÃOEXTENSÃO• GENERALIZAÇÃOGENERALIZAÇÃO

Page 48: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

ASSOCIAÇÕESASSOCIAÇÕES

• ATOR ATOR CASO DE USO CASO DE USO

• Demonstra que o ator utiliza-se da função do Demonstra que o ator utiliza-se da função do sistema representada pelo caso de uso – sistema representada pelo caso de uso – requisitando a execução, recebendo o resultado requisitando a execução, recebendo o resultado produzidoproduzido

Page 49: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

ASSOCIAÇÕES ATOR ASSOCIAÇÕES ATOR CASO DE USO CASO DE USO

Page 50: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

ASSOCIAÇÕESASSOCIAÇÕES

• ESPECIALIZAÇÃO/GENERALIZAÇÃOESPECIALIZAÇÃO/GENERALIZAÇÃO

• Associação entre Casos de Uso com características Associação entre Casos de Uso com características semelhantessemelhantes

• A estrutura de um Caso de Uso generalizado é A estrutura de um Caso de Uso generalizado é herdada pelos Casos de Usos especializadosherdada pelos Casos de Usos especializados

Page 51: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

ASSOCIAÇÕESASSOCIAÇÕES

• ESPECIALIZAÇÃO/GENERALIZAÇÃOESPECIALIZAÇÃO/GENERALIZAÇÃO

Page 52: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

ASSOCIAÇÕESASSOCIAÇÕES

• ESPECIALIZAÇÃO/GENERALIZAÇÃOESPECIALIZAÇÃO/GENERALIZAÇÃO

Page 53: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

ASSOCIAÇÕESASSOCIAÇÕES

• INCLUSÃOINCLUSÃO

• Usada quando existe um serviço, situação ou rotina Usada quando existe um serviço, situação ou rotina comum a mais de um Caso de Usocomum a mais de um Caso de Uso

• Outros Casos de Uso utilizam-se de um Caso de Outros Casos de Uso utilizam-se de um Caso de UsoUso

• ““Chamada de Sub-Rotina”Chamada de Sub-Rotina”• Linha tracejada com texto “<<Include>>”Linha tracejada com texto “<<Include>>”

Page 54: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

ASSOCIAÇÕES - INCLUSÃOASSOCIAÇÕES - INCLUSÃO

Page 55: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

ASSOCIAÇÕESASSOCIAÇÕES

• EXTENSÃOEXTENSÃO

• Descrever cenários opcionais de um Caso de UsoDescrever cenários opcionais de um Caso de Uso• Descrevem cenários que somente ocorrerão em Descrevem cenários que somente ocorrerão em

uma situação específica – se uma determinada uma situação específica – se uma determinada condição for satisfeita condição for satisfeita

• ““<<Extend>>”<<Extend>>”

Page 56: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

ASSOCIAÇÕES - EXTENSÃOASSOCIAÇÕES - EXTENSÃO

Page 57: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

EXTRAS GERAISEXTRAS GERAIS

• NotasNotas

• Apresentar texto explicativoApresentar texto explicativo

Page 58: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

EXTRAS GERAISEXTRAS GERAIS

• PacotesPacotes

• Organizar elementos em grupos para serem Organizar elementos em grupos para serem utilizados na modelagem de sistemas muito utilizados na modelagem de sistemas muito extensos – principalmente quando existem vários extensos – principalmente quando existem vários sistemas ou sub-sistemas integradossistemas ou sub-sistemas integrados

• Demonstram os limites de cada sub-sistema e como Demonstram os limites de cada sub-sistema e como eles se inter-relacionameles se inter-relacionam

Page 59: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

EXTRAS GERAISEXTRAS GERAIS

• PacotesPacotes

Page 60: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

EXTRAS GERAISEXTRAS GERAIS

• EstereótiposEstereótipos

• Permitem a identificação de componentes – Permitem a identificação de componentes – permitindo sua diferenciação dando maior destaque permitindo sua diferenciação dando maior destaque no diagramano diagrama

Page 61: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

Exercícios – Estudos de CasoExercícios – Estudos de Caso

• Video ClubVideo Club• Gestão de CursosGestão de Cursos• Venda de Passagens AéreasVenda de Passagens Aéreas• Clínica VeterináriaClínica Veterinária• Escritório de AdvocaciaEscritório de Advocacia

Page 62: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

Exercícios – Estudos de CasoExercícios – Estudos de Caso

• Controlo de CinemaControlo de Cinema• Controlo de Clube SocialControlo de Clube Social• Locação de VeículosLocação de Veículos• Leilão via InternetLeilão via Internet• Controlo de HotelariaControlo de Hotelaria

Page 63: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de Casos de UsoDiagrama de Casos de Uso

Exercícios – Estudos de CasoExercícios – Estudos de Caso

Page 64: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Diagrama de ClassesDiagrama de Classes

Page 65: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

65

IntroduçãoIntrodução

O modelo de casos de uso fornece uma O modelo de casos de uso fornece uma perspectiva do sistema a partir de um perspectiva do sistema a partir de um ponto de vista ponto de vista externoexterno..

De posse da visão de casos de uso, os De posse da visão de casos de uso, os desenvolvedores precisam prosseguir desenvolvedores precisam prosseguir no desenvolvimento do sistema.no desenvolvimento do sistema.

Page 66: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

66

A funcionalidade externa de um sistema A funcionalidade externa de um sistema orientado a objetos é fornecida através de orientado a objetos é fornecida através de colaborações entre objetos.colaborações entre objetos.• Externamente, os atores visualizam resultados de Externamente, os atores visualizam resultados de

cálculos, relatórios produzidos, confirmações de cálculos, relatórios produzidos, confirmações de requisições realizadas, etc.requisições realizadas, etc.

• Internamente, os objetos colaboram uns com os Internamente, os objetos colaboram uns com os outros para produzir os resultados.outros para produzir os resultados.

Essa colaboração pode ser vista sob o Essa colaboração pode ser vista sob o aspecto dinâmicoaspecto dinâmico e sob o e sob o aspecto estrutural aspecto estrutural estáticoestático. .

Aspectos dinâmico e estáticoAspectos dinâmico e estático

Page 67: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

67

Modelo de classesModelo de classes O diagrama da UML utilizado para O diagrama da UML utilizado para

representar o aspecto estrutural representar o aspecto estrutural estático é o estático é o diagrama de classesdiagrama de classes..

O O modelo de classesmodelo de classes é composto é composto desse diagrama e da descrição textual desse diagrama e da descrição textual associada.associada.

O modelo de classes evolui durante o O modelo de classes evolui durante o desenvolvimento do sistema.desenvolvimento do sistema.• À medida que o sistema é desenvolvido, o À medida que o sistema é desenvolvido, o

modelo de classes é incrementado com modelo de classes é incrementado com novos detalhes.novos detalhes.

Page 68: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

68

ClassesClasses

Uma classe representa um grupo de Uma classe representa um grupo de objetos semelhantes.objetos semelhantes.

Uma classe descreve esses objetos Uma classe descreve esses objetos através de através de atributosatributos e e operaçõesoperações..

Os atributos correspondem às Os atributos correspondem às informações que um objeto armazena.informações que um objeto armazena.

As operações correspondem às ações As operações correspondem às ações que um objeto sabe realizar.que um objeto sabe realizar.

Page 69: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

ClassesClasses

Uma classe é uma descrição de um Uma classe é uma descrição de um conjunto de objectos que partilham os conjunto de objectos que partilham os mesmos atributos, operações, relações mesmos atributos, operações, relações e semânticae semântica

Page 70: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

70

Notação para uma classeNotação para uma classe

Representada através de uma “caixa” Representada através de uma “caixa” com no máximo três compartimentos com no máximo três compartimentos exibidos. exibidos.

Notação utilizada depende do nível de Notação utilizada depende do nível de abstração desejado.abstração desejado.

Page 71: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Na secção de topo indica-se o nome da Na secção de topo indica-se o nome da classe (que tem que ser único num classe (que tem que ser único num diagrama), na secção intermédia diagrama), na secção intermédia enumeram-se os atributos da classe, e enumeram-se os atributos da classe, e na secção inferior enumeram-se as na secção inferior enumeram-se as operações que são permitidas efectuar operações que são permitidas efectuar sobre os objectos da classe.sobre os objectos da classe.

Page 72: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

classesclasses

Como regra geral de bom senso, de Como regra geral de bom senso, de modo a não sobrecarregar os diagramas, modo a não sobrecarregar os diagramas, é aconselhável não enumerar o conjunto é aconselhável não enumerar o conjunto básico de operações que usualmente básico de operações que usualmente podem ser aplicadas a todos os objectos podem ser aplicadas a todos os objectos de todas as classes, nomeadamente, de todas as classes, nomeadamente, adicionar, remover , listar e alteraradicionar, remover , listar e alterar

Estas operações apenas devem ser Estas operações apenas devem ser indicadas caso possuam alguma indicadas caso possuam alguma particularidade específicaparticularidade específica

Page 73: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

73

Exemplo (classe ContaBancária)Exemplo (classe ContaBancária)

Page 74: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

RelaçõesRelações

Em qualquer sistema existem objectos Em qualquer sistema existem objectos que se relacionam entre si.que se relacionam entre si.

Por exemplo, se considerarmos a Por exemplo, se considerarmos a classe das facturas de uma empresa, o classe das facturas de uma empresa, o cliente “Abel” relaciona-se com as cliente “Abel” relaciona-se com as facturas emitidas em seu nomefacturas emitidas em seu nome

Page 75: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

RelaçõesRelações

A relação entre objectos é representada A relação entre objectos é representada através das relações entre as classes.através das relações entre as classes.

Existem diferentes tipos de relações, Existem diferentes tipos de relações, Aqui serão abordadas algumas que se Aqui serão abordadas algumas que se

podem classificar em dois tipos, podem classificar em dois tipos, associações e generalizações.associações e generalizações.

Page 76: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

76

AssociaçõesAssociações Para representar o fato de que objetos Para representar o fato de que objetos

podem se relacionar uns com os outros, podem se relacionar uns com os outros, utiliza-se a associação.utiliza-se a associação.

Uma associação representa Uma associação representa relacionamentos (ligações) que são relacionamentos (ligações) que são formados entre objetos durante a formados entre objetos durante a execução do sistema.execução do sistema.• embora as associações sejam embora as associações sejam

representadas entre classes do diagrama, representadas entre classes do diagrama, tais associações representam ligações tais associações representam ligações possíveis entre objetos das classes possíveis entre objetos das classes envolvidas. envolvidas.

Page 77: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

77

Notação para uma associaçãoNotação para uma associação

Representada através de um Representada através de um segmento de reta ligando as classes segmento de reta ligando as classes cujos objetos se relacionam.cujos objetos se relacionam.

Exemplos: Exemplos:

Page 78: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

AssociaçãoAssociação

Page 79: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Os intervalos de valores indicados nos extremos Os intervalos de valores indicados nos extremos da semi-recta indicam, a multiplicidade da da semi-recta indicam, a multiplicidade da associaçãoassociação

O intervalo {0..*} significa o intervalo entre entre 0 O intervalo {0..*} significa o intervalo entre entre 0 e infinito, o intervalo {1..1} (que usualmente é e infinito, o intervalo {1..1} (que usualmente é abreviado para {1}, isto é, quando o limite inferior é abreviado para {1}, isto é, quando o limite inferior é igual ao superior apenas se indica um dos limites) igual ao superior apenas se indica um dos limites) corresponde ao intervalo que apenas contém o corresponde ao intervalo que apenas contém o valor 1valor 1

O exemplo da figura indica que: um cliente pode estar O exemplo da figura indica que: um cliente pode estar associado a várias (infinitas) facturas, ou a nenhuma, e uma associado a várias (infinitas) facturas, ou a nenhuma, e uma factura necessariamente tem que estar associada a um cliente factura necessariamente tem que estar associada a um cliente e a não mais do que ume a não mais do que um

Page 80: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

80

Multiplicidades Multiplicidades

Representam a informação dos limites Representam a informação dos limites inferior e superior da quantidade de inferior e superior da quantidade de objetos aos quais um outro objeto pode objetos aos quais um outro objeto pode estar associado.estar associado.

Cada associação num diagrama de Cada associação num diagrama de classes possui duas multiplicidades, classes possui duas multiplicidades, uma em cada extremo da linha de uma em cada extremo da linha de associação.associação.

Page 81: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

MultiplicidadeMultiplicidade

Uma associação deve ser sempre lida Uma associação deve ser sempre lida nos dois sentidosnos dois sentidos

Page 82: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

MultiplicidadeMultiplicidade

A multiplicidade diz sempre respeito ao A multiplicidade diz sempre respeito ao número de objectos da classe mais número de objectos da classe mais próxima que podem estar associados a próxima que podem estar associados a um objecto da classe do extremo um objecto da classe do extremo oposto.oposto.

Page 83: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

83

Multiplicidades Multiplicidades

Nome Simbologia

Apenas Um 1..1 (ou 1)

Zero ou Muitos 0..* (ou *)

Um ou Muitos 1..*

Zero ou Um 0..1

Intervalo Específico li..ls

Page 84: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

84

Exemplo (multiplicidade)Exemplo (multiplicidade)

Pode haver um cliente que esteja Pode haver um cliente que esteja associado a vários pedidos.associado a vários pedidos.

Pode haver um cliente que não esteja Pode haver um cliente que não esteja associado a pedido algum.associado a pedido algum.

Um pedido está associado a um, e Um pedido está associado a um, e somente um, cliente.somente um, cliente.

Cliente Pedido

1 0..*

Page 85: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

85

Exemplo (multiplicidade)Exemplo (multiplicidade)

Uma corrida está associada a, no Uma corrida está associada a, no mínimo, dois velocistas mínimo, dois velocistas

Uma corrida está associada a, no Uma corrida está associada a, no máximo, seis velocistas. máximo, seis velocistas.

Um velocista pode estar associado a Um velocista pode estar associado a nenhuma ou várias corridas.nenhuma ou várias corridas.

Velocista Corrida2..6 0..*

Page 86: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

86

ConectividadeConectividade

AA conectividade conectividade corresponde ao tipo corresponde ao tipo de associação entre duas classes: de associação entre duas classes: “muitos para muitos”, “um para muitos” “muitos para muitos”, “um para muitos” e “um para um”.e “um para um”.

A conectividade da associação entre A conectividade da associação entre duas classes depende dos símbolos de duas classes depende dos símbolos de multiplicidade que são utilizados na multiplicidade que são utilizados na associação.associação.

Page 87: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

87

Conectividade X MultiplicidadeConectividade X Multiplicidade

Conectividade Numextremo

No outroextremo

Um para um 0..11

0..11

Um para muitos 0..1 1

*1..*0..*

Muitos para muitos *1..*0..*

*1..*0..*

Page 88: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

88

Exemplo (conectividade)Exemplo (conectividade)

Empregado Departamento1 0..1

Empregado Departamento0..* 1

Empregado Projeto0..* 1..*

Um para um

Um para muitos

Muitos para muitos

Page 89: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

89

ParticipaçãoParticipação Uma característica de uma associação Uma característica de uma associação

que indica a necessidade (ou não) da que indica a necessidade (ou não) da existência desta associação entre existência desta associação entre objetos. objetos.

A participação pode ser obrigatória ou A participação pode ser obrigatória ou opcional.opcional.• Se o valor mínimo da multiplicidade de Se o valor mínimo da multiplicidade de

uma associação é igual a 1 (um), significa uma associação é igual a 1 (um), significa que a participação é que a participação é obrigatóriaobrigatória

• Caso contrário, a participação é Caso contrário, a participação é opcionalopcional. .

Page 90: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

90

Nome de associação, direção de Nome de associação, direção de leitura e papéisleitura e papéis

Para melhor esclarecer o significado de Para melhor esclarecer o significado de uma associação no diagrama de uma associação no diagrama de classes, a UML define três recursos de classes, a UML define três recursos de notação:notação:• Nome da associaçãoNome da associação: fornece algum : fornece algum

significado semântico a mesma.significado semântico a mesma.• Direção de leituraDireção de leitura: indica como a : indica como a

associação deve ser lidaassociação deve ser lida• PapelPapel: para representar um papel : para representar um papel

específico numa associação.específico numa associação.

Page 91: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

91

Exemplo (Nome de associação, direção Exemplo (Nome de associação, direção de leitura e papéis) de leitura e papéis)

Page 92: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

92

Agregação Agregação É um caso especial da associaçãoÉ um caso especial da associação

• conseqüentemente, multiplicidades, conseqüentemente, multiplicidades, participações, papéis, etc. podem ser participações, papéis, etc. podem ser usados igualmenteusados igualmente

Utilizada para representar conexões Utilizada para representar conexões que guardam uma relação todo-parte que guardam uma relação todo-parte entre si.entre si.

Page 93: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

93

Agregação Agregação Numa agregação, um objeto está Numa agregação, um objeto está

contido no outro, ao contrário de uma contido no outro, ao contrário de uma associação.associação.

Onde se puder utilizar uma agregação, Onde se puder utilizar uma agregação, uma associação também poderá ser uma associação também poderá ser utilizada. utilizada.

Page 94: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

94

AgregaçãoAgregação

Sejam duas classes associadas, X e Y. Sejam duas classes associadas, X e Y. Se uma das perguntas a seguir for Se uma das perguntas a seguir for respondida com um sim, provavelmente respondida com um sim, provavelmente há uma agregação onde X é todo e Y é há uma agregação onde X é todo e Y é parte.parte.• X tem um ou mais Y?X tem um ou mais Y?• Y é parte de X?Y é parte de X?

Page 95: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

95

Notação para uma agregaçãoNotação para uma agregação

Representada como uma linha Representada como uma linha conectando as classes relacionadas, conectando as classes relacionadas, com um diamante (losango) branco com um diamante (losango) branco perto da classe que representa o todo. perto da classe que representa o todo.

Exemplo:Exemplo:

Page 96: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

96

ComposiçãoComposição

Forma ainda mais forte da agregação.Forma ainda mais forte da agregação. Objetos-parte pertencem a um único todo.Objetos-parte pertencem a um único todo. Objetos-parte são sempre criados e Objetos-parte são sempre criados e

destruídos pelo objeto-todo.destruídos pelo objeto-todo. Se o todo deixa de existir, o mesmo Se o todo deixa de existir, o mesmo

acontece com as suas partes.acontece com as suas partes.

Pedido ItemPedido1..*1

Page 97: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

97

Generalização/EspecializaçãoGeneralização/Especialização (Herança) (Herança)

É um relacionamento no qual os objetos É um relacionamento no qual os objetos especializados (filhos) são substituídos por especializados (filhos) são substituídos por objetos generalizados (pais);objetos generalizados (pais);

Graficamente, é representada por linhas Graficamente, é representada por linhas sólidas com uma seta em branco apontando sólidas com uma seta em branco apontando para o pai:para o pai:

Pessoa

Fisica Juridica

Page 98: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

ExemplosExemplos

Pessoa

nomeemail

Aluno

matricula

Professor

Page 99: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Sistema AcadêmicoSistema Acadêmico

Pessoa

nomeemail

Aluno

matricula

Professor

SistemaAcademico

Page 100: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Locadora de DVDLocadora de DVD

Pessoa

nomeemail

Cliente

registo

Funcionario

MinhaLocadora

DVD

titulo

Page 101: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Locadora de DVDLocadora de DVD

Pessoa

nomeemail

Cliente

registo

Funcionario

MinhaLocadora

DVD

titulo

<locados>

Page 102: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Campeonato de FutebolCampeonato de Futebol

Pessoa

nomeemail

Jogador

posicao

Presidente

CampeonatoAngolano

Time

nome

Tecnico

...

Page 103: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Classe AssociativaClasse Associativa

As associações também podem ter As associações também podem ter atributos, nestas situações (Classes atributos, nestas situações (Classes Associativas) cria-se uma classe (unida Associativas) cria-se uma classe (unida à associação por uma semi-recta a à associação por uma semi-recta a tracejado) onde se colocam os tracejado) onde se colocam os respectivos atributos.respectivos atributos.

Page 104: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

104

Classe associativaClasse associativa

É uma classe que está ligada a uma É uma classe que está ligada a uma associação, ao invés de estar ligada a associação, ao invés de estar ligada a outras classes.outras classes.

É normalmente necessária quando duas ou É normalmente necessária quando duas ou mais classes estão associadas, e é mais classes estão associadas, e é necessário manter informações sobre esta necessário manter informações sobre esta associação.associação.

Uma classe associativa pode estar ligada a Uma classe associativa pode estar ligada a associações de qualquer tipo de associações de qualquer tipo de conectividade. conectividade.

Page 105: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

105

Notação para uma classe Notação para uma classe associativaassociativa

Representada pela notação utilizada Representada pela notação utilizada para uma classe. A diferença é que para uma classe. A diferença é que esta classe é ligada a uma associação. esta classe é ligada a uma associação.

Exemplo:Exemplo:

nometelefoneendereço

Pessoa

razãoSocialendereço

Empresa

saláriodataContratação

Emprego

*

empregado

*

empregador

Page 106: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

106

Associações reflexivasAssociações reflexivas

Associa objetos da mesma classe.Associa objetos da mesma classe.• Cada objeto tem um papel distinto na associação.Cada objeto tem um papel distinto na associação.

A utilização de papéis é bastante importante A utilização de papéis é bastante importante para evitar ambigüidades na leitura da para evitar ambigüidades na leitura da associação.associação.

Uma associação reflexiva não indica que um Uma associação reflexiva não indica que um objeto se associa com ele próprio.objeto se associa com ele próprio.• Ao contrário, indica que objetos de uma mesma Ao contrário, indica que objetos de uma mesma

classe se associamclasse se associam

Page 107: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

107

Exemplo (associação reflexiva)Exemplo (associação reflexiva)

Empregado

supervisor 1

supervisionado

*

Supervisão

Page 108: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

108

Classe AbstrataClasse Abstrata

São parcialmente implementadas e São parcialmente implementadas e compostas por pelo menos 1 (em JAVA compostas por pelo menos 1 (em JAVA isso não é imposto) ou mais operações isso não é imposto) ou mais operações abstratas (operações sem abstratas (operações sem implementação);implementação);

Tem como finalidade servir de base Tem como finalidade servir de base para a implementação do polimorfismo;para a implementação do polimorfismo;

Page 109: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

109

Classe AbstrataClasse Abstrata

São identificadas pela palavra abstract e na São identificadas pela palavra abstract e na UML são em itálico;UML são em itálico;

Não gera instâncias e existem apenas em Não gera instâncias e existem apenas em hierarquia;hierarquia;

Uma classe abstrata pode ter subclasses Uma classe abstrata pode ter subclasses abstratas, mas nos níveis mais baixos abstratas, mas nos níveis mais baixos (especializados) devem estar classes (especializados) devem estar classes concretas;concretas;

Page 110: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

110

Classe AbstrataClasse Abstrata

Podem herdar de classes abstratas e Podem herdar de classes abstratas e não abstratas;não abstratas;

Podem possuir dados (atributos);Podem possuir dados (atributos); Uma subclasse de uma classe abstrata Uma subclasse de uma classe abstrata

só pode ser instanciada se só pode ser instanciada se sobrescrever todos os métodos sobrescrever todos os métodos abstratos da superclasse e implementá-abstratos da superclasse e implementá-los.los.

Page 111: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

111

InterfaceInterface

É um conjunto de especificações de serviços É um conjunto de especificações de serviços (operações);(operações);

Um serviço tem especificação e implementação;Um serviço tem especificação e implementação; A especificação define “A especificação define “o queo que” faz o serviço ” faz o serviço

(operação);(operação); A implementação define “A implementação define “comocomo” o serviço é feito ” o serviço é feito

(método);(método); Uma interface pode ser representada na UML Uma interface pode ser representada na UML

por uma pequena circunferência ligada por um por uma pequena circunferência ligada por um segmento de reta sólido (não pontilhado) a uma segmento de reta sólido (não pontilhado) a uma classe.classe.

Page 112: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

112

InterfaceInterface

Uma interface é uma classe onde todos Uma interface é uma classe onde todos os serviços possuem apenas os serviços possuem apenas especificação (método com apenas especificação (método com apenas assinaturas sem implementação).assinaturas sem implementação).

Impõe especificação do que uma classe Impõe especificação do que uma classe deve oferecer e implementar.deve oferecer e implementar.

Há semelhanças entre Interface e Há semelhanças entre Interface e Classe Abstrata.Classe Abstrata.

Page 113: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

113

InterfaceInterface Uma interface não pode ser instanciada;Uma interface não pode ser instanciada; Interface só possui métodos (exceto Interface só possui métodos (exceto

construtores). construtores). Não possui atributos (em JAVA Não possui atributos (em JAVA pode possuir atributos)pode possuir atributos);;

Uma classe implementa uma ou mais Uma classe implementa uma ou mais interface (através da cláusula implements);interface (através da cláusula implements);

Uma classe pode ao mesmo tempo herdar de Uma classe pode ao mesmo tempo herdar de uma classe e implementar uma interface;uma classe e implementar uma interface;

Page 114: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

114

VisibilidadeVisibilidade

Atributo e Método em A Podem ser acedido porPúblico (+) A,B,C,D,EProtegido (#) A,B,C,DPacote (default) (Java) A,B,DPrivado (-) A (Maior Encapsulamento)

Page 115: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

115

Identificando classesIdentificando classes

Um sistema de software orientado a objetos é Um sistema de software orientado a objetos é composto de objetos em colaboração para composto de objetos em colaboração para realizar as tarefas do sistema.realizar as tarefas do sistema.

Por outro lado, todo objeto pertence a uma Por outro lado, todo objeto pertence a uma classe.classe.

Portanto, quando se fala na identificação das Portanto, quando se fala na identificação das classes, o objetivo na verdade é saber quais classes, o objetivo na verdade é saber quais objetos irão compor o sistema. objetos irão compor o sistema.

Page 116: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

116

Categorias de responsabilidades Categorias de responsabilidades

Costuma-se categorizar os objetos de um Costuma-se categorizar os objetos de um sistema de acordo com o tipo de sistema de acordo com o tipo de responsabilidade a ele atribuída.responsabilidade a ele atribuída.• objetos de entidade (a que estudaremos)objetos de entidade (a que estudaremos)• objetos de controleobjetos de controle• objetos de fronteiraobjetos de fronteira

Esta categorização foi proposta por Ivar Esta categorização foi proposta por Ivar Jacobson (Jacobson et al, 1992) em uma Jacobson (Jacobson et al, 1992) em uma técnica denominada Análise de Robustez.técnica denominada Análise de Robustez.

Page 117: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

117

Objetos de Entidade Objetos de Entidade

Um objeto de entidade é um repositório para Um objeto de entidade é um repositório para alguma alguma informaçãoinformação manipulada pelo manipulada pelo sistema.sistema.

Esses objetos representam conceitos do Esses objetos representam conceitos do domínio do negócio.domínio do negócio.

Normalmente esses objetos armazenam Normalmente esses objetos armazenam informações persistentes.informações persistentes.

Há várias instâncias de uma mesma classe Há várias instâncias de uma mesma classe de entidade coexistindo no sistema.de entidade coexistindo no sistema.

Page 118: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

118

Objetos de Fronteira Objetos de Fronteira

Esses objetos traduzem os eventos gerados Esses objetos traduzem os eventos gerados por um ator em eventos relevantes ao por um ator em eventos relevantes ao sistema.sistema.

Também são responsáveis por apresentar os Também são responsáveis por apresentar os resultados de uma interação dos objetos em resultados de uma interação dos objetos em algo inteligível pelo ator.algo inteligível pelo ator.

Um objeto de fronteira existe para que o Um objeto de fronteira existe para que o sistema se comunique com o mundo exterior.sistema se comunique com o mundo exterior.

Page 119: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

119

Objetos de Controle Objetos de Controle

São a “ponte de comunicação” entre objetos de São a “ponte de comunicação” entre objetos de fronteira e objetos de entidade.fronteira e objetos de entidade.

Responsáveis por Responsáveis por controlar a lógica de controlar a lógica de execuçãoexecução correspondente a um caso de uso. correspondente a um caso de uso.

Decidem o que o sistema deve fazer quando Decidem o que o sistema deve fazer quando um evento externo relevante ocorre.um evento externo relevante ocorre.• Eles realizam o controle do processamentoEles realizam o controle do processamento

• Agem como Agem como gerentesgerentes (coordenadores, (coordenadores, controladores) dos outros objetos para a realização controladores) dos outros objetos para a realização de um ou mais caso de uso.de um ou mais caso de uso.

Page 120: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Projecto Exemplo (UML)Projecto Exemplo (UML)

Por onde começar?

Page 121: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Identificar os ObjetosIdentificar os Objetos

Jogador

Dado

Jogo

Page 122: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Identificar Métodos e AtributosIdentificar Métodos e Atributos

Jogador

nomepontos

DadonumeroDeLados

jogarDado()

Jogoobjetivo

sorteiarIniciante()mostrarSituacao()iniciar()mostrarVencedor()

aumentarPontos()jaGanhou()

Page 123: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Qual é a visibilidade?Qual é a visibilidade?

Jogador

+ nome# pontos

Dado

- numeroDeLados

+ jogarDado()

Jogo# objetivo

+ sorteiarIniciante()+ mostrarSituacao()+ iniciar()+ mostrarVencedor()

+ aumentarPontos()+ jaGanhou()

Page 124: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Relacionamentos entre ClassesRelacionamentos entre Classes

Jogador

+ nome# pontos

Dado

- numeroDeLados

+ jogarDado()

Jogo# objetivo

+ sorteiarIniciante()+ mostrarSituacao()+ iniciar()+ mostrarVencedor()

+ aumentarPontos()+ jaGanhou()

Page 125: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Definir MultiplicidadeDefinir Multiplicidade

Jogador

+ nome# pontos

Dado

- numeroDeLados

+ jogarDado()

Jogo# objetivo

+ sorteiarIniciante()+ mostrarSituacao()+ iniciar()+ mostrarVencedor()

+ aumentarPontos()+ jaGanhou()

1..1

1..1

2..*

0..1

Page 126: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Alguma dependência?Alguma dependência?

Jogador

+ nome# pontos

Dado

- numeroDeLados

+ jogarDado()

Jogo# objetivo

+ sorteiarIniciante()+ mostrarSituacao()+ iniciar()+ mostrarVencedor()

+ aumentarPontos()+ jaGanhou()

1..1

1..1

2..*

0..1

Page 127: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

Uma Possível Solução UMLUma Possível Solução UML

Jogador

+ nome# pontos

Dado

- numeroDeLados

+ jogarDado()

Jogo# objetivo

+ sorteiarIniciante()+ mostrarSituacao()+ iniciar()+ mostrarVencedor()

+ aumentarPontos()+ jaGanhou()

1..1

1..1

2..*

0..1

O método jaGanhou precisa saber o objetivo do jogo

Page 128: UML Frei Joaquim José Hangalo joajoshang@gmail.com Universidade Católica de Angola Faculdade de Engenharia

ObrigadoObrigado