Vous êtes sur la page 1sur 47

Java

Objetivos do Curso
Demonstrar uma viso completa e integrada da Orientao a Objetos dentro do processo de desenvolvimento de software, apresentando e discutindo seus principais mtodos de anlise e projeto, combinados com as linguagens mais conhecidas que implementam os princpios fundamentais do paradigma da Orientao a Objetos.

Metodologia

    

Aulas expositivas; Leituras individuais e em grupo; Anlise de textos; Estudos de Caso; Exerccios em laboratrio.

Critrios de Avaliao
Exerccios e Estudos de Caso; Prova;

 

Anlise e Projeto de Sistema

O que um modelo???
    

Casa do Cachorro Sua Casa Prdio Empresa O que voc consegue construir sem modelo???

O que um modelo???

Importncia da Modelagem
 

Um modelo uma simplificao da realidade; Possibilita a visualizao e o controle da arquitetura do sistema; Facilita o entendimento do sistema sendo construdo; Possibilita a identificao de oportunidades para a simplificao e a reutilizao; Possibilita a especificao da estrutura e do comportamento do sistema; Possibilita a documentao das decises tomadas.

Importncia da Modelagem
Podemos concluir que:  Uma empresa bem sucedida aquela que fornece software de qualidade e capaz de atender as necessidades dos respectivos usurios;  A modelagem uma parte central de todas as atividades que levam a implantao de um bom software.

Modelagem no Orientada a Objetos


     

 

Razes associadas s linguagens de terceira gerao; Sistemas so decompostos em mdulos; Mdulos so decompostos em funes; Funes e dados so tratados em separado; Funes so ativas e dados so passivos; Funes precisam conhecer as estruturas dos dados; problemtico modificar estruturas dos dados; Dados fluem entre as funes.

Modelagem Orientada a Objetos




    

Comportamento e dados so mantidos integrados; Suportam classe, objeto e herana; Sugerem como identificar as classes; Sugerem como identificar responsabilidades; Classes agrupadas em hierarquias; Sugerem como identificar interaes entre objetos.

Engenharia de Software OO


Engenharia de software uma abordagem sistemtica para o desenvolvimento de software; Enfatiza o entendimento antes do projeto e da codificao; A construo de modelos um aspecto chave na engenharia de software; Um modelo uma abstrao de algum aspecto de um problema; Modelos so representados atravs de diagramas.

Como introduzir a orientao a objetos ?


       

Treinar equipe em orientao a objetos; Treinar equipe em linguagem de programao; Desenvolver pequenos programas; Desenvolver projeto piloto; Projeto piloto deve ser til; Vrias metodologias podem ser consideradas; Monitorar e avaliar cuidadosamente o projeto; Estipular um prazo para concluso.

Por que orientao a objetos




Uma das preocupaes da indstria de software a necessidade de criar software e sistemas corporativos muito mais rapidamente e a um custo mais baixo. Para fazermos bom uso da crescente potncia dos computadores, precisamos de um software de maior complexidade. Alm de complexo, ele precisa tambm ser confivel e de alta qualidade.

Por que orientao a objetos




Em 1968, na Conferncia de Engenharia de Software da NATO, utilizou-se pela primeira vez o termo crise do software para designar o mau momento que atravessava a indstria de software, que no possua mtodos adequados para suprir suas demandas. construo.  A partir da surgiram muitos mtodos para o desenvolvimento, todos eles com o intuito de superar a tal crise do software. Neste contexto, surgiu o paradigma da orientao a objetos. objetos

Por que orientao a objetos




A programao orientada a objetos, concentra-se nos tipos de objetos cuja estrutura de dados pode ser manipulada somente com os mtodos da classe de objetos.  As estruturas de dados se relacionam aos objetos e podem ser usadas somente com os mtodos projetados para este tipo de objeto.

Por que orientao a objetos




A anlise de sistemas no mundo orientado a objetos feita analisando-se os objetos e os eventos que interagem com esses objetos.  Cada objeto executa uma funo especfica independentemente de outros objetos: responde a mensagens, sem saber porque a mensagem foi enviada ou quais sero as conseqncias.

