Engenharia de Software 1
05 - Modelagem
Introdu¸c˜
ao `
a UML
Alexandre de Andrade Barbosa
Objetivos
Descrever a importˆ
ancia de projetar/modelar um software
Apresentar a linguagem UML
Modelagem
Introdu¸c˜
ao
Modelagem
Introdu¸c˜
ao
Como podemos nos comunicar sobre programas cada vez maiores
e mais complexos?
C´odigos n˜ao s˜ao a melhor forma de comunica¸c˜ao...
... entre cliente e desenvolvedor
... ou, em alguns casos, entre desenvolvedores
Modelagem
Introdu¸c˜
ao
Modelagem
Introdu¸c˜
ao
Para cada tipo de projeto, um n´ıvel de planejamento.
Diferentes modelos fornecem vis˜oes distintas.
Modelagem
Introdu¸c˜
ao
Modelagem
Introdu¸c˜
ao
Modelos fornecem uma vis˜ao simplificada de um sistema.
Modelos servem para:
visualizar;
descrever estrutura e/ou comportamento;
auxiliar em decis˜oes;
documentar.
Quanto mais diagramas criar melhor meu projeto ser´a?
N˜ao ´e necess´ario criar todos os modelos existentes, e de forma
extremamente detalhada!!!
Modelagem
Introdu¸c˜
ao
Modelos diferentes apresentam o sistema a partir de perspectivas
diferentes:
Perspectiva externa que mostra o contexto ou ambiente do
sistema
Perspectiva comportamental que mostra o comportamento do
sistema
Modelagem
Modelos de contexto
No in´ıcio do desenvolvimento deve-se decidir quais s˜ao os limites
(o contexto) do sistema
o que faz parte o sistema
o que faz parte do ambiente
Modelagem
Modelos de contexto
Modelagem
Modelos de comportamento
Modelos de comportamento s˜ao utilizados para descrever o
comportamento geral de um sistema
Exemplos de modelos de comportamento:
diagrama de fluxo de dados;
m´aquina de estados (ou diagrama de estados).
Tais modelos podem ser usados em conjunto (mais adequado) ou
de maneira isolada
Modelagem
Modelos de comportamento
Muitos sistemas s˜ao dirigidos a dados
muitas entradas e sa´ıdas de dados
poucos eventos externos
Diagramas de fluxo de dados modelam sistemas dirigidos a dados
de modo adequado
Outros sistemas s˜ao dirigidos a eventos
pouco processamento de dados
muitos eventos
Modelagem
Modelos de comportamento
Diagramas de fluxo de dados (DFD) mostram o processamento
fim-a-fim de dados.
DFD ´e um meio de modelagem da an´alise estruturada
Diagrama de fluxo de dados do processamento de um pedido
Modelagem
Modelos de comportamento
Diagramas de estados exibem os estados do sistema (ou de parte
dele) como n´
os, e eventos como arcos
Eventos alteram o estado do sistema
Modelagem
Modelos de comportamento
Diagrama de estados de um forno de microondas simples
Modelagem
Modelos de dados
S˜ao usados para descrever a estrutura l´ogica dos dados
processados pelo sistema
Modelagem
Modelos de dados
Diagrama ER para representa¸c˜ao de dados
Modelagem
Modelos de dados
Modelagem
Modelos de dados
Modelo semˆantico de dados para o sistema LIBSYS (Sommerville)
Modelagem
Modelos de objetos
As linguagens orientadas a objetos s˜ao bastante utilizadas no
desenvolvimentos de software
Modelagem
Modelos de objetos
Hierarquia de classes de usu´ario
Modelagem
Modelos de objetos
Modelagem
Modelos de objetos
Alguns objetos podem ser formados atrav´es da agrega¸c˜ao de
outros objetos
Objeto agregado que representa um curso
Modelagem
Modelos de objetos
Modelagem
Modelos de objetos
A UML ´e uma linguagem de modelagem que possibilita a
representa¸c˜ao do modelos O.O.
Os modelos UML criados devem estar de acordo com as
caracter´ısticas da linguagem de implementa¸c˜ao
Unified Modelling Language (UML)
UML ´e uma linguagem de modelagem, toda linguagem sofre
mudan¸cas ao longo do tempo.
UML 1.4
UML 2.0
Diagrama de classes
Diagrama de classes
Diagrama de objetos
Diagrama de objetos
Diagrama de componentes
Diagrama de componentes
Diagrama de implanta¸
c˜
ao
Diagrama de implanta¸
c˜
ao
-
Diagrama de pacotes
-
Diagrama de estrutura
Diagrama de caso de uso
Diagrama de caso de uso
Diagrama de estados
Diagrama de estados
Diagrama de atividade
Diagrama de atividade
Diagrama de seq¨
uˆ
encia
Diagrama de seq¨
uˆ
encia
-
Diagrama de interatividade
Diagrama de colabora¸
c˜
ao
Diagrama de comunica¸
c˜
ao
-
Diagrama de tempo
Diagramas de estrutura
Descrevem ´ıtens estruturais: classes, componentes, objetos, ...
Fornecem uma representa¸c˜ao dos elementos f´ısicos e conceituais.
Descrevem os elementos de forma est´atica
Ser˜ao descritos os diagramas estruturais:
Diagrama de classe
Diagrama de objeto
Diagrama de componente
Diagramas de estrutura: D. Objeto
Diagramas de comportamento
Descrevem ´ıtens comportamentais: atividades, estados, a¸c˜oes
desempenhadas ...
Fornecem uma descri¸c˜ao de aspectos dinˆamicos do sistema
modelado.
Ser˜ao descritos os diagramas comportamentais:
Diagrama de caso de uso
Diagrama de estados
Diagrama de atividades
Diagramas de comportamento: Diagrama de caso de uso
Diagramas de comportamento: Diagrama de estados
Diagramas de intera¸c˜ao
Descrevem a dinˆamica de troca de mensagens entre objetos.
Fornecem uma descri¸c˜ao de aspectos dinˆamicos do sistema
modelado.
Descreve o comportamento de um objeto em um caso de uso.
Ser˜ao descritos os diagramas de intera¸c˜ao:
Diagrama seq¨
uˆencia
Diagrama comunica¸c˜ao
Os diagramas de seq¨
uˆencia e comunica¸c˜ao s˜ao isom´
orficos.
Diagramas de intera¸c˜ao: Diagrama de seq¨uˆencia
Diagramas de intera¸c˜ao: Diagrama de comunica¸c˜ao
UML
Diagrama de classes - Descreve a estrutura do sistema em termos
de suas classes exibindo seus atributos, opera¸c˜oes e
responsabilidades
Diagrama de objetos - Exibe um conjunto de objetos e seus
v´ınculos, ´e uma instˆancia de um diagrama de classes
Diagrama de componentes - Apresenta as dependˆencias
existentes entre os componentes do sistema
UML
Diagrama de caso de uso - Apresenta as funcionalidades do
sistema e os atores que as realizam ou recebem as respectivas
sa´ıdas
Diagrama de estados - Exibe os poss´ıveis estados de objetos de
uma ´
unica classe
Diagrama de atividade - Modela o fluxo de atividades de um
processo
UML
Diagrama de seq¨
uˆencia - Descreve as intera¸c˜oes com ˆenfase na
ordena¸c˜ao temporal das mensagens
An´alise
Vis˜ao geral de uso da UML na fase de An´alise
Projeto
Ferramentas
ArgoUML:
argouml.tigris.org/
Enterprise Architect:
www.sparxsystems.com.au/
astah community (
⋆
):
http://astah.change-vision.com/en/
product/astah-community.html
Omondo:
www.eclipsedownload.com/product.html
Poseidon:
www.gentleware.com/
Rational Rose:
www-306.ibm.com/software/rational/
Introdu¸c˜ao: Mecanismos gerais
A UML consiste em trˆes tipos de componentes:
blocos de constru¸c˜ao
Introdu¸c˜ao: Mecanismos gerais
Estere´otipo. Estende o significado de um determinado elemento
Existem diversos estere´otipos pr´e definidos
´
E poss´ıvel definir novos estere´otipos
Pode-se classificar um estere´otipo como:
estere´
otipo gr´afico (´ıcone)
estere´
otipo textual (texto entre
<<>>
)
Estereotipos da UML
Introdu¸c˜ao: Mecanismos gerais
Notas explicativas. Utilizadas para esclarecer algum aspecto
relacionado a algum elemento de um diagrama
Introdu¸c˜ao: Mecanismos gerais
Etiquetas valoradas. Define propriedades adicionais para
elementos gr´aficos em UML
{
tag = valor
}
{
tag1 = valor1 , tag2 = valor2 ...
}
{
tag
}
Etiquetas valoradas da UML
Introdu¸c˜ao: Mecanismos gerais
Introdu¸c˜ao: Mecanismos gerais
Restri¸c˜oes. Alteram o significado associado a um elemento
Pode-se definir uma restri¸c˜ao:
de modo informal - utilizando linguagem natural
de modo formal - utilizando OCL (Object Constraint Language)
Introdu¸c˜ao: Mecanismos gerais
Pacotes. Mecanismos utilizados para agrupamento
Introdu¸c˜ao: Mecanismos gerais
Um diagrama de pacotes exibe relacionamentos entre pacotes
Relacionamentos entre pacotes