Você está na página 1de 45

APOO

Aula 1.7 Introduo a APOO e UML


Prof. Bruno Moreno
bruno.moreno@ifrn.edu.br
Possuir um lpis e uma rgua no
te tornam um arquiteto

2
Voc pode conhecer toda a API
Java, C++ ou qualquer LPOO.

3
Mas para criar sistemas OO de alto
nvel, voc precisa

PENSAR EM OBJETOS!
4
A/POO: Motivaes
Como as responsabilidades devem ser
atribudas classes de objetos?
Como os objetos devem interagir?
Quais classes devem fazer o que?

Essas questes so
importantes no projeto OO.

5
A/POO: Princpios
O Projeto OO (e todo projeto de SW) est
fortemente relacionado atividade de pr-
requisitos:
Anlise de requisitos.
Esta atividade inclui escrever casos de uso
Casos de uso descrevem situaes em que o
sistema ser utilizado.

6
A/POO: Princpios
A atividade de anlise de requisitos est
presente na maioria dos processos de
desenvolvimento;
No contexto dessa disciplina, utilizaremos o
Processo Unificado (PU)
Entretanto, os conceitos trabalhados aqui podero
ser utilizados no contexto de qualquer processo de
desenvolvimento
Scrum, Feature-Driven Development, Lean Development,
dentre outros.

7
Anlise OO
A anlise pode ser vista como uma
investigao dos problemas e dos requisitos;
Anlise no uma soluo, mas sim uma
tentativa de se chegar a ela.
Exemplo (sistema de vendas online):
Como o sistema ser utilizado?
Quais so as funes do sistema?

8
Anlise OO
Durante a anlise, tenta-se encontrar e
descrever os objetos, ou conceitos, do domnio
do problema;
Exemplo de conceitos para um sistema de
vendas online:
Venda, Produto, cliente, etc.;

9
Projeto OO
O projeto diz respeito a uma soluo
conceitual (que pode ser em software ou em
hardware);
Essa soluo deve satisfazer os requisitos
investigados na anlise;
Exemplo:
Descrio de um esquema de banco de dados;

10
Projeto OO
Durante o projeto OO, a nfase est na
definio dos objetos de software e como eles
colaboram para satisfazer os requisitos;
Exemplo de conceitos para um sistema de
vendas online:
O objeto de software produto pode ter um atributo
tipo de produto e um mtodo adiciona no
carrinho;

11
Faa a coisa certa e faa certo a
coisa

12
ANLISE

Faa a coisa certa e faa certo a


coisa
PROJETO

13
Exemplo
Desenvolver um jogo de dados no qual um
jogador lan dois dados. Se o total for sete,
ele vence, caso contrrio, perde.

14
Exemplo - Anlise OO
Roteiro:
Definir casos de
uso

A anlise de requisitos pode incluir diversos


mecanismos para se investigar os requisitos:
Narrativas ou cenrios como as pessoas usaro o
sistema, por exemplo;
Narrativas e cenrios podem ser escritos como
casos de uso.

15
Exemplo - Anlise OO
Roteiro:
Definir casos de
uso

Exemplo:
Jogar um jogo de dados: um jogador pede que os
dados sejam lanados. O sistema apresenta o
resultado: se a soma do valor das faces dos dados
totalizar sete, ele vence; caso contrrio, perde.

16
Exemplo - Anlise OO
Roteiro:
Definir casos de Definir modelo de
uso domnio

A anlise OO se preocupa com a criao de


uma descrio do domnio, a partir da
perspectiva de objetos;
Aqui, identifica-se os principais conceitos,
atributos e associaes.

17
Exemplo - Anlise OO
Roteiro:
Definir casos de Definir modelo de
uso domnio

O resultado dessa anlise descrito em um


modelo de domnio
O modelo de domnio descreve os conceitos (ou
objetos) do domnio para auxiliar na compreenso
do sistema em desenvolvimento;

18
Exemplo - Anlise OO
Roteiro:
Definir casos de Definir modelo de
uso domnio

Exemplo:

O modelo ilustra os
conceitos de interesse, suas
associaes e atributos;
O modelo de domnio no
uma descrio dos objetos
de software, mas sim um
modelo conceitual de
objetos;

19
Exemplo - Anlise OO
Roteiro:
Definir casos de Definir modelo de Definir diagramas
uso domnio de interao

O projeto OO se preocupa com a definio de


objetos e suas responsabilidades e
colaboraes;
Comumente se utiliza o diagrama de
sequncia em UML
Mostra o fluxo das mensagens entre objetos.

20
Exemplo - Anlise OO
Roteiro:
Definir casos de Definir modelo de Definir diagramas
uso domnio de interao

