Vous êtes sur la page 1sur 49

Anlise e Projeto Orientado a Objetos

Introduo a Anlise OO
Importncia da Modelagem Modelagem Visual

Sistemas de Informao

Um SI uma combinao de pessoas, dados, processo, interfaces, hardware e redes de comunicao que interagem com o objetivo de dar suporte e melhorar o processo de negcio de uma organizao com relao ao gerenciamentos das informaes. Objetivo principal e final de um SI
Adio de valor Organizao

Sistemas de Software

Um dos componentes de um SI Compreende mdulos funcionais computadorizados que interagem entre si para proporcionar a automatizao de diversas tarefas Caracterstica intrnseca do desenvolvimento de um Sistema de Software: Complexidade

Sistemas de Software

Modelos de Software

Na construo de sistemas de software, assim como na construo de sistemas habitacionais, tambm h uma gradao de complexidade
Leva a necessidade de um planejamento inicial

Um modelo pode ser visto como uma representao idealizada de um sistema que se planeja construir Maquetes de edifcios e de avies e plantas de circuitos eletrnicos so apenas alguns exemplos de modelos

Importncia da Modelagem

A principio, podemos ver a construo de modelos como uma atividade que atrasa o desenvolvimento do software propriamente dito Mas essa atividade propicia:
O gerenciamento da complexidade inerente desenvolvimento de software A comunicao entre as pessoas envolvidas A reduo dos custos do desenvolvimento A predio do comportamento futuro do sistema ao

Diagramas e Documentao

No contexto de desenvolvimento de software, correspondem a desenhos grficos que seguem algum padro lgico Podemos tambm dizer que um diagrama uma apresentao de uma coleo de elementos grficos que possuem um significado predefinido Diagramas normalmente so construdos acordo com regras de notao bem definidas de

Cada forma grfica utilizada em um diagrama de modelagem tem um significado especfico.

Diagramas e Documentao

Diagramas permitem a construo de uma representao concisa de um sistema a ser construdo


uma figura vale por mil palavras

No entanto, modelos tambm so compostos de informaes textuais Dado um modelo de uma das perspectivas de um sistema, diz-se que o seu diagrama, juntamente com a informao textual associada, formam a documentao deste modelo.

Modelagem de Software

A modelagem de sistemas de software consiste na utilizao de notaes grficas e textuais (modelagem visual) com o objetivo de construir modelos que representam as partes essenciais de um sistema, considerando-se diversas perspectivas diferentes e complementares

Modelagem Visual

O uso de notaes grficas e textuais semanticamente ricas para construir modelos que representem o software, denomina-se Modelagem Visual
Assim, da mesma forma que impossvel construir uma casa sem primeiramente definir sua planta, tambm impossvel construir um software sem inicialmente definir sua arquitetura

Anlise e Projeto Orientado a Objetos


Introduo a Anlise OO
O paradigma da OO

Paradigma

Um paradigma uma forma de abordar um problema No contexto da modelagem de um sistema de software, um paradigma tem a ver com a forma pela qual esse sistema entendido e construdo Paradigma Estruturado
Uso da tcnica de decomposio funcional Praticamente suplantou o paradigma anterior

Paradigma da Orientao a Objetos

O Paradigma da OO

Surgiu no fim dos anos 60 Alan Kay, um dos pais desse paradigma, formulou a chamada analogia biolgica
Como seria um sistema de software que funcionasse como um ser vivo?

O Paradigma da OO

Cada clula interagiria com outras clulas atravs do envio de mensagens para realizar um objetivo comum Adicionalmente, cada clula se comportaria como uma unidade autnoma De forma mais geral, Kay pensou em como construir um sistema de software a partir de agentes autnomos que interagem entre si.

Fundamentos da OO

Atravs de sua analogia biolgica, Alan Kay definiu os fundamentos da OO.


Qualquer coisa um objeto Objetos realizam tarefas atravs da requisio de servios a outros objetos Cada objeto pertence a uma determinada classe. Uma classe agrupa objetos similares A classe um repositrio para comportamento associado ao objeto. Classes so organizadas em hierarquias

