Sie sind auf Seite 1von 134

Coppola

Unified Modeling Language

Sumrio:

Modelagem de Dados

Anlise Estruturada x Anlise Orientada a Objetos

Linguagem de Modelagem Unificada

Coppola

Unified Modeling Language

BIBLIOGRAFIA
UML Uma abordagem Prtica
Gilleanes T.A. Guedes
Novatec, 2004
UML a Bblia
Tom Pender
Editora CAMPUS, 2004
UML guia do Usurio
Grady Booch, Rumbaugh, Jacobson
Editora Campus, 2006
UML e C++
Guia prtico de Desenv.O. Objeto
Richard C. Lee
Coppola
Makron Books, 2002

* Desenvolvendo software com UML


Ernani Medeiros,
Pearson, 2004
* UML prtico e Descomplicado
Alexandre Veloso de Matos
rica, 2002
* The complete guide to the
Unified process from the original
designers(BOOCH, JACOBSON,
RUMBAUGH, 1999)
Modelagem e Projetos Baseaos em objetos
Rumbaugh, Blaha, Premerlani, Eddy
Lorensen
Unified Modeling Language
Campus, 1994

BIBLIOGRAFIA
REQ370 Essential of Rational RequisitePro
IBM, june 2003
REQ480 Mastering Requirements Management With Use Case
IBM, May 2003
DEV396 Essentials of Rational Software Architecture
IBM, January 2005
Projeto de Banco de Dados
Felipe Machado & Mauricio Abreu
rica, 1996
Banco de Dados para Web do planejamento Implementao
Luciano Carlos da Slva
Unified Modeling Language
Coppola
rica, 2001

Justiticativa
Temos observado ao longo dos nossos anos de
experincia no Gerenciamento de
Desenvolvimento de Softwares(GDS), que existe
uma grande dificuldade dos analistas e
programadores (Equipe Tcnica) em entederem
alguns conceitos e consequentemente a
dificuldade em aplic-los no Desenvolvimento de
um projeto de software, trazendo como
consequncia direta, problemas na especificao,
modelagem e documentao de um
sistema(software).
Coppola

Unified Modeling Language

Conceitos
prioritrios

Modelagem
De
Dados

Anlise
Linguagem Estruturada
X
de
Anlise
Modelagem
Orientada
Unificada
a Objetos
UML

A deciso:

UML

Estaremos fundamentando, as diferenas entre uma informao


e dado, a importncia dos requisitos,
requisitos suas categorias,
Caractersticas e sua respectiva anlise, abordando desde o
levantamento, modelagem, especificao e validao.
Coppola

Unified Modeling Language

Conceitos prioritrios
Informao:
Quando acrescentamos algo ao conhecimento da realidade
a ser analisada, permitindo a interpretao pelo ser
humano.
Exemplo: A dosagem de um determinado remdio
Dado:
uma representao, um registro da informao, um
elemento inserido no computador para ser processado,
algo, manipulado pelo ser humano, tais como, documentos
de texto, imagens ou som.
Exemplo: A receita mdica

Coppola

Unified Modeling Language

Conceitos prioritrios
Sistemas:
Gericamente descrevendo, identificam todos os
componentes de hardware e software de um
nico usurio ou de uma rede. Tambm pode
referir-se a um sistema operacional ou a um
aplicativo qualquer. (Fialho Jr., 2002)

Coppola

Unified Modeling Language

Conceitos prioritrios
Sistema de Informao:
Conjunto de componentes inter-relacionados que
coletam (ou recuperam), processam, armazenam
e distribuem informaes destinadas a apoiar a
tomada de decises, a coordenao e o controle
de uma organizao. Alm de auxiliar, gerentes e
trabalhadores a analisar problemas, visualizar
assuntos complexos e criar novos produtos.
(Laundon & Laundon, 2007)
Coppola

Unified Modeling Language

Conceitos prioritrios
Software:
Conjunto de programas, documentao e
procedimentos operacionais com os quais pode-se
fazer com que os computadores e outros
dispositivos eletrnicos sejam teis aos homens.
Sendo que os programas so conjuntos de
instrues arranjadas de forma que possam ser
entendidas e executadas por um computador
Coppola

Unified Modeling Language

Conceitos prioritrios
Requisitos:
Uma condio ou capacidade que o sistema deve estar de
acordo (RUP)
Uma capacidade do software necessria ao usurio para
resolver um problema ou atingir um objetivo
aquilo que o usurio/cliente espera do sistema
Objetivos ou restries estabelecidas por clientes e usurios
do sistema que definem as diversas propriedades do sistema
Condies que devem atender as necessidades ou restries
da organizao ou de outros componentes do sistema
Coppola

Unified Modeling Language

Qualidades de um Requisito de
Software
Correto

Verificvel

Completo

Priorizavel

Consistente

Modificvel

Unambguo

Rastrevel

Ref. IEEE 830


Coppola

ref - IEEE 830

Unified Modeling Language

Requisitos Existem em Diversos Nveis


Levantamento
de
Requisitos

Analise de
Requisitos

Implementao
do Requisitos

Coppola

Qu
Como
Qu
Como
Qu
Como

Necessidades dos
Envolvidos
Caractersticas do
Produto ou Sistema
Especificao de Requisitos
(Casos de Uso)
Design
Procedimentos de Teste
Documentao
Unified Modeling Language

O Que NO Faz Parte de um Requisito?

Design como o software atender aos requisitos


Verificao como voc sabe que o requisito foi
atendido
Dados do Projeto cronogramas, controles, etc.
Adapted from Alan Davis

Coppola

Unified Modeling Language

Entendendo as necessidades

Coppola

Unified Modeling Language

Tcnicas Para Levantar Necessidades dos Envolvidos

Workshop de Requisitos
Brainstorming e Reduo de Idias
Workshops de Casos de Uso
Storyboards
Entrevistas
Questionrios
Role Playing
Prottipos
Reviso de Especificaes de Requisitos do Cliente
Coppola

