Buscar

JAVA - Apostila Elementos de Programação - 40h

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 61 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 61 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 61 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

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 
SOCIESC – Sociedade Educacional de Santa Catarina 
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 
 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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. 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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. 
 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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. 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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 
Objetos 
 
_/_ a _/_ 
 
2 
 
8 
 
 
Programação Orientada a 
Objetos (cont.) 
 
_/_ a _/_ 
 
16 
 
 
Introdução à UML 
 
_/_ a _/_ 
 
 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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 sistemasusando a 
UML. 
. 
 Carga Horária: 40 horas.
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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! 
 
 
 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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: 
 
 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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: 
 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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. 
 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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] 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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 (MicrosoftComputer 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. 
 
 
 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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. 
 
 
 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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! 
 
 
 
 
 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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. 
___________________________________________________________________
___________________________________________________________________
_______________ 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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! 
 
 
 
 
 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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 ClientesCadastro de Clientes
Nome
Endereço
Bairro
Cidade
Estado
Salvar Cancelar
Idade
 
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 
 
 
 
Campos 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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] 
 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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. 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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á. 
 
 
 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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. 
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
_______________ 
 
 
 
 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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. 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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: 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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 programacomo 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. 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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.
 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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. 
 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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áriosao método. 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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. 
 
 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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; 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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. 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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. 
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________ 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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; 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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 suacomposiçã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 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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). 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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. 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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. 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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: 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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 
 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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ção5. 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 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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 
 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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; 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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/ 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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. 
 
 
Elementos de Programação 
SOCIESC – Sociedade Educacional de Santa Catarina 
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/

Outros materiais