Software Engineering I
UML Component Diagrams
Cristóvão Sousa
Porto Polytechnic - School of Technology and Management
Sumário
1. Noções básicas
2. Exemplos
3. Conclusão
By Cristóvão Sousa 1
Noções básicas
O que são diagramas de componentes?
Um diagrama de componentes representa a estrutura fı́sica da
implementação de um sistema, evidenciando, através de componentes de
software os diferentes containers de código, verdadeiramente reutilizáveis
e que implementam as funcionalidades do sistema;
Os componentes de software constituem as entidades de software
efetivamente reutilizáveis.
Os componentes de software são entidades mais abstratas que as classes
de objetos e podem ser considerados como stand-alone service providers.
By Cristóvão Sousa 2
Caracterı́sticas dos componentes
• São independentes e, por isso, a sua implementação não interfere
com outros componentes;
• A comunicação entre componentes é feita através de interfaces bem
definidos;
• Um componente poderá ser substituı́do por outro se o interface se
mantiver;
• Um componente pode conter outros componentes;
• Um componente pode conter uma ou mais classes que correspondem
ao seu modelo de informação.
• Tipicamente, ”fecha-se” um conjunto de classes interdependentes e
fortemente acopoladas num componente.
Resumindo
Um componente é uma parte fı́sica e substituı́vel do sistema que
representa um ”agrupamento” fı́sico de entidades relacionadas
logicamente, isto é, Classes
By Cristóvão Sousa 3
Notação
By Cristóvão Sousa 4
Interfaces i
Um Interface é um conjunto de operações usado para especificar os
serviços de uma classe ou componente. Um componente ”interage” de
duas formas fundamentais com interfaces
Provided Interfaces
Um componente pode concretizar (implementar) um ou mais interfaces.
A estes interfaces chama-se Provided Interfaces. Significa que um
componente fornece/concretiza/implementa determinado conjunto de
serviços ”para o exterior”
Required Interfaces
Um componente pode usar um ou mais interfaces. A estes interfaces
chama-se Required Interfaces Um componente que usa outro
componente através de uma interface bem definida não deve depender da
implementação, mas apenas da interface.
By Cristóvão Sousa 5
Interfaces ii
Na imagem acima o componente Order:
• fornece ou concretiza o interface Tracking, fornecendo informação
sobre o estado da encomenda
• depende ou usa os interfaces CustomerLookup e ProductLookup
para que possa associar a encomenda ao Cliente e produtos à
encomenda, respetivamente.
By Cristóvão Sousa 6
Interfaces iii
Uma outra forma de representação do conteúdo anterior com um pouco
mais de detalhe:
By Cristóvão Sousa 7
Composição de um componente
Um componente poderá incluir outros componentes, com modelo de
informação ”próprio” contendo as classes que implementam o
componente:
By Cristóvão Sousa 8
Exemplos
Online Shoping
[1]
By Cristóvão Sousa 9
Clinica i
We aim at developing a software system for an hospital covering the following areas: management
of availability of resources, scheduling appointments and Check-In. Thus, the ”app” should allow
to define availability at two levels: a) at resource level (human/material), which means defining a
continuous period of time in which the resource is available to perform medical acts (the period is
defined based on an initial and final date and hour); b) at resource group level, which means to
give a specific number of time ”slots” that correspond to the appointments that can be made
within a specific availability period, for a certain type of medical act. Note that a resource group
might be composed by several types of resources, such as medical staff (medics, nurses
technicians, ...), equipment or space (room, office, ...). For each appointment, beside the user, it
is possible to assign more than one type of medical act, which might be performed in different
occasions. The appointment is only possible if the user has a valid register in the hospital. After
an appointment, the group of resources is defined as unavailable for any other act in that period.
An appointment can be canceled and, if so, the group of resources became available again. During
check-in, all information about the appointment is listed. At this point, there is the need to check
the social protection system information associated to the user, in order to validade the check-in
and process the invoice accordingly. Note that the used might have several protection systems,
public and/or private.
By Cristóvão Sousa 10
Desafio
Considerando o problema anterior, apresente uma proposta de arquitetura
do sistema através de um diagrama de componentes. Deverá enviar os
resultados através do moodle.
By Cristóvão Sousa 11
Conclusão
Summary
Os diagramas de componentes são fundamentais na especificação das
arquiteturas técnicas de um sistema
Os diagramas de componentes representam uma visão mais abstracta do
que os diagramas de classes. Vão mais além do que a mera representação
do modelo de informação
Podem ser usados na representação da implementação fı́sica de um Use
Case ou Módulo do sistema ou qualquer outra parte que possa ser
representada como uma entidade fı́sica independente das restante partes
do sistema.
Os diagramas de componentes comunicam entre si através de interfaces
bem definidos
São compostos por outros componentes ou por uma ou mais classes de
objetos
By Cristóvão Sousa 12
Dúvidas?
By Cristóvão Sousa 12
References i
uml [Link].
Online shopping: Uml component diagram example [online].
5 2018.
URL: [Link]
[Link].
By Cristóvão Sousa