Origens da orientao a objetos


Conceitos existentes desde os anos 60: Incio na rea acadmica - Simula 67:  Linguagem de simulao. 1972 Smalltalk:  Foi a primeira linguagem orientada a objetos construda. Ainda hoje serve como referncia pois totalmente orientada a objetos. ainda restrita a pesquisas.

Origens da orientao a objetos


1980s - Objective-X, C++, Eiffel 1981 Mtodo OO Matt Flavin 1984 Interface GUI Apple Macintosh 1990s - C++:  a linguagem responsvel pela aceitao em larga escala da Orientao a Objetos nos grandes projetos fora dos laboratrios de pesquisa. Ainda muito utilizada onde performance primordial.

   

Origens da orientao a objetos


Linguagem C + Classes;  Classes: registros (Structs, Union, Class) + funes. 1990s Java:  Tornou-se muito aceita pela capacidade de rodar seus programas em praticamente qualquer plataforma.


Atualmente a linguagem mais utilizada para desenvolvimento em larga escala de sistemas distribudos em ambientes heterogneos.

Origens da orientao a objetos


1990s ADA  Desenvolvida pelo Departamento de Defesa do USA, ainda a linguagem oficial do governo americano. muito utilizada por grupos de pesquisa e engenharia.

Orientao a Objetos
Fundamentos e Conceitos

O que um Sistema OO?

Um sistema Orientado a Objeto modelado, implementado e efetivamente funciona como um conjunto de objetos que interagem entre si.

Obj 2

Obj 3

Obj 1 Obj 4

Resumo do Funcionamento

Os menores componentes do sistema so os objetos, onde so guardadas todas as informaes. Os objetos se comunicam atravs de mensagens. As mensagens acionam os mtodos dos objetos visando efetuar as aes e manipular as informaes.

Mundo Computacional Mundo Real

ESPAO DE PROBLEMAS Gap Semntico

ESPAO DE SOLUES

Aspectos mais importantes do mundo real para fins de representao no computador

RESULTADOS DADOS
Objetos e Operaes do mundo real

ESPAO DE PROBLEMAS
Algoritmo do mundo real

Objetos do mundo real

Mapeamento do domnio de solues

Interpretao Humana dos resultados

ESPAO DE SOLUES
Objetos e Operaes abstratas
Algoritmo computacional

Dados de Sada

Gap Semntico
 

Diferena entre Espao de Problemas e Solues; Todo software representa um Modelo de um problema do mundo real (Espao de Solues); A construo de um software envolve um processo de mapeamento de objetos pertencentes ao espao de problemas para o espao de solues, de tal maneira que operaes sobre essas representaes abstratas correspondam a operaes do mundo real; Projetista cria algoritmos que quando executados no computador produziro resultados, que podem ser mapeados fisicamente para alguma ao do mundo real ou examinados/interpretados por pessoas.

Gap Semntico

EVIDENTE: quanto mais prximo (conceitualmente) estiver o espao de solues do espao de problemas, mais fcil ser:  O desenvolvimento da aplicao;  Assegurar a compreenso, confiabilidade e manuteno da aplicao. Objetivo do Paradigma de Orientao a Objetos DIMINUIR O GAP SEMNTICO.

Mundo Computacional Mundo Real

ESPAO DE PROBLEMAS Mapeamento

ESPAO DE SOLUES

Processo de Identificao de Abstraes Se essas abstraes no tiverem uma expresso direta (ou prxima) do mundo computacional, a complexidade da soluo ser aumentada

Modelagem Conceitual


Tarefa mais importante de um processo de desenvolvimento de software  realiza-se a anlise do domnio da aplicao e a modelagem das entidades e fenmenos desse domnio que o projetista considera importante, independentemente da implementao. A tarefa de modelagem conceitual envolve dois mecanismos:  Abstrao;  Representao.

Modelagem Conceitual
Refere-se s convenes de representao

Operao mental para observar um domnio e capturar sua estrutura

REPRESENTAO

ABSTRAO Objeto Representado


