Introdução a UML (Linguagem de Modelagem Unificada)

Post on 17-Apr-2015

127 views 3 download

Transcript of Introdução a UML (Linguagem de Modelagem Unificada)

Introdução a UML(Linguagem de Modelagem

Unificada)

2

Sistemas de Informações

A necessidade é a mãe das invenções ◦ Em conseqüência do crescimento da importância

da informação, surgiu a necessidade de gerenciar informações de uma forma adequada e eficiente e, desta necessidade, surgiram os denominados sistemas de informações

3

Sistemas de Informação

Um SI é uma combinação de pessoas, dados, processos, interfaces, redes de comunicação e tecnologia que interagem com o objetivo de dar suporte e melhorar o processo de negócio de uma organização com relação às informações◦ Vantagens do ponto de vista competitivo

Objetivo principal e final da construção de um SI: adição de valor à organização

4

Sistemas de Software

Um dos componentes de um SI é denominado sistema de software

Compreende os módulos funcionais computadorizados que interagem entre si para proporcionar a automatização de diversas tarefas

Característica intrínseca do desenvolvimento de sistemas de software: complexidade

5

Aumento da complexidade

• Uma analogia...

Sistemas de Software

6

Modelagem de sistemas de software

7

Modelos de Software

Na construção de sistemas de software, assim como na construção de sistemas habitacionais, também há uma gradação de complexidade◦ A construção desses sistemas necessita de um

planejamento inicial

8

Modelos de Software Um modelo pode ser visto como uma

representação idealizada de um sistema que se planeja construir

Maquetes de edifícios e de aviões e plantas de circuitos eletrônicos são apenas alguns exemplos de modelos

9

A princípio, podemos ver a construção 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 comunicação entre as pessoas envolvidas.◦ A redução dos custos no desenvolvimento.◦ A predição do comportamento futuro do sistema.

Entretanto, note o fator complexidade como condicionante dessas vantagens.

Razões para Construção de Modelos

Complexidade Complexidade de software não pode ser evitada!

Elementos responsáveis pela complexidade do software◦ Complexidade do domínio do problema ◦ Dificuldade no gerenciamento do processo de

desenvolvimento◦ A flexibilidade possível em sistemas de software

Mas podemos tratar◦ Decomposição◦ Abstração

Decomposição: Ilusão de Simplicidade

Decomposição Decompor em partes menores e menores,

refinando cada parte independentemente

Satisfazendo, assim, a restrição real do ser humano◦ Para entender qualquer nível de um dado sistema

precisamos compreender um aspecto por vez

Modelagem deve seguir este princípio◦ Vários modelos necessários ◦ Impossível entender de forma completa

Abstração: Dependente do Observador

Abstração• É uma das formas que nós humanos

tratamos a complexidade do mundo• Aspectos irrelevantes ao problema

estudado devem ficar de fora

Realidade Representada

Representação

Realidade Observada

Abstração

Carro Esporte Vermelho

Abstração em Modelos

Abstração cujo propósito é permitir que se conheça algo antes de construí-lo

O modelo omite os detalhes não essenciais tornando a manipulação mais fácil

Necessários durante a construção de softwares complexos

16

Diagramas e Documentação

No contexto de desenvolvimento de software, correspondem a desenhos gráficos que seguem algum padrão lógico.

Podemos também dizer que um diagrama é uma apresentação de uma coleção de elementos gráficos que possuem um significado predefinido.

Diagramas normalmente são construídos de acordo com regras de notação bem definidas.◦ Ou seja, cada forma gráfica utilizada em um diagrama

de modelagem tem um significado específico.

Diagramas permitem a construção de uma representação concisa de um sistema a ser construído. ◦ “uma figura vale por mil palavras”

No entanto, modelos também são compostos de informações textuais.

Dado um modelo de uma das perspectivas de um sistema, diz-se que o seu diagrama, juntamente com a informação textual associada, formam a documentação deste modelo.

