Você está na página 1de 61

ELEMENTOS DE PROGRAMAÇÃO

EDIÇÃO Nº 1 - 2007

LAÉRCIO DA CRUZ LOUREIRO


___________________________________________________________________
Apoio Gestão e Execução Conteúdo e Tecnologia
Elementos de Programação 2

SUMÁRIO

AULA 1 - MANIPULAÇÃO DE ARRAYS....................................................................9


AULA 2 - TRABALHANDO COM REGISTROS........................................................21
AULA 3 - PROGRAMAÇÃO ORIENTADA A OBJETOS..........................................30
AULA 4 - INTRODUÇÃO A UML...............................................................................42

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 3

Apresentação

Este livro didático contém a disciplina de Elementos de Programação.

O material apresenta aos alunos do EAD um passo adiante na construção de

programas para computador. Você será submetido a um novo desafio: obter os

conhecimentos mais atuais para o desenvolvimento de sistemas e principalmente

ampliar o grande número de informações para um bom desempenho como

programador.

Você poderá concluir que atualmente a atividade de programar computadores

é uma tarefa ampla, através de uma abordagem cada vez mais multidisciplinar e

exigindo do profissional uma visão cada vez mais integrada de todos os elementos

envolvidos.

O principal objetivo deste curso é você obter esta “visão ampla” (alguns

autores referem-se à visão holística). Serão apresentados aspectos importantes que

farão uma composição estruturada para uma programação mais poderosa.

É importante ressaltar que o livro foi desenvolvido com o objetivo de oferecer

um aprendizado independente, que está inerente aos estudos do EAD, e o conteúdo

foi revisado com o intuito de oferecer uma linguagem simples, objetiva e estimulante.

Lembre-se que a sua passagem por esta disciplina será também

acompanhada pelo Sistema de Ensino Tupy Virtual, seja por correio postal, fax,

telefone, e-mail ou Ambiente Virtual de Aprendizagem.

Sempre entre em contato conosco quando surgir alguma dúvida ou

dificuldade.

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 4

Toda a equipe terá a maior alegria em atendê-lo, pois a sua aquisição de

conhecimento nessa jornada é o nosso maior objetivo.

Acredite no seu sucesso e bons momentos de estudo!

Equipe Tupy Virtual.

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 5

Carta do Professor

“A programação de computadores é divertida. Algumas vezes a


programação é uma ciência elegante. Ela também é sobre a
construção e o uso de novas ferramentas de software. A
programação também é sobre pessoas: qual o problema que
realmente o meu cliente espera que eu resolva? Como eu
posso fazer isso mais fácil, para que os usuários se
comuniquem com o meu programa? A programação também me
leva a aprender tópicos desde a química orgânica até as
campanhas de Napoleão.”
(Bentley, 1988)

Caro aluno,

É com esta mensagem que eu desejo iniciar este novo módulo. Você estar
aqui, significa que já superou os primeiros passos na programação de computadores
e concluiu que não é tão complexa como os “outros” comentavam. Na verdade,
assim como outras atividades em nossa vida, a programação de computadores
tornou-se uma ciência “elegante”, ou seja, possui uma maturidade que nos favorece
aprender e criar soluções poderosas.
Nas primeiras duas aulas deste curso, faremos um avanço na lógica de
programação, aprendendo a trabalhar com arrays e também sobre registros. Esses
dois assuntos ampliam a forma como trabalhamos com variáveis em nossos
programas e permite soluções específicas para problemas estruturados mais
complexos. A terceira aula é que possui uma característica especial: você terá o
primeiro contato com uma nova abordagem na construção de programas, a
programação orientada a objetos. Esse assunto recebe uma “aura” de grande
importância diante dos desafios atuais, mas amplifica as preocupações dos
iniciantes em programação, já que fornece um novo enfoque na interpretação e
construção de programas.

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 6

Na aula seguinte, vamos conhecer como representar os programas


orientados a objetos, usando uma notação específica chamada UML (Unified
Modeling Language, ou Linguagem Unificada de Modelagem). Assim como vimos a
representação de programas em pseudocódigo ou fluxogramas, agora vamos
aprender representações gráficas que apóiam a modelagem de programas
orientados a objetos, bem como, em várias outras atividades associadas ao
desenvolvimento de sistemas.
Finalmente, na última aula vamos conhecer os componentes na criação de
programas para interfaces gráficas com o usuário (ou GUI - Graphic User Interface).
As interfaces gráficas referem-se à forma como os usuários interagem com os
sistemas operacionais, como Macintosh da Apple sendo o primeiro a implementar de
forma mais popular, através do MacOS, e depois acompanhado dos sistemas
operacionais Windows, Linux e Unix (pelo menos na forma popular que conhecemos
hoje as interfaces gráficas). Veremos as exigências de conhecimento para esse tipo
de programação e falaremos mais sobre as ferramentas atuais na construção de
programas, baseadas em Ambiente de Desenvolvimento de Interfaces (IDE –
Interface Development Environment).
É isso! Sinta-se desafiado.
Espero que eu possa ajudar em mais esta etapa de seu conhecimento e
mantenha-se motivado a continuar seus estudos, pois agora a aventura fica mais
instigante.

Bom estudo!

Professor Laércio da Cruz Loureiro

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 7

Cronograma de Estudo
Acompanhe no cronograma abaixo os conteúdos das aulas, e atualize as

possíveis datas de realização de aprendizagem e avaliações.

Semana Carga horária Aula Data / Avaliação


1 4 Trabalhando com Arrays _/_ a _/_

4 Trabalhando com Registros _/_ a _/_

8 Programação Orientada a _/_ a _/_


Objetos

2 8 Programação Orientada a _/_ a _/_


Objetos (cont.)

16 Introdução à UML _/_ a _/_

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 8

Plano de Estudos

Ementa
Continuidade do curso de Lógica de Programação. Arrays, vetores e matrizes.
Trabalhar com registros. Programação orientada a objetos, aspectos iniciais e
elementos fundamentais. Introdução à UML e representação gráfica de soluções
baseadas em objetos. Programação Visual e componentes gráficos para a
construção de sistemas.

Objetivos da Disciplina

• Geral
Continuar os conhecimentos sobre lógica de programação;
Compreender as bases da programação orientada a objetos;
Obter uma visão geral sobre a notação UML;
Conhecer o processo e os componentes na programação visual de sistemas
• Específicos
Aprender como trabalhar com estruturas de programação, com parte das
soluções baseadas em programação estruturada;
Conhecer os elementos principais do desenvolvimento de sistemas orientados
a objetos, principalmente no que se refere às formas diferentes para a
composição de soluções baseadas em computador;
Entender e conhecer como um programa orientado a objeto emprega os
elementos programação e quais seus benefícios em relação à programação
estruturada;
Aprender os componentes básicos para a modelagem de sistemas usando a
UML.
.

Carga Horária: 40 horas.

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 9

Aula 1

MANIPULAÇÃO DE ARRAYS

Objetivos da aula

Ao final desta aula, você deverá ser capaz de:

• Construir algoritmos mais complexos usando arrays;


• Implementar arrays unidimensionais (vetores) e arrays
multidimensionais (matrizes);
• Utilizar estruturas de dados nos algoritmos.

Conteúdos da aula

Acompanhe os assuntos desta aula, se preferir, ao terminar,


assinale o conteúdo já estudado.
 Introdução às estruturas de dados
 Arrays
 Arrays Multidimensionais
 Aplicação prática usando array

Prezado(a) aluno(a), seja bem-vindo(a) a nossa


primeira aula. Conheça agora novas soluções para
problemas complexos, que deverão ser consideradas
em seus algoritmos. Você verá que array é um recurso poderoso e
imprescindível em várias aplicações computacionais. Este é o
primeiro passo no uso de estruturas de dados.
Boa Aula!

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 10

1 INTRODUÇÃO ÀS ESTRUTURAS DE DADOS

Você já aprendeu que é comum na programação de computadores,


trabalharmos com variáveis na memória. Você também deve recordar que o objetivo
de trabalhar com variáveis é representar informações armazenadas na memória
para uso posterior. Isso significa que será comum a necessidade de trabalhar com
variáveis em seus programas, com o objetivo de armazenar dados a partir dos
algoritmos construídos.
Vamos lembrar a regra de pseudocódigo para a criação e manipulação de
variáveis, conforme mostra a figura 1.

Figura 1 – Regra do pseudocódigo para criação e manipulação de variáveis

Mas uma variável pode armazenar apenas um valor por vez, e haverá casos
que você precisará armazenar um grande volume de dados na memória. Nesse
cenário, o volume de trabalho e as dificuldades para manipular um grande volume
de dados, apenas com variáveis, é uma atividade que exigirá um esforço e uma
lógica que dificultaria ainda mais o seu trabalho.
Por exemplo, considere que você precisa trabalhar com uma lista de cinco
funcionários da empresa, o pseudocódigo usando variáveis seria:

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 11

Imagine se a lista de funcionários fosse referente à quantidade de 100