Unified Modeling Language

Tcnicas Para Levantar Necessidades dos Envolvidos

Porque modelar software???

1.

Muitos profissionais desenvolvedores web, podem afirmar


que conseguem determinar todas as necessidades de um
sistema de informao de cabea e que sempre
trabalharam assim, um hbito comum.
Pensar antes de fazer sempre uma boa opo e modelar
antes de codificar uma tima coisa a fazer tambm.
Modelar particularmente importante quando consideramos
preocupante as aes simultneas, que no acontecem
facilmente j que sua cabea est focada no cdigo.

2.
3.

Coppola

Unified Modeling Language

Conceitos
prioritrios

Coppola

Modelagem
De
Dados

Anlise
Linguagem Estruturada
X
de
Anlise
Modelagem
Orientada
Unificada
a Objetos
UML

A deciso:

UML

Unified Modeling Language

Conceitos
prioritrios

Modelagem
De
Dados

Anlise
Linguagem Estruturada
X
de
Anlise
Modelagem
Orientada
Unificada
a Objetos
UML

A deciso:

UML

A modelagem de dados (ou de informaes) est baseada no


princpio de que, comprovadamente, os dados so estveis no
decorrer da vida de uma corporao ou instituio, no tendo
volatilidade dependente de fatores externos. J os
procedimentos
possuem esta caracteristicas deUnified
volatilidade.
Modeling Language
Coppola

MODELAGEM DE DADOS

Modelagem de dados o ato de definir estruturas capazes de


representar os dados relevantes para um sistema de informao.
Existem vrios conceitos, regras e consequentemente tcnicas que
podem auxiliar um bom modelo de dados.
O processo de modelagem pode, e deve na maioria das situaes,
obedecer um conjunto de tcnicas e boas prticas para representar,
com a maior preciso possvel, a realidade a ser modelada bem
como tornar possvel a evoluo do modelo de dados frente a
alteraes sofridas nessa realidade.
(Gonalves C. Mauri, 2006).
A modelagem est focada em construir bases de dados que atendam
s reais necessidades de informao de um determinado ambiente,
de forma a melhor aproveitar os recursos de um SGBD.
Unified Modeling Language
Coppola

MODELAGEM DE DADOS

A construo de base de dados pode ser dividida em trs fases bem


distintas:
1. Modelagem Conceitual
- O analista, deve se concentrar na observao dos fatos que ocorrem
na realidade.
- Artefatos que registram estes fatos s devem ser utilizados como apoio
ao entendimento.
2. Projeto Lgico
- Tem seu incio a partir do modelo Conceitual
- Decreve as estruturas que estaro contidas no banco de dados.
3. Projeto Fsico
- Tem seu inicio a partir do Modelo Lgico
- nfse na implementao de consultas (SQL Data Definition
Language-DDL)
Unified Modeling Language
Coppola

MODELAGEM DE DADOS
1.

Modelagem Conceitual
- No retrata os apectos ligados abordagem do banco de dados que
ser utilizado e to pouco com suas forma de acesso e estruturas
fsicas.
- Deve representar a realidade do ambiente do problema
- constitudo de uma viso global, procurando relatar os principais
requisitos de dados do domnio e seus respectivos relacionamentos.
- MACRODEFINIO

MUNDO
REAL
Coppola

Unified Modeling Language

MODELAGEM DE DADOS
1.

Modelo(Projeto) Lgico
- No deve considerar nenhuma caracterstica especfica de SGBD
-Maior nfase na eficincia de armazenamento dos dados, porm,
evitando muitas tabelas (normalizao), junes e tabelas subutilizadas.

CLIENTE

POSSUI

Coppola

FATURA

FAZ

PEDIDO
GERA
Unified Modeling
NOTA Language

MODELAGEM DE DADOS
3.

Modelo (Projeto) Fsico


- Inicia a partir do Modelo Lgico e descreve as estruturas fsicas
de armazenamento de dados
- Modelo projetado, levando em considerao os requisitos de
processamento e uso mais econmico dos recursos
computacionais.
- Detalha o estudo dos mtodos de acesso do SGBD (ndices)
ACESSOS

Coppola

INDICES

TIPO
DE
CAMPO

TAMANHO
DO
CAMPO
Unified Modeling Language

MODELAGEM DE DADOS

Nosso objetivo primordial entendermos o negcio, para


o qual projetaremos um sistema, atravs de seus dados
Peter Chen(1976):
Quando formulou a proposta do modelo EntidadeRelacionamento, baseou-se no na viso de um sistema de
aplicao como princpio e sim na compreenso da realidade
em que se situava o problema.
Como iremos projetar um sistema se no entendermos o
negcio para o qual ser realizado? (Machado & Abreu, 1996)
Coppola

Unified Modeling Language

MODELAGEM DE DADOS

Chen dedicou-se a destacar a importncia de reconhecer os


objetos que compem este negcio, a estes objetos Chen
classificou em dois grupos:
Entidades e Relacionamentos
Entidades
Entidade um agrupamento lgico de informaes interrelacionadas necessrias para a execuo das atividades
do sistema. Uma entidade normalmente representa um
objeto do mundo real ou, quando no , contm
informaes relevantes s operaes da empresa.
Coppola

Unified Modeling Language

MODELAGEM DE DADOS

Exemplos de Entidades
Documentos Ordem de Compra, pedidos, nota fiscal
Local
Almoxarifado e departamento
Matria
Produto e pea
As entidades podem ser classificadas em dois tipos
Fundamental Contm dados bsicos que so resultados ou
alimentadores das operaes da empresa
Associativa
formada pelo Relacionamento de duas
Entidades sempre que estas se relacionarem mais de uma
vez.
Exemplo: Aluno x matria, CD x Autor, pedido
x produto
etc.
Unified
Modeling Language
Coppola

MODELAGEM DE DADOS

