Você está na página 1de 43

Princpios de Anlise e Projeto de Sistemas com UML

2 edio
Eduardo Bezerra Editora Campus/Elsevier

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

Captulo 1 Viso Geral


Coisas simples devem ser simples e coisas complexas devem ser possveis.. -Alan Kay

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

Sistemas de Informaes
A necessidade a me das invenes
Em conseqncia do crescimento da importncia da informao, surgiu a necessidade de gerenciar informaes de uma forma adequada e eficiente e, desta necessidade, surgiram os denominados sistemas de informaes.

Um SI uma combinao de pessoas, dados, processos, interfaces, redes de comunicao e tecnologia que interagem com o objetivo de dar suporte e melhorar o processo de negcio de uma organizao com relao s informaes.
Vantagens do ponto de vista competitivo.

Objetivo principal e final da construo de um SI: adio de valor organizao.


Princpios de Anlise e Projeto de Sistemas com UML - 2 edio 3

Sistemas de Software
Um dos componentes de um denominado sistema de software. Compreende os mdulos funcionais computadorizados que interagem entre si para proporcionar a automatizao de diversas tarefas. Caracterstica intrnseca do desenvolvimento de sistemas de software: complexidade.

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

Sistemas de Software

Uma analogia...

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

1.1 Modelagem de sistemas de software

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

Modelos de Software
Na construo de sistemas de software, assim como na construo de sistemas habitacionais, tambm h uma gradao de complexidade.
A construo desses sistemas necessita 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.

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

Razes para construo de modelos


A princpio, 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 ao desenvolvimento de software. A comunicao entre as pessoas envolvidas. A reduo dos custos no desenvolvimento. A predio do comportamento futuro do sistema.

Entretanto, note o fator complexidade como condicionante dessas vantagens.


Princpios de Anlise e Projeto de Sistemas com UML - 2 edio 8

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 de acordo com regras de notao bem definidas.
Ou seja, cada forma grfica utilizada em um diagrama de modelagem tem um significado especfico.

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

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, dizse que o seu diagrama, juntamente com a informao textual associada, formam a documentao deste modelo.
Princpios de Anlise e Projeto de Sistemas com UML - 2 edio 10

Modelagem de Software

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

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

11

1.2 O paradigma da orientao a objetos

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

12

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. A primeira abordagem usada para modelagem de sistemas de software foi o paradigma estruturado.
Uso da tcnica de decomposio funcional divida sucessivamente um problema complexto em subproblemas

Hoje em dia, praticamente suplantou o paradigma anterior, o paradigma da orientao a objetos...

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

13

O 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?

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

14

Analogia Biolgica
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 uma forma mais geral, Kay pensou em como construir um sistema de software a partir de agentes autnomos que interagem entre si.

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

15

Fundamentos da Orientao a Objetos


Atravs de sua analogia biolgica, Alan Kay definiu os fundamentos da orientao a objetos.
1. Qualquer coisa um objeto. 2. Objetos realizam tarefas atravs da requisio de servios a outros objetos. 3. Cada objeto pertence a uma determinada classe. Uma classe agrupa objetos similares. 4. A classe um repositrio para comportamento associado ao objeto. 5. Classes so organizadas em hierarquias.

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

16

SSOO: uma analogia

Pizzaria
Princpios de Anlise e Projeto de Sistemas com UML - 2 edio 17

O paradigma da orientao a objetos visualiza Paradigma da Orientao Objetos um sistema de software como uma a coleo de agentes interconectados chamados objetos. Cada objeto responsvel por realizar tarefas especficas. atravs da interao entre objetos que uma tarefa computacional realizada. Um sistema de software orientado a objetos consiste de objetos em colaborao com o objetivo de realizar as funcionalidades deste sistema. Cada objeto responsvel por tarefas especficas. atravs da cooperao entre objetos que a computao do sistema se desenvolve. Princpios de Anlise e Projeto de
Sistemas com UML - 2 edio

18

Conceitos e Princpios da OO
Conceitos
Classe Objeto Mensagem

Princpios
Encapsulamento Polimorfismo Generalizao (Herana) Composio
Princpios de Anlise e Projeto de Sistemas com UML - 2 edio 19

Classes, objetos e mensagens


O mundo real formado de coisas. Na terminologia de orientao a objetos, 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 de classe.

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

20

O que uma classe?