pessoas, você iria ter um trabalho exagerado para declarar e atribuir dados para as
variáveis e depois seria no mínimo trabalhoso utilizá-las.
Então, com a finalidade de organizar a memória do computador e responder ao
desafio acima, você pode utilizar uma nova forma de representação de dados na
memória, as chamadas estruturas de dados. Estrutura de dados é apenas um
termo técnico, que se refere a um armazenamento de dados mais eficiente no
algoritmo construído (http://en.wikipedia.org/wiki/Data_structures, acessado em
26/04/2007). Usando as linguagens de programação e os tipos de dados especiais
aplicados às variáveis, poderemos obter todo o potencial dessa técnica de
desenvolvimento de programas.
Os arrays também são conhecidos, na teoria de estrutura de dados, como
variáveis compostas homogêneas.

2 ARRAYS

Array é uma estrutura de dados que representa uma variável em memória, que
será composta de um conjunto de elementos do mesmo tipo e representada por um
único nome.
Para representar um array em pseudocódigo, a linha de comando é a seguinte:

variavel [tipo de dados] [nome] [dimensão]

Repare que a declaração de uma variável agora recebe mais um componente:


dimensão. Esse componente refere-se ao número de elementos necessários no
array para a individualização de cada informação dentro da estrutura de dados.
A título de exemplo, veja, na figura 2, a declaração de array em pseudocódigo:

variavel real NotasBimestrais [3]

Sendo:

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 12

Figura 2 – Detalhes sobre a declaração de um array

Nesse exemplo, poderão ser armazenadas quatro informações na mesma


variável. Agora passe para a seção seguinte e vamos explorar em mais detalhes o
uso dessa técnica.

2.1 TRABALHANDO COM ARRAYS

Implementar arrays em programação de computadores, segue as mesmas


orientações para trabalhar com variáveis, adicionando-se apenas as dimensões
envolvidas na operação que está sendo realizada.
São três operações comuns no uso de arrays: criar um array, armazenar
informações em um elemento do array e recuperar informação de um elemento
desejado.
Como já vimos na seção “O que é um array”, para criar um array em
pseudocódigo, utilize a seguinte declaração:

variavel [tipo de dados] [nome] [dimensão]

Vamos agora, olhando a figura 3, avaliar como fica a representação de um


exemplo e a estrutura armazenada na memória.

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 13

Figura 3 – Representação de um array armazenado na memória

Cada área de memória poderá armazenar informações mantendo-se o mesmo


tipo de dados. O armazenamento das informações é realizado através da seguinte
declaração (em pseudocódigo):

variavel [dimensão]  valor/informação

Então, o pseudocódigo de exemplo e a representação na memória:


NotasBimestrais[0]  7,5
NotasBimestrais[1]  8

NotasBimestrais[2]  6,5

NotasBimestrais[3]  7

Figura 4 – Representação de um array na memória com dados armazenados

Repare na figura 4, que cada dimensão é representada pelo nome da variável


e o índice da dimensão do array que se deseja armazenar a informação. Na
memória, as informações ficam armazenadas em áreas de memória reservadas e
associadas ao array. Finalmente, para recuperar a informação de um elemento
do array, você pode utilizar a seguinte representação que, neste caso, escreverá o
conteúdo do elemento do array:

ESCREVER variavel [dimensão]

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 14

2.2 TAMANHO DE UM ARRAY

Repare que no exemplo de array apresentado na seção 2.1, o número de


elementos na dimensão informado foi 3. Isso significa que o array possui QUATRO
elementos, considerando que o índice inicia em zero.
Essa informação é extremamente importante para o seu entendimento sobre o
uso de arrays, pois existem diferenças em algumas linguagens de programação de
mercado. Por exemplo, a declaração de um array em Pascal ou em Visual Basic 6.0
define que o índice de dimensões inicia em 1. Já as linguagens mais atuais como o
Java da fabricante Sun e o C# (fala-se “cê chárp”) da Microsoft, incluindo a nova
versão do Visual Basic para a nova plataforma de desenvolvimento chamada .NET
(alguns autores falam “ponto nét” outros falam “dote nét”), iniciam o índice de
dimensões em 0. Neste módulo estamos utilizando o padrão das linguagens mais
atuais, com o índice iniciando em 0 (zero).
Como conclusão, é importante você entender que o último número de um array
N, será sempre N-1, ou seja, se for necessário um array de 10 elementos, a
declaração do array deverá ser 9 (0 a 9 fornecerá 10 elementos).

2.3 ARRAYS UNIDIMENSIONAIS – VETORES

Você reparou que, até o momento, foram apresentados os conceitos e


exemplos de arrays usando apenas uma dimensão, ou seja, representamos apenas
um valor entre os colchetes da declaração do array (por exemplo, [2]).
Esse tipo de array é chamado array unidimensional, também conhecido como
vetor.
Podemos então definir que um VETOR é uma estrutura de dados representada
por um array com uma única dimensão, ou seja, um conjunto de informações
organizado em uma simples coluna ou linha (Microsoft Computer Dicionary, 2002).
É possível aprimorarmos ainda mais a técnica de manipulação de informações
nos algoritmos, usando várias dimensões. Esse é o nosso próximo assunto.

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 15

3 ARRAYS MULTIDIMENSIONAIS

Até agora vimos como trabalhar com um grande volume de dados usando
arrays unidimensionais (ou vetores). Mas em alguns casos, apenas uma dimensão
não é suficiente para representar adequadamente a informação no algoritmo. Além
disso, é comum desejarmos associar as informações para a comparação de dados.
Veja o exemplo que podemos ter (tabela 1):

Tabela 1 – Associação de informações para comparação de dados


Vendas Janeiro Vendas Fevereiro
$ 1.000,00 $ 1.100,00
$ 2.500,00 $ 2.200,00

Diante dessa tabela, podemos armazenar as informações em um array


multidimensional, chamado de matriz, considerando sua abordagem baseada no
mesmo conceito matemático de matrizes.

3.1 TRABALHANDO COM ARRAYS MULTIDIMENSIONAIS

A única diferença na declaração de um array multidimensional é a agregação


de mais um elemento no comando, conforme o comando abaixo em pseudocódigo.

variavel [tipo de dados] [nome] [dimensão1 dimensão2 dimensãoN]

Então, podemos declarar um array multidimensional para suportar a tabela de


vendas exemplo nesta seção usando o seguinte comando:
variavel real Vendas[2,2]

Depois vamos armazenar os dados através dos seguintes comandos:


Vendas[1,1]  1000,00

Vendas[1,2]  2500,00

Vendas[2,1]  1100,00

Vendas[2,2]  2200,00

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 16

Na memória, o armazenamento se dará da seguinte forma (figura 5):

Figura 5 – Representação de exemplo de array multidimensional

4 APLICAÇÃO PRÁTICA USANDO ARRAY

Vamos considerar agora uma abordagem prática no uso de arrays, com a


ferramenta Portugol.

4.1 PROBLEMA

Dado um conjunto de 10 idades, calcule e forneça os seguintes resultados:


• Média das idades informadas;
• Quantidade de pessoas acima da média calculada;
• Quantidade de pessoas abaixo da média calculada.

4.2 SOLUÇÃO

O número total de entradas que serão fornecidas é informado no problema (10


idades), portanto a lógica para a leitura de dados deverá ser controlada por um
contador. Vamos utilizar um laço de repetição com contador automático.
Para calcular a média, será necessário receber todas as idades. Depois vamos
comparar cada entrada de idade usando um vetor de 10 elementos. Vamos utilizar
dois laços de repetição: um para leitura e soma das idades e o outro para a
comparação de cada valor armazenado no vetor com a média calculada.

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 17

4.3 PROCEDIMENTO

1. Executar o software Portugol;


2. Apague a linha “escrever "PORTUGOL IDE 6-12-2006"”;
3. Digite o seguinte comentário:
//Lê o valor das 10 idades, calcula e fornece a média das

//idades a quantidade de pessoas acima e abaixo da média

4. Declare as variáveis:
variavel inteiro idades [ 10 ] , contar , total , acima , abaixo

variavel real media


5. Inicialize as variáveis
total <- 0

acima <- 0

abaixo <- 0

6. Vamos agora declarar o laço de repetição para obter as idades:


para contar de 0 ate 9 passo 1

ler idades [ contar ]

total <- total + idades [ contar ]

proximo
7. Após receber a entrada de todas as idades, vamos obter a média das
idades. Insira o seguinte pseudocódigo:
// Calculando a média

média <- total / 10


8. Vamos agora implementar o laço de repetição para separar as idades
informadas abaixo e acima da média calculada:
para contar de 0 até 10 passo 1

se idades[contar] > média então

acima <- acima + 1

fimse

se idades[contar] < média então

abaixo <- abaixo + 1

fimse

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 18

proximo
9. Finalmente, vamos apresentar os resultados usando os seguintes
comandos:
escrever "Total das Idades: ", total, "\n"

escrever "Média das Idades: ", média, "\n"

escrever "Total das Idades Acima: ", acima, "\n"

escrever "Total das Idades Abaixo: ", abaixo, "\n"


10. Execute o pseudocódigo usando o comando Executar do menu Algoritmo;
11. Informe as idades e veja o resutlado do programa (figura 6)

Figura 6 – Janela do Portugol solicitando dados