Atributos
Os atributos so as informaes bsicas que qualificam uma
entidade e descrevem seus elementos ou caractersticas.
Quando transpostos ao modelo fsico (ao banco de dados),
chamamos os atributos de campos ou colunas.
Exemplos de atributos para as entidades:
Entidade pessoa: nome, endereo, documento, data de
nascimento, telefone e e-mail
Entidade Nota Fiscal: srie, nmero, data de emisso e
cliente
Coppola

Unified Modeling Language

MODELAGEM DE DADOS

Introduo ao relacionamento
Sempre que duas entidades apresentarem interdependncia
(por exemplo, autor da msica ou msica do CD), indica-se
um relacionamento entre elas.
Regra:
Cada entidade 1

Coppola

deve ter
Ou
Pode ter

relacionamento

uma ou mais
ou
uma nica

entidade 2

Unified Modeling Language

MODELAGEM DE DADOS

Coppola

Unified Modeling Language

Coppola

Unified Modeling Language

Conceitos
prioritrios

Modelagem
De
Dados

Anlise
Linguagem Estruturada
X
de
Anlise
Modelagem
Orientada
Unificada
A Objetos
UML

A deciso:

UML

O objetivo disto fornecer multiplas vises do sistema a ser


modelado, analisando-o e modelando-o sob diversos aspectos,
procurando atingir a completitude da modelagem, permitindo
que cada diagrama complemente os outros, como se o
sistema fosse modelado em camadas (Uma tica para cada
Unified Modeling Language
Coppola
diagrama).

UML
Coppola

Unified Modeling Language

UML = Unified Modeling Language ou


(Linguagem de Modelagem Unificada):
um conjunto de ferramentas (desenhos)
que permitiro representar o modelo de um
sistema qualquer, porm, por meio do
Paradigma de Orientao a objetos.

Coppola

Unified Modeling Language

O que a UML ?
A UML uma linguagem padro para visualizar,
especificar, construir e documentar os artefatos de
um sistema intensamente baseado em software
A UML combina:
Conceitos de Modelagem de Dados (Diagramas
Entidade-Relacionamento)
Modelagem de Negcios (Fluxo de trabalhos)
Modelagem de Objetos
Modelagem de Componentes
Pode ser usada com todos os processos, durante todo o
ciclo de desenvolvimento e com diferentes tecnologias de
Unified Modeling Language
Coppola
implementao

U M

A UML vai alm de uma simples padronizao em busca de uma notao


unificada, pois incorpora conceitos novos no encontrados em outros mtodos
orientados a objetos.
A UML auxilia na definio das caractersticas do software, tais como seus
requisitos, seu comportamento, sua estrutura lgica, a dinmica de seus
processos e at as necessidades fsicas em relao sobre o qual o sistema
dever ser implantado.
Existem atualmente 13 diagramas da UML, porm, segundo Booch, os
diagramas mais utilizados so diagramas de classe (dependendo do seu
domnio), diagramas e casos de uso e diagramas de sequncia ou de estado.
Os diagramas da UML 2.0 (Diagrama de Classes, Instalao, Objetos,
Pacotes, Estrutura Composta, Componentes, Casos de Uso, Atividades,
Interao, Estados, Temporizao, Sequncia, Viso Geral Interao e
Comunicao).
Coppola

Unified Modeling Language

U M

A UML o brao direito do RUP (Rational Unified Process), mas isso no


significa que ela seja dependente do RUP, na verdade ocorre o contrrio,
pois a UML totalmente independente de processo ou modelo, podendo
ser utilizada para diversas finalidades. O RUP apenas utiliza
intensivamente os recursos da UML para a gerao de seus artefatos
referentes a um software.
A UML atualmente composta por treze diagramas onde cada um possui
sua prpria semntica, sendo que, cada diagrama utilizado conforme as
fases de um projeto de software. Isso significa que, em uma fase inicial
(fase de Concepo do RUP, por exemplo) de projeto utilizado um
determinado diagrama que ao mesmo tempo se torna requisito
fundamental para o uso do prximo diagrama e assim sucessivamente.
Coppola

Unified Modeling Language

Contribuies para a UML


Harel

Meyer
Before and after
conditions

Statecharts

Gamma, et al
Frameworks and patterns,

HP Fusion

Booch

Operation descriptions and


message numbering

Booch method

Embley

Rumbaugh

Singleton classes and


high-level view

OMT

Jacobson

Wirfs-Brock

OOSE

Responsibilities

Shlaer - Mellor
Coppola

Jr. Brandi, Vitor,. 2007

Object
lifecycles

Odell
Classification
Unified Modeling Language

Criao da UML

(menores revises)

Final de 1996

UUM
L2
ML2

2000/2003

UML 1.4/1.5

(maiores revises)

UML 1.3
Aceitao pela OMG, Nov 1997

UML 1.1

Submisso final OMG, Sep 97

contribuies
externas

Primeira submisso OMG, Jan 97

UML 1.0

Parceiros da UML

UML 0.9

Web - Jun 96

OOPSLA 95

Coppola

Outros mtodos

Unified Method 0.8

Mtodo de Booch

OMT

Unified Modeling Language

OOSE

Desenvolvimento de diferentes aplicaes


objetos

objetos de negcios

ORDBMS
Oracle

relacionamentos
sistemas de larga escala

classes

particionamento de
aplicaes

componentes
Microsoft

cenrios

casos de uso
ActiveX/COM
Microsoft

Coppola
Jr.
Brandi, Vitor,. 2007

CORBA
OMG
Processos de negcios

Unified Modeling Language

Usos da UML
A UML pode ser utilizada para:
Mostrar a periferia de um sistema e suas principais
funes usando Casos de Uso e Atores
Ilustrar realizaes de Casos de Uso com Diagramas de
Interaes
Representar a estrutura esttica de um sistema usando
Diagramas de Classes
Modelar o comportamento de objetos com Diagramas de
Transies de Estado
Revelar a arquitetura da implementao fsica com
Diagramas de Componentes e Distribuio
Estender sua funcionalidade com Esteretipos
Unified Modeling Language
Coppola

Viso geral da UML