Sistemas de Software OO

O paradigma da OO visualiza um sistema de software como uma coleo de agentes interconectados chamados objetos. Cada objeto responsvel por realizar tarefas especificas. atravs da interao entre objetos que uma tarefa computacional realizada.

Conceitos e Princpios da OO

Conceitos
Classe Objeto Mensagem

Princpios
Encapsulamento

Polimorfismo
Generalizao Composio

Classes e Objetos

O mundo real formado de coisas Na terminologia de OO, estas coisas do mundo real so denominadas objetos

Seres humanos costumam agrupar os objetos para entend-los


A descrio de um grupo de objetos denominada classe de objetos, ou simplesmente classe.

Classe

Uma classe um molde para objetos. Diz-se que um objeto uma instncia de uma classe Uma classe uma abstrao das caratersticas relevantes de um grupo de coisas do mundo real
Pode ser definida como uma estrutura que descreve um conjunto de objetos semelhantes;

Na Classe so encontrados Atributos e Mtodos que resumem as caractersticas comuns de vrios objetos;

Classe

Abstrao

Uma abstrao qualquer modelo que inclui os aspectos relevantes de alguma coisa, ao mesmo tempo em que ignora os menos importantes.
Sempre depende do observador

Abstrao na OO

A OO faz uso intenso de abstraes


Os princpios da OO podem ser vistos como aplicaes da abstrao

Objetos como abstraes


Uma abstrao uma representao das caractersticas e do comportamento relevantes de um conceito do mundo real para um determinado problema. Dependendo do contexto, um mesmo conceito do mundo real pode ser representado por diferentes abstraes

Carro
Para um transportadora Para um colecionador Para um mecnico

Objeto

Um conceito, uma abstrao com significado especfico em um contexto Propsito:


Entidade de software que reflete de alguma forma o mundo real Representar uma entidade do mundo real

Composio:
Identidade Conjunto de caractersticas que determinam seu estado Comportamento especfico definido por um conjunto de aes

Classe X Objeto

Objetos so abstraes de entidades que existem no mundo real Classes so definies estticas, que possibilitam o entendimento de grupo de objetos CUIDADO: estes dois conceitos muitas vezes so usados indistintamente em textos sobre orientao a objetos

Mensagens

Para que um objeto realize alguma tarefa, deve haver um estmulo enviado a este objeto Pense em um objeto como uma entidade ativa que representa uma abstrao de algo do mundo real
Ento faz sentido dizer que tal objeto pode responder a estmulos a ele enviados Assim como faz sentido dizer que seres vivos reagem a estmulos que eles recebem

Independentemente da origem do estmulo, quando ele ocorre, diz-se que o objeto em questo est recebendo uma mensagem

Mensagens

Uma mensagem uma requisio enviada de um objeto a outro para que este ltimo realize alguma tarefa.

Um programa O. O uma coleo de objetos dizendo uns aos outros o que fazer.

Encapsulamento

Objetos possuem comportamento


O termo comportamento diz respeito a que operaes so realizadas por um objeto e tambm de que modo estas operaes so executadas.

De acordo com o encapsulamento, objetos devem esconder a sua complexidade

Encapsulamento

O encapsulamento uma forma de restringir o acesso ao comportamento interno de um objeto


Um objeto que precise da colaborao de outro para realizar alguma tarefa simplesmente envia uma mensagem a este ltimo A forma que o objeto requisitado usa para realizar a tarefa no conhecido dos objeto requisitantes.

Na terminologia da OO, diz-se que um objeto possui um interface


A interface de um objeto define os servios que ele pode realizar e consequentemente as mensagens que ele recebe.

Encapsulamento
No se pode permitir o acesso direto aqui. Implementao Classe Conta Saca Transfere Deposita

Atributos e Corpo de Mtodos

Interface Todo acesso ao objeto deve ser feito por aqui.

Encapsulamento

Pelo princpio do encapsulamento, a implementao utilizada por um objeto receptor de uma mensagem no importa para um objeto remetente da mesma.

Encapsulamento

Esse princpio aumenta a qualidade do SSOO, em termos de:


