Vous êtes sur la page 1sur 46

Professor: Curso: Disciplina:

Esp. Marcos Morais de Sousa Sistemas de informao Anlise e Modelagem de Sistemas I Identificao de classes

Turma:

04 SEMESTRE

Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

Livros

J falamos...
Modelagem Aplicadas a Objetos UML: Definio, Contexto Histrico e Viso geral Diagrama de Caso de Uso Exerccios sobre diagramas de Caso de Uso Diagrama de Atividades Exerccios sobre diagramas de Atividades Identificao de caso de uso Documentao Falamos sobre o trabalho de grupo da I Unidade
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

Diagrama de Classes
Marcos Morais de Sousa marcosmoraisdesousa@gmail.com marcosmoraisdesousa.blogspot.com
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

O diagrama de classes
O diagrama de classes representa a estrutura do sistema, recorrendo ao conceito de classe e suas relaes. O modelo de classes resulta de um processo de abstrao onde so identificados os objetos relevantes do sistema em estudo. Um objeto uma ocorrncia que tem interesse para o sistema em estudo e que se pretende descrever no seu ambiente, contendo identidade e comportamento. O comportamento de um objeto define o modo como ele age e reage a estmulos externos e a identidade de um objeto um atributo que o distingue de todos os demais, sendo preservada quando o seu estado muda. Um objeto no mais do que uma instncia da classe.
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

Os objetos de modelao contemplados por este diagrama so:


Classe: a representao de um conjunto de objetos que partilham os mesmos atributos e comportamentos; Relao: representa a ligao entre classes.

Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

A simbologia usada para representar estes dois conceitos :

CLASSE

RELAO

Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

Cada classe descrita atravs do seu nome, identificao de todos os seus atributos e identificao de todas as operaes que traduzem o seu comportamento. O smbolo utilizado para representar a classe, e como se representa na figura a seguir, contempla trs reas distintas, uma rea para se identificar o nome da classe, outra para listar os atributos e, finalmente, a terceira, para listar as operaes ou mtodos, tambm designados, segundo alguns autores, por servios.
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

Simbologia usada para representar uma classe


Nome da Classe
Atributos

Mtodos

Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

10

REGRAS DE CONSTRUO
COMO UTILIZAR OS OBJECTOS O diagrama de classes mostra como cada classe se relaciona com as outras, tendo como objetivo, a satisfao dos requisitos funcionais definidos para o sistema em estudo. Neste diagrama, uma classe s pode aparecer uma vez.

Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

11

REGRAS DE CONSTRUO
COMO ATRIBUIR NOMES AOS OBJETOS Qualquer classe e relao devem ter um nome elucidativo e claro para que o diagrama seja facilmente entendido. As classes devem ser identificadas por um nome comum, como, por exemplo, Encomenda, Produto, Cliente, etc. Os nomes das relaes devem ser traduzidas atravs de um verbo, como, por exemplo, efectua, contm, refere, etc. Qualquer um destes nomes deve fazer parte do vocabulrio do domnio do problema em estudo.
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

12

COMO LIGAR OS OBJETOS


Depois de se terem identificado as classes e os seus atributos, h que identificar as relaes que existem entre as diferentes classes, de forma a satisfazer os requisitos funcionais do sistema. A representao da ligao entre classes faz-se recorrendo a uma linha reta, como pode ser visto na figura do prximo slide. O smbolo com a forma de um retngulo com um canto dobrado que aparece no diagrama da figura prximo slide o utilizado para ilustrar notas ou restries.
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

13

Notao usada no diagrama de classes

Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

14

Na figura anterior, mostra-se como se representam as relaes e chama-se a ateno para onde se coloca o nome e os atributos da classe. Nesta ilustrao, foram identificadas duas classes, Encomenda e Produto, cada uma das quais com os seus atributos, e foi identificada a relao Contm entre as duas classes.
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

15

A associao acontece quando uma classe se associa a uma ou mais classes, ou mesmo com ela prpria. As classes esto associadas se:
1. Um objeto de uma classe envia uma mensagem a um objeto de outra classe; 2. Um objeto de uma classe cria um objeto de uma outra classe; 3. Um objeto de uma classe recebe uma mensagem com um objeto de outra classe como argumento.
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