Elementos de Modelagem
Relacionamentos
Mecanismos de Extensibilidade
Diagrama

Coppola

Unified Modeling Language

Elementos de Modelagem

Elementos estruturais
classes, interfaces, colaborao, casos de uso, classes ativas,
componentes, ns
Elementos de comportamento
interao, mquinas de estado
Elementos de agrupamento
package (pacote), subsistemas
Outros elementos
notas (comentrios)

Coppola

Unified Modeling Language

Relacionamentos

Dependncia
Associao
Generalizao
Realizao

Coppola

Unified Modeling Language

Mecanismos de Extensibilidade
Esteretipos
Valores marcados (Tagged value)
Restries (Constraint)

Coppola

Unified Modeling Language

DIAGRAMAS DA UML

Diagrama
de Estrutura

Diagrama
de
Comportamento
Diagrama
Casos
de Uso

Diagrama
de Classes

Diagrama
Instalao

Diagrama
de Pacotes
Coppola

Diagrama
Estrutura
Composta

Diagrama
Diagrama
de
Componentes
Objetos

Diagrama
De
Atividades

Diagrama
De
Estados

Diagrama
De
Interao
Diagramas
Temporizao

Diagramas
Sequencia

Diagramas
Viso
Geral
Interao

Diagrama
Comunicao

Unified Modeling Language

Diagramas
Um diagrama uma viso de um modelo
Apresentado a partir de um aspecto particular
Prov uma representao parcial do sistema
semanticamente consistente com outras vises
Existem treze diagramas padro na UML, de acordo
com a OMG (www.omg.com)

Coppola

Unified Modeling Language

Diagramas Estruturais
Diagramas de Classes: Permite representar as classes
do sistema, suas caractersticas (atributos) e aes
(mtodos). Voc consegue expor as relaes
existentes entre as classes utilizando o conceito de
orientao a objetos, o que uma grande vantagem
para os desenvolvedores que utilizam linguagens de
programao orientadas a objetos, to comum nos
dias de hoje.

Coppola

Unified Modeling Language

Diagramas Estruturais
Diagramas de Instalao: Descreve a configurao de
elementos de suporte ao processamento, componentes de
software, processos e objetos existentes nesses
elementos, ou seja, ilustra os componentes de hardware e
software e sua iterao com outros elementos de suporte
ao processamento.

Coppola

Unified Modeling Language

Diagramas Estruturais
Diagramas de Objetos: uma boa opo para explicar
relacionamentos complexos entre classes. Mostra os
objetos que foram instanciados das classes. Os nomes
dos objetos so sublinhados e todas as instncias so
mostradas. Tambm usado como parte dos diagramas
de colaborao, onde , mostrada a colaborao
dinmica entre os objetos do sistema. O diagrama de
objetos fornece uma viso dos valores armazenados
pelos objetos de um diagrama de classes em um
determinado momento de execuo de um processo. Os
diagramas mostram apenas os mtodos e propriedades
que retornam os objetos.
Coppola

Unified Modeling Language

Diagramas Estruturais
Diagramas de Pacotes: Pode ser chamado tambm de
Diagrama de Mdulos. Pacote representa um grupo de
classes, ou elementos, e dependente de outros pacotes.
O Diagrama de pacotes mostra pacotes ou pedaos do
sistema e relaes entre pacotes. Ele mais utilizado para
ilustrar a arquitetura do projeto mostrando o agrupamento
de suas classes. No preciso seguir uma hierarquia, ele
pode ser utilizado em qualquer fase do processo de
modelagem.
Coppola

Unified Modeling Language

Diagramas Estruturais
Diagramas de Estrutura Composta: Mostra o
relacionamento entre os elementos e especfica as suas
funcionalidades.
Diagramas de Componentes: Descreve as dependncias
entre componentes de softwares, como de cdigo fonte,
cdigo binrio e executveis. Destaca a funo de cada
mdulo para facilitar a reutilizao e auxilia no processo
de engenharia reversa, por meio da organizao dos
mdulos do sistema e seus relacionamentos. Ele mostra
apenas o que relevante em um subsistema de
implementao. Este diagrama representado na forma
de tipos e no na forma de instncias.
Unified Modeling Language
Coppola

CASOS DE USO
Coppola

Unified Modeling Language

Diagrama de Caso de Uso


Captura a funcionalidade do sistema conforme vista pelos
usurios

Coppola

Unified Modeling Language

Diagramas de Caso de Uso


Construdo nos estgios iniciais do desenvolvimento
Propsito
especificar o contexto de um sistema
capturar os requisitos de um sistema
validar a arquitetura do sistema
direcionar a implementao e gerar casos de teste
Desenvolvido por analistas e usurios especializados
no domnio da aplicao
Coppola

Unified Modeling Language

Coppola

Unified Modeling Language

Casos de Uso
Um caso de uso uma tcnica de modelagem utilizada
para:
descrever o que um novo sistema deve fazer
descrever o que um sistema existente j faz
Caractersticas
construdo atravs de um processo iterativo
envolve desenvolvedores do sistema e os clientes
do sistema (ou usurios finais)
eventualmente leva a uma especificao comum de
requisitos
Coppola

Unified Modeling Language

Casos de Uso
Criado por Ivar Jacobson,1994
Primeiramente utilizado na metodologia
OOSE/Objectory
No exclusividade da UML
Diversas outras metodologias foram adaptadas para
utilizar Casos de Uso para representar a
especificao funcional do sistema
Coppola

Unified Modeling Language

Componentes Principais
O modelo de casos de uso tem como principais
componentes:
atores: entidade externa que interage com os
casos de uso
casos de uso: especifica uma funcionalidade
completa do sistema
Diagrama: conjunto de casos de uso que
interage com atores
Coppola

Unified Modeling Language

Caractersticas
As fronteiras do sistema so especificadas pela
funcionalidade do sistema
A funcionalidade do sistema representada por
uma srie de casos de uso
Cada caso de uso especifica completamente
uma funcionalidade
Um caso de uso sempre deve devolver algum
valor para um ator
Coppola