Diagramas e Documentação

Modelagem de Software

A modelagem de sistemas de software consiste na utilização de notações gráficas e textuais com o objetivo de construir modelos que representam as partes essenciais de um sistema, considerando-se diversas perspectivas diferentes e complementares

Evolução histórica da modelagem de sistemas

Evolução do Software O rápido crescimento da capacidade

computacional das máquinas resultou na demanda por sistemas de software cada vez mais complexos

O surgimento de sistemas de software mais complexos resultou na necessidade de reavaliação da forma de desenvolver sistemas

Conseqüentemente as técnicas utilizadas para a construção de sistemas computacionais têm evoluído de forma impressionante, notavelmente no que tange à modelagem de sistemas

Evolução do Software

Na primeira metade da década de 90 surgiram várias propostas de técnicas para modelagem de sistemas segundo o paradigma orientado a objetos

Houve uma grande proliferação de propostas para modelagem orientada a objetos◦ diferentes notações gráficas para modelar uma mesma

perspectiva de um sistema◦ cada técnica tinha seus pontos fortes e fracos

Necessidade de um Padrão

Percebeu-se a necessidade de um padrão para a modelagem de sistemas, que fosse aceito e utilizado amplamente

Alguns esforços nesse sentido de padronização, o principal liderado pelo “três amigos”

Surge a UML (Unified Modeling Language) em 1996 como a melhor candidata para ser linguagem “unificadora”

Necessidade de um Padrão

Em 1997, a UML é aprovada como padrão pelo OMG

Desde então, a UML tem tido grande aceitação pela comunidade de desenvolvedores de sistemas.

É uma linguagem ainda em desenvolvimento Atualmente na versão 2.0

UML

UML (Linguagem de Modelagem Unificada) “A UML é a linguagem padrão

para visualizar, especificar, construir e documentar os artefatos de software de um sistema.”

Unificação de diversas notações anteriores

Mentores: Booch, Rumbaugh e Jacobson◦ “Três Amigos”◦ IBM Rational

(www.rational.com)

A UML “A Linguagem de Modelagem Unificada (UML) é uma

linguagem para especificar, visualizar, construir e documentar os artefatos de sistemas de software, bem como para modelar negócios e outros sistemas que não sejam de software”

Iniciou a partir da junção dos métodos desenvolvidos Jim Rumbaugh (OMT – Object Modeling Technique) e Grady Booch (Booch)

UML (Linguagem de Modelagem Unificada) UML é...

◦ uma linguagem visual◦ independente de linguagem de programação.◦ independente de processo de desenvolvimento

UML não é...◦ uma linguagem programação (mas possui versões!)◦ uma técnica de modelagem

A UML é suportada por ferramentas :◦ Rational Rose (IBM), Together (Borland), Visual Paradigm,

Poseidon, Jude, Umbrela, etc....

Ferramentas Poseidon - existe um versão opensource (Community

version) Pacestar UML - Uma versão shareware de uma ferramenta

mais simples. Rational Rose - Cópia demo do (Rational Rose Limited

Edition).(Tem 10 MB)

Dia - http://www.gnome.org/projects/dia/ ArgoUML - http://www.argoUML.tigris.org Jude - http://jude.change-vision.com/jude-web/index.html Umbrello - http://uml.sourceforge.net/download.php Visual Paradigm - http://www.visual-paradigm.com/

Utilizando UML

Utilizando UML UML - linguagem de modelagem unificada

◦ Notação + semântica

Uso da UML

Usada em diversos sistemas

Abrange qualquer característica de um sistema OO, através de seus diagramas

Aplica-se em diferentes fases do processo

Propósitos da UML

A UML é uma linguagem destinada a:◦ Documentar◦ Visualizar◦ Especificar◦ Construir

Documentar Artefatos como requisições de negócios,

modelo de arquitetura, código fonte, modelo de análise, protótipo e outros documentos, pode ser documentados com a UML.

