Logo Passei Direto
Buscar

FUNDAMENTOS DE DESIGN DE SISTEMAS.

User badge image
Alex Tontini

em

Ferramentas de estudo

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

Prévia do material em texto

13/03/2024, 01:46 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 1/20
 
 
 
 
 
 
 
 
 
FUNDAMENTOS DE DESIGN DE
SISTEMAS
AULA 1
 
 
 
 
 
 
 
 
 
 
13/03/2024, 01:46 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 2/20
 
 
Prof. Vinicius Pozzobon Borin
CONVERSA INICIAL
O objetivo desta etapa é ensinar-lhe os princípios básicos sobre os sistemas operacionais
baseados em Linux. Vamos explorar tópicos como histórico, distribuições, além de aprender serviços e
ferramentas essenciais. Não importa se você é novo no mundo do Linux ou se possui alguma
experiência prévia, pois este curso tem como objetivo ajudá-lo a se sentir confortável e confiante ao
trabalhar com esse sistema operacional poderoso.
TEMA 1 – LINUX
Linux é um sistema operacional de código aberto criado por Linus Torvalds em 1991. Linus
estudava na Universidade de Helsinque e precisava de um sistema operacional para seu computador
pessoal. Ele decidiu criar o seu próprio sistema, inspirado no Unix, e chamou-o Linux.
Linus começou a trabalhar no projeto como um hobby, mas logo outros desenvolvedores se
juntaram a ele e o projeto se expandiu rapidamente. O kernel do Linux foi lançado como software
livre, o que significa que qualquer pessoa pode ver, modificar e distribuir o código fonte. Essa
abertura permitiu que outros desenvolvedores contribuíssem para o projeto e ajudou a tornar o Linux
uma das principais opções de sistema operacional para servidores e computadores pessoais até os
dias atuais.
Uma frase famosa de Linus Torvalds é: “Se você não pode explicar algo de forma simples, você
não entende o assunto o suficiente”. Isso reflete a filosofia de simplicidade e facilidade de uso que ele
queria que o Linux tivesse.
O Linux inspirou-se no Unix. O Unix e o Linux são sistemas operacionais semelhantes, mas há
algumas diferenças importantes. Enquanto o Unix é um sistema operacional proprietário, o Linux é de
código aberto. Além disso, o Linux é considerado mais flexível e personalizável do que o Unix.
13/03/2024, 01:46 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 3/20
O mascote do Linux é conhecido como Tux, um pinguim (Figura 1). Ele foi criado por Larry Ewing
em 1996 e se tornou um símbolo popular para representar o Linux. Frequentemente, ele é usado
como logotipo de diversas distribuições Linux e é uma das imagens mais icônicas associadas ao
sistema operacional.
Figura 1 – Mascote do Linux, o Tux
Crédito: Tae Mi/Shutterstock.
Linux é um sistema operacional de código aberto, o que significa que qualquer pessoa pode ver,
modificar e distribuir o código fonte. Isso é possível graças à licença utilizada no Linux, a GPL (General
Public License), criada por Richard Stallman, fundador do Projeto GNU (veremos isso melhor mais à
frente).
Já o kernel Linux é o núcleo do sistema operacional, que gerencia as tarefas básicas do
computador, como gerenciamento de memória e gerenciamento de arquivos. Porém, o kernel Linux
por si só não é suficiente para ser utilizado como sistema operacional completo. Para isso, precisamos
de softwares adicionais, como gerenciadores de janelas, programas de edição de texto e navegadores
web etc. Esses softwares adicionais formam as distribuições Linux, como o Ubuntu, Debian e Fedora.
Cada distribuição Linux tem suas próprias características e conjunto de softwares adicionais,
permitindo que os usuários escolham a que melhor se adapta às suas necessidades.
13/03/2024, 01:46 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 4/20
1.1 KERNEL
Um kernel é o núcleo de um sistema operacional. As principais funcionalidades do kernel incluem:
Gerenciamento de memória: o kernel é responsável por alocar e liberar memória para os
programas, garantindo que cada programa tenha acesso à memória que precisa;
Gerenciamento de processos: o kernel é responsável por criar, gerenciar e finalizar processos, ou
seja, as tarefas que os programas realizam. Ele garante que cada processo tenha acesso à CPU e
memória de forma equitativa;
Gerenciamento de arquivos: o kernel é responsável por gerenciar os arquivos no sistema,
incluindo a criação, leitura, escrita e exclusão de arquivos;
Gerenciamento de dispositivos: o kernel é responsável por gerenciar os dispositivos conectados
ao computador, como discos rígidos, impressoras e dispositivos USB. Ele também controla o
acesso a esses dispositivos, garantindo que os programas possam usá-los de forma segura.
Figura 2 – Sistema operacional
Fonte: Tanenbaum, 2008, p. 1.
1.2 PROJETO GNU
O Projeto GNU é um projeto de software livre criado em 1983 por Richard Stallman,
programador, escritor e ativista político americano, considerado um dos principais defensores do
software livre e da liberdade digital.
13/03/2024, 01:46 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 5/20
Stallman, além de fundador do Projeto GNU, é também o criador da Fundação para o Software
Livre. O objetivo do projeto é desenvolver um sistema operacional completo, livre de restrições de uso
e modificação, que possa ser usado por qualquer pessoa. O projeto foi iniciado com o objetivo de
criar um sistema operacional semelhante ao Unix, mas com código fonte aberto.
O projeto GNU foi fundamental para o desenvolvimento do Linux, pois muitos dos componentes
do Linux foram desenvolvidos como parte do projeto GNU. Existem distribuições Linux que são
construídas inteiramente utilizando-se de componentes GNU, como o Debian, e são conhecidas como
distribuições GNU/Linux. No entanto, nem todo o Linux é composto inteiramente de componentes
GNU, algumas distribuições utilizam componentes de outros projetos de software livre e/ou
proprietários.
1.3 FILOSOFIA LINUX
A filosofia do software livre é baseada no princípio de que este deve ser livre para ser usado,
estudado, modificado e distribuído. Isso significa que os usuários não devem ser restritos em suas
ações com o software, como é o caso do software proprietário, cujos usuários não podem ver o
código fonte e não têm permissão para modificá-lo.
A filosofia do Linux é muito semelhante, pois o Linux é um sistema operacional de código aberto,
o que significa que o código fonte está disponível para qualquer pessoa ver e modificar. Isso permite
que outros desenvolvedores contribuam para o projeto e melhorem o sistema operacional.
Outra parte importante da filosofia do Linux e do software livre é a colaboração e a comunidade.
Como o código fonte está disponível para todos, muitas pessoas trabalham juntas para melhorar o
software. Isso cria uma comunidade de desenvolvedores, usuários e empresas que cooperam para
melhorar o software e torná-lo mais acessível para todos.
1.4 APLICAÇÕES DE LINUX
O Linux é um sistema operacional versátil e utilizado em uma variedade de aplicações, desde
dispositivos como smartphones e Smart TVs, até sistemas de grande porte como servidores e sistemas
inteligentes.
13/03/2024, 01:46 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 6/20
Em servidores, devido à sua estabilidade, segurança e flexibilidade, muitas empresas e
organizações utilizam o Linux como sistema operacional de servidor para aplicações como web
hosting, e-mail, arquivos e banco de dados. Grandes empresas usam o Linux como sistema
operacional para sistemas de nuvem, como o Amazon Web Services e o Google Cloud.
Outra aplicação comum do Linux é em dispositivos móveis, como smartphones e tablets. Muitos
fabricantes de dispositivos móveis utilizam o Linux como sistema operacional em seus dispositivos,
incluindo o Android, que é baseado no Linux. Além disso, o Linux é usado em Smart TVs, dispositivos
de streaming, como o Chromecast e mesmo a Raspberry Pi.
O Linux também é usado em aplicações industriais, como sistemas de automação industrial,
sistemas inteligentes transporte e sistemas de Internet das coisas (IoT). Isso se deve à sua
estabilidade, segurança e capacidade de se adaptar às necessidades de diferentes aplicações.
1.5 FUNDAÇÕES LIGADAS AO LINUX
A LinuxFoundation e a Free Software Foundation (FSF) são duas organizações ligadas ao
desenvolvimento e promoção do Linux.
A Linux Foundation é uma organização sem fins lucrativos que foi fundada em 2000. Ela tem
como objetivo promover e proteger o Linux como um projeto de software livre e colaborativo. Ela
patrocina o desenvolvimento do kernel Linux, organiza eventos para a comunidade Linux e fornece
recursos para empresas que usam o Linux.
A Free Software Foundation (FSF) é a organização sem fins lucrativos fundada por Richard
Stallman em 1985. Ela tem como objetivo promover a utilização de software livre e garantir a
liberdade dos usuários. A FSF criou a licença GPL, e patrocina o desenvolvimento de vários projetos de
software livre, incluindo o Projeto GNU. Além disso, a FSF luta pela liberdade do software e promove a
filosofia do software livre.
TEMA 2 – LICENÇAS DE SOFTWARES
Licenças de software são contratos legais que regulamentam a utilização, distribuição e
modificação de software. Elas definem as condições e restrições sob as quais os usuários podem usar
o software, bem como as responsabilidades dos desenvolvedores e distribuidores do software.
13/03/2024, 01:46 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 7/20
Existem diferentes tipos de licenças de software, incluindo licenças proprietárias, licenças gratuitas
e licenças de software livre. Vamos agora conhecer um pouco mais as principais licenças existentes.
2.1 SOFTWARE LIVRE
Software livre é um tipo de software cujo código-fonte está disponível para ser modificado e
distribuído livremente pelos usuários. Isso significa que os usuários podem fazer alterações no
software, distribuí-lo e até mesmo vender suas próprias versões, desde que respeitem suas condições
da licença. Além disso, os usuários têm acesso ao código-fonte, o que permite que eles entendam
como o software funciona e possam resolver eventuais problemas.
Exemplos de software livre incluem o sistema operacional Linux, o browser Firefox, o editor de
texto LibreOffice, o sistema de gerenciamento de banco de dados MySQL, entre outros. Alguns dos
softwares mais conhecidos e utilizados no mundo são livres e são utilizados tanto por usuários
comuns quanto por empresas e organizações governamentais. A filosofia do software livre é a de que
todos devem ter acesso ao código-fonte e poder modificá-lo e distribuí-lo, sem restrições.
2.2 OPEN SOURCE
Softwares open source são aqueles cujos códigos-fontes estão disponíveis para serem estudados,
modificados e distribuídos pelos usuários. A principal diferença entre software livre e open source é
que o primeiro se baseia na liberdade de uso, estudo, modificação e distribuição, enquanto o
segundo na disponibilidade do código-fonte para ser utilizado de forma colaborativa.
Embora o termo open source seja mais amplo e inclua softwares livres, nem todos os softwares
open source são livres. Alguns deles podem ter restrições quanto às suas modificações e distribuições,
enquanto outros podem ser vendidos como produtos comerciais. A filosofia do open source é a de
que o compartilhamento do código-fonte permite a colaboração e o desenvolvimento de software
mais inovador e de qualidade.
Exemplos de softwares open source incluem o sistema operacional Android, o software de edição
de vídeo Blender, o gerenciador de projetos Redmine, entre outros. Eles são desenvolvidos e
mantidos por uma comunidade global de desenvolvedores e usuários.
2.3 COPYLEFT
13/03/2024, 01:46 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 8/20
Licenças com copyleft são uma categoria especial de licenças de software livre que garantem que
as modificações e distribuições derivadas do software se mantenham iguais. Isso é feito através da
exigência de que qualquer pessoa que distribua o software ou suas modificações deve fornecer o
código-fonte e licenciar o software sob os mesmos termos da licença original.
Exemplos de licenças com copyleft incluem a GPL v2 (General Public License), usada no Linux, a
LGPL (Lesser General Public License) e a AGPL (Affero General Public License). Essas licenças são
amplamente utilizadas em projetos de software livre, incluindo o Linux, o Firefox, o LibreOffice, o
MySQL e muitos outros. Elas garantem que o software continue livre e acessível para todos, mesmo
que seja modificado e distribuído por terceiros.
2.4 FREEWARE E SHAREWARE
Freeware é um tipo de software gratuito, que é distribuído sem custo algum e pode ser usado,
copiado e distribuído livremente pelos usuários. No entanto, o código-fonte do software geralmente
não está disponível, o que significa que os usuários não podem modificá-lo ou distribuí-lo como uma
versão modificada. Exemplos de freeware incluem o navegador Firefox, o editor de texto Notepad ++
e o software antivírus Avast.
Já o Shareware é um tipo de software que é distribuído gratuitamente para teste e avaliação, mas
que geralmente requer uma licença de uso paga para ser usado permanentemente. Esse tipo de
software pode ser usado por um período limitado ou com certas restrições funcionais antes de
precisar ser licenciado. Exemplos de shareware podem incluir jogos e softwares de grandes empresas,
como o software de edição de fotos Adobe Photoshop.
Em resumo, a diferença entre freeware e shareware é que o primeiro é completamente gratuito
para usar e distribuir, enquanto este é gratuito para experimentar, mas requer uma licença de uso
paga para ser usado permanentemente.
2.5 SOFTWARE PROPRIETÁRIO
Software proprietário é um tipo de software que é controlado e licenciado por uma empresa ou
indivíduo, que tem o direito exclusivo de distribuir, modificar e usar o software. Esse tipo de software
geralmente vem com uma licença restritiva que proíbe a modificação, a distribuição e o uso
13/03/2024, 01:46 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 9/20
compartilhado do software por terceiros. Além disso, o código-fonte do software geralmente não está
disponível ao público.
Exemplos de software proprietário incluem o sistema operacional Windows da Microsoft, o
software de edição de vídeo Adobe Premiere e o software de gerenciamento de projetos Microsoft
Project. É importante notar que esses softwares são adquiridos mediante licenciamento, em que a
compra da licença dá direito a uso, mas não à mmodificação do código fonte.
2.6 SOFTWARE AS A SERVICE (SAAS)
Software as a Service (SAAS) é um modelo de entrega de software cujas aplicações são acessadas
por meio da internet e geralmente são oferecidas por meio de assinatura. Isso significa que, em vez
de instalar e gerenciar o software em seus próprios computadores, os usuários acessam a ele e a seus
dados através da internet. A maioria dos provedores de SAAS oferecem acesso ao software por meio
de um navegador web, ou aplicativos de smartphones, e os dados são armazenados em servidores
remotos.
Exemplos de SAAS incluem o Google Apps, Salesforce, Dropbox, Netflix, Spotify e Slack. Esses
serviços oferecem funcionalidades como e-mails, armazenamento de arquivos, gerenciamento de
vendas, vídeos, música e comunicação de equipe, respectivamente, e são acessados via internet,
permitindo o acesso a qualquer lugar e dispositivo com conexão. Este modelo de negócio vem sendo
cada vez mais anotado mundo afora.
TEMA 3 – DISTRIBUIÇÕES LINUX
Uma distribuição Linux é uma versão do sistema operacional Linux que inclui um conjunto de
ferramentas e programas adicionais. Elas são criadas por diferentes organizações e comunidades, e
cada uma tem seus próprios objetivos e características. Algumas distribuições Linux são projetadas
para uso em desktops e laptops, enquanto outras são otimizadas para uso em servidores ou
dispositivos embarcados. Veja, na Figura 3, o que compõe uma distribuição:
Figura 3 – Distribuições Linux
13/03/2024, 01:46 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 10/20
Crédito: Vinicius Pozzobon Borin.
Cada distribuição Linux tem sua própria filosofia e conjunto deferramentas, mas todas usam o
mesmo kernel Linux. Algumas distribuições Linux são mais fáceis de usar para iniciantes, enquanto
outras são mais adequadas para usuários avançados ou para fins específicos, como desenvolvimento
de software ou uso em servidores.
Algumas distribuições Linux são gratuitas e de código aberto, enquanto outras podem ser
adquiridas comercialmente e oferecem suporte técnico e atualizações. Algumas distribuições Linux
são desenvolvidas por comunidades, enquanto outras são desenvolvidas por empresas.
Saiba mais
Temos no mercado hoje centenas de distribuições. Acessando os links a seguir você encontra
o catálogo delas, bem como os links para download:
LWN.net. Disponível em: <https://lwn.net/>. Acesso em: 22 fev. 2023.
DISTROWATCH. Disponível em: <https://distrowatch.com>. Acesso em: 22 fev. 2023.
O kernel Linux, para criar sua própria distribuição, pode ser encontrado acessando-se o link a
seguir:
MIRRORS.KERNEL.ORG. Disponível em: <https://mirrors.edge.kernel.org/>. Acesso em: 22
fev. 2023.
https://lwn.net/
https://lwn.net/
https://lwn.net/
https://distrowatch.com/
https://distrowatch.com/
https://distrowatch.com/
https://mirrors.edge.kernel.org/
https://mirrors.edge.kernel.org/
https://mirrors.edge.kernel.org/
13/03/2024, 01:46 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 11/20
Na Figura 4 temos algumas das principais família e distribuições Linux.
Figura 4 – As principais famílias e distribuições
Crédito: Vinicius Pozzobon Borin.
3.1 DEBIAN
A distribuição Debian é uma das mais antigas e respeitadas distribuições Linux. Ela foi criada em
1993 pelo programador Ian Murdock, com o objetivo de criar um sistema operacional livre e de
código aberto que pudesse ser usado em várias arquiteturas de computador.
Uma das principais características da Debian é o seu gerenciador de pacotes, o APT (Advanced
Package Tool - .deb), que permite que os usuários instalem, atualizem e removam facilmente pacotes
de software. Isso torna a administração do sistema muito mais fácil e eficiente.
Outra característica interessante da Debian é o projeto Debian/Hurd, que visa criar uma versão da
distribuição baseada no kernel Hurd (Sistema de núcleos da GNU), em vez do núcleo Linux. O Hurd é
projetado para ser mais seguro e escalável que o Linux e oferece recursos avançados, como suporte a
transações. Embora ainda não esteja completamente madura, a Debian/Hurd é uma ótima opção para
aqueles interessados em experimentar novas tecnologias.
O Debian vem com diferentes interfaces gráficas, sendo a principal delas o GNOME. Além disso, a
distribuição Debian deu origem a diferentes outras distribuições, como o Ubuntu, Mint e o Kurumin
13/03/2024, 01:46 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 12/20
(distribuição brasileira). Outra variação é o Raspbian, otimizada para ser executada em dispositivos
Raspberry Pi. Ele inclui pacotes específicos para Raspberry Pi, como o gerenciador de janelas PIXEL e o
software Scratch para programação de dispositivos.
3.2 UBUNTU
A distribuição Ubuntu é um sistema operacional baseado em Linux desenvolvido pela empresa
sul africana chamada Canonical. Ele é projetado para ser fácil de usar e acessível para usuários
iniciantes, e bom para usuário avançados também.
O Ubuntu é baseado no Debian e usa o gerenciador de pacotes apt para instalar e gerenciar
programas. O comando sudo surgiu com o Ubuntu. Ele é usado para dar privilégios de administrador
ao usuário, permitindo que ele execute comandos que precisam de permissões elevadas.
Além disso, o Ubuntu também é compatível com o WSL (Subsistema Windows para Linux) do
Windows 10, o que permite que os usuários executem comandos Linux diretamente no Windows sem
precisar de uma máquina virtual ou dual boot. Isso pode ser útil para desenvolvedores que precisam
alternar entre o Windows e o Linux.
3.3 MINT
A distribuição Linux Mint é uma versão baseada no Ubuntu que foi criada para fornecer uma
experiência de usuário similar ao Windows, tornando-a uma boa opção para usuários que estão
migrando do Windows para o Linux.
O Linux Mint vem acompanhada de um ambiente de desktop chamado Cinnamon, que é
projetado para ser fácil de usar e intuitivo. Ele inclui uma barra de tarefas e um menu iniciar
semelhantes ao Windows, o que ajuda os usuários a se sentirem mais confortáveis enquanto se
acostumam com o novo sistema operacional.
Além disso, o Linux Mint vem com uma variedade de aplicativos populares pré-instalados, como
o LibreOffice (uma alternativa gratuita ao Microsoft Office) e o Firefox (navegador da web), para que
os usuários possam começar a trabalhar imediatamente após a instalação.
3.4 RED HAT
13/03/2024, 01:46 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 13/20
A distribuição Red Hat é baseada em código aberto e é amplamente utilizada em empresas e
organizações de todos os tamanhos.
Uma das principais características da distribuição Red Hat é o seu gerenciador de pacotes, o RPM
(Red Hat Package Manager). Ele garante que todos os pacotes instalados estejam em conformidade
com as políticas de segurança e estabilidade do sistema.
É importante mencionar que a distribuição Red Hat não é gratuita. Ela é disponibilizada sob uma
licença comercial, o que significa que os usuários precisam pagar por suporte e atualizações de
segurança. No entanto, os usuários podem baixar e usar a distribuição gratuitamente, sem suporte
técnico ou atualizações de segurança.
TEMA 4 – TERMINOLOGIA LINUX
O universo do Linux apresenta terminologias bastante particulares e que precisam ser conhecidas
por quem trabalha com ele. Já aprendemos termos como kernel, distribuição e GNU. Mas vamos
conhecer mais alguns deles agora.
4.1 PROCESSO DE BOOT
O processo de inicialização de um computador, conhecido como boot, é uma sequência de
etapas que acontecem quando você liga o seu computador. Ele começa com o carregamento do
firmware, como o BIOS ou UEFI, que é um software básico armazenado na memória do computador
que controla as funções básicas do hardware.
O firmware verifica se o disco rígido e outros dispositivos de armazenamento estão conectados e
funcionando corretamente, e então procura por um sistema operacional para carregar (boot loader).
Se você estiver usando o Linux, o firmware irá procurar pelo arquivo de boot loader, se for no Linux,
geralmente é o GRUB, que é responsável por carregar o kernel Linux.
Uma vez que o kernel é carregado, ele inicia o processo de inicialização do sistema operacional,
carregando os módulos de dispositivos e configurando as configurações de hardware. Em seguida, ele
inicia os serviços do sistema, como o gerenciador de login, e finalmente, inicia a interface gráfica ou o
prompt de comando, dando a você acesso ao seu sistema.
13/03/2024, 01:46 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 14/20
No Linux, existem vários boot loaders disponíveis, mas os mais comuns são o GRUB, LILO e
ISOLINUX. O GRUB (Grand Unified Boot Loader) é o boot loader padrão para a maioria das
distribuições Linux. Ele oferece uma interface amigável para selecionar o sistema operacional a ser
iniciado e também fornece recursos avançados como a capacidade de editar a linha de comando do
kernel antes do seu início. A Figura 5 apresenta em um diagrama a explicação de inicialização dada
acima:
Figura 5 – Processo de inicialização
Crédito: Vinicius Pozzobon Borin.
4.2 SISTEMA DE ARQUIVOS
Sistemas de arquivos são estruturas de dados que organizam e gerenciam arquivos em um
dispositivo de armazenamento, como um disco rígido. Eles são responsáveis por criar, ler, atualizar e
excluir arquivos, bem como gerenciar permissões de acesso e outras informações importantes. No
Linux, os sistemas de arquivos mais comuns incluem o Ext4, o XFS, e o Btrfs.
O Ext4 é amplamente utilizado e é o sistema de arquivos padrão para a maioria das distribuições
Linux modernas. Ele oferece uma boa relação entre desempenho e capacidade de armazenamento,
além desuportar arquivos de tamanho de até 16 TB (TeraBytes).
O XFS é outro sistema de arquivos popular no Linux, especialmente para sistemas que trabalham
com arquivos gigantescos. Ele oferece suporte a arquivos de até 9 EB (ExaBytes) e é usado em
sistemas de arquivos de alta capacidade, como servidores de arquivos e sistemas de armazenamento
de massa (big data).
13/03/2024, 01:46 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 15/20
Por fim, o Btrfs é um sistema de arquivos de nova geração, projetado para oferecer recursos
avançados como snapshots, replicação e balanceamento de carga. Ele ainda não é tão amplamente
utilizado quanto o Ext4 ou XFS, mas é considerado como uma boa opção para sistemas de arquivos
de alta capacidade e que precisam de recursos avançados.
Quadro 1 – Diferenças entre os tipos sistemas de arquivos e também de nomenclatura entre o
ambiente Windows e o Linux
Windows Linux
Partição Disk1 /dev/sda1
Tipo de Sistema de arquivos NTFS/FAT EXT3/EXT4…
Diretório base (onde o SO é armazenado) C:\ /
Fonte: Borin, 2023.
4.3 X WINDOW SYSTEM E A INTERFACE GRÁFICA LINUX
O X Window System, também conhecido como X ou X11, é um sistema de gerenciamento de
janelas para sistemas Unix-like, como o Linux. Ele fornece uma camada de gerenciamento de janelas
para aplicativos gráficos, permitindo que os usuários criem e gerenciem janelas, menus e outros
elementos gráficos em uma interface gráfica de usuário.
Os aplicativos se comunicam com o servidor X através de uma API (Application Programming
Interface), chamada Xlib, que permite que os aplicativos criem e gerenciem janelas, desenhem
elementos gráficos e gerem eventos de entrada, como cliques de mouse e teclas pressionadas.
O X Window System é somente a camada inferior de toda a interface gráfica - Graphic User
Interface (GUI), do Linux. Na Figura 6 vemos como a interface é construída:
Figura 6 – Graphic User Interface (GUI) do Linux
13/03/2024, 01:46 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 16/20
Crédito: Vinicius Pozzobon Borin.
Quando falamos de ambiente desktop e gerenciadores de janelas, precisamos citar Gnome e o
KDE, que são os mais comuns de serem encontrados em distribuições Linux.
Falando um pouco do Gnome, ele fornece uma interface gráfica de usuário completa, incluindo
um gerenciador de janelas, barra de tarefas, painel e uma coleção de aplicativos para tarefas comuns,
como navegação de arquivos, visualização de imagens, edição de texto e muito mais. O Gnome foi
criado com o objetivo de oferecer uma interface amigável e acessível para o sistema operacional
Linux. Ele é projetado para ser intuitivo e fácil de usar, com uma interface limpa e consistente, e é uma
das principais opções de ambiente de desktop utilizadas no Linux.
4.4 LINHA DE COMANDO (TERMINAL)
A linha de comando, também conhecida como terminal, é um meio de interagir com o sistema
operacional por meio de comandos digitados em uma interface de texto. No Linux, a linha de
comando é uma das formas mais poderosas e flexíveis de se trabalhar com o sistema operacional,
permitindo que os usuários executem tarefas avançadas, como gerenciar arquivos, configurar o
sistema, instalar e desinstalar programas, entre outras, sem a necessidade de uma interface gráfica.
Além disso, os comandos digitados na linha de comando também podem ser automatizados
através de scripts para realizar tarefas repetitivas ou complexas. A linha de comando é uma
ferramenta importante para os administradores de sistemas e desenvolvedores, pois permite uma
maior eficiência e automatização.
13/03/2024, 01:46 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 17/20
4.5 SHELL
O shell é um interpretador de comandos que permite aos usuários interagir com o sistema
operacional por meio da linha de comando. No Linux, existem vários tipos de shells disponíveis, cada
um com suas próprias características e comandos. Alguns exemplos de shells comuns no Linux
incluem o Bash (Bourne-Again Shell), o Zsh (Z Shell) e o Tcsh (Tenex C Shell).
O Bash é o shell padrão na maioria das distribuições Linux e é muito popular entre os usuários.
Ele fornece uma variedade de recursos, como autocompletar comandos e nomes de arquivos,
histórico de comandos e suporte para scripts.
TEMA 5 – SERVIÇOS NO LINUX E CERTIFICAÇÕES
Vamos agora finalizar nossa etapa sobre Linux conversando sobre alguns tópicos distintos dentro
Linux que você precisa conhecer.
5.1 SERVIÇOS NO LINUX
Podemos simplificar a explicação e dizer que os serviços nada mais são do que programas que
instalamos no Linux para desenvolver determinadas tarefas. Existem muitos serviços disponíveis para
usuários de Linux, cada um com suas próprias características e funcionalidades únicas. Vamos citar
alguns deles a seguir.
Um dos principais serviços disponíveis no Linux é o LibreOffice, que é um pacote de aplicativos
de escritório de código aberto que inclui um processador de texto, planilha eletrônica, apresentação,
editor de desenhos e muito mais. Ele é compatível com arquivos do Microsoft Office e é uma
excelente opção para aqueles que precisam trabalhar com documentos e planilhas.
Outro serviço popular no Linux é o Mozilla Firefox. Este é um navegador web de código aberto
que oferece uma variedade de recursos, como a capacidade de adicionar extensões e personalizar a
interface do usuário. Além disso, o Firefox é conhecido por ser mais seguro e privado do que outros
navegadores populares, o que o torna uma excelente escolha para usuários preocupados com a
privacidade.
13/03/2024, 01:46 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 18/20
Podemos citar inúmeros outros serviços para Linux, e que também existem no Windows, como o
editor de imagens GIMP, player de vídeos VLC e o gravador de vídeos, OBS Studio.
Figura 7 – Exemplos de serviços no Linux
5.2 JOGOS NO LINUX
Um dos objetivos desta etapa é também instigar você a usar o Linux no seu dia a dia, mesmo que
para entretenimento, até que se acostume com ele e talvez o adote como seu sistema operacional
principal no futuro. Assim, nada mais justo do que comentar um pouco sobre como jogar games em
Linux.
Jogos em Linux são uma ótima opção para aqueles que desejam jogar em um sistema
operacional livre e de código aberto. Existem muitos jogos disponíveis para Linux, desde jogos indie
até jogos AAA. No entanto, alguns jogos não são nativos para Linux e precisam ser executados
utilizando-se de um software de emulação, como o Wine ou o Proton.
O Wine permite que você execute programas do Windows no Linux. Ele é compatível com uma
ampla variedade de jogos e aplicativos, mas pode exigir alguma configuração e otimização para
funcionar corretamente.
Já o Proton é uma versão do Wine desenvolvida pela Valve (criadora da Steam) para melhorar a
compatibilidade de jogos do Windows com o Linux. Ele já vem com configurações otimizadas e é
13/03/2024, 01:46 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 19/20
mais fácil de usar que o Wine.
5.3 CERTIFICAÇÕES LINUX
As certificações e provas de certificação na área da computação são uma excelente maneira de
demonstrar suas habilidades e conhecimentos em um determinado campo ou tecnologia. Elas são
frequentemente exigidas por empregadores e podem ajudar a abrir portas para novas oportunidades
de carreira. Além disso, as certificações podem ajudá-lo a se manter atualizado com as últimas
tendências e desenvolvimentos em sua área de interesse.
Existem várias organizações que oferecem certificações em diferentes áreas da computação,
como programação, segurança, banco de dados e redes. Alguns exemplos incluem a Microsoft, a
Cisco e a Oracle. Cada organização tem seus próprios requisitos para a certificação, que podem incluir
a realização de cursos de treinamento, experiência prévia e aprovação em uma prova de certificação.
A importância das certificações varia de acordo com a área de trabalho, mas geralmente é uma
prova de sua competência e habilidade para trabalhar com tecnologiasespecíficas. Isso pode ajudar a
diferenciá-lo de outros candidatos em uma entrevista de emprego ou aumentar suas chances de
promoção. Além disso, as certificações podem ajudá-lo a se manter atualizado com as últimas
tendências e desenvolvimentos em sua área de interesse e aumentar sua confiança no seu trabalho.
A Linux Professional Institute (LPI) é uma organização sem fins lucrativos que oferece certificações
para profissionais de sistemas Linux. A LPI é reconhecida mundialmente como líder em certificação
Linux e tem como objetivo ajudar os profissionais a provar suas habilidades e conhecimentos em
sistemas Linux.
A LPI oferece quatro níveis de certificação: Linux Essentials, LPIC-1, LPIC-2 e LPIC-3. A Linux
Essentials não é obrigatória, e foi feita para quem não conhece nada de Linux. O LPIC-1 é a
certificação básica e abrange os conhecimentos necessários para instalar, configurar, usar o terminal e
administrar sistemas Linux. O LPIC-2 é a certificação intermediária, e a LPIC-3 é a certificação
avançada e abrange tópicos especializados, como virtualização e segurança avançada. Na Figura 8
vemos a sequência dessas certificações.
Figura 8 – Certificações Linux da LPI
13/03/2024, 01:46 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 20/20
FINALIZANDO
Ao longo desta etapa demos nossos primeiros passos com o Linux. Caso você nunca tenha
utilizado esse sistema operacional, espero que tenha se interessado e instigado você a conhecê-lo
melhor, pois é amplamente utilizado no mercado de tecnologia. Caso já tenha experiência com ele,
espero que tenha trazido a você mais algum conhecimento que você ainda não tinha.
REFERÊNCIAS
LINUX.ORG. Disponível em: <https://www.linux.org/>. Acesso em: 22 fev. 2023.
SILVA, R. L. Linux: guia de instalação e administração. São Paulo: Novatec, 201
TANENBAUM, A. S. Sistemas operacionais modernos. 4. ed. São Paulo: Pearson Prentice Hall,
2008.
13/03/2024, 01:47 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 1/16
 
 
 
 
 
 
 
 
 