16

Existem outros tipos de relaes, generalizao e agregao, que so casos particulares da associao.

Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

17

A generalizao a relao que se estabelece entre uma superclasse e uma subclasse. A Classe A uma generalizao da Classe B quando A e B esto relacionados por uma relao: B como A. uma relao num sentido; se A uma generalizao de B, ento B no pode ser uma generalizao de A. A classe A a classe pai ou superclasse e B a classe filho ou subclasse. uma associao entre classes todo-parte, conhecida como uma relao consiste em. Este conceito equivalente ao conceito de herana da programao orientada a objetos, onde as subclasses, filhos, herdam da superclasse, pai, os atributos e mtodos comuns.
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

18

A agregao usa-se para mostrar o fato de um todo ser composto por partes. Uma forma especial de agregao a composio, que se usa quando as partes, para a sua existncia, dependem da existncia do todo. Por exemplo, no faz sentido ter uma linha de encomenda se no estiver associada a uma encomenda.
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

19

Importante
A UML reconhece trs tipos mais importantes de relaes: dependncia, associao e generalizao (ou herana). Geralmente as classes no esto ss e se relacionam entre si. O relacionamento e a comunicao entre as classes definem responsabilidades , temos 3 tipos :
1. Associaes : Agregao e composio 2. Generalizao (herana) 3. Dependncias
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

20

As representaes usam a seguinte notao :


Associao : So relacionamentos estruturais entre instncias e especificam que objetos de uma classe esto ligados a objetos de outras classes. Podemos ter associao uniria , binria , etc. A associao pode existir entre classes ou entre objetos. Uma associao entre a classe Professor e a classe disciplina (um professor ministra uma disciplina) significa que uma instncia de Professor (um professor especfico) vai ter uma associao com uma instncia de Disciplina. Esta relao significa que as instncias das classes so conectadas, seja fisicamente ou conceitualmente.[Nicolas Anquetil] Dependncia - So relacionamentos de utilizao no qual uma mudana na especificao de um elemento pode alterar a especificao do elemento dependente. A dependncia entre classes indica que os objetos de uma classe usam servios dos objetos de outra classe.
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

21

Generalizao (herana : simples ou composta) - Relacionamento entre um elemento mais geral e um mais especfico. Onde o elemento mais especfico herda as propriedades e mtodos do elemento mais geral. A relao de generalizao tambm conhecida como herana no modelo a objetos. Como a relao de dependncia, ela existe s entre as classes. Um objeto particular no um caso geral de um outro objeto, s conceitos (classes no modelo a objetos) so generalizao de outros conceitos. Agregao Regular - tipo de associao ( parte de , todo/parte) onde o objeto parte um atributo do todo ; onde os objetos partes somente so criados se o todo ao qual esto agregados seja criado. Pedidos composto por itens de pedidos. Composio - Relacionamento entre um elemento ( o todo) e outros elementos (as partes) onde as parte s podem pertencer ao todo e so criadas e destrudas com ele.
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

22

Exemplos destes tipos de relaes so mostrados na figura

Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

23

Exemplos destes tipos de relaes so mostrados na figura

Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

24

Exemplos destes tipos de relaes so mostrados na figura

Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

25

Num diagrama de classes, e aps ter-se identificado a associao entre classes, necessrio identificar a cardinalidade de uma associao, vulgarmente designada por multiplicidade. A multiplicidade especificada no extremo da associao e sobre a linha que representa a associao. A tabela 7.11 identifica e descreve a notao usada para representar os diferentes tipos de multiplicidade.
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

26

Quando h necessidade de se saber mais sobre a associao que se estabelece entre duas classes, surge o que se denomina por classes associativas. Por exemplo, se um produto pode ser comercializado por diferentes fornecedores e cada fornecedor tem um preo diferente para cada produto que comercializa, h necessidade de ter a classe Produto_Fornecedor, pois pretende-se saber qual o preo para um fornecedor especfico. Esta classe associativa s existe devido relao que se estabelece entre duas classes com multiplicidade de muitos para muitos e tem sempre atributos prprios.
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