Unified Modeling Language

Caractersticas
O ator uma entidade externa que tem
interesse em interagir com o sistema
O sistema deve ser enxergado como uma
caixa-preta que prov casos de uso, ou seja,
No importante especificar como as
funcionalidades sero implementadas, mas sim
quais so esta funcionalidades.
Coppola

Unified Modeling Language

Propsitos dos Casos de Uso


Decidir e descrever os requisitos funcionais do
sistema
prover uma descrio clara e consistente do que
o sistema deve fazer
prover a base para a realizao de testes que
validam e verificam o sistema
prover facilidades para se rastrear requisitos
funcionais dentro das classes e operaes do
sistema
Coppola

Unified Modeling Language

Quem se interessa pelo modelo de casos de uso ?

Clientes e usurios finais: pois ele


especifica a funcionalidade do sistema de
uma forma clara e fcil de entender
Desenvolvedores: pois ele ajuda a
entender o que o sistema deve fazer
Integradores e Testadores do sistema:
pois eles provm a base para se integrar
e testar o sistema
Coppola

Unified Modeling Language

Para se criar modelos de caso de uso

Definir o sistema
encontrar os atores
encontrar os casos de uso
descrever os casos de uso
definir os relacionamentos entre os casos
de uso
validar o modelo
Coppola

Unified Modeling Language

Diagramas de Casos de Uso


O modelo de casos de uso consiste em uma
srie de diagramas de casos de uso, portanto,
diagramas de casos de uso descrevem o
modelo de casos de uso
o diagrama de casos de uso prov mecanismos
para representar os principais componentes do
modelo de casos de uso e os eventuais
relacionamentos entre estes componentes
Coppola

Unified Modeling Language

Casos de uso
Atendimento a
alunos

ator

caso de uso

Reservar Livro

ator

caso de uso
Devolver Livro
Balconista

Aluno

caso de uso
Retirar livro

Coppola

sistema

Unified Modeling Language

Atores
Ator: um papel que um usurio executa em relao ao
sistema.
Os atores desempenham os casos de uso. Um nico ator
pode desempenhar vrios casos de uso; um nico caso de
uso pode ter reciprocamente vrios atores desempenhando-o
ou participando.
Atores podem ser vistos como participantes do caso de uso
que obtm valor dos mesmos.
Atores podem ser: humanos, outros sistemas, dispositivos
externos, etc., que interagem com o sistema.
Smbolo:
Coppola

Ator 1

Unified Modeling Language

Identificando Atores
As respostas s seguintes perguntas podem auxiliar a identificar
atores:
quem utiliza a principal funcionalidade do sistema ?
quem vai precisar de suporte do sistema para realizar suas
tarefas dirias ?
quem precisa manter, administrar e deixar o sistema
rodando ?
quais dispositivos de hardware o sistema precisa manipular ?
com quais outros sistemas o sistema precisa interagir?
quem ou o que tem interesse nos resultados produzidos pelo
sistema ?
Coppola

Unified Modeling Language

Relacionamento entre Atores


Cliente

Mesmo externos ao sistema,


os atores podem se
relacionar
no diagrama de casos de
uso, o nico relacionamento
representado o de
generalizao
generalizaes so
representadas quando dois
ou mais atores
desempenham um papel
Coppola
mais genrico

Cliente especial

Cliente regular

Cliente especial
Pagar conta via BankLine

Cliente

Desbloquear talo

Pagar conta no caixa

Unified Modeling Language


Cliente regular

Relacionamentos entre Atores

Generalizao:

Um relacionamento de generalizao entre Atores significa que


os Atores B e C representam papis que especializam o papel
definido pelo Ator A.
O relacionamento de generalizao entre atores indica que os
atores pertencem a um mesmo grupo semntico de usurios (ou
papis) e que compartilham responsabilidades. Os atores
especializados herdam todas as caractersticas e links de
comunicao do ator da generalizao. Dessa forma, todos os
casos de uso que o ator generalizado pode executar podero ser
executados tambm pelos atores das especializaes.
Ex:

Coordenador

Acompanhar Desempenho de
Funcionrios

Unified Modeling Language

Coppola
Gerente

Diretor

Casos de Uso

Originado a partir do mtodo do Jacobson.

Casos de Uso so utilizados para modelar os requisitos funcionais do


sistema.

Casos de Uso descrevem as funcionalidades do sistema, conforme


esperadas pelos usurios, retratando um dilogo que uma entidade
externa, chamada Ator, realiza com o sistema.

Um Caso de Uso baseado num cenrio descritivo de como o Ator


interage com o sistema. Ele identifica eventos que podem ocorrer e
descreve as respostas do sistema para estes eventos.

Um Caso de Uso, em ltima instncia, representa um fluxo de eventos


completo e com significado, descrevendo uma situao de uso particular
do sistema.

Smbolo:

Coppola

Funo 1

Unified Modeling Language

Casos de Uso
Definido como um conjunto de seqncias
de aes que um sistema executa que
produzem um resultado observvel por um
particular ator
relaciona-se com um ou mais atores atravs
de associaes
associaes so, normalmente, bidirecionais

Coppola

Unified Modeling Language

Casos de Uso
sempre iniciado por um ator (que direta ou
indiretamente ordena ao sistema a execuo de um
caso de uso)
prov sempre um valor (discernvel) para o ator
um caso de uso completo
incorreto quebrar um caso de uso grande em
diversos casos de usos menores, pois no se deve
especificar como o caso de uso ser implementado
somente se completa quando produz um valor
Coppola

Unified Modeling Language

Encontrando casos de uso


As respostas s seguintes perguntas podem
auxiliar a encontrar casos de uso:
Quais funes o ator requer do sistema ? O que o ator precisa
fazer ?
O ator precisa criar, ler, destruir, modificar ou armazenar algum
tipo de informao dentro do sistema ?
O ator precisa ser notificado de eventos do sistema ? O ator
precisa notificar o sistema sobre algum evento ?
O trabalho dirio do ator poderia ser simplificado ou tornado mais
eficiente atravs de novas funcionalidade do sistema ?
Quais entradas e sada o sistema precisa ?
Quais os principais problemas com o atual sistema ?

