Aula 5 - ANÁLISE DE SISTEMAS
Aula 5 - ANÁLISE DE SISTEMAS
Aula 5 - ANÁLISE DE SISTEMAS
ANÁLISE DE SISTEMAS
AULA 5
https://univirtus.uninter.com/ava/web/roa/ 1/27
04/09/2022 20:57 UNINTER
CONVERSA INICIAL
https://univirtus.uninter.com/ava/web/roa/ 2/27
04/09/2022 20:57 UNINTER
1. Entendendo
o diagrama de classe;
2. Classes,
atributos e métodos;
3. Relacionamentos;
4. Técnicas
de modelagem de diagrama de classe;
5. Analisando
um exemplo de diagrama de classe.
Segundo a UML[1], o
diagrama de classe mostra todas as classes de um software e os
relacionamentos
entre elas. Mas o que é, afinal, uma classe?
modelagem de objetos e
modelam a estrutura estática de um sistema. Dependendo da complexidade
de um
sistema, é possível utilizar um único diagrama de classe para modelar um
sistema inteiro ou
vários diagramas de classe para modelar os componentes de um
sistema.
Em UML,
uma classe representa um objeto ou um conjunto de objetos que
compartilham uma
estrutura e comportamento comum. E um objeto é uma
representação de um elemento do mundo
real. CLIENTE, ALUNO, PRODUTO, entre
outros, são exemplos de objetos ou classes.
abstração
– tem o foco em aspectos relevantes para um determinado propósito,
abstraindo os
demais elementos que não são importantes para a situação que se
está modelando. Por
exemplo, para verificar a situação de um ALUNO, se ele está
APROVADO ou REPROVADO, é
preciso consultar a matrícula dele. Nesse contexto,
não preciso saber o endereço ou o telefone
desse aluno. Dessa forma, foco em
obter a matrícula dele, abstraindo outras informações sobre
ele que não são
relevantes para a ação que quero tomar;
encapsulamento
– consiste na separação dos aspectos externos de um objeto, acessíveis por
outros
objetos, dos detalhes internos da implementação daquele objeto, que ficam
ocultos dos
https://univirtus.uninter.com/ava/web/roa/ 3/27
04/09/2022 20:57 UNINTER
Figura
1 – Exemplo de diagrama de classe
Continuando o entendimento do
nosso exemplo de diagrama de classe: o ALUNO está
matriculado em uma TURMA, e
podemos dizer até que um aluno só possui uma única turma. A
https://univirtus.uninter.com/ava/web/roa/ 4/27
04/09/2022 20:57 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 5/27
04/09/2022 20:57 UNINTER
Em
outras palavras, ou melhor, usando outro exemplo para explicar a diferença
entre objeto e
classe, podemos verificar que a classe AUTOMÓVEL é algo
abstrato, mas o HONDA CIVIC placa
ABC9D99 é um objeto por ser algo concreto,
que possui características e ações a serem tomadas
como requisitos para a
manipulação e processamento da classe AUTOMÓVEL.
Um diagrama de classe é
formado por vários elementos que possuem objetivos próprios, e que
juntos
mostram as informações pertencentes a cada classe além das ações sob
responsabilidade de
cada classe.
https://univirtus.uninter.com/ava/web/roa/ 6/27
04/09/2022 20:57 UNINTER
classes
– são os objetos do mundo real que estão relacionados com o escopo do software
a ser
construído;
relacionamentos
– é como as classes trocam informações entre si. Os relacionamentos podem
ser
de mais de um tipo, o que veremos a seguir;
métodos
relacionados com cada classe – os métodos são as ações que estão sob
responsabilidade de cada classe, ou seja, são as ações que devem ser executadas
por cada
classe para implementar o escopo pertencente a cada classe, por
exemplo, o “Matricular Aluno”
que discutimos anteriormente.
https://univirtus.uninter.com/ava/web/roa/ 7/27
04/09/2022 20:57 UNINTER
2.1 CLASSES
2.2 ATRIBUTOS
Os atributos representam o
conjunto de características ou estados dos objetos de uma
determinada classe.
Os atributos podem também ser entendidos como propriedades semelhantes
que os
objetos de uma classe possuem.
https://univirtus.uninter.com/ava/web/roa/ 8/27
04/09/2022 20:57 UNINTER
Dependendo
do uso que será dado a cada atributo, a visibilidade que é o estado como o
atributo
se apresenta, pode ser classificado em público, protegido ou provado.
Vamos entender a diferença
entre os estados de visibilidade de um atributo.
Um
atributo definido como + público é visível em qualquer classe de qualquer
pacote;
Um
atributo definido como # protegido é visível para classes do mesmo pacote;
Um
atributo definido como - privado é visível somente para a classe na qual foi
definido.
Um pacote é um conjunto de
classes relacionadas entre si, por exemplo, em um software é
possível criar um
pacote relacionando uma classe-mãe chamada MEIO DE TRANSPORTE, e as
classes-filho
chamadas AUTOMÓVEL e CAMINHÃO.
O tipo e a visibilidade do
atributo devem ser definidos a partir do entendimento dos requisitos do
software e, mais especificamente, das classes que vão modelar o mundo real
relacionado com o
escopo do software.
2.3 MÉTODOS
Os métodos representam o
conjunto de operações ou comportamento que a classe fornece ao
software ou que
a classe é responsável por executar.
https://univirtus.uninter.com/ava/web/roa/ 9/27
04/09/2022 20:57 UNINTER
Os métodos possuem as
seguintes características em relação ao seu funcionamento:
um
método pode ou não retornar um valor – pode ser um método para fazer um cálculo
e
armazenar o resultado no banco de dados, dessa forma, ele não retorna nenhum
valor para
quem o chamou;
um
método pode ou não aceitar argumentos – pode ser um método que utiliza um
parâmetro
para fazer determinada execução ou não receber nenhum parâmetro,
quando vai, por exemplo,
listar todos os alunos matriculados em uma escola;
um
método, após encerrar sua execução, retorna o fluxo de controle do
programa para quem o
chamou, para que o processamento do software siga seu
fluxo natural.
Da
mesma forma como funciona o atributo, dependendo do uso que será dado a cada
método, a
visibilidade que é o estado como o método se apresenta, pode ser
classificado em público, protegido
ou provado. Vamos entender a diferença entre
os estados de visibilidade de um método.
Um
método definido como + público é visível em qualquer classe de qualquer pacote;
Um
método definido como # protegido é visível para classes do mesmo pacote;
Um
método definido como - privado é visível somente para a classe na qual foi
definido.
Ou seja, o objetivo e a
funcionalidade da visibilidade são um padrão no diagrama de classes,
facilitando o entendimento e o uso, tanto quando tratamos de atributos como quando
tratamos de
métodos.
https://univirtus.uninter.com/ava/web/roa/ 10/27
04/09/2022 20:57 UNINTER
TEMA 3 – RELACIONAMENTOS
Os relacionamentos entre as
classes podem ser complexos, dependendo da complexidade dos
requisitos de um
software. Para entender o comportamento de um relacionamento, existem
características, como:
nome
– descrição dada ao relacionamento (faz, tem, possui, entre outros, dependendo
do
objetivo do relacionamento em questão);
https://univirtus.uninter.com/ava/web/roa/ 11/27
04/09/2022 20:57 UNINTER
sentido
de leitura – mostrando qual classe é a origem e qual classe é o destino do
relacionamento;
navegabilidade
– indicada por uma seta no fim do relacionamento. A navegabilidade está
relacionada com o sentido da leitura que será feito para compreender o
relacionamento;
multiplicidade
– indica como o relacionamento poderá ser verificado na classe. Por exemplo, a
classe TURMA poderá ter de 0 até N alunos, portanto, ela possui a
multiplicidade 0...*. Já um
aluno poderá estar vinculado a apenas uma turma,
porém, antes de a matrícula ser efetiva, esse
aluno ainda não está em nenhuma
turma, portanto, a multiplicidade dele será 0...1. Imagine que
um professor,
por uma regra da escola, só pode estar associado a no máximo três turmas, mas
sempre terá que estar vinculado a pelo menos uma turma, logo, a multiplicidade
dele será
representada por 1...3. Dessa forma, a multiplicidade de um
relacionamento é muito importante
para entender as regras de um requisito do
software;
tipo –
representa o tipo do relacionamento modelado de uma classe com a outra;
papéis
– desempenhados por classes em um relacionamento.
De
acordo com a UML[3], os
principais tipos de relacionamentos encontrados em um diagrama
de classe são:
associação;
generalização;
dependência.
Figura
2 – Exemplo de características de um relacionamento
Fonte:
Costa, 2021.
https://univirtus.uninter.com/ava/web/roa/ 12/27
04/09/2022 20:57 UNINTER
Reforçando
o que vimos anteriormente, de acordo com a UML[4], os
principais tipos de
associação;
generalização;
dependência.
Associação
– é um relacionamento estrutural que indica que os objetos de uma classe estão
vinculados a objetos de outra classe. Uma associação é representada por uma
linha sólida entre
duas classes, conforme o exemplo das classes PESSOA e
EMPRESA, a seguir.
Figura
3 – Exemplo de relacionamento de associação
Fonte:
Costa, 2021.
https://univirtus.uninter.com/ava/web/roa/ 13/27
04/09/2022 20:57 UNINTER
Um
relacionamento de associações possui todas as características apresentadas
anteriormente
para um relacionamento, conforme pode ser analisado no exemplo a
seguir.
Figura
4 – Exemplo de relacionamento com as principais características
Fonte:
Costa, 2021.
No exemplo apresentado, um
ESTUDANTE compete em uma EQUIPEFUTEBOL e esse mesmo
ESTUDANTE participa de uma
DISCIPLINA. Podemos entender esses nomes de relacionamento
analisando a
navegabilidade e direção do relacionamento.
Em relação à multiplicidade,
podemos entender que um ESTUDANTE pode competir por apenas
uma EQUIPEFUTEBOL,
mas que uma EQUIPEFUTEBOL é formada por 11 ou até 22 ESTUDANTES. Um
ESTUDANTE
pode participar ou estar matriculado em nenhuma ou em até oito disciplinas. O
ALUNO
pode não participar de nenhuma DISCIPLINA quando ainda não realizou sua
matrícula em disciplinas.
Já uma DISCIPLINA pode ter a participação de um ou de
muito alunos (representado pelo n), ou seja,
nesse exemplo, uma DISCIPLINA só
passa a existir quando pelo menos um aluno se matricula nela.
Generalização:
é um relacionamento entre itens gerais, de uma superclasse ou classe-mãe e
itens mais específicos, subclasse ou classe-filha. É um relacionamento que
utiliza o conceito de
herança, da orientação a objetos, permitindo que as
subclasses herdem características da
superclasse.
Figura
5 – Exemplo de relacionamento de generalização
https://univirtus.uninter.com/ava/web/roa/ 14/27
04/09/2022 20:57 UNINTER
Fonte:
Costa, 2021.
Dependência – é um
relacionamento que representa a dependência entre classes quando estas
sofrem
mudanças de estado. Com esse relacionamento é possível entender o impacto e
como uma
classe é afetada quando a outa classe é modificada.
O relacionamento de
dependência é um tipo menos comum de relacionamento em diagramas de
classe. Ele
identifica uma ligação fraca entre objetos de duas classes, pois mostra como
uma classe é
impactada quando outra classe é modificada.
Vamos
analisar um exemplo.
https://univirtus.uninter.com/ava/web/roa/ 15/27
04/09/2022 20:57 UNINTER
Fonte:
Costa, 2021.
O
primeiro passo é entender a necessidade do cliente, que, neste exemplo, possui
os seguintes
requisitos:
https://univirtus.uninter.com/ava/web/roa/ 16/27
04/09/2022 20:57 UNINTER
Figura
7 – Descrição dos requisitos do exemplo analisado
Figura
8 – Diagrama de caso de uso do exemplo analisado
https://univirtus.uninter.com/ava/web/roa/ 17/27
04/09/2022 20:57 UNINTER
Fonte:
Costa, 2021.
Figura
9 – Descrição de caso de uso
Fonte:
Costa, 2021.
https://univirtus.uninter.com/ava/web/roa/ 18/27
04/09/2022 20:57 UNINTER
Figura
10 – Classes relacionadas com o exemplo analisado
Fonte:
Costa, 2021.
https://univirtus.uninter.com/ava/web/roa/ 19/27
04/09/2022 20:57 UNINTER
Figura
11 – Modelagem dos relacionamentos
Fonte:
Costa, 2021.
https://univirtus.uninter.com/ava/web/roa/ 20/27
04/09/2022 20:57 UNINTER
Fonte:
Costa, 2021.
https://univirtus.uninter.com/ava/web/roa/ 21/27
04/09/2022 20:57 UNINTER
Fonte:
Costa, 2021.
TEMA
5 – ANALISANDO UM EXEMPLO DE DIAGRAMA DE CLASSE
https://univirtus.uninter.com/ava/web/roa/ 22/27
04/09/2022 20:57 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 23/27
04/09/2022 20:57 UNINTER
Os tipos de dados de um
atributo podem variar de linguagem para linguagem, mas é importante
entender
que o tipo de dado mostra o conteúdo que o atributo poderá tratar, sendo ele
texto ou
números, por exemplo.
FINALIZANDO
A análise de sistemas é
responsável por analisar os requisitos levantados para atender a
necessidade do
cliente e detalhar como será sua implementação e funcionamento no software que
será construído.
https://univirtus.uninter.com/ava/web/roa/ 24/27
04/09/2022 20:57 UNINTER
O diagrama de classe,
portanto, mostra uma visão lógica, detalhando como se dará a
comunicação e
quais serão as ações possíveis em cada classe do software.
O diagrama de classe é um
diagrama completamente relacionado com a orientação a objetos,
portanto,
utiliza os principais conceitos dessa metodologia de análise, projeto e
codificação de
software, baseada em objetos para compreender o cenário no qual o
software que será construído
está inserido.
REFERÊNCIAS
IBM;
https://www.ibm.com/docs/pt-br/rsas/7.5.0?topic=structure-class-diagrams
https://univirtus.uninter.com/ava/web/roa/ 25/27
04/09/2022 20:57 UNINTER
diagrams>.
Acesso em: 9 set. 2021.
[4]
Disponível em: <https://www.uml.org/>. Acesso em: 9
set. 2021.
https://univirtus.uninter.com/ava/web/roa/ 26/27
04/09/2022 20:57 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 27/27