terça-feira, 24 de março de 2009

Básicos sobre UML - Parte 01




Vou tentar postar algumas coisas que fiz durante a faculdade, pois assim creio que irei ajudar os novos estudantes.

Para iniciar, escolhi um assunto bem gostoso para quem está seguindo para a infeliz área de desenvolvimento: A UML.

Principal referência:
BOOCH, Grady & Rumbaugh, James & Jacobson, Ivar. UML – Guia do usuário. Rio de Janeiro: ed. Campus, 2000.

Vou dividir esse tema em 3 partes. A primeira parte segue abaixo, nos próximos dois posts relacionados a esse assunto, tratarei os diagramas.


1. Introdução

A primeira coisa que precisamos saber a respeito de UML é conhecer o significado dessa sigla. UML significa “Unified Modeling Language” - Linguagem Unificada de Modelagem.
A Linguagem Unificada de Modelagem é uma linguagem gráfica, constituída por um conjunto integrado de diagramas que ajudam no desenvolvimento de sistemas, que proporciona uma padronização para criação de especificações, designs de arquitetura, construções, simulações, testes e documentações.
A UML foi desenvolvida inicialmente para promover a comunicação e aumentar a produtividade no desenvolvimento de sistemas orientados a objeto, mas essa não é sua única utilidade atualmente, sendo que ela atende todos os tipos de desenvolvimento de sistemas.

2. Modelagem

Como na Engenharia Civil, para construirmos uma ponte basta começarmos batendo alguns pregos e lançando um pouco de concreto no local. A ponte poderá, com sorte, ser erguida, mas com certeza não se adequará às normas de segurança exigidas e demorará muito tempo para ser construída. Para isso é necessário um planejamento, uma equipe competente trabalhando no projeto e um rigoroso planejamento.
No desenvolvimento de softwares os problemas são muito parecidos e, se você não está disposto a ter muito retrabalho e muitos gastos, é necessária a utilização da modelagem.
Assim como na engenharia, construímos modelos arquiteturais para auxiliar na visualização de um resultado final, ou até mesmo para cálculos e previsões de efeitos de catástrofes, como um tremor ou, no nosso caso, um problema de comunicação com um banco de dados, por exemplo.
Segundo Booch, Rumbaugh e Jacobson, “um modelo é uma simplificação da realidade”.
É através da modelagem que podemos criar simulações e fazer melhor entendimento do problema como um todo, podemos visualizar o sistema como ele é, ou como deverá ser e, além disso, os modelos servem para documentar o sistema em questão.
Para uma modelagem eficiente, é necessário tomarmos certos cuidados na escolha dos modelos que serão utilizados.

3. Termos e conceitos

Para um melhor entendimento dos diagramas propostos pela UML, precisamos definir alguns conceitos, como classes, dependências, generalização, entre outros.
Em todos os diagramas serão apresentados os relacionamentos entre os itens que compõem esse diagrama. Um relacionamento é uma conexão representada por diferentes tipos de linhas que ligam um item ou mais a outro(s).
Os principais relacionamentos que encontraremos serão: a dependência, a associação e a generalização.

3.1 Classes e objetos
Uma classe é uma forma abstrata de se visualizar algum objeto do mundo real. Um objeto é a forma física/concreta dessa abstração. Todos os objetos são instancias de classes, que por sua vez, são responsáveis por descrever as propriedades e o comportamento daquele objeto.

3.2 Dependência
De acordo com Booch, Rumbaugh e Jacobson, “uma dependência é um relacionamento de utilização, determinando as modificações na especificação de um item”.
Em outras palavras, dependência é um relacionamento entre dois itens, onde um é dependente e o outro independente.
É normalmente representada graficamente com linhas tracejadas que, saindo do item dependente, apontam o item que é independente.

3.3 Generalização
È um relacionamento onde existe um elemento genérico (classe mãe) e tipos mais específicos deste elemento (classes filhos).
Resumindo em outras palavras, as classes filhos herdam todas as peculiaridades da classe mãe, mas mantém suas particularidades.
É representada graficamente com linhas sólidas que apontam para a classe genérica (mãe).

3.4 Associação
É uma conexão entre as classes. É um relacionamento que indica a ligação de objetos de um elemento a objetos de outro elemento.
São representadas nos diagramas por uma linha sólida que é conectada a outro(s) elemento(s) ou a si mesmo.
Em muitas situações é interessante determinarmos a quantidade de objetos que serão associados por uma instancia. Essa determinação é chamada de Multiplicidade.
Essa indicação é feita colocando-se a quantidade dos elementos ao lado das associações correspondentes, como um (1), zero ou um (0..1), muitos (0..*) e um ou mais (1..*), podendo ser indicado pelo numero exato (50, por exemplo).
Uma associação também pode indicar que uma das classes do relacionamento é uma parte, ou está contida em outra classe, colocando-as em um mesmo nível. Esse tipo de associação é chamado de Agregação.
Uma agregação é representada por uma linha sólida com um diamante aberto na extremidade do todo.

Nenhum comentário:

BuscaPé, líder em comparação de preços na América Latina
 
BlogBlogs.Com.Br