Legibilidade Clareza Reuso Manutenibilidade

Polimorfismo

Polimorfismo

a habilidade de objetos de classes diferentes responderem a mesma mensagem de diferentes maneiras. Em uma linguagem orientada a objetos:

Generalizao

A herana pode ser vista como um nvel de abstrao acima da encontrada entre as classes e objetos Na herana, classes semelhantes so agrupadas em hierarquia
Cada nvel de uma hierarquia pode ser visto como um nvel de abstrao. Cada classe em um nvel da hierarquia herda as caractersticas das classes nos nveis acima.

Generalizao

A herana facilita o compartilhamento de comportamento entre classes semelhantes

As diferenas ou variaes de uma classe em particular podem ser organizadas de forma mais clara

Anlise e Projeto Orientado a Objetos


Introduo a Anlise OO
UML

Evoluo do Hardware
A chamada Lei de Moore bastante conhecida da comunidade de computao Essa lei foi declarada em 1965 pelo engenheiro Gordon Moore, cofundador da Intel Lei de Moore: A densidade de um transistor dobra em um perodo entre 18 e 24 meses

Evoluo do Software

O Rpido crescimento da capacidade computacional das mquinas resultou na demanda por sistemas de software cada vez mais complexos O surgimento de sistemas de software mais complexos resultou na necessidade de reavaliao da forma de se desenvolver sistemas Consequentemente as tcnicas utilizadas para a construo de sistemas computacionais tm evoludo de forma impressionante, notadamente no que tange modelagem de sistemas

Evoluo do Software

Na primeira metade da dcada de 1990 surgiram vrias propostas de tcnicas para a modelagem de sistemas segundo o paradigma orientado a objetos Houve uma grande proliferao de propostas para a modelagem orientada a objetos
Diferentes notaes grficas para modelar uma mesma perspectiva de um sistema Cada tcnica tinha seus pontos fracos e fortes

Evoluo do Software

Evoluo do Software

Percebeu-se a necessidade de padro para a modelagem de sistemas, que fosse aceito e utilizado amplamente. Alguns esforos nesse sentido de padronizao, o principal liderado pelo trs amigos.
Surge a UML (Unified Modeling Language) em 1996 como a melhor candidata para ser linguagem unificadora Em 1997, a UML aprovada como padro pelo OMG Desde ento, a UML tem tido grande aceitao pela comunidade de desenvolvedores de sistemas uma linguagem ainda em desenvolvimento Atualmente na verso 2.3

UML (Linguagem de Modelagem Unificada)


uma linguagem padro para visualizar, especificar, construir e documentar os artefatos de software de um sistema Unificao de diversas notaes anteriores Mentores: Booch, Rumbaugh e Jacobson

Trs Amigos
Grady Booch Booch Jim Rumbaugh OMT Ivar Jacobson - Objectory

RUP (Rational Unified Process)

UML (Linguagem de Modelagem Unificada)

UML (Linguagem de Modelagem Unificada)

UML :
Uma linguagem visual Independente de linguagem de programao Independente de processo de desenvolvimento

UML no :
Uma linguagem de programao Uma tcnica de modelagem

UML (Linguagem de Modelagem Unificada)

Um processo de desenvolvimento que utilize a UML como linguagem de modelagem envolve a criao de diversos documentos
Estes documentos denominados artefatos de software, podem ser textuais ou grficos

Os artefatos grficos produzidos de um sistema OO so definidos atravs dos diagramas UML

Diagramas UML

Um diagrama na UML uma representao de uma coleo de elementos grficos que possuem um significado predefinido

No contexto de desenvolvimento de software, correspondem a desenhos grficos que seguem algum padro lgico

Diagramas UML

Diagramas UML

Diagrama de Casos de Uso: requisitos, descrio e cenrios Diagrama de Classe Diagrama de Objetos Diagrama de Interao
Diagrama de Sequencia
Diagrama de Temporizao Diagrama de Colaborao Diagrama de Viso Geral da Interao

Diagrama de Estados Diagrama de Casos de Atividades Diagrama de Casos de Implementao


Diagrama de Componentes Diagrama de Implantao