12. O código final do programa deverá se apresentar conforme abaixo:


inicio

//Lê o valor das 10 idades, calcula e fornece a média das idades

//a quantidade de pessoas acima e abaixo da média

variavel inteiro idades [ 10 ] , contar , total , acima , abaixo

variavel real media

total <- 0

acima <- 0

abaixo <- 0

para contar de 0 ate 9 passo 1

ler idades [ contar ]

total <- total + idades [ contar ]

proximo

// Calculando a média

média <- total / 10

// Agora vamos separar as idades informadas que estão abaixo

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 19

// e acima da média para contar de 0 até 10 passo 1

se idades[contar] > média então

acima <- acima + 1

fimse

se idades[contar] < média então

abaixo <- abaixo + 1

fimse

proximo

escrever "Total das Idades: ", total, "\n"

escrever "Média das Idades: ", média, "\n"

escrever "Total das Idades Acima: ", acima, "\n"

escrever "Total das Idades Abaixo: ", abaixo, "\n"

fim

SÍNTESE

Nesta aula realizamos o primeiro passo para o desenvolvimento de soluções


mais complexas. O uso de arrays é uma abordagem muito comum, principalmente
em soluções que exigem o tratamento de um grande volume de informações, apesar
de que também é comum seu uso em pequenas soluções.
Veja que o array estende as capacidades de manipulação de dados na
linguagem e uso, e sua utilização facilita no tratamento de informações de forma
estruturada.
O conhecimento em estruturas mais complexas apenas começou.
Vamos em frente!

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 20

EXERCÍCIOS PROPOSTOS

1) Defina vetor e exemplifique.

___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
_______________

2) Qual a vantagem em utilizarmos um array multidimensional?

___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
_______________

3) Apresente exemplos de declaração para um vetor e de uma matriz.

___________________________________________________________________
___________________________________________________________________
_______________

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 21

Aula 2

TRABALHANDO COM REGISTROS

Objetivos da aula

Ao final desta aula, você deverá ser capaz de:


• Utilizar registros, identificando as suas vantagens;
• Construir algoritmos utilizando-se da manipulação de registros;
• Diferenciar array de registro.

Conteúdos da aula

Acompanhe os assuntos desta aula, se preferir, ao


terminar, assinale o conteúdo já estudado.
 Variáveis compostas heterogêneas
 Aplicação prática usando registros

Prezado(a) aluno(a), nesta aula você terá o primeiro


contato na forma de armazenamento mais comum
dos dados em um computador. Normalmente
desejamos armazenar um conjunto de informações para depois
utilizá-las das mais variadas formas. Vimos na aula anterior, que
um array nos permite trabalhar com um grande conjunto de dados,
mas ele é limitado a um único tipo de dados. Já um registro, amplia
a abordagem do array, permitindo que seus elementos possam
armazenar tipos de dados diferentes. É uma construção simples e
extremamente poderosa.
“Mãos à obra” e boa Aula!

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 22

1 VARIÁVEIS COMPOSTAS HETEROGÊNEAS

Como vimos na aula anterior, um array pode armazenar dados com os mesmos
tipos (por exemplo: tipos numéricos ou texto), em uma forma de matriz, mas há
necessidade de armazenamento de informações, usando a mesma abordagem de
um array, com tipos de dados diferentes. A construção de uma estrutura de dados,
na forma de matriz, que permite o armazenamento de diferentes tipos de dados em
seus elementos é conhecida como variável composta heterogênea.
É importante ressaltar que esse tipo de estrutura de dados também é
conhecido como “registro” e cada um de seus elementos são chamados de
“campos”. Esse tipo de abordagem busca associar à composição de um registro de
informações, por exemplo: um cadastro de clientes. A figura 7 mostra os campos
para que sejam registradas informações sobre um cliente.

Cadastro de Clientes

Nome

Endereço

Bairro Campos
Cidade

Estado

Idade

Salvar Cancelar

Figura 7 – Exemplo de campos para registro de informações

A representação na memória de um registro você pode visualizar na figura 8.

Figura 8 – Representação de registro na memória

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 23

1.1 REPRESENTAÇÃO DE UM REGISTRO EM PSEUDOCÓDIGO

Para criar um registro, utilizamos um nome e um conjunto de variáveis,


especificando o tipo de cada variável.
Vamos avaliar a instrução de pseudocódigo abaixo:
[nome do registro]: REGISTRO

[campo 1] [tipo de dados]

[campo 2] [tipo de dados]

[campo n] [tipo de dados]

FIM REGISTRO

Agora vamos entender cada componente do pseudocódigo (figura 9),


utilizando como exemplo o Cadastro de Clientes que foi apresentado.

Figura 9 – Componentes do pseudocódigo de um registro

1.2 MANIPULAÇÃO DE REGISTROS

Quando criamos um registro, na memória há uma área de armazenamento, na


forma de matriz, cujo elemento corresponde a um “campo” do registro. Cada campo

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 24

pode conter tipos de dados diferentes. No exemplo de Cadastro de Clientes, que


estamos utilizando, visualizemos a figura 10, para entender como a informação é
armazenada na memória.

Figura 10 – Exemplo de um conjunto de registros

Observe que, a cada registro armazenado na memória (ou linha de informação)


corresponde um conjunto de dados que estão associados e participam de uma
estrutura maior de dados.
Outro aspecto fundamental a ser observado é que a estrutura de dados
armazena as informações como uma matriz. Por isso, cada linha possui uma
referência numérica na memória, para que possamos encontrar as informações
armazenadas.
Em pseudocódigo, para determinarmos o número de registros do conjunto de
dados e criarmos uma “matriz de registros”, utilizamos a seguinte instrução:

[nome do registro]: [nome da matriz] [dimensões]

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 25

A instrução acima precisa ser informada logo após a construção do registro.


Para recuperar uma informação de determinado campo de um registro em
pseudocódigo, você deve utilizar a seguinte instrução:
IDENTIFICADOR[índice].Campo

“Identificador” é o nome utilizado para a criação do registro, entre colchetes o


índice ou linha correspondente, seguido do sinal ponto (.) e, finalmente, o nome do
campo que se deseja utilizar. Veja um exemplo na figura 11:

Figura11 – Como obter informações de um registro

Para armazenar uma informação em um registro, em pseudocódigo você deve


utilizar a seguinte instrução:

IDENTIFICADOR[índice].Campo  [Valor]

2 APLICAÇÃO PRÁTICA USANDO REGISTROS

Usando os conceitos apresentados nessa aula, vamos realizar uma abordagem


prática na construção e manipulação de registros, através de pseudocódigo.
Infelizmente, a ferramenta Portugol, bem como as demais ferramentas conhecidas

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 26

como Interpretador de Linguagem Algorítmica (ILA), não suportam variáveis


compostas heterogêneas. Por isso, neste módulo vamos construir o nosso
pseudocódigo usando o bloco de notas (ou um editor de textos de sua preferência).

2.1 PROBLEMA

Dado um conjunto de 40 registros contendo informações de alunos, calcular a


média e a situação desses alunos. O algoritmo deverá exibir uma lista dos alunos
contendo a média e a situação.

2.2 SOLUÇÃO

O número total de entradas que serão fornecidas é informado no problema (10


idades), portanto, a lógica para a leitura de dados deverá ser controlada por um
contador. Vamos utilizar um laço de repetição com contador automático.
Para obter a média e a situação dos alunos, primeiramente vamos obter as
informações usando a entrada de dados pelo usuário.

2.3 PROCEDIMENTO

13. Executar o Bloco de Notas;


14. Digite a abertura e fechamento do pseudocódigo:
Inicio

Fim

15. Abaixo da instrução Início, vamos declarar as variáveis:


Inicio

Reg_Alunos: REGISTRO

Texto Nome, Situacao

Real Nota1, Nota2, Nota3, Nota4, Media

Inteiro Faltas, Contador

FIM REGISTRO

Fim

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 27

16. Agora vamos declarar a quantidade de registros que serão armazenados na


estrutura de dados. Informe a instrução abaixo do texto “Fim Registro”.
Reg_Alunos:aluno[40]

17. Vamos obter as informações do usuário:


Para Contador de 0 até 39 passo

Ler Aluno[Contador].Nome

Ler Aluno[Contador].Nota1

Ler Aluno[Contador].Nota2

Ler Aluno[Contador].Nota3

Ler Aluno[Contador].Nota4
Ler Aluno[Contador].Faltas
Próximo
18. Agora vamos realizar os cálculos necessários.
Insira as instruções acima da palavra “Próximo” no laço anterior (Item 5),
considerando que vamos efetuar o cálculo a cada entrada de dados.
Aluno[Contador].Media  (Nota1+Nota2+Nota3+Nota4)/4
SE Aluno[Contador].Media >= 7 E Aluno[Contador].Faltas <= 10 ENTÃO
Aluno[Contador].Situacao  “Aprovado”
Senão
Aluno[Contador].Situacao  “Reprovado”
FIMSE
19. Agora vamos imprimir a lista de alunos:
Contador  0
Para Contador 0 até 39 passo
Escrever “\nAluno: “,Aluno[Contador].Nome, 
Aluno[Contador].Media, Aluno[Contador].Situacao
Próximo
20. Observe que, na instrução “Escrever”, há um texto a ser apresentado na
tela com a seguinte composição: “\nAluno: “. Os caracteres \n, no texto,
serão interpretados como uma quebra de linha, ou seja, antes de
apresentar na tela a informação, será realizada uma quebra de linha.
Também observe que a instrução não cabe no leiaute da apostila, por isso o
símbolo , ao final da primeira linha da instrução “Escrever”, significando
que é uma linha contínua.

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 28

