Vous êtes sur la page 1sur 46

Anlise e Projetos de Sistema

Prof bner Lucas

bner Lucas APS 1


Modelagem
Orientada a Objetos
[Introduo]

bner Lucas APS 2


Objetivo
| O que modelagem orientada a objetos
| Quais as vantagens de modelar
| Que conhecimentos precisam ser adquiridos para
aprender a modelar
| A sequncia em que os temas so apresentados
ao longo do curso

bner Lucas APS 3


O que ?
| Descrio diagramtica de algo a ser (ou que j
foi) implementado em linguagem de programao
Modelagem prescritiva: antes do cdigo
Modelagem descritiva: aps o cdigo
O mesmo contedo do cdigo, mas em outro formato

bner Lucas APS 4


Para que?
No seria esforo dobrado modelar e depois codificar?
No seria fazer a mesma coisa duas vezes?
| preciso compreender que as respostas para as
duas perguntas No
| Para auxiliar a concepo de uma soluo
| Exemplo das engenharias:
Todo empreendimento complexo demanda um
esforo de planejamento antes da construo
(edificaes, estradas, veculos, equipamentos
eletrnicos etc).
Ningum constri um edifcio partindo diretamente
para o assentamento de tijolos (sem planejamento
prvio)
bner Lucas APS 5
Para que?
| Exemplos das engenharias mostram que
situaes complexas exigem tratamento diferente
de situaes no complexas
Construo de um edifcio de 20 andares: necessidade
de projeto prvio
Construo de uma casa de cachorro: martelo, pregos
e mos--obra

bner Lucas APS 6


Para que?
| Software complexo exige planejamento antes da
construo
Planejamento: modelagem orientada a objetos
Construo: codificao
| Baixa complexidade: vivel codificar direto

bner Lucas APS 7


Vantagens
| Descrio mais facilmente compreensvel
Mais prxima da forma como as pessoas pensam
No natural pensar em linguagem de programao
| Proporciona diferentes pontos de vista
Descrio dos elementos que compem um programa
(estrutura)
Descrio do programa em execuo (dinmica)
Possibilidade de viso global
Possibilidade de ateno a detalhes
| Cdigo: apenas baixo nvel de abstrao
bner Lucas APS 8
O que aprender para modelar?
| 4 questes devem ser tratadas
Conhecer os conceitos referentes a modelagem
Noes fundamentais de Engenharia de Software
Paradigma de orientao a objetos
Requisitos para uma modelagem completa
Conhecer uma linguagem de modelagem
UML
Os treze diagramas de UML
Para que serve cada diagrama

bner Lucas APS 9


O que aprender para modelar?
Saber que passos seguir
Desenvolvimento: sucesso de esforos que, gradualmente
constroem uma soluo
Conhecer um caminho lgico para a construo da
especificao
Complemento do conhecimento de uma linguagem de
especificao: saber us-la
Avaliar o que for produzido
Seguir etapas no garante resultado satisfatrio
| Possibilidade de escolhas inadequadas por falta de clareza ao
longo do processo, decises ruins podem resultar em fracasso
Avaliao de consistncia
Avaliao de qualidade
bner Lucas APS 10
Compromisso de chegar ao cdigo
| Modelar um meio e no um fim
| Objetivo final um programa que compile e
execute sem erros e que cumpra os requisitos
estabelecidos
| A gerao de cdigo uma das etapas do
processo
| Cdigo gerado subsidia o aperfeioamento da
modelagem

bner Lucas APS 11


UML
[Unified Modelling Language]

bner Lucas APS 12


Objetivo
| Apresentar de forma sumria a linguagem UML
Histrico
Conjunto de diagramas
Classificao do diagramas (considerando os quatro
pontos de vista fundamentais)
Comparao entre as verses 1 e 2 da linguagem

bner Lucas APS 13


Organizao dos diagramas de UML

bner Lucas APS 14


Organizao dos diagramas de UML

bner Lucas APS 15


Organizao dos diagramas de UML

bner Lucas APS 16


MODELAGEM ESTRUTURAL
[UML]

bner Lucas APS 17


Diagrama de classes

bner Lucas APS 18


Diagrama de classes
| Classes
| Relacionamentos entre classes
Herana
Agregao
Composio
Associao
| Outros elementos (interface, dependncia etc.)

bner Lucas APS 19


Diagrama de objetos

bner Lucas APS 20


Diagrama de objetos
| Objetos e ligaes (links)
| Fotografia dos objetos em momentos
especficos da execuo
| Destaque aos objetos presentes em certos
momentos

bner Lucas APS 21


Diagrama de pacotes

bner Lucas APS 22


Diagrama de pacotes
| Pacotes e relacionamentos
| Estruturao da especificao em alto nvel de
abstrao