27

Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

28

A figura mostra como se representa uma classe associativa


Produto Fornecedor

Preo Venda Prazo Entrega

Fornecedor Cdigo Fornecedor

Produto Cdigo Produto

Exemplo de uma classe associativa


Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

29

ANLISE DE UM DIAGRAMA DE CLASSES


No sistema de recepo de encomendas em estudo, pode-se identificar as seguintes classes: Cliente, Encomenda e Produto. Na figura a seguir, apresenta-se a primeira verso do diagrama de classes para o referido sistema.

Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

30

Primeira verso do diagrama de classes para o sistema de recepo de encomendas

Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

31

Verifica-se que, neste sistema, a encomenda pode ser ou no satisfeita. Neste caso, identifica-se um caso especial, designado, no diagrama de classes, por generalizao, que permite demonstrar a noo de superclasse e subclasse, herdando esta os atributos da superclasse. Neste mesmo sistema, nota-se a necessidade da classe Produto_Encomendado para se poder saber que produtos foram encomendados em cada encomenda; esta ltima classe s existe se existir a classe Encomenda.
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

32

A figura representa o diagrama de classes revisto, incluindo j associaes de generalizao e de composio.


Diagrama de classes revisto para o sistema de recepo de encomendas

Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

33

EXEMPLOS
A melhor maneira de conceituar estes termos considerar um objeto do mundo real e mostrar como podemos represent-lo em termos conceitos para POO. Comeando com as definies : "Um objeto um termo que usamos para representar uma entidade do mundo real" (Fazemos isto atravs de um exerccio de abstrao.) Vou usar como exemplo o meu cachorro Bilu. Posso descrever o Bilu em termos de seus atributos fsicos: pequeno , sua cor principal castanha , olhos pretos , orelhas pequenas e cadas, rabo pequeno , patas brancas. Posso tambm descrever algumas aes que ele faz (temos aqui os mtodos): balana o rabo quando chego em casa , foge e se deita se o mando sair debaixo da mesa, late quando ouve um barulho ou v um co ou gato, atende e corre quando o chamo pelo seu nome. Temos abaixo a representao do Bilu.
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

34

O cachorro Bilu.
O cachorro Bilu.

Temos aqui a representao de um objeto , no caso o meu cachorro Bilu , que possui as seguintes propriedades e mtodos: Propriedades : Cor do corpo : castanha cor dos olhos : preto altura: 18 cm comprimento: 38 cm largura : 24 cm Mtodos : balanar o rabo , latir , deitar , sentar

Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

35

Em termos de POO para poder tratar os objetos comeamos criando classes , neste caso irei criar a classe chamada Cachorro. "Uma classe representa um conjunto de objetos que possuem comportamentos e caractersticas comuns". "Na UML o nome de uma classe um texto contendo letras e dgitos e algumas marcas de pontuao. Na realidade, melhor guardar os nomes curtos com apenas letras e dgitos. UML sugere capitalizar todas as primeiras letras de cada palavra no nome (ex.: ``Lugar'', ``DataReserva''). melhor tambm manter nomes de classe no singular, classes por default contm'' mais de um objeto, o plural implcito.". [Nicolas Anquetil]
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

36

Uma classe descreve como certos tipos de objetos se parecem do ponto de vista da programao , pois quando definimos uma classe precisamos definir duas coisas: Propriedades - Informaes especficas relacionadas a uma classe de objeto. So as caractersticas dos objetos que as classes representam. Ex Cor , altura , tamanho , largura , etc... Mtodos: So aes que os objetos de uma classe podem realizar. Ex: Latir , correr , sentar , comer, etc.
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

37

Voc pode pensar em uma classe com um modelo para criar quantos objetos voc desejar de um tipo particular. Pense em um carimbo com a imagem de um cachorro , quando voc carimba e obtm um desenho de cachorro voc acabou de criar uma instncia da classe e obteve um objeto daquela classe. O novo objeto possuir todas as caractersticas e comportamentos definidos pela classe. (As classes especificam a estrutura e o comportamento (operaes) dos objetos, que so instncias das classes)
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