Coppola

Unified Modeling Language

Diagrama de Casos de Uso: exemplo 1


SISTEMA DE CONTROLE DE BIBLIOTECA

Registrar Ttulo
Reservar Item

Remover Ttulo
Remover Reserva

Bibliotecrio
Registrar Item

Emprestar Item

Remover Item
Devolver Item
Registrar Usurio

Coppola

Remover Usurio
Unified Modeling Language

Diagrama de Casos de Uso: exemplo 2


Sistema de Controle de Vendas
Manter Clientes

Manter Produtos
<<extend>>

Registrar Parcelas de Pagamento

Caixa

Vender Produtos

<<include>>

<<include>>

Gerente

Coppola

Registrar Entrega de Produto

Manter Fornecedores

Atualizar Estoque de Produto

Unified Modeling Language

Relacionamentos entre Casos de Uso

Incluso: (referenciado como: uses, include ou inclui)

Um relacionamento de Incluso do Caso de Uso A para o Caso de


Uso B, indica que o comportamento de B estar includo no
comportamento de A.

Principal objetivo: reutilizao

A associao de incluso ocorre, principalmente, quando h uma


parte do comportamento que semelhante em mais de um caso de
uso e no se deseja ficar copiando a descrio deste
comportamento.

Ex:

Caixa

Vender Produtos

<<include>>

<<include>>

Coppola

Gerente

Registrar Entrega de Produto

Atualizar Estoque de Produto

Unified Modeling Language

Relacionamentos entre Casos de Uso

Extenso: (referenciado como: estende ou extend)

Um relacionamento de extenso do Caso de Uso B para o Caso de


Uso A, indica que o comportamento de A pode ser estendido pelo
comportamento especificado em B.

O caso de uso de extenso pode acrescentar comportamento ao


caso de uso base.

Extenso deve ser utilizada quando se est descrevendo uma


variao em comportamento normal do caso de uso. um
comportamento adicional.

Pontos de extenso podem ser declarados no caso de uso base.

Ex:

<<extend>>

Registrar Parcelas de Pagamento

Caixa

Coppola

Vender Produtos

Unified Modeling Language

Relacionamentos entre Casos de Uso

Generalizao:

Um relacionamento de generalizao entre um Caso de Uso A e


Casos de Uso B e C, indica que o comportamento de A
especializado em B e C.

Os casos de uso B e C apresentam uma estrutura muito


semelhante (fluxos de eventos, regras, etc.), ento, a parte em
comum fatorada para um caso de uso de generalizao

Os casos de uso especializados B e C podem acrescentar


comportamento (passos no fluxo principal, fluxos alternativos
adicionais), sobrescrever comportamento ou acrescentar dados
de entrada e sada, regras, etc.

Ex:

Secretria

Emitir Boletim

Unified Modeling Language

Coppola
Emitir Boletim de Alunos do 2
Grau

Emitir Boletim de Alunos do 3

Testando o sistema atravs dos casos de uso

Os casos de uso facilitam a aplicao de dois diferentes tipos de


testes:
teste de validao: Estamos construindo o produto certo?
efetuado assim que se produz um modelo de caso de uso
apresenta-se e discute-se os diagramas de caso de uso com os
usurios para que eles validem-no e complementem-no
teste de verificao: Estamos construindo certo o produto ?
efetuado assim que a implementao das primeiras partes do
sistemas estiver pronta
confronta-se o comportamento obtido da execuo do sistema
com o comportamento esperado (especificado nos diagramas
de caso de uso)
Coppola

Unified Modeling Language

Passos para Elaborar o Modelo de Casos de Uso do Sistema

Identificar os Atores do Sistema

Identificar os Casos de Uso do Sistema

Identificar as Associaes entre Atores e Casos de Uso

Elaborar o Diagrama de Casos de Uso

Dividir os casos de uso em pacotes se houver necessidade

Descrever os casos de uso

Verificar relacionamentos entre casos de uso: incluso,


extenso e generalizao

Coppola

Unified Modeling Language

Diagrama de Atividade
Captura comportamento dinmico
(orientado por atividades)

Propsito
Modelar fluxos de
negcios
Modelar operaes

Coppola

Unified Modeling Language

Diagrama de
Atividades
Coppola

Unified Modeling Language

Introduo
O diagrama de atividades modela aes e seus
resultados.
Seu foco est no trabalho executado na implementao
de uma operao (mtodo) e as atividades dentro de um
caso de uso ou dentro de um objeto.
Pode ser considerado uma variante do diagrama de
estados, porm com um propsito ligeiramente
diferente, que capturar aes e seus resultados em
termos de mudanas de estados dos objetos.
Coppola

Unified Modeling Language

Utilizao
Diagramas de atividades podem ser utilizados para:
capturar aes que sero realizadas quando uma
operao est em execuo (utilizao mais comum)
mostrar como um conjunto de aes relacionadas
pode ser executado e como elas afetam os objetos ao
redor
modelar uma instncia de um caso de uso em termos
das aes e das mudanas de estados
modelar aplicaes que possuem processamento
concorrente
Coppola

Unified Modeling Language

Quando no utilizar
No se deve utilizar diagramas de atividades
para:
representar como os objetos colaboram (para
isto existe o diagrama de seqncia)
representar como um objeto se comporta
atravs do tempo (para isto existe o diagrama
de estados)

Coppola

Unified Modeling Language

Aes e Transies
Uma ao executada para produzir um
resultado.
A implementao de uma operao pode
ser descrita como um conjunto de aes
relacionadas, que depois sero traduzidas
em linhas de cdigo.

Coppola

Unified Modeling Language

Notao
NewActivity

New Activity 1

Atividade

NewActivity2

Transio