FUNDAMENTOS DE DESIGN DE
SISTEMAS
AULA 2
 
 
 
 
 
 
 
 
 
 
13/03/2024, 01:47 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 2/16
 
 
Prof. Vinicius Pozzobon Borin
CONVERSA INICIAL
O objetivo desta etapa é oferecer um aprofundarmento no Ubuntu, conhecendo a sua estrutura
de diretórios e a linha de comando do Linux. Os objetivos específicos são:
conhecer a estrutura de diretórios do Linux;
aprender os comandos de manipulação de diretorios e arquivos;
conhecer comandos do sistema;
conhecer comandos de instalação de pacotes; e
conhecer permissões, acessos e seus comandos no Linux.
TEMA 1 – ESTRUTURA DE DIRETÓRIOS DO LINUX
O Windows e o Linux são sistemas operacionais diferentes que utilizam estruturas de arquivos
distintas para organizar arquivos e pastas.
No Windows, os arquivos são organizados em uma única estrutura de diretórios e os diretórios
são representados como pastas. Cada pasta pode conter arquivos e outras pastas, permitindo que os
usuários naveguem pelas estruturas de diretórios para encontrar o arquivo desejado.
O diretório raiz do Windows, por padrão, é o C:\, onde todos os outros diretórios estão alocados.
A Figura 1 apresenta um exemplo de diretórios Windows.
Figura 1 – Diretórios do Windows
13/03/2024, 01:47 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 3/16
Já no Linux, a estrutura de diretórios é hierárquica e baseada em raízes. A raiz é representada
pelo símbolo "/" e todos os outros diretórios são organizados em relação a ela. O Linux usa uma
estrutura de diretórios rigorosa, com pastas específicas para cada tipo de arquivo. Vamos conhecer as
principais a seguir.
1.1 DIRETÓRIO BIN
O diretório "/bin" no Linux é usado para armazenar arquivos binários executáveis, ou seja,
programas que podem ser executados diretamente pelo sistema. É similar ao Arquivos de Programas
do Windows, com programas comuns que são frequentemente usados pelos usuários e pelo próprio
sistema.
Além disso, o "/bin" é um dos diretórios incluídos no caminho de pesquisa do sistema, o que
significa que o sistema automaticamente procura nesse diretório quando o usuário executa um
comando no terminal. Isso garante que os programas comuns estejam sempre disponíveis para o
usuário, independentemente da pasta atual em que ele está trabalhando.
1.2 DIRETÓRIO BOOT
O diretório "/boot" no Linux é responsável por armazenar arquivos necessários para o processo
de inicialização do sistema. Esses arquivos incluem o kernel do Linux, arquivos de configuração e
drivers de dispositivos.
Durante o processo de inicialização, o sistema carrega os arquivos contidos no "/boot" para
configurar e inicializar o hardware. Depois, carrega o kernel do sistema. O diretório "/boot" é
13/03/2024, 01:47 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 4/16
importante, pois ele é necessário para que o sistema operacional funcione corretamente,
considerando aqui que arquivos corrompidos ou ausentes podem impedir o processo de inicialização.
Por isso, é importante que os arquivos no "/boot" sejam mantidos atualizados e protegidos contra
danos ou modificações acidentais.
1.3 DIRETÓRIO DEV
O diretório "/dev" (devices) no Linux é usado para representar dispositivos de hardware presentes
no sistema. Nele, cada dispositivo é representado por um arquivo especial, conhecido como arquivo
de dispositivo, que permite que o sistema e os programas acessem o dispositivo de hardware. Os
arquivos de dispositivo são usados para realizar operações de leitura e escrita no dispositivo, bem
como para controlar o seu comportamento.
O diretório "/dev" é importante porque é usado como um ponto central para o acesso a todos os
dispositivos de hardware no sistema, incluindo discos rígidos, unidades de CD-ROM, dispositivos de
entrada, como teclados e mouses, entre outros. Além disso, os arquivos de dispositivo no "/dev" são
usados por vários programas de sistema para a realização de tarefas, como montar partições de disco
ou acessar dispositivos de rede.
A nomenclatura de discos no Linux é baseada na convenção de letras maiúsculas para discos
rígidos internos e letras minúsculas para dispositivos removíveis. Cada dispositivo de armazenamento
é representado por um arquivo especial no diretório "/dev", como "/dev/sda" para o primeiro disco
rígido interno, "/dev/sdb" para o segundo, e "/dev/sdc" para dispositivos removíveis, como pen
drives. Além disso, as partições de um disco rígido são identificadas com um número adicional, como
"/dev/sda1" para a primeira partição do disco rígido "/dev/sda". Essa convenção é usada pelo sistema
operacional para identificar e acessar dispositivos de armazenamento de maneira consistente.
1.4 DIRETÓRIO ETC
O diretório "/etc" no Linux é usado para armazenar arquivos de configuração do sistema e de
programas instalados no sistema. Os arquivos de configuração controlam como o sistema operacional
e os programas se comportam, incluindo configurações de rede, definições de usuário, informações
de autenticação e outros detalhes importantes.
13/03/2024, 01:47 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 5/16
O diretório "/etc" é acessado frequentemente por administradores de sistema, para a realização
de tarefas como configurar serviços de rede, adicionar ou remover usuários, ou ainda alterar
configurações de programas instalados. Além disso, os arquivos de configuração no "/etc" são usados
pelo sistema operacional durante o processo de inicialização para definir as configurações necessárias
para o funcionamento correto do sistema.
1.5 DIRETÓRIO HOME
O diretório "/home" no Linux é usado para armazenar os arquivos pessoais e de configuração de
cada usuário do sistema. Cada usuário tem o seu próprio diretório dentro do "/home", geralmente
com o mesmo nome do usuário. Por exemplo, "/home/vinicius" para o usuário "vinicius". Esses
diretórios são usados para armazenar arquivos pessoais, como documentos, imagens, músicas e
outros, bem como arquivosde configuração específicos para o usuário.
O diretório "/home" é uma parte importante da estrutura de arquivos do Linux, pois permite que
cada usuário tenha os seus próprios arquivos e configurações em separado dos demais usuários e do
sistema operacional. Isso oferece separação de responsabilidades entre usuários e protege contra a
perda de dados ou configurações importantes, caso ocorra algum problema com o sistema
operacional ou com outros usuários. Além disso, a estrutura de diretórios do "/home" permite que os
usuários tenham acesso aos seus arquivos a partir de qualquer conta, desde que estejam logados no
sistema.
O diretório equivalente ao "/home" no Windows é geralmente o diretório "C:\Users". Assim como
o "/home" no Linux, o diretório "C:\Users" também armazena os arquivos pessoais e de configuração
para cada usuário do sistema. Cada usuário tem o seu próprio diretório dentro do "C:\Users".
Em termos de funcionamento, o diretório "C:\Users" no Windows e o diretório "/home" no Linux
servem para a mesma finalidade: separam os arquivos pessoais e de configuração de cada usuário
para fornecer segurança e facilidade de acesso aos arquivos.
1.6 OUTROS DIRETÓRIOS LINUX
Por fim, vejamos mais alguns diretórios importantes do Linux Ubuntu.
13/03/2024, 01:47 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 6/16
root: diretório raiz para o usuário administrador (root); armazena arquivos e configurações
exclusivas para o usuário root.
lib: diretório que armazena bibliotecas compartilhadas usadas pelo sistema operacional e pelos
aplicativos.
media: diretório usado para montar dispositivos externos, como discos rígidos externos ou
dispositivos de mídia removíveis.
mnt: diretório similar ao "/media", usado para montar dispositivos de armazenamento
temporários.
opt: diretório usado para armazenar aplicativos adicionais que não fazem parte do sistema
operacional padrão – o Google Chrome, por exemplo, usa este diretório.
proc: diretório virtual que fornece informações sobre o sistema e o processo em execução.
run: diretório usado para armazenar informações de tempo de execução para o sistema e os
aplicativos.
sbin: diretório que armazena comandos binários usados para manter e configurar o sistema
operacional – é a pasta bin do super usuário.
tmp: diretório usado para armazenar arquivos temporários para o sistema e os aplicativos.
usr: diretório que armazena aplicativos, documentação e outros arquivos compartilhados usados
pelo sistema e pelos usuários.
var: diretório que armazena arquivos que variam, como logs de sistema, arquivos de e-mail e
outros arquivos de dados dinâmicos.
TEMA 2 – COMANDOS DE MANIPULAÇÃO DE DIRETÓRIOS
O terminal é a interface de linha de comando que permite aos usuários interagir com o sistema
operacional Linux. Através do terminal, os usuários podem executar comandos para realizar tarefas
como gerenciar arquivos, instalar softwares, gerenciar processos e realizar configurações do sistema.
O terminal do Linux é uma ferramenta poderosa e flexível, amplamente utilizada por
administradores de sistemas e desenvolvedores. Além de ser mais rápido e eficiente em comparação
a interfaces gráficas, o terminal permite aos usuários automatizar tarefas repetitivas e executar tarefas
em lote com facilidade. Além disso, muitas distribuições Linux incluem recursos adicionais, como
autocompletar comandos, histórico de comandos e shell diferentes para escolha.
13/03/2024, 01:47 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 7/16
Vamos começar a conhecer os comandos de manipulação de diretórios em Linux.
2.1 COMANDO LS
O comando ls é um dos comandos mais básicos e amplamente utilizados no terminal Linux. A
sigla ls significa list (listar). Ela é usada para listar os arquivos e diretórios em um diretório. A sintaxe
básica do comando ls é:
ls [opções] [caminho/diretório]
Alguns dos principais parâmetros do comando ls incluem:
-l, de arquivos e data de modificação;
-a, que mostra todos os arquivos, incluindo aqueles ocultos que começam com um ponto (.); e
-h, que exibe o tamanho dos arquivos em uma formatação humanamente legível.
Um exemplo de uso do comando ls é listar os arquivos e diretórios em um diretório específico:
ls ~/Downloads
Este comando irá exibir todos os arquivos e diretórios na pasta de downloads do usuário
corrente.
2.2 COMANDO CD
A sigla cd significa change directory (mudar diretório), sendo usada para mudar o diretório de
trabalho atual. A sintaxe básica do comando cd é:
cd [caminho/diretório]
Alguns dos principais parâmetros do comando cd incluem:
"." (ponto), que representa o diretório atual;
".." (ponto ponto), que representa o diretório pai (um nível acima do diretório atual); e
"~" (til), que representa o diretório home do usuário corrente.
Um exemplo de uso do comando cd é mudar para o diretório home do usuário corrente:
cd ~
13/03/2024, 01:47 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 8/16
2.3 COMANDO MKDIR
O comando mkdir é utilizado para criar novos diretórios em sistemas operacionais Linux. A sigla
mkdir significa make directory (criar diretório). A sintaxe básica do comando mkdir é:
mkdir [nome_do_diretório]
Alguns dos principais parâmetros do comando mkdir incluem:
-p, que permite criar diretórios aninhados, ou seja, diretórios dentro de outros diretórios; e
-m, que permite definir as permissões para o novo diretório.
Um exemplo de uso do comando mkdir é criar um diretório chamado novo_diretorio, como:
mkdir novo_diretorio
2.4 COMANDO RMDIR
O comando rmdir é utilizado para remover diretórios vazios em sistemas operacionais Linux. A
sigla rmdir significa remove directory (remover diretório). A sintaxe básica do comando rmdir é:
rmdir [nome_do_diretório]
Alguns dos principais parâmetros do comando rmdir incluem:
-p, que permite remover diretórios aninhados, ou seja, diretórios dentro de outros diretórios; e
-v, que exibe mensagens na tela sobre as ações realizadas pelo comando.
Um exemplo de uso do comando rmdir" é remover um diretório chamado
diretorio_a_ser_removido
rmdir diretorio_a_ser_removido
Este comando irá remover o diretório diretorio_a_ser_removido se ele estiver vazio. Se o diretório
não estiver vazio, o comando apresentará uma mensagem de erro.
2.5 COMANDO RM
13/03/2024, 01:47 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 9/16
O comando rm é utilizado para remover arquivos e diretórios. A sigla rm significa remove
(remover). A sintaxe básica do comando rm é:
rm [nome_do_arquivo_ou_diretório]
Alguns dos principais parâmetros do comando rm incluem:
-r ou -R, que permite remover diretórios e seus conteúdos recursivamente;
-f, que força a remoção sem confirmação ou mensagem de erro; e
-v, que exibe mensagens na tela sobre as ações realizadas pelo comando.
Um exemplo de uso do comando rm é remover um arquivo chamado arquivo_a_ser_removido:
rm arquivo_a_ser_removido
Este comando irá remover o arquivo arquivo_a_ser_removido e não exibirá nenhuma mensagem
na tela. Observe que, ao usar o comando rm, não é possível desfazer a ação – portanto, é importante
tomar cuidado ao usá-lo.
2.6 COMANDO PWD
O comando pwd (print working directory) é utilizado para imprimir o caminho completo da pasta
atual no sistema. A sintaxe é simples, sem a necessidade de parâmetros.
Ao executar esse comando, o terminal irá mostrar o caminho absoluto da pasta atual. Por
exemplo, se o usuário estiver na pasta /home/user/docs, o comando pwd retornará /home/user/docs.
Esse comando é útil para verificar em que pasta o usuário se encontra no momento e também para
construir caminhos absolutos a partir da pasta atual.
TEMA 3 – COMANDOS DE GERENCIAMENTO DE PACOTES
O gerenciamento de pacotes é uma das principais características do sistema operacional Linux.
Trata-se de um dos aspectos mais importantes na administração de sistemas. O sistema de
gerenciamento de pacotes permite que os usuários instalem, atualizem, removam e gerenciem
facilmente os programas e bibliotecasinstalados no sistema.
13/03/2024, 01:47 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 10/16
Os pacotes no Ubuntu são arquivos .deb que contêm informações sobre a instalação, a
configuração e as dependências de software. O gerenciador de pacotes do Ubuntu, o apt, é
responsável por baixar e instalar os pacotes necessários para o sistema, além de garantir que as
dependências sejam resolvidas corretamente. Além disso, o apt também permite que os usuários
atualizem todo o sistema, ou apenas pacotes específicos, de maneira fácil e segura.
3.1 COMANDO APT
A sintaxe básica é:
apt [opções] [comando] [pacote1] [pacote2] ...
Os principais parâmetros incluem:
update: atualiza a lista de pacotes disponíveis;
upgrade: atualiza os pacotes já instalados para sua versão mais recente;
install: instala um pacote;
remove: remove um pacote;
list: descobre se o pacote está instalado ou não, e qual a sua versão; e
search: procura por um pacote no repositório.
Um exemplo de uso é:
sudo apt update
 sudo apt install vlc
Este exemplo atualiza a lista de pacotes disponíveis e instala o pacote vlc, referente ao VLC Player.
É importante lembrar que o comando sudo é necessário para executar comandos como
administrador.
3.2 COMANDO DPKG
O comando dpkg é um gerenciador de pacotes para sistemas operacionais baseados em Debian,
como o Ubuntu. É útil para instalar pacotes fora do repositório padrão do sistema. O próprio Google
Chrome é um exemplo que precisa ser instalado dessa maneira. A sintaxe básica é:
dpkg [opções] nome_do_pacote
13/03/2024, 01:47 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 11/16
Alguns dos principais parâmetros são:
-i (instalar): instala um pacote específico;
-r (remover): remove um pacote específico;
-l (listar): lista todos os pacotes instalados; e
-S (buscar): busca por um pacote específico.
TEMA 4 – COMANDOS DE PROCESSOS
Em um sistema operacional Linux, um processo é uma instância em execução de um
programa ou aplicação. Cada processo tem a sua própria identificação única (PID), espaço de
endereçamento virtual, informações de status e recursos alocados, como memória RAM e CPU.
Quando um usuário executa um comando ou inicia um aplicativo, um novo processo é criado.
Processos podem estar em background ou em foreground¸ termos usados para descrever a
prioridade e a forma como os processos são executados em um sistema operacional Linux. Processos
em foreground estão sendo executados atualmente, recebendo a entrada do teclado e saída de tela.
Já os processos em background estão sendo executados em segundo plano, sem interação com o
usuário. Processos em background são úteis para tarefas que precisam ser executadas, mas não
precisam de atenção imediata, como downloads ou backup.
Já um job é uma tarefa específica executada no terminal do Linux. Os jobs são basicamente
processos executados no terminal, como a execução de um comando de background ou a suspensão
de um processo. Os jobs são identificados por um número de job (JID). O usuário pode acessar o
status dos jobs ativos, suspender ou retomar a execução usando os comandos de gerenciamento de
jobs do shell.
4.1 COMANDO PS
O comando ps no Linux é utilizado para exibir informações sobre processos ativos no sistema. A
sintaxe básica do comando é:
ps [OPÇÕES]
Alguns dos principais parâmetros utilizados com o comando ps incluem:
13/03/2024, 01:47 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 12/16
-a: mostra todos os processos, incluindo aqueles de outros usuários;
-e: mostra todos os processos, como o parâmetro -a;
-f: exibe a árvore de processos; e
-u: exibe informações sobre os processos de um determinado usuário.
4.2 COMANDO TOP
O comando top no Linux é um utilitário para monitorar processos. Ele mostra uma lista interativa
de processos que estão sendo executados no sistema, incluindo informações como CPU, memória,
nome do processo e tempo de execução. Vejamos a sintaxe básica do comando:
top [OPÇÕES]
Alguns dos principais parâmetros do comando top são:
-d: especifica a frequência de atualização da lista de processos;
-p: especifica quais processos deseja-se visualizar;
-u: especifica um usuário específico para exibir processos; e
-h: mostra ajuda com informações sobre os parâmetros do comando.
4.3 COMANDO JOBS
O comando jobs no Linux é usado para exibir a lista de jobs em segundo plano em uma sessão de
terminal atual. Ele não apresenta parâmetros. A sua sintaxe é simplesmente jobs.
Exemplo de uso:
$ sleep 100 &
 $ jobs
 [1]+ Running sleep 100 &