38

Aqui temos que Bilu um objeto da classe Cachorro. Em termos de POO acabamos de criar uma instncia da classe Cachorro e a chamamos Bilu.Quando criamos uma nova instncia de uma classe dizemos que estamos instanciando a classe.

Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

39

Geralmente em um sistema de mdio porte sero identificados diversas classes que compem o sistema. Neste contexto a UML surgiu como uma proposta de ser uma linguagem para modelagem de dados que usava diversos artefatos para representar o modelo de negcio ; um destes artefatos o diagrama de classes.
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

40

A representao de uma classe usa um retngulo dividido em trs partes:


nome atributos mtodos

Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

41

Lembre-se
Podemos dizer que os diagramas de classes so os principais diagramas estruturais da UML pois ilustram as classes , interfaces e relacionamentos entre elas. Os diagrama se classes ilustram atributos e operaes de uma classe e as restries como que os objetos podem ser conectados ; descrevem tambm os tipos de objetos no sistema e os relacionamentos entre estes objetos que podem ser : associaes e abstraes. Para poder representar a visibilidade dos atributos e operaes em uma classe utiliza-se as seguintes marcas e significados:
1. 2. 3. + pblico - visvel em qualquer classe # protegido - qualquer descendente pode usar - privado - visvel somente dentro da classe
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

42

conceitos do domnio
O diagrama de classes lista todos os conceitos do domnio que sero implementados no sistema e as relaes entre os conceitos. Ele muito importante pois define a estrutura do sistema a desenvolver. O diagrama de classes no surge do nada ele consequncia do prvio levantamento de requisitos , definio de casos de usos e classes. Como exemplo vamos supor que voc tivesse que desenvolver um sistema para automatizar um consultrio dentrio. As etapas bsicas envolvidas seriam:
Levantamento e anlise de requisitos do sistema a ser desenvolvido. Entrevista com o dentista(s) e com as pessoas que trabalham no consultrio Definio dos objetos do sistema : Paciente , agenda , dentista , servio , contrato , consulta , pagamento , etc.. Definio dos atores do sistema : paciente, dentista , secretria Definio e detalhamento dos casos de uso: marcar consulta , confirmar consulta , cadastrar paciente , cadastrar servios , etc. Definio das classes : paciente , dentista , exame , agenda , servio Definir os atributos e mtodos das classes :

Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

43

Aps toda esta anlise voc chega no diagrama de classes do sistema (representado abaixo a ttulo de exemplo ilustrativo)

Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

44

Atributo
Um atributo representa uma propriedade que todos os objetos da classe tm (por exemplo, todos os cachorros tem pelo , orelhas , altura, ,etc. Mas cada objeto ter valores particulares para seus atributos (alguns cachorros so mais baixos , outros so maiores, etc.). Uma classe pode ter qualquer nmero de atributos. Na UML, o nome de um atributo um texto contendo letras e dgitos e algumas marcas de pontuao. UML sugere de capitalizar todas as primeiras letras de cada palavra no nome menos a primeira palavra (ex.: "nome'', "nomeCachorro''). Num modelo, os atributos devem ser de um tipo simples (inteiro, texto, talvez data), no podem conter outros objetos.
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

45

Mtodos
Mtodos so aes que implementam uma operao. Uma classe pode ter qualquer nmero de mtodos e dois mtodos em duas classes podem ter o mesmo nome. Todos os mtodos que vo implementar a operao tem que respeitar exatamente a assinatura dela (mesmo nome, mesmo nmero de atributo, com os mesmo tipos e o mesmo ordem). Um mtodo no pode acrescentar ou cortar um parmetro. Isso seria um violao do polimorfismo. Para mandar a mensagem corretamente, teramos que saber qual a classe do objeto (cada classe tendo mtodo com assinatura diferente). O que possvel, no caso de cortar um parmetro, simplesmente ignor-lo na implementao. [Nicolas Anquetil]
Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com

46

Vous aimerez peut-être aussi