Escolar Documentos
Profissional Documentos
Cultura Documentos
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
Diagramas e Documentao
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
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
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
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
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
Carro
Para um transportadora Para um colecionador Para um mecnico
Objeto
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
Encapsulamento
Encapsulamento
No se pode permitir o acesso direto aqui. Implementao Classe Conta Saca Transfere Deposita
Encapsulamento
Pelo princpio do encapsulamento, a implementao utilizada por um objeto receptor de uma mensagem no importa para um objeto remetente da mesma.
Encapsulamento
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
As diferenas ou variaes de uma classe em particular podem ser organizadas de forma mais clara
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
Trs Amigos
Grady Booch Booch Jim Rumbaugh OMT Ivar Jacobson - Objectory
UML :
Uma linguagem visual Independente de linguagem de programao Independente de processo de desenvolvimento
UML no :
Uma linguagem de programao Uma tcnica de modelagem
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
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