Neste exemplo, o comando sleep 100 & coloca o processo sleep em segundo plano, enquanto o
comando jobs mostra que há um job em segundo plano, com o número 1, que está em execução.
4.4 COMANDOS FG E BG
13/03/2024, 01:47 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 13/16
Os comandos fg (foreground) e bg (background) são usados para controlar processos em
execução no terminal do Linux. O comando fg é usado para trazer um processo em background para o
foreground – ou seja, o processo passa a ser o principal em execução no terminal. Já o comando bg é
usado para enviar um processo para background, quando o processo continua a ser executado, mas
agora em segundo plano, permitindo que o usuário execute outros processos no terminal sem
interromper o processo em background.
4.5 COMANDO KILL
O comando kill do Linux é usado para encerrar ou interromper processos. A sintaxe básica desse
comando é:
kill [OPÇÕES] PID
Onde PID é o número de identificação do processo que se deseja encerrar ou interromper.
Alguns dos principais parâmetros utilizados com o comando kill são:
-l: lista os sinais que podem ser enviados para os processos;
-s: envia o sinal SIG para o processo; e
-9: envia o sinal de interrupção SIGKILL, que é usado para forçar o encerramento de um
processo.
Um exemplo de uso do comando kill é:
kill -9 1456
Neste exemplo, o comando envia o sinal SIGKILL (9) para o processo com PID 1456, forçando o
seu encerramento.
TEMA 5 – COMANDOS DE ACESSO E PERMISSÕES
As permissões de acesso no Linux são uma forma de controlar quem pode acessar arquivos e
diretórios em um sistema de arquivos Linux. Isso permite que os administradores de sistemas atuem
como gerentes de segurança de arquivos, protegendo arquivos sensíveis e concedendo acesso
apenas a usuários confiáveis.
13/03/2024, 01:47 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 14/16
Em um sistema Linux, cada arquivo ou diretório é associado a um usuário proprietário e a um
grupo de usuários. O proprietário, também chamado de dono (owner) do arquivo ou diretório, é o
usuário responsável pelo arquivo ou diretório. Apenas ele pode realizar determinadas operações no
arquivo ou diretório, como modificá-lo ou excluí-lo. O user ID (identificador de usuário) é um número
único atribuído a cada usuário no sistema. Ele identifica de forma única cada usuário, sendo utilizado
para controlar o acesso a arquivos e diretórios. Quando um arquivo ou diretório é criado, o usuário
atualmente logado é definido como o proprietário e o user ID desse usuário é armazenado com o
arquivo ou o diretório.
No Linux, um grupo é uma coleção de usuários com acesso a um ou mais arquivos ou diretórios.
Quando um arquivo ou diretório é criado, ele é atribuído a um grupo específico. O group ID (GID) é o
número único que identifica o grupo ao qual o arquivo ou diretório pertence. O GID pode ser usado
para conceder ou restringir o acesso ao arquivo ou diretório para os usuários que fazem parte do
grupo. Por exemplo, se um arquivo pertencer a um grupo "projeto", os usuários que fazem parte
desse grupo podem receber permissões de leitura, escrita ou execução para esse arquivo,
dependendo das permissões definidas.
5.1 TIPOS DE PERMISSÕES DE ACESSO
Existem três tipos de permissões de acesso para arquivos e diretórios: leitura, escrita e execução.
A permissão de leitura (r - read) permite que o arquivo ou diretório seja lido pelo usuário.Em
diretórios, permite listar conteúdo com o comando ls, por exemplo.
A permissão de escrita (w - write) permite que o arquivo ou diretório seja modificado pelo
usuário. Em diretórios, podemos gravar arquivos dentro dele. Ainda, um arquivo ou diretório só pode
ser apagado se tiver permissão de escrita.
A permissão de execução (x - execute) permite que o arquivo seja executado como um
programa. Permite que um diretório seja acessado através do comando cd.
Essas permissões são sempre atribuídas a três entidades diferentes: dono, grupo e outros. Cada
entidade pode ter permissões de leitura, escrita e execução diferentes para o mesmo arquivo ou
diretório.
Vejamos um exemplo de permissões em um arquivo:
13/03/2024, 01:47 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 15/16
-rwxr-xr-- vinicius users nomeArquivo
1° caractere: define o tipo do arquivo (um "d" é um diretório; um "l“, um link a um arquivo no
sistema; um "-" é um arquivo comum).
(2-4)° caractere: permissões do dono do arquivo (vinicius).
(5-7)° caractere: permissões do grupo do arquivo (users).
(8-10)° caractere: permissões de outros usuários ao arquivo.
5.2 O ROOT (SUPERUSUÁRIO)
O root é o usuário administrador no sistema Linux. Ele tem permissões totais sobre o sistema,
incluindo acesso a todos os arquivos e diretórios, bem como a capacidade de executar comandos
com privilégios elevados. Isso significa que o root pode fazer mudanças significativas no sistema,
incluindo instalação de software, configuração de serviços e gerenciamento de usuários. É importante
que o uso da conta root seja feito com precaução, pois uma ação mal intencionada ou equivocada
pode causar problemas graves no sistema. É recomendável que o usuário root seja utilizado somente
em situações específicas e que a maioria das tarefas sejam realizadas por outro usuário com
permissões restritas.
5.3 COMANDO CHMOD
O chmod é um comando utilizado para mudar as permissões de acesso de um arquivo ou
diretório. A sintaxe geral para o comando chmod é:
chmod [OPÇÕES] MODO ARQUIVO/DIRETÓRIO
O quadro apresenta a nomenclatura utilizada nesse comando.
Quadro 1 – Comando chmod
Caractere Significado Caractere Significado
u Usuário r Leitura
g Grupo w Escrita
o Outros x Execução
13/03/2024, 01:47 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 16/16
a Todos + Adiciona permissão
- Remove permissão
Exemplo de uso: para dar permissões de leitura e escrita para o dono e o grupo, e apenas
permissões de leitura para outros usuários em um arquivo chamado arquivo.txt, você pode usar o
seguinte comando:
chmod u+rw,g+rw,o+r arquivo.txt
FINALIZANDO
O terminal do Linux é uma ferramenta essencial para o gerenciamento do sistema operacional.
Ele permite aos usuários controlar o sistema através de comandos, oferecendo uma ampla gama de
opções, como gerenciamento de arquivos e diretórios, instalação e gerenciamento de pacotes,
gerenciamento de processos e gerenciamento de permissões de acesso. É importante que qualquer
usuário de Linux saiba utilizar o terminal, pois ele é uma ferramenta poderosa e flexível para resolver
problemas, automatizar tarefas e aprimorar a sua eficiência.
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 1/19
 
 
 
 
 
 
 
 
 
FUNDAMENTOS DE DESIGN DE
SISTEMAS
AULA 4
 
 
 
 
 
 
 
 
 
 
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 2/19
 
 
Prof. Winston Fung
CONVERSA INICIAL
No processo de desenvolvimento de um sistema ou aplicativo, existe uma estrutura fundamental
que orienta as decisões sobre tecnologias, desempenho, escalabilidade, interoperabilidade,
compatibilidade e desempenho – essa é a Arquitetura de Software. Ela fornece o esquema essencial e
os princípios de design que não apenas definem a organização do sistema, mas também ditam como
ele vai evoluir ao longo do tempo. Compreender a Arquitetura de Software é, portanto, uma peça-
chave para o desenvolvimento eficaz e a longevidade dos sistemas de software. Vamos conhecer
essas definições e algumas arquiteturas de sistemas de informações.
TEMA 1 – ARQUITETURA DE SOFTWARE
No cenário em constante evolução da tecnologia, o desenvolvimento de sistemas e aplicativos
tornou-se uma tarefa complexa e desafiadora. Com sistemas tornando-se cada vez mais complexos,
surge a necessidade de se adotar uma estrutura robusta que garanta a definição adequada de
tecnologias, desempenho, escalabilidade, interoperabilidade, compatibilidade e desempenho – a
Arquitetura de Software.
Essa arquitetura busca orientar a concepção de um sistema de software estruturado, levando em
consideração as necessidades do cliente e as tecnologias associadas. A ideia é que o sucesso do
desenvolvimento de um sistema dependa de uma documentação bem definida de todos os seus
aspectos, facilitando a comunicação entre a equipe de desenvolvimento e garantindo que a aplicação
atenda aos padrões necessários para funcionar de forma eficaz.
1.1 O QUE É UM PADRÃO NA ARQUITETURA DE SOFTWARE?
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 3/19
Dentro da Arquitetura de Software, um padrão arquitetural é o elemento responsável por
orientar uma visão alinhada aos negócios. Esse padrão serve como uma bússola, direcionando as
decisões relacionadas ao projeto de software, definindo suas utilidades, linguagens, tecnologias e o
relacionamento entre os subsistemas na construção de soluções para a aplicação.
1.2 O SURGIMENTO DA ARQUITETURA DE SOFTWARE
A discussão sobre estruturas sistêmicas começou no final dos anos 1960, quando cientistas
começaram a debater formas de estruturar um sistema antes do seu desenvolvimento. Contudo, a
Arquitetura de Software só ganhou um panorama mais formal e reconhecido na década de 1990, com
a publicação do livro Software architecture: perspectives on an emerging discipline, por Mary Shaw e
David Garlan, da Carnegie Mellon University. Nele, Shaw e Garlan apresentam várias perspectivas
sobre a arquitetura de software, destacando sua importância na coordenação de grandes equipes de
desenvolvimento e no gerenciamento de complexidades sistêmicas.
Além disso, a Arquitetura de Software tem desempenhado um papel cada vez mais crucial na
definição de padrões e melhores práticas na engenharia de software. A norma ISO/IEC/IEEE
42010:2011, por exemplo, foi estabelecida com o objetivo de definir padrões para a criação, análise e
descrição de arquiteturas de software. Essa norma representa um marco significativo na evolução da
Arquitetura de Software, demonstrando seu reconhecimento e valor dentro da comunidade de
engenharia de software.
A evolução do campo da Arquitetura de Software também foi moldada pela rápida evolução da
tecnologia. Por exemplo, a transição para a computação em nuvem no século XXI tem tido grandes
implicações para a Arquitetura de Software, exigindo novas abordagens e padrões para o design e a
gestão de sistemas de software distribuídos.
Enquanto a Arquitetura de Software pode ter começado como uma maneira de gerenciar a
complexidade e coordenar equipes de desenvolvimento, ela se tornou uma disciplina, com um corpo
de conhecimento, padrões e práticas que continuam a evoluir para atender às demandas de um
cenário tecnológico em constante mudança.
1.3 O PROFISSIONAL EM ARQUITETURA DE SOFTWARE
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 4/19
O papel do profissional em Arquitetura de Software vai além de meramente programar. Esse
profissional deve oferecer soluções para corporações por meio do desenvolvimento de sistemas de
tecnologia da informação que melhorem o desempenho das empresas.
Para isso, é necessário compreender os negócios da corporação, ter uma postura colaborativa e
ter conhecimento em diversas tecnologias, serviços, normas, legislações, cloud computing e muito
mais.
As habilidades desejadas de um Arquiteto de Software incluem:
Conhecimento do domínio e tecnologias relevantes;
Compreensãode questões técnicas para o desenvolvimento de sistemas;
Conhecimento de técnicas de levantamento de requisitos e de métodos de modelagem e
desenvolvimento de sistemas;
Entendimento das estratégias de negócios das empresas;
Conhecimento de processos, estratégias e produtos das empresas concorrentes;
Capacidade de analisar, compreender, propor e criar formas inovadoras de negócios e soluções
computacionais.
Ao dominar essas habilidades, o Arquiteto de Software torna-se um profissional indispensável no
desenvolvimento de soluções tecnológicas que atendam às demandas do mercado e impulsionem o
crescimento dos negócios.
TEMA 2 – ESTILO ARQUITETURAL
O estilo arquitetural é uma maneira de se pensar sobre a organização e o design de um sistema
de software. Ele molda a maneira como vemos o sistema como um todo, permitindo a definição clara
de como os componentes do sistema estão organizados e interagem entre si. O estilo arquitetural é
essencial para descrever a estrutura macroscópica de um sistema de software e pode influenciar
fatores como eficiência, flexibilidade, segurança e usabilidade do sistema.
O estilo arquitetural serve para caracterizar a arquitetura de software de um sistema,
possibilitando a
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 5/19
Identificação de componentes: o arquiteto identifica quais são os principais elementos que
têm funcionalidades bem definidas, como um componente de cadastro de informações de
usuários e um componente de autenticação de usuários em uma aplicação web;
Identificação de mecanismo de interação: a comunicação entre objetos por meio de troca de
mensagens constitui uma forma por meio da qual os componentes de software interagem entre
si;
Identificação de propriedades: o arquiteto pode analisar as propriedades oferecidas por cada
estilo baseado na organização dos componentes e nos mecanismos de interação.
Por exemplo, considere a arquitetura de um aplicativo web. Podemos identificar vários
componentes principais: um componente de interface do usuário, um componente de gerenciamento
de sessão, um componente de banco de dados etc. Cada um desses componentes tem um papel bem
definido – o componente de interface do usuário é responsável por interagir com o usuário, o
componente de gerenciamento de sessão é responsável por controlar o acesso do usuário ao sistema,
e o componente de banco de dados é responsável por armazenar e recuperar dados.
A maneira como esses componentes interagem é um aspecto crucial do estilo arquitetural. Em
uma arquitetura de três camadas, por exemplo, o componente de interface do usuário interage com o
componente de gerenciamento de sessão, que, por sua vez, interage com o componente de banco de
dados. Essa estrutura permite uma separação clara de responsabilidades e facilita a manutenção e a
evolução do sistema.
2.1 POR QUE O ESTILO ARQUITETURAL É IMPORTANTE?
À medida que os sistemas de software se tornam mais complexos, a necessidade de níveis mais
altos de abstração se torna cada vez mais crucial. O estilo arquitetural fornece essa abstração,
ajudando os envolvidos no projeto a entender a estrutura geral do sistema e a se comunicar
efetivamente sobre ela.
Por exemplo, em um projeto de grande escala, pode ser útil utilizar um estilo arquitetural
baseado em microsserviços. Isso permite que diferentes equipes trabalhem em diferentes serviços,
cada um com sua própria base de código e estrutura de dados, o que pode aumentar a produtividade
e facilitar a manutenção do sistema.
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 6/19
2.2 VANTAGENS DO ESTILO ARQUITETURAL
A adoção de um estilo arquitetural apropriado traz várias vantagens. Ele fornece suporte para
atributos de qualidade, como desempenho, segurança e confiabilidade, ajudando a garantir que o
sistema atenda a seus requisitos não funcionais.
Além disso, um estilo arquitetural bem definido facilita a diferenciação entre diferentes
arquiteturas, tornando mais fácil para as partes interessadas entenderem as características únicas de
cada sistema.
Além disso, um bom estilo arquitetural pode reduzir o esforço necessário para entender e manter
o projeto, já que proporciona uma visão clara da organização do sistema. Ele também pode facilitar o
reuso de arquitetura e conhecimento em novos projetos, acelerando o desenvolvimento e reduzindo
o risco de erros.
Destacam-se as seguintes vantagens:
Suporte a atributos de qualidade (ou requisitos não funcionais);
Diferenciação entre arquiteturas;
Menos esforço para entender o projeto;
Reuso de arquitetura e conhecimento em novos projetos;
Suporte ao planejamento e a gerência da manutenção e integridade da solução.
O estilo arquitetural fornece suporte para o planejamento e a gerência da manutenção do
sistema, ajudando a garantir a integridade da solução ao longo do tempo. Por exemplo, se um
sistema é projetado com um estilo arquitetural baseado em componentes, é mais fácil planejar e
gerenciar atualizações e melhorias para cada componente individualmente, em vez de ter que
atualizar todo o sistema de uma vez.
Dessa forma, o estilo arquitetural é uma ferramenta crucial para projetar, implementar e manter
sistemas de software eficientes e eficazes. Ele permite uma compreensão clara da estrutura geral do
sistema, facilita a comunicação entre as partes interessadas e ajuda a garantir que o sistema atenda às
suas necessidades e requisitos.
TEMA 3 – DOCUMENTAÇÃO DA ARQUITETURA DE SOFTWARE
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 7/19
A documentação da arquitetura de software é um elemento crucial do desenvolvimento de
sistemas, atuando como um registro duradouro das decisões e estruturas que moldam um sistema de
software. Como o Software Engineering Institute da Carnegie Mellon University observa, a
documentação da arquitetura de software "fala pelo arquiteto, hoje, amanhã e daqui a 20 anos"
(“Software architecture documentation speak for the architect, today, tomorrow and 20 Years from
now”). Essa documentação é o elo entre a concepção do sistema e sua implementação, manutenção e
evolução. Dessa forma, a documentação de software é uma parte vital de qualquer projeto de
desenvolvimento de software. Ela serve como um mapa, orientando os desenvolvedores e ajudando-
os a entender a estrutura, as funções e os processos do software.
Para quem está iniciando os estudos, a documentação pode parecer um detalhe secundário em
comparação ao próprio código. No entanto, é preciso enfatizar que a documentação de software é
tão crucial quanto o código. É por meio dela que se descreve o que o software faz, como ele o faz e
por que faz daquela forma, permitindo que outras pessoas entendam e trabalhem com o software de
maneira mais eficaz.
Com frequência, ocorrem situações em que as arquiteturas de software são criadas sem uma
documentação efetiva, resultando em uma comunicação inadequada. Isso significa que os
desenvolvedores e outros envolvidos no sistema não têm acesso a uma representação adequada da
arquitetura.
Na documentação, destaca-se a criação de documentos que:
Definem as atividades que serão realizadas;
São os primeiros artefatos a agregar qualidade;
São os melhores artefatos nas primeiras fases do desenvolvimento;
São elementos-chave para a posterior manutenção do sistema.
A documentação de software é tão importante que existe uma norma internacional dedicada a
ela, a ISO/IEC/IEEE 42010:2011. Essa norma define um conjunto de diretrizes sobre como a
documentação de software deve ser criada, o que deve incluir e como deve ser organizada, ajudando
a equipe de desenvolvimento a criar documentação de alta qualidade que possa atender às
necessidades de uma variedade de partes interessadas.
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 8/19
No entanto, apesar de sua importância, a documentação de software ainda é frequentemente
negligenciada ou tratada como umincômodo. Essa é uma mentalidade que deve ser desafiada. Uma
boa documentação de software não apenas facilita o trabalho dos desenvolvedores, mas também
permite que o software seja mantido e evoluído ao longo do tempo de uma forma sustentável.
Além disso, ela pode ser uma ferramenta valiosa para a comunicação entre diferentes partes
interessadas, desde gerentes de projeto e usuários até outros desenvolvedores e membros da equipe.
Embora a documentação de software possa parecer um tópico árido e teórico, é na verdade uma
parte fundamental do desenvolvimento de software e uma habilidade que vale a pena aprender e
dominar. Afinal, um código bem escrito pode ser uma obra de arte, mas sem uma documentação
adequada, ele pode ser tão inacessível e inútil quanto uma obra de arte trancada em um cofre.
3.1 PRINCÍPIOS DE UMA BOA DOCUMENTAÇÃO DE SOFTWARE
A documentação eficaz da arquitetura de software é uma tarefa complexa e desafiadora. É
preciso equilibrar o nível de detalhes, clareza, organização e atualização da documentação. Aqui estão
alguns princípios fundamentais para a criação de documentação de arquitetura de software eficaz:
Documentar o ponto de vista do usuário: a documentação deve ser escrita tendo em mente
as pessoas que vão utilizá-la. Elas podem ser desenvolvedores, gerentes de projeto, analistas de
qualidade ou partes interessadas do negócio. É importante usar uma linguagem clara, evitar
jargões desnecessários e fornecer informações relevantes para cada tipo de usuário;
Evitar ambiguidades: a documentação deve ser precisa e inequívoca. Evitar o uso de termos
vagos ou confusos e garantir que os conceitos sejam claramente definidos e consistentemente
usados em toda a documentação;
Usar um modelo ou template: a documentação deve ser organizada de maneira padrão para
facilitar a navegação e a compreensão. Um modelo bem projetado pode ajudar a garantir que
todas as áreas importantes sejam cobertas e que a informação seja apresentada de forma clara
e coerente;
Evitar repetições desnecessárias: embora alguma redundância possa ser útil para fins de
clareza, a repetição desnecessária pode tornar a documentação confusa e difícil de navegar. No
entanto, em alguns casos, a redundância pode ser aceitável, por exemplo, quando é necessário
entender o contexto ou a relação entre as informações;
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 9/19
Documentar as razões para as decisões tomadas: é importante registrar não apenas as
decisões tomadas, mas também as razões por trás delas. Isso pode incluir discussões sobre
alternativas consideradas e rejeitadas, bem como a lógica por trás da decisão final;
Manter a documentação atualizada: a documentação deve refletir o sistema como ele é, não
como era. Isso significa que a documentação deve ser atualizada sempre que o sistema for
modificado;
Revisar a documentação criada: a revisão da documentação por pares pode ajudar a garantir
que ela seja clara, precisa e completa;
Tornar a documentação acessível a todos os participantes do projeto: todos os que estão
envolvidos no projeto devem ter acesso à documentação. Isso inclui não apenas a equipe de
desenvolvimento, mas também os interessados, como os gerentes de projeto, cliente e os
usuários finais.
3.2 ISO/IEC/IEEE 42010:2011
A norma ISO/IEC/IEEE 42010:2011, também conhecida como "Sistemas e engenharia de software
– Arquitetura de descrição", desempenha um papel crítico no campo da Arquitetura de Software. Ela
estabelece um padrão para a descrição da arquitetura de sistemas e softwares, proporcionando um
modelo conceitual que permite aos arquitetos de software descrever e comunicar efetivamente a
arquitetura de um sistema.
Vale destacar que a norma não se limita a especificar um formato ou estrutura específica para
uma descrição da arquitetura. Em vez disso, ela define um conjunto de conceitos e relações que
formam a base para tais descrições. Isso dá aos arquitetos de software a liberdade de adaptar a
norma às suas necessidades específicas, enquanto garante que a descrição da arquitetura seja
consistente, compreensível e útil para todas as partes interessadas.
Figura 1 – Mapeamento sobre descrição de arquitetura de software com base na ISSO/IEC/IEEE
42010:2011
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 10/19
Fonte: ISO/IEC/IEEE 42010:2011.
A ISO/IEC/IEEE 42010:2011 baseia-se em várias visões para documentar a de um sistema. As
"visões" são como diferentes lentes por meio das quais podemos examinar a arquitetura de um
sistema, cada uma focada em um aspecto específico. Por exemplo, a visão lógica trata da
funcionalidade do sistema, a visão de desenvolvimento foca na integração de componentes, a visão
de processo trata da gestão da implementação e a visão física lida com funcionalidades para o
usuário final.
Ao utilizar essas visões, é possível validar o design da arquitetura em relação aos casos de uso do
sistema. Isso garante que a arquitetura seja capaz de suportar todos os requisitos do sistema, tanto
funcionais quanto não funcionais.
Em um cenário de futuro, em que a arquitetura de software deve lidar com desafios crescentes,
como computação em nuvem, microsserviços e inteligência artificial, a norma ISO/IEC/IEEE
42010:2011 continua sendo uma ferramenta valiosa. Ao garantir uma documentação clara, consistente
e eficaz da arquitetura de software, ela ajuda a garantir que os sistemas sejam construídos de maneira
eficiente e eficaz, prontos para enfrentar os desafios do futuro.
3.3 AS VIEWS DA ISO/IEC/IEEE 42010:2011
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 11/19
A norma ISO/IEC/IEEE 42010:2011 nos introduz a quatro tipos distintos de 'views': Lógica,
Desenvolvimento, Processo e Física. Cada uma dessas 'views' enfoca um aspecto específico do
sistema, permitindo aos arquitetos, desenvolvedores e outras partes interessadas entender diferentes
facetas do sistema.
Figura 2 – Representação das visões de arquitetura de software segundo a ISO/IEC/IEEE 42010:2011
Crédito: Winston Sem Lun Fung/Freepik.
Visão Lógica: essa visão concentra-se na funcionalidade do sistema. Ela descreve os principais
elementos funcionais do sistema, suas responsabilidades, propriedades e interfaces;
Visão de Desenvolvimento: essa visão aborda a estrutura do software, incluindo seus
componentes e subcomponentes. Isso é particularmente útil para os desenvolvedores que estão
construindo e integrando o software;
Visão do Processo: essa visão trata do aspecto dinâmico do sistema, incluindo o
processamento de tarefas, concorrência e sincronização;
Visão Física: essa visão descreve a infraestrutura necessária para o sistema, incluindo hardware,
software de sistema e redes.
Essas visões, juntas, fornecem uma visão completa e compreensiva do sistema e sua arquitetura.
Cada uma delas é relevante para diferentes partes interessadas e serve a diferentes propósitos. A
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 12/19
ISO/IEC/IEEE 42010:2011 fornece um padrão útil e eficaz para a documentação da arquitetura de
software.
TEMA 4 – OS DIFERENTES MODELOS ARQUITETURAIS
Os modelos arquiteturais de software são uma forma de organizar os elementos funcionais de
um sistema de software. Eles ajudam a definir a estrutura geral de um sistema, especificando como as
diferentes partes de um sistema vão interagir. Existem vários modelos arquiteturais que são
comumente usados, e a escolha de um modelo depende das necessidades específicas do sistema em
questão.
4.1 ARQUITETURA EM CAMADAS (LAYERED PATTERN)
A arquitetura em camadas organiza um sistema em um conjunto de camadas, cada uma das
quais fornece serviços para a camada acima dela. Esse modelo de arquitetura é especialmente útil
para o desenvolvimento de sistemas complexos, pois permite que diferentes partes do sistema sejam
desenvolvidas e atualizadas de forma independente.
Figura 3 – Exemplo de Arquiteturaem camadas
Fonte: Fung, 2023.
Pense na arquitetura em camadas como um bolo de vários andares. Cada andar do bolo é como
uma camada no seu software.
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 13/19
Cada camada tem uma responsabilidade específica, e cada uma se comunica com as camadas
acima e abaixo dela.
Por exemplo, em um aplicativo de e-commerce: a camada inferior (como a base do bolo) pode
ser a camada de dados, que lida com tudo relacionado ao armazenamento e recuperação de
informações do banco de dados.
O próximo andar do bolo é a camada de negócios, que processa as regras do e-commerce, como
calcular descontos ou verificar a disponibilidade de estoque. O andar superior do bolo é a camada de
apresentação, que lida com a interação com o usuário – tudo o que o usuário vê e com o que
interage no site.
4.2 ARQUITETURA CLIENTE-SERVIDOR (CLIENT-SERVER PATTERN)
A arquitetura cliente-servidor é um modelo em que um servidor fornece serviços, e um ou mais
clientes consomem esses serviços. O servidor mantém e gerencia a maior parte dos recursos de dados
e funções de negócios, enquanto o cliente é responsável por solicitar esses serviços e apresentar os
resultados ao usuário.
Figura 4 – Exemplo da arquitetura cliente-servidor
Fonte: Fung, 2023.
A arquitetura cliente-servidor é como um restaurante. O cliente (você, pedindo comida) faz um
pedido (solicita um serviço), e o servidor (o garçom) atende ao pedido e traz a comida (o serviço). No
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 14/19
mundo dos softwares, o "cliente" é o seu computador ou aplicativo, e o "servidor" é o sistema remoto
que está fornecendo os dados ou serviços que o cliente solicitou.
Por exemplo, quando você acessa seu e-mail por meio de um aplicativo, seu aplicativo (o cliente)
solicita ao servidor de e-mail (o servidor) para baixar suas novas mensagens.
4.3 ARQUITETURA MODEL-VIEW-CONTROLLER PATTERN (MVC)
O padrão de arquitetura MVC divide uma aplicação em três partes interconectadas. Isso é feito
para separar representações internas da informação do sistema das maneiras como a informação é
apresentada e aceita do usuário.
Figura 5 – Exemplo da arquitetura MVC
Fonte: Fung, 2023.
No mundo do software:
O "Modelo" é onde os dados e as regras de negócios são armazenados;
A "Visão" é como os dados são apresentados – é a interface do usuário;
O "Controlador" é o que conecta a Visão e o Modelo. Ele atualiza a Visão quando o Modelo
muda e atualiza o Modelo quando o usuário interage com a Visão.
4.4 ARQUITETURA DE MICROSSERVIÇOS (MICROSERVICES PATTERN)
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 15/19
A arquitetura de microsserviços é um estilo de arquitetura que estrutura uma aplicação como
uma coleção de serviços que são:
Altamente manuteníveis e testáveis;
Livremente acoplados, ou seja, cada serviço pode ser atualizado independentemente dos outros;
Independentes, o que permite que cada serviço seja implantado independentemente;
Capazes de serem desenvolvidos e implantados por pequenas equipes.
Figura 2 – Exemplo de arquitetura de microsserviços
Fonte: Fung, 2023.
A arquitetura de microsserviços é como um conjunto de blocos de construção de Lego. Cada
bloco (microsserviço) tem uma função específica e pode ser usado para construir várias estruturas
diferentes (aplicativos). Se você quiser mudar ou atualizar algo, você pode simplesmente substituir ou
mudar alguns blocos, sem ter que desmontar toda a estrutura.
Um exemplo de uso de microsserviços pode ser encontrado na Netflix. Eles utilizam essa
arquitetura para suportar a escalabilidade e a continuidade de seus serviços de streaming. Cada parte
do serviço da Netflix (recomendação de filmes, gerenciamento de contas de usuário, streaming de
vídeos) é gerenciado por um microsserviço independente. Isso significa que, mesmo se uma parte do
sistema falhar, as outras partes do sistema podem continuar funcionando normalmente.
TEMA 5 – O FUTURO DA ARQUITETURA DE SOFTWARE
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 16/19
Olhando para o futuro da arquitetura de software, podemos prever uma profunda influência de
tecnologias emergentes, como computação em nuvem, inteligência artificial (IA) e microsserviços.
Esses avanços estão remodelando a maneira como construímos e interagimos com os sistemas de
software.
5.1 COMPUTAÇÃO EM NUVEM
A computação em nuvem é como uma biblioteca gigante que contém todos os tipos de livros
(ou nesse caso, dados) que você pode acessar a qualquer momento, desde que tenha uma conexão
com a Internet. Isso remove a necessidade de ter um armário de livros enorme (um servidor físico) em
casa.
Assim como a biblioteca, a computação em nuvem permite que as empresas movam suas
operações para a "nuvem" – servidores virtuais hospedados na Internet. Isso significa que os sistemas
não estão mais restritos ao ambiente de uma empresa. Em vez disso, eles podem ser acessados de
qualquer lugar, a qualquer momento.
Por exemplo, um software de gerenciamento de projetos baseado em nuvem permite que as
equipes colaborem em projetos de qualquer lugar do mundo, em vez de estarem confinadas a um
escritório físico.
5.2 INTELIGÊNCIA ARTIFICIAL
A inteligência artificial é como um supercomputador que aprende com as experiências e é capaz
de tomar decisões informadas com base nesse aprendizado. No mundo dos softwares, a IA pode ser
usada para automatizar tarefas complexas, analisar grandes volumes de dados e melhorar a eficiência
operacional.
Por exemplo, os chatbots de atendimento ao cliente, alimentados por IA, podem responder
automaticamente às perguntas frequentes dos clientes, liberando os representantes humanos para
lidar com consultas mais complexas. A IA também está sendo usada para prever tendências e
comportamentos do consumidor, ajudando as empresas a tomarem decisões mais informadas.
5.3 MICROSSERVIÇOS
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 17/19
Os microsserviços são como uma equipe de especialistas, cada um focado em um aspecto
específico de um projeto. Em vez de ter um único time tentando fazer tudo, temos vários times
pequenos (microsserviços), cada um lidando com uma parte do projeto.
No mundo do software, isso significa que um aplicativo é dividido em pequenos serviços
independentes que podem ser desenvolvidos, implantados e escalados individualmente. Isso facilita a
manutenção e atualização do sistema, pois um problema em um serviço não afeta os outros.
Por exemplo, um aplicativo de comércio eletrônico pode ter um microsserviço para lidar com
pedidos de clientes, outro para gerenciar o inventário e outro para processar pagamentos. Cada
microsserviço pode ser desenvolvido e atualizado independentemente, melhorando a eficiência e a
produtividade.
O futuro da arquitetura de software é promissor e cheio de possibilidades infinitas. À medida que
continuamos a inovar e avançar, é vital que os futuros engenheiros de software entendam essas
tendências emergentes e aprendam a adaptá-las às suas práticas de desenvolvimento. Essa é a chave
para criar soluções de software robustas, escaláveis e eficientes que atendam às demandas em
constante mudança do mundo digital.
FINALIZANDO
Nesta etapa, analisamos os diferentes aspectos da arquitetura de software, desde a compreensão
dos estilos arquiteturais, a importância de uma documentação adequada e a exploração dos modelos
arquiteturais predominantes até a consideração das tendências futuras. O estudo ampliou a nossa
percepção de como a arquitetura de software pode ser efetivamente utilizada para impulsionar a
qualidade e a eficiência do desenvolvimento de sistemas.
Visitamos a importância dos estilos arquiteturais na estruturação do sistema, a maneira como os
componentes são identificados e interagem entre si e as propriedades que caracterizam cada estilo.
Esclarecemos também a importância da documentaçãoda arquitetura de software, em que os
princípios de uma boa documentação foram destacados, bem como a explanação da norma
ISO/IEC/IEEE 42010:2011, que orienta a estruturação da documentação de arquitetura.
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 18/19
Aprofundamos nossa compreensão dos diferentes modelos arquiteturais, com ênfase nos
padrões arquiteturais em camadas, cliente-servidor, MVC e microsserviços. Cada um desses modelos,
conforme explicado, tem sua própria força e é aplicável a diferentes contextos de sistemas.
Olhamos também para o futuro da arquitetura de software, com destaque para o papel da
computação em nuvem, inteligência artificial e microsserviços no desenvolvimento de sistemas
modernos. Essas tecnologias emergentes estão proporcionando novas oportunidades para otimizar o
desenvolvimento de software e enfrentar desafios complexos.
Assim, concluímos que o desenvolvimento de sistemas estruturados com uma arquitetura
claramente documentada e disponibilizada para todos os participantes do projeto, aliado ao uso
adequado de tecnologias modernas e emergentes, é essencial para minimizar os riscos associados ao
desenvolvimento e à manutenção do sistema. Além disso, esse processo habilita o melhor
aproveitamento das tecnologias, o compartilhamento efetivo de conhecimento entre a equipe e,
finalmente, a produção de sistemas de software robustos e eficientes que atendam às necessidades
do usuário e às demandas do mercado em constante mudança.
REFERÊNCIAS
FOWLER, M. Padrões de arquitetura de aplicações corporativas. Porto Alegre: Bookman, 2007.
FREEMAN, E.; FREEMAN, E. Use a cabeça! Padrões e projetos. 2. ed. Rio de Janeiro: Alta Books,
2009.
GAMMA, E. et al. Padrões de projetos: soluções reutilizáveis de software orientados a objetos.
Porto Alegre: Bookman, 2007.
NEIL, T. Padrões de design para aplicativos móveis. São Paulo: Novatec, 2012.
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 19/19
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 1/27
 
 
 
 
 
 
 
 
 