NewActivity3
[x = 1]

NewActivity5

Ramificao ou Deciso

[x<>1]
NewActivity4

Coppola

Unified Modeling Language

Exemplo de diagrama de atividades


JanelaCliente.imprimirTodosOsClientes()

Apresentar caixa de
dilogo "Imprimindo"

Criar arquivo de
impresso

incio

final

Coppola

Esconder caixa
de dilogo

disparo automtico
assim que a atividade
anterior se encerrar

transio
Enviar arquivo para
a impressora

Unified Modeling Language

Deciso

As transies em um diagrama de atividades podem conter desvios, condies de guarda e clusulas de


envio associadas. Exemplo:

guarda
guarda
clusula de envio

Coppola

Unified Modeling Language

Iterao
O efeito de iterao pode ser obtido com o uso de ramificaes. Por exemplo, conforme mostra o
exemplo abaixo, pode-se utilizar estados de ao para inicializar e incrementar um contador
e uma ramificao avaliando se a iterao foi concluda.

cont = 0

cont = cont +
1
[cont <= 5]

soma = soma
+ cont

[cont > 5]
Coppola

NewActivity7

Unified Modeling Language

Exemplo Processo de Desenvolvimento de Software com Iterao


Incio

Anlise de
Requisitos
Projeto
[nova release?]

Programao

Testes

Implantao

[sistema concludo?]

Coppola

Fim

Unified Modeling Language

Incio

Avaliar Documentao de
Alunos

Processo: Matricular Alunos


Verificar Situao do Aluno
no Vestibular
Fim
[ no classificado ]
[ classificado ]

Preencher dados
do Aluno

Gerar Novo Nmero


de Matrcula

Emitir Comprovante
do Aluno

Fim

Coppola

Unified Modeling Language

Raias de Natao (swimlanes):

Este recurso muito til, principalmente na modelagem


de fluxos de trabalho de processos de negcio.

Permite o particionamento das atividades em grupos,


onde cada grupo de atividades executado ou
desempenhado por um setor, departamento ou papel da
organizao.

Cada grupo chamado de raia de natao.

Coppola

Unified Modeling Language

Exemplo de Raias

Coppola

Unified Modeling Language

Exemplo 1
Aluno

Registro Escolar

Central de Concursos

Incio

Solicitar
Matrcula
Avaliar Documentao
do Aluno
Verificar Situao de
Aluno no Vestibular

[ classificado ]

[ no classificado ]

Fim

Emitir Aviso
para Aluno

Solicitar
Formulrio

Gerar Novo Nmero


de Matrcula

Preencher
Dados

Emitir Comprovante
de Matrcula

Coppola

Fim

Unified Modeling Language

Exemplo 2

Coppola

Unified Modeling Language

Exemplo 2
(com raias)

Coppola

Unified Modeling Language

Diagramas de Classe
Captura o vocabulrio do sistema

Coppola

Unified Modeling Language

Diagrama de Classe
Construdo e refinado durante todo o processo de
desenvolvimento
Propsito
nomear e modelar conceitos dentro do sistema
especificar colaboraes
especificar esquemas lgicos de bancos de dados
Desenvolvido por analistas, projetistas e
implementadores

Coppola

Unified Modeling Language

Diagrama de Objetos
Captura instncias e ligaes (links)

Coppola

Unified Modeling Language

Diagrama de Objetos

Construdo durante as etapas de


anlise e projeto
Propsito
ilustrar a estrutura dos dados e objetos
especificar instantneos do sistema

Desenvolvido por analistas, projetistas


e implementadores
Coppola

Unified Modeling Language

Diagrama de Componentes
Captura a estrutura fsica da implementao

Coppola

Unified Modeling Language

Diagrama de Componentes
Construdo como parte da especificao
da arquitetura do sistema
Propsito:
organizar o cdigo fonte
contruir uma verso executvel da aplicao
especificar fisicamente os bancos de dados
Desenvolvido por arquitetos e programadores

Coppola

Unified Modeling Language

Diagrama de distribuio (Deployment)


Captura a topologia do hardware do sistema

Coppola

Unified Modeling Language

Diagrama de distribuio (Deployment)

Construdo como parte da especificao


da arquitetura do sistema
Propsito:
especificar a distribuio dos componentes
identificar gargalos de desempenho

Desenvolvido por arquitetos, engenheiros


de rede e engenheiros de sistema
Coppola

Unified Modeling Language

Diagramas de Seqncia
Captura comportamento dinmico (orientado por tempo)
Propsito
modelar o fluxo de controle
ilustrar cenrios tpicos

Coppola

Unified Modeling Language

Diagramas de Colaborao
Captura comportamento dinmico (orientado por mensagens)

Propsito
modelar o fluxo de controle
ilustrar a coordenao entre estrutura e controle do objeto

Coppola

Unified Modeling Language

Diagramas de Estado
Captura comportamento dinmico (orientado por eventos)

Propsito
modelar o ciclo de vida do objeto
modelar objetos reativos (interfaces, dispositivos etc.)

Coppola

Unified Modeling Language

Diagrama de Atividade
Captura comportamento dinmico
(orientado por atividades)

Propsito
Modelar fluxos de
negcios
Modelar operaes

Coppola

Unified Modeling Language

Coppola

Unified Modeling Language

Conceitos
prioritrios

Modelagem
De
Dados

Anlise
Linguagem Estruturada
X
de
Anlise
Modelagem
Orientada
Unificada
a Objetos
UML

A deciso:

UML

Qual a melhor ou pior metodologia? Qual utilizar ou no


utilizar?; Certamente no sero questes que responderemos
nesse tpico, e sim, as caracteristicas de cada metodologia,
fazendo uma comparao de cada mtodo, analisando e
proporcionando
informaes na conduo de sua
aplicabilidade
Unified Modeling Language
Coppola
em uma corporao.

Anlise Estruturada
X
Anlise Orientada a Objetos
Coppola

Unified Modeling Language