Notao grfica, linguagem de programao
Avio

Objeto Observado

Paradigma de Orientao a Objetos


Histrico, Conceitos e Terminologia

Orientao a Objetos Abreviaes


  

Orientao a Objetos - OO Anlise Orientada a Objetos - AOO Projeto Orientado a Objetos - POO

Paradigma de Orientao a Objetos




Surgiu na tentativa de solucionar problemas existentes no desenvolvimento de Softwares Complexos e Confiveis com baixo custo de desenvolvimento e manuteno; Mundo Real formado por objetos que se interagem; Representar esses objetos em um software mais natural e permanente do que representar a sua funcionalidade (decomposio funcional), pois essa mutvel;

Paradigma de Orientao a Objetos


Idia bsica Ns percebemos o mundo como uma coleo de objetos que interagem entre si. Maneira de ver as coisas, uma nova maneira de pensar  Permite que objetos do mundo real sejam mapeados em Objetos no computador;  Viso do DOMNIO da aplicao composto por OBJETOS que se comunicam atravs de MENSAGENS;


Paradigma de Orientao a Objetos




Paradigma de OO = objetos + classificao + herana + comunicao (Coad e Yourdon, 1990); Modelo de Objetos  Objetos, Mensagens e Mtodos. Tradicionalmente  Softwares so formados por dados e procedimentos independentes.

Paradigma de Orientao a Objetos




Paradigma OO  Softwares so formados, principalmente, por:

Objetos  parte interna (define o comportamento do objeto, ou seja, especifica os mtodos associados ao objeto).  parte externa (interface - maneira que o objeto se apresenta para outros objetos)  Mensagens



Diminuir o gap semntico.

Paradigma de Orientao a Objetos




O desenvolvimento orientado a objetos evoluiu no sentido: PROGRAMAO ANLISE Conceitos desse paradigma foram introduzidos com o surgimento da linguagem Smalltalk; Em seguida, surgiram mtodos de projeto para dar suporte implementao de sistemas orientados a objetos; Recentemente, propostas de mtodos para anlise e projeto vm emergindo.

Histrico


A OO surgiu no final da dcada de 60, quando dois cientistas dinamarqueses criaram a linguagem Simula (Simulation Language). 1967 - Linguagem de Programao Simula-67conceitos de classe e herana. O termo Programao Orientada a Objeto (POO) introduzido com a linguagem Smalltalk (1983). FINS DOS ANOS 80 Paradigma de Orientao a Objetos: abordagem poderosa e prtica para o desenvolvimento de software

Histrico


Linguagens hbridas:


C++ (1986), Object-Pascal (1986).


CRC (Class Responsability Collaborator, Beecke e Cunningham, 1989). OOA (Object Oriented Analysis, Coad e Yourdon, 1990) Booch (1991). OMT (Object Modeling Technique, Rumbaugh, 1991). Objectory (Jacobson, 1992). Fusion (1994). Unified Modeling Language Notao (UML, 1997).

Mtodos de Anlise e Projeto OO




     

Benefcios Principais


Reusabilidade. Reduo da Complexidade. Garantia de Integridade.

Processo de Construo de Sistemas




Reusabilidade transforma construo de sistemas.

processo

de

antes
Processo semi-artesanal.

Processo de Montagem


Reutilizao de componentes j testados existentes em uma Biblioteca de Classes.

depois

Processo de montagem semelhante ao da indstria mecnica.

Ganhos Decorrentes da Reusabilidade




Aumento de produtividade  uso de bibliotecas de classes;  mecanismos de herana. Aumento de qualidade  uso de componentes testados e aprovados.

Reduo de Complexidade


Maior facilidade de transio entre as fases:  mesmo paradigma desde a anlise at a implementao;  no existe necessidade de converses de modelos a cada fase.

Reduo de Complexidade


Facilidade de modularizao:  delimitao clara e precisa das fronteiras entre os objetos. Facilidade de manuteno  operaes residem em um nico lugar, no estando espalhadas e repetidas pelos programas.

Garantia de Integridade


Estruturas de dados s podem ser usadas por suas prprias operaes.