FUNDAMENTOS DE DESIGN DE
SISTEMAS
AULA 5
 
 
 
 
 
 
 
 
 
 
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 2/27
 
 
Prof. Winston Fung
CONVERSA INICIAL
Vamos explorar os fundamentos do design de experiência do usuário (UX) e interface do usuário
(UI). Durante esta etapa, iremos analisar conceitos-chave, como entrevistas, ideação, brainstorming e
técnicas de criação, até chegarmos à etapa crucial da prototipação. Nosso objetivo é compreender a
importância de atender às necessidades dos clientes, gerar ideias inovadoras e transformá-las em
protótipos tangíveis. Essa experiência nos proporcionará o aprendizado necessário para desenvolver
interfaces de sistemas eficazes e satisfatórias.
TEMA 1 – O QUE É UX
A tarefa de desenvolver um software é um empreendimento multidisciplinar, exigindo a
colaboração de profissionais de várias áreas, como programadores, analistas de sistemas, especialistas
em banco de dados e designers. Essa equipe precisa compreender e incorporar práticas fundamentais
de design digital centrado no usuário em seu trabalho, garantindo que a experiência do usuário (UX),
funcionalidade e usabilidade estejam na vanguarda do processo de desenvolvimento.
A usabilidade em software não pode ser subestimada. O sistema criado deve ser mais do que
apenas funcional; deve também proporcionar uma experiência agradável ao usuário. Por isso, é
essencial abordar todo o processo de desenvolvimento com uma compreensão profunda do usuário,
com o objetivo de oferecer experiências que atendam às expectativas na comunicação entre a
empresa e o usuário final. Em outras palavras, o UX é fundamental para garantir uma interação
adequada e eficaz com o sistema.
Ao abordar o desenvolvimento de um sistema computacional, é vital ter uma perspectiva
centrada no usuário. O design digital centrado no usuário e a garantia de usabilidade são aspectos
essenciais para a criação de uma experiência de usuário positiva.
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 3/27
A importância de uma boa experiência do usuário (UX) em produtos e serviços, bem como uma
experiência do usuário bem projetada, pode fazer a diferença entre um produto ou serviço bem-
sucedido e um que é esquecido ou abandonado.
Para ilustrar isso, considere o exemplo da Netflix. A Netflix é mais do que um serviço de
streaming de filmes e séries; ela vende uma experiência de uso. Seu ambiente é prático e simples,
com uma disposição intuitiva de opções e um design atraente que torna a utilização uma experiência
agradável. Essa atenção cuidadosa à UX é uma parte significativa do que fez da Netflix uma líder
global em streaming de entretenimento.
Portanto, uma UX eficaz, intuitiva e agradável pode aumentar a satisfação do usuário, o
engajamento e, em última análise, o sucesso do produto ou serviço.
1.1 CRIAÇÃO DA UX
Don Norman, psicólogo cognitivo e arquiteto de experiência do usuário, é amplamente
reconhecido como o criador do termo UX, cunhado durante sua passagem pela Apple na década de
1990. No seu influente livro "The Design of Everyday Things", lançado em 1988, Norman enfatiza a
importância do desenvolvimento iterativo e de um relacionamento harmonioso entre usuário e
produto. O objetivo central é que o design deve facilitar a interação do usuário com o produto,
minimizando potenciais conflitos e complexidades.
Nesse mesmo contexto, a Apple desempenhou um papel fundamental na materialização do
conceito de UX, trazendo-o para o mundo concreto dos dispositivos e softwares. A empresa
estabeleceu um padrão para a criação de ambientes de trabalho mais intuitivos e focados na
experiência do usuário.
Os primeiros computadores da Apple, apesar de revolucionários para a época, eram
comparativamente difíceis de utilizar. No entanto, com o tempo, eles evoluíram para dispositivos mais
práticos e esteticamente agradáveis. As telas ficaram maiores e o design mais elegante, levando em
consideração a usabilidade e a estética em iguais medidas.
Hoje, os dispositivos Apple, como o iMac e o MacBook, são conhecidos por suas telas amplas e
limpas e um ambiente de trabalho quase sem cabos, proporcionando uma experiência completa para
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 4/27
o usuário. Essa atenção cuidadosa ao detalhe e à experiência do usuário é uma marca registrada da
Apple e tem sido um fator-chave em seu sucesso contínuo.
A evolução da Apple no campo da UX culminou na apresentação do iPhone em 2007. Steve Jobs,
CEO da Apple na época, não apenas introduziu um novo dispositivo, mas uma experiência de usuário
completa e única. O iPhone rapidamente se tornou um objeto de desejo, graças à sua funcionalidade
robusta, design elegante e experiência de usuário imersiva.
A interface do usuário (UI) do iPhone foi projetada para ser visualmente agradável e prática de
usar. Com seus ícones distintos e interface tátil intuitiva, facilita o reconhecimento e a interação do
usuário, estabelecendo um novo padrão para a experiência do usuário em dispositivos móveis.
A jornada da Apple no desenvolvimento de uma UX excepcional demonstra a importância de
centrar o design no usuário e a relevância da experiência do usuário no sucesso de um produto.
1.2 UX E UI
Embora Experiência do Usuário (UX) e Interface do Usuário (UI) sejam conceitos intimamente
relacionados e muitas vezes confundidos, eles têm diferenças fundamentais e se referem a diferentes
aspectos do design de produtos.
A UX abrange toda a experiência que o usuário tem ao interagir com um produto ou serviço. Isso
vai além da experiência na tela e inclui todas as interações que o usuário tem com o produto, desde o
processo de descoberta e aquisição do produto, até o suporte pós-venda. A UX visa aperfeiçoar a
jornada do usuário, tornando-a mais eficiente, agradável e intuitiva. Uma boa UX éessencial para
fidelizar e atrair novos clientes.
Por outro lado, a UI se concentra especificamente na interface que o usuário interage ao usar um
produto ou serviço. O trabalho de design de UI envolve a criação de interfaces agradáveis, intuitivas e
fáceis de usar. A UI fornece os meios pelos quais o usuário interage com o produto, e uma UI bem
projetada pode tornar essa interação mais eficiente e gratificante.
Figura 1 – Principais diferenças entre UX e UI Design
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 5/27
Um exemplo disso seria um site de comércio eletrônico. A UI envolveria o design da página do
produto, o carrinho de compras e o processo de finalização da compra. A UX, por outro lado, cobriria
a facilidade com que os usuários podem encontrar o produto que estão procurando, a clareza das
descrições dos produtos, a facilidade do processo de finalização da compra e a rapidez com que
podem receber assistência se tiverem problemas.
Apesar das suas diferenças, UX e UI são complementares e devem trabalhar em conjunto para
fornecer uma experiência completa e integrada ao usuário. Ao desenvolver softwares e aplicativos, é
essencial encontrar um equilíbrio entre as necessidades do usuário (UX) e as demandas do negócio,
ao mesmo tempo que se oferece uma interface agradável e prática (UI). Ambos são fundamentais
para criar um produto que não apenas atenda às necessidades do usuário, mas também ofereça uma
experiência positiva e envolvente.
1.3 UX NOS SOFTWARES E APLICATIVOS
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 6/27
Ao desenvolver softwares e aplicativos, um desafio crucial é encontrar um ponto de equilíbrio
entre as necessidades do usuário e as necessidades do negócio. É um processo de balanceamento
que visa compreender e conectar o usuário ao produto ou serviço, levando em consideração tanto os
requisitos do usuário quanto os impactos na empresa.
Para alcançar essa harmonia, é crucial conhecer profundamente o usuário, incluindo suas
motivações, frustrações e desejos. O objetivo não é apenas desenvolver um produto que seja
utilizado, mas, sim, criar uma experiência positiva, motivadora e que gere satisfação naquele que irá
usá-lo.
Figura 2 – Diagrama de viabilidade, desejabilidade e capacidade técnica
Fonte: Winston Sen Lun Fung, 2023.
Ao tratar dessa questão, um modelo útil para considerar é o diagrama de viabilidade,
desejabilidade e capacidade técnica. Este modelo divide o processo de design do produto em três
componentes interconectados:
1. viabilidade de negócio: a solução deve ser sustentável para a empresa e permitir sua expansão
e evolução. Isso inclui considerações financeiras, de mercado e estratégicas;
2. capacidade técnica: refere-se ao domínio tecnológico e ao conhecimento necessários para
implementar a solução. Isso envolve o uso de tecnologias apropriadas, práticas de engenharia
de software e capacidade de implementar e manter a solução;
3. desejabilidade: refere-se à capacidade da solução de atender às necessidades e desejos dos
usuários. A solução deve ser desejável, fornecer valor e resolver um problema do usuário ou
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 7/27
melhorar sua experiência de alguma maneira.
Vamos considerar o iPhone como exemplo novamente. Ele atingiu o equilíbrio entre viabilidade
de negócio, capacidade técnica e desejabilidade. A Apple conseguiu criar um produto que é
altamente desejável (com seu design elegante e funcionalidades inovadoras), tecnicamente viável
(usando tecnologia de ponta) e viável para o negócio (gerando lucros significativos e solidificando a
posição da Apple no mercado de smartphones).
O objetivo é posicionar a solução no centro desses três círculos, onde a viabilidade de negócio, a
capacidade técnica e a desejabilidade se cruzam. Isso resultará em um produto que não apenas
atende às necessidades dos usuários, mas também é viável para o negócio e é tecnicamente sólido.
Isso cria uma base sólida para o sucesso a longo prazo do produto e contribui para uma experiência
agradável e eficaz.
TEMA 2 – CONHECENDO SEU USUÁRIO
O desenvolvimento de um software ou aplicativo de sucesso requer mais do que apenas
habilidades técnicas e uma ideia inovadora. É necessário ter um profundo entendimento do usuário
final, pois é para ele que o produto ou serviço é destinado. É crucial conhecer as motivações,
frustrações e desejos dos clientes, bem como compreender como conectá-los ao produto ou serviço
em desenvolvimento. A experiência vai além do simples uso do produto; é sobre a emoção e a
satisfação que o usuário sente ao interagir com o produto ou serviço. Portanto, entendê-lo é uma
etapa vital que pode determinar o sucesso ou o fracasso do projeto.
2.1 DIAGRAMA DA VIABILIDADE, DESEJABILIDADE E CAPACIDADE
Ao planejar o desenvolvimento de um software ou aplicativo, devemos considerar três
componentes cruciais:
viabilidade: este aspecto se refere ao potencial de sustentabilidade do projeto. Um produto ou
serviço deve não apenas ser financeiramente viável, mas também ter a capacidade de gerar
receita contínua e permitir a evolução do produto no futuro. Por exemplo, um aplicativo de
transporte como a Uber precisava ser financeiramente viável para ser lançado, mas também
precisava ter um modelo de negócios sustentável para continuar a gerar receita e crescer;
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 8/27
capacidade técnica: este componente se refere à capacidade tecnológica de criar a solução
dentro de um período especificado. Não se trata apenas da tecnologia atualmente disponível,
mas também de quais soluções podem ser desenvolvidas para melhorar a experiência do
cliente. Considerando novamente o exemplo da Uber, o aplicativo precisava não só de uma
interface amigável, mas também de tecnologias como GPS e processamento de pagamentos
integrados;
desejabilidade: este é o aspecto que concentra todas as necessidades do usuário. A
desejabilidade refere-se à forma como um produto ou serviço atende aos desejos e
necessidades do usuário, tornando-o atraente para o público-alvo. Isso pode incluir tudo, desde
a facilidade de uso até a estética do produto. A desejabilidade é frequentemente o que
diferencia um produto bem-sucedido de um de fracasso. Um produto pode ser tecnicamente
avançado e viável, mas se não for desejável para os usuários, não terá sucesso.
O objetivo é encontrar o equilíbrio perfeito entre esses três componentes para criar uma solução
que seja boa tanto para o negócio quanto para o usuário. Este é o ponto onde a solução ideal é
encontrada. Para exemplificar, podemos considerar o Waze, um aplicativo popular de navegação. O
Waze consegue equilibrar a viabilidade (um modelo de negócios sustentável), a capacidade técnica
(uso de GPS e comunicação em tempo real) e a desejabilidade (usuários se beneficiam das
informações de trânsito em tempo real e podem evitar congestionamentos).
Ao entender e considerar a viabilidade, a capacidade técnica e a desejabilidade, conseguimos
criar um produto que não só satisfaz as necessidades do usuário, mas também é sustentável e
tecnicamente viável. Este equilíbrio é fundamental para o sucesso.
2.2 CONHECENDO O SEU USUÁRIO – ENTREVISTA
Falar com o usuário é parte fundamental nas diversas etapas do desenvolvimento de um serviço
ou produto. Identificar a real necessidade de uma pessoa ou grupo de pessoas é uma ferramenta para
compreender o que pode ser alterado e melhorado no produto ou serviço. A entrevista permite
compreender de fato o seu usuário e como ele se sente sobre certo tópico, assunto ou
funcionalidade. É uma forma barata, simples e eficiente de obter retorno sobre uma etapa do projeto
e pode ser repetida diversas vezes. Por meio dessa interação direta é possível obter insights valiosos
para aprimorar o software e proporcionar uma experiência de uso mais satisfatória.
13/03/2024, 01:49 UNINTERhttps://univirtus.uninter.com/ava/web/roa/ 9/27
2.2.1 Como preparar a entrevista
Para preparar uma entrevista eficaz, é necessário determinar o público-alvo, identificando as
pessoas que utilizam o software em questão. É importante construir um roteiro de perguntas que seja
abrangente e objetivo, abordando aspectos como a funcionalidade desejada, as dificuldades
encontradas no uso de sistemas similares, as preferências do usuário em termos de interface e
recursos, entre outros. É fundamental evitar enviesar as respostas do entrevistado, oferecendo um
ambiente acolhedor e seguro para que ele se sinta à vontade para expressar suas opiniões e
experiências.
2.2.2 O público
Ao determinar o público para as entrevistas, é relevante considerar o perfil dos usuários do
software em questão. Isso inclui características demográficas, nível de experiência técnica,
preferências e hábitos de uso. Buscar a participação de especialistas na área pode trazer perspectivas
complementares e insights valiosos para o processo de desenvolvimento. A diversidade de usuários
entrevistados permite capturar uma ampla gama de necessidades e garantir que o software seja
projetado levando em conta diferentes perspectivas.
Na preparação da entrevista, é importante definir o público-alvo, que, neste caso, seriam pessoas
que viajam com frequência. Podemos considerar diferentes perfis, como viajantes a negócios, famílias
ou mochileiros, para obter uma visão abrangente das suas necessidades e desejos.
2.2.3 O roteiro
O roteiro da entrevista desempenha um papel crucial na obtenção de informações relevantes
sobre o software e a experiência de uso desejada. Ele deve ser elaborado com base nos objetivos da
pesquisa de usuário, levando em consideração as questões-chave a serem abordadas.
Durante a entrevista, é recomendado utilizar perguntas abertas, iniciadas com "como" e "por
que", que estimulem o entrevistado a compartilhar suas experiências, opiniões e percepções. O
roteiro também deve evitar perguntas que possam ser respondidas com simples "sim" ou "não",
buscando obter respostas mais detalhadas e aprofundadas.
No roteiro, é importante explorar aspectos como a utilidade do software para o usuário, os
problemas enfrentados no uso de sistemas similares, as expectativas em relação à interface, recursos
desejados, fluxo de trabalho ideal, entre outros. A partir dessas perguntas, é possível obter insights
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 10/27
sobre as funcionalidades que são mais valorizadas, os pontos de dor a serem resolvidos e as
oportunidades de melhoria.
Por exemplo, ao desenvolver um aplicativo de entrega de alimentos, o roteiro da entrevista pode
incluir perguntas sobre a facilidade de uso do aplicativo, a eficiência na busca de restaurantes, a
personalização de pedidos, as opções de pagamento e a satisfação geral com a experiência de
entrega. Essas perguntas ajudam a entender as necessidades e preferências dos usuários, orientando
o desenvolvimento do software de forma mais precisa e direcionada.
2.2.4 Comportamento
O comportamento do entrevistador desempenha um papel crucial na obtenção de informações
de qualidade durante a entrevista. É importante estabelecer uma conexão empática com o
entrevistado, demonstrando interesse genuíno em compreender suas necessidades e experiências. O
entrevistador deve criar um ambiente acolhedor, encorajando o entrevistado a compartilhar suas
opiniões de forma aberta e honesta.
Um exemplo de prática desejável é fazer perguntas claras e objetivas, permitindo que o
entrevistado se expresse livremente. Por exemplo, ao entrevistar usuários de um aplicativo de viagens,
o entrevistador pode perguntar: "Como você se sente ao navegar pelo aplicativo em busca de
destinos de viagem? Quais recursos você considera mais importantes ao planejar uma viagem?".
Além disso, o entrevistador deve adotar uma postura de escuta ativa, prestando atenção às
respostas do entrevistado e fazendo perguntas adicionais para aprofundar a compreensão. Isso
demonstra interesse genuíno pelo ponto de vista do entrevistado e cria um ambiente de confiança.
Outro exemplo de prática recomendada é evitar influenciar as respostas do entrevistado. O
entrevistador deve evitar fazer afirmações que possam direcionar as respostas do entrevistado ou
expressar opiniões pessoais. Em vez disso, é importante permitir que o entrevistado compartilhe suas
experiências e perspectivas de forma autêntica.
Ao seguir essas diretrizes durante o processo de entrevista, é possível obter informações valiosas
sobre o software, as necessidades dos usuários e suas expectativas em relação à experiência de uso.
Esses insights fornecem uma base sólida para o desenvolvimento de um software que atenda de
forma eficaz e satisfatória, resultando em uma experiência positiva e engajadora.
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 11/27
TEMA 3 – IDEAÇÃO
A ideação é uma etapa crucial no processo de desenvolvimento de produtos e serviços. Ela se
refere ao processo de elaborar e organizar ideias com o objetivo de encontrar soluções inovadoras
para os problemas identificados durante a pesquisa com o usuário.
Durante a fase de ideação, é fundamental envolver um grupo multidisciplinar, composto por
profissionais de diferentes áreas, como designers, desenvolvedores, especialistas em usabilidade,
entre outros. Essa diversidade de conhecimentos e perspectivas enriquece o processo, permitindo a
geração de diversas opções e alternativas para resolver os desafios identificados.
Durante as sessões de ideação, os participantes são encorajados a pensar de forma livre e
criativa, sem limitações ou julgamentos prematuros. O objetivo é gerar o maior número possível de
ideias, explorando diferentes abordagens e soluções para os problemas levantados. O foco deve ser
na quantidade, em vez da qualidade das ideias nessa fase inicial.
Um exemplo de atividade de ideação é a realização de um brainstorming, onde os participantes
são estimulados a compartilhar suas ideias de forma espontânea e sem restrições. O facilitador da
sessão pode propor desafios específicos ou perguntas abertas para direcionar a discussão. Durante o
brainstorming, as ideias podem ser anotadas em um quadro branco ou em notas adesivas, facilitando
a visualização e a organização posteriormente.
Após a etapa de ideação, as ideias geradas são avaliadas e refinadas para selecionar as melhores
soluções a serem desenvolvidas. É importante lembrar que nem todas as ideias geradas durante a
ideação serão viáveis ou adequadas para o contexto do projeto, mas a diversidade de opções permite
encontrar as mais promissoras.
Em resumo, a ideação é o processo de elaborar e organizar ideias com o objetivo de encontrar
soluções inovadoras para os problemas identificados durante a pesquisa com o usuário. Envolver um
grupo multidisciplinar e utilizar técnicas como o brainstorming são práticas comuns nessa etapa. A
ideia é gerar uma grande quantidade de ideias, explorando diferentes abordagens, e posteriormente
avaliar e refinar as opções mais promissoras.
3.1 BRAINSTORMING
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 12/27
O brainstorming é uma técnica amplamente utilizada para a geração de ideias e soluções
inovadoras. É uma forma criativa de buscar respostas para problemas e desafios enfrentados por
equipes multidisciplinares. Com base nos textos fornecidos, vamos sintetizar as informações e
destacar as etapas do brainstorming, fornecendo exemplos quando aplicável.
Passos para uma reunião de brainstorming:
definir o problema: antes de iniciar o processo de geração de ideias, é importante estabelecer
claramente o problema que precisa ser solucionado. Essa definição serve como base para
orientar o foco e a direção das ideias geradas. Por exemplo, se o problema é melhorar a
usabilidade de um aplicativo de compras on-line, a equipe pode se concentrar em encontrarmaneiras de simplificar o processo de checkout ou melhorar a navegação do aplicativo;
montar um grupo multidisciplinar: um grupo diversificado de pessoas com diferentes
experiências e habilidades é fundamental para estimular uma variedade de perspectivas e ideias.
Profissionais de áreas como design, desenvolvimento, marketing e atendimento ao cliente
podem contribuir com insights valiosos. Por exemplo, ao criar website, a equipe pode incluir
designers de interface, desenvolvedores front-end, especialistas em experiência do usuário (UX)
e especialistas em otimização de mecanismos de busca (SEO) para abordar diferentes aspectos
do projeto;
explique as regras: é essencial estabelecer regras claras para o processo de brainstorming.
Essas diretrizes ajudam a garantir uma atmosfera colaborativa e produtiva. Algumas regras
comuns incluem:
a. uma conversa por vez: para garantir que todas as vozes sejam ouvidas, cada pessoa deve
ter a oportunidade de expressar suas ideias sem interrupções;
b. quantidade de ideias importa: inicialmente, o foco deve ser na geração de um grande
volume de ideias, sem se preocupar com sua qualidade ou viabilidade imediata;
c. construir sobre a ideia dos outros: os participantes são incentivados a adicionar,
expandir ou melhorar as ideias propostas por seus colegas. Isso promove uma
colaboração mais rica e impede o bloqueio criativo;
d. encorajar ideias "doidas": ideias consideradas incomuns ou pouco convencionais muitas
vezes podem levar a soluções inovadoras. Todos os participantes devem se sentir à
vontade para compartilhar suas ideias, independentemente de sua aparente viabilidade
inicial;
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 13/27
e. ser visual: o uso de elementos visuais, como esboços, diagramas ou representações
gráficas, pode ajudar a transmitir ideias de forma mais clara e facilitar a compreensão e a
colaboração do grupo;
f. manter o foco: os participantes devem se concentrar no problema definido no início e
evitar desviar-se para assuntos irrelevantes durante a sessão de brainstorming;
g. não fazer críticas nem julgamentos: durante a fase de ideação, todas as ideias são bem-
vindas e não devem ser criticadas ou julgadas. Isso cria um ambiente seguro e encorajador
para a livre expressão de pensamentos.
geração de ideias: nesta etapa, o objetivo é gerar o maior número possível de ideias
relacionadas ao problema definido. Alguns pontos a serem considerados durante esta fase são:
a. estabelecer um tempo máximo: definir um limite de tempo para a geração de ideias
ajuda a manter a dinâmica e o ritmo da sessão. Por exemplo, pode ser definido um prazo
de 10 minutos para que todos os participantes escrevam o máximo de ideias que
conseguirem;
b. anotar as ideias exatamente como foram faladas: todas as ideias propostas devem ser
registradas sem alterações ou julgamentos imediatos. Isso garante que todas sejam
consideradas e discutidas posteriormente;
c. manter a ordem com uma ideia apresentada por vez: para evitar interrupções e permitir
que cada ideia seja adequadamente ouvida e discutida, é recomendado seguir uma ordem
na apresentação das ideias. Por exemplo, cada membro da equipe pode ter sua vez para
compartilhar uma ideia, enquanto os outros ouvem e anotam;
d. toda a ideia apresentada deve ser ouvida por todos: é importante que todas as ideias
sejam ouvidas e consideradas pela equipe, independentemente de sua viabilidade ou
originalidade aparente. Isso promove um ambiente de respeito e valorização das
contribuições de todos os membros.
conclusão do processo: após a fase de geração de ideias, é necessário realizar uma análise e
seleção das melhores propostas. Algumas etapas que podem ser seguidas incluem:
a. esclarecer o significado de todas as ideias: é importante garantir que todas as ideias
sejam compreendidas por todos os membros da equipe. Caso haja dúvidas ou
ambiguidades, elas devem ser esclarecidas antes de prosseguir para a próxima etapa;
b. descartar ideias não úteis: nem todas as ideias geradas serão viáveis ou relevantes para a
solução do problema em questão. Nessa etapa, é necessário avaliar as ideias de forma
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 14/27
crítica e descartar aquelas que não contribuem para a solução ou que são impraticáveis;
c. agrupar as ideias em categorias: com base em temas comuns ou características
compartilhadas, as ideias podem ser agrupadas em categorias. Isso facilita a identificação
de padrões e ajuda na análise das possibilidades;
d. eliminar ideias duplicadas: se várias ideias semelhantes foram propostas, é importante
eliminar duplicações e manter apenas uma representação dessas ideias no processo de
seleção final;
e. transformar ideias similares em uma única: caso haja ideias semelhantes ou que
abordem o mesmo aspecto, elas podem ser combinadas e refinadas em uma única
proposta. Isso ajuda a simplificar o processo de seleção;
f. selecionar as melhores ideias/soluções: após a análise e organização das ideias, a equipe
deve escolher as melhores propostas que têm potencial para resolver o problema
identificado. Essas ideias selecionadas serão posteriormente desenvolvidas e
implementadas.
Na imagem a seguir, temos um resumo do processo de brainstorming.
Figura 3 – Representação do processo de brainstorming
Fonte: Winston Sen Lun Fung, 2023.
Por meio dessas etapas do brainstorming, as equipes podem aproveitar a diversidade de
conhecimentos e experiências para gerar ideias criativas e encontrar soluções inovadoras. O
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 15/27
brainstorming não apenas promove a colaboração entre os membros da equipe, mas também
encoraja a livre expressão de pensamentos e a construção coletiva das ideias.
Considere o seguinte exemplo:
Vamos imaginar uma empresa de desenvolvimento de aplicativos móveis que está enfrentando o
desafio de melhorar a experiência do usuário em seu aplicativo de compras on-line. A equipe decide
realizar uma reunião de brainstorming para gerar ideias e soluções inovadoras. Aqui está como as
etapas do brainstorming podem ser aplicadas neste caso:
Definir o problema: o problema identificado é a necessidade de melhorar a usabilidade do
aplicativo de compras on-line para tornar a experiência do usuário mais intuitiva e agradável.
Montar um grupo multidisciplinar: a equipe é composta por um designer de interface, um
desenvolvedor front-end, um especialista em UX e um representante do departamento de
atendimento ao cliente. Essa diversidade de conhecimentos e perspectivas enriquece o processo de
brainstorming.
Explique as regras: antes de iniciar a sessão, o facilitador explica as regras do brainstorming:
a. uma conversa por vez: cada membro da equipe terá a oportunidade de compartilhar suas
ideias sem interrupções;
b. quantidade de ideias importa: o objetivo é gerar o maior número possível de ideias, sem se
preocupar com a qualidade ou viabilidade inicial;
c. construir sobre a ideia dos outros: todos são encorajados a adicionar, expandir ou melhorar as
ideias propostas pelos colegas;
d. encorajar ideias "doidas": ideias consideradas incomuns ou pouco convencionais são bem-
vindas, pois podem levar a soluções inovadoras;
e. ser visual: desenhos, esboços ou esquemas podem ser utilizados para auxiliar na visualização e
comunicação das ideias;
f. manter o foco: a equipe deve se concentrar na melhoria da usabilidade do aplicativo de
compras on-line;
g. não fazer críticas nem julgamentos: todas as ideias são aceitas sem críticas ou julgamentos
prematuros.
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 16/27
Geração de Ideias: durante a sessão de brainstorming, a equipe segue as diretrizes estabelecidas.
Eles estabelecem um tempo máximo de 15 minutos para a geração de ideias e anotam todas as
sugestões exatamente como foram faladas. Alguns exemplos de ideias propostas podem ser:implementar um fluxo de compra simplificado, com menos etapas e formulários mais intuitivos;
introduzir uma função de pesquisa avançada para facilitar a descoberta de produtos específicos;
adicionar um recurso de recomendação personalizada com base no histórico de compras do
usuário;
melhorar a velocidade de carregamento do aplicativo para uma experiência mais ágil;
incluir tutoriais interativos para orientar os usuários sobre como usar os recursos do aplicativo.
Conclusão do processo: após a geração de ideias, a equipe passa para a etapa de análise e
seleção:
a. esclarecer o significado de todas as ideias: os membros da equipe discutem e esclarecem
qualquer dúvida sobre as ideias propostas;
b. descartar ideias não úteis: algumas ideias podem ser consideradas inviáveis ou pouco relevantes
para a melhoria da usabilidade do aplicativo e são descartadas;
c. agrupar as ideias em categorias: as ideias são agrupadas em categorias, como melhorias de
interface, otimização de desempenho e recursos adicionais;
d. eliminar ideias duplicadas: se houver ideias semelhantes, elas são combinadas em uma única
proposta;
e. selecionar as melhores ideias/soluções: a equipe realiza uma votação ou discussão para
selecionar as ideias consideradas mais promissoras para aprimorar a usabilidade do aplicativo.
Ao seguir essas etapas do brainstorming, a equipe de desenvolvimento de aplicativos móveis
pode obter uma ampla variedade de ideias e soluções inovadoras para melhorar a experiência do
usuário em seu aplicativo de compras on-line.
3.2 CRAZY 8S
Inovações em UX e UI são evidentes com a implementação de técnicas avançadas, como o "Crazy
Eights", lançado pelo Google Ventures em 2010. O principal objetivo desse método é permitir a rápida
geração de múltiplas soluções por membros da equipe, encorajando discussões produtivas e eficazes
de problemas e favorecendo uma abordagem rápida e iterativa na materialização de soluções.
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 17/27
Figura 4 – Representação do método Crazy 8s do Google Ventures
Crédito: Wasteresley Lima.
A seguir, a descrição do método "Crazy Eights":
preparação: no início, cada integrante deve possuir uma folha A4 e algum material para
escrever. A folha é dobrada em três partes, gerando oito painéis;
desenho de ideias: cada integrante recebe oito minutos para esboçar oito ideias distintas, uma
para cada painel. Os esboços são rápidos e sem preocupações com perfeição, o objetivo
principal é a geração de um leque amplo de ideias;
apresentação: após os esboços, cada integrante compartilha suas ideias com o grupo. Isso
proporciona a todos a chance de entender diferentes perspectivas e inspirar novas ideias;
votação: após todas as apresentações, os integrantes votam nas ideias que consideram mais
promissoras. A votação pode ser realizada de diversas formas, mas geralmente cada participante
coloca um adesivo ou faz uma marcação nas ideias que mais aprecia;
iteração: com base na votação, os integrantes podem selecionar as ideias mais promissoras
para aprimorar ou até mesmo combinar várias ideias em uma única solução.
O processo se inicia com a pesquisa sobre o assunto de interesse. Cada membro da equipe
busca, de forma independente, informações relevantes, analisando o que os concorrentes estão
fazendo, realizando pesquisas com usuários e consultando outros materiais. A equipe define um
tempo para essa atividade, geralmente de 20 minutos.
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 18/27
Posteriormente, a partir dos materiais e informações coletados, cada integrante do time destaca
as ideias, assuntos e aspectos mais relevantes. Essa fase culmina com cada membro da equipe
desenhando rapidamente oito variações da ideia em oito minutos, um processo que auxilia o time a
sair da zona de conforto e explorar ideias além das mais óbvias. Cada membro da equipe desenha
suas ideias em uma folha A4 dividida em oito partes. O uso de cores e figuras não é necessário, o foco
principal é na representação visual do problema.
Desenhar no papel tem a vantagem de ser mais rápido e permite que todos os membros da
equipe (não apenas designers) possam contribuir e compartilhar suas ideias e ajudar a conceber a
solução, evitando retrabalho.
"Crazy Eights" é eficaz por forçar os participantes a pensar rapidamente e explorar uma variedade
de ideias. Ao limitar o tempo para cada esboço, os participantes são incentivados a pensar de forma
mais criativa e menos crítica. Como cada participante trabalha individualmente, cada um tem a
oportunidade de contribuir com suas próprias ideias, evitando que as vozes mais dominantes
monopolizem a discussão.
Após essa fase de desenho, a equipe seleciona as ideias mais promissoras dos oito esboços.
Recomenda-se descartar os esboços com as ideias menos promissoras para manter o foco nas
melhores. Depois, as ideias são categorizadas para facilitar a análise. Ideias semelhantes são unidas
em uma única ideia, e quaisquer duplicadas são eliminadas.
Esse processo de geração de ideias, que inclui pesquisa, desenho e seleção de ideias, pode ser
repetido várias vezes em uma mesma reunião para gerar múltiplas soluções para um problema. Essa é
uma abordagem que equilibra a eficácia do brainstorming com a eficiência do trabalho individual,
permitindo que uma equipe explore diversas opções rapidamente e de maneira colaborativa. Ao final,
a equipe será capaz de apresentar soluções inovadoras e eficazes para o problema em questão.
Apesar de "Crazy Eights" ser uma ferramenta poderosa para a geração de ideias, ainda é
necessário avaliar e aperfeiçoar essas ideias por meio de discussões em grupo, prototipagem e testes
com usuários. Isso garante que as soluções propostas sejam não apenas criativas, mas também
práticas e eficazes.
Veja o exemplo da aplicação do método "Crazy Eights":
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 19/27
Imagine uma equipe de desenvolvedores de um aplicativo de entrega de comida que deseja
melhorar a experiência do usuário. Eles decidem usar a técnica do "Crazy Eights" para gerar novas
ideias.
Pesquisa: primeiro, cada membro da equipe realiza uma pesquisa independente, analisando
outros aplicativos de entrega de comida, lendo feedbacks dos usuários e pesquisando novas
tendências no mercado. A equipe define 20 minutos para essa atividade.
Desenho de ideias: em seguida, usando as informações coletadas, cada membro da equipe
desenha rapidamente oito variações de ideias em oito minutos. Um membro pode desenhar um
novo layout para a página inicial, outro pode desenhar um novo método de pagamento,
enquanto outro pode esboçar uma nova maneira de classificar restaurantes.
Apresentação: depois de esboçar as ideias, cada membro apresenta suas ideias para o grupo.
Isso permite que todos entendam o pensamento por trás de cada ideia e possam se inspirar um
no outro.
Votação: a equipe então vota nas ideias que consideram mais promissoras. Nesse exemplo, a
equipe pode usar adesivos coloridos para votar, com cada cor representando um grau diferente
de entusiasmo.
Iteração: com base nos votos, a equipe pode escolher as ideias mais populares para desenvolver
ainda mais. Por exemplo, eles podem combinar a ideia de um novo layout com a de um novo
método de pagamento.
Esse processo ilustra como o "Crazy Eights" pode ser usado para gerar uma variedade de ideias
rapidamente e de forma colaborativa. Além disso, destaca a importância da pesquisa, da colaboração
e da iteração no desenvolvimento de soluções eficazes e inovadoras.
3.3 MESCRAI
O Mescrai é uma metodologia de ideação estruturada que ajuda a diversificar e desenvolver
novas ideias a partir de uma base existente. O acrônimo Mescrai representa Modificar, Eliminar,
Substituir, Combinar, Rearranjar, Adaptar e Inverter.
Cada letra da sigla Mescrai representa um tipo de alteração que pode ser realizada, a saber:
modifique – envolve fazer alteraçõesem um elemento existente do design, como aumentar ou
diminuir um botão, ou adicionar ou remover um elemento;
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 20/27
elimine – se refere à remoção de um elemento do design, criando uma variação da ideia
original;
substitua – sugere a troca de um elemento por outro, como substituir um botão por uma
imagem, ou uma imagem por um texto;
combine – propõe a união de diferentes elementos ou ideias, potencialmente de outros
designs, para criar algo;
rearranje – envolve mudar a disposição dos elementos no design, como mover um elemento
para a esquerda ou para a direita;
adapte – pede para incorporar elementos de outros contextos, como um design de desktop em
uma tela mobile, e vice-versa;
inverta – encoraja a visualização do design de uma nova perspectiva, trocando a ordem ou a
posição dos elementos.
Esses conceitos podem ser aplicados em conjunto com outras técnicas de ideação, como o
"Crazy Eights". Enquanto o "Crazy Eights" desafia a equipe a sair da zona de conforto e explorar ideias
não convencionais, o Mescrai fornece uma estrutura para variar e adaptar essas ideias.
Agora, considere um exemplo prático da aplicação do Mescrai: uma barra de pesquisa em um
website, como o do Submarino. Suponha que os usuários estejam tendo dificuldade em identificar o
campo de busca. Podemos aplicar o Mescrai para gerar um conjunto de ideias que poderiam resolver
esse problema.
Modificar – poderíamos aumentar o tamanho da barra ou do ícone de busca para melhorar sua
percepção;
Eliminar – poderíamos remover objetos chamativos ao redor da barra de busca para facilitar
seu reconhecimento;
Substituir – embora não tenhamos uma ideia específica agora, a ideia seria trocar um elemento
por outro;
Combinar – poderíamos adicionar um texto auxiliar dentro do campo de busca para convidar o
usuário a usar a ferramenta, mostrando exemplos de como interagir com ela;
Rearranjar – mudar a posição da barra de busca poderia oferecer uma nova experiência de
interação;
Adaptar – poderíamos adicionar um rótulo no botão de pesquisa com uma palavra de ação
para ajudar os novos usuários a entender onde clicar para concluir a interação;
[1]
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 21/27
Inverter – mudar o ícone de lupa para a esquerda permitiria ao usuário identificar a finalidade
do campo sem ter que ler todas as informações presentes nele.
Dessa forma, a metodologia Mescrai, utilizada em conjunto com outras técnicas de ideação, pode
ajudar a expandir e diversificar as soluções de design, resultando em uma experiência de usuário
aprimorada.
TEMA 4 – PROTÓTIPOS
A prototipação é uma prática indispensável no universo do design UX, usada para criar e validar
soluções de forma ágil e assertiva. O ato de prototipar serve como um meio para materializar um
conceito ou ideia que inicialmente se encontra apenas no plano das ideias dos designers, tornando-o
palpável e facilitando sua comunicação com clientes e usuários.
Bill Moggridge, um dos fundadores da Ideo, conceituada empresa de design, visualiza o
protótipo como uma expressão do design que é desenvolvida antes da existência da solução final.
Para ele, o protótipo é um método inovador de visualizar e testar soluções de design
antecipadamente, prevenindo gastos desnecessários e esforços excessivos.
Mas por que devemos prototipar?
Prototipar é a oportunidade de dar vida a algo que existia apenas em nossa imaginação e
transmitir essa realidade para nossos clientes e usuários. É a chance de manifestar uma ideia, uma
funcionalidade, uma interação e recolher feedbacks e resultados para avaliar se os objetivos ou
requisitos foram atingidos.
O protótipo é uma ferramenta que permite avaliar e decidir quais ações devem ser tomadas: se a
ideia original será mantida, se necessita de ajustes ou se deve ser totalmente descartada para um
novo começo.
No desenvolvimento de soluções, o custo de uma mudança em um projeto aumenta
exponencialmente com o passar do tempo. Portanto, adotar a prototipação, especialmente durante as
fases iniciais do projeto, pode reduzir os custos e mitigar falhas durante a implementação.
4.1 PROTOTIPAÇÃO
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 22/27
Existem várias formas de protótipos que podem variar de acordo com o estágio do projeto e a
audiência que irá avaliá-los. Eles podem ir desde uma explicação verbal, um storyboard mostrando a
sequência de ações em uma página, desenhos manuais de uma tela, até protótipos de alta fidelidade
que fornecem uma experiência quase idêntica ao produto final.
Os protótipos podem ter três níveis principais de fidelidade: baixa, média e alta. A fidelidade tem
relação direta com a proximidade do resultado final. Protótipos de baixa fidelidade, como esboços no
papel, são ideais para testar ideias iniciais. Já os protótipos de alta fidelidade, como mockups
interativos, com estilos e fluxos de navegação definidos, são úteis para testar a usabilidade e a eficácia
de soluções mais desenvolvidas.
4.2 PROTÓTIPO E O CLIENTE
Quando um protótipo é apresentado a um cliente, ele oferece uma oportunidade para feedback
imediato e permite que o cliente e a equipe de desenvolvimento alinhem ideias, processos,
funcionalidades e outros aspectos da solução. Além disso, o protótipo permite avaliar e escolher qual
direção seguir: se mantém a ideia, se precisa ser revisada ou se descarta tudo e começa de novo.
4.3 PROTÓTIPO E O USUÁRIO
Os protótipos também são uma ferramenta valiosa para testar a usabilidade do produto com os
usuários finais. Eles permitem validar se as interações do usuário, a partir de sua jornada, estão de
acordo com o esperado ou não. A apresentação de um protótipo a possíveis usuários da solução
oferece retorno sobre a usabilidade, se as necessidades e expectativas foram atendidas ou necessitam
de reformulações.
A prototipação é uma ferramenta vital no processo de design UX que permite aos designers
visualizar e testar suas ideias, obter feedback valioso de clientes e usuários, e refinar suas soluções
antes da implementação final. Isso contribui para a criação de produtos que atendem melhor às
necessidades dos usuários, levando a uma melhor experiência.
TEMA 5 – PROTOTIPAÇÃO
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 23/27
A prototipação é uma técnica amplamente utilizada na área de design UX para criar e validar
soluções de forma rápida e eficiente. Os protótipos são criados após a fase de pesquisa com usuários
ou benchmarking, permitindo que os designers conheçam as necessidades dos clientes e tenham
hipóteses para solucioná-las.
Existem três tipos principais de protótipos: baixa, média e alta fidelidade. Cada um deles tem sua
aplicação e objetivo específicos, e o estágio do projeto e o público-alvo determinarão qual tipo é
mais adequado.
5.1 PROTÓTIPOS DE BAIXA FIDELIDADE
Os protótipos de baixa fidelidade são representações simples e rápidas, geralmente feitas à mão,
que têm como objetivo demonstrar a funcionalidade básica e a organização geral de uma aplicação.
Eles são especialmente úteis no início do processo de design, permitindo que os designers visualizem
e comuniquem ideias de forma simples e econômica. Esses protótipos, como esboços em papel, não
incluem elementos visuais refinados, como cores, tipografia ou imagens reais. Eles são amplamente
utilizados para auxiliar no levantamento de requisitos e funcionalidades, além de permitir a
participação de pessoas de diferentes áreas e especialidades.
Para ilustrar esse conceito, vamos considerar o exemplo de um novo aplicativo de entrega de
comida. Nessa fase inicial, é possível criar protótipos de baixa fidelidade desenhando esboços simples
em papel, representando as telas principais e o fluxo básico do aplicativo. Esses protótipos ajudam a
visualizar a estrutura e a funcionalidade do aplicativo, permitindo testar diferentes ideias rapidamente.Além disso, eles são úteis para obter feedback inicial dos usuários e validar conceitos-chave antes de
investir recursos significativos no desenvolvimento.
5.2 PROTÓTIPOS DE MÉDIA FIDELIDADE
Os protótipos de média fidelidade evoluem a partir dos protótipos de baixa fidelidade,
incorporando elementos adicionais para fornecer uma representação mais detalhada da solução. Eles
podem incluir a estrutura do conteúdo da interface e criar um layout básico com conteúdos e
imagens de marcação. Além disso, os protótipos de média fidelidade podem simular interações
simples, como o clique em um botão, e permitem a navegação entre diferentes seções do projeto.
Nessa etapa, os recursos de design visual ainda são limitados, concentrando-se principalmente na
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 24/27
funcionalidade e na organização do sistema. Esses protótipos são úteis para testar fluxos de
navegação e avaliar a usabilidade do produto.
Continuando com o exemplo do protótipo de baixa fidelidade do aplicativo de entrega de
comida, nesta fase, é possível definir a estrutura das telas, adicionar conteúdo de exemplo e simular
interações básicas, como a seleção de um restaurante, a adição de itens ao carrinho e o fechamento
do pedido. Os protótipos de média fidelidade permitem testar a navegabilidade e a experiência do
usuário em um nível mais avançado, facilitando a identificação de melhorias e ajustes necessários.
5.3 PROTÓTIPOS DE ALTA FIDELIDADE
Os protótipos de alta fidelidade são representações muito próximas do produto final, buscando
proporcionar uma experiência quase completa ao usuário. Eles incorporam elementos visuais
refinados, como cores, tipografia, imagens e textos reais, para criar uma representação mais realista
da solução. Os protótipos de alta fidelidade permitem simular fluxos complexos, interações avançadas
e até mesmo envolver programação. Eles são úteis para validar a aparência visual, a interação e a
usabilidade do produto, além de fornecer uma visão mais precisa de como será a solução final. No
entanto, o desenvolvimento de protótipos de alta fidelidade pode exigir mais recursos financeiros e
tempo, devido à sua maior complexidade.
Retomando o exemplo do aplicativo de entrega de comida, suponha que você esteja na fase final
do desenvolvimento e queira validar a aparência visual e as interações mais complexas. Nesse caso, é
possível criar protótipos de alta fidelidade usando ferramentas de design avançadas ou até mesmo
programação. Esses protótipos se assemelham muito ao produto final, com cores, tipografia, imagens
e textos reais. Você pode simular todo o fluxo de uso do aplicativo, desde a escolha do restaurante
até o pagamento e a confirmação do pedido. Os protótipos de alta fidelidade são úteis para obter
feedback detalhado sobre a aparência, interações e usabilidade, permitindo ajustes finos antes do
lançamento.
É importante destacar que a escolha do tipo de protótipo depende do estágio do projeto, das
necessidades dos clientes e dos objetivos específicos. Geralmente, começa-se com protótipos de
baixa fidelidade para capturar ideias iniciais e, conforme o projeto avança, passa-se para protótipos
de média e alta fidelidade para refinamento e validação. A prototipação, em qualquer nível de
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 25/27
fidelidade, permite testar, obter feedback dos usuários e evitar custos desnecessários, contribuindo
para o desenvolvimento de soluções eficazes e satisfatórias para os clientes e usuários finais.
FINALIZANDO
No processo de design é essencial considerar tanto a experiência do usuário (UX) quanto a
interface do usuário (UI) para criar soluções eficazes e satisfatórias. Para alcançar esse objetivo é
crucial iniciar com a compreensão do cliente e suas necessidades por meio de entrevistas detalhadas.
Ao realizar entrevistas com o cliente, os designers têm a oportunidade de conhecer suas
demandas, metas e restrições. Isso permite obter insights valiosos e compreender as expectativas dos
usuários finais. Com base nesse conhecimento, a etapa de ideação e brainstorming é iniciada.
Durante a ideação, os designers podem explorar várias possibilidades e conceitos para resolver
os desafios do projeto. A colaboração e a troca de ideias entre a equipe de design são essenciais
nesse processo. O objetivo é gerar o maior número possível de soluções criativas e inovadoras.
Com as ideias geradas, o próximo passo é a prototipação. Os protótipos são representações
tangíveis das soluções propostas, permitindo testar e iterar rapidamente. Existem diferentes tipos de
protótipos, cada um com sua finalidade específica.
Os protótipos de baixa fidelidade, como esboços em papel, são utilizados no início do processo
de design para demonstrar a funcionalidade básica e a organização geral da aplicação. Eles ajudam a
visualizar a estrutura e a funcionalidade do produto, permitindo testar diferentes ideias rapidamente e
obter feedback inicial dos usuários.
À medida que o projeto avança, entram em cena os protótipos de média fidelidade. Eles evoluem
a partir dos protótipos de baixa fidelidade, incorporando elementos adicionais, como a estrutura do
conteúdo da interface e a navegação básica. Os protótipos de média fidelidade permitem testar fluxos
de navegação, avaliar a usabilidade e identificar melhorias necessárias.
Finalmente, os protótipos de alta fidelidade são representações quase completas do produto
final. Eles incorporam elementos visuais refinados, como cores, tipografia, imagens e textos reais,
proporcionando uma experiência visual e interativa mais próxima do produto final. Esses protótipos
são úteis para validar a aparência, a interação e a usabilidade do produto antes do lançamento.
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 26/27
A combinação de UX, UI, entrevistas detalhadas, ideação, brainstorming e prototipação é
fundamental para o processo de design. Conhecer as necessidades do cliente, gerar ideias criativas e
testá-las por meio de protótipos em diferentes níveis de fidelidade contribui para o desenvolvimento
de soluções eficazes e satisfatórias, resultando em uma experiência de qualidade.
REFERÊNCIAS
BAXTER, M. Projeto de produto: Guia prático para o design de novos produtos. São Paulo:
Edgard Blucher, 2008.
BROWN, T. Design Thinking – Edição Comemorativa 10 anos. Rio de Janeiro: Editora Alta Books,
2020.
Hanouset, R.; OP de BEEK, B. Design para a Internet: Projetando a Experiência Perfeita. São
Paulo: GEN LTC, 2005.
LEIFER, L.; LEWRICK, M.; LINK, P. A Jornada do Design Thinking. Rio de Janeiro: Editora Alta
Books, 2019.
MÜLLER-ROTERBERG, C. Design Thinking para Leigos. Rio de Janeiro: Editora Alta Books, 2021.
WHESHSLER, S. M. Criatividade: descobrindo e encorajando. Campinas: Livro Pleno, 2002
 Exemplo adaptado do site Max Andriani:
<http://www.maxandriani.art.br/2012/11/10/criatividade-e-geracao-de-ideias-mescrai-scamcea/>.
Acesso em: 2 ago. 2023.
[1]
13/03/2024, 01:49 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 27/27
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 1/30
 
 
 
 
 
 
 
 
 
FUNDAMENTOS DE DESIGN DE
SISTEMAS
AULA 6
 
 
 
 
 
 
 
 
 
 
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 2/30
 
 
Prof. Winston Fung
CONVERSA INICIAL
Nesta etapa de estudos, vamos discutir sobre conceitos, práticas e estratégias fundamentais que
orientam o desenvolvimento de produtos de software centrados no usuário. A importância do design
no desenvolvimento de software é inegável, sendo a ponte entre a tecnologia e o usuário, tornando
as soluções digitais acessíveis, intuitivas e agradáveis.
Nossos estudos serão guiados pela experiência do usuário (UX), um componente crucial que
define como um usuário se sente ao interagir com um sistema. Por meio do UX, nosso objetivo é
entender as necessidades, expectativas e comportamentosdos usuários, buscando sempre criar
experiências positivas, satisfatórias e significativas.
A funcionalidade e a usabilidade são dois aspectos que andam lado a lado com UX e UI. A
funcionalidade diz respeito à capacidade de um sistema executar as tarefas que se propõe a realizar,
enquanto a usabilidade avalia a eficácia, a eficiência e a satisfação com que os usuários podem atingir
seus objetivos ao usar um sistema.
Acreditamos que o sucesso no desenvolvimento de software é alcançado quando essas
disciplinas trabalham em harmonia. Combinando UX, UI, funcionalidade e usabilidade, somos capazes
de criar produtos de software que não apenas atendem aos requisitos técnicos, mas também criam
experiências profundamente satisfatórias para os usuários.
TEMA 1 – ARQUITETURA DA INFORMAÇÃO
O Information Architecture Institute define a Arquitetura de Informação (AI) como a “prática de
decidir como organizar as partes de alguma coisa de modo a torná-la compreensível”.
[1]
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 3/30
A AI envolve várias considerações, incluindo a estruturação de uma hierarquia de informação
clara e intuitiva, rotulando informações eficazmente e desenvolvendo esquemas de busca eficazes. É
essencial para websites ou aplicativos com grandes volumes de conteúdo, em que uma organização
de informação mal executada pode tornar difícil para os usuários encontrar o que estão procurando.
A AI tem como objetivo responder às quatro questões que um usuário pode ter ao entrar em um
site ou em uma tela, conforme detalhado por Steve Krug em seu livro Don’t make me think:
1. O que é isto?
2. O que eles têm aqui?
3. O que posso fazer aqui?
4. Por que devo estar aqui e não em outro site/tela?
A maneira como as informações são agrupadas e disponibilizadas ao usuário é fundamental para
fornecer uma navegação de qualidade e uma boa usabilidade. Além disso, a AI ajuda a garantir que as
informações sejam consistentes e coerentes em todo o sistema, melhorando a experiência do usuário
e reduzindo a frustração.
Portanto, antes de iniciar o desenvolvimento de um produto digital, é crucial considerar a AI. Em
outras palavras, como podemos organizar todas as informações de maneira que o usuário possa
compreendê-las de forma intuitiva e eficaz?
Em um jogo, podemos pensar nas informações colocadas em um cenário, tudo que ele comunica,
as impressões de que ele passa ao jogador, as sensações, percepções e a inserção na história.
Da mesma forma, em um site é preciso projetar como será a jornada do usuário e quais
informações serão apresentadas e são importantes para a experiência do usuário.
1.1 PILARES DA ARQUITETURA DE INFORMAÇÃO
A AI é uma disciplina essencial no campo do design de experiência do usuário (UX). Ela
desempenha um papel fundamental na organização, estruturação e rotulação de informações de
maneira intuitiva e fácil de entender para os usuários. Para compreender melhor a AI, precisamos nos
familiarizar com seus pilares fundamentais. São eles: navegação, busca, organização e rotulação.
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 4/30
Cada um desses pilares desempenha um papel crítico na criação de uma experiência do usuário
eficaz, fornecendo aos usuários uma compreensão clara do que podem fazer em um site ou aplicativo
e como podem fazer. Juntos, eles facilitam a exploração, a compreensão e o uso eficaz das
plataformas digitais, permitindo que os usuários encontrem o que estão procurando com facilidade e
eficiência.
1. Navegação: trata de como os usuários navegam por um site ou sistema. Uma navegação bem
projetada permite que os usuários encontrem o que estão procurando com facilidade e
eficiência.
2. Busca: complementa a navegação, proporcionando aos usuários um meio eficaz de buscar
informações específicas dentro do sistema.
3. Organização: envolve a organização das informações de maneira lógica e intuitiva, facilitando a
localização do conteúdo pelos usuários.
4. Rotulação: relaciona-se com a forma como as informações são nomeadas e categorizadas.
Rótulos eficazes são intuitivos e refletem a linguagem e a compreensão do usuário.
1.2 COMO DOCUMENTAR: DOCUMENTANDO A ARQUITETURA DE
INFORMAÇÃO
Documentar a AI é um passo crucial que oferece uma compreensão clara do layout e da estrutura
de um site ou aplicativo. A documentação pode assumir várias formas, dependendo do projeto e dos
objetivos. Aqui estão algumas maneiras comuns de documentar a AI:
1. Mapas do site: fornecem uma visão geral da organização do conteúdo em um site ou aplicativo.
2. Wireframes: esboços básicos que ilustram a disposição dos elementos em uma página ou tela.
3. Diagramas de fluxo do usuário: mostram o caminho que um usuário pode percorrer em um site
ou aplicativo, incluindo ações do usuário, pontos de decisão e interações com a interface.
4. Blueprints ou especificações da página: detalham o conteúdo e a funcionalidade de uma página
específica, incluindo informações sobre interações do usuário e comportamento da interface.
5. Modelos de conteúdo: definem os tipos de conteúdo que serão exibidos em um site ou
aplicativo e as relações entre eles.
6. Taxonomias e etiquetagem: a taxonomia é a classificação das informações e a etiquetagem é
como essas informações são representadas para o usuário.
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 5/30
7. Protótipos: são versões interativas do design que permitem testar a AI e a usabilidade antes do
desenvolvimento final.
É importante notar que a documentação de AI é um recurso vivo que deve ser atualizado à
medida que o sistema evolui. É fundamental para garantir que o sistema seja desenvolvido em
conformidade com as necessidades dos usuários e os requisitos do negócio. Ao documentar a AI, é
importante considerar o usuário. A documentação deve, portanto, refletir uma estrutura e
organização que atendam às necessidades dos usuários, tornando mais fácil para eles localizar e
compreender as informações.
No próximo tópico, daremos uma atenção especial aos wireframes e blueprints, que são
ferramentas fundamentais na criação de uma AI eficaz.
TEMA 2 – WIREFRAMES
Wireframes são representações visuais simplificadas que surgem durante e após a etapa de
Arquitetura de Informação, desempenhando um papel crucial no processo de design da interface do
usuário (UI) e na estruturação da informação.
Os wireframes, essencialmente, estabelecem a base para a construção da interface de um site ou
aplicativo. Funcionam como uma espécie de “esqueleto” do projeto, definindo a estrutura, o layout e
a hierarquia dos elementos de uma página, sem se preocupar, inicialmente, com detalhes gráficos,
cores ou estilos. Seu principal objetivo é estabelecer a funcionalidade e o fluxo de interação do
usuário no ambiente digital.
Essas representações visuais ajudam a organizar a informação de maneira hierárquica e visual,
fornecendo uma visão preliminar do problema a ser abordado. Eles permitem um debate focado
sobre quais informações serão apresentadas, seu posicionamento, o conteúdo e algumas
funcionalidades, antes mesmo de se entrar em uma fase de exploração mais criativa e detalhada do
design.
O wireframe pode ser desde um esboço feito à mão até um desenho mais detalhado feito em
uma aplicação especializada. Eles apresentam um layout básico, fornecendo uma visão geral do
conteúdo, posicionamento e da estrutura básica de como uma página ou tela será apresentada. No
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 6/30
entanto, vale ressaltar que eles não costumam incluir cores, fontes e elementos de design final, já que
o objetivo principal é focar na funcionalidade, estrutura e fluxo de informação.
Os wireframes servem como uma ferramenta eficaz para validar ideias e conceitos iniciais,
promovendo uma comunicação clara e eficaz entre designers, desenvolvedores e stakeholders, e
permitindo ajustes e iterações antes que o processode design detalhado e codificação comece. Eles
representam um passo fundamental no processo de desenvolvimento, economizando tempo,
recursos e esforço, ao minimizar mal-entendidos e reestruturações drásticas mais adiante no processo
de design.
2.1 CONSTRUINDO O WIREFRAME
Wireframes são, essencialmente, uma representação visual esquemática de uma interface. Seu
objetivo é trazer a estrutura, a hierarquia de informações e a funcionalidade do layout de uma página,
sem a necessidade de se preocupar com cores, tipografias e elementos gráficos.
Por exemplo, suponha que você está projetando a página de um e-commerce. No seu wireframe,
você pode começar esboçando os principais blocos de conteúdo: um cabeçalho com o logo e a barra
de pesquisa, uma navegação principal, um banner promocional, uma lista de produtos, um rodapé
com informações adicionais etc. Em seguida, dentro desses blocos, você definirá quais elementos eles
incluirão: títulos, textos, botões, links, imagens e assim por diante.
Ao entregar um wireframe para a equipe ou para o cliente, a intenção é que todos possam ter
uma visão clara e compartilhada de onde o projeto está caminhando. Esse artefato ajuda a garantir
que todos estejam na mesma página e tenham uma compreensão comum do que está sendo
planejado, minimizando possíveis desentendimentos ou desvios futuros.
Por exemplo, em um projeto de redesign de um site de notícias, um wireframe pode ajudar a
equipe a visualizar a nova disposição dos artigos na página, a nova estrutura de categorias, os locais
para publicidade etc., antes mesmo de qualquer código ser escrito ou de qualquer elemento visual ser
criado.
Um dos aspectos mais importantes a se ter em mente ao criar wireframes é a usabilidade. É
essencial que o wireframe não apenas apresente um layout organizado e esteticamente agradável,
mas que também promova uma experiência do usuário eficiente e intuitiva.
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 7/30
Por exemplo, ao projetar o wireframe para um formulário de inscrição, você deve considerar a
ordem e o agrupamento das perguntas, o tamanho e a localização dos campos de entrada, os
elementos de ajuda e feedback, entre outros fatores que influenciam na facilidade de uso do
formulário.
Por último, lembre-se de que os wireframes são ferramentas de comunicação. Eles são usados
não apenas para esboçar suas ideias, mas também para explicá-las aos outros. Portanto, certifique-se
de que seu wireframe seja compreensível para todos que o verão, incluindo clientes, outros designers,
desenvolvedores e qualquer outra pessoa envolvida no projeto.
Por exemplo, ao criar um wireframe para um aplicativo de reservas de restaurantes, você pode
usar anotações e descrições detalhadas para indicar como as interações funcionarão, como a busca, a
seleção de restaurantes, a visualização de detalhes, o processo de reserva e assim por diante.
2.2 O QUE INCLUIR EM UM WIREFRAME?
Ao criar um wireframe organizado, simples e limpo, é essencial concentrar-se em vários
elementos fundamentais. São eles:
Conteúdo: o conteúdo refere-se à informação que se deseja exibir na tela. O objetivo é
responder à pergunta: “o que será exibido nesta tela?”. O wireframe ilustra onde cada pedaço de
conteúdo será posicionado na página, podendo incluir áreas para texto, imagens, botões e
muito mais. Por exemplo, em um site de notícias, o conteúdo pode incluir manchetes, imagens,
textos de notícias, links para notícias completas etc.
Estrutura: a estrutura diz respeito à maneira como os componentes menores vão compor o
wireframe. O objetivo é responder à pergunta: “como os elementos desta página serão
reunidos?”. Um wireframe normalmente mostra onde os elementos de navegação (como menus,
barras de pesquisa e links) serão colocados, ajudando a definir o fluxo de como um usuário vai
interagir com o site ou aplicativo.
Hierarquia: a hierarquia anda de mãos dadas com a estrutura. Aqui, definimos quais elementos
da estrutura merecem maior destaque, sempre focando na informação que desejamos
transmitir. Por exemplo, em um e-commerce, um título de produto pode ter mais destaque do
que a descrição do produto. O objetivo é responder à pergunta: “o que você quer que o usuário
veja primeiro?”. Devemos levar em consideração:
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 8/30
O que tem mais valor para o usuário?
O que tem menos valor para o usuário?
Como esses elementos serão exibidos, agrupados e associados?
Funcionalidade: ao construir wireframes, é crucial considerar as funcionalidades básicas que
estarão associadas a ele. A pergunta a ser respondida é: “como esses elementos funcionarão
juntos?”. Os wireframes podem também incluir descrições de como certos aspectos da página
funcionarão. Por exemplo, o que acontece quando um usuário clica em um botão específico ou
como o carrinho de compras de uma loja on-line funciona.
Comportamento: este aspecto está intimamente ligado à funcionalidade. Trata-se de entender o
que acontece quando uma funcionalidade específica é acionada. A pergunta a ser respondida é:
“como esses elementos interagem com o usuário?”. Isso poderia envolver a explicação de como
um pop-up aparece quando um usuário clica em um botão específico ou como um menu se
expande ou retrai ao passar o mouse.
Cada um desses aspectos é parte integrante na construção de um wireframe eficaz. Eles
garantem que o design esteja centrado no usuário, tornando o website ou aplicativo fácil de usar e
proporcionando uma experiência intuitiva e agradável para o usuário.
2.3 O QUE NÃO INCLUIR EM UM WIREFRAME?
Um wireframe representa a estrutura fundamental de um aplicativo ou site, focando em
elementos essenciais como botões, formulários e títulos. Ele não inclui elementos gráficos avançados,
cores, tipografia diferenciada e deve ser apresentado em tons de cinza. O foco principal de um
wireframe está na funcionalidade, comportamento, estrutura e hierarquia, não nos detalhes visuais.
Ao criar wireframes, evite usar conteúdo sem sentido, como o famoso Lorem ipsum. Se não tiver
um conteúdo adequado ainda, use linhas horizontais para simbolizar o texto. O wireframe tem o
objetivo de mostrar como o seu aplicativo ou site irá se comportar, e não como será a estética final.
Embora os wireframes sejam fundamentais para definir a estrutura, o layout e a funcionalidade de
uma página web ou aplicativo, existem elementos que não são normalmente incluídos em um
wireframe:
Cores: o wireframe foca na estrutura e no layout da página, não nos detalhes de cores. As
decisões de cor são normalmente tomadas durante o estágio de design de interface do usuário
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 9/30
(UI).
Gráficos e imagens de alta fidelidade: as imagens e gráficos podem ser indicados como espaços
reservados, mas os detalhes e os ativos finais geralmente não são incluídos no wireframe.
Fontes e tipografia: assim como as cores, as decisões sobre a fonte são geralmente tomadas
mais tarde, durante o estágio de design da UI. No wireframe, a tipografia é geralmente
representada por texto simples.
Logotipos e marcas: o wireframe é focado na estrutura e funcionalidade, não na identidade da
marca.
Detalhes visuais: wireframes não são destinados a ser representações visuais detalhadas de um
design. Eles fornecem uma visão geral da estrutura e do fluxo de um design. Detalhes visuais,
como cores, fontes e imagens, devem ser adicionados no estágio de design.
Comportamento: wireframes não incluem detalhes sobre o comportamento de um design. Isso
inclui coisas como animações, transições e interações do usuário. O comportamento de um
design deve ser especificado no estágio de design de interação.
Conteúdo: wireframes não incluem conteúdo real, como texto, imagens ou vídeos. O conteúdo
de um design deve ser adicionado no estágio de design de conteúdo.
Especificações técnicas: wireframes não devem incluir especificaçõestécnicas, como o tipo de
código ou biblioteca a ser usada para implementar um design. A especificação técnica de um
design deve ser gerada no estágio de desenvolvimento.
Animações e transições interativas: detalhes como esses são geralmente deixados para
protótipos mais avançados ou especificações de design de interface.
O objetivo de um wireframe é ser uma representação simples da página ou aplicativo, permitindo
que os designers se concentrem nos aspectos fundamentais antes de aprofundar nos detalhes do
design. Isso ajuda a garantir que a estrutura e a funcionalidade sejam sólidas antes de se avançar para
os aspectos mais estéticos e interativos do design.
TEMA 3 – SERVICE BLUEPRINTS
Service blueprints têm como principal objetivo fornecer uma análise abrangente de como os
processos internos de uma empresa influenciam a experiência do usuário final. O principal foco está
em:
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 10/30
1. Melhorar diretamente a experiência dos colaboradores;
2. Indiretamente aprimorar a experiência do usuário final.
Um service blueprint é uma representação visual que mostra o caminho que um serviço percorre
até ser entregue ao cliente. Esse mapa detalhado ilustra os diferentes pontos de contato entre o
cliente e o serviço, destacando as funções e responsabilidades de cada parte envolvida.
Essa ferramenta é extremamente valiosa para aprimorar a experiência do cliente, pois ajuda a
identificar áreas onde o serviço pode ser aperfeiçoado e assegura que todas as partes envolvidas na
prestação do serviço estejam alinhadas.
Os service blueprints são empregados por uma variedade de organizações, incluindo empresas
comerciais, governos e organizações sem fins lucrativos. Sua função é potencializar a experiência do
cliente e garantir a entrega de serviços de alta qualidade.
Service blueprint é um mapeamento detalhado que retrata as relações entre os elementos,
processos e pessoas que compõem a jornada do cliente ou usuário dentro de um serviço.
3.1 PARA QUE SERVE UM SERVICE BLUEPRINT?
Um service blueprint serve para uma variedade de propósitos críticos em qualquer organização
que preste serviços a clientes ou usuários. A principal finalidade dessa ferramenta é identificar e
abordar possíveis falhas na experiência do serviço, que podem ser categorizadas em cinco principais
razões:
Definição incorreta do que os consumidores/clientes esperam: em alguns casos, os gerentes
podem ter uma compreensão equivocada das necessidades e expectativas dos clientes. Essa
desconexão pode levar a uma experiência de serviço insatisfatória, pois o serviço fornecido
pode não atender às necessidades reais dos clientes.
Definição de padrões de serviço errados: às vezes, os gerentes podem definir padrões de serviço
que não estão alinhados com o que os clientes valorizam. Isso pode resultar em desperdício de
recursos em áreas que não são importantes para os clientes, enquanto outras áreas que são de
alta prioridade para os clientes são negligenciadas.
Não cumprimento dos padrões de qualidade esperados pelos funcionários: mesmo quando os
padrões de serviço estão corretamente definidos, os funcionários podem não conseguir atingir
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 11/30
esses padrões devido a fatores como falta de treinamento, falta de recursos ou baixo moral.
Expectativas equivocadas dos consumidores/clientes: isso pode ocorrer quando há uma
comunicação inadequada ou enganosa da organização. Os clientes podem ter uma percepção
distorcida do serviço, o que leva a uma experiência insatisfatória quando suas expectativas não
são atendidas.
A experiência atual não atende às expectativas e à jornada do cliente: às vezes, o serviço pode
não ser projetado de forma a atender ao fluxo natural da jornada do cliente. Isso pode criar
atritos e tornar a experiência geral do cliente insatisfatória.
Ao usar um service blueprint, as organizações podem identificar essas falhas potenciais e
trabalhar para resolvê-las. Isso pode envolver a reformulação do serviço, a educação dos clientes
sobre o que esperar, a melhoria da formação dos funcionários ou a alteração da forma como o
serviço é comunicado aos clientes. Ao fazer isso, o service blueprint ajuda a melhorar a qualidade do
serviço, a satisfação do cliente e, em última análise, o sucesso da organização.
3.2 VANTAGENS DOS SERVICE BLUEPRINTS
Os service blueprints trazem uma série de vantagens importantes para qualquer organização que
busca otimizar sua entrega de serviços e aprimorar a experiência geral do cliente.
Aqui estão algumas dessas vantagens, juntamente com exemplos para ilustrá-las:
Visão geral do serviço: ao criar um blueprint, obtemos uma visão abrangente de todo o serviço,
o que nos permite mapear e identificar possíveis falhas na jornada do cliente. Por exemplo, se
estivermos operando um restaurante, um blueprint pode nos ajudar a identificar se os pedidos
estão demorando muito para chegar à mesa do cliente devido a um gargalo na cozinha.
Melhoria da experiência do cliente e do funcionário: com a comparação da jornada atual do
cliente com uma jornada ideal, podemos entender e abordar áreas de melhoria, não apenas
para o cliente, mas também para os funcionários. Isso ajuda a alinhar todas as expectativas e a
otimizar a entrega do serviço. Por exemplo, em uma empresa de call center, um blueprint pode
revelar que os funcionários estão demorando muito para resolver as consultas dos clientes
porque estão usando sistemas desatualizados, afetando a satisfação do cliente e do funcionário.
Aumento da eficiência: ao identificar pontos de melhoria no serviço, um blueprint também pode
revelar oportunidades para aumentar a eficiência operacional. Isso pode ajudar a melhorar a
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 12/30
comunicação entre diferentes departamentos ou equipes, garantindo uma entrega de serviço
mais suave e eficaz. Por exemplo, em uma clínica médica, um blueprint pode mostrar que os
pacientes estão esperando muito tempo entre a triagem e a consulta porque a comunicação
entre a recepção e os médicos não está eficiente.
Redução de custos: além de melhorar a eficiência, um blueprint também pode revelar áreas
onde recursos podem ser economizados sem comprometer a qualidade do serviço. Isso pode
ajudar a empresa a gerenciar seus recursos de forma mais eficaz e a reduzir custos. Por exemplo,
em uma loja de varejo, um blueprint pode indicar que o pessoal está sendo subutilizado durante
certos horários do dia, sugerindo que a programação dos funcionários pode ser ajustada para
economizar em custos de mão de obra.
Melhoria da conformidade: por fim, um blueprint pode ajudar a garantir que o serviço esteja em
conformidade com todas as regulamentações aplicáveis. Isso pode reduzir o risco de violações
regulatórias e suas consequências associadas, como multas ou danos à reputação. Por exemplo,
em uma instituição financeira, um blueprint pode mostrar se todos os processos de verificação
de identidade e de combate à lavagem de dinheiro estão sendo seguidos em todas as etapas da
jornada do cliente.
3.3 QUAIS SÃO OS BENEFÍCIOS DO SERVICE BLUEPRINT?
Os service blueprints proporcionam diversos benefícios vitais para as organizações que buscam
otimizar a entrega de serviços. Essas ferramentas visuais ajudam a ilustrar os processos operacionais,
destacando possíveis gargalos, redundâncias e ineficiências. Vamos explorar três dos principais
benefícios do uso do service blueprint:
Exposição das ineficiências dos processos: assim como uma fotografia de alta resolução revela
cada detalhe de uma cena, um service blueprint detalhado fornece uma visão clara e abrangente
dos processos dentro da empresa. Essa visão clara pode revelar onde e por que os atrasos, erros
ou outras ineficiências estão ocorrendo. Por exemplo, se um call center está experimentando
tempos de espera longos, um service blueprintpode mostrar se o problema está na distribuição
das chamadas, no tempo de resposta dos atendentes ou em algum outro lugar do processo.
Oportunidades de otimização: o service blueprint não apenas expõe ineficiências, mas também
pode revelar redundâncias, em que tarefas ou processos estão sendo repetidos sem
necessidade. Removendo essas redundâncias, é possível economizar tempo e energia dos
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 13/30
colaboradores, melhorar a experiência do cliente e diminuir o risco de informações
inconsistentes. Por exemplo, se uma loja on-line está pedindo aos clientes para inserirem suas
informações de envio várias vezes durante o processo de checkout, um service blueprint pode
identificar essa redundância e sugerir uma otimização.
Melhoria na visão geral do serviço: por último, mas não menos importante, um service blueprint
proporciona uma visão panorâmica de todo o serviço e seus processos inter-relacionados. Isso
permite que todas as áreas envolvidas entendam o fluxo completo do serviço, identifiquem
pontos de melhoria e colaborem de forma mais eficaz para melhorar o sistema como um todo.
Em muitas organizações, os departamentos podem estar concentrados apenas em suas próprias
atividades, perdendo a visão do quadro geral. O service blueprint ajuda a garantir que todas as
partes do sistema estejam funcionando harmoniosamente para uma entrega de serviço eficiente
e de alta qualidade.
3.4 ELEMENTOS ESSENCIAIS
Os service blueprints são compostos por elementos fundamentais que mapeiam a jornada do
usuário e o funcionamento interno de um serviço. Esses elementos essenciais são apresentados a
seguir.
Figura 1 – Exemplo de diagrama de service blueprint
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 14/30
Fonte: NN/G.
Ações do cliente/usuário: essas são as etapas, escolhas e interações que os clientes ou usuários
realizam ao longo da jornada do serviço. Pode incluir tudo, desde abrir um aplicativo até falar
com um atendente de serviço ao cliente.
Ações de frontstage: estas são as ações que ocorrem diretamente entre o usuário final e o
provedor do serviço. Elas podem ser interações humano-humano (por exemplo, um cliente
conversando com um atendente de loja) ou interações humano-máquina (por exemplo, um
usuário navegando em um site ou aplicativo).
Atividades de bastidores (backstage): estas são as atividades que acontecem fora do campo de
visão do usuário final, mas que são cruciais para a entrega do serviço. Isso pode incluir coisas
como gestão de estoque, manutenção de sistemas de TI ou coordenação de logística.
Processos de suporte: são as operações e interações que fornecem suporte aos colaboradores
para que eles possam entregar o serviço ao usuário final. Isso pode variar desde o treinamento
de funcionários até o suporte técnico interno.
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 15/30
O service blueprint também inclui algumas linhas importantes de separação para diferenciar
entre diferentes níveis de interação e visibilidade:
Linha da interação: representa as interações diretas entre o cliente e a organização.
Linha da visibilidade: separa as atividades visíveis ao cliente (frontstage) das atividades invisíveis
para ele (backstage). Por padrão, as atividades de frontstage ficam acima da linha e as de
backstage ficam abaixo dela.
Linha da interação interna: separa os funcionários que têm contato direto com o cliente
daqueles que não têm interação direta ou oferecem suporte ao cliente.
Finalmente, o service blueprint deve incluir evidências de serviço. Estas são representações
tangíveis ou intangíveis dos elementos que são utilizados nos processos e que dão suporte para que
o serviço aconteça. Isso pode incluir tudo, desde uma fatura ou recibo até uma interface de usuário
de um aplicativo.
As evidências de serviço podem estar tanto no frontstage (como um recibo entregue a um
cliente) quanto no backstage (como um sistema de gerenciamento de pedidos usado pelos
funcionários). Isso destaca o fato de que cada aspecto de um serviço, visível ou não ao cliente,
contribui para a experiência geral do serviço.
TEMA 4 – MODELO ATÔMICO
O design atômico, uma metodologia de criação de sistemas de design proposta por Brad Frost,
baseia-se em componentes menores e gerenciáveis que são combinados para formar estruturas mais
complexas, como mostra a Figura 2. Essa abordagem oferece uma maneira eficiente e flexível de
construir sistemas de design coesos, escaláveis e consistentes.
Figura 2 – Componentes do modelo atômico
Fonte: Fung, 2023.
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 16/30
Para entender melhor o design atômico e sua aplicabilidade, vamos usar o Instagram como
exemplo.
Átomos: no contexto do design atômico, os átomos representam os elementos visuais mais
básicos, como botões, ícones, campos de texto, cores e tipografia. No Instagram, por exemplo,
um átomo poderia ser o botão de curtir, o ícone do Direct ou a fonte usada para os textos,
exemplos apresentados na Figura 3.
Figura 3 – Exemplos de botões encontrados no Instagram
Fonte: Elaborado por Fung, 2023.
Moléculas: as moléculas são formadas pela combinação de vários átomos para criar
componentes mais complexos. A barra de navegação inferior do Instagram, que inclui vários
ícones (átomos), serve como exemplo de uma molécula, conforme Figura 4.
Figura 4 – Barra inferior de navegação de um feed do Instagram
Fonte: Elaborado por Fung, 2023, com base em Instagram, [S.d.].
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 17/30
Organismos: os organismos são conjuntos de moléculas que funcionam juntas para formar um
componente funcional maior do design. A tela de perfil do Instagram, que inclui várias
moléculas (como a foto do perfil, o nome de usuário, a barra de navegação e o feed de fotos),
pode ser considerada um organismo, visualizado na Figura 5.
Figura 5 – Exemplo de tela de perfil do Instagram
Fonte: Elaborado por Fung, 2023, com base em Instagram, [S.d.].
Figura 6 – Exemplo de modelo de feed do Instagram
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 18/30
Fonte: Elaborado por Fung, 2023, com base em Instagram, [S.d.].
Modelos (templates): modelos são esqueletos das páginas onde os organismos são organizados
em um layout, formando a estrutura final do design. O modelo não contém conteúdo real, mas
delineia a estrutura na qual o conteúdo será inserido. No Instagram, um modelo poderia ser a
estrutura básica de uma postagem no feed, com espaços reservados para a foto, o nome de
usuário, os ícones de curtir/comentar/compartilhar e a caixa de comentários, exemplificado na
Figura 6.
Páginas: as páginas são a última etapa do design atômico, onde o modelo é preenchido com
conteúdo real. Por exemplo, uma postagem individual no feed do Instagram é uma página, pois
contém uma foto específica, o nome de usuário da pessoa que a postou, curtidas, comentários e
assim por diante.
Figura 7 – Exemplos dos componentes de um modelo atômico aplicado ao Instagram
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 19/30
Fonte: Fung, 2023.
O design atômico, sendo um processo iterativo, permite a revisão e o ajuste do design conforme
necessário. Após definir todos os elementos, é possível começar a testar, revisar e validar o design,
aprimorando e adaptando-o continuamente para atender às necessidades do projeto.
O design atômico, concebido por Brad Frost, é uma abordagem altamente eficiente e flexível que
auxilia na manutenção da consistência visual e funcional em todo o sistema de design. A capacidade
de reutilizar componentes existentes economiza tempo e recursos, tornando o design atômico uma
escolha popular entre designers e desenvolvedores.
4.1 VANTAGENS DO MODELO ATÔMICO
O design atômico é um sistema fundamental para impulsionar a organização em um projeto. Suaadoção conduz a equipe a estabelecer padrões para cada elemento envolvido, culminando em um
design sistemático mais coeso e harmonizado.
Essa metodologia favorece uma aceleração no ritmo de desenvolvimento. O motivo reside na
visão de que os elementos são interconectados e complementares. Isso facilita a realização de ajustes,
mitigando a necessidade de retrabalho e economizando tempo precioso.
O design atômico também atua como uma ponte, estreitando as relações entre as equipes de
desenvolvimento e design. A implementação dessa abordagem requer colaboração e comunicação
eficaz, o que minimiza desentendimentos e divergências de opiniões, alinhando todos em direção a
um objetivo comum.
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 20/30
A prototipação é outra fase que se beneficia grandemente do design atômico. Com uma
definição clara dos elementos desde o início, a criação e os testes dos protótipos tornam-se tarefas
menos árduas. Além disso, se a necessidade de alterações surgir durante as pesquisas, o Atomic
Design permite a reorganização ou modificação dos itens de forma prática e eficiente, antes da
construção do produto final.
4.2 DESVANTAGENS DO MODELO ATÔMICO
Embora o design atômico ofereça benefícios substanciais, também existem desafios potenciais na
sua aplicação. Um desses desafios pode ser reestruturar a equipe de acordo com o atomic design,
especialmente ao integrá-lo em produtos já em desenvolvimento.
Uma questão frequentemente levantada por alguns profissionais é a discordância gerada pela
falta de alinhamento. Isso pode não ser um problema intrínseco à metodologia, mas sim uma
consequência da maneira como ela é implementada. Se o design atômico não for adequadamente
comunicado e documentado entre todos os membros da equipe, ele pode, paradoxalmente, gerar
mais conflitos do que soluções.
Ainda nesta linha, algumas equipes podem encontrar dificuldades em classificar determinados
elementos dentro dos grupos definidos pelo design atômico (átomos, moléculas, organismos,
templates ou páginas). Nesse aspecto, o crucial é estabelecer a classificação de um elemento em
consonância com os objetivos da equipe e garantir que todos estejam a par dessa decisão.
O design atômico é um processo que precede o desenvolvimento. Em projetos menos complexos
ou com prazos apertados, a implementação desta metodologia pode ser contraproducente e acabar
por retardar a criação do produto. Portanto, é imprescindível estar em sintonia com todas as partes
envolvidas para avaliar a adequação e viabilidade do design atômico para cada projeto.
Saiba mais
Curiosidades sobre Brad Frost
Brad Frost é um respeitado designer de UX e autor baseado em Chicago. É mais conhecido
como o criador do atomic design, uma metodologia de design de sistemas que organiza os
elementos visuais de um sistema em blocos de construção menores e mais gerenciáveis. Essa
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 21/30
abordagem ao design tem sido influente na comunidade de UX, oferecendo uma maneira
estruturada e eficiente de criar interfaces de usuário consistentes e reutilizáveis.
Antes de se tornar uma figura central no campo do design de sistemas, Frost trabalhou
como designer web e desenvolvedor front-end em várias agências digitais. Suas contribuições ao
design responsivo e ao design de sistemas são profundas e ele é conhecido por sua abordagem
cuidadosa e minuciosa.
Como um frequente palestrante em conferências e eventos, Frost compartilha suas ideias e
metodologias com a comunidade mais ampla de design. Ele é o autor de vários livros, incluindo
Atomic Design e Designing interfaces, que são referências no campo do design de UX.
Frost também é o fundador de um site próprio , no qual disponibiliza artigos, tutoriais e
outros recursos sobre design de UX. Ele é coautor do livro The web standards creativity, uma
compilação de técnicas inovadoras para designers e desenvolvedores web. Além disso, Frost é o
autor de This is responsive, um recurso on-line que fornece padrões, recursos e notícias sobre
design responsivo.
Brad Frost é um membro ativo da comunidade de design, e seu trabalho foi reconhecido por
organizações como AIGA, Adobe e Nielsen Norman Group. Ele recebeu vários prêmios por seu
trabalho, que tem sido destaque em publicações como Wired, Fast Company e The New York
Times.
Brad Frost é um designer talentoso e experiente que fez contribuições significativas para o
campo do design de UX. Ele continua a ser um recurso valioso para designers e desenvolvedores
ao redor do mundo, e seu trabalho na criação do atomic design está ajudando a melhorar a
experiência do usuário para todos.
TEMA 5 – DESIGN SPRINT
O design sprint é um processo inovador desenvolvido por Jake Knapp e a equipe do Google
Ventures, que permite a empresas, startups e equipes solucionarem problemas complexos e
desenvolverem novas ideias em um curto período de tempo — geralmente cinco dias, também
[2]
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 22/30
conhecido como sprint. O objetivo desse método é projetar, prototipar e testar ideias de produtos ou
serviços de maneira rápida e eficaz.
Figura 8 – Atividades desenvolvidas por dia do design sprint
Fonte: Medium, 2017.
Algumas das vantagens do design sprint:
ajuda as equipes a resolverem problemas rapidamente e eficientemente;
gera ideias inovadoras e eficientes para novos produtos e serviços;
é envolvente e incentiva a colaboração;
pode ser usado por equipes de todos os tamanhos.
O processo de design sprint é estruturado em cinco etapas que ocorrem durante uma semana:
1. Entendimento ou mapeamento e escolha do alvo: no primeiro dia, a equipe se dedica a
entender o problema em mãos, mapear o processo ou o produto e escolher um elemento
específico para focar. Aqui, é importante definir o desafio que será enfrentado e compreender o
objetivo a longo prazo. “O que queremos no final deste sprint?” e “se lançarmos este produto,
quais são os possíveis problemas?” são perguntas essenciais a serem respondidas. A equipe cria
um mapa da jornada do usuário, com a ajuda de especialistas da área, transformando o
problema em uma oportunidade.
2. Remix ou esboço: no segundo dia, são criadas soluções potenciais para o problema escolhido.
Cada membro da equipe desenha soluções individualmente para garantir uma variedade de
ideias. Esse é o momento da ideação, em que a equipe busca referências de mercado e utiliza
técnicas de brainstorming, como o Crazy 8s, para gerar ideias inovadoras.
3. Decisão: no terceiro dia, decide-se qual dessas soluções será prototipada. As soluções são
avaliadas e votadas pela equipe. Aqui, todos os sketches das soluções são apresentados e os
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 23/30
pontos mais interessantes ou o sketch inteiro mais votado é escolhido para prosseguir. É o
decisor quem faz a escolha final.
4. Protótipo: o quarto dia é dedicado à transformação da solução escolhida em um protótipo
realista. A equipe desenvolve um storyboard detalhado com fluxos de usuário e desenha todas
as telas da solução.
5. Teste de usabilidade: no último dia, o protótipo é testado com usuários reais. A equipe observa
como os usuários interagem com o protótipo para aprender mais sobre o que funciona e o que
não funciona. Essa etapa é dividida em duas: uma entrevista inicial para entender o usuário e
seu contexto, seguida do teste do protótipo em si. Todo o processo de teste é compartilhado
com a equipe para que todos possam analisar as interações dos usuários.
O design sprint é eficaz porque permite que as equipes aprendam rapidamente, em vez de
gastarem semanas ou meses desenvolvendo um produto ou serviço completo, apenas para descobrir
que ele não atende às necessidades dos usuários. Entre suas vantagens, destacam-se a resolução
rápida de problemas, a geração de ideias inovadoras, o incentivo à colaboraçãoe a possibilidade de
testar soluções com usuários e obter feedback em tempo real.
Para realizar um design sprint, é necessário ter um desafio significativo, uma equipe de
colaboradores multidisciplinar, um decisor entre os colaboradores da equipe e materiais para a
equipe, como flipcharts, lousas, post-its, canetas e papel. Além disso, é importante lembrar que o
design sprint é um processo iterativo. Ele pode ser repetido várias vezes até que todos os ajustes
necessários sejam feitos, permitindo que ideias sejam refinadas e testadas com baixo custo.
Um exemplo real do uso do design sprint é o da Slack , uma ferramenta de comunicação
empresarial. Em 2015, a equipe da Slack estava lutando para desenvolver uma nova funcionalidade
chamada Post. Eles sabiam que queriam criar um meio para os usuários compartilharem mensagens
longas, mas não tinham certeza de como essa funcionalidade deveria funcionar. Eles decidiram usar
um design sprint para resolver o problema. Ao final do sprint, eles tinham um protótipo funcional da
funcionalidade Post que foi capaz de testar com os usuários. O feedback dos usuários foi incorporado
na versão final do Post, que é uma das funcionalidades mais populares da Slack.
A metodologia design sprint é poderosa e permite às equipes desenvolverem e validarem ideias
rapidamente, minimizando os riscos e o tempo de desenvolvimento. Ela estimula a colaboração, a
[3]
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 24/30
inovação e a resolução eficiente de problemas, tornando-se uma ferramenta valiosa para equipes de
todos os tamanhos.
5.1 DESENVOLVENDO O DESIGN SPRINT
O design sprint é uma metodologia ágil de cinco dias, estrategicamente estruturada, que orienta
equipes através de uma jornada de inovação para resolver desafios significativos. Cada dia da semana
é cuidadosamente planejado para cumprir uma etapa específica do processo. Aqui está uma visão
geral de como essa semana irá se desenvolver:
1º dia: desenvolvendo o design sprint
O primeiro dia do design sprint é dedicado à compreensão do problema, ao entendimento do
negócio e ao nivelamento do conhecimento entre todos os participantes. O objetivo a longo prazo é
definido através de perguntas como “o que queremos alcançar ao final deste sprint?” e “se lançarmos
este produto, quais são os possíveis desafios?”.
A jornada do usuário é mapeada e, com esse mapa, a equipe consegue visualizar os passos que o
usuário percorre para atingir seu objetivo. A fase “Ask the Experts” segue, em que especialistas na
área são convidados para entrevistas, trazendo perspectivas e conhecimentos valiosos.
A análise destas entrevistas, juntamente com a revisão do mapa, permite à equipe transformar o
problema em uma oportunidade. Com o desafio compreendido, inicia-se a fase “How Might We”
(Como podemos), em que todos os possíveis caminhos para resolver o problema são levantados e
votados. Neste ponto, o voto do especialista tem mais peso, ajudando a definir as principais
estratégias.
Os “How Might We” são anotados em post-its e colocados no mapa, indicando os pontos-chave
do sprint. Ao final do dia, o foco é definido do ponto de vista do usuário, assim como os participantes
que realizarão o teste de usabilidade.
2º dia: desenvolvendo o design sprint
No segundo dia, denominado Remix, a equipe busca referências de mercado que possam ajudar
a solucionar o problema. Esse é o dia da ideação, em que a equipe faz brainstorming e utiliza a
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 25/30
técnica Crazy 8s para gerar ideias – não necessariamente soluções – que podem contribuir para
resolver o problema.
3º dia: desenvolvendo o design sprint
No terceiro dia, os esboços (sketches) desenvolvidos no dia anterior são expostos para votação. A
equipe pode votar na história inteira ou em partes específicas das ideias. As ideias mais votadas são
então transformadas em um storyboard, uma história visual da solução proposta.
O decisor (geralmente o stakeholder ou o proprietário do produto) analisa os votos e decide
qual(quais) ideia(s) seguir. A partir daí, a equipe desenvolve o storyboard, que detalha o fluxo do
usuário e as telas individuais da solução, garantindo que a ideia é consistente e não possui lacunas.
4º dia: desenvolvendo o design sprint
O quarto dia é dedicado à criação do protótipo de alta fidelidade. Todas as ideias e soluções
discutidas e aprovadas nos dias anteriores são integradas nesse protótipo. O cliente pode participar
neste dia, contribuindo para o desenvolvimento do protótipo. Paralelamente, a equipe realiza o
recrutamento dos usuários para o teste de usabilidade e desenvolve o questionário que será utilizado
para testar as hipóteses.
5º dia: desenvolvendo o design sprint
O último dia do design sprint é dedicado ao teste de usabilidade. O teste é dividido em duas
partes: uma entrevista contextual para entender a rotina e o contexto do usuário, e o teste do
protótipo. É importante esclarecer para os usuários que eles testarão um protótipo, e não um produto
final.
Os resultados do teste são compartilhados com toda a equipe para análise. Se houver um erro
que ocorra com todos os testadores, é recomendado fazer a correção e refazer o teste com todos
novamente, garantindo a validade dos resultados.
Lembre-se: o design sprint é um processo flexível e essas etapas podem variar dependendo das
necessidades específicas do projeto ou da equipe.
Exemplo de um design sprint de cinco dias aplicado ao desenvolvimento de um
aplicativo de delivery de comida
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 26/30
• 1º dia: entendimento e definição do desafio
O problema identificado é a dificuldade dos usuários em encontrar opções de comida
saudável na área local deles. Após a discussão em grupo, definimos o objetivo a longo prazo:
“Criar um aplicativo que facilite o encontro de opções de comida saudável local”. Ouvimos
especialistas em alimentação saudável, nutrição e delivery de alimentos. Depois de mapear a
jornada do usuário e revisá-la com base nas entrevistas dos especialistas, identificamos
oportunidades e desafios.
• 2º dia: esboçando soluções
No segundo dia, realizamos uma sessão de brainstorming para gerar ideias. Referências de
aplicativos similares e técnicas como Crazy 8s foram utilizadas para criar uma variedade de
soluções potenciais. Os esboços de ideias incluíram opções de filtragem personalizadas,
programas de recompensa de saúde e parcerias com nutricionistas e restaurantes locais.
• 3º dia: decisão e storyboard
Revisamos todos os esboços e votamos nas melhores ideias. Decidimos focar em um sistema
de filtragem robusto que permite aos usuários encontrar refeições saudáveis baseadas em suas
preferências dietéticas, e um programa de recompensas que oferece incentivos para escolhas
saudáveis. Depois de decidir o caminho a seguir, criamos um storyboard detalhado mostrando
como o usuário interagiria com essas características.
• 4º dia: prototipação
Utilizando ferramentas de design digital, criamos um protótipo de alta fidelidade do
aplicativo, com base no storyboard. O protótipo incluiu elementos-chave como a tela inicial, a
interface de busca, as páginas de refeições e o sistema de recompensas. Recrutamos usuários-
alvo para testar o protótipo no dia seguinte.
• 5º dia: teste de usabilidade
Os usuários participaram de uma sessão de teste de usabilidade, durante a qual interagiram
com o protótipo. Pedimos que completassem tarefas específicas, como encontrar uma refeição
vegetariana na área local ou resgatar pontos de recompensa. Observamos suas interações e
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 27/30
recolhemos feedback sobre a usabilidade e funcionalidade do aplicativo. Ao final do dia,
tínhamos informações valiosas para informar a próxima iteração do design.
5.2 RESULTADOS
O design sprint é uma poderosa metodologia que permite validar uma ideiadiretamente com os
usuários finais em um curto período de tempo. Com a utilização de protótipos, é possível
experimentar, avaliar e aperfeiçoar ideias, gerando novas versões para testes de maneira eficiente e
econômica, em comparação com o desenvolvimento integral de um produto.
Esse processo é iterativo, o que significa que pode ser repetido várias vezes, até que todos os
ajustes necessários tenham sido feitos e uma solução satisfatória tenha sido encontrada. Essa iteração
permite que as equipes aprendam rapidamente e integrem feedback valioso dos usuários,
promovendo melhorias constantes no design do produto.
Além disso, o design sprint promove a colaboração e o alinhamento entre diferentes partes
interessadas, desde designers e desenvolvedores até executivos e usuários. Ele desmistifica o
processo de tomada de decisão no design, tornando-o transparente e participativo. Ao final de um
design sprint, as equipes não só têm um protótipo testado, mas também um melhor entendimento
das necessidades do usuário e uma direção clara para o desenvolvimento futuro do produto.
Deve-se notar, entretanto, que o design sprint não é uma solução definitiva para todos os
problemas. Ele é mais eficaz quando usado para responder a perguntas críticas de negócios e reduzir
incertezas, oferecendo um ponto de partida sólido para o desenvolvimento de um produto ou
serviço.
Saiba mais
Curiosidades sobre Jake Knapp
Jake Knapp é o criador do design sprint, um processo de cinco dias para resolver problemas
e testar novas ideias rapidamente. Antes de criar o design sprint, Knapp passou dez anos
trabalhando no Google, onde atuou em produtos como o Gmail e o Google Hangouts.
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 28/30
Enquanto estava no Google, Knapp percebeu que as equipes de projeto frequentemente
gastavam muito tempo em reuniões de planejamento e discussão sem chegar a um produto final.
Para resolver esse problema, ele começou a experimentar diferentes formas de agilizar o
processo de desenvolvimento de produtos. Isso o levou à criação do design sprint, um processo
estruturado de cinco dias que combina métodos de estratégia de negócios, inovação, ciência do
comportamento e design thinking.
Knapp desenvolveu e refinou o processo do design sprint enquanto trabalhava no Google
Ventures, o braço de capital de risco do Google. No Google Ventures, ele e sua equipe realizaram
mais de 150 sprints com empresas do portfólio, como Nest, Slack, 23andMe e Uber, entre outros.
• Algumas curiosidades sobre o design sprint
O design sprint foi inspirado por muitos métodos de trabalho diferentes, incluindo o design
thinking de Stanford, a estratégia de negócios de Harvard e o movimento de inicialização enxuta
de Eric Ries.
O livro de Knapp, Sprint: how to solve big problems and test new ideas in just five days, é um
guia detalhado sobre como conduzir um design sprint. Foi publicado em 2016 e tem sido usado
como uma referência valiosa por muitas organizações.
Embora o processo original do design sprint seja de cinco dias, Knapp e sua equipe também
desenvolveram uma versão condensada de dois dias para equipes com restrições de tempo.
O design sprint se tornou tão popular que agora é usado por muitas empresas fora do
ecossistema do Google, incluindo Lego, McKinsey e a BBC.
O próprio Jake Knapp descreve o design sprint como “o maior truque” em seu livro, pois
permite que as empresas evitem cometer erros caros e demorados ao testar uma ideia ou
produto em um ambiente seguro e controlado.
FINALIZANDO
Ao longo deste estudo, exploramos os aspectos cruciais do design de experiência do usuário
(UX), design de interface do usuário (UI), prototipação, diagramas de serviços (service blueprints),
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 29/30
modelo atômico e design sprint. Cada um desses elementos contribui de maneira única para a criação
de produtos digitais bem-sucedidos e experiências de usuário memoráveis.
Por meio do design de UX e UI, nós nos esforçamos para compreender as necessidades, desejos
e comportamentos dos usuários, criando interfaces intuitivas e atraentes que facilitam a interação
entre o usuário e o produto digital. A prototipação e o design de serviço nos permitem mapear a
jornada do usuário e visualizar a interação de todos os componentes do sistema, revelando pontos de
contato críticos e áreas de melhoria.
Ao implementar o modelo atômico, introduzimos uma estrutura escalável e flexível para o design,
que considera cada elemento de interface como parte de um todo coeso, permitindo uma
manutenção mais eficiente e design consistente.
Finalmente, por meio do design sprint, tivemos uma visão de como condensar o processo de
design em um período intensivo, porém produtivo, que permite validar ideias diretamente com os
usuários finais. Essa abordagem rápida e iterativa destaca a importância do aprendizado contínuo, do
feedback do usuário e da melhoria constante no ciclo de vida do design de produtos.
Ao combinar esses elementos, somos capazes de criar produtos digitais que não apenas atendem
às necessidades funcionais dos usuários, mas também proporcionam experiências de uso
enriquecedoras e agradáveis. Lembre-se: o design não é apenas uma questão de estética, mas
também de função e experiência. E, no centro de tudo, estão os usuários, com suas necessidades, suas
expectativas e suas experiências.
REFERÊNCIAS
BAXTER, M. Projeto de produto: guia prático para o design de novos produtos. São Paulo:
Edgard Blucher, 2008.
CHANDLER, C.; UNGER, R. O guia para projetar UX: a experiência do usuário (UX) para
projetistas de conteúdo digital, aplicações e websites. 1. ed. Starlin Alta Consult, 2009.
GARRET, J. J. The Elements of user experience: user centered design for the web and beyond.
New Readers Press, 2011
13/03/2024, 01:50 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 30/30
JOHNSON, S. Cultura da interface: como o computador transforma nossa maneira de criar e
comunicar. Rio de Janeiro: Zahar, 2001.
NORMAN, D. Emotional design: why we love (or hate) everyday things. New York: Basic Books,
2004.
_____. The design of everyday things. New York, Basic Books, 1988.
PREECE, J.; ROGER, Y.; SHARP, H. Design de interação. 3. ed. Porto Alegre: Bookman Companhia
ED, 2013.
ROGERS, Y.; SHARP, H.; PREECE, J. Design de interação: além da interação homem-computador.
3. ed. Bookman, 2013.
SANTOS, R. Usabilidade de interfaces e arquitetura da informação: alguns aspectos da
organização de conteúdo para o meio digital. In: Anais Abergo, Gramado, 2000.
SOUSA, J. O. design sprint (Resumo). Medium, 7 fev. 2017. Disponível em:
<https://medium.com/gobee/design-sprint-resumo-3a5b634bd311>. Acesso em: 2 ago. 2023. 
 Disponível em: <https://www.iainstitute.org/what-is-ia>. Acesso em: 2 ago. 2023.
 Disponível em: <https://bradfrost.com>. Acesso em: 2 ago. 2023.
 Disponível em: <https://slack.com>. Acesso em: 2 ago. 2023.