Anlise Estruturada
O mais amplamente usado dos mtodos de
modelagem de requisitos
Modelos que retratam fluxo e o contedo da
informao (dados e controle)
O sistema dividido em parties funcionais e
comportamentais e descrevemos a essncia do
que deve ser construdo
Os primeiros trabalhos datam do final da
dcada de 1960
Coppola

Unified Modeling Language

Diagrama de fluxo de dados


Um DFD uma tcnica grfica que
descreve o fluxo da informao e as
transformaes sofridas por esta
Pode ser utilizado para representar um
sistema em qualquer nvel de abstrao
Notao simples
Nenhuma indicao explicita da
seqncia fornecida pelo diagrama
Coppola

Unified Modeling Language

Exemplo de DFD

Coppola

Unified Modeling Language

Extenses
A notao bsica da anlise estruturada
sofreu uma ampliao por Ward e Mellor
para acomodar exigncias exigidas por
sistemas de tempo real
As extenses de Hatley e Pirbhai
concentram-se na representao e
especificao dos aspectos orientados ao
controle de software
Coppola

Unified Modeling Language

Modelagem comportamental
Aparece somente nas verses extendidas
Diagrama de estados Representa o comportamento de um sistema
Descreve os estados do sistema e eventos
que fazem com que mude de estado
Indica quais as aes executadas como
conseqncia de um dado evento
Coppola

Unified Modeling Language

Dicionrio de requisitos
uma listagem organizada de todos os
elementos de dados que so pertinentes
ao sistema, com definies precisas e
rigorosas, de forma que tanto o usurio
como o analista tenham uma compreenso
comum das entradas, das sadas, dos
componentes dos depsitos de dados e
at mesmo dos clculos intermedirios.
Coppola

Unified Modeling Language

Anlise Orientada a Objetos


Enxerga o mundo como objetos com
estrutura de dados e comportamentos
O objetivo desenvolver uma srie de
modelos de anlise, satisfazendo um
conjunto de requisitos definidos pelo
cliente
Coppola

Unified Modeling Language

Conceitos fundamentais

Classe
Objetos
Herana
Encapsulamento
Polimorfismo

Coppola

Unified Modeling Language

Mtodos de anlise
Uma grande variedade de mtodos de anlise
orientada a objetos foram desenvolvidos desde
1988. Porm, todos eles possuem
caractersticas comuns entre si
Representao de classes e hierarquias
Criao de modelos de relacionamento de objeto
Derivao de modelos de comportamento de objetos

Coppola

Unified Modeling Language

Caractersticas
Manutenibilidade
Simplificao do mapeamento so mundo real

Reusabilidade
Pelos artifcios de anlise

Ganhos na produtividade
Direto mapeamento pelas linguagens de
programao OO
Coppola

Unified Modeling Language

Alguns mtodos conhecidos

Mtodo de Booch
Mtodo de Jacobson
Mtodo de Rambaugh
UML (Unified Modeling Language)
Combina as notaes dos mtodos acima
Linguagem consistente para especificao,
visualizao, construo e documentao
Padro adotado pela OMG (Object Management
Group)

Coppola

Unified Modeling Language

Diferenas entre as metodologias


A abordagem OO se preocupa primeiramente
em identificar os objetos a partir do domnio da
aplicao, para depois encaixar os funes ao
redor destes objetos
os conceitos de OO podem ser aplicados em
todo o ciclo de vida do desenvolvimento do
sistema. Uma pode ser detalhada a medida que
o processo de desenvolvimento evolui
Coppola

Unified Modeling Language

Benefcios da OO
Podem representar melhor o mundo real
Modelagem mais perfeita e natural
A mesma usada desde a anlise at o
projeto e a implementao, de modo que a
informao adicionada em uma etapa do
desenvolvimento no necessariamente
perdida ou traduzida para a etapa do
seguinte
Coppola

Unified Modeling Language

Benefcios OO
Dedicao maior fase de anlise
Ocorre uma reduo na quantidade de erros
com conseqente diminuio do tempo
despendido nas etapas de codificao e teste
Os modelos espelham a estrutura e o
comportamento dos objetos do negcio,
diminuindo o abismo existente nas outras
abordagens que tratam dados e funes
separadas
Coppola

Unified Modeling Language

Benefcios OO
Reduo no tempo de manuteno, pois as
revises so mais fceis e mais rpidas j que o
problema mais bem localizado
Favorece a reutilizao
Facilidade de extenso. A criao de novos
objetos que se comuniquem com os j
existentes no obriga o desenvolvedor a
conhecer o interior destes ltimos
Coppola

Unified Modeling Language

Coppola

Unified Modeling Language

Conceitos
prioritrios

Modelagem
De
Dados

Anlise
Linguagem Estruturada
X
de
Anlise
Modelagem
Orientada
Unificada
a Objetos
UML

A deciso:

UML

Tentaremos demonstrar que a UML uma linguagem que


permite argumentar sobre o sistema, ento, certamente
ela uma metodologia poderosa em termos de ajuda,
considerando abstraes incisivas, tendo a separao
apropriada
das preocupaes e uma distribuio
balanceada
Unified Modeling Language
Coppola
de responsabilidades.

UML
Escolher o modelo certo uma questo
de entendimento de qual viso voc est
tentando abstrair.
Interpretar diagramas como respirar.
Posso olhar para um diagrama e
rapidamente saber o que est
acontecendo.
Coppola

Unified Modeling Language

UML
At o momento no h nenhuma espcie de
software complexo que no consigamos
modelar na UML.
A UML 2.0 trouxe um variedade de elementos
para a linguagem, suporte para Model-Driven
Development. No futuro, segundo Booch ser
simpificado o metamodelo e 20% ser reduzido
da UML que se aplica aos 80% dos problemas
da modelagem que as pessoas enconram em
uso real.
Coppola

Unified Modeling Language

Coppola

Unified Modeling Language

MODELAGEM DE DADOS

FIM
Coppola

Unified Modeling Language

Das könnte Ihnen auch gefallen