Leitura Digital - UML
Leitura Digital - UML
MODELAGEM DO SISTEMA
COM A ANÁLISE ORIENTADA
A OBJETOS
Iolanda Cláudia Sanches Catarino
Londrina
Editora e Distribuidora Educacional S.A.
2020
2
© 2020 por Editora e Distribuidora Educacional S.A.
Presidente
Rodrigo Galindo
Conselho Acadêmico
Carlos Roberto Pagani Junior
Camila Braga de Oliveira Higa
Carolina Yaly
Giani Vendramel de Oliveira
Henrique Salustiano Silva
Juliana Caramigo Gennarini
Mariana Gerardi Mello
Nirse Ruscheinsky Breternitz
Priscila Pereira Silva
Tayra Carolina Nascimento Aleixo
Coordenador
Henrique Salustiano Silva
Revisor
Rogério Colpani
Editorial
Alessandra Cristina Fahl
Beatriz Meloni Montefusco
Gilvânia Honório dos Santos
Mariana de Campos Barroso
Paola Andressa Machado Leal
ISBN 978-65-87806-19-8
CDD 005
____________________________________________________________________________________________
Raquel Torres – CRB 6/2786
2020
Editora e Distribuidora Educacional S.A.
Avenida Paris, 675 – Parque Residencial João Piza
CEP: 86041-100 — Londrina — PR
e-mail: editora.educacional@kroton.com.br
Homepage: http://www.kroton.com.br/
3
MODELAGEM DO SISTEMA COM A ANÁLISE ORIENTADA A
OBJETOS
SUMÁRIO
Análise e Desenvolvimento de Software Orientado a Objetoss_______ 05
4
Análise e Desenvolvimento de
Software Orientado a Objetos
Autoria: Iolanda Cláudia Sanches Catarino
Leitura crítica: Rogério Colpani
Objetivos
• Conhecer e compreender a evolução dos
paradigmas da análise e desenvolvimento de
software.
5
1. Evolução da análise e desenvolvimento de
software
6
A análise estruturada, no início da década de 1970, tem como foco os
elementos processos e dados em estruturas separadas, abstraindo o
mundo real, a partir de processos e fluxos de dados com detalhamento
top-down, ou seja, do nível macro para os menores detalhes. Diante da
demanda de mercado por sistemas de softwares complexos e robustos,
a abordagem da análise estruturada trouxe a ideia da documentação
do sistema, a partir de diagramas com a perspectiva em processos e
depósitos de dados, destacando o Diagrama de Fluxo de Dados (DFD),
contudo, a programação era implementada de forma modular com
refinamentos sucessivos, acarretando problemas de decomposição
funcional.
7
colaborativa, resultando nas funcionalidades do sistema de software.
Segundo Bezerra (2014):
8
Os métodos de modelagem orientados a objetos suportam os mesmos
princípios e conceitos básicos da orientação a objetos, consistindo em
um conjunto de técnicas de modelagem aplicadas, principalmente,
às atividades de requisitos e análise e projeto de um processo de
desenvolvimento de software, com um propósito especifico para
representarem modelos estáticos e dinâmicos do sistema, especificados
graficamente por diagramas, na maioria, ou de forma descritiva. Há
vários métodos de desenvolvimento orientados a objetos que se
destacaram na literatura. Veremos, a seguir, uma descrição sucinta de
alguns métodos orientados a objetos que se destacaram.
9
é descrita por modelos e diagramas. O método contempla técnicas de
modelagem aplicadas às fases de análise e projeto, nas perspectivas
estática e dinâmica, a partir de modelos lógicos e físicos. A principal
técnica de modelagem estática do método é o diagrama de classes.
para modelar a perspectiva dinâmica do software, o método abrange o
diagrama de máquina de estados, o diagrama de interação e o diagrama
de processos.
10
modelagem é o modelo de objetos, não particionado, complementado
com o modelo de especificação de classe-objeto e dos diagrama de
estado de objeto e do diagrama de serviço.
11
2. Paradigma orientado a objetos
12
mudanças pontuais dos objetos, que não acarreta a propagação
descontroladas por todo o software.
13
sobre a qual uma coisa é analisada: o que é importante em um contexto
pode não ser importante em outro. (BEZERRA, 2014, p. 8)
14
nenhum atributo”. Para Guedes (2018), os atributos representam as
características relevantes de uma classe que costumam variar de um
objeto para outro, permitindo diferenciar os objetos da mesma classe.
Uma operação descreve uma ação que o próprio objeto executa ou uma
ação que o objeto pode executar, a partir do disparo de um evento, ou
seja, é uma ordem que faz o objeto reagir decorrente do acontecimento
de um evento, sendo compartilhada por todos os objetos da mesma
classe. Na definição de Booch, Jacobson e Rumbaugh (2006, p. 51), uma
operação é “uma abstração de algo que pode ser feito com um objeto e
que é compartilhado por todos os objetos dessa classe. Uma classe pode
ter qualquer número de operações ou até não ter nenhuma operação”.
15
Figura 1 – Classes aluno e funcionário
16
Considere como exemplo um objeto do tipo trem que, num instante
de tempo (t1), encontra-se no estado repouso e, a partir de um evento
disparado, como, por exemplo, um botão acionado por uma ação
humana, o objeto reage e muda seu estado para movimento, no instante
de tempo seguinte (t2).
17
(1997, p. 4), o conceito de herança é “o compartilhamento de atributos e
operações entre classes com base em um relacionamento hierárquico.
Uma classe pode ser definida de forma abrangente e depois refinada em
sucessivas subclasses mais definidas”.
18
O conceito de polimorfismo significa que a mesma operação pode
atuar de diversas formas em classes distintas. Uma operação
polimórfica possui o mesmo nome em classes distintas, mas em cada
classe o método implementado é diferente. O polimorfismo está
associado ao conceito de herança. Para Guedes (2018), o polimorfismo
consiste na redeclaração de operações herdadas por uma classe,
que são semelhantes na nomenclatura, contudo, diferem de alguma
forma da implementação utilizada na superclasse, sendo, assim,
necessário reimplementá-las na subclasse. Conforme Bezerra (2014),
o polimorfismo refere-se à capacidade de duas ou mais classes
responderem à mesma mensagem, cada uma de uma forma, ou seja,
um objeto pode enviar a mesma mensagem para objetos semelhantes,
mas os objetos receptores respondem de maneiras distintas.
19
Figura 3 – Exemplo de polimorfismo
Referências Bibliográficas
BEZERRA, Eduardo. Princípios de análise e projeto de sistemas com UML. 3. ed.
Rio de Janeiro: Elsevier, 2014.
BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML: guia do usuário. 2. ed.
Rio de Janeiro: Campus, 2006.
GUEDES, Gilleanes T. A. UML: uma abordagem prática. 3. ed. São Paulo: Novatec,
2018.
RUMBAUGH, James et al.Modelagem e projetos baseados em objetos. Rio de
Janeiro: Campus, 1997.
20
Linguagem de Modelagem
Unificada (UML): modelagem
comportamental e estrutural de
software
Autoria: Iolanda Cláudia Sanches Catarino
Leitura crítica: Rogério Colpani
Objetivos
• Conhecer a Linguagem de Modelagem Unificada
(UML) para o desenvolvimento de software
orientado a objetos.
21
1. Visão Geral da Linguagem de Modelagem
Unificada
22
A UML contempla uma representação gráfica para os vários elementos
que permitem representar os conceitos do paradigma orientado a
objetos, a partir de uma sintaxe e uma semântica. Segundo Bezerra
(2014, p. 15), “a sintaxe de um elemento corresponde à forma
predeterminada de desenhar o elemento. A semântica define o que
significa o elemento e com que objetivo ele deve ser utilizado”.
23
A UML 2.0 abrange as técnicas de modelagem classificadas em
estrutural e comportamental. As técnicas de modelagem estruturais
demonstram a estrutura dos elementos, a partir da identificação
dos objetos, representando a modelagem com a visão estática do
sistema. As técnicas de modelagem comportamentais representam
o comportamento e a interação entre os elementos do sistema,
representando a modelagem com a visão dinâmica do sistema. A
perspectiva de interação representa um subgrupo dos diagramas
comportamentais, que mostra a interação de como os objetos
do sistema agem internamente para apoiarem a realização das
funcionalidades representadas pelos casos de uso, conforme ilustra a
Figura 1 a seguir.
24
A UML não faz grande distinção entre a modelagem das fases de análise
e projeto de um processo de desenvolvimento de software. A atividade
de projeto é uma extensão refinada dos diagramas elaborados na fase
de análise, com detalhes de implementação. A seguir, será apresentada
uma visão geral das técnicas de modelagem comportamentais e
estruturais da UML.
25
candidato, manter currículo, manter instituição de ensino, realizar inscrição
para vaga, realizar entrevista e emitir contrato de estágio.
26
representando os métodos, algoritmos, ou até mesmo, um processo
completo, concentrando-se na representação do fluxo de controle e de
objetos que participam de uma atividade.
27
elemento, a partir de um conjunto finito de transições de estado que
expressam o comportamento de um caso de uso ou de uma instância de
uma classe, por exemplo.
28
(2018), o diagrama de sequência descreve a ordem temporal em que
as mensagens são trocadas entre os objetos envolvidos na execução
de um processo que representa um caso de uso, bem como no ator
responsável pela interação com os objetos.
29
era conhecido como o diagrama de colaboração. Segundo Guedes
(2018), o diagrama de comunicação complementa o diagrama de
sequência, concentrando-se na representação de como os elementos
do diagrama estão vinculados e a ocorrência das mensagens que esses
elementos trocam entre si durante a execução de um processo, não se
preocupando com a temporalidade do processo.
30
interação, que contém a representação completa de qualquer tipo
de diagrama de interação; e os quadros de ocorrência de interação,
que fazem uma referência a um diagrama de interação, contudo não
apresentam seu detalhamento. Segundo Guedes (2018), o diagrama de
visão geral de interação demonstra uma visão geral de um sistema ou
processo, envolvendo vários subprocessos que interagem entre si, a
partir de um fluxo, similar ao diagrama de atividades, utilizando quadros
no lugar dos nós de ação.
31
1.1.7 Diagrama de tempo
32
1.2.1 Diagrama de pacotes
33
1.2.2 Diagrama de classes
34
1.2.3 Diagrama de objetos
35
A Figura 12 ilustra um diagrama de estrutura composta, considerando
a colaboração realizar entrevista com as instâncias – funcionário, vaga,
candidato, contrato e entrevista, que cooperam para realizar a tarefa.
36
A Figura 13 ilustra um exemplo do diagrama de componentes, com os
componentes de software pessoa e candidato e as três interfaces do
componente candidato.
37
A Figura 14 representa a associação entre o nó do tipo dispositivo,
hardware do candidato, com os nós do tipo ambiente de execução
servidor de comunicação, servidor firewall, servidor de aplicação e servidor
de BD.
38
Figura 15 – Exemplo de diagrama de perfil
Referências Bibliográficas
39
Modelagem comportamental
da análise com a Linguagem de
Modelagem Unificada (UML)
Autoria: Iolanda Cláudia Sanches Catarino
Leitura crítica: Rogério Colpani
Objetivos
• Compreender as principais técnicas de modelagem
comportamentais da UML para documentar a fase
de análise de um processo de desenvolvimento de
software.
40
1. Diagrama de casos de uso
41
sistema, subsistema ou classe, para que os usuários possam entender
como utilizar esse elemento e os desenvolvedores possam implementá-
lo” e representa os aspectos dinâmicos do sistema, mostrando um
conjunto de casos de uso, atores e seus relacionamentos. De acordo
com Guedes (2018), o diagrama de casos de uso representa uma visão
externa das funcionalidades do sistema, sem demonstrar a forma como
tais funcionalidades são implementadas, a partir da indicação dos atores
que interagem com os casos de uso. Para Bezerra (2014), o Modelo de
Casos de Uso (MCU):
42
representados por símbolos de bonecos magros, identificados
com um nome que representa qual o papel que o ator assume no
contexto do sistema, sendo que cada ator deve representar um
único papel.
43
A Figura 1 ilustra um exemplo de diagrama de casos de uso com a
indicação de seus elementos. O elemento indicado com o número 1
representa a fronteira do sistema. O elemento 2 representa o ator
coordenador. O elemento 3 representa um caso de uso nomeado como
manter evento de extensão. O elemento 4 representa um relacionamento
do tipo generalização de casos de uso, já o elemento 5 representa
um relacionamento do tipo generalização de atores. O elemento 6
representa um relacionamento de dependência entre casos de uso do
tipo inclusão; e o elemento 7 indica um relacionamento de dependência
do tipo extensão.
44
2. Diagrama de atividades
45
por um retângulo grande com bordas arredondadas, com um
nome que descreve a atividade na perspectiva de execução do
sistema, geralmente, usa-se um verbo no infinitivo.
46
uma seta, podendo conter uma descrição, uma condição de guarda
ou uma restrição.
47
Figura 2 – Exemplo de diagrama de atividades e seus elementos
48
por meio de um conjunto de transições de estados realizadas entre
os estados finitos de objetos de uma classe, de um caso de uso, ou
mesmo de sistema completo. Geralmente, o diagrama é adotado nas
fases de análise e projeto de desenvolvimento de um software, que
é recomendável que seja utilizado para documentar a mudança de
estados dos objetos de classes com estados representativos.
49
de um objeto para outro, sendo uma transmissão ou informação
unidirecional que acontece em certo momento.
50
losango com duas ou mais transições, cada uma acompanhada
pela descrição da condição de guarda entre colchetes.
51
O elemento 1 representa o estado inicial, que indica o primeiro estado
que os objetos assumem. O elemento 2 representa o estado realizando
inscrição, com a indicação de uma transição de estado, representada
pelo número 3, para um pseudoestado de escolha, indicado pelo
elemento 4. Por fim, o elemento 5 representa o estado final, indicando o
final do ciclo da máquina de estados.
4. Diagrama de sequência
52
mostra objetos distribuídos no eixo X e mensagens, em ordem crescente
no tempo, no eixo Y. (BEZERRA, 2006, p. 243)
53
extremidade. A troca de mensagens pode acontecer entre os
elementos: ator e ator, indica uma comunicação entre os atores;
ator e objeto, geralmente o ator provoca um evento, enviando
uma mensagem que dispara uma operação, contudo, o ator
pode simplesmente transmitir uma informação sem disparar
uma operação; objeto e objeto, indica o envio de uma mensagem,
disparando uma operação, sendo que um objeto pode enviar
uma mensagem para si mesmo, denominada de autochamada; e
objeto e ator, que indica o retorno de uma mensagem com o seu
resultado. As mensagens de retorno são representadas por uma
linha tracejada com a seta na extremidade, apontando para o
elemento que recebe a resposta.
54
pelo objeto Tela Inscrição para o objeto ControladorInscricao, é uma
mensagem síncrona que dispara a operação carregarEvento( ).
55
fim de identificar a descrição do fragmento e seu operador de interação,
que define o tipo de fragmento.
Referências Bibliográficas
56
Modelagem estrutural da análise
com a Linguagem de Modelagem
Unificada (UML)
Autoria: Iolanda Cláudia Sanches Catarino
Leitura crítica: Rogério Colpani
Objetivos
• Compreender as principais técnicas de modelagem
estruturais da UML para documentar a fase de
análise de um processo de desenvolvimento de
software.
57
1. Diagrama de pacotes
58
A Figura 1 exemplifica um diagrama de pacotes, demonstrando o
conteúdo e as dependências entre os pacotes. É ilustrado um pacote
nomeado de evento, identificado pelo número 1, composto pelos
pacotes Usuario e negocio, sendo que o pacote Usuario contém as classes
empresa, Funcionario, visitante, participante e InstituiEensino, e o pacote
negocio depende de algum elemento do pacote usuário, identificado pelo
número 2, que representa o relacionamento de dependência entre os
dois pacotes. A figura ainda representa a dependência entre os pacotes
evento e curso, em que o pacote curso contém os pacotes Formacao e
Extensao, indicado pelo ícone de pacote, identificado pelo número 3,
sendo outra forma de exibir o agrupamento de pacotes.
2. Diagrama de classes
59
é considerada a principal técnica de modelagem estrutural da UML, e
é utilizada durante a maior parte do desenvolvimento iterativo de um
software orientado a objetos.
2.1 Classes
60
representam os dados do objeto, sendo nomeados por substantivos ou
expressões que representam alguma propriedade da classe, tipicamente
em letra minúscula, e, para palavras compostas, usa-se concatená-las,
sendo que, a partir da segunda palavra, inicia-se com letra maiúscula,
por exemplo, estadoCivil e razaoSocial. Na terceira parte, são declaradas
as operações que correspondem às ações dos objetos, nomeadas por
um verbo ou uma locução verbal breve, usando a mesma convenção
de letras minúsculas e maiúsculas dos atributos, como, por exemplo,
criarCliente e validarCpf.
61
• Protegida: é representada pelo símbolo de sustenido (#) e indica
que além dos objetos da própria classe, os objetos das subclasses
também podem ter acesso ao objeto da superclasse.
62
especificando as características e responsabilidades de cada
objeto.
2.2 Relacionamentos
63
Figura 3, sendo: o número 1 em vermelho, indica o papel que os
objetos das classes Professor e MaterialDidatico assumem nessa
associação; o número 2 indica o nome da associação; e o número 3
indica a direção da leitura da associação.
64
A definição da multiplicidade em uma associação depende de
pressupostos e das regras de negócio, em conformidade com o contexto
do domínio do sistema. Segundo Bezerra (2014, p. 114), “as associações
permitem representar a informação dos limites inferior e superior da
quantidade de objetos aos quais outro objeto pode estar associado.
Esses limites são chamados de multiplicidade na terminologia da UML”.
Assim, a multiplicidade determina o número mínimo e máximo de
objetos envolvidos em uma associação. O Quadro 1 a seguir, representa
as possíveis multiplicidades e sua notação.
65
Figura 4 – Exemplo de associação reflexiva
66
Figura 6 – Exemplo de associação ternária
67
A Figura 8 exemplifica uma associação do tipo agregação, conhecida
como associação Todo-Parte. Demonstra que as informações de um
objeto (objeto-todo) precisam ser complementadas pelas informações
contidas nos objetos da outra classe (objetos-partes) relacionada,
representando que ambos os objetos das classes podem viver de
forma independente, ou seja, não existe uma ligação forte entre eles,
contudo, são partes de um único todo. A notação da agregação é
representada por um losango na extremidade da classe que contém
o objeto-todo. O exemplo a seguir, demonstra que um objeto país é
composto por nenhum ou vários objetos estados, sendo que um país
pode ser registrado sem vínculo com os estados, ou seja, não existe uma
dependência total entre os objetos, contudo, para registrar um objeto
estado, precisa referenciar a qual país pertence.
68
é composto por nenhum ou muitos objetos itens de peça, ou seja,
o objeto orçamento pode existir sem nenhum objeto itens de peça,
assim, não existe um vínculo forte entre os objetos Todo-Parte, sendo
uma associação do tipo agregação, representada pelo número 2, em
vermelho.
69
Figura 10 – Exemplo de generalização
70
atributos e operações comuns aos objetos cliente físico e cliente jurídico
na superclasse Pessoa, e os atributos e operações específicas em cada
subclasse ClienteFisico e ClienteJuridico.
Referências Bibliográficas
BEZERRA, Eduardo. Princípios de análise e projeto de sistemas com UML. 3. ed.
Rio de Janeiro: Elsevier, 2014.
BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML: guia do usuário. 2. ed.
Rio de Janeiro: Campus, 2006.
GUEDES, Gilleanes T. A. UML: uma abordagem prática. 3. ed. São Paulo: Novatec,
2018.
71
Bons estudos!
72