[1]
[2]
[3]
13/03/2024, 01:48 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 1/13
 
 
 
 
 
 
 
 
 
FUNDAMENTOS DE DESIGN DE
SISTEMAS
AULA 3
 
 
 
 
 
 
 
 
 
 
13/03/2024, 01:48 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 2/13
 
 
Prof. Vinicius Pozzobon Borin
CONVERSA INICIAL
O objetivo desta etapa é conhecer sobre o Git e como ele auxilia no controle de versionamento
de arquivos. Veremos:
O que é Git e versionamento de arquivos;
Repositórios Git;
Terminologia do Git;
Comandos Git.
TEMA 1 – GIT
O controle de versão é uma prática essencial para documentos importantes e, também, para
qualquer projeto de software, e o Git é uma das ferramentas mais populares e amplamente utilizadas
para esse propósito. Aliás, quem nunca precisou criar diversos arquivos diferentes para um mesmo
trabalho e depois ficou perdido com tantas versões? Veja:
Figura 1 – Diferentes versões de um mesmo arquivo
Fonte: Borin, 2023.
Aqui estão algumas das principais razõespelas quais o Git é importante no desenvolvimento de
software:
13/03/2024, 01:48 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 3/13
Rastreabilidade: o Git permite que você mantenha uma linha cronológica completa de todas as
alterações feitas em seu código. Isso significa que você pode facilmente reverter qualquer
alteração que possa ter causado problemas ou simplesmente verificar como o código evoluiu ao
longo do tempo;
Colaboração: o Git é projetado para trabalhar com múltiplos desenvolvedores em um projeto.
Ele permite que várias pessoas trabalhem no mesmo código e mesclem as suas contribuições
sem causar conflitos;
Backup: o Git mantém uma cópia de todas as versões do seu código, o que significa que você
sempre pode recuperar uma versão anterior se algo der errado. Isso também significa que você
não precisa se preocupar em perder o seu trabalho, mesmo se o seu computador falhar;
Integração contínua: o Git é compatível com muitas ferramentas de integração contínua, o que
significa que você pode automatizar vários processos, como compilação, testes e implantação;
Comunidade: o Git é open source e tem uma comunidade muito ativa e vibrante. Isso significa
que você pode obter ajuda com problemas e melhorias frequentes e novas funcionalidades.
A ferramenta mais comum de Git é o Git SCM. Hoje pode ser baixada no link a seguir. Deixamos
também outros links úteis:
Download – <https://git-scm.com/>
Windows, somente – <https://gitforwindows.org/>
Guia prático – <https://rogerdudler.github.io/git-guide/index.pt_BR.html>
Figura 2 – Ferramenta do Git
https://git-scm.com/
https://git-scm.com/
https://git-scm.com/
https://gitforwindows.org/
https://gitforwindows.org/
https://gitforwindows.org/
https://rogerdudler.github.io/git-guide/index.pt_BR.html
https://rogerdudler.github.io/git-guide/index.pt_BR.html
https://rogerdudler.github.io/git-guide/index.pt_BR.html
13/03/2024, 01:48 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 4/13
Créditos: Postmodern Studio/Shutterstock.
1.1 REPOSITÓRIO GIT
Um repositório Git é uma coleção centralizada de arquivos e diretórios que são controlados pelo
Git. É o lugar onde todas as versões do seu código são armazenadas e gerenciadas. Cada repositório
Git é único e representa um projeto individual.
Um repositório Git mantém a história completa de todas as alterações feitas nos arquivos e
diretórios em seu projeto. Isso permite que você reverta facilmente as alterações, compare versões
diferentes e veja como o seu código evoluiu ao longo do tempo.
TEMA 2 – CONFIGURANDO O GIT
O Git é manipulado por meio de diferentes comandos. Lembra que no Linux nós aprendemos
alguns comandos de terminal? Aqui aprenderemos comandos com o objetivo de trabalhar com o Git.
Os comandos do Git são os mesmo para qualquer sistema operacional.
2.1 COMANDO GIT CONFIG
O comando git config é usado para configurar as opções do Git e normalmente é o primeiro
comando que damos após instalar o Git. Ele permite que você especifique informações sobre você
13/03/2024, 01:48 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 5/13
mesmo, como seu nome e endereço de e-mail, bem como opções de comportamento do Git, como a
cor das saídas. Aqui estão alguns exemplos de como usar o comando git config:
1. Configurar o seu nome de usuário:
$ git config --global user.name "Seu Nome"
2. Configurar o seu endereço de e-mail:
$ git config --global user.email "seu.email@exemplo.com"
3. Exibir todas as configurações do Git:
$ git config –list
2.2 COMANDO GIT INIT
O comando git init é usado para inicializar um novo repositório Git em um diretório existente. Ao
ser inicializado, ele cria uma pasta oculta chamada .git no diretório atual, que armazena todos os
arquivos e informações necessárias para o Git gerenciar as versões do seu código. Aqui está um
exemplo de como usar o comando git init:
$ mkdir novo-projeto
 $ cd novo-projeto
 $ git init
 Inicializando um repositório Git vazio em /caminho/para/novo-
