Escolar Documentos
Profissional Documentos
Cultura Documentos
INFORMÁTICA
Etapa 2
Autoridades Expediente
Utramig
CGP Solutions Ltda – EPP
Editoração, Impressão e Acabamento
Lindomar Gomes
Presidente Dilex Editoração Ltda.
Projeto Gráfico/Diagramação
Giovana de Souza Sampaio
Rocha Adriana Karine de Souza
Diretora de Planejamento, Gestão Revisão de Textos
e Finanças Gabriel Camillo
Pesquisa de Imagens e Links
Silvana Melo do Nascimento
Diretora de Ensino Pesquisa
Vera Victer
Diretora de Qualificação e
Extensão
INFORMÁTICA
Etapa 2
Cássio A. Brito
Tereza Sanguinete de Souza
Rômulo Leonardo Vieira Silva
Curso Técnico em
INFORMÁTICA
Etapa 2
Conteúdos Específicos Página
Responsabilidade Social............................................................................ 7
Inglês Instrumental.................................................................................. 63
Web 2 - CSS........................................................................................... 121
Web 2 – JavaScript................................................................................. 141
Banco de Dados II – SQL........................................................................ 159
Ambiente Operacional II........................................................................ 189
Projeto de Qualidade de Sistemas de Informação................................ 241
Linguagem Técnica de Programação I................................................... 287
Fundamentos de Análise....................................................................... 341
Curso Técnico em
INFORMÁTICA
Etapa 2
RESPONSABILIDADE SOCIAL
Responsabilidade Social
MENSAGEM DA COORDENAÇÃO
Prezado aluno,
Ao iniciar um novo semestre, um mundo novo de novos conhecimentos está se abrindo para
você.
É uma nova etapa, onde cada escolha que fizer fará a diferença, não só na sua vida, mas daqueles
que estão próximos a você.
Faça a escolha certa.
Faça a opção por mais conhecimento, por novos e incrementados desafios que, ao serem venci-
dos, trarão não somente a sensação de vitória, mas a sensação de que você é o responsável pelo seu
destino.
E, para iniciar esse novo semestre, essa nova etapa de sua vida deixa você com a tradução do
poema Invictus, do britânico William Ernest Henley, que inspirou ninguém menos do que o grande
Nelson Mandela (ele, por si só, uma inspiração constante).
Professora Juliceli Márcia de Oliveira
Invictus
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
9
Responsabilidade Social
SOBRE A DISCIPLINA
A disciplina Responsabilidade Social está presente no quadro curricular de todos os cursos téc-
nicos da Fundação de Educação para o Trabalho de Minas Gerais, UTRAMIG.
Em alguns dos cursos ela é ministrada na 1ª etapa, em outros, na 2ª etapa.
Como um dos seus objetivos, a disciplina Responsabilidade Social busca desenvolver nos estu-
dantes um olhar diferenciado, aquele que faz com que ele olhe outro ser humano e, verdadeiramente,
o enxergue. Um olhar que faça com que ele perceba aquilo que está a sua volta e, dessa forma, seja
capaz de atuar sobre realidades diferentes de forma positiva.
De acordo com OLIVEIRA (2011), “a disciplina Responsabilidade Social busca ultrapassar as fron-
teiras não somente da sala de aula, como da escola como um todo, ampliando e diversificando o espa-
ço de trabalho, além de, entre outras coisas, contextualizar o conhecimento, levando em consideração
todo o conhecimento prévio do estudante.”
SOBRE A APOSTILA
Esta apostila não pretende ser um manual, rígido, que engesse o professor e o impeça de de-
senvolver suas aulas de acordo com a turma, o curso e as circunstâncias que possam se apresentar.
Pelo contrário, pretende ser uma inspiração, para que o professor, a partir dela, possa construir
o melhor caminho para desenvolver o tão sonhado olhar diferenciado.
A apostila da disciplina Responsabilidade Social está estruturada em módulos, dessa forma, o
professor poderá definir a sequência em que os mesmos serão trabalhados, sem prejuízo algum para
a apreensão de conhecimentos por parte dos alunos.
Ao final de cada módulo há pelo menos um texto complementar sobre o assunto ou tema, de
alguma forma, a ele relacionado, para que os alunos possam se aprofundar ou para que o professor
possa utilizá-lo como base para uma atividade.
O conteúdo que aqui se apresenta é apenas uma parte de tudo que pode ser abordado na disci-
plina Responsabilidade Social. Cabe ao professor, junto com seus alunos, escolher entre tantos outros
caminhos que deseja percorrer. As possibilidades são infinitas.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
10
Responsabilidade Social
Sumário
Módulo I – Sensibilização................................................................................................................. 13
Para Refletir........................................................................................................................ 13
Fome e Miséria.................................................................................................................. 13
Trabalho Escravo................................................................................................................ 14
Trabalho Infantil................................................................................................................. 15
Violência............................................................................................................................ 16
Homicídios por Faixa Etária – 2008.................................................................................... 17
Violência contra a Mulher.................................................................................................. 18
Meio Ambiente.................................................................................................................. 19
Texto Complementar......................................................................................................... 20
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
11
Responsabilidade Social
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
12
Responsabilidade Social
MÓDULO I – SENSIBILIZAÇÃO
Este módulo tem como propósito apresentar a Responsabilidade Social para os estudantes, atra-
vés de estatísticas sobre temas extremamente importantes que fazem parte do nosso dia a dia.
Se estes temas não são vivenciados pelos estudantes, eles podem ser percebidos nas ruas das
cidades, nos noticiários. Ou seja, de uma forma ou de outra, “esbarramos” com as situações apresen-
tadas e, como cidadãos, temos que, no mínimo, refletir sobre as mesmas para, quem sabe, passarmos
de expectadores a protagonistas na busca por soluções.
Mas as situações que aqui são apresentadas são somente o início das discussões.
A cada estatística, os estudantes podem tanto aprofundar a discussão sobre o tema quanto mu-
dar totalmente o rumo pensado pelo professor – isto depende, sempre, da turma, do nível de conhe-
cimento prévio sobre o assunto e, principalmente, da bagagem que os estudantes da turma trazem
consigo, de suas vivências.
Não é raro que este momento se transforme em uma série de depoimentos acerca de experiên-
cias vivenciadas por eles, diretamente, muitas vezes.
Felizmente, também não é raro que estas experiências levem a “finais felizes”, recheados de de-
talhes que nos dizem o quanto cada um pode ser protagonista de sua história, mas também o quanto
é importante que pessoas, aparentemente distantes da situação, tomem partido e deem início ao
processo de mudança de vida de um indivíduo ou de um grupo.
PARA REFLETIR...
Fome e Miséria
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
13
Responsabilidade Social
De acordo com o Relatório dos Objetivos de Desenvolvimento do Milênio, 2011, elaborado pela
ONU, pelo mundo, 1 em cada 5 trabalhadores e suas famílias estão vivendo em situação de extrema
pobreza.
Vive em situação de extrema pobreza, de acordo com o Banco Mundial, aquela pessoa que
tem renda mensal de até $1,25 por dia.
De acordo com o Censo 2010, o Brasil tem mais de 16 milhões de pessoas vivendo em situação
de extrema pobreza.
Trabalho Escravo
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
14
Responsabilidade Social
De acordo com a legislação brasileira, quatro são os itens que definem o trabalho em condições
análogas à escravidão:
• Trabalho forçado.
• Jornada exaustiva.
• Condição degradante.
• Restrição de locomoção.
De acordo com a Comissão Pastoral da Terra (CPT), de 1995 a 2011, foram resgatados 41,6 mil
trabalhadores, em situação análoga à escravidão. Destes, a ONG Repórter Brasil estima que 28,31%
eram maranhenses, o que faz desse Estado um dos principais quando se trata da origem da maioria
dos trabalhadores que vivem em situação análoga à escravidão no país.
Trabalho Infantil
De acordo com a Pesquisa Nacional por Amostra de Domicílios 2012, PNAD, 3,5 milhões de
crianças e adolescentes entre 5 e 17 anos estão sujeitas ao trabalho infantil.
Apesar dos números altos, os mesmos representam uma diminuição de 5,41% em relação aos
números de 2011; ou seja, 156 mil crianças e adolescentes a menos.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
15
Responsabilidade Social
Violência
De acordo com a pesquisa Mapa da Violência 2010: Anatomia dos Homicídios no Brasil, reali-
zada pelo Instituto Sangari, em 2007 foram mais de 47,7 mil homicídios, ou seja, uma média de 131
vítimas diariamente.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
16
a. É na faixa “jovem”, dos 15 aos 24 anos, que os homicídios atingem sua máxima expressão,
principalmente na faixa dos 20 aos 24 anos de idade, com taxas em torno de 63 homicídios
por 100 mil jovens. Responsabilidade Social
IdAdE/ HOMICídIOS
FAIxA EtÁrIA NúMErO tAxA
0 A 4 Anos 164 1,0
5 A 9 Anos 111 0,7
10 A 14 Anos 615 3,7
10 Anos 35 1,1
11 Anos 44 1,3
12 Anos 70 2,1
13 Anos 136 4,1
14 Anos 330 10,0
15 A 19 Anos 7.543 44,5
15 Anos 705 21,2
16 Anos 1.202 35,9
17 Anos 1.586 46,9
18 Anos 1.891 55,2
19 Anos 2.159 62,5
20 A 24 Anos 11.053 62,5
20 Anos 2.304 66,1
21 Anos 2.207 62,8
22 Anos 2.212 62,5
23 Anos 2.200 61,7
24 Anos 2.130 59,2
25 A 29 Anos 9.146 52,6
30 A 34 Anos 6.241 41,1
35 A 39 Anos 4.382 32,9
40 A 44 Anos 3.266 26,0
45 A 49 Anos 2.299 20,3
50 A 59 Anos 2.684 15,8
60 A 69 Anos 1.102 10,7
70 e mAis Anos 662 7,8
Fonte: SIM/SVS/MS
Tabela. “Mapa da Violência 2011: Os Jovens do Brasil”, Pag. 53 – Instituto Sangari. Disponível em http://www.san-
gari.com/mapadaviolencia/pdf2011/MapaViolencia2011.pdf. Acessado em 02 Fev 2016.
53
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
17
Responsabilidade Social
Idosos
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
18
Responsabilidade Social
De acordo com o Instituto Brasileiro de Geografia e Estatística, IBGE, no Brasil existiam 21 mi-
lhões de pessoas com 60 anos ou mais, em 2012.
A Organização Mundial de Saúde, OMS, estima que o Brasil será o 6º país em número de idosos,
em 2025, quando deverá chegar a 32 milhões de pessoas com 60 anos ou mais.
Meio Ambiente
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
19
Responsabilidade Social
TEXTO COMPLEMENTAR
Perguntas e respostas sobre trabalho escravo e a PEC 57A/199 (ex PEC 438/2001)
Produzido pela Repórter Brasil a pedido da Comissão Nacional para a Erradicação do Trabalho Escra-
vo (Conatrae).
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
20
Responsabilidade Social
6) O atual conceito causa insegurança jurídica no campo porque ninguém sabe o que é traba-
lho escravo.
Isso é uma falácia. A tentativa de mudar um conceito conhecido e aplicado é que vai levar à
insegurança jurídica, com milhares de processos tendo que tomar um novo rumo, trabalhadores des-
conhecendo seus direitos, produtores rurais na dúvida de que decisões tomar. Até porque qualquer
mudança, seja no artigo 149, seja em lei específica, será questionado não apenas junto ao STF, por
reduzir a proteção do trabalhador, mas também nas Nações Unidas e na OIT. O que é melhor? Um
produtor reconhecer esse conceito como válido e se adequar ou uma guerra jurídica de anos, sendo
que certamente o Supremo concederia liminar para que a definição do 149 seguisse valendo até uma
decisão final? Os parlamentares consideram o conceito inseguro porque, na verdade, não concordam
com ele.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
21
Responsabilidade Social
7) Há produtores rurais que foram autuados por trabalho escravo devido à distância entre
beliches, espessura do colchão, falta de copos para beber água, de carteira assinada e de um local
adequado para refeições.
Esse é um argumento facilmente desconstruído. Quando um auditor fiscaliza um produtor, ele
emite autos de infração sobre todos os problemas encontrados. Mas não é auto de infração de col-
chão fino que configura o trabalho escravo. Quando ouvir um produtor ou parlamentar dizer isso,
pergunte sobre os outros autos de infração recebidos, sobre os quais nunca alguém quer falar. Além
do mais, não é apenas um auto que caracteriza trabalho escravo, mas um pacote deles, mostrando as
péssimas condições dos trabalhadores.
- Não há estimativa confiável do número de escravos no país. Por isso, o governo não usa ne-
nhum número.
- Na zona rural, as principais vítimas são homens, entre 18 e 44 anos. Na zona urbana, há tam-
bém uma grande quantidade de sul-americanos, principalmente bolivianos. Nos bordéis, há mais mu-
lheres e crianças nessas condições.
- Dos libertados entre 2003 e 2009, mais de 60% eram analfabetos ou tinham apenas o quarto
ano incompleto. Ou seja, eram adultos que não estudaram quando crianças. Trabalho escravo tam-
bém é filho do trabalho infantil.
- As atividades econômicas em que trabalho escravo mais tem sido encontrado na zona rural
são: pecuária bovina, desmatamento, produção de carvão para siderurgia, produção de cana-de-açú-
car, de grãos, de algodão, de erva-mate, de pinus. Também há importante incidência em oficinas de
costura e em canteiros de obras nas cidades.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
22
Responsabilidade Social
10) Em caso de aprovação da PEC 57A/1999 (que na Câmara estava sob o número 438/2001),
a decisão de confisco da terra ficará na mão dos auditores fiscais do trabalho?
Não. O processo que levará ao confisco terá início após decisão judicial transitada em julgado
na esfera criminal ou trabalhista. Ou seja, a operação de fiscalização será avaliada pela Justiça em
primeira instância e, provavelmente, em segunda instância e por tribunais superiores. O que pode
levar anos para acontecer.
11) Por que a PEC 57A/1999 (ex- 438/2001) não diz nada sobre como ocorrerá o confisco de
terras?
Por isso ficar a cargo de lei que regulamentará todo o processo. Uma proposta de rascunho des-
sa lei foi organizada pelos parlamentares favoráveis à PEC.
13) A verdadeira intenção dessa lei é a reforma agrária, pois muitas terras serão confiscadas.
Não. Considerando o confisco de terras com psicotrópicos, já em vigor, de 2003 a 2007, 18
propriedades nessas condições – todas elas no Nordeste e com uma área total aproximada de 5.200
hectares – foram destinadas a assentamentos. De acordo com a Coordenação Geral de Polícia de
Repressão aos Entorpecentes da Polícia Federal, apenas em 2004, 36 plantações de maconha foram
destruídas em todo o país. Repare que o número de confiscos é pequeno se considerada a quantidade
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
23
Responsabilidade Social
de plantações encontradas e destruídas devido ao rigor das decisões judiciais. Ou seja, apenas um
número reduzido daqueles que forem flagrados é que devem perder efetivamente suas terras.
14) Não é justo apenas produtores rurais perderem suas propriedades. Por que a PEC não pas-
sa a valer também para o meio urbano?
E ela vale. Devido a um pedido de parlamentares ligados aos produtores rurais, o texto da PEC
incorporou os imóveis urbanos em 2004.
15) O condenado por trabalho escravo irá perder todas as terras que possui por conta da lei?
Não. Apenas aquela em que trabalho escravo foi encontrado.
16) Para que criar mais uma lei para combater trabalho escravo?
As leis existentes não têm sido suficientes para resolver o problema. Mesmo com a aplicação de
multas, o corte do crédito, a perda de clientes, os processos trabalhistas e criminais, usar trabalho es-
cravo ainda é um bom negócio para muitos empresários porque barateia os custos com mão de obra.
A prática tem demonstrado que uma medida drástica, que coloque em risco a perda da propriedade
em que foi utilizado trabalho escravo, ajudará a coibir com eficiência esse crime.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
24
Responsabilidade Social
população mais pobre, vítima da escravidão, tem lutado desde a década de 70 para que seus direitos
sejam efetivados.
18) A fiscalização abusa do poder e é guiada por um viés ideológico. A Polícia Federal entra
armada nas fazendas.
As equipes móveis de fiscalização (compostas por auditores do Ministério do Trabalho e Empre-
go, procuradores do Ministério Público do Trabalho, policiais federais ou policiais rodoviário federais)
devem ir prevenidas às ações de fiscalização uma vez que muitos seguranças, gatos, prepostos, ge-
rentes e vaqueiros das fazendas andam armados para intimidar trabalhadores. De revólveres a rifles,
o arsenal de algumas fazendas não é pequeno. Muitas vezes as equipes de fiscalização têm suas vidas
ameaçadas, tendo sido recebidas a bala. Além disso, cabe também à Polícia Federal abrir inquéritos e,
se necessário, prender os culpados quando confirmado o flagrante do crime.
19) A culpa não é do fazendeiro e sim de gatos, gerentes e prepostos. O empresário não sabe
dos fatos que ocorrem dentro de sua fazenda e por isso não pode ser responsabilizado.
O empresário é o responsável legal por todas as relações trabalhistas de seu negócio. A Constituição
Federal de 1988 condiciona a propriedade ao cumprimento de sua função social, sendo de obrigação
de seu proprietário tudo o que ocorrer nos domínios da fazenda. Por isso, o fazendeiro tem o dever de
acompanhar com frequência a ação dos funcionários que a administram para verificar se eles estão
descumprindo alguma norma da legislação trabalhista, além de orientá-los no sentido de contratar
trabalhadores de acordo com as normas estabelecidas pela CLT.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
25
Responsabilidade Social
MÓDULO II
RESPONSABILIDADE SOCIAL E CONCEITOS RELACIONADOS
Responsabilidade Social
De acordo com o Instituto de Tecnologia Social, ITS Brasil, Responsabilidade Social é “o reconhe-
cimento presente nos cidadãos, individualmente e em conjunto, dos seus deveres para com a comu-
nidade em que vivem e a sociedade em geral.”
A Responsabilidade Social, na realidade, não é dissociada das nossas ações do dia a dia, já que
a mesma está relacionada com as atitudes que tomamos diante das necessidades e desafios que se
apresentam.
Quando pensamos em Responsabilidade Social, pensamos em como nossas atitudes irão impac-
tar não somente nossas vidas, mas a vida de outras pessoas.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
26
Responsabilidade Social
A Responsabilidade Social deve ser associada a uma visão de negócios que contemple aspectos
que extrapolam a mera relação comercial/financeira das empresas.
Responsabilidade Social não se restringe ao relacionamento com públicos determinados (consu-
midores, por exemplo), mas engloba a comunicação e a interação com todos os públicos de interesse
e a própria sociedade, de modo que ela deve ser vista num sentido global.
Stakeholders
Stakeholder ou, em português, parte interessada refere-se a todos os envolvidos em um pro-
cesso. Por exemplo: clientes, colaboradores, investidores, fornecedores, comunidade, governo etc.
O processo em questão pode ser de caráter temporário (como um projeto) ou duradouro (como o
próprio negócio da empresa ou a missão de uma organização sem fins lucrativos).
O envolvimento de todos os interessados não maximiza obrigatoriamente o resultado do pro-
cesso, mas permite achar um equilíbrio de forças para minimizar riscos e impactos negativos na exe-
cução deste.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
27
Responsabilidade Social
TEXTO COMPLEMENTAR 01
Generosidade: o quarto elemento do “triple bottom line”
Isso é o que diferencia uma empresa que adota critérios de sustentabilidade no modelo de gestão das que dizem
que o fazem, mas deslizam na superficialidade.
Já não restam dúvidas científicas de que o desenvolvimento sustentável é o único modelo capaz
de evitar a degradação em velocidade geométrica das condições de vida e, finalmente, a inevitável
extinção de várias espécies de flora e fauna do planeta, entre as quais provavelmente a do Homo
Sapiens – isto é, eu, você e nossos descendentes. Desconfie daqueles que se ocultam atrás de frases
como “a ciência mesmo tem dúvidas sobre…”. Eles procuram apenas um escudo para esconder sua
inércia, preguiça ou covardia.
Sabemos que, para buscar a sustentabilidade, uma pessoa ou organização deve adotar como pa-
drão de comportamento ou gestão ser ambientalmente correta, socialmente justa e economicamente
viável – o chamado triple bottom line, conceito formulado pelo britânico John Elkington. Sabemos
também que a busca pela sustentabilidade é uma caminhada que deve ser trilhada com início urgen-
te, imediato, mas final inexistente.
Então, o que faz uma pessoa, um cidadão, mobilizar-se pelo assunto ou uma empresa adotar a
sustentabilidade no universo corporativo? Não sou um pensador estrangeiro, desses que todos ficam
achando mais inteligentes do que os brasileiros, mas entendo que fundamentalmente a diferença
está numa qualidade humana chamada generosidade – e que a generosidade é o quarto elemento
do triple bottom line.
Generosidade é a qualidade do que é generoso, pródigo, do que perdoa facilmente, nobre, leal;
a virtude de quem acrescenta algo ao próximo. Generosas são tanto as pessoas que sentem prazer em
dividir algo com mais indivíduos, porque isso lhes fará bem (em um contexto egocêntrico), quantas
aquelas pessoas que dividirão bens tangíveis ou intangíveis com outros, sem a necessidade de receber
algo em troca. É o contrário da ganância. E isto se aplica quase que literalmente para organizações,
porque empresas não pensam: por trás delas sempre estão gestores humanos.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
28
Responsabilidade Social
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
29
Responsabilidade Social
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
30
Responsabilidade Social
TEXTO COMPLEMENTAR 02
Relacionamento com partes interessadas
Pesquisa realizada pelo Uniethos em 2012 mostra que o relacionamento com stakeholders é um processo
intrínseco ao planejamento e à inovação.
O debate sobre a finalidade das empresas oscilou desde a década de 1950 entre o chamado
“capitalismo de stakeholders” e o “shareholder capitalism” (“capitalismo do acionista”). Um dos mar-
cos do início desse debate foi em 1951, quando Frank W. Abrams, então presidente do conselho da
Standard Oil of New Jersey, declarou: “O papel da administração é manter o equilíbrio equânime e
funcional entre reivindicações de distintos grupos de interesse diretamente afetados [...], acionistas,
funcionários, clientes e o público em geral”.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
31
Responsabilidade Social
A mais importante reação de um número expressivo de empresas tem sido a criação de padrões
socioambientais de produção e de gestão de cadeias de valor que são construídos em processos de
diálogo com organizações da sociedade civil e governos, as chamadas “iniciativas multistakeholders”.
Críticas desse tipo fizeram com que líderes empresariais começassem a defender o movimen-
to iniciado pelo CEO da Unilever, Paul Polman, de não mais publicar relatórios trimestrais e desen-
volver incentivos para estratégias e ações de longo prazo. Empresas bem-sucedidas a longo prazo
são aquelas, como mostrou Rosabeth Moss Kanter, que agem como instituições sociais, constroem
relacionamentos duradouros e criam valor para a sociedade, ou seja, são empresas cujas estratégias
de negócios dependem do envolvimento estratégico de stakeholders.
As empresas brasileiras estão preparadas para essas mudanças? Uma pesquisa realizada
pelo Uniethos em 2012, com 250 empresas que possuem estratégias de sustentabilidade integra-
das aos seus negócios, mostra que o relacionamento com stakeholders é um processo intrínseco ao
planejamento e à inovação. Mais de 60% dessas empresas mantêm parcerias com organizações da
sociedade civil e 50% afirmam ter relações contínuas com stakeholders, mas apenas 25% organizam
processos de consultas sobre as estratégias de negócios e uma pequena parcela de 10% das empresas
que possuem estratégias de sustentabilidade conta com stakeholders externos em seus sistemas de
governança.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
32
Responsabilidade Social
Este texto faz parte de uma série de artigos de especialistas promovida pela área de Gestão
Sustentável, do Instituto Ethos, cujo objetivo é subsidiar e estimular as boas práticas de gestão.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
33
Responsabilidade Social
Este módulo procura ampliar as reflexões sobre Responsabilidade Social, demonstrando que o
tema já deve ser percebido de maneira mais ampla, relacionando-o inclusive a questões econômicas.
A relação Social X Econômico é percebida até mesmo quando refletimos sobre a postura das
empresas no que diz respeito a questões sociais, a seu protagonismo na busca por soluções para pro-
blemas diversos que vão além do seu dia a dia.
Social X Econômico
O momento atual nos leva à reflexões sobre o quanto as questões sociais podem, e interferem,
no dia a dia de cada um de nós e das empresas inclusive.
Perceber que não mais podemos ignorar que o modo como as pessoas vivem, a qualidade da
vida que têm fazem parte do conjunto de circunstâncias que atuam diretamente no modo, por exem-
plo, como o país está se desenvolvendo é imperativo, para que se possa promover ações para, pelo
menos, amenizar situações de risco social.
Uma empresa que está bem do ponto de vista econômico, porém que não sabe transformar seu
lucro financeiro em benefícios sociais não pode se vangloriar de seus resultados.
Estar bem quando tudo ao redor desmorona não é, definitivamente, estar bem.
No texto Gestão Social e Transformação da Realidade (publicado em 1999 e revisado em 2013),
Dowbor faz algumas afirmações que nos levam a refletir sobre a relação entre social e econômico.
• “Esta mudança profunda de enfoque foi positiva. As áreas empresariais, com suporte de nume-
rosos estudos do Banco Mundial, passaram a entender que não se trata de simples cosmética
social, mas das condições indispensáveis para a própria produtividade empresarial. É a visão que
leva, em numerosos países, a que as próprias empresas deem forte sustento político ao ensino
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
34
Responsabilidade Social
No Brasil, temos o Instituto Ethos, como suporte para aquelas empresas que desejam mudar de
postura e desenvolver uma forma de gestão mais ética, que esteja mais de acordo com o momento
atual. Um momento que demanda ética, enfoque no coletivo, pensamento não somente no lucro, mas
no que de bom pode advir do mesmo.
Instituto Ethos
O Instituto Ethos de Empresas e Responsabilidade Social é uma Organização da Sociedade Civil
de Interesse Público, OSCIP, criada com a missão de mobilizar, sensibilizar e ajudar as empresas a gerir
seus negócios de forma socialmente responsável, tornando-as parceiras na construção de uma socie-
dade sustentável e justa.
Seus 1508 (dados de 10/03/2013) associados – empresas de diferentes setores e portes – têm
faturamento anual correspondente a cerca de 35% do PIB brasileiro e empregam cerca de 2 milhões
de pessoas, tendo como característica principal o interesse em estabelecer padrões éticos de relacio-
namento com funcionários, clientes, fornecedores, comunidade, acionistas, poder público e com o
meio ambiente.
Porte Total %
Fonte: www.ethos.org.br
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
35
Responsabilidade Social
Dia V
Promovido pela FIEMG, desde 2001:
Primeira edição: mais de 11 mil voluntários, em 44 cidades.
Em 2011: 60 mil voluntários, desenvolveram 3.740 ações, em 152 cidades.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
36
Responsabilidade Social
TEXTO COMPLEMENTAR
Responsabilidade social empresarial e sustentabilidade para a gestão empresarial
O artigo mostra como as retóricas e controvérsias em torno desses conceitos são uma cortina de fumaça para a
gestão das organizações.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
37
Responsabilidade Social
rências históricas como caridade, paternalismo e assistencialismo, que têm uma conotação negativa,
porque não trouxeram transformações sociais e econômicas efetivas para o desenvolvimento das co-
munidades. Hoje, quando se pensa em filantropia empresarial nota-se consenso sobre a exigência de
que esse investimento ocorra como uma política da empresa, e não somente como um compromisso
pessoal do empresário. Assim, buscaram termos alternativos para designar as ações próprias a esse
campo, como investimento social, ação social empresarial, participação social ou comunitária da em-
presa ou desenvolvimento social2.
Uma das grandes questões que são levantadas em relação aos temas sociais e ambientais é se
estes afetam a competitividade das empresas. Segundo a visão clássica da empresa, incorporar as
questões sociais e ambientais além da obrigação legal eleva os custos e reduz o lucro das empresas. O
debate sobre o conteúdo e extensão da responsabilidade social nos negócios foi intenso, no sentido
de contrapor o desempenho econômico ao social e ambiental. O papel das empresas incluiria lucros,
mas, em vez da maximização do lucro de curto prazo, os negócios deveriam buscar lucros de longo
prazo, obedecer às leis e regulamentações, considerar o impacto não mercadológico de suas decisões
e procurar maneiras de melhorar a sociedade por uma atuação orientada para a responsabilidade e
sustentabilidade dos negócios2.
O conceito de desenvolvimento sustentável está hoje totalmente integrado ao conceito de res-
ponsabilidade social: não haverá crescimento econômico em longo prazo sem progresso social e tam-
bém sem cuidado ambiental. Todos os lados devem ser vistos e tratados com pesos iguais. Mesmo
porque estes são aspectos inter-relacionados. Da mesma forma que o crescimento econômico não se
sustenta sem uma equivalência social e ambiental, programas sociais ou ambientais corporativos não
se sustentarão se não houver o equilíbrio econômico da empresa.
A figura a seguir apresenta a evolução de conceitos de RSE e sustentabilidade.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
38
Responsabilidade Social
O modelo da sustentabilidade é uma nova forma de fazer negócios, que tem como pressupos-
to o novo papel da empresa na sociedade. Sustentabilidade e responsabilidade social trazem para o
modelo de negócios a perspectiva de longo prazo, a inclusão sistemática da visão e das demandas
das partes interessadas, e a transição para um modelo em que os princípios, a ética e a transparência
precedem a implementação de processos, produtos e serviços.
* Pesquisadora e consultora da FIPE, Fernanda Gabriela Borger é professora da FIA e do Progra-
ma de Educação Continuada GVPEC.
Notas
1
SENGE, Peter. “The Sustainable Supply Chain an Interview with Peter Senge”, por Steven
Prokesch. Harvard Business Review, outubro de 2010.
Este texto faz parte de uma série de artigos de especialistas promovida pela área de Gestão Sus-
tentável do Instituto Ethos, cujo objetivo é subsidiar e estimular as boas práticas de gestão.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
39
Responsabilidade Social
Sustentabilidade
Quando se fala em sustentabilidade, automaticamente a relacionamos a questões ambientais.
O fato é que sustentabilidade está também relacionada a questões sociais.
De acordo com o Relatório de Desenvolvimento Humano 2011, do Programa das Nações Unidas
para o Desenvolvimento, PNUD, a sustentabilidade está relacionada aos princípios básicos de igualda-
de, entre eles justiça social e maior acesso a uma melhor qualidade de vida.
Para que se possa atender a esses princípios são necessárias ações que não sejam somente
pontuais. Pelo contrário, tais ações demandam empenho por parte dos envolvidos, sejam empresas,
organizações sociais, pessoas físicas.
Para mudarmos a realidade é necessária, muitas vezes, a união do assistencialismo com a sus-
tentabilidade.
Não é raro que se consiga a participação de crianças moradoras de área de risco social em um
projeto que envolve educação, cultura, ou mesmo esporte, somente porque as refeições diárias fazem
parte do dia a dia do projeto; ou mesmo porque cestas básicas são distribuídas mensalmente.
Isso não tira o mérito do projeto, simplesmente explica como, muitas vezes, o chamado assis-
tencialismo é necessário.
Com certeza, um projeto interessante, criado a partir de necessidades reais vai atrair a atenção
dessas crianças, para que lá permaneçam e possam se desenvolver como cidadãos, mas, em um pri-
meiro momento, é preciso se pensar: quem tem fome aprende? Quem tem fome consegue praticar
esporte?
Essa é uma reflexão que pode, e deve ser feita.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
40
Responsabilidade Social
TEXTO COMPLEMENTAR
Artigo - O Assistencialismo e o Bolsa Família
* Fabio Veras Soares
O programa Bolsa Família tem recebido críticas à esquerda e à direita. A principal acusação
é que ele seria um programa assistencialista. Na verdade o programa Bolsa Família como qual-
quer programa focalizado nos mais pobres é um programa de assistência social. No dicionário Au-
rélio o termo “assistência social” é definido como “serviço gratuito, de natureza diversa, prestado
aos membros da comunidade social, atendendo as necessidades daqueles que não dispõem de
recursos suficientes”. Assistencialismo, que por sinal não consta no dicionário, é na verdade uma
deformação na prestação da “assistência social”, envolvendo troca de favores e critérios pouco
claros na forma de seleção dos beneficiários. Portanto, um programa assistencialista é um progra-
ma de “assistência social” utilizado como mecanismo de troca de favores. Como a crítica ao Bolsa
Família não se baseia apenas em numa crítica à forma de gestão, mas sim à própria natureza do
programa, pode-se concluir que o que se questiona é a “oportunidade” de se ter um esse tipo de
programa no Brasil. Nessa(s) visão(ões) crítica(s) o programa seria ruim por: 1) acomodar o pobre
que não buscaria mais trabalho e ascender socialmente e 2) desperdiçar dinheiro público com
assistência quando o que importa é gerar emprego e renda, única maneira de tirar a população
da pobreza. Dar dinheiro aos mais pobres é uma ideia tão ruim assim?
O que se esquece é que o Estado - desde sua origem - tributa e redistribui renda entre os
diversos segmentos da sociedade. Ou seja, além de prover bens públicos, a função do Estado é
tirar de e dar renda a diferentes segmentos da sociedade. Se essa redistribuição vai ajudar os
mais pobres, ou os mais ricos, ou vai ser neutra é uma questão que depende de fatores políticos,
sociais e econômicos de um determinado período histórico. Na Colônia e no Império medidas
redistributivas se davam tanto mediante programas assistenciais (ou o amparo social como se
dizia à época) como, por exemplo, a concessão de pensões a órfãos e à viúvas honestas, ajuda
à manutenção das casas de misericórdia, assim como por meio de concessões de mercês e mo-
nopólios para a exploração de certas atividades econômicas. O amparo social era assistencialista
porque baseado na troca de favores e não como uma política pública - ou um direito - cujo obje-
tivo seria o de proteger os que mais necessitam. A concessão de mercês e monopólios, por sua
vez, visava a manutenção do status quo e de privilégios em mãos de poucos, não visando nem o
bem comum nem o progresso econômico. Formas contemporâneas desse tipo de transferência
ainda persistem quando, por exemplo, os fundos públicos são chamados a cobrir “buracos” de
fundos privados que, em geral, se destinam aos grupos menos necessitados da sociedade - uma
fração diminuta da população, mas que abocanha a maior parte da renda nacional e, em alguns
casos, tem maior facilidade de acesso aos recursos públicos. Fenômeno que muitas vezes não é
explicado somente pelo retorno dos atributos produtivos desses segmentos da sociedade.
Seria o Bolsa Família uma versão moderna das arcaicas esmolas reais/imperiais? Poderia o
Bolsa Família ter um efeito-preguiça generalizado entre os mais pobres de modo a prevenir não
só a ascensão social das famílias beneficiárias como também atrapalhar o desenvolvimento eco-
nômico do país, ao desviar recursos de investimentos prioritários?
O chamado “efeito-preguiça” carece totalmente de base real. Em primeiro lugar, o benefício
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
41
Responsabilidade Social
é muito baixo para ter impactos significativos sobre a oferta de trabalho. É difícil imaginar que
com um benefício mensal de no máximo R$ 95,00 (o que equivale na melhor das hipóteses a uma
renda per capita de R$ 23,70, isto é, a renda de um domicílio com um adulto e 3 crianças) o(s)
membro(s) adulto(s) daquele domicílio se retiraria(m) do mercado de trabalho ou abandonariam
suas atividades de subsistência. Além disso, as evidências empíricas baseadas em avaliações ex-
perimentais de programas similares, como o Progresa/Oportunidades no México, mostram que
o impacto é nulo sobre a oferta de trabalho dos beneficiários (ver recente estudo de Emmanuel
Skoufias e Vicenzo di Maro: http://ideas.repec.org/p/wbk/wbrwps/3973.html).
Os dados da PNAD 2004, por sua vez, indicam que os indivíduos que moram em domicílios
onde existe um beneficiário do Bolsa Família não têm uma taxa de participação no mercado de
trabalho menor do que seus contrapartes em domicílios sem beneficiários, mas com renda simi-
lar. Ao contrário, a taxa de participação dos “beneficiários” tende a ser maior do que a taxa de
participação dos “não-beneficiários”. Esse resultado vale tanto para chefes e chefas de domicílio
como para seus respectivos cônjuges. Por exemplo, entre os 10% mais pobres, a taxa de partici-
pação no mercado de trabalho dos moradores adultos (18 a 64 anos) é de 73% para domicílios
com beneficiários e 67% para domicílios sem beneficiários. Essa maior participação se mantém
para homens chefes (93% e 87%), homens cônjuges (84% e 81%), mulheres cônjuges (60% e 47%)
e é, praticamente, igual para mulheres chefes (64,5% e 64,4%). Esse resultado é observado tam-
bém para extratos um pouco menos pobres como o segundo, o terceiro e o quarto décimos da
distribuição.
O temor de um impacto negativo sobre o crescimento também nos parece equivocado. Se
for verdade que é necessário crescer para melhorar o bem-estar de todos, também é verdade
que o impacto do crescimento sobre a pobreza é mediado pela distribuição inicial dos recursos de
uma sociedade. Em sociedades extremamente desiguais como a brasileira, as taxas de crescimen-
to necessárias para reduzir a pobreza são bem mais elevadas do que em sociedades com menos
desigualdade. Além disso, também é verdade que pobreza e desigualdade de renda diminuem o
potencial de crescimento de uma economia. Deste modo, políticas que reduzam a desigualdade
não só afetam diretamente a pobreza como aumentam o potencial do crescimento e magnificam
o impacto do mesmo sobre a redução da pobreza. Por esse motivo, políticas redistributivas são
sempre muito bem vindas para aqueles que acreditam que a pobreza deve ser reduzida o mais
rapidamente possível. Nesse sentido, vale a pena ver como a Bolsa Família tem se saído como um
programa redistributivo. Os resultados de diversos estudos com períodos e metodologias diferen-
tes apontam para um grande impacto da Bolsa Família.
No texto “Cash Transfer Programmes in Brazil: Impacts on Poverty and Inequality” (http://
www.undp-povertycentre.org/newsletters/WorkingPaper21.pdf) se mostra que entre os compo-
nentes que contribuíram para a redução da desigualdade - observada entre 1995 e 2004, o Bolsa
Família está em terceiro lugar - perdendo para a renda do trabalho e para pensões e aposentado-
rias vinculadas ao salário mínimo -, sendo responsável por 13% da redução do índice de Gini no
período, mas corresponde a apenas 0,5% da renda total das famílias brasileiras. Estes resultados
mostram que mesmo uma pequena transferência pode ter um grande impacto sobre a desigual-
dade quando bem focalizada.
Dados os resultados acima o que surpreende é que se tenha levado tanto tempo para des-
cobrir uma maneira efetiva de reduzir a desigualdade e diminuir a pobreza: transferir renda (di-
nheiro) aos mais pobres! E esse dinheiro não é simples assistencialismo, como rotineiramente se
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
42
Responsabilidade Social
* Pesquisador do Ipea
Símbolos
Adotados no mundo todo, os ícones que representam os 8 ODM foram criados voluntariamente,
em 2005, no Brasil, como parte da campanha Nós Podemos, pela agência McCann-Erickson. O mentor
e coordenador da campanha foi o publicitário Percival Caropreso.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
43
Responsabilidade Social
Propondo que todas as crianças, em todas as regiões – independente de gênero, etnia e condi-
ções sociais – terminem o ensino fundamental, este objetivo está também relacionado à diminuição
da evasão escolar, à melhoria da qualidade do ensino, à elevação do número de anos na escola e à
diminuição da defasagem idade-série.
Este objetivo, além da igualdade entre os sexos em todos os níveis de ensino, propõe a busca
pela autonomia das mulheres, combate ao preconceito, ampliação das vagas e ascensão das mulheres
no mercado de trabalho, igualdade nos salários para mulheres e homens que desempenham a mesma
função; além do desempenho de papéis cada vez mais ativos no mundo, pelas mulheres.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
44
Responsabilidade Social
Este objetivo está relacionado, entre outras coisas, à melhoria das condições de saneamento
e higiene, promoção de campanhas de vacinação, melhoria dos serviços de saúde e ampliação do
acesso aos mesmos. Enfim, depende de políticas, programas, recursos direcionados não somente às
crianças mas também às famílias e comunidades em geral.
Este objetivo está diretamente relacionado à promoção da saúde integral das mulheres em ida-
de reprodutiva. Inclui elementos como planejamento familiar, acompanhamento pré-natal, melhoria
dos serviços de saúde e ampliação do acesso aos mesmos. Um elemento importante é a presença de
profissionais qualificados na hora do parto.
Este objetivo propõe deter a proliferação de doenças, o que necessita de ampliação do acesso às
informações por parte da população, também a meios de prevenção e de tratamento, além do com-
bate à discriminação. Também está relacionado à melhoria das condições de saneamento e de higiene
da população, da preocupação com questões ambientais e nutritivas.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
45
Responsabilidade Social
Este objetivo é bastante amplo e se refere às questões ambientais, como preservação dos re-
cursos naturais, recuperação de áreas degradadas e a transformação de remanescentes em áreas de
preservação; também às questões relacionadas a emissões de CO2 e de outros agentes de poluição,
adoção de princípios de sustentabilidade nas políticas públicas e de forma geral, na cultura do povo.
Outras questões que fazem parte deste objetivo são o acesso à água potável, ao esgotamento sanitá-
rio e à melhoria dos assentamentos precários.
Este objetivo está relacionado ao estabelecimento de parcerias para que todos os objetivos an-
teriores sejam alcançados e a melhoria da qualidade de vida de toda a população seja estabelecida.
Busca também a participação de toda a sociedade em busca de um mundo melhor, mais justo e sus-
tentável, tanto no que se refere às questões ambientais quanto às sociais.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
46
Responsabilidade Social
TEXTO COMPLEMENTAR
Declaração Universal dos Direitos Humanos
Adotada e proclamada pela Assembleia Geral das Nações Unidas (resolução 217 A III) em 10 de
dezembro 1948.
Preâmbulo
Considerando que o reconhecimento da dignidade inerente a todos os membros da família hu-
mana e de seus direitos iguais e inalienáveis é o fundamento da liberdade, da justiça e da paz no
mundo.
Considerando que o desprezo e o desrespeito pelos direitos humanos resultaram em atos bár-
baros que ultrajaram a consciência da humanidade e que o advento de um mundo em que mulheres
e homens gozem de liberdade de palavra, de crença e da liberdade de viverem a salvo do temor e da
necessidade foi proclamado como a mais alta aspiração do ser humano comum.
Considerando ser essencial que os direitos humanos sejam protegidos pelo império da lei, para
que o ser humano não seja compelido, como último recurso, à rebelião contra a tirania e a opressão.
Considerando ser essencial promover o desenvolvimento de relações amistosas entre as nações.
Considerando que os povos das Nações Unidas reafirmaram, na Carta, sua fé nos direitos fun-
damentais do ser humano, na dignidade e no valor da pessoa humana e na igualdade de direitos do
homem e da mulher e que decidiram promover o progresso social e melhores condições de vida em
uma liberdade mais ampla.
Considerando que os Países-Membros se comprometeram a promover, em cooperação com as
Nações Unidas, o respeito universal aos direitos e liberdades fundamentais do ser humano e a obser-
vância desses direitos e liberdades.
Considerando que uma compreensão comum desses direitos e liberdades é da mais alta impor-
tância para o pleno cumprimento desse compromisso.
Agora portanto a Assembleia Geral proclama a presente Declaração Universal dos Direitos Hu-
manos como o ideal comum a ser atingido por todos os povos e todas as nações, com o objetivo de
que cada indivíduo e cada órgão da sociedade tendo sempre em mente esta Declaração, esforce-se,
por meio do ensino e da educação, por promover o respeito a esses direitos e liberdades, e, pela ado-
ção de medidas progressivas de caráter nacional e internacional, por assegurar o seu reconhecimento
e a sua observância universais e efetivos, tanto entre os povos dos próprios Países-Membros quanto
entre os povos dos territórios sob sua jurisdição.
Artigo 1
Todos os seres humanos nascem livres e iguais em dignidade e direitos. São dotados de razão e
consciência e devem agir em relação uns aos outros com espírito de fraternidade.
Artigo 2
1. Todo ser humano tem capacidade para gozar os direitos e as liberdades estabelecidos nesta
Declaração, sem distinção de qualquer espécie, seja de raça, cor, sexo, língua, religião, opinião política
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
47
Responsabilidade Social
ou de outra natureza, origem nacional ou social, riqueza, nascimento, ou qualquer outra condição.
2. Não será também feita nenhuma distinção fundada na condição política, jurídica ou interna-
cional do país ou território a que pertença uma pessoa, quer se trate de um território independente,
sob tutela, sem governo próprio, quer sujeito a qualquer outra limitação de soberania.
Artigo 3
Todo ser humano tem direito à vida, à liberdade e à segurança pessoal.
Artigo 4
Ninguém será mantido em escravidão ou servidão; a escravidão e o tráfico de escravos serão
proibidos em todas as suas formas.
Artigo 5
Ninguém será submetido à tortura, nem a tratamento ou castigo cruel, desumano ou degradante.
Artigo 6
Todo ser humano tem o direito de ser, em todos os lugares, reconhecido como pessoa perante a lei.
Artigo 7
Todos são iguais perante a lei e têm direito, sem qualquer distinção, a igual proteção da lei.
Todos têm direito a igual proteção contra qualquer discriminação que viole a presente Declaração e
contra qualquer incitamento a tal discriminação.
Artigo 8
Todo ser humano tem direito a receber dos tribunais nacionais competentes remédio efetivo
para os atos que violem os direitos fundamentais que lhe sejam reconhecidos pela constituição ou
pela lei.
Artigo 9
Ninguém será arbitrariamente preso, detido ou exilado.
Artigo 10
Todo ser humano tem direito, em plena igualdade, a uma justa e pública audiência por parte de
um tribunal independente e imparcial, para decidir seus direitos e deveres ou fundamento de qual-
quer acusação criminal contra ele.
Artigo 11
1.Todo ser humano acusado de um ato delituoso tem o direito de ser presumido inocente até
que a sua culpabilidade tenha sido provada de acordo com a lei, em julgamento público no qual lhe
tenham sido asseguradas todas as garantias necessárias à sua defesa.
2. Ninguém poderá ser culpado por qualquer ação ou omissão que, no momento, não constitu-
íam delito perante o direito nacional ou internacional. Também não será imposta pena mais forte de
que aquela que, no momento da prática, era aplicável ao ato delituoso.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
48
Responsabilidade Social
Artigo 12
Ninguém será sujeito à interferência na sua vida privada, na sua família, no seu lar ou na sua
correspondência, nem a ataque à sua honra e reputação. Todo ser humano tem direito à proteção da
lei contra tais interferências ou ataques.
Artigo 13
1. Todo ser humano tem direito à liberdade de locomoção e residência dentro das fronteiras de
cada Estado.
2. Todo ser humano tem o direito de deixar qualquer país, inclusive o próprio e a esse regressar.
Artigo 14
1. Todo ser humano, vítima de perseguição, tem o direito de procurar e de gozar asilo em outros
países.
2. Esse direito não pode ser invocado em caso de perseguição legitimamente motivada por cri-
mes de direito comum ou por atos contrários aos objetivos e princípios das Nações Unidas.
Artigo 15
1. Todo ser humano tem direito a uma nacionalidade.
2. Ninguém será arbitrariamente privado de sua nacionalidade, nem do direito de mudar de
nacionalidade.
Artigo 16
1. Os homens e mulheres de maior idade, sem qualquer restrição de raça, nacionalidade ou reli-
gião, têm o direito de contrair matrimônio e fundar uma família. Gozam de iguais direitos em relação
ao casamento, sua duração e sua dissolução.
2. O casamento não será válido senão com o livre e pleno consentimento dos nubentes.
3. A família é o núcleo natural e fundamental da sociedade e tem direito à proteção da socieda-
de e do Estado.
Artigo 17
1. Todo ser humano tem direito à propriedade, só ou em sociedade com outros.
2. Ninguém será arbitrariamente privado de sua propriedade.
Artigo 18
Todo ser humano tem direito à liberdade de pensamento, consciência e religião; esse direito
inclui a liberdade de mudar de religião ou crença e a liberdade de manifestar essa religião ou crença
pelo ensino, pela prática, pelo culto em público ou em particular.
Artigo 19
Todo ser humano tem direito à liberdade de opinião e expressão; esse direito inclui a liberdade
de, sem interferência, ter opiniões e de procurar, receber e transmitir informações e ideias por quais-
quer meios e independentemente de fronteiras.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
49
Responsabilidade Social
Artigo 20
1. Todo ser humano tem direito à liberdade de reunião e associação pacífica.
2. Ninguém pode ser obrigado a fazer parte de uma associação.
Artigo 21
1. Todo ser humano tem o direito de tomar parte no governo de seu país diretamente ou por
intermédio de representantes livremente escolhidos.
2. Todo ser humano tem igual direito de acesso ao serviço público do seu país.
3. A vontade do povo será a base da autoridade do governo; essa vontade será expressa em
eleições periódicas e legítimas, por sufrágio universal, por voto secreto ou processo equivalente que
assegure a liberdade de voto.
Artigo 22
Todo ser humano, como membro da sociedade, tem direito à segurança social, à realização pelo
esforço nacional, pela cooperação internacional e de acordo com a organização e recursos de cada
Estado, dos direitos econômicos, sociais e culturais indispensáveis à sua dignidade e ao livre desenvol-
vimento da sua personalidade.
Artigo 23
1. Todo ser humano tem direito ao trabalho, à livre escolha de emprego, a condições justas e
favoráveis de trabalho e à proteção contra o desemprego.
2. Todo ser humano, sem qualquer distinção, tem direito a igual remuneração por igual trabalho.
3. Todo ser humano que trabalha tem direito a uma remuneração justa e satisfatória que lhe
assegure, assim como à sua família, uma existência compatível com a dignidade humana e a que se
acrescentarão, se necessário, outros meios de proteção social.
4. Todo ser humano tem direito a organizar sindicatos e a neles ingressar para proteção de seus
interesses.
Artigo 24
Todo ser humano tem direito a repouso e lazer, inclusive a limitação razoável das horas de tra-
balho e a férias remuneradas periódicas.
Artigo 25
1. Todo ser humano tem direito a um padrão de vida capaz de assegurar a si e à sua família
saúde, bem-estar, inclusive alimentação, vestuário, habitação, cuidados médicos e os serviços sociais
indispensáveis e direito à segurança em caso de desemprego, doença invalidez, viuvez, velhice ou ou-
tros casos de perda dos meios de subsistência em circunstâncias fora de seu controle.
2. A maternidade e a infância têm direito a cuidados e assistência especiais. Todas as crianças,
nascidas dentro ou fora do matrimônio, gozarão da mesma proteção social.
Artigo 26
1. Todo ser humano tem direito à instrução. A instrução será gratuita, pelo menos nos graus
elementares e fundamentais. A instrução elementar será obrigatória. A instrução técnico-profissional
será acessível a todos, bem como a instrução superior, esta baseada no mérito.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
50
Responsabilidade Social
3. Os pais têm prioridade de direito na escolha do gênero de instrução que será ministrada a
seus filhos.
Artigo 27
1. Todo ser humano tem o direito de participar livremente da vida cultural da comunidade, de
fruir as artes e de participar do progresso científico e de seus benefícios.
2. Todo ser humano tem direito à proteção dos interesses morais e materiais decorrentes de
qualquer produção científica literária ou artística da qual seja autor.
Artigo 28
Todo ser humano tem direito a uma ordem social e internacional em que os direitos e liberdades
estabelecidos na presente Declaração possam ser plenamente realizados.
Artigo 29
1. Todo ser humano tem deveres para com a comunidade, na qual o livre e pleno desenvolvi-
mento de sua personalidade é possível.
2. No exercício de seus direitos e liberdades, todo ser humano estará sujeito apenas às limi-
tações determinadas pela lei, exclusivamente com o fim de assegurar o devido reconhecimento e
respeito dos direitos e liberdades de outrem e de satisfazer as justas exigências da moral, da ordem
pública e do bem-estar de uma sociedade democrática.
3. Esses direitos e liberdades não podem, em hipótese alguma, ser exercidos contrariamente
aos objetivos e princípios das Nações Unidas.
Artigo 30
Nenhuma disposição da presente Declaração poder ser interpretada como o reconhecimento a
qualquer Estado, grupo ou pessoa, do direito de exercer qualquer atividade ou praticar qualquer ato
destinado à destruição de quaisquer dos direitos e liberdades aqui estabelecidos.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
51
Responsabilidade Social
MÓDULO VI – PROGRAMA 5 S
Método que visa tornar os ambientes de trabalho organizados, ordenados, limpos e saudáveis,
o Programa 5S pode ser considerado a porta de entrada para a Qualidade Total.
O Programa 5S foi concebido por Kaoru Ishikawa em 1950, no Japão do pós-guerra (2ª Guerra
Mundial). Leva esse nome devido às iniciais das cinco palavras japonesas que sintetizam as cinco eta-
pas do programa: SEIRI, SEITON, SEISO, SEIKETSU, SHITSUKE.
* Tenha sempre em mente: o que é inútil para você pode ser útil para outra pessoa.
O programa 5S não se resume a mudar a aparência do local de trabalho ou outro local qualquer.
Na verdade, sua essência é outra: MUDAR ATITUDES E COMPORTAMENTO.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
52
Responsabilidade Social
TEXTO COMPLEMENTAR
Brasil: sociedade do desperdício
Em 2010, o País produziu 60,8 milhões de toneladas de lixo, quantidade 6,8% mais alta que a
de 2009 e seis vezes maior que o crescimento populacional.
Em 2010, o Brasil produziu 60,8 milhões de toneladas dos chamados resíduos sólidos urbanos.
Essa quantidade foi 6,8% mais alta que a registrada em 2009 e seis vezes maior que o crescimento
populacional que, no mesmo período, ficou em pouco mais de 1%. De todo esse resíduo, cerca de 6,5
milhões de toneladas foram a parar em rios, córregos e terrenos baldios. Ainda 42,4%, ou seja, 22,9
milhões de toneladas foram depositados em lixões e aterros controlados e que não fazem o tratamen-
to adequado dos resíduos. Estas conclusões fazem parte do estudo Panorama dos Resíduos Sólidos
divulgado na semana passada pela Abrelpe (Associação Brasileira de Empresas de Limpeza Pública e
Resíduos Especiais).
Detalhes do mesmo relatório demonstram que estamos muito, mas muito distantes de tornar
o consumo consciente uma prática cotidiana na vida das pessoas em nosso país. Um bom exemplo é
que no ano passado, a média de lixo gerado por brasileiro ficou em 378 quilos, o que é 5,3% superior
aos 359 quilos de lixo per capita computados em 2009.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
53
Responsabilidade Social
privada que não se empenha em tratar resíduos e criar ações para reaproveitamento de materiais
na sua linha de produção e o cidadão que desperdiça, não reutiliza, não recicla e ainda joga lixo nas
praças, ruas, rios e lagos.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
54
Responsabilidade Social
MÓDULO VII
RESPONSABILIDADE SOCIAL NO CONTEXTO PROFISSIONAL
De acordo com OLIVEIRA (2011), “a globalização que requer novas tecnologias e mudanças na
produção demanda também um novo tipo de profissional, flexível, criativo, capaz de compreender
todo o processo por trás da atividade que exerce. Esse profissional deve também entender o papel
fundamental que pode ter em sua comunidade, buscando seu desenvolvimento pessoal, porém sem
prejuízo para o coletivo.”
Em um mundo que apresenta tantos desafios, não é possível que um profissional, de qualquer
área, não se preocupe com o peso das suas decisões e ações.
Utilizar suas habilidades técnicas para buscar soluções para problemas vivenciados por um de-
terminado grupo de pessoas é somente uma das vertentes da Responsabilidade Social no contexto
profissional.
Dependendo da área onde atua, o profissional já desenvolve ações que têm um contexto social,
ou ambiental, bastante explícito. É o caso, por exemplo, de profissionais da educação, saúde, assis-
tência social, de funcionários de ONGs. A atividade que estes profissionais desempenham exigem que
eles estejam em sintonia com questões sociais.
O mesmo acontece, por exemplo, com um Técnico em Meio Ambiente, cuja atuação já é desen-
volvida tendo sempre como foco a sustentabilidade ambiental.
Mas, o que acontece com profissionais de áreas que, aparentemente, não estão relacionadas a
contextos sociais ou ambientais?
Em algumas áreas, a falta de sintonia com questões sociais ou ambientais é somente aparente.
Aparente porque a Responsabilidade Social está em todas as áreas.
Um Técnico em Eletrônica, por exemplo, pode desenvolver um novo modelo de cadeira de rodas
motorizada. Além do produto em si, ser totalmente relacionado à Responsabilidade Social, a mesma
estará mais em evidência se o profissional pensar em uma solução para diminuir o custo de tal cadeira;
possibilitando assim que mais pessoas com necessidades especiais possam ter acesso a esse recurso.
Para quem pensa que a área de exatas está fora do contexto social, isso não é verdade.
Esta área está recheada de recursos que são desenvolvidos para melhorar a qualidade de vida
das pessoas.
Mas, o profissional pode, e deve ir além das suas atividades profissionais. Isto nos leva a outra
vertente da Responsabilidade Social no contexto profissional: o voluntariado.
De acordo com a Organização das Nações Unidas, “voluntário é o jovem, adulto ou idoso que,
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
55
Responsabilidade Social
devido a seu interesse pessoal e seu espírito cívico, dedica parte do seu tempo, sem remuneração, a
diversas formas de atividades de bem estar social ou outros campos.”
No Brasil, o artigo 1º da Lei 9.608, de 18 de fevereiro de 1998, define como serviço voluntário
“a atividade não remunerada, prestada por pessoa física a entidade pública de qualquer natureza,
ou a instituição privada de fins não lucrativos, que tenha objetivos cívicos, culturais, educacionais,
científicos, recreativos ou de assistência social, inclusive mutualidade.”
Independente da forma como é definido o voluntariado, o que fica claro, quando o assunto é
abordado é que o voluntário é aquele que pensa no outro, que se dispõe a doar seu tempo em prol do
coletivo, seja desenvolvendo ações que são relacionadas ao seu dia a dia profissional, seja desenvol-
vendo ações que o levem a sair de sua zona de conforto.
Seja qual for a definição, o voluntário é alguém que “respira” Responsabilidade Social, no seu
mais profundo sentido.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
56
Responsabilidade Social
TEXTO COMPLEMENTAR
Trecho retirado do artigo Responsabilidade social e voluntariado no Brasil, de Renato
Arcúrio
Um objetivo comum e a cada dia mais presente na vida das organizações é a responsabilidade
social e entre as pessoas o voluntariado, que juntos estão ganhando força e crescendo em busca de
um desenvolvimento sustentável.
Renato Arcúrio
Voluntariado no Brasil
Desde nossa colonização temos trabalho voluntário no Brasil, só que com características e obje-
tivos diferentes, e o que é interessante é que ele sempre foi importante para a sociedade. A caridade,
o assistencialismo, e a militância política deram lugar à solidariedade, ao desejo de fazer o bem, ao
exercício de cidadania.
O trabalho voluntário nos últimos 10 anos assumiu um significado muito especial e significativo,
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
57
Responsabilidade Social
pois de um caráter muito mais voltado para a caridade e o altruísmo, o trabalho voluntário passa a
ter uma característica de vontade de mudança e transformação. Esta característica está muito ligada,
talvez, a um sentimento de responsabilidade e de culpa que, entre outros, contribuíram para o nasci-
mento da visão de responsabilidade social. Um breve histórico do trabalho voluntário na Brasil, para
termos uma ideia de sua evolução e de sua compreensão atual.
Séc. XVI – primeiras manifestações de assistência social, baseadas em princípios da caridade
cristã. Segunda metade do séc. XIX – “cruzada filantrópica” em vista da disseminação de doenças
contagiosas (órfãos, alienados, inválidos, delinquentes), trabalho essencialmente feminino com enfo-
que na caridade. A partir de 1930 – conceito de filantropia – a partir da transferência do Estado para
a sociedade civil da atenção social à grande massa de trabalhadores sem carteira assinada. Final da
década de 50 – movimentos sociais reivindicatórios estruturam organizações, sofrendo retração de
1965 a 1980 por influência do Estado. Anos 80 – corresponsabilidades das questões sociais entre Es-
tado, sociedade civil (ONGs, Fundações e empresas). Anos 90 – voluntário é o cidadão motivado pela
solidariedade e participação em prol de causas de interesse social e comunitário.
Segundo Lima(2010),
O caráter de mudança e ajuste social, que o trabalho voluntário propõe atualmente, não há dú-
vida de sua importância, pois que esse movimento de pessoas que se dispõem a ajudar, pressupõe um
movimento de mudança de atitude e, portanto, mudança de ética, já que ela – orientadora da conduta
individual e social - é o determinante de fato do quadro de exclusão.
Além da importância natural que têm os esforços voltados ao trabalho e aos estudos em busca
de desenvolvimento acadêmico e profissional, ganha cada vez mais relevância no currículo o campo
dedicado aos trabalhos voluntários. Um dos motivos para que isso ocorra é a preocupação das pró-
prias empresas com o conceito de sustentabilidade. Pela lógica das empresas, se elas querem ser bem
vistas do ponto de vista socioambiental, é essencial que seus funcionários deem o exemplo primeiro.
Ética no Voluntariado
O trabalho solidário, por meio do voluntariado, respeita valores, regras e princípios éticos, como
em qualquer profissão. Todo voluntário possui uma motivação e, independente desta, é essencial in-
tegrar responsabilidades e ética na função a ser executada.
Sobre isso, Srour (2000, p.51) afirma:
Os dispositivos que compõem os códigos morais traduzem valores, princípios, normas ou ideias
e vão sendo aplicados pelos agentes a situações concretas. Funcionam, portanto, como receituários,
compêndios de prescrições ou manuais a seguir nas mais diversas ocorrências.
Ao optar por assumir esse papel de voluntário, o cidadão deve ter em mente que em conjunto
a isto deve adotar uma postura ética que esteja de acordo com o papel que ele está se propondo a
exercer.
De acordo com Srour apud Souza (2000, p. 57), “a ética não é uma etiqueta que a gente põe
e tira, é uma luz que a gente projeta para segui-la com os nossos pés, do modo que pudermos, com
acertos e erros, sempre e sem hipocrisia”.
Esse conceito confirma a importância da ética em todos os momentos, seja ele profissional ou
pessoal, e no trabalho voluntário a ética deve estar sempre alinhada de acordo com o objetivo do bem
social para que o trabalho tenha sentido e resultados satisfatórios para a sociedade.
Sobre isso, Neto e Froes (2001, p. 15) afirmam, “A ética da responsabilidade social veio para
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
58
Responsabilidade Social
Considerações Finais
Muita gente não dá tanta credibilidade ao trabalho voluntário. Entretanto, quem já participou
de uma atividade como essa sabe o quanto é gratificante. Além de gerar benefícios pessoais, este é o
tipo de ação que pode contribuir para o seu crescimento profissional.
No caso da empresa, a marca fica fortalecida, a produtividade aumenta e os funcionários passam
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
59
Responsabilidade Social
a se comprometer ainda mais, resultando na conquista de um número maior de clientes. Além disso, o
voluntariado favorece o trabalho em equipe e deixa o ambiente na organização mais agradável.
Para o empregado, ele promove a possibilidade de trabalho em grupo, desenvolvendo várias ha-
bilidades, como capacidade de resolver problemas e de propor soluções. Outra vantagem do trabalho
voluntário é que ele pode enriquecer o seu currículo e abrir portas para um novo emprego.
Apesar de tudo, os verdadeiros beneficiados são aqueles que recebem este tipo de ação. Por
isso, não deixe de ajudar, pois não há forma melhor de fazer bem a si mesmo, do que fazendo o bem
a outras pessoas.
Assim, finalizo este projeto mostrando que a responsabilidade social e o trabalho voluntário es-
tão caminhando juntos nesse processo de sustentabilidade e que com o empenho de todos na busca
do bem comum, podemos viver em uma sociedade cada vez melhor.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
60
Responsabilidade Social
FONTES DE PESQUISA
CENTRO DE INFORMAÇÕES DAS NAÇÕES UNIDAS: www.unicrio.org.br. Disponível em:
<http://www.ofuturoquenosqueremos.org.br/sustainability.php>.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
61
Responsabilidade Social
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
62
Curso Técnico em
INFORMÁTICA
Etapa 2
INGLÊS INSTRUMENTAL
Inglês Instrumental
INGLÊS INSTRUMENTAL
Conteúdo:
Inglês Instrumental com estratégias de leitura: skimming, scanning, reconhecer cognatos e fal-
sos cognatos, palavras de duplo sentido.
Como usar corretamente o dicionário
GRAMÁTICA BÁSICA:
• Pronomes Pessoais;
• Pronomes Possessivos;
• Numerais cardinais e ordinais;
• Dias da semana e meses do ano;
• Verbo To Be ( presente, passado e futuro);
• Verbo There to be (presente, Passado e futuro);
• Simple Present;
• Simple Past;
• Simple Future;
• Plural dos substantivos;
• Lista de verbos irregulares.
OBJETIVOS DA DISCIPLINA:
• Compreender os Textos Técnicos específicos da área.
• Reconhecer o tempo verbal e o seu significado.
• Aplicar técnicas de tradução reconhecendo as regras básicas gramaticais.
• Conhecer e reconhecer o texto técnico na língua estrangeira.
• Conscientizar-se da importância da língua Inglesa na sua área específica.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
65
Inglês Instrumental
Carga horária total: 40h
DISTRIBUIÇÃO DE PONTOS
1º Bimestre
2º Bimestre
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
66
Inglês Instrumental
Bibliografia
Inglês Instrumental para vestibulares e concursos/ Velloso, Mônica Soares. Vestcon, 2009
Inglês. com. textos para informática/ Décio Torres, Alba Valéria Silva, Marta Rosas. Disal Editora, 2001
Reading on info tech: Inglês para Informática/ Demóstenes Marinotto, 2ª edição- São Paulo. Novatec
Editora, 2007.
Esta apostila de Inglês Instrumental está dividida em duas partes: Estratégias de Leitura e Gra-
mática Básica da Língua Inglesa.
APRESENTAÇÃO DO CURSO
“English for Specific Purposes” (E. S. P.), que em português quer dizer: Inglês com Objetivos
Específicos, também chamado de INGLÊS INSTRUMENTAL ou TÉCNICO, ou seja, é a habilidade de en-
tender textos em língua inglesa usando estratégias específicas de leitura.
Surgiu com a necessidade de comunicação rápida e eficaz em vários contextos mundiais. Como
por exemplo: durante a guerra, os soldados precisavam aprender o idioma do inimigo para sobrevive-
rem, este vocabulário básico era visto no avião, navio, nos campos de batalha.
Com o passar do tempo, outros contextos sociais foram surgindo, como: a necessidade de leitu-
ra de livros, revistas, catálogos, instruções operacionais, manuais escritos em inglês que precisavam
ser compreendidos pelos usuários, etc. Sendo assim, torna-se necessário uma abordagem específica
da língua inglesa, que atenda as necessidades profissionais dos estudantes, que são leitura e compre-
ensão de livros.
E assim, o Inglês Instrumental possui o objetivo de desenvolver a habilidade de leitura, isto é,
de compreensão de textos de diversas áreas do conhecimento escritos em língua inglesa, utilizando
para isso estratégias de leitura, a fim de tornar o aluno capaz de compreender um texto da sua área
de estudo.
Nesse enfoque, a leitura conta com o conhecimento prévio dos leitores. O inglês instrumental
consiste no “treinamento instrumental” dessa língua, em que a leitura tem por objetivo extrair conhe-
cimentos para áreas específicas de estudo.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
67
Inglês Instrumental
Vale lembrar que o inglês instrumental ou técnico não visa à comunicação oral em inglês, pois
sua principal habilidade é a leitura e o estudo de gramática restringe-se a um mínimo necessário, sen-
do normalmente associada ao texto.
MÉTODO
Desenvolve a leitura (“reading”) de forma limitada a um objetivo específico, através da habilida-
de de manipular textos em língua inglesa, tentando assimilar a compreensão geral e inferir informa-
ções específicas. A gramática é ensinada de forma contextualizada a um objetivo específico.
TÉCNICAS DE LEITURA
As técnicas de leitura, como o próprio nome diz, vão nos ajudar a ler um texto. Existem técnicas
variadas, mas veremos as mais utilizadas. Ao ler um texto em Inglês, lembre-se de usar as técnicas
aprendidas, elas vão ajudá-lo. O uso da gramática vai ajudar também.
As principais técnicas são: a identificação de cognatos, de palavras repetidas e de pistas tipo-
gráficas. Ao lermos um texto vamos, ainda, apurar a ideia geral do texto (general comprehension) e
utilizar duas outras técnicas bastante úteis: skimming e scanning.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
68
Inglês Instrumental
FAMILIARES
Familiares são palavras conhecidas pela maioria das pessoas que vive em um país altamente in-
fluenciado pela cultura dos países de Língua Inglesa. Não têm a mesma origem das palavras da Língua
Portuguesa.
Alguns exemplos de Familiares
software, hardware, CPU, delivery, shows, fast food, windows, videogame, dollar, office boy,
play, hot dog, marketing, site, mouse, etc.
PALAVRAS REPETIDAS
As palavras repetidas em um texto possuem um valor muito importante. Um autor não repete as
palavras em vão. Se elas são repetidas, é porque são importantes dentro de texto. Muitas vezes para
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
69
Inglês Instrumental
não repetir o mesmo termo, o autor utiliza sinônimos das mesmas palavras para não tornar o texto
cansativo.
DICAS TIPOGRÁFICAS
As dicas tipográficas são elementos visuais que nos auxiliam na compreensão do texto. Atenção
com datas, números, tabelas, gráficas, figuras. . . São informações também contidas no texto. Os re-
cursos de escrita também são dicas tipográficas.
Por exemplo:
. . . (três pontos) indicam a continuação de uma ideia que não está ali exposta;
negrito dá destaque a algum termo ou palavra;
itálico também destaca um termo, menos importante que o negrito;
„ „ (aspas) salientam a importância de alguma palavra;
( ) (parênteses) introduzem uma ideia complementar ao texto.
GENERAL COMPREHENSION
A ideia geral de um texto é obtida com o emprego das técnicas anteriores. Selecionando-se
criteriosamente algumas palavras, termos e expressões no texto, poderemos chegar à ideia geral do
texto.
DICIONÁRIO
O dicionário deve ser utilizado como ÚLTIMO recurso para se descobrir o significado de uma
palavra ou expressão desconhecida. Isso para que a leitura não seja lenta demais, e para que o leitor
não desanime tendo que parar toda vez que encontrar algo desconhecido.
ESTRATÉGIAS
SKIMMING: leitura rápida para ter-se uma ideia central do texto. “skim” em inglês é deslizar à
superfície, desnatar, passar os olhos por. A técnica de “skimming” nos leva a ler um texto superficial-
mente. Utilizar esta técnica significa que precisamos ler cada sentença, mas sem passarmos os olhos
sobre o texto, lendo algumas frases aqui e ali, procurando reconhecer certas palavras e expressões
que sirvam como “dicas” na obtenção de informações sobre o texto. Às vezes não é necessário ler o
texto em detalhes.
SKIMMING nada mais é do que fazer uma leitura rápida do texto para captar os conceitos e as
ideias principais, ou seja, você faz uma exploração geral do texto sem se deter em um ponto específi-
co. Está, neste momento, buscando a ideia geral do texto. Quando lemos desta maneira, rapidamente
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
70
Inglês Instrumental
passamos os olhos pelo título, lemos os parágrafos, o nome do autor, a fonte, etc. Quando termina-
mos a leitura, saberemos do que o texto trata como um todo.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
71
Inglês Instrumental
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
72
Inglês Instrumental
FALSOS COGNATOS
Cognatos são palavras que possuem a mesma origem, tendo portanto, ortografias semelhantes.
Com a evolução de cada idioma, algumas palavras podem apresentar significados diferentes para cada
país. Essas palavras são denominadas de “falsos cognatos” ou False Friends.
Na tabela abaixo, a lista da esquerda relaciona algumas palavras do inglês e seus significados no
português, e a da direita, palavras em português e seu correspondente(s) no inglês:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
73
Inglês Instrumental
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
74
Inglês Instrumental
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
75
Inglês Instrumental
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
76
Inglês Instrumental
FALSE COGNATES EXERCISE
A DAY AT WORK
In the morning I attended a meeting between management and union representatives. The
discussion was very comprehensive, covering topics like working hours, days off, retirement age, etc.
Both sides were interested in an agreement and ready to compromise. The secretary recorded every-
thing in the notes. Eventually, they decided to set a new meeting to sign the final draft of the agree-
ment.
Back at the office, a colleague of mine asked me if I had realized that the proposed agreement
would be partially against the company policy not to accept workers that have already retired. I pre-
tended to be really busy and late for an appointment, and left for the cafeteria. Actually, I didn’t want
to discuss the matter at that particular moment because there were some strangers in the office.
After lunch I attended a lecture given by the mayor, who is an expert in tax legislation and has
a graduate degree in political science. He said his government intends to assist welfare programs
and senior citizens, raise funds to improve college education and build a public library, and establish
tougher limits on vehicle emissions because he assumes this is what the people expect from the gov-
ernment.
Texto e lista extraídos do site www. sk. com. br , autor Ricardo Schütz, 1999
Escreva o verdadeiro significado das palavras em destaque no texto acima em uma folha separada.
False Friend - Exercises
Choose the correct alternative:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
77
Inglês Instrumental
5. The _____________ said: “Private farm”. Keep out!
( ) news
( ) notice
6. Aunt Jennie left me all her property when she died because I was the only____________ she had.
( ) parent
( ) relative
7. After a short rest, he felt ready to ____________ his work.
( ) resume
( ) summarize
8. I’m going to buy an ____________in the North.
( ) state
( ) estate
9. We are very proud of our daughters’ ____________in their studies.
( ) exit
( ) success
10. Martin Luther King fought against racial ___________.
( ) loss
( ) prejudice
11. Nothing can be worse than the ____________ of health.
( ) loss
( ) prejudice
12. The robber was ____________ when he was running away from the bank.
( ) arrested
( ) dragged
13. The boyfriend didn’t ____________ to hurt his girlfriend’s feelings.
( ) pretend
( ) intend
14. There is nothing special about that car. It is quite ____________.
( ) ordinary
( ) disgusting
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
78
Inglês Instrumental
15. Professor Spillane will give a ____________ on Maya architecture.
( ) lecture
( ) reading
16. He’s a former ____________. He spent ten years in jail.
( ) sure
( ) convict
17. May 13, 1888 is the ____________ of the signing of the abolition of slavery in Brazil.
( ) data
( ) date
18. ____________ believe inflation will fall.
( ) smart
( ) experts
19. The teachers asked the students to read a _________ by Machado de Assis.
( ) novel
( ) soap opera
20. As we are not very hungry, let’s have just a _________.
( ) lunch
( ) snack
21. Sidney was a colony for British ____________ till 1482, when it became a city.
( ) convict
( ) sure
22. ____________ are popular TV serials watched by thousands of people.
( ) novels
( ) soap operas
23. I don’t like the ______________ of your dress.
( ) necklace
( ) collar
24. People think he is very wealthy, but ____________ he is too poor.
( ) actually
( ) nowadays
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
79
Inglês Instrumental
25. I’m sorry, sir, those shoes are not ____________ in your size.
( ) available
( ) appraised
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
80
Inglês Instrumental
11. John collects caps.
( ) coleciona ( ) cobro
USO DO DICIONÁRIO
1º EXERCÍCIO
Você pode notar que podemos encontrar: A representação fonética das palavras; Abreviaturas;
Significado das palavras; Classe gramatical das palavras.
Veja o exemplo seguinte e responda:
1. Qual é a representação fonética da palavra “look”?
2. Quantos significados ela pode ter como substantivo? E como verbo?
3. Qual é o significado de “to look for”?
Look (luk) s. 1. Olhar m. , olhadela f. 2. Expressão f. aspecto m// v. 1 Olhar 2. Contemplar, obser-
var. 3. /considerar.
4. Prestar atenção. 5. Ter vista para. 6. Parecer. 7. Inspecionar, examinar
Have a ~ at It dê uma olhada nisto. It ~s like rain está com aspecto de chuva, ameaça chover. ~
out seja cuidadoso.
To ~ after 1. Procurar 2. Cuidar de. To ~ for 1. Procurar 2. Esperar, antecipar.
Adaptado do dicionário Inglês/Português Michaellis
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
81
Inglês Instrumental
Verbos
Quando você procura um verbo no dicionário geralmente encontra a base do verbo, por exem-
plo: look, work, teach. Mas, quando lemos textos encontramos os verbos sob diferentes formas:
looking, worked, teaches. Quando o verbo é irregular encontramos a seguinte explicação no dicioná-
rio: Fell/fel/ v. passado de fall. Assim, terá que procurar o verbo na sua forma base (fall), para encon-
trar a definição da palavra.
Observe os seguintes exemplos em Português e Inglês. PROCURE NO DICIONÁRIO A PALAVRA
EM NEGRITO ABAIXO:
2º EXERCÍCIO
1. Ele apagou as velas.
2. Tenho que limpar as velas do carro.
3. O marinheiro levantou as velas do barco.
4. Eu não vou ao cinema com eles porque detesto segurar vela.
3º EXERCÍCIO
É claro que o contexto é sempre importante para a compreensão das palavras que têm vários
significados diferentes. Em Inglês também o contexto é muito importante para a interpretação ade-
quada dos vocábulos. PROCURE NO DICIONÁRIO AS PALAVRAS EM NEGRITO ABAIXO:
→The waiter fills their glasses with champagne.
→He went to the optician for a new pair of glasses.
→The window is made of glass.
→ I like computers.
→ OS2 operating system is like Ms DOS.
4º EXERCÍCIO
Você precisa ter em mente que na leitura de textos técnicos você encontrará várias palavras
em inglês que talvez já façam parte de seu vocabulário, mas que nesse contexto irão adquirir novos
significados.
Qual é a tradução mais adequada para os vocábulos em negrito?
1. I will substitute my computer by a notebook.
2. I need a new notebook for my English classes
3. I need the key to open the door.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
82
Inglês Instrumental
4. To enter the program, press any key.
5. I have to save money to by a new car.
6. Don’t forget to save the file before turning off the computer.
(Atividade adaptada da apostila elaborada pelas professoras Márcia C. Bonamim e Magali N. de Paula)
2ª PARTE – GRAMÁTICA
Os números ordinais são usados para indicar sequência, posição. São eles:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
83
Inglês Instrumental
Ex. :
January is the first month of the year. (Janeiro é o primeiro mês do ano).
John is the ninth student of this line. (John é o nono aluno desta fila) .
Os números ordinais também são usados em inglês para datas.
January 28th (Vigésimo oitavo dia do mês de janeiro).
Obs. : Note que o “th” acompanha o numeral vinte e oito, pois a terminação de vigésimo oitavo
é “th”. O numeral ordinal primeiro, por exemplo, termina em “st” (first), logo deve vir “st” acompa-
nhando o numeral 1. O numeral ordinal segundo termina em “nd” (second) , por isso deve vir o “nd”
acompanhando o numeral 2. O mesmo acontece com terceiro (third) , logo “rd” deve acompanhar o
numeral 3.
NUMERAIS CARDINAIS
Os numerais cardinais são usados no nosso dia a dia para expressar diversas funções, dentre
elas: dizer o número de telefone, expressar endereços e falar sobre preço. Segue abaixo uma lista dos
principais numerais cardinais:
0- zero
1- one
2- two
3- three
4- four
5- five
6- six
7- seven
8- eight
9- nine
10- ten
11- eleven
12- twelve
13- Thirteen
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
84
Inglês Instrumental
14- Fourteen
15- Fifteen
16- Sixteen
17- Seventeen
18- Eigtheen
19- Nineteen
20- Twenty
21- Twenty-one
25- twenty-five
30- thirty
36 - thirty-six
40- forty
48- forty-eight
50- fifty
57 – fifty-seven
60- sixty
63- sixty-three
70- seventy
77- seventy-seven
80- eighty
84- eight-four
90- ninety
99- ninety-nine
100 - one hundred /a hundred
157 - one hundred and fifty-seven
200 - two hundred
300 - three hundred
400- four hundred
500 - fifty hundred
600 - six hundred
700 - seven hundred
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
85
Inglês Instrumental
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
86
Inglês Instrumental
• antes de um substantivo único na espécie.
Ex: the earth (a terra) the sun (o sol)
Quando o artigo the é omitido:
• antes de nomes próprios, nomes de línguas e ciências.
Ex: Beth English (Inglês) geography (geografia)
• antes de substantivos de uso comum e de substantivos incontáveis.
Ex: gold (ouro) money (dinheiro) coffee (café)
• antes de pronomes possessivos.
Ex: our dress (nosso vestido) their house (casa deles(as))
• antes de alguns substantivos como home, church, school, hospital, bed, prison, quando usa-
dos para o seu propósito original.
Ex: I go to church. (to pray)
Eu vou para a igreja. (para rezar)
I go to school. (to study)
Eu vou para a escola. (para estudar)
A, AN
Existem dois artigos indefinidos com usos diferentes no inglês: a, an
• A: é usado antes de sons de consoantes.
Ex: a car (um carro) a chair (uma cadeira)
• AN: é usado antes de sons de vogais.
Ex: an egg (um ovo) an umbrella (um guarda-chuva)
Exemplos:
a boy (um menino) – a horse (um cavalo) – a book (um livro)
an apple (uma maçã) - an egg (um ovo) – an office (um escritório)
Algumas vezes a palavra é escrita com som de vogal mas sua pronúncia é de ditongo (encontro
de duas vogais com uma sendo mais forte) . Nesse caso preferimos usar o artigo indefinido a.
a year (um ano) – a university (uma universidade) – a one-legged man (um homem de uma
perna só) – a used napkin (um guardanapo usado) – a U. S. ship (um navio americano) – a European
country (um país europeu)
Quando a letra h não tem o som aspirado, parecido com a palavra house, usamos o artigo inde-
finido an.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
87
Inglês Instrumental
an hour (uma hora) – half an hour (meia hora) – an honor (uma honra) – an honest man (um
homem honesto)
DIAS DA SEMANA
Os dias da semana em inglês são chamados de “weekdays”; o final de semana é “weekend”, e
o dia útil é um “business day” (dia de negócio, na tradução literal). Seus nomes são escritos com letra
maiúscula no início, ao contrário do que acontece em português, onde não há tal obrigatoriedade.
Ao se referir a um dia da semana, usamos a preposição “on”, sem o “the”:
• I go to church on Sundays. / Eu vou à igreja aos domingos.
• I don’t work on Saturdays. / Eu não trabalho aos sábados.
• I have English classes on Monday. / Eu tenho aulas de inglês na segunda-feira.
SUNDAY – domingo
MONDAY – segunda-feira
TUESDAY- terça -feira
WEDNESDAY- quarta -feira
THURSDAY- quinta -feira
FRIDAY - sexta-feira
SATURDAY – sábado
MESES DO ANO
• January (Janeiro)
• February (Fevereiro)
• March (Março)
• April (Abril)
• May (Maio)
• June (Junho)
• July (Julho)
• August (Agosto)
• September (Setembro)
• October (Outubro)
• November (Novembro)
• December (Dezembro)
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
88
Inglês Instrumental
PRONOMES ADJETIVOS POSSESSIVOS
Os adjetivos possessivos em Inglês são: my, your, his, her, its, our, your, their. Eles se referem a
alguém que tem algo, não o que é possuído. Geralmente precedem substantivos. Aqui estão alguns
exemplos traduzidos ao Português.
my - meu, minha, meus, minhas
your - teu, tua, teus, tuas, seu, sua, seus, suas
his - dele, seu, sua, seus, suas
her - dela, seu, sua, seus, suas
its - dele, dela, seu, sua, seus, suas (coisas ou animais)
our - nosso, nossa, nossos, nossas
your - vosso, vossa, seu, sua, de vocês
their - deles, delas, seu, sua, seus, suas
PRONOMES PESSOAIS
Subject pronouns têm a função de sujeito na oração:
I – eu
You – tu, você
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
89
Inglês Instrumental
He – ele
She – ela
It – ele, ela (usado para coisas e animais)
We – nós
You – vós, vocês
They – eles, elas
Ex. : You and I will finish the lesson together. (Eu e você terminaremos a lição juntos.)
Ex. : He is very small. (Ele é muito pequeno.)
Ex. : It was cold. (Estava frio.)
VERBO TO BE – PRESENTE
O verbo “to be” pode expressar dois significados: ser ou estar.
Logo, tanto para dizer que eu sou uma professora (I am a teacher), quanto para dizer que eu
estou na escola (I am at school), deve-se utilizar o verbo “to be”.
O verbo “to be” no presente se conjuga em “am”, “is” e “are”.
Segue uma tabela para indicar o uso correto do verbo “to be” no presente:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
90
Inglês Instrumental
You are my enemies. (Vocês são meus inimigos).
They are upstairs. (Eles estão lá em cima) .
Para a forma negativa, basta acrescentar “not” após o verbo “to be” (am, is, are) :
They are not in their bedroom. (Eles não estão no quarto deles).
We are not nurses. (Nós não somos enfermeiras).
I am not your teacher. (Eu não sou sua professora) .
É possível abreviar a verbo “to be” com o “not”. Essa forma é bastante utilizada na conversação.
Segue abaixo uma lista com as possíveis abreviações para a forma negativa:
Verbo to be na negativa
I am not I’m not
You are not You aren’t
He is not He isn’t
She is not She isn’t
It is not It isn’t
We are not We aren’t
You are not You aren’t
They are not They aren’t
Para a forma interrogativa, basta inverter o verbo “to be” (am, is, are) , colocando-o no início da
frase:
Is she your sister? (Ela é sua irmã?)
Are we on the right road? (Nós estamos na estrada certa?)
Are you my classmate? (Você é meu colega de classe?)
VERBO TO BE – PASSADO
O verbo to be, no passado, utiliza 2 conjugações, was e were.
O was é usado para a primeira e terceira pessoas do singular (I, he/she/it), e o were é usado
para as restantes:
Affirmative form (forma afirmativa)
Use a forma was para I, he, she, it e were para as demais pessoas:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
91
Inglês Instrumental
I was (eu era , eu estava)
you were ( você era , você estava)
he was (ele era , ele estava)
she was (ela era, ela estava)
it was (ele(a) era, ele(a) estava)
we were (nós éramos, nós estávamos)
you were (vocês eram, vocês estavam )
they were (eles(as) eram , eles(as) estavam)
Negative form
Usam-se as formas negativas wasn’t (was not) para I, he, she, it e weren’t
(were not) para as demais pessoas.
I wasn’t
you weren’t
he wasn’t
she wasn’t
it wasn’t
we weren’t
you weren’t
they weren’t
Interrogative form
As perguntas se formam com a anteposição do verbo to be ao sujeito:
was I …?
were you…?
was he…?
was she…?
was it…?
were we…?
were you…?
were they…?
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
92
Inglês Instrumental
Exemplos:
Where were you? (Onde você estava?)
Was she home?(Ela estava em casa?)
He wasn’t there. (Ele não estava lá.)
When I was a child, I was very naughty. (Quando eu era criança, eu era muito levado.)
There to be – Presente
A forma verbal em inglês there to be expressa sentido de haver, existir ou ter, em português.
Em inglês, o verbo varia de acordo com o número, de singular para plural, e de acordo com a variação
temporal de presente para passado e futuro.
O there to be é constituído pelo there + o verbo to be correspondente ao pronome.
Logo, temos duas formas, o there is e o there are. A primeira significa existe, há, ou tem; a se-
gunda, existem, há. Observe:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
93
Inglês Instrumental
Formas abreviadas:
• There is: there’s
• There is not: There isn’t
• There are not: There aren’t
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
94
Inglês Instrumental
meses do ano:
Português Inglês
Janeiro January
Fevereiro February
Março March
Abril April
Maio May
Junho June
Julho July
Agosto August
Setembro September
Outubro October
Novembro November
Dezembro December
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
95
Inglês Instrumental
Observe:
Casos especiais
• O 1º caso especial é o verbo TO BE (ser, estar)
Ele já tem a 3ª pessoa especificado.
• O 2º caso especial é o verbo TO HAVE (ter)
TO BE TO HAVE
I am. I have.
You are. You
He is. He has.
She She
It It
We are. We have.
You You
They They
* O 3º caso especial são os verbos terminados em o, ss, ch, sh, x, em que se acrescenta ES:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
96
Inglês Instrumental
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
97
Inglês Instrumental
RESUMO DO SIMPLE PRESENT
AFIRMATIVO NEGATIVO INTERROGATIVO
I work I don’t work Do I work . . . ?
You work You don’t work Do you work . . . ?
He works He doesn’t work Does he work . . . ?
She works She doesn’t work Does she work . . . ?
It works It doesn’t work Does it work . . . ?
We work We don’t work Do we work. . . ?
You work You don’twork Do you work . . . ?
They work They don’t work Do they work . . . ?
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
98
Inglês Instrumental
Casos especiais
*1º caso especial: verbos terminados em Y. Eles têm 2 possibilidades:
• O 2º caso é o dos verbos terminados em -E, neles nós simplesmente acrescentamos o -D:
love – loved
• O 3º caso especial é o dos verbos terminados em consoante+vogal+consoante, cuja sílaba
tônica é a última, dobra a consoante antes de acrescentar o -ed:
Occur: occurred
• Nos demais casos, acrescenta-se simplesmente -ed:
Work: worked
INFINITIVO PASSADO
TO AWAKE AWOKE
TO BUY BOUGHT
TO FORGET FORGOT
TO LAY LAID
TO SEE SAW
TO RING RANG
TO UNDERSTAND UNDERSTOOD
Exemplos:
I forgot my keys. (Eu esqueci as chaves.)
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
99
Inglês Instrumental
I saw you yesterday at the bus station. (Eu te vi ontem no ponto de ônibus.)
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
100
Inglês Instrumental
LISTA DE VERBOS IRREGULARES
• awake – awoke – awoken [despertar]
• be – was; were – been [ser; estar]
• bear – bore – borne [suportar; dar a luz]
• beat – beat – beaten [bater]
• become – became – become [tornar-se]
• begin – began – begun [começar]
• behold – beheld – beheld [contemplar]
• bend – bent – bent [curvar, entortar]
• bet – bet – bet [apostar]
• bid – bid – bid [oferecer, fazer uma oferta]
• bind – bound – bound [unir; encadernar]
• bite – bit – bitten [morder]
• bleed – bled – bled [sangrar]
• blow – blew – blown [soprar; explodir]
• break – broke – broken [quebrar]
• breed – bred – bred [procriar, reproduzir]
• bring – brought – brought [trazer]
• broadcast – broadcast – broadcast [irradiar, transmitir (via TV ou rádio)]
• build – built – built [construir]
• buy – bought – bought [comprar]
• cast – cast – cast [arremessar, atirar]
• catch – caught – caught [pegar, apanhar]
• choose – chose – chosen [escolher]
• come – came – come [vir]
• cost – cost – cost [custar]
• creep – crept – crept [rastejar]
• cut – cut- cut [cortar]
• deal – dealt – dealt [negociar, tratar]
• dig – dug – dug [cavar]
• do – did – done [fazer]
• draw – drew – drawn [desenhar]
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
101
Inglês Instrumental
• drink – drank – drunk [beber]
• drive – drove – driven [dirigir (veículo)]
• eat – ate – eaten [comer]
• fall – fell – fallen [cair]
• feed – fed – fed [alimentar]
• feel – felt – felt [sentir]
• fight – fought – fought [lutar]
• find – found – found [encontrar (Compare “FOUND x FOUNDED x FUNDED”)]
• flee – fled – fled [fugir, escapar]
• fly – flew – flown [voar; pilotar]
• forbid – forbade – forbidden [proibir]
• forget – forgot – forgotten [esquecer]
• forgive – forgave – forgiven [perdoar]
• freeze – froze – frozen [congelar]
• get – got – got (BrE) / gotten (AmE) [obter]
• give – gave – given [dar]
• go – went – gone [ir]
• grind – ground – ground [moer]
• grow – grew – grown [crescer; cultivar]
• have – had – had [ter]
• hear – heard – heard [ouvir]
• hide – hid – hidden [esconder]
• hit – hit – hit [bater, atingir]
• hold – held – held [segurar; abraçar]
• hurt – hurt – hurt [ferir, machucar; magoar]
• keep – kept – kept [manter]
• know – knew – known [saber; conhecer]
• lay – laid – laid [pôr; botar ovos (Compare “LIE” com “LAY”)]
• lead – led – led [liderar]
• leave – left – left [deixar, partir]
• lend – lent – lent [emprestar (Compare “LEND” com “BORROW”)]
• let – let – let [deixar]
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
102
Inglês Instrumental
• lie – lay – lain [deitar (Compare “LIE” com “LAY”)]
• lose – lost – lost [perder]
• make – made – made [fazer, fabricar]
• mean – meant – meant [significar]
• meet – met – met [encontrar; conhecer]
• overcome – overcame – overcome [superar]
• overtake – overtook – overtaken [alcançar; conseguir]
• pay – paid – paid [pagar]
• put – put – put [pôr, colocar]
• quit – quit – quit [desistir, abandonar]
• read /riid/ – read /réd/ – read /réd/ [ler]
• ride – rode – ridden [cavalgar; andar (de bicicleta) ; passear]
• ring – rang – rung [tocar (campainha) ]
• rise – rose – risen [erguer-se (Compare “RISE” com “RAISE”)]
• run – ran – run [correr; concorrer (em eleição)]
• saw – sawed – sawn [serrar]
• say – said – said [dizer]
• see – saw – seen [ver]
• seek – sought – sought [buscar; procurar]
• sell – sold – sold [vender]
• send – sent – sent [enviar]
• set – set – set [pôr, colocar; ajustar]
• shake – shook – shaken [tremer]
• shed – shed – shed [derramar]
• shine – shone – shone [brilhar, reluzir]
• shoot – shot – shot [atirar; filmar]
• show – showed – shown [mostar, exibir]
• shrink – shrank – shrunk [encolher]
• shut – shut – shut [fechar]
• sing – sang – sung [cantar]
• sink – sank – sunk [afundar]
• sit – sat – sat [sentar]
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
103
Inglês Instrumental
• slay – slew – slain [matar, assassinar]
• sleep – slept – slept [dormir]
• slide – slid – slid [deslizar, escorregar]
• speak – spoke – spoken [falar]
• spend – spent – spent [gastar]
• spin – spun – spun [fazer girar]
• spit – spit / spat – spit / spat [cuspir]
• spread – spread – spread [espalhar; disseminar, difundir]
• spring – sprang – sprung [saltar]
• stand – stood – stood [ficar em pé; suportar]
• steal – stole – stolen [furtar]
• stick – stuck – stuck [fincar, enfiar]
• sting – stung – stung [picar, ferroar]
• stink – stank – stunk [feder]
• strike – struck – struck [golpear; atacar]
• strive – strove – striven [esforçar-se]
• swear – swore – sworn [jurar]
• sweep – swept – swept [varrer]
• swim – swam – swum [nadar]
• swing – swung – swung [balançar]
• take – took – taken [tomar]
• teach – taught – taught [ensinar; lecionar]
• tear – tore – torn [rasgar]
• tell – told – told [contar]
• think – thought – thought [pensar]
• throw – threw – thrown [jogar, atirar]
• undergo – underwent – undergone [submeter-se a]
• understand – understood – understood [entender]
• uphold – upheld – upheld [sustentar; apoiar]
• wear – wore – worn [vestir; usar (roupa) ]
• win – won – won [vencer]
• wind /uaind/ – wound /uaund/ – wound /uaund/ [enrolar; dar corda] Cf.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
104
Inglês Instrumental
• write – wrote – written [escrever]
• Simple Past tense (verb to be) - Exercises
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
105
Inglês Instrumental
3- It was hot last Sunday.
___________________________________________________________
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
106
Inglês Instrumental
3- It was hot last Sunday.
___________________________________________________________
EXERCÍCIOS / EXERCISES
• Complete the sentences with the correct forms of the verbs in parentheses in the SIMPLE PRE-
SENT.
Use the affirmative, negative or interrogative form appropriately.
• I usually ________________ cereals for breakfast. (have)
• You ______________ loud music. (not like)
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
107
Inglês Instrumental
• _____________________ tea to coffee? (you - prefer)
• What _________________? (she-do)
• Where ___________________? (you l ive)
• He ___________________ in a small apartment downtown. (live)
• She __________________ very well. (sing)
• ______________________ in a factory? (you - work)
• ______________________ Italian? (he - speak)
• We ___________________ to school in the morning. (go)
• We ___________________ the homework together. (not do)
• I always _______________ a taxi when I am late for work. (take)
• He never ______________ to the radio. (listen)
• She often ______________ her grandmother in Ohio. (visit)
• They ___________________________ here. (not – usually - come)
Complete the sentences with the correct forms of the verbs in parentheses in the SIMPLE PAST.
Use the affirmative, negative or interrogative form appropriately.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
108
Inglês Instrumental
Exercício: Artigos indefinidos
EXERCÍCIO
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
109
Inglês Instrumental
Exercício: Artigos definido e indefinido
03. ________ Pacific and ________ Atlantic are ________ oceans. ________ Alps are ________
mountains, and ________ Amazon is a river.
a) The / … / the/ … /the/ …
b) … / the / … / … / … / the
c) The / the / … / the / … / the
d) The / the / … / … / … / the
e) The / the / the / the / the / the
04. It’s ________ honor to meet ________ young lady from ________ Sweden.
a) a / an / an
b) an / a / a
c) a / an / a
d) an / a / …
e) a / a / a
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
110
Inglês Instrumental
05. ____ one-dollar bill is ______ useful thing for changes when buying goods.
a) A – a
b) The – a
c) A – an
d) A – …
e) … – the
EXERCÍCIOS DE FIXAÇÃO
111
Inglês Instrumental
The Simple Past - (O passado simples) EXERCISES
1- PASSE OS VERBOS REGULARES ABAIXO PARA O PASSADO:
a) Fit _______________
b) Arrive ____________
c) Cry _______________
d) Need _______________
e) Plan _______________
f) stop_______________
g) date_______________
h) play_______________
i) stay_______________
j) Miss_______________
k) Die_______________
l) Finish_______________
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
112
Inglês Instrumental
ATIVIDADE DE SIMPLE PAST – VERBOS IRREGULARES
A. Escolham a opção que melhor completa as sentenças a seguir, fazendo uso da forma mais ade-
quada de verbos regulares ou irregulares.
2. She didn’t. . . . . . . . . . . . . . . the man from going into the store. (Stop)
a. Stopped
b. Stop
c. Stoped
4. She. . . . . . . . . . . . . . . . . a few mistakes but, even so, she won the game. (Make)
a. Makes
b. Maked
c. Made
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
113
Inglês Instrumental
B. Reescrevam as frases a seguir usando a forma correta do ‘passado simples’.
1. go → __________
2. come → ___________
3. buy → __________
4. have → ___________
5. do → __________
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
114
Inglês Instrumental
2) Turn the sentences into interrogative form:
a) It rains for hours.
b) They swim every day.
c) You study because you like to.
d) We study in the same class.
e) He gets up at 7 AM.
6) Complete the chart with verbs in the correct form for “he”, “she” or “it”:
Example: want -> wants
a) Open
b) Cry
c) Have
d) Do
e) Make
f) Cut
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
115
Inglês Instrumental
7) Choose the correct answer in the parenthesis:
a) She ___ (hass/has) to buy a new house.
b) He ___ (needs/needes) a key.
c) She ____ (dos/does) favors for everyone.
d) It ____ (cryes/cries) every day.
8) Choose the correct answer for the following question:
What does she want from me?
a) She’s a very good-looking person.
b) She wants to be alone, I guess.
c) Perhaps she needs your help.
d) No one knows where she has gone.
ATIVIDADES
Vocabulary:
Rich: rico
Wife: esposa
Serious: sério
Feel down: sentir-se triste
Too: também
More than: mais do que
Best: melhores
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
116
Inglês Instrumental
Job: trabalho, emprego
Each other: um ao outro
There will be: vai haver
Faith: fé
This: este
Dream: sonho
Her: ela, a ela
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
117
Inglês Instrumental
4. typist - ___________________________
5. message - __________________________
ATENÇÃO! Substantivos terminados em s, ss, sh, ch, x ou z, recebem es no plural: Class - classes
1. bus - ____________________
2. dress - ___________________
3. dish - ____________________
4. watch -____________________.
5. box - _____________________
6. buzz - ____________________
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
118
Inglês Instrumental
Atenção! Substantivos terminados em f ou fe mudam este final para ves
1. Wife - __________________ 7. Half - ________________
2. Life - ___________________8. Shelf - ________________
3. Knife - __________________9. Leaf - __________________
4. Wolf - __________________ 10 . Loaf - ________________
5. Self - __________________ 11. Thief - __________________
6. Calf - ___________________ 12. Sheaf- _________________
REFERÊNCIAS BIBLIOGRÁFICAS:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
119
Curso Técnico em
INFORMÁTICA
Etapa 2
WEB 2
CSS
WEB 2 – CSS
OBJETIVO:
Introduzir ao Aluno os principais recursos da linguagem CSS (Cascading Style Sheets), utilizada
na formatação de conteúdo;
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
123
WEB 2 – CSS
SUMÁRIO
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
125
WEB 2 – CSS
Exemplo:
<html>
<head>
<title>...</title>
</head>
<style type=”text/css”>
<body>...</body>
</html>
Os comandos que vão vir depois de <STYLE TYPE=”TEXT/CSS”> são, na verdade, especificações
daquilo que você quer fazer com aquilo que está entre <BODY> e </BODY>. São as chamadas “decla-
rações”.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
127
WEB 2 – CSS
Exemplo:
<html>
<head>
<title>...</title>
</head>
<style type=”text/css”>
h1 { color:”red”; text-align:”center”; background:”black”;}
<body>
<h1> texto </h1>
</body>
</html>
2. ESTILOS EM DOCUMENTOS
Externo - Externo significa que você coloca as regras de CSS em um arquivo separado, e então
sua página HTML pode fazer um link para esse arquivo. Essa abordagem lhe permite definir regras em
um ou mais arquivos que podem ser aplicadas em alguma página do seu web site.
Exemplo:
<LINK REL=”STYLESHEET” HREF=”estilo.css” TYPE=”text/css”>
Incorporado (exportado)- Incorporado significa que você especifica as regras de CSS no cabeça-
lho do documento. As regras incorporadas afetam somente a página atual.
Exemplo:
<HTML>
<HEAD>
<TITLE>Exemplo Estilos Incorporados</TITLE>
<STYLE TYPE=”text/css”><!--
P {background-color: #FFFFFF;
font-family:’Comic Sans MS’;
font-size: 14pt}
--></STYLE>
</HEAD></BODY></HTML>
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
128
WEB 2 – CSS
Inline(internos) - Inline significa que você especifica as regras de CSS dentro da tag de HTML.
Essas regras afetam somente a tag atual.
Exemplo:
<A STYLE=”color: green; text-decoration: none” HREF=”http://www.aaaa.com.br”>
Cada estilo que você cria é definido como uma regra CSS. Cada regra deve utilizar a seguinte
sintaxe:
elemento {atributo1: valor; atributo2: valor ...}
Elemento - descreve o elemento de design ao qual o estilo será aplicado.
Atributo - o aspecto específico do elemento que você quer usar como estilo. Deve ser um nome
de atributo CSS válido, como o atributo font-size.
Valor - a configuração aplicada ao atributo. Deve ser uma configuração válida para o atributo em
questão , como 20pt (20 pontos) para font-size.
Atributo:valor - a parte declaração da regra. Você pode atribuir múltiplas declarações se desejar
separá-los com ponto-e-vírgula (;). Não coloque um ponto-e-vírgula depois da última declaração.
Exemplo:
H2 {font-size: 24pt; color: blue}
elemento {atributo1: valor;atributo2: valor}
4. SELETORES CLASSE E ID
Você também pode definir seus próprios seletores na forma de seletores classe e ID.
A vantagem disso é que você pode ter o mesmo elemento, mas apresentá-lo de modos diferen-
tes dependendo de sua classe ou ID.
No CSS, um seletor de classe é um nome precedido por um ponto (.) e um seletor ID é um nome
precedido por um sustenido (#).
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
129
WEB 2 – CSS
O CSS fica mais ou menos assim:
#topo {
background-color: #ccc;
padding: 1em
}
.intro {
color: red;
font-weight: bold;
}
O HTML se liga ao CSS usando os atributos id e class. Pra esse CSS, o HTML pode ser alguma
coisa assim:
<div id=”top”>
<h1>Acarajé de Chocolate</h1>
<p>Essa é minha receita pra fazer acarajé usando só chocolate</p>
<p class=”intro”>Mmm mm mmmmm</p>
</div>
Na hora de criar nomes para suas classes e ID, procurem usar nomes que façam sentido e que
representem a função daquele seletor.
5. LINKS
<STYLE TYPE=”text/css”><!--
A.meuslinks {color: blue; text-decoration: none}
--></STYLE>
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
130
WEB 2 – CSS
Depois apenas adiciono o atributo CLASS=”meuslinks” aos links em que eu desejar que fiquem
azuis e não-sublinhados. Veja como deve ficar:
<A CLASS=”meuslinks” HREF=”http://www.infoexame.com.br”>
6. UNIDADES DE MEDIDAS
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
131
WEB 2 – CSS
7. PROPRIDADES E VALORES
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
132
WEB 2 – CSS
overline: coloca um sobrelinhado no texto
line-through: coloca uma linha em cima do texto
blink: faz o texto piscar
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
133
WEB 2 – CSS
font-family: tipo de fonte
family-name: define-se pelo nome da fonte,
p. ex:”verdana”, “helvetica”, “arial”, etc.
generic-family: define-se pelo nome genérico,
p. ex:”serif”, “sans-serif”, “cursive”, etc.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
134
WEB 2 – CSS
background-image: imagem do fundo
URL: url(caminho/imagem.gif)
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
135
WEB 2 – CSS
list-style-type: tipo do marcador da lista
none: sem marcador
disc: círculo (bolinha cheia)
circle: circunferência (bolinha vazia)
square: quadrado cheio
decimal: números 1, 2, 3, 4, ...
decimal-leading-zero
lower-roman: romano minúsculo i, ii, iii, iv, ...
upper-roman: romano maiúsculo I, II, III, IV, ...
lower-alpha: letra minúscula a, b, c, d, ...
upper-alpha: letra maiúscula A, B, C, D, ...
lower-greek
lower-latin
upper-latin
hebrew
armenian
georgian
cjk-ideographic
hiragana
katakana
hiragana-iroha
katakana-iroha
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
136
WEB 2 – CSS
7.5.2 padding: (define um valor para os espaçamentos entre o conteúdo e as
bordas dos elementos html).
padding-top..........define a espaçamento superior;
padding-right........define a espaçamento direita;
padding-bottom.......define a espaçamento inferior;
padding-left.........define a espaçamento esquerda;
• border-width:................espessura da borda
• border-style:................estilo da borda
• border-color:................cor da borda
• -----------------------------------------
• border-top-width:............espessura da borda superior
• border-top-style:............estilo da borda superior
• border-top-color:............cor da borda superior
• -----------------------------------------
• border-right-width:.........espessura da borda direita
• border-right-style:..........estilo da borda direita
• border-right-color:..........cor da borda direita
• -----------------------------------------
• border-bottom-width:.........espessura da borda inferior
• border-bottom-style:.........estilo da borda inferior
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
137
WEB 2 – CSS
• border-bottom-color:.........cor da borda inferior
• -----------------------------------------
• border-left-width:...........espessura da borda esquerda
• border-left-style:...........estilo da borda esquerda
• border-left-color:...........cor da borda esquerda
• -----------------------------------------
• border-top:...maneira abreviada para todas as propriedades da borda superior
• border-right:..maneira abreviada para todas as propriedades da borda direita
• border-bottom:..maneira abreviada para todas as propriedades da borda inferior
• border-left:..maneira abreviada para todas as propriedades da borda esquerda
• border:.........maneira abreviada para todas as quatro bordas
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
138
WEB 2 – CSS
3. thick: borda grossa
4. length: uma medida reconhecida pelas CSS (px, pt, em, cm, ...)
8. EXERCÍCOS
1. Formatação de texto
2. Formatando tabelas
3. Formatar menus
4. Dividir páginas
5. Criar backgrounds
6. Posicionar e formatar imagens
9 . BIBLIOGRAFIA
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
139
WEB 2 – CSS
Atividade Valor
Trabalho Escrito 10
1º Bimestre Avaliação Mensal 10
Avaliação Bimestral 20
Total 40
Atividade Valor
Avaliação Mensal 15
2º Bimestre Trabalho prático 15
Projeto Mostra 30
Total 60
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
140
Curso Técnico em
INFORMÁTICA
Etapa 2
WEB 2
JavaScript
WEB 2 – JavaScript
OBJETIVO:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
143
WEB 2 – JavaScript
SUMÁRIO
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
145
9.2 Estrutura composta............................................................................................................ 154
9.3 Case.................................................................................................................................... 155
10. Estruturas de Repetição............................................................................................................ 155
10.1. While............................................................................................................................... 155
10.2 For.................................................................................................................................... 156
10.3 Do While........................................................................................................................... 156
11. Funções..................................................................................................................................... 156
12. Exercícios................................................................................................................................... 157
13. Bibliografia................................................................................................................................. 158
14. Critérios de distribuição de pontos........................................................................................... 158
WEB 2 – JavaScript
1. A LINGUAGEM JAVASCRIPT
Javascript é linguagem de script para construção de páginas da Web utilizando recursos dinâ-
micos.
Podemos criar efeitos especiais, controlar os dados digitados em um formulário e criar algumas
animações.
A construção de uma página usando Java, deve ser desenvolvida junto com HTML
A linguagem JavaScript ao contrário do que muitos são induzidos a acreditar, não é nenhuma
extensão do JAVA.
O código em Javascript poderá ser inserido em qualquer ponto de sua página, desde que dentro
das tags <html>..</html>
e iniciando-se com a tag
<script language =“Javascript”>
e terminando com a tag
</script>.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
147
WEB 2 – JavaScript
Como colocar Javascript em um HTML
<html>
<body>
<script type=”text/javascript”>
document.write(“Olá Mundo!”);
</script>
</body>
</html>
Execução
• No body é executado enquanto a página carrega.
• No head é executado quando é invocado.
4.1. Alert
- Mostra uma caixa de alerta, seguido de um sinal sonoro e o botão de OK.
exemplo:
html>
<head>
<title>exercício nº 1 </title>
</head>
<script language=”JavaScript”>
alert(“Bom dia! Tudo Bem?”);
</script>
<body>
Primeiro exercício em JAVA SCRIPT
</body>
</html>
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
148
WEB 2 – JavaScript
4.2. Confirm
Mostra uma caixa de diálogo, seguida de um sinal sonoro e os botão de OK e Cancel.
Retorna um valor verdadeiro se o usuário escolher OK.
Ex: retorno=confirm(‘Deseja prossegir?”)
4.3. Prompt
Monta uma caixa de entrada de dados, de forma simplificada comparando-se com o objeto text.
<script language=”Javascript”>
window.prompt(“Digite seu nome.”,”Nome”);
</script>
5. EVENTOS
Eventos são acontecimentos que ocorrem durante a navegação em uma página da web.
5.1. onClick
Disparados pelo clique de mouse em cima de um elemento
<form>
<input type=”button” value=”Clicar”onClick=”alert(‘Acabas-te de clicar no botão’)”>
</form>
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
149
WEB 2 – JavaScript
5.3. onFocus
O evento onFocus é quando um objeto se torna ativo, isto é, sempre que ativamos uma janela,
ou uma caixa de texto. Os objetos podem tornar-se ativos com o clique ou com o uso da tecla “Tab”.
Se clicar na zona do texto, irá se efectuar-se um focus.
5.4. onBlur
O evento onBlur executa-se quando por exemplo uma text field de um formulário perde o focus.
Isto aconteça quando o utilizador desativa a text field clicando fora dela ou utilizando a tecla “Tab”.Se
depois de clicar e/ou escrever, clica-se fora do documento, produza-se o evento Blur.
O código é:
<form>
<input text=text onBlur=”alert(‘Isto é um Blur!’)”>
</form>
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
150
WEB 2 – JavaScript
6. COMANDOS
6.1. document.write
Este comando permite escrever qualquer informação na página que pode ser um texto ou o
conteúdo de uma variável de memória.
Ex: document.write(“Programando em Javascript”);
document.write(“Olá “+nome+” Seja Bem Vindo
6.2. document.bgColor
Este comando altera a cor de fundo da página.
Ex: document.bgColor=”pink”;
6.3. document.fgColor
Este comando altera a cor da letra na página.
Ex: document.fgColor=”blue”;
6.4. document.title
Define um título para a página.
Ex: document.title=”Curso de Informática”;
6.5. document.write
Exibe a data da última atualização da página.
Ex: document.write(document.lastModified);
6.6. window.open
Comando para abrir uma página em uma nova janela, além de controlar sua posição, tamanho
e os controles que deverão aparecer na nova janela.
Ex: window.open(“URL”,”nome_da_janela”,”Parâmetros”);
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
151
WEB 2 – JavaScript
6.7. window.status
Com este comando, você pode exibir qualquer mensagem na barra de status
do navegador.
Ex: window.status=”Programação em Javascript”;
7. OPERADORES DO JAVASCRIPT
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
152
WEB 2 – JavaScript
< é menor que
>= é maior ou igual a
<= é menor ou igual a
8. VARIÁVEIS
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
153
WEB 2 – JavaScript
A instrução if é uma das mais importantes em JavaScript , é através dela que podemos utilizar o
conjunto dos operadores de comparação
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
154
WEB 2 – JavaScript
9.3 Case
É um comando de seleção onde durante a execução do script ele visa encontrar a
igualdade.
Sintaxe:
• switch (variável){
• case ‘valor 1’: { bloco de comandos;
break;}
• case ‘valor2: {bloco de comandos;
break;}
• default:{ comando alternativo;}
•}
Temos 3 tipos de estrutura de repetição que servem para executar um script várias vezes.
10.1. While
A estrutura while faz a mesma coisa que o for, porém a variável de controle do laço deve ser
iniciada antes da instrução while.
Supondo que devemos imprimir Informática dez vezes.
•
<script language=”Javascript”>
var i=1;
while(i<11){
document.write(i+” ETE Silvio de Mattos Carvalho”+”<br>”);
i++;}
</script>
</html>
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
155
WEB 2 – JavaScript
10.2 For
A estrutura for é composta de três partes: (inicialização da variável ; teste condicional e incre-
mento da variável)
Supondo que devemos imprimir Informática dez vezes.
<script language=”Javascript”>
for(i=1;i<11;i++){
document.write(i+” Informática”+”<br>”);}
</script>
10.3 Do While
A estrutura do.. while faz a mesma coisa que as outras duas anteriores, porém além da variável
de controle do laço ser iniciada antes da instrução do..while, a repetição é executada pelo menos uma
vez antes da verificação do teste condicional.Veja a colocação no código abaixo:
<script language=”Javascript”>
var i=1;
do{
document.write(i+” Informática”+”<br>”);
i++;}
while(i<11);
</script>
11. FUNÇÕES
Uma função é uma rotina com vários comandos desenvolvida pelo programador que fica dispos-
tos de uma forma lógica para chegar a um resultado desejado.
O exemplo abaixo mostra uma função para digitar um nome e mostra-lo 10 vezes, a função é
executada no evento onclick.
<script language=”Javascript”>
function entra(){
var i;
var nome=window.prompt(“Digite um Nome”, “”);
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
156
WEB 2 – JavaScript
for (i=1;i<11;i++){
document.write(nome,”<br>”);}
}
</script>
12. EXERCÍCIOS
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
157
WEB 2 – JavaScript
13. BIBLIOGRAFIA
eadcetec.kit.net/javascript
Curso de Capacitação -Programação web - Raphael Canguçu Mirante Ferreira
Atividade Valor
Trabalho Escrito 10
1º Bimestre Avaliação Mensal 10
Avaliação Bimestral 20
Total 40
Atividade Valor
Avaliação Mensal 15
2º Bimestre Trabalho prático 15
Projeto Mostra 30
Total 60
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
158
Curso Técnico em
INFORMÁTICA
Etapa 2
Banco de Ddados II
SQL
Banco de Dados II - SQL
SUMÁRIO
Objetivos Gerais...............................................................................................................................163
1. A Linguagem SQL.......................................................................................................................165
1.1 - Iniciando Mysql em Modo Texto.......................................................................................166
1.2 - Relembrando os tipos de dados........................................................................................166
1.2.1 - Numéricos .....................................................................................................................167
1.2.2 - Data.........................................................................................................................168
1.2.3 - Cadeia . ...................................................................................................................169
2 - Comandos...................................................................................................................................170
2.1 - Comando SELECT...............................................................................................................170
2.2. - SELECT DISTINCT...............................................................................................................171
2.3. - SELECT ALL........................................................................................................................171
2.4. Cláusula WHERE.................................................................................................................171
2.4.1 Selecionando a partir de parâmetros........................................................................172
2.4.2 Verificando Campo nulo – IS NULL............................................................................172
2.5 – Funções de Grupos ou embutidos....................................................................................172
2.5.1. MAX..........................................................................................................................172
2.5.2. MIN..........................................................................................................................172
2.5.3. AVG...........................................................................................................................173
2.5.4. Count........................................................................................................................173
2.5.5. SUM..........................................................................................................................173
2.6 - Cláusula ORDER BY............................................................................................................174
2.7 - Os operadores LIKE, IN e BETWEEN...............................................................................174
2.7.1 - LIKE..........................................................................................................................174
2.7.2 - IN.............................................................................................................................174
2.7.3. BETWEEN.................................................................................................................175
2.8. Cláusula GROUP BY.............................................................................................................175
2.9. Cláusula HAVING................................................................................................................175
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
161
Banco de Dados II - SQL
2.10. Cláusula UNION................................................................................................................176
2.11. Cláusula INNER JOIN.........................................................................................................176
2.12. Instruções SQL para Inserir, Atualizar e Excluir Registros.................................................176
2.12.1. – INSERT INTO........................................................................................................176
2.12.2. – UPDATE...............................................................................................................177
2.12.3 – DELETE . ...............................................................................................................177
2.13 - Subconsultas SQL............................................................................................................178
3. Criando a base de dados..............................................................................................................178
4. Criando tabelas.............................................................................................................................179
4.1 ESQUECER DE ATRIBUIR VALOR A UMA COLUNA NOT NULL...............................................181
4.2 ESQUECER DE COLOCAR UM VALOR DO TIPO TEXTO ENTRE ASPAS....................................182
4.3 ATRIBUIR UM VALOR REPETIDO A UMA CHAVE PRIMÁRIA OU A UM CAMPO ÚNICO........182
5. Comando DML na pratica.............................................................................................................182
6. Dicas ...........................................................................................................................................187
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
162
Banco de Dados II - SQL
OBJETIVOS GERAIS
Esse material tem por objetivo revisar os conhecimentos adquiridos na etapa passada e apro-
fundar a linguagem SQL, agregando novos desafios ao aluno.
Avaliações
• Apresentação da Disciplina e apresentação da turma
• Definição de dado, informação, banco de dados e modelagem de dados; o profissional de
banco de dados; sistemas gerenciadores de banco de dados
• Componentes do banco de dados – definição e exemplos: entidade, atributos, ocorrências,
chave primária, chave secundária e chave candidata;
• Definição de relacionamento – tipos, definição, resolução e exemplos (1-1, 1-N e M-N)
• Diagrama Entidade Relacionamento – DER: definição e modelos
• Exercício avaliativo – exercícios de fixação – correção de exercícios
• Exercícios diversos de fixação para elaboração de DER com situações do mundo real – cor-
reção destes exercícios em sala de aula
• Apresentação do MYSQL – interface
• Criação de tabelas – definição tipos de campo, chaves primárias, chave estrangeira;
• Relacionamentos.
• Apresentando a Linguagem MYSQL
• Comandos: SELECT, *, FROM, ORDER BY ASC E DESC
• MAX, MIN, AVG, COUNT E SUM.
• Apresentação de projetos
• Avaliação do momento
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
163
Banco de Dados II - SQL
Distribuição de pontos
Atividades Valor
AVALIAÇÃO I 10,0
AVALIAÇÃO II 10,0
Atividades Valor
AVALIAÇÃO I 15 ptos
AVALIAÇÃO I 15 ptos
AMOSTRA 30 ptos
Total de Pontos 60
Bibliografia
Material elaborado pelo professor
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
164
Banco de Dados II - SQL
Manipulação de Banco de Dados Padrão SQL(básico)
(Structure Query Language)
1. A LINGUAGEM SQL
Segundo Ramalho, a linguagem SQL é a linguagem padrão dos bancos de dados, Oracle, SQL ser-
ven, Interbase, Access, entre outras, fazem uso dessa linguagem para criar e manter seus bancos de
dados. Dominar a linguagem SQL é uma tarefa obrigatória para todos os desenvolvedores de sistema
que trabalham com bancos de dados. Programas criados em linguagens como Delphi, Visual Basic,
Java e outras utilizam rotinas escritas em SQL para acessar um banco de dados.
A Linguagem SQL surgiu da IBM e é uma abreviação de Structured Query Language. Ela foi criada
para definir, modificar e consultar dados contidos em uma banco de dados relacional, outra grande
contribuição da IBM, através de E.F. Code que, em 1970 propôs o modelo de banco de dados relacio-
nal.
A simplicidade da linguagem fez com que ela se tornasse um padrão para acesso a banco de
dados, um comitê foi criado para padronizar a linguagem na tentativa de torná-la independente de
plataforma. O padrão SQL é definido pelo ANSI (American National Standards Institute). Aprender SQL
é o primeiro passo para se tornar um programador de qualquer dialeto SQL.
A Linguagem SQL pode ser dividida em três grupos de comandos, de acordo com sua finalidade:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
165
Banco de Dados II - SQL
DCL (DATA CONTROL LANGUAGE)
Esta relacionada basicamente com a segurança do banco de dados. Os comandos DCL são:
GRANT, REVOKE.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
166
Banco de Dados II - SQL
1.2.1 - Numéricos
Existem tipos de dados numéricos, que se podem dividir em dois grandes grupos, os que estão
em vírgula flutuante (com decimais) e os que não.
TinyInt: é um número inteiro com ou sem signo. Com signo a margem de valores válidos são
desde -128 até 127. Sem signo, a margem de valores é de 0 até 255.
Bit ou Bool: um número inteiro que pode ser 0 ou 1.
SmallInt: número inteiro com ou sem signo. Com signo a margem de valores válidos são desde
-32768 até 32767. Sem signo, a margem de valores é de 0 até 65535.
MediumInt: número inteiro com ou sem signo. Com signo a margem de valores válidos são des-
de -8.388.608 até 8.388.607. Sem signo, a margem de valores é de 0 até 16777215.
Integer, Int: número inteiro com ou sem signo. Com signo a margem de valores válidos são des-
de -2147483648 até 2147483647. Sem signo, a margem de valores é de 0 até 429.496.295.
BigInt: número inteiro com ou sem signo. Com signo a margem de valores válidos são desde
-9.223.372.036.854.775.808 até 9.223.372.036.854.775.807 Sem signo, a margem de valores é de 0
até 18.446.744.073.709.551.615.
Float: número pequeno em vírgula flutuante de precisão simples. Os valores válidos vão desde
-3.402823466E+38 até -1.175494351E-38,0 eté desde 175494351E-38 até 3.402823466E+38.
xReal, Double: número em vírgula flutuante de dupla precisão. Os valores permitidos vão desde
-1.7976931348623157E+308 até -2.2250738585072014E-308, 0 e desde 2.2250738585072014E-308
até 1.7976931348623157E+308
Decimal, Dec, Numeric: Número em vírgula flutuante desempacotado. O número armazena-se
como uma cadeia.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
167
Banco de Dados II - SQL
1.2.2 - Data
Na hora de armazenar datas, há que ter em conta que MySQL não verifica de uma maneira estri-
ta se uma data é válida ou não. Simplesmente comprova que o mês está compreendido entre 0 e 12 e
que o dia está compreendido entre 0 e 31.
Date: tipo data, armazena uma data. A margem de valores vai desde o 1 de Janeiro de 1001 ao
31 de dezembro de 9999. O formato de armazenamento é de ano-mes-dia.
DateTime: Combinação de data e hora. A margem de valores vai desde o 1 de Janeiro de 1001 às
0 horas, 0 minutos e 0 segundos ao 31 de Dezembro de 9999 às 23 horas, 59 minutos e 59 segundos.
O formato de armazenamento é de ano-mes-dia horas:minutos:segundos
TimeStamp: Combinação de data e hora. A margem vai desde o 1 de Janeiro de 1970 ao ano
2037. O formato de armazenamento depende do tamanho do campo:
Time: armazena uma hora. A margem de horas vai desde -838 horas, 59 minutos e 59 segundos.
O formato de armazenamento é ‘HH:MM:SS’.
Year: armazena um ano. A margem de valores permitidos vai desde o ano 1901 ao ano 2155. O
campo pode ter tamanho dois ou tamanho 4 dependendo de se queremos armazenar o ano com dois
ou quatro algarismos.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
168
Banco de Dados II - SQL
1.2.3 - Cadeia
Char(n): armazena uma cadeia de longitude fixa. A cadeia poderá conter desde 0 até 255 carac-
teres.
VarChar(n): armazena uma cadeia de longitude variável. A cadeia poderá conter desde 0 até
255 caracteres. Dentro dos tipos de cadeia pode-se distinguir dois subtipos, os tipo Text e os tipo Blob
(Binary Large Object) A diferença entre um tipo e outro é o tratamento que recebem na hora de orde-
ná-los e compará-los. No tipo text ordena-se sem ter importância as maiúsculas e as minúsculas e no
tipo blob ordena-se tendo em conta as maiúsculas e minúsculas.
Existe uma diferença de armazenamento entre os tipos Char e Varchar:
Os tipos blob utilizam-se para armazenar dados binários como podem ser arquivos.
TinyText e TinyBlob: Coluna com uma longitude máxima de 255 caracteres.
Blob e Text: um texto com um máximo de 65535 caracteres.
MediumBlob e MediumText: um texto com um máximo de 16.777.215 caracteres.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
169
Banco de Dados II - SQL
LongBlob e LongText: um texto com um máximo de caracteres 4.294.967.295. Há que ter em
conta que devido aos protocolos de comunicação os pacotes podem ter um máximo de 16 Mb.
Enum: campo que pode ter um único valor de uma lista que se especifica. O tipo Enum aceita
até 65535 valores diferentes.
Set: um campo que pode conter nenhum, um ou vários valores de uma lista. A lista pode ter um
máximo de 64 valores.
2 - COMANDOS
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
170
Banco de Dados II - SQL
* (asteriscos) - indica que todos os campos devem ser retornados.
Sintaxe: SELECT * FROM <TABELA>
Exemplo: SELECT * FROM PRODUTOS
Executando cálculos:
exemplos:
SELECT COD_PROD, NOME_PROD, QUANT_COMPRA * VRL_UNIT AS [VALOR TOTAL] FROM
PRODUTOS
SELECT COD_PROD, NOME_PROD VLR_UNIT=VLR_UNIT*0.9
WHERE DTA_VAL = #20/10/2007#;
O comando AS altera o nome da barra de titulo da nova coluna.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
171
Banco de Dados II - SQL
2.4.1 Selecionando a partir de parâmetros
SELECT * FROM PRODUTOS
WHERE COD_FORNEC = [INFORME O CODIGO DO FORNECEDOR]
2.5.1. MAX
A função max() retorna o maior valor da coluna selecionada.
Sintaxe
SELECT MAX(nome_coluna) FROM nome_tabela;
Na consulta abaixo retornaremos o maior salário da tabela empregados.
SELECT MAX(salario)
FROM empregados;
2.5.2. MIN
A função min() retorna o menor valor da coluna selecionada.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
172
Banco de Dados II - SQL
Sintaxe
SELECT MIN(nome_coluna) FROM nome_tabela;
Na consulta abaixo, ao contrario da função MAX(), retornaremos o menor salário da tabela em-
pregados.
SELECT MIN(salario)
FROM empregados;
2.5.3. AVG
A função avg() retorna o valor médio de uma coluna numérica.
Sintaxe
SELECT AVG(nome_coluna) FROM nome_tabela;
Na consulta abaixo, a função AVG(), retornará o salário médio da tabela empregados.
SELECT AVG(salario)
FROM empregados;
2.5.4. Count
A função count() retorna o número de linhas que corresponde a um critério especificado.
Sintaxe
SELECT COUNT(nome_coluna) FROM nome_tabela;
A seguinte consulta devolve a quantidade de funcionários na tabela tripulante:
SELECT count(cod_funcionario)
FROM tripulante;
SELECT COUNT(*) FROM nome_tabela;
Retorna o número de registros da tabela.
2.5.5. SUM
A função SUM() retorna a soma total de uma coluna numérica.
Sintaxe
SELECT SUM(nome_coluna) FROM nome_coluna;
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
173
Banco de Dados II - SQL
2.6 - Cláusula ORDER BY
A claúsula ordena a consulta pela(s) colunas(s) especificadas.
Exemplo:
SELECT * FROM PRODUTOS ORDER BY NOME_PROD ASC;
ASC – ordem ascendente.
DESC – ordem descendente.
2.7.2 - IN
Compara um campo com uma lista de valores.
Exemplos:
Consulta que retorna os registros dos alunos que tenham a matricula 405 e 410.
SELECT * FROM ALUNO
WHERE MATRICULA IN (405,410)
Consulta que retorna os registros dos alunos que tenham 19 ou 22 anos.
SELECT * FROM ALUNO
WHERE IDADE IN (19, 22)
Consulta que retorna os registros dos alunos que são de MG, SP ou RJ
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
174
Banco de Dados II - SQL
SELECT * FROM ALUNO
WHERE UF IN (“MG” , “SP” , “RJ”)
2.7.3. BETWEEN
O operador BETWEEN é um atalho para ver se um determinado campo está em um intervalo.
Exemplo:
- Consulta que retorna os registros dos alunos com idade entre 19 e 22 anos
SELECT * FROM ALUNO
WHERE IDADE BETWEEN 19 AND 22;
Exemplos:
- Consulta que calcula a soma das mensalidades de cada aluno. Mostrar na consulta apenas os
alunos cuja soma das mensalidades seja acima de 1000.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
175
Banco de Dados II - SQL
SELECT COD_ALUNO, SUM (VALOR) FROM MENSALIDADE
GROUP BY COD_ALUNO
HAVING SUM (VALOR) > 1000
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
176
Banco de Dados II - SQL
VALUES (valor do campo1, valor do campo2, ...)
Exemplo:
(como a chave primária é o campo CODIGO, se alguém tentar incluir um registro cujo campo
CODIGO já exista, ocorrerá um erro de inserção e o registro não será incluído).
2.12.2. – UPDATE
Atualizar registros.
Sintaxe:
Exemplo:
Atualizar o campo IDADE do aluno cujo CODIGO é “1010” para 20anos..
UPDATE ALUNO
SET IDADE=20
WHERE CODIGO=”1010”
2.12.3 – DELETE
Exclusão de registros:
Sintaxe:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
177
Banco de Dados II - SQL
Exemplos:
Eliminar o registro do produto cujo CODIGO é “120001”.
Vamos então criar a nossa base de dados de exemplo. Vamos chama-la de LOCADORA.
Vamos agora dar uma olhada em todas as bases de dados a que temos acesso no MySQL. O co-
mando que nos mostra isto é: SHOW DATABASES;
Para podermos
Fundação começar
de Educação paraaotrabalhar
Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
178
Banco de Dados II - SQL
Para podermos começar a trabalhar com nossa base de dados devemos avisar ao MySQL que
vamos usá-la. O comando para isto é: USE nome_db;
4. CRIANDO TABELAS
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
179
Banco de Dados II - SQL
Com este comando inserimos os dados do filme King Kong, do ano de 2006, do diretor Peter
Jackson. Mas e o valor 0 da coluna id?
Quando criamos a tabela filmes definimos a coluna id como tendo a caracteristica de ser auto_
increment, ou seja, seu valor é incrementado automaticamente, não precisamos nos preocupar com
o valor inserido por último para decidirmos qual o valor a ser inserido agora. Com esta característica
podemos criar sequências de valores como 1,2,3,4,5,6... Para podermos aproveitar esta facilidade não
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
180
Banco de Dados II - SQL
podemos atribuir um valor válido a coluna id, devemos inserir 0 ou NULL para que o banco de dados
saiba que desejamos que ele calcule sozinho o próximo valor válido.
Interessante ressaltar que valores do tipo texto (string) são colocados entre aspas (simples ou
dupla).
Poderíamos, também, inserir dados omitindo os nomes das colunas e colocando apenas os valo-
res no comando, desde que os valores estejam na mesma sequência das colunas na tabela.
Note que desta vez não colocamos os nomes das colunas antes da instrução VALUES. Outra mu-
dança que fizemos foi atribuir o valor null a coluna id.
Vamos ver como está nossa tabela no momento com o auxílio do comando SELECT.
Vamos ver agora alguns erros que podem ser cometidos ao inserir dados.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
181
Banco de Dados II - SQL
Neste caso tentamos inserir apenas o valor do titulo e ano do filme, o banco de dados não acei-
tou e mostrou o erro 1364, para avisar que o campo diretor não tem nenhum valor padrão (não pode
ser nulo, no caso) para ser atribuído.
Aqui esquecemos de colocar aspas no nome do diretor, o banco de dados não aceitou a entrada
e gerou o erro 1064 e avisou que temos um erro de sintaxe na instrução SQL próximo de ‘Newell)’, ou
seja, próximo ao nome do diretor.
Nesta situação tentamos inserir um registro com a chave primária 2, mas em nossa tabela já ti-
nhamos um registro com esta mesma chave primária, como os campos de chave primária não aceitam
valores duplicados o banco de dados gerou um erro 1062 e avisou que a entrada 2 é duplicada para a
primeira chave primária (primeira e única no nosso exemplo) da tabela filmes.
FINALMENTE INSERIMOS O FILME HARRY POTTER!!!
O comando SQL que nos permite excluir dados no MySQL é o comando DELETE.
A sintaxe básica do comando DELETE é a seguinte:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
182
Banco de Dados II - SQL
DELETE FROM table_name [WHERE definição_where]
O comando DELETE é aplicado a uma tabela e pode ou não ter uma cláusula WHERE que restrin-
ge os registro nos quais ele atuará.
Este comando retorna o número de registros excluídos da tabela.
Se não for especificada uma cláusula WHERE o comando DELETE apagará todos os registros da
tabela. Neste caso, no MySQL 3.23, o comando retorna zero.
A partir do MySQL 4.0.0 a exclusão em multi-tabelas é suportada.
Vamos para um exemplo prático. Primeiro visualizaremos que dados temos em nossa tabela
filmes :
Como já havíamos visto anteriormente o comando SELECT * FROM filmes retorna todos os re-
gistros da tabela filmes.
Neste caso temos três registros de filmes. Para ilustrar a utilização mais comum do comando
DELETE vamos excluir um destes registros com o uso de algum critério. Poderíamos ter um critério
único, que excluiria apenas um registro (por exemplo usando o campo id), ou um critério múltiplo, que
poderia apagar mais de um registro (por exemplo, neste caso, usando o campo ano).
Vamos optar por usar o campo ano e excluir todos os filmes de anos anteriores a ‘2006’, o co-
mando seria o seguinte:
DELETE FROM filmes WHERE ano<2006;
O comando DELETE foi executado com sucesso (“Query Ok”) e afetou apenas uma linha (regis-
tro) da tabela, ou seja, existia apenas um filme na tabela com data anterior a ‘2006’.
Vamos ver como ficaram os registros:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
183
Banco de Dados II - SQL
Uma situação especial para o comando DELETE ocorre quando ele é aplicado sem nenhuma
cláusula WHERE, neste caso todos os registros serão excluídos.
DELETE FROM filmes
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
184
Banco de Dados II - SQL
Podemos facilmente restaurar os registros que existiam na tabela executando os três últimos
comandos.
O comando SQL que nos permite atualizar dados no MySQL é o comando UPDATE.
A sintaxe básica do comando UPDATE é a seguinte:
UPDATE nome_tabela SET nome_coluna1=expr1 [, nome_coluna2=expr2 ...] [WHERE defini-
ção_where]
UPDATE é aplicado a uma tabela e a cláusula SET atribui a um campo o valor de uma expressão
que pode ou não conter o valor de um campo da própria tabela. A cláusula WHERE restringe as atua-
lizações apenas aos registro que satisfação suas condições.
A partir da MySQL Versão 4.0.4, você também pode realizar operações UPDATE que cobrem
múltiplas tabelas.
Vamos para um exemplo prático. Primeiro visualizaremos que dados temos em nossa tabela
filmes:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
185
Banco de Dados II - SQL
Como já vimos no anteriormente o comando SELECT * FROM filmes retorna todos os registros
da tabela filmes.
Vamos supor que desejássemos mudar todos os filmes para o ano de ‘2006’, o comando UPDATE
seria o seguinte:
UPDATE filmes SET ano=2006
O resultado do comando UPDATE notifica que três linhas combinaram com o comando (uma vez
que temos três registros na tabela e não utilizamos a cláusula WHERE), e destas três, uma foi alterada
(atualizada). Vamos ver como ficaram os registros:
Perceba que todos os filmes agora tem o valor ‘2006’ no campo ‘ano’. Os filmes que já tinham o
valor ‘2006’ para ‘ano’ foram ignorados pelo comando UPDATE.
Neste primeiro exemplo não utilizamos a cláusula WHERE, e o comando UPDATE tentou mudar
todo e qualquer registro para o ano de ‘2006’, é claro que isto não é um comportamento ideal para a
maioria de nossa necessidades.
Vamos realizar uma atualização de um só registro desta vez. Para isto vamos restringir o coman-
do UPDADE com a cláusula WHERE.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
186
Banco de Dados II - SQL
Neste exemplo a instrução ‘ WHERE id=2’ restringe a atualização apenas ao registro que possuir
a chave primária ‘id’ com o valor ‘2’, no caso o filme ‘Guerra dos Mundos’. Outro ponto importante
neste exemplo é que utilizamos o próprio valor do campo ‘ano’ para atualizá-lo. ‘SET ano=ano-1’ atu-
aliza o valor de ‘ano’ para ‘2005’, uma vez que ‘ano’ tinha o valor de ‘2006’ (2006 - 1 = 2005).
A tabela filmes ficou com os seguintes dados:
6. DICAS
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
187
Banco de Dados II - SQL
1. Para trocar o nome de uma tabela
Alter table clientes rename cliente;
2. Para trocar o nome da coluna
Alter table cliente rename codcliente to codcli;
3. Para modificar o tipo ou tamanho de um campo
Alter table cliente modify email varchar (100) not null;
4. Para acrescentar um campo
Alter table veiculo add cor varchar (20) not null;
5. Para inserir um campo primário
Alter table veiculo add primary key (codcli);
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
188
Curso Técnico em
INFORMÁTICA
Etapa 2
Ambiente Operacional II
Ambiente Operacional II
OBJETIVO
Bibliografia:
ALESSANDRO. Apostila - Curso Técnico em Informática Microsoft Official Course - Ambiente
Operacional III, UTRAMIG, 2000.
Microsoft Corporation. Curse Managing a Microsoft Windows Server 2003 Environment.
BADDINI, Francisco. Microsoft Windows Server 2003 Implementação e Administração. Editora
Érica, 2003.
BATTISTI Júlio e SANTANA Fabiano. Windows Server 2008 Guia de estudos completos, Nova
Terra, 2008.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
191
Ambiente Operacional II
SUMÁRIO
193
Ambiente Operacional II
6.2. Configurações iniciais........................................................................................................ 207
7. Conceitos iniciais para administração do Windows 2008 Server................................................ 207
7.1. Estrutura do Active Directory no Windows 2008 Server................................................... 207
7.2. Conceito de objetos.......................................................................................................... 208
7.3. Grupos.............................................................................................................................. 209
7.4. Unidades Organizacionais ................................................................................................ 209
7.5. Conceito de Domínio, Árvore de domínio e Floresta de domínio..................................... 209
7.6. DNS – Resolução de nomes Windows 2008 Server na infra-estrutura de rede. .............. 210
7.6.1. Para instalar o DNS................................................................................................. 211
7.7. DHCP, Dynamic Host Configuration Protocol.................................................................... 212
7.7.1. Para instalar um servidor de DHCP........................................................................ 213
7.8. Conceito de NetBIOS......................................................................................................... 213
7.9. Utilização de Servidores WINS.......................................................................................... 214
7.9.1. Configurando o servidor WINS.............................................................................. 214
8. Implementando o Active Directory............................................................................................. 215
8.1. Procedimentos para instalação do Active Directory......................................................... 215
8.2. Gerenciando o Active Directory ....................................................................................... 221
8.2.1. Procedimentos iniciais para cadastrar usuários..................................................... 221
8.2.2. Partição de disco.................................................................................................... 222
8.2.3. Conta para Administrador...................................................................................... 222
8.2.4. Políticas de senhas................................................................................................. 224
8.2.5. Conta de usuários.................................................................................................. 226
8.2.6. Perfil do usuário..................................................................................................... 227
8.2.7. Conta . ................................................................................................................... 229
9. Compartilhamento de arquivos e impressoras............................................................................ 230
9.1. Sistema de arquivos NTFS................................................................................................. 230
9.1.1. Herança em NTFS................................................................................................... 230
10. Colocando uma estação WinXp no domínio.............................................................................. 231
11. Removendo o AD....................................................................................................................... 233
REFERÊNCIAS................................................................................................................................... 239
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
194
Ambiente Operacional II
Do mesmo modo que na rede local, é necessário um meio de comunicação para que se estabe-
leça uma ligação entre os equipamentos (Modem’s). Este meio pode ser uma linha discada comum,
uma linha dedicada (cabo metálico, fibra ótica), rádio transmissor (ondas eletromagnéticas) ou até
mesmo um enlace via satélite.
1.2. Modem
É o equipamento necessário em cada ponto remoto para transformar as informações em sinais
que possam ser enviados através do meio físico considerado. Ele não se faz necessário em uma rede
local, nesta estariam sendo utilizadas as placas de rede.
O modem é um aparelho que permite a transmissão e a recepção de dados do computador,
através de linhas telefônicas. Desta forma, é possível se ter acesso à Internet, transmitir e receber fax,
usar videoconferência, correio eletrônico, jogar com um colega distante, e diversas outras aplicações.
A palavra modem significa modulador-demodulador. Um modem pode modular sinais digitais
para transmitir, e demodular os sinais analógicos recebidos, transformando-os novamente em digitais.
Temos os seguintes modelos:
• Data modem: trata-se de um modem capaz de transmitir e receber dados.
• Fax modem: é um modem especial, capaz de transmitir e receber fax.
• Data/Fax modem: é capaz de transmitir e receber dados e fax.
• Data/Fax/Voice modem: é capaz de transmitir/receber dados, fax e ouvir e falar ao mesmo
tempo.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
195
Ambiente Operacional II
1.2.1 Taxas de transmissão
Uma das mais importantes características de um modem é a sua taxa de transmissão. Normal-
mente, é medida em bps (bits por segundo), e está diretamente relacionada com a rapidez com a
qual os dados são transmitidos ou recebidos. Não basta só dividir por 8 para saber quantos bytes são
transmitidos, pois cada byte requer bits adicionais chamados start bit e stop bit, que servem para
efeitos de sincronização, permitindo que o receptor saiba exatamente onde começa e onde termina
cada byte. Adicione a isto, o fato dos modems atuais realizarem compressão de dados, o que permite
obter ganhos na taxa de transmissão.
1.4. Roteadores
São equipamentos destinados a direcionar as informações para que cheguem ao local desejado.
Funcionam como se fossem uma central de correio. Imaginem que as cartas chegam à uma central,
que verifica o destinatário e encaminha para o destino. Da mesma forma, um pacote que chega a um
roteador é verificado para onde se destina e remetido para o local desejado. O endereço do destina-
tário neste caso é o endereço IP.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
196
Ambiente Operacional II
Conjunto de redes de computadores interligadas pelo mundo inteiro, que têm, em comum, um
conjunto de protocolos e serviços, de forma que seus usuários possam usufruir de serviços de infor-
mação e comunicação de alcance mundial.
• Origem nos centros militares dos EUA, na forma de um projeto da agencia ARPA (Advanced
Research and Projects Agency) com o objetivo de interligar os computadores dos seus de-
partamentos de pesquisa ( 1969 ) e ficou conhecida como ARPANET.
• Esse projeto gerou o protocolo TCP/IP, que, em 1980, foi implantado no Sistema Operacio-
nal Unix. Esse avanço beneficiou as universidades americanas, através da interligação entre
elas e a ARPANET.
• Em 1985, a NSF (National Science Foundation) interligou os supercomputadores de seus
centros de pesquisa, resultando na NSFNET e que em 1986 foi conectada a ARPANET.
• O conjunto de todos os computadores e redes ligados a esses dois BACKBONES (espinhas
dorsais de uma rede) passou a ser conhecido oficialmente como INTERNET.
• Em 1993, a Internet deixou de ser apenas acadêmica e passou a ser explorada comercial-
mente, na construção de Backbones Privados, Serviços, e tudo isso com abertura mundial.
• A Internet chegou ao Brasil em 1988, onde a UFRJ e a FAPESP (USP) eram as instituições
responsáveis. Em 1989, foi criado o Backbone da RNP (Rede Nacional de Pesquisas).
• A Embratel em 1994 iniciou a abordagem comercial da Internet no Brasil, permitindo a en-
trada de empresas nacionais na rede.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
197
Ambiente Operacional II
2.2. Usuários
Eles podem ser:
Individuais: são, em geral, pessoas físicas que se conectam à Internet com objetivos variados. O
acesso normalmente é discado, entre o seu computador e as Instalações de um provedor de acesso.
Institucionais: são empresas que conectam parte ou toda a sua rede corporativa à Internet, com
os objetivos de fornecer acesso à Internet para seus funcionários, cliente e/ou fornecedores.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
198
Ambiente Operacional II
LINK ou HIPERLINK: vínculo entre arquivos de dados, permite navegar para outros documentos
ou outra posição dentro do mesmo documento na Web.
SITE: conjunto de arquivos referentes a algum assunto especifico disponível na Internet.
URL (Uniform Resource Locator): é o endereço de um determinado recurso na Internet. Geral-
mente um diretório ou arquivo.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
199
Ambiente Operacional II
3.3. Vantagens dos sistemas distribuídos sobre os centralizados
Economia: é mais barato comprar vários processadores baratos do que comprar um único pro-
cessador mais potente. Os microprocessadores oferecem uma melhor relação preço/performance do
que a oferecida pelos Mainframes. Além disso, a velocidade de processamento pode até aumentar.
Vários processadores = Maior poder de processamento.
Aplicações distribuídas: algumas aplicações necessitam ter suas próprias máquinas e seus
próprios processadores. Conectando-se todos os processadores, temos um sistema distribuído. Por
exemplo: automação industrial que controla robôs e máquinas, sendo necessário que cada um tenha
seu próprio processador. Outro exemplo é o sistema bancário.
Alta confiabilidade: nos sistemas distribuídos, a queda de um simples processador vai derrubar,
no máximo, uma única máquina, deixando intacto todo o restante do sistema. Por exemplo: se 10%
das máquinas de um sistema distribuído estiverem com defeito em um determinado momento, o sis-
tema estará trabalhando com uma performance 10% menor.
Crescimento incremental: em um sistema distribuído, sempre é possível adicionar mais pro-
cessadores ao sistema, permitindo que ele seja expandido gradualmente, conforme a necessidade. O
que não ocorre nos sistemas centralizados (Maiframe); se a carga de trabalho aumentar, ou a empresa
compra uma máquina maior ou compra uma segunda máquina.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
200
Ambiente Operacional II
Segurança: qualquer sistema que esteja interligado através de uma rede está correndo o risco
de acessos indevidos.
4. ARQUITETURA CLIENTE/SERVIDOR
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
201
Ambiente Operacional II
4.1. Sistemas Operacionais
Constituem o ambiente operacional dos computadores que compõem o sistema. Os principais
S.O. utilizados para a arquitetura Cliente/Servidor são:
Para servidores:
Windows NT Server( Microsoft ); Windows 2000 Server; Windows 2003/2008/2012 Server; Unix
( IBM, HP); Netware ( Novell ), Linux.
Para clientes:
DOS; Windows NT Workstation; Windows 9X; Windows XP; Windows Vista;
Windows 7; Windows 8; Unix ( IBM, HP) Linux.
202
Ambiente Operacional II
Ferramentas de Consulta a Banco de Dados: permitem aos usuários consultar as informações
da empresa, oferecendo-as para outras formas de apresentação (gráficos, relatórios, mala direta,
etc.). Exemplos: Quest, Forest&Tree, gerenciadores de banco de dados para micro, etc.
Ferramentas de Apresentação e Análise de Informações: nesta categoria, se inserem as apli-
cações “típicas” dos PC’s (planilhas, editores gráficos, editores de apresentação, pacotes estatísticos,
etc.).
Sistemas Corporativos: constituem os sistemas desenvolvidos no âmbito da empresa como um
todo, utilizando-se dos sistemas e ferramentas citadas.
4.4. Hardware
O hardware deve suprir a capacidade de processamento e de comunicação, de acordo com per-
formance e flexibilidade exigidos pelo Sistema. O hardware pode ser dividido nos seguintes grupos:
• Equipamentos de processamento: microcomputadores, workstations, notebooks, etc.
• Periféricos de entrada e saída: scanners, placas de som e vídeo, impressoras, etc.
• Periféricos de armazenamento: discos ópticos, fitas DAT, ZIPdriver, etc.
• Equipamentos de comunicação que viabilizam a interligação entre os equipamentos de
processamento e de periféricos: consiste de placas de rede e hubs no âmbito de LAN’s, ro-
teadores, placas multiseriais, servidores de acesso remoto, suportando diversos protocolos
no âmbito das WAN’s.
Juntamente com a Arquitetura de Cliente/Servidor, surgem tecnologias como as alternativas de
Home Office e Remote Office. Uma empresa pode ter funcionários trabalhando em casa (parte do seu
tempo total), ou mesmo funcionários situados em locais distantes (em caráter provisório ou perma-
nente).
Cliente/Servidor já é uma realidade. Porém, não é um objetivo “estático” a ser alcançado, mas
sim uma arquitetura que está em constante evolução, acompanhado os avanços tecnológicos de har-
dware, software e comunicação de dados.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
203
Ambiente Operacional II
Os padrões da Internet não são criados por órgãos internacionais de padronização, como a ISO
ou o IEEE.
O corpo técnico que coordena a elaboração de protocolo e padrões da internet é o IAB (Internet
Activity Board).
Qualquer pessoa pode criar um protocolo para ser utilizado pela rede Internet. Para isto, basta
que ela documente este protocolo, através de um RFC (Request for Comments), que pode ser aces-
sado na Internet. Estes RFC’s são analisados pelos membros da IAB que poderão sugerir mudanças e
publicá-lo. Se, após seis meses da publicação, não houver nenhuma objeção, este protocolo se torna
um Internet Standard.
A arquitetura baseia-se principalmente em:
• um serviço de transporte orientado à conexão, fornecido pelo Transmission Control Proto-
col ( TCP );
• e um serviço de rede não-orientado à conexão, fornecido pelo Internet protocol (IP).
A arquitetura Internet TCP/IP dá uma ênfase toda especial à interligação de diferentes tecnolo-
gias de redes.
• Não existe tecnologia que atende a todos os usuários.
• Alguns precisam de altas velocidades.
• Outros se contentam com redes de baixa velocidade que conectam equipamentos distan-
tes.
• Desta forma, um número muito grande de tecnologias pode ser utilizado na sub-rede de
acesso, como Ethernet, Token Ring, FDDI, X.25, Frame Relay, ATM, etc.
Para interligar duas redes distintas é n’ecessário conectar uma máquina a ambas as redes, uti-
lizando-se os Gateways. Eles fazem as conversões de protocolos e precisam conhecer a topologia da
inter-rede para fazer o roteamento das mensagens.
Para os usuários é uma rede virtual única à qual todas as máquinas estão conectadas.
Os endereços IP são números com 32 bits, normalmente escritos como quatro octetos (em de-
cimal). A primeira parte do endereço identifica uma rede especificada na inter-rede, a segunda parte
identifica um host dentro dessa rede.
Devido ao fato de existirem redes dos mais variados tamanhos compondo a inter-rede, utiliza-se
o conceito de classes de endereçamento:
1. A classe A suporta até 128 redes com 16 milhões de hosts cada uma;
2. A classe B 16384 redes com até 64 mil hosts cada uma;
3. A classe C 2 milhões de redes com até 256 hosts cada uma;
4. As classes D e E estão reservados para uso futuro.
A Internet utiliza a classe C para endereçamento de suas redes e máquinas. Quando um novo
provedor de acesso se conecta a ela, ele recebe 256 endereços para serem utilizados pelos seus hosts
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
204
Ambiente Operacional II
(ou “usuários”). Como um provedor pode ter mais de 256 clientes, ele utiliza um esquema de alocação
dinâmica de IP, ou seja, quando o usuário se conecta ao provedor de acesso, ele recebe um endereço IP,
podendo desta forma haver até 256 usuários conectados simultaneamente a um provedor de acesso.
Máscara de Sub-Rede: separa o Endereço de Rede do Endereço do Computador e é usada para
criar sub-redes.
Tabela: Endereços usados pelas redes classes A, B e C e faixas reservadas para redes internas.
205
Ambiente Operacional II
5.1.2. O nome do computador
Exemplo:
COMPSERVER01
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
206
Ambiente Operacional II
for escolhido como Servidor DNS, o campo “Servidor DNS preferencial” deverá ser preen-
chido com o valor 127.0.0.1, que corresponde ao endereço da placa de rede do próprio
computador ou com o endereço IP escolhido para o Servidor.
207
Ambiente Operacional II
bem como, reforçar a segurança e dar proteção aos objetos da database contra intrusos, ou controlar
acessos dos usuários internos da rede.
O Active Directory mantém dados como contas de usuários, impressoras, grupos, computado-
res, servidores, recursos de rede, etc. Ele pode ser totalmente escalonável, aumentando conforme a
nossa necessidade.
Esse serviço de diretório é composto por objetos, ou seja, todo recurso da nossa rede é repre-
sentado como um objeto no AD. Esses objetos possuem propriedades, o que são chamados de atribu-
tos dos objetos. A base de dados do AD é um arquivo chamado NTDS.dit, onde todos os recursos são
armazenados no mesmo.
As redes ativas do diretório podem variar desde uma instalação pequena, com cem objetos, a
uma instalação grande, com milhões de objetos. O Active Directory foi inspecionado em 1996 e usado
primeiramente com Windows 2000. Mais tarde, foi revisado para estender a sua funcionalidade e
melhorar a administração para uma nova versão.
Ao fornecer um diretório para uma rede de computadores, o Active Directory propicia:
• Estrutura de autenticação centralizada.
• Nível de segurança controlado.
• Capacidade de desenvolvimento e integração com sistemas internos.
• Interoperabilidade com outros diretórios.
• Tecnologia enxergando a empresa como ela é, mostrando cada impressora e computador
de um departamento, sua matriz e respectivas filiais.
• Administração centralizada do ambiente entregue nas estações de trabalho.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
208
Ambiente Operacional II
7.3. Grupos
Os grupos são utilizados para unir objetos que possuem algo em comum em como, por exemplo,
os funcionários do setor de Recursos Humanos de uma empresa formam o grupo RH. A criação de
grupos facilita a definição de permissões, pois usuários de um mesmo grupo tendem a ter os mesmo
privilégios.
Exemplos de grupos:
• Segurança.
• Distribuição.
• Universais.
• Globais.
• Locais do domínio.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
209
Ambiente Operacional II
ca que o nome do domínio raiz da árvore (e todos os seus filhos) não precisa conter o nome completo
do domínio pai. Uma floresta pode conter uma ou mais árvores de domínio.
Os domínios em uma árvore têm em dois sentidos, relacionamentos “transitive” da confiança do
Kerberos. Um Kerberos que é confiança “transitive” significa simplesmente aquela se o domínio B das
confianças do domínio A e o domínio B confiarem no domínio C, então domínio A confia no domínio
C. Conseqüentemente, um domínio que junta uma árvore tem imediatamente os relacionamentos da
confiança estabelecidos com cada domínio na árvore.
Floresta de Domínio: uma floresta é uma coleção das árvores múltiplas que compartilham de
um catálogo global comum, de um “schema” do diretório, de uma estrutura lógica, e de uma configu-
ração do diretório. A floresta tem relacionamentos “transitive” em dois sentidos automáticos da con-
fiança. Muito o primeiro domínio que você cria na floresta é chamado o domínio da raiz da floresta.
As florestas permitem que as organizações agrupem suas divisões que usam o esquema nomeando
diferente, e podem necessitar operar-se independentemente. Mas como uma organização quer co-
municar-se com a organização inteira através das confianças “transitive”, e compartilham do mesmo
recipiente do “schema” e da configuração.
ATENÇÃO: uma floresta fornece o limite para muitas das funções do Active Directory, como se-
gurança, convenções e catálogo global.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
210
Ambiente Operacional II
para iniciar automaticamente. A maioria das tarefas de administração do DNS pode ser executada com
o console DNS, o qual é acessado através do menu Start -> Administrative Tools (Iniciar -> Ferramentas
Administrativas).
ATENÇÃO: para efetuar este procedimento, é necessário ser membro do grupo Administradores
no computador local ou terá de lhe ter sido delegada a autoridade correta. Se o computador perten-
cer a um domínio, é possível que os membros do grupo Admins do Domínio consigam efetuar este
procedimento. Como procedimento recomendado de segurança, considere a utilização de “Executar
como” para efetuar este procedimento. Para mais informações, consulte Grupos locais predefinidos,
Default groups e Utilizar “Executar como”.
Para abrir o Assistente de Componentes do Windows, clique em Iniciar, clique em Painel de Con-
trole, dê um duplo clique em Adicionar ou Remover programas e, em seguida, clique em Adicionar/
Remover Componentes do Windows.
Alguns componentes do Windows têm que ser configurados antes de serem utilizados. Se insta-
lou um ou mais destes componentes, mas não os configurou, ao clicar em Adicionar/Remover Com-
ponentes do Windows, aparece uma lista dos componentes que precisam de ser configurados. Para
iniciar o Assistente de Componentes do Windows, clique em Componentes.
Recomenda-se que configure manualmente o computador para utilizar um endereço IP estático.
Se o servidor de DNS estiver configurado para utilizar os endereços dinâmicos, atribuídos por DHCP,
quando o servidor de DHCP atribuir um novo endereço IP ao servidor de DNS, os clientes de DNS
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
211
Ambiente Operacional II
configurados para utilizar esse endereço IP anterior do servidor de DNS não irão conseguir resolver o
endereço IP anterior e localizar o servidor de DNS.
Após a instalação de um servidor de DNS, pode-se decidir a forma como pretende administrar o
mesmo e as respectivas zonas. Apesar de poder utilizar um editor de texto para efetuar as alterações
nas opções das zonas do servidor, este método não é recomendado. A console de DNS e a ferramenta
da linha de comandos de DNS, dnscmd, simplificam a manutenção das opções e deve ser utilizada
sempre que for possível.
As zonas DNS armazenadas no Active Directory podem ser administradas utilizando apenas a
console de DNS ou a ferramenta da linha de comandos dnscmd. Não é possível administrar estas zo-
nas utilizando um editor de texto.
Se desinstalar um servidor de DNS que estiver hospedando as zonas integradas no Active Direc-
tory, estas zonas serão guardadas ou eliminadas de acordo com o tipo de armazenamento. Para todos
os tipos de armazenamento, os dados da zona são armazenados em outros controladores de domínio
ou servidores de DNS e não serão eliminados, a menos que o servidor de DNS que desinstalar seja o
último servidor de DNS que esteja a hospedar essa zona.
Se desinstalar um servidor de DNS que esteja hospedando zonas DNS padrão, os ficheiros das
zonas permanecem no diretório pastadosistema\system32\Dns, mas não serão recarregados se o ser-
vidor de DNS for instalado novamente. Se criar uma nova zona com o mesmo nome de uma zona
antiga, o ficheiro de zona antigo é substituído pelo novo ficheiro de zona.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
212
Ambiente Operacional II
No primeiro passo, iremos verificar se o serviço de DHCP já está instalado em seu servidor:
• Vá em Painel de Controle (Control Painel) > Adicionar ou Remover Programas (Add/Remo-
ve Programs) > Adicionar ou Remover Componentes do Windows (Add/Remove Windows
Componentes) > Serviços de Rede (Network Services).
• Verifique se o item, Protocolo de configuração dinâmica de hosts (DHCP) está ativado, caso
não esteja, ative e insira o CD de instalação do Windows no drive de CD-ROM, clique em OK
e depois Avançar. Isso instalará o serviço de DHCP no seu servidor.
OBSERVAÇÃO: os arquivos necessários são copiados para o disco rígido. Os servidores de DHCP
têm que ser configurados com um endereço IP estático.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
213
Ambiente Operacional II
tratar os nomes definidos e qualquer máquina pode utilizar quantos nomes deseje, desde que ele não
esteja em uso. Pode ser implementada em diferentes arquiteturas de rede.
Para endereçamento de pacotes simples, NetBIOS utiliza o endereço de hardware do adaptador
de rede. Ao contrário do IPX e endereços IP, não é possível obter informações de roteamento através
desta implementação, assim como pacotes NetBIOS não podem ser enviados através de um roteador,
reduzindo a rede à uma atuação local, que necessita de “bridges” e repetidores para possíveis expan-
sões.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
214
Ambiente Operacional II
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
215
Ambiente Operacional II
2 – Mantenha selecionada a opção “Domínio de uma nova Floresta”, pois estamos cirando uma
floresta da qual o domínio fará parte.
OBSERVAÇÃO: a opção criar um domínio filho ou uma nova árvore numa floresta já existente
será marcada, caso não seja o primeiro domínio.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
216
Ambiente Operacional II
3 – Informe o nome DNS completo para o domínio, por exemplo: cassio.com
Procure não utilizar o mesmo domínio Internet da empresa, por exemplo, cassio.com.br. Os
nomes diferentes permitem que você identifique o que é recurso interno e o que é recurso externo.
Deixe com padrão o nome NetBIOS que aparecer na caixa de diálogo. O nome será utilizado por
usuários de versões anteriores do Windows, para identificar o novo domínio.
4 – Defina o nível funcional da Floresta
Em caso de possuir outro controlador de domínio com verão inferior ao 2008 Server.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
217
Ambiente Operacional II
5 – Instalar o DNS e o Catálogo Global do controlado de comínio.
Selecione o servidor DNS e o Catálogo global.
DNS
O diagnóstico do DNS será executado e os resultados serão exibidos. Observe que o domínio
criado anteriormente, cassio.com, foi detectado, mas muitas registros necessários para o funciona-
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
218
Ambiente Operacional II
mento do Active Directory não foram encontrados. Neste caso, selecione a opção “Sim” neste compu-
tador e definir este computador para usar o servidor DNS como seu servidor DNS preferencial.
6 – Localização das bases de dados do AD.
Você pode manter o caminho padrão, somente em caso de domínio com muitos objetos, algo
em terno de 500 usuários, é recomendado alterar este caminho para uma partição deferente da utili-
zada pelo sistema, por uma questão de desempenho.
Mantenha o caminho padrão. A referida pasta compartilha e seu conteúdo replicado em todos
os controladores de domínio. A partição escolhida para o arquivo deverá ser NTFS.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
219
Ambiente Operacional II
7 – Definindo uma senha para o modo de restauração.
Defina uma senha para modo de restauração do AD. Se seu sistema apresentar problemas ao ini-
cializar o AD, você deve iniciar o sistema no modo de restauração. Essa senha será solicitada, portanto
insira uma senha e documente a mesma.
ATENÇÃO: o ideal é que pelo menos dois controladores de domínios estejam em operação numa
rede, pois desta forma a carga é balanceada e o serviço de autenticação é mantido, mesmo que um
dos servidores fique indisponível. Para criar um segundo controlador de domínio basta instalar o Win-
dows 2008 Server em outro computador apontando como servidor DNS o primeiro servidor. Execute
o DCPROMO e utilize a opção “Criar um controlador de domínio adicional para um domínio existente”.
Após a criação do novo controlador de domínio o AD será replicado para o mesmo.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
220
Ambiente Operacional II
221
Ambiente Operacional II
O exemplo acima foi utilizado para ilustrar um caso, onde a formação do logon do usuário ge-
raria certo constrangimento ao mesmo. Quando isto ocorrer, mude a regra usando na composição, o
primeiro nome e o segundo nome.
Exemplo:
Usuário: Carlos D. Brito
Logon: carlos.brito
Gerenciamento de disco.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
222
Ambiente Operacional II
utilizarmos a conta “Administrador”, durante o dia-a-dia administrativo. Devido ao poder de gerencia-
mento do mesmo, a segurança da rede pode ficar comprometida. Aproveite as configurações da conta
de Administrador criado no momento da instalação do Windows, copiando os grupos de acesso para
dar o mesmo poder administrativo para o seu novo usuário.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
223
Ambiente Operacional II
8.2.4. Políticas de senhas
Por segurança, o Windows 2008 Server implementa como padrão uma política a nível do domí-
nio, que deve ser utilizada na configuração de políticas de senhas e direitos de usuários, conhecida
como senha forte ou complexa. Este recurso deverá ser configurado conforme as necessidades de sua
empresa. Por exemplo, tem agências bancárias que exigem que os seus correntistas, ao acessarem um
terminal de atendimento, digitem sua senha com pelo menos quatro caracteres alfanuméricos e, em
outras agências, já exigem 8 caracteres, podendo ser somente números e ainda verifica se a senha é
muito fácil de sem descoberta, como por exemplo uma data.
2. Click em Default Domain Policy com o botão direito do mouse e click em Editar
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
224
Ambiente Operacional II
3. Click em Configurações do computador e expanda Diretivas — Configurações do Windows –
Configurações de Segurança – Diretivas de conta e click sobre diretivas de senha. No painel
da direita altere os itens necessários tais como comprimento da senha, tempo de vida míni-
mo e máximo da senha, etc. Após isso feche o Gerenciamento de Diretiva de grupo clicando
no X
4. Precisamos ainda alterar as políticas locais. Para tanto click no Menu Iniciar e na parte de
busca do Windows digite gpedit.msc e pressione Enter
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
225
Ambiente Operacional II
5. Com o Editor de Diretiva de grupo Local aberto expanda Configurações do Windows – Con-
figurações de Segurança – Diretivas de conta e click sobre diretivas de senha e no painel da
direita refaça as mesmas alterações do item 3 desse tutorial.
Obs. Caso não consiga fazer alterações na diretiva local, é necessário abrir o prompt de co-
mando do Windows e digitar gpupdate/force e pressionar Enter para que as alterações na
política do domínio entrem em vigor.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
226
Ambiente Operacional II
1 - Nesta janela digite o nome do usuário e logon, conforme regras já estabelecida previamente.
2 - Escolha uma senha padrão de forma que o usuário, ao fazer o primeiro logon, possa ele mes-
mo alterar a senha predefinida. Marque a opção “O usuário deve alterar a senha no próximo logon”.
OBSERVAÇÃO: logo após o usuário fizer o primeiro logon e alterar a senha, a propriedade da
conta será alterada automaticamente pelo sistema para “A senha nunca expira”.
ATENÇÃO: quando houver a necessidade de apenas criar uma conta, mas não permitir o seu uso
neste momento, pode habilitar a opção “A conta está desativada”.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
227
Ambiente Operacional II
Também é possível criar um arquivo de lote do tipo login.bat, contendo uma seqüência de co-
mandos que realizará tarefas como verificação da existência de um antivírus no computador e instala-
ção do mesmo, mapear unidades de disco e acertar o relógio do computador.
Exemplo de arquivo de lote:
net time \\compserver /set /y
net use u: /home
net use g: \\compserver\grupos
net use s: \\compserver\soft
net use t: \\compserver\tmp
net use p: \\compserver\Publico
net use v: \\compantivirus\caeav71
v:\eav71-av.bat
exit
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
228
Ambiente Operacional II
8.2.7. Conta
Algumas restrições podem ser aplicadas às contas de usuário, caso haja necessidade de um
maior controle. Como por exemplo:
• restringir um horário de acesso à rede;
• restringir o acesso a um determinado computador;
• determinar uma data para o vencimento da conta;
• determinar que o usuário altere a senha ao “logar’,
• a senha nunca expira;
• o usuário não pode alterar a senha;
• desbloquear uma conta, no caso do usuário fazer um número de tentativas de acertar a
senha, superior à determinada nas políticas de senhas.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
229
Ambiente Operacional II
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
230
Ambiente Operacional II
Após o servidor ser configurado com os serviços necessários para funcionar como controlador
de domínio da rede, precisaremos fazer com que as estações de trabalho tornem-se membros do
domínio criado. Para isso, deveremos configurar as estações de trabalho WinXP da seguinte forma:
• Certifique-se de que o computador esteja conectado na mesma rede que o Servidor.
• Na estação WinXP, acessar as propriedades do Meu Computador, clicar na guia Nome do
Computador.
Propriedades do Sistema.
Clique em alterar e, logo em seguida, escolha Membro de Domínio e digite o nome do domínio
a ser ingressado e clique em OK.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
231
Ambiente Operacional II
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
232
Ambiente Operacional II
11. REMOVENDO O AD
Tela 2.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
233
Ambiente Operacional II
Tela 3.
Tela 4.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
234
Ambiente Operacional II
Tela 5.
EXERCÍCIOS 1
2) Uma rede baseada em protocolo TCP/IP funciona sem DNS? Justifique sua Resposta.
4) Desenhe uma topologia para uma rede Cliente/Servidor e relacione pelo menos 5 serviços dispo-
níveis para essa rede.
6) Qual estrutura RAID deveria ser implementada para garantir uma alta disponibilidade das infor-
mações na rede de uma empresa?
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
235
Ambiente Operacional II
8) Faça uma comparação entre o Windows 2008 Server e Windows 2012 Server. Indique as diferen-
ças e os pontos positivos na evolução da versão.
10) Para se implementar uma estrutura Cliente/Servidor é preciso traçar uma estratégia, observando-
-se vários pontos no projeto como: dimensionamento de recursos, licenças e de uso de softwares
e distribuição de serviços nos computadores tipo servidores, quantos servidores seriam necessá-
rios para uma rede de 500 usuários e etc.
Com base na sua estratégia, descreva em poucas palavras, quais seriam os passos a serem segui-
dos na elaboração de uma plataforma Cliente/Servidor.
EXERCÍCIO 2
2) DNS – Resolução de nomes Windows 2008 Server na infraestrutura de rede. (Explicar e descrever
quais os passos para instalação).
3) DHCP – Distribuição de IP´s na Rede (Descrever sua função e quais são os passos para instalação).
6) Partição FAT/NTFS.
7) Conceito de NetBIOS.
8) Raid de discos.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
236
Ambiente Operacional II
EXERCÍCIO 3
12) Descreva os passos para criar publicar uma página na Internet com o IIS.
19) Cite os principais serviços a serem instalados em servidores para uma rede funcionar.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
237
Ambiente Operacional II
21) Quais os tipos de dados devem ser agendados em uma programação de backup.
22) Crie uma tabela que demonstre um agendamento de backup para o período de um ano. Essa pro-
gramação deverá oferecer o mínimo de segurança para os dados de uma empresa.
EXERCÍCIO 4
3 - Questionamentos:
• Mostre como serão distribuídas as funções acima, para os servidores.
• Quantos servidores serão comprados?
• Qual é o valor de cada servidor?
• Informa qual versão de Sistema Operacional foi escolhido e discriminar os valores de mercado.
• Porque a Microsoft usa o sistema de (CAL - Client Access License)?
• Informar o valor das licenças de acesso aos servidores pelas estações de trbalho (CAL - Client Ac-
cess License) para mil usuários.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
238
Ambiente Operacional II
REFERÊNCIAS
TRAINING 2020 Cursos de Informática. Apostila de Redes Windows98/XP 2000 Server. Belo Horizonte,
2007.
UTRAMIG, Fundação de Educação para o Trabalho de Minas Gerais. Apostila Ambiente Operacional
III. Belo Horizonte: CINTER – Centro Tecnológico Interescolar 2002.
http://engdanielsantos.wordpress.com/2010/03/01/alterando-as-politicas-de-senha-do-domin-
io-no-windows-server-2008/. Acesso em 21/12/2013 às 18:20.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
239
Curso Técnico em
INFORMÁTICA
Etapa 2
Projeto de Qualidade
de Sistemas de Informação
Projeto de Qualidade de Sistemas de Informação
SUMÁRIO
1. Introdução...................................................................................................................................245
1.1 Análise e Especificação de Requisitos................................................................................245
1.2 O Papel do Analista de Sistemas........................................................................................246
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
243
Projeto de Qualidade de Sistemas de Informação
3.3 Descrição de Casos de Uso.................................................................................................260
PARTE II – ANÁLISE ORIENTADA A OBJETOS..................................................................................262
4. Introdução à Orientação a Objetos.............................................................................................262
4.1 Abordagem Estruturada x Abordagem Orientada a Objetos.............................................262
4.1.1 Métodos Estruturados.............................................................................................262
4.1.2 Métodos Orientados a Objetos...............................................................................263
4.2 Conceitos da Orientação a Objetos....................................................................................265
4.2.1 Abstração................................................................................................................265
4.2.2 Encapsulamento......................................................................................................266
4.2.3 Modularidade..........................................................................................................267
4.2.4 Hierarquia.......................................................................................................................267
4.3 O Processo de Desenvolvimento Orientado a Objetos......................................................267
PARTE III – ANÁLISE ESSENCIAL DE SISTEMAS...............................................................................271
5. Introdução à Análise Essencial....................................................................................................271
5.1 Conceitos............................................................................................................................272
5.1.1 Tecnologia Perfeita..................................................................................................273
5.1.2 Requisito Verdadeiro e Requisito Falso...................................................................274
5.1.3 Evento e Resposta...................................................................................................274
5.1.4 Atividades Essenciais...............................................................................................275
5.1.5 Memória Essencial..................................................................................................275
5.2 Especificação da Essência do Sistema................................................................................276
5.2.1 O Modelo Ambiental...............................................................................................277
5.2.2 O Modelo Comportamental....................................................................................277
6. Modelagem de Dados.................................................................................................................279
6.1 Conceitos Básicos...............................................................................................................280
6.2 Restrições de Integridade ou Leis de Consolidação...........................................................283
6.2.1 Restrições de Integridade em Relacionamentos.....................................................283
6.2.2 Tipos de Relacionamentos......................................................................................284
Referências do Capítulo:..................................................................................................................285
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
244
Projeto de Qualidade de Sistemas de Informação
1. INTRODUÇÃO
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
245
Projeto de Qualidade de Sistemas de Informação
• Elicitação de Requisitos: nesta atividade, os requisitos são capturados sob uma perspectiva
dos usuários, isto é, os modelos gerados procuram definir as funcionalidades (requisitos
funcionais) e restrições (requisitos não funcionais) que devem ser consideradas para aten-
der às necessidades dos usuários;
• Análise: nesta atividade, são modeladas as estruturas internas de um sistema capazes de
satisfazer os requisitos identificados.
A etapa de Elicitação de Requisitos (ou Especificação de Requisitos) é independente de paradig-
ma, uma vez que trata os requisitos do sistema sob uma perspectiva externa. Entretanto, a atividade
de Análise, que modela as estruturas internas de um sistema, é completamente dependente do para-
digma adotado no desenvolvimento. Assim, este texto é dividido em três partes:
• PARTE I - ESPECIFICAÇÃO DE REQUISITOS: trata do levantamento e da modelagem dos re-
quisitos segundo uma perspectiva externa, independente de paradigma. Nesta parte, são
discutidas técnicas para levantamento de requisitos e a técnica de modelagem de casos de
uso, para modelagem dos requisitos funcionais de um sistema.
• PARTE II - ANÁLISE ORIENTADA A OBJETOS: apresenta os principais conceitos da orientação
a objetos e a linguagem de modelagem unificada (UML) e explora a modelagem de análise
segundo o paradigma de objetos.
• PARTE III - ANÁLISE ESSENCIAL DE SISTEMAS: apresenta os principais conceitos da análise
essencial e discute a modelagem de análise segundo o método da análise essencial, que
adota o paradigma estruturado.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
246
Projeto de Qualidade de Sistemas de Informação
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
247
Projeto de Qualidade de Sistemas de Informação
2.1 Amostragem
Em um levantamento de requisitos, geralmente um engenheiro de software se depara com duas
importantes questões:
• Entre os muitos relatórios, formulários e documentos gerados pelos membros de uma orga-
nização, quais deverão ser objeto de investigação?
• Pode haver um grande número de pessoas afetadas pelo sistema de informação proposto.
Quais delas devem ser entrevistadas, observadas ou questionadas?
Servindo de base para todas as técnicas de levantamento de requisitos, entre elas investigação,
entrevistas e observação, estão as decisões cruciais dizendo respeito a o que examinar e quem ques-
tionar ou observar. Estas decisões podem ser apoiadas por uma abordagem estruturada chamada
amostragem.
Amostragem é o processo de seleção sistemática de elementos representativos de uma popu-
lação. Quando os elementos selecionados em uma amostragem são analisados, pode-se assumir que
esta análise revelará informações úteis acerca da população como um todo.
Por que usar amostragem?
• Diminuir custos;
• Acelerar o processo de levantamento de informações;
• Eficiência: a informação tende a ser mais apurada, já que menos elementos podem ser ana-
lisados, mas estes podem ser analisados com mais detalhes;
• Reduzir tendências.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
248
Projeto de Qualidade de Sistemas de Informação
2. Determinar a população a ser amostrada (o que / quem): No caso de documentos, definir
quais documentos investigar e de que período / intervalo. No caso de pessoas, estabelecer
a que nível da organização pertence ou se são pessoas de fora.
3. Escolher o tipo da amostra.
4. Decidir sobre o tamanho da amostra.
Os dois primeiros passos dizem respeito ao contexto do desenvolvimento. Os dois últimos refe-
rem-se à técnica de amostragem propriamente dita.
2.2 Investigação
Muitas vezes, algumas informações são difíceis de serem obtidas através de entrevistas ou ob-
servação. Tais informações revelam, tipicamente, um histórico da organização e sua direção. Nestes
casos, devemos utilizar investigação, isto é, análise de documentos.
Através de investigação, podemos obter mais facilmente informações, tais como tipos de docu-
mentos e problemas associados, informação financeira e contextos da organização. Tais informações
são difíceis de serem obtidas através de outras técnicas de levantamento de requisitos, tais como
entrevistas ou observação.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
249
Projeto de Qualidade de Sistemas de Informação
Na investigação de formulários preenchidos, é possível detectar problemas como: (i) a informa-
ção não flui como planejado, (ii) pontos de gargalo no processamento de formulários, (iii) trabalho
duplicado desnecessariamente, e (iv) falta de visão do fluxo global da informação, isto é, porque um
formulário é preenchido e quem o utilizará.
2.3 Entrevistas
Uma entrevista de levantamento de informações é uma conversa direcionada com um propósito
específico, que utiliza um formato “pergunta-resposta”. Os objetivos de uma entrevista incluem:
• Obter as opiniões do entrevistado, o que ajuda na descoberta dos problemas-chave a serem
tratados;
• Conhecer os sentimentos do entrevistado sobre o estado corrente do sistema;
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
250
Projeto de Qualidade de Sistemas de Informação
• Obter metas organizacionais e pessoais; e
• Levantar procedimentos informais.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
251
Projeto de Qualidade de Sistemas de Informação
Vantagens:
• Proveem riqueza de detalhes.
• Revelam novos questionamentos.
• Colocam o entrevistado a vontade.
• Permitem maior espontaneidade.
Desvantagens:
• Podem resultar em muitos detalhes irrelevantes.
• Perda do controle da entrevista.
• Respostas muito longas para se obter pouca informação útil.
• Podem dar a impressão de que o entrevistador está perdido, sem objetivo.
• Questões objetivas: limitam as respostas possíveis. Ex: Quantos ...? Quem ...? Quanto tem-
po ...? Qual das seguintes informações ...?
Vantagens:
• Ganho de tempo, uma vez que vão direto ao ponto em questão.
• Mantêm o controle da entrevista.
• Levam a dados relevantes.
Desvantagens:
• Podem ser maçantes para o entrevistado.
• Podem falhar na obtenção de detalhes importantes.
• Não constroem uma afinidade entre entrevistador e entrevistado.
• Questões de aprofundamento: permitem explorar os detalhes de uma questão. Podem ser
subjetivas ou objetivas. Ex: Por que? Você poderia dar um exemplo? Como isto acontece?
Subjetivas Objetivas
Confiabilidade dos dados Baixa Alta
Uso eficiente do tempo Baixo Alto
Precisão dos dados Baixa Alta
Amplitude e profundidade Alta Baixa
Habilidade requerida do entrevistador Alta Baixa
Facilidade de análise Baixa Alta
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
252
Projeto de Qualidade de Sistemas de Informação
2.3.3 Problemas na Elaboração de Questões
• Questões capciosas: tendem a levar o entrevistado a responder de uma forma específica,
isto é, são tendenciosas.
Ex: Sobre este assunto, você está de acordo com os outros diretores, não está? Opção mais
adequada: O que você pensa sobre este assunto?
• Duas questões em uma: O entrevistado pode responder a apenas uma delas, ou pode se
confundir em relação à pergunta que está respondendo. Ex: O que você faz nesta situação
e como?
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
253
Projeto de Qualidade de Sistemas de Informação
2.3.5 Condução da Entrevista
• Um dia antes, entre em contato com o entrevistado para confirmar o horário e o local da
entrevista.
• Chegue um pouco antes do horário marcado.
• Apresente-se e esboce brevemente os objetivos da entrevista.
• Relembre o entrevistado de que você estará registrando pontos importantes. Se for usar
gravador, coloque-o em local visível.
• Diga ao entrevistado o que será feito com as informações coletadas e reassegure seu aspec-
to confidencial.
• A entrevista deve durar entre 45 minutos e uma hora.
• Quando estiver incerto sobre uma questão, peça para o entrevistado dar definições ou ou-
tros esclarecimentos. Use questões de aprofundamento.
• Ao término da entrevista, pergunte se há algo mais sobre o assunto que o entrevistado ache
importante você saber.
• Faça um resumo da entrevista e dê suas impressões globais.
• Informe o entrevistado sobre os passos seguintes.
• Pergunte se há outra pessoa com a qual você deveria conversar.
• Quando for o caso, marque nova entrevista.
2.4 Prototipação
A prototipação é uma técnica valiosa para se obter rapidamente informações específicas sobre
requisitos de informação do usuário. Tipicamente, a prototipação permite capturar os seguintes tipos
de informação:
• Reações iniciais do usuário: Como o usuário se sente em relação ao sistema em desen-
volvimento? Reações ao protótipo podem ser obtidas através da observação, entrevistas,
questionário ou relatório de avaliação.
• Sugestões do usuário para refinar ou alterar o protótipo: guiam o engenheiro de software
na direção de melhor atender as necessidades dos usuários.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
254
Projeto de Qualidade de Sistemas de Informação
• Inovações: novas capacidades, não imaginadas antes da interação com o protótipo.
• Informações para revisão de planos: estabelecer prioridades e redirecionar planos.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
255
Projeto de Qualidade de Sistemas de Informação
2.4.4 Usuários na Prototipação
Usuários são fundamentais na prototipação. Para capturar as reações dos usuários em relação
ao protótipo, outras técnicas de levantamento de informação devem ser usadas em conjunto. Durante
a experimentação do usuário com o protótipo, utiliza-se a observação. Para capturar opiniões e suges-
tões, podem ser empregados, além da observação, entrevistas e questionários.
Referências do Capítulo:
[Kendall92] K.E. Kendall, J.E. Kendall; Systems Analysis and Design, Prentice Hall, 1992.
Quando um novo sistema precisa ser construído, surge uma importante questão: Como caracte-
rizar os requisitos do sistema de um modo adequado para a Engenharia de Software, uma vez que, é
necessário identificar quais os objetos/entidades relevantes, como eles se relacionam e como se com-
portam no contexto do sistema. Além disso, é preciso especificar e modelar o problema de maneira
que seja possível criar um projeto efetivo.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
256
Projeto de Qualidade de Sistemas de Informação
O desenvolvimento de sistemas é um processo de construção de modelos, que tipicamente co-
meça com um modelo de requisitos e termina com um modelo de implementação (código). Modelos
de objetos (diagramas de classes, diagramas de interação, etc...) e modelos estruturados (diagramas
de entidades e relacionamentos, diagramas de fluxo de dados, etc...) incluem detalhes, tais como,
a estrutura interna dos objetos/entidades, suas associações, como eles interagem dinamicamente
e como invocam o comportamento dos demais. Estas informações são necessárias para projetar e
construir um sistema, mas não são suficientes para comunicar requisitos. Elas não capturam o conhe-
cimento sobre as tarefas do domínio e, portanto, é difícil verificar se um modelo deste tipo realmente
corresponde ao sistema que tem de ser construído [Jacobson96].
Assim, o primeiro modelo do sistema a ser construído deve ser passível de compreensão tanto
por desenvolvedores - analistas, projetistas, programadores e testadores - como pela comunidade
usuária - clientes e usuários. Modelos estruturados e de objetos são muito complexos e, portanto,
não servem para este propósito. Este modelo inicial deve descrever o sistema, seu ambiente e como
sistema e ambiente estão relacionados. Em outras palavras, ele deve descrever o sistema segundo
uma perspectiva externa.
Modelos de caso de uso (use cases) são uma forma de estruturar esta visão externa. Como o
próprio nome sugere, um caso de uso é uma maneira de usar o sistema. Usuários interagem com o
sistema, interagindo com seus casos de uso. Tomados em conjunto, os casos de uso de um sistema
representam tudo que os usuários podem fazer com este sistema. Casos de uso são os “itens” que um
desenvolvedor vende a seus clientes.
Em suma, o processo de desenvolvimento de software começa pelo entendimento de como o
sistema será usado. Uma vez que as maneiras de usar o sistema tenham sido definidas, a modelagem
pode, então, ser iniciada.
257
Projeto de Qualidade de Sistemas de Informação
sos de uso. O ambiente do sistema é definido pela descrição dos diferentes usuários. Estes
usuários utilizam o sistema através de um número de casos de uso.
2. Eles oferecem uma abordagem para a modelagem de sistemas. Para gerenciar a complexi-
dade de sistemas reais, é comum apresentar os modelos do sistema em um número de di-
ferentes visões. Em uma abordagem guiada por casos de uso, pode-se construir uma visão
para cada caso de uso, isto é, em cada visão são modelados apenas aqueles elementos que
participam de um caso de uso específico. Um particular elemento pode, é claro, participar
de vários casos de uso. Isto significa que um modelo do sistema completo só é visto através
de um conjunto de visões – uma por caso de uso. Encontram-se todas as responsabilidades
de um elemento de modelo, olhando todos os casos de uso onde este tem um papel.
Além de ser uma ferramenta essencial na captura dos requisitos de um sistema, casos de uso
têm um papel fundamental no planejamento e controle de projetos iterativos.
A captura dos casos de uso é a primeira atividade a ser realizada no desenvolvimento, propria-
mente dito. A maioria dos casos de uso é normalmente gerada durante a fase de levantamento de
requisitos, mas outros casos de uso podem ser descobertos à medida que o trabalho prossegue. Todo
caso de uso é um requisito potencial e, enquanto um requisito não é capturado, não é possível plane-
jar como tratá-lo.
Usualmente, em primeiro lugar, casos de uso são listados e discutidos, para só então, se realizar
alguma modelagem. Entretanto, em alguns casos, a modelagem conceitual ajuda a descobrir casos de
uso.
Um caso de uso pode ser capturado através de conversas com usuários típicos, discutindo as
várias coisas que eles querem fazer com o sistema. Cada uma dessas interações discretas constitui um
caso de uso. Dê a ela um nome e escreva uma descrição textual pequena. Não tente capturar todos os
detalhes de um caso de uso logo no início.
Os objetivos do usuário podem ser o ponto de partida para a elaboração dos casos de uso.
Proponha um caso de uso para satisfazer cada um dos objetivos do usuário. A partir deles, estude as
possíveis interações do usuário com o sistema e refine o modelo de casos de uso.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
258
Projeto de Qualidade de Sistemas de Informação
A figura 3.1 mostra a notação básica da Linguagem de Modelagem Unificada – UML [Booch00]
para diagramas de casos de uso.
Um ator modela qualquer coisa que precise interagir com o sistema, tais como usuários e outros
sistemas que se comunicam com o sistema em questão. Atores são externos ao sistema; os casos de
uso comportam os elementos de modelo que residem dentro do sistema. Assim, ao se definir frontei-
ras entre atores e casos de uso, está-se delimitando o escopo do sistema. Por estarem fora do sistema,
atores estão fora do controle de nossas ferramentas de modelagem e não precisam ser descritos em
detalhes. Atores representam tudo que tem necessidade de trocar informação com o sistema. Nada
mais externo ao sistema deve ter impacto sobre o sistema.
É importante realçar a diferença entre ator e usuário. Um usuário é uma pessoa que utiliza o
sistema, enquanto um ator representa um papel específico que um usuário pode desempenhar. Vários
usuários em uma organização podem interagir com o sistema da mesma forma e, portanto, desempe-
nham o mesmo papel. Um ator representa exatamente um certo papel que diversos usuários podem
desempenhar. Assim, atores podem ser pensados como classes, isto é, descrições de um comporta-
mento, enquanto usuários podem desempenhar diversos papéis e, assim, servir como instâncias de
diferentes classes de atores. Ao lidar com atores, é importante pensar em termos de papéis ao invés
de usuários. Um bom ponto de partida para a identificação de atores é verificar por que o sistema
deve ser desenvolvido, procurando observar que atores o sistema se propõe a ajudar.
Quando um ator interage com o sistema, normalmente, ele realiza uma sequência comporta-
mentalmente relacionada de ações em um diálogo com o sistema. Tal sequência compreende um caso
de uso. Um caso de uso é, de fato, uma maneira específica de utilizar o sistema, através da execução
de alguma parte de sua funcionalidade. Cada caso de uso constitui um curso completo de eventos
com um ator e especifica a interação que acontece entre o ator e o sistema. O conjunto de todas as
descrições de casos de uso especifica todas as maneiras de se usar o sistema e, consequentemente,
a sua funcionalidade completa.
Uma boa fonte para identificar casos de uso são os eventos externos. Pense sobre todos os
eventos do mundo externo para os quais o sistema deve reagir. Identificar estes eventos pode ajudá-lo
a identificar os casos de uso.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
259
Projeto de Qualidade de Sistemas de Informação
Para sistemas grandes, pode ser difícil propor uma lista de casos de uso. Nestas situações, é mais
fácil chegar primeiro a uma lista de atores e tentar elaborar os casos de uso para cada ator. Para cada
curso completo de eventos com um ator, um caso de uso é identificado.
Qualquer que seja a abordagem utilizada, devemos sempre identificar os atores de um caso de
uso, descobrir qual é o objetivo real do usuário e considerar modos alternativos de satisfazer estes
objetivos.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
260
Projeto de Qualidade de Sistemas de Informação
O caso de uso Efetuar Saque poderia ser descrito da seguinte maneira:
Fluxo de Eventos Principal
Uma mensagem de saudação está sendo mostrada na tela. O cliente insere seu cartão no caixa
automático, que lê o código da tarja magnética e checa se ele é aceitável.
Se o cartão é aceitável, o caixa pede ao cliente para informar a senha e fica aguardando até que
ela seja informada.
O cliente informa a senha. Se a senha estiver correta, o caixa solicita que o cliente informe o tipo
de transação e fica aguardando.
O cliente seleciona a opção saque. O caixa mostra uma tela para que seja informada a quantia.
O cliente informa a quantia a ser sacada. O caixa envia uma requisição para o sistema bancário para
que seja efetuado um saque na quantia especificada.
Se o saque é autorizado, as notas são preparadas para ser entregue, o cartão é ejetado, um re-
cibo é emitido e as notas liberadas.
Cursos Alternativos
• O cartão não é aceitável: Se o cartão não é aceitável porque sua tarja magnética não é pas-
sível de leitura ou é de um tipo incompatível, o cartão é ejetado com um bip.
• Senha incorreta: Se a senha informada está incorreta, uma mensagem deve ser mostrada
para o cliente que poderá entrar com a senha correta. Caso o cliente informe três vezes
senha incorreta, o cartão deverá ser confiscado.
• Saque não autorizado: Se o saque não for aceito pelo Sistema Bancário, uma mensagem
informando o cliente é mostrada por 10 segundos e o cartão é ejetado.
• Cancelamento: O cliente pode sempre cancelar a transação em qualquer momento que
lhe seja perguntada alguma informação. Isto resultará na ejeção do cartão e no término da
transação.
Como visto pelo exemplo anterior, um caso de uso pode ter um número de cursos alternativos
que podem levar o caso de uso por diferentes fluxos. Tanto quanto possível, esses cursos alternativos,
frequentemente cursos de exceção, devem ser anotados durante a especificação de um caso do uso.
Referências do Capítulo:
[Booch00] G. Booch, J. Rumbaugh, I. Jacobson; UML – Guia do Usuário. Editora Campus,
2000.
[Fowler97] M. Fowler, K. Scott; UML Distilled: Applying the Standard Object Modeling Lan-
guage, Addison-Wesley Object Technology Series, 1997.
[Furlan98] J.D. Furlan; Modelagem de Objetos Através da UML; Makron Books, 1998.
[Jacobson96] I. Jacobson; “The Use Case Construct in Object-Oriented Software Engineering”,
In: Scenario-Based Design, 1996.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
261
Projeto de Qualidade de Sistemas de Informação
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
262
Projeto de Qualidade de Sistemas de Informação
Os métodos orientados a funções conduzem o desenvolvimento de software estruturando as
aplicações segundo a ótica das funções (ações) que o sistema deverá realizar. O sistema é decomposto
em funções, e os dados são transportados entre elas. Esta é a filosofia da proposta original da Análise
Estruturada [DeMarco78] [Gane79], cuja ferramenta básica de modelagem são os diagramas de fluxo
de dados (DFDs).
Os métodos orientados a dados, por sua vez, enfatizam a identificação e estruturação dos dados,
subjugando a análise das funções para um segundo plano. Esses métodos têm origem no projeto de
bancos de dados e, geralmente, têm no modelo de Entidades e Relacionamentos (ER) [Chen79] sua
principal ferramenta.
A ênfase nas funções, geralmente, leva a sistemas com muita redundância e, consequentemen-
te, inconsistentes e difíceis de serem integrados. Por outro lado, a ênfase nos dados está fundamenta-
da em dois fatores significativos:
• Dados possuem existência própria nas organizações independentemente dos processos
que os manipulam.
• Dados são muito mais estáveis que as funções em uma organização. A menos que haja gran-
des mudanças nos negócios de uma empresa, os dados tendem a se manter estáveis.
Assim, é possível desenvolver modelos de dados sem redundância, sem inconsistência e fáceis
de integrar. Entretanto, uma vez que o modelo de dados deve representar a realidade, e o conheci-
mento da realidade, muitas vezes, passa pelo conhecimento das funções, ele deve ser construído de
forma iterativa, não podendo ser considerado um produto acabado.
A Análise Essencial [Pompilho95] procurou conciliar as abordagens orientadas a dados e a fun-
ções em um único método, utilizando modelos para dados, funções e controles (DFDs e Modelo ER e
Diagramas de Transição de Estados, respectivamente) como ferramentas para a modelagem de siste-
mas.
Um sistema desenvolvido usando um método estruturado, frequentemente, é difícil de ser man-
tido. A princípio, o problema principal advém do fato de todas as funções terem de conhecer como
os dados estão armazenados, isto é, a estrutura dos dados. Além disso, mudanças na estrutura dos
dados quase sempre acarretam modificações em todas as funções relacionadas a essa estrutura. Em
suma, a interpretação dos dados é apenas implícita, provida pelos programas que leem ou escrevem
dados. Diferentes programas podem dar diferentes interpretações aos dados e, portanto, é necessário
conhecer como eles foram projetados para poder interpretá-los corretamente [Snyder93].
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
263
Projeto de Qualidade de Sistemas de Informação
A orientação a objetos oferece um número de conceitos bastante apropriados para a modela-
gem de sistemas. Utilizando a orientação a objetos como base, os sistemas são modelados como um
número de objetos que interagem. Os modelos baseados em objetos são úteis para a compreensão
de problemas, para a comunicação com os especialistas e usuários das aplicações, e para a realização
das tarefas ao longo do ciclo de desenvolvimento de software. Os principais objetivos da orientação
a objetos são:
• Diminuir a distância conceitual entre o mundo real (domínio do problema) e o modelo abs-
trato de solução (domínio da solução);
• Trabalhar com noções intuitivas (objetos e ações) durante todo o ciclo de vida, atrasando,
ao máximo, a introdução de conceitos de implementação.
Normalmente, esta é uma maneira mais natural para descrever sistemas, já que os objetos são
geralmente bastante estáveis. Alterações que por ventura venham a ocorrer, geralmente, afetam um
ou alguns poucos objetos [Jacobson92].
Eduard Yourdon [Yourdon94] dá um bom resumo do que pode ser considerado um produto
“orientado a objeto”:
Um sistema construído usando um método orientado a objetos é aquele cujos componentes são
partes encapsuladas de dados e funções, que podem herdar atributos e comportamento de outros
componentes da mesma natureza, e cujos componentes comunicam-se entre si por meio de mensa-
gens.
Métodos orientados a objetos utilizam uma perspectiva mais humana de observação da realida-
de, incluindo objetos, classificação e compreensão hierárquica. São benefícios esperados com o uso
da orientação a objetos:
• Capacidade de enfrentar novos domínios de aplicação;
• Melhoria da interação entre analistas e especialistas;
• Aumento da consistência interna dos resultados da análise;
• Uso de uma representação básica consistente para a análise e projeto;
• Alterabilidade, legibilidade e extensibilidade;
• Possibilidade de ciclos de desenvolvimento variados;
• Apoio à reutilização.
É importante enfatizar, no entanto, que a orientação a objetos não é mágica, isto é, ela não é
uma nova “tábua de salvação” para eliminar os problemas de produtividade e qualidade que têm
atormentado a indústria de software ao longo das últimas décadas. Se praticada cuidadosamente,
combinada com várias outras técnicas de Engenharia de Software – tais como, uso de métricas, reuti-
lização, testes, e garantia da qualidade - a orientação a objetos pode ajudar a levar a melhorias subs-
tanciais no desempenho de uma organização de software [Yourdon94]. Portanto, é imprescindível,
para grandes projetos, a definição de um processo de desenvolvimento que garanta o uso consistente
dessas técnicas e que seja apoiado por ferramentas computacionais, tais como ferramentas CASE e
Ambientes de Desenvolvimento de Software.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
264
Projeto de Qualidade de Sistemas de Informação
4.2 Conceitos da Orientação a Objetos
O mundo real é algo extremamente complexo. Quanto mais de perto o observamos, mais cla-
ramente percebemos sua complexidade. A orientação a objetos tenta gerenciar a complexidade ine-
rente dos problemas do mundo real, abstraindo conhecimento relevante e encapsulando-o dentro de
objetos. De fato, alguns princípios básicos gerais para a administração da complexidade norteiam este
processo de modelagem, entre eles, abstração, encapsulamento, modularidade e hierarquia.
4.2.1 Abstração
Uma das principais formas do ser humano lidar com a complexidade é através do uso de abstra-
ções. As pessoas tipicamente tentam compreender o mundo, construindo modelos mentais de partes
dele. Tais modelos são uma visão simplificada de algo, onde apenas elementos relevantes são conside-
rados. Modelos mentais, portanto, são mais simples do que os complexos sistemas que eles modelam.
Consideremos, por exemplo, um mapa como um modelo do território que ele representa. Um
mapa é útil porque abstrai apenas aquelas características do território que se deseja modelar. Se um
mapa incluísse todos os detalhes do território, provavelmente teria o mesmo tamanho do território e,
portanto, não serviria a seu propósito.
Da mesma forma que um mapa precisa ser significativamente menor que o território que ma-
peia, incluindo apenas informações cuidadosamente selecionadas, um modelo mental abstrai apenas
as características relevantes de um sistema para seu entendimento. Assim, podemos definir abstração
como sendo o princípio de ignorar aspectos não relevantes de um assunto, segundo a perspectiva de
um observador, tornando possível uma concentração maior nos aspectos principais do mesmo. De
fato, a abstração consiste na seleção que um observador faz de alguns aspectos de um assunto, em
detrimento de outros que não demonstram ser relevantes para o propósito em questão.
No que tange o desenvolvimento de software, duas formas adicionais de abstração têm grande
importância: a abstração de dados e a abstração de procedimentos.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
265
Projeto de Qualidade de Sistemas de Informação
4.2.2 Encapsulamento
No mundo real, um objeto pode interagir com outro sem conhecer seu funcionamento inter-
no. Uma pessoa, por exemplo, geralmente utiliza uma televisão sem saber efetivamente qual a sua
estrutura interna ou como seus mecanismos internos são ativados. Para utilizá-la, basta saber realizar
algumas operações básicas, tais como ligar/desligar a TV, mudar de um canal para outro, regular volu-
me, cor, etc. Como estas operações produzem seus resultados, mostrando um programa na tela, não
interessa ao telespectador.
O encapsulamento consiste na separação dos aspectos externos de um objeto, acessíveis por
outros objetos, de seus detalhes internos de implementação, que ficam ocultos dos demais objetos
[Rumbaugh94]. A interface de comunicação de um objeto deve ser definida de forma a revelar o me-
nos possível sobre o seu funcionamento interno.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
266
Projeto de Qualidade de Sistemas de Informação
A principal motivação para o encapsulamento é facilitar a reutilização de objetos e garantir esta-
bilidade aos sistemas. Um encapsulamento bem feito pode servir de base para a localização de deci-
sões de projeto que necessitam ser alteradas. Uma operação pode ter sido implementada de maneira
ineficiente e, portanto, pode ser necessário escolher um novo algoritmo. Se a operação está encapsu-
lada, apenas o objeto que a define precisa ser modificado, garantindo estabilidade ao sistema.
4.2.3 Modularidade
Muitos métodos de construção de software buscam obter sistemas modulares, isto é, constru-
ídos a partir de elementos que sejam autônomos, conectados por uma estrutura simples e coerente.
Modularidade é crucial para se obter reusabilidade e extensibilidade.
Modularidade é uma propriedade de sistemas decompostos em um conjunto de módulos coe-
sos e fracamente acoplados. Assim, abstração, encapsulamento e modularidade são princípios siner-
géticos1. Um objeto provê uma fronteira clara em torno de uma abstração e o encapsulamento e a
modularidade proveem barreiras em torno dessa abstração [Booch94].
4.2.4 Hierarquia
Abstração é um princípio importantíssimo, mas em todas as aplicações, exceto aquelas mais
triviais, deparamo-nos com um número de abstrações maior do que conseguimos compreender em
um dado momento. O encapsulamento ajuda a gerenciar esta complexidade através do ocultamento
da visão interna de nossas abstrações. Modularidade auxilia também, dando-nos um meio de agru-
par logicamente abstrações relacionadas. Entretanto, isto ainda não é o bastante. Um conjunto de
abstrações frequentemente forma uma hierarquia e, pela identificação dessas hierarquias, é possível
simplificar significativamente o entendimento sobre um problema [Booch94]. Em suma, hierarquia é
uma forma de arrumar as abstrações.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
267
Projeto de Qualidade de Sistemas de Informação
Apesar de haver muitas abordagens documentadas para análise e projeto orientados a objetos,
há muito pouca informação disponível sobre processos de desenvolvimento orientados a objetos. Um
processo de desenvolvimento engloba um conjunto de atividades, métodos, técnicas e práticas que
guiam as pessoas na produção de software, permitindo que um produto seja coerentemente criado.
Um processo eficaz deve, claramente, considerar as relações entre as atividades, os artefatos requeri-
dos e produzidos, os recursos, ferramentas e procedimentos necessários e a habilidade, o treinamen-
to e a motivação do pessoal envolvido.
Processos de desenvolvimento não são sempre necessários. Em pequenos projetos, desenvolve-
dores podem se comunicar informalmente, dado o pequeno número de pessoas envolvidas. À medida
que o número de desenvolvedores cresce, contudo, os canais de comunicação informais não são mais
confiáveis e um processo de desenvolvimento é, então, necessário. De fato, nestes casos, a definição
de um processo de desenvolvimento é um elemento essencial para assegurar a qualidade em um
projeto.
Há vários aspectos a serem considerados na definição de um processo de software. No centro
de sua arquitetura estão as atividades-chave do processo: planejamento, levantamento de requisitos,
análise, projeto, implementação e testes, que são a base sobre a qual o processo de desenvolvimen-
to deve ser construído. Entretanto, um processo envolve a escolha de um modelo de ciclo de vida,
o detalhamento de suas macro atividades, a escolha de métodos e técnicas para a sua realização e a
definição de recursos e artefatos necessários e produzidos.
Um processo de desenvolvimento de software não pode ser definido de forma universal. Para
ser eficaz e conduzir à construção de produtos de boa qualidade, um processo deve ser adequado
ao domínio da aplicação e ao projeto específico. Deste modo, processos devem ser definidos caso a
caso, considerando-se as especificidades da aplicação, a tecnologia a ser adotada na sua construção,
a organização onde o produto será desenvolvido e o grupo de desenvolvimento.
Em suma, o objetivo de se definir um processo de software é favorecer a produção de sistemas
de alta qualidade, atingindo as necessidades dos usuários finais, dentro de um cronograma e um or-
çamento previsíveis.
A escolha de um modelo de ciclo de vida é o ponto de partida para a definição de um processo
de software. Um modelo de ciclo de vida organiza as macro atividades básicas, estabelecendo prece-
dência e dependência entre as mesmas.
Um ciclo de vida pode ser entendido como passos ou atividades que devem ser executados
durante um projeto. Para a definição completa do processo, a cada atividade, devem ser associados
técnicas, ferramentas e critérios de qualidade, entre outros, formando uma base sólida para o desen-
volvimento. Adicionalmente, outras atividades tipicamente de cunho gerencial, devem ser definidas,
entre elas gerência de configuração e controle e garantia da qualidade.
De maneira geral, o ciclo de vida de um software envolve as seguintes fases:
• Planejamento: O objetivo do planejamento de projeto é fornecer uma estrutura que pos-
sibilite ao gerente fazer estimativas razoáveis de recursos, custos e prazos. Uma vez es-
tabelecido o escopo de software, uma proposta de desenvolvimento deve ser elaborada,
isto é, um plano de projeto deve ser elaborado configurando o processo a ser utilizado
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
268
Projeto de Qualidade de Sistemas de Informação
no desenvolvimento de software. À medida que o projeto progride, o planejamento deve
ser detalhado e atualizado regularmente. Pelo menos ao final de cada uma das fases do
desenvolvimento (levantamento de requisitos, análise, projeto, implementação e teste) o
planejamento como um todo deve ser revisto e o planejamento da etapa seguinte deve ser
detalhado.
• Levantamento de Requisitos: Nesta fase, o processo de coleta (levantamento) de requisitos
é intensificado. O escopo deve ser refinado e os requisitos identificados. Para entender a
natureza do software a ser construído, o engenheiro de software tem de compreender o
domínio do problema, bem como a funcionalidade e o comportamento esperados.
• Análise: Uma vez identificados os requisitos do sistema a ser desenvolvido, estes devem ser
modelados, avaliados e documentados. Uma parte vital desta fase é a construção de um
modelo descrevendo o que o software tem de fazer (e não como fazê-lo).
• Projeto: Esta fase é responsável por incorporar requisitos tecnológicos aos requisitos es-
senciais do sistema, modelados na fase anterior e, portanto, requer que a plataforma de
implementação seja conhecida. Basicamente, envolve duas grandes etapas: projeto da ar-
quitetura do sistema e projeto detalhado. O objetivo da primeira etapa é definir a arquite-
tura geral do software, tendo por base o modelo construído na fase de análise de requisitos.
Esta arquitetura deve descrever a estrutura de nível mais alto da aplicação e identificar seus
principais componentes. O propósito do projeto detalhado é detalhar o projeto do software
para cada componente identificado na etapa anterior. Os componentes de software devem
ser sucessivamente refinados em níveis de maior detalhamento, até que possam ser codifi-
cados e testados.
• Implementação: O projeto deve ser traduzido para uma forma passível de execução pela
máquina. A fase de implementação realiza esta tarefa, isto é, cada unidade de software do
projeto detalhado é implementada.
• Testes: inclui diversos níveis de testes, a saber, teste de unidade, teste de integração e teste
de sistema. Inicialmente, cada unidade de software implementada deve ser testada e os
resultados documentados. A seguir, os diversos componentes devem ser integrados suces-
sivamente até se obter o sistema. Finalmente, o sistema como um todo deve ser testado.
• Implantação: uma vez testado, o software deve ser colocado em produção. Para tal, con-
tudo, é necessário treinar os usuários, configurar o ambiente de produção e, muitas vezes,
converter bases de dados. O propósito desta fase é estabelecer que o software satisfaz os
requisitos dos usuários. Isto é feito instalando o software e conduzindo testes de aceitação
(validação). Quando o software tiver demonstrado prover as capacidades requeridas, ele
pode ser aceito e a operação iniciada.
• Operação: nesta fase, o software é utilizado pelos usuários no ambiente de produção.
• Manutenção: Indubitavelmente, o software sofrerá mudanças após ter sido entregue para
o usuário. Alterações ocorrerão porque erros foram encontrados, porque o software preci-
sa ser adaptado para acomodar mudanças em seu ambiente externo, ou porque o cliente
necessita de funcionalidade adicional ou aumento de desempenho. Muitas vezes, depen-
dendo do tipo e porte da manutenção necessária, esta fase pode requerer a definição de
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
269
Projeto de Qualidade de Sistemas de Informação
um novo processo, onde cada uma das fases precedentes é re-aplicada no contexto de um
software existente ao invés de um novo.
Uma vez que o software é sempre parte de um sistema (ou negócio) maior, o trabalho começa
pelo estabelecimento dos requisitos para todos os elementos do sistema e, na sequência, procede-se
a alocação para software de algum subconjunto destes requisitos. Esta etapa é a Engenharia de Siste-
mas e antecede a todas as demais relacionadas.
Um modelo de ciclo de vida estrutura as atividades do projeto em fases e define como estas
fases estão relacionadas. A escolha de um modelo de ciclo de vida é fortemente dependente das ca-
racterísticas do projeto. Assim, é importante apresentar vários modelos de ciclo de vida adequados ao
desenvolvimento orientado a objetos, indicando em que situações são aplicáveis. Dentre os principais
modelos de ciclo de vida, destacam-se o modelo sequencial linear, o modelo incremental e vários
modelos evolutivos.
Referências do Capítulo:
[Booch94] G. Booch; Object-Oriented Analysis and Design with Applications, 2nd edition,
Benjamin/Cummings Publishing Company, Inc, 1994.
[Coad92] P. Coad, E. Yourdon; Análise Baseada em Objetos, Editora Campus, 1992.
[Furlan98] J.D. Furlan; Modelagem de Objetos Através da UML; Makron Books, 1998.
[Jacobson92] I. Jacobson; Object-Oriented Software Engineering, Addison-Wesley, 1992.
[Kruchten98] P. Kruchten; The Rational Unified Process: An Introduction, Object Technology
Series, Addison-Wesley, 1998.
[Pompilho95] S. Pompilho. Análise Essencial: Guia Prático de Análise de Sistemas. IBPI Press,
Editora Infobook, Rio de Janeiro, 1995.
[Rumbaugh94] J. Rumbaugh, et alli; Modelagem e Projetos Baseados em Objetos, Editora Cam-
pus, 1994.
[Snyder93] A. Snyder; “The Essence of Objects: Concepts and Terms”, IEEE Software, Janei-
ro 1993.
[Yourdon94] E. Yourdon; Object-Oriented Systems Design: an Integrated Approach, Yourdon
Press Computing Series, Prentice Hall, 1994.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
270
Projeto de Qualidade de Sistemas de Informação
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
271
Projeto de Qualidade de Sistemas de Informação
• Conceitual: considera características do sistema independentes do ambiente computacio-
nal (hardware e software) no qual o sistema será implementado. Essas características são
dependentes unicamente das necessidades do usuário.
• Lógico: características dependentes de um determinado tipo de sistema computacional.
Essas características são, contudo, independentes de produtos específicos.
• Físico: características dependentes de um sistema computacional específico, isto é, uma
linguagem e um compilador específico, um sistema gerenciador de bancos de dados espe-
cífico, o hardware de um determinado fabricante, etc.
Nas primeiras etapas do processo de desenvolvimento (levantamento de requisitos e análise), o
engenheiro de software representa o sistema através de modelos conceituais. Nas etapas posteriores,
as características lógicas e físicas são representadas em novos modelos.
O método de Análise Essencial de Sistemas [Pompilho95] preconiza que, de uma forma geral,
um sistema deve ser modelado através de três dimensões:
• Dados: diz respeito aos aspectos estáticos e estruturais do sistema;
• Controle: leva em conta aspectos temporais e comportamentais do sistema;
• Funções: considera a transformação de valores.
Em relação ao grau de abstração, a Análise Essencial considera dois níveis: o nível essencial e o
nível de implementação, representados, respectivamente, pelos seguintes modelos:
• Modelo Essencial: representa o sistema num grau de abstração completamente indepen-
dente de restrições tecnológicas.
• Modelo de Implementação: passa a considerar as restrições tecnológicas impostas pela
plataforma de hardware e software a ser utilizada para implementar o sistema.
Podemos perceber que o modelo de implementação não corresponde a um modelo de análise
propriamente dito, uma vez que considera aspectos de implementação, característica marcante da
fase de projeto. De fato, na abordagem da Análise Essencial, este modelo corresponde a uma espécie
de zona nebulosa entre as fases de análise e de projeto. Por considerarmos que um modelo conside-
rando aspectos da plataforma de implementação é mais bem caracterizado na fase de projeto, neste
texto, não trataremos do modelo de implementação.
5.1 Conceitos
Os conceitos introduzidos pelo método de Análise Essencial endereçavam inicialmente as duas
principais dificuldades que os analistas enfrentavam com a aplicação da Análise Estruturada: a distin-
ção entre requisitos lógicos e físicos, e a ausência de uma abordagem para particionar o sistema em
partes tão independentes quanto possível, de modo a facilitar o processo de análise.
Durante muito tempo, houve grandes debates entre os profissionais de desenvolvimento de
sistemas sobre por qual perspectiva se deveria começar a especificação de um sistema: pelos dados
ou pelas funções? Os argumentos, igualmente válidos, exploravam considerações como:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
272
Projeto de Qualidade de Sistemas de Informação
• Dados são mais estáveis que funções...,
• Sem um entendimento das funções a serem desempenhadas pelo sistema, como definir o
escopo e os dados necessários?
A Análise Essencial procurou estabelecer um novo ponto de partida para a especificação de um
sistema: a identificação dos eventos que o afetam [Pompilho95].
Um dos problemas mais relevantes na especificação é como efetuar seu particionamento. A
Análise Estruturada propõe um particionamento através de uma abordagem top-down. Embora esta
seja uma boa maneira de se atacar um problema complexo – começando da visão geral e ir descen-
do, passo a passo, numa visão hierárquica, a níveis de detalhes cada vez maiores – na prática, esta
abordagem não se mostrou eficiente como estratégia de projeto para a decomposição de sistemas. A
Análise Essencial propõe outra forma de particionamento, a qual é baseada nos eventos, e que tem
demonstrado ser mais efetiva do que a abordagem top-down, pois torna mais fácil a identificação das
funções e entidades que compõem o sistema [Pompilho95].
A Análise Essencial de Sistemas, através da técnica de particionamento por eventos, oferece
uma boa estratégia para modelar o comportamento do sistema, visando satisfazer os requisitos do
usuário, pressupondo-se que dispomos de tecnologia perfeita e que ela pode ser obtida a custo zero
[Xavier95].
Apesar de introduzir novos conceitos e novas abordagens, a Análise Essencial preservou todos
os modelos da Análise Estruturada. De fato, embora diferentes, a melhor maneira de encarar a Análi-
se Essencial é considerá-la uma evolução da Análise Estruturada. A seguir, os principais conceitos da
Análise Essencial [McMenamim84] são apresentados.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
273
Projeto de Qualidade de Sistemas de Informação
Quando o analista pensa em aspectos físicos, ele está, na verdade, tentando identificar (e re-
solver) as limitações de uma determinada tecnologia. Pensamentos típicos do gênero são: quanto de
espaço em disco vou precisar? qual o melhor método de acesso aos dados, considerando as funções
do sistema? que capacidade de processamento devo necessitar? Contudo, nenhuma dessas preocu-
pações são próprias da fase de análise.
Considerando agora que a tecnologia que será utilizada na implementação do sistema é perfei-
ta, todas as perguntas anteriores deixam de ter importância, isto é, não preocupam mais o analista.
Assim sendo, para distinguir um requisito lógico de um requisito físico, utilizando a abstração de tec-
nologia perfeita, formule a seguinte pergunta ao identificar um requisito qualquer: “Para atender ao
seu propósito, o sistema necessitará possuir essa capacidade ou essa característica, mesmo conside-
rando que ele será implementado em uma tecnologia perfeita?” Se a resposta for sim, esse requisito
é verdadeiro e deve ser modelado.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
274
Projeto de Qualidade de Sistemas de Informação
5.1.4 Atividades Essenciais
São todas as tarefas que o sistema deve executar para atender completamente ao seu propó-
sito, mesmo considerando que ele será implementado em uma tecnologia perfeita. Uma atividade
essencial deve executar todo o conjunto de ações necessárias para responder completamente a um e
somente um evento. As atividades essenciais subdividem-se em:
• Atividades Fundamentais: produzem uma informação que é parte do propósito declarado
do sistema. Assim sendo, o propósito do sistema é atendido pelas atividades fundamentais,
as quais produzem as respostas externas do sistema.
• Atividades Custodiais: criam e mantêm a memória necessária à execução das atividades
fundamentais, adquirindo dados do ambiente externo ao sistema e os armazenando nos
depósitos de dados. As respostas que são internas ao sistema são produzidas pelas suas
atividades custodiais.
Quando uma atividade executa tarefas dos dois tipos, ela é denominada atividade composta. As
atividades compostas produzem respostas internas e externas. Os diferentes tipos de atividade essen-
cial estão representados na figura 5.1.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
275
Projeto de Qualidade de Sistemas de Informação
Para manter a abstração da tecnologia perfeita consistente, os depósitos de dados não arma-
zenam chaves estrangeiras (atributos determinantes transpostos entre entidades) para representar
um relacionamento entre entidades, pois essa é uma característica específica dos bancos de dados
relacionais, uma tecnologia nada perfeita. Lembre-se que, na fase de análise, a tecnologia de imple-
mentação ainda não foi selecionada e deve ser considerada perfeita.
Para indicar que o relacionamento entre entidades existe, sem, no entanto definir como ele será
implementado, a representação dos acessos das atividades de custódia à memória essencial deve
obedecer à seguinte regra geral: ao criar ou excluir um relacionamento ou uma entidade que participa
de um relacionamento, mostre o acesso aos depósitos de dados que correspondem ao relacionamen-
to e às entidades que participam do relacionamento.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
276
Projeto de Qualidade de Sistemas de Informação
5.2.1 O Modelo Ambiental
Representa o que o sistema deve fazer para atender ao ambiente. É composto dos seguintes
produtos:
• Propósito do Sistema: enuncia a finalidade do sistema. Pode ser acompanhado de uma
breve descrição do contexto do sistema (mini-mundo).
• Lista de Eventos: lista de eventos aos qual o sistema deve responder. Deve conter, pelo me-
nos, o nome do evento, o estímulo e a resposta externa do sistema.
• Diagrama de Contexto: representa o sistema como um único processo e suas interações
com o ambiente. Pode ser acompanhado de um dicionário de dados.
A declaração de propósito (objetivos) do sistema deve ser elaborada em poucas frases, simples
e precisa, em linguagem destituída de vocabulário técnico, de modo a ser entendida pelos usuários do
sistema e pela administração da empresa, em geral. Não deve fornecer detalhes sobre como o sistema
deverá operar.
A elaboração da lista de eventos é o passo principal desta etapa do desenvolvimento, uma vez
que os eventos constituem a parte fundamental de um sistema. De fato, o primeiro passo na especifi-
cação de um sistema é identificar a quais eventos do mundo exterior ele deverá ocorrer. Esta ativida-
de, denominada Análise de Eventos, é muito bem explorada no Capítulo 15 de [Pompilho95].
Uma vez definidos os eventos, é possível construir o Diagrama de Contexto do sistema, mostran-
do como ele responde a todos os eventos externos relevantes.
Finalmente, pode ser útil elaborar uma descrição de como o sistema responderá a cada um dos
eventos identificados na Lista de Eventos.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
277
Projeto de Qualidade de Sistemas de Informação
• Diagramas de Fluxos de Dados Organizados em Níveis Hierárquicos: representa os pro-
cessos em níveis hierárquicos, a partir do diagrama zero. Os processos do diagrama zero
são obtidos através do agrupamento de atividades essenciais dos DFDs particionados por
eventos. Um critério de agrupamento bastante razoável é considerar o grau de coesão e
acoplamento entre atividades essenciais. As seguintes heurísticas podem ser utilizadas, em
conjunto ou em separado:
• Procurar agrupar em um único processo todas as atividades essenciais que acessam um
determinado depósito de dados, verificando se o processo resultante desse agrupamento é
adequado para representar uma das funções do sistema.
• Agrupar todas as atividades de custódia referentes a um mesmo depósito de dados.
• Procurar identificar uma função do sistema, agrupando atividades essenciais que interagem
com uma mesma entidade externa.
• Representar no DFD-zero, um processo para cada uma das funções do negócio.
• Agrupar as atividades essenciais ao processo para os quais as suas ações mais contribuem.
• Dicionário de Dados: descreve os dados representados no MER, nos DFDs e nos DTEs.
• Especificação da Lógica dos Processos: descreve a lógica dos processos do DFD que não
foram detalhados em diagramas de nível inferior (lógica dos processos primitivos).
Como podemos perceber, a Análise Essencial faz uso praticamente das mesmas técnicas de mo-
delagem da Análise Estruturada, a saber a Modelagem de Dados (utilizando modelos de Entidades e
Relacionamentos), a Modelagem Funcional (utilizando Diagramas de Fluxo de Dados – DFDs) e a Mo-
delagem de Controle (utilizando Diagramas de Transição de Estados). Isso é bastante natural, já que a
Análise Essencial é, de fato, uma extensão da Análise Estruturada.
Na realidade, a principal diferença entre a Análise Essencial e a Análise Estruturada está na
estratégia para atacar o problema: a primeira defende uma abordagem baseada em eventos, onde a
Análise de Eventos passa a ser um passo fundamental, a segunda é baseada apenas na decomposição
top-down da funcionalidade do sistema. A figura 5.3 apresenta de forma sintética a organização do
modelo essencial.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
278
Projeto de Qualidade de Sistemas de Informação
Referências do Capítulo:
[McMenamim84] S.M. McMenamim, J.F. Palmer. Análise Essencial de Sistemas. McGraw-
Hill, São Paulo, 1984.
[Pompilho95] S. Pompilho. Análise Essencial: Guia Prático de Análise de Sistemas.
IBPI Press, Editora Infobook, Rio de Janeiro, 1995.
[Xavier95] C.M.S. Xavier, C. Portilho. Projetando com Qualidade a Tecnologia de
Sistemas de Informação. Livros Técnicos e Científicos Editora, 1995.
[Yourdon90] E. Yourdon. Análise Estruturada Moderna. Editora Campus, 1990.
6. MODELAGEM DE DADOS
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
279
Projeto de Qualidade de Sistemas de Informação
vida originalmente para dar suporte ao projeto de bancos de dados [Chen90] [Setzer87].
Basicamente, o modelo ER representa as entidades (coisas) e os relacionamentos (fatos) do
mundo real, que um sistema de informação precisa simular internamente.
280
Projeto de Qualidade de Sistemas de Informação
• independente: os domínios de valores de atributos devem ser independentes uns dos ou-
tros.
Atributos podem ser de dois tipos:
• Atributos Descritivos: descrevem características intrínsecas do objeto. Ex: sexo, altura, na-
cionalidade, etc ...
• Atributos Nominativos: nomes e rótulos arbitrários dados aos objetos. Ex: nome, matrícu-
la, etc ...
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
281
Projeto de Qualidade de Sistemas de Informação
Relacionamento: é uma abstração de uma associação entre duas ou mais entidades.
Relacionamento Binário: é uma representação abstrata da associação de duas entidades.
Conjunto de Relacionamentos: é um subconjunto do produto cartesiano dos conjuntos de en-
tidades envolvidos.
Ex: O mundo real nos conta que:
Funcionários são lotados em Departamentos.
Alunos cursaram Disciplinas.
Fornecedores fornecem Materiais.
É importante notar que todos os relacionamentos binários possuem uma leitura inversa:
Departamentos lotam Funcionários.
Disciplinas foram cursadas por Alunos.
Materiais são fornecidos por Fornecedores.
Algumas correntes pregam o uso de um nome que abstraia a direção da leitura.
Alunos cursaram Disciplinas. => Realizações
Fornecedores fornecem Materiais. => Fornecimentos
Neste texto, entretanto, adotaremos a seguinte notação: Um relacionamento será representado
por um losango com um verbo para indicar a ação e uma seta para informar o sentido de leitura, como
mostra a figura 6.3.
É importante frisar que, entre duas entidades, pode existir mais de um tipo de relacionamento,
como mostra o exemplo da figura 6.4.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
282
Projeto de Qualidade de Sistemas de Informação
Além disso, uma entidade pode participar de relacionamentos com quaisquer outras entidades
do modelo, inclusive com ela mesma, como mostra a figura 6.5.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
283
Projeto de Qualidade de Sistemas de Informação
Repetição: indica quantas vezes os mesmos dois elementos de conjuntos de entidades podem
ser associados. Ex: Um aluno não pode cursar a mesma disciplina mais do que 3 vezes.
Dependência: um tipo de relacionamento pode ser restringido por outro relacionamento, ou
depender de suas associações anteriores. Ex: Um aluno não pode matricular-se em uma disciplina que
ainda não tenha cumprido seus pré-requisitos. Um empregado não pode ser colocado em um cargo
cujo salário seja inferior ao do seu cargo atual.
Restrições de Integridade de Dependência e Repetição não são representadas no diagrama,
como ocorre com a Cardinalidade, e devem ser descritas em um dicionário do projeto.
Relacionamentos 1:N ou N:1: cada elemento de B pode aparecer no máximo em um único par
de R, enquanto cada elemento de A pode ocorrer em um número qualquer de pares, como ilustra o
exemplo da figura 6.9.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
284
Projeto de Qualidade de Sistemas de Informação
Relacionamentos N:N: cada elemento de A ou de B pode aparecer em um número não determi-
nado de pares de R, como ilustra o exemplo da figura 6.10.
Referências do Capítulo:
[Chen90] P. Chen. Gerenciando Banco de Dados: A Abordagem Entidade-
Relacionamento para Projeto Lógico. McGraw-Hill, 1990.
[Setzer87] W. Setzer. Bancos de Dados. 2a Edição, Editora Edgard Blücher, 1987.
[Yourdon90] E. Yourdon. Análise Estruturada Moderna. Editora Campus, 1990.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
285
Curso Técnico em
INFORMÁTICA
Etapa 2
LINGUAGEM TÉCNICA DE
PROGRAMAÇÃO I
Linguagem Técnica de Programação I
Carga horária da etapa: 120 horas
Objetivos gerais:
Apresentar os conceitos relacionados ao paradigma da programação orientada a objetos, tor-
nando-os capazes de: Desenvolver aplicações usando o conceito da orientação a objetos; implemen-
tar os conceitos de orientação a objetos com a linguagem de programação Java.
Especificamente os objetivos são:
• Propiciar o embasamento teórico para o desenvolvimento de programas no paradigma
orientado a objetos;
• Habilitar o aluno na construção de sistemas baseados nos recursos metodológicos da pro-
gramação orientada a objeto;
• Capacitar os alunos a desenvolver sistemas orientados a objetos através da linguagem de
programação Java;
Avaliações:
Bibliografia básica:
• Aprenda em 21 dias, Java 2
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
289
Linguagem Técnica de Programação I
CADENHEAD, Rogers
Rio de Janeiro : Elsevier Editora, 2003.
• Java, como programar : apresentando projeto orientado a objetos com a UML e padrões de
projeto.
DEITEL, Harvey M.
Porto Alegre : Bookman Companhia Editora, 2005.
• http://www.oracle.com/technetwork/java/index.html
Objetivo
Esta apostila tem por objetivo, ajudar ao aluno na compreensão:
• Conceitos da linguagem de programação java;
• Explicar as principais nomenclaturas utilizadas na linguagem;
• Apresentar como é aplicada a herança utilizando java;
• Entender como são realizados os tratamento de exceções em java;
• Criar códigos de exemplo com conexão a banco de dados.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
290
Linguagem Técnica de Programação I
SUMÁRIO
Introdução........................................................................................................................................ 293
Maquina virtual................................................................................................................................ 293
Variáveis de ambiente para Java...................................................................................................... 294
O que pode dar errado?................................................................................................................... 295
Comentários gerais:.......................................................................................................................... 299
Classe Java........................................................................................................................................ 303
Criando e usando um objeto............................................................................................................ 304
Métodos........................................................................................................................................... 305
Objetos são acessados por referências............................................................................................ 306
Métodos com retorno...................................................................................................................... 307
Getters e Setters............................................................................................................................... 312
O construtor default......................................................................................................................... 314
Qual a necessidade de um construtor?............................................................................................ 315
Um construtor chamando outro construtor..................................................................................... 315
Super e Sub classe............................................................................................................................ 320
Polimorfismo em Java...................................................................................................................... 320
Herança X acoplamento................................................................................................................... 322
Exceções de Runtime mais comuns.................................................................................................. 333
Outro tipo de exceção: Checked Exceptions..................................................................................... 334
A conexão em Java........................................................................................................................... 338
Referencias....................................................................................................................................... 340
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
291
Linguagem Técnica de Programação I
INTRODUÇÃO
Java é uma linguagem de programação de alto nível e orientada à objetos criada no começo
da década de 90. A sintaxe da linguagem é muito parecida com C e C++, mas ela possui um número
maior de facilidades e funcionalidades. O Java foi criado pela antiga Sun Microsystems e mantida
através de um comitê (http://www.jcp.org). Seu site principal era o java.sun.com, e java.com um site
mais institucional, voltado ao consumidor de produtos e usuários leigos, não desenvolvedores. Com
a compra da Sun pela Oracle em 2009, muitas URLs e nomes tem sido trocados para refletir a marca
da Oracle. A página principal do Java é: http://www.oracle.com/technetwork/java/.
A Sun criou um time (conhecido como Green Team) para desenvolver inovações tecnológicas
em 1992. Esse time foi liderado por James Gosling, considerado o pai do Java. O time voltou com a
ideia de criar um interpretador (já era uma máquina virtual, veremos o que é isso mais a frente) para
pequenos dispositivos, facilitando a reescrita de software para aparelhos eletrônicos, como vídeo
cassete, televisão e aparelhos de TV a cabo.
A ideia não deu certo. Tentaram fechar diversos contratos com grandes fabricantes de eletrôni-
cos, como Panasonic, mas não houve êxito devido ao conflito de interesses e custos. Hoje, sabemos
que o Java domina o mercado de aplicações para celulares com mais de 2.5 bilhões de dispositivos
compatíveis, porém em 1994 ainda era muito cedo para isso.
Com o advento da web, a Sun percebeu que poderia utilizar a ideia criada em 1992 para rodar
pequenas aplicações dentro do browser. A semelhança era que na internet havia uma grande quanti-
dade de sistemas operacionais e browsers, e com isso seria grande vantagem poder programar numa
única linguagem, independente da plataforma. Foi aí que o Java 1.0 foi lançado: focado em transfor-
mar o browser de apenas um cliente magro (thin client ou terminal burro) em uma aplicação que
possa também realizar operações avançadas, e não apenas renderizar html.
Máquina virtual
O Java utiliza do conceito de máquina virtual, onde existe, entre o sistema operacional e a apli-
cação, uma camada extra responsável por “traduzir” - mas não apenas isso - o que sua aplicação de-
seja fazer para as respectivas chamadas do sistema operacional onde ela está rodando no momento:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
293
Linguagem Técnica de Programação I
Dessa forma, a maneira com a qual você abre uma janela no Linux ou no Windows é a mesma:
você ganha independência de sistema operacional. Ou, melhor ainda, independência de plataforma
em geral: não é preciso se preocupar em qual sistema operacional sua aplicação está rodando, nem
em que tipo de máquina, configurações, etc.
Sua aplicação roda sem nenhum envolvimento com o sistema operacional! Sempre conversando
apenas com a Java Virtual Machine (JVM).
Configurando o Java
Siglas:
JVM? JRE? JDK?
O que deve ser baixar?
JVM = apenas a virtual machine, esse download não existe, ela sempre vem acompanhada.
JRE = Java Runtime Environment, ambiente de execução Java, formado pela JVM e bibliotecas,
tudo que você precisa para executar uma aplicação Java. Mas nós precisamos de mais.
JDK = Java Development Kit: Nós, desenvolvedores, faremos o download do JDK do Java SE
(Standard Edition). Ele é formado pela JRE somado a ferramentas, como o compilador.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
294
Linguagem Técnica de Programação I
Valor da variável: C:\Programas\Java\jdk1.6.0_20\bin; (mesmo procedimento de cima só com-
pleta com o \bin que é o diretório dentro do Java);
A variável PATH você coloca o caminho para o seu
- e a variável CLASSPATH não muda nada.
Nome da variável: CLASSPATH
Valor da variável: .;JAVA_HOME
Primeiro programa em Java
Vamos para o nosso primeiro código! O programa que imprime uma linha simples.
Para mostrar uma linha, podemos fazer:
System.out.println(“Minha primeira aplicação Java!”);
Mas esse código não será aceito pelo compilador java. O Java é uma linguagem bastante buro-
crática, e precisa de mais do que isso para iniciar uma execução. O mínimo que precisaríamos escrever
é algo como:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
295
Linguagem Técnica de Programação I
Com isso, você declara a variável idade, que passa a existir a partir daquela linha. Ela é do tipo
int, que guarda um número inteiro. A partir daí, você pode usá-la, primeiramente atribuindo valores.
A linha a seguir é a tradução de: “idade deve valer quinze”.
idade = 15;
Além de atribuir, você pode utilizar esse valor. O código a seguir declara novamente a variável
idade com valor 15 e imprime seu valor na saída padrão através da chamada a System.out.println.
Por fim, podemos utilizar o valor de uma variável para algum outro propósito, como alterar ou
definir uma segunda variável. O código a seguir cria uma variável chamada idadeNoAnoQueVem com
valor de idade mais um.
No mesmo momento que você declara uma variável, também é possível inicializá-la por pratici-
dade:
Você pode usar os operadores +, -, / e * para operar com números, sendo eles responsáveis pela
adição, subtração, divisão e multiplicação, respectivamente. Além desses operadores básicos, há o
operador % (módulo) que nada mais é que o resto de uma divisão inteira. Veja alguns exemplos:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
296
Linguagem Técnica de Programação I
Exemplo de aplicação utilizando variáveis.
Representar números inteiros é fácil, mas como guardar valores reais, tais como frações de nú-
meros inteiros e outros? Outro tipo de variável muito utilizado é o double, que armazena um número
com ponto flutuante (e que também pode armazenar um número inteiro).
O tipo boolean armazena um valor verdadeiro ou falso, e só: nada de números, palavras ou en-
dereços, como em algumas outras linguagens.
“true” e “false” são palavras reservadas do Java. É comum que um boolean seja determinado
através de uma expressão booleana, isto é, um trecho de código que retorna um booleano, como o
exemplo:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
297
Linguagem Técnica de Programação I
O tipo char guarda um, e apenas um, caractere. Esse caractere deve estar entre aspas simples.
Não se esqueça dessas duas características de uma variável do tipo char! Por exemplo, ela não pode
guardar um código como ‘’ pois o vazio não é um caractere!
Variáveis do tipo char são pouco usadas no dia a dia. Veremos mais a frente o uso das Strings,
que usamos constantemente, porém estas não são definidas por um tipo primitivo.
Definindo comentários no código Java
Durante o desenvolvimento de um software é muito importante escrever comentários expli-
cando os códigos fontes, pois facilita tanto o desenvolvimento do código como sua manutenção, a
linguagem Java fornece três formas diferentes de escrever comentários:
// -> Comentário de uma única linha
/* Comentário longo com mais
de uma linha */
/**
* Javadoc
* Javadoc é um utilitário do pacote de desenvolvimento Java utilizado
* para a criação de um documento HTML com todos os métodos e
* atributos das classes contidas em seu projeto.
*/
Exemplo:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
298
Linguagem Técnica de Programação I
Na linha 1 até a linha 7 estamos criando um comentário do tipo javadoc.
Na linha 10 usamos o comentário simples de uma linha.
Na linha 13 até a linha 14 usamos o comentário longo que pode ser utilizado por varias linhas.
Javadoc
Javadoc é um utilitário do pacote de desenvolvimento Java utilizado para a criação de um docu-
mento HTML com todos os métodos e atributos das classes contidas em seu projeto, além dos comen-
tários inseridos com as tags especiais:
/**
* Comentário do JavaDoc.
*/
Os comentários do Javadoc são usados para descrever classes, variáveis, objetos, pacotes, in-
terfaces e métodos. Cada comentário deve ser colocado imediatamente acima do recurso que ele
descreve.
Também é possível utilizar-se de comandos especiais, que servem como marcação, para que
na geração do documento determinadas informações já sejam colocadas em campos específicos, tais
como o autor do método descrito ou sua versão. Segue abaixo alguns destes comandos.
Comentários gerais:
@deprecated - adiciona um comentário de que a classe, método ou variável deveria não ser
usada. O texto deve sugerir uma substituição.
@since - descreve a versão do produto quando o elemento foi adicionado à especificação da
API.
@version - descreve a versão do produto.
@see - essa marca adiciona um link à seção “Veja também” da documentação.
Comentários de classes e interfaces
@author - autor do elemento.
@version - número da versão atual.
Comentários de métodos
@param - descreve os parâmetros de um método acompanhado por uma descrição.
@return - descreve o valor retornado por um método.
@throws - indica as exceções que um dado método dispara com uma descrição associada.
Comentários de serialização
@serial - para documentar a serialização de objetos.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
299
Linguagem Técnica de Programação I
Exemplo:
Depois comentar seu programa usando as tags acima, basta somente deixar o javadoc fazer o
seu trabalho, pois o mesmo vai se encarregar de gerar um conjunto de páginas HTML.
No diretório que contém os arquivos-fonte execute o comando:
javadoc -d dirDoc nomeDoPacote
Orientação a objetos
Orientação a objetos é uma maneira de programar que ajuda na organização e resolve muitos
problemas enfrentados pela programação procedural.
Consideremos o clássico problema da validação de um CPF. Normalmente, temos um formulá-
rio, no qual recebemos essa informação, e depois temos que enviar esses caracteres para uma função
que vai validá-lo, como no pseudocódigo abaixo:
cpf = formulario->campo_cpf
valida(cpf)
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
300
Linguagem Técnica de Programação I
Alguém te obriga a sempre validar esse CPF? Você pode, inúmeras vezes, esquecer de chamar
esse validador. Mais: considere que você tem 50 formulários e precise validar em todos eles o CPF.
Se sua equipe tem 3 programadores trabalhando nesses formulários, quem fica responsável por essa
validação? Todos!
A situação pode piorar: na entrada de um novo desenvolvedor, precisaríamos avisá-lo que sem-
pre devemos validar o cpf de um formulário. É nesse momento que nascem aqueles guias de progra-
mação para o desenvolvedor que for entrar nesse projeto - às vezes, é um documento enorme. Em ou-
tras palavras, todo desenvolvedor precisa ficar sabendo de uma quantidade enorme de informações,
que, na maioria das vezes, não está realmente relacionado à sua parte no sistema, mas ele precisa ler
tudo isso, resultando um entrave muito grande!
Outra situação onde ficam claros os problemas da programação procedural, é quando nos en-
contramos na necessidade de ler o código que foi escrito por outro desenvolvedor e descobrir como
ele funciona internamente. Um sistema bem encapsulado não deveria gerar essa necessidade. Em um
sistema grande, simplesmente não temos tempo de ler todo o código existente.
Considerando que você não erre nesse ponto e que sua equipe tenha uma comunicação muito
boa (perceba que comunicação excessiva pode ser prejudicial e atrapalhar o andamento), ainda te-
mos outro problema: imagine que, em todo formulário, você também quer que a idade do cliente seja
validada - o cliente precisa ter mais de 18 anos. Vamos ter de colocar um if... mas onde? Espalhado por
todo seu código... Mesmo que se crie outra função para validar, precisaremos incluir isso nos nossos
50 formulários já existentes. Qual é a chance de esquecermos em um deles? É muito grande.
A responsabilidade de verificar se o cliente tem ou não tem 18 anos ficou espalhada por todo o
seu código. Seria interessante poder concentrar essa responsabilidade em um lugar só, para não ter
chances de esquecer isso.
Melhor ainda seria se conseguíssemos mudar essa validação e os outros programadores nem
precisassem ficar sabendo disso. Em outras palavras, eles criariam formulários e um único progra-
mador seria responsável pela validação: os outros nem sabem da existência desse trecho de código.
Impossível? Não, o paradigma da orientação a objetos facilita tudo isso.
O problema do paradigma procedural é que não existe uma forma simples de criar conexão
forte entre dados e funcionalidades. No paradigma orientado a objetos é muito fácil ter essa conexão
através dos recursos da própria linguagem.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
301
Linguagem Técnica de Programação I
Primeiro exemplo de aplicação utilizando orientação a objetos.
Considere um programa para um banco, é bem fácil perceber que uma entidade extremamente
importante para o nosso sistema é a conta. Nossa ideia aqui é generalizarmos alguma informação,
juntamente com funcionalidades que toda conta deve ter.
O que toda conta tem e é importante para nós?
• número da conta
• nome do dono da conta
• saldo
• limite
O que toda conta faz e é importante para nós? Isto é, o que gostaríamos de “pedir à conta”?
• saca uma quantidade x
• deposita uma quantidade x
• imprime o nome do dono da conta
• devolve o saldo atual
• transfere uma quantidade x para uma outra conta y
• devolve o tipo de conta
Com isso, temos o projeto de uma conta bancária. Podemos pegar esse projeto e acessar seu
saldo? Não. O que temos ainda é o projeto. Antes, precisamos construir uma conta, para poder aces-
sar o que ela tem, e pedir a ela que faça algo.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
302
Linguagem Técnica de Programação I
Repare na figura: apesar do papel do lado esquerdo especificar uma Conta, essa especificação
é uma Conta? Nós depositamos e sacamos dinheiro desse papel? Não. Utilizamos a especificação da
Conta para poder criar instâncias que realmente são contas, onde podemos realizar as operações que
criamos.
Apesar de declararmos que toda conta tem um saldo, um número e uma agência no pedaço de
papel (como à esquerda na figura), são nas instâncias desse projeto que realmente há espaço para
armazenar esses valores.
Ao projeto da conta, isto é, a definição da conta, damos o nome de classe. Ao que podemos
construir a partir desse projeto, as contas de verdade, damos o nome de objetos.
A palavra classe vem da taxonomia da biologia. Todos os seres vivos de uma mesma classe bio-
lógica têm uma série de atributos e comportamentos em comum, mas não são iguais, podem variar
nos valores desses atributos e como realizam esses comportamentos.
Analogia: uma receita de bolo. A pergunta é certeira: você come uma receita de bolo? Não.
Precisamos instanciá-la, criar um objeto bolo a partir dessa especificação (a classe) para utilizá-la.
Podemos criar centenas de bolos a partir dessa classe (a receita, no caso), eles podem ser bem seme-
lhantes, alguns até idênticos, mas são objetos diferentes.
Classe Java
Vamos começar apenas com o que uma Conta tem, e não com o que ela faz (veremos logo em
seguida).
Um tipo desses, como o especificado de Conta acima, pode ser facilmente traduzido para Java:
O que é String?
String é uma classe em Java. Ela guarda uma cadeia de caracteres, uma frase completa.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
303
Linguagem Técnica de Programação I
Criando e usando um objeto
Já temos uma classe em Java que especifica o que todo objeto dessa classe deve ter. Mas como
usá-la? Além dessa classe, ainda teremos o Programa.java e a partir dele é que vamos utilizar a classe
Conta.
Para criar (construir, instanciar) uma Conta, basta usar a palavra chave new. Devemos utilizar
também os parênteses.
Bem, o código acima cria um objeto do tipo Conta, mas como acessar esse objeto que foi criado?
Precisamos ter alguma forma de nos referenciarmos a esse objeto. Precisamos de uma variável:
Pode parecer estranho escrevermos duas vezes Conta: uma vez na declaração da variável e ou-
tra vez no uso do new. Mas há um motivo, que em breve entenderemos. Através da variável minha-
Conta, podemos acessar o objeto recém criado para alterar seu dono, seu saldo, etc:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
304
Linguagem Técnica de Programação I
Métodos
Dentro da classe, também declararemos o que cada conta faz e como isto é feito - os compor-
tamentos que cada classe tem, isto é, o que ela faz. Por exemplo, de que maneira que uma Conta
saca dinheiro? Especificaremos isso dentro da própria classe Conta, e não em um local desatrelado
das informações da própria Conta. É por isso que essas “funções” são chamadas de métodos. Pois é a
maneira de fazer uma operação com um objeto.
Queremos criar um método que saca uma determinada quantidade e não devolve nenhuma
informação para quem acionar esse método:
A palavra chave “void” diz que, quando você pedir para a conta sacar uma quantia, nenhuma
informação será enviada de volta a quem pediu.
Quando alguém pedir para sacar, ele também vai dizer quanto quer sacar. Por isso precisamos
declarar o método com algo dentro dos parênteses - o que vai aí dentro é chamado de argumento
do método (ou parâmetro). Essa variável é uma variável comum, chamada também de temporária ou
local, pois, ao final da execução desse método, ela deixa de existir.
Dentro do método, estamos declarando uma nova variável. Essa variável, assim como o argu-
mento, vai morrer no fim do método, pois este é seu escopo. No momento que vamos acessar nosso
atributo, usamos a palavra chave this para mostrar que esse é um atributo, e não uma simples variá-
vel. (veremos depois que é opcional)
Repare que, nesse caso, a conta pode estourar o limite fixado pelo banco. Mais para frente, evi-
taremos essa situação, e de uma maneira muito elegante.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
305
Linguagem Técnica de Programação I
Usar os métodos que foram criados acima.
O correto aqui, é dizer que c1 se refere a um objeto. Não é correto dizer que c1 é um objeto, pois
c1 é uma variável referência, apesar de, depois de um tempo, os programadores Java falarem “Tenho
um objeto c do tipo Conta”, mas apenas para encurtar a frase “Tenho uma referência c a um objeto
do tipo Conta”.
Basta lembrar que, em Java, uma variável nunca é um objeto. Não há, no Java, uma maneira
de criarmos o que é conhecido como “objeto pilha” ou “objeto local”, pois todo objeto em Java, sem
exceção, é acessado por uma variável referência.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
306
Linguagem Técnica de Programação I
Esse código nos deixa na seguinte situação:
Internamente, c1 e c2 vão guardar um número que identifica em que posição da memória aque-
la Conta se encontra. Dessa maneira, ao utilizarmos o “.” para navegar, o Java vai acessar a Conta que
se encontra naquela posição de memória, e não uma outra.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
307
Linguagem Técnica de Programação I
Faça você mesmo...
E se quisermos ter um método que transfere dinheiro entre duas contas? Podemos ficar ten-
tados a criar um método que recebe dois parâmetros: conta1 e conta2 do tipo Conta. Mas cuidado:
assim estamos pensando de maneira procedural.
A ideia é que, quando chamarmos o método transfere, já teremos um objeto do tipo Conta (o
this), portanto o método recebe apenas um parâmetro do tipo Conta, a Conta destino (além do valor).
Podemos melhorar ainda mais esta implementação deixando o código mais robusto, poderíamos ve-
rificar se a conta possui a quantidade a ser transferida disponível. Para ficar ainda mais interessante,
você pode chamar os métodos deposita e saca já existentes para fazer essa tarefa.
Representação da classe conta:
Observe na representação da classe, o método “transfere” passa uma Conta como argumento,
o que será que acontece na memória? Será que o objeto é clonado?
No Java, a passagem de parâmetro funciona como uma simples atribuição como no uso do “=”.
Ou seja, esse parâmetro vai copiar o valor da variável do tipo Conta que for passado como argumento.
Controle de acesso
Um dos problemas mais simples que temos no nosso sistema de contas é que o método saca
permite sacar mesmo que o limite tenha sido atingido. A seguir você pode lembrar como está a classe
Conta:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
308
Linguagem Técnica de Programação I
O exemplo a abaixo mostra como é possível ultrapassar o limite usando o método saca:
Como evitar que a classe TestaContaEstouro2 acesse diretamente os atributos da sua classe
conta?
Para fazer isso no Java, basta declarar que os atributos não podem ser acessados de fora da clas-
se através da palavra chave private.
Veja no exemplo abaixo:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
309
Linguagem Técnica de Programação I
Marcando um atributo como privado, fechamos o acesso ao mesmo em relação a todas as outras
classes, fazendo com que sua classe Conta não compile, pois lá utilizamos acesso direto aos atributos.
Na orientação a objetos, é prática quase que obrigatória proteger seus atributos com private.
Pois cada classe é responsável por controlar seus atributos, portanto ela deve julgar se aquele novo
valor é válido ou não! Esta validação não deve ser controlada por quem está usando a classe e sim por
ela mesma, centralizando essa responsabilidade e facilitando futuras mudanças no sistema. Muitas
outras vezes nem mesmo queremos que outras classes saibam da existência de determinado atributo,
escondendo-o por completo, já que ele diz respeito ao funcionamento interno do objeto.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
310
Linguagem Técnica de Programação I
Sem Modificador (Padrão)
Por padrão, a linguagem Java permite acesso aos membros apenas ao pacote em que ele se en-
contra. De forma ilustrativa, abaixo está uma tabela demonstrando todas estas características.
Encapsulamento
É a técnica utilizada para esconder uma ideia, ou seja, não expôr detalhes internos para o usu-
ário, tornando partes do sistema mais independentes possível. Por exemplo, quando um controle re-
moto estraga apenas é trocado ou consertado o controle e não a televisão inteira. Nesse exemplo do
controle remoto, acontece a forma clássica de encapsulamento, pois quando o usuário muda de canal
não se sabe que programação acontece entre a televisão e o controle para efetuar tal ação.
A ideia é esconder todos os membros de uma classe (como vimos nos exemplos acima), além de
esconder como funcionam as rotinas (no caso métodos) do nosso sistema.
Encapsular é fundamental para que seu sistema seja suscetível a mudanças. Não precisaremos
mudar uma regra de negócio em vários lugares, mas sim em apenas um único lugar, já que essa regra
está encapsulada. (veja o caso do método saca)
Veja o exemplo acima. A principal ideia desta é sempre procurar programar voltado para a inter-
face e não para a implementação.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
311
Linguagem Técnica de Programação I
É sempre bom programar pensando na interface da sua classe, como seus usuários a estarão
utilizando, e não somente em como ela vai funcionar.
A implementação em si, o conteúdo dos métodos, não tem tanta importância para o usuário
dessa classe, uma vez que ele só precisa saber o que cada método pretende fazer, e não como ele faz,
pois isto pode mudar com o tempo.
Sempre que vamos acessar um objeto, utilizamos sua interface. Existem diversas analogias fá-
ceis no mundo real:
Quando você dirige um carro, o que te importa são os pedais e o volante (interface) e não o
motor que você está usando (implementação). É claro que um motor diferente pode te dar melhores
resultados, mas o que ele faz é o mesmo que um motor menos potente, a diferença está em como ele
faz. Para trocar um carro a álcool para um a gasolina você não precisa reaprender a dirigir! (trocar a
implementação dos métodos não precisa mudar a interface, fazendo com que as outras classes conti-
nuem usando eles da mesma maneira).
Todos os celulares fazem a mesma coisa (interface), eles possuem maneiras (métodos) de discar,
ligar, desligar, atender, etc. O que muda é como eles fazem (implementação), mas repare que para o
usuário comum pouco importa se o celular é GSM ou CDMA, isso fica encapsulado na implementação
(que aqui são os circuitos).
Getters e Setters
O modificador private faz com que ninguém consiga modificar, nem mesmo ler, o atributo em
questão. Com isso, temos um problema: como fazer para mostrar o saldo de uma Conta, já que nem
mesmo podemos acessá-lo para leitura?
Precisamos então arranjar uma maneira de fazer esse acesso. Sempre que precisamos arrumar
uma maneira de fazer alguma coisa com um objeto, utilizamos de métodos! Vamos então criar um
método, digamos pegaSaldo, para realizar essa simples tarefa:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
312
Linguagem Técnica de Programação I
Desta forma vamos conseguir acessar o saldo da conta utilizando o método “pegaSaldo” que
acabamos de cria. Veja como ficará o nosso método “main”:
Para permitir o acesso aos atributos (já que eles são private) de uma maneira controlada, a prá-
tica mais comum é criar dois métodos, um que retorna o valor e outro que muda o valor.
A convenção para esses métodos é de colocar a palavra get ou set antes do nome do atributo.
Por exemplo, a nossa conta com saldo, limite e titular fica assim, no caso da gente desejar dar acesso
a leitura e escrita a todos os atributos.
Abaixo temos um exemplo de como ficará nossa classe conta.
Mas a classe onde temos o “main” ainda não está funcionando. Precisamos modificar os pontos
onde existe acesso direto aos atributos e utilizar os métodos get e set que criamos.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
313
Linguagem Técnica de Programação I
Métodos construtores
Quando usamos a palavra chave “new”, estamos construindo um objeto. Sempre quando o
“new” é chamado, ele executa o construtor da classe. O construtor da classe é um bloco declarado
com o mesmo nome que a classe. Veja o exemplo do construtor para a classe Conta:
O construtor default
Até agora, as nossas classes não possuíam nenhum construtor. Então como é que era possível
dar new, se todo new chama um construtor obrigatoriamente?
Quando você não declara nenhum construtor na sua classe, o Java cria um para você. Esse cons-
trutor é o construtor default, ele não recebe nenhum argumento e o corpo dele é vazio.
Mas um construtor de uma classe pode receber um argumento, podendo assim inicializar algum
tipo de informação. Veja no exemplo abaixo:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
314
Linguagem Técnica de Programação I
O exemplo acima recebe o titular da conta. Assim, quando criarmos uma conta, ela já terá um
determinado titular.
Mas como vamos utilizar este construtor?
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
315
Linguagem Técnica de Programação I
Herança
A Programação Orientada a Objetos conhecida como POO, é onde o desenvolvedor tem de co-
meçar a pensar fora da caixa, a imaginar uma forma aonde será preciso recorrer ao mundo real para o
desenvolvimento das aplicações, pois hoje toda a programação em Java é orientada a objetos.
Para obter esse entendimento, é necessário conhecer alguns dos pilares da Orientação a Obje-
tos que são: Abstração, Encapsulamento, Herança e Polimorfismo.
É utilizada para a definição de entidades do mundo real. Sendo onde são criadas as classes.
Essas entidades são consideradas tudo que é real, tendo como consideração as suas características e
ações, veja a tabela abaixo:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
316
Linguagem Técnica de Programação I
Analise a representação de herança abaixo:
Para saber se estamos aplicando a herança corretamente, realiza-se o teste “É UM”. Esse teste
simples ajuda a detectar se a subclasse pode herdar a superclasse.
Por exemplo, na Figura 3, está mostrando que a classe “Gerente” herda da classe “Funcionário”,
se for aplicado o teste “É UM” nota-se que o teste é aprovado, pois o “Gerente” também “É UM”
Funcionário.
Para entender melhor a herança vamos aplicar esse exemplo em nossa aplicação bancária, pois
como toda empresa, nosso Banco possui funcionários. Vamos modelar a classe Funcionário.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
317
Linguagem Técnica de Programação I
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
318
Linguagem Técnica de Programação I
Veja o exemplo na classe abaixo:
Em todo momento que criarmos um objeto do tipo Gerente, este objeto possuirá também os
atributos definidos na classe Funcionário, pois um Gerente é um Funcionário. Veja como ficará a utili-
zação da classe com a implementação da herança.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
319
Linguagem Técnica de Programação I
Dizemos que a classe Gerente herda todos os atributos e métodos da classe mãe, no nosso caso,
a Funcionário. Para ser mais preciso, ela também herda os atributos e métodos privados, porém não
consegue acessá-los diretamente. Para acessar um membro privado na filha indiretamente, seria ne-
cessário que a mãe expusesse outro método visível que invocasse esse atributo ou método privado.
Polimorfismo em Java
Polimorfismo é um termo que se originou do grego e significa “várias formas”. A semântica do
mesmo é preservada quando transportado para o universo da programação de computadores. Atra-
vés de técnicas abaixo, é possível que criemos estruturas suficientemente genéricas ao ponto de se-
rem utilizadas em vários contextos, tornando o código-fonte final mais enxuto, legível e manutenível.
Embora possamos observar polimorfismo também em linguagens estruturadas, é no paradigma
orientado a objetos que o conceito realmente ganha força e é aplicado em sua plenitude. Inúmeros
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
320
Linguagem Técnica de Programação I
padrões de projeto se beneficiam desta técnica, dentre os quais podemos destacar o Abstract DAO,
Abstract Factory, Template Method, Strategy, Observer e Composite. Mecanismos de tratamento de
exceções e eventos em praticamente todo framework, bem como o desenvolvimento de plug-ins, são
itens altamente beneficiados pelo emprego das técnicas polimórficas. De Swing/AWT a GWT e Java-
Server Faces, passando por JPA, Hibernate, Struts, Spring e tantos outros, encontramos polimorfismo
por todos os lados.
O polimorfismo é classificado em duas categorias, sendo que cada uma se ramifica em duas téc-
nicas. Veremos exemplos da aplicação de cada uma, seguida de uma discussão a seu respeito.
O polimorfismo ad hoc
A tradução literal para o termo ad hoc, que tem sua origem no latim e é tão utilizado por pro-
fissionais de computação, é “para isto” ou, ainda, “para esta finalidade”. Na prática, o termo é usado
para tudo aquilo que foi projetado para atender a uma demanda pontual, não genérica. Em outras
palavras, técnicas ad hoc serão sempre aquelas para ataque a necessidades pontuais.
Esta categoria abrange duas técnicas, que são conhecidas como coerção (também chamado de
casting) e sobrecarga.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
321
Linguagem Técnica de Programação I
Herança X acoplamento
Note que o uso de herança aumenta o acoplamento entre as classes, isto é, o quanto uma classe
depende de outra. A relação entre classe mãe e filha é muito forte e isso acaba fazendo com que o
programador das classes filhas tenha que conhecer a implementação da classe pai e vice-versa - fica
difícil fazer uma mudança pontual no sistema.
Por exemplo, imagine se tivermos que mudar algo na nossa classe Funcionário, mas não quisés-
semos que todos os funcionários sofressem a mesma mudança. Precisaríamos passar por cada uma
das filhas de Funcionário verificando se ela se comporta como deveria ou se devemos sobrescrever o
tal método modificado.
Esse é um problema da herança, e não do polimorfismo, que resolveremos mais tarde com a
ajuda de Interfaces.
Exemplo utilizando o polimorfismo em Java
Imagine que vamos modelar um sistema para a faculdade que controle as despesas com funcio-
nários e professores.
Nosso funcionário fica assim:
O gasto que temos com o professor não é apenas seu salário. Temos de somar um bônus de 10
reais por hora/aula. O que fazemos então? Reescrevemos o método. Assim como o getGastos é dife-
rente, o getInfo também será, pois temos de mostrar as horas/aula também.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
322
Linguagem Técnica de Programação I
A novidade, aqui, é a palavra chave super. Apesar do método ter sido reescrito, gostaríamos de
acessar o método da classe mãe, para não ter de copiar e colocar o conteúdo desse método e depois
concatenar com a informação das horas de aula.
Como tiramos proveito do polimorfismo? Imagine que temos uma classe de relatório.
Podemos passar para nossa classe qualquer EmpregadoDaFaculdade! Vai funcionar tanto para
professor, quanto para funcionário comum.
Um certo dia, muito depois de terminar essa classe de relatório, resolvemos aumentar nosso
sistema, e colocar uma classe nova, que representa o Reitor. Como ele também é um EmpregadoDaFa-
culdade, será que vamos precisar alterar algo na nossa classe de Relatório? Não. Essa é a ideia! Quem
programou a classe GeradorDeRelatorio nunca imaginou que existiria uma classe Reitor e, mesmo
assim, o sistema funciona.
Interfaces em Java
Para este item vamos continuar trabalhando com nosso exemplo de sistema bancário. Imagine
que um Sistema de Controle do Banco pode ser acessado, além de pelos Gerentes, pelos Diretores do
Banco. Então, teríamos uma classe Diretor. Veja como ficará essa classe:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
323
Linguagem Técnica de Programação I
E a classe Gerente:
Repare que o método de autenticação de cada tipo de Funcionário pode variar muito. Mas va-
mos aos problemas. Considere o SistemaInterno e seu controle: precisamos receber um Diretor ou
Gerente como argumento, verificar se ele se autentica e colocá-lo dentro do sistema.
O SistemaInterno aceita qualquer tipo de Funcionário, tendo ele acesso ao sistema ou não, mas
note que nem todo Funcionário possui o método autentica. Isso nos impede de chamar esse método
com uma referência apenas a Funcionário (haveria um erro de compilação). O que fazer então?
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
324
Linguagem Técnica de Programação I
Uma solução mais interessante seria criar uma classe no meio da árvore de herança, Funciona-
rioAutenticavel. Veja o exemplo abaixo:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
325
Linguagem Técnica de Programação I
O uso de herança resolve esse caso, mas vamos a uma outra situação um pouco mais complexa:
precisamos que todos os clientes também tenham acesso ao SistemaInterno. O que fazer? Uma opção
é criar outro método login em SistemaInterno: mas já descartamos essa anteriormente.
Uma outra, que é comum entre os novatos, é fazer uma herança sem sentido para resolver o
problema, por exemplo, fazer Cliente extends FuncionarioAutenticavel. Realmente, resolve o proble-
ma, mas trará diversos outros. Cliente definitivamente não é FuncionarioAutenticavel. Se você fizer
isso, o Cliente terá, por exemplo, um método getBonificacao, um atributo salario e outros membros
que não fazem o menor sentido para esta classe! Não faça herança quando a relação não é estrita-
mente “é um”.
O que precisamos para resolver nosso problema? Arranjar uma forma de poder referenciar Dire-
tor, Gerente e Cliente de uma mesma maneira, isto é, achar um fator comum. Se existisse uma forma
na qual essas classes garantissem a existência de um determinado método, através de um contrato,
resolveríamos o problema.
Toda classe define 2 itens:
• O que uma classe faz (as assinaturas dos métodos)
• Como uma classe faz essas tarefas (o corpo dos métodos e atributos privados)
Podemos criar um “contrato” que define tudo o que uma classe deve fazer se quiser ter um de-
terminado status. Imagine:
Quem quiser, pode “assinar” esse contrato, sendo assim obrigado a explicar como será feita essa
autenticação. A vantagem é que, se um Gerente assinar esse contrato, podemos nos referenciar a um
Gerente como um Autenticável.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
326
Linguagem Técnica de Programação I
Podemos criar esse contrato em Java!
Chama-se interface pois é a maneira pela qual poderemos conversar com um Autenticável. Inter-
face é a maneira através da qual conversamos com um objeto. Lemos a interface da seguinte maneira:
“quem desejar ser autenticável precisa saber autenticar dado um inteiro e retornando um booleano”.
Ela é um contrato onde quem assina se responsabiliza por implementar esses métodos (cumprir o
contrato). Uma interface pode definir uma série de métodos, mas nunca conter implementação deles.
Ela só expõe o que o objeto deve fazer, e não como ele faz, nem o que ele tem. Como ele faz vai ser
definido em uma implementação dessa interface.
E o Gerente pode “assinar” o contrato, ou seja, implementar a interface. No momento em que
ele implementa essa interface, ele precisa escrever os métodos pedidos pela interface (muito pareci-
do com o efeito de herdar métodos abstratos, aliás, métodos de uma interface são públicos e abstra-
tos, sempre). Para implementar usamos a palavra chave implements na classe.
Veja o exemplo da classe Funcionário abaixo:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
327
Linguagem Técnica de Programação I
O implements pode ser lido da seguinte maneira: “A classe Gerente se compromete a ser tratada
como Autenticável, sendo obrigada a ter os métodos necessários, definidos neste contrato”.
A partir de agora, podemos tratar um Gerente como sendo um Autenticável. Ganhamos mais
polimorfismo! Temos mais uma forma de referenciar a um Gerente. Quando crio uma variável do tipo
Autenticável, estou criando uma referência para qualquer objeto de uma classe que implemente Au-
tenticável, direta ou indiretamente.
Novamente, a utilização mais comum seria receber por argumento, como no nosso SistemaIn-
terno.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
328
Linguagem Técnica de Programação I
Podemos passar um Diretor. No dia em que tivermos mais um funcionário com acesso ao siste-
ma, basta que ele implemente essa interface, para se encaixar no sistema.
Qualquer Autenticavel passado para o SistemaInterno está bom para nós. Repare que pouco
importa quem o objeto referenciado realmente é, pois ele tem um método autentica que é o necessá-
rio para nosso SistemaInterno funcionar corretamente. Aliás, qualquer outra classe que futuramente
implemente essa interface poderá ser passada como argumento aqui.
Autenticavel diretor = new Diretor();
Autenticavel gerente = new Gerente();
Ou, se achamos que o Fornecedor precisa ter acesso, basta que ele implemente Autenticavel.
Olhe só o tamanho do desacoplamento: quem escreveu o SistemaInterno só precisa saber que ele é
Autenticavel.
Não faz diferença se é um Diretor, Gerente, Cliente ou qualquer classe que venha por aí. Basta
seguir o contrato! Mais ainda, cada Autenticavel pode se autenticar de uma maneira completamente
diferente de outro.
Lembre-se: a interface define que todos vão saber se autenticar (o que ele faz), enquanto a im-
plementação define como exatamente vai ser feito (como ele faz).
A maneira como os objetos se comunicam num sistema orientado a objetos é muito mais im-
portante do que como eles executam. O que um objeto faz é mais importante do que como ele faz.
Aqueles que seguem essa regra, terão sistemas mais fáceis de manter e modificar. Como você já per-
cebeu, esta é uma das ideias principais que queremos passar e, provavelmente, a mais importante de
todo esse curso.
Herança entre interfaces
Diferentemente das classes, uma interface pode herdar de mais de uma interface. É como um
contrato que depende que outros contratos sejam fechados antes deste valer. Você não herda méto-
dos e atributos, mas sim responsabilidades.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
329
Linguagem Técnica de Programação I
Exceções e controle de erros
Voltando ao nosso sistema bancário, na classe “Conta” que criamos anteriormente, o que acon-
teceria ao tentar chamar o método saca com um valor fora do limite? O sistema mostraria uma men-
sagem de erro, mas quem chamou o método saca não saberá que isso aconteceu. Como avisar aquele
que chamou o método de que ele não conseguiu fazer aquilo que deveria?
Em Java, os métodos dizem qual o contrato que eles devem seguir. Se, ao tentar sacar, ele não
consegue fazer o que deveria, ele precisa, ao menos, avisar ao usuário que o saque não foi feito. Veja
no exemplo abaixo: estamos forçando uma Conta a ter um valor negativo, isto é, estar num estado
inconsistente de acordo com a nossa modelagem.
Por esses e outros motivos, utilizamos um código diferente em Java para tratar aquilo que cha-
mamos de exceções: os casos onde acontece algo que, normalmente, não iria acontecer. O exemplo
do argumento do saque inválido ou do id inválido de um cliente é uma exceção à regra.
O que é uma Exceção???
Uma exceção representa uma situação que normalmente não ocorre e representa algo de estra-
nho ou inesperado no sistema.
Vamos trabalhar com um exemplo para entender melhor.
Analise a classe abaixo:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
330
Linguagem Técnica de Programação I
Repare o método main chamando metodo1 e esse, por sua vez, chamando o metodo2. Cada
um desses métodos pode ter suas próprias variáveis locais, isto é: o metodo1 não enxerga as variáveis
declaradas dentro do main e por aí em diante.
Como o Java (e muitas das outras linguagens) faz isso? Toda invocação de método é empilhada
em uma estrutura de dados que isola a área de memória de cada um. Quando um método termina
(retorna), ele volta para o método que o invocou. Ele descobre isso através da pilha de execução (sta-
ck): basta remover o marcador que está no topo da pilha.
Porém, o nosso metodo2 propositalmente possui um enorme problema: está acessando um ín-
dice de array indevido para esse caso; o índice estará fora dos limites da array quando chegar em 10!
Rode o código. Qual é a saída? O que isso representa? O que ela indica?
Essa é o conhecido rastro da pilha (stacktrace). É uma saída importantíssima para o programa-
dor - tanto que, em qualquer fórum ou lista de discussão, é comum os programadores enviarem, jun-
tamente com a descrição do problema, essa stacktrace. Mas por que isso aconteceu?
O sistema de exceções do Java funciona da seguinte maneira: quando uma exceção é lançada
(throw), a JVM entra em estado de alerta e vai ver se o método atual toma alguma precaução ao
tentar executar esse trecho de código. Como podemos ver, o metodo2 não toma nenhuma medida
diferente do que vimos até agora. Como o metodo2 não está tratando esse problema, a JVM para a
execução dele anormalmente, sem esperar ele terminar, e volta um stackframe pra baixo, onde será
feita nova verificação: “o metodo1 está se precavendo de um problema chamado ArrayIndexOutO-
fBoundsException?” “Não...” Volta para o main, onde também não há proteção, então a JVM morre
(na verdade, quem morre é apenas a Thread corrente, veremos mais para frente).
Obviamente, aqui estamos forçando esse caso e não faria sentido tomarmos cuidado com ele.
É fácil arrumar um problema desses: basta percorrermos a array no máximo até o seu length. Porém,
apenas para entender o controle de fluxo de uma Exception, vamos colocar o código que vai tentar
(try) executar o bloco perigoso e, caso o problema seja do tipo ArrayIndexOutOfBoundsException, ele
será pego (caught). Repare que é interessante que cada exceção no Java tenha um tipo... ela pode ter
atributos e métodos.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
331
Linguagem Técnica de Programação I
Adicione um try/catch em volta do for, pegando ArrayIndexOutOfBoundsException. O que o
código imprime?
Em vez de fazer o try em torno do for inteiro, tente apenas com o bloco de dentro do for. Veja
qual a diferença neste caso.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
332
Linguagem Técnica de Programação I
Exceções de Runtime mais comuns
Que tal tentar dividir um número por zero? Será que a JVM consegue fazer aquilo que nós defi-
nimos que não existe?
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
333
Linguagem Técnica de Programação I
Veja o que acontece neste caso:
O código acima não compila e o compilador avisa que é necessário tratar o FileNotFoundExcep-
tion que pode ocorrer.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
334
Linguagem Técnica de Programação I
Para compilar e fazer o programa funcionar, temos duas maneiras que podemos tratar o pro-
blema. O primeiro, é tratá-lo com o try e catch do mesmo jeito que usamos no exemplo anterior, com
uma array.
A segunda forma de tratar esse erro, é delegar ele para quem chamou o nosso método, isto é,
passar para a frente.
No início, existe uma grande tentação de sempre passar o problema pra frente para outros o
tratarem. Pode ser que faça sentido, dependendo do caso, mas não até o main, por exemplo. Aconte-
ce que quem tenta abrir um arquivo sabe como lidar com um problema na leitura. Quem chamou um
método no começo do programa pode não saber ou, pior ainda, tentar abrir cinco arquivos diferentes
e não saber qual deles teve um problema! Não há uma regra para decidir em que momento do seu
programa você vai tratar determinada exceção. Isso vai depender de em que ponto você tem condi-
ções de tomar uma decisão em relação àquele erro. Enquanto não for o momento, você provavelmen-
te vai preferir delegar a responsabilidade para o método que te invocou.
É possível tratar mais de um erro quase que ao mesmo tempo:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
335
Linguagem Técnica de Programação I
Com o try e catch:
Com o throws:
Você pode, também, escolher tratar algumas exceções e declarar as outras no throws:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
336
Linguagem Técnica de Programação I
A conexão em Java
Conectar-se a um banco de dados com Java é feito de maneira elegante. Para evitar que cada
banco tenha a sua própria API e conjunto de classes e métodos, temos um único conjunto de interfa-
ces muito bem definidas que devem ser implementadas. Esse conjunto de interfaces fica dentro do
pacote java.sql e nos referiremos a ela como JDBC.
Entre as diversas interfaces deste pacote, existe a interface Connection que define métodos para
executar uma query (como um insert e select), comitar transação e fechar a conexão, entre outros.
Caso queiramos trabalhar com o MySQL, precisamos de classes concretas que implementem essas
interfaces do pacote java.sql.
Esse conjunto de classes concretas é quem fará a ponte entre o código cliente que usa a API
JDBC e o banco de dados. São essas classes que sabem se comunicar através do protocolo proprietário
do banco de dados. Esse conjunto de classes recebe o nome de driver. Todos os principais bancos de
dados do mercado possuem drivers JDBC para que você possa utilizá-los com Java. O nome driver é
análogo ao que usamos para impressoras: como é impossível que um sistema operacional saiba con-
versar com todo tipo de impressora existente, precisamos de um driver que faça o papel de “tradutor”
dessa conversa.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
337
Linguagem Técnica de Programação I
Para abrir uma conexão com um banco de dados, precisamos utilizar sempre um driver. A classe
DriverManager é a responsável por se comunicar com todos os drivers que você deixou disponível.
Para isso, invocamos o método estático getConnection com uma String que indica a qual banco dese-
jamos nos conectar. Essa String - chamada de String de conexão JDBC - que utilizaremos para acessar
o MySQL tem sempre a seguinte forma:
jdbc:mysql://ip/nome_do_banco
Devemos substituir ip pelo IP da máquina do servidor e nome_do_banco pelo nome do banco
de dados a ser utilizado. Seguindo o exemplo da linha acima e tudo que foi dito até agora, seria pos-
sível rodar o exemplo abaixo e receber uma conexão para um banco MySQL, caso ele esteja rodando
na mesma máquina.
Repare que estamos deixando passar a SQLException, que é uma exception checked, lançada
por muitos dos métodos da API de JDBC. Numa aplicação real devemos utilizar try/catch nos lugares
que julgamos haver possibilidade de recuperar de uma falha com o banco de dados. Também precisa-
mos tomar sempre cuidado para fechar todas as conexões que foram abertas.
Ao testar o código acima, recebemos uma exception. A conexão não pôde ser aberta. Recebe-
mos a mensagem abaixo:
Pois o sistema ainda não achou uma implementação de driver JDBC que pode ser usada para
abrir a conexão indicada pela URL jdbc:mysql://localhost/fj21.
O que precisamos fazer é adicionar o driver do MySQL ao classpath, o arquivo .jar contendo a
implementação JDBC do MySQL (mysql connector) precisa ser colocado em um lugar visível pelo seu
projeto ou adicionado à variável de ambiente CLASSPATH. Como usaremos o Eclipse, fazemos isso
através de um clique da direita em nosso projeto, Properties/Java Build Path e em Libraries adiciona-
mos o jar do driver JDBC do MySQL.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
338
Linguagem Técnica de Programação I
Referencias
Design Patterns: Elements of Reusable Object-Oriented Software - Eric Gamma
http://pt.wikibooks.org/wiki/Java
http://www.caelum.com.br/
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
339
Curso Técnico em
INFORMÁTICA
Etapa 2
FUNDAMENTOS DE ANÁLISE
Fundamentos de Análise
Carga horária: 2 aulas por semana
Total: 40 horas aula
Objetivos gerais:
• Compreender e auxiliar na construção de um modelo conceitual, para solução de proble-
mas de sistemas de informação;
• Entender, organizar, documentar e prototipar ideias para automatização de processos;
• Caracterizar as fases de construção de um produto/sistema, identificando responsabilida-
des e requisitos no desenvolvimento;
• Técnicas de trabalho junto ao cliente/usuário para avaliar/levantar os requisitos do produ-
to/sistema em desenvolvimento.
• Metodologia Estruturada de Desenvolvimento de Sistemas;
• Ferramentas de desenvolvimento conceitual de análise orientada a objeto de sistemas (dia-
gramas de entidade e relacionamento, dicionário de dados, hierárquico de funções);
• Definição de requisitos conceituais baseados na análise orientada a objetos de sistemas.
• Conhecer os conceitos de análise e projeto e a estrutura da metodologia UML (diagrama de
caso de uso e outros).
• Conhecer as ferramentas que são utilizadas para análise e desenvolvimento de sistemas.
Avaliações:
A avaliação será instrumento de análise e orientação para o planejamento das atividades do
processo ensino e aprendizagem do conteúdo da disciplina.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
343
Fundamentos de Análise
Bibliografia:
RUP. Ciclo de Vida. Disponível em: http://www.rup.com. 2007
Luís Amaral, João Varajão. Planeamento de Sistemas de Informação. FCA Editora. 2000.
L. A. Maciaszek. Requirements Analysis and System Design: Devloping Information Systems with
UML. Addison-Wesley. 2001.
Furlan, José Davi. Modelagem de Objetos através da UML- the Unified Modeling Language. São Paulo:
Makron Books, 1998.
SUEHRING, Steve. MySQL, a Bíblia. Tradução Edson Furmankiewicz. – Rio de Janeiro: Campus, 2002.
SQLMagazine.Edição 1 :: Ano 1.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
344
Fundamentos de Análise
SUMÁRIO
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
345
Fundamentos de Análise
1. MODELAGEM DE DADOS
Entidade
• Conjunto de objetos da realidade modelada sobre os quais deseja-se colecionar dados no
banco de dados
• Pode ser concreta (pessoa,disco, ...) ou abstrata (curso, conceito, circulação, ...)
• Uma entidade representa um conjunto de objetos que se deseja guardar dados
Exemplo:
Sistema bancário – as entidades podem ser: clientes, contas correntes, cheques, agências
Cliente – representa o conjunto de clientes que se deseja manter dados no banco de dados
Relacionamento
Conjunto de associações entre entidades.
• Um conjunto de relacionamentos é uma coleção de ocorrências das entidades relaciona-
das.
• A função que uma entidade exerce em um relacionamento é chamada de papel, normal-
mente implícito, mas muito esclarecedor.
• Também pode ter atributos descritivos (por exemplo: data, hora, etc.)
• A ocorrência de um relacionamento particular dentro de um conjunto de relacionamentos
de um mesmo tipo é chamada de instância do relacionamento
Exemplo:
Suponha o relacionamento “lotação” entre as entidades Departamento e Pessoa.
Este exemplo expressa que o BD armazenará dados sobre:
• um conjunto de objetos classificados como pessoa
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
347
Fundamentos de Análise
Entidade Pessoa
• um conjunto de objetos classificados como departamentos
Entidade Departamento
• um conjunto de associações entre cada pessoa e um departamento
Atributo
Dado que é associado a cada ocorrência de uma entidade ou um relacionamento.
2. NORMALIZAÇÃO DE DADOS
Formas Normais
É o processo formal de normalização que analisa os atributos de uma entidade, com os objetivos
de evitar anomalias ao manipular o banco de dados, facilitar o manuseio, a manutenção e minimizar
redundâncias e inconsistências no sistema de banco de dados.
1ª Forma Normal
Todos os atributos estão definidos em domínios que contêm valores atómicos. Não há conjuntos
de atributos repetidos para um determinado género de característica.
Converter atributos não atómicos em atributos atómicos, por forma a que não se possa incluir
mais que um valor em cada campo de uma tabela.
Eliminar os atributos repetidos, considerando-os elementos de uma nova tabela.
2ª Forma Normal
A tabela já se encontra na 1ª FN. Todos os atributos não-chave são funcionalmente dependentes
da chave na sua totalidade e não apenas de parte da chave.
Identificar a chave de uma entidade:
Se a chave só tem um atributo e a tabela está na 1ª FN, também está na 2ª FN.
Se a chave é composta, analisam-se as dependências dos atributos; se algum ou alguns atributos
dependem de uma parte da chave, a tabela deverá ser decomposta, por forma a que cada atributo
dependa apenas da totalidade da chave.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
348
Fundamentos de Análise
3ª Forma Normal
A tabela já se encontra na 2ª FN.
Nenhum atributo não-chave depende funcionalmente de nenhum outro atributo não-chave.
Analisar todos os atributos não-chave e procurar dependências funcionais; se existir algum con-
junto de atributos que tenha uma dependência funcional em relação a um outro atributo, então de-
compõe-se a tabela até que não haja dependência funcional entre os atributos não-chave; só podem
existir dependências funcionais entre atributos não-chave e a chave.
Atributos atómicos – são atributos os quais não é possível decompor em unidades mais elemen-
tares. (Ex: idade, altura)
Atributos compostos – são atributos que, embora possam ser tratados em conjunto, podem
facilmente ser subdivididos em partes.
(Ex: nome = nome_proprio + nome_apelido).
O BDDesigner é uma ferramenta livre, desenvolvida pela FabForce, tendo como função de vi-
sualizar graficamente o projeto da base de dados, modelar e controlar os dados nele existente. Sua
criação foi baseada em componentes Kylix e Delphi podendo ser utilizada tanto para plataforma Win-
dows ou Linux.
Está disponível na pasta da disciplina um Manual do software.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
349
Fundamentos de Análise
d) Clique no botão “Save Script to file” e dê um nome para seu arquivo. (Bem próximo do as-
sunto proposto)
e) Abra o MySQL, selecione o banco ou crie um.
f) Selecione o menu ARQUIVO/OPEN SCRIPT e abra o arquivo salvo no item 4.
g) Selecione o menu SCRIPT/EXECUTE e o mesmo será executado e as tabelas criadas.
OBS.: Se houver erro na modelagem do banco (dbdsigner) as tabelas não serão criadas e apa-
recerá uma lista de erros.
4.1 Introdução
Unificação dos métodos para a criação de um novo padrão.
A UML é uma tentativa de padronizar a modelagem orientada a objetos de uma forma que qual-
quer sistema possa ser modelado corretamente, com consistência, fácil de se comunicar com outras
aplicações, simples de ser atualizado e compreensível.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
350
Fundamentos de Análise
Poderá ser empregada para a visualização, especificação, construção e a documentação de
artefatos que façam uso de sistemas complexos de software.
Disciplinas
• Modelagem do negócio:
• Requisitos: levantamento e análise do que tem que ser feito
• Análise e Projeto: como deve ser desenvolvido em nível conceitual (desenho, arquitetura,
objetos, base de dados, comunicação e outros)
• Implementação: programação e construção do sistema
• Teste: verificar e validar se o sistema está correto
• Implantação: instalação e configuração do sistema e capacitação dos usuários
• Configuração e alteração: estruturação dos artefatos, gerenciamento de versões e depen-
dências, propostas de alteração e seus estados
• Ambiente: ferramentas e adaptação do processo para atender o projeto
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
351
Fundamentos de Análise
Artefatos
São o produto de cada disciplina dentro de um processo de software. Ex.: Diagramas UML,
código-fonte, gráficos, esquemas de banco de dados, documentos texto, etc.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
352
Fundamentos de Análise
4.4 A importância da modelagem
• Um modelo é uma simplificação da realidade;
• Construímos modelos para compreender melhor o sistema que estamos desenvolvendo;
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
353
Fundamentos de Análise
4.8 A modelagem orientada a objetos
A visão contemporânea de desenvolvimento de software adota uma perspectiva orientada a ob-
jetos, ou seja, o principal bloco de construção de todos os sistemas de software é o objeto ou a classe.
Objeto – algo estruturado a partir do vocabulário do espaço de um problema. Um objeto tem
uma identidade (nome), um estado (dados a ele associados) e um comportamento (vc poderá fazer
algo com o objeto).
Classe – descrição de um conjunto de objetos comuns
Blocos de Construção
1. Itens
Estruturais: substantivos utilizados em modelos UML, parte estática do modelo (classes, interfa-
ce, colaboradores, casos de uso, classes ativas, componentes, artefatos, nós)
Comportamentais: São as partes dinâmicas dos modelos UML, são os verbos de um modelo,
representando comportamentos no tempo e no espaço (interação máquina de estado)
De agrupamentos: São as partes organizacionais dos modelos UML, blocos em que os modelos
podem ser decompostos (pacotes).
Anotacionais: são as partes explicativas dos modelos de UML (nota)
2. Relacionamentos
Dependência: relação em que um item depende do outro
Associação: ligações entre objetos que são instâncias das classes (agregação)
Generalização: objetos dos elementos especializados são substituíveis por elementos do objeto
generalizado
Realização: relacionamento entre classificadores (interfaces/as classes ou componentes e casos
de uso/colaboradores)
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
354
Fundamentos de Análise
3. Diagrama
É a representação gráfica de um conjunto de elementos, geralmente representadas como gráfi-
cos de itens e relacionamentos.
Diagramas utilizados:
• De Classe
• De Objetos
• De Componentes
• De Estruturas compostas
• De Casos de Uso
• De Sequências
• De Comunicações
• De Gráficos de Estados
• De Atividades
• De Implantação
• De Pacote
• De Temporização
• De Visão geral da interação
Regras da UML
Nomes – quais nomes podem ser atribuídos a itens, relacionamentos e diagramas.
Escopo – o contexto que determina um significado específico para um nome.
Visibilidade – como esses nomes podem ser vistos e utilizados pelos outros.
Integridade – como os itens se relacionam entre si de forma adequada e consistente.
Execução – o que significa executar ou simular um modelo dinâmico.
4.10 Requisitos
Conjunto de características, condições ou capacidades que o sistema deve estar de acordo ou
realizar. Dizer as funcionalidades que o sistema deve ter e também o que o sistema deve fazer para
atender tais funcionalidades.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
355
Fundamentos de Análise
Classificação dos Requisitos:
• Funcionais – recursos, capacidades, segurança
• Usabilidade - fatores humanos, ajuda, documentação
• Confiabilidade – capacidade de recuperação e de prever problemas
• Desempenho – tempo de resposta, precisão, disponibilidade, uso de recursos
• Suporte – capacidade de adaptação, manutenção, internacionalização e configuração
• Implementação – limitação de recursos, linguagens e ferramentas, hardware
• Interface – restrições para comunicação com sistemas já existentes
• Operação – gerenciamento e configuração o sistema
• Empacotamento
• Legal – licenciamento, proteção contra pirataria e engenharia reversa
Disciplina de Requisitos
Seu objetivo é identificar e registrar os requisitos para o seu projeto. As principais metas dessa
disciplina são as seguintes:
• Enumerar as necessidades dos interessados para que seja possível definir e negociar o es-
copo do Sistema
• Os documentos conterão alguns termos específicos do negócio (sinônimos, referências, si-
glas e outros) que deverão ser registrados em um glossário
• Identificar as fronteiras da aplicação
• Estabelecer e manter o acordo entre os clientes e demais interessados sobre o que o siste-
ma deve fazer e por que
• Ajudar os desenvolvedores a compreender melhor os requisitos do sistema
• Fornecer uma base para o planejamento das atividades técnicas durante as iterações
• Fornecer uma base para estimar custo e prazo
• Definir uma interface de usuário, focando nas metas e necessidades
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
356
Fundamentos de Análise
• Priorizar os casos de uso
• Detalhar os casos de uso
• Detalhar os demais requisitos
4.11 Glossário
• É um artefato que tem a finalidade de auxiliar a compreensão dos conceitos chave. Deve ter
sua elaboração iniciada na fase de concepção e mantido durante as demais.
• Termos usados no negócio e no Sistema
• Deve ser consolidado e consistente com outros documentos
• Ideal para registrar termos, sigla, acrônimos e abreviaturas
4.12 Visão
• Documento que fornece base para requisitos técnicos mais detalhados
• Transmite a ideia dos “porquês” e dos “quês”
• Pode ser usado ao longo do projeto para auxiliar decisões e definições
• Geralmente descreve:
• Termos chave
• Interessados e usuários
• Funcionalidades previstas, requisitos funcionais e não funcionais
• Restrições de desenho
Componentes
• Ator - é um papel que tipicamente estimula/solicita ações/eventos do sistema e recebe
reações. Cada ator pode participar de vários casos de uso
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
357
Fundamentos de Análise
• Casos de uso - documento narrativo que descreve a sequência de eventos feitos por um
ator no uso do sistema.
• Sistema - O sistema a ser modelado
Os casos de uso são interações entre os atores e o sistema. Temos então ações do ator e ações
do sistema. Sendo que os atores sempre iniciam a ação.
Exemplo
Vamos supor, por questão de simplicidade, que temos que modelar usando casos de uso a com-
pra de item em uma loja com um terminal de ponto de venda.
Descrição textual
Caso de uso - Comprar Item
Atores - Cliente, Caixa
Descrição
• Este caso de uso começa quando um cliente chega ao terminal com itens que deseja com-
prar.
• O caixa registra os itens, recebe o pagamento e emite uma nota fiscal.
• O Cliente recebe os itens comprados.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
358
Fundamentos de Análise
Diagrama
Considerações
• Nomeie um caso de uso começando com um verbo, para enfatizar que ele é um processo.
Ex: Cadastrar Cliente, Comprar Item, etc.
• Para identificar claramente um ator iniciador e um evento comece a descrição da sequência
de um caso de uso usando o seguinte esquema:
• Este caso de uso começa quando o <Ator> <Evento que inicia o caso de uso>
Ex: Este caso de uso começa quando um cliente chega com vários itens para comprar
Relacionamentos
1. Inclusão: Se um caso de uso inicia ou inclui o comportamento de outro, dizemos que ele usa
o outro.
Ex: No caso de uso Comprar Item se o pagamento for feito com dinheiro podemos ter a
inclusão PagarComDinheiro
O relacionamento de inclusão em UML é ilustrado com uma linha de generalização com o rótulo
<<include>>.
Então para o exemplo do cliente com o use case Solicitar Pedidos de peças teríamos:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
359
Fundamentos de Análise
Propriedades da inclusão:
• Realizar uma decomposição funcional;
• Reduzir a complexidade de um caso de uso;
• O caso de uso básico não pode executar sem a inclusão;
• Comportamento comum.
3. Generalização: Indica um caso de base que possui diferentes especializações e inclui com-
portamento ou sobrescreve o caso de uso base.
1. O caso de uso Pagar fatura apresenta as generalizações: Pagamento com cartão e Paga-
mento com Cheque
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
360
Fundamentos de Análise
Relacionamentos entre atores
Um ator especializado pode acessar os casos de uso de um Ator base.
Exemplo onde o Ator gerente acessa os casos de uso do ator funcionário.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
361
Fundamentos de Análise
Um diagrama de sequência é um diagrama de objetos, ou seja, ele contém como primitiva prin-
cipal um conjunto de objetos de diferentes classes. O objetivo dos diagramas de sequência é descrever
as comunicações necessárias entre objetos para a realização dos processos em um sistema computa-
cional. Os diagramas de sequência têm este nome porque descrevem ao longo de uma linha de tempo
à sequência de comunicações entre objetos. Como podem existir muitos processos em um sistema
computacional, sugere-se proceder à construção dos diagramas de sequência por caso de uso. Assim,
tomar-se-ia separadamente cada caso de uso para a construção de seus diagramas de sequência. De
uma forma geral, para cada caso de uso constrói-se um diagrama de sequência principal descrevendo
as sequências normais de comunicação entre objetos e diagramas complementares descrevendo se-
quências alternativas e tratamento de situações de erro.
Utiliza-se também o termo cenário associado com os diagramas de sequência. Um cenário é
uma forma de ocorrência de um caso de uso. Como o processo de um caso de uso pode ser realizado
de diferentes formas, para descrever a realização de um caso de uso pode ser necessário estudar vá-
rios cenários. Cada cenário pode ser descrito por um diagrama de sequência. No exemplo do caso de
uso Cadastrar Aluno do sistema de controle acadêmico, pode-se considerar os cenários de inclusão,
alteração e exclusão de aluno.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
362
Fundamentos de Análise
4.15 Diagrama de Classes e Objetos
Em POO, os problemas de programação são pensados em termos de objetos, nada de funções,
rotinas, nada disto, o assunto são os objetos, propriedades e métodos.
A preocupação da programação estruturada estava em procurar os processos que envolviam o
problema e não os objetos que o compunham.
Desta forma quando é colocado o problema de desenvolver um sistema para locadoras, por
exemplo, devemos pensar como dividir o problema em objetos. Para este caso podemos ter os seguin-
tes objetos: Clientes, CDs e Fitas, etc..
A melhor maneira de conceituar estes termos é considerar um objeto do mundo real e mostrar
como podemos representá-lo em termos conceitos para POO.
Começando com as definições: “Um objeto é um termo que usamos para representar uma en-
tidade do mundo real” (Fazemos isto através de um exercício de abstração.)
Vou usar como exemplo o meu cachorro Bilu. Posso descrever o Bilu em termos de seus atributos
físicos: é pequeno, sua cor principal é castanha, olhos pretos, orelhas pequenas e caídas, rabo peque-
no, patas brancas.
Posso também descrever algumas ações que ele faz (temos aqui os métodos): balança o rabo
quando chego em casa, foge e se deita se o mando sair debaixo da mesa, late quando ouve um baru-
lho ou vê um cão ou gato, atende e corre quando o chamo pelo seu nome. Temos abaixo a represen-
tação do Bilu.
Meu cachorro Bilu
Em termos de POO para poder tratar os objetos começamos criando classes, neste caso irei criar
a classe chamada Cachorro.
“Uma classe representa um conjunto de objetos que possuem comportamentos e característi-
cas comuns”.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
363
Fundamentos de Análise
“Na UML o nome de uma classe é um texto contendo letras e dígitos e algumas marcas de
pontuação. Na realidade, é melhor guardar os nomes curtos com apenas letras e dígitos. UML sugere
capitalizar todas as primeiras letras de cada palavra no nome (ex.: “Lugar’’, “DataReserva’’). É melhor
também manter nomes de classe no singular, classes por default ``contem’’ mais de um objeto, o plu-
ral é implícito.”. [Nicolas Anquetil]
Uma classe descreve como certos tipos de objetos se parecem do ponto de vista da programa-
ção, pois quando definimos uma classe precisamos definir duas coisas:
1. Propriedades - Informações específicas relacionadas a uma classe de objeto. São as carac-
terísticas dos objetos que as classes representam. Ex Cor, altura, tamanho, largura, etc...
2. Métodos: São ações que os objetos de uma classe podem realizar. Ex: Latir, correr, sentar,
comer, etc.
Você pode pensar em uma classe com um modelo para criar quantos objetos você desejar de
um tipo particular. Pense em um carimbo com a imagem de um cachorro, quando você carimba e
obtêm um desenho de cachorro você acabou de criar uma instância da classe e obteve um objeto da-
quela classe. O novo objeto possuirá todas as características e comportamentos definidos pela classe.
(As classes especificam a estrutura e o comportamento (operações) dos objetos, que são instân-
cias das classes)
Geralmente em um sistema de médio porte serão identificados diversas classes que compõem
o sistema. Neste contexto a UML surgiu como uma proposta de ser uma linguagem para modelagem
de dados que usava diversos artefatos para representar o modelo de negócio ; um destes artefatos é
o diagrama de classes.
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
364
Fundamentos de Análise
A representação de uma classe usa um retângulo dividido em três partes:
Os diagrama se classes ilustram atributos e operações de uma classe e as restrições como que
os objetos podem ser conectados ; descrevem também os tipos de objetos no sistema e os relaciona-
mentos entre estes objetos que podem ser : associações e abstrações.
Para poder representar a visibilidade dos atributos e operações em uma classe utiliza-se as se-
guintes marcas e significados:
+ público - visível em qualquer classe
# protegido - qualquer descendente pode usar
- privado - visível somente dentro da classe
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
365
Fundamentos de Análise
As representações usam a seguinte notação:
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
366
Fundamentos de Análise
O diagrama de de classes lista todos os conceitos do domínio que serão implementados no
sistema e as relações entre os conceitos. Ele é muito importante pois define a estrutura do sistema a
desenvolver.
O diagrama de classes não surge do nada ele é consequência do prévio levantamento de requi-
sitos, definição de casos de usos e classes. Como exemplo vamos supor que você tivesse que desen-
volver um sistema para automatizar um consultório dentário. As etapas básicas envolvidas seriam:
• Levantamento e análise de requisitos do sistema a ser desenvolvido. Entrevista com o den-
tista(s) e com as pessoas que trabalham no consultório
• Definição dos objetos do sistema : Paciente, agenda, dentista, serviço, contrato, consulta,
pagamento, etc..
• Definição dos atores do sistema : paciente, dentista, secretária
• Definição e detalhamento dos casos de uso: marcar consulta, confirmar consulta, cadastrar
paciente, cadastrar serviços, etc.
• Definição das classes : paciente, dentista, exame, agenda, serviço
• Definir os atributos e métodos das classes :
• Após toda esta análise você chega no diagrama de classes do sistema (representado abaixo
a título de exemplo ilustrativo)
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
367
Fundamentos de Análise
Atributo
Um atributo representa uma propriedade que todos os objetos da classe têm (por exemplo,
todos os cachorros tem pelo, orelhas, altura,,etc. Mas cada objeto terá valores particulares para seus
atributos (alguns cachorros são mais baixos, outros são maiores, etc.).
Uma classe pode ter qualquer número de atributos. Na UML, o nome de um atributo é um texto
contendo letras e dígitos e algumas marcas de pontuação. UML sugere de capitalizar todas as primei-
ras letras de cada palavra no nome menos a primeira palavra (ex.: “nome’’, “nomeCachorro’’).
Num modelo, os atributos devem ser de um tipo simples (inteiro, texto, talvez data), não podem
conter outros objetos.
Métodos
Métodos são ações que implementam uma operação. Uma classe pode ter qualquer número
de métodos e dois métodos em duas classes podem ter o mesmo nome. Todos os métodos que vão
implementar a operação tem que respeitar exatamente a assinatura dela (mesmo nome, mesmo nú-
mero de atributo, com os mesmo tipos e o mesmo ordem). Um método não pode acrescentar ou cor-
tar um parâmetro. Isso seria um violação do polimorfismo. Para mandar a mensagem corretamente,
teríamos que saber qual é a classe do objeto (cada classe tendo método com assinatura diferente). O
que é possível, no caso de cortar um parâmetro, é simplesmente ignorá-lo na implementação. [Nico-
las Anquetil].
Fundação de Educação para o Trabalho de Minas Gerais – Curso Técnico em Informática – Etapa 2
368