bner Lucas APS 23


Diagrama de componentes

bner Lucas APS 24


Diagrama de componentes
| Componentes
| Relacionamentos entre componentes
| Para modelagem de software baseado em
componentes

bner Lucas APS 25


Diagrama de utilizao (deployment)

bner Lucas APS 26


Diagrama de utilizao (deployment)
| Nodos e instncias de nodos
Recipientes de componentes e artefatos
| Ligaes entre instncias de nodos
| Para modelar a organizao de elementos de um
sistema computacional software e hardware
para uma execuo desse sistema

bner Lucas APS 27


MODELAGEM DINMICA
[UML]

bner Lucas APS 28


Diagrama de casos de uso

bner Lucas APS 29


Diagrama de casos de uso
| Casos de uso funcionalidades, situaes de
processamento
| Atores modelagem de elementos externos
Usurios
Dispositivos (hardware)
Outros softwares
| Associaes envolvendo esses elementos
| Para modelar as funcionalidades do software

bner Lucas APS 30


Diagrama de sequncia

bner Lucas APS 31


Diagrama de sequncia
| Objetos (instncias)
| Mensagens
Objetos trocam mensagens
Invocao de mtodos

| Para modelar a interao entre objetos


| Modelagem temporal sequncia

bner Lucas APS 32


Diagrama de comunicao

bner Lucas APS 33


Diagrama de comunicao
| Objetos (instncias)
| Mensagens
Objetos trocam mensagens
Invocao de mtodos
| Ligaes entre objetos (links)
| Tcnica de modelagem alternativa em relao ao
diagrama de seqncia
Sintaxe diferente
| UML 2 diagrama de sequncia tornou-se mais
expressivo que o de comunicao

bner Lucas APS 34


Diagrama de mquina de estados

bner Lucas APS 35


Diagrama de mquina de estados
| Estados
| Transies entre estados
| Outros recursos de modelagem
Estados paralelos
Guardas
Estruturao em subnveis
| Para modelar
A existncia de uma instncia
Algoritmo de mtodo
O detalhamento de caso de uso
bner Lucas APS 36
Diagrama de atividades

bner Lucas APS 37


Diagrama de atividades
| Atividades, aes (comportamento)
| Fluxos de controle
final de um comportamento, incio de outro
| Associvel a classe, mtodo, caso de uso ou
sistema
| Para modelar
Algoritmo de mtodo
O detalhamento de caso de uso
A existncia de uma instncia
Operao do sistema (software)
bner Lucas APS 38
Classificao dos diagramas

Ponto de vista Diagramas


Diagrama de classes
Modelagem Diagrama de objetos
estrutural de Diagrama de pacotes
sistema
Diagrama de estrutura composta
Diagrama de componentes
Diagrama de utilizao

bner Lucas APS 39


Classificao dos diagramas

Ponto de vista Diagramas


Modelagem Diagrama de classes
estrutural de Diagrama de objetos
classe

bner Lucas APS 40


Classificao dos diagramas
Ponto de Foco especfico Diagramas
vista
Funcionalidades do Diagrama de casos de uso
sistema Diagrama de viso geral de interao
Modelagem
dinmica de Diagrama de atividades
(se usado para refinar caso de uso ou para
sistema descrever o comportamento do sistema)
Diagrama de mquina de estados
(se usado para refinar caso de uso ou
colaborao)

Interao de Diagrama de seqncia


objetos Diagrama de comunicao
Diagrama de temporizao
bner Lucas APS 41
Classificao dos diagramas

Ponto de Foco especfico Diagramas


vista
Modelagem Modelagem de Diagrama de mquina de
dinmica de estados estados
classe Algoritmos de Diagrama de atividades
mtodos Diagrama de mquina de
estados

bner Lucas APS 42


Comparao entre as verses de
UML
UML 2 UML 1
Diagrama de classes Possui
Modelagem Diagrama de objetos Possui
estrutural Diagrama de pacotes No possui o diagrama, mas apenas
pacotes, que podem ser inseridos em
outros diagramas
Diagrama de estrutura No possui
composta
Diagrama de componentes Possui
Diagrama de utilizao Possui

bner Lucas APS 43


Comparao entre as verses de
UML
UML 2 UML 1
Diagrama de casos de uso Possui
Modelagem Diagrama de sequncia Possui
dinmica Diagrama de comunicao Possui, mas chamado de
diagrama de colaborao
Diagrama de mquina de estados Possui, mas chamado de
diagrama statechart
Diagrama de atividades Possui
Diagrama de viso geral de interao No possui
Diagrama de temporizao No possui

bner Lucas APS 44


Cabealho e moldura - diagramas
UML

bner Lucas APS 45


At a prxima aula!

bner Lucas APS 46