Uma classe um molde para objetos. Diz-se que um objeto uma instncia de uma classe. Uma classe uma abstrao das caractersticas relevantes de um grupo de coisas do mundo real.
Na maioria das vezes, um grupo de objetos do mundo real muito complexo para que todas as suas caractersticas e comportamento sejam representados em uma classe.
Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

Representante

Cliente

Produto
21

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

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

22

Abstrao na orientao a objetos


A orientao a objetos faz uso intenso de abstraes.
Os princpios da OO podem ser vistos como aplicaes da abstrao.

Princpios da OO: encapsulamento, polimorfismo, herana e composio.

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

23

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 uma transportadora de cargas) Carro (para uma fbrica de automveis) Carro (para um colecionador) Carro (para uma empresa de kart) Carro (para um mecnico)

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

24

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

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

25

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. Uma mensagem uma requisio enviada de um objeto a outro para que este ltimo realize alguma operao.
Princpios de Anlise e Projeto de Sistemas com UML - 2 edio 26

Mensagens
Objetos de um sistema trocam mensagens
isto significa que estes objetos esto enviando mensagens uns aos outros com o objetivo de realizar alguma tarefa dentro do sistema no qual eles esto inseridos.

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

27

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... Esse princpio aumenta qualidade do SSOO, em termos de:
Legibilidade Clareza Reuso
Princpios de Anlise e Projeto de Sistemas com UML - 2 edio 28

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. O mtodo (maneira de fazer) que o objeto requisitado usa para realizar a tarefa no conhecido dos objetos requisitantes.

Na terminologia da orientao a objetos, diz-se que um objeto possui uma interface.


A interface de um objeto o que ele conhece e o que ele sabe fazer, sem descrever como o objeto conhece ou faz. A interface de um objeto define os servios que ele pode realizar e conseqentemente as mensagens que ele recebe.
Princpios de Anlise e Projeto de Sistemas com UML - 2 edio 29

Encapsulamento
Uma interface pode ter vrias formas de implementao. Mas, pelo princpio do encapsulamento, a implementao utilizada por um objeto receptor de uma mensagem no importa para um objeto remetente da mesma.

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

30

Polimorfismo
Objeto receptor Objeto receptor

Objeto remetente (Jogo de futebol?!)


Princpios de Anlise e Projeto de Sistemas com UML - 2 edio 31

Polimorfismo
a habilidade de objetos de classes diferentes responderem a mesma mensagem de diferentes maneiras. Em uma linguagem orientada a objetos:
for(i = 0; i < poligonos.tamanho(); i++) poligonos[i].desenhar();

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

32

Generalizao (Herana)
A herana pode ser vista como um nvel de abstrao acima da encontrada entre classes e objetos. Na herana, classes semelhantes so agrupadas em hierarquias.
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.

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

33

Herana
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.

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

34

1.3 Evoluo histrica da modelagem de sistemas 1.4 A Linguagem de modelagem unificada

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

35

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

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

36

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. Conseqentemente as tcnicas utilizadas para a construo de sistemas computacionais tm evoludo de forma impressionante, notavelmente no que tange modelagem de sistemas.

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

37

Evoluo do Software
Na primeira metade da dcada de 90 surgiram vrias propostas de tcnicas para modelagem de sistemas segundo o paradigma orientado a objetos. Houve uma grande proliferao de propostas para modelagem orientada a objetos.
diferentes notaes grficas para modelar uma mesma perspectiva de um sistema. cada tcnica tinha seus pontos fortes e fracos.

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

38

Necessidade de um Padro
Percebeu-se a necessidade de um 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.0.
Princpios de Anlise e Projeto de Sistemas com UML - 2 edio 39

UML (Linguagem de Modelagem Unificada)


A UML a 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 IBM Rational (www.rational.com)
Princpios de Anlise e Projeto de Sistemas com UML - 2 edio 40

UML (Linguagem de Modelagem Unificada)


UML ... uma linguagem visual. independente de linguagem de programao. independente de processo de desenvolvimento. UML no ... uma linguagem programao (mas possui verses!). 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. Os artefatos grficos produzidos de um sistema OO so definidos atravs dos diagramas da UML.
Princpios de Anlise e Projeto de Sistemas com UML - 2 edio 41

Diagramas da UML
Um diagrama na UML uma apresentao 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.

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 no desenvolvimento de um SSOO so definidos atravs dos diagramas da UML.
Princpios de Anlise e Projeto de Sistemas com UML - 2 edio 42

Diagramas da UML 2.0

Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

43