SÍNTESE

O conceito de variáveis compostas é um instrumento de grande importância


na programação de computadores. Primeiro, porque o uso permite realizar um
conjunto de tarefas de forma rápida e organizada; segundo, porque permite o
armazenamento de informações de diferentes tipos de dados.
Variável composta é, na verdade, uma ampliação das capacidades de um
array, este permite o armazenamento de informações apenas do mesmo tipo; aquela
(variável composta ou registro) permite o armazenamento de informações com tipos
de dados diferentes. Como o processamento das informações é realizado na
memória RAM do computador, sua utilização permite um nível de resposta de
processamento altamente performático.
Ficamos aqui com o final dos tópicos relacionados à programação
estruturada.
Prepare-se que, na próxima aula, você terá contato com uma nova
abordagem de programação, muito poderosa e é uma resposta para as
complexidades atuais dos negócios.
Fique firme na obtenção desse conhecimento e nos encontramos na próxima
aula. Até lá.

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 29

EXERCÍCIOS PROPOSTOS

1) Apresente quatro exemplos de aplicação de variáveis compostas.

___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
_______________

2) Você é responsável pela construção de um sistema para o gerenciamento de


veículos em um estacionamento. Crie um registro para o armazenamento dos
dados de cadastro de veículos.

___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
_______________

3) Crie um registro que armazene informações de dados pessoais de uma pessoa.


Os dados deverão ser: nome, endereço, bairro, cidade, estado e CPF.

___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
_______________

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 30

Aula 3

PROGRAMAÇÃO ORIENTADA A
OBJETOS

Objetivos da aula

Ao final desta aula, você deverá ser capaz de:


• Mostrar diferenças entre a programação estruturada e a
• programação orientada a objetos;
• Compreender os motivos que formam a necessidade da adoção
• da programação orientada a objetos;
• Conceituar programação orientada a objetos.

Conteúdos da aula

Acompanhe os assuntos desta aula, se preferir, ao


termino, assinale o conteúdo já estudado.
 O que é a programação orientada a objetos?
 O desafio da OOP
 A história da OOP
 Terminologia
 Vantagens e Desvantagens

Prezado(a) aluno(a),
É com grande satisfação que lhe dou boas-vindas a
um assunto tão instigante: a programação orientada a objetos.
Procuraremos, nessa aula, oferecer-lhe uma visão geral do método
de programação e buscaremos fazer com que perceba as vantagens
de sua adoção. Espero que você se sinta motivado a absorver estes
assuntos tão relevantes para suas atividades como profissional.
Novamente, bem-vindo(a) e bons estudos.

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 31

1 O QUE É A PROGRAMAÇÃO ORIENTADA A OBJETOS

1.1 A PROGRAMAÇÃO ESTRUTURADA E OS NOVOS DESAFIOS EM


DESENVOLVER SISTEMAS

Como você deve lembrar, a “arte” de programar computadores é basicamente


resolver problemas. Em essência, a principal função do programador é interpretar
adequadamente um problema e apresentar uma solução, usando um método que
possa ser entendido pelo “cliente” que lhe trouxe o problema, bem como pelo
computador. Nesse sentido, vimos que existem duas formas de representação de
um programa de computador:
• O fluxograma, que serve tanto para melhor entendimento do problema junto
ao cliente, como para suportar a lógica na construção do programa;
• O pseudocódigo, para auxiliar na especificação do programa para o
programador, com uma abordagem usando uma “linguagem comum”.
O método a que nos referimos até o momento é baseado em uma abordagem
chamada “programação estruturada”, que decompõe o problema em partes lógicas e
estabelece um conjunto de instruções a serem executadas como solução. As duas
grandes vantagens desse modelo são:
• Maior facilidade na manutenção do programa;
• Capacidade em localizar problemas e resolvê-los de maneira mais simples.
À medida que o programador desenvolve a solução, um grande número de
“pedaços” de programas é construído e integrado, exigindo controle dos algoritmos e
suas interdependências. Outro problema desse modelo de programação é a
dificuldade na reutilização de rotinas, produzindo o que os autores chamam de
“código espaguete”, as interdependências entre os programas geram um constante
Início e Fim, em uma seqüência procedimental cheia de desvios, laços e elementos
condicionais. É comum, em caso de alteração de uma instrução, acarretar mudanças
em todos os pontos onde a instrução é utilizada, gerando uma cascata de
alterações.
Devemos então, considerar quatro aspectos dificultadores no uso da
programação estruturada:

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 32

1. Os programas não possuem a capacidade de ser alterados sem a


necessidade de abrir o código-fonte, ou seja, os programas não são
extensíveis;
2. Um programa não pode se basear em outro programa, gerando, na maioria
dos casos, construções condicionais em ambos ou até a repetição das linhas
de programação. Algumas linguagens mais atuais fornecem alternativas para
resolver esse problema;
3. Com o aumento do tamanho e da complexidade das aplicações, há
necessidade constante de otimização do processo de desenvolvimento de
sistemas e as respostas da programação estruturada para os desafios atuais
não são mais suficientes;
4. Com o advento do desenvolvimento de sistemas gráficos e também para a
Internet, a abordagem do desenvolvimento estruturado não resolve mais os
desafios que as tecnologias atuais impõem, exigindo uma nova forma de
pensamento e interpretação dos problemas.

1.2 A PROGRAMAÇÃO ORIENTADA A OBJETOS

É nesse contexto que o método de “programação orientada a objetos” se


apresenta: como uma evolução para os desafios atuais no desenvolvimento de
sistemas, oferecendo um arcabouço fundamental para uma nova abordagem de
soluções computacionais aos problemas.
A expressão “Programação orientada a objetos” pode ser substituída pelo
acrônimo POO, ou o que é mais comum, usando o acrônimo em inglês – OOP
(Object Oriented Programming), modo como vamos tratá-la daqui por diante.
A novidade da OOP está principalmente na reutilização de programas e em
uma modularização mais suscetível às dinâmicas que as regras de negócio exigem
na atualidade.
A OOP introduz uma abordagem na qual o programador interpreta o problema
e concebe o seu programa como uma coleção de objetos interdependentes, ao invés
de procedimentos e funções, cujos objetos se comunicam por mensagens. Cada um
dos objetos é uma derivação de uma classe e todas as classes formam uma
hierarquia no sistema. Uma classe é apenas um modelo de objeto.

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 33

O objetivo principal dessa nova abordagem, no desenvolvimento de sistemas,


está na busca de uma forma mais clara para interpretar problemas, abstraindo-lhe a
solução.
Veja que todo problema submetido à construção de um sistema envolve uma
série de elementos, por exemplo: equipamentos, veículos e notas fiscais. Esses
elementos podem ser representados como objetos cujos atributos podem ser: cor do
equipamento, tamanho do veículo e data de emissão da nota fiscal. Desta forma, as
rotinas serão representadas e implementadas através de classes, ao invés de
desenvolver um procedimento para cada uma.
Para facilitar ainda esta explicação, vamos considerar o exemplo de registro
utilizado na aula passada. O registro de clientes possui uma série de campos, e
podemos ter um conjunto de registros de clientes armazenados. Usando a OOP, o
registro Clientes seria uma Classe, um cliente seria um Objeto e os campos do
registro seriam os Atributos da classe.

2 O DESAFIO DA OOP

Como você pôde perceber, há uma nova forma de trabalhar com a


programação de sistemas usando o método de orientação a objetos. Na verdade,
hoje, a adoção desse método ainda está longe do que poderia ser aplicado na
programação de computadores.
Vários dificultadores acabaram criando certa resistência na adoção da OOP.
Vamos conhecer alguns deles nesta seção.
A programação de computadores ainda é tratada como algo que é de difícil
entendimento e de grande complexidade, o método de programação estruturada
acabou sendo absorvido ao longo dos anos de estudo e construção de programas,
por parte dos programadores. Isso acabou criando uma grande geração de
profissionais que nasceram e cresceram “pensando de forma estruturada” para
resolver os problemas submetidos à programação. Quando a OOP tomou força, com
o advento de linguagens populares que suportavam o método, houve um movimento
de mudança para os programadores e uma decisão a ser tomada: mudar a maneira
de interpretar os problemas e a maneira como as soluções eram construídas.

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 34

Atualmente, com o advento de linguagens de programação de alto nível, que


