Вы находитесь на странице: 1из 55

Engenharia Fowler / Booch /

de Software Jacobson /
Rumbaugh /
Guedes

Anlise e
Projetos de
Sistemas OO

Teoria e
Exerccios

gabrielpacheco@euvoupassar.com.br

www.tiparaconcursos.net facebook.com/tiparaconcursos twitter.com/gabrielfpacheco


Contedo Programtico.

Anlise e projeto de sistemas:


Anlise e projeto estruturado / Anlise
estruturada.
Anlise e projeto OO.
Conceitos fundamentais.
Anlise.
Modelagem.
Padres de projeto.
UML.
Anlise e projeto OO
Conceitos Gerais - OO
Anlise Estruturada no representa o mundo real.
Necessidade de maior aproximao entre sistemas
de informao e o mundo real.
O ser humano pensa em objetos.
Carro.
4 rodas no mnimo.
2 portas no mnimo.
Farol.
Freio.
Anda.
Transporta pessoas.
Anlise e projeto OO
Conceitos Gerais - OO
Fronteiras entre Engenharia de Software e
Desenvolvimento.
RUP independente mas orientado UML e OO.
UML completamente inserida no conceito de OO.
Simula 67 (Ole Johan Dahl e Kristen Nygaard).
Smaltak 1970 (Alan Kay).
PHP, C++, Delphi, Java, Object Pascal.
Anlise e projeto OO
Conceitos Gerais - OO
Modela os objetos do mundo real com
correspondentes em software.
Fornece uma maneira mais natural de intuitiva de
ver o processo de programao modelando objetos
do mundo real, seus atributos e seus
comportamentos.
Busca a estrutura do problema, e no apenas da
informao.
Identifica em objetos,os elementos importantes do
domnio do problema que tratam com dados e
possuem funes que podem operar os dados.
Anlise e projeto OO
Conceitos Gerais - OO
Vantagens:
Maior componentizao.
Facilidade de manuteno.
Maior reaproveitamento de cdigo.
Melhor gesto do desenvolvimento (UML -> Classe e
Pacotes).
Desvantagens:
Entendimento de conceitos extremante complexos.
Desempenho em tempo de execuo.
Anlise e projeto OO
Conceitos Gerais - OO
Abstrao:
Enfocar os aspectos mais importantes de um objeto (viso
externa).
Ignorar suas caractersticas internas (viso interna).
Anlise e projeto OO
Conceitos Gerais - OO
Tipo:
Segue uma mesma estrutura e definem o que chama-se de
um tipo abstrato de dado.
uma estrutura de dados com um conjunto de definies
de operaes que afetam esta estrutura.
Serve para se definir um padro de modelo.
A implementao de um tipo uma classe que cria com
suas operaes um componente autnomo para o sistema.
Anlise e projeto OO
Conceitos Gerais - OO
Classe:
Representa uma categoria.
Modelo inicial a ser utilizado.
Abstrao que define um tipo de objeto e o que
determinado tipo de objeto tem dentro dele.
Identifica um grupo de objetos com as mesmas
caractersticas.
Trata-se de um conceito.
Voc moraria na planta de uma casa?
Anlise e projeto OO
Conceitos Gerais - OO
Objetos:
So os membros ou exemplos dessa categoria.
Os objetos podem executar seus mtodos.
So instncias das classes.
Possuem os atributos relativos classe.
Caracterizado por um conjunto de operaes e um estado
que armazena os efeitos das operaes que o objeto
capaz de realizar.
Aqui est a casa.
Anlise e projeto OO
Conceitos Gerais - OO
Atributos X Propriedades:
Classes possuem propriedades ou caractersticas
especficas.
Atributos so estas propriedades.
Representados na segunda diviso da classe.
Nome: tipo de dado que o objeto armazena
(no obrigatrio).
Anlise e projeto OO
Conceitos Gerais - OO
Mtodos, Operaes ou Comportamentos.
A UML utiliza o termo Operao.
Atividade que um objeto de uma classe pode executar.
Podem receber parmetros e retornar valores (no
obrigatoriamente).
Conjunto de instrues que so executadas quando o
mtodo chamado.
Anlise e projeto OO
Conceitos Gerais OO - Associao
Associaes representam as interaes ou
relacionamento entre os atores que fazem parte do
diagrama, entre os atores e os casos de uso ou os
relacionamentos entre os casos de uso e outros
casos de uso.
Os relacionamentos entre casos de uso recebem
nomes especiais (incluso, extenso e generalizao).
Anlise e projeto OO
Conceitos Gerais - OO
Princpios/pilares da Orientao a Objeto:
Encapsulamento.
Herana.
Composio.
Polimorfismo.
Anlise e projeto OO
Conceitos Gerais OO Encapsulamento
Encapsulamento:
Capacidade de ocultar partes de implementao interno
de classes do mundo exterior.
Possibilita a sua viso das apenas por seus mtodos e no
como eles so implementados.
A cpsula que protege o objeto que possui
caractersticas de encapsulamento se chama interface que
utiliza-se de mensagens para tal feito. (Motorista, Carro).
Implica na colaborao entre os objetos pela troca de
mensagens. (TV, DVD).
Anlise e projeto OO
Conceitos Gerais OO Encapsulamento
Encapsulamento:
Facilita a reutilizao.
Windows media player, Winamp, MP3 veicular.
O que caracteriza um encapsulamento eficiente a
definio precisa da interface.
Mensagem.
Proporciona a comunicao entre objetos.
Chamada de uma funo de um objeto, acionamento de uma
operao encapsulada no objeto destino.
Feita do objeto de origem.
Por padro toda mensagem tem uma resposta de retorno e pode
transmitir uma informao nachamada e no retorno.
Anlise e projeto OO
Conceitos Gerais OO Encapsulamento
Visibilidade:
Utilizada para indicar o nvel de acessibilidade de um
atributo ou mtodo.
Modos de Apenas Objetos Apenas Apenas Qualquer
Visibilidade da Classe Objetos da Objetos do Objeto
Subclasse Pacote
Privada/ X
Private (-)
Protegida/ X X
Protected
(#)
Pblica / X X X X
Public(+)
Pacote/ X
Pachage ou
Friendly (~)
Anlise e projeto OO
Conceitos Gerais OO Encapsulamento
Anlise e projeto OO
Conceitos Gerais OO Composio ou Agregao
Composio ou Agregao:
Mecanismo de reaproveitamento de classes utilizado pela
OO par aumentar a produtividade e a qualidade do
desenvolvimento de software.
Quando uma classe composta de outras classes ela pode
tanto usar os objetos que so gerados pelas classes que a
compem, como pode tambm usufruir dos atributos e
mtodos dessas classes.
Quando uma classe usa a Composio para agregar outras
classes, podemos dizer que ela tem um relacionamento
chamado Tem um.
Anlise e projeto OO
Conceitos Gerais OO Herana
Herana:
Permite reaproveitamento de atributos e mtodos.
Permite a diminuio de linhas de cdigo.
Superclasse ou classe me uma classe que contm
classes derivadas a partir dela, chamadas de subclasses ou
classes-filha.
Quando declaramos atributos e mtodos na classe me,
no precisamos declarar na classe filha, pois ela herda
automaticamente.
Declara-se no entanto os atributos e mtodos exclusivos
da classe filha.
Superclasses so genricas e subclasses so especializadas.
Anlise e projeto OO
Conceitos Gerais OO Herana
Anlise e projeto OO
Conceitos Gerais OO Herana
class Casa {
protected cor;
public andar;
public porta;
public garagem;
private void abrigarPessoas() {
}
}
Anlise e projeto OO
Conceitos Gerais OO Herana
class manso extends Casa {
public String bairro;
}
class barraco extends Casa {
public String morro;
}
Anlise e projeto OO
Conceitos Gerais OO Herana
Herana Mltipla:
Ocorre quando uma subclasse herda caractersticas de
duas ou mais superclasses.
O Java no implementa herana mltipla, simula tal feito
com o uso de interfaces.
Anlise e projeto OO
Conceitos Gerais OO Herana
Anlise e projeto OO
Conceitos Gerais OO Herana
class Casa {
protected cor;
public andar;
public porta;
public garagem;
private void abrigarPessoas() {
}
}
Anlise e projeto OO
Conceitos Gerais OO Herana
class Construcao {
public tipoConstrucao;
public qualidade;
}
class manso extends Casa {
public String bairro;
}
class barraco extends Casa, Construcao {
public String morro;
}
Anlise e projeto OO
Conceitos Gerais OO Polimorfismo
Polimorfismo:
Est relacionado com herana, mas no herana. OH
Teremos ento 2 mtodos com o mesmo nome e
diferentes somente pela sua maneira de implementar.
O mtodo polimrfico s ir se comportar de forma
diferente nos objetos da classe que o modificou.
Anlise e projeto OO
Conceitos Gerais OO Polimorfismo
Polimorfismo de sobrecarga:
Permite que um mtodo tenha comportamentos distintos,
em funo de diferentes parmetros que ele recebe.
Ocorre normalmente nos mtodos construtures.
Polimorfismo de sobreposio.
Redefinio de mtodos em classes descendentes.
O mtodo de uma classe filha com o mesmo nome de uma
classe me ir sobrepo-lo.
Anlise e projeto OO
Conceitos Gerais OO Polimorfismo
Anlise e projeto OO
Conceitos Gerais OO Polimorfismo
class conta {
public Integer saldo;
public void realizarSaque() {
}
}
class contaEspecial extends conta {
public Integer limite;
public void realizarSaque() {
}
}
Anlise e projeto OO
Conceitos Gerais OO Polimorfismo
Classe Abstrata:
Representa uma coleo de caractersticas presentes em
vrios tipos de objetos, mas no existe isoladamente e
automaticamente no pode ser instanciada.
somente um conjunto de caractersticas em comum das
subclasses. (Animal, Humano, Cachorro).
Aparece normalmente em itlico o seu nome.
Casting:
Utilizado quando queremos forar uma classe a apresentar
aquilo que ela no (Animal, Humano, Cachorro).
Ex: Utilizao de Array para Humano e Cachorro.
Anlise e projeto OO
Conceitos Gerais OO Linguagem Imperativa
http://pt.wikipedia.org/wiki/Programa%C3%A7%C3
%A3o_imperativa
Descreve a computao como aes, enunciados ou
comandos que mudam o estado (variveis) de um
programa. Muito parecido com o comportamento
imperativo das linguagens naturais que expressam
ordens, programas imperativos so uma seqncia
de comandos para o computador executar.
Anlise e projeto OO
Conceitos Gerais OO
Princpio da substituio de Liskov.
Definio particular de um subtipo.
Se S um subtipo de T, ento os objetos do tipo T, em um
programa, podem ser substitudos pelos objetos de tipo S
sem que seja necessrio alterar as propriedades deste
programa.
Se q(x) uma propriedade demonstrvel dos objetos x de
tipo T. Ento q(y) deve ser verdadeiro para objetos y de
tipo S onde S um subtipo de T.
Exerccios
1. (Copergs Analista de Sistemas 2011 - FCC)
50 Um componente que usa uma classe base
deve continuar a funcionar adequadamente se
uma classe derivada da classe base passada
para o componente e no a classe base. Trata-se,
nos projetos em nvel de componentes baseados
em classe, do princpio
a) da substituio de Liskov ( LSP ).
b) da inverso de dependncia (DIP ).
c) de equivalncia de liberao de reuso ( REP ).
d) de fecho comum ( CCP ).
e) comum de reuso ( CRP ).
Exerccios
2. (UFPA TI 2011 - FCC) 30 Uma coleo de
assinaturas de mtodos e/ou definies de
atributos que define idealmente um conjunto de
comportamentos coesos denomina-se
a) Sobreposio.
b) Herana.
c) Composio.
d) Interface.
e) Encapsulamento.
Exerccios
3. (UFPA TI 2011 - FCC) 32 Os atributos de uma
classe devem ser declarados em qualquer local
dentro do corpo de uma classe, mas devem estar
fora de qualquer mtodo. O escopo abaixo que
indica que um atributo est acessvel a qualquer
outra classe pertencente ao mesmo pacote da
classe referida ou por uma subclasse dela o
a) public.
b) protected.
c) Static.
d) final.
e) abstract.
Exerccios
4. (TRE-AP Programao de Sistemas 2011 -
FCC) 35 Em relao aos conceitos fundamentais
da orientao a objetos, o mecanismo pelo qual
um objeto utiliza os recursos de outro, podendo
ele assumir os tipos "usa um" ou "parte de",
denomina-se
a) Encapsulamento.
b) Herana.
c) Mtodo.
d) Polimorfismo.
e) Associao.
Exerccios
5. (CESAN-ES Analista de TI 2011 - Consulplan)
40 "A Programao Orientada a Objetos (POO)
possui um princpio que permite que classes
compartilhem atributos e mtodos, atravs de
_______________."
Assinale a alternativa que completa corretamente a
afirmativa anterior:
a) Encapsulamento
b) Herana
c) Polimorfismo
d) Instncia
e) Classe
Exerccios
(Correios Desenvolvimento de Sistemas 2011 -
Cespe) A respeito da orientao a objetos, julgue os
itens subsequentes
6. [87] Por meio do encapsulamento, para impedir o
acesso direto ao atributo de um objeto, so
disponibilizados externamente apenas os
mtodos que alteram esse objeto. Por exemplo,
no preciso conhecer todos os detalhes dos
circuitos de uma cmera digital para utiliz-la; a
parte externa da cmera encapsula os detalhes,
provendo para o usurio uma interface mais
amigvel.
Exerccios
(Correios Desenvolvimento de Sistemas 2011 -
Cespe) A respeito da orientao a objetos, julgue os
itens subsequentes
7. [88] Uma classe capaz de instanciar um objeto
de uma classe abstrata, para utilizar seus
mtodos e manipular seus atributos.
8. [90] O script abaixo ilustra um exemplo de
recurso, que um mtodo de programao no
qual uma funo chama a si mesma.
Exerccios
(TRT- 21 TI 2010 - Cespe) Julgue os itens
seguintes, referentes aos conceitos de programao
orientada a objetos
9. [69] Entende-se por polimorfismo a maneira de se
reutilizar cdigo por meio do aproveitamento de
atributos e mtodos de classes j existentes, com
o objetivo de gerar novas classes mais
especficas, que aproveitaro os recursos da
classe hierarquicamente superior
Exerccios
10. [70] Uma subclasse, por ser derivada de uma
superclasse e possuir todos os atributos da
superclasse, alm de atributos especficos, mais
especializada que a superclasse da qual foi
derivada.
11. [71] Denomina-se herana o princpio pelo qual
duas ou mais classes derivadas de uma mesma
superclasse podem utilizar mtodos que possuam
a mesma assinatura, mas comportamentos
diferentes, especializados para cada classe
derivada.
Exerccios
(ABIN Of. Suporte a Rede de Dados 2010 -
Cespe) Julgue os itens a seguir, relativos a conceitos
de programao estruturada e de programao
orientada a objetos.
12. [61] Os tipos de herana pblica, privada e
protegida referem-se ao escopo dos dados
internos ao objeto e visibilidade de suas
funes-membro.
Exerccios
13. [62] Uma das caractersticas das linguagens
orientadas a objetos que a ligao entre o
mtodo e uma mensagem realizada
tardiamente, em tempo de execuo, ao contrrio
das linguagens imperativas, cujos tipos das
variveis, expresses e funes devem ser
definidos e conhecidos em tempo de compilao.
14. [63] A programao orientada a objetos pode ser
considerada como uma aplicao do conceito de
encapsulamento de processos que utilizado, em
programao estruturada, na definio de tipos
abstratos de dados.
Exerccios
15.(SECGE PE ACI TI 2010 Cespe) Com
relao orientao a objetos, assinale a opo
correta.
a) Em geral, classes abstratas definem um conjunto de funcionalidades que
podem ou no ser especificadas e que devem estar todas definidas, contendo
ao menos um mtodo concreto.
b) Uma classe abstrata no pode ser instanciada, de forma que no h objetos
que possam ser construdos diretamente a partir de sua definio.
c) A sintaxe para a definio de classes diferencia-se da sintaxe para a
declarao de uma interface em razo de o seu corpo definir apenas
assinaturas de mtodos e constantes.
d) Uma classe abstrata no tem, obrigatoriamente, um corpo associado,
podendo apenas incluir atributos de objetos e definio de mtodos, pblicos
ou no. Uma interface Java, por sua vez, para que seja abstrata, necessita
somente ser declarada como tal.
e) Um dos atrativos da programao orientada a objetos a possibilidade de
adaptar funcionalidades oferecidas em classes existentes s necessidades de
cada aplicao; entretanto, h linguagens de programao que no oferecem
essa funcionalidade, tais como a linguagem Java, que possui pacotes de API.
Exerccios
16.(INMETRO Perq. TMQ Gesto da Informao
2010 Cespe) A respeito de generalizao e
especializao, assinale a opo correta.
a) A generalizao permite identificar um conjunto de subclasses de um
tipo de entidade.
b) As caractersticas que distinguem as entidades da superclasse podem
formar uma especializao constituda por um conjunto de subclasses.
c) A generalizao visa definir atributos especficos adicionais para cada
subclasse.
d) A generalizao um processo de abstrao por intermdio do qual
so criadas subclasses gerais oriundas de uma superclasse.
e) Tanto na generalizao quanto na especializao no possvel
restringir disjuno ou integralidade de forma independente.
Exerccios
(TCU AFCE TI 2010 Cespe) Julgue os itens
que se seguem, a respeito da anlise e do projeto
orientados a objetos.
17.[111] Uma classe pode ser vista como uma
descrio generalizada de uma coleo de
objetos semelhantes.
Exerccios
18.(CVM Analise de Sistemas 2010 ESAF)
Assinale a opo correta.
a) A conectividade orientada a objeto produz uma estrutura de software
(objeto) que compreende um anel de operaes protetoras em torno
de atributos que modificam o estado do objeto.
b) O encapsulamento orientado a objeto produz uma estrutura de
software (objeto) que compreende um anel de operaes protetoras
em torno de atributos que representam o estado do objeto.
c) O escalonamento orientado a objeto produz uma estrutura de software
(objeto) que compreende um ncleo de objetos protetores em torno de
atributos que representam o estado do objeto.
d) O encadeamento orientado a objeto produz um anel de operaes
sequenciais em torno de objetos que representam o estado do
atributo.
e) O encapsulamento orientado a processo produz uma estrutura de
hardware (processo) que compreende um anel de operaes
otimizadoras em torno de atributos que representam o ncleo do
processo.
Exerccios
19.(SUSEP Analista Tcnico TI 2010 ESAF)
Polimorfismo a
a) utilizao mltipla de programas em anlise orientada a
objetos.
b) habilidade de uma nica operao ou nome de atributo ser
definido em mais de uma classe e assumir diferentes
implementaes em cada uma dessas classes.
c) habilidade de um programador em desenvolver aplicaes
e caracterizar objetos com mltiplos atributos.
d) utilizao de uma classe com diferentes formatos em
programas com definio de objetos e atributos.
e) habilidade de uma nica varivel ser utilizada em
diferentes programas orientados a objetos.
Exerccios
20.(ANA Analista Administrativo Des. Sistemas e
Administrao 2009 ESAF) O mecanismo que
possibilita restringir o acesso ao comportamento
interno de um objeto denominado

a) encapsulamento.
b) Herana
c) polimorfismo.
d) atributo.
e) mtodo.
Copergs ABIN
Gabarito 1. A 12. E
UFPA 13. C
2. D 14. E
3. B CECGE
TER-AP 15. B
4. E INMETRO
CESAN-ES 16. B
5. B TCU
Correios 17. C
6. E CVM
7. E 18. B
8. C SUSEP
TRT-21 19. B
9. E ANA
gabrielpacheco@euvoupassar.com.br
10. C 20. A www.tiparaconcursos.net
11. E facebook.com/tiparaconcursos
twitter.com/gabrielfpacheco

Вам также может понравиться