projeto/.git/
Note que usamos, no exemplo acima, comandos do Linux também. Primeiro criamos uma pasta
(mkdir), depois andamos até esta pasta (cd). Por fim, inicializamos o repositório. Após executar o
comando git init, o diretório atual se torna um repositório Git e você pode começar a adicionar, fazer
commit (conceituaremos isso em breve) e controlar as versões dos seus arquivos.
Na Figura 3 e Figura 4, vemos um exemplo de pastas de um projeto de software contendo
controle de versionamento Git. Na Figura 3, temos o projeto de um código em linguagem Python.
Vemos, também, a pasta .git. Na Figura 4, entramos na pasta do Git para ver os arquivos dentro dela.
13/03/2024, 01:48 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 6/13
Figura 3 – Estrutura de pastas projeto com o Git
Fonte: Borin, 2023.
Figura 4 – Estrutura de pastas projeto com o Git
Fonte: Borin, 2023.
Na estrutura de arquivos da Figura 4 temos um arquivo relevante de ser mencionado, que é o
HEAD. Ele serve para manter o histórico das alterações realizadas no projeto.
TEMA 3 – TERMINOLOGIA GIT
Vamos, agora, conhecer alguns termos bastante utilizados no meio Git.
3.1 BRANCHES (RAMIFICAÇÕES)
Em Git, um branch é uma linha separada (ramificação) de desenvolvimento que permite a você
trabalhar em vários recursos ou correções de bugs ao mesmo tempo, sem afetar o código principal da
aplicação. Isso significa que você pode criar uma cópia separada da linha principal do código
(conhecido como branch principal ou branch master) e fazer todas as alterações e experimentos nesse
13/03/2024, 01:48 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 7/13
novo branch sem afetar o código estável no branch principal. Quando você estiver satisfeito com as
alterações, pode mesclar (merge) o branch de volta ao branch principal.
Criar branches em Git é fácil e eficiente, o que permite a você experimentar novas ideias sem
prejudicar o código principal, e ainda pode ser usado para dividir o trabalho em equipe em diferentes
tarefas ou para manter diferentes versões do software. É uma das principais características do Git e
um dos motivos pelos quais ele é tão popular entre desenvolvedores de software.
Figura 5 – Esquema de ramificações e mesclagem
3.2 FLUXO DE TRABALHO
O fluxo de trabalho básico no Git envolve três etapas principais: adicionar (add), cometer
(commit) e enviar (push). Aqui está uma breve explicação de cada etapa:
Add: esta etapa envolve preparar as alterações que você fez no código para serem incluídas em
um commit. Você usa o comando git add para selecionar os arquivos ou partes dos arquivos que
deseja incluir no próximo commit. É possível adicionar alterações aos arquivos aos poucos, antes
de fazer o commit com todas as alterações juntas.
Commit: esta etapa envolve registrar as alterações adicionadas em um repositório Git local.
Todas as alterações são registradas no arquivo de HEAD. Você usa o comando git commit para
criar um commit, que é uma entrada no histórico do repositório que descreve as alterações
realizadas. Cada commit tem uma mensagem associada que explica o que foi alterado e por
quê.
Push: esta etapa envolve enviar as alterações do repositório local para um repositório remoto,
como o GitHub. Você usa o comando git push para enviar seus commits para o repositório
remoto, onde podem ser compartilhados com outras pessoas ou usados como backup.
13/03/2024, 01:48 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 8/13
Figura 6 – Fluxo de trabalho do Git
Fonte: Borin, 2023.
3.3 COMANDO GIT ADD
Aqui estão alguns exemplos de uso do comando git add:
1. Adicionar todos os arquivos:
$ git add *
2. Adicionar um arquivo específico:
$ git add file.txt
3. Adicionar uma pasta específica:
$ git add folder/
3.4 COMANDO GIT COMMIT
Aqui estão alguns exemplos de uso do comando git commit:
1. Fazer um commit com uma mensagem padrão:
$ git commit
2. Fazer um commit com uma mensagem personalizada:
$ git commit -m "Adicionado nova funcionalidadeX"
13/03/2024, 01:48 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 9/13
Em todos os exemplos, o comando git commit registra as alterações adicionadas no repositório
Git local.
3.5 COMANDO GIT PUSH
Aqui estão alguns exemplos de uso do comando git push:
1. Enviar todos os branches locais para o repositório remoto:
$ git push origin –all
2. Enviar um branch específico para o repositório remoto:
$ git push origin nome-do-branch
TEMA 4 – OUTROS COMANDOS GIT
Existem outros comandos Git que precisam ser conhecidos para que tenhamos o melhor uso de
todos os seus recursos e funcionalidades. Vejamos a seguir.
4.1 COMANDO GIT LOG
O git log é um comando que exibe o histórico de commits de um repositório Git. Ele mostra uma
lista de todos os commits realizados no repositório, incluindo informações sobre o autor, a data de
commit, a mensagem de commit e a identificação única do commit (a hash). Vejamos alguns exemplos
de como o git log pode ser usado:
1. Exibir o histórico de commit completo:
$ git log
2. Exibir o histórico de commit para um determinado arquivo:
$ git log <file>
3. Exibir o histórico de commit para um determinado período:
$ git log --since=<YYYY-MM-DD> --until=<YYYY-MM-DD>
13/03/2024, 01:48 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 10/13
4.2 COMANDO GIT STATUS
O git status é um comando que exibe o estado atual de um repositório Git. Ele mostra
informações sobre arquivos que foram modificados, adicionados ou excluídos, bem como
informações sobre quais arquivos estão sendo seguidos e quais ainda não foram realizados commit.
Aqui estão alguns exemplos de como o git status pode ser usado:
1. Exibir o estado atual do repositório:
$ git status
2. Exibir o estado atual dos arquivos de uma determinada branch:
$ git status <branch>
4.3 COMANDO GIT RESET
O git reset é um comando do Git que permite desfazer uma ou mais ações no seu repositório. Ele
permite que você reverta uma operação específica, como um commit ou uma operação de merge, ou
remove um arquivo do índice antes de realizar um commit. O git reset é útil quando você precisa
desfazer alguma coisa que foi feita por engano ou quando precisa reajustar o histórico de seu
repositório antes de prosseguir com o desenvolvimento.
Existem três modos de operação do git reset: --soft, --mixed e --hard. Aqui estão alguns exemplos
de uso do git reset:
1. Desfazer o último commit:
$ git reset --soft HEAD^
2. Remover um arquivo do índice: Para remover um arquivo do índice antes de realizar um
commit, use o comando:
$ git reset <nome-do-arquivo>
É importante ter cuidado ao usar o comando git reset, pois ele pode remover permanentemente
informações do seu repositório (se usar o modo hard). Por isso, é recomendável fazer backup dos seus
dados antes de usar o git reset em modo --hard.
13/03/2024, 01:48 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 11/13
4.4 COMANDO GIT DIFF
O comando git diff é um comando do Git que permite comparar duas versões de um ou mais
arquivos para mostrar as diferenças entre eles. É útil para ver as alterações que você fez em seus
arquivos antes de realizar um commit ou para comparar diferentes versões de um projeto. Aqui estão
alguns exemplos de uso do git diff:
1. Comparar duas versões de um arquivo:
$ git diff <hash-do-commit> <nome-do-arquivo>
2. Comparar dois commits:
$ git diff <hash-do-commit1> <hash-do-commit2>
3. Ver as diferenças entre o repositório atual e a última versão enviada (push) para o repositório
remoto:
$ git diff origin/master
O comando git diff é uma ferramenta poderosa para comparar versões de arquivos, e ajuda a
garantir que você esteja fazendo as alterações corretas em seu projeto antes de realizar um commit.
TEMA 5 – TRABALHANDO COM BRANCHES
Vamos conhecer comandos para criação de ramificações em nossos projetos.
5.1 COMANDO GIT BRANCH
O comando git branch é uma característica do Git que permite criar ramificações (branches) do
seu projeto. Cada branch representa uma linha independente de desenvolvimento e permite que você
trabalhe em diferentes versões do seu projeto ao mesmo tempo sem afetar a outra. Isso é útil quando
você precisa corrigir um bug, implementar uma nova funcionalidade ou fazer uma alteração
significativa em seu projeto sem interromper o trabalho principal.
Aqui estão alguns exemplos de uso do git branch:
13/03/2024, 01:48 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 12/13
1. Para listarmos todas as branches existentes no projeto e checarmos em qual branch estamos,
fazemos somente:
$ git branch
2. Criar uma nova branch:
$ git branch <nome-da-branch>
3. Excluir uma branch:
$ git branch -d <nome-da-branch>
5.2 COMANDO GIT CHECKOUT
O comando git checkout é um comando do Git que permite alternar entre branches, repositórios
remotos ou versões de arquivos. Ele é usado para mudar o contexto do seu repositório local,
permitindo que você trabalhe em diferentes versões do seu projeto sem interferir nas outras.
Aqui estão alguns exemplos de uso do git checkout:
1. Mudar de branch:
$ git checkout <nome-da-branch>
2. Criar uma nova branch e mudar para ela:
$ git checkout -b <nome-da-branch>
3. Recuperar uma versão antiga de um arquivo:
$ git checkout <hash-do-commit> <nome-do-arquivo>
4. Desfazer alterações em um arquivo:
$ git checkout -- <nome-do-arquivo>
FINALIZANDO
13/03/2024, 01:48 UNINTER
https://univirtus.uninter.com/ava/web/roa/ 13/13
Em conclusão, Git é uma ferramenta incrivelmente poderosa e útil para o controle de versões de
código. Ao dominar seus conceitos básicos, como o uso de repositórios, commits, branches e merges,
você será capaz de trabalhar de maneira mais eficiente e colaborativa em projetos de software. Além
disso, na grande comunidade de desenvolvedores que usam Git significa que você tem acesso a uma
ampla variedade de recursos e ferramentas adicionais para aprimorar sua experiência de trabalho. Se
você ainda não está familiarizado com Git, esperamos que esta etapa tenha fornecido uma base
sólida para continuar seu aprendizado e uso desta poderosa ferramenta.
REFERÊNCIAS
CHACON, S.; STRAUB, B. Pro Git. 2. ed. [S.l.]: Editora Apress, [s.d.].
DOCUMENTAÇÃO oficial do Git. Git-scm, s.d. Disponível em: <https://git-scm.com/docs>. Acesso
em: 23 fev. 2023.
GIT. Guia prático. Roger Dudler, s.d. Disponível em: <https://rogerdudler.github.io/git-
guide/index.pt_BR.html>. Acesso em: 23 fev. 2023.
	Fundamentos de Sistremas 1.pdf
	Fundamentos de Sistremas 2.pdf
	Fundamentos de Sistremas 4.pdf
	Fundamentos de Sistremas 5.pdf
	Fundamentos de Sistremas 6.pdf
	Fundamentos de Sistremas 3.pdf

Mais conteúdos dessa disciplina