facilitam a vida do programador na absorção dos conceitos da OOP, o método
acabou recebendo um número cada vez maior de adeptos. A linguagem Java pode
ser considerada como a precursora desse movimento, trazendo um amplo conjunto
de benefícios e totalmente construída usando o método de programação orientada a
objetos.
Diante desse cenário, podemos resumir os seguintes desafios para
aprendermos OOP:
1. Exige uma forma diferente de como interpretamos os problemas;
2. Exige que a construção dos programas tenha definição também diferente do
modelo de programação estruturada;
3. Fornece nova forma para apresentar solução ao usuário, exigindo maior nível
de abstração;
4. Novos conceitos e formas de construção de programas, com o objetivo de
explorar o potencial do método OOP, exigem uma forma diferente de pensar
do programador;
5. Alguns preconceitos foram criados contra a OOP como: o esforço necessário
para a construção de sistemas, a construção de recursos mais amigáveis ao
usuário são trabalhosos demais e algumas promessas do método que
acabam na prática exigindo do programador esforços parecidos como havia
na programação estruturada.
Hoje, o sentimento é de que realmente há preconceitos; antes, o que havia
era uma grande falta de domínio sobre a oferta do método e a forma como ele
deveria ser utilizado.

3 A HISTÓRIA DA OOP

A origem da OOP remonta a 1966, quando os escandinavos Ole-Johan Dahl e


Kristen Nygaard criaram a linguagem Simula para a construção de modelos de
simulação. Para obter uma visão histórica desse momento, acesse o site:

http://heim.ifi.uio.no/~kristen/FORSKNINGSDOK_MAPPE/F_OO_start.html

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 35

Essa linguagem influenciou a criação do Smalltalk na Xerox, em Palo Alto,


Califórnia, nos anos setenta, o que podemos observar em detalhes no seguinte
endereço na internet:

http://www.smalltalk.org/smalltalk/TheEarlyHistoryOfSmalltalk_TOC.html

Posteriormente, a Simula influenciou outras linguagens, ora construídas com


base nos conceitos originais, como o Eiffel, ou inspiradas na sintaxe de outras já
existentes, como é o caso do C++, Java, Object Pascal, Delphi e Ada95.

4 TERMINOLOGIA

4.1 ABSTRAÇÃO DE DADOS

Um recurso que recebeu destaque na OOP chama-se “programação com tipos


de dados abstratos” cujos tipos fornecem a implementação dos conceitos da OOP,
chamados encapsulamento e modularidade.
Como vimos anteriormente, os tipos de dados são utilizados como uma
operação comum na programação de computadores. Na declaração de uma
variável, definimos o tipo de dados para armazenamento, delimitando, dessa forma,
o conjunto de valores que podem ser armazenados.
As linguagens de programação oferecem um conjunto de tipos de dados
básicos e pré-definidos (também chamados de tipos primitivos), mas algumas
linguagens oferecem a construção de tipos específicos e complexos, são as
variáveis compostas heterogêneas que vimos na segunda aula do módulo. Esse tipo
de dado complexo abstrai os dados armazenados na variável.
Na OOP cria-se um novo tipo de dado chamado objeto, que pode conter, além
de atributos específicos, dados e procedimentos embutidos. Nesse tipo de dado, o
programador se preocupa apenas em saber como utilizar os recursos disponíveis
pelo objeto, sem a necessidade de saber como o objeto foi construído e como
funciona os procedimentos internos.
Com essa abordagem, conseguimos obter uma verdadeira “abstração de
dados”, ou seja, o usuário conhece apenas o necessário para seu uso, sem precisar
conhecer detalhes complexos do objeto.

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 36

4.2 ENCAPSULAMENTO

A abordagem de programação usando tipos de dados abstratos inclui o


conceito de encapsulamento que, basicamente, “esconde e protege” as
informações contidas no objeto. O encapsulamento consiste em ocultarmos ao
usuário o funcionamento interno de uma classe.

4.3 OBJETOS

Os objetos são reconhecidos como uma entidade autônoma que combina a


representação da informação (estruturas de dados) e meios de sua manipulação
(procedimentos), uma vez que possuem capacidade de processamento e
armazenam um estado local, usando variáveis encapsuladas no objeto.
Um objeto é composto de:
• Propriedades: são as informações, estruturas de dados que representam
o estado interno do objeto;
• Comportamentos: também conhecidos como métodos, que agem sobre
as propriedades. Os métodos são acionados quando o objeto recebe uma
mensagem solicitando sua execução;
• Identidade: é uma propriedade que diferencia um objeto do outro; ou seja,
o seu nome.

4.4 MENSAGENS

Um objeto sozinho não é muito útil e geralmente aparece como componente de


um grande programa que contém muitos outros objetos. Pela interação desses
objetos, pode-se obter uma grande funcionalidade e comportamentos mais
complexos. Objetos de software interagem e comunicam-se com os outros por
mensagens, formadas por três componentes básicos:

• o objeto a quem a mensagem é endereçada (receptor);

• o nome do método que se deseja executar;

• os parâmetros (se existirem) necessários ao método.

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 37

4.5 MÉTODOS

Um método implementa algum aspecto do comportamento do objeto.


Comportamento é a forma como um objeto age e reage, em termos das suas trocas
de estado e troca de mensagens.
Um método é uma função ou procedimento definido na classe e tipicamente
pode acessar o estado interno de um objeto da classe para realizar alguma
operação.

4.6 CLASSES

Objetos de estrutura e comportamento idênticos são descritos como


pertencendo a uma classe, de tal forma que a descrição de suas propriedades pode
ser feita de uma só vez, de forma concisa, independente do número de objetos
idênticos em termos de estrutura e comportamento que possam existir em uma
aplicação. A noção de um objeto é equivalente ao conceito de uma variável em
programação convencional, pois especifica uma área de armazenamento, enquanto
a classe é vista como um tipo abstrato de dados, uma vez que representa a
definição de um tipo.
Cada objeto criado, a partir de uma classe, é denominado de instância dessa
classe. Uma classe provê toda a informação necessária para construir e utilizar
objetos de um tipo particular, ou seja, descreve a forma da memória privada e como
se realizam as operações das suas instâncias. Os métodos residem nas classes,
uma vez que todas as instâncias de uma classe possuem o mesmo conjunto de
métodos, a mesma interface.

4.7 HERANÇA

O mecanismo de herança permite a reutilização das propriedades de uma


classe na definição de outra. A classe mais generalizada é chamada superclasse e a
mais especializada, subclasse.

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 38

4.8 POLIMORFISMO

Polimorfismo refere-se à capacidade de dois ou mais objetos responderem à


mesma mensagem, cada um a seu próprio modo. A utilização da herança torna-se
fácil com o polimorfismo.

4.9 SIMILARIDADES ENTRE A PROGRAMAÇÃO ESTRUTURADA E A OOP

É possível identificarmos similaridades entre a programação estruturada e a


programação orientada a objetos, com o objetivo de facilitar o entendimento do
conceitos de OOP, observe a tabela 2:

Tabela 2 – Comparação básica entre Programação Estruturada e OOP


Programação Estruturada OOP
Tipos de dados Classes
Variável Objetos
Função/Procedimento Operação/Método
Chamada de função Envio de mensagem

5 LINGUAGENS ORIENTADAS A OBJETOS

Nem todas as linguagens de programação do mercado são orientadas a


objetos, que é uma técnica de programação, ou melhor, um “paradigma” para
escrever um bom programa cuja finalidade é resolver um determinado problema.
Então, para que possamos considerar uma linguagem orientada a objetos, a
linguagem deverá possuir mecanismos que suportem o estilo de programação que o
método OOP apresenta.
É importante, nesse contexto, você entender que muitas linguagens se
apresentam como baseadas em objetos e outras suportam claramente a orientação
a objetos. As linguagens baseadas em objetos suportam recursos que facilitam a
construção de sistemas usando a programação estruturada, usando recursos visuais
e elementos facilitadores. Um exemplo muito comum é a linguagem Visual Basic da

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 39

Microsoft, cuja versão atual, baseada em .NET, oferecia formas de construção que
se utilizavam de conceitos baseados em objetos, mas não havia na linguagem
suporte aos padrões que a OOP oferece. Esse tipo de linguagem e método de
programação é conhecido como programação orientada a eventos.
As linguagens mais populares que suportam efetivamente a programação
orientada a objetos são: Java (Pura), C++ (Híbrida), SmallTalk (Pura), Object Pascal
(Pura) e C# (Pura). As linguagens consideradas “puras”, no suporte à OOP,
nasceram com base nos padrões da OOP e as linguagens consideradas “híbridas”
são linguagens que nasceram no modelo de programação estruturada e evoluíram
para suportar os recursos da OOP.

SÍNTESE

Nesta aula você percebeu a dimensão da programação orientada a objetos. É


uma abordagem atual e que atende às demandas atuais do mundo globalizado.
O primeiro assunto que abordamos procurou lhe fornecer a percepção das
diferenças entre a programação estruturada e a programação orientada a objetos. A
programação estruturada possui limitações para os desafios atuais porque:
• Os efeitos em cascata são gerados pela modificação de programas;
• Com a grande quantidade de programas, procedimentos e funções
implementados, a localização de um problema tornou-se algo mais difícil
de se resolver;
• Seções reutilizáveis de código de programação são muito difíceis de
serem construídas.
O objetivo da OOP (programação orientada a objetos) é desenhar e construir
uma solução baseada nos objetos existentes no problema e não mais através de
procedimentos e situações interdependentes. Isso faz com que o programa seja
quebrado em módulos gerenciáveis e auto-suficientes. Então, a OOP permite um
programa mais adequado aos desafios que as áreas de negócios impõem às
soluções de Tecnologia da Informação. Porque o código de programação criado é:
• Modular;
• Extensível;

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 40

