Este documento introduz os principais conceitos da UML, incluindo visões, modelos de elementos, relacionamentos e diagramas. A UML é uma linguagem padrão utilizada para modelagem de sistemas de software.
Este documento introduz os principais conceitos da UML, incluindo visões, modelos de elementos, relacionamentos e diagramas. A UML é uma linguagem padrão utilizada para modelagem de sistemas de software.
Este documento introduz os principais conceitos da UML, incluindo visões, modelos de elementos, relacionamentos e diagramas. A UML é uma linguagem padrão utilizada para modelagem de sistemas de software.
Este documento introduz os principais conceitos da UML, incluindo visões, modelos de elementos, relacionamentos e diagramas. A UML é uma linguagem padrão utilizada para modelagem de sistemas de software.
Baixe no formato PPTX, PDF, TXT ou leia online no Scribd
Fazer download em pptx, pdf ou txt
Você está na página 1de 61
Introdução à Engenharia de Software
Engenharia de Software I
Análise Introdução à Engenharia de Software
A Linguagem UML Introdução à Engenharia de Software A Linguagem UML
A modelagem é um dos conceitos
importantes para o desenvolvimento de software.
Um modelo cria uma camada de abstração
do que estamos querendo modelar, focando apenas no que é importante. Introdução à Engenharia de Software A Linguagem UML
A UML é uma linguagem utilizada para a
criação de modelos.
Ela é uma linguagem baseada em
diagramas. Introdução à Engenharia de Software A origem da UML
Não havia um padrão para se modelar os
conceitos de um sistema.
Houve uma tentativa de padronizar os
processos e as linguagens de modelagem.
Isso deu origem ao processo unificado - UP
e a UML. Introdução à Engenharia de Software A origem da UML
Três processos deram origem ao UP e UML:
Booch; OMT; OOSE/Objectory;
A junção do que há de melhor nesses 3
processos deu origem a UML e o UP. Introdução à Engenharia de Software Definição da UML
A UML é uma forma de comunicação
padrão que é aceita e exigida por muitas organizações.
A UML é dividida em:
Visões; Modelos de elementos; Mecanismos Gerais; Diagramas; Introdução à Engenharia de Software Visões
Uma visão mostra um aspecto diferente do
sistema que está sendo modelado.
Normalmente é composta por diversos
diagramas que focam os aspectos particulares de um sistema. Introdução à Engenharia de Software Visões
As principais visões da UML são:
Visão de casos de uso; Visão Lógica; Visão de Componentes; Visão de Concorrência; Visão de organização; Introdução à Engenharia de Software Visão de casos de uso
Descreve o comportamento do sistema, a partir
da definição de como o sistema se comportará a partir da interação com os atores externos que o utilizarão. Isso está diretamente ligado ao diagrama de casos de uso. Introdução à Engenharia de Software Visão Lógica
Descreve como o comportamento será
implementado e os mecanismos que serão necessário para que o sistema funcione.
A parte estática da visão lógica é descrita por
diagrama de classes e de objetos. A parte dinâmica é descrita por diagramas de estado, sequência, colaboração e atividade. Introdução à Engenharia de Software Visão de Componentes
Descreve a divisão da implementação em
módulos, demonstrando suas dependências.
Essa visão está diretamente ligado ao diagrama
de componentes. Introdução à Engenharia de Software Visão de Concorrência
Descreve o sistema sob a perspectiva de
divisão em processos e processadores, indicando se haverá execuções em paralelo, detalhando a comunicação e a concorrência existente no sistema.
Essa visão pode ser descrita pelos diagramas
dinâmicos. Introdução à Engenharia de Software Visão de Organização
Descreve a organização física do sistema,
indicando os computadores, periféricos e suas conexões entre si.
Essa visão é ligada aos diagramas de
desdobramento. Introdução à Engenharia de Software Modelo de elementos
Eles representam as definições comum
existentes na linguagem, tais como: Classes; Objetos; Mensagens; Atributos; Relacionamentos; Introdução à Engenharia de Software Classe
As são representações abstratas de um
conceito.
Na UML as classes são representadas por um
retângulo que podem ser dividido em até 3 compartimentos: Nome; Atributos; Operações; Introdução à Engenharia de Software Classe
Em um sistema sua identificação é feita
através de uma análise de especificação Requisitos.
A notação de classes da UML é independente
da linguagem a ser utilizada. Introdução à Engenharia de Software Exemplo de Classe Introdução à Engenharia de Software Classe
A figura anterior exibe um exemplo de classe,
onde: O nome da classe é Pessoa; Ele possui diversos atributos (nome, e-mail, telefone, celular, login e senha); Na classe existe apenas uma operação (salvar); Introdução à Engenharia de Software Objetos
Os objetos representam instâncias de uma
classe.
Objetos representam coisas reais associados ao
conceito modelado. Introdução à Engenharia de Software Objetos Introdução à Engenharia de Software Estado
Os objetos normalmente possuem um estado.
Um estado representa o resultado das
operações executadas no objeto, sendo normalmente determinado pelos valores de seus atributos e ligações existentes com outros objetos. Introdução à Engenharia de Software Exemplo de Estado Introdução à Engenharia de Software Exemplo de Estado
A figura anterior apresenta dois estados
relacionados a um objeto livro. Um livro pode estar livre ou emprestado. Para mudar de livre para emprestado é necessário que o evento empréstimo seja realizado. Para mudar de emprestado para livre, é necessário que o evento devolução aconteça. Introdução à Engenharia de Software Pacotes
Um pacote é um agrupamento de itens,
utilizado para fins de organização.
Esses agrupamentos são feitos para se manter
juntos elementos que possuem algum tipo de relação entre si. Introdução à Engenharia de Software Componentes
Um componente é a representação de uma
parte do sistema.
Isso pode ser um código na linguagem fonte
ou código executável. Introdução à Engenharia de Software Componentes
Imagine um sistema feito em Java. Cada
arquivo .class pode ser considerado um componente, assim como qualquer arquivo .java.
O uso desse tipo de elemento está diretamente
associado ao projeto de um software. Introdução à Engenharia de Software Exemplo de Componentes Introdução à Engenharia de Software Relacionamentos
Os relacionamentos permitem a ligação de
classes e objetos entre si, estabelecendo uma relação entre eles.
Essas ligações podem assumir os seguintes
tipos: Associação; Generalização; Dependência; Introdução à Engenharia de Software Associação
Uma associação cria uma conexão entre as
classe ou entre objetos das classes.
Uma associação entre classes indica que
qualquer objeto de uma classe terá uma conexão com um objeto da outra classe. Introdução à Engenharia de Software Associação Simples
A associação simples é a forma mais comum
de uma associação.
Ela é representada por uma linha ligando duas
classes.
Essa linha pode possuir uma seta indicando
direção. Introdução à Engenharia de Software Exemplo de Associação Simples Introdução à Engenharia de Software Associação com nomeação dos papéis e multiplicidades Introdução à Engenharia de Software Auto-associação e especificação do nome da associação Introdução à Engenharia de Software Agregação
A agregação é uma associação que indica a
relação todo/parte.
Um dos itens selecionados é o todo na relação
e o outro é uma parte.
Os nomes da associação caso fossem
utilizados deveriam ser “tem”, “contém”, “faz parte.” Introdução à Engenharia de Software Exemplo de agregação Introdução à Engenharia de Software Composição
Nesse tipo de associação existe um
relacionamento forte entre os integrantes: A parte não vive sem o todo.
No exemplo a seguir temos modelado que um
sócio contém dependentes. Dessa, está implícito que a exclusão de um sócio, implica na exclusão de todos os seus dependentes. Introdução à Engenharia de Software Exemplo de Composição Introdução à Engenharia de Software Generalização
Uma generalização indica que um elemento
herdará todos os atributos e operações de um outro elemento, podendo ainda incluir comportamento adicional.
Na figura a seguir podemos notar que um
projeto possui um Cliente, que é a classe genérica. Um Cliente pode ser tanto uma pessoa Física como uma Pessoa Jurídica. Introdução à Engenharia de Software Exemplo de Generalização Introdução à Engenharia de Software Dependências
A dependência é uma relação mais fraca entre os
elementos, que indica que uma alteração em um elemento pode indicar uma mudança de comportamento em um outro.
A figura a seguir mostra que a classe Dependente
possui um método salvar que possui um parâmetro do tipo conexão. Logo, uma alteração no tipo conexão pode causar uma mudança no comportamento de Dependente. Introdução à Engenharia de Software Exemplo de Dependências Introdução à Engenharia de Software Notas
Na UML existem informações adicionais que
são associados aos modelos.
Embora a UML tenha muita semântica
associada as representações, não é possível modelar tudo.
Dessa forma, uma nota pode ajudar a detalhar
certas informações. Introdução à Engenharia de Software Exemplo de Notas em um diagrama Introdução à Engenharia de Software Diagramas
Na UML existem diversos gráficos que
descrevem o que existe em uma visão.
Esses gráficos são os diagramas, utilizados
para criar as visões do sistema.
Existem 9 tipos de diagramas.
Introdução à Engenharia de Software Diagrama de Casos de uso
O diagrama de casos de uso exibe os
requisitos funcionais de um sistema.
Nesse diagrama existem atores, que
representam papéis no sistema e casos de uso, que representam as funcionalidades existentes.
A ligação entre atores e casos de uso indica
que há comunicação entre eles. Introdução à Engenharia de Software Diagrama de Casos de uso Introdução à Engenharia de Software Diagrama de Classes
O diagrama de classes está associado a visão
estática de um sistema.
Um sistema real pode conter um grande
número de classes, sendo necessário a criação de diversos diagramas, cada um focando em um aspecto específico. Introdução à Engenharia de Software Diagrama de Objetos
O diagrama de objeto descreve uma instância
específica de um diagrama de classe. Eles servem para esclarecer aspectos importantes de diagramas complexos.
Eles são semelhantes aos diagramas de classes,
porém é importante frisar que ele exibe as instâncias das classes, com sua configuração de execução momentânea. Introdução à Engenharia de Software Exemplo de Diagrama de Objetos Introdução à Engenharia de Software Diagrama de Estado
O diagrama de estados descreve o
comportamento dinâmico de uma instância de uma classe, normalmente representado por seu ciclo de vida.
Esse diagrama é importante para descrever
classes que possuem objetos com ciclos complexos. Introdução à Engenharia de Software Exemplo de Diagrama de Estado Introdução à Engenharia de Software Diagrama de Sequência
O diagrama de sequência mostra a troca de
mensagens entre objetos durante a implementação de certos comportamentos.
Seu foco é mostrar as interações entre objetos,
ao invés de mostrar apenas o comportamento interno do objeto. Introdução à Engenharia de Software Exemplo de Diagrama de Sequência Introdução à Engenharia de Software Diagrama de Colaboração
O diagrama de colaboração pode ser
considerado como uma outra forma de exibição do diagrama de sequência.
No diagrama de colaboração é enfatizado a
troca de mensagens entre os objetos e não a sua ordem temporal. Introdução à Engenharia de Software Diagrama de Atividades
O diagrama de atividades é uma variante do diagrama
de estados na UML.
O diagrama de atividades exibem as ações associadas a
um roteiro, possibilitando detalhar os executores envolvidos e os produtos de trabalhados gerados.
Podem ser utilizados para detalhar etapas de um
processo, descrição de fluxos de um caso de uso e qualquer outro roteiro que exija a informação das ações associadas. Introdução à Engenharia de Software Exemplo de Diagrama de Atividades Introdução à Engenharia de Software Diagrama de Componentes
O diagrama de componentes exibe a relação entre as
partes que compõem um sistema e a organização dos módulos.
Eles podem representar classes, pacotes e subsistemas.
Esse tipo de diagrama está muito associado a exibição
da arquitetura de um sistema, deixando claro como ele está estruturado, além de demonstrar sua organização e dependência. Introdução à Engenharia de Software Exemplo de Diagrama de Componentes Introdução à Engenharia de Software Diagrama de Implantação
O diagrama de implantação exibe a arquitetura
de execução de um sistema, detalhando os componentes físicos que executam no ambiente de execução utilizado.
Nesse diagrama é possível detalhar que
módulo funcionará em qual dispositivo e como será sua comucação com outros dispositivos. Introdução à Engenharia de Software Exemplo de Diagrama de Implantação