Escolar Documentos
Profissional Documentos
Cultura Documentos
Embora a UML defina uma linguagem precisa, ela não é uma barreira para futuros
aperfeiçoamentos nos conceitos de modelagem. O desenvolvimento da UML foi baseado em
técnicas antigas e marcantes da orientação a objetos, mas muitas outras influenciarão a
linguagem em suas próximas versões. Muitas técnicas avançadas de modelagem podem ser
definidas usando UML como base, podendo ser estendida sem se fazer necessário redefinir a sua
estrutura interna.
A UML será a base para muitas ferramentas de desenvolvimento, incluindo modelagem visual,
simulações e ambientes de desenvolvimento. Em breve, ferramentas de integração e padrões de
implementação baseados em UML estarão disponíveis para qualquer um.
A UML integrou muitas ideias adversas, e esta integração acelera o uso do desenvolvimento de
softwares orientados a objetos.
[editar] História
A UML tem origem na compilação das "melhores práticas de engenharia" que provaram ter
sucesso na modelagem de sistemas grandes e complexos. Sucedeu aos conceitos de Booch, OMT
(Rumbaugh) e OOSE (Jacobson) fundindo-os numa única linguagem de modelagem comum e
largamente utilizada. A UML pretende ser a linguagem de modelagem padrão para modelar
sistemas concorrentes e distribuídos.
A UML ainda não é um padrão da indústria, mas esse objetivo está a tomar forma sob os
auspícios do Object Management Group (OMG). O OMG pediu informação acerca de
metodologias orientadas a objetos que pudessem criar uma linguagem rigorosa de modelagem de
software. Muitos líderes da indústria responderam na esperança de ajudar a criar o padrão.
Os esforços para a criação da UML tiveram início em outubro de 1994, quando Rumbaugh se
juntou a Booch na Rational. Com o objetivo de unificar os métodos Booch e OMT, decorrido um
ano de trabalho, foi lançado, em outubro de 1995, o esboço da versão 0.8 do Unified Process -
Processo Unificado (como era conhecido). Nesta mesma época, Jacobson se associou à Rational
e o escopo do projeto da UML foi expandido para incorporar o método OOSE. Nasceu então, em
junho de 1996, a versão 0.9 da UML.
Finalmente em 1997, a UML foi aprovada como padrão pelo OMG (Object Management
Group), um consórcio internacional de empresas que define e ratifica padrões na área de
Orientação a Objetos.
editar
Diagramas da UML 2.0
Diagramas Estruturais
• Diagrama de classes
• Diagrama de objetos
[editar] • Diagrama de componentes
Visão • Diagrama de instalação
Geral • Diagrama de pacotes
da UML •Diagrama de estrutura
[editar] Diagramas Comportamentais
• Diagrama de atividade
Diagramas de Interação (Todos também são
diagramas comportamentais)
• Diagrama de sequência
• Diagrama de Interatividade
• Diagrama de colaboração ou comunicação
• Diagrama de tempo
Elementos
• De estrutura:
o Classe
o Objetos
o Interface
o Componente
o Colaboração
o Nó
• De comportamento:
o Casos de uso
o Iteração
o Máquina de estados
• De agrupamento:
o Pacote
o Modelo
o Subsistema
o Framework
• De anotação:
o Notas
Hierarquia dos diagramas UML
[editar] Relacionamentos
UML Ator
Origem: Wikipédia, a enciclopédia livre.
(Redirecionado de Ator (UML))
Chama-se UML Ator ao estereótipo standard do UML usado para definir o papel que um
utilizador representa relativamente ao sistema informático modelado. Um ator representa um
conjunto coerente de papéis que os usuários de casos de uso desempenham quando interagem
com esses casos de uso. Tipicamente, um ator representa um papel que um ser humano, um
dispositivo de hardware ou até outro sistema desempenha com o sistema. De notar que um
utilizador pode ser uma das seguintes entidades:
• Pessoa;
• Outro sistema informático;
• Equipamento hardware especializado;
• Passagem de tempo
Diagrama de atividade
Origem: Wikipédia, a enciclopédia livre.
[editar] Conceitos
[editar] Composição
Os estados de ação não podem ser decompostos. Além disso, os estados de ação são atómicos,
significando que os eventos poderão ocorrer, mas o trabalho de estado de acção não é
interrompido. O trabalho de estado de ação é geralmente considerado como ocupando um tempo
de execução insignificante.
Interface
Origem: Wikipédia, a enciclopédia livre.
O conceito de Interface é amplo, pode se expressar pela presença de uma ou mais ferramentas
para o uso e movimentação de qualquer sistema de informações, seja ele material, seja ele
virtual. O dicionário define interface como o conjunto de meios planejadamente dispostos sejam
eles físicos ou lógicos com vista a fazer a adaptação entre dois sistemas [1] para se obter um certo
fim cujo resultado possui partes comuns aos dois sistemas, ou seja, o objeto final possui
características dos dois sistemas.
Índice
[esconder]
• 1 Multisignificação de Interface
• 2 Interface na Ciência da
computação
o 2.1 Interface Visual
• 3 Aplicação
• 4 Analogias e Curiosidades
• 5 Referências
• 6 Ver também
Pode ter o significado, na Informática, de interconexão entre dois equipamentos que possuem
diferentes funções e que não se poderiam conectar diretamente, como, p. ex., o modem.[1]
Pode ter o significado, na Física, de superfície que separa duas fases de um sistema.[1]
Pode ter o significado, na Ecologia, de área de fronteira entre regiões adjacentes, e que constitui
ponto em que interagem sistemas independentes de diversos grupos. [1]
O ponto em que há controle entre dois dispositivos hardwares, entre um usuário e um programa
ou sistema operacional, ou entre duas aplicações. No hardware, a interface descreve as conexões
lógicas e físicas utilizadas, como no RS-232-C, sendo considerado em geral sinônimo de porta.
A interface com o usuário se compõe dos meios pelos quais um programa se comunica com o
usuário, incluindo uma linha de comandos, menus, caixas de diálogos, sistema de ajuda on line,
etc. As interfaces com os usuários podem ser classificadas com baseadas em caracteres ( texto ),
baseados em menus ou baseadas em elementos visuais. As interfaces de software são APIs
( Application Program Interfaces ou Interfaces de Programas Aplicativos) e consistem em
códigos e mensagens utilizadas pelos programas para se comunicarem de forma transparente
para o usuário.
[editar] Interface Visual
Uma interface com usuário que recorre ao mouse e imagens de mapa de bits para simplificar
grandemente as operações básicas do computador para os usuários iniciantes. Os recursos típicos
da interface visual são os quadros de advertência, clipboard ou áreas de transferência, os
acessórios, de mesa, a metáfora do desktop, os quadros de dialogo, as setas de paginação, a
possibilidade de utilização de diversas fontes na tela, a equivalência entre conteúdo da tela e a
página impressa e a abertura de várias janelas na tela.
[editar] Aplicação
• Interface do utilizador
• Interface gráfica do utilizador
• Interface, em programação de computadores, é uma definição que
estabelece a fronteira de comunicação entre dois componentes de software.
• Interface de rede
Curiosamente, se no exemplo acima os dois sistemas interfaceados pudessem repetir seu fim
(causar explosão em tempo determinado) várias vezes e existisse um usuário à distância capaz de
reconhecer o padrão temporal das explosões mas desconhecendo a interface dos sistemas, estes
usuário reconheceria os dois sistemas como um só sistema isolado, isto é, sem interface, ou seja,
o usuário reconheceria como um único sistema que é capaz de explodir num determinado tempo
padronizado. Subtende-se disso tudo que o conceito de interface também adentra o campo da
Relatividade visto que depende do observador.
Referências
2. Pacote de software
3. Origem: Wikipédia, a enciclopédia livre.
4. (Redirecionado de Package)
5. Ir para: navegação, pesquisa
6. Um pacote de software é o software empacotado num formato de arquivo para ser
instalado por um sistema gestor de pacotes ou por um instalador autônomo. Em contextos
específicos, um pacote de software também pode ser considerado um conjunto de classes
e interfaces relacionadas.
7. Distribuições Linux geralmente são segmentadas em pacotes, de forma que cada pacote
contém uma aplicação ou um serviço específico.
Classe (programação)
Origem: Wikipédia, a enciclopédia livre.
Orientação a objetos
Objeto
Classe
• Instância
Abstração
Métodos
Atributo
Em orientação a objetos, uma classe é uma estrutura que abstrai
Encapsulamento
um conjunto de objetos com características similares. Uma classe
define o comportamento de seus objetos através de métodos e os Herança
estados possíveis destes objetos através de atributos. Em outros
termos, uma classe descreve os serviços providos por seus objetos
• Herança múltipla
e quais informações eles podem armazenar.
Polimorfismo
Classes não são diretamente suportadas em todas as linguagens, e Outras referências
são necessárias para que uma linguagem seja orientada a objetos.
Classes são os elementos primordiais de um diagrama de classes. Padrões de projeto
UML
Engenharia OO
Índice
[esconder]
• 1 Estrutura da classe
• 2 Encapsulamento
• 3 Herança
• 4 Polimorfismo
• 5 Associação
o 5.1 Agregação
o 5.2 Composição
• 6 Classes abstratas e
concretas
• 7 Ver também
[editar] Encapsulamento
Ver artigo principal: Encapsulamento
Cada linguagem de programação pode possuir limitadores de acesso próprios. Por exemplo, em
Java, o nível de acesso padrão de um membro permite que qualquer classe de seu pacote
(package) possa ser acessado. Em C♯, o limitador de acesso interno (internal) permite que o
membro seja acessado por qualquer classe do Assembly (isto é, da biblioteca ou executável).
No exemplo abaixo, implementado em Java, a classe Pessoa permite o acesso ao atributo nome
somente através dos métodos setNome e getNome.
[editar] Herança
A herança é um relacionamento pelo qual uma classe, chamada de sub-classe, herda todos
comportamentos e estados possíveis de outra classe, chamada de super-classe ou classe base. É
permitido que a sub-classe estenda os comportamentos e estados possíveis da super-classe (por
isso este relacionamento também é chamado de extensão). Essa extensão ocorre adicionando
novos membros a sub-classe, como novos métodos e atributos.
É também possível que a sub-classe altere os comportamentos e estados possíveis da super-
classe. Neste caso, a sub-classe sobrescreve membros da super-classe, tipicamente métodos.
Quando uma classe herda de mais de uma super-classe, ocorre uma herança múltipla. Esta
técnica é possível em C++ e em Python, mas não é possível em Java e C♯, no entanto estas
linguagens permitem múltipla tipagem através do uso de interfaces.
[editar] Polimorfismo
Ver artigo principal: Polimorfismo
[editar] Associação
Uma associação é um vínculo que permite que objetos de uma ou mais classes se relacionem.
Através destes vínculos é possível que um objeto convoque comportamentos e estados de outros
objetos.
No exemplo de associação unária acima, cada pessoa tem um único pai (cardinalidade 1) e
qualquer número de filhos (cardinalidade *). De acordo com a seta de navegação, só é possível
navegar para o pai de cada pessoa. Desta forma cada objeto da classe Pessoa consegue acessar
seu objeto pai, mas não consegue acessar seus objetos filhos.
[editar] Agregação
Tipo de relacionamento com características todo-parte, onde existe um grau de coesão entre o
todo e as partes menos intenso, podendo haver certo grau de independência entre eles.
[editar] Composição
Tipo de relacionamento com características todo-parte, onde existe um alto grau de coesão entre
o todo e as partes, com total grau de dependência entre eles (todo e as partes). Desta forma, se o
todo não existir, as partes também não existirão.
Não há lógica em existir um dedo sem mão, porém pode-se ter uma mão sem um ou mais dedos
Uma classe abstrata é desenvolvida para representar entidades e conceitos abstratos. A classe
abstrata é sempre uma superclasse que não possui instâncias. Ela define um modelo (template)
para uma funcionalidade e fornece uma implementação incompleta - a parte genérica dessa
funcionalidade - que é compartilhada por um grupo de classes derivadas. Cada uma das classes
derivadas completa a funcionalidade da classe abstrata adicionando um comportamento
específico.
Uma classe abstrata normalmente possui métodos abstratos. Esses métodos são implementados
nas suas classes derivadas concretas com o objetivo de definir o comportamento específico. O
método abstrato define apenas a assinatura do método e, portanto, não contém código.
Por outro lado, as classes concretas implementam todos os seus métodos e permitem a criação de
instâncias. Uma classe concreta não possui métodos abstratos e, geralmente, quando utilizadas
neste contexto, são classes derivadas de uma classe abstrata.
Evento (computação)
Origem: Wikipédia, a enciclopédia livre.
Índice
[esconder]
• 1 Exemplos
o 1.1 Eventos de mouse
o 1.2 Eventos de teclado
• 2 Referências
[editar] Exemplos
[editar] Eventos de mouse
Referências