• Reutilizável;
• Mais fácil de manter;
• Mais simples de depurar.
Como o próprio nome sugere, a programação orientada a objetos é baseada
no conceito de software objeto e busca manter total similaridade aos conceitos de
objetos do mundo real (caneta, mesa, cadeira, etc.). Dessa forma, os objetos
compartilham algumas características com outros objetos, devido às suas
propriedades e comportamentos. As propriedades, também conhecidas como
estados do objeto, são implementadas pelas variáveis e o comportamento do objeto
é desenvolvido pelos seus métodos.
A reunião dos métodos e propriedades de um objeto é denominada
abstração de dados, pois o usuário do objeto não precisa saber como as
propriedades e os métodos foram construídos, ele precisa saber apenas como
utilizá-los.
Considerando que uma aplicação poderá conter vários objetos, esses podem
relacionar-se uns com os outros. A comunicação que ocorre entre os objetos é
realizada por mensagens que, por sua vez, são realizadas pelo uso do objeto, da
execução de um método associado ao objeto, e da passagem de informações para
que o método seja executado adequadamente.
À medida que os objetos são construídos, poderá haver similaridades e a
OOP oferece o uso de classes para criar estruturas pré-construídas. É fazendo uso
desse mecanismo de classes que podemos nos utilizar dos recursos de reuso que o
método nos oferece. Além disso, o agrupamento de classes com características
comuns é utilizado pela OOP para criar uma hierarquia de classes e com isto
estabelecer uma lógica de reuso. As práticas de extensões, sobreposições e de
herança se utilizam dessa hierarquia para a construção de novos objetos que,
futuramente, se beneficiarão de qualquer mudança que ocorrer na classe superior.
A conseqüência no uso dessas práticas implementa um dos principais
recursos da OOP: o polimorfismo, ou seja, o objeto possui um comportamento
diferente de acordo com o contexto em que é utilizado.
Esses são os principais conceitos da OOP que você precisa levar para as
futuras linguagens de desenvolvimento que oferecem suporte ao método.

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 41

Na próxima aula, vamos aprender como representar graficamente os sistemas


orientados a objetos.
Até lá.

EXERCÍCIOS PROPOSTOS

1) Defina com as suas palavras o que é a programação orientada a objetos.

___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
_______________

2) O que é encapsulamento?

___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
_______________

3) Podemos afirmar que toda linguagem de programação é orientada a objetos?


Justifique.

___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 42

Aula 4

INTRODUÇÃO A UML

Objetivo da Aula

Ao final desta aula, você deverá ser capaz de:


• Explicar a necessidade da modelagem de soluções;
• Comparar a modelagem de sistemas orientados a objetos com
a modelagem de sistemas estruturados;
• Explicar o que é a UML e sua história;
• Obter um conhecimento essencial sobre os diagramas da UML.

Conteúdo da Aula

Acompanhe os assuntos desta aula, se preferir, ao


terminar, assinale o conteúdo já estudado.
 Porque modelar aplicações
 O que é UML?
 O modelo conceitual da UML
 Ferramentas de modelagem UML

Prezado(a) aluno(a),
Como vimos na aula passada, a OOP é uma
poderosa abordagem para a construção de sistemas,
trazendo novos conceitos, métodos e práticas na construção de
sistemas. Nesse sentido, a representação visual das soluções
orientadas a objetos também precisa de um novo conjunto de
práticas para atender às particularidades dessa nova implementação.
Nesta aula você aprenderá os conceitos básicos da
representação visual de sistemas orientados a objetos, chamada UML.
Espero que você perceba a importância da modelagem de
aplicações usando UML e receba este primeiro contato como uma
alavanca para obter maior conhecimento e domínio da programação

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 43

orientada a objetos.
Desejo-lhe uma excelente aula.

1 PORQUE MODELAR APLICAÇÕES

Diante da quantidade de detalhes e conhecimentos que o programador precisa


manter em mente, podemos afirmar que, semanalmente, novas tecnologias e
recursos são disponibilizados pela indústria de software, fazendo com que a
experiência e o conhecimento fiquem obsoletos com grande velocidade e facilidade.
Modelar uma solução para um sistema de computador tem como principal
finalidade “simplificar a realidade” (Pencer, 2002), ou seja, fornecer uma
representação visual da interpretação de um problema. O ditado popular que “uma
imagem vale mais que mil palavras” é a afirmativa que nos remete à necessidade da
modelagem de aplicações.
Diante das complexidades atuais do mundo dos negócios e da amplitude que
um programa de computador pode atingir, é fundamental a adoção de uma
representação visual da solução. O modelo de uma aplicação para computador
oferece a mesma importância de um projeto de arquitetura para a construção civil. A
aplicação modelada será um ingrediente fundamental nas relações entre os
profissionais envolvidos na construção do programa, desde o cliente que solicitou a
solução até os programadores que efetivamente irão desenvolvê-la.
Devemos ainda ressaltar que, no caso de um programa de computador, vários
pontos de vista são necessários para compreender o modelo apresentado. Dessa
forma, significa que um modelo nunca é suficiente e podemos utilizar vários modelos
visuais conectados entre si, para tornar possível entender qualquer aspecto do
sistema.

1.1 COMPONENTES DE UM MODELO COMPUTACIONAL

A importância da modelagem de um sistema está baseada nos seguintes


elementos: visualização, especificação, construção e documentação (Pencer, 2002).
• Visualização: há uma diferença muito grande entre pensar na solução de
um sistema e sua construção em código de programação. Alguns detalhes

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 44

nos sistemas não podem ser completamente compreendidos sem a


construção de um modelo que vá além da frieza dos códigos de
programação. Além disso, um modelo visualmente representado facilita a
comunicação;
• Especificação: é um conjunto de instruções que são definidas junto ao
modelo visual, com um nível de aplicação técnica para que o programador
possa seguir corretamente para a construção do programa;
• Construção: os atuais pacotes de software utilizados para a modelagem
de sistemas fornecem alguma forma de geração de código de
programação, com o objetivo de facilitar e acelerar o processo de
construção do programa. Algumas ferramentas, inclusive, permitem a
chamada “engenharia reversa”, que significa a criação automática de um
modelo visual a partir de um código de programação já construído;
• Documentação: um dos aspectos mais importantes no desenvolvimento
de sistemas é a documentação de seus componentes. Além disso, é uma
das tarefas mais difíceis de se empregar em uma equipe de
programadores, pois, normalmente, há preocupação natural com a
tecnologia e pouca com a documentação do projeto. Um modelo visual
permite que a documentação seja criada e dinamicamente mantida,
facilitando o entendimento e as possíveis transformações que o sistema
pode receber durante a fase de levantamento e depuração dos programas.

1.2 BENEFÍCIOS DA MODELAGEM DE APLICAÇÕES

Diante do que você leu nos tópicos anteriores, podemos então resumir os
seguintes benefícios na modelagem de aplicações:
• Os modelos ajudam na visualização de como o sistema é ou deverá ser;
• Os modelos permitem a especificação da estrutura do programa ou do
comportamento de um sistema;
• Os modelos fornecem guias e orientações para a construção de um
sistema;
• Os modelos documentam as decisões que foram tomadas para o sistema;

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 45

• Os modelos fornecem uma linguagem comum que poderá ser utilizada por
vários profissionais, contendo vários pontos de vista, mas mantendo uma
visão ampla do sistema todo.
Agora que você percebeu a importância da modelagem de aplicações, vamos
conhecer, na próxima seção, a linguagem de modelagem de aplicações mais
utilizadas na atualidade.

2 O QUE É UML?

A UML é um padrão para a criação de modelos utilizados na representação de


sistemas orientados a objetos e soluções complexas de negócios, combinando as
melhores práticas de diagramação utilizadas pelos engenheiros de software nos
últimos 40 anos. Na verdade, a UML padroniza os elementos para a representação
dos sistemas, mas não determina rigidamente como os modelos são aplicados. Por
isso, você encontrará sua utilização em áreas afins da programação, como na
modelagem de banco de dados ou na modelagem de processos de negócios, por
exemplo.
A UML é o acrônimo de Unified Modeling Language, ou Linguagem
Unificada de Modelagem. Apesar de haver uma tradução para o padrão, seu uso
comum é UML (fala-se “ú-emi-ele”).

2.1 CONHECENDO A HISTÓRIA DA UML

A UML está em desenvolvimento formal desde 1994. È a “unificação” de três


grandes notações para a especificação de sistemas e foi influenciada por um grande
número de técnicas de modelagem, utilizadas nas últimas décadas.
Desenvolvida especificamente para representar sistemas orientados a objetos,
em 1990, alguns profissionais renomados e experientes, no campo de metodologias
para o desenvolvimento de sistemas, iniciaram informalmente sua composição. As
três grandes notações que “dispararam” os fundamentos da UML foram:
• Engenharia de Software Orientada a Objetos, ou Object-Oriented
Software Engineering (OOSE): desenvolvida por Ivar Jacobson, é
baseada no conceito de “casos de uso”, que são formas simples de

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 46