Visualizar No processo de desenvolvimento de

sistemas, é quase impossível a visualização de toda a sua estrutura sem um modelo que o represente. Dessa forma, a UML disponibiliza símbolos gráficos para a representação de artefatos de software

Especificar Especificar significa: construir modelos

precisos, sem ambigüidades e completos. A UML atende todos os requisitos de

especificação dentro de um processo, desde a fase de análise até a fase de testes e implementação do sistema concluído

Construir Na UML é possível realizar um mapeamento

dos modelos gerados, para as linguagens de programação e até mesmo para banco de dados relacionais ou orientados a objetos

Diagramas UML

Diagramas da UML Um diagrama na UML é uma apresentação

de uma coleção de elementos gráficos que possuem um significado predefinido◦ No contexto de desenvolvimento de software,

correspondem a desenhos gráficos que seguem algum padrão lógico

Diagramas da UML Um processo de desenvolvimento que utilize

a UML como linguagem de modelagem envolve a criação de diversos documentos◦ Estes documentos, denominados artefatos de

software, podem ser textuais ou gráficos Os artefatos gráficos produzidos no

desenvolvimento de um SSOO são definidos através dos diagramas da UML

Diagramas da UML 2.0

Diagrama na UML Um diagrama é a apresentação gráfica de

um conjunto de elementos, geralmente representados como gráficos de vértice (itens) e arcos (relacionamentos).

Um diagrama constitui uma projeção de um determinado sistema

Blocos de construção da UML

Itens Relacionamentos

Itens Os itens são blocos de construção da modelagem

orientada a objetos. Existem quatro tipos de itens na UML. São eles:◦ Itens estáticos: representam a estrutura do modelo,

elementos conceituais e físicos (classes, colaborações, caso de uso, etc.)

◦ Itens dinâmicos: definem o comportamento do modelo (interações e estados dos objetos)

◦ Pacotes: são partes organizacionais da UML.◦ Notas: são as partes explicativas da modelo na UML

(comentário e observações de esclarecimentos no modelo

Itens estáticos - Classe Uma classe é um conjunto de objetos

que compartilham os mesmos atributos, operações e relacionamentos.

NotaFiscal

codigonaturezaOperacaocondicaoPagamentotipoPrestServicodataEmissaovalor

Registrar()Recuperar()Cancelar()

Itens estáticos – Colaboração

Uma colaboração é o nome dado à interação entre duas ou mais classes, com o objetivo de fornecer algum comportamento cooperativo. Ocorrem por meio de troca de mensagens entre dois ou mais objetos

Itens estáticos – Caso de uso

Um caso de uso é um documento que descreve os cenários pretendidos para um sistema, com o objetivo de atender às necessidades do usuário:

registrarProdutos

Itens estáticos – Componentes

Um componente é a parte física de um sistema.

NotaFiscal.java

Itens dinâmicos

Os itens dinâmicos representam as partes de um sistema que possam ter alguma alteração. Existem dois tipos principais de itens dinâmicos:◦ Interação◦ Máquina de estados

Itens dinâmicos – Interação

Representa a realização dos processos de um sistema, por meio de troca de mensagem entre objetos. Podem envolver mensagens, seqüências de ações e conexões entre objetos.

Uma interação é representada por uma flecha.

Mensagem

Itens dinâmicos – Máquina de estados

Representa um comportamento que especifica as seqüências de estados pelos quais os objetos passam durante sua existência, de acordo com os eventos atendidos. No exemplo a seguir, temos um estado possível para o objeto “Venda”.

Venda Pendente

Pacotes Os pacotes organizam os modelos criados

na UML. APRESENTAÇÃO REGRA DO NEGÓCIO

CONEXÃO COM BANCO

Notas As notas representam comentários,

observações e esclarecimentos que podem se utilizar para qualquer elemento da UML. No exemplo a seguir, a representação de uma nota informando a última versão de uma classe.

Última versão: 2.0