Exemplo:

21
Exemplo - Anlise OO
Roteiro:
Definir diagramas
Definir casos de Definir modelo de Definir diagramas
de classes de
uso domnio de interao
projeto

Os diagramas de interao criados na fase


anterior so diagramas que demonstram a
dinmica do sistema;
til, portanto, descrever uma viso esttica
do sistema:
Diagrama de classes de projeto (UML).

22
Exemplo - Anlise OO
Roteiro:
Definir diagramas
Definir casos de Definir modelo de Definir diagramas
de classes de
uso domnio de interao
projeto

Exemplo: no jogo de dados, uma inspeo do


diagrama de sequencia nos leva ao diagrama
de classes a seguir:

23
Exemplo - Anlise OO
Exemplo

24
UML

25
Definio
UML: Unified Markup Language (Linguagem de
Modelagem Unificada);
uma linguagem visual utilizada para
especificar, construir e documentar artefatos
dos sistemas;

26
Introduo
UML uma linguagem VISUAL!
uma notao diagramtica padro utilizada para
apresentar figuras relacionadas a um software OO;
A UML uma linguagem volumosa!
No trabalharemos com todos os conceitos da
linguagem;

27
Aplicao de UML
UML pode ser utilizada de, pelo menos, trs
modos:
UML como rascunho;
UML como planta de software;
UML como linguagem de programao.

28
Aplicao de UML
UML podem ser utilizadas de, pelo menos, trs
modos:
UML como rascunho;
UML como planta de software;
UML como linguagem de programao.

29
UML como rasunho
UML bastante utilizado informalmente;
Para tentar-se compreender partes
complexas do sistema, por exemplo;

30
Aplicao de UML
UML podem ser utilizadas de, pelo menos, trs
modos:
UML como rascunho;
UML como planta de software;
UML como linguagem de programao.

31
UML como planta de SW
UMA planta detalhada de SW em UML pode
ser utilizada tanto para (1) engenharia reversa
como para (2) engenharia avante

32
Aplicao de UML
UML podem ser utilizadas de, pelo menos, trs
modos:
UML como rascunho;
UML como planta de software;
UML como linguagem de programao.

33
UML como LP
Atualmente, ferramentas CASE permitem a
gerao de cdigo (Java, por exemplo) a partir
de diagramas UML;
Existem teorias sendo desenvolvidas para que
UML seja utilizada, de fato, como linguagem de
programao.

34
Como fazer o melhor uso de UML?

35
Melhor uso de UML
subjetivo;
Para o desenvolvimento gil de softwares,
sugere-se que UML seja utilizado em forma de
rascunho
Veremos que uma vasta documentao no o
forte de metodologias geis.
No saudvel para o desenvolvimento fazer uso
de diagramas complexos UML.

36
UML a soluo ideal para o
desenvolvimento de software?

37
Para ajudar a responder essa pergunta,
sugiro a leitura do artigo No Silver Bullet
de Frederick Brooks.

A entrega de um resumo do artigo at o


dia 28/04 as 23:59.

38
Perspectivas de aplicao
UML pode ser aplicado de acordo com trs
perspectivas:
Perspectiva conceitual;
Perspectiva de Especificao;
Perspectiva de Implementao;
Ou seja, uma mesma notao em UML pode
ser utilizada para trs perspectivas diferentes

39
Perspectivas de aplicao
UML pode ser aplicado de acordo com trs
perspectivas:
Perspectiva conceitual;
Perspectiva de Especificao;
Perspectiva de Implementao;

40
Perspectiva Conceitual
Um notao do tipo Diagrama de Classes
pode ser utilizada para representar um modelo
de domnio, por exemplo:
JogoDeDados Dado

valorDaFace

A perspectiva conceitual utilizada para descrever


coisas em uma situao do mundo real ou do
domnio de interesse.

41
Perspectivas de aplicao
UML pode ser aplicado de acordo com trs
perspectivas:
Perspectiva conceitual;
Perspectiva de Especificao;
Perspectiva de Implementao;

42
Perspectiva de Especificao
A mesma notao de Diagrama de Classes
pode ser utilizada para descrever elementos do
software:
JogoDeDados Dado
dado1: Dado valorDaFace: int
dado2: Dado obterValorDaFace():
jogar() int lancar()

Essa perspectiva no se compromete com uma


linguagem em especfico.

43
Perspectivas de aplicao
UML pode ser aplicado de acordo com trs
perspectivas:
Perspectiva conceitual;
Perspectiva de Especificao;
Perspectiva de Implementao;

44
Perspectiva de Implementao
Neste caso, os diagramas representam
implementaes de software em uma
tecnologia particular
Java, por exemplo.

45

Você também pode gostar