entendimento do problema a partir da visão do usuário e objetivando a


construção de um sistema (figura 12);

Figura 12 – Processo OOSE

• Técnica de Modelagem de Objetos, ou Object-Modeling Technique


(OMT): desenvolvida por James Rumbaugh, tem como ênfase a análise
de negócios e o claro entendimento dos dados utilizados para a definição
do problema (figura 13);

Figura 13 – Símbolos utilizados na OMT

• Método de Booch, ou Booch Method: desenvolvida por Grady Booch,


tem características importantes para o desenho e a implementação da
solução, buscando definir e mapear a solução às necessidades de
negócios (figura 14).

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 47

Figura 14 – Símbolos utilizados no método Booch

Em Outubro de 1994, Booch e Rumbaugh, trabalhavam na Rational Corp. e


iniciaram a unificação de seus dois métodos. Seus esforços geraram uma notação
única e simplificada, usando o melhor de cada uma das suas notações. Esse
período é considerado como o início formal da composição da UML e, após um ano,
seus autores publicaram a primeira versão como Unified Modeling Language versão
0.8.
Nesse mesmo período, a empresa de Ivar Jacobson foi adquirida pela Rational
e iniciaram os trabalhos para a integração da OOSE ao padrão UML. O resultado
dessa colaboração gerou as versões 0.9 e .9.1, em 1996.
Outros padrões de mercado existiam na época e alguns deles eram mantidos
pela OMG (Object Management Group), mas a adoção da UML por várias empresas
e instituições acadêmicas, fez com que a OMG estabelecesse um consórcio com a
Rational e várias outras empresas, dentre elas a IBM, HP, Microsoft, Oracle e
Unisys. Em virtude desse consórcio e da contribuição de várias especificações de
cada um dos seus participantes, foi publicada a versão 1.0 da UML, em Janeiro de
1997.
Várias revisões foram aplicadas à UML e muitas versões intermediárias foram
publicadas (1.1 até 1.5), mas o mundo mudou muito após a publicação dessas
versões e as mudanças ocorreram fundamentalmente na captura e no mapeamento
das necessidades dos sistemas. Além disso, a UML 1.x foi criada para humanos, ou
seja, ela tinha fundamentalmente a busca pelo entendimento do ser humano sobre a
solução que estava sendo desenhada.

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 48

Então, a versão 2.0 da UML teve os seguintes objetivos:


• Aprimorar a linguagem para tornar-se mais fácil de usar, implementar e
personalizar;
• Aumentar o suporte ao desenvolvimento baseado em componentes. Esse
tipo de desenvolvimento foi amplamente utilizado após a publicação das
primeiras versões da UML, tendo por objetivo “decompor” o sistema em
componentes lógicos e funcionais;
• Aumentar a capacidade da linguagem para atender às demandas
complexas no relacionamento entre os modelos, atualizar as notações e a
criação de novos diagramas (figura 15).

Figura 15 – História da UML

3 O MODELO CONCEITUAL DA UML

Os autores da UML sugerem que uma aplicação pode ser descrita fazendo-se
uso de cinco visões, conforme menciona Bezerra (2002), e cada visão enfatiza
aspectos diferentes do sistema a ser construído. São elas:
• Visão de casos de uso: descrevem as necessidades do sistema
estritamente do ponto de vista externo, apresentando o grau de

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 49

atendimento que o sistema oferece para o usuário. Em resumo, é através


dessa visão que se obtém o entedimento do que precisa ser construído no
sistema, do ponto de vista de como o trabalho é realizado hoje ou como
deverá ser realizado, baseando-se em regras de negócios detalhadas pelo
usuário;
• Visão de Projeto: focaliza a estrutura do sistema e o comportamento de
seus componentes, através da definição de classes, colaborações e as
interfaces do sistema;
• Visão de Implementação: tem por finalidade representar os aspectos
físicos do sistema (programas, bibliotecas, banco de dados e etc.), que
serão os componentes da montagem final. Também acompanha e controla
as versões dos elementos e do próprio sistema;
• Visão de Implantação: representa os recursos físicos da solução
(hardware), disponibilização e instalação do sistema, incluindo suas
especificações de integração com outros elementos de hardware;
• Visão de Processo: fornece as informações relacionadas ao
processamento do sistema, mais especificamente o desempenho e a
escalabilidade, incluindo a capacidade de resposta das demandas de
processamento.

Figura 16 – Visões da UML

É importante ressaltar que nem todas as visões precisam ser utilizadas. Seu
uso depende do tamanho do projeto, complexidade e exigências nas especificações
funcionais do sistema.

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 50

Para cada visão a UML oferece um diagrama ou notação. Um diagrama é uma


representação gráfica de um conjunto de elementos e são desenhados para permitir
a visualização sob diferentes perspectivas.

3.1 DIAGRAMAS DA UML

A UML oferece nove diagramas ou notações gráficas: diagrama de classes,


diagrama de objetos, diagrama de componentes, diagrama de implantação,
diagrama de caso de uso, diagrama de seqüência, diagrama de colaboração,
diagrama de estados e diagrama de atividades. Segundo Furlan (1998), os
diagramas da UML possuem uma notação padrão e bastante compreensível que
permite abstrair certos aspectos do sistema, ficando, assim, fácil de entendê-lo
através de suas partes. Ao final da modelagem, essas partes se completam e
representam o sistema em sua totalidade. São eles:
1. Diagramas de Caso de Uso: um caso de uso, ou situação, é aonde o
sistema é utilizado para atender um ou mais requisitos de negócio do
usuário. Segundo Bezerra (2002), esse diagrama molda os requisitos
funcionais do sistema. Com o uso desse diagrama “desenhamos” a
necessidade do cliente ou do negócio, utilizando de uma notação padrão,
conforme mostra a figura 17:

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 51

Figura 17 – Exemplo de Caso de Uso

2. Diagrama de Classes: modela os recursos utilizados para construir e


operar o sistema. Apresenta as classes do sistema, seus relacionamentos,
as operações e os atributos da classe. É o principal diagrama da UML,
pois todos os demais diagramas obtêm informações a partir do modelo
representado nesse diagrama. Veja a figura 18:

Figura 18 – Exemplo de Diagrama de Classes

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 52

Enquanto o diagrama de classes apresenta a definição dos recursos, o


diagrama de objetos modela os fatos ou exemplos. O principal objetivo
desse diagrama é validar o diagrama de classe, fazendo uso de exemplos
e testes;
3. Diagrama de Interação: ajudam a documentar e compreender os
aspectos dinâmicos do sistema, descrevendo a seqüência de mensagens
enviadas e recebidas pelos objetos. Na UML 1.4, os diagramas de
interação são referenciados aos diagramas de seqüência e de
colaboração. Basicamente, esses dois diagramas descrevem a
comunicação entre os objetos para realizar uma determinada ação. Vamos
ver na figura 19, um exemplo de um diagrama de seqüência:

Figura 19 – Diagrama de interação

5. O diagrama de colaboração é quase a mesma representação do


diagrama de seqüência, sendo a perspectiva a diferença entre eles.
Ambos os diagramas apresentam as interações para uma tarefa
específica, mas enquanto o diagrama de seqüência procura apresentar a
seqüência de interações ao longo do tempo, o diagrama de colaboração
apresenta como as interações utilizam a estrutura dos objetos e seus
relacionamentos.
6. Diagrama de Estados: esse diagrama apresenta como estímulos
externos causam alterações ao objeto durante o seu ciclo de vida. O
diagrama de atividades é uma derivação do diagrama de estados, pois

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 53

normalmente estados é um momento da ação, e as transições são


normalmente disparadas a partir do término das ações;
7. Diagrama de implementação: é composto por dois diagramas: o
diagrama de componentes, que representa as partes de software no
ambiente de implementação, e o diagrama de implantação, modela os
elementos de hardware do ambiente de implementação. Cada nó no
diagrama representa um tipo de hardware, como uma unidade de disco,
memória, computador, ou processador.

3.2 VISÃO GERAL DOS DIAGRAMAS DA UML

À medida que o sistema é modelado, um conjunto de diagramas é construído e


um grande volume de documentações é gerado. Então, o grande desafio é manter
uma visão completa da solução, manter um entendimento completo sobre a
interdependência dos diagramas e a manutenção das mudanças que ocorrem à
medida que os levantamentos são obtidos.
Como vimos anteriormente, a UML pode ser dividida em visões. Com esta
divisão, poderemos estabelecer o posicionamento dos diagramas e sua aplicação
em cada visão, conforme mostra a figura 20.

Figura 20 – As visões da UML e os diagramas

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 54

Vários autores buscam apresentar visões mais claras sobre os


relacionamentos entre os diagramas da UML, principalmente as influências e
definições que são realizadas entre os diagramas.
Uma outra forma de agrupamento é representar os aspectos dinâmicos e
estáticos do sistema. A condição estática do projeto pode ser representada pelos
diagramas de classes, de objetos, de componentes e de casos de uso e a condição
dinâmica pode ser representada pelos diagramas de estados, de atividade, de
seqüência e de colaboração. Diante disso, podemos obter uma visão mais ampla,
segundo Song (2003). Veja na figura 21 os diagramas e relacionamentos da UML.

