apostila elementos de programação

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

Upload: yane-e-odilon

Post on 20-Jan-2016

81 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: Apostila Elementos de Programação

ELEMENTOS DE PROGRAMAÇÃO

EDIÇÃO Nº 1 - 2007

LAÉRCIO DA CRUZ LOUREIRO

___________________________________________________________________

Apoio Gestão e Execução Conteúdo e Tecnologia

Page 2: Apostila Elementos de Programação

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

Page 3: Apostila Elementos de Programação

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.

Page 4: Apostila Elementos de Programação

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.

Page 5: Apostila Elementos de Programação

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.

Page 6: Apostila Elementos de Programação

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

Page 7: Apostila Elementos de Programação

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 _/_

Page 8: Apostila Elementos de Programação

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 sistemas usando a

UML.

.

Carga Horária: 40 horas.

Page 9: Apostila Elementos de Programação

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!

Page 10: Apostila Elementos de Programação

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:

Page 11: Apostila Elementos de Programação

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:

Page 12: Apostila Elementos de Programação

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.

Page 13: Apostila Elementos de Programação

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]

Page 14: Apostila Elementos de Programaçã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 (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.

Page 15: Apostila Elementos de Programação

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

Page 16: Apostila Elementos de Programação

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.

Page 17: Apostila Elementos de Programação

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

Page 18: Apostila Elementos de Programação

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

Page 19: Apostila Elementos de Programação

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!

Page 20: Apostila Elementos de Programação

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.

___________________________________________________________________

___________________________________________________________________

_______________

Page 21: Apostila Elementos de Programação

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!

Page 22: Apostila Elementos de Programação

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

Page 23: Apostila Elementos de Programação

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

Page 24: Apostila Elementos de Programação

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]

Page 25: Apostila Elementos de Programação

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

Page 26: Apostila Elementos de Programação

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

Page 27: Apostila Elementos de Programação

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.

Page 28: Apostila Elementos de Programação

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á.

Page 29: Apostila Elementos de Programação

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.

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

_______________

Page 30: Apostila Elementos de Programação

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.

Page 31: Apostila Elementos de Programação

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:

Page 32: Apostila Elementos de Programação

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 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.

Page 33: Apostila Elementos de Programação

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.

Page 34: Apostila Elementos de Programação

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

Page 35: Apostila Elementos de Programação

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.

Page 36: Apostila Elementos de Programação

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ários ao método.

Page 37: Apostila Elementos de Programação

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.

Page 38: Apostila Elementos de Programação

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

Page 39: Apostila Elementos de Programação

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;

Page 40: Apostila Elementos de Programação

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.

Page 41: Apostila Elementos de Programação

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.

___________________________________________________________________________

___________________________________________________________________________

___________________________________________________________________________

Page 42: Apostila Elementos de Programação

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

Page 43: Apostila Elementos de 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

Page 44: Apostila Elementos de Programação

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;

Page 45: Apostila Elementos de Programação

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 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

Page 46: Apostila Elementos de Programação

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).

Page 47: Apostila Elementos de Programação

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.

Page 48: Apostila Elementos de Programação

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

Page 49: Apostila Elementos de Programação

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.

Page 50: Apostila Elementos de Programação

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:

Page 51: Apostila Elementos de Programação

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

Page 52: Apostila Elementos de Programação

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çã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

Page 53: Apostila Elementos de Programação

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

Page 54: Apostila Elementos de Programação

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

Page 55: Apostila Elementos de Programação

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;

Page 56: Apostila Elementos de Programação

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/

Page 57: Apostila Elementos de Programação

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.

Page 58: Apostila Elementos de Programação

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/

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/

Page 59: Apostila Elementos de Programação

Elementos de Programação

SOCIESC – Sociedade Educacional de Santa Catarina

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

Page 60: Apostila Elementos de Programação

Elementos de Programação

SOCIESC – Sociedade Educacional de Santa Catarina

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.

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

_______________

Page 61: Apostila Elementos de Programação

Elementos de Programação

SOCIESC – Sociedade Educacional de Santa Catarina

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.