unified modeling language. uml uml - unified modeling language padrão de omg (object management...
TRANSCRIPT
Unified Modeling Language
UML
• UML - Unified Modeling Language• Padrão de OMG (Object Management
Group) desde 1997• É um recurso não proprietário, aberto para a
comunidade.
Objetivos de UML
• Especificar, permitir a visualização, construir e documentar os artefatos de sistemas de software.
• Pode ser usada para modelos de negócio e de outros tipos de sistemas.
• Os modelos gerados são independentes dos métodos e linguagens de programação.
Ferramentas Representativas
• décadas de 60 e 70: – COBOL, FORTRAN, C– técnicas de análise e projeto estruturados
• década de 80 e início de 90:– Smalltalk, Ada, C++, Visual Basic– métodos orientados a objetos de 1a. Geração
• meados/fim da década de 90:– Java, UML, Unified Process
Situação antes da UML
• linguagens orientadas a objetos: desde a década de 60 (Simula)
• métodos de análise e projeto:– entre 1989 e 1994, o número de métodos
aumentou de 10 para mais de 50– “guerra de métodos”– métodos com incorporação de recursos de
outros métodos
Histórico da UML
• Associação de Booch e Rumbaugh (1994) na Rational
• Unified Method 0.8, resultante dos métodos de Booch e OMT (1995)
• Incorporação de Jacobson e sua empresa Objectory na Rational (1995)
• UML 0.9 e 0.91, como linguagem unificada para modelagem (1996)
Histórico da UML
• Request for Proposal (RFP) de OMG• Estabelecimento do consórcio de
organizações para a definição de UML 1.0• Submissão de propostas pelo consórcio
UML e outras empresas (janeiro 1997)
Histórico da UML
• Elaboração de UML 1.1 pelo consórcio ampliado e sua submissão a OMG (setembro 1997)
• Aceitação de UML 1.1 como padrão de OMG (novembro 1997)
Evolução de UML
• A adoção de UML como padrão permite a representação de sistemas que independem do processo utilizado.
• A UML pode ser estendida, sem alterar o seu núcleo.
• Espera-se que seja base para ferramentas de modelagem de sistemas de forma geral, simulação e ambientes de desenvolvimento.
Evolução de UML
• Os seus recursos permitem o seu uso em:– desenvolvimento de sistemas com tecnologia
orientada a objetos– modelagem de negócios– desenvolvimento com componentes– projeto de arquitetura de software– reuso de software e de processos
Método
• Um método possui– representação: é a linguagem para a descrição do
sistema– processo: é a maneira pela qual a representação é
construída– ferramentas: fornecem suporte para o uso do
método.• UML: é a representação e não inclui o processo.
Processo de Engenharia de Software
• A notação somente não é suficiente.• O processo define quem faz o que, quando e
como atingir as metas.• Como usar UML:
– utilizar o processo de métodos existentes e construir os modelos com UML.
• Exemplo de métodos:– Booch, OMT, OOSE, Unified Process
Modelo em UML
• É a representação do sistema através de diversas visões:– visão estática: caso de uso, classe, objeto,
componente e implementação– visão dinâmica: seqüência, colaboração, estado
e atividade• O modelo é constituído por diagramas.
Diagramas de UML
• diagrama de caso de uso: descreve a funcionalidade do sistema na visão do usuário
• diagrama de classes: descreve o vocabulário do sistema através das classes
• diagrama de objetos: descreve as instâncias e suas interligações
Diagramas de UML
• diagrama de componentes: descreve a estrutura física da implementação
• diagrama de implementação: descreve a topologia da estrutura de hardware
• diagrama de seqüência: descreve a comportamento dependente de tempo
Diagramas de UML
• diagrama de colaboração: descreve o comportamento dependente da troca de mensagens
• diagrama de estados: descreve a transição de estados causada pelos eventos
• diagrama de atividade: descreve a seqüência de operações
Diagrama de Caso de Uso
• Elementos: sistema, atores e casos de uso• Relacionamento entre atores: generalização
– exemplo: cliente pode fazer uma compra pessoalmente ou pelo telefone
• Relacionamentos entre casos de uso:– extensão– uso– agrupamento
Diagrama de Caso de Uso
Diagrama de Caso de Uso
• Descrição de caso de uso:– objetivo– início– fluxo de mensagens entre os atores e o caso de
uso– fluxos alternativos – término
Diagrama de Classes/Objetos
• Diagrama de Classes: descreve a visão estática do sistema em termos de classes e relacionamentos.
• Diagrama de Objetos: é um exemplo de Diagrama de Classes, com os seus objetos instanciados.
• Representação: nome, atributos e operações
Diagrama de Classes
Diagrama de Classes/Objetos
Relacionamentos
• associação– associação normal– associação recursiva– papel da associação– associação qualificada– associação ou– associação ordenada– associação como classe– associação ternária
Relacionamentos
• agregação– agregação comum– agregação compartilhada– agregação de composição
• generalização– generalização normal– generalização retrita
• overlapping/disjoint• completa/incompleta
Relacionamentos
• dependência: conexão entre os elementos dependentes e independentes do modelo, do ponto de vista de alteração
• refinamento: relacionamento entre descrição do mesmo elemento em níveis de abstração diferentes
Pacotes
• Pacote é um mecanismo geral para organizar os elementos em grupos que apresentam uma dada semântica.
• Um pacote pode conter outros pacotes.
Pacotes
Pacotes
• O subsistema E depende do subsistema B.• O subsistema C depende dos subsistemas B
e D.• Os subsistemas B, C e E são internos ao
subsistema A.• Todos os subsistemas estão representados
através de pacotes.
Diagrama de Componentes
• Descreve a estrutura dos componentes de software (código).
• A dependência entre os componentes representa que um componente precisa do outro para sua definição completa.
• Tipos de componentes: em tempo de compilação, de ligação e de execução
Diagrama de Componentes
Diagrama de Implementação
• Descreve a topologia física do sistema através de :– estrutura das unidades de hardware
• nós e conexões– componentes de software executados em cada
unidade• componentes e objetos
Diagrama de Implementação
Diagrama de Seqüência
• Representa a interação entre os objetos ao longo do tempo.
• Forma:– de instância: descrição detalhada de um cenário– genérica: descreve todas as alternativas
possíveis em um cenário; inclui condições e repetições
• criação e destruição de objetos
Diagrama de Seqüência
Diagrama de Colaboração
• Representa a interação dos objetos através das ligações entre eles e a seqüência das mensagens trocadas entre eles.
• É apropriado para as interações complexas entre os objetos.
• Auxilia entender a interação, através das ligações entre os objetos.
Diagrama de Colaboração
Diagrama de Estados
• estados e transições• condições na transição• ação e atividade• ação com envio de mensagem• envio de mensagens entre Diagramas de
Estados• sub-estados• indicador de histórico do estado
Diagrama de Estados
Diagrama de Atividade
• Representa o fluxo de atividades.• Elementos: estado de ação, condições,
execução paralela, objetos e sinais• Uso do Diagrama de Atividades:
– representação de atividades realizadas em uma operação
– descrição de caso de uso– descrição de interação entre objetos
Diagrama de Atividade
Elementos Principais