Figura 21 – Visão Geral sobre a UML, seus diagramas e relacionamentos

4 FERRAMENTAS DE MODELAGEM UML

Como a UML oferece um conjunto de orientações para a modelagem de


sistemas, fazendo uso de uma notação padrão e um conjunto de especificações

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 55

públicas, o uso de ferramentas para a modelagem UML é uma situação comum.


Atualmente, existem dezenas de soluções direcionadas para esse fim e muitas
oferecem um modelo de licenciamento baseado em software livre.
Na Internet, existem vários sites que apresentam análises e sugestões para
uma grande variedade de ferramentas, com destaque o site da Wikipedia no
seguinte endereço (em inglês):
http://en.wikipedia.org/wiki/List_of_UML_tools
Finalmente, há também um site com um conjunto amplo de informações:
http://www.objectsbydesign.com/tools/umltools_byCompany.html
Cada ferramenta oferece um potencial específico para apoiar o processo de
modelagem, pois alguns projetos exigem apenas o uso de um modelo e outros, o
uso de várias modelos. Algumas vantagens que podem ser obtidas usando uma
ferramenta de UML:
• A ferramenta pode suportar todos os padrões da UML, inclusive suas
regras de semântica, o que garante a geração do modelo dentro das
especificações da linguagem;
• Geração de código com base nos modelos gerados, acelerando a
construção de código de programação. Também permite a geração de
modelos a partir de um programa, que é chamada de “engenharia
reversa”;
• A integração entre os modelos é reforçada, garantindo que nenhuma
especificação seja quebrada e acelera a construção dos modelos;
• Também através da integração fornece informações relevantes para o
gerenciamento do projeto e instrumentos para a condução das atividades
de modelagem e construção do programa, inclusive uma ampla
documentação dos elementos e de todo o projeto;
• Outro aspecto relevante, fornecido pela integração dos modelos de uma
ferramenta UML, é a colaboração entre os participantes de uma equipe de
desenvolvimento da solução. Várias soluções oferecem excelentes
recursos para a colaboração e interação de um modelo sendo utilizado e
mantido por várias pessoas, mantendo um controle de segurança,
versionamento e registro de alterações;

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 56

• Normalmente, as ferramentas de UML apresentam um repositório de


dados, oferecendo uma abordagem segura de informações do projeto e
que pode ser compartilhada por vários componentes do processo de
construção do programa. Em grandes e complexos projetos, esse tipo de
recurso auxilia no controle de mudanças e na dinâmica que a solução
pode sofrer.

4.1 FERRAMENTAS GRATUITAS

Vamos registrar aqui algumas ferramentas gratuitas para modelagem UML.

4.1.1 Argo UML

Ferramenta baseada em Java, apresenta uma solução elegante e gratuita para


a construção de diagramas. Para usuários iniciantes e com o objetivo de utilizar uma
solução simples, rápida e executada em várias plataformas, é uma excelente opção.
Não oferece o nível de poder, suporte a diagramas e integração que as ferramentas
proprietárias.
http://argouml.tigris.org/

4.1.2 Violet

Ferramenta também baseada em Java, tem uma abordagem mais simples,


podendo ser executada utilizando a plataforma “Java Web Start”. Também é uma
abordagem simples para a criação de diagramas, mas seu uso é extremamente
simples, fácil e rápido. Das ferramentas avaliadas é o pacote de instalação de menor
tamanho e de facilidade de execução (figura 22).
http://www.horstmann.com/violet/

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 57

Figura 22 – Ambiente do Violet

4.1.3 EclipseUML

O Eclipse é uma solução largamente utilizada por programadores Java. Esse


software oferece uma abordagem baseada em integração com várias ferramentas
auxiliares, chamadas plug-in, que podem ser integradas ao ambiente de
desenvolvimento e facilitar o uso integrado entre as várias faces da construção de
programas. Várias ferramentas proprietárias e de software livre oferecem plug-ins
para integração com o Eclipse, dentre elas o Rational Rose e o Enterprise Architect.
Há também um amplo conjunto de opcões de add-ins em forma de software livre.
http://www.eclipse.org

4.2 FERRAMENTAS PROPRIETÁRIAS

Apesar de pagas, as ferramentas UML proprietárias oferecem um amplo


conjunto de recursos, integrados e ricos em funcionalidades para facilitar a vida do
profissional que irá modelar um sistema.

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 58

4.2.1 Rational Rose

É uma ferramenta de modelagem, faz parte de uma suite de software da


Rational que possui um amplo conjunto de ferramentas para atender a todos os
aspectos envolvidos na construção de sistemas (figura 23). Seu foco principal está
na abordagem visual para a criação dos modelos e sua completa integração. É a
ferramenta mais utilizada para a construção de programas utilizando a UML, mas
seu custo e complexidade acabam não facilitando sua adoção.
http://www-306.ibm.com/software/rational/

Figura 23 – Ambiente do Rational Rose

4.2.2 Enterprise Architect

Uma excelente opção ao Rational Rose é o Enterprise Architect. Seu principal


diferencial está na abordagem facilitadora na criação de diagramas, com apelo visual
e menor consumo de recursos do computador. Além disso, possui recursos
poderosos para a colaboração dos diagramas entre os integrantes de uma equipe de
projeto. Assim como o Rational, possui suporte completo às atuais especificações da
UML.
http://www.sparxsystems.com.au/

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 59

SÍNTESE

Com certeza a UML é um assunto amplo, que exige dedicação e estudo


específico e dedicado. Nesta aula tivemos por principal meta lhe oferecer uma ampla
visão da modelagem de sistemas usando a UML, apresentando um nível genérico
de detalhes de sua implementação.
Reforço que é uma notação importante, muito utilizada atualmente,
independente das plataformas de tecnologias envolvidas. Lembre-se de que a UML
é um padrão para a modelagem de aplicações e o conhecimento aqui adquirido
poderá servir como base para participação de projetos de sistemas orientados a
objetos.
Modelos são normalmente representados por representações gráficas,
usando algum tipo de notação, que define um conjunto de regras na forma de
símbolos gráficos e conexões visuais. O principal objetivo dos modelos é facilitar o
entendimento da estrutura complexa de um sistema.
Usando modelos também conseguimos obter consistência durante o processo
de desenvolvimento, pois estabelecem padrões que serão mantidos durante todo o
tempo do projeto. Isso é particularmente importante, pois a comunicação entre os
participantes de uma equipe é um dos principais fatores de insucesso de um projeto
de software.
A UML (Unified Modeling Language) é uma notação para a construção de
soluções orientadas a objetos e consiste em um conjunto de diagramas que
representam diferentes visões do projeto de software.
Nesta aula obtivemos uma visão geral sobre a UML e seus componentes.
Você pôde perceber as vantagens e as facilidades que a notação oferece. Perceba
ainda que toda proposta da UML baseia-se em modelos interdependentes, que
fornecem elementos visuais facilitadores do entendimento e da condução de um
projeto de software.
Chegamos ao final de mais um módulo. Espero que você tenha atingido seus
objetivos e que utilize os conhecimentos aqui apresentados como um apoio para
evoluir o seu domínio sobre o processo de desenvolvimento de sistemas.
Um grande abraço e até a próxima.
Prof. Laércio da Cruz Loureiro

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 60

EXERCÍCIOS PROPOSTOS

1) Apresente os métodos principais que deram a origem para a UML.

___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
_______________

2) Defina com as suas próprias palavras, a finalidade do diagrama de Casos de


Uso.

___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
_______________

3) Descreva com as suas próprias palavras as vantagens da adoção de uma


notação gráfica para a análise e construção de software.

___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
_______________

SOCIESC – Sociedade Educacional de Santa Catarina


Elementos de Programação 61

REFERÊNCIAS

FORBELLONE, A. e EBERSPACHER, H. Lógica de programação: a construção


de algoritmos e estrutura de dados. 2.ed. São Paulo: Makron Books, 2000.

GILLEANES T. A. GUEDES. UML: uma abordagem prática. São Paulo: Novatec,


2004.

GRADY BOOCH, JAMES RUMBAUGH E IVAR JACOBSON. UML: Guia do


usuário. Rio de Janeiro: Campus, 2005.

JIM KEOGH, MARIO GRANNINI. OOP desmistificado - programação orientada a


objetos. Rio de Janeiro: Altabooks, 2005.

LAFORE, ROBERT. Aprenda em 24 horas estrutura de dados e algoritmo. Rio


de Janeiro: Campus, 1999.

SINTES, ANTHONY. Aprenda em 21 dias programação orientada a objetos. São


Paulo: Makron Books, 2002.

TOM PENDER. Livro UML – a bíblia. Rio de Janeiro: Campus / Elsevier, 2004.

VILLAS, MARCOS VIANNA. Estruturas de dados - conceitos e técnicas de


implementação. Rio de Janeiro: Campus – BB, 1999.

SOCIESC – Sociedade Educacional de Santa Catarina

Você também pode gostar