diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..b593c8e --- /dev/null +++ b/404.html @@ -0,0 +1,1576 @@ + + + + + + + + + + + + + + + + + + + Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ +

404 - Not found

+ +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/analise/correcoes/backlog_corrigido/index.html b/analise/correcoes/backlog_corrigido/index.html new file mode 100644 index 0000000..95cd117 --- /dev/null +++ b/analise/correcoes/backlog_corrigido/index.html @@ -0,0 +1,4236 @@ + + + + + + + + + + + + + + + + + + + + + + + Backlog do Produto e Histórias de Usuários - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Ir para o conteúdo + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Backlog do Produto e Histórias de Usuários

+

Histórico de versões

+ + + + + + + + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
17/08/2024Definição das histórias de usuário baseando-se nos requisitos listados na parte de elicitação MoSCoW. Definição das Releases, Sprints e Backlog do ProdutoLuiza Maluf0.0
04/09/2024Correção do Backlog do Produto e Histórias de Usuários após a inspeçãoRodrigo Mattos0.1
+

Origem

+

Esse documento foi feito com base nos requisitos listados na parte de elicitação MoSCoW.

+

Metodologia

+

Tendo em vista os requisitos elicitados, foram criadas histórias de usuário que descrevem as funcionalidades de uma maneira centrada no usuário. Cada história foi detalhada com critérios de aceitação, que estabelecem as condições mínimas para que a funcionalidade seja considerada completa.

+

As histórias de usuário foram então distribuídas em sprints, que são ciclos de desenvolvimento curtos e iterativos. Cada sprint foca em entregar funcionalidades específicas, permitindo feedback contínuo e ajustes ao longo do desenvolvimento.

+

O backlog foi estruturado com todas as histórias de usuário ordenadas por prioridade e distribuídas entre as sprints.

+

Esse backlog serve como guia para o desenvolvimento, garantindo que as funcionalidades mais importantes sejam entregues primeiro e que o produto evolua de acordo com as necessidades dos usuários.

+

Backlog do Produto

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ÉpicoSprintIDEu, comoDesejoPara que eu possaPontosPrioridadeRequisito
Diversidade de Formatos de Design1US#01UsuárioCriar posts, banners, apresentaçõesUtilizar diferentes formatos de design5MustRF1
Templates Personalizáveis1US#02UsuárioUtilizar templates prontos e editá-losPersonalizar designs rapidamente5MustRF2
Criação de Designs2US#03UsuárioCriar designs do zeroCriar designs completamente personalizados8MustRF3
Importação de Mídia2US#04UsuárioImportar imagens e fotosIncluir minhas próprias mídias nos designs5MustRF4
Exportação de Designs2US#05UsuárioSalvar e exportar designs em PDF, JPG, PNGUsar os designs fora da plataforma5MustRF5
Importação de Vídeos3US#06UsuárioImportar vídeos e outros arquivosIncluir vídeos nos meus designs8ShouldRF6
Exportação Avançada3US#07UsuárioExportar designs em SVG, MP4, GIFUsar designs em formatos específicos8ShouldRF7
Integração com Redes Sociais4US#08UsuárioIntegrar com redes sociais e agendar postsPublicar diretamente nas redes sociais13CouldRF8
Edição de Imagem Básica4US#09UsuárioCortar, redimensionar e girar imagensAjustar imagens de acordo com a necessidade8MustRF9
Ajustes de Imagem4US#10UsuárioAjustar brilho, contraste e saturação das imagensMelhorar a qualidade visual das minhas imagens8MustRF10
Edição de Texto5US#11UsuárioEditar textos com formatação básica, escolha de fontes, coresPersonalizar textos nos meus designs8MustRF11
Adição de Elementos5US#12UsuárioAdicionar ícones, ilustrações e formas geométricasEnriquecer o conteúdo dos designs5MustRF12
Edição de Imagem Avançada5US#13UsuárioAplicar filtros, efeitos e remover fundo das imagensCriar efeitos visuais mais profissionais13ShouldRF13
Efeitos de Texto6US#14UsuárioCriar efeitos de texto como sombra e contornoDestacar textos nos designs8ShouldRF14
Camadas Básicas6US#15UsuárioOrganizar camadas básicas, ordem e visibilidadeGerenciar a composição dos elementos8ShouldRF15
Camadas Avançadas7US#16UsuárioAjustar opacidade e bloquear camadasControlar a visibilidade e segurança das camadas8CouldRF16
Máscaras7US#17UsuárioAplicar máscaras lineares e radiaisCriar efeitos de máscara nos designs5CouldRF17
Compartilhamento Básico7US#18UsuárioCompartilhar designs para visualizaçãoMostrar meus designs para outras pessoas5MustRF18
Compartilhamento com Edição7US#19UsuárioCompartilhar designs para edição com permissõesColaborar na criação de designs8MustRF19
Edição Colaborativa8US#20UsuárioEditar designs em tempo real com outros usuáriosTrabalhar junto com outros na criação de designs13ShouldRF20
Sistema de Chat8US#21UsuárioUtilizar um sistema de chat durante a ediçãoComunicar com outros enquanto edito8CouldRF21
Comentários8US#22UsuárioDeixar comentários em elementos específicosRevisar e dar feedback sobre partes do design8CouldRF22
Grade e Guias8US#23UsuárioUsar grade e guias para alinhar elementosManter a simetria e organização do design5MustRF23
Pré-visualização em Tempo Real9US#24UsuárioVer uma pré-visualização em tempo real do designAvaliar o design enquanto edito13MustRF24
Paleta de Cores9US#25UsuárioCriar e usar paletas de coresManter a consistência de cores nos designs8ShouldRF25
Guia de Estilo9US#26UsuárioUtilizar um guia de estiloAssegurar que os designs sigam um padrão visual5CouldRF26
Histórico de Versões9US#27UsuárioAcessar o histórico de versões do designReverter a versões anteriores caso necessário8CouldRF27
Atalhos de Teclado10US#28UsuárioUtilizar atalhos de tecladoAumentar a eficiência durante a criação de designs5CouldRF28
Interface Intuitiva10US#29UsuárioNavegar por uma interface fácil de usarTrabalhar de forma mais fluida e intuitiva5MustRF29
Arrastar e Soltar10US#30UsuárioUsar a função de arrastar e soltarManipular elementos de forma fácil e rápida5MustRF30
Design Responsivo10US#31UsuárioCriar designs que sejam responsivosAssegurar que o design seja exibido corretamente em diferentes dispositivos8ShouldRF31
Integração com Ferramentas11US#32UsuárioIntegrar com redes sociais e armazenamento em nuvemFacilitar o compartilhamento e armazenamento dos designs8CouldRF32
Performance11US#33UsuárioUsar a ferramenta com performance rápida e eficienteTer uma experiência fluida durante a criação dos designs13MustRF33
Confiabilidade11US#34UsuárioConfiar que a ferramenta funcionará de forma estávelEvitar interrupções e perda de trabalho13MustRF34
Segurança de Dados11US#35UsuárioTer segurança dos meus dados armazenadosGarantir que meus dados pessoais estejam protegidos13MustRF35
Acessibilidade12US#36UsuárioUtilizar a ferramenta com recursos de acessibilidadeGarantir que todos os usuários possam utilizar a plataforma8ShouldRF36
Escalabilidade12US#37UsuárioTer a plataforma escalável conforme o uso aumentaAssegurar que o sistema suporte um grande número de usuários5CouldRF37
Internacionalização12US#38UsuárioUtilizar a plataforma em diferentes idiomasAcessar a plataforma em minha língua nativa5CouldRF38
+

Release 1

+

Sprint 1

+ + + + + + + + + + + + + + + + + + + + +
IDNome da História de UsuárioPontos
US#01Criar posts, banners e apresentações5
US#02Utilizar templates prontos e editá-los5
+

US#01

+
    +
  • +

    História: Como usuário, desejo criar posts, banners e apresentações para utilizar diferentes formatos de design.

    +
  • +
  • +

    Critérios de Aceitação: O usuário deve ser capaz de selecionar entre diversos formatos de design, como posts, banners, e apresentações, diretamente na interface inicial.

    +
  • +
+

US#02

+
    +
  • +

    História: Como usuário, desejo utilizar templates prontos e editá-los para personalizar designs rapidamente.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve oferecer uma biblioteca de templates personalizáveis para diferentes formatos de design, permitindo a edição rápida e fácil.

    +
  • +
+

Sprint 2

+ + + + + + + + + + + + + + + + + + + + + + + + + +
IDNome da História de UsuárioPontos
US#03Criar designs do zero8
US#04Importar imagens e fotos5
US#05Salvar e exportar designs em PDF, JPG, PNG5
+

US#03

+
    +
  • +

    História: Como usuário, desejo criar designs do zero para criar designs completamente personalizados.

    +
  • +
  • +

    Critérios de Aceitação: O usuário deve ser capaz de iniciar um design em branco, sem restrições de template, com acesso completo às ferramentas de criação.

    +
  • +
+

US#04

+
    +
  • +

    História: Como usuário, desejo importar imagens e fotos para incluir minhas próprias mídias nos designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve permitir a importação de arquivos de imagem nos formatos mais comuns (JPEG, PNG, etc.), e possibilitar sua inserção nos designs.

    +
  • +
+

US#05

+
    +
  • +

    História: Como usuário, desejo salvar e exportar designs em PDF, JPG e PNG para usar os designs fora da plataforma.

    +
  • +
  • +

    Critérios de Aceitação: O usuário deve poder salvar e exportar seus designs nos formatos PDF, JPG, e PNG, com qualidade configurável.

    +
  • +
+

Sprint 3

+ + + + + + + + + + + + + + + + + + + + +
IDNome da História de UsuárioPontos
US#06Importar vídeos e outros arquivos8
US#07Exportar designs em SVG, MP4, GIF8
+

US#06

+
    +
  • +

    História: Como usuário, desejo importar vídeos e outros arquivos para incluir vídeos nos meus designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve permitir a importação de arquivos de vídeo (MP4, MOV, etc.) e possibilitar sua inserção nos designs.

    +
  • +
+

US#07

+
    +
  • +

    História: Como usuário, desejo exportar designs em SVG, MP4 e GIF para usar designs em formatos específicos.

    +
  • +
  • +

    Critérios de Aceitação: O usuário deve poder exportar seus designs nos formatos SVG, MP4 e GIF, garantindo compatibilidade com diversas plataformas.

    +
  • +
+

Release 2

+

Sprint 4

+ + + + + + + + + + + + + + + + + + + + + + + + + +
IDNome da História de UsuárioPontos
US#08Integrar com redes sociais e agendar posts13
US#09Cortar, redimensionar e girar imagens8
US#10Ajustar brilho, contraste e saturação das imagens8
+

US#08

+
    +
  • +

    História: Como usuário, desejo integrar com redes sociais e agendar posts para publicar diretamente nas redes sociais.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve oferecer integração com as principais redes sociais, permitindo o agendamento e a publicação direta de designs.

    +
  • +
+

US#09

+
    +
  • +

    História: Como usuário, desejo cortar, redimensionar e girar imagens para ajustar imagens de acordo com a necessidade.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve incluir ferramentas básicas de edição de imagem, como corte, redimensionamento e rotação, acessíveis de forma intuitiva.

    +
  • +
+

US#10

+
    +
  • +

    História: Como usuário, desejo ajustar brilho, contraste e saturação das imagens para melhorar a qualidade visual das minhas imagens.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve permitir ajustes de brilho, contraste e saturação em imagens, com uma interface visual simples e eficaz.

    +
  • +
+

Sprint 5

+ + + + + + + + + + + + + + + + + + + + + + + + + +
IDNome da História de UsuárioPontos
US#11Editar textos com formatação básica, escolha de fontes e cores8
US#12Adicionar ícones, ilustrações e formas geométricas5
US#13Aplicar filtros, efeitos e remover fundo das imagens13
+

US#11

+
    +
  • +

    História: Como usuário, desejo editar textos com formatação básica, escolha de fontes e cores para personalizar textos nos meus designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve oferecer opções de formatação de texto, incluindo a seleção de fontes, tamanhos, cores, e alinhamento.

    +
  • +
+

US#12

+
    +
  • +

    História: Como usuário, desejo adicionar ícones, ilustrações e formas geométricas para enriquecer o conteúdo dos designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve fornecer uma biblioteca de ícones, ilustrações e formas geométricas, que possam ser adicionadas e editadas nos designs.

    +
  • +
+

US#13

+
    +
  • +

    História: Como usuário, desejo aplicar filtros, efeitos e remover o fundo das imagens para criar efeitos visuais mais profissionais.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve incluir ferramentas para aplicação de filtros, efeitos visuais, e remoção automática de fundos em imagens.

    +
  • +
+

Release 3

+

Sprint 6

+ + + + + + + + + + + + + + + + + + + + +
IDNome da História de UsuárioPontos
US#14Criar efeitos de texto como sombra e contorno8
US#15Organizar camadas básicas, ordem e visibilidade8
+

US#14

+
    +
  • +

    História: Como usuário, desejo criar efeitos de texto como sombra e contorno para destacar textos nos designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve permitir a aplicação de efeitos de sombra e contorno em textos, com opções de customização.

    +
  • +
+

US#15

+
    +
  • +

    História: Como usuário, desejo organizar camadas básicas, ordem e visibilidade para gerenciar a composição dos elementos.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve oferecer controle sobre as camadas dos elementos, permitindo alterar a ordem e visibilidade diretamente na interface.

    +
  • +
+

Sprint 7

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDNome da História de UsuárioPontos
US#16Ajustar opacidade e bloquear camadas8
US#17Aplicar máscaras lineares e radiais5
US#18Compartilhar designs para visualização5
US#19Compartilhar designs para edição com permissões8
+

US#16

+
    +
  • +

    História: Como usuário, desejo ajustar opacidade e bloquear camadas para controlar a visibilidade e segurança das camadas.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve permitir ajustes de opacidade e a opção de bloquear camadas para evitar alterações indesejadas.

    +
  • +
+

US#17

+
    +
  • +

    História: Como usuário, desejo aplicar máscaras lineares e radiais para criar efeitos de máscara nos designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve incluir ferramentas para a aplicação de máscaras lineares e radiais em imagens e outros elementos.

    +
  • +
+

US#18

+
    +
  • +

    História: Como usuário, desejo compartilhar designs para visualização para mostrar meus designs para outras pessoas.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve permitir o compartilhamento de designs por meio de links ou outras plataformas, apenas para visualização.

    +
  • +
+

US#19

+
    +
  • +

    História: Como usuário, desejo compartilhar designs para edição com permissões básicas para colaborar na criação de designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve permitir o compartilhamento de designs com permissões básicas de edição, incluindo restrições de acesso.

    +
  • +
+

Release 4

+

Sprint 8

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDNome da História de UsuárioPontos
US#20Editar designs em tempo real com outros usuários13
US#21Utilizar um sistema de chat durante a edição8
US#22Deixar comentários em elementos específicos8
US#23Usar grade e guias para alinhar elementos5
+

US#20

+
    +
  • +

    História: Como usuário, desejo editar designs em tempo real com outros usuários para trabalhar junto com outros na criação de designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve permitir a edição colaborativa em tempo real, sincronizando alterações imediatamente entre os participantes.

    +
  • +
+

US#21

+
    +
  • +

    História: Como usuário, desejo utilizar um sistema de chat durante a edição para comunicar com outros enquanto edito.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve integrar um chat funcional dentro da interface de edição, permitindo comunicação direta entre os usuários.

    +
  • +
+

US#22

+
    +
  • +

    História: Como usuário, desejo deixar comentários em elementos específicos para revisar e dar feedback sobre partes do design.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve permitir a adição de comentários diretamente em elementos específicos do design, com notificações para outros usuários.

    +
  • +
+

US#23

+
    +
  • +

    História: Como usuário, desejo usar grade e guias para alinhar elementos para manter a simetria e organização do design.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve oferecer opções de grade e guias que podem ser ativadas ou desativadas conforme a necessidade.

    +
  • +
+

Sprint 9

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDNome da História de UsuárioPontos
US#24Ver uma pré-visualização em tempo real do design13
US#25Criar e usar paletas de cores8
US#26Utilizar um guia de estilo5
US#27Acessar o histórico de versões do design8
+

US#24

+
    +
  • +

    História: Como usuário, desejo ver uma pré-visualização em tempo real do design para avaliar o design enquanto edito.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve exibir uma pré-visualização em tempo real, refletindo todas as mudanças feitas no design.

    +
  • +
+

US#25

+
    +
  • +

    História: Como usuário, desejo criar e usar paletas de cores para manter a consistência de cores nos designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve permitir a criação e gerenciamento de paletas de cores, com a possibilidade de aplicação em qualquer design.

    +
  • +
+

US#26

+
    +
  • +

    História: Como usuário, desejo utilizar um guia de estilo para assegurar que os designs sigam um padrão visual.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve oferecer um guia de estilo que pode ser configurado e aplicado automaticamente em novos designs.

    +
  • +
+

US#27

+
    +
  • História: Como usuário, desejo acessar o histórico de versões do design para reverter a versões anteriores caso necessário.
  • +
+

-Critérios de Aceitação: O sistema deve manter um histórico de versões de cada design, permitindo a restauração de versões anteriores com facilidade.

+

Sprint 10

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDNome da História de UsuárioPontos
US#28Utilizar atalhos de teclado5
US#29Navegar por uma interface fácil de usar5
US#30Usar a função de arrastar e soltar5
US#31Criar designs que sejam responsivos8
US#32Integrar com redes sociais e armazenamento em nuvem8
+

US#28

+
    +
  • +

    História: Como usuário, desejo utilizar atalhos de teclado para aumentar a eficiência durante a criação de designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve incluir e permitir a personalização de atalhos de teclado para as principais funções de design.

    +
  • +
+

US#29

+
    +
  • História: Como usuário, desejo navegar por uma interface fácil de usar.
  • +
+

-Critérios de Aceitação: A interface deve ser intuitiva, com navegação clara e acessível, permitindo uma experiência de uso fluida.

+

US#30

+
    +
  • História: Como usuário, desejo usar a função de arrastar e soltar para manipular elementos de forma fácil e rápida.
  • +
+

-Critérios de Aceitação: O sistema deve permitir que o usuário arraste e solte elementos dentro da área de design com precisão e sem dificuldades.

+

US#31

+
    +
  • +

    História: Como usuário, desejo criar designs que sejam responsivos para assegurar que o design seja exibido corretamente em diferentes dispositivos.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve fornecer ferramentas e opções para criar designs que se ajustem automaticamente a diferentes tamanhos e resoluções de tela.

    +
  • +
+

US#32

+
    +
  • +

    História: Como usuário, desejo integrar com redes sociais e armazenamento em nuvem para facilitar o compartilhamento e armazenamento dos designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve permitir integração com plataformas de redes sociais e serviços de armazenamento em nuvem, possibilitando o compartilhamento e armazenamento direto dos designs.

    +
  • +
+

Sprint 11

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDNome da História de UsuárioPontos
US#33Usar a ferramenta com performance rápida e eficiente13
US#34Confiar que a ferramenta funcionará de forma estável13
US#35Ter segurança dos meus dados armazenados13
US#36Utilizar a ferramenta com recursos de acessibilidade8
US#37Ter a plataforma escalável conforme o uso aumenta5
US#38Utilizar a plataforma em diferentes idiomas5
+

US#33

+
    +
  • +

    História: Como usuário, desejo usar a ferramenta com performance rápida e eficiente para ter uma experiência fluida durante a criação dos designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve garantir um desempenho ágil e eficiente, com tempos de resposta rápidos e mínima latência durante a criação e edição de designs.

    +
  • +
+

US#34

+
    +
  • +

    História: Como usuário, desejo confiar que a ferramenta funcionará de forma estável para evitar interrupções e perda de trabalho.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve ser robusto e estável, minimizando falhas e interrupções durante o uso, com mecanismos de recuperação de dados em caso de problemas.

    +
  • +
+

US#35

+
    +
  • +

    História: Como usuário, desejo ter segurança dos meus dados armazenados para garantir que meus dados pessoais estejam protegidos.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve implementar medidas de segurança robustas para proteger dados pessoais e informações armazenadas, incluindo criptografia e controle de acesso.

    +
  • +
+

US#36

+
    +
  • +

    História: Como usuário, desejo utilizar a ferramenta com recursos de acessibilidade para garantir que todos os usuários possam utilizar a plataforma.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve incluir recursos de acessibilidade, como suporte a leitores de tela, navegação por teclado e opções de contraste, para atender às necessidades de todos os usuários.

    +
  • +
+

US#37

+
    +
  • +

    História: Como usuário, desejo ter a plataforma escalável conforme o uso aumenta para assegurar que o sistema suporte um grande número de usuários.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve ser capaz de escalar adequadamente para lidar com um aumento no número de usuários e dados, sem perda de desempenho.

    +
  • +
+

US#38

+
    +
  • +

    História: Como usuário, desejo utilizar a plataforma em diferentes idiomas para acessar a plataforma em minha língua nativa.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve oferecer suporte a múltiplos idiomas, permitindo que os usuários escolham seu idioma preferido para a interface e os recursos da plataforma.

    +
  • +
+

Features

+

Feature 01

+

1 - Criação e Edição de Designs

+
    +
  • Ferramentas para criação do zero e edição de templates
  • +
  • Importação de mídias (imagens, vídeos)
  • +
  • Edição básica e avançada de imagens
  • +
  • Adição e edição de texto, elementos gráficos e efeitos
  • +
+

Feature 02

+

2 - Formatos e Exportação de Designs

+
    +
  • Suporte a múltiplos formatos de design (banners, apresentações, posts)
  • +
  • Exportação em formatos variados (PDF, JPG, PNG, SVG, MP4, GIF)
  • +
  • Design responsivo para diferentes dispositivos
  • +
+

Feature 03

+

3 - Personalização e Efeitos

+
    +
  • Templates personalizáveis
  • +
  • Aplicação de filtros e efeitos (imagens, texto, camadas)
  • +
  • Paletas de cores e guia de estilo
  • +
  • Máscaras e camadas avançadas
  • +
+

Feature 04

+

4 - Integração e Compartilhamento

+
    +
  • Integração com redes sociais e ferramentas de armazenamento em nuvem
  • +
  • Agendamento de posts diretamente nas redes sociais
  • +
  • Compartilhamento de designs para visualização e edição colaborativa
  • +
  • Edição em tempo real com suporte a chat e comentários
  • +
+

Feature 05

+

5 - Usabilidade e Interface

+
    +
  • Interface intuitiva e responsiva
  • +
  • Suporte a atalhos de teclado
  • +
  • Função de arrastar e soltar para manipulação fácil
  • +
  • Acessibilidade e internacionalização da plataforma
  • +
+

Feature 06

+

6 - Performance e Confiabilidade

+
    +
  • Alta performance e fluidez na criação e edição de designs
  • +
  • Confiabilidade e segurança de dados
  • +
  • Escalabilidade para suportar um grande número de usuários
  • +
  • Histórico de versões para reverter alterações
  • +
+

Feature 07

+

7 - Visualização e Feedback

+
    +
  • Pré-visualização em tempo real dos designs
  • +
  • Uso de grades e guias para alinhamento preciso
  • +
+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/analise/correcoes/cenarios_corrigido/index.html b/analise/correcoes/cenarios_corrigido/index.html new file mode 100644 index 0000000..7ee33f8 --- /dev/null +++ b/analise/correcoes/cenarios_corrigido/index.html @@ -0,0 +1,5793 @@ + + + + + + + + + + + + + + + + + + + + + + + Cenários - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Ir para o conteúdo + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Cenários

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
12/08/2024Adição dos primeiros cenários encontrados durante a análise de protocoloLuiza Maluf0.0
16/07/2024Adição de mais cenários após avaliar os casos de uso.Luiza Maluf1.0
05/09/2024Correção dos cenários após verificaçãoHenrique Quenino2.0
+

Origem

+

O desenvolvimento destes cenários foi dado a partir da análise de protocolo, feita na parte de elicitação.

+

Não satisfeitos com a quantidade de cenários e com uma visão diferente vinda da Especificação de Casos de Uso, foi possível identificar novos cenários.

+

Metodologia

+

Foi feita a navegação dentro da plataforma anotando os principais processos que o usuáro poderia efetuar.

+

1. Criação de um Design Simples

+

OBJETIVO

+

Um usuário novato acessa o Canva e deseja criar um design de cartão de visita.

+

CONTEXTO

+

O usuário está acessando o Canva pela primeira vez e tem pouca experiência em design gráfico.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve estar logado na plataforma Canva.

+

EPISÓDIOS

+
    +
  1. O usuário faz login na plataforma Canva.
  2. +
  3. Navega pelos templates disponíveis e escolhe um para cartão de visita.
  4. +
  5. Personaliza o template, inserindo seu nome, cargo e informações de contato.
  6. +
  7. Altera as cores e fontes de acordo com sua preferência.
  8. +
  9. Visualiza o design final e decide salvá-lo.
  10. +
  11. O usuário baixa o design para seu Computador.
  12. +
+

RESTRIÇÕES

+

Usuário deve ter uma conta ativa na plataforma Canva.

+

PÓS-CONDIÇÃO

+

Usuário criou e salvou um cartão de visita simples, pronto para uso.

+

RESULTADO ESPERADO

+

O usuário consegue criar e salvar um cartão de visita simples, ficando satisfeito com a facilidade de uso da ferramenta.

+
+

2. Colaboração em Tempo Real

+

OBJETIVO

+

Dois usuários colaboram simultaneamente em um design de apresentação para uma reunião de negócios.

+

CONTEXTO

+

Os usuários estão em locais diferentes, mas precisam trabalhar juntos no mesmo projeto em tempo real na plataforma Canva.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva, chat integrado.

+

PRÉ-CONDIÇÃO

+

Ambos os usuários devem estar logados na plataforma Canva e ter uma conexão de internet estável.

+

EPISÓDIOS

+
    +
  1. Usuário 1 cria uma apresentação no Canva.
  2. +
  3. Usuário 1 compartilha o link de edição do design com o Usuário.
  4. +
  5. Ambos os usuários abrem o design simultaneamente e começam a editá-lo.
  6. +
  7. Usuário 1 trabalha nos primeiros slides, enquanto Usuário edita os últimos slides.
  8. +
  9. Os usuários discutem as alterações e ajustes necessários usando o chat integrado da plataforma.
  10. +
  11. Ambos revisam o design final juntos, fazem os ajustes necessários e salvam o projeto.
  12. +
+

RESTRIÇÕES

+

Ambos os usuários precisam ter permissão de edição para colaborar no design.

+

PÓS-CONDIÇÃO

+

O design da apresentação foi concluído e salvo, estando pronto para a reunião.

+

RESULTADO ESPERADO

+

Os dois usuários conseguem colaborar em tempo real, completando o design de forma eficiente e satisfatória.

+
+

3. Exploração de Recursos Premium

+

OBJETIVO

+

Um usuário gratuito explora os benefícios de um plano de assinatura para decidir se vale a pena assiná-lo.

+

CONTEXTO

+

O usuário sente que as opções gratuitas são limitadas e deseja saber se vale a pena assinar um plano.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve estar logado na plataforma Canva.

+

EPISÓDIOS

+
    +
  1. O usuário navega pelos templates gratuitos, mas não encontra algo que atenda às suas necessidades.
  2. +
  3. Ele vê a indicação de templates Premium e resolve clicar para ver as opções.
  4. +
  5. Um pop-up aparece explicando os benefícios do plano de assinatura, como acesso a templates exclusivos e recursos adicionais.
  6. +
  7. O usuário decide experimentar o plano por 30 dias gratuitamente.
  8. +
  9. Após a ativação, ele começa a usar os templates Premium e nota a diferença na qualidade e variedade.
  10. +
+

RESTRIÇÕES

+

O usuário deve ter uma conta ativa na plataforma Canva.

+

PÓS-CONDIÇÃO

+

O usuário explora os recursos Premium e decide se continuará com a assinatura após o período de teste.

+

RESULTADO ESPERADO

+

O usuário percebe o valor dos recursos Premium e decide continuar com a assinatura após o período de teste.

+
+

4. Criação de Materiais para uma Campanha Publicitária

+

OBJETIVO

+

Uma equipe de marketing utiliza o Canva para criar materiais gráficos para uma campanha publicitária.

+

CONTEXTO

+

A equipe precisa garantir que todos os materiais tenham uma identidade visual consistente e atraente.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva.

+

PRÉ-CONDIÇÃO

+

A equipe de marketing deve estar alinhada quanto à identidade visual da campanha.

+

EPISÓDIOS

+
    +
  1. O Designer seleciona um conjunto de templates que combinam entre si para garantir consistência visual.
  2. +
  3. Adapta cada Templates para diferentes formatos (postagem em redes sociais, banners para site, e-mail marketing).
  4. +
  5. Utiliza elementos gráficos e o Banco de Imagens para enriquecer os materiais.
  6. +
  7. O gerente de marketing revisa e sugere pequenas alterações.
  8. +
  9. Após aprovação, o [Designer](../../modelagem/lexico.md#Designer) exporta os materiais nos formatos necessários.
  10. +
  11. Os materiais são compartilhados com a equipe e publicados conforme o cronograma da campanha.
  12. +
+

RESTRIÇÕES

+

A equipe deve respeitar o prazo da campanha e as diretrizes de identidade visual estabelecidas.

+

PÓS-CONDIÇÃO

+

Os materiais gráficos estão prontos e alinhados com a identidade visual da campanha.

+

RESULTADO ESPERADO

+

A equipe de marketing consegue criar uma campanha coesa e visualmente atraente, melhorando a identidade da marca.

+
+

5. Adaptação de um Design para Diferentes Mídias

+

OBJETIVO

+

Um Designer adapta um único design para diferentes mídias, como cartazes impressos, posts em redes sociais e banners para sites.

+

CONTEXTO

+

O Designer precisa garantir que a mensagem e a identidade visual sejam mantidas em todos os formatos.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva.

+

PRÉ-CONDIÇÃO

+

O Designer deve ter acesso aos templates originais e aos requisitos específicos de cada mídia.

+

EPISÓDIOS

+
    +
  1. O Designer seleciona o design original no Canva.
  2. +
  3. Duplica o design e ajusta as dimensões para cada mídia (A4 para cartazes, 1080x1080 para posts, etc.).
  4. +
  5. Reposiciona os elementos gráficos conforme necessário para manter o equilíbrio visual.
  6. +
  7. Ajusta o tamanho das fontes e o espaçamento para garantir legibilidade em cada formato.
  8. +
  9. Revisa cada adaptação e exporta os arquivos nos formatos apropriados.
  10. +
+

RESTRIÇÕES

+

O Designer deve garantir que a mensagem principal permaneça clara em todas as adaptações.

+

PÓS-CONDIÇÃO

+

Os designs estão prontos para uso em diferentes mídias.

+

RESULTADO ESPERADO

+

O Designer adapta com sucesso o design original para diferentes mídias, mantendo a consistência da mensagem e da identidade visual.

+
+

6. Exportação de um Projeto em Alta Resolução

+

OBJETIVO

+

Um Designer exporta um projeto gráfico em alta resolução para impressão profissional.

+

CONTEXTO

+

O Designer precisa garantir que o arquivo final tenha qualidade suficiente para impressão em grande escala.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva.

+

PRÉ-CONDIÇÃO

+

O projeto deve estar finalizado e revisado.

+

EPISÓDIOS

+
    +
  1. O usuário abre o projeto no Canva.
  2. +
  3. Seleciona a opção de exportação e escolhe o formato adequado (por exemplo, PDF para impressão).
  4. +
  5. Ajusta as configurações de resolução para a máxima qualidade disponível.
  6. +
  7. Revisa as opções de margens, caso necessário.
  8. +
  9. Exporta o arquivo e faz o download.
  10. +
+

RESTRIÇÕES

+

O usuário deve garantir que as configurações de exportação atendam aos requisitos da impressão.

+

PÓS-CONDIÇÃO

+

O projeto está pronto para ser enviado para a gráfica.

+

RESULTADO ESPERADO

+

O usuário consegue exportar o projeto em alta resolução, garantindo uma impressão de alta qualidade.

+
+

7. Compartilhamento de Post para Redes Sociais

+

OBJETIVO

+

Um usuário cria e compartilha um post visual para promover um novo produto em diversas redes sociais.

+

CONTEXTO

+

O usuário deseja utilizar o Canva para criar um post atraente que será compartilhado em múltiplas plataformas sociais para maximizar o alcance do novo produto.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva, contas nas redes sociais (Instagram, Facebook, Twitter, LinkedIn).

+

PRÉ-CONDIÇÃO

+

O usuário deve ter as imagens do produto, textos promocionais e informações sobre as redes sociais onde o post será compartilhado.

+

EPISÓDIOS

+
    +
  1. O usuário acessa o Canva e escolhe um template de post adequado para redes sociais.
  2. +
  3. Personaliza o design com imagens do produto, texto promocional e hashtags relevantes.
  4. +
  5. Ajusta o layout e o design para atender às diretrizes específicas de cada plataforma social.
  6. +
  7. Revê o post para garantir que todos os detalhes estejam corretos e que o design esteja otimizado para cada rede social.
  8. +
  9. Exporta o post no formato adequado para cada plataforma (Instagram, Facebook, Twitter, LinkedIn).
  10. +
  11. Compartilha o post diretamente nas contas de redes sociais usando as ferramentas de integração do Canva ou faz o upload manualmente em cada plataforma.
  12. +
+

RESTRIÇÕES

+

Os posts devem seguir as diretrizes de tamanho e formato recomendadas por cada rede social para garantir uma boa visualização e desempenho.

+

PÓS-CONDIÇÃO

+

Os posts estão publicados e visíveis nas redes sociais selecionadas.

+

RESULTADO ESPERADO

+

O usuário cria e compartilha posts atraentes que promovem eficazmente o novo produto, engajando os seguidores em diversas redes sociais.

+
+

8. Login e Logout na Plataforma Canva

+

OBJETIVO

+

Um usuário acessa sua conta na plataforma Canva para criar e gerenciar design, e depois realiza o logout para garantir a segurança da conta.

+

CONTEXTO

+

O usuário precisa acessar sua conta na plataforma Canva para trabalhar em projetos e, após concluir seu trabalho, deseja fazer logout para proteger suas informações.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve ter uma conta ativa na plataforma Canva e conhecer suas credenciais de login.

+

EPISÓDIOS

+
    +
  1. O usuário acessa a página de login do Canva.
  2. +
  3. Insere seu nome de usuário e senha.
  4. +
  5. Clica no botão de login para acessar sua conta.
  6. +
  7. O usuário usa a plataforma Canva para criar ou gerenciar design.
  8. +
  9. Após concluir suas atividades, o usuário localiza a opção de logout no menu de perfil.
  10. +
  11. Clica na opção de logout para sair da conta.
  12. +
  13. O usuário é redirecionado para a página de login ou para a página inicial do Canva.
  14. +
+

RESTRIÇÕES

+

O usuário deve lembrar suas credenciais para realizar o login. Após o logout, é necessário fazer login novamente para acessar a conta.

+

PÓS-CONDIÇÃO

+

O usuário foi desconectado da sua conta na plataforma Canva, garantindo que suas informações estejam seguras.

+

RESULTADO ESPERADO

+

O usuário consegue fazer login e logout com sucesso, garantindo o acesso e a segurança de sua conta na plataforma Canva.

+
+

9. Cenário: Edição de um Design Existente

+

OBJETIVO

+

Um usuário deseja editar um design já existente na plataforma Canva para ajusta-lo às suas novas necessidades.

+

CONTEXTO

+

O usuário já criou ou tem acesso a um design na plataforma Canva e agora precisa modificá-lo para atualizá-lo ou adaptá-lo a um novo propósito.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve estar logado na plataforma Canva e ter acesso ao design que deseja editar.

+

EPISÓDIOS

+
    +
  1. O usuário faz login no Canva.
  2. +
  3. Navega até a seção "Meus Designs" ou utiliza a barra de pesquisa para localizar o design existente.
  4. +
  5. Clica no design desejado para abri-lo na interface de edição.
  6. +
  7. Realiza as modificações necessárias, como alteração de texto, imagens, cores e layout.
  8. +
  9. Visualiza as mudanças em tempo real para garantir que o design atende às novas necessidades.
  10. +
  11. Salva as alterações e, se necessário, exporta o design modificado nos formatos desejados.
  12. +
+

RESTRIÇÕES

+

O usuário deve garantir que todas as alterações estejam de acordo com os requisitos do projeto ou com a nova finalidade do design.

+

PÓS-CONDIÇÃO

+

O design foi editado com sucesso e está pronto para ser usado conforme o novo propósito.

+

RESULTADO ESPERADO

+

O usuário consegue editar o design existente de maneira eficaz, adaptando-o às suas novas necessidades e garantindo que o resultado final esteja de acordo com as expectativas.

+
+

10. Cenário: Download de um Design

+

OBJETIVO

+

Um usuário deseja baixar um design da plataforma Canva para utilizá-lo fora da plataforma, como para impressão ou compartilhamento.

+

CONTEXTO

+

O usuário terminou de criar ou editar um design na plataforma Canva e agora precisa baixá-lo para uso offline ou compartilhamento em outras plataformas.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve estar logado na plataforma Canva e ter um design finalizado e pronto para o download.

+

EPISÓDIOS

+
    +
  1. O usuário faz login no Canva.
  2. +
  3. Navega até o design finalizado que deseja baixar, acessando-o através da seção "Meus Designs" ou utilizando a barra de pesquisa.
  4. +
  5. Clica no design desejado e clica no botão de "Download" no canto superior direito da interface.
  6. +
  7. Escolhe o formato de arquivo desejado (por exemplo, PNG, JPEG, PDF) e ajusta as configurações de qualidade, resolução ou margens, se necessário.
  8. +
  9. Confirma as opções e inicia o download do arquivo.
  10. +
  11. O design é baixado para o dispositivo do usuário, ficando disponível para uso offline.
  12. +
+

RESTRIÇÕES

+

O usuário deve garantir que escolheu o formato de arquivo correto e configurou as opções de download conforme a finalidade do design.

+

PÓS-CONDIÇÃO

+

O design foi baixado com sucesso e está pronto para ser usado conforme o necessário.

+

RESULTADO ESPERADO

+

O usuário consegue baixar o design no formato desejado, com a qualidade adequada, pronto para o uso offline ou compartilhado.

+
+

11. Acesso a um Template Pronto

+

OBJETIVO

+

O usuário deseja acessar um template pronto na plataforma Canva para iniciar a criação de um design personalizado.

+

CONTEXTO

+

O usuário está na plataforma Canva e deseja utilizar um template pré-definido como base para criar um novo design. +ATORES####

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve estar logado na plataforma Canva.

+

EPISÓDIOS

+
    +
  1. O usuário faz login no Canva.
  2. +
  3. Na página inicial, o usuário navega até a seção de "Templates" ou utiliza a barra de pesquisa para buscar um template específico.
  4. +
  5. O usuário explora as categorias disponíveis, como "Cartões de Visita," "Apresentações," "Postagens para Redes Sociais," entre outras.
  6. +
  7. Seleciona o template que melhor atende às suas necessidades.
  8. +
  9. Abre o template escolhido, visualizando uma prévia do design.
  10. +
  11. Clica no botão "Usar este template" para iniciar a personalização do design.
  12. +
+

RESTRIÇÕES

+

O usuário deve garantir que escolheu um template adequado ao seu propósito antes de iniciar a personalização.

+

PÓS-CONDIÇÃO

+

O usuário tem o template pronto aberto na interface de edição do Canva, pronto para ser personalizado conforme desejado.

+

RESULTADO ESPERADO

+

O usuário consegue acessar e abrir um template pronto na plataforma Canva, facilitando o início da criação de um design personalizado.

+
+

12. Gerenciamento de Pastas e Projetos no Canva

+

OBJETIVO

+

O usuário deseja organizar seus projetos de design criando e gerenciando pastas na plataforma Canva.

+

CONTEXTO

+

O usuário possui vários projetos na plataforma Canva e deseja organizá-los de forma eficiente para facilitar o acesso e a gestão.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve estar logado na plataforma Canva e ter projetos criados.

+

EPISÓDIOS

+
    +
  1. O usuário faz login no Canva.
  2. +
  3. Acessa a seção "Meus Designs" ou utiliza a barra de pesquisa para localizar os projetos que deseja organizar.
  4. +
  5. Identifica a necessidade de organizar os projetos em pastas.
  6. +
  7. Clica na opção "Criar nova pasta" e dá um nome à nova pasta, como "Projetos de Marketing" ou "Apresentações 2024".
  8. +
  9. Após criar a pasta, o usuário arrasta e solta os projetos desejados dentro da pasta ou seleciona os projetos e usa a opção "Mover para a pasta" no menu de contexto.
  10. +
  11. O usuário também pode criar subpastas dentro das pastas principais para uma organização mais detalhada.
  12. +
  13. Se necessário, o usuário renomeia, exclui ou move as pastas conforme as necessidades de organização.
  14. +
  15. Para localizar rapidamente um projeto específico, o usuário utiliza a barra de pesquisa ou navega pelas pastas organizadas.
  16. +
+

RESTRIÇÕES

+

O usuário deve organizar os projetos de maneira lógica para facilitar o acesso futuro. O Canva pode ter limitações no número de subpastas ou no número de projetos por pasta, dependendo do plano de assinatura.

+

PÓS-CONDIÇÃO

+

Os projetos estão organizados em pastas, permitindo que o usuário acesse e gerencie seus designs de forma mais eficiente.

+

RESULTADO ESPERADO

+

O usuário consegue criar, organizar e gerenciar pastas para seus projetos na plataforma Canva, melhorando a eficiência na navegação e no gerenciamento dos designs.

+
+

13. Utilização de Recursos de Inteligência Artificial no Canva

+

OBJETIVO

+

O usuário deseja utilizar os recursos de inteligência artificial (IA) do Canva para aprimorar seus designs, como a geração de textos automáticos ou a criação de elementos gráficos personalizados.

+

CONTEXTO

+

O usuário está trabalhando em um projeto de design no Canva e deseja explorar as ferramentas de IA disponíveis para acelerar o processo criativo e melhorar a qualidade do design.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve estar logado na plataforma Canva e ter um projeto aberto.

+

EPISÓDIOS

+
    +
  1. O usuário faz login no Canva e abre um projeto.
  2. +
  3. No painel de ferramentas, o usuário identifica a seção de "Recursos de IA" ou uma ferramenta específica de IA, como "Gerador de Texto" ou "Criação Automática de Elementos Gráficos".
  4. +
  5. O usuário seleciona o recurso de IA que deseja utilizar, como a geração de texto automático para uma manchete ou a sugestão de paletas de cores personalizadas.
  6. +
  7. Se utilizando da IA, o usuário insere palavras-chave ou instruções sobre o que deseja gerar (por exemplo, "slogan para campanha de verão" ou "ilustração abstrata para fundo").
  8. +
  9. A IA processa as informações e apresenta sugestões ou gera os elementos solicitados.
  10. +
  11. O usuário revisa as sugestões e, se necessário, faz ajustes manuais para alinhar o resultado com o objetivo do projeto.
  12. +
  13. O usuário integra os elementos gerados pela IA ao design e continua a personalização conforme necessário.
  14. +
  15. Se satisfeito com o resultado, o usuário salva o projeto final ou faz uma exportação.
  16. +
+

RESTRIÇÕES

+

Os recursos de IA podem ter limitações em termos de complexidade de geração ou em quantidade de opções oferecidas, dependendo do plano de assinatura do Canva.

+

PÓS-CONDIÇÃO

+

O design do projeto foi aprimorado com a ajuda dos recursos de IA, economizando tempo e aumentando a qualidade do resultado.

+

RESULTADO ESPERADO

+

O uusuáriosuário consegue utilizar eficazmente os recursos de inteligência artificial do Canva, como a geração automática de texto ou a criação de elementos gráficos, melhorando a eficiência do processo de design e o resultado final.

+
+

14. Personalizar Configurações de Conta no Canva

+

OBJETIVO

+

O usuário deseja personalizar as configurações de sua conta no Canva para adaptar a plataforma às suas preferências e necessidades específicas.

+

CONTEXTO

+

O usuário está logado em sua conta no Canva e quer ajustar configurações como idioma, notificações, métodos de pagamento, ou privacidade para otimizar sua experiência na plataforma.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web ou aplicativo móvel, conta ativa no Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve estar logado na plataforma Canva.

+

EPISÓDIOS

+
    +
  1. O usuário faz login na plataforma Canva e acessa a página inicial.
  2. +
  3. O usuário localiza o menu de configurações de conta, geralmente acessível através do ícone de perfil ou das opções de menu.
  4. +
  5. O usuário clica na opção "Configurações de Conta" para abrir a página de configurações.
  6. +
  7. Na página de configurações, o usuário navega entre as diferentes categorias, como "Informações Pessoais", "Notificações", "Segurança", "Preferências de Idioma", ou "Faturamento e Pagamentos".
  8. +
  9. +

    O usuário seleciona a categoria que deseja personalizar. Por exemplo:

    +
      +
    • +

      Para alterar o idioma da plataforma, o usuário acessa "Preferências de Idioma" e escolhe o idioma desejado.

      +
    • +
    • +

      Para ajustar as notificações, o usuário acessa "Notificações" e escolhe quais tipos de alertas deseja receber por email ou no aplicativo.

      +
    • +
    • +

      Para atualizar métodos de pagamento, o usuário acessa "Faturamento e Pagamentos" e adiciona ou modifica as opções de pagamento.

      +
    • +
    +
  10. +
  11. +

    Após fazer as alterações desejadas, o usuário salva as configurações.

    +
  12. +
  13. O usuário revisa as mudanças feitas para garantir que as configurações estão corretas e de acordo com suas preferências.
  14. +
  15. Caso necessário, o usuário faz novos ajustes ou retorna à página inicial do Canva.
  16. +
+

RESTRIÇÕES

+

Algumas opções de personalização podem estar disponíveis apenas para usuários com planos de assinatura específicos, como o Canva Pro.

+

PÓS-CONDIÇÃO

+

As configurações da conta do usuário no Canva são atualizadas conforme as preferências definidas.

+

RESULTADO ESPERADO

+

O usuário consegue personalizar as configurações de sua conta no Canva, adaptando a plataforma às suas preferências e melhorando sua experiência de uso.

+
+

15. Acessar Suporte e Atendimento ao Cliente no Canva

+

OBJETIVO

+

O usuário deseja acessar o suporte e atendimento ao cliente do Canva para resolver dúvidas, problemas técnicos, ou obter informações sobre a plataforma.

+

CONTEXTO

+

O usuário está utilizando a plataforma Canva e encontra dificuldades ou questões que não consegue resolver sozinho. Ele decide buscar ajuda através dos canais de suporte disponíveis.

+

ATORES

+
    +
  • Usuário
  • +
  • Representante de Suporte do Canva
  • +
+

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web ou aplicativo móvel, conta ativa no Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve estar logado na plataforma Canva.

+

EPISÓDIOS

+
    +
  1. O usuário faz login na plataforma Canva e acessa a página inicial.
  2. +
  3. O usuário localiza a seção de "Ajuda" ou "Suporte", geralmente disponível no rodapé da página ou no menu de perfil.
  4. +
  5. O usuário clica na opção "Ajuda" para acessar a central de suporte do Canva.
  6. +
  7. +

    Na central de suporte, o usuário pode:

    +
      +
    • +

      Explorar artigos e tutoriais disponíveis na base de conhecimento do Canva para encontrar uma solução para sua dúvida.

      +
    • +
    • +

      Utilizar a barra de pesquisa para digitar palavras-chave relacionadas ao problema ou questão.

      +
    • +
    +

    -Acessar as perguntas frequentes (FAQ) para verificar se a dúvida já foi respondida.

    +
  8. +
  9. +

    Se o usuário não encontrar a solução nas opções anteriores, ele pode optar por:

    +
      +
    • +

      Entrar em contato com o suporte ao cliente via chat ao vivo, se disponível.

      +
    • +
    • +

      Enviar uma solicitação de suporte por email, detalhando o problema e aguardando a resposta da equipe.

      +
    • +
    • +

      Acessar a comunidade do Canva para interagir com outros usuários e buscar soluções colaborativas.

      +
    • +
    +
  10. +
  11. +

    O usuário escolhe o canal de atendimento mais adequado para sua necessidade e segue as instruções fornecidas para entrar em contato com o suporte.

    +
  12. +
  13. O usuário aguarda a resposta do suporte e, caso solicitado, segue as orientações fornecidas para resolver o problema.
  14. +
  15. Caso necessário, o usuário faz novos ajustes ou retorna à página inicial do Canva.
  16. +
  17. O usuário confirma que o problema foi resolvido ou, se necessário, continua o diálogo com o suporte até a conclusão.
  18. +
+

RESTRIÇÕES

+

O tempo de resposta do suporte pode variar dependendo do canal escolhido e do plano de assinatura do usuário.

+

PÓS-CONDIÇÃO

+

O usuário recebe o suporte necessário para resolver seu problema ou esclarecer suas dúvidas.

+

RESULTADO ESPERADO

+

O usuário consegue acessar o suporte e atendimento ao cliente do Canva, resolve seu problema ou obtém a informação necessária, e retoma suas atividades na plataforma com sucesso.

+

16. Criação de um Design do Zero

+

OBJETIVO

+

O usuário deseja criar um design do zero na plataforma Canva, sem utilizar templates pré-definidos, para desenvolver um projeto personalizado.

+

CONTEXTO

+

O usuário tem uma ideia clara do design que deseja criar e prefere começar do zero, sem utilizar templates existentes, para ter total liberdade criativa e personalização.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web ou aplicativo móvel, conta ativa no Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve estar logado na plataforma Canva.

+

EPISÓDIOS

+
    +
  1. O usuário faz login na plataforma Canva.
  2. +
  3. O usuário clica no botão "Criar um design" ou "Design em branco" para iniciar um novo projeto do zero.
  4. +
  5. O usuário seleciona o tipo de design que deseja criar, como "Cartão de Visita", "Banner", "Apresentação", ou "Postagem para Redes Sociais".
  6. +
  7. O usuário define as dimensões, orientação, e outras configurações iniciais do design.
  8. +
  9. O usuário acessa as ferramentas de edição, como textos, formas, imagens, e ícones, para começar a construir o design.
  10. +
  11. O usuário adiciona elementos ao design, como textos, imagens, gráficos, e outros elementos visuais, de acordo com sua visão criativa.
  12. +
  13. O usuário personaliza as cores, fontes, tamanhos, e outros detalhes do design para refletir sua identidade visual ou estilo desejado.
  14. +
  15. O usuário revisa o design em tempo real, fazendo ajustes conforme necessário para alcançar o resultado desejado.
  16. +
  17. Após finalizar o design, o usuário salva o projeto e, se necessário, faz uma exportação nos formatos desejados.
  18. +
+

RESTRIÇÕES

+

O usuário deve ter conhecimento básico das ferramentas de edição do Canva para criar um design do zero com eficácia.

+

PÓS-CONDIÇÃO

+

O design foi criado do zero com sucesso, refletindo a visão criativa e personalizada do usuário.

+

RESULTADO ESPERADO

+

O usuário consegue criar um design do zero na plataforma Canva, sem utilizar templates pré-definidos, desenvolvendo um projeto personalizado e único.

+

17. Feedback de um Design

+

OBJETIVO

+

O usuário deseja obter feedback sobre um design criado na plataforma Canva para avaliar a qualidade, eficácia, e impacto do projeto.

+

CONTEXTO

+

O usuário finalizou um design na plataforma Canva e deseja compartilhá-lo com colegas, clientes, ou amigos para receber opiniões, sugestões, e críticas construtivas.

+

ATORES

+
    +
  • Usuário
  • +
  • Revisores, colegas, clientes, amigos
  • +
+

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web ou aplicativo móvel, conta ativa no Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve ter finalizado um design na plataforma Canva e estar pronto para compartilhá-lo com outras pessoas.

+

EPISÓDIOS

+
    +
  1. O usuário faz login na plataforma Canva e acessa o design que deseja compartilhar.
  2. +
  3. O usuário clica no botão "Compartilhar" ou "Convidar para Editar" para gerar um link de compartilhamento ou convidar revisores para colaborar no design.
  4. +
  5. O usuário copia o link de compartilhamento ou insere os emails dos revisores para enviar o convite.
  6. +
  7. Os revisores recebem o link ou convite e acessam o design para visualizá-lo e fornecer feedback.
  8. +
  9. Os revisores analisam o design, avaliam a qualidade, eficácia, e impacto do projeto, e compartilham suas opiniões, sugestões, e críticas construtivas.
  10. +
  11. O usuário revisa os feedbacks recebidos, considera as sugestões e críticas, e decide se deseja fazer ajustes no design com base nas recomendações.
  12. +
  13. O usuário agradece aos revisores pelo feedback e finaliza o design conforme necessário.
  14. +
+

RESTRIÇÕES

+

O usuário deve estar aberto a receber feedback construtivo e críticas sobre o design, mesmo que nem todas as opiniões sejam positivas.

+

PÓS-CONDIÇÃO

+

O usuário recebeu feedback sobre o design, avaliou as sugestões e críticas, e decidiu se fará ajustes no projeto.

+

RESULTADO ESPERADO

+

O usuário obteve feedback sobre o design criado na plataforma Canva, avaliou as opiniões recebidas, e decidiu se fará alterações no projeto com base nas recomendações.

+

18. Criação de Materiais Educacionais Interativos

+

OBJETIVO

+

O usuário é um professor o aluno e deseja utilizar as ferramentas de Ensino do Canva para criar materiais educacionais interativos e envolventes.

+

CONTEXTO

+

O usuário está envolvido no ensino e deseja criar materiais educacionais interativos, como apresentações, infográficos, cartazes, ou atividades, para engajar os alunos e facilitar o aprendizado.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web ou aplicativo móvel, conta ativa no Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve estar logado na plataforma Canva e ter conhecimento sobre os recursos de Ensino disponíveis.

+

EPISÓDIOS

+
    +
  1. O usuário faz login na plataforma Canva e acessa a seção de Ensino.
  2. +
  3. O usuário explora as ferramentas disponíveis para criar materiais educacionais interativos, como apresentações, infográficos, cartazes, ou atividades.
  4. +
  5. O usuário seleciona o tipo de material educacional que deseja criar e começa a adicionar conteúdo relevante, como textos, imagens, gráficos, ou vídeos.
  6. +
  7. O usuário personaliza o design, ajustando cores, fontes, layouts, e outros detalhes para tornar o material mais envolvente e atraente.
  8. +
  9. O usuário utiliza recursos interativos, como links, botões, vídeos, ou quizzes, para tornar o material educacional mais dinâmico e interativo.
  10. +
  11. O usuário revisa o material educacional em tempo real, fazendo ajustes conforme necessário para melhorar a qualidade e eficácia do conteúdo.
  12. +
  13. Após finalizar o material educacional, o usuário salva o projeto e, se necessário, faz uma exportação nos formatos desejados.
  14. +
+

RESTRIÇÕES

+

O usuário deve ter conhecimento sobre os princípios de design educacional e as melhores práticas para criar materiais educacionais interativos.

+

PÓS-CONDIÇÃO

+

O material educacional interativo foi criado com sucesso, pronto para ser utilizado no ensino e aprendizado.

+

RESULTADO ESPERADO

+

O usuário consegue criar materiais educacionais interativos e envolventes na plataforma Canva, utilizando as ferramentas disponíveis para facilitar o ensino e o aprendizado.

+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/analise/correcoes/esp_suplementar_corrigido/index.html b/analise/correcoes/esp_suplementar_corrigido/index.html new file mode 100644 index 0000000..bab0941 --- /dev/null +++ b/analise/correcoes/esp_suplementar_corrigido/index.html @@ -0,0 +1,2089 @@ + + + + + + + + + + + + + + + + + + + + + + + Especificação Suplementar - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Ir para o conteúdo + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Especificação Suplementar

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
16/08/2024Criação do documento e definição dos requisitos não funcionais após análise de casos de usoHenrique Quenino0.1
17/08/2024Revisão e ajustes dos requisitos não funcionaisHenrique Quenino1.0
03/09/2024Correção da especificação suplementar após a inspeçãoLuiza Maluf2.0
+

Origem

+

A Especificação Suplementar foi criada após a análise dos casos de uso do site Canva, com o objetivo de definir os requisitos não funcionais essenciais para o desenvolvimento e operação da plataforma.

+

Metodologia

+

Os requisitos não funcionais foram identificados considerando as necessidades dos usuários, as restrições do sistema e as melhores práticas de desenvolvimento de software, tendo em vista os casos de usos produzidos durante a modelagem dos requisitos.

+

1. Introdução

+

Este documento descreve a Especificação Suplementar do site Canva, complementando a Especificação de Casos de Uso. Ele detalha os requisitos não funcionais, incluindo requisitos de desempenho, segurança, usabilidade e outros, essenciais para o sucesso da plataforma.

+

2. Requisitos Não Funcionais

+

2.1. Desempenho

+
    +
  • +

    Tempo de Carregamento: O site deve carregar em menos de 3 segundos em uma conexão de banda larga (5 Mbps) para 80% das requisições.

    +
      +
    • Rastreabilidade: Relacionado ao Caso de Uso US-08
    • +
    +
  • +
  • +

    Tempo de Resposta: As interações do usuário, como arrastar e soltar elementos, aplicar filtros e salvar designs, devem ocorrer em tempo real, com um tempo de resposta máximo de 0,5 segundos.

    +
      +
    • Rastreabilidade: Relacionado ao Caso de Uso US-02
    • +
    +
  • +
  • +

    Escalabilidade: A plataforma deve suportar um número crescente de usuários simultâneos e projetos sem degradação significativa no desempenho.

    +
      +
    • Rastreabilidade: Relacionado ao Caso de Uso US-11
    • +
    +
  • +
  • +

    Disponibilidade: O site deve estar disponível 99,9% do tempo, com um tempo de inatividade máximo programado de 4 horas por mês para manutenção.

    +
      +
    • Rastreabilidade: Relacionado ao Caso de Uso US-08
    • +
    +
  • +
+

2.2. Segurança

+
    +
  • +

    Autenticação: A plataforma deve oferecer autenticação segura por meio de senha, autenticação de dois fatores e login social (Google, Facebook).

    +
      +
    • Rastreabilidade: Relacionado ao Caso de Uso US-08
    • +
    +
  • +
  • +

    Autorização: O acesso aos designs e recursos deve ser controlado por um sistema de permissões granular, permitindo o compartilhamento e a colaboração com diferentes níveis de acesso.

    +
      +
    • Rastreabilidade: Relacionado ao Caso de Uso US-03
    • +
    +
  • +
  • +

    Proteção de Dados: As informações do usuário, incluindo dados pessoais e designs, devem ser criptografadas em repouso e em trânsito usando protocolos de segurança padrão da indústria (SSL/TLS).

    +
      +
    • Rastreabilidade: Relacionado ao Caso de Uso US-08
    • +
    +
  • +
  • +

    Conformidade: A plataforma deve cumprir as leis e regulamentações de proteção de dados relevantes, como LGPD e GDPR.

    +
      +
    • Rastreabilidade: Relacionado ao Caso de Uso US-08
    • +
    +
  • +
+

2.3. Usabilidade

+
    +
  • +

    Interface do Usuário: A interface deve ser intuitiva, fácil de usar e esteticamente agradável, utilizando princípios de design centrados no usuário.

    +
      +
    • Rastreabilidade: Relacionado ao Caso de Uso US-02
    • +
    +
  • +
  • +

    Navegação: Os usuários devem ser capazes de navegar facilmente pelo site, encontrar as ferramentas e recursos necessários e acessar seus projetos rapidamente.

    +
      +
    • Rastreabilidade: Relacionado ao Caso de Uso US-10
    • +
    +
  • +
  • +

    Acessibilidade: A plataforma deve ser acessível a usuários com deficiência, seguindo as diretrizes de acessibilidade WCAG 2.1.

    +
      +
    • Rastreabilidade: Relacionado ao Caso de Uso US-02
    • +
    +
  • +
  • +

    Documentação e Suporte: O Canva deve fornecer documentação abrangente, tutoriais e suporte ao cliente responsivo para ajudar os usuários a utilizar todas as funcionalidades da plataforma.

    +
      +
    • Rastreabilidade: Relacionado ao Caso de Uso US-15
    • +
    +
  • +
+

2.4. Confiabilidade

+
    +
  • +

    Recuperação de Falhas: A plataforma deve ser projetada para lidar com falhas de hardware e software, garantindo a mínima perda de dados e rápida recuperação.

    +
      +
    • Rastreabilidade: Relacionado a todos os casos de uso.
    • +
    +
  • +
  • +

    Backup e Restauração: Backups regulares do site e dos dados do usuário devem ser realizados, com a capacidade de restaurar dados em caso de perda ou corrupção.

    +
      +
    • Rastreabilidade: Relacionado ao Caso de Uso US-01
    • +
    +
  • +
  • +

    Monitoramento: O sistema deve ser monitorado continuamente para detectar e solucionar problemas de desempenho, segurança e disponibilidade.

    +
      +
    • Rastreabilidade: Relacionado a todos os casos de uso.
    • +
    +
  • +
+

2.5. Manutenibilidade

+
    +
  • +

    Modularidade: A arquitetura do site deve ser modular, permitindo a atualização e manutenção de componentes individuais sem afetar outras partes do sistema.

    +
      +
    • Rastreabilidade: Relacionado a todos os casos de uso.
    • +
    +
  • +
  • +

    Documentação Técnica: A documentação técnica completa, incluindo diagramas de arquitetura, código-fonte documentado e casos de teste, deve ser mantida para facilitar a manutenção e o desenvolvimento futuro.

    +
      +
    • Rastreabilidade: Relacionado ao desenvolvimento e manutenção geral do sistema.
    • +
    +
  • +
  • +

    Ferramentas de Desenvolvimento: O Canva deve utilizar ferramentas e tecnologias de desenvolvimento padrão da indústria para garantir a manutenibilidade e a escalabilidade do código.

    +
      +
    • Rastreabilidade: Relacionado ao desenvolvimento e manutenção geral do sistema.
    • +
    +
  • +
+

3. Restrições

+
    +
  • +

    Navegadores Suportados: O site deve ser compatível com as versões mais recentes dos principais navegadores da web, incluindo Chrome, Firefox, Safari e Edge.

    +
      +
    • Rastreabilidade: Relacionado ao Caso de Uso US-08
    • +
    +
  • +
  • +

    Dispositivos Suportados: A plataforma deve funcionar corretamente em desktops, laptops, tablets e smartphones.

    +
      +
    • Rastreabilidade: Relacionado ao Caso de Uso US-08
    • +
    +
  • +
  • +

    Idiomas Suportados: O Canva deve estar disponível em vários idiomas, incluindo português, inglês, espanhol e outros idiomas relevantes para o público-alvo.

    +
      +
    • Rastreabilidade: Relacionado ao Caso de Uso US-08
    • +
    +
  • +
+

4. Conclusão

+

A Especificação Suplementar define os requisitos não funcionais essenciais para o desenvolvimento e operação bem-sucedidos do site Canva. Ao atender a esses requisitos, a plataforma poderá oferecer uma experiência de usuário de alta qualidade, segura, confiável e escalável para seus usuários.

+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/analise/correcoes/lexicos_corrigido/index.html b/analise/correcoes/lexicos_corrigido/index.html new file mode 100644 index 0000000..f02df60 --- /dev/null +++ b/analise/correcoes/lexicos_corrigido/index.html @@ -0,0 +1,4760 @@ + + + + + + + + + + + + + + + + + + + + + + + Léxicos - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Ir para o conteúdo + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Léxicos

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
12/08/2024Adição dos primeiros lexicos encontrados durante a análise de protocoloLuiza Maluf0.0
16/07/2024Adição de mais léxicos encontrados após o desenvolvimento dos primeiros cenários.Luiza Maluf1.0
05/09/2024Correção e verificação léxica após verificaçãoHenrique Quenino2.0
+

Origem

+

O desenvolvimento deste léxico foi dado a partir da análise de protocolo feita na parte da elicitação.

+

Além disso, um segunda versão foi feita após o desenvolvimento dos cenários.

+

Metodologia

+

Primeiramente, navegando dentro da plataforma e anotando as palavras chaves.

+

Em um segundo momento, foi possível identificar novos léxicos durante a produção dos cenários

+

Adicionar

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeAdicionar
SinônimosIncluir, Inserir
NoçãoInserir novos elementos, como texto, imagens, ou gráficos, em um design.
ImpactoEnriquecer o design com novos conteúdos, aumentando sua complexidade e valor visual.
ClassificaçãoVerbo.
+

Acesso

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeAcesso
SinônimosEntrada, Permissão
NoçãoPossibilidade de utilizar a plataforma ou determinadas funcionalidades após autenticação ou autorização.
ImpactoPermite ao usuário interagir com o sistema, utilizando as ferramentas e recursos disponíveis.
ClassificaçãoVerbo.
+

Agrupar

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeAgrupar
SinônimosUnir, Combinar
NoçãoCombinar múltiplos elementos em uma única unidade para facilitar a movimentação e edição.
ImpactoSimplifica a manipulação de múltiplos elementos, permitindo edições simultâneas e coordenação visual.
ClassificaçãoVerbo.
+

Alinhamento

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeAlinhamento
SinônimosPosicionamento, Distribuição
NoçãoO alinhamento correto melhora a organização e legibilidade do design, contribuindo para uma apresentação visual mais profissional.
ImpactoArranjo dos elementos gráficos e textuais em relação ao layout.
ClassificaçãoSubstantivo.
+

Altera

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeAltera
SinônimosModificações, Ajustes
NoçãoMudanças realizadas em um design ou configuração dentro da plataforma.
ImpactoInfluenciam o resultado final, permitindo ajustes e melhorias contínuas no design ou no projeto.
ClassificaçãoVerbo.
+

Animação

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeAnimação
SinônimosMovimento, Efeito Visual
NoçãoPermite que elementos do design tenham movimento, como transições suaves ou efeitos de entrada e saída, aumentando o impacto visual.
ImpactoAdiciona dinamismo aos designs, especialemnte em apresentações e vídeos.
ClassificaçãoSubstantivo.
+

Aplicar

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeAplicar
SinônimosUsar, Implementar
NoçãoColocar efeitos, filtros ou estilos em um elemento ou design.
ImpactoTransforma a aparência dos elementos, adicionando camadas de estilo e profundidade ao design.
ClassificaçãoVerbo.
+

Arquivo

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeArquivo
SinônimosDocumento, Projeto
NoçãoOs arquivos podem ser salvos, compartilhados e reabertos para futuras edições ou exportações.
ImpactoRefere-se ao documento salvo que contém o design criado.
ClassificaçãoSubstantivo.
+

Arrastar e Soltar

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeArrastar e Soltar
SinônimosDrag and Drop, Mover Elementos
NoçãoSimplifica o processo de edição, permitindo que os usuários organizem os elementos de maneira intuitiva e rápida.
ImpactoMétodo de interação que permite mover elementos pelo design apenas arrastando-os com o cursor.
ClassificaçãoSubstantivo.
+

Apresentação

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeApresentação
SinônimosSlideshow, Pitch, Deck
NoçãoTipo específico de design usado para apresentações, frequentemente utilizado em contextos empresariais ou educacionais.
ImpactoConjunto de slides criado para comunicar ideias de forma estruturada.
ClassificaçãoSubstantivo.
+
+

Baixar

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeBaixar
SinônimosDownload, Transferir
NoçãoAção de salvar o design ou projeto localmente no dispositivo do usuário.
ImpactoFacilita o uso do design em outros contextos, fora da plataforma, como apresentações ou impressões.
ClassificaçãoVerbo.
+

Banco de Imagens

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeBanco de Imagens
SinônimosGaleria de Fotos, Biblioteca de Imagens
NoçãoFornece uma ampla variedade de fotos e gráficos, tanto gratuitos quanto pagos, que podem ser inseridos em projetos.
ImpactoRepositório de imagens que os usuários podem utilizar em seus designs.
ClassificaçãoSubstantivo.
+

Biclioteca de Elementos

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeBiclioteca de Elementos
SinônimosRepositório de Elementos, Coleção de Gráficos
NoçãoA biblioteca oferece uma vasta gama de elementos visuais, desde ícones a ilustrações, que podem ser inseridos e personalizados em projetos.
ImpactoConjunto de recursos gráficos disponíveis para uso em designs.
ClassificaçãoSubstantivo.
+
+

Camadas

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeCamadas
SinônimosNíveis, Estruturas
NoçãoPermitem manipular a disposição dos elementos gráficos e texto, criando profundidade e organização no design.
ImpactoControlam a ordem e sobreposição dos elementos em um design.
ClassificaçãoSubstantivo.
+

Chat

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeChat
SinônimosConversa, Mensagem
NoçãoFerramenta de comunicação que permite a troca de mensagens entre os usuários da plataforma.
ImpactoFacilita a colaboração e a comunicação entre os membros da equipe ou clientes.
ClassificaçãoSubstantivo.
+

Colaboração

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeColaboração
SinônimosTrabalho em Equipe, Cooperação
NoçãoFacilita a criação conjunta de projetos, possibilitando edições simultâneas e feedback em tempo real.
ImpactoPermite que múltiplos usuários trabalhem juntos em um design ao mesmo tempo. Pode ocorrer por meio de comentários, compartilhamento de arquivos ou edição simultânea de projetos.
ClassificaçãoSubstantivo.
+

Comentário

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeComentário
SinônimosAnotações, Feedback
NoçãoFerramenta de colaboração que facilita a comunicação entre membros da equipe ou clientes, diretamente no projeto.
ImpactoPermitem que os usuários compartilhem opiniões e sugestões dentro de um design colaborativo.
ClassificaçãoSubstantivo.
+

Compartilhamento

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeCompartilhamento
SinônimosPublicação, Distribuição
NoçãoFacilita a colaboração e disseminação dos trabalhos criados na plataforma.
ImpactoMecanismo que permite aos usuário distribuir seus designs para outras pessoas ou plataformas.
ClassificaçãoSubstantivo.
+

Computador

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeComputador
SinônimosPC, Dispositivo
NoçãoDispositivo eletrônico que permite o acesso à plataforma Canva.
ImpactoFerramenta essencial para a criação e edição de designs na plataforma.
ClassificaçãoSubstantivo.
+

Conexão

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeConexão
SinônimosLigação, Vínculo
NoçãoAção de se conectar à internet ou à plataforma, essencial para o uso das funcionalidades online.
ImpactoHabilita o acesso às ferramentas e recursos da plataforma, permitindo a colaboração e o armazenamento na nuvem.
ClassificaçãoSubstantivo.
+

Conta

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeConta
SinônimosPerfil, Cadastro
NoçãoIdentidade digital do usuário na plataforma, contendo suas informações pessoais e preferências.
ImpactoPermite o acesso personalizado aos recursos da plataforma, além de armazenar os designs e configurações do usuário.
ClassificaçãoSubstantivo.
+

Conteúdo

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeConteúdo
SinônimosInformação, Elementos
NoçãoTexto, imagens, gráficos ou outros elementos visuais que compõem um design.
ImpactoParte essencial do design, transmitindo informações e mensagens visuais.
ClassificaçãoSubstantivo.
+

Criar

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeCriar
SinônimosGerar, Desenvolver
NoçãoAção de começar um novo design ou projeto dentro da plataforma.
ImpactoInicia o processo de design, proporcionando ao usuário a possibilidade de expressar suas ideias visualmente.
ClassificaçãoVerbo.
+

Corte

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeCorte
SinônimosRecorte, Crop
NoçãoO corte ajuda a focar no conteúdo mais relevante de uma imagem, melhorando a composição e clareza do desdesignign.
ImpactoFunção que permite remover partes indesejadas de uma imagem ou elemento gráfico.
ClassificaçãoSubstantivo.
+
+

Desfazer

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeDesfazer
SinônimosReverter, Anular
NoçãoVoltar ao estado anterior de um design antes da última ação realizada.
ImpactoFornece segurança ao usuário, permitindo correções rápidas de erros ou mudanças de decisão.
ClassificaçãoVerbo.
+

Design

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeDesign
SinônimosProjeto, Arte, Composição, Desenho
NoçãoResultado final da interação do usuário com a plataforma, podendo ser impresso ou compartilhado digitalmente.
ImpactoRepresenta o principal produto criado e manipulado pelos usuário tratando-se de um projeto visual utilizado para diversos fins dentro da plataforma educacional. Podendo ser um cartaz, um banner, uma apresentação, entre outros.
ClassificaçãoSubstantivo.
+

Designer

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeDesigner
SinônimosCriador, Artista
NoçãoPessoa que utiliza a plataforma para criar designs, podendo ser profissional ou amador.
ImpactoResponsável pela concepção e execução de projetos visuais na plataforma.
ClassificaçãoSubstantivo.
+
+

Edição

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeEdição
SinônimosModificação, Alteração, Ajuste
NoçãoPermite a personalização completa do design dentro das ferramentas fornecidas pelo Canva.
ImpactoProcesso pelo qual o usuário altera um design, incluindo adição de texto, imagens e gráficos.
ClassificaçãoSubstantivo.
+

Efeito

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeEfeito
SinônimosModificação, Estilo
NoçãoEfeitos podem ser aplicados a textos, imagens ou formas para melhorar a expressividade ou criar impacto visual.
ImpactoAlteração aplicada a um elemento para criar uma aparência ou sensação específica.
ClassificaçãoSubstantivo.
+

Elementos Gráficos

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeElementos Gráficos
SinônimosÍcones, Ilustrações, Formas
NoçãoItens visuais disponíveis na biblioteca do Canva, utilizados para melhorar a aparência e a comunicação visual dos designs.
ImpactoComponente visual que pode ser adicionado aos designs apra enriquecer o conteúdo.
ClassificaçãoSubstantivo.
+

Equipe

+ + + + + + + + + + + + + + + + + + + + + +
NomeEquipe
SinônimosGrupo, Time
NoçãoConjunto de usuários que trabalham juntos em um projeto, compartilhando ideias e colaborando na criação de designs.
ImpactoFacilita a colaboração e a comunicação entre os membros, permitindo a criação de designs mais complexos e diversificados.
+

Excluir

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeExcluir
SinônimosApagar, Remover
NoçãoRemover elementos indesejados de um design.
ImpactoSimplifica o design, eliminando o que é desnecessário ou indesejado.
ClassificaçãoVerbo.
+

Exportação

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeExportação
SinônimosDownload, Salvamento
NoçãoPermite ao usuário baixar o design em formatos como PNG, PDF, JPG, entre outros, para uso offline ou impressão.
ImpactoProcesso de salvar o design criado em diferentes formatos de arquivo.
ClassificaçãoSubstantivo.
+
+

Feedback

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeFeedback
SinônimosRetorno, Avaliação
NoçãoOpiniões e sugestões fornecidas por outros usuários ou clientes sobre um design ou projeto.
ImpactoInformações valiosas que ajudam a melhorar o design e a identificar áreas de melhoria.
ClassificaçãoSubstantivo.
+

Ferramenta

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeFerramenta
SinônimosInstrumento, Recurso
NoçãoFuncionalidades disponíveis na plataforma que auxiliam na criação e edição de design.
ImpactoFacilita o processo de design, oferecendo diversas opções para personalizar e melhorar o conteúdo.
ClassificaçãoSubstantivo.
+

Fonte

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeFonte
SinônimosTipografia, Tipo de Letra
NoçãoAs fontes ajudam a comunicar o tom e a identidade do projeto, influenciando a legibilidade e o apelo estético.
ImpactoDetermina o estilo visual do texto em um design.
ClassificaçãoSubstantivo.
+

Formatação

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeFormatação
SinônimosEstilização, Personalização
NoçãoA formatação inclui a escolha de Fonte, tamanho, cor, alinhamento e espaçamento, permitindo que o design seja ajustado para atender a objetivos específicos de comunicação.
ImpactoProcesso de ajustar o estilo e a aparência de texto e outros elementos em um design.
ClassificaçãoSubstantivo.
+
+

Grade

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeGrade
SinônimosGrid, Estrutura de Alinhamento
NoçãoFacilita a criação de layouts equilibrados e organizados, melhorando a harmonia visual.
ImpactoSistema de linhas que ajuda a alinhar e organizar os elementos em um design.
ClassificaçãoSubstantivo.
+

Gratuito

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeGratuito
SinônimosLivre, Sem Custo
NoçãoRecursos ou ferramentas disponíveis na plataforma que podem ser utilizados sem custo adicional.
ImpactoAumenta o acesso dos usuários a recursos básicos e essenciais para a criação de design..
ClassificaçãoAdjetivo.
+
+
+

Identidade visual

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeIdentidade visual
SinônimosEstilo, Marca
NoçãoConjunto de elementos visuais que representam a personalidade e a identidade de uma marca ou projeto.
ImpactoReflete a essência e os valores da marca, criando uma conexão visual com o público.
ClassificaçãoSubstantivo.
+

Integração

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeIntegração
SinônimosConectividade, Sincronização
NoçãoAs integrações permitem que os usuários trabalhem de maneira mais eficiente, facilitando a publicação, compartilhamento e armazenamento de design diretamente do Canva.
ImpactoCapacidade do Canva de se conectar com outras ferramentas e plataformas, como redes sociais, serviços de armazenamento em nuvem e sistemas de email marketing.
ClassificaçãoSubstantivo.
+
+
+
+

Login

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeLogin
SinônimosAcesso, Autenticação
NoçãoProcesso de entrada na plataforma usando credenciais como nome de usuário e senha.
ImpactoPermite ao usuário acessar suas informações pessoais, design e configurações personalizadas.
ClassificaçãoSubstantivo.
+

Logout

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeLogout
SinônimosSair, Encerrar Sessão
NoçãoAção de sair da conta da plataforma, encerrando a sessão ativa.
ImpactoProtege a segurança dos dados do usuário, especialmente em dispositivos compartilhados.
ClassificaçãoSubstantivo.
+
+

Marca d'Água

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeMarca d'Água
SinônimosSelo, Assinatura Visual
NoçãoUm elemento visual sutil que é sobreposto ao design, geralmente com transparência, para indicar propriedade intelectual.
ImpactoProtege a autoria do design, garantindo que o criador seja reconhecido.
ClassificaçãoSubstantivo.
+
+

Moldura

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeMoldura
SinônimosBordas, Quadro
NoçãoAs molduras ajudam a focar a atenção em um conteúdo específico ou a melhorar a composição do design.
ImpactoElemento decorativo que circunda uma imagem ou texto, adicionando um contorno visual.
ClassificaçãoSubstantivo.
+
+
+
+

Padrão

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomePadrão
SinônimosTextura, Molde, Exemplo
NoçãoOs padrões adicionam profundidade e interesse visual a um design, podendo ser usados para criar temas ou destacar partes específicas de um projeto.
ImpactoDesenho repetitivo usado como fundo ou elemento decorativo em um design.
ClassificaçãoSubstantivo.
+

Página

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomePágina
SinônimosFolha, Slide
NoçãoRepresenta uma seção individual de um projeto, podendo conter texto, imagens e elementos gráficos.
ImpactoUnidade básica de um design multipágina, como um documento ou apresentação.
ClassificaçãoSubstantivo.
+

Paleta de Cores

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomePaleta de Cores
SinônimosConjunto de Cores, Esquema de Cores
NoçãoAjuda a criar coesão visual e a transmitir emoções ou mensagens específicas no design.
ImpactoConjunto de cores selecionadas que guiam a estética de um design.
ClassificaçãoSubstantivo.
+

Permissão

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomePermissão
SinônimosAutorização, Concessão
NoçãoDireitos atribuídos a um usuário para acessar ou modificar certos recursos ou design na plataforma.
ImpactoControla o acesso e as ações permitidas dentro de um projeto, garantindo a segurança e a integridade dos dados.
ClassificaçãoSubstantivo.
+

Personalizar

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomePersonalizar
SinônimosCustomizar, Ajustar
NoçãoModificar elementos para atender a necessidades ou preferências específicas.
ImpactoPermite que o design reflita a identidade ou requisitos específicos do usuário.
ClassificaçãoVerbo.
+

Plano de Assinatura

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomePlano de Assinatura
SinônimosPro, Conta Premium, Subscrição
NoçãoOferece vantagens adicionais em relação à conta gratuita, como acesso a mais recursos gráficos e funcionalidades.
ImpactoDefine o nível de acesso do usuário a recursos avançados e templates exclusivos.
ClassificaçãoSubstantivo.
+

Plano de Fundo

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomePlano de Fundo
SinônimosPro, Conta Premium, Subscrição
NoçãoOferece vantagens adicionais em relação à conta gratuita, como acesso a mais recursos gráficos e funcionalidades.
ImpactoDefine o nível de acesso do usuário a recursos avançados e templates exclusivos.
ClassificaçãoSubstantivo.
+

Plataforma

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomePlataforma
SinônimosSistema, Ambiente
NoçãoAmbiente digital que fornece as ferramentas e recursos necessários para criar e editar design.
ImpactoOferece o espaço e as funcionalidades necessárias para o desenvolvimento de projetos criativos.
ClassificaçãoSubstantivo.
+

Protótipo

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeProtótipo
SinônimosMockup, Modelo
NoçãoPermite testar a aparência e funcionalidade de um design antes de sua conclusão.
ImpactoRepresentação visual inicial de um design, usado para validação e ajustes antes do produto final.
ClassificaçãoSubstantivo.
+

Publicação

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomePublicação
SinônimosPostagem, Compartilhamento Online
NoçãoPermite que o design seja visto por uma audiência maior, aumentando a visibilidade do projeto.
ImpactoAto de disponibilizar o design finalizado em uma plataforma online, como redes sociais ou websites.
ClassificaçãoSubstantivo.
+
+
+

Recursos

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeRecursos
SinônimosFerramentas, Materiais
NoçãoConjunto de elementos, como imagens, fontes, e modelos, disponíveis para uso na criação de design.
ImpactoAmplia as possibilidades de criação, oferecendo uma variedade de elementos para enriquecer os design.
ClassificaçãoSubstantivo.
+

Responsividade

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeResponsividade
SinônimosAjuste de Tamanho, Escalamento
NoçãoFerramenta que facilita a adaptação do design para diferentes mídias, como redes sociais, impressos ou anúncios.
ImpactoPermite que o design seja adaptado para diferentes formatos e proporções sem perder qualidade.
ClassificaçãoSubstantivo.
+

Rotacionar

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeRotacionar
SinônimosGirar, Virar
NoçãoMudar a orientação de um elemento ao redor de um ponto central.
ImpactoPermite criar efeitos dinâmicos e ajustar a perspectiva dos elementos dentro do design.
ClassificaçãoVerbo.
+
+

Salvar

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeSalvar
SinônimosArmazenar, Guardar
NoçãoAção de armazenar um design ou projeto no sistema da plataforma.
ImpactoGarante que o trabalho do usuário não seja perdido e possa ser acessado ou editado posteriormente.
ClassificaçãoVerbo.
+

Simultâneo

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeSimultâneo
SinônimosParalelo, Concomitante
NoçãoCapacidade de realizar múltiplas ações ou colaborações ao mesmo tempo dentro da plataforma.
ImpactoAumenta a eficiência e produtividade, permitindo que vários usuários ou processos aconteçam simultaneamente.
ClassificaçãoAdjetivo.
+

Slides

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeSlides
SinônimosPáginas, Telas
NoçãoUnidades de conteúdo em uma apresentação ou design que são visualizadas sequencialmente.
ImpactoEstruturam a apresentação de informações, facilitando a organização do conteúdo visual.
ClassificaçãoSubstantivo.
+

Smartphones

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeSmartphones
SinônimosCelulares, Dispositivos Móveis
NoçãoDispositivos portáteis que permitem o acesso à plataforma Canva em qualquer lugar.
ImpactoAmplia a acessibilidade e a mobilidade dos usuários, permitindo a criação de design em qualquer momento e lugar.
ClassificaçãoSubstantivo.
+

Sobreposição

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeSobreposição
SinônimosOverlay, Camada Adicional
NoçãoUtilizado para destacar ou realçar partes específicas de um design.
ImpactoEfeito visual onde um elemento é colocado sobre outro, criando profundidade ou ênfase.
ClassificaçãoSubstantivo.
+
+

Template

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeTemplate
SinônimosModelo, Esquema, Layout
NoçãoOferece uma estrutura inicial que pode ser personalizada pelo usuário.
ImpactoServe como base para a criação de novos design, acelerando o processo criativo.
ClassificaçãoSubstantivo.
+

Teste

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeTeste
SinônimosAvaliação, Verificação
NoçãoProcesso de experimentação de um design ou funcionalidade antes de sua finalização.
ImpactoGarante a qualidade do design, permitindo ajustes antes da entrega final.
ClassificaçãoSubstantivo.
+
+

Usuário

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeUsuário
SinônimosCliente, Consumidor, Designer.
NoçãoUsa a ferramenta para criar, editar e compartilhar projetos gráficos.
ImpactoInterage com a plataforma Canva para criar design.
ClassificaçãoSubstantivo
+
+
+
+
+
+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/analise/correcoes/moscow_corrigido/index.html b/analise/correcoes/moscow_corrigido/index.html new file mode 100644 index 0000000..4b5aba7 --- /dev/null +++ b/analise/correcoes/moscow_corrigido/index.html @@ -0,0 +1,2730 @@ + + + + + + + + + + + + + + + + + + + + + + + MoSCoW - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Ir para o conteúdo + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

MoSCoW

+

Histórico de Versões

+ + + + + + + + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
29/07/2024Primeira versão da análiseGabriel Moura1.0
03/09/2024Correção do MoSCoW após a inspeçãoLuiza Maluf2.0
+

Origem

+

O desenvolvimento deste MoSCoW foi dado a partir da +Reunião 3.

+

Metodologia

+

Introdução

+

A análise MoSCoW é uma técnica de priorização de requisitos amplamente utilizada +em gerenciamento de projetos, especialmente em metodologias ágeis. Ela auxilia +na tomada de decisão sobre quais funcionalidades devem ser implementadas +primeiro, categorizando os requisitos em quatro níveis de prioridade: must, +should, could e could.

+

Essa técnica é fundamental para garantir que os recursos sejam alocados de forma +eficiente, focando nos requisitos que trazem maior valor para o projeto, dentro +do tempo e do orçamento disponíveis.

+

Objetivo

+

O objetivo da análise MoSCoW é, em conjunto com o que foi aprendido em sala de +aula, definir quais funcionalidades serão priorizadas no desenvolvimento da +plataforma Canva. Priorizando as funcionalidades que são essenciais para o +funcionamento básico da ferramenta, para posteriormente categorizar as +funcionalidades que agregam valor à experiência do usuário e podem ser +implementadas em versões futuras.

+

A análise MoSCoW se baseia em quatro categorias:

+
    +
  • Must (Essencial): Requisitos absolutamente essenciais para o sistema + funcionar. Se um requisito must não for atendido, o projeto é considerado um + fracasso.
  • +
  • Should (Importante): Requisitos importantes, mas não essenciais para o + lançamento da versão inicial. Podem ser implementados posteriormente, se + necessário.
  • +
  • Could (Desejável): Requisitos desejáveis que agregam valor, mas não são + críticos. A implementação deles depende de tempo e recursos disponíveis.
  • +
  • Would (Opcional): Requisitos de menor prioridade que podem ser + considerados em versões futuras.
  • +
+

A equipe analisa cada requisito e o classifica em uma dessas categorias, com +base em seu impacto no projeto, valor para o usuário, custo de implementação e +risco.

+

Artefatos

+

Tabela de Requisitos

+

Versão 1.0

+
Tabela de Requisitos Agrupados
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDDescriçãoPrioridade
1Diversidade de formatos de design (posts, banners, apresentações, etc.).Must
2Templates personalizáveis para cada formato.Must
3Criação de designs a partir do zero.Must
4Importação de imagens e fotos.Must
5Salvar e exportar designs (PDF, JPG, PNG).Must
6Importação de vídeos e outros arquivos.Should
7Exportar designs em formatos adicionais (SVG, MP4, GIF).Should
8Integrar com redes sociais (agendamento de posts).Could
9Ferramentas básicas de edição de imagem (cortar, redimensionar, girar).Must
10Ajustar brilho, contraste e saturação de imagens.Must
11Ferramentas de edição de texto (formatação básica, escolha de fontes, cores).Must
12Adicionar ícones, ilustrações e formas geométricas aos designs.Must
13Ferramentas avançadas de edição de imagem (filtros, efeitos, remover fundo).Should
14Criar efeitos de texto (sombra, contorno).Should
15Camadas (organização básica, ordem e visibilidade).Should
16Camadas (opacidade, bloqueio).Could
17Máscaras (linear, radial).Could
18Compartilhamento de designs para visualização.Must
19Compartilhamento de designs para edição com permissões básicas.Must
20Edição colaborativa em tempo real.Should
21Sistema de chat na edição colaborativa.Could
22Comentários em elementos específicos.Could
23Grades e guias.Must
24Pré-visualização em tempo real.Must
25Paleta de cores.Should
26Guia de estilo.Could
27Histórico de versões.Could
28Atalhos de teclado.Could
29Interface intuitiva e fácil de usar.Must
30Arrastar e soltar.Must
31Design responsivo.Should
32Integração com outras ferramentas (redes sociais, armazenamento em nuvem).Could
33Performance rápida e eficiente.Must
34Confiabilidade.Must
35Segurança dos dados do usuário.Must
36Acessibilidade.Should
37Escalabilidade.Could
38Internacionalização.Could
+
Tabelas de Requisitos Separadas por Prioridade
+
Must
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDDescrição
1Diversidade de formatos de design (posts, banners, apresentações, etc.).
2Templates personalizáveis para cada formato.
3Criação de designs a partir do zero.
4Importação de imagens e fotos.
5Salvar e exportar designs (PDF, JPG, PNG).
9Ferramentas básicas de edição de imagem (cortar, redimensionar, girar).
10Ajustar brilho, contraste e saturação de imagens.
11Ferramentas de edição de texto (formatação básica, escolha de fontes, cores).
12Adicionar ícones, ilustrações e formas geométricas aos designs.
18Compartilhamento de designs para visualização.
19Compartilhamento de designs para edição com permissões básicas.
23Grade e guias.
24Pré-visualização em tempo real.
29Interface intuitiva e fácil de usar.
30Arrastar e soltar.
33Performance rápida e eficiente.
34Confiabilidade.
35Segurança dos dados do usuário.
+
Should
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Requisito
6Importação de vídeos e outros arquivos
7Exportar designs em formatos adicionais (SVG, MP4, GIF)
13Ferramentas avançadas de edição de imagem (filtros, efeitos, remover fundo)
14Criar efeitos de texto (sombra, contorno)
15Camadas (organização básica, ordem e visibilidade)
20Edição colaborativa em tempo real
25Paleta de cores
31Design responsivo
36Acessibilidade
+
Could
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Requisito
8Integrar com redes sociais (agendamento de posts)
16Camadas (opacidade, bloqueio)
17Máscaras (linear, radial)
21Sistema de chat na edição colaborativa
22Comentários em elementos específicos
26Guia de estilo
27Histórico de versões
28Atalhos de teclado
32Integração com outras ferramentas (redes sociais, armazenamento em nuvem)
37Escalabilidade
38Internacionalização
+
Would
+ + + + + + + + + + + + + + + +
Requisito
(Nenhum requisito foi classificado como Would nesta versão)
+

Justificativa e impacto de cada priorização

+
    +
  1. +

    Diversidade de formatos de design (posts, banners, apresentações, etc.): Essencial para atender às diversas necessidades dos usuários, garantindo flexibilidade na criação de diferentes tipos de conteúdo. Sem isso, o valor central da plataforma é comprometido.

    +
      +
    • Impacto: Permite criar uma ampla gama de conteúdos para diferentes finalidades, oferecendo flexibilidade e atendendo a diversas necessidades.
    • +
    +
  2. +
  3. +

    Templates personalizáveis para cada formato: Facilita a criação e aumenta a acessibilidade, especialmente para usuários menos experientes. Essencial para usabilidade básica.

    +
      +
    • Impacto: Facilita a criação de designs ao fornecer estruturas pré-feitas que podem ser adaptadas, tornando o processo mais rápido e acessível.
    • +
    +
  4. +
  5. +

    Criação de designs a partir do zero: Oferece liberdade criativa, permitindo que os usuários expressem suas ideias sem limitações, fundamental para um editor de design.

    +
      +
    • Impacto: Oferece total liberdade criativa, permitindo que os usuários criem designs únicos e personalizados de acordo com suas visões.
    • +
    +
  6. +
  7. +

    Importação de imagens e fotos: Necessário para personalização e criação de designs únicos, permitindo a inclusão de elementos visuais próprios dos usuários.

    +
      +
    • Impacto: Permite adicionar elementos visuais pessoais aos designs, tornando-os mais relevantes e personalizados.
    • +
    +
  8. +
  9. +

    Salvar e exportar designs (PDF, JPG, PNG): Essencial para uso e compartilhamento dos designs criados em formatos amplamente suportados, garantindo aplicabilidade prática.

    +
      +
    • Impacto: Facilita o uso e compartilhamento dos designs em formatos amplamente aceitos, aumentando a praticidade.
    • +
    +
  10. +
  11. +

    Importação de vídeos e outros arquivos: Importante para suportar multimídia, enriquecendo os designs, mas não essencial para o lançamento inicial.

    +
      +
    • Impacto: Adiciona a capacidade de trabalhar com multimídia, enriquecendo os designs com diferentes tipos de mídia.
    • +
    +
  12. +
  13. +

    Exportar designs em formatos adicionais (SVG, MP4, GIF): Fornece flexibilidade e opções adicionais de uso, atendendo a necessidades específicas de alguns projetos.

    +
      +
    • Impacto: Oferece mais opções para uso e compartilhamento dos designs, atendendo a necessidades específicas de alguns projetos.
    • +
    +
  14. +
  15. +

    Integrar com redes sociais (agendamento de posts): Agrega conveniência ao permitir a publicação direta, mas não é essencial para o funcionamento básico.

    +
      +
    • Impacto: Permite a publicação direta dos designs nas redes sociais, economizando tempo e simplificando o processo de marketing.
    • +
    +
  16. +
  17. +

    Ferramentas básicas de edição de imagem (cortar, redimensionar, girar): Oferece controle básico sobre elementos visuais, essencial em qualquer editor de design.

    +
      +
    • Impacto: Dá controle básico sobre a modificação de imagens, permitindo ajustes simples e rápidos.
    • +
    +
  18. +
  19. +

    Ajustar brilho, contraste e saturação de imagens: Necessário para ajustes básicos de qualidade visual, facilitando melhorias intuitivas nos designs.

    +
      +
    • Impacto: Melhora a qualidade visual dos designs com ajustes simples e intuitivos.
    • +
    +
  20. +
  21. +

    Ferramentas de edição de texto (formatação básica, escolha de fontes, cores): Essenciais para a criação de textos personalizados e visuais atrativos nos designs.

    +
      +
    • Impacto: Permite personalizar textos de forma eficaz, criando designs visualmente atraentes e com conteúdo bem formatado.
    • +
    +
  22. +
  23. +

    Adicionar ícones, ilustrações e formas geométricas aos designs: Enriquecem os designs e oferecem uma ampla gama de opções criativas.

    +
      +
    • Impacto: Enriquecem os designs com elementos visuais variados, proporcionando mais opções criativas.
    • +
    +
  24. +
  25. +

    Ferramentas avançadas de edição de imagem (filtros, efeitos, remover fundo): Adicionam valor e aprimoram os designs, mas podem ser implementadas após o lançamento inicial.

    +
      +
    • Impacto: Permite melhorias e personalizações mais sofisticadas nas imagens, aprimorando a qualidade dos designs.
    • +
    +
  26. +
  27. +

    Criar efeitos de texto (sombra, contorno): Melhora a aparência dos textos com opções de estilização avançadas, importantes para designs sofisticados.

    +
      +
    • Impacto: Melhora a estética dos textos com opções de estilização adicionais, tornando-os mais impactantes.
    • +
    +
  28. +
  29. +

    Camadas (organização básica, ordem e visibilidade): Facilita a manipulação e organização de elementos em projetos complexos.

    +
      +
    • Impacto: Facilita a organização de elementos em projetos complexos, permitindo uma manipulação mais precisa.
    • +
    +
  30. +
  31. +

    Camadas (opacidade, bloqueio): Recursos adicionais para controle avançado de camadas, úteis para designs precisos, mas não essenciais inicialmente.

    +
      +
    • Impacto: Oferece controle avançado sobre a visibilidade e edição de camadas, útil para designs mais detalhados.
    • +
    +
  32. +
  33. +

    Máscaras (linear, radial): Oferece controle criativo para efeitos visuais complexos, mas não é crítico para a funcionalidade básica.

    +
      +
    • Impacto: Proporciona controle criativo para aplicar efeitos visuais avançados, aumentando as possibilidades de design.
    • +
    +
  34. +
  35. +

    Compartilhamento de designs para visualização: Fundamental para colaboração e revisão, permitindo fácil compartilhamento de projetos.

    +
      +
    • Impacto: Facilita a revisão e o feedback dos designs, permitindo que outras pessoas vejam e comentem os projetos.
    • +
    +
  36. +
  37. +

    Compartilhamento de designs para edição com permissões básicas: Suporta a colaboração com controles de permissão, essencial para trabalhos em equipe.

    +
      +
    • Impacto: Permite a colaboração com outros usuários, ajustando permissões para editar ou visualizar, essencial para o trabalho em equipe.
    • +
    +
  38. +
  39. +

    Edição colaborativa em tempo real: Melhora a eficiência de equipes, sendo implementável após a funcionalidade básica de colaboração.

    +
      +
    • Impacto: Melhora a eficiência de equipes ao permitir edição simultânea, promovendo uma colaboração mais fluida.
    • +
    +
  40. +
  41. +

    Sistema de chat na edição colaborativa: Facilita comunicação durante a edição, mas não é crítico para o funcionamento colaborativo inicial.

    +
      +
    • Impacto: Facilita a comunicação durante o processo de edição colaborativa, embora não seja essencial inicialmente.
    • +
    +
  42. +
  43. +

    Comentários em elementos específicos: Adiciona valor à revisão colaborativa, permitindo feedback direto em elementos.

    +
      +
    • Impacto: Permite fornecer feedback direto e específico sobre partes dos designs, melhorando a revisão colaborativa.
    • +
    +
  44. +
  45. +

    Grades e guias: Essenciais para organização precisa dos designs, ajudando no alinhamento de elementos.

    +
      +
    • Impacto: Auxilia na organização e alinhamento preciso dos elementos, garantindo uma estrutura mais limpa e profissional.
    • +
    +
  46. +
  47. +

    Pré-visualização em tempo real: Permite visualização imediata das mudanças feitas, melhorando a precisão e experiência de edição.

    +
      +
    • Impacto: Oferece uma visualização imediata das alterações feitas, ajudando a ajustar e refinar os designs com mais precisão.
    • +
    +
  48. +
  49. +

    Paleta de cores: Ajuda a manter consistência visual e personalização, importante, mas não essencial para a funcionalidade básica.

    +
      +
    • Impacto: Ajuda a manter a consistência visual e personalização dos designs, melhorando a coesão estética.
    • +
    +
  50. +
  51. +

    Guia de estilo: Útil para consistência, especialmente em equipes, mas pode ser implementado depois.

    +
      +
    • Impacto: Auxilia na manutenção da consistência em projetos, especialmente em equipes, garantindo uma identidade visual uniforme.
    • +
    +
  52. +
  53. +

    Histórico de versões: Permite reverter mudanças e acompanhar o progresso, útil para projetos complexos, mas não essencial para lançamento inicial.

    +
      +
    • Impacto: Permite reverter alterações e acompanhar o progresso, útil para gerenciar mudanças e manter o controle dos projetos.
    • +
    +
  54. +
  55. +

    Atalhos de teclado: Melhora a eficiência para usuários avançados, mas não é crítico para uso básico.

    +
      +
    • Impacto: Melhora a eficiência para usuários avançados, tornando o processo de edição mais rápido e ágil.
    • +
    +
  56. +
  57. +

    Interface intuitiva e fácil de usar: Essencial para acessibilidade e satisfação, aumentando adesão e uso da plataforma.

    +
      +
    • Impacto: Facilita o uso da plataforma, tornando-a mais acessível e agradável, especialmente para novos usuários.
    • +
    +
  58. +
  59. +

    Arrastar e soltar: Torna a manipulação de elementos mais intuitiva, essencial para boa experiência do usuário.

    +
      +
    • Impacto: Torna a manipulação de elementos mais intuitiva, simplificando a edição e a organização dos designs.
    • +
    +
  60. +
  61. +

    Design responsivo: Garante bom funcionamento em diferentes dispositivos, importante para acessibilidade, mas pode ser melhorado gradualmente.

    +
      +
    • Impacto: Garante que os designs funcionem bem em diferentes dispositivos, melhorando a acessibilidade e a experiência do usuário.
    • +
    +
  62. +
  63. +

    Integração com outras ferramentas (redes sociais, armazenamento em nuvem): Facilita fluxo de trabalho, mas é um recurso adicional para versões futuras.

    +
      +
    • Impacto: Facilita o fluxo de trabalho e o gerenciamento de arquivos, embora seja um recurso adicional para versões futuras.
    • +
    +
  64. +
  65. +

    Performance rápida e eficiente: Essencial para manter a usabilidade e satisfação do usuário, evitando frustrações.

    +
      +
    • Impacto: Assegura uma experiência de uso fluida e sem frustrações, mantendo a satisfação com a plataforma.
    • +
    +
  66. +
  67. +

    Confiabilidade: Necessária para a confiança dos usuários na plataforma, essencial para a credibilidade.

    +
      +
    • Impacto: Garante que a plataforma funcione de forma consistente, fortalecendo a confiança e a credibilidade entre os usuários.
    • +
    +
  68. +
  69. +

    Segurança dos dados do usuário: Crítica para proteção de informações pessoais, essencial para conformidade e confiança.

    +
      +
    • Impacto: Protege informações pessoais e dados sensíveis, essencial para a confiança e conformidade com regulamentações.
    • +
    +
  70. +
  71. +

    Acessibilidade: Importante para inclusão, melhorando o uso para pessoas com necessidades especiais, mas pode ser ajustada com o tempo.

    +
      +
    • Impacto: Melhora a inclusão de pessoas com necessidades especiais, tornando a plataforma mais acessível a um público mais amplo.
    • +
    +
  72. +
  73. +

    Escalabilidade: Permite crescimento sem perda de performance, importante para o futuro, mas não crítico inicialmente.

    +
      +
    • Impacto: Permite que a plataforma cresça e se adapte à medida que mais usuários e recursos são adicionados, garantindo uma boa experiência a longo prazo.
    • +
    +
  74. +
  75. +

    Internacionalização: Facilita o uso global da plataforma, útil para expansão, mas não é necessário para o lançamento inicial.

    +
      +
    • Impacto: Facilita o uso da plataforma em diferentes regiões e idiomas, permitindo a expansão global e melhor atendimento a um público diversificado.
    • +
    +
  76. +
+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/analise/correcoes/nfr-framework_corrigido/index.html b/analise/correcoes/nfr-framework_corrigido/index.html new file mode 100644 index 0000000..be0ccf1 --- /dev/null +++ b/analise/correcoes/nfr-framework_corrigido/index.html @@ -0,0 +1,1813 @@ + + + + + + + + + + + + + + + + + + + NFR Framework - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Ir para o conteúdo + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+ +
+ + + +
+
+ + + + + + + +

NFR Framework

+

Histórico de Versões

+ + + + + + + + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
17/08/2024Desenvolvimento inicial dos NFR Frameworks.Caio Alexandre0.0
05/09/2024NFRs refeitos em nova e melhor versão.Gabriel Moura1.0
+

Origem

+

O desenvolvimento deste NFR Framework foi dado a partir da +Reunião 5.

+

Metodologia

+

O desenvolvimento do NFR Framework foi feito primeiramente com a identificação +dos requisitos não funcionais do sistema. Em seguida, foi feita a modelagem +primeiramente pelo Caio, que posteriormente foi revisada e melhorada pelo +Rodrigo (houve um swap de tarefas).

+

Introdução

+

O NFR é um framework orientado a metas, que busca representar requisitos não +funcionais de um sistema de software. Desse modelo é abstraído um diagrama +formado por softgoals (requisitos de qualidade), operacionalização, +argumentação, impactos e legenda.

+

Artefatos

+

Geral (NFRF1)

+

Versão 0.0

+

NFR Framework - Geral

+

Versão 1.0

+

NFR Framework - Geral

+

Edição de Imagens (NFRF2)

+

Versão 0.0

+

NFR Framework - Edição de Imagens

+

Versão 1.0

+

NFR Framework - Geral

+

Apresentação de Slides (NFRF3)

+

Versão 0.0

+

NFR Framework - Edição de Imagens

+

Versão 1.0

+

NFR Framework - Geral

+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/analise/istar/index.html b/analise/istar/index.html new file mode 100644 index 0000000..1783987 --- /dev/null +++ b/analise/istar/index.html @@ -0,0 +1,2000 @@ + + + + + + + + + + + + + + + + + + + + + + + Inspeção do iStar - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Ir para o conteúdo + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Inspeção do iStar

+

Histórico de Versões

+ + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
04/09/2024Inspeção inicial do iStar.Caio Alexandre0.0
+

Objetivo

+

O principal objetivo e verificar a qualidade dos artefatos produzidos pelo grupo +e priorizar quais pontos devem ser refatorados.

+

Metodologia

+

A inspeção é um modelo eficaz que verifica os artefatos e ao final diz se estão +de acordo com a notação esperada. Foi estabelicido um checklist com os critérios +necessários para definir a qualidade do modelo iStar. Com base nos resultados, a +priorização foi dividida em qualidade alta, média e baixa, onde a de baixa +qualidade precisa ser refatorada primeiro.

+

Artefatos

+

Strategic Dependency Model

+
    +
  • Todas as dependências estão direcionadas corretamente?
  • +
  • Os softgoals representam requisitos não-funcionais?
  • +
  • Os atores estão representados com a abstração correta?
    +

    Obs.: O ator "Canva" poderia ter sido registrado como um agente.

    +
    +
  • +
  • Os atores descritos são realmente os necessários e suficientes para o + modelo proposto?
  • +
  • As metas são objetivos que se deseja alcançar?
  • +
  • As metas estão descritas em voz passiva?
  • +
  • Todos os recursos são substantivos?
  • +
+

Strategic Rationale Model

+

SR Usuário

+
    +
  • A boundary representa a fronteira de um ator, limitando o escopo de sua + atuação?
  • +
  • Todos os elementos presentes dentro da fronteira são elementos + relacionados ao ator que ela pertence?
  • +
  • As ligações com elementos de fora da fronteira são feitas através de + dependências?
  • +
  • As ligações and e or estão corretas?
  • +
  • Os impactos estão representados com sentido e intensidade corretas?
  • +
  • Existe propagação de impacto entre diferentes ramos? (não apenas entre + pais e filhos)
  • +
  • Todos os recursos são substantivos?
  • +
  • Todas as tarefas são ações e estão representadas com verbos?
  • +
  • Os softgoals representam requisitos não-funcionais?
  • +
  • As metas são objetivos que se deseja alcançar?
  • +
  • As metas estão descritas em voz passiva?
  • +
+

SR Canva

+
    +
  • A boundary representa a fronteira de um ator, limitando o escopo de sua + atuação?
  • +
  • Todos os elementos presentes dentro da fronteira são elementos + relacionados ao ator que ela pertence?
  • +
  • As ligações com elementos de fora da fronteira são feitas através de + dependências?
  • +
  • As ligações and e or estão corretas?
  • +
  • Os impactos estão representados com sentido e intensidade corretas?
  • +
  • Existe propagação de impacto entre diferentes ramos? (não apenas entre + pais e filhos)
  • +
  • Todos os recursos são substantivos?
  • +
  • Todas as tarefas são ações e estão representadas com verbos?
  • +
  • Os softgoals representam requisitos não-funcionais?
  • +
  • As metas são objetivos que se deseja alcançar?
  • +
  • As metas estão descritas em voz passiva?
  • +
+

SR Pro

+
    +
  • A boundary representa a fronteira de um ator, limitando o escopo de sua + atuação?
  • +
  • Todos os elementos presentes dentro da fronteira são elementos + relacionados ao ator que ela pertence?
  • +
  • As ligações com elementos de fora da fronteira são feitas através de + dependências?
  • +
  • As ligações and e or estão corretas?
  • +
  • Os impactos estão representados com sentido e intensidade corretas?
  • +
  • Existe propagação de impacto entre diferentes ramos? (não apenas entre + pais e filhos)
  • +
  • Todos os recursos são substantivos?
  • +
  • Todas as tarefas são ações e estão representadas com verbos?
  • +
  • Os softgoals representam requisitos não-funcionais?
  • +
  • As metas são objetivos que se deseja alcançar?
  • +
  • As metas estão descritas em voz passiva?
  • +
+

Resultado

+

Qualidade alta.

+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/analise/verf_argumentacao/index.html b/analise/verf_argumentacao/index.html new file mode 100644 index 0000000..a0544ff --- /dev/null +++ b/analise/verf_argumentacao/index.html @@ -0,0 +1,1854 @@ + + + + + + + + + + + + + + + + + + + + + + + Validação da Argumentação - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Ir para o conteúdo + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Verificação - Inspeção da Argumentação

+ + + + + + + + + + + + + + + + + +
DataVersãoDescriçãoAutor
03/09/20240.0Criando a documentação de Inspeção da ArgumentaçãoLuiza Maluf
+

Introdução

+

O objetivo dessa documentação é fazer a verificação da priorização utilizando a técnica de inspeção.

+

Objetivo

+

O principal objetivo e verificar a qualidade dos artefatos produzios pelo grupo e priorizar quais pontos devem ser refatorados.

+

Metodologia

+

A inspeção é um modelo eficaz que verifica os artefatos e ao final diz se estão de acordo com a notação esperada.

+

Foi elaborada um checklist baseado na metodologia de construção do MoSCoW, em que as perguntas são respondidas com "[X]" ou "[ ]", onde o "[x]" representa um impacto positivo e o "[ ]" resulta em um impacto negativo.

+

Com base nos resultados, a priorização foi dividida em qualidade alta, média e baixa, onde a de baixa qualidade precisa ser refatorada primeiro.

+

Checklist

+

Primeira análise da Argumentação (versão 1.0)

+
    +
  • Possui legendas explicativas para fácil entendimento.
  • +
  • Alcançou uma conclusão consistente e racional.
  • +
  • É possível rastrear a origem dos argumentos.
  • +
  • Respeita a notação de argumento.
  • +
  • Inferências são feitas corretamente.
  • +
  • Conflitos entre pontos de vistas opostos estão bem representados.
  • +
+

Resultado

+

Qualidade alta.

+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/analise/verf_backlog/index.html b/analise/verf_backlog/index.html new file mode 100644 index 0000000..567a3f7 --- /dev/null +++ b/analise/verf_backlog/index.html @@ -0,0 +1,2611 @@ + + + + + + + + + + + + + + + + + + + + + + + Validação do Backlog do Produto e Histórias de Usuários - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Ir para o conteúdo + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Verificação - Inspeção do Backlog do Produto e Histórias de Usuários

+ + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
04/09/2024Criando a documentação de Inspeção do Backlog do Produto e Histórias de UsuáriosRodrigo Mattos0.1
+

Introdução

+

O objetivo dessa documentação é fazer a verificação do Backlog do Produto utilizando a técnica de inspeção.

+

Objetivo

+

O principal objetivo e verificar a qualidade dos artefatos produzidos pelo grupo e priorizar quais pontos devem ser refatorados.

+

Metodologia

+

O modelo de verificação escolhido foi o de inspeção, é um modelo eficaz +que verifica se os artefatos estão de acordo com a notação esperada.

+

Foram elaboradas 12 perguntas com o objetivo de verificar a qualidade +de cada uma das histórias de usuário,as respostas das perguntas devem +ser "sim" ou "não", onde "sim" resulta em um impacto positivo e o "não" +resulta em um impacto negativo.

+

Com base na tabela e no número de critérios não cumpridos, as histórias +de usuário foram divididas em qualidades alta, média e baixa.

+

Perguntas

+
    +
  • 1- A história está em um único padrão de escrita?
  • +
  • 2- A história apresenta épico?
  • +
  • 3- A história apresenta features?
  • +
  • 4- A história possui um ID de especificação enumerada em ordem crescente?
  • +
  • 5- A história é pontuada de acordo com a sequência de Fibonacci?
  • +
  • 6- A história é priorizada pelo modelo MoSCoW?
  • +
  • 7- A descrição do épico da história é coerente?
  • +
  • 8- A Sprint dessa história está pontuado?
  • +
  • 9- A história especifica ao menos 1 critério de aceitação?
  • +
  • 10- A história identifica o usuário principal?
  • +
  • 11- A história apresenta qual o requisito relacionado?
  • +
  • 12- "O que” e o “por que” estão definidos na descrição da história?
  • +
+

Tabela de Avaliação

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Backlog do Produto123456789101112
US001
US002
US003
US004
US005
US006
US007
US008
US009
US010
US011
US012
US013
US014
US015
US016
US017
US018
US019
US020
US021
US022
US023
US024
US025
US026
US027
US028
US029
US030
US031
US032
US033
US034
US035
US036
US037
US038
+

Critérios de qualidade

+
    +
  • Reprovação em APENAS 1 critério - Qualidade Alta
  • +
  • Reprovação entre 2 a 5 critérios - Qualidade Média
  • +
  • Reprovação em mais de 5 critérios - Qualidade Baixa
  • +
+

Análise do Modelo

+

Qualidade Baixa

+

-Não houve mais de 5 reprovações em nenhuma das US.

+

Qualidade Média

+

-Não houve entre 2 e 5 reprovações em nenhuma das US.

+

Qualidade Alta

+

-Houve no máximo 1 reprovação em todas as US.

+

Conclusão

+

Os resultados obtidos com a inspeção foram de que todas as US apresentaram +qualidade alta. A única reprovação envolvendo todas as US é que não foram +feitas features para as histórias, mas todas apresentaram uma qualidade alta de aprovação.

+

Backlog do Produto (versão 1.0)

+

Backlog do Produto (corrigido)

+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/analise/verf_casos_de_uso/index.html b/analise/verf_casos_de_uso/index.html new file mode 100644 index 0000000..f8192e7 --- /dev/null +++ b/analise/verf_casos_de_uso/index.html @@ -0,0 +1,1853 @@ + + + + + + + + + + + + + + + + + + + + + + + Validação da Especificação de Casos de Uso - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Ir para o conteúdo + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+ +
+ + + +
+
+ + + + + + + +

Verificação - Inspeção da Especificação dos Casos de Uso

+ + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
04/09/2024Criando a documentação de Inspeção da Especificação dos Casos de UsoRodrigo Mattos0.1
+

Introdução

+

O objetivo dessa documentação é fazer a verificação da Especificação dos Casos de Uso utilizando a técnica de inspeção.

+

Objetivo

+

O principal objetivo e verificar a qualidade dos artefatos produzidos pelo grupo e priorizar quais pontos devem ser refatorados.

+

Metodologia

+

A inspeção é um modelo eficaz que verifica os artefatos e ao final diz se estão de acordo com a notação esperada.

+

Foi elaborada um checklist baseado na metodologia de construção do MoSCoW, em que as perguntas são respondidas com "[X]" ou "[ ]", onde o "[x]" representa um impacto positivo e o "[ ]" resulta em um impacto negativo.

+

Com base nos resultados, a priorização foi dividida em qualidade alta, média e baixa, onde a de baixa qualidade precisa ser refatorada primeiro.

+

Checklist

+

Primeira análise da Especificação dos Casos de Uso (versão 1.0)

+
    +
  • As especificações estão ordenadas numericamente de forma crescente.
  • +
  • Os atores envolvidos em cada especificação estão indentificados.
  • +
  • Cada especificação possui uma descrição intuitiva e clara.
  • +
  • Os diagramas estão condizentes com as especificações.
  • +
  • Os fluxos básicos, alternativos e de exceção estão indentificados.
  • +
+

Resultado

+

Qualidade alta.

+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/analise/verf_cenario/index.html b/analise/verf_cenario/index.html new file mode 100644 index 0000000..64301f2 --- /dev/null +++ b/analise/verf_cenario/index.html @@ -0,0 +1,1886 @@ + + + + + + + + + + + + + + + + + + + + + + + Validação dos Cenários - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Ir para o conteúdo + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Verificação - Inspeção dos Cenários

+ + + + + + + + + + + + + + + + + +
DataVersãoDescriçãoAutor
04/09/20240.0Criação documento Verificação de CenárioHenrique Quenino
+

Introdução

+

O presente documento tem por finalidade apresentar e estabelecer uma visão ampla sobre os cenários existentes no Canva. A verificação dos cenários é uma atividade essencial para garantir a qualidade da especificação de requisitos e a correta compreensão das funcionalidades da plataforma.

+

Objetivo

+

Este documento objetiva a verificação dos cenários, visando garantir que eles descrevam de forma clara, completa e consistente as interações dos usuários com a plataforma educacional cumprindo os requisitos estabelecidos.

+
    +
  • Completude: Verificar se os cenários abordam as principais funcionalidades da plataforma e diferentes perspectivas.
  • +
  • Clareza: Assegurar que os cenários sejam compreensíveis para todos os envolvidos no desenvolvimento.
  • +
  • Consistência: Garantir que os cenários estejam alinhados com os requisitos elicitados e com outros artefatos de análise.
  • +
  • Rastreabilidade: Verificar se os cenários podem ser rastreados aos requisitos que os originaram.
  • +
+

Metodologia

+

A verificação dos cenários foi feita por checklist, que avalia a presença de elementos essenciais para a qualidade do artefato. O checklist foi elaborado com base nas características dos cenários e nos critérios de qualidade estabelecidos.

+

Checklist

+

Primeira análise dos Cenários

+
    +
  • Os cenários abordam as principais funcionalidades da plataforma.
  • +
  • Os cenários são compreensíveis para todos os envolvidos no desenvolvimento.
  • +
  • Os cenários estão alinhados com os requisitos elicitados.
  • +
  • Todos os cenários possuem título.
  • +
  • Todos os cenários possuem Objetivo.
  • +
  • Todos estão inseridos em um contexto.
  • +
  • Todos os atores estão devidamente definidos.
  • +
  • Os cenários se enquadram em todos os fluxos para a execução de uma tarefa.
  • +
  • Os episódios estão bem definidos.
  • +
  • Existem padrões entre as descrições de cada subtópicos dos cenários.
  • +
  • Todos os cenários estão linkados com os léxicos.
  • +
  • Todos os atores estão linkados com os léxicos.
  • +
  • Os links para os léxicos estão funcionando.
  • +
  • Existem cenários para todos os requisitos.
  • +
+

Correção

+

Cenários Corrigidos.

+

Resultado

+

Qualidade média.

+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/analise/verf_esp_suplementar/index.html b/analise/verf_esp_suplementar/index.html new file mode 100644 index 0000000..36ed887 --- /dev/null +++ b/analise/verf_esp_suplementar/index.html @@ -0,0 +1,1873 @@ + + + + + + + + + + + + + + + + + + + + + + + Validação da Especificação Suplementar - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Ir para o conteúdo + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+ +
+ + + +
+
+ + + + + + + +

Verificação - Inspeção da Especificação Suplementar

+ + + + + + + + + + + + + + + + + +
DataVersãoDescriçãoAutor
03/09/20240.0Criando a documentação de Inspeção da especificação suplementarLuiza Maluf
+

Introdução

+

O objetivo dessa documentação é fazer a verificação da priorização utilizando a técnica de inspeção.

+

Objetivo

+

O principal objetivo e verificar a qualidade dos artefatos produzios pelo grupo e priorizar quais pontos devem ser refatorados.

+

Metodologia

+

A inspeção é um modelo eficaz que verifica os artefatos e ao final diz se estão de acordo com a notação esperada.

+

Foi elaborada um checklist baseado na metodologia de construção do MoSCoW, em que as perguntas são respondidas com "[X]" ou "[ ]", onde o "[x]" representa um impacto positivo e o "[ ]" resulta em um impacto negativo.

+

Com base nos resultados, a priorização foi dividida em qualidade alta, média e baixa, onde a de baixa qualidade precisa ser refatorada primeiro.

+

Checklist

+

Primeira análise da Especificação Suplementar (versão 1.0)

+
    +
  • Os requisitos não funcionais estão bem definidos.
  • +
  • Todos os requisitos não funcionais possuem suas necessidades definidas.
  • +
  • Todos os tópicos estão bem definidos e enumerados.
  • +
  • Existem requisitos relacionados à performance, segurança, usabilidade, e compatibilidade documentados.
  • +
  • Os requisitos suplementares estão corretamente rastreados para os requisitos funcionais.
  • +
+

Correção

+

Para visualizar a correção da Especificação Suplementar clique aqui

+

Resultado

+

Qualidade alta.

+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/analise/verf_lexico/index.html b/analise/verf_lexico/index.html new file mode 100644 index 0000000..b078247 --- /dev/null +++ b/analise/verf_lexico/index.html @@ -0,0 +1,1868 @@ + + + + + + + + + + + + + + + + + + + + + + + Validação dos Léxicos - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Ir para o conteúdo + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Verificação - Inspenção Léxica

+ + + + + + + + + + + + + + + + + +
DataVersãoDescriçãoAutor
04/09/20240.0Criação documento Verificação LéxicaHenrique Quenino
+

Introdução

+

Verificação e validação do Glossário de Termos (Léxico), garantindo clareza, completude, correção e consistência na terminologia utilizada.

+

Objetivo

+

O objetivo é assegurar que os termos técnicos e específicos do domínio sejam compreendidos por todos os stakeholders, evitando ambiguidades e problemas.

+
    +
  • Clareza: As definições dos termos são claras, concisas e compreensíveis para o público-alvo?
  • +
  • Completude: O glossário inclui todos os termos técnicos e específicos do domínio relevantes para o projeto?
  • +
  • Correção: As definições dos termos estão corretas e precisas?
  • +
  • Consistência: A terminologia utilizada no glossário é consistente com a linguagem utilizada em outros artefatos de requisitos?
  • +
+

Metodologia

+

A verificação e validação foram realizadas através de:

+
    +
  • Análise de cada termo e definição: Verificando a clareza, completude e correção das informações.
  • +
  • Comparação com outros artefatos: Garantindo a consistência da terminologia utilizada.
  • +
+

Análise do Glossário

+

O glossário apresentado demonstra um bom ponto de partida para a definição da linguagem do projeto. A seguir, são apresentadas algumas observações e melhorias realizadas na Correção:

+

Termos e Definições:

+
    +
  • Completude:
      +
    • Inclui termos relacionados às funcionalidades da plataforma, como: "feedback", "chat", "conteúdo", "Designer", "Equipe".
    • +
    • Adiciona termos específicos do Canva que serão relevantes para os usuários da plataforma, como: "template", "computador", "identidade visual", "smartphones".
    • +
    +
  • +
  • Clareza:
      +
    • "Design": A definição anterior era muito genérica. Especifica-se na nova que se trata de um projeto visual criado no Canva, utilizado para diversos fins dentro da plataforma educacional.
    • +
    • "Conteúdo": Detalha os tipos de conteúdo que podem ser utilizados na plataforma (vídeos, apresentações, infográficos, documentos, links externos, etc.).
    • +
    • "Colaboração": Explicita como a colaboração ocorre na plataforma (edição simultânea de designs no Canva, fóruns de discussão, etc.).
    • +
    +
  • +
  • Consistência:
      +
    • Verifica a consistência da linguagem utilizada no glossário com a linguagem utilizada em outros artefatos, como requisitos, cenários de uso e protótipos.
    • +
    +
  • +
+

Formato e Organização:

+
    +
  • Formato: O formato atual em lista é adequado.
  • +
  • Ordem Alfabética: Organizar os termos em ordem alfabética facilita a busca e a consulta.
  • +
  • Links: Os termos estão linkados corretamente com os artefatos que os referenciam.
  • +
+

Correção

+

Léxico corrigido disponível aqui.

+

Resultado

+

O glossário apresenta uma qualidade média, com pontos fortes na clareza e organização dos termos, mas com oportunidades de melhoria na completude e consistência da terminologia utilizada.

+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/analise/verf_nfr-framework/index.html b/analise/verf_nfr-framework/index.html new file mode 100644 index 0000000..ee831da --- /dev/null +++ b/analise/verf_nfr-framework/index.html @@ -0,0 +1,1878 @@ + + + + + + + + + + + + + + + + + + + + + + + Validação do NFR Framework - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Ir para o conteúdo + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Validação do NFR Framework

+ +

Verificação - Inspeção do NFR

+ + + + + + + + + + + + + + + + + +
DataVersãoDescriçãoAutor
04/09/20240.0Criando a documentação de Inspeção do NFRGabriel Moura
+

Introdução

+

O objetivo dessa documentação é fazer a verificação do diagrama NFR utilizando a técnica de inspeção.

+

Objetivo

+

O principal objetivo é verificar a qualidade do artefato produzido pelo grupo e identificar se há necessidade de refatoração.

+

Metodologia

+

A inspeção é um método de verificação que analisa os artefatos para determinar se estão em conformidade com os padrões e expectativas.

+

Foi elaborado um checklist com base nos princípios de modelagem NFR, com perguntas a serem respondidas com "[X]" para "Sim" (impacto positivo) ou "[]" para "Não" (impacto negativo).

+

A qualidade do NFR será classificada como:

+
    +
  • Alta: Se todas as perguntas do checklist forem respondidas com "[X]".
  • +
  • Média: Se a maioria das perguntas forem respondidas com "[X]", mas houver alguns
    "[ ]".
  • +
  • Baixa: Se houver um número significativo de "[ ]" no checklist, indicando a necessidade de refatoração.
  • +
+

Checklist

+

Primeira análise do NFR - Geral (versão 0.0)

+
    +
  • O diagrama possui um objetivo claro e definido?
  • +
  • Os softgoals são representados por nuvens?
  • +
  • Os softgoals representam requisitos de qualidade?
  • +
  • As operacionalizações são representadas por nuvens com bordas grossas?
  • +
  • As operacionalizações descrevem como atingir os softgoals?
  • +
  • As dependências entre softgoals e operacionalizações são representadas por setas?
  • +
  • As setas indicam o tipo de contribuição (positiva ou negativa)?
  • +
  • O diagrama utiliza uma legenda para explicar os símbolos e tipos de contribuição?
  • +
  • O diagrama está organizado e fácil de entender?
  • +
  • As relações de decomposição e dependência entre os softgoals estão claras e completas?
  • +
  • As operacionalizações propostas são viáveis e adequadas para o contexto do Canva?
  • +
+

Resultado

+

Qualidade: Média

+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/analise/verf_priorizacao/index.html b/analise/verf_priorizacao/index.html new file mode 100644 index 0000000..365398c --- /dev/null +++ b/analise/verf_priorizacao/index.html @@ -0,0 +1,1874 @@ + + + + + + + + + + + + + + + + + + + + + + + Validação da Priorização - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Ir para o conteúdo + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Verificação - Inspeção do MoSCoW

+ + + + + + + + + + + + + + + + + +
DataVersãoDescriçãoAutor
01/09/20240.0Criando a documentação de Inspeção do MoSCoWLuiza Maluf
+

Introdução

+

O objetivo dessa documentação é fazer a verificação da priorização utilizando a técnica de inspeção.

+

Objetivo

+

O principal objetivo e verificar a qualidade dos artefatos produzios pelo grupo e priorizar quais pontos devem ser refatorados.

+

Metodologia

+

A inspeção é um modelo eficaz que verifica os artefatos e ao final diz se estão de acordo com a notação esperada.

+

Foi elaborada um checklist baseado na metodologia de construção do MoSCoW, em que as perguntas são respondidas com "[X]" ou "[ ]", onde o "[x]" representa um impacto positivo e o "[ ]" resulta em um impacto negativo.

+

Com base nos resultados, a priorização foi dividida em qualidade alta, média e baixa, onde a de baixa qualidade precisa ser refatorada primeiro.

+

Checklist

+

Primeira análise do MoSCoW (versão 1.0)

+
    +
  • Todos os requisitos estão corretamente classificados como "Must", "Should", "Could", ou "Would".
  • +
  • Possui código de identificação de requisito.
  • +
  • Todo requisito utiliza o mesmo padrão de priorização.
  • +
  • Existe justificativa para a priorização de cada requisito.
  • +
  • O impacto do requisito foi levado em conta na priorização.
  • +
  • Os custos de implementação estão estimados.
  • +
+

Correção

+

Para visualizar a correção do MoSCoW clique aqui

+

Resultado

+

Qualidade média.

+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/analise/verf_rich_picture/index.html b/analise/verf_rich_picture/index.html new file mode 100644 index 0000000..884db83 --- /dev/null +++ b/analise/verf_rich_picture/index.html @@ -0,0 +1,1854 @@ + + + + + + + + + + + + + + + + + + + + + + + Validação do Rich Picture - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Ir para o conteúdo + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Verificação - Inspeção do Rich Picture

+ + + + + + + + + + + + + + + + + +
DataVersãoDescriçãoAutor
04/09/20240.0Criação documento Verificação de Rich PictureHenrique Quenino
+

Introdução

+

O presente documento objetiva a verificação da qualidade do artefato Rich Picture. O Rich Picture é uma ferramenta de modelagem que tem como objetivo representar visualmente um problema complexo, de forma a facilitar a compreensão do contexto e identificação de possíveis soluções.

+

Objetivo

+

O objetivo da verificação é garantir que o Rich Picture atenda aos critérios de qualidade estabelecidos, de forma a garantir a eficácia da ferramenta na identificação de problemas e soluções.

+

Metodologia

+

A verificação do Rich Picture foi realizada por meio de um checklist, que avalia a presença de elementos essenciais para a qualidade do artefato. O checklist foi elaborado com base nas características do Rich Picture e nos critérios de qualidade estabelecidos.

+

Checklist

+

Primeira análise do Rich Picture (versão 1.0)

+
    +
  • O Rich Picture apresenta uma estrutura clara e organizada.
  • +
  • Os elementos do Rich Picture estão dispostos de forma a facilitar a compreensão do contexto.
  • +
  • As relações entre os elementos estão representadas de forma clara e objetiva.
  • +
  • O Rich Picture tem conexão com o a argumentação do projeto.
  • +
  • Todos os atores do sistema estão representados no Rich Picture.
  • +
  • O Rich Picture geral está representando bem o sistema.
  • +
  • Estão visíveis os conflitos e as políticas, envolta no contexto do sistema?
  • +
  • Os RichPictures consideram os pontos de vistas de todos os stakeholders?
  • +
+

Resultado

+

Qualidade alta.

+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/assets/images/favicon.png b/assets/images/favicon.png new file mode 100644 index 0000000..1cf13b9 Binary files /dev/null and b/assets/images/favicon.png differ diff --git a/assets/javascripts/bundle.56dfad97.min.js b/assets/javascripts/bundle.56dfad97.min.js new file mode 100644 index 0000000..1df62cd --- /dev/null +++ b/assets/javascripts/bundle.56dfad97.min.js @@ -0,0 +1,16 @@ +"use strict";(()=>{var Fi=Object.create;var gr=Object.defineProperty;var Wi=Object.getOwnPropertyDescriptor;var Ui=Object.getOwnPropertyNames,Vt=Object.getOwnPropertySymbols,Di=Object.getPrototypeOf,yr=Object.prototype.hasOwnProperty,io=Object.prototype.propertyIsEnumerable;var no=(e,t,r)=>t in e?gr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,$=(e,t)=>{for(var r in t||(t={}))yr.call(t,r)&&no(e,r,t[r]);if(Vt)for(var r of Vt(t))io.call(t,r)&&no(e,r,t[r]);return e};var ao=(e,t)=>{var r={};for(var o in e)yr.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(e!=null&&Vt)for(var o of Vt(e))t.indexOf(o)<0&&io.call(e,o)&&(r[o]=e[o]);return r};var xr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Vi=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Ui(t))!yr.call(e,n)&&n!==r&&gr(e,n,{get:()=>t[n],enumerable:!(o=Wi(t,n))||o.enumerable});return e};var Lt=(e,t,r)=>(r=e!=null?Fi(Di(e)):{},Vi(t||!e||!e.__esModule?gr(r,"default",{value:e,enumerable:!0}):r,e));var so=(e,t,r)=>new Promise((o,n)=>{var i=p=>{try{s(r.next(p))}catch(c){n(c)}},a=p=>{try{s(r.throw(p))}catch(c){n(c)}},s=p=>p.done?o(p.value):Promise.resolve(p.value).then(i,a);s((r=r.apply(e,t)).next())});var po=xr((Er,co)=>{(function(e,t){typeof Er=="object"&&typeof co!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(Er,function(){"use strict";function e(r){var o=!0,n=!1,i=null,a={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function s(k){return!!(k&&k!==document&&k.nodeName!=="HTML"&&k.nodeName!=="BODY"&&"classList"in k&&"contains"in k.classList)}function p(k){var ft=k.type,qe=k.tagName;return!!(qe==="INPUT"&&a[ft]&&!k.readOnly||qe==="TEXTAREA"&&!k.readOnly||k.isContentEditable)}function c(k){k.classList.contains("focus-visible")||(k.classList.add("focus-visible"),k.setAttribute("data-focus-visible-added",""))}function l(k){k.hasAttribute("data-focus-visible-added")&&(k.classList.remove("focus-visible"),k.removeAttribute("data-focus-visible-added"))}function f(k){k.metaKey||k.altKey||k.ctrlKey||(s(r.activeElement)&&c(r.activeElement),o=!0)}function u(k){o=!1}function d(k){s(k.target)&&(o||p(k.target))&&c(k.target)}function y(k){s(k.target)&&(k.target.classList.contains("focus-visible")||k.target.hasAttribute("data-focus-visible-added"))&&(n=!0,window.clearTimeout(i),i=window.setTimeout(function(){n=!1},100),l(k.target))}function M(k){document.visibilityState==="hidden"&&(n&&(o=!0),X())}function X(){document.addEventListener("mousemove",J),document.addEventListener("mousedown",J),document.addEventListener("mouseup",J),document.addEventListener("pointermove",J),document.addEventListener("pointerdown",J),document.addEventListener("pointerup",J),document.addEventListener("touchmove",J),document.addEventListener("touchstart",J),document.addEventListener("touchend",J)}function te(){document.removeEventListener("mousemove",J),document.removeEventListener("mousedown",J),document.removeEventListener("mouseup",J),document.removeEventListener("pointermove",J),document.removeEventListener("pointerdown",J),document.removeEventListener("pointerup",J),document.removeEventListener("touchmove",J),document.removeEventListener("touchstart",J),document.removeEventListener("touchend",J)}function J(k){k.target.nodeName&&k.target.nodeName.toLowerCase()==="html"||(o=!1,te())}document.addEventListener("keydown",f,!0),document.addEventListener("mousedown",u,!0),document.addEventListener("pointerdown",u,!0),document.addEventListener("touchstart",u,!0),document.addEventListener("visibilitychange",M,!0),X(),r.addEventListener("focus",d,!0),r.addEventListener("blur",y,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)})});var qr=xr((ly,Sn)=>{"use strict";/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var ka=/["'&<>]/;Sn.exports=Ha;function Ha(e){var t=""+e,r=ka.exec(t);if(!r)return t;var o,n="",i=0,a=0;for(i=r.index;i{/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */(function(t,r){typeof It=="object"&&typeof Yr=="object"?Yr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof It=="object"?It.ClipboardJS=r():t.ClipboardJS=r()})(It,function(){return function(){var e={686:function(o,n,i){"use strict";i.d(n,{default:function(){return ji}});var a=i(279),s=i.n(a),p=i(370),c=i.n(p),l=i(817),f=i.n(l);function u(V){try{return document.execCommand(V)}catch(A){return!1}}var d=function(A){var L=f()(A);return u("cut"),L},y=d;function M(V){var A=document.documentElement.getAttribute("dir")==="rtl",L=document.createElement("textarea");L.style.fontSize="12pt",L.style.border="0",L.style.padding="0",L.style.margin="0",L.style.position="absolute",L.style[A?"right":"left"]="-9999px";var F=window.pageYOffset||document.documentElement.scrollTop;return L.style.top="".concat(F,"px"),L.setAttribute("readonly",""),L.value=V,L}var X=function(A,L){var F=M(A);L.container.appendChild(F);var D=f()(F);return u("copy"),F.remove(),D},te=function(A){var L=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},F="";return typeof A=="string"?F=X(A,L):A instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(A==null?void 0:A.type)?F=X(A.value,L):(F=f()(A),u("copy")),F},J=te;function k(V){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?k=function(L){return typeof L}:k=function(L){return L&&typeof Symbol=="function"&&L.constructor===Symbol&&L!==Symbol.prototype?"symbol":typeof L},k(V)}var ft=function(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},L=A.action,F=L===void 0?"copy":L,D=A.container,Y=A.target,$e=A.text;if(F!=="copy"&&F!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(Y!==void 0)if(Y&&k(Y)==="object"&&Y.nodeType===1){if(F==="copy"&&Y.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(F==="cut"&&(Y.hasAttribute("readonly")||Y.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if($e)return J($e,{container:D});if(Y)return F==="cut"?y(Y):J(Y,{container:D})},qe=ft;function Fe(V){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Fe=function(L){return typeof L}:Fe=function(L){return L&&typeof Symbol=="function"&&L.constructor===Symbol&&L!==Symbol.prototype?"symbol":typeof L},Fe(V)}function Ai(V,A){if(!(V instanceof A))throw new TypeError("Cannot call a class as a function")}function oo(V,A){for(var L=0;L0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof D.action=="function"?D.action:this.defaultAction,this.target=typeof D.target=="function"?D.target:this.defaultTarget,this.text=typeof D.text=="function"?D.text:this.defaultText,this.container=Fe(D.container)==="object"?D.container:document.body}},{key:"listenClick",value:function(D){var Y=this;this.listener=c()(D,"click",function($e){return Y.onClick($e)})}},{key:"onClick",value:function(D){var Y=D.delegateTarget||D.currentTarget,$e=this.action(Y)||"copy",Dt=qe({action:$e,container:this.container,target:this.target(Y),text:this.text(Y)});this.emit(Dt?"success":"error",{action:$e,text:Dt,trigger:Y,clearSelection:function(){Y&&Y.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(D){return vr("action",D)}},{key:"defaultTarget",value:function(D){var Y=vr("target",D);if(Y)return document.querySelector(Y)}},{key:"defaultText",value:function(D){return vr("text",D)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(D){var Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return J(D,Y)}},{key:"cut",value:function(D){return y(D)}},{key:"isSupported",value:function(){var D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],Y=typeof D=="string"?[D]:D,$e=!!document.queryCommandSupported;return Y.forEach(function(Dt){$e=$e&&!!document.queryCommandSupported(Dt)}),$e}}]),L}(s()),ji=Ii},828:function(o){var n=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function a(s,p){for(;s&&s.nodeType!==n;){if(typeof s.matches=="function"&&s.matches(p))return s;s=s.parentNode}}o.exports=a},438:function(o,n,i){var a=i(828);function s(l,f,u,d,y){var M=c.apply(this,arguments);return l.addEventListener(u,M,y),{destroy:function(){l.removeEventListener(u,M,y)}}}function p(l,f,u,d,y){return typeof l.addEventListener=="function"?s.apply(null,arguments):typeof u=="function"?s.bind(null,document).apply(null,arguments):(typeof l=="string"&&(l=document.querySelectorAll(l)),Array.prototype.map.call(l,function(M){return s(M,f,u,d,y)}))}function c(l,f,u,d){return function(y){y.delegateTarget=a(y.target,f),y.delegateTarget&&d.call(l,y)}}o.exports=p},879:function(o,n){n.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},n.nodeList=function(i){var a=Object.prototype.toString.call(i);return i!==void 0&&(a==="[object NodeList]"||a==="[object HTMLCollection]")&&"length"in i&&(i.length===0||n.node(i[0]))},n.string=function(i){return typeof i=="string"||i instanceof String},n.fn=function(i){var a=Object.prototype.toString.call(i);return a==="[object Function]"}},370:function(o,n,i){var a=i(879),s=i(438);function p(u,d,y){if(!u&&!d&&!y)throw new Error("Missing required arguments");if(!a.string(d))throw new TypeError("Second argument must be a String");if(!a.fn(y))throw new TypeError("Third argument must be a Function");if(a.node(u))return c(u,d,y);if(a.nodeList(u))return l(u,d,y);if(a.string(u))return f(u,d,y);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function c(u,d,y){return u.addEventListener(d,y),{destroy:function(){u.removeEventListener(d,y)}}}function l(u,d,y){return Array.prototype.forEach.call(u,function(M){M.addEventListener(d,y)}),{destroy:function(){Array.prototype.forEach.call(u,function(M){M.removeEventListener(d,y)})}}}function f(u,d,y){return s(document.body,u,d,y)}o.exports=p},817:function(o){function n(i){var a;if(i.nodeName==="SELECT")i.focus(),a=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var s=i.hasAttribute("readonly");s||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),s||i.removeAttribute("readonly"),a=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var p=window.getSelection(),c=document.createRange();c.selectNodeContents(i),p.removeAllRanges(),p.addRange(c),a=p.toString()}return a}o.exports=n},279:function(o){function n(){}n.prototype={on:function(i,a,s){var p=this.e||(this.e={});return(p[i]||(p[i]=[])).push({fn:a,ctx:s}),this},once:function(i,a,s){var p=this;function c(){p.off(i,c),a.apply(s,arguments)}return c._=a,this.on(i,c,s)},emit:function(i){var a=[].slice.call(arguments,1),s=((this.e||(this.e={}))[i]||[]).slice(),p=0,c=s.length;for(p;p0&&i[i.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!i||c[1]>i[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function N(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var o=r.call(e),n,i=[],a;try{for(;(t===void 0||t-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(s){a={error:s}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(a)throw a.error}}return i}function q(e,t,r){if(r||arguments.length===2)for(var o=0,n=t.length,i;o1||p(d,M)})},y&&(n[d]=y(n[d])))}function p(d,y){try{c(o[d](y))}catch(M){u(i[0][3],M)}}function c(d){d.value instanceof nt?Promise.resolve(d.value.v).then(l,f):u(i[0][2],d)}function l(d){p("next",d)}function f(d){p("throw",d)}function u(d,y){d(y),i.shift(),i.length&&p(i[0][0],i[0][1])}}function fo(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof he=="function"?he(e):e[Symbol.iterator](),r={},o("next"),o("throw"),o("return"),r[Symbol.asyncIterator]=function(){return this},r);function o(i){r[i]=e[i]&&function(a){return new Promise(function(s,p){a=e[i](a),n(s,p,a.done,a.value)})}}function n(i,a,s,p){Promise.resolve(p).then(function(c){i({value:c,done:s})},a)}}function H(e){return typeof e=="function"}function ut(e){var t=function(o){Error.call(o),o.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var zt=ut(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: +`+r.map(function(o,n){return n+1+") "+o.toString()}).join(` + `):"",this.name="UnsubscriptionError",this.errors=r}});function Qe(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var We=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,r,o,n,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var s=he(a),p=s.next();!p.done;p=s.next()){var c=p.value;c.remove(this)}}catch(M){t={error:M}}finally{try{p&&!p.done&&(r=s.return)&&r.call(s)}finally{if(t)throw t.error}}else a.remove(this);var l=this.initialTeardown;if(H(l))try{l()}catch(M){i=M instanceof zt?M.errors:[M]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var u=he(f),d=u.next();!d.done;d=u.next()){var y=d.value;try{uo(y)}catch(M){i=i!=null?i:[],M instanceof zt?i=q(q([],N(i)),N(M.errors)):i.push(M)}}}catch(M){o={error:M}}finally{try{d&&!d.done&&(n=u.return)&&n.call(u)}finally{if(o)throw o.error}}}if(i)throw new zt(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)uo(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}},e.prototype._hasParent=function(t){var r=this._parentage;return r===t||Array.isArray(r)&&r.includes(t)},e.prototype._addParent=function(t){var r=this._parentage;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t},e.prototype._removeParent=function(t){var r=this._parentage;r===t?this._parentage=null:Array.isArray(r)&&Qe(r,t)},e.prototype.remove=function(t){var r=this._finalizers;r&&Qe(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();var Tr=We.EMPTY;function qt(e){return e instanceof We||e&&"closed"in e&&H(e.remove)&&H(e.add)&&H(e.unsubscribe)}function uo(e){H(e)?e():e.unsubscribe()}var Pe={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var dt={setTimeout:function(e,t){for(var r=[],o=2;o0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var o=this,n=this,i=n.hasError,a=n.isStopped,s=n.observers;return i||a?Tr:(this.currentObservers=null,s.push(r),new We(function(){o.currentObservers=null,Qe(s,r)}))},t.prototype._checkFinalizedStatuses=function(r){var o=this,n=o.hasError,i=o.thrownError,a=o.isStopped;n?r.error(i):a&&r.complete()},t.prototype.asObservable=function(){var r=new j;return r.source=this,r},t.create=function(r,o){return new wo(r,o)},t}(j);var wo=function(e){oe(t,e);function t(r,o){var n=e.call(this)||this;return n.destination=r,n.source=o,n}return t.prototype.next=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.next)===null||n===void 0||n.call(o,r)},t.prototype.error=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.error)===null||n===void 0||n.call(o,r)},t.prototype.complete=function(){var r,o;(o=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||o===void 0||o.call(r)},t.prototype._subscribe=function(r){var o,n;return(n=(o=this.source)===null||o===void 0?void 0:o.subscribe(r))!==null&&n!==void 0?n:Tr},t}(g);var _r=function(e){oe(t,e);function t(r){var o=e.call(this)||this;return o._value=r,o}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(r){var o=e.prototype._subscribe.call(this,r);return!o.closed&&r.next(this._value),o},t.prototype.getValue=function(){var r=this,o=r.hasError,n=r.thrownError,i=r._value;if(o)throw n;return this._throwIfClosed(),i},t.prototype.next=function(r){e.prototype.next.call(this,this._value=r)},t}(g);var At={now:function(){return(At.delegate||Date).now()},delegate:void 0};var Ct=function(e){oe(t,e);function t(r,o,n){r===void 0&&(r=1/0),o===void 0&&(o=1/0),n===void 0&&(n=At);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=o,i._timestampProvider=n,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=o===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,o),i}return t.prototype.next=function(r){var o=this,n=o.isStopped,i=o._buffer,a=o._infiniteTimeWindow,s=o._timestampProvider,p=o._windowTime;n||(i.push(r),!a&&i.push(s.now()+p)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var o=this._innerSubscribe(r),n=this,i=n._infiniteTimeWindow,a=n._buffer,s=a.slice(),p=0;p0?e.prototype.schedule.call(this,r,o):(this.delay=o,this.state=r,this.scheduler.flush(this),this)},t.prototype.execute=function(r,o){return o>0||this.closed?e.prototype.execute.call(this,r,o):this._execute(r,o)},t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!=null&&n>0||n==null&&this.delay>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.flush(this),0)},t}(gt);var Oo=function(e){oe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(yt);var kr=new Oo(So);var Mo=function(e){oe(t,e);function t(r,o){var n=e.call(this,r,o)||this;return n.scheduler=r,n.work=o,n}return t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!==null&&n>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.actions.push(this),r._scheduled||(r._scheduled=vt.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,o,n){var i;if(n===void 0&&(n=0),n!=null?n>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,o,n);var a=r.actions;o!=null&&((i=a[a.length-1])===null||i===void 0?void 0:i.id)!==o&&(vt.cancelAnimationFrame(o),r._scheduled=void 0)},t}(gt);var Lo=function(e){oe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var o=this._scheduled;this._scheduled=void 0;var n=this.actions,i;r=r||n.shift();do if(i=r.execute(r.state,r.delay))break;while((r=n[0])&&r.id===o&&n.shift());if(this._active=!1,i){for(;(r=n[0])&&r.id===o&&n.shift();)r.unsubscribe();throw i}},t}(yt);var me=new Lo(Mo);var S=new j(function(e){return e.complete()});function Yt(e){return e&&H(e.schedule)}function Hr(e){return e[e.length-1]}function Xe(e){return H(Hr(e))?e.pop():void 0}function ke(e){return Yt(Hr(e))?e.pop():void 0}function Bt(e,t){return typeof Hr(e)=="number"?e.pop():t}var xt=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Gt(e){return H(e==null?void 0:e.then)}function Jt(e){return H(e[bt])}function Xt(e){return Symbol.asyncIterator&&H(e==null?void 0:e[Symbol.asyncIterator])}function Zt(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Ji(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var er=Ji();function tr(e){return H(e==null?void 0:e[er])}function rr(e){return mo(this,arguments,function(){var r,o,n,i;return Nt(this,function(a){switch(a.label){case 0:r=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,nt(r.read())];case 3:return o=a.sent(),n=o.value,i=o.done,i?[4,nt(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,nt(n)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function or(e){return H(e==null?void 0:e.getReader)}function W(e){if(e instanceof j)return e;if(e!=null){if(Jt(e))return Xi(e);if(xt(e))return Zi(e);if(Gt(e))return ea(e);if(Xt(e))return _o(e);if(tr(e))return ta(e);if(or(e))return ra(e)}throw Zt(e)}function Xi(e){return new j(function(t){var r=e[bt]();if(H(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Zi(e){return new j(function(t){for(var r=0;r=2;return function(o){return o.pipe(e?b(function(n,i){return e(n,i,o)}):le,Te(1),r?De(t):qo(function(){return new ir}))}}function jr(e){return e<=0?function(){return S}:E(function(t,r){var o=[];t.subscribe(T(r,function(n){o.push(n),e=2,!0))}function pe(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new g}:t,o=e.resetOnError,n=o===void 0?!0:o,i=e.resetOnComplete,a=i===void 0?!0:i,s=e.resetOnRefCountZero,p=s===void 0?!0:s;return function(c){var l,f,u,d=0,y=!1,M=!1,X=function(){f==null||f.unsubscribe(),f=void 0},te=function(){X(),l=u=void 0,y=M=!1},J=function(){var k=l;te(),k==null||k.unsubscribe()};return E(function(k,ft){d++,!M&&!y&&X();var qe=u=u!=null?u:r();ft.add(function(){d--,d===0&&!M&&!y&&(f=Wr(J,p))}),qe.subscribe(ft),!l&&d>0&&(l=new at({next:function(Fe){return qe.next(Fe)},error:function(Fe){M=!0,X(),f=Wr(te,n,Fe),qe.error(Fe)},complete:function(){y=!0,X(),f=Wr(te,a),qe.complete()}}),W(k).subscribe(l))})(c)}}function Wr(e,t){for(var r=[],o=2;oe.next(document)),e}function P(e,t=document){return Array.from(t.querySelectorAll(e))}function R(e,t=document){let r=fe(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function fe(e,t=document){return t.querySelector(e)||void 0}function Ie(){var e,t,r,o;return(o=(r=(t=(e=document.activeElement)==null?void 0:e.shadowRoot)==null?void 0:t.activeElement)!=null?r:document.activeElement)!=null?o:void 0}var xa=O(h(document.body,"focusin"),h(document.body,"focusout")).pipe(_e(1),Q(void 0),m(()=>Ie()||document.body),G(1));function et(e){return xa.pipe(m(t=>e.contains(t)),K())}function $t(e,t){return C(()=>O(h(e,"mouseenter").pipe(m(()=>!0)),h(e,"mouseleave").pipe(m(()=>!1))).pipe(t?Ht(r=>Me(+!r*t)):le,Q(e.matches(":hover"))))}function Go(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)Go(e,r)}function x(e,t,...r){let o=document.createElement(e);if(t)for(let n of Object.keys(t))typeof t[n]!="undefined"&&(typeof t[n]!="boolean"?o.setAttribute(n,t[n]):o.setAttribute(n,""));for(let n of r)Go(o,n);return o}function sr(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function Tt(e){let t=x("script",{src:e});return C(()=>(document.head.appendChild(t),O(h(t,"load"),h(t,"error").pipe(v(()=>$r(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(m(()=>{}),_(()=>document.head.removeChild(t)),Te(1))))}var Jo=new g,Ea=C(()=>typeof ResizeObserver=="undefined"?Tt("https://unpkg.com/resize-observer-polyfill"):I(void 0)).pipe(m(()=>new ResizeObserver(e=>e.forEach(t=>Jo.next(t)))),v(e=>O(Ye,I(e)).pipe(_(()=>e.disconnect()))),G(1));function ce(e){return{width:e.offsetWidth,height:e.offsetHeight}}function ge(e){let t=e;for(;t.clientWidth===0&&t.parentElement;)t=t.parentElement;return Ea.pipe(w(r=>r.observe(t)),v(r=>Jo.pipe(b(o=>o.target===t),_(()=>r.unobserve(t)))),m(()=>ce(e)),Q(ce(e)))}function St(e){return{width:e.scrollWidth,height:e.scrollHeight}}function cr(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}function Xo(e){let t=[],r=e.parentElement;for(;r;)(e.clientWidth>r.clientWidth||e.clientHeight>r.clientHeight)&&t.push(r),r=(e=r).parentElement;return t.length===0&&t.push(document.documentElement),t}function Ve(e){return{x:e.offsetLeft,y:e.offsetTop}}function Zo(e){let t=e.getBoundingClientRect();return{x:t.x+window.scrollX,y:t.y+window.scrollY}}function en(e){return O(h(window,"load"),h(window,"resize")).pipe(Le(0,me),m(()=>Ve(e)),Q(Ve(e)))}function pr(e){return{x:e.scrollLeft,y:e.scrollTop}}function Ne(e){return O(h(e,"scroll"),h(window,"scroll"),h(window,"resize")).pipe(Le(0,me),m(()=>pr(e)),Q(pr(e)))}var tn=new g,wa=C(()=>I(new IntersectionObserver(e=>{for(let t of e)tn.next(t)},{threshold:0}))).pipe(v(e=>O(Ye,I(e)).pipe(_(()=>e.disconnect()))),G(1));function tt(e){return wa.pipe(w(t=>t.observe(e)),v(t=>tn.pipe(b(({target:r})=>r===e),_(()=>t.unobserve(e)),m(({isIntersecting:r})=>r))))}function rn(e,t=16){return Ne(e).pipe(m(({y:r})=>{let o=ce(e),n=St(e);return r>=n.height-o.height-t}),K())}var lr={drawer:R("[data-md-toggle=drawer]"),search:R("[data-md-toggle=search]")};function on(e){return lr[e].checked}function Je(e,t){lr[e].checked!==t&&lr[e].click()}function ze(e){let t=lr[e];return h(t,"change").pipe(m(()=>t.checked),Q(t.checked))}function Ta(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function Sa(){return O(h(window,"compositionstart").pipe(m(()=>!0)),h(window,"compositionend").pipe(m(()=>!1))).pipe(Q(!1))}function nn(){let e=h(window,"keydown").pipe(b(t=>!(t.metaKey||t.ctrlKey)),m(t=>({mode:on("search")?"search":"global",type:t.key,claim(){t.preventDefault(),t.stopPropagation()}})),b(({mode:t,type:r})=>{if(t==="global"){let o=Ie();if(typeof o!="undefined")return!Ta(o,r)}return!0}),pe());return Sa().pipe(v(t=>t?S:e))}function ye(){return new URL(location.href)}function lt(e,t=!1){if(B("navigation.instant")&&!t){let r=x("a",{href:e.href});document.body.appendChild(r),r.click(),r.remove()}else location.href=e.href}function an(){return new g}function sn(){return location.hash.slice(1)}function cn(e){let t=x("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function Oa(e){return O(h(window,"hashchange"),e).pipe(m(sn),Q(sn()),b(t=>t.length>0),G(1))}function pn(e){return Oa(e).pipe(m(t=>fe(`[id="${t}"]`)),b(t=>typeof t!="undefined"))}function Pt(e){let t=matchMedia(e);return ar(r=>t.addListener(()=>r(t.matches))).pipe(Q(t.matches))}function ln(){let e=matchMedia("print");return O(h(window,"beforeprint").pipe(m(()=>!0)),h(window,"afterprint").pipe(m(()=>!1))).pipe(Q(e.matches))}function Nr(e,t){return e.pipe(v(r=>r?t():S))}function zr(e,t){return new j(r=>{let o=new XMLHttpRequest;return o.open("GET",`${e}`),o.responseType="blob",o.addEventListener("load",()=>{o.status>=200&&o.status<300?(r.next(o.response),r.complete()):r.error(new Error(o.statusText))}),o.addEventListener("error",()=>{r.error(new Error("Network error"))}),o.addEventListener("abort",()=>{r.complete()}),typeof(t==null?void 0:t.progress$)!="undefined"&&(o.addEventListener("progress",n=>{var i;if(n.lengthComputable)t.progress$.next(n.loaded/n.total*100);else{let a=(i=o.getResponseHeader("Content-Length"))!=null?i:0;t.progress$.next(n.loaded/+a*100)}}),t.progress$.next(5)),o.send(),()=>o.abort()})}function je(e,t){return zr(e,t).pipe(v(r=>r.text()),m(r=>JSON.parse(r)),G(1))}function mn(e,t){let r=new DOMParser;return zr(e,t).pipe(v(o=>o.text()),m(o=>r.parseFromString(o,"text/html")),G(1))}function fn(e,t){let r=new DOMParser;return zr(e,t).pipe(v(o=>o.text()),m(o=>r.parseFromString(o,"text/xml")),G(1))}function un(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function dn(){return O(h(window,"scroll",{passive:!0}),h(window,"resize",{passive:!0})).pipe(m(un),Q(un()))}function hn(){return{width:innerWidth,height:innerHeight}}function bn(){return h(window,"resize",{passive:!0}).pipe(m(hn),Q(hn()))}function vn(){return z([dn(),bn()]).pipe(m(([e,t])=>({offset:e,size:t})),G(1))}function mr(e,{viewport$:t,header$:r}){let o=t.pipe(ee("size")),n=z([o,r]).pipe(m(()=>Ve(e)));return z([r,t,n]).pipe(m(([{height:i},{offset:a,size:s},{x:p,y:c}])=>({offset:{x:a.x-p,y:a.y-c+i},size:s})))}function Ma(e){return h(e,"message",t=>t.data)}function La(e){let t=new g;return t.subscribe(r=>e.postMessage(r)),t}function gn(e,t=new Worker(e)){let r=Ma(t),o=La(t),n=new g;n.subscribe(o);let i=o.pipe(Z(),ie(!0));return n.pipe(Z(),Re(r.pipe(U(i))),pe())}var _a=R("#__config"),Ot=JSON.parse(_a.textContent);Ot.base=`${new URL(Ot.base,ye())}`;function xe(){return Ot}function B(e){return Ot.features.includes(e)}function Ee(e,t){return typeof t!="undefined"?Ot.translations[e].replace("#",t.toString()):Ot.translations[e]}function Se(e,t=document){return R(`[data-md-component=${e}]`,t)}function ae(e,t=document){return P(`[data-md-component=${e}]`,t)}function Aa(e){let t=R(".md-typeset > :first-child",e);return h(t,"click",{once:!0}).pipe(m(()=>R(".md-typeset",e)),m(r=>({hash:__md_hash(r.innerHTML)})))}function yn(e){if(!B("announce.dismiss")||!e.childElementCount)return S;if(!e.hidden){let t=R(".md-typeset",e);__md_hash(t.innerHTML)===__md_get("__announce")&&(e.hidden=!0)}return C(()=>{let t=new g;return t.subscribe(({hash:r})=>{e.hidden=!0,__md_set("__announce",r)}),Aa(e).pipe(w(r=>t.next(r)),_(()=>t.complete()),m(r=>$({ref:e},r)))})}function Ca(e,{target$:t}){return t.pipe(m(r=>({hidden:r!==e})))}function xn(e,t){let r=new g;return r.subscribe(({hidden:o})=>{e.hidden=o}),Ca(e,t).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))}function Rt(e,t){return t==="inline"?x("div",{class:"md-tooltip md-tooltip--inline",id:e,role:"tooltip"},x("div",{class:"md-tooltip__inner md-typeset"})):x("div",{class:"md-tooltip",id:e,role:"tooltip"},x("div",{class:"md-tooltip__inner md-typeset"}))}function En(...e){return x("div",{class:"md-tooltip2",role:"tooltip"},x("div",{class:"md-tooltip2__inner md-typeset"},e))}function wn(e,t){if(t=t?`${t}_annotation_${e}`:void 0,t){let r=t?`#${t}`:void 0;return x("aside",{class:"md-annotation",tabIndex:0},Rt(t),x("a",{href:r,class:"md-annotation__index",tabIndex:-1},x("span",{"data-md-annotation-id":e})))}else return x("aside",{class:"md-annotation",tabIndex:0},Rt(t),x("span",{class:"md-annotation__index",tabIndex:-1},x("span",{"data-md-annotation-id":e})))}function Tn(e){return x("button",{class:"md-clipboard md-icon",title:Ee("clipboard.copy"),"data-clipboard-target":`#${e} > code`})}var On=Lt(qr());function Qr(e,t){let r=t&2,o=t&1,n=Object.keys(e.terms).filter(p=>!e.terms[p]).reduce((p,c)=>[...p,x("del",null,(0,On.default)(c))," "],[]).slice(0,-1),i=xe(),a=new URL(e.location,i.base);B("search.highlight")&&a.searchParams.set("h",Object.entries(e.terms).filter(([,p])=>p).reduce((p,[c])=>`${p} ${c}`.trim(),""));let{tags:s}=xe();return x("a",{href:`${a}`,class:"md-search-result__link",tabIndex:-1},x("article",{class:"md-search-result__article md-typeset","data-md-score":e.score.toFixed(2)},r>0&&x("div",{class:"md-search-result__icon md-icon"}),r>0&&x("h1",null,e.title),r<=0&&x("h2",null,e.title),o>0&&e.text.length>0&&e.text,e.tags&&e.tags.map(p=>{let c=s?p in s?`md-tag-icon md-tag--${s[p]}`:"md-tag-icon":"";return x("span",{class:`md-tag ${c}`},p)}),o>0&&n.length>0&&x("p",{class:"md-search-result__terms"},Ee("search.result.term.missing"),": ",...n)))}function Mn(e){let t=e[0].score,r=[...e],o=xe(),n=r.findIndex(l=>!`${new URL(l.location,o.base)}`.includes("#")),[i]=r.splice(n,1),a=r.findIndex(l=>l.scoreQr(l,1)),...p.length?[x("details",{class:"md-search-result__more"},x("summary",{tabIndex:-1},x("div",null,p.length>0&&p.length===1?Ee("search.result.more.one"):Ee("search.result.more.other",p.length))),...p.map(l=>Qr(l,1)))]:[]];return x("li",{class:"md-search-result__item"},c)}function Ln(e){return x("ul",{class:"md-source__facts"},Object.entries(e).map(([t,r])=>x("li",{class:`md-source__fact md-source__fact--${t}`},typeof r=="number"?sr(r):r)))}function Kr(e){let t=`tabbed-control tabbed-control--${e}`;return x("div",{class:t,hidden:!0},x("button",{class:"tabbed-button",tabIndex:-1,"aria-hidden":"true"}))}function _n(e){return x("div",{class:"md-typeset__scrollwrap"},x("div",{class:"md-typeset__table"},e))}function $a(e){var o;let t=xe(),r=new URL(`../${e.version}/`,t.base);return x("li",{class:"md-version__item"},x("a",{href:`${r}`,class:"md-version__link"},e.title,((o=t.version)==null?void 0:o.alias)&&e.aliases.length>0&&x("span",{class:"md-version__alias"},e.aliases[0])))}function An(e,t){var o;let r=xe();return e=e.filter(n=>{var i;return!((i=n.properties)!=null&&i.hidden)}),x("div",{class:"md-version"},x("button",{class:"md-version__current","aria-label":Ee("select.version")},t.title,((o=r.version)==null?void 0:o.alias)&&t.aliases.length>0&&x("span",{class:"md-version__alias"},t.aliases[0])),x("ul",{class:"md-version__list"},e.map($a)))}var Pa=0;function Ra(e){let t=z([et(e),$t(e)]).pipe(m(([o,n])=>o||n),K()),r=C(()=>Xo(e)).pipe(ne(Ne),pt(1),He(t),m(()=>Zo(e)));return t.pipe(Ae(o=>o),v(()=>z([t,r])),m(([o,n])=>({active:o,offset:n})),pe())}function Ia(e,t){let{content$:r,viewport$:o}=t,n=`__tooltip2_${Pa++}`;return C(()=>{let i=new g,a=new _r(!1);i.pipe(Z(),ie(!1)).subscribe(a);let s=a.pipe(Ht(c=>Me(+!c*250,kr)),K(),v(c=>c?r:S),w(c=>c.id=n),pe());z([i.pipe(m(({active:c})=>c)),s.pipe(v(c=>$t(c,250)),Q(!1))]).pipe(m(c=>c.some(l=>l))).subscribe(a);let p=a.pipe(b(c=>c),re(s,o),m(([c,l,{size:f}])=>{let u=e.getBoundingClientRect(),d=u.width/2;if(l.role==="tooltip")return{x:d,y:8+u.height};if(u.y>=f.height/2){let{height:y}=ce(l);return{x:d,y:-16-y}}else return{x:d,y:16+u.height}}));return z([s,i,p]).subscribe(([c,{offset:l},f])=>{c.style.setProperty("--md-tooltip-host-x",`${l.x}px`),c.style.setProperty("--md-tooltip-host-y",`${l.y}px`),c.style.setProperty("--md-tooltip-x",`${f.x}px`),c.style.setProperty("--md-tooltip-y",`${f.y}px`),c.classList.toggle("md-tooltip2--top",f.y<0),c.classList.toggle("md-tooltip2--bottom",f.y>=0)}),a.pipe(b(c=>c),re(s,(c,l)=>l),b(c=>c.role==="tooltip")).subscribe(c=>{let l=ce(R(":scope > *",c));c.style.setProperty("--md-tooltip-width",`${l.width}px`),c.style.setProperty("--md-tooltip-tail","0px")}),a.pipe(K(),ve(me),re(s)).subscribe(([c,l])=>{l.classList.toggle("md-tooltip2--active",c)}),z([a.pipe(b(c=>c)),s]).subscribe(([c,l])=>{l.role==="dialog"?(e.setAttribute("aria-controls",n),e.setAttribute("aria-haspopup","dialog")):e.setAttribute("aria-describedby",n)}),a.pipe(b(c=>!c)).subscribe(()=>{e.removeAttribute("aria-controls"),e.removeAttribute("aria-describedby"),e.removeAttribute("aria-haspopup")}),Ra(e).pipe(w(c=>i.next(c)),_(()=>i.complete()),m(c=>$({ref:e},c)))})}function mt(e,{viewport$:t},r=document.body){return Ia(e,{content$:new j(o=>{let n=e.title,i=En(n);return o.next(i),e.removeAttribute("title"),r.append(i),()=>{i.remove(),e.setAttribute("title",n)}}),viewport$:t})}function ja(e,t){let r=C(()=>z([en(e),Ne(t)])).pipe(m(([{x:o,y:n},i])=>{let{width:a,height:s}=ce(e);return{x:o-i.x+a/2,y:n-i.y+s/2}}));return et(e).pipe(v(o=>r.pipe(m(n=>({active:o,offset:n})),Te(+!o||1/0))))}function Cn(e,t,{target$:r}){let[o,n]=Array.from(e.children);return C(()=>{let i=new g,a=i.pipe(Z(),ie(!0));return i.subscribe({next({offset:s}){e.style.setProperty("--md-tooltip-x",`${s.x}px`),e.style.setProperty("--md-tooltip-y",`${s.y}px`)},complete(){e.style.removeProperty("--md-tooltip-x"),e.style.removeProperty("--md-tooltip-y")}}),tt(e).pipe(U(a)).subscribe(s=>{e.toggleAttribute("data-md-visible",s)}),O(i.pipe(b(({active:s})=>s)),i.pipe(_e(250),b(({active:s})=>!s))).subscribe({next({active:s}){s?e.prepend(o):o.remove()},complete(){e.prepend(o)}}),i.pipe(Le(16,me)).subscribe(({active:s})=>{o.classList.toggle("md-tooltip--active",s)}),i.pipe(pt(125,me),b(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:s})=>s)).subscribe({next(s){s?e.style.setProperty("--md-tooltip-0",`${-s}px`):e.style.removeProperty("--md-tooltip-0")},complete(){e.style.removeProperty("--md-tooltip-0")}}),h(n,"click").pipe(U(a),b(s=>!(s.metaKey||s.ctrlKey))).subscribe(s=>{s.stopPropagation(),s.preventDefault()}),h(n,"mousedown").pipe(U(a),re(i)).subscribe(([s,{active:p}])=>{var c;if(s.button!==0||s.metaKey||s.ctrlKey)s.preventDefault();else if(p){s.preventDefault();let l=e.parentElement.closest(".md-annotation");l instanceof HTMLElement?l.focus():(c=Ie())==null||c.blur()}}),r.pipe(U(a),b(s=>s===o),Ge(125)).subscribe(()=>e.focus()),ja(e,t).pipe(w(s=>i.next(s)),_(()=>i.complete()),m(s=>$({ref:e},s)))})}function Fa(e){return e.tagName==="CODE"?P(".c, .c1, .cm",e):[e]}function Wa(e){let t=[];for(let r of Fa(e)){let o=[],n=document.createNodeIterator(r,NodeFilter.SHOW_TEXT);for(let i=n.nextNode();i;i=n.nextNode())o.push(i);for(let i of o){let a;for(;a=/(\(\d+\))(!)?/.exec(i.textContent);){let[,s,p]=a;if(typeof p=="undefined"){let c=i.splitText(a.index);i=c.splitText(s.length),t.push(c)}else{i.textContent=s,t.push(i);break}}}}return t}function kn(e,t){t.append(...Array.from(e.childNodes))}function fr(e,t,{target$:r,print$:o}){let n=t.closest("[id]"),i=n==null?void 0:n.id,a=new Map;for(let s of Wa(t)){let[,p]=s.textContent.match(/\((\d+)\)/);fe(`:scope > li:nth-child(${p})`,e)&&(a.set(p,wn(p,i)),s.replaceWith(a.get(p)))}return a.size===0?S:C(()=>{let s=new g,p=s.pipe(Z(),ie(!0)),c=[];for(let[l,f]of a)c.push([R(".md-typeset",f),R(`:scope > li:nth-child(${l})`,e)]);return o.pipe(U(p)).subscribe(l=>{e.hidden=!l,e.classList.toggle("md-annotation-list",l);for(let[f,u]of c)l?kn(f,u):kn(u,f)}),O(...[...a].map(([,l])=>Cn(l,t,{target$:r}))).pipe(_(()=>s.complete()),pe())})}function Hn(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return Hn(t)}}function $n(e,t){return C(()=>{let r=Hn(e);return typeof r!="undefined"?fr(r,e,t):S})}var Pn=Lt(Br());var Ua=0;function Rn(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return Rn(t)}}function Da(e){return ge(e).pipe(m(({width:t})=>({scrollable:St(e).width>t})),ee("scrollable"))}function In(e,t){let{matches:r}=matchMedia("(hover)"),o=C(()=>{let n=new g,i=n.pipe(jr(1));n.subscribe(({scrollable:c})=>{c&&r?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")});let a=[];if(Pn.default.isSupported()&&(e.closest(".copy")||B("content.code.copy")&&!e.closest(".no-copy"))){let c=e.closest("pre");c.id=`__code_${Ua++}`;let l=Tn(c.id);c.insertBefore(l,e),B("content.tooltips")&&a.push(mt(l,{viewport$}))}let s=e.closest(".highlight");if(s instanceof HTMLElement){let c=Rn(s);if(typeof c!="undefined"&&(s.classList.contains("annotate")||B("content.code.annotate"))){let l=fr(c,e,t);a.push(ge(s).pipe(U(i),m(({width:f,height:u})=>f&&u),K(),v(f=>f?l:S)))}}return P(":scope > span[id]",e).length&&e.classList.add("md-code__content"),Da(e).pipe(w(c=>n.next(c)),_(()=>n.complete()),m(c=>$({ref:e},c)),Re(...a))});return B("content.lazy")?tt(e).pipe(b(n=>n),Te(1),v(()=>o)):o}function Va(e,{target$:t,print$:r}){let o=!0;return O(t.pipe(m(n=>n.closest("details:not([open])")),b(n=>e===n),m(()=>({action:"open",reveal:!0}))),r.pipe(b(n=>n||!o),w(()=>o=e.open),m(n=>({action:n?"open":"close"}))))}function jn(e,t){return C(()=>{let r=new g;return r.subscribe(({action:o,reveal:n})=>{e.toggleAttribute("open",o==="open"),n&&e.scrollIntoView()}),Va(e,t).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))})}var Fn=".node circle,.node ellipse,.node path,.node polygon,.node rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}marker{fill:var(--md-mermaid-edge-color)!important}.edgeLabel .label rect{fill:#0000}.label{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.label foreignObject{line-height:normal;overflow:visible}.label div .edgeLabel{color:var(--md-mermaid-label-fg-color)}.edgeLabel,.edgeLabel p,.label div .edgeLabel{background-color:var(--md-mermaid-label-bg-color)}.edgeLabel,.edgeLabel p{fill:var(--md-mermaid-label-bg-color);color:var(--md-mermaid-edge-color)}.edgePath .path,.flowchart-link{stroke:var(--md-mermaid-edge-color);stroke-width:.05rem}.edgePath .arrowheadPath{fill:var(--md-mermaid-edge-color);stroke:none}.cluster rect{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}.cluster span{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}g #flowchart-circleEnd,g #flowchart-circleStart,g #flowchart-crossEnd,g #flowchart-crossStart,g #flowchart-pointEnd,g #flowchart-pointStart{stroke:none}g.classGroup line,g.classGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.classGroup text{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.classLabel .box{fill:var(--md-mermaid-label-bg-color);background-color:var(--md-mermaid-label-bg-color);opacity:1}.classLabel .label{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node .divider{stroke:var(--md-mermaid-node-fg-color)}.relation{stroke:var(--md-mermaid-edge-color)}.cardinality{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.cardinality text{fill:inherit!important}defs #classDiagram-compositionEnd,defs #classDiagram-compositionStart,defs #classDiagram-dependencyEnd,defs #classDiagram-dependencyStart,defs #classDiagram-extensionEnd,defs #classDiagram-extensionStart{fill:var(--md-mermaid-edge-color)!important;stroke:var(--md-mermaid-edge-color)!important}defs #classDiagram-aggregationEnd,defs #classDiagram-aggregationStart{fill:var(--md-mermaid-label-bg-color)!important;stroke:var(--md-mermaid-edge-color)!important}g.stateGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.stateGroup .state-title{fill:var(--md-mermaid-label-fg-color)!important;font-family:var(--md-mermaid-font-family)}g.stateGroup .composit{fill:var(--md-mermaid-label-bg-color)}.nodeLabel,.nodeLabel p{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}a .nodeLabel{text-decoration:underline}.node circle.state-end,.node circle.state-start,.start-state{fill:var(--md-mermaid-edge-color);stroke:none}.end-state-inner,.end-state-outer{fill:var(--md-mermaid-edge-color)}.end-state-inner,.node circle.state-end{stroke:var(--md-mermaid-label-bg-color)}.transition{stroke:var(--md-mermaid-edge-color)}[id^=state-fork] rect,[id^=state-join] rect{fill:var(--md-mermaid-edge-color)!important;stroke:none!important}.statediagram-cluster.statediagram-cluster .inner{fill:var(--md-default-bg-color)}.statediagram-cluster rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.statediagram-state rect.divider{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}defs #statediagram-barbEnd{stroke:var(--md-mermaid-edge-color)}.attributeBoxEven,.attributeBoxOdd{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityBox{fill:var(--md-mermaid-label-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityLabel{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.relationshipLabelBox{fill:var(--md-mermaid-label-bg-color);fill-opacity:1;background-color:var(--md-mermaid-label-bg-color);opacity:1}.relationshipLabel{fill:var(--md-mermaid-label-fg-color)}.relationshipLine{stroke:var(--md-mermaid-edge-color)}defs #ONE_OR_MORE_END *,defs #ONE_OR_MORE_START *,defs #ONLY_ONE_END *,defs #ONLY_ONE_START *,defs #ZERO_OR_MORE_END *,defs #ZERO_OR_MORE_START *,defs #ZERO_OR_ONE_END *,defs #ZERO_OR_ONE_START *{stroke:var(--md-mermaid-edge-color)!important}defs #ZERO_OR_MORE_END circle,defs #ZERO_OR_MORE_START circle{fill:var(--md-mermaid-label-bg-color)}.actor{fill:var(--md-mermaid-sequence-actor-bg-color);stroke:var(--md-mermaid-sequence-actor-border-color)}text.actor>tspan{fill:var(--md-mermaid-sequence-actor-fg-color);font-family:var(--md-mermaid-font-family)}line{stroke:var(--md-mermaid-sequence-actor-line-color)}.actor-man circle,.actor-man line{fill:var(--md-mermaid-sequence-actorman-bg-color);stroke:var(--md-mermaid-sequence-actorman-line-color)}.messageLine0,.messageLine1{stroke:var(--md-mermaid-sequence-message-line-color)}.note{fill:var(--md-mermaid-sequence-note-bg-color);stroke:var(--md-mermaid-sequence-note-border-color)}.loopText,.loopText>tspan,.messageText,.noteText>tspan{stroke:none;font-family:var(--md-mermaid-font-family)!important}.messageText{fill:var(--md-mermaid-sequence-message-fg-color)}.loopText,.loopText>tspan{fill:var(--md-mermaid-sequence-loop-fg-color)}.noteText>tspan{fill:var(--md-mermaid-sequence-note-fg-color)}#arrowhead path{fill:var(--md-mermaid-sequence-message-line-color);stroke:none}.loopLine{fill:var(--md-mermaid-sequence-loop-bg-color);stroke:var(--md-mermaid-sequence-loop-border-color)}.labelBox{fill:var(--md-mermaid-sequence-label-bg-color);stroke:none}.labelText,.labelText>span{fill:var(--md-mermaid-sequence-label-fg-color);font-family:var(--md-mermaid-font-family)}.sequenceNumber{fill:var(--md-mermaid-sequence-number-fg-color)}rect.rect{fill:var(--md-mermaid-sequence-box-bg-color);stroke:none}rect.rect+text.text{fill:var(--md-mermaid-sequence-box-fg-color)}defs #sequencenumber{fill:var(--md-mermaid-sequence-number-bg-color)!important}";var Gr,za=0;function qa(){return typeof mermaid=="undefined"||mermaid instanceof Element?Tt("https://unpkg.com/mermaid@11/dist/mermaid.min.js"):I(void 0)}function Wn(e){return e.classList.remove("mermaid"),Gr||(Gr=qa().pipe(w(()=>mermaid.initialize({startOnLoad:!1,themeCSS:Fn,sequence:{actorFontSize:"16px",messageFontSize:"16px",noteFontSize:"16px"}})),m(()=>{}),G(1))),Gr.subscribe(()=>so(this,null,function*(){e.classList.add("mermaid");let t=`__mermaid_${za++}`,r=x("div",{class:"mermaid"}),o=e.textContent,{svg:n,fn:i}=yield mermaid.render(t,o),a=r.attachShadow({mode:"closed"});a.innerHTML=n,e.replaceWith(r),i==null||i(a)})),Gr.pipe(m(()=>({ref:e})))}var Un=x("table");function Dn(e){return e.replaceWith(Un),Un.replaceWith(_n(e)),I({ref:e})}function Qa(e){let t=e.find(r=>r.checked)||e[0];return O(...e.map(r=>h(r,"change").pipe(m(()=>R(`label[for="${r.id}"]`))))).pipe(Q(R(`label[for="${t.id}"]`)),m(r=>({active:r})))}function Vn(e,{viewport$:t,target$:r}){let o=R(".tabbed-labels",e),n=P(":scope > input",e),i=Kr("prev");e.append(i);let a=Kr("next");return e.append(a),C(()=>{let s=new g,p=s.pipe(Z(),ie(!0));z([s,ge(e),tt(e)]).pipe(U(p),Le(1,me)).subscribe({next([{active:c},l]){let f=Ve(c),{width:u}=ce(c);e.style.setProperty("--md-indicator-x",`${f.x}px`),e.style.setProperty("--md-indicator-width",`${u}px`);let d=pr(o);(f.xd.x+l.width)&&o.scrollTo({left:Math.max(0,f.x-16),behavior:"smooth"})},complete(){e.style.removeProperty("--md-indicator-x"),e.style.removeProperty("--md-indicator-width")}}),z([Ne(o),ge(o)]).pipe(U(p)).subscribe(([c,l])=>{let f=St(o);i.hidden=c.x<16,a.hidden=c.x>f.width-l.width-16}),O(h(i,"click").pipe(m(()=>-1)),h(a,"click").pipe(m(()=>1))).pipe(U(p)).subscribe(c=>{let{width:l}=ce(o);o.scrollBy({left:l*c,behavior:"smooth"})}),r.pipe(U(p),b(c=>n.includes(c))).subscribe(c=>c.click()),o.classList.add("tabbed-labels--linked");for(let c of n){let l=R(`label[for="${c.id}"]`);l.replaceChildren(x("a",{href:`#${l.htmlFor}`,tabIndex:-1},...Array.from(l.childNodes))),h(l.firstElementChild,"click").pipe(U(p),b(f=>!(f.metaKey||f.ctrlKey)),w(f=>{f.preventDefault(),f.stopPropagation()})).subscribe(()=>{history.replaceState({},"",`#${l.htmlFor}`),l.click()})}return B("content.tabs.link")&&s.pipe(Ce(1),re(t)).subscribe(([{active:c},{offset:l}])=>{let f=c.innerText.trim();if(c.hasAttribute("data-md-switching"))c.removeAttribute("data-md-switching");else{let u=e.offsetTop-l.y;for(let y of P("[data-tabs]"))for(let M of P(":scope > input",y)){let X=R(`label[for="${M.id}"]`);if(X!==c&&X.innerText.trim()===f){X.setAttribute("data-md-switching",""),M.click();break}}window.scrollTo({top:e.offsetTop-u});let d=__md_get("__tabs")||[];__md_set("__tabs",[...new Set([f,...d])])}}),s.pipe(U(p)).subscribe(()=>{for(let c of P("audio, video",e))c.pause()}),Qa(n).pipe(w(c=>s.next(c)),_(()=>s.complete()),m(c=>$({ref:e},c)))}).pipe(Ke(se))}function Nn(e,{viewport$:t,target$:r,print$:o}){return O(...P(".annotate:not(.highlight)",e).map(n=>$n(n,{target$:r,print$:o})),...P("pre:not(.mermaid) > code",e).map(n=>In(n,{target$:r,print$:o})),...P("pre.mermaid",e).map(n=>Wn(n)),...P("table:not([class])",e).map(n=>Dn(n)),...P("details",e).map(n=>jn(n,{target$:r,print$:o})),...P("[data-tabs]",e).map(n=>Vn(n,{viewport$:t,target$:r})),...P("[title]",e).filter(()=>B("content.tooltips")).map(n=>mt(n,{viewport$:t})))}function Ka(e,{alert$:t}){return t.pipe(v(r=>O(I(!0),I(!1).pipe(Ge(2e3))).pipe(m(o=>({message:r,active:o})))))}function zn(e,t){let r=R(".md-typeset",e);return C(()=>{let o=new g;return o.subscribe(({message:n,active:i})=>{e.classList.toggle("md-dialog--active",i),r.textContent=n}),Ka(e,t).pipe(w(n=>o.next(n)),_(()=>o.complete()),m(n=>$({ref:e},n)))})}var Ya=0;function Ba(e,t){document.body.append(e);let{width:r}=ce(e);e.style.setProperty("--md-tooltip-width",`${r}px`),e.remove();let o=cr(t),n=typeof o!="undefined"?Ne(o):I({x:0,y:0}),i=O(et(t),$t(t)).pipe(K());return z([i,n]).pipe(m(([a,s])=>{let{x:p,y:c}=Ve(t),l=ce(t),f=t.closest("table");return f&&t.parentElement&&(p+=f.offsetLeft+t.parentElement.offsetLeft,c+=f.offsetTop+t.parentElement.offsetTop),{active:a,offset:{x:p-s.x+l.width/2-r/2,y:c-s.y+l.height+8}}}))}function qn(e){let t=e.title;if(!t.length)return S;let r=`__tooltip_${Ya++}`,o=Rt(r,"inline"),n=R(".md-typeset",o);return n.innerHTML=t,C(()=>{let i=new g;return i.subscribe({next({offset:a}){o.style.setProperty("--md-tooltip-x",`${a.x}px`),o.style.setProperty("--md-tooltip-y",`${a.y}px`)},complete(){o.style.removeProperty("--md-tooltip-x"),o.style.removeProperty("--md-tooltip-y")}}),O(i.pipe(b(({active:a})=>a)),i.pipe(_e(250),b(({active:a})=>!a))).subscribe({next({active:a}){a?(e.insertAdjacentElement("afterend",o),e.setAttribute("aria-describedby",r),e.removeAttribute("title")):(o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t))},complete(){o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t)}}),i.pipe(Le(16,me)).subscribe(({active:a})=>{o.classList.toggle("md-tooltip--active",a)}),i.pipe(pt(125,me),b(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:a})=>a)).subscribe({next(a){a?o.style.setProperty("--md-tooltip-0",`${-a}px`):o.style.removeProperty("--md-tooltip-0")},complete(){o.style.removeProperty("--md-tooltip-0")}}),Ba(o,e).pipe(w(a=>i.next(a)),_(()=>i.complete()),m(a=>$({ref:e},a)))}).pipe(Ke(se))}function Ga({viewport$:e}){if(!B("header.autohide"))return I(!1);let t=e.pipe(m(({offset:{y:n}})=>n),Be(2,1),m(([n,i])=>[nMath.abs(i-n.y)>100),m(([,[n]])=>n),K()),o=ze("search");return z([e,o]).pipe(m(([{offset:n},i])=>n.y>400&&!i),K(),v(n=>n?r:I(!1)),Q(!1))}function Qn(e,t){return C(()=>z([ge(e),Ga(t)])).pipe(m(([{height:r},o])=>({height:r,hidden:o})),K((r,o)=>r.height===o.height&&r.hidden===o.hidden),G(1))}function Kn(e,{header$:t,main$:r}){return C(()=>{let o=new g,n=o.pipe(Z(),ie(!0));o.pipe(ee("active"),He(t)).subscribe(([{active:a},{hidden:s}])=>{e.classList.toggle("md-header--shadow",a&&!s),e.hidden=s});let i=ue(P("[title]",e)).pipe(b(()=>B("content.tooltips")),ne(a=>qn(a)));return r.subscribe(o),t.pipe(U(n),m(a=>$({ref:e},a)),Re(i.pipe(U(n))))})}function Ja(e,{viewport$:t,header$:r}){return mr(e,{viewport$:t,header$:r}).pipe(m(({offset:{y:o}})=>{let{height:n}=ce(e);return{active:o>=n}}),ee("active"))}function Yn(e,t){return C(()=>{let r=new g;r.subscribe({next({active:n}){e.classList.toggle("md-header__title--active",n)},complete(){e.classList.remove("md-header__title--active")}});let o=fe(".md-content h1");return typeof o=="undefined"?S:Ja(o,t).pipe(w(n=>r.next(n)),_(()=>r.complete()),m(n=>$({ref:e},n)))})}function Bn(e,{viewport$:t,header$:r}){let o=r.pipe(m(({height:i})=>i),K()),n=o.pipe(v(()=>ge(e).pipe(m(({height:i})=>({top:e.offsetTop,bottom:e.offsetTop+i})),ee("bottom"))));return z([o,n,t]).pipe(m(([i,{top:a,bottom:s},{offset:{y:p},size:{height:c}}])=>(c=Math.max(0,c-Math.max(0,a-p,i)-Math.max(0,c+p-s)),{offset:a-i,height:c,active:a-i<=p})),K((i,a)=>i.offset===a.offset&&i.height===a.height&&i.active===a.active))}function Xa(e){let t=__md_get("__palette")||{index:e.findIndex(o=>matchMedia(o.getAttribute("data-md-color-media")).matches)},r=Math.max(0,Math.min(t.index,e.length-1));return I(...e).pipe(ne(o=>h(o,"change").pipe(m(()=>o))),Q(e[r]),m(o=>({index:e.indexOf(o),color:{media:o.getAttribute("data-md-color-media"),scheme:o.getAttribute("data-md-color-scheme"),primary:o.getAttribute("data-md-color-primary"),accent:o.getAttribute("data-md-color-accent")}})),G(1))}function Gn(e){let t=P("input",e),r=x("meta",{name:"theme-color"});document.head.appendChild(r);let o=x("meta",{name:"color-scheme"});document.head.appendChild(o);let n=Pt("(prefers-color-scheme: light)");return C(()=>{let i=new g;return i.subscribe(a=>{if(document.body.setAttribute("data-md-color-switching",""),a.color.media==="(prefers-color-scheme)"){let s=matchMedia("(prefers-color-scheme: light)"),p=document.querySelector(s.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");a.color.scheme=p.getAttribute("data-md-color-scheme"),a.color.primary=p.getAttribute("data-md-color-primary"),a.color.accent=p.getAttribute("data-md-color-accent")}for(let[s,p]of Object.entries(a.color))document.body.setAttribute(`data-md-color-${s}`,p);for(let s=0;sa.key==="Enter"),re(i,(a,s)=>s)).subscribe(({index:a})=>{a=(a+1)%t.length,t[a].click(),t[a].focus()}),i.pipe(m(()=>{let a=Se("header"),s=window.getComputedStyle(a);return o.content=s.colorScheme,s.backgroundColor.match(/\d+/g).map(p=>(+p).toString(16).padStart(2,"0")).join("")})).subscribe(a=>r.content=`#${a}`),i.pipe(ve(se)).subscribe(()=>{document.body.removeAttribute("data-md-color-switching")}),Xa(t).pipe(U(n.pipe(Ce(1))),ct(),w(a=>i.next(a)),_(()=>i.complete()),m(a=>$({ref:e},a)))})}function Jn(e,{progress$:t}){return C(()=>{let r=new g;return r.subscribe(({value:o})=>{e.style.setProperty("--md-progress-value",`${o}`)}),t.pipe(w(o=>r.next({value:o})),_(()=>r.complete()),m(o=>({ref:e,value:o})))})}var Jr=Lt(Br());function Za(e){e.setAttribute("data-md-copying","");let t=e.closest("[data-copy]"),r=t?t.getAttribute("data-copy"):e.innerText;return e.removeAttribute("data-md-copying"),r.trimEnd()}function Xn({alert$:e}){Jr.default.isSupported()&&new j(t=>{new Jr.default("[data-clipboard-target], [data-clipboard-text]",{text:r=>r.getAttribute("data-clipboard-text")||Za(R(r.getAttribute("data-clipboard-target")))}).on("success",r=>t.next(r))}).pipe(w(t=>{t.trigger.focus()}),m(()=>Ee("clipboard.copied"))).subscribe(e)}function Zn(e,t){return e.protocol=t.protocol,e.hostname=t.hostname,e}function es(e,t){let r=new Map;for(let o of P("url",e)){let n=R("loc",o),i=[Zn(new URL(n.textContent),t)];r.set(`${i[0]}`,i);for(let a of P("[rel=alternate]",o)){let s=a.getAttribute("href");s!=null&&i.push(Zn(new URL(s),t))}}return r}function ur(e){return fn(new URL("sitemap.xml",e)).pipe(m(t=>es(t,new URL(e))),de(()=>I(new Map)))}function ts(e,t){if(!(e.target instanceof Element))return S;let r=e.target.closest("a");if(r===null)return S;if(r.target||e.metaKey||e.ctrlKey)return S;let o=new URL(r.href);return o.search=o.hash="",t.has(`${o}`)?(e.preventDefault(),I(new URL(r.href))):S}function ei(e){let t=new Map;for(let r of P(":scope > *",e.head))t.set(r.outerHTML,r);return t}function ti(e){for(let t of P("[href], [src]",e))for(let r of["href","src"]){let o=t.getAttribute(r);if(o&&!/^(?:[a-z]+:)?\/\//i.test(o)){t[r]=t[r];break}}return I(e)}function rs(e){for(let o of["[data-md-component=announce]","[data-md-component=container]","[data-md-component=header-topic]","[data-md-component=outdated]","[data-md-component=logo]","[data-md-component=skip]",...B("navigation.tabs.sticky")?["[data-md-component=tabs]"]:[]]){let n=fe(o),i=fe(o,e);typeof n!="undefined"&&typeof i!="undefined"&&n.replaceWith(i)}let t=ei(document);for(let[o,n]of ei(e))t.has(o)?t.delete(o):document.head.appendChild(n);for(let o of t.values()){let n=o.getAttribute("name");n!=="theme-color"&&n!=="color-scheme"&&o.remove()}let r=Se("container");return Ue(P("script",r)).pipe(v(o=>{let n=e.createElement("script");if(o.src){for(let i of o.getAttributeNames())n.setAttribute(i,o.getAttribute(i));return o.replaceWith(n),new j(i=>{n.onload=()=>i.complete()})}else return n.textContent=o.textContent,o.replaceWith(n),S}),Z(),ie(document))}function ri({location$:e,viewport$:t,progress$:r}){let o=xe();if(location.protocol==="file:")return S;let n=ur(o.base);I(document).subscribe(ti);let i=h(document.body,"click").pipe(He(n),v(([p,c])=>ts(p,c)),pe()),a=h(window,"popstate").pipe(m(ye),pe());i.pipe(re(t)).subscribe(([p,{offset:c}])=>{history.replaceState(c,""),history.pushState(null,"",p)}),O(i,a).subscribe(e);let s=e.pipe(ee("pathname"),v(p=>mn(p,{progress$:r}).pipe(de(()=>(lt(p,!0),S)))),v(ti),v(rs),pe());return O(s.pipe(re(e,(p,c)=>c)),s.pipe(v(()=>e),ee("pathname"),v(()=>e),ee("hash")),e.pipe(K((p,c)=>p.pathname===c.pathname&&p.hash===c.hash),v(()=>i),w(()=>history.back()))).subscribe(p=>{var c,l;history.state!==null||!p.hash?window.scrollTo(0,(l=(c=history.state)==null?void 0:c.y)!=null?l:0):(history.scrollRestoration="auto",cn(p.hash),history.scrollRestoration="manual")}),e.subscribe(()=>{history.scrollRestoration="manual"}),h(window,"beforeunload").subscribe(()=>{history.scrollRestoration="auto"}),t.pipe(ee("offset"),_e(100)).subscribe(({offset:p})=>{history.replaceState(p,"")}),s}var oi=Lt(qr());function ni(e){let t=e.separator.split("|").map(n=>n.replace(/(\(\?[!=<][^)]+\))/g,"").length===0?"\uFFFD":n).join("|"),r=new RegExp(t,"img"),o=(n,i,a)=>`${i}${a}`;return n=>{n=n.replace(/[\s*+\-:~^]+/g," ").trim();let i=new RegExp(`(^|${e.separator}|)(${n.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return a=>(0,oi.default)(a).replace(i,o).replace(/<\/mark>(\s+)]*>/img,"$1")}}function jt(e){return e.type===1}function dr(e){return e.type===3}function ii(e,t){let r=gn(e);return O(I(location.protocol!=="file:"),ze("search")).pipe(Ae(o=>o),v(()=>t)).subscribe(({config:o,docs:n})=>r.next({type:0,data:{config:o,docs:n,options:{suggest:B("search.suggest")}}})),r}function ai({document$:e}){let t=xe(),r=je(new URL("../versions.json",t.base)).pipe(de(()=>S)),o=r.pipe(m(n=>{let[,i]=t.base.match(/([^/]+)\/?$/);return n.find(({version:a,aliases:s})=>a===i||s.includes(i))||n[0]}));r.pipe(m(n=>new Map(n.map(i=>[`${new URL(`../${i.version}/`,t.base)}`,i]))),v(n=>h(document.body,"click").pipe(b(i=>!i.metaKey&&!i.ctrlKey),re(o),v(([i,a])=>{if(i.target instanceof Element){let s=i.target.closest("a");if(s&&!s.target&&n.has(s.href)){let p=s.href;return!i.target.closest(".md-version")&&n.get(p)===a?S:(i.preventDefault(),I(p))}}return S}),v(i=>ur(new URL(i)).pipe(m(a=>{let p=ye().href.replace(t.base,i);return a.has(p.split("#")[0])?new URL(p):new URL(i)})))))).subscribe(n=>lt(n,!0)),z([r,o]).subscribe(([n,i])=>{R(".md-header__topic").appendChild(An(n,i))}),e.pipe(v(()=>o)).subscribe(n=>{var a;let i=__md_get("__outdated",sessionStorage);if(i===null){i=!0;let s=((a=t.version)==null?void 0:a.default)||"latest";Array.isArray(s)||(s=[s]);e:for(let p of s)for(let c of n.aliases.concat(n.version))if(new RegExp(p,"i").test(c)){i=!1;break e}__md_set("__outdated",i,sessionStorage)}if(i)for(let s of ae("outdated"))s.hidden=!1})}function is(e,{worker$:t}){let{searchParams:r}=ye();r.has("q")&&(Je("search",!0),e.value=r.get("q"),e.focus(),ze("search").pipe(Ae(i=>!i)).subscribe(()=>{let i=ye();i.searchParams.delete("q"),history.replaceState({},"",`${i}`)}));let o=et(e),n=O(t.pipe(Ae(jt)),h(e,"keyup"),o).pipe(m(()=>e.value),K());return z([n,o]).pipe(m(([i,a])=>({value:i,focus:a})),G(1))}function si(e,{worker$:t}){let r=new g,o=r.pipe(Z(),ie(!0));z([t.pipe(Ae(jt)),r],(i,a)=>a).pipe(ee("value")).subscribe(({value:i})=>t.next({type:2,data:i})),r.pipe(ee("focus")).subscribe(({focus:i})=>{i&&Je("search",i)}),h(e.form,"reset").pipe(U(o)).subscribe(()=>e.focus());let n=R("header [for=__search]");return h(n,"click").subscribe(()=>e.focus()),is(e,{worker$:t}).pipe(w(i=>r.next(i)),_(()=>r.complete()),m(i=>$({ref:e},i)),G(1))}function ci(e,{worker$:t,query$:r}){let o=new g,n=rn(e.parentElement).pipe(b(Boolean)),i=e.parentElement,a=R(":scope > :first-child",e),s=R(":scope > :last-child",e);ze("search").subscribe(l=>s.setAttribute("role",l?"list":"presentation")),o.pipe(re(r),Ur(t.pipe(Ae(jt)))).subscribe(([{items:l},{value:f}])=>{switch(l.length){case 0:a.textContent=f.length?Ee("search.result.none"):Ee("search.result.placeholder");break;case 1:a.textContent=Ee("search.result.one");break;default:let u=sr(l.length);a.textContent=Ee("search.result.other",u)}});let p=o.pipe(w(()=>s.innerHTML=""),v(({items:l})=>O(I(...l.slice(0,10)),I(...l.slice(10)).pipe(Be(4),Vr(n),v(([f])=>f)))),m(Mn),pe());return p.subscribe(l=>s.appendChild(l)),p.pipe(ne(l=>{let f=fe("details",l);return typeof f=="undefined"?S:h(f,"toggle").pipe(U(o),m(()=>f))})).subscribe(l=>{l.open===!1&&l.offsetTop<=i.scrollTop&&i.scrollTo({top:l.offsetTop})}),t.pipe(b(dr),m(({data:l})=>l)).pipe(w(l=>o.next(l)),_(()=>o.complete()),m(l=>$({ref:e},l)))}function as(e,{query$:t}){return t.pipe(m(({value:r})=>{let o=ye();return o.hash="",r=r.replace(/\s+/g,"+").replace(/&/g,"%26").replace(/=/g,"%3D"),o.search=`q=${r}`,{url:o}}))}function pi(e,t){let r=new g,o=r.pipe(Z(),ie(!0));return r.subscribe(({url:n})=>{e.setAttribute("data-clipboard-text",e.href),e.href=`${n}`}),h(e,"click").pipe(U(o)).subscribe(n=>n.preventDefault()),as(e,t).pipe(w(n=>r.next(n)),_(()=>r.complete()),m(n=>$({ref:e},n)))}function li(e,{worker$:t,keyboard$:r}){let o=new g,n=Se("search-query"),i=O(h(n,"keydown"),h(n,"focus")).pipe(ve(se),m(()=>n.value),K());return o.pipe(He(i),m(([{suggest:s},p])=>{let c=p.split(/([\s-]+)/);if(s!=null&&s.length&&c[c.length-1]){let l=s[s.length-1];l.startsWith(c[c.length-1])&&(c[c.length-1]=l)}else c.length=0;return c})).subscribe(s=>e.innerHTML=s.join("").replace(/\s/g," ")),r.pipe(b(({mode:s})=>s==="search")).subscribe(s=>{switch(s.type){case"ArrowRight":e.innerText.length&&n.selectionStart===n.value.length&&(n.value=e.innerText);break}}),t.pipe(b(dr),m(({data:s})=>s)).pipe(w(s=>o.next(s)),_(()=>o.complete()),m(()=>({ref:e})))}function mi(e,{index$:t,keyboard$:r}){let o=xe();try{let n=ii(o.search,t),i=Se("search-query",e),a=Se("search-result",e);h(e,"click").pipe(b(({target:p})=>p instanceof Element&&!!p.closest("a"))).subscribe(()=>Je("search",!1)),r.pipe(b(({mode:p})=>p==="search")).subscribe(p=>{let c=Ie();switch(p.type){case"Enter":if(c===i){let l=new Map;for(let f of P(":first-child [href]",a)){let u=f.firstElementChild;l.set(f,parseFloat(u.getAttribute("data-md-score")))}if(l.size){let[[f]]=[...l].sort(([,u],[,d])=>d-u);f.click()}p.claim()}break;case"Escape":case"Tab":Je("search",!1),i.blur();break;case"ArrowUp":case"ArrowDown":if(typeof c=="undefined")i.focus();else{let l=[i,...P(":not(details) > [href], summary, details[open] [href]",a)],f=Math.max(0,(Math.max(0,l.indexOf(c))+l.length+(p.type==="ArrowUp"?-1:1))%l.length);l[f].focus()}p.claim();break;default:i!==Ie()&&i.focus()}}),r.pipe(b(({mode:p})=>p==="global")).subscribe(p=>{switch(p.type){case"f":case"s":case"/":i.focus(),i.select(),p.claim();break}});let s=si(i,{worker$:n});return O(s,ci(a,{worker$:n,query$:s})).pipe(Re(...ae("search-share",e).map(p=>pi(p,{query$:s})),...ae("search-suggest",e).map(p=>li(p,{worker$:n,keyboard$:r}))))}catch(n){return e.hidden=!0,Ye}}function fi(e,{index$:t,location$:r}){return z([t,r.pipe(Q(ye()),b(o=>!!o.searchParams.get("h")))]).pipe(m(([o,n])=>ni(o.config)(n.searchParams.get("h"))),m(o=>{var a;let n=new Map,i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(let s=i.nextNode();s;s=i.nextNode())if((a=s.parentElement)!=null&&a.offsetHeight){let p=s.textContent,c=o(p);c.length>p.length&&n.set(s,c)}for(let[s,p]of n){let{childNodes:c}=x("span",null,p);s.replaceWith(...Array.from(c))}return{ref:e,nodes:n}}))}function ss(e,{viewport$:t,main$:r}){let o=e.closest(".md-grid"),n=o.offsetTop-o.parentElement.offsetTop;return z([r,t]).pipe(m(([{offset:i,height:a},{offset:{y:s}}])=>(a=a+Math.min(n,Math.max(0,s-i))-n,{height:a,locked:s>=i+n})),K((i,a)=>i.height===a.height&&i.locked===a.locked))}function Xr(e,o){var n=o,{header$:t}=n,r=ao(n,["header$"]);let i=R(".md-sidebar__scrollwrap",e),{y:a}=Ve(i);return C(()=>{let s=new g,p=s.pipe(Z(),ie(!0)),c=s.pipe(Le(0,me));return c.pipe(re(t)).subscribe({next([{height:l},{height:f}]){i.style.height=`${l-2*a}px`,e.style.top=`${f}px`},complete(){i.style.height="",e.style.top=""}}),c.pipe(Ae()).subscribe(()=>{for(let l of P(".md-nav__link--active[href]",e)){if(!l.clientHeight)continue;let f=l.closest(".md-sidebar__scrollwrap");if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=ce(f);f.scrollTo({top:u-d/2})}}}),ue(P("label[tabindex]",e)).pipe(ne(l=>h(l,"click").pipe(ve(se),m(()=>l),U(p)))).subscribe(l=>{let f=R(`[id="${l.htmlFor}"]`);R(`[aria-labelledby="${l.id}"]`).setAttribute("aria-expanded",`${f.checked}`)}),ss(e,r).pipe(w(l=>s.next(l)),_(()=>s.complete()),m(l=>$({ref:e},l)))})}function ui(e,t){if(typeof t!="undefined"){let r=`https://api.github.com/repos/${e}/${t}`;return st(je(`${r}/releases/latest`).pipe(de(()=>S),m(o=>({version:o.tag_name})),De({})),je(r).pipe(de(()=>S),m(o=>({stars:o.stargazers_count,forks:o.forks_count})),De({}))).pipe(m(([o,n])=>$($({},o),n)))}else{let r=`https://api.github.com/users/${e}`;return je(r).pipe(m(o=>({repositories:o.public_repos})),De({}))}}function di(e,t){let r=`https://${e}/api/v4/projects/${encodeURIComponent(t)}`;return st(je(`${r}/releases/permalink/latest`).pipe(de(()=>S),m(({tag_name:o})=>({version:o})),De({})),je(r).pipe(de(()=>S),m(({star_count:o,forks_count:n})=>({stars:o,forks:n})),De({}))).pipe(m(([o,n])=>$($({},o),n)))}function hi(e){let t=e.match(/^.+github\.com\/([^/]+)\/?([^/]+)?/i);if(t){let[,r,o]=t;return ui(r,o)}if(t=e.match(/^.+?([^/]*gitlab[^/]+)\/(.+?)\/?$/i),t){let[,r,o]=t;return di(r,o)}return S}var cs;function ps(e){return cs||(cs=C(()=>{let t=__md_get("__source",sessionStorage);if(t)return I(t);if(ae("consent").length){let o=__md_get("__consent");if(!(o&&o.github))return S}return hi(e.href).pipe(w(o=>__md_set("__source",o,sessionStorage)))}).pipe(de(()=>S),b(t=>Object.keys(t).length>0),m(t=>({facts:t})),G(1)))}function bi(e){let t=R(":scope > :last-child",e);return C(()=>{let r=new g;return r.subscribe(({facts:o})=>{t.appendChild(Ln(o)),t.classList.add("md-source__repository--active")}),ps(e).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))})}function ls(e,{viewport$:t,header$:r}){return ge(document.body).pipe(v(()=>mr(e,{header$:r,viewport$:t})),m(({offset:{y:o}})=>({hidden:o>=10})),ee("hidden"))}function vi(e,t){return C(()=>{let r=new g;return r.subscribe({next({hidden:o}){e.hidden=o},complete(){e.hidden=!1}}),(B("navigation.tabs.sticky")?I({hidden:!1}):ls(e,t)).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))})}function ms(e,{viewport$:t,header$:r}){let o=new Map,n=P(".md-nav__link",e);for(let s of n){let p=decodeURIComponent(s.hash.substring(1)),c=fe(`[id="${p}"]`);typeof c!="undefined"&&o.set(s,c)}let i=r.pipe(ee("height"),m(({height:s})=>{let p=Se("main"),c=R(":scope > :first-child",p);return s+.8*(c.offsetTop-p.offsetTop)}),pe());return ge(document.body).pipe(ee("height"),v(s=>C(()=>{let p=[];return I([...o].reduce((c,[l,f])=>{for(;p.length&&o.get(p[p.length-1]).tagName>=f.tagName;)p.pop();let u=f.offsetTop;for(;!u&&f.parentElement;)f=f.parentElement,u=f.offsetTop;let d=f.offsetParent;for(;d;d=d.offsetParent)u+=d.offsetTop;return c.set([...p=[...p,l]].reverse(),u)},new Map))}).pipe(m(p=>new Map([...p].sort(([,c],[,l])=>c-l))),He(i),v(([p,c])=>t.pipe(Fr(([l,f],{offset:{y:u},size:d})=>{let y=u+d.height>=Math.floor(s.height);for(;f.length;){let[,M]=f[0];if(M-c=u&&!y)f=[l.pop(),...f];else break}return[l,f]},[[],[...p]]),K((l,f)=>l[0]===f[0]&&l[1]===f[1])))))).pipe(m(([s,p])=>({prev:s.map(([c])=>c),next:p.map(([c])=>c)})),Q({prev:[],next:[]}),Be(2,1),m(([s,p])=>s.prev.length{let i=new g,a=i.pipe(Z(),ie(!0));if(i.subscribe(({prev:s,next:p})=>{for(let[c]of p)c.classList.remove("md-nav__link--passed"),c.classList.remove("md-nav__link--active");for(let[c,[l]]of s.entries())l.classList.add("md-nav__link--passed"),l.classList.toggle("md-nav__link--active",c===s.length-1)}),B("toc.follow")){let s=O(t.pipe(_e(1),m(()=>{})),t.pipe(_e(250),m(()=>"smooth")));i.pipe(b(({prev:p})=>p.length>0),He(o.pipe(ve(se))),re(s)).subscribe(([[{prev:p}],c])=>{let[l]=p[p.length-1];if(l.offsetHeight){let f=cr(l);if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=ce(f);f.scrollTo({top:u-d/2,behavior:c})}}})}return B("navigation.tracking")&&t.pipe(U(a),ee("offset"),_e(250),Ce(1),U(n.pipe(Ce(1))),ct({delay:250}),re(i)).subscribe(([,{prev:s}])=>{let p=ye(),c=s[s.length-1];if(c&&c.length){let[l]=c,{hash:f}=new URL(l.href);p.hash!==f&&(p.hash=f,history.replaceState({},"",`${p}`))}else p.hash="",history.replaceState({},"",`${p}`)}),ms(e,{viewport$:t,header$:r}).pipe(w(s=>i.next(s)),_(()=>i.complete()),m(s=>$({ref:e},s)))})}function fs(e,{viewport$:t,main$:r,target$:o}){let n=t.pipe(m(({offset:{y:a}})=>a),Be(2,1),m(([a,s])=>a>s&&s>0),K()),i=r.pipe(m(({active:a})=>a));return z([i,n]).pipe(m(([a,s])=>!(a&&s)),K(),U(o.pipe(Ce(1))),ie(!0),ct({delay:250}),m(a=>({hidden:a})))}function yi(e,{viewport$:t,header$:r,main$:o,target$:n}){let i=new g,a=i.pipe(Z(),ie(!0));return i.subscribe({next({hidden:s}){e.hidden=s,s?(e.setAttribute("tabindex","-1"),e.blur()):e.removeAttribute("tabindex")},complete(){e.style.top="",e.hidden=!0,e.removeAttribute("tabindex")}}),r.pipe(U(a),ee("height")).subscribe(({height:s})=>{e.style.top=`${s+16}px`}),h(e,"click").subscribe(s=>{s.preventDefault(),window.scrollTo({top:0})}),fs(e,{viewport$:t,main$:o,target$:n}).pipe(w(s=>i.next(s)),_(()=>i.complete()),m(s=>$({ref:e},s)))}function xi({document$:e,viewport$:t}){e.pipe(v(()=>P(".md-ellipsis")),ne(r=>tt(r).pipe(U(e.pipe(Ce(1))),b(o=>o),m(()=>r),Te(1))),b(r=>r.offsetWidth{let o=r.innerText,n=r.closest("a")||r;return n.title=o,B("content.tooltips")?mt(n,{viewport$:t}).pipe(U(e.pipe(Ce(1))),_(()=>n.removeAttribute("title"))):S})).subscribe(),B("content.tooltips")&&e.pipe(v(()=>P(".md-status")),ne(r=>mt(r,{viewport$:t}))).subscribe()}function Ei({document$:e,tablet$:t}){e.pipe(v(()=>P(".md-toggle--indeterminate")),w(r=>{r.indeterminate=!0,r.checked=!1}),ne(r=>h(r,"change").pipe(Dr(()=>r.classList.contains("md-toggle--indeterminate")),m(()=>r))),re(t)).subscribe(([r,o])=>{r.classList.remove("md-toggle--indeterminate"),o&&(r.checked=!1)})}function us(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}function wi({document$:e}){e.pipe(v(()=>P("[data-md-scrollfix]")),w(t=>t.removeAttribute("data-md-scrollfix")),b(us),ne(t=>h(t,"touchstart").pipe(m(()=>t)))).subscribe(t=>{let r=t.scrollTop;r===0?t.scrollTop=1:r+t.offsetHeight===t.scrollHeight&&(t.scrollTop=r-1)})}function Ti({viewport$:e,tablet$:t}){z([ze("search"),t]).pipe(m(([r,o])=>r&&!o),v(r=>I(r).pipe(Ge(r?400:100))),re(e)).subscribe(([r,{offset:{y:o}}])=>{if(r)document.body.setAttribute("data-md-scrolllock",""),document.body.style.top=`-${o}px`;else{let n=-1*parseInt(document.body.style.top,10);document.body.removeAttribute("data-md-scrolllock"),document.body.style.top="",n&&window.scrollTo(0,n)}})}Object.entries||(Object.entries=function(e){let t=[];for(let r of Object.keys(e))t.push([r,e[r]]);return t});Object.values||(Object.values=function(e){let t=[];for(let r of Object.keys(e))t.push(e[r]);return t});typeof Element!="undefined"&&(Element.prototype.scrollTo||(Element.prototype.scrollTo=function(e,t){typeof e=="object"?(this.scrollLeft=e.left,this.scrollTop=e.top):(this.scrollLeft=e,this.scrollTop=t)}),Element.prototype.replaceWith||(Element.prototype.replaceWith=function(...e){let t=this.parentNode;if(t){e.length===0&&t.removeChild(this);for(let r=e.length-1;r>=0;r--){let o=e[r];typeof o=="string"?o=document.createTextNode(o):o.parentNode&&o.parentNode.removeChild(o),r?t.insertBefore(this.previousSibling,o):t.replaceChild(o,this)}}}));function ds(){return location.protocol==="file:"?Tt(`${new URL("search/search_index.js",Zr.base)}`).pipe(m(()=>__index),G(1)):je(new URL("search/search_index.json",Zr.base))}document.documentElement.classList.remove("no-js");document.documentElement.classList.add("js");var ot=Bo(),Wt=an(),Mt=pn(Wt),eo=nn(),Oe=vn(),hr=Pt("(min-width: 960px)"),Oi=Pt("(min-width: 1220px)"),Mi=ln(),Zr=xe(),Li=document.forms.namedItem("search")?ds():Ye,to=new g;Xn({alert$:to});var ro=new g;B("navigation.instant")&&ri({location$:Wt,viewport$:Oe,progress$:ro}).subscribe(ot);var Si;((Si=Zr.version)==null?void 0:Si.provider)==="mike"&&ai({document$:ot});O(Wt,Mt).pipe(Ge(125)).subscribe(()=>{Je("drawer",!1),Je("search",!1)});eo.pipe(b(({mode:e})=>e==="global")).subscribe(e=>{switch(e.type){case"p":case",":let t=fe("link[rel=prev]");typeof t!="undefined"&<(t);break;case"n":case".":let r=fe("link[rel=next]");typeof r!="undefined"&<(r);break;case"Enter":let o=Ie();o instanceof HTMLLabelElement&&o.click()}});xi({viewport$:Oe,document$:ot});Ei({document$:ot,tablet$:hr});wi({document$:ot});Ti({viewport$:Oe,tablet$:hr});var rt=Qn(Se("header"),{viewport$:Oe}),Ft=ot.pipe(m(()=>Se("main")),v(e=>Bn(e,{viewport$:Oe,header$:rt})),G(1)),hs=O(...ae("consent").map(e=>xn(e,{target$:Mt})),...ae("dialog").map(e=>zn(e,{alert$:to})),...ae("header").map(e=>Kn(e,{viewport$:Oe,header$:rt,main$:Ft})),...ae("palette").map(e=>Gn(e)),...ae("progress").map(e=>Jn(e,{progress$:ro})),...ae("search").map(e=>mi(e,{index$:Li,keyboard$:eo})),...ae("source").map(e=>bi(e))),bs=C(()=>O(...ae("announce").map(e=>yn(e)),...ae("content").map(e=>Nn(e,{viewport$:Oe,target$:Mt,print$:Mi})),...ae("content").map(e=>B("search.highlight")?fi(e,{index$:Li,location$:Wt}):S),...ae("header-title").map(e=>Yn(e,{viewport$:Oe,header$:rt})),...ae("sidebar").map(e=>e.getAttribute("data-md-type")==="navigation"?Nr(Oi,()=>Xr(e,{viewport$:Oe,header$:rt,main$:Ft})):Nr(hr,()=>Xr(e,{viewport$:Oe,header$:rt,main$:Ft}))),...ae("tabs").map(e=>vi(e,{viewport$:Oe,header$:rt})),...ae("toc").map(e=>gi(e,{viewport$:Oe,header$:rt,main$:Ft,target$:Mt})),...ae("top").map(e=>yi(e,{viewport$:Oe,header$:rt,main$:Ft,target$:Mt})))),_i=ot.pipe(v(()=>bs),Re(hs),G(1));_i.subscribe();window.document$=ot;window.location$=Wt;window.target$=Mt;window.keyboard$=eo;window.viewport$=Oe;window.tablet$=hr;window.screen$=Oi;window.print$=Mi;window.alert$=to;window.progress$=ro;window.component$=_i;})(); +//# sourceMappingURL=bundle.56dfad97.min.js.map + diff --git a/assets/javascripts/bundle.56dfad97.min.js.map b/assets/javascripts/bundle.56dfad97.min.js.map new file mode 100644 index 0000000..eb83bdb --- /dev/null +++ b/assets/javascripts/bundle.56dfad97.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["node_modules/focus-visible/dist/focus-visible.js", "node_modules/escape-html/index.js", "node_modules/clipboard/dist/clipboard.js", "src/templates/assets/javascripts/bundle.ts", "node_modules/tslib/tslib.es6.mjs", "node_modules/rxjs/src/internal/util/isFunction.ts", "node_modules/rxjs/src/internal/util/createErrorClass.ts", "node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "node_modules/rxjs/src/internal/util/arrRemove.ts", "node_modules/rxjs/src/internal/Subscription.ts", "node_modules/rxjs/src/internal/config.ts", "node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "node_modules/rxjs/src/internal/util/noop.ts", "node_modules/rxjs/src/internal/NotificationFactories.ts", "node_modules/rxjs/src/internal/util/errorContext.ts", "node_modules/rxjs/src/internal/Subscriber.ts", "node_modules/rxjs/src/internal/symbol/observable.ts", "node_modules/rxjs/src/internal/util/identity.ts", "node_modules/rxjs/src/internal/util/pipe.ts", "node_modules/rxjs/src/internal/Observable.ts", "node_modules/rxjs/src/internal/util/lift.ts", "node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "node_modules/rxjs/src/internal/scheduler/animationFrameProvider.ts", "node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "node_modules/rxjs/src/internal/Subject.ts", "node_modules/rxjs/src/internal/BehaviorSubject.ts", "node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "node_modules/rxjs/src/internal/ReplaySubject.ts", "node_modules/rxjs/src/internal/scheduler/Action.ts", "node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "node_modules/rxjs/src/internal/Scheduler.ts", "node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "node_modules/rxjs/src/internal/scheduler/async.ts", "node_modules/rxjs/src/internal/scheduler/QueueAction.ts", "node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts", "node_modules/rxjs/src/internal/scheduler/queue.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts", "node_modules/rxjs/src/internal/scheduler/animationFrame.ts", "node_modules/rxjs/src/internal/observable/empty.ts", "node_modules/rxjs/src/internal/util/isScheduler.ts", "node_modules/rxjs/src/internal/util/args.ts", "node_modules/rxjs/src/internal/util/isArrayLike.ts", "node_modules/rxjs/src/internal/util/isPromise.ts", "node_modules/rxjs/src/internal/util/isInteropObservable.ts", "node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "node_modules/rxjs/src/internal/symbol/iterator.ts", "node_modules/rxjs/src/internal/util/isIterable.ts", "node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "node_modules/rxjs/src/internal/observable/innerFrom.ts", "node_modules/rxjs/src/internal/util/executeSchedule.ts", "node_modules/rxjs/src/internal/operators/observeOn.ts", "node_modules/rxjs/src/internal/operators/subscribeOn.ts", "node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "node_modules/rxjs/src/internal/scheduled/scheduled.ts", "node_modules/rxjs/src/internal/observable/from.ts", "node_modules/rxjs/src/internal/observable/of.ts", "node_modules/rxjs/src/internal/observable/throwError.ts", "node_modules/rxjs/src/internal/util/EmptyError.ts", "node_modules/rxjs/src/internal/util/isDate.ts", "node_modules/rxjs/src/internal/operators/map.ts", "node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "node_modules/rxjs/src/internal/util/argsArgArrayOrObject.ts", "node_modules/rxjs/src/internal/util/createObject.ts", "node_modules/rxjs/src/internal/observable/combineLatest.ts", "node_modules/rxjs/src/internal/operators/mergeInternals.ts", "node_modules/rxjs/src/internal/operators/mergeMap.ts", "node_modules/rxjs/src/internal/operators/mergeAll.ts", "node_modules/rxjs/src/internal/operators/concatAll.ts", "node_modules/rxjs/src/internal/observable/concat.ts", "node_modules/rxjs/src/internal/observable/defer.ts", "node_modules/rxjs/src/internal/observable/fromEvent.ts", "node_modules/rxjs/src/internal/observable/fromEventPattern.ts", "node_modules/rxjs/src/internal/observable/timer.ts", "node_modules/rxjs/src/internal/observable/merge.ts", "node_modules/rxjs/src/internal/observable/never.ts", "node_modules/rxjs/src/internal/util/argsOrArgArray.ts", "node_modules/rxjs/src/internal/operators/filter.ts", "node_modules/rxjs/src/internal/observable/zip.ts", "node_modules/rxjs/src/internal/operators/audit.ts", "node_modules/rxjs/src/internal/operators/auditTime.ts", "node_modules/rxjs/src/internal/operators/bufferCount.ts", "node_modules/rxjs/src/internal/operators/catchError.ts", "node_modules/rxjs/src/internal/operators/scanInternals.ts", "node_modules/rxjs/src/internal/operators/combineLatest.ts", "node_modules/rxjs/src/internal/operators/combineLatestWith.ts", "node_modules/rxjs/src/internal/operators/debounce.ts", "node_modules/rxjs/src/internal/operators/debounceTime.ts", "node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts", "node_modules/rxjs/src/internal/operators/take.ts", "node_modules/rxjs/src/internal/operators/ignoreElements.ts", "node_modules/rxjs/src/internal/operators/mapTo.ts", "node_modules/rxjs/src/internal/operators/delayWhen.ts", "node_modules/rxjs/src/internal/operators/delay.ts", "node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts", "node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts", "node_modules/rxjs/src/internal/operators/throwIfEmpty.ts", "node_modules/rxjs/src/internal/operators/endWith.ts", "node_modules/rxjs/src/internal/operators/finalize.ts", "node_modules/rxjs/src/internal/operators/first.ts", "node_modules/rxjs/src/internal/operators/takeLast.ts", "node_modules/rxjs/src/internal/operators/merge.ts", "node_modules/rxjs/src/internal/operators/mergeWith.ts", "node_modules/rxjs/src/internal/operators/repeat.ts", "node_modules/rxjs/src/internal/operators/scan.ts", "node_modules/rxjs/src/internal/operators/share.ts", "node_modules/rxjs/src/internal/operators/shareReplay.ts", "node_modules/rxjs/src/internal/operators/skip.ts", "node_modules/rxjs/src/internal/operators/skipUntil.ts", "node_modules/rxjs/src/internal/operators/startWith.ts", "node_modules/rxjs/src/internal/operators/switchMap.ts", "node_modules/rxjs/src/internal/operators/takeUntil.ts", "node_modules/rxjs/src/internal/operators/takeWhile.ts", "node_modules/rxjs/src/internal/operators/tap.ts", "node_modules/rxjs/src/internal/operators/throttle.ts", "node_modules/rxjs/src/internal/operators/throttleTime.ts", "node_modules/rxjs/src/internal/operators/withLatestFrom.ts", "node_modules/rxjs/src/internal/operators/zip.ts", "node_modules/rxjs/src/internal/operators/zipWith.ts", "src/templates/assets/javascripts/browser/document/index.ts", "src/templates/assets/javascripts/browser/element/_/index.ts", "src/templates/assets/javascripts/browser/element/focus/index.ts", "src/templates/assets/javascripts/browser/element/hover/index.ts", "src/templates/assets/javascripts/utilities/h/index.ts", "src/templates/assets/javascripts/utilities/round/index.ts", "src/templates/assets/javascripts/browser/script/index.ts", "src/templates/assets/javascripts/browser/element/size/_/index.ts", "src/templates/assets/javascripts/browser/element/size/content/index.ts", "src/templates/assets/javascripts/browser/element/offset/_/index.ts", "src/templates/assets/javascripts/browser/element/offset/content/index.ts", "src/templates/assets/javascripts/browser/element/visibility/index.ts", "src/templates/assets/javascripts/browser/toggle/index.ts", "src/templates/assets/javascripts/browser/keyboard/index.ts", "src/templates/assets/javascripts/browser/location/_/index.ts", "src/templates/assets/javascripts/browser/location/hash/index.ts", "src/templates/assets/javascripts/browser/media/index.ts", "src/templates/assets/javascripts/browser/request/index.ts", "src/templates/assets/javascripts/browser/viewport/offset/index.ts", "src/templates/assets/javascripts/browser/viewport/size/index.ts", "src/templates/assets/javascripts/browser/viewport/_/index.ts", "src/templates/assets/javascripts/browser/viewport/at/index.ts", "src/templates/assets/javascripts/browser/worker/index.ts", "src/templates/assets/javascripts/_/index.ts", "src/templates/assets/javascripts/components/_/index.ts", "src/templates/assets/javascripts/components/announce/index.ts", "src/templates/assets/javascripts/components/consent/index.ts", "src/templates/assets/javascripts/templates/tooltip/index.tsx", "src/templates/assets/javascripts/templates/annotation/index.tsx", "src/templates/assets/javascripts/templates/clipboard/index.tsx", "src/templates/assets/javascripts/templates/search/index.tsx", "src/templates/assets/javascripts/templates/source/index.tsx", "src/templates/assets/javascripts/templates/tabbed/index.tsx", "src/templates/assets/javascripts/templates/table/index.tsx", "src/templates/assets/javascripts/templates/version/index.tsx", "src/templates/assets/javascripts/components/tooltip2/index.ts", "src/templates/assets/javascripts/components/content/annotation/_/index.ts", "src/templates/assets/javascripts/components/content/annotation/list/index.ts", "src/templates/assets/javascripts/components/content/annotation/block/index.ts", "src/templates/assets/javascripts/components/content/code/_/index.ts", "src/templates/assets/javascripts/components/content/details/index.ts", "src/templates/assets/javascripts/components/content/mermaid/index.css", "src/templates/assets/javascripts/components/content/mermaid/index.ts", "src/templates/assets/javascripts/components/content/table/index.ts", "src/templates/assets/javascripts/components/content/tabs/index.ts", "src/templates/assets/javascripts/components/content/_/index.ts", "src/templates/assets/javascripts/components/dialog/index.ts", "src/templates/assets/javascripts/components/tooltip/index.ts", "src/templates/assets/javascripts/components/header/_/index.ts", "src/templates/assets/javascripts/components/header/title/index.ts", "src/templates/assets/javascripts/components/main/index.ts", "src/templates/assets/javascripts/components/palette/index.ts", "src/templates/assets/javascripts/components/progress/index.ts", "src/templates/assets/javascripts/integrations/clipboard/index.ts", "src/templates/assets/javascripts/integrations/sitemap/index.ts", "src/templates/assets/javascripts/integrations/instant/index.ts", "src/templates/assets/javascripts/integrations/search/highlighter/index.ts", "src/templates/assets/javascripts/integrations/search/worker/message/index.ts", "src/templates/assets/javascripts/integrations/search/worker/_/index.ts", "src/templates/assets/javascripts/integrations/version/index.ts", "src/templates/assets/javascripts/components/search/query/index.ts", "src/templates/assets/javascripts/components/search/result/index.ts", "src/templates/assets/javascripts/components/search/share/index.ts", "src/templates/assets/javascripts/components/search/suggest/index.ts", "src/templates/assets/javascripts/components/search/_/index.ts", "src/templates/assets/javascripts/components/search/highlight/index.ts", "src/templates/assets/javascripts/components/sidebar/index.ts", "src/templates/assets/javascripts/components/source/facts/github/index.ts", "src/templates/assets/javascripts/components/source/facts/gitlab/index.ts", "src/templates/assets/javascripts/components/source/facts/_/index.ts", "src/templates/assets/javascripts/components/source/_/index.ts", "src/templates/assets/javascripts/components/tabs/index.ts", "src/templates/assets/javascripts/components/toc/index.ts", "src/templates/assets/javascripts/components/top/index.ts", "src/templates/assets/javascripts/patches/ellipsis/index.ts", "src/templates/assets/javascripts/patches/indeterminate/index.ts", "src/templates/assets/javascripts/patches/scrollfix/index.ts", "src/templates/assets/javascripts/patches/scrolllock/index.ts", "src/templates/assets/javascripts/polyfills/index.ts"], + "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. \u00AF\\_(\u30C4)_/\u00AF\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\n", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT \u00A9 Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});", "/*\n * Copyright (c) 2016-2024 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport \"focus-visible\"\n\nimport {\n EMPTY,\n NEVER,\n Observable,\n Subject,\n defer,\n delay,\n filter,\n map,\n merge,\n mergeWith,\n shareReplay,\n switchMap\n} from \"rxjs\"\n\nimport { configuration, feature } from \"./_\"\nimport {\n at,\n getActiveElement,\n getOptionalElement,\n requestJSON,\n setLocation,\n setToggle,\n watchDocument,\n watchKeyboard,\n watchLocation,\n watchLocationTarget,\n watchMedia,\n watchPrint,\n watchScript,\n watchViewport\n} from \"./browser\"\nimport {\n getComponentElement,\n getComponentElements,\n mountAnnounce,\n mountBackToTop,\n mountConsent,\n mountContent,\n mountDialog,\n mountHeader,\n mountHeaderTitle,\n mountPalette,\n mountProgress,\n mountSearch,\n mountSearchHiglight,\n mountSidebar,\n mountSource,\n mountTableOfContents,\n mountTabs,\n watchHeader,\n watchMain\n} from \"./components\"\nimport {\n SearchIndex,\n setupClipboardJS,\n setupInstantNavigation,\n setupVersionSelector\n} from \"./integrations\"\nimport {\n patchEllipsis,\n patchIndeterminate,\n patchScrollfix,\n patchScrolllock\n} from \"./patches\"\nimport \"./polyfills\"\n\n/* ----------------------------------------------------------------------------\n * Functions - @todo refactor\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch search index\n *\n * @returns Search index observable\n */\nfunction fetchSearchIndex(): Observable {\n if (location.protocol === \"file:\") {\n return watchScript(\n `${new URL(\"search/search_index.js\", config.base)}`\n )\n .pipe(\n // @ts-ignore - @todo fix typings\n map(() => __index),\n shareReplay(1)\n )\n } else {\n return requestJSON(\n new URL(\"search/search_index.json\", config.base)\n )\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Application\n * ------------------------------------------------------------------------- */\n\n/* Yay, JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\n/* Set up navigation observables and subjects */\nconst document$ = watchDocument()\nconst location$ = watchLocation()\nconst target$ = watchLocationTarget(location$)\nconst keyboard$ = watchKeyboard()\n\n/* Set up media observables */\nconst viewport$ = watchViewport()\nconst tablet$ = watchMedia(\"(min-width: 960px)\")\nconst screen$ = watchMedia(\"(min-width: 1220px)\")\nconst print$ = watchPrint()\n\n/* Retrieve search index, if search is enabled */\nconst config = configuration()\nconst index$ = document.forms.namedItem(\"search\")\n ? fetchSearchIndex()\n : NEVER\n\n/* Set up Clipboard.js integration */\nconst alert$ = new Subject()\nsetupClipboardJS({ alert$ })\n\n/* Set up progress indicator */\nconst progress$ = new Subject()\n\n/* Set up instant navigation, if enabled */\nif (feature(\"navigation.instant\"))\n setupInstantNavigation({ location$, viewport$, progress$ })\n .subscribe(document$)\n\n/* Set up version selector */\nif (config.version?.provider === \"mike\")\n setupVersionSelector({ document$ })\n\n/* Always close drawer and search on navigation */\nmerge(location$, target$)\n .pipe(\n delay(125)\n )\n .subscribe(() => {\n setToggle(\"drawer\", false)\n setToggle(\"search\", false)\n })\n\n/* Set up global keyboard handlers */\nkeyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\")\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Go to previous page */\n case \"p\":\n case \",\":\n const prev = getOptionalElement(\"link[rel=prev]\")\n if (typeof prev !== \"undefined\")\n setLocation(prev)\n break\n\n /* Go to next page */\n case \"n\":\n case \".\":\n const next = getOptionalElement(\"link[rel=next]\")\n if (typeof next !== \"undefined\")\n setLocation(next)\n break\n\n /* Expand navigation, see https://bit.ly/3ZjG5io */\n case \"Enter\":\n const active = getActiveElement()\n if (active instanceof HTMLLabelElement)\n active.click()\n }\n })\n\n/* Set up patches */\npatchEllipsis({ viewport$, document$ })\npatchIndeterminate({ document$, tablet$ })\npatchScrollfix({ document$ })\npatchScrolllock({ viewport$, tablet$ })\n\n/* Set up header and main area observable */\nconst header$ = watchHeader(getComponentElement(\"header\"), { viewport$ })\nconst main$ = document$\n .pipe(\n map(() => getComponentElement(\"main\")),\n switchMap(el => watchMain(el, { viewport$, header$ })),\n shareReplay(1)\n )\n\n/* Set up control component observables */\nconst control$ = merge(\n\n /* Consent */\n ...getComponentElements(\"consent\")\n .map(el => mountConsent(el, { target$ })),\n\n /* Dialog */\n ...getComponentElements(\"dialog\")\n .map(el => mountDialog(el, { alert$ })),\n\n /* Header */\n ...getComponentElements(\"header\")\n .map(el => mountHeader(el, { viewport$, header$, main$ })),\n\n /* Color palette */\n ...getComponentElements(\"palette\")\n .map(el => mountPalette(el)),\n\n /* Progress bar */\n ...getComponentElements(\"progress\")\n .map(el => mountProgress(el, { progress$ })),\n\n /* Search */\n ...getComponentElements(\"search\")\n .map(el => mountSearch(el, { index$, keyboard$ })),\n\n /* Repository information */\n ...getComponentElements(\"source\")\n .map(el => mountSource(el))\n)\n\n/* Set up content component observables */\nconst content$ = defer(() => merge(\n\n /* Announcement bar */\n ...getComponentElements(\"announce\")\n .map(el => mountAnnounce(el)),\n\n /* Content */\n ...getComponentElements(\"content\")\n .map(el => mountContent(el, { viewport$, target$, print$ })),\n\n /* Search highlighting */\n ...getComponentElements(\"content\")\n .map(el => feature(\"search.highlight\")\n ? mountSearchHiglight(el, { index$, location$ })\n : EMPTY\n ),\n\n /* Header title */\n ...getComponentElements(\"header-title\")\n .map(el => mountHeaderTitle(el, { viewport$, header$ })),\n\n /* Sidebar */\n ...getComponentElements(\"sidebar\")\n .map(el => el.getAttribute(\"data-md-type\") === \"navigation\"\n ? at(screen$, () => mountSidebar(el, { viewport$, header$, main$ }))\n : at(tablet$, () => mountSidebar(el, { viewport$, header$, main$ }))\n ),\n\n /* Navigation tabs */\n ...getComponentElements(\"tabs\")\n .map(el => mountTabs(el, { viewport$, header$ })),\n\n /* Table of contents */\n ...getComponentElements(\"toc\")\n .map(el => mountTableOfContents(el, {\n viewport$, header$, main$, target$\n })),\n\n /* Back-to-top button */\n ...getComponentElements(\"top\")\n .map(el => mountBackToTop(el, { viewport$, header$, main$, target$ }))\n))\n\n/* Set up component observables */\nconst component$ = document$\n .pipe(\n switchMap(() => content$),\n mergeWith(control$),\n shareReplay(1)\n )\n\n/* Subscribe to all components */\ncomponent$.subscribe()\n\n/* ----------------------------------------------------------------------------\n * Exports\n * ------------------------------------------------------------------------- */\n\nwindow.document$ = document$ /* Document observable */\nwindow.location$ = location$ /* Location subject */\nwindow.target$ = target$ /* Location target observable */\nwindow.keyboard$ = keyboard$ /* Keyboard observable */\nwindow.viewport$ = viewport$ /* Viewport observable */\nwindow.tablet$ = tablet$ /* Media tablet observable */\nwindow.screen$ = screen$ /* Media screen observable */\nwindow.print$ = print$ /* Media print observable */\nwindow.alert$ = alert$ /* Alert subject */\nwindow.progress$ = progress$ /* Progress indicator subject */\nwindow.component$ = component$ /* Component observable */\n", "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n", "/**\n * Returns true if the object is a function.\n * @param value The value to check\n */\nexport function isFunction(value: any): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n", "/**\n * Used to create Error subclasses until the community moves away from ES5.\n *\n * This is because compiling from TypeScript down to ES5 has issues with subclassing Errors\n * as well as other built-in types: https://github.com/Microsoft/TypeScript/issues/12123\n *\n * @param createImpl A factory function to create the actual constructor implementation. The returned\n * function should be a named function that calls `_super` internally.\n */\nexport function createErrorClass(createImpl: (_super: any) => any): T {\n const _super = (instance: any) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface UnsubscriptionError extends Error {\n readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (errors: any[]): UnsubscriptionError;\n}\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass(\n (_super) =>\n function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n }\n);\n", "/**\n * Removes an item from an array, mutating it.\n * @param arr The array to remove the item from\n * @param item The item to remove\n */\nexport function arrRemove(arr: T[] | undefined | null, item: T) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic, Unsubscribable } from './types';\nimport { arrRemove } from './util/arrRemove';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nexport class Subscription implements SubscriptionLike {\n /** @nocollapse */\n public static EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n */\n public closed = false;\n\n private _parentage: Subscription[] | Subscription | null = null;\n\n /**\n * The list of registered finalizers to execute upon unsubscription. Adding and removing from this\n * list occurs in the {@link #add} and {@link #remove} methods.\n */\n private _finalizers: Exclude[] | null = null;\n\n /**\n * @param initialTeardown A function executed first as part of the finalization\n * process that is kicked off when {@link #unsubscribe} is called.\n */\n constructor(private initialTeardown?: () => void) {}\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n unsubscribe(): void {\n let errors: any[] | undefined;\n\n if (!this.closed) {\n this.closed = true;\n\n // Remove this from it's parents.\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n } else {\n _parentage.remove(this);\n }\n }\n\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n } catch (err) {\n errors = errors ?? [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n } else {\n errors.push(err);\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n\n /**\n * Adds a finalizer to this subscription, so that finalization will be unsubscribed/called\n * when this subscription is unsubscribed. If this subscription is already {@link #closed},\n * because it has already been unsubscribed, then whatever finalizer is passed to it\n * will automatically be executed (unless the finalizer itself is also a closed subscription).\n *\n * Closed Subscriptions cannot be added as finalizers to any subscription. Adding a closed\n * subscription to a any subscription will result in no operation. (A noop).\n *\n * Adding a subscription to itself, or adding `null` or `undefined` will not perform any\n * operation at all. (A noop).\n *\n * `Subscription` instances that are added to this instance will automatically remove themselves\n * if they are unsubscribed. Functions and {@link Unsubscribable} objects that you wish to remove\n * will need to be removed manually with {@link #remove}\n *\n * @param teardown The finalization logic to add to this subscription.\n */\n add(teardown: TeardownLogic): void {\n // Only add the finalizer if it's not undefined\n // and don't add a subscription to itself.\n if (teardown && teardown !== this) {\n if (this.closed) {\n // If this subscription is already closed,\n // execute whatever finalizer is handed to it automatically.\n execFinalizer(teardown);\n } else {\n if (teardown instanceof Subscription) {\n // We don't add closed subscriptions, and we don't add the same subscription\n // twice. Subscription unsubscribe is idempotent.\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = this._finalizers ?? []).push(teardown);\n }\n }\n }\n\n /**\n * Checks to see if a this subscription already has a particular parent.\n * This will signal that this subscription has already been added to the parent in question.\n * @param parent the parent to check for\n */\n private _hasParent(parent: Subscription) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n\n /**\n * Adds a parent to this subscription so it can be removed from the parent if it\n * unsubscribes on it's own.\n *\n * NOTE: THIS ASSUMES THAT {@link _hasParent} HAS ALREADY BEEN CHECKED.\n * @param parent The parent subscription to add\n */\n private _addParent(parent: Subscription) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n\n /**\n * Called on a child when it is removed via {@link #remove}.\n * @param parent The parent to remove\n */\n private _removeParent(parent: Subscription) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n } else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n\n /**\n * Removes a finalizer from this subscription that was previously added with the {@link #add} method.\n *\n * Note that `Subscription` instances, when unsubscribed, will automatically remove themselves\n * from every other `Subscription` they have been added to. This means that using the `remove` method\n * is not a common thing and should be used thoughtfully.\n *\n * If you add the same finalizer instance of a function or an unsubscribable object to a `Subscription` instance\n * more than once, you will need to call `remove` the same number of times to remove all instances.\n *\n * All finalizer instances are removed to free up memory upon unsubscription.\n *\n * @param teardown The finalizer to remove from this subscription\n */\n remove(teardown: Exclude): void {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\n\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\n\nexport function isSubscription(value: any): value is Subscription {\n return (\n value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe))\n );\n}\n\nfunction execFinalizer(finalizer: Unsubscribable | (() => void)) {\n if (isFunction(finalizer)) {\n finalizer();\n } else {\n finalizer.unsubscribe();\n }\n}\n", "import { Subscriber } from './Subscriber';\nimport { ObservableNotification } from './types';\n\n/**\n * The {@link GlobalConfig} object for RxJS. It is used to configure things\n * like how to react on unhandled errors.\n */\nexport const config: GlobalConfig = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like how to react on unhandled errors. Accessible via {@link config}\n * object.\n */\nexport interface GlobalConfig {\n /**\n * A registration point for unhandled errors from RxJS. These are errors that\n * cannot were not handled by consuming code in the usual subscription path. For\n * example, if you have this configured, and you subscribe to an observable without\n * providing an error handler, errors from that subscription will end up here. This\n * will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onUnhandledError: ((err: any) => void) | null;\n\n /**\n * A registration point for notifications that cannot be sent to subscribers because they\n * have completed, errored or have been explicitly unsubscribed. By default, next, complete\n * and error notifications sent to stopped subscribers are noops. However, sometimes callers\n * might want a different behavior. For example, with sources that attempt to report errors\n * to stopped subscribers, a caller can configure RxJS to throw an unhandled error instead.\n * This will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onStoppedNotification: ((notification: ObservableNotification, subscriber: Subscriber) => void) | null;\n\n /**\n * The promise constructor used by default for {@link Observable#toPromise toPromise} and {@link Observable#forEach forEach}\n * methods.\n *\n * @deprecated As of version 8, RxJS will no longer support this sort of injection of a\n * Promise constructor. If you need a Promise implementation other than native promises,\n * please polyfill/patch Promise as you see appropriate. Will be removed in v8.\n */\n Promise?: PromiseConstructorLike;\n\n /**\n * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n * call in a try/catch block. It also enables producer interference, a nasty bug\n * where a multicast can be broken for all observers by a downstream consumer with\n * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BUY TIME\n * FOR MIGRATION REASONS.\n *\n * @deprecated As of version 8, RxJS will no longer support synchronous throwing\n * of unhandled errors. All errors will be thrown on a separate call stack to prevent bad\n * behaviors described above. Will be removed in v8.\n */\n useDeprecatedSynchronousErrorHandling: boolean;\n\n /**\n * If true, enables an as-of-yet undocumented feature from v5: The ability to access\n * `unsubscribe()` via `this` context in `next` functions created in observers passed\n * to `subscribe`.\n *\n * This is being removed because the performance was severely problematic, and it could also cause\n * issues when types other than POJOs are passed to subscribe as subscribers, as they will likely have\n * their `this` context overwritten.\n *\n * @deprecated As of version 8, RxJS will no longer support altering the\n * context of next functions provided as part of an observer to Subscribe. Instead,\n * you will have access to a subscription or a signal or token that will allow you to do things like\n * unsubscribe and test closed status. Will be removed in v8.\n */\n useDeprecatedNextContext: boolean;\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetTimeoutFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearTimeoutFunction = (handle: TimerHandle) => void;\n\ninterface TimeoutProvider {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n delegate:\n | {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n }\n | undefined;\n}\n\nexport const timeoutProvider: TimeoutProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setTimeout(handler: () => void, timeout?: number, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate?.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return (delegate?.clearTimeout || clearTimeout)(handle as any);\n },\n delegate: undefined,\n};\n", "import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\n\n/**\n * Handles an error on another job either with the user-configured {@link onUnhandledError},\n * or by throwing it on that new job so it can be picked up by `window.onerror`, `process.on('error')`, etc.\n *\n * This should be called whenever there is an error that is out-of-band with the subscription\n * or when an error hits a terminal boundary of the subscription and no error handler was provided.\n *\n * @param err the error to report\n */\nexport function reportUnhandledError(err: any) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n // Execute the user-configured error handler.\n onUnhandledError(err);\n } else {\n // Throw so it is picked up by the runtime's uncaught error mechanism.\n throw err;\n }\n });\n}\n", "/* tslint:disable:no-empty */\nexport function noop() { }\n", "import { CompleteNotification, NextNotification, ErrorNotification } from './types';\n\n/**\n * A completion object optimized for memory use and created to be the\n * same \"shape\" as other notifications in v8.\n * @internal\n */\nexport const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined) as CompleteNotification)();\n\n/**\n * Internal use only. Creates an optimized error notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function errorNotification(error: any): ErrorNotification {\n return createNotification('E', undefined, error) as any;\n}\n\n/**\n * Internal use only. Creates an optimized next notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function nextNotification(value: T) {\n return createNotification('N', value, undefined) as NextNotification;\n}\n\n/**\n * Ensures that all notifications created internally have the same \"shape\" in v8.\n *\n * TODO: This is only exported to support a crazy legacy test in `groupBy`.\n * @internal\n */\nexport function createNotification(kind: 'N' | 'E' | 'C', value: any, error: any) {\n return {\n kind,\n value,\n error,\n };\n}\n", "import { config } from '../config';\n\nlet context: { errorThrown: boolean; error: any } | null = null;\n\n/**\n * Handles dealing with errors for super-gross mode. Creates a context, in which\n * any synchronously thrown errors will be passed to {@link captureError}. Which\n * will record the error such that it will be rethrown after the call back is complete.\n * TODO: Remove in v8\n * @param cb An immediately executed function.\n */\nexport function errorContext(cb: () => void) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context!;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n } else {\n // This is the general non-deprecated path for everyone that\n // isn't crazy enough to use super-gross mode (useDeprecatedSynchronousErrorHandling)\n cb();\n }\n}\n\n/**\n * Captures errors only in super-gross mode.\n * @param err the error to capture\n */\nexport function captureError(err: any) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { Observer, ObservableNotification } from './types';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber\n */\nexport class Subscriber extends Subscription implements Observer {\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param next The `next` callback of an Observer.\n * @param error The `error` callback of an\n * Observer.\n * @param complete The `complete` callback of an\n * Observer.\n * @return A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @nocollapse\n * @deprecated Do not use. Will be removed in v8. There is no replacement for this\n * method, and there is no reason to be creating instances of `Subscriber` directly.\n * If you have a specific use case, please file an issue.\n */\n static create(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber {\n return new SafeSubscriber(next, error, complete);\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected isStopped: boolean = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected destination: Subscriber | Observer; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * There is no reason to directly create an instance of Subscriber. This type is exported for typings reasons.\n */\n constructor(destination?: Subscriber | Observer) {\n super();\n if (destination) {\n this.destination = destination;\n // Automatically chain subscriptions together here.\n // if destination is a Subscription, then it is a Subscriber.\n if (isSubscription(destination)) {\n destination.add(this);\n }\n } else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n next(value?: T): void {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n } else {\n this._next(value!);\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached `Error`. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n error(err?: any): void {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n } else {\n this.isStopped = true;\n this._error(err);\n }\n }\n\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n complete(): void {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n } else {\n this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null!;\n }\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n try {\n this.destination.error(err);\n } finally {\n this.unsubscribe();\n }\n }\n\n protected _complete(): void {\n try {\n this.destination.complete();\n } finally {\n this.unsubscribe();\n }\n }\n}\n\n/**\n * This bind is captured here because we want to be able to have\n * compatibility with monoid libraries that tend to use a method named\n * `bind`. In particular, a library called Monio requires this.\n */\nconst _bind = Function.prototype.bind;\n\nfunction bind any>(fn: Fn, thisArg: any): Fn {\n return _bind.call(fn, thisArg);\n}\n\n/**\n * Internal optimization only, DO NOT EXPOSE.\n * @internal\n */\nclass ConsumerObserver implements Observer {\n constructor(private partialObserver: Partial>) {}\n\n next(value: T): void {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n\n error(err: any): void {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n } catch (error) {\n handleUnhandledError(error);\n }\n } else {\n handleUnhandledError(err);\n }\n }\n\n complete(): void {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\n\nexport class SafeSubscriber extends Subscriber {\n constructor(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((e?: any) => void) | null,\n complete?: (() => void) | null\n ) {\n super();\n\n let partialObserver: Partial>;\n if (isFunction(observerOrNext) || !observerOrNext) {\n // The first argument is a function, not an observer. The next\n // two arguments *could* be observers, or they could be empty.\n partialObserver = {\n next: (observerOrNext ?? undefined) as (((value: T) => void) | undefined),\n error: error ?? undefined,\n complete: complete ?? undefined,\n };\n } else {\n // The first argument is a partial observer.\n let context: any;\n if (this && config.useDeprecatedNextContext) {\n // This is a deprecated path that made `this.unsubscribe()` available in\n // next handler functions passed to subscribe. This only exists behind a flag\n // now, as it is *very* slow.\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n } else {\n // The \"normal\" path. Just use the partial observer directly.\n partialObserver = observerOrNext;\n }\n }\n\n // Wrap the partial observer to ensure it's a full observer, and\n // make sure proper error handling is accounted for.\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\n\nfunction handleUnhandledError(error: any) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n } else {\n // Ideal path, we report this as an unhandled error,\n // which is thrown on a new call stack.\n reportUnhandledError(error);\n }\n}\n\n/**\n * An error handler used when no error handler was supplied\n * to the SafeSubscriber -- meaning no error handler was supplied\n * do the `subscribe` call on our observable.\n * @param err The error to handle\n */\nfunction defaultErrorHandler(err: any) {\n throw err;\n}\n\n/**\n * A handler for notifications that cannot be sent to a stopped subscriber.\n * @param notification The notification being sent\n * @param subscriber The stopped subscriber\n */\nfunction handleStoppedNotification(notification: ObservableNotification, subscriber: Subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\n\n/**\n * The observer used as a stub for subscriptions where the user did not\n * pass any arguments to `subscribe`. Comes with the default error handling\n * behavior.\n */\nexport const EMPTY_OBSERVER: Readonly> & { closed: true } = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n", "/**\n * Symbol.observable or a string \"@@observable\". Used for interop\n *\n * @deprecated We will no longer be exporting this symbol in upcoming versions of RxJS.\n * Instead polyfill and use Symbol.observable directly *or* use https://www.npmjs.com/package/symbol-observable\n */\nexport const observable: string | symbol = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n", "/**\n * This function takes one parameter and just returns it. Simply put,\n * this is like `(x: T): T => x`.\n *\n * ## Examples\n *\n * This is useful in some cases when using things like `mergeMap`\n *\n * ```ts\n * import { interval, take, map, range, mergeMap, identity } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(5));\n *\n * const result$ = source$.pipe(\n * map(i => range(i)),\n * mergeMap(identity) // same as mergeMap(x => x)\n * );\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * Or when you want to selectively apply an operator\n *\n * ```ts\n * import { interval, take, identity } from 'rxjs';\n *\n * const shouldLimit = () => Math.random() < 0.5;\n *\n * const source$ = interval(1000);\n *\n * const result$ = source$.pipe(shouldLimit() ? take(5) : identity);\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * @param x Any value that is returned by this function\n * @returns The value passed as the first parameter to this function\n */\nexport function identity(x: T): T {\n return x;\n}\n", "import { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\nexport function pipe(): typeof identity;\nexport function pipe(fn1: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction,\n ...fns: UnaryFunction[]\n): UnaryFunction;\n\n/**\n * pipe() can be called on one or more functions, each of which can take one argument (\"UnaryFunction\")\n * and uses it to return a value.\n * It returns a function that takes one argument, passes it to the first UnaryFunction, and then\n * passes the result to the next one, passes that result to the next one, and so on. \n */\nexport function pipe(...fns: Array>): UnaryFunction {\n return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray(fns: Array>): UnaryFunction {\n if (fns.length === 0) {\n return identity as UnaryFunction;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input: T): R {\n return fns.reduce((prev: any, fn: UnaryFunction) => fn(prev), input as any);\n };\n}\n", "import { Operator } from './Operator';\nimport { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription, Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, Subscribable, Observer } from './types';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable\n */\nexport class Observable implements Subscribable {\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n source: Observable | undefined;\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n operator: Operator | undefined;\n\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new Observable by calling the Observable constructor\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new observable\n * @nocollapse\n * @deprecated Use `new Observable()` instead. Will be removed in v8.\n */\n static create: (...args: any[]) => any = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => {\n return new Observable(subscribe);\n };\n\n /**\n * Creates a new Observable, with this Observable instance as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param operator the operator defining the operation to take on the observable\n * @return a new observable with the Operator applied\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * If you have implemented an operator using `lift`, it is recommended that you create an\n * operator by simply returning `new Observable()` directly. See \"Creating new operators from\n * scratch\" section here: https://rxjs.dev/guide/operators\n */\n lift(operator?: Operator): Observable {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observerOrNext?: Partial> | ((value: T) => void)): Subscription;\n /** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */\n subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to Observable's constructor, but most of the time it is\n * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * the thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * of the following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular, do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, if the `error` method is not provided and an error happens,\n * it will be thrown asynchronously. Errors thrown asynchronously cannot be caught using `try`/`catch`. Instead,\n * use the {@link onUnhandledError} configuration option or use a runtime handler (like `window.onerror` or\n * `process.on('error)`) to be notified of unhandled errors. Because of this, it's recommended that you provide\n * an `error` method to avoid missing thrown errors.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of an Observer,\n * if you do not need to listen for something, you can omit a function by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to the `error` function, as with an Observer, if not provided, errors emitted by an Observable will be thrown asynchronously.\n *\n * You can, however, subscribe with no parameters at all. This may be the case where you're not interested in terminal events\n * and you also handled emissions internally by using operators (e.g. using `tap`).\n *\n * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n *\n * #### Examples\n *\n * Subscribe with an {@link guide/observer Observer}\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() {\n * // We actually could just remove this method,\n * // since we do not really care about errors right now.\n * },\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Subscribe with functions ({@link deprecations/subscribe-arguments deprecated})\n *\n * ```ts\n * import { of } from 'rxjs'\n *\n * let sum = 0;\n *\n * of(1, 2, 3).subscribe(\n * value => {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * () => console.log('Sum equals: ' + sum)\n * );\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Cancel a subscription\n *\n * ```ts\n * import { interval } from 'rxjs';\n *\n * const subscription = interval(1000).subscribe({\n * next(num) {\n * console.log(num)\n * },\n * complete() {\n * // Will not be called, even when cancelling subscription.\n * console.log('completed!');\n * }\n * });\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 'unsubscribed!' after 2.5s\n * ```\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown asynchronously as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {Subscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n subscribe(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((error: any) => void) | null,\n complete?: (() => void) | null\n ): Subscription {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(\n operator\n ? // We're dealing with a subscription in the\n // operator chain to one of our lifted operators.\n operator.call(subscriber, source)\n : source\n ? // If `source` has a value, but `operator` does not, something that\n // had intimate knowledge of our API, like our `Subject`, must have\n // set it. We're going to just call `_subscribe` directly.\n this._subscribe(subscriber)\n : // In all other cases, we're likely wrapping a user-provided initializer\n // function, so we need to catch errors and handle them appropriately.\n this._trySubscribe(subscriber)\n );\n });\n\n return subscriber;\n }\n\n /** @internal */\n protected _trySubscribe(sink: Subscriber): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n // We don't need to return anything in this case,\n // because it's just going to try to `add()` to a subscription\n // above.\n sink.error(err);\n }\n }\n\n /**\n * Used as a NON-CANCELLABLE means of subscribing to an observable, for use with\n * APIs that expect promises, like `async/await`. You cannot unsubscribe from this.\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * #### Example\n *\n * ```ts\n * import { interval, take } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(4));\n *\n * async function getTotal() {\n * let total = 0;\n *\n * await source$.forEach(value => {\n * total += value;\n * console.log('observable -> ' + value);\n * });\n *\n * return total;\n * }\n *\n * getTotal().then(\n * total => console.log('Total: ' + total)\n * );\n *\n * // Expected:\n * // 'observable -> 0'\n * // 'observable -> 1'\n * // 'observable -> 2'\n * // 'observable -> 3'\n * // 'Total: 6'\n * ```\n *\n * @param next a handler for each value emitted by the observable\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n forEach(next: (value: T) => void): Promise;\n\n /**\n * @param next a handler for each value emitted by the observable\n * @param promiseCtor a constructor function used to instantiate the Promise\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n * @deprecated Passing a Promise constructor will no longer be available\n * in upcoming versions of RxJS. This is because it adds weight to the library, for very\n * little benefit. If you need this functionality, it is recommended that you either\n * polyfill Promise, or you create an adapter to convert the returned native promise\n * to whatever promise implementation you wanted. Will be removed in v8.\n */\n forEach(next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise;\n\n forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n } catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n }) as Promise;\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): TeardownLogic {\n return this.source?.subscribe(subscriber);\n }\n\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n [Symbol_observable]() {\n return this;\n }\n\n /* tslint:disable:max-line-length */\n pipe(): Observable;\n pipe(op1: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction,\n ...operations: OperatorFunction[]\n ): Observable;\n /* tslint:enable:max-line-length */\n\n /**\n * Used to stitch together functional operators into a chain.\n * @method pipe\n * @return {Observable} the Observable result of all of the operators having\n * been called in the order they were passed in.\n *\n * ## Example\n *\n * ```ts\n * import { interval, filter, map, scan } from 'rxjs';\n *\n * interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x));\n * ```\n */\n pipe(...operations: OperatorFunction[]): Observable {\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: typeof Promise): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: PromiseConstructorLike): Promise;\n /* tslint:enable:max-line-length */\n\n /**\n * Subscribe to this Observable and get a Promise resolving on\n * `complete` with the last emission (if any).\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * @method toPromise\n * @param [promiseCtor] a constructor function used to instantiate\n * the Promise\n * @return A Promise that resolves with the last value emit, or\n * rejects on an error. If there were no emissions, Promise\n * resolves with undefined.\n * @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise\n */\n toPromise(promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n let value: T | undefined;\n this.subscribe(\n (x: T) => (value = x),\n (err: any) => reject(err),\n () => resolve(value)\n );\n }) as Promise;\n }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n return promiseCtor ?? config.Promise ?? Promise;\n}\n\nfunction isObserver(value: any): value is Observer {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\n\nfunction isSubscriber(value: any): value is Subscriber {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n", "import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\nimport { isFunction } from './isFunction';\n\n/**\n * Used to determine if an object is an Observable with a lift function.\n */\nexport function hasLift(source: any): source is { lift: InstanceType['lift'] } {\n return isFunction(source?.lift);\n}\n\n/**\n * Creates an `OperatorFunction`. Used to define operators throughout the library in a concise way.\n * @param init The logic to connect the liftedSource to the subscriber at the moment of subscription.\n */\nexport function operate(\n init: (liftedSource: Observable, subscriber: Subscriber) => (() => void) | void\n): OperatorFunction {\n return (source: Observable) => {\n if (hasLift(source)) {\n return source.lift(function (this: Subscriber, liftedSource: Observable) {\n try {\n return init(liftedSource, this);\n } catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n", "import { Subscriber } from '../Subscriber';\n\n/**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional teardown logic here. This will only be called on teardown if the\n * subscriber itself is not already closed. This is called after all other teardown logic is executed.\n */\nexport function createOperatorSubscriber(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n onFinalize?: () => void\n): Subscriber {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\n\n/**\n * A generic helper for allowing operators to be created with a Subscriber and\n * use closures to capture necessary state from the operator function itself.\n */\nexport class OperatorSubscriber extends Subscriber {\n /**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional finalization logic here. This will only be called on finalization if the\n * subscriber itself is not already closed. This is called after all other finalization logic is executed.\n * @param shouldUnsubscribe An optional check to see if an unsubscribe call should truly unsubscribe.\n * NOTE: This currently **ONLY** exists to support the strange behavior of {@link groupBy}, where unsubscription\n * to the resulting observable does not actually disconnect from the source if there are active subscriptions\n * to any grouped observable. (DO NOT EXPOSE OR USE EXTERNALLY!!!)\n */\n constructor(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n private onFinalize?: () => void,\n private shouldUnsubscribe?: () => boolean\n ) {\n // It's important - for performance reasons - that all of this class's\n // members are initialized and that they are always initialized in the same\n // order. This will ensure that all OperatorSubscriber instances have the\n // same hidden class in V8. This, in turn, will help keep the number of\n // hidden classes involved in property accesses within the base class as\n // low as possible. If the number of hidden classes involved exceeds four,\n // the property accesses will become megamorphic and performance penalties\n // will be incurred - i.e. inline caches won't be used.\n //\n // The reasons for ensuring all instances have the same hidden class are\n // further discussed in this blog post from Benedikt Meurer:\n // https://benediktmeurer.de/2018/03/23/impact-of-polymorphism-on-component-based-frameworks-like-react/\n super(destination);\n this._next = onNext\n ? function (this: OperatorSubscriber, value: T) {\n try {\n onNext(value);\n } catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (this: OperatorSubscriber, err: any) {\n try {\n onError(err);\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function (this: OperatorSubscriber) {\n try {\n onComplete();\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n\n unsubscribe() {\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n // Execute additional teardown if we have any and we didn't already do so.\n !closed && this.onFinalize?.();\n }\n }\n}\n", "import { Subscription } from '../Subscription';\n\ninterface AnimationFrameProvider {\n schedule(callback: FrameRequestCallback): Subscription;\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n delegate:\n | {\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n }\n | undefined;\n}\n\nexport const animationFrameProvider: AnimationFrameProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n schedule(callback) {\n let request = requestAnimationFrame;\n let cancel: typeof cancelAnimationFrame | undefined = cancelAnimationFrame;\n const { delegate } = animationFrameProvider;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n const handle = request((timestamp) => {\n // Clear the cancel function. The request has been fulfilled, so\n // attempting to cancel the request upon unsubscription would be\n // pointless.\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(() => cancel?.(handle));\n },\n requestAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.requestAnimationFrame || requestAnimationFrame)(...args);\n },\n cancelAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.cancelAnimationFrame || cancelAnimationFrame)(...args);\n },\n delegate: undefined,\n};\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface ObjectUnsubscribedError extends Error {}\n\nexport interface ObjectUnsubscribedErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (): ObjectUnsubscribedError;\n}\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = createErrorClass(\n (_super) =>\n function ObjectUnsubscribedErrorImpl(this: any) {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n }\n);\n", "import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n */\nexport class Subject extends Observable implements SubscriptionLike {\n closed = false;\n\n private currentObservers: Observer[] | null = null;\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n observers: Observer[] = [];\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n isStopped = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n hasError = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n thrownError: any = null;\n\n /**\n * Creates a \"subject\" by basically gluing an observer to an observable.\n *\n * @nocollapse\n * @deprecated Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion.\n */\n static create: (...args: any[]) => any = (destination: Observer, source: Observable): AnonymousSubject => {\n return new AnonymousSubject(destination, source);\n };\n\n constructor() {\n // NOTE: This must be here to obscure Observable's constructor.\n super();\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n lift(operator: Operator): Observable {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator as any;\n return subject as any;\n }\n\n /** @internal */\n protected _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n\n next(value: T) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n\n error(err: any) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.error(err);\n }\n }\n });\n }\n\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.complete();\n }\n }\n });\n }\n\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null!;\n }\n\n get observed() {\n return this.observers?.length > 0;\n }\n\n /** @internal */\n protected _trySubscribe(subscriber: Subscriber): TeardownLogic {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n\n /** @internal */\n protected _innerSubscribe(subscriber: Subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n\n /** @internal */\n protected _checkFinalizedStatuses(subscriber: Subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n } else if (isStopped) {\n subscriber.complete();\n }\n }\n\n /**\n * Creates a new Observable with this Subject as the source. You can do this\n * to create custom Observer-side logic of the Subject and conceal it from\n * code that uses the Observable.\n * @return {Observable} Observable that the Subject casts to\n */\n asObservable(): Observable {\n const observable: any = new Observable();\n observable.source = this;\n return observable;\n }\n}\n\n/**\n * @class AnonymousSubject\n */\nexport class AnonymousSubject extends Subject {\n constructor(\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n public destination?: Observer,\n source?: Observable\n ) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n this.destination?.next?.(value);\n }\n\n error(err: any) {\n this.destination?.error?.(err);\n }\n\n complete() {\n this.destination?.complete?.();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n return this.source?.subscribe(subscriber) ?? EMPTY_SUBSCRIPTION;\n }\n}\n", "import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n\n/**\n * A variant of Subject that requires an initial value and emits its current\n * value whenever it is subscribed to.\n *\n * @class BehaviorSubject\n */\nexport class BehaviorSubject extends Subject {\n constructor(private _value: T) {\n super();\n }\n\n get value(): T {\n return this.getValue();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n const subscription = super._subscribe(subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n }\n\n getValue(): T {\n const { hasError, thrownError, _value } = this;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n }\n\n next(value: T): void {\n super.next((this._value = value));\n }\n}\n", "import { TimestampProvider } from '../types';\n\ninterface DateTimestampProvider extends TimestampProvider {\n delegate: TimestampProvider | undefined;\n}\n\nexport const dateTimestampProvider: DateTimestampProvider = {\n now() {\n // Use the variable rather than `this` so that the function can be called\n // without being bound to the provider.\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n", "import { Subject } from './Subject';\nimport { TimestampProvider } from './types';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * A variant of {@link Subject} that \"replays\" old values to new subscribers by emitting them when they first subscribe.\n *\n * `ReplaySubject` has an internal buffer that will store a specified number of values that it has observed. Like `Subject`,\n * `ReplaySubject` \"observes\" values by having them passed to its `next` method. When it observes a value, it will store that\n * value for a time determined by the configuration of the `ReplaySubject`, as passed to its constructor.\n *\n * When a new subscriber subscribes to the `ReplaySubject` instance, it will synchronously emit all values in its buffer in\n * a First-In-First-Out (FIFO) manner. The `ReplaySubject` will also complete, if it has observed completion; and it will\n * error if it has observed an error.\n *\n * There are two main configuration items to be concerned with:\n *\n * 1. `bufferSize` - This will determine how many items are stored in the buffer, defaults to infinite.\n * 2. `windowTime` - The amount of time to hold a value in the buffer before removing it from the buffer.\n *\n * Both configurations may exist simultaneously. So if you would like to buffer a maximum of 3 values, as long as the values\n * are less than 2 seconds old, you could do so with a `new ReplaySubject(3, 2000)`.\n *\n * ### Differences with BehaviorSubject\n *\n * `BehaviorSubject` is similar to `new ReplaySubject(1)`, with a couple of exceptions:\n *\n * 1. `BehaviorSubject` comes \"primed\" with a single value upon construction.\n * 2. `ReplaySubject` will replay values, even after observing an error, where `BehaviorSubject` will not.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n * @see {@link shareReplay}\n */\nexport class ReplaySubject extends Subject {\n private _buffer: (T | number)[] = [];\n private _infiniteTimeWindow = true;\n\n /**\n * @param bufferSize The size of the buffer to replay on subscription\n * @param windowTime The amount of time the buffered items will stay buffered\n * @param timestampProvider An object with a `now()` method that provides the current timestamp. This is used to\n * calculate the amount of time something has been buffered.\n */\n constructor(\n private _bufferSize = Infinity,\n private _windowTime = Infinity,\n private _timestampProvider: TimestampProvider = dateTimestampProvider\n ) {\n super();\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n\n next(value: T): void {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._trimBuffer();\n\n const subscription = this._innerSubscribe(subscriber);\n\n const { _infiniteTimeWindow, _buffer } = this;\n // We use a copy here, so reentrant code does not mutate our array while we're\n // emitting it to a new subscriber.\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i] as T);\n }\n\n this._checkFinalizedStatuses(subscriber);\n\n return subscription;\n }\n\n private _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n // If we don't have an infinite buffer size, and we're over the length,\n // use splice to truncate the old buffer values off. Note that we have to\n // double the size for instances where we're not using an infinite time window\n // because we're storing the values and the timestamps in the same array.\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n\n // Now, if we're not in an infinite time window, remove all values where the time is\n // older than what is allowed.\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n // Search the array for the first timestamp that isn't expired and\n // truncate the buffer up to that point.\n for (let i = 1; i < _buffer.length && (_buffer[i] as number) <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action\n */\nexport class Action extends Subscription {\n constructor(scheduler: Scheduler, work: (this: SchedulerAction, state?: T) => void) {\n super();\n }\n /**\n * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler.\n * @return {void}\n */\n public schedule(state?: T, delay: number = 0): Subscription {\n return this;\n }\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetIntervalFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearIntervalFunction = (handle: TimerHandle) => void;\n\ninterface IntervalProvider {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n delegate:\n | {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n }\n | undefined;\n}\n\nexport const intervalProvider: IntervalProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setInterval(handler: () => void, timeout?: number, ...args) {\n const { delegate } = intervalProvider;\n if (delegate?.setInterval) {\n return delegate.setInterval(handler, timeout, ...args);\n }\n return setInterval(handler, timeout, ...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return (delegate?.clearInterval || clearInterval)(handle as any);\n },\n delegate: undefined,\n};\n", "import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncAction extends Action {\n public id: TimerHandle | undefined;\n public state?: T;\n // @ts-ignore: Property has no initializer and is not definitely assigned\n public delay: number;\n protected pending: boolean = false;\n\n constructor(protected scheduler: AsyncScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (this.closed) {\n return this;\n }\n\n // Always replace the current state with the new state.\n this.state = state;\n\n const id = this.id;\n const scheduler = this.scheduler;\n\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id ?? this.requestAsyncId(scheduler, this.id, delay);\n\n return this;\n }\n\n protected requestAsyncId(scheduler: AsyncScheduler, _id?: TimerHandle, delay: number = 0): TimerHandle {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n\n protected recycleAsyncId(_scheduler: AsyncScheduler, id?: TimerHandle, delay: number | null = 0): TimerHandle | undefined {\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n\n return undefined;\n }\n\n /**\n * Immediately executes this action and the `work` it contains.\n * @return {any}\n */\n public execute(state: T, delay: number): any {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n } else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n\n protected _execute(state: T, _delay: number): any {\n let errored: boolean = false;\n let errorValue: any;\n try {\n this.work(state);\n } catch (e) {\n errored = true;\n // HACK: Since code elsewhere is relying on the \"truthiness\" of the\n // return here, we can't have it return \"\" or 0 or false.\n // TODO: Clean this up when we refactor schedulers mid-version-8 or so.\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n\n this.work = this.state = this.scheduler = null!;\n this.pending = false;\n\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n\n this.delay = null!;\n super.unsubscribe();\n }\n }\n}\n", "import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}. Will be made internal in v8.\n */\nexport class Scheduler implements SchedulerLike {\n public static now: () => number = dateTimestampProvider.now;\n\n constructor(private schedulerActionCtor: typeof Action, now: () => number = Scheduler.now) {\n this.now = now;\n }\n\n /**\n * A getter method that returns a number representing the current time\n * (at the time this function was called) according to the scheduler's own\n * internal clock.\n * @return {number} A number that represents the current time. May or may not\n * have a relation to wall-clock time. May or may not refer to a time unit\n * (e.g. milliseconds).\n */\n public now: () => number;\n\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param {function(state: ?T): ?Subscription} work A function representing a\n * task, or some unit of work to be executed by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler itself.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @return {Subscription} A subscription in order to be able to unsubscribe\n * the scheduled work.\n */\n public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncScheduler extends Scheduler {\n public actions: Array> = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @type {boolean}\n * @internal\n */\n public _active: boolean = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @type {any}\n * @internal\n */\n public _scheduled: TimerHandle | undefined;\n\n constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) {\n super(SchedulerAction, now);\n }\n\n public flush(action: AsyncAction): void {\n const { actions } = this;\n\n if (this._active) {\n actions.push(action);\n return;\n }\n\n let error: any;\n this._active = true;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()!)); // exhaust the scheduler queue\n\n this._active = false;\n\n if (error) {\n while ((action = actions.shift()!)) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * Schedule task as if you used setTimeout(task, duration)\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n */\n\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\n\n/**\n * @deprecated Renamed to {@link asyncScheduler}. Will be removed in v8.\n */\nexport const async = asyncScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { QueueScheduler } from './QueueScheduler';\nimport { SchedulerAction } from '../types';\nimport { TimerHandle } from './timerHandle';\n\nexport class QueueAction extends AsyncAction {\n constructor(protected scheduler: QueueScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (delay > 0) {\n return super.schedule(state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n }\n\n public execute(state: T, delay: number): any {\n return delay > 0 || this.closed ? super.execute(state, delay) : this._execute(state, delay);\n }\n\n protected requestAsyncId(scheduler: QueueScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n\n // Otherwise flush the scheduler starting with this action.\n scheduler.flush(this);\n\n // HACK: In the past, this was returning `void`. However, `void` isn't a valid\n // `TimerHandle`, and generally the return value here isn't really used. So the\n // compromise is to return `0` which is both \"falsy\" and a valid `TimerHandle`,\n // as opposed to refactoring every other instanceo of `requestAsyncId`.\n return 0;\n }\n}\n", "import { AsyncScheduler } from './AsyncScheduler';\n\nexport class QueueScheduler extends AsyncScheduler {\n}\n", "import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\n\n/**\n *\n * Queue Scheduler\n *\n * Put every next task on a queue, instead of executing it immediately\n *\n * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler.\n *\n * When used without delay, it schedules given task synchronously - executes it right when\n * it is scheduled. However when called recursively, that is when inside the scheduled task,\n * another task is scheduled with queue scheduler, instead of executing immediately as well,\n * that task will be put on a queue and wait for current one to finish.\n *\n * This means that when you execute task with `queue` scheduler, you are sure it will end\n * before any other task scheduled with that scheduler will start.\n *\n * ## Examples\n * Schedule recursively first, then do something\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(() => {\n * queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue\n *\n * console.log('first');\n * });\n *\n * // Logs:\n * // \"first\"\n * // \"second\"\n * ```\n *\n * Reschedule itself recursively\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(function(state) {\n * if (state !== 0) {\n * console.log('before', state);\n * this.schedule(state - 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * console.log('after', state);\n * }\n * }, 0, 3);\n *\n * // In scheduler that runs recursively, you would expect:\n * // \"before\", 3\n * // \"before\", 2\n * // \"before\", 1\n * // \"after\", 1\n * // \"after\", 2\n * // \"after\", 3\n *\n * // But with queue it logs:\n * // \"before\", 3\n * // \"after\", 3\n * // \"before\", 2\n * // \"after\", 2\n * // \"before\", 1\n * // \"after\", 1\n * ```\n */\n\nexport const queueScheduler = new QueueScheduler(QueueAction);\n\n/**\n * @deprecated Renamed to {@link queueScheduler}. Will be removed in v8.\n */\nexport const queue = queueScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nimport { SchedulerAction } from '../types';\nimport { animationFrameProvider } from './animationFrameProvider';\nimport { TimerHandle } from './timerHandle';\n\nexport class AnimationFrameAction extends AsyncAction {\n constructor(protected scheduler: AnimationFrameScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If an animation frame has already been requested, don't request another\n // one. If an animation frame hasn't been requested yet, request one. Return\n // the current animation frame request id.\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined)));\n }\n\n protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle | undefined {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if (delay != null ? delay > 0 : this.delay > 0) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n // If the scheduler queue has no remaining actions with the same async id,\n // cancel the requested animation frame and set the scheduled flag to\n // undefined so the next AnimationFrameAction will request its own.\n const { actions } = scheduler;\n if (id != null && actions[actions.length - 1]?.id !== id) {\n animationFrameProvider.cancelAnimationFrame(id as number);\n scheduler._scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AnimationFrameScheduler extends AsyncScheduler {\n public flush(action?: AsyncAction): void {\n this._active = true;\n // The async id that effects a call to flush is stored in _scheduled.\n // Before executing an action, it's necessary to check the action's async\n // id to determine whether it's supposed to be executed in the current\n // flush.\n // Previous implementations of this method used a count to determine this,\n // but that was unsound, as actions that are unsubscribed - i.e. cancelled -\n // are removed from the actions array and that can shift actions that are\n // scheduled to be executed in a subsequent flush into positions at which\n // they are executed within the current flush.\n const flushId = this._scheduled;\n this._scheduled = undefined;\n\n const { actions } = this;\n let error: any;\n action = action || actions.shift()!;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n\n this._active = false;\n\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\n\n/**\n *\n * Animation Frame Scheduler\n *\n * Perform task when `window.requestAnimationFrame` would fire\n *\n * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler\n * behaviour.\n *\n * Without delay, `animationFrame` scheduler can be used to create smooth browser animations.\n * It makes sure scheduled task will happen just before next browser content repaint,\n * thus performing animations as efficiently as possible.\n *\n * ## Example\n * Schedule div height animation\n * ```ts\n * // html:
\n * import { animationFrameScheduler } from 'rxjs';\n *\n * const div = document.querySelector('div');\n *\n * animationFrameScheduler.schedule(function(height) {\n * div.style.height = height + \"px\";\n *\n * this.schedule(height + 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * }, 0, 0);\n *\n * // You will see a div element growing in height\n * ```\n */\n\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\n\n/**\n * @deprecated Renamed to {@link animationFrameScheduler}. Will be removed in v8.\n */\nexport const animationFrame = animationFrameScheduler;\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\n/**\n * A simple Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * Just emits 'complete', and nothing else.\n *\n * ![](empty.png)\n *\n * A simple Observable that only emits the complete notification. It can be used\n * for composing with other Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n *\n * Log complete notification\n *\n * ```ts\n * import { EMPTY } from 'rxjs';\n *\n * EMPTY.subscribe({\n * next: () => console.log('Next'),\n * complete: () => console.log('Complete!')\n * });\n *\n * // Outputs\n * // Complete!\n * ```\n *\n * Emit the number 7, then complete\n *\n * ```ts\n * import { EMPTY, startWith } from 'rxjs';\n *\n * const result = EMPTY.pipe(startWith(7));\n * result.subscribe(x => console.log(x));\n *\n * // Outputs\n * // 7\n * ```\n *\n * Map and flatten only odd numbers to the sequence `'a'`, `'b'`, `'c'`\n *\n * ```ts\n * import { interval, mergeMap, of, EMPTY } from 'rxjs';\n *\n * const interval$ = interval(1000);\n * const result = interval$.pipe(\n * mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : EMPTY),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval, e.g. (0, 1, 2, 3, ...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1, print a, b, c (each on its own)\n * // if x % 2 is not equal to 1, nothing will be output\n * ```\n *\n * @see {@link Observable}\n * @see {@link NEVER}\n * @see {@link of}\n * @see {@link throwError}\n */\nexport const EMPTY = new Observable((subscriber) => subscriber.complete());\n\n/**\n * @param scheduler A {@link SchedulerLike} to use for scheduling\n * the emission of the complete notification.\n * @deprecated Replaced with the {@link EMPTY} constant or {@link scheduled} (e.g. `scheduled([], scheduler)`). Will be removed in v8.\n */\nexport function empty(scheduler?: SchedulerLike) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\n\nfunction emptyScheduled(scheduler: SchedulerLike) {\n return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n return value && isFunction(value.schedule);\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\n\nfunction last(arr: T[]): T | undefined {\n return arr[arr.length - 1];\n}\n\nexport function popResultSelector(args: any[]): ((...args: unknown[]) => unknown) | undefined {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\n\nexport function popScheduler(args: any[]): SchedulerLike | undefined {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\n\nexport function popNumber(args: any[], defaultValue: number): number {\n return typeof last(args) === 'number' ? args.pop()! : defaultValue;\n}\n", "export const isArrayLike = ((x: any): x is ArrayLike => x && typeof x.length === 'number' && typeof x !== 'function');", "import { isFunction } from \"./isFunction\";\n\n/**\n * Tests to see if the object is \"thennable\".\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike {\n return isFunction(value?.then);\n}\n", "import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable {\n return isFunction(input[Symbol_observable]);\n}\n", "import { isFunction } from './isFunction';\n\nexport function isAsyncIterable(obj: any): obj is AsyncIterable {\n return Symbol.asyncIterator && isFunction(obj?.[Symbol.asyncIterator]);\n}\n", "/**\n * Creates the TypeError to throw if an invalid object is passed to `from` or `scheduled`.\n * @param input The object that was passed.\n */\nexport function createInvalidObservableTypeError(input: any) {\n // TODO: We should create error codes that can be looked up, so this can be less verbose.\n return new TypeError(\n `You provided ${\n input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`\n } where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`\n );\n}\n", "export function getSymbolIterator(): symbol {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator' as any;\n }\n\n return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n", "import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable {\n return isFunction(input?.[Symbol_iterator]);\n}\n", "import { ReadableStreamLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport async function* readableStreamLikeToAsyncGenerator(readableStream: ReadableStreamLike): AsyncGenerator {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n return;\n }\n yield value!;\n }\n } finally {\n reader.releaseLock();\n }\n}\n\nexport function isReadableStreamLike(obj: any): obj is ReadableStreamLike {\n // We don't want to use instanceof checks because they would return\n // false for instances from another Realm, like an + +
+

+ + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/entregas/entrega2/index.html b/entregas/entrega2/index.html new file mode 100644 index 0000000..f020bff --- /dev/null +++ b/entregas/entrega2/index.html @@ -0,0 +1,1645 @@ + + + + + + + + + + + + + + + + + + + + + Entrega 2 - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Segunda Entrega

+

Caso não consiga visualizar o vídeo abaixo, clique aqui.

+

+ + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/images/argumentacao/v0.0/argumentacao.jpg b/images/argumentacao/v0.0/argumentacao.jpg new file mode 100644 index 0000000..8fa0396 Binary files /dev/null and b/images/argumentacao/v0.0/argumentacao.jpg differ diff --git a/images/diagramas_casos_de_uso/code/UC01.uml b/images/diagramas_casos_de_uso/code/UC01.uml new file mode 100644 index 0000000..57b6f42 --- /dev/null +++ b/images/diagramas_casos_de_uso/code/UC01.uml @@ -0,0 +1,34 @@ +@startuml +start +:1. Usuário seleciona "Criar um Design"; + +if (Criar com dimensões personalizadas?) then (Sim) + :1.1. Usuário define dimensões personalizadas; +else (Não) +endif + +if (Iniciar com template vazio?) then (Sim) + :1.2. Usuário seleciona "Template Vazio"; +else (Não) + :2. Sistema apresenta opções de formatos e modelos; + :3. Usuário escolhe um formato ou modelo; + + if (Falha na conexão com a internet?) then (Sim) + :3.1. Sistema exibe mensagem de erro; + note right: Exceção + stop + elseif (Formato/modelo não disponível?) then (Sim) + :3.2. Sistema exibe mensagem de erro; + note right: Exceção + :2. Sistema apresenta opções de formatos e modelos; + elseif (Limite de designs atingido?) then (Sim) + :3.3. Sistema exibe mensagem e opções de upgrade; + note right: Exceção + stop + else (Não) + :4. Sistema cria um novo design; + :5. Usuário é direcionado para a interface de edição; + endif +endif +stop +@enduml \ No newline at end of file diff --git a/images/diagramas_casos_de_uso/code/UC02.uml b/images/diagramas_casos_de_uso/code/UC02.uml new file mode 100644 index 0000000..21a44fa --- /dev/null +++ b/images/diagramas_casos_de_uso/code/UC02.uml @@ -0,0 +1,41 @@ +@startuml +start +:1. Usuário acessa "Seus Designs"; +:2. Usuário seleciona o design; + +if (Design inexistente ou sem permissão?) then (Sim) + :2.1. Sistema exibe mensagem de erro; + note right: Exceção + stop +else (Não) + if (Duplicar design?) then (Sim) + :2.2. Sistema duplica o design; + else (Não) + endif + + if (Acessar histórico de revisões?) then (Sim) + :2.3. Sistema exibe histórico de revisões; + else (Não) + endif + + if (Adicionar colaboradores?) then (Sim) + :2.4. Usuário adiciona colaboradores; + else (Não) + endif + + if (Usar IA para sugestões?) then (Sim) + :2.5. Sistema oferece sugestões de design via IA; + else (Não) + endif + + :3. Sistema abre o design na interface de edição; + + if (Falha na conexão com a internet?) then (Sim) + :3.1. Sistema exibe mensagem de erro; + note right: Exceção + stop + else (Não) + endif +endif +stop +@enduml \ No newline at end of file diff --git a/images/diagramas_casos_de_uso/code/UC03.uml b/images/diagramas_casos_de_uso/code/UC03.uml new file mode 100644 index 0000000..1b81798 --- /dev/null +++ b/images/diagramas_casos_de_uso/code/UC03.uml @@ -0,0 +1,49 @@ +@startuml +start +:1. Usuário abre o design; +:2. Usuário clica em "Compartilhar"; + +if (Falha na conexão com a internet?) then (Sim) + :2.1. Sistema exibe mensagem de erro; + note right: Exceção + stop +else (Não) + :3. Sistema apresenta opções de compartilhamento; + :4. Usuário escolhe o método; + + if (Definir permissões de acesso?) then (Sim) + :4.1. Usuário define permissões (visualizar, editar, comentar); + else (Não) + endif + + if (Definir data de expiração?) then (Sim) + :4.2. Usuário define data de expiração; + else (Não) + endif + + if (Adicionar senha de acesso?) then (Sim) + :4.3. Usuário define senha; + else (Não) + endif + + if (Compartilhar em redes sociais?) then (Sim) + if (Autenticação adicional necessária?) then (Sim) + :4.4.1. Usuário realiza autenticação; + note right: Exceção + else (Não) + endif + :4.4. Sistema compartilha em redes sociais; + else (Não) + :5. Sistema gera link/mensagem; + :6. Usuário compartilha link/mensagem; + endif + + if (Limite de compartilhamentos atingido?) then (Sim) + :6.1. Sistema exibe mensagem e opções de upgrade; + note right: Exceção + stop + else (Não) + endif +endif +stop +@enduml \ No newline at end of file diff --git a/images/diagramas_casos_de_uso/code/UC04.uml b/images/diagramas_casos_de_uso/code/UC04.uml new file mode 100644 index 0000000..51562fe --- /dev/null +++ b/images/diagramas_casos_de_uso/code/UC04.uml @@ -0,0 +1,34 @@ +@startuml +start +:1. Usuário abre o design; +:2. Usuário clica em "Baixar"; + +if (Falha na conexão com a internet?) then (Sim) + :2.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + stop +else (Não) + :3. Sistema apresenta opções de formato (PNG, JPG, PDF, etc.); + :4. Usuário escolhe o formato; + + if (Opções adicionais de download?) then (Sim) + :4.1. Sistema apresenta opções de resolução/qualidade; + else (Não) + endif + + if (Formato/opção exclusivo para Pro?) then (Sim) + :4.2. Sistema exibe mensagem e opções de upgrade; + note right: Fluxo Alternativo + else (Não) + :5. Sistema gera o arquivo e inicia o download; + + if (Limite de downloads atingido?) then (Sim) + :5.1. Sistema exibe mensagem e opções de upgrade; + note right: Fluxo de Exceção + stop + else (Não) + endif + endif +endif +stop +@enduml \ No newline at end of file diff --git a/images/diagramas_casos_de_uso/code/UC05.uml b/images/diagramas_casos_de_uso/code/UC05.uml new file mode 100644 index 0000000..6b37f5b --- /dev/null +++ b/images/diagramas_casos_de_uso/code/UC05.uml @@ -0,0 +1,39 @@ +@startuml +start +:1. Usuário navega ou usa a barra de pesquisa; +:2. Sistema apresenta templates (categoria, formato, palavra-chave); +:3. Usuário seleciona um template; + +if (Falha na conexão com a internet?) then (Sim) + :3.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + stop +elseif (Template indisponível/removido?) then (Sim) + :3.2. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + :2. Sistema apresenta templates (categoria, formato, palavra-chave); +elseif (Limite de templates acessados atingido?) then (Sim) + :3.3. Sistema exibe mensagem e opções de upgrade; + note right: Fluxo de Exceção + stop +else (Não) + :4. Sistema abre o template na interface de edição; + + if (Favoritar template?) then (Sim) + :4.1. Usuário favorita o template; + else (Não) + endif + + if (Visualizar designs relacionados?) then (Sim) + :4.2. Sistema exibe designs relacionados; + else (Não) + endif + + if (Acessar templates Pro?) then (Sim) + :4.3. Sistema exibe templates Pro (upgrade opcional); + note right: Fluxo Alternativo + else (Não) + endif +endif +stop +@enduml \ No newline at end of file diff --git a/images/diagramas_casos_de_uso/code/UC06.uml b/images/diagramas_casos_de_uso/code/UC06.uml new file mode 100644 index 0000000..e4e6677 --- /dev/null +++ b/images/diagramas_casos_de_uso/code/UC06.uml @@ -0,0 +1,31 @@ +@startuml +start +:1. Usuário navega pelas funcionalidades; + +if (Falha na conexão com a internet?) then (Sim) + :1.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + stop +else (Não) + :2. Sistema sinaliza recursos Premium; + :3. Usuário visualiza descrição e benefícios; + + if (Usuário é Pro?) then (Sim) + if (Recurso Premium disponível?) then (Sim) + :3.1. Usuário Pro utiliza o recurso; + else (Não) + :3.2. Sistema exibe mensagem de indisponibilidade; + note right: Fluxo de Exceção + endif + else (Não) + if (Usuário Gratuito deseja assinar?) then (Sim) + :3.3. Sistema redireciona para a página de assinatura; + note right: Fluxo Alternativo + else (Não) + :3.4. Sistema exibe mensagem informativa (upgrade opcional); + note right: Fluxo de Exceção + endif + endif +endif +stop +@enduml \ No newline at end of file diff --git a/images/diagramas_casos_de_uso/code/UC07.uml b/images/diagramas_casos_de_uso/code/UC07.uml new file mode 100644 index 0000000..3e6775d --- /dev/null +++ b/images/diagramas_casos_de_uso/code/UC07.uml @@ -0,0 +1,35 @@ +@startuml +start +:1. Usuário abre um design existente; +:2. Usuário utiliza a função "Redimensionar"; + +if (Falha na conexão com a internet?) then (Sim) + :2.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + stop +else (Não) + :3. Sistema apresenta opções de formatos; + :4. Usuário seleciona o novo formato; + + if (Redimensionar manualmente?) then (Sim) + :4.1. Usuário define dimensões personalizadas; + :5. Sistema redimensiona o design; + else (Não) + :5. Sistema redimensiona o design automaticamente; + + if (Distorção de elementos visuais?) then (Sim) + :5.1. Sistema alerta o usuário sobre a distorção; + note right: Fluxo de Exceção + :5.2. Usuário ajusta os elementos manualmente; + else (Não) + endif + endif + + if (Salvar em diferentes formatos?) then (Sim) + :6. Usuário escolhe formatos adicionais para salvar; + :7. Sistema salva o design nos formatos escolhidos; + else (Não) + endif +endif +stop +@enduml \ No newline at end of file diff --git a/images/diagramas_casos_de_uso/code/UC08.uml b/images/diagramas_casos_de_uso/code/UC08.uml new file mode 100644 index 0000000..fe8016a --- /dev/null +++ b/images/diagramas_casos_de_uso/code/UC08.uml @@ -0,0 +1,33 @@ +@startuml +start +:1. Usuário acessa a tela inicial; +:2. Usuário informa dados de login (email/senha ou redes sociais); + +if (Falha na conexão com a internet?) then (Sim) + :2.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + stop +else (Não) + :3. Sistema valida as informações; + + if (Dados de login inválidos?) then (Sim) + :3.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + :2. Usuário informa dados de login (email/senha ou redes sociais); + elseif (Autenticação de dois fatores?) then (Sim) + :3.2. Sistema solicita código de autenticação; + :3.3. Usuário informa o código; + :3.4. Sistema valida o código; + note right: Fluxo Alternativo + else (Não) + :4. Usuário é redirecionado para a página inicial; + endif + + if (Esqueci minha senha?) then (Sim) + :4.1. Sistema redireciona para a página de recuperação de senha; + note right: Fluxo Alternativo + else (Não) + endif +endif +stop +@enduml \ No newline at end of file diff --git a/images/diagramas_casos_de_uso/code/UC09.uml b/images/diagramas_casos_de_uso/code/UC09.uml new file mode 100644 index 0000000..8d30b00 --- /dev/null +++ b/images/diagramas_casos_de_uso/code/UC09.uml @@ -0,0 +1,20 @@ +@startuml +start +:1. Usuário clica na foto de perfil/ícone; +:2. Usuário seleciona "Sair"; + +if (Falha na conexão com a internet?) then (Sim) + :2.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + stop +else (Não) + if (Permanecer Conectado?) then (Sim) + :2.2. Sistema mantém a sessão ativa; + note right: Fluxo Alternativo + stop + else (Não) + :3. Sistema encerra a sessão do usuário; + endif +endif +stop +@enduml \ No newline at end of file diff --git a/images/diagramas_casos_de_uso/code/UC10.uml b/images/diagramas_casos_de_uso/code/UC10.uml new file mode 100644 index 0000000..252d3ec --- /dev/null +++ b/images/diagramas_casos_de_uso/code/UC10.uml @@ -0,0 +1,62 @@ +@startuml +start +:1. Usuário acessa "Pastas e Projetos"; + +if (Falha na conexão com a internet?) then (Sim) + :1.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + stop +else (Não) + :2. Sistema exibe lista de pastas e designs; + + if (Criar nova pasta?) then (Sim) + :3. Usuário informa o nome da pasta; + if (Nome da pasta já existe?) then (Sim) + :3.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + :3. Usuário informa o nome da pasta; + else (Não) + :3.2. Sistema cria a nova pasta; + endif + :4. Usuário move designs para a nova pasta; + else (Não) + endif + + if (Renomear pasta?) then (Sim) + :4.1. Usuário seleciona a pasta e informa o novo nome; + :4.2. Sistema renomeia a pasta; + note right: Fluxo Alternativo + else (Não) + endif + + if (Mover designs entre pastas?) then (Sim) + :4.3. Usuário seleciona os designs e a pasta de destino; + :4.4. Sistema move os designs; + note right: Fluxo Alternativo + else (Não) + endif + + if (Excluir pasta?) then (Sim) + :5. Usuário seleciona a pasta; + if (Permissão para excluir?) then (Sim) + :5.1. Sistema exclui a pasta e seus designs; + if (Exclusão acidental?) then (Sim) + :5.1.1. Usuário restaura designs da lixeira; + note right: Fluxo Alternativo + else (Não) + endif + else (Não) + :5.2. Sistema exibe mensagem de erro de permissão; + note right: Fluxo de Exceção + endif + else (Não) + endif + + if (Limite de pastas/designs atingido?) then (Sim) + :7. Sistema exibe mensagem e opções de upgrade; + note right: Fluxo de Exceção + else (Não) + endif +endif +stop +@enduml \ No newline at end of file diff --git a/images/diagramas_casos_de_uso/code/UC11.uml b/images/diagramas_casos_de_uso/code/UC11.uml new file mode 100644 index 0000000..4254056 --- /dev/null +++ b/images/diagramas_casos_de_uso/code/UC11.uml @@ -0,0 +1,55 @@ +@startuml +start +:1. Usuário abre um design existente; +:2. Usuário clica em "Compartilhar para Colaboração"; + +if (Falha na conexão com a internet?) then (Sim) + :2.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + stop +else (Não) + :3. Sistema gera link de colaboração; + :4. Usuário compartilha o link; + :5. Colaboradores acessam o link; + + if (Limite de colaboradores atingido?) then (Sim) + :5.1. Sistema exibe mensagem e opções de upgrade; + note right: Fluxo de Exceção + stop + else (Não) + :6. Colaboradores visualizam o design em tempo real; + + if (Definir permissões?) then (Sim) + :6.1. Usuário define permissões (visualizar, editar, comentar); + note right: Fluxo Alternativo + else (Não) + endif + + fork + :6.2. Colaboradores editam o design; + if (Conflitos de edição?) then (Sim) + :6.2.1. Sistema gerencia e resolve conflitos; + note right: Fluxo de Exceção + else (Não) + endif + fork again + :6.3. Colaboradores adicionam comentários; + fork again + :6.4. Colaboradores visualizam o design; + end fork + + if (Encerrar colaboração?) then (Sim) + :7. Usuário encerra a colaboração; + note right: Fluxo Alternativo + else (Não) + endif + + if (Visualizar histórico?) then (Sim) + :8. Sistema exibe histórico de edições e comentários; + note right: Fluxo Alternativo + else (Não) + endif + endif +endif +stop +@enduml \ No newline at end of file diff --git a/images/diagramas_casos_de_uso/code/UC12.uml b/images/diagramas_casos_de_uso/code/UC12.uml new file mode 100644 index 0000000..cc01815 --- /dev/null +++ b/images/diagramas_casos_de_uso/code/UC12.uml @@ -0,0 +1,34 @@ +@startuml +start +:1. Usuário acessa a edição de um design; + +if (Falha na conexão com a internet?) then (Sim) + :1.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + stop +else (Não) + :2. Sistema identifica elementos visuais e texto; + :3. Sistema sugere cores, fontes, imagens, etc.; + :4. Usuário aceita ou rejeita as sugestões; + + if (Sugestões inadequadas/imprecisas?) then (Sim) + :4.1. Sistema registra feedback do usuário; + note right: Fluxo de Exceção + else (Não) + endif + + if (Solicitar sugestões específicas?) then (Sim) + :4.2. Usuário seleciona elemento e solicita sugestões; + :3. Sistema sugere cores, fontes, imagens, etc.; + note right: Fluxo Alternativo + else (Não) + endif + + if (Desativar IA?) then (Sim) + :4.3. Usuário desativa os recursos de IA; + note right: Fluxo Alternativo + else (Não) + endif +endif +stop +@enduml \ No newline at end of file diff --git a/images/diagramas_casos_de_uso/code/UC13.uml b/images/diagramas_casos_de_uso/code/UC13.uml new file mode 100644 index 0000000..e69de29 diff --git a/images/diagramas_casos_de_uso/code/UC14.uml b/images/diagramas_casos_de_uso/code/UC14.uml new file mode 100644 index 0000000..864f0d5 --- /dev/null +++ b/images/diagramas_casos_de_uso/code/UC14.uml @@ -0,0 +1,52 @@ +@startuml +start +:1. Usuário acessa "Configurações de Conta"; + +if (Falha na conexão com a internet?) then (Sim) + :1.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + stop +else (Não) + :2. Sistema exibe opções de personalização; + fork + :3. Usuário atualiza informações pessoais; + fork again + :4. Usuário configura preferências de design; + fork again + :5. Usuário define preferências de notificações; + fork again + :6. Usuário ajusta configurações de privacidade; + end fork + + if (Ativar/desativar IA?) then (Sim) + :7. Usuário configura recursos de IA; + note right: Fluxo Alternativo + else (Não) + endif + + if (Definir permissões de colaboração padrão?) then (Sim) + :8. Usuário define permissões padrão; + note right: Fluxo Alternativo + else (Não) + endif + + if (Configurar autenticação de dois fatores?) then (Sim) + :9. Usuário configura a autenticação de dois fatores; + note right: Fluxo Alternativo + else (Não) + endif + + :10. Usuário salva as configurações; + + if (Configurações não salvas corretamente?) then (Sim) + :10.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + elseif (Dados inválidos ou incompletos?) then (Sim) + :10.2. Sistema exibe mensagem de erro e solicita correção; + note right: Fluxo de Exceção + else (Não) + :11. Sistema confirma a atualização das configurações; + endif +endif +stop +@enduml \ No newline at end of file diff --git a/images/diagramas_casos_de_uso/code/UC15.uml b/images/diagramas_casos_de_uso/code/UC15.uml new file mode 100644 index 0000000..6814343 --- /dev/null +++ b/images/diagramas_casos_de_uso/code/UC15.uml @@ -0,0 +1,37 @@ +@startuml +start +:1. Usuário acessa "Suporte e Atendimento"; + +if (Falha na conexão com a internet?) then (Sim) + :1.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + stop +else (Não) + :2. Sistema exibe opções de contato (chat, email, telefone); + + if (Acessar base de conhecimento/FAQ?) then (Sim) + :2.1. Sistema exibe base de conhecimento/FAQ; + note right: Fluxo Alternativo + else (Não) + endif + + if (Enviar feedback/sugestões?) then (Sim) + :2.2. Usuário envia feedback/sugestões; + note right: Fluxo Alternativo + else (Não) + :3. Usuário seleciona o método de contato; + :4. Sistema inicia o atendimento ao cliente; + + if (Tempo de espera prolongado?) then (Sim) + :4.1. Sistema oferece alternativas de contato; + note right: Fluxo de Exceção + elseif (Resolução inadequada?) then (Sim) + :4.2. Sistema oferece opções de escalonamento do atendimento; + note right: Fluxo de Exceção + else (Não) + :5. Atendimento finalizado; + endif + endif +endif +stop +@enduml \ No newline at end of file diff --git a/images/diagramas_casos_de_uso/code/UC16.uml b/images/diagramas_casos_de_uso/code/UC16.uml new file mode 100644 index 0000000..bf2239f --- /dev/null +++ b/images/diagramas_casos_de_uso/code/UC16.uml @@ -0,0 +1,39 @@ +@startuml +start +:1. Usuário acessa "Recursos de Colaboração"; + +if (Falha na conexão com a internet?) then (Sim) + :1.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + stop +else (Não) + :2. Sistema exibe opções de colaboração; + :3. Usuário seleciona um recurso; + + if (Recurso indisponível?) then (Sim) + :3.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + :2. Sistema exibe opções de colaboração; + elseif (Recurso exclusivo para Pro?) then (Sim) + :3.2. Sistema exibe mensagem e opções de upgrade; + note right: Fluxo de Exceção + else (Não) + :4. Sistema abre o recurso para utilização; + + if (Adicionar comentários?) then (Sim) + :4.1. Usuário adiciona comentários em designs; + note right: Fluxo Alternativo + elseif (Solicitar revisões/aprovações?) then (Sim) + :4.2. Usuário solicita revisões/aprovações; + note right: Fluxo Alternativo + elseif (Marcar colaboradores?) then (Sim) + :4.3. Usuário marca colaboradores em designs; + note right: Fluxo Alternativo + else (Não) + :4.4. Usuário utiliza outros recursos de colaboração; + endif + endif +endif +stop + +@enduml \ No newline at end of file diff --git a/images/diagramas_casos_de_uso/code/UC17.uml b/images/diagramas_casos_de_uso/code/UC17.uml new file mode 100644 index 0000000..5b5831e --- /dev/null +++ b/images/diagramas_casos_de_uso/code/UC17.uml @@ -0,0 +1,39 @@ +@startuml +start +:1. Usuário acessa "Recursos de Marketing"; + +if (Falha na conexão com a internet?) then (Sim) + :1.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + stop +else (Não) + :2. Sistema exibe templates por categoria (negócios, eventos, etc.); + :3. Usuário seleciona um template de marketing; + + if (Template indisponível?) then (Sim) + :3.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + :2. Sistema exibe templates por categoria (negócios, eventos, etc.); + elseif (Template exclusivo para Pro?) then (Sim) + :3.2. Sistema exibe mensagem e opções de upgrade; + note right: Fluxo de Exceção + else (Não) + :4. Sistema abre o template para edição; + + if (Personalizar template?) then (Sim) + :4.1. Usuário personaliza o template; + note right: Fluxo Alternativo + else (Não) + endif + + if (Salvar em diferentes formatos?) then (Sim) + :4.2. Usuário escolhe formatos para salvar; + :4.3. Sistema salva o design nos formatos escolhidos; + note right: Fluxo Alternativo + else (Não) + endif + endif +endif +stop + +@enduml \ No newline at end of file diff --git a/images/diagramas_casos_de_uso/code/UC18.uml b/images/diagramas_casos_de_uso/code/UC18.uml new file mode 100644 index 0000000..ad6d37d --- /dev/null +++ b/images/diagramas_casos_de_uso/code/UC18.uml @@ -0,0 +1,38 @@ +@startuml +start +:1. Usuário acessa "Recursos de Design Gráfico"; + +if (Falha na conexão com a internet?) then (Sim) + :1.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + stop +else (Não) + :2. Sistema exibe recursos por categoria (ícones, ilustrações, etc.); + + if (Pesquisar recursos?) then (Sim) + :2.1. Usuário pesquisa por palavra-chave ou categoria; + note right: Fluxo Alternativo + else (Não) + endif + + :3. Usuário seleciona um recurso; + + if (Recurso indisponível?) then (Sim) + :3.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + :2. Sistema exibe recursos por categoria (ícones, ilustrações, etc.); + elseif (Recurso exclusivo para Pro?) then (Sim) + :3.2. Sistema exibe mensagem e opções de upgrade; + note right: Fluxo de Exceção + else (Não) + :4. Sistema abre o recurso para utilização; + + if (Favoritar recurso?) then (Sim) + :4.1. Usuário favorita o recurso; + note right: Fluxo Alternativo + else (Não) + endif + endif +endif +stop +@enduml \ No newline at end of file diff --git a/images/diagramas_casos_de_uso/code/UC19.uml b/images/diagramas_casos_de_uso/code/UC19.uml new file mode 100644 index 0000000..ba61caa --- /dev/null +++ b/images/diagramas_casos_de_uso/code/UC19.uml @@ -0,0 +1,38 @@ +@startuml +start +:1. Usuário acessa "Recursos de Fotografia"; + +if (Falha na conexão com a internet?) then (Sim) + :1.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + stop +else (Não) + :2. Sistema exibe recursos por categoria (imagens, fotos, etc.); + + if (Pesquisar recursos?) then (Sim) + :2.1. Usuário pesquisa por palavra-chave ou categoria; + note right: Fluxo Alternativo + else (Não) + endif + + :3. Usuário seleciona um recurso; + + if (Recurso indisponível?) then (Sim) + :3.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + :2. Sistema exibe recursos por categoria (imagens, fotos, etc.); + elseif (Recurso exclusivo para Pro?) then (Sim) + :3.2. Sistema exibe mensagem e opções de upgrade; + note right: Fluxo de Exceção + else (Não) + :4. Sistema abre o recurso para utilização; + + if (Favoritar recurso?) then (Sim) + :4.1. Usuário favorita o recurso; + note right: Fluxo Alternativo + else (Não) + endif + endif +endif +stop +@enduml \ No newline at end of file diff --git a/images/diagramas_casos_de_uso/code/UC20.uml b/images/diagramas_casos_de_uso/code/UC20.uml new file mode 100644 index 0000000..039e917 --- /dev/null +++ b/images/diagramas_casos_de_uso/code/UC20.uml @@ -0,0 +1,38 @@ +@startuml +start +:1. Usuário acessa "Recursos de Vídeo"; + +if (Falha na conexão com a internet?) then (Sim) + :1.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + stop +else (Não) + :2. Sistema exibe recursos por categoria (vídeos, animações, etc.); + + if (Pesquisar recursos?) then (Sim) + :2.1. Usuário pesquisa por palavra-chave ou categoria; + note right: Fluxo Alternativo + else (Não) + endif + + :3. Usuário seleciona um recurso; + + if (Recurso indisponível?) then (Sim) + :3.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + :2. Sistema exibe recursos por categoria (vídeos, animações, etc.); + elseif (Recurso exclusivo para Pro?) then (Sim) + :3.2. Sistema exibe mensagem e opções de upgrade; + note right: Fluxo de Exceção + else (Não) + :4. Sistema abre o recurso para utilização; + + if (Favoritar recurso?) then (Sim) + :4.1. Usuário favorita o recurso; + note right: Fluxo Alternativo + else (Não) + endif + endif +endif +stop +@enduml \ No newline at end of file diff --git a/images/diagramas_casos_de_uso/code/UC21.uml b/images/diagramas_casos_de_uso/code/UC21.uml new file mode 100644 index 0000000..83a165d --- /dev/null +++ b/images/diagramas_casos_de_uso/code/UC21.uml @@ -0,0 +1,38 @@ +@startuml +start +:1. Usuário acessa "Recursos de Áudio"; + +if (Falha na conexão com a internet?) then (Sim) + :1.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + stop +else (Não) + :2. Sistema exibe recursos por categoria (músicas, efeitos sonoros, etc.); + + if (Pesquisar recursos?) then (Sim) + :2.1. Usuário pesquisa por palavra-chave ou categoria; + note right: Fluxo Alternativo + else (Não) + endif + + :3. Usuário seleciona um recurso; + + if (Recurso indisponível?) then (Sim) + :3.1. Sistema exibe mensagem de erro; + note right: Fluxo de Exceção + :2. Sistema exibe recursos por categoria (músicas, efeitos sonoros, etc.); + elseif (Recurso exclusivo para Pro?) then (Sim) + :3.2. Sistema exibe mensagem e opções de upgrade; + note right: Fluxo de Exceção + else (Não) + :4. Sistema abre o recurso para utilização; + + if (Favoritar recurso?) then (Sim) + :4.1. Usuário favorita o recurso; + note right: Fluxo Alternativo + else (Não) + endif + endif +endif +stop +@enduml \ No newline at end of file diff --git a/images/diagramas_casos_de_uso/images/UC01.png b/images/diagramas_casos_de_uso/images/UC01.png new file mode 100644 index 0000000..81c186f Binary files /dev/null and b/images/diagramas_casos_de_uso/images/UC01.png differ diff --git a/images/diagramas_casos_de_uso/images/UC02.png b/images/diagramas_casos_de_uso/images/UC02.png new file mode 100644 index 0000000..a4d8be7 Binary files /dev/null and b/images/diagramas_casos_de_uso/images/UC02.png differ diff --git a/images/diagramas_casos_de_uso/images/UC03.png b/images/diagramas_casos_de_uso/images/UC03.png new file mode 100644 index 0000000..acc35a8 Binary files /dev/null and b/images/diagramas_casos_de_uso/images/UC03.png differ diff --git a/images/diagramas_casos_de_uso/images/UC04.png b/images/diagramas_casos_de_uso/images/UC04.png new file mode 100644 index 0000000..9540145 Binary files /dev/null and b/images/diagramas_casos_de_uso/images/UC04.png differ diff --git a/images/diagramas_casos_de_uso/images/UC05.png b/images/diagramas_casos_de_uso/images/UC05.png new file mode 100644 index 0000000..91fb4c9 Binary files /dev/null and b/images/diagramas_casos_de_uso/images/UC05.png differ diff --git a/images/diagramas_casos_de_uso/images/UC06.png b/images/diagramas_casos_de_uso/images/UC06.png new file mode 100644 index 0000000..dbf98fd Binary files /dev/null and b/images/diagramas_casos_de_uso/images/UC06.png differ diff --git a/images/diagramas_casos_de_uso/images/UC07.png b/images/diagramas_casos_de_uso/images/UC07.png new file mode 100644 index 0000000..e06df8a Binary files /dev/null and b/images/diagramas_casos_de_uso/images/UC07.png differ diff --git a/images/diagramas_casos_de_uso/images/UC08.png b/images/diagramas_casos_de_uso/images/UC08.png new file mode 100644 index 0000000..ca9a7fb Binary files /dev/null and b/images/diagramas_casos_de_uso/images/UC08.png differ diff --git a/images/diagramas_casos_de_uso/images/UC09.png b/images/diagramas_casos_de_uso/images/UC09.png new file mode 100644 index 0000000..57f5c3c Binary files /dev/null and b/images/diagramas_casos_de_uso/images/UC09.png differ diff --git a/images/diagramas_casos_de_uso/images/UC10.png b/images/diagramas_casos_de_uso/images/UC10.png new file mode 100644 index 0000000..822427d Binary files /dev/null and b/images/diagramas_casos_de_uso/images/UC10.png differ diff --git a/images/diagramas_casos_de_uso/images/UC11.png b/images/diagramas_casos_de_uso/images/UC11.png new file mode 100644 index 0000000..12a4772 Binary files /dev/null and b/images/diagramas_casos_de_uso/images/UC11.png differ diff --git a/images/diagramas_casos_de_uso/images/UC12.png b/images/diagramas_casos_de_uso/images/UC12.png new file mode 100644 index 0000000..4c4c2b1 Binary files /dev/null and b/images/diagramas_casos_de_uso/images/UC12.png differ diff --git a/images/diagramas_casos_de_uso/images/UC13.png b/images/diagramas_casos_de_uso/images/UC13.png new file mode 100644 index 0000000..5276d50 Binary files /dev/null and b/images/diagramas_casos_de_uso/images/UC13.png differ diff --git a/images/diagramas_casos_de_uso/images/UC14.png b/images/diagramas_casos_de_uso/images/UC14.png new file mode 100644 index 0000000..932f35f Binary files /dev/null and b/images/diagramas_casos_de_uso/images/UC14.png differ diff --git a/images/diagramas_casos_de_uso/images/UC15.png b/images/diagramas_casos_de_uso/images/UC15.png new file mode 100644 index 0000000..df5368b Binary files /dev/null and b/images/diagramas_casos_de_uso/images/UC15.png differ diff --git a/images/diagramas_casos_de_uso/images/UC16.png b/images/diagramas_casos_de_uso/images/UC16.png new file mode 100644 index 0000000..c7adb01 Binary files /dev/null and b/images/diagramas_casos_de_uso/images/UC16.png differ diff --git a/images/diagramas_casos_de_uso/images/UC17.png b/images/diagramas_casos_de_uso/images/UC17.png new file mode 100644 index 0000000..2715f2c Binary files /dev/null and b/images/diagramas_casos_de_uso/images/UC17.png differ diff --git a/images/diagramas_casos_de_uso/images/UC18.png b/images/diagramas_casos_de_uso/images/UC18.png new file mode 100644 index 0000000..0646c94 Binary files /dev/null and b/images/diagramas_casos_de_uso/images/UC18.png differ diff --git a/images/diagramas_casos_de_uso/images/UC19.png b/images/diagramas_casos_de_uso/images/UC19.png new file mode 100644 index 0000000..f08bfca Binary files /dev/null and b/images/diagramas_casos_de_uso/images/UC19.png differ diff --git a/images/diagramas_casos_de_uso/images/UC20.png b/images/diagramas_casos_de_uso/images/UC20.png new file mode 100644 index 0000000..afe0d46 Binary files /dev/null and b/images/diagramas_casos_de_uso/images/UC20.png differ diff --git a/images/diagramas_casos_de_uso/images/UC21.png b/images/diagramas_casos_de_uso/images/UC21.png new file mode 100644 index 0000000..32030d4 Binary files /dev/null and b/images/diagramas_casos_de_uso/images/UC21.png differ diff --git a/images/elicitacao/Mapa-Mental.png b/images/elicitacao/Mapa-Mental.png new file mode 100644 index 0000000..2838446 Binary files /dev/null and b/images/elicitacao/Mapa-Mental.png differ diff --git a/images/istar/DiagramaDeDependencias.png b/images/istar/DiagramaDeDependencias.png new file mode 100644 index 0000000..e9e02d7 Binary files /dev/null and b/images/istar/DiagramaDeDependencias.png differ diff --git a/images/istar/SR-Canva.png b/images/istar/SR-Canva.png new file mode 100644 index 0000000..aff9034 Binary files /dev/null and b/images/istar/SR-Canva.png differ diff --git a/images/istar/SR-PRO.png b/images/istar/SR-PRO.png new file mode 100644 index 0000000..ed4d460 Binary files /dev/null and b/images/istar/SR-PRO.png differ diff --git a/images/istar/SR-Usuario.png b/images/istar/SR-Usuario.png new file mode 100644 index 0000000..11f4c31 Binary files /dev/null and b/images/istar/SR-Usuario.png differ diff --git a/images/logoCanva.png b/images/logoCanva.png new file mode 100644 index 0000000..e6a8522 Binary files /dev/null and b/images/logoCanva.png differ diff --git a/images/nfr-framework/v0.0/apresentacao-de-slides.png b/images/nfr-framework/v0.0/apresentacao-de-slides.png new file mode 100644 index 0000000..4d7ec86 Binary files /dev/null and b/images/nfr-framework/v0.0/apresentacao-de-slides.png differ diff --git a/images/nfr-framework/v0.0/edicao-de-imagens.png b/images/nfr-framework/v0.0/edicao-de-imagens.png new file mode 100644 index 0000000..da8b3c3 Binary files /dev/null and b/images/nfr-framework/v0.0/edicao-de-imagens.png differ diff --git a/images/nfr-framework/v0.1/geral.png b/images/nfr-framework/v0.1/geral.png new file mode 100644 index 0000000..97d570e Binary files /dev/null and b/images/nfr-framework/v0.1/geral.png differ diff --git a/images/nfr-framework/v1.0/apresentacao_de_slides.png b/images/nfr-framework/v1.0/apresentacao_de_slides.png new file mode 100644 index 0000000..6aa107e Binary files /dev/null and b/images/nfr-framework/v1.0/apresentacao_de_slides.png differ diff --git a/images/nfr-framework/v1.0/code/apresentacao_de_slides.uml b/images/nfr-framework/v1.0/code/apresentacao_de_slides.uml new file mode 100644 index 0000000..966f858 --- /dev/null +++ b/images/nfr-framework/v1.0/code/apresentacao_de_slides.uml @@ -0,0 +1,28 @@ +@startuml +!define softgoal(name) cloud "name" +!define op(name) cloud #line.bold; "name" + +softgoal(Apresentações de Slides) as apresentacoes +op(WYSIWYG) as wysiwyg +op(Estatísticas e métricas) as estatisticas +op(Salvamento automático) as salvamento +softgoal(Compartilhamento da apresentacao) as compartilhamento +op(Link público) as link +op(Arquivo) as arquivo +softgoal(Toolchain) as toolchain + +apresentacoes <-- wysiwyg : + +apresentacoes <-- estatisticas : + +apresentacoes <-- salvamento : + +apresentacoes --> compartilhamento + +wysiwyg --> toolchain + +compartilhamento <-- link : + +compartilhamento <-- arquivo : + + +legend right ++ : Contribuição Positiva +- : Contribuição Negativa +endlegend +@enduml \ No newline at end of file diff --git a/images/nfr-framework/v1.0/code/edicao_de_imagens.uml b/images/nfr-framework/v1.0/code/edicao_de_imagens.uml new file mode 100644 index 0000000..e9c32c8 --- /dev/null +++ b/images/nfr-framework/v1.0/code/edicao_de_imagens.uml @@ -0,0 +1,38 @@ +@startuml +!define softgoal(name) cloud "name" +!define op(name) cloud #line.bold; "name" + +softgoal(Edição de Imagens) as edicao + +softgoal(Usabilidade e Acessibilidade) as usabilidade +op(WYSIWYG) as wysiwyg +op(Efeitos fontes decorações e ícones) as recursos +op(Templates reutilizáveis) as templates +op(Recomendação de paletas de cor) as recomendacao +op(Colaboração entre usuários) as colaboracao +op(Visualização em tempo real) as visualizacao +softgoal(Exportação de Imagens) as exportacao +op(Integração com Google Drive) as integracao +softgoal(Apresentação em Slides) as apresentacao + +edicao --> usabilidade +edicao <-- colaboracao : + +edicao --> exportacao + + +usabilidade <-- wysiwyg : + +usabilidade <-- recomendacao : + + +wysiwyg <-- recursos : + +wysiwyg <-- templates : + + +colaboracao <-- visualizacao : + + +exportacao <-- integracao : + +exportacao --> apresentacao + +legend right ++ : Contribuição Positiva +- : Contribuição Negativa +endlegend +@enduml \ No newline at end of file diff --git a/images/nfr-framework/v1.0/code/geral.uml b/images/nfr-framework/v1.0/code/geral.uml new file mode 100644 index 0000000..14c3ef8 --- /dev/null +++ b/images/nfr-framework/v1.0/code/geral.uml @@ -0,0 +1,47 @@ +@startuml +!define softgoal(name) cloud "name" +!define op(name) cloud #line.bold; "name" + +softgoal(Design) as design +softgoal(Usabilidade) as usabilidade +softgoal(Acessibilidade) as acessibilidade +op(Simplicidade de Linguagem) as linguagem +softgoal(Portabilidade) as portabilidade +op(Compatibilidade entre Navegadores) as compatibilidade +op(Projeção de Layouts) as layouts +op(Identidade Visual) as identidade +op(Internacionalização) as internacionalizacao +softgoal(Segurança) as seguranca +op(Criptografia de Senhas) as criptografia +softgoal(Desempenho) as desempenho +op(Autenticação com 2 fatores) as autenticacao +op(Design responsivo) as responsivo + +design <-- usabilidade +design --> acessibilidade +design <-- layouts : + +design <-- identidade : + + +usabilidade <-- internacionalizacao : + + + + +portabilidade <-- acessibilidade +portabilidade <-- compatibilidade : + +portabilidade <-- responsivo : + + + +linguagem --> acessibilidade : + + +seguranca --> autenticacao : + +seguranca --> criptografia : + + +desempenho <-- criptografia: - +desempenho <-- autenticacao : - + + +legend right ++ : Contribuição Positiva +- : Contribuição Negativa +endlegend +@enduml \ No newline at end of file diff --git a/images/nfr-framework/v1.0/edicao_de_imagens.png b/images/nfr-framework/v1.0/edicao_de_imagens.png new file mode 100644 index 0000000..792ed5f Binary files /dev/null and b/images/nfr-framework/v1.0/edicao_de_imagens.png differ diff --git a/images/nfr-framework/v1.0/geral.png b/images/nfr-framework/v1.0/geral.png new file mode 100644 index 0000000..1a1ddde Binary files /dev/null and b/images/nfr-framework/v1.0/geral.png differ diff --git a/images/rich-picture/v0.0/fluxo-de-usuario.jpg b/images/rich-picture/v0.0/fluxo-de-usuario.jpg new file mode 100644 index 0000000..2310088 Binary files /dev/null and b/images/rich-picture/v0.0/fluxo-de-usuario.jpg differ diff --git a/images/rich-picture/v0.0/geral.jpg b/images/rich-picture/v0.0/geral.jpg new file mode 100644 index 0000000..6e1cdd7 Binary files /dev/null and b/images/rich-picture/v0.0/geral.jpg differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..1a10b3b --- /dev/null +++ b/index.html @@ -0,0 +1,1918 @@ + + + + + + + + + + + + + + + + + + + + + Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+ +
+
+ + + +
+
+ + + + + + + +

Requisitos de Software

+

Logo Canva

+

Sobre a Disciplina

+

A disciplina de Requisitos de Software aborda o processo de definição, +documentação e manutenção dos requisitos de um sistema de software. Seu +principal objetivo é garantir que o software desenvolvido atenda às necessidades +e expectativas dos stakeholders (partes interessadas).

+

Os principais tópicos geralmente incluem:

+
    +
  1. +

    Elicitação de Requisitos: Técnicas e métodos para identificar e coletar + requisitos de diferentes stakeholders, como entrevistas, questionários, + workshops e observações.

    +
  2. +
  3. +

    Análise de Requisitos: Processos para atender, analisar e negociar os + requisitos coletados, garantindo que sejam viáveis, claros e completos.

    +
  4. +
  5. +

    Documentação de Requisitos: Criação de documentos que descrevem os requisitos + de maneira estruturada e detalhada, como especificações de requisitos de + software.

    +
  6. +
  7. +

    Validação e Verificação de Requisitos: Métodos para garantir que os requitos + estejam corretos, completos e testáveis, e que o software desenvolvido + estejam em conformidade com esse requisitos.

    +
  8. +
  9. +

    Gerenciamento de Requisitos: Práticas para gerenciar mudanças nos requisitos + estejam corretos, completos e testáveis, e que o software desenvolvido + estejam em conformidade com esses requisitos.

    +
  10. +
  11. +

    Ferramentas e Técnicas: Uso de ferramentas e técnicas para apoiar as + atividades de requisitos, como modelagem, prototipagem e ferramentas de + gestão de requisitos.

    +
  12. +
+

Sobre o Canva

+

O Canva é uma plataforma de design gráfico online que permite a usuários criar +uma ampla variedade de conteúdos visuais de forma fácil e intuitiva. Lançada em +2013, a plataforma oferece uma interface de arrastar e soltar e uma vasta +biblioteca de templates, imagens, ícones e fontes, facilitando o design mesmo +para quem não possui experiência em design gráfico.

+

Principais Características do Canva:

+

Templates: Oferece milhares de templates prontos para diversas finalidades, +como posts para redes sociais, apresentações, cartazes, cartões de visita, +folhetos, entre outros.

+

Recursos de Design: Inclui uma variedade de elementos gráficos, como formas, +ícones, fotos e ilustrações, além de ferramentas de texto e edição de imagens.

+

Colaboração: Permite que equipes trabalhem juntas em projetos de design, com +opções de compartilhamento e edição colaborativa em tempo real.

+

Acessibilidade: Disponível tanto em versão web quanto em aplicativos para +dispositivos móveis, permitindo a criação e edição de designs em qualquer lugar.

+

Versatilidade: Atende a uma ampla gama de necessidades, desde uso pessoal e +pequenas empresas até grandes organizações, com funcionalidades para criação de +materiais de marketing, apresentações corporativas, material didático, entre +outros.

+

Recursos Gratuitos e Pagos: Oferece uma versão gratuita com muitos recursos +disponíveis, mas também possui planos pagos (Canva Pro e Canva for Enterprise) +que oferecem funcionalidades adicionais, como mais opções de templates, +ferramentas avançadas de edição e maior espaço de armazenamento.

+

Equipe de trabalho

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IntegrantesMatrículaGitHub
Caio Alexandre Ornelas Silva221007644@bitterteriyaki
Luiza Maluf Amorim221008294@LuizaMaluf
Rodrigo Mattos de F. Ayres Bezerra180108875@Rodrigomfab88
Henrique Camelo Quenino221008098@henriquecq
Gabriel Moura dos Santos221008060@thegm445
+

Ferramentas Utilizadas

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FerramentaNomeDescrição
Logo do GitHubGitHubVersionamento de arquivos
Logo do TeamsMicrosoft TeamsPara gravações de reuniões
Logo do WhatsAppWhatsAppComunicação
Logo do DiscordDiscordReuniões
Logo do MkdocsMkdocsDocumentação
Logo do MiroMiroCriação de diagramas
+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/modelagem/backlog/index.html b/modelagem/backlog/index.html new file mode 100644 index 0000000..7e682ce --- /dev/null +++ b/modelagem/backlog/index.html @@ -0,0 +1,3329 @@ + + + + + + + + + + + + + + + + + + + Backlog - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Backlog

+ +

Histórico de versões

+ + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
17/08/2024Definição das histórias de usuário baseando-se nos requisitos listados na parte de elicitação MoSCoW. Definição das Releases, Sprints e Backlog do ProdutoLuiza Maluf0.0
+

Origem

+

Esse documento foi feito com base nos requisitos listados na parte de elicitação MoSCoW.

+

Metodologia

+

Tendo em vista os requisitos elicitados, foram criadas histórias de usuário que descrevem as funcionalidades de uma maneira centrada no usuário. Cada história foi detalhada com critérios de aceitação, que estabelecem as condições mínimas para que a funcionalidade seja considerada completa.

+

As histórias de usuário foram então distribuídas em sprints, que são ciclos de desenvolvimento curtos e iterativos. Cada sprint foca em entregar funcionalidades específicas, permitindo feedback contínuo e ajustes ao longo do desenvolvimento.

+

O backlog foi estruturado com todas as histórias de usuário ordenadas por prioridade e distribuídas entre as sprints.

+

Esse backlog serve como guia para o desenvolvimento, garantindo que as funcionalidades mais importantes sejam entregues primeiro e que o produto evolua de acordo com as necessidades dos usuários.

+

Backlog do Produto

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ÉpicoSprintIDEu, comoDesejoPara que eu possaPontosPrioridadeRequisito
Diversidade de Formatos de Design1US#01UsuárioCriar posts, banners, apresentaçõesUtilizar diferentes formatos de design5MustRF1
Templates Personalizáveis1US#02UsuárioUtilizar templates prontos e editá-losPersonalizar designs rapidamente5MustRF2
Criação de Designs2US#03UsuárioCriar designs do zeroCriar designs completamente personalizados8MustRF3
Importação de Mídia2US#04UsuárioImportar imagens e fotosIncluir minhas próprias mídias nos designs5MustRF4
Exportação de Designs2US#05UsuárioSalvar e exportar designs em PDF, JPG, PNGUsar os designs fora da plataforma5MustRF5
Importação de Vídeos3US#06UsuárioImportar vídeos e outros arquivosIncluir vídeos nos meus designs8ShouldRF6
Exportação Avançada3US#07UsuárioExportar designs em SVG, MP4, GIFUsar designs em formatos específicos8ShouldRF7
Integração com Redes Sociais4US#08UsuárioIntegrar com redes sociais e agendar postsPublicar diretamente nas redes sociais13CouldRF8
Edição de Imagem Básica4US#09UsuárioCortar, redimensionar e girar imagensAjustar imagens de acordo com a necessidade8MustRF9
Ajustes de Imagem4US#10UsuárioAjustar brilho, contraste e saturação das imagensMelhorar a qualidade visual das minhas imagens8MustRF10
Edição de Texto5US#11UsuárioEditar textos com formatação básica, escolha de fontes, coresPersonalizar textos nos meus designs8MustRF11
Adição de Elementos5US#12UsuárioAdicionar ícones, ilustrações e formas geométricasEnriquecer o conteúdo dos designs5MustRF12
Edição de Imagem Avançada5US#13UsuárioAplicar filtros, efeitos e remover fundo das imagensCriar efeitos visuais mais profissionais13ShouldRF13
Efeitos de Texto6US#14UsuárioCriar efeitos de texto como sombra e contornoDestacar textos nos designs8ShouldRF14
Camadas Básicas6US#15UsuárioOrganizar camadas básicas, ordem e visibilidadeGerenciar a composição dos elementos8ShouldRF15
Camadas Avançadas7US#16UsuárioAjustar opacidade e bloquear camadasControlar a visibilidade e segurança das camadas8CouldRF16
Máscaras7US#17UsuárioAplicar máscaras lineares e radiaisCriar efeitos de máscara nos designs5CouldRF17
Compartilhamento Básico7US#18UsuárioCompartilhar designs para visualizaçãoMostrar meus designs para outras pessoas5MustRF18
Compartilhamento com Edição7US#19UsuárioCompartilhar designs para edição com permissõesColaborar na criação de designs8MustRF19
Edição Colaborativa8US#20UsuárioEditar designs em tempo real com outros usuáriosTrabalhar junto com outros na criação de designs13ShouldRF20
Sistema de Chat8US#21UsuárioUtilizar um sistema de chat durante a ediçãoComunicar com outros enquanto edito8CouldRF21
Comentários8US#22UsuárioDeixar comentários em elementos específicosRevisar e dar feedback sobre partes do design8CouldRF22
Grade e Guias8US#23UsuárioUsar grade e guias para alinhar elementosManter a simetria e organização do design5MustRF23
Pré-visualização em Tempo Real9US#24UsuárioVer uma pré-visualização em tempo real do designAvaliar o design enquanto edito13MustRF24
Paleta de Cores9US#25UsuárioCriar e usar paletas de coresManter a consistência de cores nos designs8ShouldRF25
Guia de Estilo9US#26UsuárioUtilizar um guia de estiloAssegurar que os designs sigam um padrão visual5CouldRF26
Histórico de Versões9US#27UsuárioAcessar o histórico de versões do designReverter a versões anteriores caso necessário8CouldRF27
Atalhos de Teclado10US#28UsuárioUtilizar atalhos de tecladoAumentar a eficiência durante a criação de designs5CouldRF28
Interface Intuitiva10US#29UsuárioNavegar por uma interface fácil de usarTrabalhar de forma mais fluida e intuitiva5MustRF29
Arrastar e Soltar10US#30UsuárioUsar a função de arrastar e soltarManipular elementos de forma fácil e rápida5MustRF30
Design Responsivo10US#31UsuárioCriar designs que sejam responsivosAssegurar que o design seja exibido corretamente em diferentes dispositivos8ShouldRF31
Integração com Ferramentas11US#32UsuárioIntegrar com redes sociais e armazenamento em nuvemFacilitar o compartilhamento e armazenamento dos designs8CouldRF32
Performance11US#33UsuárioUsar a ferramenta com performance rápida e eficienteTer uma experiência fluida durante a criação dos designs13MustRF33
Confiabilidade11US#34UsuárioConfiar que a ferramenta funcionará de forma estávelEvitar interrupções e perda de trabalho13MustRF34
Segurança de Dados11US#35UsuárioTer segurança dos meus dados armazenadosGarantir que meus dados pessoais estejam protegidos13MustRF35
Acessibilidade12US#36UsuárioUtilizar a ferramenta com recursos de acessibilidadeGarantir que todos os usuários possam utilizar a plataforma8ShouldRF36
Escalabilidade12US#37UsuárioTer a plataforma escalável conforme o uso aumentaAssegurar que o sistema suporte um grande número de usuários5CouldRF37
Internacionalização12US#38UsuárioUtilizar a plataforma em diferentes idiomasAcessar a plataforma em minha língua nativa5CouldRF38
+

Release 1

+

Sprint 1

+ + + + + + + + + + + + + + + + + + + + +
IDNome da História de UsuárioPontos
US#01Criar posts, banners e apresentações5
US#02Utilizar templates prontos e editá-los5
+

US#01

+
    +
  • +

    História: Como usuário, desejo criar posts, banners e apresentações para utilizar diferentes formatos de design.

    +
  • +
  • +

    Critérios de Aceitação: O usuário deve ser capaz de selecionar entre diversos formatos de design, como posts, banners, e apresentações, diretamente na interface inicial.

    +
  • +
+

US#02

+
    +
  • +

    História: Como usuário, desejo utilizar templates prontos e editá-los para personalizar designs rapidamente.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve oferecer uma biblioteca de templates personalizáveis para diferentes formatos de design, permitindo a edição rápida e fácil.

    +
  • +
+

Sprint 2

+ + + + + + + + + + + + + + + + + + + + + + + + + +
IDNome da História de UsuárioPontos
US#03Criar designs do zero8
US#04Importar imagens e fotos5
US#05Salvar e exportar designs em PDF, JPG, PNG5
+

US#03

+
    +
  • +

    História: Como usuário, desejo criar designs do zero para criar designs completamente personalizados.

    +
  • +
  • +

    Critérios de Aceitação: O usuário deve ser capaz de iniciar um design em branco, sem restrições de template, com acesso completo às ferramentas de criação.

    +
  • +
+

US#04

+
    +
  • +

    História: Como usuário, desejo importar imagens e fotos para incluir minhas próprias mídias nos designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve permitir a importação de arquivos de imagem nos formatos mais comuns (JPEG, PNG, etc.), e possibilitar sua inserção nos designs.

    +
  • +
+

US#05

+
    +
  • +

    História: Como usuário, desejo salvar e exportar designs em PDF, JPG e PNG para usar os designs fora da plataforma.

    +
  • +
  • +

    Critérios de Aceitação: O usuário deve poder salvar e exportar seus designs nos formatos PDF, JPG, e PNG, com qualidade configurável.

    +
  • +
+

Sprint 3

+ + + + + + + + + + + + + + + + + + + + +
IDNome da História de UsuárioPontos
US#06Importar vídeos e outros arquivos8
US#07Exportar designs em SVG, MP4, GIF8
+

US#06

+
    +
  • +

    História: Como usuário, desejo importar vídeos e outros arquivos para incluir vídeos nos meus designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve permitir a importação de arquivos de vídeo (MP4, MOV, etc.) e possibilitar sua inserção nos designs.

    +
  • +
+

US#07

+
    +
  • +

    História: Como usuário, desejo exportar designs em SVG, MP4 e GIF para usar designs em formatos específicos.

    +
  • +
  • +

    Critérios de Aceitação: O usuário deve poder exportar seus designs nos formatos SVG, MP4 e GIF, garantindo compatibilidade com diversas plataformas.

    +
  • +
+

Release 2

+

Sprint 4

+ + + + + + + + + + + + + + + + + + + + + + + + + +
IDNome da História de UsuárioPontos
US#08Integrar com redes sociais e agendar posts13
US#09Cortar, redimensionar e girar imagens8
US#10Ajustar brilho, contraste e saturação das imagens8
+

US#08

+
    +
  • +

    História: Como usuário, desejo integrar com redes sociais e agendar posts para publicar diretamente nas redes sociais.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve oferecer integração com as principais redes sociais, permitindo o agendamento e a publicação direta de designs.

    +
  • +
+

US#09

+
    +
  • +

    História: Como usuário, desejo cortar, redimensionar e girar imagens para ajustar imagens de acordo com a necessidade.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve incluir ferramentas básicas de edição de imagem, como corte, redimensionamento e rotação, acessíveis de forma intuitiva.

    +
  • +
+

US#10

+
    +
  • +

    História: Como usuário, desejo ajustar brilho, contraste e saturação das imagens para melhorar a qualidade visual das minhas imagens.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve permitir ajustes de brilho, contraste e saturação em imagens, com uma interface visual simples e eficaz.

    +
  • +
+

Sprint 5

+ + + + + + + + + + + + + + + + + + + + + + + + + +
IDNome da História de UsuárioPontos
US#11Editar textos com formatação básica, escolha de fontes e cores8
US#12Adicionar ícones, ilustrações e formas geométricas5
US#13Aplicar filtros, efeitos e remover fundo das imagens13
+

US#11

+
    +
  • +

    História: Como usuário, desejo editar textos com formatação básica, escolha de fontes e cores para personalizar textos nos meus designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve oferecer opções de formatação de texto, incluindo a seleção de fontes, tamanhos, cores, e alinhamento.

    +
  • +
+

US#12

+
    +
  • +

    História: Como usuário, desejo adicionar ícones, ilustrações e formas geométricas para enriquecer o conteúdo dos designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve fornecer uma biblioteca de ícones, ilustrações e formas geométricas, que possam ser adicionadas e editadas nos designs.

    +
  • +
+

US#13

+
    +
  • +

    História: Como usuário, desejo aplicar filtros, efeitos e remover o fundo das imagens para criar efeitos visuais mais profissionais.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve incluir ferramentas para aplicação de filtros, efeitos visuais, e remoção automática de fundos em imagens.

    +
  • +
+

Release 3

+

Sprint 6

+ + + + + + + + + + + + + + + + + + + + +
IDNome da História de UsuárioPontos
US#14Criar efeitos de texto como sombra e contorno8
US#15Organizar camadas básicas, ordem e visibilidade8
+

US#14

+
    +
  • +

    História: Como usuário, desejo criar efeitos de texto como sombra e contorno para destacar textos nos designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve permitir a aplicação de efeitos de sombra e contorno em textos, com opções de customização.

    +
  • +
+

US#15

+
    +
  • +

    História: Como usuário, desejo organizar camadas básicas, ordem e visibilidade para gerenciar a composição dos elementos.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve oferecer controle sobre as camadas dos elementos, permitindo alterar a ordem e visibilidade diretamente na interface.

    +
  • +
+

Sprint 7

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDNome da História de UsuárioPontos
US#16Ajustar opacidade e bloquear camadas8
US#17Aplicar máscaras lineares e radiais5
US#18Compartilhar designs para visualização5
US#19Compartilhar designs para edição com permissões8
+

US#16

+
    +
  • +

    História: Como usuário, desejo ajustar opacidade e bloquear camadas para controlar a visibilidade e segurança das camadas.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve permitir ajustes de opacidade e a opção de bloquear camadas para evitar alterações indesejadas.

    +
  • +
+

US#17

+
    +
  • +

    História: Como usuário, desejo aplicar máscaras lineares e radiais para criar efeitos de máscara nos designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve incluir ferramentas para a aplicação de máscaras lineares e radiais em imagens e outros elementos.

    +
  • +
+

US#18

+
    +
  • +

    História: Como usuário, desejo compartilhar designs para visualização para mostrar meus designs para outras pessoas.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve permitir o compartilhamento de designs por meio de links ou outras plataformas, apenas para visualização.

    +
  • +
+

US#19

+
    +
  • +

    História: Como usuário, desejo compartilhar designs para edição com permissões básicas para colaborar na criação de designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve permitir o compartilhamento de designs com permissões básicas de edição, incluindo restrições de acesso.

    +
  • +
+

Release 4

+

Sprint 8

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDNome da História de UsuárioPontos
US#20Editar designs em tempo real com outros usuários13
US#21Utilizar um sistema de chat durante a edição8
US#22Deixar comentários em elementos específicos8
US#23Usar grade e guias para alinhar elementos5
+

US#20

+
    +
  • +

    História: Como usuário, desejo editar designs em tempo real com outros usuários para trabalhar junto com outros na criação de designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve permitir a edição colaborativa em tempo real, sincronizando alterações imediatamente entre os participantes.

    +
  • +
+

US#21

+
    +
  • +

    História: Como usuário, desejo utilizar um sistema de chat durante a edição para comunicar com outros enquanto edito.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve integrar um chat funcional dentro da interface de edição, permitindo comunicação direta entre os usuários.

    +
  • +
+

US#22

+
    +
  • +

    História: Como usuário, desejo deixar comentários em elementos específicos para revisar e dar feedback sobre partes do design.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve permitir a adição de comentários diretamente em elementos específicos do design, com notificações para outros usuários.

    +
  • +
+

US#23

+
    +
  • +

    História: Como usuário, desejo usar grade e guias para alinhar elementos para manter a simetria e organização do design.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve oferecer opções de grade e guias que podem ser ativadas ou desativadas conforme a necessidade.

    +
  • +
+

Sprint 9

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDNome da História de UsuárioPontos
US#24Ver uma pré-visualização em tempo real do design13
US#25Criar e usar paletas de cores8
US#26Utilizar um guia de estilo5
US#27Acessar o histórico de versões do design8
+

US#24

+
    +
  • +

    História: Como usuário, desejo ver uma pré-visualização em tempo real do design para avaliar o design enquanto edito.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve exibir uma pré-visualização em tempo real, refletindo todas as mudanças feitas no design.

    +
  • +
+

US#25

+
    +
  • +

    História: Como usuário, desejo criar e usar paletas de cores para manter a consistência de cores nos designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve permitir a criação e gerenciamento de paletas de cores, com a possibilidade de aplicação em qualquer design.

    +
  • +
+

US#26

+
    +
  • +

    História: Como usuário, desejo utilizar um guia de estilo para assegurar que os designs sigam um padrão visual.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve oferecer um guia de estilo que pode ser configurado e aplicado automaticamente em novos designs.

    +
  • +
+

US#27

+
    +
  • História: Como usuário, desejo acessar o histórico de versões do design para reverter a versões anteriores caso necessário.
  • +
+

-Critérios de Aceitação: O sistema deve manter um histórico de versões de cada design, permitindo a restauração de versões anteriores com facilidade.

+

Sprint 10

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDNome da História de UsuárioPontos
US#28Utilizar atalhos de teclado5
US#29Navegar por uma interface fácil de usar5
US#30Usar a função de arrastar e soltar5
US#31Criar designs que sejam responsivos8
US#32Integrar com redes sociais e armazenamento em nuvem8
+

US#28

+
    +
  • +

    História: Como usuário, desejo utilizar atalhos de teclado para aumentar a eficiência durante a criação de designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve incluir e permitir a personalização de atalhos de teclado para as principais funções de design.

    +
  • +
+

US#29

+
    +
  • História: Como usuário, desejo navegar por uma interface fácil de usar.
  • +
+

-Critérios de Aceitação: A interface deve ser intuitiva, com navegação clara e acessível, permitindo uma experiência de uso fluida.

+

US#30

+
    +
  • História: Como usuário, desejo usar a função de arrastar e soltar para manipular elementos de forma fácil e rápida.
  • +
+

-Critérios de Aceitação: O sistema deve permitir que o usuário arraste e solte elementos dentro da área de design com precisão e sem dificuldades.

+

US#31

+
    +
  • +

    História: Como usuário, desejo criar designs que sejam responsivos para assegurar que o design seja exibido corretamente em diferentes dispositivos.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve fornecer ferramentas e opções para criar designs que se ajustem automaticamente a diferentes tamanhos e resoluções de tela.

    +
  • +
+

US#32

+
    +
  • +

    História: Como usuário, desejo integrar com redes sociais e armazenamento em nuvem para facilitar o compartilhamento e armazenamento dos designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve permitir integração com plataformas de redes sociais e serviços de armazenamento em nuvem, possibilitando o compartilhamento e armazenamento direto dos designs.

    +
  • +
+

Sprint 11

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDNome da História de UsuárioPontos
US#33Usar a ferramenta com performance rápida e eficiente13
US#34Confiar que a ferramenta funcionará de forma estável13
US#35Ter segurança dos meus dados armazenados13
US#36Utilizar a ferramenta com recursos de acessibilidade8
US#37Ter a plataforma escalável conforme o uso aumenta5
US#38Utilizar a plataforma em diferentes idiomas5
+

US#33

+
    +
  • +

    História: Como usuário, desejo usar a ferramenta com performance rápida e eficiente para ter uma experiência fluida durante a criação dos designs.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve garantir um desempenho ágil e eficiente, com tempos de resposta rápidos e mínima latência durante a criação e edição de designs.

    +
  • +
+

US#34

+
    +
  • +

    História: Como usuário, desejo confiar que a ferramenta funcionará de forma estável para evitar interrupções e perda de trabalho.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve ser robusto e estável, minimizando falhas e interrupções durante o uso, com mecanismos de recuperação de dados em caso de problemas.

    +
  • +
+

US#35

+
    +
  • +

    História: Como usuário, desejo ter segurança dos meus dados armazenados para garantir que meus dados pessoais estejam protegidos.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve implementar medidas de segurança robustas para proteger dados pessoais e informações armazenadas, incluindo criptografia e controle de acesso.

    +
  • +
+

US#36

+
    +
  • +

    História: Como usuário, desejo utilizar a ferramenta com recursos de acessibilidade para garantir que todos os usuários possam utilizar a plataforma.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve incluir recursos de acessibilidade, como suporte a leitores de tela, navegação por teclado e opções de contraste, para atender às necessidades de todos os usuários.

    +
  • +
+

US#37

+
    +
  • +

    História: Como usuário, desejo ter a plataforma escalável conforme o uso aumenta para assegurar que o sistema suporte um grande número de usuários.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve ser capaz de escalar adequadamente para lidar com um aumento no número de usuários e dados, sem perda de desempenho.

    +
  • +
+

US#38

+
    +
  • +

    História: Como usuário, desejo utilizar a plataforma em diferentes idiomas para acessar a plataforma em minha língua nativa.

    +
  • +
  • +

    Critérios de Aceitação: O sistema deve oferecer suporte a múltiplos idiomas, permitindo que os usuários escolham seu idioma preferido para a interface e os recursos da plataforma.

    +
  • +
+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/modelagem/casos_de_uso/index.html b/modelagem/casos_de_uso/index.html new file mode 100644 index 0000000..7e06f5b --- /dev/null +++ b/modelagem/casos_de_uso/index.html @@ -0,0 +1,2956 @@ + + + + + + + + + + + + + + + + + + + + + + + Especificação de Casos de Uso - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Especificação de Casos de Uso

+

Histórico de Versões

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
15/08/2024Criação do documento e especificação do que são casos de uso.Henrique Quenino0.1
15/08/2024Adição dos 11 primeiros casos de uso durante análise de protocolo.Henrique Quenino0.2
16/08/2024Revisão e correção de casos de uso.Henrique Quenino0.3
16/08/2024Adição de 9 casos de uso.Henrique Quenino0.5
17/08/2024Revisão e correção de casos de uso.Henrique Quenino e Luiza Maluf0.6
19/08/2024Adição de diagramas de casos de uso.Gabriel Moura0.7
20/08/2024Revisão final do documento.Gabriel Moura e Henrique Quenino1.0
+

Origem

+

Os casos de uso foram criados com base na elicitação, mais especificamente tendo em vista a análise de protocolo, já que por meio dela foi possível identificar as principais funcionalidades do aplicativo Canva.

+

Metodologia

+

Realizou-se por meio do contacto direto com o Canva, onde foi possível obter informações sobre o funcionamento do aplicativo e as principais funcionalidades oferecidas aos usuários. A partir dessas informações, foram identificados os principais casos de uso do Canva.

+

Introdução

+

A seção de casos de uso do aplicativo Canva descreve as principais +funcionalidades do sistema. Cada caso de uso representa uma interação específica +entre o usuário e o sistema, detalhando os passos necessários para realizar uma +determinada tarefa ou obter um resultado desejado. Os casos de uso são +apresentados em um formato padronizado, incluindo descrição, atores envolvidos, +fluxo básico de eventos, fluxos alternativos e exceções, além de diagramas de +casos de uso para visualização.

+

Artefatos

+

Casos de Uso

+

UC-01: Criar um Novo Design

+
    +
  • Descrição: Este caso de uso descreve o processo de criação de um novo + design no aplicativo Canva, incluindo a seleção de um formato ou modelo, a + adição de elementos visuais, texto e outros recursos, bem como a customização + do design de acordo com as preferências do usuário.
  • +
  • Diagrama: **Diagrama**
  • +
  • Ator: Usuário Canva
  • +
  • Fluxo Básico de Eventos:
      +
    1. O usuário seleciona a opção "Criar um Design" na tela inicial.
    2. +
    3. O sistema apresenta opções de formatos e modelos pré-definidos.
    4. +
    5. O usuário escolhe um formato ou modelo.
    6. +
    7. O sistema cria um novo design com o formato/modelo selecionado.
    8. +
    9. O usuário é direcionado para a interface de edição do novo design.
    10. +
    +
  • +
  • Fluxo Alternativo:
      +
    1. O usuário pode optar por criar um design com dimensões personalizadas.
    2. +
    3. O usuário pode iniciar um design a partir de um template vazio.
    4. +
    +
  • +
  • Fluxo de Exceções:
      +
    1. Falha na conexão com a internet durante o processo.
    2. +
    3. Formato ou modelo selecionado não está disponível.
    4. +
    5. Limite de designs atingido para Usuários Gratuitos.
    6. +
    +
  • +
+

1.2. UC-02: Editar um Design Existente

+
    +
  • Descrição: Este caso de uso descreve a ação de editar um design existente no Canva, permitindo ao usuário modificar elementos visuais, texto, cores, fontes e outros aspectos do design de forma intuitiva e prática.
  • +
  • Diagrama: **Diagrama**
  • +
  • Ator: Usuário Canva
  • +
  • Fluxo Básico de Eventos:
      +
    1. O usuário acessa a seção "Seus Designs".
    2. +
    3. O usuário seleciona o design que deseja editar.
    4. +
    5. O sistema abre o design na interface de edição.
    6. +
    +
  • +
  • Fluxo Alternativo:
      +
    1. O usuário pode duplicar o design antes de editar.
    2. +
    3. O usuário pode acessar o histórico de revisões do design.
    4. +
    5. O usuário pode adicionar colaboradores para edição em tempo real.
    6. +
    7. O usuário pode acessar recursos de inteligência artificial para sugestões de design.
    8. +
    +
  • +
  • Fluxo de Exceções:
      +
    1. Design inexistente ou sem permissão de edição.
    2. +
    3. Falha na conexão com a internet durante o processo.
    4. +
    +
  • +
+

1.3. UC-03: Compartilhar um Design

+
    +
  • Descrição: Este caso de uso descreve a funcionalidade de compartilhamento de design no Canva, permitindo que os usuários compartilhem seus projetos com outras pessoas através de diferentes métodos, como links, redes sociais ou download direto.
  • +
  • Diagrama: **Diagrama**
  • +
  • Ator: Usuário Canva
  • +
  • Fluxo Básico de Eventos:
      +
    1. O usuário abre o design que deseja compartilhar.
    2. +
    3. O usuário clica no botão "Compartilhar".
    4. +
    5. O sistema apresenta opções de compartilhamento (link, email, redes sociais).
    6. +
    7. O usuário escolhe o método de compartilhamento.
    8. +
    9. O sistema gera o link/mensagem de compartilhamento.
    10. +
    11. O usuário compartilha o link/mensagem.
    12. +
    +
  • +
  • Fluxo Alternativo:
      +
    1. O usuário pode definir permissões de acesso ao compartilhar (visualizar, editar, comentar).
    2. +
    3. O usuário pode definir uma data de expiração para o compartilhamento.
    4. +
    5. O usuário pode adicionar uma senha de acesso ao compartilhamento.
    6. +
    7. O usuário pode compartilhar diretamente em redes sociais.
    8. +
    +
  • +
  • Fluxo de Exceções:
      +
    1. Falha na conexão com a internet durante o processo.
    2. +
    3. Limite de compartilhamentos atingido para Usuários Gratuitos.
    4. +
    5. Compartilhamento em redes sociais requer autenticação adicional.
    6. +
    +
  • +
+

1.4. UC-04: Baixar um Design

+
    +
  • Descrição: Este caso de uso descreve o processo de download de um design criado no Canva, possibilitando que os usuários salvem seus trabalhos em diferentes formatos, como imagem ou PDF, para uso posterior.
  • +
  • Diagrama: **Diagrama**
  • +
  • Ator: Usuário Canva
  • +
  • Fluxo Básico de Eventos:
      +
    1. O usuário abre o design que deseja baixar.
    2. +
    3. O usuário clica no botão "Baixar".
    4. +
    5. O sistema apresenta opções de formato de arquivo (PNG, JPG, PDF, etc.).
    6. +
    7. O usuário escolhe o formato desejado.
    8. +
    9. O sistema gera o arquivo e inicia o download.
    10. +
    +
  • +
  • Fluxo Alternativo:
      +
    1. Opções de download adicionais (resolução, qualidade) podem ser apresentadas dependendo do tipo de arquivo.
    2. +
    3. Alguns formatos ou opções de download podem ser exclusivos para Usuários Pro.
    4. +
    +
  • +
  • Fluxo de Exceções:
      +
    1. Falha na conexão com a internet durante o processo.
    2. +
    3. Limite de downloads atingido para Usuários Gratuitos.
    4. +
    +
  • +
+

1.5. UC-05: Acessar Templates Prontos

+
    +
  • Descrição: Este caso de uso descreve a funcionalidade de acesso a templates prontos no Canva, permitindo que os usuários escolham modelos pré-definidos para criar designs de forma rápida e eficiente.
  • +
  • Diagrama: **Diagrama**
  • +
  • Ator: Usuário Canva
  • +
  • Fluxo Básico de Eventos:
      +
    1. O usuário navega pela página inicial ou utiliza a barra de pesquisa.
    2. +
    3. O sistema apresenta opções de templates por categoria, formato ou palavra-chave.
    4. +
    5. O usuário seleciona um template.
    6. +
    7. O sistema abre o template na interface de edição.
    8. +
    +
  • +
  • Fluxo Alternativo:
      +
    1. O usuário pode favoritar um template para acesso rápido.
    2. +
    3. O usuário pode visualizar designs relacionados ao template selecionado.
    4. +
    5. O usuário pode acessar templates exclusivos para Usuários Pro.
    6. +
    +
  • +
  • Fluxo de Exceções:
      +
    1. Falha na conexão com a internet durante o processo.
    2. +
    3. Template não disponível ou removido.
    4. +
    5. Limite de templates acessados atingido para Usuários Gratuitos.
    6. +
    +
  • +
+

1.6. UC-06: Exploração de Recursos Premium

+
    +
  • Descrição: Este caso de uso descreve a exploração dos recursos premium oferecidos pelo Canva, incluindo imagens, elementos gráficos, templates exclusivos e outras funcionalidades avançadas disponíveis para assinantes pagos.
  • +
  • Diagrama: **Diagrama**
  • +
  • Ator: Usuário Canva (Gratuito e Pro)
  • +
  • Fluxo Básico de Eventos:
      +
    1. O usuário navega pelas funcionalidades da plataforma.
    2. +
    3. O sistema identifica e sinaliza os recursos exclusivos para usuários Premium.
    4. +
    5. O usuário visualiza a descrição e benefícios do recurso Premium.
    6. +
    +
  • +
  • Fluxo Alternativo:
      +
    1. Usuário Gratuito pode optar por assinar o plano Premium.
    2. +
    3. Usuário Pro utiliza o recurso Premium.
    4. +
    5. Usuário Pro pode acessar recursos
    6. +
    +
  • +
  • Fluxo de Exceções:
      +
    1. Falha na conexão com a internet durante o processo.
    2. +
    3. Recurso Premium não disponível no momento.
    4. +
    5. Usuário Gratuito tenta acessar recurso exclusivo para Usuários Pro.
    6. +
    +
  • +
+

1.7. UC-07: Adaptação do Design para diversos formatos

+
    +
  • Descrição: Este caso de uso descreve a funcionalidade de redimensionamento de um design existente para diferentes formatos, como redes sociais, banners, cartões de visita, entre outros, garantindo a consistência visual e a qualidade do projeto.
  • +
  • Diagrama: **Diagrama**
  • +
  • Ator: Usuário Canva
  • +
  • Fluxo Básico de Eventos:
      +
    1. O usuário abre um design existente.
    2. +
    3. O usuário utiliza a função "Redimensionar" (botão ou menu).
    4. +
    5. O sistema apresenta opções de formatos pré-definidos.
    6. +
    7. O usuário seleciona o novo formato.
    8. +
    9. O sistema redimensiona o design automaticamente, ajustando os elementos.
    10. +
    +
  • +
  • Fluxo Alternativo:
      +
    1. O usuário pode optar por redimensionar manualmente, definindo dimensões personalizadas.
    2. +
    3. O usuário pode salvar o design em diferentes formatos para uso posterior.
    4. +
    +
  • +
  • Fluxo de Exceções:
      +
    1. Distorção de elementos visuais após o redimensionamento automático, necessitando ajustes manuais.
    2. +
    3. Falha na conexão com a internet durante o processo.
    4. +
    +
  • +
+

1.8. UC-08: Logar na plataforma Canva

+
    +
  • Descrição: Este caso de uso descreve o processo de login na plataforma Canva, permitindo que os usuários acessem suas contas de forma segura e acessem recursos exclusivos disponíveis para usuários cadastrados.
  • +
  • Diagrama: **Diagrama**
  • +
  • Ator: Usuário Anônimo, Usuário Canva
  • +
  • Fluxo Básico de Eventos:
      +
    1. O usuário acessa a tela inicial do aplicativo.
    2. +
    3. O usuário informa seus dados de login (e-mail e senha) ou utiliza credenciais de redes sociais.
    4. +
    5. O sistema valida as informações.
    6. +
    7. O usuário é redirecionado para a página inicial da plataforma.
    8. +
    +
  • +
  • Fluxo Alternativo:
      +
    1. O usuário pode optar por "Esqueci minha senha" para recuperar o acesso.
    2. +
    3. O sistema pode solicitar autenticação de dois fatores.
    4. +
    +
  • +
  • Fluxo de Exceções:
      +
    1. Falha na conexão com a internet durante o processo.
    2. +
    3. Dados de login inválidos.
    4. +
    +
  • +
+

1.9. UC-09: Logout da plataforma Canva

+
    +
  • Descrição: Este caso de uso descreve o processo de logout da plataforma Canva, permitindo que os usuários encerrem suas sessões de forma segura e garantam a privacidade de suas informações.
  • +
  • Diagrama: **Diagrama**
  • +
  • Ator: Usuário Canva
  • +
  • Fluxo Básico de Eventos:
      +
    1. O usuário clica na foto de perfil ou ícone de usuário.
    2. +
    3. O usuário seleciona a opção "Sair".
    4. +
    5. O sistema encerra a sessão do usuário.
    6. +
    +
  • +
  • Fluxo Alternativo:
      +
    1. O usuário pode optar por "Permanecer Conectado" para manter a sessão ativa.
    2. +
    +
  • +
  • Fluxo de Exceções:
      +
    1. Falha na conexão com a internet durante o processo.
    2. +
    +
  • +
+

1.10. UC-010: Gerenciar Pastas e projetos

+
    +
  • Descrição: Este caso de uso descreve a funcionalidade de gerenciamento de pastas e projetos no Canva, permitindo que os usuários organizem seus designs em pastas, criem novas pastas, movam designs entre pastas e excluam pastas e designs.
  • +
  • Diagrama: **Diagrama**
  • +
  • Ator: Usuário Canva
  • +
  • Fluxo Básico de Eventos:
      +
    1. O usuário acessa a seção "Pastas e Projetos".
    2. +
    3. O sistema exibe a lista de pastas existentes e designs associados.
    4. +
    5. O usuário cria uma nova pasta.
    6. +
    7. O usuário move designs para a nova pasta.
    8. +
    9. O usuário exclui uma pasta e seus designs associados.
    10. +
    +
  • +
  • Fluxo Alternativo:
      +
    1. O usuário pode renomear uma pasta existente.
    2. +
    3. O usuário pode mover designs entre pastas existentes.
    4. +
    5. O usuário pode restaurar designs excluídos da lixeira.
    6. +
    +
  • +
  • Fluxo de Exceções:
      +
    1. Falha na conexão com a internet durante o processo.
    2. +
    3. Exclusão acidental de designs sem possibilidade de recuperação.
    4. +
    5. Limite de pastas ou designs atingido.
    6. +
    7. O usuário tenta criar uma pasta com um nome já existente no mesmo nível da estrutura de pastas.
    8. +
    9. O usuário tenta realizar uma ação em uma pasta/projeto sem a devida permissão (ex: deletar um projeto compartilhado onde ele possui apenas permissão de visualização).
    10. +
    +
  • +
+

1.11. UC-11: Colaborar em tempo real

+
    +
  • Descrição: Este caso de uso descreve a funcionalidade de colaboração em tempo real no Canva, permitindo que os usuários trabalhem em um design simultaneamente, visualizando as alterações em tempo real e interagindo com outros colaboradores.
  • +
  • Diagrama: **Diagrama**
  • +
  • Ator: Usuário Canva
  • +
  • Fluxo Básico de Eventos:
      +
    1. O usuário abre um design existente.
    2. +
    3. O usuário clica no botão "Compartilhar para Colaboração".
    4. +
    5. O sistema gera um link de colaboração.
    6. +
    7. O usuário compartilha o link com outros colaboradores.
    8. +
    9. Os colaboradores acessam o link e visualizam o design em tempo real.
    10. +
    11. Os colaboradores podem editar, comentar ou visualizar o design.
    12. +
    +
  • +
  • Fluxo Alternativo:
      +
    1. O usuário pode definir permissões de colaboração (visualizar, editar, comentar).
    2. +
    3. O usuário pode encerrar a colaboração a qualquer momento.
    4. +
    5. O usuário pode visualizar o histórico de edições e comentários.
    6. +
    +
  • +
  • Fluxo de Exceções:
      +
    1. Falha na conexão com a internet durante o processo.
    2. +
    3. Limite de colaboradores atingido.
    4. +
    5. Conflitos de edição entre colaboradores.
    6. +
    +
  • +
+

1.12. UC-12: Utilizar Recursos de Inteligência Artificial

+
    +
  • +

    Descrição: Este caso de uso descreve a utilização de recursos de inteligência artificial no Canva, como sugestões de design, detecção de cores, recomendações de fontes e outros recursos automatizados que auxiliam os usuários na criação de designs visualmente atraentes.

    +
  • +
  • +

    Diagrama: **Diagrama**

    +
  • +
  • Ator: Usuário Canva
  • +
  • Fluxo Básico de Eventos:
      +
    1. O usuário acessa a seção de edição de um design.
    2. +
    3. O sistema identifica elementos visuais e texto no design.
    4. +
    5. O sistema sugere cores, fontes, imagens ou elementos gráficos com base no conteúdo do design.
    6. +
    7. O usuário aceita ou rejeita as sugestões.
    8. +
    +
  • +
  • Fluxo Alternativo:
      +
    1. O usuário pode solicitar sugestões específicas para um elemento visual ou texto.
    2. +
    3. O usuário pode desativar os recursos de inteligência artificial.
    4. +
    +
  • +
  • Fluxo de Exceções:
      +
    1. Falha na conexão com o internet durante o processo.
    2. +
    3. Sugestões inadequadas ou imprecisas.
    4. +
    +
  • +
+

1.13. UC-13: Acessar Recursos de Aprendizado

+
    +
  • Descrição: Este caso de uso descreve a funcionalidade de acesso a recursos de aprendizado no Canva, como tutoriais, dicas, guias e cursos online, que auxiliam os usuários a explorar as funcionalidades da plataforma, aprimorar suas habilidades de design e obter inspiração para seus projetos.
  • +
  • Diagrama: **Diagrama**
  • +
  • Ator: Usuário Canva
  • +
  • Fluxo Básico de Eventos:
      +
    1. O usuário acessa a seção de "Recursos de Aprendizado".
    2. +
    3. O sistema exibe uma lista de tutoriais, dicas e cursos disponíveis.
    4. +
    5. O usuário seleciona um recurso de aprendizado.
    6. +
    7. O sistema abre o recurso selecionado para visualização.
    8. +
    +
  • +
  • Fluxo Alternativo:
      +
    1. O usuário pode filtrar os recursos por categoria, nível de dificuldade ou interesse.
    2. +
    3. O usuário pode marcar recursos como favoritos para acesso rápido.
    4. +
    +
  • +
  • Fluxo de Exceções:
      +
    1. Falha na conexão com a internet durante o processo.
    2. +
    3. Recurso de aprendizado não disponível no momento.
    4. +
    5. Usuário Gratuito tenta acessar recurso exclusivo para Usuários Pro.
    6. +
    +
  • +
+

1.14. UC-14: Personalizar Configurações de Conta

+
    +
  • Descrição: Este caso de uso descreve a funcionalidade de personalização das configurações de conta no Canva, permitindo que os usuários atualizem suas informações pessoais, preferências de design, notificações, privacidade e outras configurações relacionadas à sua conta.
  • +
  • Diagrama: **Diagrama**
  • +
  • Ator: Usuário Canva
  • +
  • Fluxo Básico de Eventos:
      +
    1. O usuário acessa a seção de "Configurações de Conta".
    2. +
    3. O sistema exibe opções de personalização disponíveis.
    4. +
    5. O usuário atualiza suas informações pessoais (nome, e-mail, senha, etc.).
    6. +
    7. O usuário configura suas preferências de design (cores, fontes, estilos).
    8. +
    9. O usuário define suas preferências de notificações (e-mail, push).
    10. +
    11. O usuário ajusta suas configurações de privacidade (compartilhamento, visibilidade).
    12. +
    +
  • +
  • Fluxo Alternativo:
      +
    1. O usuário pode ativar/desativar recursos de inteligência artificial.
    2. +
    3. O usuário pode definir permissões de colaboração padrão.
    4. +
    5. O usuário pode configurar a autenticação de dois fatores.
    6. +
    +
  • +
  • +

    Fluxo de Exceções:

    +
      +
    1. Falha na conexão com a internet durante o processo.
    2. +
    3. Dados inválidos ou incompletos.
    4. +
    5. Configurações não salvas corretamente.
    6. +
    +
  • +
+

1.15. UC-15: Acessar Suporte e Atendimento ao Cliente

+
    +
  • Descrição: Este caso de uso descreve a funcionalidade de acesso ao suporte e atendimento ao cliente no Canva, permitindo que os usuários obtenham ajuda, tirem dúvidas, relatem problemas, solicitem recursos ou forneçam feedback sobre a plataforma.
  • +
  • Diagrama: **Diagrama**
  • +
  • Ator: Usuário Canva
  • +
  • Fluxo Básico de Eventos:
      +
    1. O usuário acessa a seção de "Suporte e Atendimento".
    2. +
    3. O sistema exibe opções de contato (chat, e-mail, telefone).
    4. +
    5. O usuário seleciona o método de contato preferido.
    6. +
    7. O sistema inicia o atendimento ao cliente.
    8. +
    +
  • +
  • Fluxo Alternativo:
      +
    1. O usuário pode acessar a base de conhecimento ou FAQ.
    2. +
    3. O usuário pode enviar feedback ou sugestões de melhorias.
    4. +
    +
  • +
  • Fluxo de Exceções:
      +
    1. Falha na conexão com o internet durante o processo.
    2. +
    3. Tempo de espera prolongado para atendimento.
    4. +
    5. Resolução inadequada do problema ou dúvida.
    6. +
    +
  • +
+

1.16. UC-16: Acessar Recursos de Colaboração

+
    +
  • Descrição: Este caso de uso descreve a funcionalidade de acesso a recursos de colaboração no Canva, como comentários, revisões, aprovações, marcações, compartilhamento de projetos e outras ferramentas que facilitam a comunicação e o trabalho em equipe.
  • +
  • Diagrama: **Diagrama**
  • +
  • Ator: Usuário Canva
  • +
  • Fluxo Básico de Eventos:
      +
    1. O usuário acessa a seção de "Recursos de Colaboração".
    2. +
    3. O sistema exibe opções de colaboração disponíveis.
    4. +
    5. O usuário seleciona um recurso de colaboração.
    6. +
    7. O sistema abre o recurso selecionado para utilização.
    8. +
    +
  • +
  • Fluxo Alternativo:
      +
    1. O usuário pode adicionar comentários em designs compartilhados.
    2. +
    3. O usuário pode solicitar revisões ou aprovações de projetos.
    4. +
    5. O usuário pode marcar outros colaboradores em designs.
    6. +
    +
  • +
  • Fluxo de Exceções:
      +
    1. Falha na conexão com o internet durante o processo.
    2. +
    3. Recurso de colaboração não disponível no momento.
    4. +
    5. Usuário Gratuito tenta acessar recurso exclusivo para Usuários Pro.
    6. +
    +
  • +
+

1.17. UC-17: Acessar Recursos de Marketing

+
    +
  • Descrição: Este caso de uso descreve a funcionalidade de acesso a recursos de marketing no Canva, como modelos de cartões de visita, banners, flyers, posts para redes sociais, apresentações, entre outros, que auxiliam os usuários a criar materiais promocionais de forma rápida e profissional.
  • +
  • Diagrama: **Diagrama**
  • +
  • Ator: Usuário Canva
  • +
  • Fluxo Básico de Eventos:
      +
    1. O usuário acessa a seção de "Recursos de Marketing".
    2. +
    3. O sistema exibe opções de templates disponíveis por categoria (negócios, eventos, vendas, etc.).
    4. +
    5. O usuário seleciona um template de marketing.
    6. +
    7. O sistema abre o template selecionado para edição.
    8. +
    +
  • +
  • Fluxo Alternativo:
      +
    1. O usuário pode personalizar o template de acordo com suas necessidades.
    2. +
    3. O usuário pode salvar o design em diferentes formatos para uso posterior.
    4. +
    +
  • +
  • Fluxo de Exceções:
      +
    1. Falha na conexão com o internet durante o processo.
    2. +
    3. Template de marketing não disponível no momento.
    4. +
    5. Usuário Gratuito tenta acessar template exclusivo para Usuários Pro.
    6. +
    +
  • +
+

1.18. UC-18: Acessar Recursos de Design Gráfico

+
    +
  • Descrição: Este caso de uso descreve a funcionalidade de acesso a recursos de design gráfico no Canva, como ícones, ilustrações, formas, texturas, fundos, paletas de cores, fontes, entre outros, que auxiliam os usuários a criar designs visualmente atraentes e profissionais.
  • +
  • Diagrama: **Diagrama**
  • +
  • Ator: Usuário Canva
  • +
  • Fluxo Básico de Eventos:
      +
    1. O usuário acessa a seção de "Recursos de Design Gráfico".
    2. +
    3. O sistema exibe opções de recursos disponíveis por categoria (ícones, ilustrações, formas, etc.).
    4. +
    5. O usuário seleciona um recurso de design gráfico.
    6. +
    7. O sistema abre o recurso selecionado para utilização.
    8. +
    +
  • +
  • Fluxo Alternativo:
      +
    1. O usuário pode pesquisar recursos por palavra-chave ou categoria.
    2. +
    3. O usuário pode favoritar recursos para acesso rápido.
    4. +
    +
  • +
  • Fluxo de Exceções:
      +
    1. Falha na conexão com o internet durante o processo.
    2. +
    3. Recurso de design gráfico não disponível no momento.
    4. +
    5. Usuário Gratuito tenta acessar recurso exclusivo para Usuários Pro.
    6. +
    +
  • +
+

1.19. UC-19: Acessar Recursos de Fotografia

+
    +
  • Descrição: Este caso de uso descreve a funcionalidade de acesso a recursos de fotografia no Canva, como imagens, fotos, ilustrações, fundos, texturas, filtros, efeitos, entre outros, que auxiliam os usuários a criar designs visualmente atraentes e profissionais.
  • +
  • Diagrama: **Diagrama**
  • +
  • Ator: Usuário Canva
  • +
  • Fluxo Básico de Eventos:
      +
    1. O usuário acessa a seção de "Recursos de Fotografia".
    2. +
    3. O sistema exibe opções de recursos disponíveis por categoria (imagens, fotos, ilustrações, etc.).
    4. +
    5. O usuário seleciona um recurso de fotografia.
    6. +
    7. O sistema abre o recurso selecionado para utilização.
    8. +
    +
  • +
  • Fluxo Alternativo:
      +
    1. O usuário pode pesquisar recursos por palavra-chave ou categoria.
    2. +
    3. O usuário pode favoritar recursos para acesso rápido.
    4. +
    +
  • +
  • Fluxo de Exceções:
      +
    1. Falha na conexão com o internet durante o processo.
    2. +
    3. Recurso de fotografia não disponível no momento.
    4. +
    5. Usuário Gratuito tenta acessar recurso exclusivo para Usuários Pro.
    6. +
    +
  • +
+

1.20. UC-20: Acessar Recursos de Vídeo

+
    +
  • Descrição: Este caso de uso descreve a funcionalidade de acesso a recursos de vídeo no Canva, como vídeos, animações, transições, efeitos, trilhas sonoras, narrações, entre outros, que auxiliam os usuários a criar designs audiovisuais atraentes e profissionais.
  • +
  • Diagrama: **Diagrama**
  • +
  • Ator: Usuário Canva
  • +
  • Fluxo Básico de Eventos:
      +
    1. O usuário acessa a seção de "Recursos de Vídeo".
    2. +
    3. O sistema exibe opções de recursos disponíveis por categoria (vídeos, animações, transições, etc.).
    4. +
    5. O usuário seleciona um recurso de vídeo.
    6. +
    7. O sistema abre o recurso selecionado para utilização.
    8. +
    +
  • +
  • Fluxo Alternativo:
      +
    1. O usuário pode pesquisar recursos por palavra-chave ou categoria.
    2. +
    3. O usuário pode favoritar recursos para acesso rápido.
    4. +
    +
  • +
  • Fluxo de Exceções:
      +
    1. Falha na conexão com o internet durante o processo.
    2. +
    3. Recurso de vídeo não disponível no momento.
    4. +
    5. Usuário Gratuito tenta acessar recurso exclusivo para Usuários Pro.
    6. +
    +
  • +
+

1.21. UC-21: Acessar Recursos de Áudio

+
    +
  • Descrição: Este caso de uso descreve a funcionalidade de acesso a recursos de áudio no Canva, como músicas, efeitos sonoros, narrações, trilhas sonoras, entre outros, que auxiliam os usuários a criar designs audiovisuais atraentes e profissionais.
  • +
  • Diagrama: **Diagrama**
  • +
  • Ator: Usuário Canva
  • +
  • Fluxo Básico de Eventos:
      +
    1. O usuário acessa a seção de "Recursos de Áudio".
    2. +
    3. O sistema exibe opções de recursos disponíveis por categoria (músicas, efeitos sonoros, narrações, etc.).
    4. +
    5. O usuário seleciona um recurso de áudio.
    6. +
    7. O sistema abre o recurso selecionado para utilização.
    8. +
    +
  • +
  • Fluxo Alternativo:
      +
    1. O usuário pode pesquisar recursos por palavra-chave ou categoria.
    2. +
    3. O usuário pode favoritar recursos para acesso rápido.
    4. +
    +
  • +
  • Fluxo de Exceções:
      +
    1. Falha na conexão com o internet durante o processo.
    2. +
    3. Recurso de áudio não disponível no momento.
    4. +
    5. Usuário Gratuito tenta acessar recurso exclusivo para Usuários Pro.
    6. +
    +
  • +
+

2. Modelo de Casos de Uso:

+

2.1. Atores:

+
    +
  • Usuário Anônimo: Qualquer pessoa que acessa o aplicativo Canva sem estar logado.
  • +
  • Usuário Canva: Pessoa cadastrada na plataforma, podendo ser um Usuário Gratuito ou Usuário Pro (assinante).
  • +
+

2.2. Fluxo Básico de Eventos:

+

Descrito em cada caso de uso (UC-XX).

+

2.3. Fluxos Alternativos e Excepcionais:

+

Descritos em cada caso de uso (UC-XX).

+

3. Considerações Finais:

+

3.1. Benefícios da Especificação de Casos de Uso:

+
    +
  • Define o comportamento esperado do sistema do ponto de vista do usuário.
  • +
  • Facilita a comunicação entre desenvolvedores, designers e stakeholders.
  • +
  • Auxilia na identificação de requisitos funcionais e não funcionais.
  • +
  • Serve como base para testes e validação do sistema.
  • +
+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/modelagem/cenarios/index.html b/modelagem/cenarios/index.html new file mode 100644 index 0000000..5dde229 --- /dev/null +++ b/modelagem/cenarios/index.html @@ -0,0 +1,3568 @@ + + + + + + + + + + + + + + + + + + + Cenários - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Cenários

+ + + + + + + + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
12/08/2024Adição dos primeiros cenários encontrados durante a análise de protocoloLuiza Maluf0.0
16/07/2024Adição de mais cenários após avaliar os casos de uso.Luiza Maluf0.1
+

Origem

+

O desenvolvimento destes cenários foi dado a partir da análise de protocolo, feita na parte de elicitação.

+

Não satisfeitos com a quantidade de cenários e com uma visão diferente vinda da Especificação de Casos de Uso, foi possível identificar novos cenários.

+

Metodologia

+

Foi feita a navegação dentro da plataforma anotando os principais processos que o usuáro poderia efetuar.

+

1. Criação de um Design Simples

+

OBJETIVO

+

Um usuário novato acessa o Canva e deseja criar um design de cartão de visita.

+

CONTEXTO

+

O usuário está acessando o Canva pela primeira vez e tem pouca experiência em design gráfico.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve estar logado na plataforma Canva.

+

EPISÓDIOS

+
    +
  1. O usuário faz login na plataforma Canva.
  2. +
  3. Navega pelos templates disponíveis e escolhe um para cartão de visita.
  4. +
  5. Personaliza o template, inserindo seu nome, cargo e informações de contato.
  6. +
  7. Altera as cores e fontes de acordo com sua preferência.
  8. +
  9. Visualiza o design final e decide salvá-lo.
  10. +
  11. O usuário baixa o design para seu computador.
  12. +
+

RESTRIÇÕES

+

Usuário deve ter uma conta ativa na plataforma Canva.

+

PÓS-CONDIÇÃO

+

Usuário criou e salvou um cartão de visita simples, pronto para uso.

+

RESULTADO ESPERADO

+

O usuário consegue criar e salvar um cartão de visita simples, ficando satisfeito com a facilidade de uso da ferramenta.

+
+

2. Colaboração em Tempo Real

+

OBJETIVO

+

Dois usuários colaboram simultaneamente em um design de apresentação para uma reunião de negócios.

+

CONTEXTO

+

Os usuários estão em locais diferentes, mas precisam trabalhar juntos no mesmo projeto em tempo real na plataforma Canva.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva, chat integrado.

+

PRÉ-CONDIÇÃO

+

Ambos os usuários devem estar logados na plataforma Canva e ter uma conexão de internet estável.

+

EPISÓDIOS

+
    +
  1. Usuário 1 cria uma apresentação no Canva.
  2. +
  3. Usuário 1 compartilha o link de edição do design com o Usuário.
  4. +
  5. Ambos os usuários abrem o design simultaneamente e começam a editá-lo.
  6. +
  7. Usuário 1 trabalha nos primeiros slides, enquanto Usuário edita os últimos slides.
  8. +
  9. Os usuários discutem as alterações e ajustes necessários usando o chat integrado da plataforma.
  10. +
  11. Ambos revisam o design final juntos, fazem os ajustes necessários e salvam o projeto.
  12. +
+

RESTRIÇÕES

+

Ambos os usuários precisam ter permissão de edição para colaborar no design.

+

PÓS-CONDIÇÃO

+

O design da apresentação foi concluído e salvo, estando pronto para a reunião.

+

RESULTADO ESPERADO

+

Os dois usuários conseguem colaborar em tempo real, completando o design de forma eficiente e satisfatória.

+
+

3. Exploração de Recursos Premium

+

OBJETIVO

+

Um usuário gratuito explora os benefícios de um plano de assinatura para decidir se vale a pena assiná-lo.

+

CONTEXTO

+

O usuário sente que as opções gratuitas são limitadas e deseja saber se vale a pena assinar um plano.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve estar logado na plataforma Canva.

+

EPISÓDIOS

+
    +
  1. O usuário navega pelos [templates] gratuitos, mas não encontra algo que atenda às suas necessidades.
  2. +
  3. Ele vê a indicação de templates Premium e resolve clicar para ver as opções.
  4. +
  5. Um pop-up aparece explicando os benefícios do plano de assinatura, como acesso a templates exclusivos e recursos adicionais.
  6. +
  7. O usuário decide experimentar o plano por 30 dias gratuitamente.
  8. +
  9. Após a ativação, ele começa a usar os templates Premium e nota a diferença na qualidade e variedade.
  10. +
+

RESTRIÇÕES

+

O usuário deve ter uma conta ativa na plataforma Canva.

+

PÓS-CONDIÇÃO

+

O usuário explora os recursos Premium e decide se continuará com a assinatura após o período de teste.

+

RESULTADO ESPERADO

+

O usuário percebe o valor dos recursos Premium e decide continuar com a assinatura após o período de teste.

+
+

4. Criação de Materiais para uma Campanha Publicitária

+

OBJETIVO

+

Uma equipe de marketing cria materiais gráficos para uma nova campanha publicitária.

+

CONTEXTO

+

A equipe precisa garantir que todos os materiais tenham uma identidade visual consistente.

+

ATORES

+
    +
  • Designer
  • +
  • Gerente de Marketing
  • +
+

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva.

+

PRÉ-CONDIÇÃO

+

A equipe de marketing deve estar alinhada quanto à identidade visual da campanha.

+

EPISÓDIOS

+
    +
  1. O designer seleciona um conjunto de templates que combinam entre si para garantir consistência visual.
  2. +
  3. Adapta cada Templates para diferentes formatos (postagem em redes sociais, banners para site, e-mail marketing).
  4. +
  5. Utiliza elementos gráficos e o Banco de Imagens para enriquecer os materiais.
  6. +
  7. O gerente de marketing revisa e sugere pequenas alterações.
  8. +
  9. Após aprovação, o designer exporta os materiais nos formatos necessários.
  10. +
  11. Os materiais são compartilhados com a equipe e publicados conforme o cronograma da campanha.
  12. +
+

RESTRIÇÕES

+

A equipe deve respeitar o prazo da campanha e as diretrizes de identidade visual estabelecidas.

+

PÓS-CONDIÇÃO

+

Os materiais gráficos estão prontos e alinhados com a identidade visual da campanha.

+

RESULTADO ESPERADO

+

A equipe de marketing consegue criar uma campanha coesa e visualmente atraente, melhorando a identidade da marca.

+
+

5. Adaptação de um Design para Diferentes Mídias

+

OBJETIVO

+

Um designer adapta um único design para diferentes mídias, como cartazes impressos, posts em redes sociais e banners para sites.

+

CONTEXTO

+

O designer precisa garantir que a mensagem e a identidade visual sejam mantidas em todos os formatos.

+

ATORES

+
    +
  • Designer
  • +
+

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva.

+

PRÉ-CONDIÇÃO

+

O designer deve ter acesso aos templates originais e aos requisitos específicos de cada mídia.

+

EPISÓDIOS

+
    +
  1. O designer seleciona o design original no Canva.
  2. +
  3. Duplica o design e ajusta as dimensões para cada mídia (A4 para cartazes, 1080x1080 para posts, etc.).
  4. +
  5. Reposiciona os elementos gráficos conforme necessário para manter o equilíbrio visual.
  6. +
  7. Ajusta o tamanho das fontes e o espaçamento para garantir legibilidade em cada formato.
  8. +
  9. Revisa cada adaptação e exporta os arquivos nos formatos apropriados.
  10. +
+

RESTRIÇÕES

+

O designer deve garantir que a mensagem principal permaneça clara em todas as adaptações.

+

PÓS-CONDIÇÃO

+

Os designs estão prontos para uso em diferentes mídias.

+

RESULTADO ESPERADO

+

O designer adapta com sucesso o design original para diferentes mídias, mantendo a consistência da mensagem e da identidade visual.

+
+

6. Exportação de um Projeto em Alta Resolução

+

OBJETIVO

+

Um designer exporta um projeto gráfico em alta resolução para impressão profissional.

+

CONTEXTO

+

O designer precisa garantir que o arquivo final tenha qualidade suficiente para impressão em grande escala.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva.

+

PRÉ-CONDIÇÃO

+

O projeto deve estar finalizado e revisado.

+

EPISÓDIOS

+
    +
  1. O usuário abre o projeto no Canva.
  2. +
  3. Seleciona a opção de exportação e escolhe o formato adequado (por exemplo, PDF para impressão).
  4. +
  5. Ajusta as configurações de resolução para a máxima qualidade disponível.
  6. +
  7. Revisa as opções de margens, caso necessário.
  8. +
  9. Exporta o arquivo e faz o download.
  10. +
+

RESTRIÇÕES

+

O usuário deve garantir que as configurações de exportação atendam aos requisitos da impressão.

+

PÓS-CONDIÇÃO

+

O projeto está pronto para ser enviado para a gráfica.

+

RESULTADO ESPERADO

+

O usuário consegue exportar o projeto em alta resolução, garantindo uma impressão de alta qualidade.

+
+

7. Compartilhamento de Post para Redes Sociais

+

OBJETIVO

+

Um usuário cria e compartilha um post visual para promover um novo produto em diversas redes sociais.

+

CONTEXTO

+

O usuário deseja utilizar o Canva para criar um post atraente que será compartilhado em múltiplas plataformas sociais para maximizar o alcance do novo produto.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva, contas nas redes sociais (Instagram, Facebook, Twitter, LinkedIn).

+

PRÉ-CONDIÇÃO

+

O usuário deve ter as imagens do produto, textos promocionais e informações sobre as redes sociais onde o post será compartilhado.

+

EPISÓDIOS

+
    +
  1. O usuário acessa o Canva e escolhe um template de post adequado para redes sociais.
  2. +
  3. Personaliza o [design](lexico.md#Design) com imagens do produto, texto promocional e hashtags relevantes.
  4. +
  5. Ajusta o layout e o design para atender às diretrizes específicas de cada plataforma social.
  6. +
  7. Revê o post para garantir que todos os detalhes estejam corretos e que o design esteja otimizado para cada rede social.
  8. +
  9. Exporta o post no formato adequado para cada plataforma (Instagram, Facebook, Twitter, LinkedIn).
  10. +
  11. Compartilha o post diretamente nas contas de redes sociais usando as ferramentas de integração do Canva ou faz o upload manualmente em cada plataforma.
  12. +
+

RESTRIÇÕES

+

Os posts devem seguir as diretrizes de tamanho e formato recomendadas por cada rede social para garantir uma boa visualização e desempenho.

+

PÓS-CONDIÇÃO

+

Os posts estão publicados e visíveis nas redes sociais selecionadas.

+

RESULTADO ESPERADO

+

O usuário cria e compartilha posts atraentes que promovem eficazmente o novo produto, engajando os seguidores em diversas redes sociais.

+
+

8. Login e Logout na Plataforma Canva

+

OBJETIVO

+

Um usuário acessa sua conta na plataforma Canva para criar e gerenciar design, e depois realiza o logout para garantir a segurança da conta.

+

CONTEXTO

+

O usuário precisa acessar sua conta na plataforma Canva para trabalhar em projetos e, após concluir seu trabalho, deseja fazer logout para proteger suas informações.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve ter uma conta ativa na plataforma Canva e conhecer suas credenciais de login.

+

EPISÓDIOS

+
    +
  1. O usuário acessa a página de login do Canva.
  2. +
  3. Insere seu nome de usuário e senha.
  4. +
  5. Clica no botão de login para acessar sua conta.
  6. +
  7. O usuário usa a plataforma Canva para criar ou gerenciar design.
  8. +
  9. Após concluir suas atividades, o usuário localiza a opção de logout no menu de perfil.
  10. +
  11. Clica na opção de logout para sair da conta.
  12. +
  13. O usuário é redirecionado para a página de login ou para a página inicial do Canva.
  14. +
+

RESTRIÇÕES

+

O usuário deve lembrar suas credenciais para realizar o login. Após o logout, é necessário fazer login novamente para acessar a conta.

+

PÓS-CONDIÇÃO

+

O usuário foi desconectado da sua conta na plataforma Canva, garantindo que suas informações estejam seguras.

+

RESULTADO ESPERADO

+

O usuário consegue fazer login e logout com sucesso, garantindo o acesso e a segurança de sua conta na plataforma Canva.

+
+

9. Cenário: Edição de um Design Existente

+

OBJETIVO

+

Um usuário deseja editar um design já existente na plataforma Canva para ajusta-lo às suas novas necessidades.

+

CONTEXTO

+

O usuário já criou ou tem acesso a um design na plataforma Canva e agora precisa modificá-lo para atualizá-lo ou adaptá-lo a um novo propósito.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve estar logado na plataforma Canva e ter acesso ao design que deseja editar.

+

EPISÓDIOS

+
    +
  1. O usuário faz login no Canva.
  2. +
  3. Navega até a seção "Meus Designs" ou utiliza a barra de pesquisa para localizar o design existente.
  4. +
  5. Clica no design desejado para abri-lo na interface de edição.
  6. +
  7. Realiza as modificações necessárias, como alteração de texto, imagens, cores e layout.
  8. +
  9. Visualiza as mudanças em tempo real para garantir que o design atende às novas necessidades.
  10. +
  11. Salva as alterações e, se necessário, exporta o design modificado nos formatos desejados.
  12. +
+

RESTRIÇÕES

+

O usuário deve garantir que todas as alterações estejam de acordo com os requisitos do projeto ou com a nova finalidade do design.

+

PÓS-CONDIÇÃO

+

O design foi editado com sucesso e está pronto para ser usado conforme o novo propósito.

+

RESULTADO ESPERADO

+

O usuário consegue editar o design existente de maneira eficaz, adaptando-o às suas novas necessidades e garantindo que o resultado final esteja de acordo com as expectativas.

+
+

10. Cenário: Download de um Design

+

OBJETIVO

+

Um usuário deseja baixar um design da plataforma Canva para utilizá-lo fora da plataforma, como para impressão ou compartilhamento.

+

CONTEXTO

+

O usuário terminou de criar ou editar um design na plataforma Canva e agora precisa baixá-lo para uso offline ou compartilhamento em outras plataformas.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve estar logado na plataforma Canva e ter um design finalizado e pronto para o download.

+

EPISÓDIOS

+
    +
  1. O usuário faz login no Canva.
  2. +
  3. Navega até o design finalizado que deseja baixar, acessando-o através da seção "Meus Designs" ou utilizando a barra de pesquisa.
  4. +
  5. Clica no design desejado e clica no botão de "Download" no canto superior direito da interface.
  6. +
  7. Escolhe o formato de arquivo desejado (por exemplo, PNG, JPEG, PDF) e ajusta as configurações de qualidade, resolução ou margens, se necessário.
  8. +
  9. Confirma as opções e inicia o download do arquivo.
  10. +
  11. O design é baixado para o dispositivo do usuário, ficando disponível para uso offline.
  12. +
+

RESTRIÇÕES

+

O usuário deve garantir que escolheu o formato de arquivo correto e configurou as opções de download conforme a finalidade do design.

+

PÓS-CONDIÇÃO

+

O design foi baixado com sucesso e está pronto para ser usado conforme o necessário.

+

RESULTADO ESPERADO

+

O usuário consegue baixar o design no formato desejado, com a qualidade adequada, pronto para o uso offline ou compartilhado.

+
+

11. Acesso a um Template Pronto

+

OBJETIVO

+

O usuário deseja acessar um template pronto na plataforma Canva para iniciar a criação de um design personalizado.

+

CONTEXTO

+

O usuário está na plataforma Canva e deseja utilizar um template pré-definido como base para criar um novo design. +ATORES####

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve estar logado na plataforma Canva.

+

EPISÓDIOS

+
    +
  1. O usuário faz login no Canva.
  2. +
  3. Na página inicial, o usuário navega até a seção de "Templates" ou utiliza a barra de pesquisa para buscar um template específico.
  4. +
  5. O usuário explora as categorias disponíveis, como "Cartões de Visita," "Apresentações," "Postagens para Redes Sociais," entre outras.
  6. +
  7. Seleciona o template que melhor atende às suas necessidades.
  8. +
  9. Abre o template escolhido, visualizando uma prévia do design.
  10. +
  11. Clica no botão "Usar este template" para iniciar a personalização do design.
  12. +
+

RESTRIÇÕES

+

O usuário deve garantir que escolheu um template adequado ao seu propósito antes de iniciar a personalização.

+

PÓS-CONDIÇÃO

+

O usuário tem o template pronto aberto na interface de edição do Canva, pronto para ser personalizado conforme desejado.

+

RESULTADO ESPERADO

+

O usuário consegue acessar e abrir um template pronto na plataforma Canva, facilitando o início da criação de um design personalizado.

+
+

12. Gerenciamento de Pastas e Projetos no Canva

+

OBJETIVO

+

O usuário deseja organizar seus projetos de design criando e gerenciando pastas na plataforma Canva.

+

CONTEXTO

+

O usuário possui vários projetos na plataforma Canva e deseja organizá-los de forma eficiente para facilitar o acesso e a gestão.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve estar logado na plataforma Canva e ter projetos criados.

+

EPISÓDIOS

+
    +
  1. O usuário faz login no Canva.
  2. +
  3. Acessa a seção "Todos os seus designs" no painel principal.
  4. +
  5. Identifica a necessidade de organizar os projetos em pastas.
  6. +
  7. Clica na opção "Criar nova pasta" e dá um nome à nova pasta, como "Projetos de Marketing" ou "Apresentações 2024".
  8. +
  9. Após criar a pasta, o usuário arrasta e solta os projetos desejados dentro da pasta ou seleciona os projetos e usa a opção "Mover para a pasta" no menu de contexto.
  10. +
  11. O usuário também pode criar subpastas dentro das pastas principais para uma organização mais detalhada.
  12. +
  13. Se necessário, o usuário renomeia, exclui ou move as pastas conforme as necessidades de organização.
  14. +
  15. Para localizar rapidamente um projeto específico, o usuário utiliza a barra de pesquisa ou navega pelas pastas organizadas.
  16. +
+

RESTRIÇÕES

+

O usuário deve organizar os projetos de maneira lógica para facilitar o acesso futuro. O Canva pode ter limitações no número de subpastas ou no número de projetos por pasta, dependendo do plano de assinatura.

+

PÓS-CONDIÇÃO

+

Os projetos estão organizados em pastas, permitindo que o usuário acesse e gerencie seus designs de forma mais eficiente.

+

RESULTADO ESPERADO

+

O usuário consegue criar, organizar e gerenciar pastas para seus projetos na plataforma Canva, melhorando a eficiência na navegação e no gerenciamento dos designs.

+
+

13. Utilização de Recursos de Inteligência Artificial no Canva

+

OBJETIVO

+

O usuário deseja utilizar os recursos de inteligência artificial (IA) do Canva para aprimorar seus designs, como a geração de textos automáticos ou a criação de elementos gráficos personalizados.

+

CONTEXTO

+

O usuário está trabalhando em um projeto de design no Canva e deseja explorar as ferramentas de IA disponíveis para acelerar o processo criativo e melhorar a qualidade do design.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web, plataforma Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve estar logado na plataforma Canva e ter um projeto aberto.

+

EPISÓDIOS

+
    +
  1. O usuário faz login no Canva e abre um projeto.
  2. +
  3. No painel de ferramentas, o usuário identifica a seção de "Recursos de IA" ou uma ferramenta específica de IA, como "Gerador de Texto" ou "Criação Automática de Elementos Gráficos".
  4. +
  5. O usuário seleciona o recurso de IA que deseja utilizar, como a geração de texto automático para uma manchete ou a sugestão de paletas de cores personalizadas.
  6. +
  7. Se utilizando da IA, o usuário insere palavras-chave ou instruções sobre o que deseja gerar (por exemplo, "slogan para campanha de verão" ou "ilustração abstrata para fundo").
  8. +
  9. A IA processa as informações e apresenta sugestões ou gera os elementos solicitados.
  10. +
  11. O usuário revisa as sugestões e, se necessário, faz ajustes manuais para alinhar o resultado com o objetivo do projeto.
  12. +
  13. O usuário integra os elementos gerados pela IA ao design e continua a personalização conforme necessário.
  14. +
  15. Se satisfeito com o resultado, o usuário salva o projeto final ou faz uma exportação.
  16. +
+

RESTRIÇÕES

+

Os recursos de IA podem ter limitações em termos de complexidade de geração ou em quantidade de opções oferecidas, dependendo do plano de assinatura do Canva.

+

PÓS-CONDIÇÃO

+

O design do projeto foi aprimorado com a ajuda dos recursos de IA, economizando tempo e aumentando a qualidade do resultado.

+

RESULTADO ESPERADO

+

O usuário consegue utilizar eficazmente os recursos de inteligência artificial do Canva, como a geração automática de texto ou a criação de elementos gráficos, melhorando a eficiência do processo de design e o resultado final.

+
+

14. Personalizar Configurações de Conta no Canva

+

OBJETIVO

+

O usuário deseja personalizar as configurações de sua conta no Canva para adaptar a plataforma às suas preferências e necessidades específicas.

+

CONTEXTO

+

O usuário está logado em sua conta no Canva e quer ajustar configurações como idioma, notificações, métodos de pagamento, ou privacidade para otimizar sua experiência na plataforma.

+

ATORES

+ +

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web ou aplicativo móvel, conta ativa no Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve estar logado na plataforma Canva.

+

EPISÓDIOS

+
    +
  1. O usuário faz login na plataforma Canva e acessa a página inicial.
  2. +
  3. O usuário localiza o menu de configurações de conta, geralmente acessível através do ícone de perfil ou das opções de menu.
  4. +
  5. O usuário clica na opção "Configurações de Conta" para abrir a página de configurações.
  6. +
  7. Na página de configurações, o usuário navega entre as diferentes categorias, como "Informações Pessoais", "Notificações", "Segurança", "Preferências de Idioma", ou "Faturamento e Pagamentos".
  8. +
  9. +

    O usuário seleciona a categoria que deseja personalizar. Por exemplo:

    +
      +
    • +

      Para alterar o idioma da plataforma, o usuário acessa "Preferências de Idioma" e escolhe o idioma desejado.

      +
    • +
    • +

      Para ajustar as notificações, o usuário acessa "Notificações" e escolhe quais tipos de alertas deseja receber por email ou no aplicativo.

      +
    • +
    • +

      Para atualizar métodos de pagamento, o usuário acessa "Faturamento e Pagamentos" e adiciona ou modifica as opções de pagamento.

      +
    • +
    +
  10. +
  11. +

    Após fazer as alterações desejadas, o usuário salva as configurações.

    +
  12. +
  13. O usuário revisa as mudanças feitas para garantir que as configurações estão corretas e de acordo com suas preferências.
  14. +
  15. Caso necessário, o usuário faz novos ajustes ou retorna à página inicial do Canva.
  16. +
+

RESTRIÇÕES

+

Algumas opções de personalização podem estar disponíveis apenas para usuários com planos de assinatura específicos, como o Canva Pro. +PÓS-COND#### IÇÃO

+

As configurações da conta do usuário no Canva são atualizadas conforme as preferências definidas.

+

RESULTADO ESPERADO

+

O usuário consegue personalizar as configurações de sua conta no Canva, adaptando a plataforma às suas preferências e melhorando sua experiência de uso.

+
+

15. Acessar Suporte e Atendimento ao Cliente no Canva

+

OBJETIVO

+

O usuário deseja acessar o suporte e atendimento ao cliente do Canva para resolver dúvidas, problemas técnicos, ou obter informações sobre a plataforma.

+

CONTEXTO

+

O usuário está utilizando a plataforma Canva e encontra dificuldades ou questões que não consegue resolver sozinho. Ele decide buscar ajuda através dos canais de suporte disponíveis.

+

ATORES

+
    +
  • Usuário
  • +
  • Representante de Suporte do Canva
  • +
+

RECURSOS

+

Computador ou smartphone, acesso à internet, navegador web ou aplicativo móvel, conta ativa no Canva.

+

PRÉ-CONDIÇÃO

+

O usuário deve estar logado na plataforma Canva.

+

EPISÓDIOS

+
    +
  1. O usuário faz login na plataforma Canva e acessa a página inicial.
  2. +
  3. O usuário localiza a seção de "Ajuda" ou "Suporte", geralmente disponível no rodapé da página ou no menu de perfil.
  4. +
  5. O usuário clica na opção "Ajuda" para acessar a central de suporte do Canva.
  6. +
  7. +

    Na central de suporte, o usuário pode:

    +
      +
    • +

      Explorar artigos e tutoriais disponíveis na base de conhecimento do Canva para encontrar uma solução para sua dúvida.

      +
    • +
    • +

      Utilizar a barra de pesquisa para digitar palavras-chave relacionadas ao problema ou questão.

      +
    • +
    +

    -Acessar as perguntas frequentes (FAQ) para verificar se a dúvida já foi respondida.

    +
  8. +
  9. +

    Se o usuário não encontrar a solução nas opções anteriores, ele pode optar por:

    +
      +
    • +

      Entrar em contato com o suporte ao cliente via chat ao vivo, se disponível.

      +
    • +
    • +

      Enviar uma solicitação de suporte por email, detalhando o problema e aguardando a resposta da equipe.

      +
    • +
    • +

      Acessar a comunidade do Canva para interagir com outros usuários e buscar soluções colaborativas.

      +
    • +
    +
  10. +
  11. +

    O usuário escolhe o canal de atendimento mais adequado para sua necessidade e segue as instruções fornecidas para entrar em contato com o suporte.

    +
  12. +
  13. O usuário aguarda a resposta do suporte e, caso solicitado, segue as orientações fornecidas para resolver o problema.
  14. +
  15. Caso necessário, o usuário faz novos ajustes ou retorna à página inicial do Canva.
  16. +
  17. O usuário confirma que o problema foi resolvido ou, se necessário, continua o diálogo com o suporte até a conclusão.
  18. +
+

RESTRIÇÕES

+

O tempo de resposta do suporte pode variar dependendo do canal escolhido e do plano de assinatura do usuário.

+

PÓS-CONDIÇÃO

+

O usuário recebe o suporte necessário para resolver seu problema ou esclarecer suas dúvidas.

+

RESULTADO ESPERADO

+

O usuário consegue acessar o suporte e atendimento ao cliente do Canva, resolve seu problema ou obtém a informação necessária, e retoma suas atividades na plataforma com sucesso.

+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/modelagem/especificacao_suplementar/index.html b/modelagem/especificacao_suplementar/index.html new file mode 100644 index 0000000..00945f4 --- /dev/null +++ b/modelagem/especificacao_suplementar/index.html @@ -0,0 +1,1786 @@ + + + + + + + + + + + + + + + + + + + Especificação Suplementar - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Especificação Suplementar

+ + + + + + + + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
16/09/2021Criação do documento e definição dos requisitos não funcionais após análise de casos de usoHenrique Quenino0.1
17/09/2021Revisão e ajustes dos requisitos não funcionaisHenrique Quenino1.0
+

Origem

+

A Especificação Suplementar foi criada após a análise dos casos de uso do site Canva, com o objetivo de definir os requisitos não funcionais essenciais para o desenvolvimento e operação da plataforma.

+

Metodologia

+

Os requisitos não funcionais foram identificados considerando as necessidades dos usuários, as restrições do sistema e as melhores práticas de desenvolvimento de software.

+

1. Introdução

+

Este documento descreve a Especificação Suplementar do site Canva, complementando a Especificação de Casos de Uso. Ele detalha os requisitos não funcionais, incluindo requisitos de desempenho, segurança, usabilidade e outros, essenciais para o sucesso da plataforma.

+

2. Requisitos Não Funcionais

+

2.1. Desempenho

+
    +
  • Tempo de Carregamento: O site deve carregar em menos de 3 segundos em uma conexão de banda larga (5 Mbps) para 80% das requisições.
  • +
  • Tempo de Resposta: As interações do usuário, como arrastar e soltar elementos, aplicar filtros e salvar designs, devem ocorrer em tempo real, com um tempo de resposta máximo de 0,5 segundos.
  • +
  • Escalabilidade: A plataforma deve suportar um número crescente de usuários simultâneos e projetos sem degradação significativa no desempenho.
  • +
  • Disponibilidade: O site deve estar disponível 99,9% do tempo, com um tempo de inatividade máximo programado de 4 horas por mês para manutenção.
  • +
+

2.2. Segurança

+
    +
  • Autenticação: A plataforma deve oferecer autenticação segura por meio de senha, autenticação de dois fatores e login social (Google, Facebook).
  • +
  • Autorização: O acesso aos designs e recursos deve ser controlado por um sistema de permissões granular, permitindo o compartilhamento e a colaboração com diferentes níveis de acesso.
  • +
  • Proteção de Dados: As informações do usuário, incluindo dados pessoais e designs, devem ser criptografadas em repouso e em trânsito usando protocolos de segurança padrão da indústria (SSL/TLS).
  • +
  • Conformidade: A plataforma deve cumprir as leis e regulamentações de proteção de dados relevantes, como LGPD e GDPR.
  • +
+

2.3. Usabilidade

+
    +
  • Interface do Usuário: A interface deve ser intuitiva, fácil de usar e esteticamente agradável, utilizando princípios de design centrados no usuário.
  • +
  • Navegação: Os usuários devem ser capazes de navegar facilmente pelo site, encontrar as ferramentas e recursos necessários e acessar seus projetos rapidamente.
  • +
  • Acessibilidade: A plataforma deve ser acessível a usuários com deficiência, seguindo as diretrizes de acessibilidade WCAG 2.1.
  • +
  • Documentação e Suporte: O Canva deve fornecer documentação abrangente, tutoriais e suporte ao cliente responsivo para ajudar os usuários a utilizar todas as funcionalidades da plataforma.
  • +
+

2.4. Confiabilidade

+
    +
  • Recuperação de Falhas: A plataforma deve ser projetada para lidar com falhas de hardware e software, garantindo a mínima perda de dados e rápida recuperação.
  • +
  • Backup e Restauração: Backups regulares do site e dos dados do usuário devem ser realizados, com a capacidade de restaurar dados em caso de perda ou corrupção.
  • +
  • Monitoramento: O sistema deve ser monitorado continuamente para detectar e solucionar problemas de desempenho, segurança e disponibilidade.
  • +
+

2.5. Manutenibilidade

+
    +
  • Modularidade: A arquitetura do site deve ser modular, permitindo a atualização e manutenção de componentes individuais sem afetar outras partes do sistema.
  • +
  • Documentação Técnica: A documentação técnica completa, incluindo diagramas de arquitetura, código-fonte documentado e casos de teste, deve ser mantida para facilitar a manutenção e o desenvolvimento futuro.
  • +
  • Ferramentas de Desenvolvimento: O Canva deve utilizar ferramentas e tecnologias de desenvolvimento padrão da indústria para garantir a manutenibilidade e a escalabilidade do código.
  • +
+

3. Restrições

+
    +
  • Navegadores Suportados: O site deve ser compatível com as versões mais recentes dos principais navegadores da web, incluindo Chrome, Firefox, Safari e Edge.
  • +
  • Dispositivos Suportados: A plataforma deve funcionar corretamente em desktops, laptops, tablets e smartphones.
  • +
  • Idiomas Suportados: O Canva deve estar disponível em vários idiomas, incluindo português, inglês, espanhol e outros idiomas relevantes para o público-alvo.
  • +
+

4. Conclusão

+

A Especificação Suplementar define os requisitos não funcionais essenciais para o desenvolvimento e operação bem-sucedidos do site Canva. Ao atender a esses requisitos, a plataforma poderá oferecer uma experiência de usuário de alta qualidade, segura, confiável e escalável para seus usuários.

+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/modelagem/istar/index.html b/modelagem/istar/index.html new file mode 100644 index 0000000..676bb25 --- /dev/null +++ b/modelagem/istar/index.html @@ -0,0 +1,1962 @@ + + + + + + + + + + + + + + + + + + + + + + + iStar - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+ +
+ + + +
+
+ + + + + + + +

iStar

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
14/08/2024Adição da versão inicial do iStar.Rodrigo Mattos0.0
02/09/2024Melhoria dos diagramas SD e SR.Rodrigo Mattos0.1
09/09/2024Correção dos diagramas SD e SR.Rodrigo Mattos0.2
+

Origem

+

O desenvolvimento deste iStar foi dado inicialmente a partir da +Análise de Protocolo feita na parte da +elicitação e após introspecção durante navegação na plataforma Canva.

+

Metodologia

+

O desenvolvimento do iStar foi feito inicialmente com a identificação +dos principais atores e agentes envolvidos no sistema. Em seguida, foi feita a modelagem +dos diagramas SD e SR explicando as dependências entre os atores e as +tarefas e objetivos de cada ator. Posteriormente o documento foi +revisado pelo Caio.

+

Introdução

+

O iStar (ou i*) é uma técnica de modelagem que ajuda a entender e representar as +relações e dependências entre diferentes atores (como pessoas, sistemas ou +organizações) dentro de um sistema ou projeto. Ele foca em identificar os +objetivos dos atores, as tarefas que realizam para alcançá-los, e como esses +atores dependem uns dos outros para atingir seus objetivos.

+

Artefatos

+

Principais Atores/Agentes

+
    +
  • Usuário
  • +
  • Canva
  • +
  • PRO
  • +
+

Strategic Dependency Model (SD)

+

Diagrama de Dependência

+

Strategic Rationale Model (SR)

+

SR Usuário

+

SR Usuário

+

SR Canva

+

SR Canva

+

SR PRO

+

SR PRO

+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/modelagem/lexico/index.html b/modelagem/lexico/index.html new file mode 100644 index 0000000..a2ee157 --- /dev/null +++ b/modelagem/lexico/index.html @@ -0,0 +1,3771 @@ + + + + + + + + + + + + + + + + + + + Léxicos - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Léxicos

+ + + + + + + + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
12/08/2024Adição dos primeiros lexicos encontrados durante a análise de protocoloLuiza Maluf0.0
16/07/2024Adição de mais léxicos encontrados após o desenvolvimento dos primeiros cenários.Luiza Maluf0.1
+

Origem

+

O desenvolvimento deste léxico foi dado a partir da análise de protocolo feita na parte da elicitação.

+

Além disso, um segunda versão foi feita após o desenvolvimento dos cenários.

+

Metodologia

+

Primeiramente, navegando dentro da plataforma e anotando as palavras chaves.

+

Em um segundo momento, foi possível identificar novos léxicos durante a produção dos cenários

+

Adicionar

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeAdicionar
SinônimosIncluir, Inserir
NoçãoInserir novos elementos, como texto, imagens, ou gráficos, em um design.
ImpactoEnriquecer o design com novos conteúdos, aumentando sua complexidade e valor visual.
ClassificaçãoVerbo.
+

Acesso

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeAcesso
SinônimosEntrada, Permissão
NoçãoPossibilidade de utilizar a plataforma ou determinadas funcionalidades após autenticação ou autorização.
ImpactoPermite ao usuário interagir com o sistema, utilizando as ferramentas e recursos disponíveis.
ClassificaçãoVerbo.
+

Agrupar

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeAgrupar
SinônimosUnir, Combinar
NoçãoCombinar múltiplos elementos em uma única unidade para facilitar a movimentação e edição.
ImpactoSimplifica a manipulação de múltiplos elementos, permitindo edições simultâneas e coordenação visual.
ClassificaçãoVerbo.
+

Alinhamento

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeAlinhamento
SinônimosPosicionamento, Distribuição
NoçãoO alinhamento correto melhora a organização e legibilidade do design, contribuindo para uma apresentação visual mais profissional.
ImpactoArranjo dos elementos gráficos e textuais em relação ao layout.
ClassificaçãoSubstantivo.
+

Altera

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeAltera
SinônimosModificações, Ajustes
NoçãoMudanças realizadas em um design ou configuração dentro da plataforma.
ImpactoInfluenciam o resultado final, permitindo ajustes e melhorias contínuas no design ou no projeto.
ClassificaçãoVerbo.
+

Animação

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeAnimação
SinônimosMovimento, Efeito Visual
NoçãoPermite que elementos do design tenham movimento, como transições suaves ou efeitos de entrada e saída, aumentando o impacto visual.
ImpactoAdiciona dinamismo aos designs, especialemnte em apresentações e vídeos.
ClassificaçãoSubstantivo.
+

Aplicar

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeAplicar
SinônimosUsar, Implementar
NoçãoColocar efeitos, filtros ou estilos em um elemento ou design.
ImpactoTransforma a aparência dos elementos, adicionando camadas de estilo e profundidade ao design.
ClassificaçãoVerbo.
+

Arquivo

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeArquivo
SinônimosDocumento, Projeto
NoçãoOs arquivos podem ser salvos, compartilhados e reabertos para futuras edições ou exportações.
ImpactoRefere-se ao documento salvo que contém o design criado.
ClassificaçãoSubstantivo.
+

Arrastar e Soltar

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeArrastar e Soltar
SinônimosDrag and Drop, Mover Elementos
NoçãoSimplifica o processo de edição, permitindo que os usuários organizem os elementos de maneira intuitiva e rápida.
ImpactoMétodo de interação que permite mover elementos pelo design apenas arrastando-os com o cursor.
ClassificaçãoSubstantivo.
+

Apresentação

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeApresentação
SinônimosSlideshow, Pitch, Deck
NoçãoTipo específico de design usado para apresentações, frequentemente utilizado em contextos empresariais ou educacionais.
ImpactoConjunto de slides criado para comunicar ideias de forma estruturada.
ClassificaçãoSubstantivo.
+
+

Baixar

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeBaixar
SinônimosDownload, Transferir
NoçãoAção de salvar o design ou projeto localmente no dispositivo do usuário.
ImpactoFacilita o uso do design em outros contextos, fora da plataforma, como apresentações ou impressões.
ClassificaçãoVerbo.
+

Banco de Imagens

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeBanco de Imagens
SinônimosGaleria de Fotos, Biblioteca de Imagens
NoçãoFornece uma ampla variedade de fotos e gráficos, tanto gratuitos quanto pagos, que podem ser inseridos em projetos.
ImpactoRepositório de imagens que os usuários podem utilizar em seus designs.
ClassificaçãoSubstantivo.
+

Biclioteca de Elementos

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeBiclioteca de Elementos
SinônimosRepositório de Elementos, Coleção de Gráficos
NoçãoA biblioteca oferece uma vasta gama de elementos visuais, desde ícones a ilustrações, que podem ser inseridos e personalizados em projetos.
ImpactoConjunto de recursos gráficos disponíveis para uso em designs.
ClassificaçãoSubstantivo.
+
+

Camadas

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeCamadas
SinônimosNíveis, Estruturas
NoçãoPermitem manipular a disposição dos elementos gráficos e texto, criando profundidade e organização no design.
ImpactoControlam a ordem e sobreposição dos elementos em um design.
ClassificaçãoSubstantivo.
+

Colaboração

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeColaboração
SinônimosTrabalho em Equipe, Cooperação
NoçãoFacilita a criação conjunta de projetos, possibilitando edições simultâneas e feedback em tempo real.
ImpactoPermite que múltiplos usuários trabalhem juntos em um design ao mesmo tempo.
ClassificaçãoSubstantivo.
+

Comentário

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeComentário
SinônimosAnotações, Feedback
NoçãoFerramenta de colaboração que facilita a comunicação entre membros da equipe ou clientes, diretamente no projeto.
ImpactoPermitem que os usuários compartilhem opiniões e sugestões dentro de um design colaborativo.
ClassificaçãoSubstantivo.
+

Compartilhamento

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeCompartilhamento
SinônimosPublicação, Distribuição
NoçãoFacilita a colaboração e disseminação dos trabalhos criados na plataforma.
ImpactoMecanismo que permite aos usuário distribuir seus designs para outras pessoas ou plataformas.
ClassificaçãoSubstantivo.
+

Conexão

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeConexão
SinônimosLigação, Vínculo
NoçãoAção de se conectar à internet ou à plataforma, essencial para o uso das funcionalidades online.
ImpactoHabilita o acesso às ferramentas e recursos da plataforma, permitindo a colaboração e o armazenamento na nuvem.
ClassificaçãoSubstantivo.
+

Conta

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeConta
SinônimosPerfil, Cadastro
NoçãoIdentidade digital do usuário na plataforma, contendo suas informações pessoais e preferências.
ImpactoPermite o acesso personalizado aos recursos da plataforma, além de armazenar os designs e configurações do usuário.
ClassificaçãoSubstantivo.
+

Criar

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeCriar
SinônimosGerar, Desenvolver
NoçãoAção de começar um novo design ou projeto dentro da plataforma.
ImpactoInicia o processo de design, proporcionando ao usuário a possibilidade de expressar suas ideias visualmente.
ClassificaçãoVerbo.
+

Corte

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeCorte
SinônimosRecorte, Crop
NoçãoO corte ajuda a focar no conteúdo mais relevante de uma imagem, melhorando a composição e clareza do design.
ImpactoFunção que permite remover partes indesejadas de uma imagem ou elemento gráfico.
ClassificaçãoSubstantivo.
+
+

Desfazer

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeDesfazer
SinônimosReverter, Anular
NoçãoVoltar ao estado anterior de um design antes da última ação realizada.
ImpactoFornece segurança ao usuário, permitindo correções rápidas de erros ou mudanças de decisão.
ClassificaçãoVerbo.
+

Design

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeDesign
SinônimosProjeto, Arte, Composição, Desenho
NoçãoResultado final da interação do usuário com a plataforma, podendo ser impresso ou compartilhado digitalmente.
ImpactoRepresenta o principal produto criado e manipulado pelos usuário na plataforma.
ClassificaçãoSubstantivo.
+
+

Edição

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeEdição
SinônimosModificação, Alteração, Ajuste
NoçãoPermite a personalização completa do design dentro das ferramentas fornecidas pelo Canva.
ImpactoProcesso pelo qual o usuário altera um design, incluindo adição de texto, imagens e gráficos.
ClassificaçãoSubstantivo.
+

Efeito

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeEfeito
SinônimosModificação, Estilo
NoçãoEfeitos podem ser aplicados a textos, imagens ou formas para melhorar a expressividade ou criar impacto visual.
ImpactoAlteração aplicada a um elemento para criar uma aparência ou sensação específica.
ClassificaçãoSubstantivo.
+

Elementos Gráficos

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeElementos Gráficos
SinônimosÍcones, Ilustrações, Formas
NoçãoItens visuais disponíveis na biblioteca do Canva, utilizados para melhorar a aparência e a comunicação visual dos designs.
ImpactoComponente visual que pode ser adicionado aos designs apra enriquecer o conteúdo.
ClassificaçãoSubstantivo.
+

Excluir

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeExcluir
SinônimosApagar, Remover
NoçãoRemover elementos indesejados de um design.
ImpactoSimplifica o design, eliminando o que é desnecessário ou indesejado.
ClassificaçãoVerbo.
+

Exportação

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeExportação
SinônimosDownload, Salvamento
NoçãoPermite ao usuário baixar o design em formatos como PNG, PDF, JPG, entre outros, para uso offline ou impressão.
ImpactoProcesso de salvar o design criado em diferentes formatos de arquivo.
ClassificaçãoSubstantivo.
+
+

Ferramenta

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeFerramenta
SinônimosInstrumento, Recurso
NoçãoFuncionalidades disponíveis na plataforma que auxiliam na criação e edição de designs.
ImpactoFacilita o processo de design, oferecendo diversas opções para personalizar e melhorar o conteúdo.
ClassificaçãoSubstantivo.
+

Fonte

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeFonte
SinônimosTipografia, Tipo de Letra
NoçãoAs fontes ajudam a comunicar o tom e a identidade do projeto, influenciando a legibilidade e o apelo estético.
ImpactoDetermina o estilo visual do texto em um design.
ClassificaçãoSubstantivo.
+

Formatação

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeFormatação
SinônimosEstilização, Personalização
NoçãoA formatação inclui a escolha de Fonte, tamanho, cor, alinhamento e espaçamento, permitindo que o design seja ajustado para atender a objetivos específicos de comunicação.
ImpactoProcesso de ajustar o estilo e a aparência de texto e outros elementos em um design.
ClassificaçãoSubstantivo.
+
+

Grade

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeGrade
SinônimosGrid, Estrutura de Alinhamento
NoçãoFacilita a criação de layouts equilibrados e organizados, melhorando a harmonia visual.
ImpactoSistema de linhas que ajuda a alinhar e organizar os elementos em um design.
ClassificaçãoSubstantivo.
+

Gratuito

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeGratuito
SinônimosLivre, Sem Custo
NoçãoRecursos ou ferramentas disponíveis na plataforma que podem ser utilizados sem custo adicional.
ImpactoAumenta o acesso dos usuários a recursos básicos e essenciais para a criação de designs..
ClassificaçãoAdjetivo.
+
+
+

Integração

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeIntegração
SinônimosConectividade, Sincronização
NoçãoAs integrações permitem que os usuários trabalhem de maneira mais eficiente, facilitando a publicação, compartilhamento e armazenamento de designs diretamente do Canva.
ImpactoCapacidade do Canva de se conectar com outras ferramentas e plataformas, como redes sociais, serviços de armazenamento em nuvem e sistemas de email marketing.
ClassificaçãoSubstantivo.
+
+
+
+

Login

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeLogin
SinônimosAcesso, Autenticação
NoçãoProcesso de entrada na plataforma usando credenciais como nome de usuário e senha.
ImpactoPermite ao usuário acessar suas informações pessoais, designs e configurações personalizadas.
ClassificaçãoSubstantivo.
+

Logout

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeLogout
SinônimosSair, Encerrar Sessão
NoçãoAção de sair da conta da plataforma, encerrando a sessão ativa.
ImpactoProtege a segurança dos dados do usuário, especialmente em dispositivos compartilhados.
ClassificaçãoSubstantivo.
+
+

Marca d'Água

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeMarca d'Água
SinônimosSelo, Assinatura Visual
NoçãoUm elemento visual sutil que é sobreposto ao design, geralmente com transparência, para indicar propriedade intelectual.
ImpactoProtege a autoria do design, garantindo que o criador seja reconhecido.
ClassificaçãoSubstantivo.
+
+

Moldura

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeMoldura
SinônimosBordas, Quadro
NoçãoAs molduras ajudam a focar a atenção em um conteúdo específico ou a melhorar a composição do design.
ImpactoElemento decorativo que circunda uma imagem ou texto, adicionando um contorno visual.
ClassificaçãoSubstantivo.
+
+
+
+

Padrão

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomePadrão
SinônimosTextura, Molde, Exemplo
NoçãoOs padrões adicionam profundidade e interesse visual a um design, podendo ser usados para criar temas ou destacar partes específicas de um projeto.
ImpactoDesenho repetitivo usado como fundo ou elemento decorativo em um design.
ClassificaçãoSubstantivo.
+

Página

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomePágina
SinônimosFolha, Slide
NoçãoRepresenta uma seção individual de um projeto, podendo conter texto, imagens e elementos gráficos.
ImpactoUnidade básica de um design multipágina, como um documento ou apresentação.
ClassificaçãoSubstantivo.
+

Paleta de Cores

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomePaleta de Cores
SinônimosConjunto de Cores, Esquema de Cores
NoçãoAjuda a criar coesão visual e a transmitir emoções ou mensagens específicas no design.
ImpactoConjunto de cores selecionadas que guiam a estética de um design.
ClassificaçãoSubstantivo.
+

Permissão

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomePermissão
SinônimosAutorização, Concessão
NoçãoDireitos atribuídos a um usuário para acessar ou modificar certos recursos ou designs na plataforma.
ImpactoControla o acesso e as ações permitidas dentro de um projeto, garantindo a segurança e a integridade dos dados.
ClassificaçãoSubstantivo.
+

Personalizar

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomePersonalizar
SinônimosCustomizar, Ajustar
NoçãoModificar elementos para atender a necessidades ou preferências específicas.
ImpactoPermite que o design reflita a identidade ou requisitos específicos do usuário.
ClassificaçãoVerbo.
+

Plano de Assinatura

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomePlano de Assinatura
SinônimosPro, Conta Premium, Subscrição
NoçãoOferece vantagens adicionais em relação à conta gratuita, como acesso a mais recursos gráficos e funcionalidades.
ImpactoDefine o nível de acesso do usuário a recursos avançados e templates exclusivos.
ClassificaçãoSubstantivo.
+

Plano de Fundo

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomePlano de Fundo
SinônimosPro, Conta Premium, Subscrição
NoçãoOferece vantagens adicionais em relação à conta gratuita, como acesso a mais recursos gráficos e funcionalidades.
ImpactoDefine o nível de acesso do usuário a recursos avançados e templates exclusivos.
ClassificaçãoSubstantivo.
+

Plataforma

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomePlataforma
SinônimosSistema, Ambiente
NoçãoAmbiente digital que fornece as ferramentas e recursos necessários para criar e editar designs.
ImpactoOferece o espaço e as funcionalidades necessárias para o desenvolvimento de projetos criativos.
ClassificaçãoSubstantivo.
+

Protótipo

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeProtótipo
SinônimosMockup, Modelo
NoçãoPermite testar a aparência e funcionalidade de um design antes de sua conclusão.
ImpactoRepresentação visual inicial de um design, usado para validação e ajustes antes do produto final.
ClassificaçãoSubstantivo.
+

Publicação

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomePublicação
SinônimosPostagem, Compartilhamento Online
NoçãoPermite que o design seja visto por uma audiência maior, aumentando a visibilidade do projeto.
ImpactoAto de disponibilizar o design finalizado em uma plataforma online, como redes sociais ou websites.
ClassificaçãoSubstantivo.
+
+
+

Recursos

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeRecursos
SinônimosFerramentas, Materiais
NoçãoConjunto de elementos, como imagens, fontes, e modelos, disponíveis para uso na criação de designs.
ImpactoAmplia as possibilidades de criação, oferecendo uma variedade de elementos para enriquecer os designs.
ClassificaçãoSubstantivo.
+

Responsividade

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeResponsividade
SinônimosAjuste de Tamanho, Escalamento
NoçãoFerramenta que facilita a adaptação do design para diferentes mídias, como redes sociais, impressos ou anúncios.
ImpactoPermite que o design seja adaptado para diferentes formatos e proporções sem perder qualidade.
ClassificaçãoSubstantivo.
+

Rotacionar

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeRotacionar
SinônimosGirar, Virar
NoçãoMudar a orientação de um elemento ao redor de um ponto central.
ImpactoPermite criar efeitos dinâmicos e ajustar a perspectiva dos elementos dentro do design.
ClassificaçãoVerbo.
+
+

Salvar

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeSalvar
SinônimosArmazenar, Guardar
NoçãoAção de armazenar um design ou projeto no sistema da plataforma.
ImpactoGarante que o trabalho do usuário não seja perdido e possa ser acessado ou editado posteriormente.
ClassificaçãoVerbo.
+

Simultâneo

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeSimultâneo
SinônimosParalelo, Concomitante
NoçãoCapacidade de realizar múltiplas ações ou colaborações ao mesmo tempo dentro da plataforma.
ImpactoAumenta a eficiência e produtividade, permitindo que vários usuários ou processos aconteçam simultaneamente.
ClassificaçãoAdjetivo.
+

Slides

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeSlides
SinônimosPáginas, Telas
NoçãoUnidades de conteúdo em uma apresentação ou design que são visualizadas sequencialmente.
ImpactoEstruturam a apresentação de informações, facilitando a organização do conteúdo visual.
ClassificaçãoSubstantivo.
+

Sobreposição

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeSobreposição
SinônimosOverlay, Camada Adicional
NoçãoUtilizado para destacar ou realçar partes específicas de um design.
ImpactoEfeito visual onde um elemento é colocado sobre outro, criando profundidade ou ênfase.
ClassificaçãoSubstantivo.
+
+

Template

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeTemplate
SinônimosModelo, Esquema, Layout
NoçãoOferece uma estrutura inicial que pode ser personalizada pelo usuário.
ImpactoServe como base para a criação de novos designs, acelerando o processo criativo.
ClassificaçãoSubstantivo.
+

Teste

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeTeste
SinônimosAvaliação, Verificação
NoçãoProcesso de experimentação de um design ou funcionalidade antes de sua finalização.
ImpactoGarante a qualidade do design, permitindo ajustes antes da entrega final.
ClassificaçãoSubstantivo.
+
+

Usuário

+ + + + + + + + + + + + + + + + + + + + + + + + + +
NomeUsuário
SinônimosCliente, Consumidor, Designer.
NoçãoUsa a ferramenta para criar, editar e compartilhar projetos gráficos.
ImpactoInterage com a plataforma Canva para criar designs.
ClassificaçãoSubstantivo
+
+
+
+
+
+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/modelagem/nfr-framework/index.html b/modelagem/nfr-framework/index.html new file mode 100644 index 0000000..23674bb --- /dev/null +++ b/modelagem/nfr-framework/index.html @@ -0,0 +1,1998 @@ + + + + + + + + + + + + + + + + + + + + + + + NFR Framework - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

NFR Framework

+

Histórico de Versões

+ + + + + + + + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
17/08/2024Desenvolvimento inicial dos NFR Frameworks.Caio Alexandre0.0
05/09/2024Correção após inspeção.Gabriel Moura1.0
+

Origem

+

O desenvolvimento deste NFR Framework foi dado a partir da +Reunião 5.

+

Metodologia

+

O desenvolvimento do NFR Framework foi feito primeiramente com a identificação +dos requisitos não funcionais do sistema. Em seguida, foi feita a modelagem +primeiramente pelo Caio, que posteriormente foi revisada e melhorada pelo +Rodrigo (houve um swap de tarefas).

+

Introdução

+

O NFR é um framework orientado a metas, que busca representar requisitos não +funcionais de um sistema de software. Desse modelo é abstraído um diagrama +formado por softgoals (requisitos de qualidade), operacionalização, +argumentação, impactos e legenda.

+

Artefatos

+

Geral (NFRF1)

+

Versão 0.0

+

NFR Framework - Geral

+

Edição de Imagens (NFRF2)

+
+

Depreciado

+

Este NFR Framework será refeito em uma nova versão.

+
+

Versão 0.0

+

NFR Framework - Edição de Imagens

+

Apresentação de Slides (NFRF3)

+
+

Depreciado

+

Este NFR Framework será refeito em uma nova versão.

+
+

Versão 0.0

+

NFR Framework - Edição de Imagens

+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/pos-rastreabilidade/backward/index.html b/pos-rastreabilidade/backward/index.html new file mode 100644 index 0000000..6eaa333 --- /dev/null +++ b/pos-rastreabilidade/backward/index.html @@ -0,0 +1,1987 @@ + + + + + + + + + + + + + + + + + + + + + + + Backward-From - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Backward-From

+ +

Histórico de Versões

+ + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
09/09/2024Criação e desenvolvimento do documento.Caio Alexandre0.0
+

Backward-From

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDRequisitoFonteModelo
RQ01Diversidade de formatos de design (posts, banners, apresentações, etc.).UC-07Casos de Uso
RQ02Templates personalizáveis para cada formato.UC-05Casos de Uso
RQ03Criação de designs a partir do zero.UC-01Casos de Uso
RQ04Importação de imagens e fotos.MoSCoWMoSCoW
RQ05Salvar e exportar designs (PDF, JPG, PNG).Léxico - SalvarLéxico
RQ06Importação de vídeos e outros arquivos.MoSCoWMoSCoW
RQ07Exportar designs em formatos adicionais (SVG, MP4, GIF).MoSCoWMoSCoW
RQ08Integrar com redes sociais (agendamento de posts).MoSCoWMoSCoW
RQ09Ferramentas básicas de edição de imagem (cortar, redimensionar, girar).MoSCoWMoSCoW
RQ10Ajustar brilho, contraste e saturação de imagens.MoSCoWMoSCoW
RQ11Ferramentas de edição de texto (formatação básica, escolha de fontes, cores).MoSCoWMoSCoW
RQ12Adicionar ícones, ilustrações e formas geométricas aos designs.MoSCoWMoSCoW
RQ13Ferramentas avançadas de edição de imagem (filtros, efeitos, remover fundo).MoSCoWMoSCoW
RQ14Criar efeitos de texto (sombra, contorno).MoSCoWMoSCoW
RQ15Camadas (organização básica, ordem e visibilidade).MoSCoWMoSCoW
RQ16Camadas (opacidade, bloqueio).MoSCoWMoSCoW
RQ17Máscaras (linear, radial).MoSCoWMoSCoW
RQ18Compartilhamento de designs para visualização.MoSCoWMoSCoW
RQ19Compartilhamento de designs para edição com permissões básicas.MoSCoWMoSCoW
RQ20Edição colaborativa em tempo real.MoSCoWMoSCoW
RQ21Sistema de chat na edição colaborativa.MoSCoWMoSCoW
RQ22Comentários em elementos específicos.MoSCoWMoSCoW
RQ23Grades e guias.MoSCoWMoSCoW
RQ24Pré-visualização em tempo real.MoSCoWMoSCoW
RQ25Paleta de cores.MoSCoWMoSCoW
RQ26Guia de estilo.MoSCoWMoSCoW
RQ27Histórico de versões.MoSCoWMoSCoW
RQ28Atalhos de teclado.MoSCoWMoSCoW
RQ29Interface intuitiva e fácil de usar.MoSCoWMoSCoW
RQ30Arrastar e soltar.MoSCoWMoSCoW
RQ31Design responsivo.MoSCoWMoSCoW
RQ32Integração com outras ferramentas (redes sociais, armazenamento em nuvem).MoSCoWMoSCoW
RQ33Performance rápida e eficiente.MoSCoWMoSCoW
RQ34Confiabilidade.Especificação SuplementarEspecificação Suplementar
RQ35Segurança dos dados do usuário.Especificação SuplementarEspecificação Suplementar
RQ36Acessibilidade.Especificação SuplementarEspecificação Suplementar
RQ37Escalabilidade.Especificação SuplementarEspecificação Suplementar
RQ38Internacionalização.MoSCoWMoSCoW
+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/pos-rastreabilidade/forward/index.html b/pos-rastreabilidade/forward/index.html new file mode 100644 index 0000000..c8e8045 --- /dev/null +++ b/pos-rastreabilidade/forward/index.html @@ -0,0 +1,1878 @@ + + + + + + + + + + + + + + + + + + + + + + + Forward-From - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Histórico de Versões

+ + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
06/09/2024Criação e desenvolvimento do documentoLuiza Maluf e Rodrigo Bezerra0.0
+

Forward-From

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDRequisitoTela do Aplicativo
RF001Diversidade de formatos de design (posts, banners, apresentações, etc.).Acesse aqui
RF002Templates personalizáveis para cada formato.Acesse aqui
RF003Criação de designs a partir do zero.Acesse aqui
RF004Importação de imagens e fotos.Acesse aqui
RF005Salvar e exportar designs (PDF, JPG, PNG).Acesse aqui
RF006Importação de vídeos e outros arquivos.Acesse aqui
RF007Exportar designs em formatos adicionais (SVG, MP4, GIF).Acesse aqui
RF008Integrar com redes sociais (agendamento de posts).Acesse aqui
RF009Ferramentas básicas de edição de imagem (cortar, redimensionar, girar).Acesse aqui
RF010Ajustar brilho, contraste e saturação de imagens.Acesse aqui
RF011Ferramentas de edição de texto (formatação básica, escolha de fontes, cores).Acesse aqui
RF012Adicionar ícones, ilustrações e formas geométricas aos designs.Acesse aqui
RF013Ferramentas avançadas de edição de imagem (filtros, efeitos, remover fundo).Acesse aqui
RF014Criar efeitos de texto (sombra, contorno).Acesse aqui
RF015Camadas (organização básica, ordem e visibilidade).Acesse aqui
RF016Camadas (opacidade, bloqueio).Acesse aqui
RF017Máscaras (linear, radial).Acesse aqui
RF018Compartilhamento de designs para visualização.Acesse aqui
RF019Compartilhamento de designs para edição com permissões básicas.Acesse aqui
RF020Edição colaborativa em tempo real.Acesse aqui
RF021Sistema de chat na edição colaborativa.Acesse aqui
RF022Comentários em elementos específicos.Acesse aqui
RF023Grades e guias.Acesse aqui
RF024Pré-visualização em tempo real.Acesse aqui
RF025Paleta de cores.Acesse aqui
RF026Guia de estilo.Acesse aqui
RF027Histórico de versões.Acesse aqui
RF028Atalhos de teclado.Acesse aqui
RF029Interface intuitiva e fácil de usar.Acesse aqui
RF030Arrastar e soltar.Acesse aqui
RF031Design responsivo.Acesse aqui
RF032Integração com outras ferramentas (redes sociais, armazenamento em nuvem).Acesse aqui
RF033Performance rápida e eficiente.Acesse aqui
RF034Confiabilidade.
RF035Segurança dos dados do usuário.
RF036Acessibilidade.
RF037Escalabilidade.
RF038Internacionalização.
+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/pos-rastreabilidade/telas/RF001.png b/pos-rastreabilidade/telas/RF001.png new file mode 100644 index 0000000..2bd92e0 Binary files /dev/null and b/pos-rastreabilidade/telas/RF001.png differ diff --git a/pos-rastreabilidade/telas/RF002.png b/pos-rastreabilidade/telas/RF002.png new file mode 100644 index 0000000..55daa61 Binary files /dev/null and b/pos-rastreabilidade/telas/RF002.png differ diff --git a/pos-rastreabilidade/telas/RF003.png b/pos-rastreabilidade/telas/RF003.png new file mode 100644 index 0000000..9e8f9d4 Binary files /dev/null and b/pos-rastreabilidade/telas/RF003.png differ diff --git a/pos-rastreabilidade/telas/RF004.png b/pos-rastreabilidade/telas/RF004.png new file mode 100644 index 0000000..1697490 Binary files /dev/null and b/pos-rastreabilidade/telas/RF004.png differ diff --git a/pos-rastreabilidade/telas/RF005.png b/pos-rastreabilidade/telas/RF005.png new file mode 100644 index 0000000..77ec65c Binary files /dev/null and b/pos-rastreabilidade/telas/RF005.png differ diff --git a/pos-rastreabilidade/telas/RF007.png b/pos-rastreabilidade/telas/RF007.png new file mode 100644 index 0000000..42eca9b Binary files /dev/null and b/pos-rastreabilidade/telas/RF007.png differ diff --git a/pos-rastreabilidade/telas/RF008.png b/pos-rastreabilidade/telas/RF008.png new file mode 100644 index 0000000..e3b19b6 Binary files /dev/null and b/pos-rastreabilidade/telas/RF008.png differ diff --git a/pos-rastreabilidade/telas/RF009.png b/pos-rastreabilidade/telas/RF009.png new file mode 100644 index 0000000..f65d79c Binary files /dev/null and b/pos-rastreabilidade/telas/RF009.png differ diff --git a/pos-rastreabilidade/telas/RF011.png b/pos-rastreabilidade/telas/RF011.png new file mode 100644 index 0000000..4bece4e Binary files /dev/null and b/pos-rastreabilidade/telas/RF011.png differ diff --git a/pos-rastreabilidade/telas/RF012.png b/pos-rastreabilidade/telas/RF012.png new file mode 100644 index 0000000..d69282f Binary files /dev/null and b/pos-rastreabilidade/telas/RF012.png differ diff --git a/pos-rastreabilidade/telas/RF013.png b/pos-rastreabilidade/telas/RF013.png new file mode 100644 index 0000000..14c0461 Binary files /dev/null and b/pos-rastreabilidade/telas/RF013.png differ diff --git a/pos-rastreabilidade/telas/RF014.png b/pos-rastreabilidade/telas/RF014.png new file mode 100644 index 0000000..15d8933 Binary files /dev/null and b/pos-rastreabilidade/telas/RF014.png differ diff --git a/pos-rastreabilidade/telas/RF015.png b/pos-rastreabilidade/telas/RF015.png new file mode 100644 index 0000000..2fe8794 Binary files /dev/null and b/pos-rastreabilidade/telas/RF015.png differ diff --git a/pos-rastreabilidade/telas/RF016.png b/pos-rastreabilidade/telas/RF016.png new file mode 100644 index 0000000..b32e5b6 Binary files /dev/null and b/pos-rastreabilidade/telas/RF016.png differ diff --git a/pos-rastreabilidade/telas/RF017.png b/pos-rastreabilidade/telas/RF017.png new file mode 100644 index 0000000..da43cb8 Binary files /dev/null and b/pos-rastreabilidade/telas/RF017.png differ diff --git a/pos-rastreabilidade/telas/RF018.png b/pos-rastreabilidade/telas/RF018.png new file mode 100644 index 0000000..a232d44 Binary files /dev/null and b/pos-rastreabilidade/telas/RF018.png differ diff --git a/pos-rastreabilidade/telas/RF019.png b/pos-rastreabilidade/telas/RF019.png new file mode 100644 index 0000000..fcae797 Binary files /dev/null and b/pos-rastreabilidade/telas/RF019.png differ diff --git a/pos-rastreabilidade/telas/RF020.png b/pos-rastreabilidade/telas/RF020.png new file mode 100644 index 0000000..e534a7c Binary files /dev/null and b/pos-rastreabilidade/telas/RF020.png differ diff --git a/pos-rastreabilidade/telas/RF021.png b/pos-rastreabilidade/telas/RF021.png new file mode 100644 index 0000000..05e50a1 Binary files /dev/null and b/pos-rastreabilidade/telas/RF021.png differ diff --git a/pos-rastreabilidade/telas/RF022.png b/pos-rastreabilidade/telas/RF022.png new file mode 100644 index 0000000..a3c7026 Binary files /dev/null and b/pos-rastreabilidade/telas/RF022.png differ diff --git a/pos-rastreabilidade/telas/RF024.png b/pos-rastreabilidade/telas/RF024.png new file mode 100644 index 0000000..3ec0599 Binary files /dev/null and b/pos-rastreabilidade/telas/RF024.png differ diff --git a/pos-rastreabilidade/telas/RF025.png b/pos-rastreabilidade/telas/RF025.png new file mode 100644 index 0000000..dabbcb0 Binary files /dev/null and b/pos-rastreabilidade/telas/RF025.png differ diff --git a/pos-rastreabilidade/telas/RF026.png b/pos-rastreabilidade/telas/RF026.png new file mode 100644 index 0000000..5da549f Binary files /dev/null and b/pos-rastreabilidade/telas/RF026.png differ diff --git a/pos-rastreabilidade/telas/RF027.png b/pos-rastreabilidade/telas/RF027.png new file mode 100644 index 0000000..ede7bdb Binary files /dev/null and b/pos-rastreabilidade/telas/RF027.png differ diff --git a/pos-rastreabilidade/telas/RF028.png b/pos-rastreabilidade/telas/RF028.png new file mode 100644 index 0000000..b0096da Binary files /dev/null and b/pos-rastreabilidade/telas/RF028.png differ diff --git a/pos-rastreabilidade/telas/RF029.png b/pos-rastreabilidade/telas/RF029.png new file mode 100644 index 0000000..31ca66f Binary files /dev/null and b/pos-rastreabilidade/telas/RF029.png differ diff --git a/pos-rastreabilidade/telas/RF030.png b/pos-rastreabilidade/telas/RF030.png new file mode 100644 index 0000000..674a383 Binary files /dev/null and b/pos-rastreabilidade/telas/RF030.png differ diff --git a/pos-rastreabilidade/telas/RF031.png b/pos-rastreabilidade/telas/RF031.png new file mode 100644 index 0000000..61c5cd0 Binary files /dev/null and b/pos-rastreabilidade/telas/RF031.png differ diff --git a/pos-rastreabilidade/telas/RF032.png b/pos-rastreabilidade/telas/RF032.png new file mode 100644 index 0000000..3e235ff Binary files /dev/null and b/pos-rastreabilidade/telas/RF032.png differ diff --git a/pos-rastreabilidade/telas/rf023.png b/pos-rastreabilidade/telas/rf023.png new file mode 100644 index 0000000..e9a488b Binary files /dev/null and b/pos-rastreabilidade/telas/rf023.png differ diff --git a/pre-rastreabilidade/argumentacao/index.html b/pre-rastreabilidade/argumentacao/index.html new file mode 100644 index 0000000..7e639ac --- /dev/null +++ b/pre-rastreabilidade/argumentacao/index.html @@ -0,0 +1,2236 @@ + + + + + + + + + + + + + + + + + + + + + + + Argumentação - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Argumentação

+

Histórico de Versões

+ + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
29/07/2024Primeiras discussões em grupo da plataforma Canva.Luiza Maluf0.0
+

Origem

+

O desenvolvimento desta Argumentação foi dado a partir da +Reunião 2.

+

Metodologia

+

O grupo decidiu adotar um processo baseado em reuniões para expor e discutir os +pontos de vista de cada membro, permitindo que as ideias fossem expostas, +analisadas e confrontadas.

+

As primeiras argumentações possuem foco na definição de escopo e a pontos +relacionados a primeira parte da disciplina. Em seguida, as discurssões são +essenciais para o aprofundamento da análise da plataforma Canva.

+

Por questão de organização, decidimos que ocorrerá um rodízio de membros para a +produção da documentação do tema em questão. Dessa forma, o grupo pretende +analisar diversos setores do aplicativo, garantindo uma compreensão mais +completa e detalhada dos aspectos relevantes para o projeto.

+

Introdução

+

A argumentação é fundamental para o sucesso de um trabalho em grupo, pois ela +assegura o compartilhamento e o confronto de ideias. Esse processo não só torna +o projeto mais eficaz, mas também alinha os membros da equipe, permitindo que +todos trabalhem juntos em direção a um objetivo comum.

+

Objetivos

+

O principal objetivo da argumentação é promover a discursão de pontos de vista +divergentes. A documentação dessa técnica é crucial para garantir a +rastreabilidade e a transparência do processo de decisão.

+

Artefatos

+

Discussão sobre os atributos gerais do Canva

+

Pensando em atributos, pudemos pensar em 5 principais:

+
    +
  1. +

    Interface Intuitiva: O Canva possui uma interface de usuário intuitiva, + facilitando o uso para iniciantes (Henrique).

    +
  2. +
  3. +

    Variedade de Templates: Oferece uma vasta gama de templates para + diferentes tipos de projetos, como apresentações, posts de redes sociais, + cartazes e mais. (Rodrigo)

    +
  4. +
  5. +

    Recursos Gráficos e Elementos Visuais: Inclui uma biblioteca rica em + imagens, ícones, ilustrações e fontes. (Luiza)

    +
  6. +
  7. +

    Colaboração em Tempo Real: Permite que múltiplos usuários colaborem em um + mesmo projeto em tempo real. (Gabriel)

    +
  8. +
  9. +

    Versatilidade de Exportação: Possibilidade de exportar os projetos em + diversos formatos, como PDF, PNG e MP4. (Caio)

    +
  10. +
+

A partir disso, pensamos nas consequências geradas ao usuário a partir dos +atributos citados.

+
    +
  1. +

    Facilidade de Uso: A interface intuitiva permite que usuários com pouca + ou nenhuma experiência em design gráfico possam criar conteúdos visuais de + qualidade. (Luiza)

    +
  2. +
  3. +

    Rapidez na Criação de Conteúdos: Com a variedade de templates e recursos + gráficos, os usuários podem criar materiais visuais de forma rápida e + eficiente. (Gabriel)

    +
  4. +
  5. +

    Qualidade e Profissionalismo: Acessar uma ampla gama de elementos visuais + permite que os projetos tenham uma aparência profissional, independentemente + do nível de habilidade do usuário. (Henrique)

    +
  6. +
  7. +

    Colaboração e Feedback: A funcionalidade de colaboração em tempo real + facilita o trabalho em equipe, permitindo a troca de feedback e a edição + conjunta de projetos. (Rodrigo)

    +
  8. +
  9. +

    Flexibilidade no Uso: A versatilidade de exportação garante que os + projetos possam ser utilizados em diferentes plataformas e para diferentes + finalidades, como impressões, publicações digitais e mídias sociais. (Caio)

    +
  10. +
+

Por fim, alguns contra-argumentos foram citados:

+
    +
  1. +

    Limitações de Personalização Avançada: Apesar da interface intuitiva, + pode haver limitações para usuários avançados que buscam personalizações mais + complexas. (Luiza)

    +
  2. +
  3. +

    Dependência de Conexão com a Internet: A necessidade de colaboração em + tempo real requer uma conexão estável com a internet, o que pode ser uma + limitação em certas situações. (Henrique)

    +
  4. +
  5. +

    Custo de Recursos Premium: Alguns recursos gráficos e templates são + pagos, o que pode ser uma barreira para usuários que procuram soluções + completamente gratuitas. (Gabriel)

    +
  6. +
+

Descrição dos Conflitos

+

Os conflitos identificados foram:

+ + + + + + + + + + + + + + + + + + + + + + + + + +
IDConflitoDescrição
C1Personalização Limitada vs. Interface IntuitivaA interface intuitiva simplifica o uso, mas pode não oferecer opções avançadas de personalização.
C2Dependência de Internet vs. Colaboração em Tempo RealA colaboração em tempo real depende de uma conexão estável com a internet.
C3Custo de Recursos Premium vs. Acessibilidade dos RecursosMuitos recursos premium exigem pagamento, o que pode limitar a acessibilidade para todos os usuários.
+

Conclusão

+

O Canva é uma plataforma acessível que facilita o design gráfico com sua +interface intuitiva e ampla variedade de recursos.

+

Ela permite que usuários de todos os níveis criem conteúdos de alta qualidade de +forma rápida e colaborativa. No entanto, apresenta algumas limitações, como +falta de opções avançadas de personalização, dependência de conexão à internet +para colaboração e custo de recursos premium.

+

Abordar esses pontos pode ampliar o alcance e a eficácia da plataforma, +tornando-a ainda mais inclusiva e poderosa para uma audiência diversificada.

+

Proposições (i)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDProposição
i1Interface Intuitiva
i2Variedade de Templates
i3Recursos Gráficos e Elementos Visuais
i4Colaboração em Tempo Real
i5Versatilidade de Exportação
i6Limitações de Personalização Avançada
i7Dependência de Conexão com a Internet
i8Custo de Recursos Premium
+

Inferências (iT)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDInferência
iT1Facilidade de Uso
iT2Rapidez na Criação de Conteúdos
iT3Qualidade e Profissionalismo
iT4Colaboração e Feedback
iT5Flexibilidade no Uso
+

Conflitos (C):

+ + + + + + + + + + + + + + + + + + + + + +
IDConflito
C1Personalização Limitada vs. Interface Intuitiva
C2Dependência de Internet vs. Colaboração em Tempo Real
C3Custo de Recursos Premium vs. Acessibilidade dos Recursos
+

Grafo de Argumentação

+

Versão 0.0

+

Grafo argumentação 1

+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/pre-rastreabilidade/rich_picture/index.html b/pre-rastreabilidade/rich_picture/index.html new file mode 100644 index 0000000..703f8b1 --- /dev/null +++ b/pre-rastreabilidade/rich_picture/index.html @@ -0,0 +1,1997 @@ + + + + + + + + + + + + + + + + + + + + + + + Rich Pictures - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Rich Picture

+

Histórico de Versões

+ + + + + + + + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
24/07/2024Rich Picture geral.Luiza Maluf0.0
24/07/2024Rich Picture Foco no usuário.Luiza Maluf0.1
+

Origem

+

O desenvolvimento deste Rich Picture foi dado a partir da +Reunião 1.

+

Introdução

+

Um Rich Picture é uma ferramenta visual utilizada para representar de forma +holística e intuitiva um sistema complexo ou uma situação problemática. +Originado na abordagem de Soft Systems Methodology (SSM) desenvolvida por Peter +Checkland, o Rich Picture é caracterizado por ser uma representação gráfica que +inclui pessoas, processos, fluxos de informação, relacionamentos e contextos.

+

Características Principais

+
    +
  • Visual e Intuitivo: Utiliza desenhos, símbolos, ícones e texto para + capturar e comunicar aspectos importantes do sistema.
  • +
  • Holístico: Oferece uma visão abrangente do sistema ou problema, + considerando múltiplas perspectivas e interações.
  • +
  • Flexível: Pode ser continuamente refinado e ajustado à medida que novas + informações são obtidas.
  • +
  • Colaborativo: Frequentemente criado em grupos, promovendo a participação e + a comunicação entre stakeholders.
  • +
+

Objetivos

+
    +
  • Compreensão: Ajudar a entender complexidades e dinâmicas de sistemas.
  • +
  • Comunicação: Facilitar a comunicação entre diferentes partes interessadas.
  • +
  • Identificação de Problemas: Destacar áreas problemáticas e oportunidades + de melhoria.
  • +
  • Planejamento: Apoiar na elaboração de estratégias e soluções.
  • +
+

Utilização

+

Rich Pictures são amplamente usados em diversas áreas, incluindo engenharia de +sistemas, gestão de projetos, análise de negócios e desenvolvimento +organizacional, devido à sua capacidade de simplificar e visualizar +complexidades.

+

Em resumo, um Rich Picture é uma ferramenta poderosa para explorar, comunicar e +resolver problemas complexos de maneira visual e colaborativa.

+

Artefatos

+

Fluxo Geral

+

Versão 0.0

+

Rich Picture Geral

+

Fluxo do Usuário

+

Versão 0.0

+

Rich Picture Usuario 00

+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/search/search_index.json b/search/search_index.json new file mode 100644 index 0000000..0c22cc9 --- /dev/null +++ b/search/search_index.json @@ -0,0 +1 @@ +{"config":{"lang":["pt"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Requisitos de Software","text":""},{"location":"#sobre-a-disciplina","title":"Sobre a Disciplina","text":"

A disciplina de Requisitos de Software aborda o processo de defini\u00e7\u00e3o, documenta\u00e7\u00e3o e manuten\u00e7\u00e3o dos requisitos de um sistema de software. Seu principal objetivo \u00e9 garantir que o software desenvolvido atenda \u00e0s necessidades e expectativas dos stakeholders (partes interessadas).

Os principais t\u00f3picos geralmente incluem:

  1. Elicita\u00e7\u00e3o de Requisitos: T\u00e9cnicas e m\u00e9todos para identificar e coletar requisitos de diferentes stakeholders, como entrevistas, question\u00e1rios, workshops e observa\u00e7\u00f5es.

  2. An\u00e1lise de Requisitos: Processos para atender, analisar e negociar os requisitos coletados, garantindo que sejam vi\u00e1veis, claros e completos.

  3. Documenta\u00e7\u00e3o de Requisitos: Cria\u00e7\u00e3o de documentos que descrevem os requisitos de maneira estruturada e detalhada, como especifica\u00e7\u00f5es de requisitos de software.

  4. Valida\u00e7\u00e3o e Verifica\u00e7\u00e3o de Requisitos: M\u00e9todos para garantir que os requitos estejam corretos, completos e test\u00e1veis, e que o software desenvolvido estejam em conformidade com esse requisitos.

  5. Gerenciamento de Requisitos: Pr\u00e1ticas para gerenciar mudan\u00e7as nos requisitos estejam corretos, completos e test\u00e1veis, e que o software desenvolvido estejam em conformidade com esses requisitos.

  6. Ferramentas e T\u00e9cnicas: Uso de ferramentas e t\u00e9cnicas para apoiar as atividades de requisitos, como modelagem, prototipagem e ferramentas de gest\u00e3o de requisitos.

"},{"location":"#sobre-o-canva","title":"Sobre o Canva","text":"

O Canva \u00e9 uma plataforma de design gr\u00e1fico online que permite a usu\u00e1rios criar uma ampla variedade de conte\u00fados visuais de forma f\u00e1cil e intuitiva. Lan\u00e7ada em 2013, a plataforma oferece uma interface de arrastar e soltar e uma vasta biblioteca de templates, imagens, \u00edcones e fontes, facilitando o design mesmo para quem n\u00e3o possui experi\u00eancia em design gr\u00e1fico.

"},{"location":"#principais-caracteristicas-do-canva","title":"Principais Caracter\u00edsticas do Canva:","text":"

Templates: Oferece milhares de templates prontos para diversas finalidades, como posts para redes sociais, apresenta\u00e7\u00f5es, cartazes, cart\u00f5es de visita, folhetos, entre outros.

Recursos de Design: Inclui uma variedade de elementos gr\u00e1ficos, como formas, \u00edcones, fotos e ilustra\u00e7\u00f5es, al\u00e9m de ferramentas de texto e edi\u00e7\u00e3o de imagens.

Colabora\u00e7\u00e3o: Permite que equipes trabalhem juntas em projetos de design, com op\u00e7\u00f5es de compartilhamento e edi\u00e7\u00e3o colaborativa em tempo real.

Acessibilidade: Dispon\u00edvel tanto em vers\u00e3o web quanto em aplicativos para dispositivos m\u00f3veis, permitindo a cria\u00e7\u00e3o e edi\u00e7\u00e3o de designs em qualquer lugar.

Versatilidade: Atende a uma ampla gama de necessidades, desde uso pessoal e pequenas empresas at\u00e9 grandes organiza\u00e7\u00f5es, com funcionalidades para cria\u00e7\u00e3o de materiais de marketing, apresenta\u00e7\u00f5es corporativas, material did\u00e1tico, entre outros.

Recursos Gratuitos e Pagos: Oferece uma vers\u00e3o gratuita com muitos recursos dispon\u00edveis, mas tamb\u00e9m possui planos pagos (Canva Pro e Canva for Enterprise) que oferecem funcionalidades adicionais, como mais op\u00e7\u00f5es de templates, ferramentas avan\u00e7adas de edi\u00e7\u00e3o e maior espa\u00e7o de armazenamento.

"},{"location":"#equipe-de-trabalho","title":"Equipe de trabalho","text":"Integrantes Matr\u00edcula GitHub Caio Alexandre Ornelas Silva 221007644 @bitterteriyaki Luiza Maluf Amorim 221008294 @LuizaMaluf Rodrigo Mattos de F. Ayres Bezerra 180108875 @Rodrigomfab88 Henrique Camelo Quenino 221008098 @henriquecq Gabriel Moura dos Santos 221008060 @thegm445"},{"location":"#ferramentas-utilizadas","title":"Ferramentas Utilizadas","text":"Ferramenta Nome Descri\u00e7\u00e3o GitHub Versionamento de arquivos Microsoft Teams Para grava\u00e7\u00f5es de reuni\u00f5es WhatsApp Comunica\u00e7\u00e3o Discord Reuni\u00f5es Mkdocs Documenta\u00e7\u00e3o Miro Cria\u00e7\u00e3o de diagramas"},{"location":"analise/istar/","title":"Inspe\u00e7\u00e3o do iStar","text":""},{"location":"analise/istar/#historico-de-versoes","title":"Hist\u00f3rico de Vers\u00f5es","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 04/09/2024 Inspe\u00e7\u00e3o inicial do iStar. Caio Alexandre 0.0"},{"location":"analise/istar/#objetivo","title":"Objetivo","text":"

O principal objetivo e verificar a qualidade dos artefatos produzidos pelo grupo e priorizar quais pontos devem ser refatorados.

"},{"location":"analise/istar/#metodologia","title":"Metodologia","text":"

A inspe\u00e7\u00e3o \u00e9 um modelo eficaz que verifica os artefatos e ao final diz se est\u00e3o de acordo com a nota\u00e7\u00e3o esperada. Foi estabelicido um checklist com os crit\u00e9rios necess\u00e1rios para definir a qualidade do modelo iStar. Com base nos resultados, a prioriza\u00e7\u00e3o foi dividida em qualidade alta, m\u00e9dia e baixa, onde a de baixa qualidade precisa ser refatorada primeiro.

"},{"location":"analise/istar/#artefatos","title":"Artefatos","text":""},{"location":"analise/istar/#strategic-dependency-model","title":"Strategic Dependency Model","text":"
  • Todas as depend\u00eancias est\u00e3o direcionadas corretamente?
  • Os softgoals representam requisitos n\u00e3o-funcionais?
  • Os atores est\u00e3o representados com a abstra\u00e7\u00e3o correta?

    Obs.: O ator \"Canva\" poderia ter sido registrado como um agente.

  • Os atores descritos s\u00e3o realmente os necess\u00e1rios e suficientes para o modelo proposto?
  • As metas s\u00e3o objetivos que se deseja alcan\u00e7ar?
  • As metas est\u00e3o descritas em voz passiva?
  • Todos os recursos s\u00e3o substantivos?
"},{"location":"analise/istar/#strategic-rationale-model","title":"Strategic Rationale Model","text":""},{"location":"analise/istar/#sr-usuario","title":"SR Usu\u00e1rio","text":"
  • A boundary representa a fronteira de um ator, limitando o escopo de sua atua\u00e7\u00e3o?
  • Todos os elementos presentes dentro da fronteira s\u00e3o elementos relacionados ao ator que ela pertence?
  • As liga\u00e7\u00f5es com elementos de fora da fronteira s\u00e3o feitas atrav\u00e9s de depend\u00eancias?
  • As liga\u00e7\u00f5es and e or est\u00e3o corretas?
  • Os impactos est\u00e3o representados com sentido e intensidade corretas?
  • Existe propaga\u00e7\u00e3o de impacto entre diferentes ramos? (n\u00e3o apenas entre pais e filhos)
  • Todos os recursos s\u00e3o substantivos?
  • Todas as tarefas s\u00e3o a\u00e7\u00f5es e est\u00e3o representadas com verbos?
  • Os softgoals representam requisitos n\u00e3o-funcionais?
  • As metas s\u00e3o objetivos que se deseja alcan\u00e7ar?
  • As metas est\u00e3o descritas em voz passiva?
"},{"location":"analise/istar/#sr-canva","title":"SR Canva","text":"
  • A boundary representa a fronteira de um ator, limitando o escopo de sua atua\u00e7\u00e3o?
  • Todos os elementos presentes dentro da fronteira s\u00e3o elementos relacionados ao ator que ela pertence?
  • As liga\u00e7\u00f5es com elementos de fora da fronteira s\u00e3o feitas atrav\u00e9s de depend\u00eancias?
  • As liga\u00e7\u00f5es and e or est\u00e3o corretas?
  • Os impactos est\u00e3o representados com sentido e intensidade corretas?
  • Existe propaga\u00e7\u00e3o de impacto entre diferentes ramos? (n\u00e3o apenas entre pais e filhos)
  • Todos os recursos s\u00e3o substantivos?
  • Todas as tarefas s\u00e3o a\u00e7\u00f5es e est\u00e3o representadas com verbos?
  • Os softgoals representam requisitos n\u00e3o-funcionais?
  • As metas s\u00e3o objetivos que se deseja alcan\u00e7ar?
  • As metas est\u00e3o descritas em voz passiva?
"},{"location":"analise/istar/#sr-pro","title":"SR Pro","text":"
  • A boundary representa a fronteira de um ator, limitando o escopo de sua atua\u00e7\u00e3o?
  • Todos os elementos presentes dentro da fronteira s\u00e3o elementos relacionados ao ator que ela pertence?
  • As liga\u00e7\u00f5es com elementos de fora da fronteira s\u00e3o feitas atrav\u00e9s de depend\u00eancias?
  • As liga\u00e7\u00f5es and e or est\u00e3o corretas?
  • Os impactos est\u00e3o representados com sentido e intensidade corretas?
  • Existe propaga\u00e7\u00e3o de impacto entre diferentes ramos? (n\u00e3o apenas entre pais e filhos)
  • Todos os recursos s\u00e3o substantivos?
  • Todas as tarefas s\u00e3o a\u00e7\u00f5es e est\u00e3o representadas com verbos?
  • Os softgoals representam requisitos n\u00e3o-funcionais?
  • As metas s\u00e3o objetivos que se deseja alcan\u00e7ar?
  • As metas est\u00e3o descritas em voz passiva?
"},{"location":"analise/istar/#resultado","title":"Resultado","text":"

Qualidade alta.

"},{"location":"analise/verf_argumentacao/","title":"Verifica\u00e7\u00e3o - Inspe\u00e7\u00e3o da Argumenta\u00e7\u00e3o","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor 03/09/2024 0.0 Criando a documenta\u00e7\u00e3o de Inspe\u00e7\u00e3o da Argumenta\u00e7\u00e3o Luiza Maluf"},{"location":"analise/verf_argumentacao/#introducao","title":"Introdu\u00e7\u00e3o","text":"

O objetivo dessa documenta\u00e7\u00e3o \u00e9 fazer a verifica\u00e7\u00e3o da prioriza\u00e7\u00e3o utilizando a t\u00e9cnica de inspe\u00e7\u00e3o.

"},{"location":"analise/verf_argumentacao/#objetivo","title":"Objetivo","text":"

O principal objetivo e verificar a qualidade dos artefatos produzios pelo grupo e priorizar quais pontos devem ser refatorados.

"},{"location":"analise/verf_argumentacao/#metodologia","title":"Metodologia","text":"

A inspe\u00e7\u00e3o \u00e9 um modelo eficaz que verifica os artefatos e ao final diz se est\u00e3o de acordo com a nota\u00e7\u00e3o esperada.

Foi elaborada um checklist baseado na metodologia de constru\u00e7\u00e3o do MoSCoW, em que as perguntas s\u00e3o respondidas com \"[X]\" ou \"[ ]\", onde o \"[x]\" representa um impacto positivo e o \"[ ]\" resulta em um impacto negativo.

Com base nos resultados, a prioriza\u00e7\u00e3o foi dividida em qualidade alta, m\u00e9dia e baixa, onde a de baixa qualidade precisa ser refatorada primeiro.

"},{"location":"analise/verf_argumentacao/#checklist","title":"Checklist","text":""},{"location":"analise/verf_argumentacao/#primeira-analise-da-argumentacao-versao-10","title":"Primeira an\u00e1lise da Argumenta\u00e7\u00e3o (vers\u00e3o 1.0)","text":"
  • Possui legendas explicativas para f\u00e1cil entendimento.
  • Alcan\u00e7ou uma conclus\u00e3o consistente e racional.
  • \u00c9 poss\u00edvel rastrear a origem dos argumentos.
  • Respeita a nota\u00e7\u00e3o de argumento.
  • Infer\u00eancias s\u00e3o feitas corretamente.
  • Conflitos entre pontos de vistas opostos est\u00e3o bem representados.
"},{"location":"analise/verf_argumentacao/#resultado","title":"Resultado","text":"

Qualidade alta.

"},{"location":"analise/verf_backlog/","title":"Verifica\u00e7\u00e3o - Inspe\u00e7\u00e3o do Backlog do Produto e Hist\u00f3rias de Usu\u00e1rios","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 04/09/2024 Criando a documenta\u00e7\u00e3o de Inspe\u00e7\u00e3o do Backlog do Produto e Hist\u00f3rias de Usu\u00e1rios Rodrigo Mattos 0.1"},{"location":"analise/verf_backlog/#introducao","title":"Introdu\u00e7\u00e3o","text":"

O objetivo dessa documenta\u00e7\u00e3o \u00e9 fazer a verifica\u00e7\u00e3o do Backlog do Produto utilizando a t\u00e9cnica de inspe\u00e7\u00e3o.

"},{"location":"analise/verf_backlog/#objetivo","title":"Objetivo","text":"

O principal objetivo e verificar a qualidade dos artefatos produzidos pelo grupo e priorizar quais pontos devem ser refatorados.

"},{"location":"analise/verf_backlog/#metodologia","title":"Metodologia","text":"

O modelo de verifica\u00e7\u00e3o escolhido foi o de inspe\u00e7\u00e3o, \u00e9 um modelo eficaz que verifica se os artefatos est\u00e3o de acordo com a nota\u00e7\u00e3o esperada.

Foram elaboradas 12 perguntas com o objetivo de verificar a qualidade de cada uma das hist\u00f3rias de usu\u00e1rio,as respostas das perguntas devem ser \"sim\" ou \"n\u00e3o\", onde \"sim\" resulta em um impacto positivo e o \"n\u00e3o\" resulta em um impacto negativo.

Com base na tabela e no n\u00famero de crit\u00e9rios n\u00e3o cumpridos, as hist\u00f3rias de usu\u00e1rio foram divididas em qualidades alta, m\u00e9dia e baixa.

"},{"location":"analise/verf_backlog/#perguntas","title":"Perguntas","text":"
  • 1- A hist\u00f3ria est\u00e1 em um \u00fanico padr\u00e3o de escrita?
  • 2- A hist\u00f3ria apresenta \u00e9pico?
  • 3- A hist\u00f3ria apresenta features?
  • 4- A hist\u00f3ria possui um ID de especifica\u00e7\u00e3o enumerada em ordem crescente?
  • 5- A hist\u00f3ria \u00e9 pontuada de acordo com a sequ\u00eancia de Fibonacci?
  • 6- A hist\u00f3ria \u00e9 priorizada pelo modelo MoSCoW?
  • 7- A descri\u00e7\u00e3o do \u00e9pico da hist\u00f3ria \u00e9 coerente?
  • 8- A Sprint dessa hist\u00f3ria est\u00e1 pontuado?
  • 9- A hist\u00f3ria especifica ao menos 1 crit\u00e9rio de aceita\u00e7\u00e3o?
  • 10- A hist\u00f3ria identifica o usu\u00e1rio principal?
  • 11- A hist\u00f3ria apresenta qual o requisito relacionado?
  • 12- \"O que\u201d e o \u201cpor que\u201d est\u00e3o definidos na descri\u00e7\u00e3o da hist\u00f3ria?
"},{"location":"analise/verf_backlog/#tabela-de-avaliacao","title":"Tabela de Avalia\u00e7\u00e3o","text":"Backlog do Produto 1 2 3 4 5 6 7 8 9 10 11 12 US001 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US002 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US003 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US004 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US005 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US006 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US007 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US008 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US009 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US010 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US011 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US012 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US013 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US014 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US015 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US016 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US017 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US018 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US019 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US020 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US021 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US022 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US023 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US024 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US025 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US026 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US027 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US028 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US029 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US030 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US031 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US032 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US033 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US034 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US035 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US036 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US037 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 US038 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713 \u2713"},{"location":"analise/verf_backlog/#criterios-de-qualidade","title":"Crit\u00e9rios de qualidade","text":"
  • Reprova\u00e7\u00e3o em APENAS 1 crit\u00e9rio - Qualidade Alta
  • Reprova\u00e7\u00e3o entre 2 a 5 crit\u00e9rios - Qualidade M\u00e9dia
  • Reprova\u00e7\u00e3o em mais de 5 crit\u00e9rios - Qualidade Baixa
"},{"location":"analise/verf_backlog/#analise-do-modelo","title":"An\u00e1lise do Modelo","text":""},{"location":"analise/verf_backlog/#qualidade-baixa","title":"Qualidade Baixa","text":"

-N\u00e3o houve mais de 5 reprova\u00e7\u00f5es em nenhuma das US.

"},{"location":"analise/verf_backlog/#qualidade-media","title":"Qualidade M\u00e9dia","text":"

-N\u00e3o houve entre 2 e 5 reprova\u00e7\u00f5es em nenhuma das US.

"},{"location":"analise/verf_backlog/#qualidade-alta","title":"Qualidade Alta","text":"

-Houve no m\u00e1ximo 1 reprova\u00e7\u00e3o em todas as US.

"},{"location":"analise/verf_backlog/#conclusao","title":"Conclus\u00e3o","text":"

Os resultados obtidos com a inspe\u00e7\u00e3o foram de que todas as US apresentaram qualidade alta. A \u00fanica reprova\u00e7\u00e3o envolvendo todas as US \u00e9 que n\u00e3o foram feitas features para as hist\u00f3rias, mas todas apresentaram uma qualidade alta de aprova\u00e7\u00e3o.

"},{"location":"analise/verf_backlog/#backlog-do-produto-versao-10","title":"Backlog do Produto (vers\u00e3o 1.0)","text":""},{"location":"analise/verf_backlog/#backlog-do-produto-corrigido","title":"Backlog do Produto (corrigido)","text":""},{"location":"analise/verf_casos_de_uso/","title":"Verifica\u00e7\u00e3o - Inspe\u00e7\u00e3o da Especifica\u00e7\u00e3o dos Casos de Uso","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 04/09/2024 Criando a documenta\u00e7\u00e3o de Inspe\u00e7\u00e3o da Especifica\u00e7\u00e3o dos Casos de Uso Rodrigo Mattos 0.1"},{"location":"analise/verf_casos_de_uso/#introducao","title":"Introdu\u00e7\u00e3o","text":"

O objetivo dessa documenta\u00e7\u00e3o \u00e9 fazer a verifica\u00e7\u00e3o da Especifica\u00e7\u00e3o dos Casos de Uso utilizando a t\u00e9cnica de inspe\u00e7\u00e3o.

"},{"location":"analise/verf_casos_de_uso/#objetivo","title":"Objetivo","text":"

O principal objetivo e verificar a qualidade dos artefatos produzidos pelo grupo e priorizar quais pontos devem ser refatorados.

"},{"location":"analise/verf_casos_de_uso/#metodologia","title":"Metodologia","text":"

A inspe\u00e7\u00e3o \u00e9 um modelo eficaz que verifica os artefatos e ao final diz se est\u00e3o de acordo com a nota\u00e7\u00e3o esperada.

Foi elaborada um checklist baseado na metodologia de constru\u00e7\u00e3o do MoSCoW, em que as perguntas s\u00e3o respondidas com \"[X]\" ou \"[ ]\", onde o \"[x]\" representa um impacto positivo e o \"[ ]\" resulta em um impacto negativo.

Com base nos resultados, a prioriza\u00e7\u00e3o foi dividida em qualidade alta, m\u00e9dia e baixa, onde a de baixa qualidade precisa ser refatorada primeiro.

"},{"location":"analise/verf_casos_de_uso/#checklist","title":"Checklist","text":""},{"location":"analise/verf_casos_de_uso/#primeira-analise-da-especificacao-dos-casos-de-uso-versao-10","title":"Primeira an\u00e1lise da Especifica\u00e7\u00e3o dos Casos de Uso (vers\u00e3o 1.0)","text":"
  • As especifica\u00e7\u00f5es est\u00e3o ordenadas numericamente de forma crescente.
  • Os atores envolvidos em cada especifica\u00e7\u00e3o est\u00e3o indentificados.
  • Cada especifica\u00e7\u00e3o possui uma descri\u00e7\u00e3o intuitiva e clara.
  • Os diagramas est\u00e3o condizentes com as especifica\u00e7\u00f5es.
  • Os fluxos b\u00e1sicos, alternativos e de exce\u00e7\u00e3o est\u00e3o indentificados.
"},{"location":"analise/verf_casos_de_uso/#resultado","title":"Resultado","text":"

Qualidade alta.

"},{"location":"analise/verf_cenario/","title":"Verifica\u00e7\u00e3o - Inspe\u00e7\u00e3o dos Cen\u00e1rios","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor 04/09/2024 0.0 Cria\u00e7\u00e3o documento Verifica\u00e7\u00e3o de Cen\u00e1rio Henrique Quenino"},{"location":"analise/verf_cenario/#introducao","title":"Introdu\u00e7\u00e3o","text":"

O presente documento tem por finalidade apresentar e estabelecer uma vis\u00e3o ampla sobre os cen\u00e1rios existentes no Canva. A verifica\u00e7\u00e3o dos cen\u00e1rios \u00e9 uma atividade essencial para garantir a qualidade da especifica\u00e7\u00e3o de requisitos e a correta compreens\u00e3o das funcionalidades da plataforma.

"},{"location":"analise/verf_cenario/#objetivo","title":"Objetivo","text":"

Este documento objetiva a verifica\u00e7\u00e3o dos cen\u00e1rios, visando garantir que eles descrevam de forma clara, completa e consistente as intera\u00e7\u00f5es dos usu\u00e1rios com a plataforma educacional cumprindo os requisitos estabelecidos.

  • Completude: Verificar se os cen\u00e1rios abordam as principais funcionalidades da plataforma e diferentes perspectivas.
  • Clareza: Assegurar que os cen\u00e1rios sejam compreens\u00edveis para todos os envolvidos no desenvolvimento.
  • Consist\u00eancia: Garantir que os cen\u00e1rios estejam alinhados com os requisitos elicitados e com outros artefatos de an\u00e1lise.
  • Rastreabilidade: Verificar se os cen\u00e1rios podem ser rastreados aos requisitos que os originaram.
"},{"location":"analise/verf_cenario/#metodologia","title":"Metodologia","text":"

A verifica\u00e7\u00e3o dos cen\u00e1rios foi feita por checklist, que avalia a presen\u00e7a de elementos essenciais para a qualidade do artefato. O checklist foi elaborado com base nas caracter\u00edsticas dos cen\u00e1rios e nos crit\u00e9rios de qualidade estabelecidos.

"},{"location":"analise/verf_cenario/#checklist","title":"Checklist","text":""},{"location":"analise/verf_cenario/#primeira-analise-dos-cenarios","title":"Primeira an\u00e1lise dos Cen\u00e1rios","text":"
  • Os cen\u00e1rios abordam as principais funcionalidades da plataforma.
  • Os cen\u00e1rios s\u00e3o compreens\u00edveis para todos os envolvidos no desenvolvimento.
  • Os cen\u00e1rios est\u00e3o alinhados com os requisitos elicitados.
  • Todos os cen\u00e1rios possuem t\u00edtulo.
  • Todos os cen\u00e1rios possuem Objetivo.
  • Todos est\u00e3o inseridos em um contexto.
  • Todos os atores est\u00e3o devidamente definidos.
  • Os cen\u00e1rios se enquadram em todos os fluxos para a execu\u00e7\u00e3o de uma tarefa.
  • Os epis\u00f3dios est\u00e3o bem definidos.
  • Existem padr\u00f5es entre as descri\u00e7\u00f5es de cada subt\u00f3picos dos cen\u00e1rios.
  • Todos os cen\u00e1rios est\u00e3o linkados com os l\u00e9xicos.
  • Todos os atores est\u00e3o linkados com os l\u00e9xicos.
  • Os links para os l\u00e9xicos est\u00e3o funcionando.
  • Existem cen\u00e1rios para todos os requisitos.
"},{"location":"analise/verf_cenario/#correcao","title":"Corre\u00e7\u00e3o","text":"

Cen\u00e1rios Corrigidos.

"},{"location":"analise/verf_cenario/#resultado","title":"Resultado","text":"

Qualidade m\u00e9dia.

"},{"location":"analise/verf_esp_suplementar/","title":"Verifica\u00e7\u00e3o - Inspe\u00e7\u00e3o da Especifica\u00e7\u00e3o Suplementar","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor 03/09/2024 0.0 Criando a documenta\u00e7\u00e3o de Inspe\u00e7\u00e3o da especifica\u00e7\u00e3o suplementar Luiza Maluf"},{"location":"analise/verf_esp_suplementar/#introducao","title":"Introdu\u00e7\u00e3o","text":"

O objetivo dessa documenta\u00e7\u00e3o \u00e9 fazer a verifica\u00e7\u00e3o da prioriza\u00e7\u00e3o utilizando a t\u00e9cnica de inspe\u00e7\u00e3o.

"},{"location":"analise/verf_esp_suplementar/#objetivo","title":"Objetivo","text":"

O principal objetivo e verificar a qualidade dos artefatos produzios pelo grupo e priorizar quais pontos devem ser refatorados.

"},{"location":"analise/verf_esp_suplementar/#metodologia","title":"Metodologia","text":"

A inspe\u00e7\u00e3o \u00e9 um modelo eficaz que verifica os artefatos e ao final diz se est\u00e3o de acordo com a nota\u00e7\u00e3o esperada.

Foi elaborada um checklist baseado na metodologia de constru\u00e7\u00e3o do MoSCoW, em que as perguntas s\u00e3o respondidas com \"[X]\" ou \"[ ]\", onde o \"[x]\" representa um impacto positivo e o \"[ ]\" resulta em um impacto negativo.

Com base nos resultados, a prioriza\u00e7\u00e3o foi dividida em qualidade alta, m\u00e9dia e baixa, onde a de baixa qualidade precisa ser refatorada primeiro.

"},{"location":"analise/verf_esp_suplementar/#checklist","title":"Checklist","text":""},{"location":"analise/verf_esp_suplementar/#primeira-analise-da-especificacao-suplementar-versao-10","title":"Primeira an\u00e1lise da Especifica\u00e7\u00e3o Suplementar (vers\u00e3o 1.0)","text":"
  • Os requisitos n\u00e3o funcionais est\u00e3o bem definidos.
  • Todos os requisitos n\u00e3o funcionais possuem suas necessidades definidas.
  • Todos os t\u00f3picos est\u00e3o bem definidos e enumerados.
  • Existem requisitos relacionados \u00e0 performance, seguran\u00e7a, usabilidade, e compatibilidade documentados.
  • Os requisitos suplementares est\u00e3o corretamente rastreados para os requisitos funcionais.
"},{"location":"analise/verf_esp_suplementar/#correcao","title":"Corre\u00e7\u00e3o","text":"

Para visualizar a corre\u00e7\u00e3o da Especifica\u00e7\u00e3o Suplementar clique aqui

"},{"location":"analise/verf_esp_suplementar/#resultado","title":"Resultado","text":"

Qualidade alta.

"},{"location":"analise/verf_lexico/","title":"Verifica\u00e7\u00e3o - Inspen\u00e7\u00e3o L\u00e9xica","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor 04/09/2024 0.0 Cria\u00e7\u00e3o documento Verifica\u00e7\u00e3o L\u00e9xica Henrique Quenino"},{"location":"analise/verf_lexico/#introducao","title":"Introdu\u00e7\u00e3o","text":"

Verifica\u00e7\u00e3o e valida\u00e7\u00e3o do Gloss\u00e1rio de Termos (L\u00e9xico), garantindo clareza, completude, corre\u00e7\u00e3o e consist\u00eancia na terminologia utilizada.

"},{"location":"analise/verf_lexico/#objetivo","title":"Objetivo","text":"

O objetivo \u00e9 assegurar que os termos t\u00e9cnicos e espec\u00edficos do dom\u00ednio sejam compreendidos por todos os stakeholders, evitando ambiguidades e problemas.

  • Clareza: As defini\u00e7\u00f5es dos termos s\u00e3o claras, concisas e compreens\u00edveis para o p\u00fablico-alvo?
  • Completude: O gloss\u00e1rio inclui todos os termos t\u00e9cnicos e espec\u00edficos do dom\u00ednio relevantes para o projeto?
  • Corre\u00e7\u00e3o: As defini\u00e7\u00f5es dos termos est\u00e3o corretas e precisas?
  • Consist\u00eancia: A terminologia utilizada no gloss\u00e1rio \u00e9 consistente com a linguagem utilizada em outros artefatos de requisitos?
"},{"location":"analise/verf_lexico/#metodologia","title":"Metodologia","text":"

A verifica\u00e7\u00e3o e valida\u00e7\u00e3o foram realizadas atrav\u00e9s de:

  • An\u00e1lise de cada termo e defini\u00e7\u00e3o: Verificando a clareza, completude e corre\u00e7\u00e3o das informa\u00e7\u00f5es.
  • Compara\u00e7\u00e3o com outros artefatos: Garantindo a consist\u00eancia da terminologia utilizada.
"},{"location":"analise/verf_lexico/#analise-do-glossario","title":"An\u00e1lise do Gloss\u00e1rio","text":"

O gloss\u00e1rio apresentado demonstra um bom ponto de partida para a defini\u00e7\u00e3o da linguagem do projeto. A seguir, s\u00e3o apresentadas algumas observa\u00e7\u00f5es e melhorias realizadas na Corre\u00e7\u00e3o:

Termos e Defini\u00e7\u00f5es:

  • Completude:
    • Inclui termos relacionados \u00e0s funcionalidades da plataforma, como: \"feedback\", \"chat\", \"conte\u00fado\", \"Designer\", \"Equipe\".
    • Adiciona termos espec\u00edficos do Canva que ser\u00e3o relevantes para os usu\u00e1rios da plataforma, como: \"template\", \"computador\", \"identidade visual\", \"smartphones\".
  • Clareza:
    • \"Design\": A defini\u00e7\u00e3o anterior era muito gen\u00e9rica. Especifica-se na nova que se trata de um projeto visual criado no Canva, utilizado para diversos fins dentro da plataforma educacional.
    • \"Conte\u00fado\": Detalha os tipos de conte\u00fado que podem ser utilizados na plataforma (v\u00eddeos, apresenta\u00e7\u00f5es, infogr\u00e1ficos, documentos, links externos, etc.).
    • \"Colabora\u00e7\u00e3o\": Explicita como a colabora\u00e7\u00e3o ocorre na plataforma (edi\u00e7\u00e3o simult\u00e2nea de designs no Canva, f\u00f3runs de discuss\u00e3o, etc.).
  • Consist\u00eancia:
    • Verifica a consist\u00eancia da linguagem utilizada no gloss\u00e1rio com a linguagem utilizada em outros artefatos, como requisitos, cen\u00e1rios de uso e prot\u00f3tipos.

Formato e Organiza\u00e7\u00e3o:

  • Formato: O formato atual em lista \u00e9 adequado.
  • Ordem Alfab\u00e9tica: Organizar os termos em ordem alfab\u00e9tica facilita a busca e a consulta.
  • Links: Os termos est\u00e3o linkados corretamente com os artefatos que os referenciam.
"},{"location":"analise/verf_lexico/#correcao","title":"Corre\u00e7\u00e3o","text":"

L\u00e9xico corrigido dispon\u00edvel aqui.

"},{"location":"analise/verf_lexico/#resultado","title":"Resultado","text":"

O gloss\u00e1rio apresenta uma qualidade m\u00e9dia, com pontos fortes na clareza e organiza\u00e7\u00e3o dos termos, mas com oportunidades de melhoria na completude e consist\u00eancia da terminologia utilizada.

"},{"location":"analise/verf_nfr-framework/","title":"Valida\u00e7\u00e3o do NFR Framework","text":""},{"location":"analise/verf_nfr-framework/#verificacao-inspecao-do-nfr","title":"Verifica\u00e7\u00e3o - Inspe\u00e7\u00e3o do NFR","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor 04/09/2024 0.0 Criando a documenta\u00e7\u00e3o de Inspe\u00e7\u00e3o do NFR Gabriel Moura"},{"location":"analise/verf_nfr-framework/#introducao","title":"Introdu\u00e7\u00e3o","text":"

O objetivo dessa documenta\u00e7\u00e3o \u00e9 fazer a verifica\u00e7\u00e3o do diagrama NFR utilizando a t\u00e9cnica de inspe\u00e7\u00e3o.

"},{"location":"analise/verf_nfr-framework/#objetivo","title":"Objetivo","text":"

O principal objetivo \u00e9 verificar a qualidade do artefato produzido pelo grupo e identificar se h\u00e1 necessidade de refatora\u00e7\u00e3o.

"},{"location":"analise/verf_nfr-framework/#metodologia","title":"Metodologia","text":"

A inspe\u00e7\u00e3o \u00e9 um m\u00e9todo de verifica\u00e7\u00e3o que analisa os artefatos para determinar se est\u00e3o em conformidade com os padr\u00f5es e expectativas.

Foi elaborado um checklist com base nos princ\u00edpios de modelagem NFR, com perguntas a serem respondidas com \"[X]\" para \"Sim\" (impacto positivo) ou \"[]\" para \"N\u00e3o\" (impacto negativo).

A qualidade do NFR ser\u00e1 classificada como:

  • Alta: Se todas as perguntas do checklist forem respondidas com \"[X]\".
  • M\u00e9dia: Se a maioria das perguntas forem respondidas com \"[X]\", mas houver alguns \"[ ]\".
  • Baixa: Se houver um n\u00famero significativo de \"[ ]\" no checklist, indicando a necessidade de refatora\u00e7\u00e3o.
"},{"location":"analise/verf_nfr-framework/#checklist","title":"Checklist","text":""},{"location":"analise/verf_nfr-framework/#primeira-analise-do-nfr-geral-versao-00","title":"Primeira an\u00e1lise do NFR - Geral (vers\u00e3o 0.0)","text":"
  • O diagrama possui um objetivo claro e definido?
  • Os softgoals s\u00e3o representados por nuvens?
  • Os softgoals representam requisitos de qualidade?
  • As operacionaliza\u00e7\u00f5es s\u00e3o representadas por nuvens com bordas grossas?
  • As operacionaliza\u00e7\u00f5es descrevem como atingir os softgoals?
  • As depend\u00eancias entre softgoals e operacionaliza\u00e7\u00f5es s\u00e3o representadas por setas?
  • As setas indicam o tipo de contribui\u00e7\u00e3o (positiva ou negativa)?
  • O diagrama utiliza uma legenda para explicar os s\u00edmbolos e tipos de contribui\u00e7\u00e3o?
  • O diagrama est\u00e1 organizado e f\u00e1cil de entender?
  • As rela\u00e7\u00f5es de decomposi\u00e7\u00e3o e depend\u00eancia entre os softgoals est\u00e3o claras e completas?
  • As operacionaliza\u00e7\u00f5es propostas s\u00e3o vi\u00e1veis e adequadas para o contexto do Canva?
"},{"location":"analise/verf_nfr-framework/#resultado","title":"Resultado","text":"

Qualidade: M\u00e9dia

"},{"location":"analise/verf_priorizacao/","title":"Verifica\u00e7\u00e3o - Inspe\u00e7\u00e3o do MoSCoW","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor 01/09/2024 0.0 Criando a documenta\u00e7\u00e3o de Inspe\u00e7\u00e3o do MoSCoW Luiza Maluf"},{"location":"analise/verf_priorizacao/#introducao","title":"Introdu\u00e7\u00e3o","text":"

O objetivo dessa documenta\u00e7\u00e3o \u00e9 fazer a verifica\u00e7\u00e3o da prioriza\u00e7\u00e3o utilizando a t\u00e9cnica de inspe\u00e7\u00e3o.

"},{"location":"analise/verf_priorizacao/#objetivo","title":"Objetivo","text":"

O principal objetivo e verificar a qualidade dos artefatos produzios pelo grupo e priorizar quais pontos devem ser refatorados.

"},{"location":"analise/verf_priorizacao/#metodologia","title":"Metodologia","text":"

A inspe\u00e7\u00e3o \u00e9 um modelo eficaz que verifica os artefatos e ao final diz se est\u00e3o de acordo com a nota\u00e7\u00e3o esperada.

Foi elaborada um checklist baseado na metodologia de constru\u00e7\u00e3o do MoSCoW, em que as perguntas s\u00e3o respondidas com \"[X]\" ou \"[ ]\", onde o \"[x]\" representa um impacto positivo e o \"[ ]\" resulta em um impacto negativo.

Com base nos resultados, a prioriza\u00e7\u00e3o foi dividida em qualidade alta, m\u00e9dia e baixa, onde a de baixa qualidade precisa ser refatorada primeiro.

"},{"location":"analise/verf_priorizacao/#checklist","title":"Checklist","text":""},{"location":"analise/verf_priorizacao/#primeira-analise-do-moscow-versao-10","title":"Primeira an\u00e1lise do MoSCoW (vers\u00e3o 1.0)","text":"
  • Todos os requisitos est\u00e3o corretamente classificados como \"Must\", \"Should\", \"Could\", ou \"Would\".
  • Possui c\u00f3digo de identifica\u00e7\u00e3o de requisito.
  • Todo requisito utiliza o mesmo padr\u00e3o de prioriza\u00e7\u00e3o.
  • Existe justificativa para a prioriza\u00e7\u00e3o de cada requisito.
  • O impacto do requisito foi levado em conta na prioriza\u00e7\u00e3o.
  • Os custos de implementa\u00e7\u00e3o est\u00e3o estimados.
"},{"location":"analise/verf_priorizacao/#correcao","title":"Corre\u00e7\u00e3o","text":"

Para visualizar a corre\u00e7\u00e3o do MoSCoW clique aqui

"},{"location":"analise/verf_priorizacao/#resultado","title":"Resultado","text":"

Qualidade m\u00e9dia.

"},{"location":"analise/verf_rich_picture/","title":"Verifica\u00e7\u00e3o - Inspe\u00e7\u00e3o do Rich Picture","text":"Data Vers\u00e3o Descri\u00e7\u00e3o Autor 04/09/2024 0.0 Cria\u00e7\u00e3o documento Verifica\u00e7\u00e3o de Rich Picture Henrique Quenino"},{"location":"analise/verf_rich_picture/#introducao","title":"Introdu\u00e7\u00e3o","text":"

O presente documento objetiva a verifica\u00e7\u00e3o da qualidade do artefato Rich Picture. O Rich Picture \u00e9 uma ferramenta de modelagem que tem como objetivo representar visualmente um problema complexo, de forma a facilitar a compreens\u00e3o do contexto e identifica\u00e7\u00e3o de poss\u00edveis solu\u00e7\u00f5es.

"},{"location":"analise/verf_rich_picture/#objetivo","title":"Objetivo","text":"

O objetivo da verifica\u00e7\u00e3o \u00e9 garantir que o Rich Picture atenda aos crit\u00e9rios de qualidade estabelecidos, de forma a garantir a efic\u00e1cia da ferramenta na identifica\u00e7\u00e3o de problemas e solu\u00e7\u00f5es.

"},{"location":"analise/verf_rich_picture/#metodologia","title":"Metodologia","text":"

A verifica\u00e7\u00e3o do Rich Picture foi realizada por meio de um checklist, que avalia a presen\u00e7a de elementos essenciais para a qualidade do artefato. O checklist foi elaborado com base nas caracter\u00edsticas do Rich Picture e nos crit\u00e9rios de qualidade estabelecidos.

"},{"location":"analise/verf_rich_picture/#checklist","title":"Checklist","text":""},{"location":"analise/verf_rich_picture/#primeira-analise-do-rich-picture-versao-10","title":"Primeira an\u00e1lise do Rich Picture (vers\u00e3o 1.0)","text":"
  • O Rich Picture apresenta uma estrutura clara e organizada.
  • Os elementos do Rich Picture est\u00e3o dispostos de forma a facilitar a compreens\u00e3o do contexto.
  • As rela\u00e7\u00f5es entre os elementos est\u00e3o representadas de forma clara e objetiva.
  • O Rich Picture tem conex\u00e3o com o a argumenta\u00e7\u00e3o do projeto.
  • Todos os atores do sistema est\u00e3o representados no Rich Picture.
  • O Rich Picture geral est\u00e1 representando bem o sistema.
  • Est\u00e3o vis\u00edveis os conflitos e as pol\u00edticas, envolta no contexto do sistema?
  • Os RichPictures consideram os pontos de vistas de todos os stakeholders?
"},{"location":"analise/verf_rich_picture/#resultado","title":"Resultado","text":"

Qualidade alta.

"},{"location":"analise/correcoes/backlog_corrigido/","title":"Backlog do Produto e Hist\u00f3rias de Usu\u00e1rios","text":""},{"location":"analise/correcoes/backlog_corrigido/#historico-de-versoes","title":"Hist\u00f3rico de vers\u00f5es","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 17/08/2024 Defini\u00e7\u00e3o das hist\u00f3rias de usu\u00e1rio baseando-se nos requisitos listados na parte de elicita\u00e7\u00e3o MoSCoW. Defini\u00e7\u00e3o das Releases, Sprints e Backlog do Produto Luiza Maluf 0.0 04/09/2024 Corre\u00e7\u00e3o do Backlog do Produto e Hist\u00f3rias de Usu\u00e1rios ap\u00f3s a inspe\u00e7\u00e3o Rodrigo Mattos 0.1"},{"location":"analise/correcoes/backlog_corrigido/#origem","title":"Origem","text":"

Esse documento foi feito com base nos requisitos listados na parte de elicita\u00e7\u00e3o MoSCoW.

"},{"location":"analise/correcoes/backlog_corrigido/#metodologia","title":"Metodologia","text":"

Tendo em vista os requisitos elicitados, foram criadas hist\u00f3rias de usu\u00e1rio que descrevem as funcionalidades de uma maneira centrada no usu\u00e1rio. Cada hist\u00f3ria foi detalhada com crit\u00e9rios de aceita\u00e7\u00e3o, que estabelecem as condi\u00e7\u00f5es m\u00ednimas para que a funcionalidade seja considerada completa.

As hist\u00f3rias de usu\u00e1rio foram ent\u00e3o distribu\u00eddas em sprints, que s\u00e3o ciclos de desenvolvimento curtos e iterativos. Cada sprint foca em entregar funcionalidades espec\u00edficas, permitindo feedback cont\u00ednuo e ajustes ao longo do desenvolvimento.

O backlog foi estruturado com todas as hist\u00f3rias de usu\u00e1rio ordenadas por prioridade e distribu\u00eddas entre as sprints.

Esse backlog serve como guia para o desenvolvimento, garantindo que as funcionalidades mais importantes sejam entregues primeiro e que o produto evolua de acordo com as necessidades dos usu\u00e1rios.

"},{"location":"analise/correcoes/backlog_corrigido/#backlog-do-produto","title":"Backlog do Produto","text":"\u00c9pico Sprint ID Eu, como Desejo Para que eu possa Pontos Prioridade Requisito Diversidade de Formatos de Design 1 US#01 Usu\u00e1rio Criar posts, banners, apresenta\u00e7\u00f5es Utilizar diferentes formatos de design 5 Must RF1 Templates Personaliz\u00e1veis 1 US#02 Usu\u00e1rio Utilizar templates prontos e edit\u00e1-los Personalizar designs rapidamente 5 Must RF2 Cria\u00e7\u00e3o de Designs 2 US#03 Usu\u00e1rio Criar designs do zero Criar designs completamente personalizados 8 Must RF3 Importa\u00e7\u00e3o de M\u00eddia 2 US#04 Usu\u00e1rio Importar imagens e fotos Incluir minhas pr\u00f3prias m\u00eddias nos designs 5 Must RF4 Exporta\u00e7\u00e3o de Designs 2 US#05 Usu\u00e1rio Salvar e exportar designs em PDF, JPG, PNG Usar os designs fora da plataforma 5 Must RF5 Importa\u00e7\u00e3o de V\u00eddeos 3 US#06 Usu\u00e1rio Importar v\u00eddeos e outros arquivos Incluir v\u00eddeos nos meus designs 8 Should RF6 Exporta\u00e7\u00e3o Avan\u00e7ada 3 US#07 Usu\u00e1rio Exportar designs em SVG, MP4, GIF Usar designs em formatos espec\u00edficos 8 Should RF7 Integra\u00e7\u00e3o com Redes Sociais 4 US#08 Usu\u00e1rio Integrar com redes sociais e agendar posts Publicar diretamente nas redes sociais 13 Could RF8 Edi\u00e7\u00e3o de Imagem B\u00e1sica 4 US#09 Usu\u00e1rio Cortar, redimensionar e girar imagens Ajustar imagens de acordo com a necessidade 8 Must RF9 Ajustes de Imagem 4 US#10 Usu\u00e1rio Ajustar brilho, contraste e satura\u00e7\u00e3o das imagens Melhorar a qualidade visual das minhas imagens 8 Must RF10 Edi\u00e7\u00e3o de Texto 5 US#11 Usu\u00e1rio Editar textos com formata\u00e7\u00e3o b\u00e1sica, escolha de fontes, cores Personalizar textos nos meus designs 8 Must RF11 Adi\u00e7\u00e3o de Elementos 5 US#12 Usu\u00e1rio Adicionar \u00edcones, ilustra\u00e7\u00f5es e formas geom\u00e9tricas Enriquecer o conte\u00fado dos designs 5 Must RF12 Edi\u00e7\u00e3o de Imagem Avan\u00e7ada 5 US#13 Usu\u00e1rio Aplicar filtros, efeitos e remover fundo das imagens Criar efeitos visuais mais profissionais 13 Should RF13 Efeitos de Texto 6 US#14 Usu\u00e1rio Criar efeitos de texto como sombra e contorno Destacar textos nos designs 8 Should RF14 Camadas B\u00e1sicas 6 US#15 Usu\u00e1rio Organizar camadas b\u00e1sicas, ordem e visibilidade Gerenciar a composi\u00e7\u00e3o dos elementos 8 Should RF15 Camadas Avan\u00e7adas 7 US#16 Usu\u00e1rio Ajustar opacidade e bloquear camadas Controlar a visibilidade e seguran\u00e7a das camadas 8 Could RF16 M\u00e1scaras 7 US#17 Usu\u00e1rio Aplicar m\u00e1scaras lineares e radiais Criar efeitos de m\u00e1scara nos designs 5 Could RF17 Compartilhamento B\u00e1sico 7 US#18 Usu\u00e1rio Compartilhar designs para visualiza\u00e7\u00e3o Mostrar meus designs para outras pessoas 5 Must RF18 Compartilhamento com Edi\u00e7\u00e3o 7 US#19 Usu\u00e1rio Compartilhar designs para edi\u00e7\u00e3o com permiss\u00f5es Colaborar na cria\u00e7\u00e3o de designs 8 Must RF19 Edi\u00e7\u00e3o Colaborativa 8 US#20 Usu\u00e1rio Editar designs em tempo real com outros usu\u00e1rios Trabalhar junto com outros na cria\u00e7\u00e3o de designs 13 Should RF20 Sistema de Chat 8 US#21 Usu\u00e1rio Utilizar um sistema de chat durante a edi\u00e7\u00e3o Comunicar com outros enquanto edito 8 Could RF21 Coment\u00e1rios 8 US#22 Usu\u00e1rio Deixar coment\u00e1rios em elementos espec\u00edficos Revisar e dar feedback sobre partes do design 8 Could RF22 Grade e Guias 8 US#23 Usu\u00e1rio Usar grade e guias para alinhar elementos Manter a simetria e organiza\u00e7\u00e3o do design 5 Must RF23 Pr\u00e9-visualiza\u00e7\u00e3o em Tempo Real 9 US#24 Usu\u00e1rio Ver uma pr\u00e9-visualiza\u00e7\u00e3o em tempo real do design Avaliar o design enquanto edito 13 Must RF24 Paleta de Cores 9 US#25 Usu\u00e1rio Criar e usar paletas de cores Manter a consist\u00eancia de cores nos designs 8 Should RF25 Guia de Estilo 9 US#26 Usu\u00e1rio Utilizar um guia de estilo Assegurar que os designs sigam um padr\u00e3o visual 5 Could RF26 Hist\u00f3rico de Vers\u00f5es 9 US#27 Usu\u00e1rio Acessar o hist\u00f3rico de vers\u00f5es do design Reverter a vers\u00f5es anteriores caso necess\u00e1rio 8 Could RF27 Atalhos de Teclado 10 US#28 Usu\u00e1rio Utilizar atalhos de teclado Aumentar a efici\u00eancia durante a cria\u00e7\u00e3o de designs 5 Could RF28 Interface Intuitiva 10 US#29 Usu\u00e1rio Navegar por uma interface f\u00e1cil de usar Trabalhar de forma mais fluida e intuitiva 5 Must RF29 Arrastar e Soltar 10 US#30 Usu\u00e1rio Usar a fun\u00e7\u00e3o de arrastar e soltar Manipular elementos de forma f\u00e1cil e r\u00e1pida 5 Must RF30 Design Responsivo 10 US#31 Usu\u00e1rio Criar designs que sejam responsivos Assegurar que o design seja exibido corretamente em diferentes dispositivos 8 Should RF31 Integra\u00e7\u00e3o com Ferramentas 11 US#32 Usu\u00e1rio Integrar com redes sociais e armazenamento em nuvem Facilitar o compartilhamento e armazenamento dos designs 8 Could RF32 Performance 11 US#33 Usu\u00e1rio Usar a ferramenta com performance r\u00e1pida e eficiente Ter uma experi\u00eancia fluida durante a cria\u00e7\u00e3o dos designs 13 Must RF33 Confiabilidade 11 US#34 Usu\u00e1rio Confiar que a ferramenta funcionar\u00e1 de forma est\u00e1vel Evitar interrup\u00e7\u00f5es e perda de trabalho 13 Must RF34 Seguran\u00e7a de Dados 11 US#35 Usu\u00e1rio Ter seguran\u00e7a dos meus dados armazenados Garantir que meus dados pessoais estejam protegidos 13 Must RF35 Acessibilidade 12 US#36 Usu\u00e1rio Utilizar a ferramenta com recursos de acessibilidade Garantir que todos os usu\u00e1rios possam utilizar a plataforma 8 Should RF36 Escalabilidade 12 US#37 Usu\u00e1rio Ter a plataforma escal\u00e1vel conforme o uso aumenta Assegurar que o sistema suporte um grande n\u00famero de usu\u00e1rios 5 Could RF37 Internacionaliza\u00e7\u00e3o 12 US#38 Usu\u00e1rio Utilizar a plataforma em diferentes idiomas Acessar a plataforma em minha l\u00edngua nativa 5 Could RF38"},{"location":"analise/correcoes/backlog_corrigido/#release-1","title":"Release 1","text":""},{"location":"analise/correcoes/backlog_corrigido/#sprint-1","title":"Sprint 1","text":"ID Nome da Hist\u00f3ria de Usu\u00e1rio Pontos US#01 Criar posts, banners e apresenta\u00e7\u00f5es 5 US#02 Utilizar templates prontos e edit\u00e1-los 5"},{"location":"analise/correcoes/backlog_corrigido/#us01","title":"US#01","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo criar posts, banners e apresenta\u00e7\u00f5es para utilizar diferentes formatos de design.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O usu\u00e1rio deve ser capaz de selecionar entre diversos formatos de design, como posts, banners, e apresenta\u00e7\u00f5es, diretamente na interface inicial.

"},{"location":"analise/correcoes/backlog_corrigido/#us02","title":"US#02","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo utilizar templates prontos e edit\u00e1-los para personalizar designs rapidamente.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve oferecer uma biblioteca de templates personaliz\u00e1veis para diferentes formatos de design, permitindo a edi\u00e7\u00e3o r\u00e1pida e f\u00e1cil.

"},{"location":"analise/correcoes/backlog_corrigido/#sprint-2","title":"Sprint 2","text":"ID Nome da Hist\u00f3ria de Usu\u00e1rio Pontos US#03 Criar designs do zero 8 US#04 Importar imagens e fotos 5 US#05 Salvar e exportar designs em PDF, JPG, PNG 5"},{"location":"analise/correcoes/backlog_corrigido/#us03","title":"US#03","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo criar designs do zero para criar designs completamente personalizados.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O usu\u00e1rio deve ser capaz de iniciar um design em branco, sem restri\u00e7\u00f5es de template, com acesso completo \u00e0s ferramentas de cria\u00e7\u00e3o.

"},{"location":"analise/correcoes/backlog_corrigido/#us04","title":"US#04","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo importar imagens e fotos para incluir minhas pr\u00f3prias m\u00eddias nos designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir a importa\u00e7\u00e3o de arquivos de imagem nos formatos mais comuns (JPEG, PNG, etc.), e possibilitar sua inser\u00e7\u00e3o nos designs.

"},{"location":"analise/correcoes/backlog_corrigido/#us05","title":"US#05","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo salvar e exportar designs em PDF, JPG e PNG para usar os designs fora da plataforma.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O usu\u00e1rio deve poder salvar e exportar seus designs nos formatos PDF, JPG, e PNG, com qualidade configur\u00e1vel.

"},{"location":"analise/correcoes/backlog_corrigido/#sprint-3","title":"Sprint 3","text":"ID Nome da Hist\u00f3ria de Usu\u00e1rio Pontos US#06 Importar v\u00eddeos e outros arquivos 8 US#07 Exportar designs em SVG, MP4, GIF 8"},{"location":"analise/correcoes/backlog_corrigido/#us06","title":"US#06","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo importar v\u00eddeos e outros arquivos para incluir v\u00eddeos nos meus designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir a importa\u00e7\u00e3o de arquivos de v\u00eddeo (MP4, MOV, etc.) e possibilitar sua inser\u00e7\u00e3o nos designs.

"},{"location":"analise/correcoes/backlog_corrigido/#us07","title":"US#07","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo exportar designs em SVG, MP4 e GIF para usar designs em formatos espec\u00edficos.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O usu\u00e1rio deve poder exportar seus designs nos formatos SVG, MP4 e GIF, garantindo compatibilidade com diversas plataformas.

"},{"location":"analise/correcoes/backlog_corrigido/#release-2","title":"Release 2","text":""},{"location":"analise/correcoes/backlog_corrigido/#sprint-4","title":"Sprint 4","text":"ID Nome da Hist\u00f3ria de Usu\u00e1rio Pontos US#08 Integrar com redes sociais e agendar posts 13 US#09 Cortar, redimensionar e girar imagens 8 US#10 Ajustar brilho, contraste e satura\u00e7\u00e3o das imagens 8"},{"location":"analise/correcoes/backlog_corrigido/#us08","title":"US#08","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo integrar com redes sociais e agendar posts para publicar diretamente nas redes sociais.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve oferecer integra\u00e7\u00e3o com as principais redes sociais, permitindo o agendamento e a publica\u00e7\u00e3o direta de designs.

"},{"location":"analise/correcoes/backlog_corrigido/#us09","title":"US#09","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo cortar, redimensionar e girar imagens para ajustar imagens de acordo com a necessidade.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve incluir ferramentas b\u00e1sicas de edi\u00e7\u00e3o de imagem, como corte, redimensionamento e rota\u00e7\u00e3o, acess\u00edveis de forma intuitiva.

"},{"location":"analise/correcoes/backlog_corrigido/#us10","title":"US#10","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo ajustar brilho, contraste e satura\u00e7\u00e3o das imagens para melhorar a qualidade visual das minhas imagens.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir ajustes de brilho, contraste e satura\u00e7\u00e3o em imagens, com uma interface visual simples e eficaz.

"},{"location":"analise/correcoes/backlog_corrigido/#sprint-5","title":"Sprint 5","text":"ID Nome da Hist\u00f3ria de Usu\u00e1rio Pontos US#11 Editar textos com formata\u00e7\u00e3o b\u00e1sica, escolha de fontes e cores 8 US#12 Adicionar \u00edcones, ilustra\u00e7\u00f5es e formas geom\u00e9tricas 5 US#13 Aplicar filtros, efeitos e remover fundo das imagens 13"},{"location":"analise/correcoes/backlog_corrigido/#us11","title":"US#11","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo editar textos com formata\u00e7\u00e3o b\u00e1sica, escolha de fontes e cores para personalizar textos nos meus designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve oferecer op\u00e7\u00f5es de formata\u00e7\u00e3o de texto, incluindo a sele\u00e7\u00e3o de fontes, tamanhos, cores, e alinhamento.

"},{"location":"analise/correcoes/backlog_corrigido/#us12","title":"US#12","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo adicionar \u00edcones, ilustra\u00e7\u00f5es e formas geom\u00e9tricas para enriquecer o conte\u00fado dos designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve fornecer uma biblioteca de \u00edcones, ilustra\u00e7\u00f5es e formas geom\u00e9tricas, que possam ser adicionadas e editadas nos designs.

"},{"location":"analise/correcoes/backlog_corrigido/#us13","title":"US#13","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo aplicar filtros, efeitos e remover o fundo das imagens para criar efeitos visuais mais profissionais.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve incluir ferramentas para aplica\u00e7\u00e3o de filtros, efeitos visuais, e remo\u00e7\u00e3o autom\u00e1tica de fundos em imagens.

"},{"location":"analise/correcoes/backlog_corrigido/#release-3","title":"Release 3","text":""},{"location":"analise/correcoes/backlog_corrigido/#sprint-6","title":"Sprint 6","text":"ID Nome da Hist\u00f3ria de Usu\u00e1rio Pontos US#14 Criar efeitos de texto como sombra e contorno 8 US#15 Organizar camadas b\u00e1sicas, ordem e visibilidade 8"},{"location":"analise/correcoes/backlog_corrigido/#us14","title":"US#14","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo criar efeitos de texto como sombra e contorno para destacar textos nos designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir a aplica\u00e7\u00e3o de efeitos de sombra e contorno em textos, com op\u00e7\u00f5es de customiza\u00e7\u00e3o.

"},{"location":"analise/correcoes/backlog_corrigido/#us15","title":"US#15","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo organizar camadas b\u00e1sicas, ordem e visibilidade para gerenciar a composi\u00e7\u00e3o dos elementos.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve oferecer controle sobre as camadas dos elementos, permitindo alterar a ordem e visibilidade diretamente na interface.

"},{"location":"analise/correcoes/backlog_corrigido/#sprint-7","title":"Sprint 7","text":"ID Nome da Hist\u00f3ria de Usu\u00e1rio Pontos US#16 Ajustar opacidade e bloquear camadas 8 US#17 Aplicar m\u00e1scaras lineares e radiais 5 US#18 Compartilhar designs para visualiza\u00e7\u00e3o 5 US#19 Compartilhar designs para edi\u00e7\u00e3o com permiss\u00f5es 8"},{"location":"analise/correcoes/backlog_corrigido/#us16","title":"US#16","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo ajustar opacidade e bloquear camadas para controlar a visibilidade e seguran\u00e7a das camadas.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir ajustes de opacidade e a op\u00e7\u00e3o de bloquear camadas para evitar altera\u00e7\u00f5es indesejadas.

"},{"location":"analise/correcoes/backlog_corrigido/#us17","title":"US#17","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo aplicar m\u00e1scaras lineares e radiais para criar efeitos de m\u00e1scara nos designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve incluir ferramentas para a aplica\u00e7\u00e3o de m\u00e1scaras lineares e radiais em imagens e outros elementos.

"},{"location":"analise/correcoes/backlog_corrigido/#us18","title":"US#18","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo compartilhar designs para visualiza\u00e7\u00e3o para mostrar meus designs para outras pessoas.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir o compartilhamento de designs por meio de links ou outras plataformas, apenas para visualiza\u00e7\u00e3o.

"},{"location":"analise/correcoes/backlog_corrigido/#us19","title":"US#19","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo compartilhar designs para edi\u00e7\u00e3o com permiss\u00f5es b\u00e1sicas para colaborar na cria\u00e7\u00e3o de designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir o compartilhamento de designs com permiss\u00f5es b\u00e1sicas de edi\u00e7\u00e3o, incluindo restri\u00e7\u00f5es de acesso.

"},{"location":"analise/correcoes/backlog_corrigido/#release-4","title":"Release 4","text":""},{"location":"analise/correcoes/backlog_corrigido/#sprint-8","title":"Sprint 8","text":"ID Nome da Hist\u00f3ria de Usu\u00e1rio Pontos US#20 Editar designs em tempo real com outros usu\u00e1rios 13 US#21 Utilizar um sistema de chat durante a edi\u00e7\u00e3o 8 US#22 Deixar coment\u00e1rios em elementos espec\u00edficos 8 US#23 Usar grade e guias para alinhar elementos 5"},{"location":"analise/correcoes/backlog_corrigido/#us20","title":"US#20","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo editar designs em tempo real com outros usu\u00e1rios para trabalhar junto com outros na cria\u00e7\u00e3o de designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir a edi\u00e7\u00e3o colaborativa em tempo real, sincronizando altera\u00e7\u00f5es imediatamente entre os participantes.

"},{"location":"analise/correcoes/backlog_corrigido/#us21","title":"US#21","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo utilizar um sistema de chat durante a edi\u00e7\u00e3o para comunicar com outros enquanto edito.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve integrar um chat funcional dentro da interface de edi\u00e7\u00e3o, permitindo comunica\u00e7\u00e3o direta entre os usu\u00e1rios.

"},{"location":"analise/correcoes/backlog_corrigido/#us22","title":"US#22","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo deixar coment\u00e1rios em elementos espec\u00edficos para revisar e dar feedback sobre partes do design.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir a adi\u00e7\u00e3o de coment\u00e1rios diretamente em elementos espec\u00edficos do design, com notifica\u00e7\u00f5es para outros usu\u00e1rios.

"},{"location":"analise/correcoes/backlog_corrigido/#us23","title":"US#23","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo usar grade e guias para alinhar elementos para manter a simetria e organiza\u00e7\u00e3o do design.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve oferecer op\u00e7\u00f5es de grade e guias que podem ser ativadas ou desativadas conforme a necessidade.

"},{"location":"analise/correcoes/backlog_corrigido/#sprint-9","title":"Sprint 9","text":"ID Nome da Hist\u00f3ria de Usu\u00e1rio Pontos US#24 Ver uma pr\u00e9-visualiza\u00e7\u00e3o em tempo real do design 13 US#25 Criar e usar paletas de cores 8 US#26 Utilizar um guia de estilo 5 US#27 Acessar o hist\u00f3rico de vers\u00f5es do design 8"},{"location":"analise/correcoes/backlog_corrigido/#us24","title":"US#24","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo ver uma pr\u00e9-visualiza\u00e7\u00e3o em tempo real do design para avaliar o design enquanto edito.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve exibir uma pr\u00e9-visualiza\u00e7\u00e3o em tempo real, refletindo todas as mudan\u00e7as feitas no design.

"},{"location":"analise/correcoes/backlog_corrigido/#us25","title":"US#25","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo criar e usar paletas de cores para manter a consist\u00eancia de cores nos designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir a cria\u00e7\u00e3o e gerenciamento de paletas de cores, com a possibilidade de aplica\u00e7\u00e3o em qualquer design.

"},{"location":"analise/correcoes/backlog_corrigido/#us26","title":"US#26","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo utilizar um guia de estilo para assegurar que os designs sigam um padr\u00e3o visual.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve oferecer um guia de estilo que pode ser configurado e aplicado automaticamente em novos designs.

"},{"location":"analise/correcoes/backlog_corrigido/#us27","title":"US#27","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo acessar o hist\u00f3rico de vers\u00f5es do design para reverter a vers\u00f5es anteriores caso necess\u00e1rio.

-Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve manter um hist\u00f3rico de vers\u00f5es de cada design, permitindo a restaura\u00e7\u00e3o de vers\u00f5es anteriores com facilidade.

"},{"location":"analise/correcoes/backlog_corrigido/#sprint-10","title":"Sprint 10","text":"ID Nome da Hist\u00f3ria de Usu\u00e1rio Pontos US#28 Utilizar atalhos de teclado 5 US#29 Navegar por uma interface f\u00e1cil de usar 5 US#30 Usar a fun\u00e7\u00e3o de arrastar e soltar 5 US#31 Criar designs que sejam responsivos 8 US#32 Integrar com redes sociais e armazenamento em nuvem 8"},{"location":"analise/correcoes/backlog_corrigido/#us28","title":"US#28","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo utilizar atalhos de teclado para aumentar a efici\u00eancia durante a cria\u00e7\u00e3o de designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve incluir e permitir a personaliza\u00e7\u00e3o de atalhos de teclado para as principais fun\u00e7\u00f5es de design.

"},{"location":"analise/correcoes/backlog_corrigido/#us29","title":"US#29","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo navegar por uma interface f\u00e1cil de usar.

-Crit\u00e9rios de Aceita\u00e7\u00e3o: A interface deve ser intuitiva, com navega\u00e7\u00e3o clara e acess\u00edvel, permitindo uma experi\u00eancia de uso fluida.

"},{"location":"analise/correcoes/backlog_corrigido/#us30","title":"US#30","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo usar a fun\u00e7\u00e3o de arrastar e soltar para manipular elementos de forma f\u00e1cil e r\u00e1pida.

-Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir que o usu\u00e1rio arraste e solte elementos dentro da \u00e1rea de design com precis\u00e3o e sem dificuldades.

"},{"location":"analise/correcoes/backlog_corrigido/#us31","title":"US#31","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo criar designs que sejam responsivos para assegurar que o design seja exibido corretamente em diferentes dispositivos.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve fornecer ferramentas e op\u00e7\u00f5es para criar designs que se ajustem automaticamente a diferentes tamanhos e resolu\u00e7\u00f5es de tela.

"},{"location":"analise/correcoes/backlog_corrigido/#us32","title":"US#32","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo integrar com redes sociais e armazenamento em nuvem para facilitar o compartilhamento e armazenamento dos designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir integra\u00e7\u00e3o com plataformas de redes sociais e servi\u00e7os de armazenamento em nuvem, possibilitando o compartilhamento e armazenamento direto dos designs.

"},{"location":"analise/correcoes/backlog_corrigido/#sprint-11","title":"Sprint 11","text":"ID Nome da Hist\u00f3ria de Usu\u00e1rio Pontos US#33 Usar a ferramenta com performance r\u00e1pida e eficiente 13 US#34 Confiar que a ferramenta funcionar\u00e1 de forma est\u00e1vel 13 US#35 Ter seguran\u00e7a dos meus dados armazenados 13 US#36 Utilizar a ferramenta com recursos de acessibilidade 8 US#37 Ter a plataforma escal\u00e1vel conforme o uso aumenta 5 US#38 Utilizar a plataforma em diferentes idiomas 5"},{"location":"analise/correcoes/backlog_corrigido/#us33","title":"US#33","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo usar a ferramenta com performance r\u00e1pida e eficiente para ter uma experi\u00eancia fluida durante a cria\u00e7\u00e3o dos designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve garantir um desempenho \u00e1gil e eficiente, com tempos de resposta r\u00e1pidos e m\u00ednima lat\u00eancia durante a cria\u00e7\u00e3o e edi\u00e7\u00e3o de designs.

"},{"location":"analise/correcoes/backlog_corrigido/#us34","title":"US#34","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo confiar que a ferramenta funcionar\u00e1 de forma est\u00e1vel para evitar interrup\u00e7\u00f5es e perda de trabalho.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve ser robusto e est\u00e1vel, minimizando falhas e interrup\u00e7\u00f5es durante o uso, com mecanismos de recupera\u00e7\u00e3o de dados em caso de problemas.

"},{"location":"analise/correcoes/backlog_corrigido/#us35","title":"US#35","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo ter seguran\u00e7a dos meus dados armazenados para garantir que meus dados pessoais estejam protegidos.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve implementar medidas de seguran\u00e7a robustas para proteger dados pessoais e informa\u00e7\u00f5es armazenadas, incluindo criptografia e controle de acesso.

"},{"location":"analise/correcoes/backlog_corrigido/#us36","title":"US#36","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo utilizar a ferramenta com recursos de acessibilidade para garantir que todos os usu\u00e1rios possam utilizar a plataforma.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve incluir recursos de acessibilidade, como suporte a leitores de tela, navega\u00e7\u00e3o por teclado e op\u00e7\u00f5es de contraste, para atender \u00e0s necessidades de todos os usu\u00e1rios.

"},{"location":"analise/correcoes/backlog_corrigido/#us37","title":"US#37","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo ter a plataforma escal\u00e1vel conforme o uso aumenta para assegurar que o sistema suporte um grande n\u00famero de usu\u00e1rios.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve ser capaz de escalar adequadamente para lidar com um aumento no n\u00famero de usu\u00e1rios e dados, sem perda de desempenho.

"},{"location":"analise/correcoes/backlog_corrigido/#us38","title":"US#38","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo utilizar a plataforma em diferentes idiomas para acessar a plataforma em minha l\u00edngua nativa.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve oferecer suporte a m\u00faltiplos idiomas, permitindo que os usu\u00e1rios escolham seu idioma preferido para a interface e os recursos da plataforma.

"},{"location":"analise/correcoes/backlog_corrigido/#features","title":"Features","text":""},{"location":"analise/correcoes/backlog_corrigido/#feature-01","title":"Feature 01","text":"

1 - Cria\u00e7\u00e3o e Edi\u00e7\u00e3o de Designs

  • Ferramentas para cria\u00e7\u00e3o do zero e edi\u00e7\u00e3o de templates
  • Importa\u00e7\u00e3o de m\u00eddias (imagens, v\u00eddeos)
  • Edi\u00e7\u00e3o b\u00e1sica e avan\u00e7ada de imagens
  • Adi\u00e7\u00e3o e edi\u00e7\u00e3o de texto, elementos gr\u00e1ficos e efeitos
"},{"location":"analise/correcoes/backlog_corrigido/#feature-02","title":"Feature 02","text":"

2 - Formatos e Exporta\u00e7\u00e3o de Designs

  • Suporte a m\u00faltiplos formatos de design (banners, apresenta\u00e7\u00f5es, posts)
  • Exporta\u00e7\u00e3o em formatos variados (PDF, JPG, PNG, SVG, MP4, GIF)
  • Design responsivo para diferentes dispositivos
"},{"location":"analise/correcoes/backlog_corrigido/#feature-03","title":"Feature 03","text":"

3 - Personaliza\u00e7\u00e3o e Efeitos

  • Templates personaliz\u00e1veis
  • Aplica\u00e7\u00e3o de filtros e efeitos (imagens, texto, camadas)
  • Paletas de cores e guia de estilo
  • M\u00e1scaras e camadas avan\u00e7adas
"},{"location":"analise/correcoes/backlog_corrigido/#feature-04","title":"Feature 04","text":"

4 - Integra\u00e7\u00e3o e Compartilhamento

  • Integra\u00e7\u00e3o com redes sociais e ferramentas de armazenamento em nuvem
  • Agendamento de posts diretamente nas redes sociais
  • Compartilhamento de designs para visualiza\u00e7\u00e3o e edi\u00e7\u00e3o colaborativa
  • Edi\u00e7\u00e3o em tempo real com suporte a chat e coment\u00e1rios
"},{"location":"analise/correcoes/backlog_corrigido/#feature-05","title":"Feature 05","text":"

5 - Usabilidade e Interface

  • Interface intuitiva e responsiva
  • Suporte a atalhos de teclado
  • Fun\u00e7\u00e3o de arrastar e soltar para manipula\u00e7\u00e3o f\u00e1cil
  • Acessibilidade e internacionaliza\u00e7\u00e3o da plataforma
"},{"location":"analise/correcoes/backlog_corrigido/#feature-06","title":"Feature 06","text":"

6 - Performance e Confiabilidade

  • Alta performance e fluidez na cria\u00e7\u00e3o e edi\u00e7\u00e3o de designs
  • Confiabilidade e seguran\u00e7a de dados
  • Escalabilidade para suportar um grande n\u00famero de usu\u00e1rios
  • Hist\u00f3rico de vers\u00f5es para reverter altera\u00e7\u00f5es
"},{"location":"analise/correcoes/backlog_corrigido/#feature-07","title":"Feature 07","text":"

7 - Visualiza\u00e7\u00e3o e Feedback

  • Pr\u00e9-visualiza\u00e7\u00e3o em tempo real dos designs
  • Uso de grades e guias para alinhamento preciso
"},{"location":"analise/correcoes/cenarios_corrigido/","title":"Cen\u00e1rios","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 12/08/2024 Adi\u00e7\u00e3o dos primeiros cen\u00e1rios encontrados durante a an\u00e1lise de protocolo Luiza Maluf 0.0 16/07/2024 Adi\u00e7\u00e3o de mais cen\u00e1rios ap\u00f3s avaliar os casos de uso. Luiza Maluf 1.0 05/09/2024 Corre\u00e7\u00e3o dos cen\u00e1rios ap\u00f3s verifica\u00e7\u00e3o Henrique Quenino 2.0"},{"location":"analise/correcoes/cenarios_corrigido/#origem","title":"Origem","text":"

O desenvolvimento destes cen\u00e1rios foi dado a partir da an\u00e1lise de protocolo, feita na parte de elicita\u00e7\u00e3o.

N\u00e3o satisfeitos com a quantidade de cen\u00e1rios e com uma vis\u00e3o diferente vinda da Especifica\u00e7\u00e3o de Casos de Uso, foi poss\u00edvel identificar novos cen\u00e1rios.

"},{"location":"analise/correcoes/cenarios_corrigido/#metodologia","title":"Metodologia","text":"

Foi feita a navega\u00e7\u00e3o dentro da plataforma anotando os principais processos que o usu\u00e1ro poderia efetuar.

"},{"location":"analise/correcoes/cenarios_corrigido/#1-criacao-de-um-design-simples","title":"1. Cria\u00e7\u00e3o de um Design Simples","text":""},{"location":"analise/correcoes/cenarios_corrigido/#objetivo","title":"OBJETIVO","text":"

Um usu\u00e1rio novato acessa o Canva e deseja criar um design de cart\u00e3o de visita.

"},{"location":"analise/correcoes/cenarios_corrigido/#contexto","title":"CONTEXTO","text":"

O usu\u00e1rio est\u00e1 acessando o Canva pela primeira vez e tem pouca experi\u00eancia em design gr\u00e1fico.

"},{"location":"analise/correcoes/cenarios_corrigido/#atores","title":"ATORES","text":"
  • Usu\u00e1rio
"},{"location":"analise/correcoes/cenarios_corrigido/#recursos","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#pre-condicao","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve estar logado na plataforma Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#episodios","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio faz login na plataforma Canva.
  2. Navega pelos templates dispon\u00edveis e escolhe um para cart\u00e3o de visita.
  3. Personaliza o template, inserindo seu nome, cargo e informa\u00e7\u00f5es de contato.
  4. Altera as cores e fontes de acordo com sua prefer\u00eancia.
  5. Visualiza o design final e decide salv\u00e1-lo.
  6. O usu\u00e1rio baixa o design para seu Computador.
"},{"location":"analise/correcoes/cenarios_corrigido/#restricoes","title":"RESTRI\u00c7\u00d5ES","text":"

Usu\u00e1rio deve ter uma conta ativa na plataforma Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#pos-condicao","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

Usu\u00e1rio criou e salvou um cart\u00e3o de visita simples, pronto para uso.

"},{"location":"analise/correcoes/cenarios_corrigido/#resultado-esperado","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio consegue criar e salvar um cart\u00e3o de visita simples, ficando satisfeito com a facilidade de uso da ferramenta.

"},{"location":"analise/correcoes/cenarios_corrigido/#2-colaboracao-em-tempo-real","title":"2. Colabora\u00e7\u00e3o em Tempo Real","text":""},{"location":"analise/correcoes/cenarios_corrigido/#objetivo_1","title":"OBJETIVO","text":"

Dois usu\u00e1rios colaboram simultaneamente em um design de apresenta\u00e7\u00e3o para uma reuni\u00e3o de neg\u00f3cios.

"},{"location":"analise/correcoes/cenarios_corrigido/#contexto_1","title":"CONTEXTO","text":"

Os usu\u00e1rios est\u00e3o em locais diferentes, mas precisam trabalhar juntos no mesmo projeto em tempo real na plataforma Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#atores_1","title":"ATORES","text":"
  • Usu\u00e1rios
"},{"location":"analise/correcoes/cenarios_corrigido/#recursos_1","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva, chat integrado.

"},{"location":"analise/correcoes/cenarios_corrigido/#pre-condicao_1","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

Ambos os usu\u00e1rios devem estar logados na plataforma Canva e ter uma conex\u00e3o de internet est\u00e1vel.

"},{"location":"analise/correcoes/cenarios_corrigido/#episodios_1","title":"EPIS\u00d3DIOS","text":"
  1. Usu\u00e1rio 1 cria uma apresenta\u00e7\u00e3o no Canva.
  2. Usu\u00e1rio 1 compartilha o link de edi\u00e7\u00e3o do design com o Usu\u00e1rio.
  3. Ambos os usu\u00e1rios abrem o design simultaneamente e come\u00e7am a edit\u00e1-lo.
  4. Usu\u00e1rio 1 trabalha nos primeiros slides, enquanto Usu\u00e1rio edita os \u00faltimos slides.
  5. Os usu\u00e1rios discutem as altera\u00e7\u00f5es e ajustes necess\u00e1rios usando o chat integrado da plataforma.
  6. Ambos revisam o design final juntos, fazem os ajustes necess\u00e1rios e salvam o projeto.
"},{"location":"analise/correcoes/cenarios_corrigido/#restricoes_1","title":"RESTRI\u00c7\u00d5ES","text":"

Ambos os usu\u00e1rios precisam ter permiss\u00e3o de edi\u00e7\u00e3o para colaborar no design.

"},{"location":"analise/correcoes/cenarios_corrigido/#pos-condicao_1","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

O design da apresenta\u00e7\u00e3o foi conclu\u00eddo e salvo, estando pronto para a reuni\u00e3o.

"},{"location":"analise/correcoes/cenarios_corrigido/#resultado-esperado_1","title":"RESULTADO ESPERADO","text":"

Os dois usu\u00e1rios conseguem colaborar em tempo real, completando o design de forma eficiente e satisfat\u00f3ria.

"},{"location":"analise/correcoes/cenarios_corrigido/#3-exploracao-de-recursos-premium","title":"3. Explora\u00e7\u00e3o de Recursos Premium","text":""},{"location":"analise/correcoes/cenarios_corrigido/#objetivo_2","title":"OBJETIVO","text":"

Um usu\u00e1rio gratuito explora os benef\u00edcios de um plano de assinatura para decidir se vale a pena assin\u00e1-lo.

"},{"location":"analise/correcoes/cenarios_corrigido/#contexto_2","title":"CONTEXTO","text":"

O usu\u00e1rio sente que as op\u00e7\u00f5es gratuitas s\u00e3o limitadas e deseja saber se vale a pena assinar um plano.

"},{"location":"analise/correcoes/cenarios_corrigido/#atores_2","title":"ATORES","text":"
  • Usu\u00e1rio
"},{"location":"analise/correcoes/cenarios_corrigido/#recursos_2","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#pre-condicao_2","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve estar logado na plataforma Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#episodios_2","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio navega pelos templates gratuitos, mas n\u00e3o encontra algo que atenda \u00e0s suas necessidades.
  2. Ele v\u00ea a indica\u00e7\u00e3o de templates Premium e resolve clicar para ver as op\u00e7\u00f5es.
  3. Um pop-up aparece explicando os benef\u00edcios do plano de assinatura, como acesso a templates exclusivos e recursos adicionais.
  4. O usu\u00e1rio decide experimentar o plano por 30 dias gratuitamente.
  5. Ap\u00f3s a ativa\u00e7\u00e3o, ele come\u00e7a a usar os templates Premium e nota a diferen\u00e7a na qualidade e variedade.
"},{"location":"analise/correcoes/cenarios_corrigido/#restricoes_2","title":"RESTRI\u00c7\u00d5ES","text":"

O usu\u00e1rio deve ter uma conta ativa na plataforma Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#pos-condicao_2","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio explora os recursos Premium e decide se continuar\u00e1 com a assinatura ap\u00f3s o per\u00edodo de teste.

"},{"location":"analise/correcoes/cenarios_corrigido/#resultado-esperado_2","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio percebe o valor dos recursos Premium e decide continuar com a assinatura ap\u00f3s o per\u00edodo de teste.

"},{"location":"analise/correcoes/cenarios_corrigido/#4-criacao-de-materiais-para-uma-campanha-publicitaria","title":"4. Cria\u00e7\u00e3o de Materiais para uma Campanha Publicit\u00e1ria","text":""},{"location":"analise/correcoes/cenarios_corrigido/#objetivo_3","title":"OBJETIVO","text":"

Uma equipe de marketing utiliza o Canva para criar materiais gr\u00e1ficos para uma campanha publicit\u00e1ria.

"},{"location":"analise/correcoes/cenarios_corrigido/#contexto_3","title":"CONTEXTO","text":"

A equipe precisa garantir que todos os materiais tenham uma identidade visual consistente e atraente.

"},{"location":"analise/correcoes/cenarios_corrigido/#atores_3","title":"ATORES","text":"
  • Designer
  • Gerente de Marketing
"},{"location":"analise/correcoes/cenarios_corrigido/#recursos_3","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#pre-condicao_3","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

A equipe de marketing deve estar alinhada quanto \u00e0 identidade visual da campanha.

"},{"location":"analise/correcoes/cenarios_corrigido/#episodios_3","title":"EPIS\u00d3DIOS","text":"
  1. O Designer seleciona um conjunto de templates que combinam entre si para garantir consist\u00eancia visual.
  2. Adapta cada Templates para diferentes formatos (postagem em redes sociais, banners para site, e-mail marketing).
  3. Utiliza elementos gr\u00e1ficos e o Banco de Imagens para enriquecer os materiais.
  4. O gerente de marketing revisa e sugere pequenas altera\u00e7\u00f5es.
  5. Ap\u00f3s aprova\u00e7\u00e3o, o [Designer](../../modelagem/lexico.md#Designer) exporta os materiais nos formatos necess\u00e1rios.
  6. Os materiais s\u00e3o compartilhados com a equipe e publicados conforme o cronograma da campanha.
"},{"location":"analise/correcoes/cenarios_corrigido/#restricoes_3","title":"RESTRI\u00c7\u00d5ES","text":"

A equipe deve respeitar o prazo da campanha e as diretrizes de identidade visual estabelecidas.

"},{"location":"analise/correcoes/cenarios_corrigido/#pos-condicao_3","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

Os materiais gr\u00e1ficos est\u00e3o prontos e alinhados com a identidade visual da campanha.

"},{"location":"analise/correcoes/cenarios_corrigido/#resultado-esperado_3","title":"RESULTADO ESPERADO","text":"

A equipe de marketing consegue criar uma campanha coesa e visualmente atraente, melhorando a identidade da marca.

"},{"location":"analise/correcoes/cenarios_corrigido/#5-adaptacao-de-um-design-para-diferentes-midias","title":"5. Adapta\u00e7\u00e3o de um Design para Diferentes M\u00eddias","text":""},{"location":"analise/correcoes/cenarios_corrigido/#objetivo_4","title":"OBJETIVO","text":"

Um Designer adapta um \u00fanico design para diferentes m\u00eddias, como cartazes impressos, posts em redes sociais e banners para sites.

"},{"location":"analise/correcoes/cenarios_corrigido/#contexto_4","title":"CONTEXTO","text":"

O Designer precisa garantir que a mensagem e a identidade visual sejam mantidas em todos os formatos.

"},{"location":"analise/correcoes/cenarios_corrigido/#atores_4","title":"ATORES","text":"
  • Designer
"},{"location":"analise/correcoes/cenarios_corrigido/#recursos_4","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#pre-condicao_4","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O Designer deve ter acesso aos templates originais e aos requisitos espec\u00edficos de cada m\u00eddia.

"},{"location":"analise/correcoes/cenarios_corrigido/#episodios_4","title":"EPIS\u00d3DIOS","text":"
  1. O Designer seleciona o design original no Canva.
  2. Duplica o design e ajusta as dimens\u00f5es para cada m\u00eddia (A4 para cartazes, 1080x1080 para posts, etc.).
  3. Reposiciona os elementos gr\u00e1ficos conforme necess\u00e1rio para manter o equil\u00edbrio visual.
  4. Ajusta o tamanho das fontes e o espa\u00e7amento para garantir legibilidade em cada formato.
  5. Revisa cada adapta\u00e7\u00e3o e exporta os arquivos nos formatos apropriados.
"},{"location":"analise/correcoes/cenarios_corrigido/#restricoes_4","title":"RESTRI\u00c7\u00d5ES","text":"

O Designer deve garantir que a mensagem principal permane\u00e7a clara em todas as adapta\u00e7\u00f5es.

"},{"location":"analise/correcoes/cenarios_corrigido/#pos-condicao_4","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

Os designs est\u00e3o prontos para uso em diferentes m\u00eddias.

"},{"location":"analise/correcoes/cenarios_corrigido/#resultado-esperado_4","title":"RESULTADO ESPERADO","text":"

O Designer adapta com sucesso o design original para diferentes m\u00eddias, mantendo a consist\u00eancia da mensagem e da identidade visual.

"},{"location":"analise/correcoes/cenarios_corrigido/#6-exportacao-de-um-projeto-em-alta-resolucao","title":"6. Exporta\u00e7\u00e3o de um Projeto em Alta Resolu\u00e7\u00e3o","text":""},{"location":"analise/correcoes/cenarios_corrigido/#objetivo_5","title":"OBJETIVO","text":"

Um Designer exporta um projeto gr\u00e1fico em alta resolu\u00e7\u00e3o para impress\u00e3o profissional.

"},{"location":"analise/correcoes/cenarios_corrigido/#contexto_5","title":"CONTEXTO","text":"

O Designer precisa garantir que o arquivo final tenha qualidade suficiente para impress\u00e3o em grande escala.

"},{"location":"analise/correcoes/cenarios_corrigido/#atores_5","title":"ATORES","text":"
  • Usu\u00e1rio
"},{"location":"analise/correcoes/cenarios_corrigido/#recursos_5","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#pre-condicao_5","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O projeto deve estar finalizado e revisado.

"},{"location":"analise/correcoes/cenarios_corrigido/#episodios_5","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio abre o projeto no Canva.
  2. Seleciona a op\u00e7\u00e3o de exporta\u00e7\u00e3o e escolhe o formato adequado (por exemplo, PDF para impress\u00e3o).
  3. Ajusta as configura\u00e7\u00f5es de resolu\u00e7\u00e3o para a m\u00e1xima qualidade dispon\u00edvel.
  4. Revisa as op\u00e7\u00f5es de margens, caso necess\u00e1rio.
  5. Exporta o arquivo e faz o download.
"},{"location":"analise/correcoes/cenarios_corrigido/#restricoes_5","title":"RESTRI\u00c7\u00d5ES","text":"

O usu\u00e1rio deve garantir que as configura\u00e7\u00f5es de exporta\u00e7\u00e3o atendam aos requisitos da impress\u00e3o.

"},{"location":"analise/correcoes/cenarios_corrigido/#pos-condicao_5","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

O projeto est\u00e1 pronto para ser enviado para a gr\u00e1fica.

"},{"location":"analise/correcoes/cenarios_corrigido/#resultado-esperado_5","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio consegue exportar o projeto em alta resolu\u00e7\u00e3o, garantindo uma impress\u00e3o de alta qualidade.

"},{"location":"analise/correcoes/cenarios_corrigido/#7-compartilhamento-de-post-para-redes-sociais","title":"7. Compartilhamento de Post para Redes Sociais","text":""},{"location":"analise/correcoes/cenarios_corrigido/#objetivo_6","title":"OBJETIVO","text":"

Um usu\u00e1rio cria e compartilha um post visual para promover um novo produto em diversas redes sociais.

"},{"location":"analise/correcoes/cenarios_corrigido/#contexto_6","title":"CONTEXTO","text":"

O usu\u00e1rio deseja utilizar o Canva para criar um post atraente que ser\u00e1 compartilhado em m\u00faltiplas plataformas sociais para maximizar o alcance do novo produto.

"},{"location":"analise/correcoes/cenarios_corrigido/#atores_6","title":"ATORES","text":"
  • Usu\u00e1rio
"},{"location":"analise/correcoes/cenarios_corrigido/#recursos_6","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva, contas nas redes sociais (Instagram, Facebook, Twitter, LinkedIn).

"},{"location":"analise/correcoes/cenarios_corrigido/#pre-condicao_6","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve ter as imagens do produto, textos promocionais e informa\u00e7\u00f5es sobre as redes sociais onde o post ser\u00e1 compartilhado.

"},{"location":"analise/correcoes/cenarios_corrigido/#episodios_6","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio acessa o Canva e escolhe um template de post adequado para redes sociais.
  2. Personaliza o design com imagens do produto, texto promocional e hashtags relevantes.
  3. Ajusta o layout e o design para atender \u00e0s diretrizes espec\u00edficas de cada plataforma social.
  4. Rev\u00ea o post para garantir que todos os detalhes estejam corretos e que o design esteja otimizado para cada rede social.
  5. Exporta o post no formato adequado para cada plataforma (Instagram, Facebook, Twitter, LinkedIn).
  6. Compartilha o post diretamente nas contas de redes sociais usando as ferramentas de integra\u00e7\u00e3o do Canva ou faz o upload manualmente em cada plataforma.
"},{"location":"analise/correcoes/cenarios_corrigido/#restricoes_6","title":"RESTRI\u00c7\u00d5ES","text":"

Os posts devem seguir as diretrizes de tamanho e formato recomendadas por cada rede social para garantir uma boa visualiza\u00e7\u00e3o e desempenho.

"},{"location":"analise/correcoes/cenarios_corrigido/#pos-condicao_6","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

Os posts est\u00e3o publicados e vis\u00edveis nas redes sociais selecionadas.

"},{"location":"analise/correcoes/cenarios_corrigido/#resultado-esperado_6","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio cria e compartilha posts atraentes que promovem eficazmente o novo produto, engajando os seguidores em diversas redes sociais.

"},{"location":"analise/correcoes/cenarios_corrigido/#8-login-e-logout-na-plataforma-canva","title":"8. Login e Logout na Plataforma Canva","text":""},{"location":"analise/correcoes/cenarios_corrigido/#objetivo_7","title":"OBJETIVO","text":"

Um usu\u00e1rio acessa sua conta na plataforma Canva para criar e gerenciar design, e depois realiza o logout para garantir a seguran\u00e7a da conta.

"},{"location":"analise/correcoes/cenarios_corrigido/#contexto_7","title":"CONTEXTO","text":"

O usu\u00e1rio precisa acessar sua conta na plataforma Canva para trabalhar em projetos e, ap\u00f3s concluir seu trabalho, deseja fazer logout para proteger suas informa\u00e7\u00f5es.

"},{"location":"analise/correcoes/cenarios_corrigido/#atores_7","title":"ATORES","text":"
  • Usu\u00e1rio
"},{"location":"analise/correcoes/cenarios_corrigido/#recursos_7","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#pre-condicao_7","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve ter uma conta ativa na plataforma Canva e conhecer suas credenciais de login.

"},{"location":"analise/correcoes/cenarios_corrigido/#episodios_7","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio acessa a p\u00e1gina de login do Canva.
  2. Insere seu nome de usu\u00e1rio e senha.
  3. Clica no bot\u00e3o de login para acessar sua conta.
  4. O usu\u00e1rio usa a plataforma Canva para criar ou gerenciar design.
  5. Ap\u00f3s concluir suas atividades, o usu\u00e1rio localiza a op\u00e7\u00e3o de logout no menu de perfil.
  6. Clica na op\u00e7\u00e3o de logout para sair da conta.
  7. O usu\u00e1rio \u00e9 redirecionado para a p\u00e1gina de login ou para a p\u00e1gina inicial do Canva.
"},{"location":"analise/correcoes/cenarios_corrigido/#restricoes_7","title":"RESTRI\u00c7\u00d5ES","text":"

O usu\u00e1rio deve lembrar suas credenciais para realizar o login. Ap\u00f3s o logout, \u00e9 necess\u00e1rio fazer login novamente para acessar a conta.

"},{"location":"analise/correcoes/cenarios_corrigido/#pos-condicao_7","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio foi desconectado da sua conta na plataforma Canva, garantindo que suas informa\u00e7\u00f5es estejam seguras.

"},{"location":"analise/correcoes/cenarios_corrigido/#resultado-esperado_7","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio consegue fazer login e logout com sucesso, garantindo o acesso e a seguran\u00e7a de sua conta na plataforma Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#9-cenario-edicao-de-um-design-existente","title":"9. Cen\u00e1rio: Edi\u00e7\u00e3o de um Design Existente","text":""},{"location":"analise/correcoes/cenarios_corrigido/#objetivo_8","title":"OBJETIVO","text":"

Um usu\u00e1rio deseja editar um design j\u00e1 existente na plataforma Canva para ajusta-lo \u00e0s suas novas necessidades.

"},{"location":"analise/correcoes/cenarios_corrigido/#contexto_8","title":"CONTEXTO","text":"

O usu\u00e1rio j\u00e1 criou ou tem acesso a um design na plataforma Canva e agora precisa modific\u00e1-lo para atualiz\u00e1-lo ou adapt\u00e1-lo a um novo prop\u00f3sito.

"},{"location":"analise/correcoes/cenarios_corrigido/#atores_8","title":"ATORES","text":"
  • Usu\u00e1rio
"},{"location":"analise/correcoes/cenarios_corrigido/#recursos_8","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#pre-condicao_8","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve estar logado na plataforma Canva e ter acesso ao design que deseja editar.

"},{"location":"analise/correcoes/cenarios_corrigido/#episodios_8","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio faz login no Canva.
  2. Navega at\u00e9 a se\u00e7\u00e3o \"Meus Designs\" ou utiliza a barra de pesquisa para localizar o design existente.
  3. Clica no design desejado para abri-lo na interface de edi\u00e7\u00e3o.
  4. Realiza as modifica\u00e7\u00f5es necess\u00e1rias, como altera\u00e7\u00e3o de texto, imagens, cores e layout.
  5. Visualiza as mudan\u00e7as em tempo real para garantir que o design atende \u00e0s novas necessidades.
  6. Salva as altera\u00e7\u00f5es e, se necess\u00e1rio, exporta o design modificado nos formatos desejados.
"},{"location":"analise/correcoes/cenarios_corrigido/#restricoes_8","title":"RESTRI\u00c7\u00d5ES","text":"

O usu\u00e1rio deve garantir que todas as altera\u00e7\u00f5es estejam de acordo com os requisitos do projeto ou com a nova finalidade do design.

"},{"location":"analise/correcoes/cenarios_corrigido/#pos-condicao_8","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

O design foi editado com sucesso e est\u00e1 pronto para ser usado conforme o novo prop\u00f3sito.

"},{"location":"analise/correcoes/cenarios_corrigido/#resultado-esperado_8","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio consegue editar o design existente de maneira eficaz, adaptando-o \u00e0s suas novas necessidades e garantindo que o resultado final esteja de acordo com as expectativas.

"},{"location":"analise/correcoes/cenarios_corrigido/#10-cenario-download-de-um-design","title":"10. Cen\u00e1rio: Download de um Design","text":""},{"location":"analise/correcoes/cenarios_corrigido/#objetivo_9","title":"OBJETIVO","text":"

Um usu\u00e1rio deseja baixar um design da plataforma Canva para utiliz\u00e1-lo fora da plataforma, como para impress\u00e3o ou compartilhamento.

"},{"location":"analise/correcoes/cenarios_corrigido/#contexto_9","title":"CONTEXTO","text":"

O usu\u00e1rio terminou de criar ou editar um design na plataforma Canva e agora precisa baix\u00e1-lo para uso offline ou compartilhamento em outras plataformas.

"},{"location":"analise/correcoes/cenarios_corrigido/#atores_9","title":"ATORES","text":"
  • Usu\u00e1rio
"},{"location":"analise/correcoes/cenarios_corrigido/#recursos_9","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#pre-condicao_9","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve estar logado na plataforma Canva e ter um design finalizado e pronto para o download.

"},{"location":"analise/correcoes/cenarios_corrigido/#episodios_9","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio faz login no Canva.
  2. Navega at\u00e9 o design finalizado que deseja baixar, acessando-o atrav\u00e9s da se\u00e7\u00e3o \"Meus Designs\" ou utilizando a barra de pesquisa.
  3. Clica no design desejado e clica no bot\u00e3o de \"Download\" no canto superior direito da interface.
  4. Escolhe o formato de arquivo desejado (por exemplo, PNG, JPEG, PDF) e ajusta as configura\u00e7\u00f5es de qualidade, resolu\u00e7\u00e3o ou margens, se necess\u00e1rio.
  5. Confirma as op\u00e7\u00f5es e inicia o download do arquivo.
  6. O design \u00e9 baixado para o dispositivo do usu\u00e1rio, ficando dispon\u00edvel para uso offline.
"},{"location":"analise/correcoes/cenarios_corrigido/#restricoes_9","title":"RESTRI\u00c7\u00d5ES","text":"

O usu\u00e1rio deve garantir que escolheu o formato de arquivo correto e configurou as op\u00e7\u00f5es de download conforme a finalidade do design.

"},{"location":"analise/correcoes/cenarios_corrigido/#pos-condicao_9","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

O design foi baixado com sucesso e est\u00e1 pronto para ser usado conforme o necess\u00e1rio.

"},{"location":"analise/correcoes/cenarios_corrigido/#resultado-esperado_9","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio consegue baixar o design no formato desejado, com a qualidade adequada, pronto para o uso offline ou compartilhado.

"},{"location":"analise/correcoes/cenarios_corrigido/#11-acesso-a-um-template-pronto","title":"11. Acesso a um Template Pronto","text":""},{"location":"analise/correcoes/cenarios_corrigido/#objetivo_10","title":"OBJETIVO","text":"

O usu\u00e1rio deseja acessar um template pronto na plataforma Canva para iniciar a cria\u00e7\u00e3o de um design personalizado.

"},{"location":"analise/correcoes/cenarios_corrigido/#contexto_10","title":"CONTEXTO","text":"

O usu\u00e1rio est\u00e1 na plataforma Canva e deseja utilizar um template pr\u00e9-definido como base para criar um novo design. ATORES####

  • Usu\u00e1rio
"},{"location":"analise/correcoes/cenarios_corrigido/#recursos_10","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#pre-condicao_10","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve estar logado na plataforma Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#episodios_10","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio faz login no Canva.
  2. Na p\u00e1gina inicial, o usu\u00e1rio navega at\u00e9 a se\u00e7\u00e3o de \"Templates\" ou utiliza a barra de pesquisa para buscar um template espec\u00edfico.
  3. O usu\u00e1rio explora as categorias dispon\u00edveis, como \"Cart\u00f5es de Visita,\" \"Apresenta\u00e7\u00f5es,\" \"Postagens para Redes Sociais,\" entre outras.
  4. Seleciona o template que melhor atende \u00e0s suas necessidades.
  5. Abre o template escolhido, visualizando uma pr\u00e9via do design.
  6. Clica no bot\u00e3o \"Usar este template\" para iniciar a personaliza\u00e7\u00e3o do design.
"},{"location":"analise/correcoes/cenarios_corrigido/#restricoes_10","title":"RESTRI\u00c7\u00d5ES","text":"

O usu\u00e1rio deve garantir que escolheu um template adequado ao seu prop\u00f3sito antes de iniciar a personaliza\u00e7\u00e3o.

"},{"location":"analise/correcoes/cenarios_corrigido/#pos-condicao_10","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio tem o template pronto aberto na interface de edi\u00e7\u00e3o do Canva, pronto para ser personalizado conforme desejado.

"},{"location":"analise/correcoes/cenarios_corrigido/#resultado-esperado_10","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio consegue acessar e abrir um template pronto na plataforma Canva, facilitando o in\u00edcio da cria\u00e7\u00e3o de um design personalizado.

"},{"location":"analise/correcoes/cenarios_corrigido/#12-gerenciamento-de-pastas-e-projetos-no-canva","title":"12. Gerenciamento de Pastas e Projetos no Canva","text":""},{"location":"analise/correcoes/cenarios_corrigido/#objetivo_11","title":"OBJETIVO","text":"

O usu\u00e1rio deseja organizar seus projetos de design criando e gerenciando pastas na plataforma Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#contexto_11","title":"CONTEXTO","text":"

O usu\u00e1rio possui v\u00e1rios projetos na plataforma Canva e deseja organiz\u00e1-los de forma eficiente para facilitar o acesso e a gest\u00e3o.

"},{"location":"analise/correcoes/cenarios_corrigido/#atores_10","title":"ATORES","text":"
  • Usu\u00e1rio
"},{"location":"analise/correcoes/cenarios_corrigido/#recursos_11","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#pre-condicao_11","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve estar logado na plataforma Canva e ter projetos criados.

"},{"location":"analise/correcoes/cenarios_corrigido/#episodios_11","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio faz login no Canva.
  2. Acessa a se\u00e7\u00e3o \"Meus Designs\" ou utiliza a barra de pesquisa para localizar os projetos que deseja organizar.
  3. Identifica a necessidade de organizar os projetos em pastas.
  4. Clica na op\u00e7\u00e3o \"Criar nova pasta\" e d\u00e1 um nome \u00e0 nova pasta, como \"Projetos de Marketing\" ou \"Apresenta\u00e7\u00f5es 2024\".
  5. Ap\u00f3s criar a pasta, o usu\u00e1rio arrasta e solta os projetos desejados dentro da pasta ou seleciona os projetos e usa a op\u00e7\u00e3o \"Mover para a pasta\" no menu de contexto.
  6. O usu\u00e1rio tamb\u00e9m pode criar subpastas dentro das pastas principais para uma organiza\u00e7\u00e3o mais detalhada.
  7. Se necess\u00e1rio, o usu\u00e1rio renomeia, exclui ou move as pastas conforme as necessidades de organiza\u00e7\u00e3o.
  8. Para localizar rapidamente um projeto espec\u00edfico, o usu\u00e1rio utiliza a barra de pesquisa ou navega pelas pastas organizadas.
"},{"location":"analise/correcoes/cenarios_corrigido/#restricoes_11","title":"RESTRI\u00c7\u00d5ES","text":"

O usu\u00e1rio deve organizar os projetos de maneira l\u00f3gica para facilitar o acesso futuro. O Canva pode ter limita\u00e7\u00f5es no n\u00famero de subpastas ou no n\u00famero de projetos por pasta, dependendo do plano de assinatura.

"},{"location":"analise/correcoes/cenarios_corrigido/#pos-condicao_11","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

Os projetos est\u00e3o organizados em pastas, permitindo que o usu\u00e1rio acesse e gerencie seus designs de forma mais eficiente.

"},{"location":"analise/correcoes/cenarios_corrigido/#resultado-esperado_11","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio consegue criar, organizar e gerenciar pastas para seus projetos na plataforma Canva, melhorando a efici\u00eancia na navega\u00e7\u00e3o e no gerenciamento dos designs.

"},{"location":"analise/correcoes/cenarios_corrigido/#13-utilizacao-de-recursos-de-inteligencia-artificial-no-canva","title":"13. Utiliza\u00e7\u00e3o de Recursos de Intelig\u00eancia Artificial no Canva","text":""},{"location":"analise/correcoes/cenarios_corrigido/#objetivo_12","title":"OBJETIVO","text":"

O usu\u00e1rio deseja utilizar os recursos de intelig\u00eancia artificial (IA) do Canva para aprimorar seus designs, como a gera\u00e7\u00e3o de textos autom\u00e1ticos ou a cria\u00e7\u00e3o de elementos gr\u00e1ficos personalizados.

"},{"location":"analise/correcoes/cenarios_corrigido/#contexto_12","title":"CONTEXTO","text":"

O usu\u00e1rio est\u00e1 trabalhando em um projeto de design no Canva e deseja explorar as ferramentas de IA dispon\u00edveis para acelerar o processo criativo e melhorar a qualidade do design.

"},{"location":"analise/correcoes/cenarios_corrigido/#atores_11","title":"ATORES","text":"
  • Usu\u00e1rio
"},{"location":"analise/correcoes/cenarios_corrigido/#recursos_12","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#pre-condicao_12","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve estar logado na plataforma Canva e ter um projeto aberto.

"},{"location":"analise/correcoes/cenarios_corrigido/#episodios_12","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio faz login no Canva e abre um projeto.
  2. No painel de ferramentas, o usu\u00e1rio identifica a se\u00e7\u00e3o de \"Recursos de IA\" ou uma ferramenta espec\u00edfica de IA, como \"Gerador de Texto\" ou \"Cria\u00e7\u00e3o Autom\u00e1tica de Elementos Gr\u00e1ficos\".
  3. O usu\u00e1rio seleciona o recurso de IA que deseja utilizar, como a gera\u00e7\u00e3o de texto autom\u00e1tico para uma manchete ou a sugest\u00e3o de paletas de cores personalizadas.
  4. Se utilizando da IA, o usu\u00e1rio insere palavras-chave ou instru\u00e7\u00f5es sobre o que deseja gerar (por exemplo, \"slogan para campanha de ver\u00e3o\" ou \"ilustra\u00e7\u00e3o abstrata para fundo\").
  5. A IA processa as informa\u00e7\u00f5es e apresenta sugest\u00f5es ou gera os elementos solicitados.
  6. O usu\u00e1rio revisa as sugest\u00f5es e, se necess\u00e1rio, faz ajustes manuais para alinhar o resultado com o objetivo do projeto.
  7. O usu\u00e1rio integra os elementos gerados pela IA ao design e continua a personaliza\u00e7\u00e3o conforme necess\u00e1rio.
  8. Se satisfeito com o resultado, o usu\u00e1rio salva o projeto final ou faz uma exporta\u00e7\u00e3o.
"},{"location":"analise/correcoes/cenarios_corrigido/#restricoes_12","title":"RESTRI\u00c7\u00d5ES","text":"

Os recursos de IA podem ter limita\u00e7\u00f5es em termos de complexidade de gera\u00e7\u00e3o ou em quantidade de op\u00e7\u00f5es oferecidas, dependendo do plano de assinatura do Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#pos-condicao_12","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

O design do projeto foi aprimorado com a ajuda dos recursos de IA, economizando tempo e aumentando a qualidade do resultado.

"},{"location":"analise/correcoes/cenarios_corrigido/#resultado-esperado_12","title":"RESULTADO ESPERADO","text":"

O uusu\u00e1riosu\u00e1rio consegue utilizar eficazmente os recursos de intelig\u00eancia artificial do Canva, como a gera\u00e7\u00e3o autom\u00e1tica de texto ou a cria\u00e7\u00e3o de elementos gr\u00e1ficos, melhorando a efici\u00eancia do processo de design e o resultado final.

"},{"location":"analise/correcoes/cenarios_corrigido/#14-personalizar-configuracoes-de-conta-no-canva","title":"14. Personalizar Configura\u00e7\u00f5es de Conta no Canva","text":""},{"location":"analise/correcoes/cenarios_corrigido/#objetivo_13","title":"OBJETIVO","text":"

O usu\u00e1rio deseja personalizar as configura\u00e7\u00f5es de sua conta no Canva para adaptar a plataforma \u00e0s suas prefer\u00eancias e necessidades espec\u00edficas.

"},{"location":"analise/correcoes/cenarios_corrigido/#contexto_13","title":"CONTEXTO","text":"

O usu\u00e1rio est\u00e1 logado em sua conta no Canva e quer ajustar configura\u00e7\u00f5es como idioma, notifica\u00e7\u00f5es, m\u00e9todos de pagamento, ou privacidade para otimizar sua experi\u00eancia na plataforma.

"},{"location":"analise/correcoes/cenarios_corrigido/#atores_12","title":"ATORES","text":"
  • Usu\u00e1rio
"},{"location":"analise/correcoes/cenarios_corrigido/#recursos_13","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web ou aplicativo m\u00f3vel, conta ativa no Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#pre-condicao_13","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve estar logado na plataforma Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#episodios_13","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio faz login na plataforma Canva e acessa a p\u00e1gina inicial.
  2. O usu\u00e1rio localiza o menu de configura\u00e7\u00f5es de conta, geralmente acess\u00edvel atrav\u00e9s do \u00edcone de perfil ou das op\u00e7\u00f5es de menu.
  3. O usu\u00e1rio clica na op\u00e7\u00e3o \"Configura\u00e7\u00f5es de Conta\" para abrir a p\u00e1gina de configura\u00e7\u00f5es.
  4. Na p\u00e1gina de configura\u00e7\u00f5es, o usu\u00e1rio navega entre as diferentes categorias, como \"Informa\u00e7\u00f5es Pessoais\", \"Notifica\u00e7\u00f5es\", \"Seguran\u00e7a\", \"Prefer\u00eancias de Idioma\", ou \"Faturamento e Pagamentos\".
  5. O usu\u00e1rio seleciona a categoria que deseja personalizar. Por exemplo:

    • Para alterar o idioma da plataforma, o usu\u00e1rio acessa \"Prefer\u00eancias de Idioma\" e escolhe o idioma desejado.

    • Para ajustar as notifica\u00e7\u00f5es, o usu\u00e1rio acessa \"Notifica\u00e7\u00f5es\" e escolhe quais tipos de alertas deseja receber por email ou no aplicativo.

    • Para atualizar m\u00e9todos de pagamento, o usu\u00e1rio acessa \"Faturamento e Pagamentos\" e adiciona ou modifica as op\u00e7\u00f5es de pagamento.

  6. Ap\u00f3s fazer as altera\u00e7\u00f5es desejadas, o usu\u00e1rio salva as configura\u00e7\u00f5es.

  7. O usu\u00e1rio revisa as mudan\u00e7as feitas para garantir que as configura\u00e7\u00f5es est\u00e3o corretas e de acordo com suas prefer\u00eancias.
  8. Caso necess\u00e1rio, o usu\u00e1rio faz novos ajustes ou retorna \u00e0 p\u00e1gina inicial do Canva.
"},{"location":"analise/correcoes/cenarios_corrigido/#restricoes_13","title":"RESTRI\u00c7\u00d5ES","text":"

Algumas op\u00e7\u00f5es de personaliza\u00e7\u00e3o podem estar dispon\u00edveis apenas para usu\u00e1rios com planos de assinatura espec\u00edficos, como o Canva Pro.

"},{"location":"analise/correcoes/cenarios_corrigido/#pos-condicao_13","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

As configura\u00e7\u00f5es da conta do usu\u00e1rio no Canva s\u00e3o atualizadas conforme as prefer\u00eancias definidas.

"},{"location":"analise/correcoes/cenarios_corrigido/#resultado-esperado_13","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio consegue personalizar as configura\u00e7\u00f5es de sua conta no Canva, adaptando a plataforma \u00e0s suas prefer\u00eancias e melhorando sua experi\u00eancia de uso.

"},{"location":"analise/correcoes/cenarios_corrigido/#15-acessar-suporte-e-atendimento-ao-cliente-no-canva","title":"15. Acessar Suporte e Atendimento ao Cliente no Canva","text":""},{"location":"analise/correcoes/cenarios_corrigido/#objetivo_14","title":"OBJETIVO","text":"

O usu\u00e1rio deseja acessar o suporte e atendimento ao cliente do Canva para resolver d\u00favidas, problemas t\u00e9cnicos, ou obter informa\u00e7\u00f5es sobre a plataforma.

"},{"location":"analise/correcoes/cenarios_corrigido/#contexto_14","title":"CONTEXTO","text":"

O usu\u00e1rio est\u00e1 utilizando a plataforma Canva e encontra dificuldades ou quest\u00f5es que n\u00e3o consegue resolver sozinho. Ele decide buscar ajuda atrav\u00e9s dos canais de suporte dispon\u00edveis.

"},{"location":"analise/correcoes/cenarios_corrigido/#atores_13","title":"ATORES","text":"
  • Usu\u00e1rio
  • Representante de Suporte do Canva
"},{"location":"analise/correcoes/cenarios_corrigido/#recursos_14","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web ou aplicativo m\u00f3vel, conta ativa no Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#pre-condicao_14","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve estar logado na plataforma Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#episodios_14","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio faz login na plataforma Canva e acessa a p\u00e1gina inicial.
  2. O usu\u00e1rio localiza a se\u00e7\u00e3o de \"Ajuda\" ou \"Suporte\", geralmente dispon\u00edvel no rodap\u00e9 da p\u00e1gina ou no menu de perfil.
  3. O usu\u00e1rio clica na op\u00e7\u00e3o \"Ajuda\" para acessar a central de suporte do Canva.
  4. Na central de suporte, o usu\u00e1rio pode:

    • Explorar artigos e tutoriais dispon\u00edveis na base de conhecimento do Canva para encontrar uma solu\u00e7\u00e3o para sua d\u00favida.

    • Utilizar a barra de pesquisa para digitar palavras-chave relacionadas ao problema ou quest\u00e3o.

    -Acessar as perguntas frequentes (FAQ) para verificar se a d\u00favida j\u00e1 foi respondida.

  5. Se o usu\u00e1rio n\u00e3o encontrar a solu\u00e7\u00e3o nas op\u00e7\u00f5es anteriores, ele pode optar por:

    • Entrar em contato com o suporte ao cliente via chat ao vivo, se dispon\u00edvel.

    • Enviar uma solicita\u00e7\u00e3o de suporte por email, detalhando o problema e aguardando a resposta da equipe.

    • Acessar a comunidade do Canva para interagir com outros usu\u00e1rios e buscar solu\u00e7\u00f5es colaborativas.

  6. O usu\u00e1rio escolhe o canal de atendimento mais adequado para sua necessidade e segue as instru\u00e7\u00f5es fornecidas para entrar em contato com o suporte.

  7. O usu\u00e1rio aguarda a resposta do suporte e, caso solicitado, segue as orienta\u00e7\u00f5es fornecidas para resolver o problema.
  8. Caso necess\u00e1rio, o usu\u00e1rio faz novos ajustes ou retorna \u00e0 p\u00e1gina inicial do Canva.
  9. O usu\u00e1rio confirma que o problema foi resolvido ou, se necess\u00e1rio, continua o di\u00e1logo com o suporte at\u00e9 a conclus\u00e3o.
"},{"location":"analise/correcoes/cenarios_corrigido/#restricoes_14","title":"RESTRI\u00c7\u00d5ES","text":"

O tempo de resposta do suporte pode variar dependendo do canal escolhido e do plano de assinatura do usu\u00e1rio.

"},{"location":"analise/correcoes/cenarios_corrigido/#pos-condicao_14","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio recebe o suporte necess\u00e1rio para resolver seu problema ou esclarecer suas d\u00favidas.

"},{"location":"analise/correcoes/cenarios_corrigido/#resultado-esperado_14","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio consegue acessar o suporte e atendimento ao cliente do Canva, resolve seu problema ou obt\u00e9m a informa\u00e7\u00e3o necess\u00e1ria, e retoma suas atividades na plataforma com sucesso.

"},{"location":"analise/correcoes/cenarios_corrigido/#16-criacao-de-um-design-do-zero","title":"16. Cria\u00e7\u00e3o de um Design do Zero","text":""},{"location":"analise/correcoes/cenarios_corrigido/#objetivo_15","title":"OBJETIVO","text":"

O usu\u00e1rio deseja criar um design do zero na plataforma Canva, sem utilizar templates pr\u00e9-definidos, para desenvolver um projeto personalizado.

"},{"location":"analise/correcoes/cenarios_corrigido/#contexto_15","title":"CONTEXTO","text":"

O usu\u00e1rio tem uma ideia clara do design que deseja criar e prefere come\u00e7ar do zero, sem utilizar templates existentes, para ter total liberdade criativa e personaliza\u00e7\u00e3o.

"},{"location":"analise/correcoes/cenarios_corrigido/#atores_14","title":"ATORES","text":"
  • Usu\u00e1rio
"},{"location":"analise/correcoes/cenarios_corrigido/#recursos_15","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web ou aplicativo m\u00f3vel, conta ativa no Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#pre-condicao_15","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve estar logado na plataforma Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#episodios_15","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio faz login na plataforma Canva.
  2. O usu\u00e1rio clica no bot\u00e3o \"Criar um design\" ou \"Design em branco\" para iniciar um novo projeto do zero.
  3. O usu\u00e1rio seleciona o tipo de design que deseja criar, como \"Cart\u00e3o de Visita\", \"Banner\", \"Apresenta\u00e7\u00e3o\", ou \"Postagem para Redes Sociais\".
  4. O usu\u00e1rio define as dimens\u00f5es, orienta\u00e7\u00e3o, e outras configura\u00e7\u00f5es iniciais do design.
  5. O usu\u00e1rio acessa as ferramentas de edi\u00e7\u00e3o, como textos, formas, imagens, e \u00edcones, para come\u00e7ar a construir o design.
  6. O usu\u00e1rio adiciona elementos ao design, como textos, imagens, gr\u00e1ficos, e outros elementos visuais, de acordo com sua vis\u00e3o criativa.
  7. O usu\u00e1rio personaliza as cores, fontes, tamanhos, e outros detalhes do design para refletir sua identidade visual ou estilo desejado.
  8. O usu\u00e1rio revisa o design em tempo real, fazendo ajustes conforme necess\u00e1rio para alcan\u00e7ar o resultado desejado.
  9. Ap\u00f3s finalizar o design, o usu\u00e1rio salva o projeto e, se necess\u00e1rio, faz uma exporta\u00e7\u00e3o nos formatos desejados.
"},{"location":"analise/correcoes/cenarios_corrigido/#restricoes_15","title":"RESTRI\u00c7\u00d5ES","text":"

O usu\u00e1rio deve ter conhecimento b\u00e1sico das ferramentas de edi\u00e7\u00e3o do Canva para criar um design do zero com efic\u00e1cia.

"},{"location":"analise/correcoes/cenarios_corrigido/#pos-condicao_15","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

O design foi criado do zero com sucesso, refletindo a vis\u00e3o criativa e personalizada do usu\u00e1rio.

"},{"location":"analise/correcoes/cenarios_corrigido/#resultado-esperado_15","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio consegue criar um design do zero na plataforma Canva, sem utilizar templates pr\u00e9-definidos, desenvolvendo um projeto personalizado e \u00fanico.

"},{"location":"analise/correcoes/cenarios_corrigido/#17-feedback-de-um-design","title":"17. Feedback de um Design","text":""},{"location":"analise/correcoes/cenarios_corrigido/#objetivo_16","title":"OBJETIVO","text":"

O usu\u00e1rio deseja obter feedback sobre um design criado na plataforma Canva para avaliar a qualidade, efic\u00e1cia, e impacto do projeto.

"},{"location":"analise/correcoes/cenarios_corrigido/#contexto_16","title":"CONTEXTO","text":"

O usu\u00e1rio finalizou um design na plataforma Canva e deseja compartilh\u00e1-lo com colegas, clientes, ou amigos para receber opini\u00f5es, sugest\u00f5es, e cr\u00edticas construtivas.

"},{"location":"analise/correcoes/cenarios_corrigido/#atores_15","title":"ATORES","text":"
  • Usu\u00e1rio
  • Revisores, colegas, clientes, amigos
"},{"location":"analise/correcoes/cenarios_corrigido/#recursos_16","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web ou aplicativo m\u00f3vel, conta ativa no Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#pre-condicao_16","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve ter finalizado um design na plataforma Canva e estar pronto para compartilh\u00e1-lo com outras pessoas.

"},{"location":"analise/correcoes/cenarios_corrigido/#episodios_16","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio faz login na plataforma Canva e acessa o design que deseja compartilhar.
  2. O usu\u00e1rio clica no bot\u00e3o \"Compartilhar\" ou \"Convidar para Editar\" para gerar um link de compartilhamento ou convidar revisores para colaborar no design.
  3. O usu\u00e1rio copia o link de compartilhamento ou insere os emails dos revisores para enviar o convite.
  4. Os revisores recebem o link ou convite e acessam o design para visualiz\u00e1-lo e fornecer feedback.
  5. Os revisores analisam o design, avaliam a qualidade, efic\u00e1cia, e impacto do projeto, e compartilham suas opini\u00f5es, sugest\u00f5es, e cr\u00edticas construtivas.
  6. O usu\u00e1rio revisa os feedbacks recebidos, considera as sugest\u00f5es e cr\u00edticas, e decide se deseja fazer ajustes no design com base nas recomenda\u00e7\u00f5es.
  7. O usu\u00e1rio agradece aos revisores pelo feedback e finaliza o design conforme necess\u00e1rio.
"},{"location":"analise/correcoes/cenarios_corrigido/#restricoes_16","title":"RESTRI\u00c7\u00d5ES","text":"

O usu\u00e1rio deve estar aberto a receber feedback construtivo e cr\u00edticas sobre o design, mesmo que nem todas as opini\u00f5es sejam positivas.

"},{"location":"analise/correcoes/cenarios_corrigido/#pos-condicao_16","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio recebeu feedback sobre o design, avaliou as sugest\u00f5es e cr\u00edticas, e decidiu se far\u00e1 ajustes no projeto.

"},{"location":"analise/correcoes/cenarios_corrigido/#resultado-esperado_16","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio obteve feedback sobre o design criado na plataforma Canva, avaliou as opini\u00f5es recebidas, e decidiu se far\u00e1 altera\u00e7\u00f5es no projeto com base nas recomenda\u00e7\u00f5es.

"},{"location":"analise/correcoes/cenarios_corrigido/#18-criacao-de-materiais-educacionais-interativos","title":"18. Cria\u00e7\u00e3o de Materiais Educacionais Interativos","text":""},{"location":"analise/correcoes/cenarios_corrigido/#objetivo_17","title":"OBJETIVO","text":"

O usu\u00e1rio \u00e9 um professor o aluno e deseja utilizar as ferramentas de Ensino do Canva para criar materiais educacionais interativos e envolventes.

"},{"location":"analise/correcoes/cenarios_corrigido/#contexto_17","title":"CONTEXTO","text":"

O usu\u00e1rio est\u00e1 envolvido no ensino e deseja criar materiais educacionais interativos, como apresenta\u00e7\u00f5es, infogr\u00e1ficos, cartazes, ou atividades, para engajar os alunos e facilitar o aprendizado.

"},{"location":"analise/correcoes/cenarios_corrigido/#atores_16","title":"ATORES","text":"
  • Usu\u00e1rio
  • Alunos
  • Professores
"},{"location":"analise/correcoes/cenarios_corrigido/#recursos_17","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web ou aplicativo m\u00f3vel, conta ativa no Canva.

"},{"location":"analise/correcoes/cenarios_corrigido/#pre-condicao_17","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve estar logado na plataforma Canva e ter conhecimento sobre os recursos de Ensino dispon\u00edveis.

"},{"location":"analise/correcoes/cenarios_corrigido/#episodios_17","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio faz login na plataforma Canva e acessa a se\u00e7\u00e3o de Ensino.
  2. O usu\u00e1rio explora as ferramentas dispon\u00edveis para criar materiais educacionais interativos, como apresenta\u00e7\u00f5es, infogr\u00e1ficos, cartazes, ou atividades.
  3. O usu\u00e1rio seleciona o tipo de material educacional que deseja criar e come\u00e7a a adicionar conte\u00fado relevante, como textos, imagens, gr\u00e1ficos, ou v\u00eddeos.
  4. O usu\u00e1rio personaliza o design, ajustando cores, fontes, layouts, e outros detalhes para tornar o material mais envolvente e atraente.
  5. O usu\u00e1rio utiliza recursos interativos, como links, bot\u00f5es, v\u00eddeos, ou quizzes, para tornar o material educacional mais din\u00e2mico e interativo.
  6. O usu\u00e1rio revisa o material educacional em tempo real, fazendo ajustes conforme necess\u00e1rio para melhorar a qualidade e efic\u00e1cia do conte\u00fado.
  7. Ap\u00f3s finalizar o material educacional, o usu\u00e1rio salva o projeto e, se necess\u00e1rio, faz uma exporta\u00e7\u00e3o nos formatos desejados.
"},{"location":"analise/correcoes/cenarios_corrigido/#restricoes_17","title":"RESTRI\u00c7\u00d5ES","text":"

O usu\u00e1rio deve ter conhecimento sobre os princ\u00edpios de design educacional e as melhores pr\u00e1ticas para criar materiais educacionais interativos.

"},{"location":"analise/correcoes/cenarios_corrigido/#pos-condicao_17","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

O material educacional interativo foi criado com sucesso, pronto para ser utilizado no ensino e aprendizado.

"},{"location":"analise/correcoes/cenarios_corrigido/#resultado-esperado_17","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio consegue criar materiais educacionais interativos e envolventes na plataforma Canva, utilizando as ferramentas dispon\u00edveis para facilitar o ensino e o aprendizado.

"},{"location":"analise/correcoes/esp_suplementar_corrigido/","title":"Especifica\u00e7\u00e3o Suplementar","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 16/08/2024 Cria\u00e7\u00e3o do documento e defini\u00e7\u00e3o dos requisitos n\u00e3o funcionais ap\u00f3s an\u00e1lise de casos de uso Henrique Quenino 0.1 17/08/2024 Revis\u00e3o e ajustes dos requisitos n\u00e3o funcionais Henrique Quenino 1.0 03/09/2024 Corre\u00e7\u00e3o da especifica\u00e7\u00e3o suplementar ap\u00f3s a inspe\u00e7\u00e3o Luiza Maluf 2.0"},{"location":"analise/correcoes/esp_suplementar_corrigido/#origem","title":"Origem","text":"

A Especifica\u00e7\u00e3o Suplementar foi criada ap\u00f3s a an\u00e1lise dos casos de uso do site Canva, com o objetivo de definir os requisitos n\u00e3o funcionais essenciais para o desenvolvimento e opera\u00e7\u00e3o da plataforma.

"},{"location":"analise/correcoes/esp_suplementar_corrigido/#metodologia","title":"Metodologia","text":"

Os requisitos n\u00e3o funcionais foram identificados considerando as necessidades dos usu\u00e1rios, as restri\u00e7\u00f5es do sistema e as melhores pr\u00e1ticas de desenvolvimento de software, tendo em vista os casos de usos produzidos durante a modelagem dos requisitos.

"},{"location":"analise/correcoes/esp_suplementar_corrigido/#1-introducao","title":"1. Introdu\u00e7\u00e3o","text":"

Este documento descreve a Especifica\u00e7\u00e3o Suplementar do site Canva, complementando a Especifica\u00e7\u00e3o de Casos de Uso. Ele detalha os requisitos n\u00e3o funcionais, incluindo requisitos de desempenho, seguran\u00e7a, usabilidade e outros, essenciais para o sucesso da plataforma.

"},{"location":"analise/correcoes/esp_suplementar_corrigido/#2-requisitos-nao-funcionais","title":"2. Requisitos N\u00e3o Funcionais","text":""},{"location":"analise/correcoes/esp_suplementar_corrigido/#21-desempenho","title":"2.1. Desempenho","text":"
  • Tempo de Carregamento: O site deve carregar em menos de 3 segundos em uma conex\u00e3o de banda larga (5 Mbps) para 80% das requisi\u00e7\u00f5es.

    • Rastreabilidade: Relacionado ao Caso de Uso US-08
  • Tempo de Resposta: As intera\u00e7\u00f5es do usu\u00e1rio, como arrastar e soltar elementos, aplicar filtros e salvar designs, devem ocorrer em tempo real, com um tempo de resposta m\u00e1ximo de 0,5 segundos.

    • Rastreabilidade: Relacionado ao Caso de Uso US-02
  • Escalabilidade: A plataforma deve suportar um n\u00famero crescente de usu\u00e1rios simult\u00e2neos e projetos sem degrada\u00e7\u00e3o significativa no desempenho.

    • Rastreabilidade: Relacionado ao Caso de Uso US-11
  • Disponibilidade: O site deve estar dispon\u00edvel 99,9% do tempo, com um tempo de inatividade m\u00e1ximo programado de 4 horas por m\u00eas para manuten\u00e7\u00e3o.

    • Rastreabilidade: Relacionado ao Caso de Uso US-08
"},{"location":"analise/correcoes/esp_suplementar_corrigido/#22-seguranca","title":"2.2. Seguran\u00e7a","text":"
  • Autentica\u00e7\u00e3o: A plataforma deve oferecer autentica\u00e7\u00e3o segura por meio de senha, autentica\u00e7\u00e3o de dois fatores e login social (Google, Facebook).

    • Rastreabilidade: Relacionado ao Caso de Uso US-08
  • Autoriza\u00e7\u00e3o: O acesso aos designs e recursos deve ser controlado por um sistema de permiss\u00f5es granular, permitindo o compartilhamento e a colabora\u00e7\u00e3o com diferentes n\u00edveis de acesso.

    • Rastreabilidade: Relacionado ao Caso de Uso US-03
  • Prote\u00e7\u00e3o de Dados: As informa\u00e7\u00f5es do usu\u00e1rio, incluindo dados pessoais e designs, devem ser criptografadas em repouso e em tr\u00e2nsito usando protocolos de seguran\u00e7a padr\u00e3o da ind\u00fastria (SSL/TLS).

    • Rastreabilidade: Relacionado ao Caso de Uso US-08
  • Conformidade: A plataforma deve cumprir as leis e regulamenta\u00e7\u00f5es de prote\u00e7\u00e3o de dados relevantes, como LGPD e GDPR.

    • Rastreabilidade: Relacionado ao Caso de Uso US-08
"},{"location":"analise/correcoes/esp_suplementar_corrigido/#23-usabilidade","title":"2.3. Usabilidade","text":"
  • Interface do Usu\u00e1rio: A interface deve ser intuitiva, f\u00e1cil de usar e esteticamente agrad\u00e1vel, utilizando princ\u00edpios de design centrados no usu\u00e1rio.

    • Rastreabilidade: Relacionado ao Caso de Uso US-02
  • Navega\u00e7\u00e3o: Os usu\u00e1rios devem ser capazes de navegar facilmente pelo site, encontrar as ferramentas e recursos necess\u00e1rios e acessar seus projetos rapidamente.

    • Rastreabilidade: Relacionado ao Caso de Uso US-10
  • Acessibilidade: A plataforma deve ser acess\u00edvel a usu\u00e1rios com defici\u00eancia, seguindo as diretrizes de acessibilidade WCAG 2.1.

    • Rastreabilidade: Relacionado ao Caso de Uso US-02
  • Documenta\u00e7\u00e3o e Suporte: O Canva deve fornecer documenta\u00e7\u00e3o abrangente, tutoriais e suporte ao cliente responsivo para ajudar os usu\u00e1rios a utilizar todas as funcionalidades da plataforma.

    • Rastreabilidade: Relacionado ao Caso de Uso US-15
"},{"location":"analise/correcoes/esp_suplementar_corrigido/#24-confiabilidade","title":"2.4. Confiabilidade","text":"
  • Recupera\u00e7\u00e3o de Falhas: A plataforma deve ser projetada para lidar com falhas de hardware e software, garantindo a m\u00ednima perda de dados e r\u00e1pida recupera\u00e7\u00e3o.

    • Rastreabilidade: Relacionado a todos os casos de uso.
  • Backup e Restaura\u00e7\u00e3o: Backups regulares do site e dos dados do usu\u00e1rio devem ser realizados, com a capacidade de restaurar dados em caso de perda ou corrup\u00e7\u00e3o.

    • Rastreabilidade: Relacionado ao Caso de Uso US-01
  • Monitoramento: O sistema deve ser monitorado continuamente para detectar e solucionar problemas de desempenho, seguran\u00e7a e disponibilidade.

    • Rastreabilidade: Relacionado a todos os casos de uso.
"},{"location":"analise/correcoes/esp_suplementar_corrigido/#25-manutenibilidade","title":"2.5. Manutenibilidade","text":"
  • Modularidade: A arquitetura do site deve ser modular, permitindo a atualiza\u00e7\u00e3o e manuten\u00e7\u00e3o de componentes individuais sem afetar outras partes do sistema.

    • Rastreabilidade: Relacionado a todos os casos de uso.
  • Documenta\u00e7\u00e3o T\u00e9cnica: A documenta\u00e7\u00e3o t\u00e9cnica completa, incluindo diagramas de arquitetura, c\u00f3digo-fonte documentado e casos de teste, deve ser mantida para facilitar a manuten\u00e7\u00e3o e o desenvolvimento futuro.

    • Rastreabilidade: Relacionado ao desenvolvimento e manuten\u00e7\u00e3o geral do sistema.
  • Ferramentas de Desenvolvimento: O Canva deve utilizar ferramentas e tecnologias de desenvolvimento padr\u00e3o da ind\u00fastria para garantir a manutenibilidade e a escalabilidade do c\u00f3digo.

    • Rastreabilidade: Relacionado ao desenvolvimento e manuten\u00e7\u00e3o geral do sistema.
"},{"location":"analise/correcoes/esp_suplementar_corrigido/#3-restricoes","title":"3. Restri\u00e7\u00f5es","text":"
  • Navegadores Suportados: O site deve ser compat\u00edvel com as vers\u00f5es mais recentes dos principais navegadores da web, incluindo Chrome, Firefox, Safari e Edge.

    • Rastreabilidade: Relacionado ao Caso de Uso US-08
  • Dispositivos Suportados: A plataforma deve funcionar corretamente em desktops, laptops, tablets e smartphones.

    • Rastreabilidade: Relacionado ao Caso de Uso US-08
  • Idiomas Suportados: O Canva deve estar dispon\u00edvel em v\u00e1rios idiomas, incluindo portugu\u00eas, ingl\u00eas, espanhol e outros idiomas relevantes para o p\u00fablico-alvo.

    • Rastreabilidade: Relacionado ao Caso de Uso US-08
"},{"location":"analise/correcoes/esp_suplementar_corrigido/#4-conclusao","title":"4. Conclus\u00e3o","text":"

A Especifica\u00e7\u00e3o Suplementar define os requisitos n\u00e3o funcionais essenciais para o desenvolvimento e opera\u00e7\u00e3o bem-sucedidos do site Canva. Ao atender a esses requisitos, a plataforma poder\u00e1 oferecer uma experi\u00eancia de usu\u00e1rio de alta qualidade, segura, confi\u00e1vel e escal\u00e1vel para seus usu\u00e1rios.

"},{"location":"analise/correcoes/lexicos_corrigido/","title":"L\u00e9xicos","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 12/08/2024 Adi\u00e7\u00e3o dos primeiros lexicos encontrados durante a an\u00e1lise de protocolo Luiza Maluf 0.0 16/07/2024 Adi\u00e7\u00e3o de mais l\u00e9xicos encontrados ap\u00f3s o desenvolvimento dos primeiros cen\u00e1rios. Luiza Maluf 1.0 05/09/2024 Corre\u00e7\u00e3o e verifica\u00e7\u00e3o l\u00e9xica ap\u00f3s verifica\u00e7\u00e3o Henrique Quenino 2.0"},{"location":"analise/correcoes/lexicos_corrigido/#origem","title":"Origem","text":"

O desenvolvimento deste l\u00e9xico foi dado a partir da an\u00e1lise de protocolo feita na parte da elicita\u00e7\u00e3o.

Al\u00e9m disso, um segunda vers\u00e3o foi feita ap\u00f3s o desenvolvimento dos cen\u00e1rios.

"},{"location":"analise/correcoes/lexicos_corrigido/#metodologia","title":"Metodologia","text":"

Primeiramente, navegando dentro da plataforma e anotando as palavras chaves.

Em um segundo momento, foi poss\u00edvel identificar novos l\u00e9xicos durante a produ\u00e7\u00e3o dos cen\u00e1rios

"},{"location":"analise/correcoes/lexicos_corrigido/#Adicionar","title":"Adicionar","text":"Nome Adicionar Sin\u00f4nimos Incluir, Inserir No\u00e7\u00e3o Inserir novos elementos, como texto, imagens, ou gr\u00e1ficos, em um design. Impacto Enriquecer o design com novos conte\u00fados, aumentando sua complexidade e valor visual. Classifica\u00e7\u00e3o Verbo."},{"location":"analise/correcoes/lexicos_corrigido/#Acesso","title":"Acesso","text":"Nome Acesso Sin\u00f4nimos Entrada, Permiss\u00e3o No\u00e7\u00e3o Possibilidade de utilizar a plataforma ou determinadas funcionalidades ap\u00f3s autentica\u00e7\u00e3o ou autoriza\u00e7\u00e3o. Impacto Permite ao usu\u00e1rio interagir com o sistema, utilizando as ferramentas e recursos dispon\u00edveis. Classifica\u00e7\u00e3o Verbo."},{"location":"analise/correcoes/lexicos_corrigido/#Agrupar","title":"Agrupar","text":"Nome Agrupar Sin\u00f4nimos Unir, Combinar No\u00e7\u00e3o Combinar m\u00faltiplos elementos em uma \u00fanica unidade para facilitar a movimenta\u00e7\u00e3o e edi\u00e7\u00e3o. Impacto Simplifica a manipula\u00e7\u00e3o de m\u00faltiplos elementos, permitindo edi\u00e7\u00f5es simult\u00e2neas e coordena\u00e7\u00e3o visual. Classifica\u00e7\u00e3o Verbo."},{"location":"analise/correcoes/lexicos_corrigido/#Alinhamento","title":"Alinhamento","text":"Nome Alinhamento Sin\u00f4nimos Posicionamento, Distribui\u00e7\u00e3o No\u00e7\u00e3o O alinhamento correto melhora a organiza\u00e7\u00e3o e legibilidade do design, contribuindo para uma apresenta\u00e7\u00e3o visual mais profissional. Impacto Arranjo dos elementos gr\u00e1ficos e textuais em rela\u00e7\u00e3o ao layout. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Altera","title":"Altera","text":"Nome Altera Sin\u00f4nimos Modifica\u00e7\u00f5es, Ajustes No\u00e7\u00e3o Mudan\u00e7as realizadas em um design ou configura\u00e7\u00e3o dentro da plataforma. Impacto Influenciam o resultado final, permitindo ajustes e melhorias cont\u00ednuas no design ou no projeto. Classifica\u00e7\u00e3o Verbo."},{"location":"analise/correcoes/lexicos_corrigido/#Anima\u00e7\u00e3o","title":"Anima\u00e7\u00e3o","text":"Nome Anima\u00e7\u00e3o Sin\u00f4nimos Movimento, Efeito Visual No\u00e7\u00e3o Permite que elementos do design tenham movimento, como transi\u00e7\u00f5es suaves ou efeitos de entrada e sa\u00edda, aumentando o impacto visual. Impacto Adiciona dinamismo aos designs, especialemnte em apresenta\u00e7\u00f5es e v\u00eddeos. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Aplicar","title":"Aplicar","text":"Nome Aplicar Sin\u00f4nimos Usar, Implementar No\u00e7\u00e3o Colocar efeitos, filtros ou estilos em um elemento ou design. Impacto Transforma a apar\u00eancia dos elementos, adicionando camadas de estilo e profundidade ao design. Classifica\u00e7\u00e3o Verbo."},{"location":"analise/correcoes/lexicos_corrigido/#Arquivo","title":"Arquivo","text":"Nome Arquivo Sin\u00f4nimos Documento, Projeto No\u00e7\u00e3o Os arquivos podem ser salvos, compartilhados e reabertos para futuras edi\u00e7\u00f5es ou exporta\u00e7\u00f5es. Impacto Refere-se ao documento salvo que cont\u00e9m o design criado. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Arrastar","title":"Arrastar e Soltar","text":"Nome Arrastar e Soltar Sin\u00f4nimos Drag and Drop, Mover Elementos No\u00e7\u00e3o Simplifica o processo de edi\u00e7\u00e3o, permitindo que os usu\u00e1rios organizem os elementos de maneira intuitiva e r\u00e1pida. Impacto M\u00e9todo de intera\u00e7\u00e3o que permite mover elementos pelo design apenas arrastando-os com o cursor. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Apresenta\u00e7\u00e3o","title":"Apresenta\u00e7\u00e3o","text":"Nome Apresenta\u00e7\u00e3o Sin\u00f4nimos Slideshow, Pitch, Deck No\u00e7\u00e3o Tipo espec\u00edfico de design usado para apresenta\u00e7\u00f5es, frequentemente utilizado em contextos empresariais ou educacionais. Impacto Conjunto de slides criado para comunicar ideias de forma estruturada. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Baixar","title":"Baixar","text":"Nome Baixar Sin\u00f4nimos Download, Transferir No\u00e7\u00e3o A\u00e7\u00e3o de salvar o design ou projeto localmente no dispositivo do usu\u00e1rio. Impacto Facilita o uso do design em outros contextos, fora da plataforma, como apresenta\u00e7\u00f5es ou impress\u00f5es. Classifica\u00e7\u00e3o Verbo."},{"location":"analise/correcoes/lexicos_corrigido/#Banco_de_Imagens","title":"Banco de Imagens","text":"Nome Banco de Imagens Sin\u00f4nimos Galeria de Fotos, Biblioteca de Imagens No\u00e7\u00e3o Fornece uma ampla variedade de fotos e gr\u00e1ficos, tanto gratuitos quanto pagos, que podem ser inseridos em projetos. Impacto Reposit\u00f3rio de imagens que os usu\u00e1rios podem utilizar em seus designs. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#","title":"Biclioteca de Elementos","text":"Nome Biclioteca de Elementos Sin\u00f4nimos Reposit\u00f3rio de Elementos, Cole\u00e7\u00e3o de Gr\u00e1ficos No\u00e7\u00e3o A biblioteca oferece uma vasta gama de elementos visuais, desde \u00edcones a ilustra\u00e7\u00f5es, que podem ser inseridos e personalizados em projetos. Impacto Conjunto de recursos gr\u00e1ficos dispon\u00edveis para uso em designs. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Camadas","title":"Camadas","text":"Nome Camadas Sin\u00f4nimos N\u00edveis, Estruturas No\u00e7\u00e3o Permitem manipular a disposi\u00e7\u00e3o dos elementos gr\u00e1ficos e texto, criando profundidade e organiza\u00e7\u00e3o no design. Impacto Controlam a ordem e sobreposi\u00e7\u00e3o dos elementos em um design. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Chat","title":"Chat","text":"Nome Chat Sin\u00f4nimos Conversa, Mensagem No\u00e7\u00e3o Ferramenta de comunica\u00e7\u00e3o que permite a troca de mensagens entre os usu\u00e1rios da plataforma. Impacto Facilita a colabora\u00e7\u00e3o e a comunica\u00e7\u00e3o entre os membros da equipe ou clientes. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Colabora\u00e7\u00e3o","title":"Colabora\u00e7\u00e3o","text":"Nome Colabora\u00e7\u00e3o Sin\u00f4nimos Trabalho em Equipe, Coopera\u00e7\u00e3o No\u00e7\u00e3o Facilita a cria\u00e7\u00e3o conjunta de projetos, possibilitando edi\u00e7\u00f5es simult\u00e2neas e feedback em tempo real. Impacto Permite que m\u00faltiplos usu\u00e1rios trabalhem juntos em um design ao mesmo tempo. Pode ocorrer por meio de coment\u00e1rios, compartilhamento de arquivos ou edi\u00e7\u00e3o simult\u00e2nea de projetos. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Coment\u00e1rio","title":"Coment\u00e1rio","text":"Nome Coment\u00e1rio Sin\u00f4nimos Anota\u00e7\u00f5es, Feedback No\u00e7\u00e3o Ferramenta de colabora\u00e7\u00e3o que facilita a comunica\u00e7\u00e3o entre membros da equipe ou clientes, diretamente no projeto. Impacto Permitem que os usu\u00e1rios compartilhem opini\u00f5es e sugest\u00f5es dentro de um design colaborativo. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Compartilhamento","title":"Compartilhamento","text":"Nome Compartilhamento Sin\u00f4nimos Publica\u00e7\u00e3o, Distribui\u00e7\u00e3o No\u00e7\u00e3o Facilita a colabora\u00e7\u00e3o e dissemina\u00e7\u00e3o dos trabalhos criados na plataforma. Impacto Mecanismo que permite aos usu\u00e1rio distribuir seus designs para outras pessoas ou plataformas. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Computador","title":"Computador","text":"Nome Computador Sin\u00f4nimos PC, Dispositivo No\u00e7\u00e3o Dispositivo eletr\u00f4nico que permite o acesso \u00e0 plataforma Canva. Impacto Ferramenta essencial para a cria\u00e7\u00e3o e edi\u00e7\u00e3o de designs na plataforma. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Conex\u00e3o","title":"Conex\u00e3o","text":"Nome Conex\u00e3o Sin\u00f4nimos Liga\u00e7\u00e3o, V\u00ednculo No\u00e7\u00e3o A\u00e7\u00e3o de se conectar \u00e0 internet ou \u00e0 plataforma, essencial para o uso das funcionalidades online. Impacto Habilita o acesso \u00e0s ferramentas e recursos da plataforma, permitindo a colabora\u00e7\u00e3o e o armazenamento na nuvem. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Conta","title":"Conta","text":"Nome Conta Sin\u00f4nimos Perfil, Cadastro No\u00e7\u00e3o Identidade digital do usu\u00e1rio na plataforma, contendo suas informa\u00e7\u00f5es pessoais e prefer\u00eancias. Impacto Permite o acesso personalizado aos recursos da plataforma, al\u00e9m de armazenar os designs e configura\u00e7\u00f5es do usu\u00e1rio. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Conte\u00fado","title":"Conte\u00fado","text":"Nome Conte\u00fado Sin\u00f4nimos Informa\u00e7\u00e3o, Elementos No\u00e7\u00e3o Texto, imagens, gr\u00e1ficos ou outros elementos visuais que comp\u00f5em um design. Impacto Parte essencial do design, transmitindo informa\u00e7\u00f5es e mensagens visuais. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Criar","title":"Criar","text":"Nome Criar Sin\u00f4nimos Gerar, Desenvolver No\u00e7\u00e3o A\u00e7\u00e3o de come\u00e7ar um novo design ou projeto dentro da plataforma. Impacto Inicia o processo de design, proporcionando ao usu\u00e1rio a possibilidade de expressar suas ideias visualmente. Classifica\u00e7\u00e3o Verbo."},{"location":"analise/correcoes/lexicos_corrigido/#Corte","title":"Corte","text":"Nome Corte Sin\u00f4nimos Recorte, Crop No\u00e7\u00e3o O corte ajuda a focar no conte\u00fado mais relevante de uma imagem, melhorando a composi\u00e7\u00e3o e clareza do desdesignign. Impacto Fun\u00e7\u00e3o que permite remover partes indesejadas de uma imagem ou elemento gr\u00e1fico. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Desfazer","title":"Desfazer","text":"Nome Desfazer Sin\u00f4nimos Reverter, Anular No\u00e7\u00e3o Voltar ao estado anterior de um design antes da \u00faltima a\u00e7\u00e3o realizada. Impacto Fornece seguran\u00e7a ao usu\u00e1rio, permitindo corre\u00e7\u00f5es r\u00e1pidas de erros ou mudan\u00e7as de decis\u00e3o. Classifica\u00e7\u00e3o Verbo."},{"location":"analise/correcoes/lexicos_corrigido/#Design","title":"Design","text":"Nome Design Sin\u00f4nimos Projeto, Arte, Composi\u00e7\u00e3o, Desenho No\u00e7\u00e3o Resultado final da intera\u00e7\u00e3o do usu\u00e1rio com a plataforma, podendo ser impresso ou compartilhado digitalmente. Impacto Representa o principal produto criado e manipulado pelos usu\u00e1rio tratando-se de um projeto visual utilizado para diversos fins dentro da plataforma educacional. Podendo ser um cartaz, um banner, uma apresenta\u00e7\u00e3o, entre outros. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Designer","title":"Designer","text":"Nome Designer Sin\u00f4nimos Criador, Artista No\u00e7\u00e3o Pessoa que utiliza a plataforma para criar designs, podendo ser profissional ou amador. Impacto Respons\u00e1vel pela concep\u00e7\u00e3o e execu\u00e7\u00e3o de projetos visuais na plataforma. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Edi\u00e7\u00e3o","title":"Edi\u00e7\u00e3o","text":"Nome Edi\u00e7\u00e3o Sin\u00f4nimos Modifica\u00e7\u00e3o, Altera\u00e7\u00e3o, Ajuste No\u00e7\u00e3o Permite a personaliza\u00e7\u00e3o completa do design dentro das ferramentas fornecidas pelo Canva. Impacto Processo pelo qual o usu\u00e1rio altera um design, incluindo adi\u00e7\u00e3o de texto, imagens e gr\u00e1ficos. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Efeito","title":"Efeito","text":"Nome Efeito Sin\u00f4nimos Modifica\u00e7\u00e3o, Estilo No\u00e7\u00e3o Efeitos podem ser aplicados a textos, imagens ou formas para melhorar a expressividade ou criar impacto visual. Impacto Altera\u00e7\u00e3o aplicada a um elemento para criar uma apar\u00eancia ou sensa\u00e7\u00e3o espec\u00edfica. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Elementos","title":"Elementos Gr\u00e1ficos","text":"Nome Elementos Gr\u00e1ficos Sin\u00f4nimos \u00cdcones, Ilustra\u00e7\u00f5es, Formas No\u00e7\u00e3o Itens visuais dispon\u00edveis na biblioteca do Canva, utilizados para melhorar a apar\u00eancia e a comunica\u00e7\u00e3o visual dos designs. Impacto Componente visual que pode ser adicionado aos designs apra enriquecer o conte\u00fado. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Equipe","title":"Equipe","text":"Nome Equipe Sin\u00f4nimos Grupo, Time No\u00e7\u00e3o Conjunto de usu\u00e1rios que trabalham juntos em um projeto, compartilhando ideias e colaborando na cria\u00e7\u00e3o de designs. Impacto Facilita a colabora\u00e7\u00e3o e a comunica\u00e7\u00e3o entre os membros, permitindo a cria\u00e7\u00e3o de designs mais complexos e diversificados."},{"location":"analise/correcoes/lexicos_corrigido/#Excluir","title":"Excluir","text":"Nome Excluir Sin\u00f4nimos Apagar, Remover No\u00e7\u00e3o Remover elementos indesejados de um design. Impacto Simplifica o design, eliminando o que \u00e9 desnecess\u00e1rio ou indesejado. Classifica\u00e7\u00e3o Verbo."},{"location":"analise/correcoes/lexicos_corrigido/#Exporta\u00e7\u00e3o","title":"Exporta\u00e7\u00e3o","text":"Nome Exporta\u00e7\u00e3o Sin\u00f4nimos Download, Salvamento No\u00e7\u00e3o Permite ao usu\u00e1rio baixar o design em formatos como PNG, PDF, JPG, entre outros, para uso offline ou impress\u00e3o. Impacto Processo de salvar o design criado em diferentes formatos de arquivo. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Feedback","title":"Feedback","text":"Nome Feedback Sin\u00f4nimos Retorno, Avalia\u00e7\u00e3o No\u00e7\u00e3o Opini\u00f5es e sugest\u00f5es fornecidas por outros usu\u00e1rios ou clientes sobre um design ou projeto. Impacto Informa\u00e7\u00f5es valiosas que ajudam a melhorar o design e a identificar \u00e1reas de melhoria. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Ferramenta","title":"Ferramenta","text":"Nome Ferramenta Sin\u00f4nimos Instrumento, Recurso No\u00e7\u00e3o Funcionalidades dispon\u00edveis na plataforma que auxiliam na cria\u00e7\u00e3o e edi\u00e7\u00e3o de design. Impacto Facilita o processo de design, oferecendo diversas op\u00e7\u00f5es para personalizar e melhorar o conte\u00fado. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Fonte","title":"Fonte","text":"Nome Fonte Sin\u00f4nimos Tipografia, Tipo de Letra No\u00e7\u00e3o As fontes ajudam a comunicar o tom e a identidade do projeto, influenciando a legibilidade e o apelo est\u00e9tico. Impacto Determina o estilo visual do texto em um design. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Formata\u00e7\u00e3o","title":"Formata\u00e7\u00e3o","text":"Nome Formata\u00e7\u00e3o Sin\u00f4nimos Estiliza\u00e7\u00e3o, Personaliza\u00e7\u00e3o No\u00e7\u00e3o A formata\u00e7\u00e3o inclui a escolha de Fonte, tamanho, cor, alinhamento e espa\u00e7amento, permitindo que o design seja ajustado para atender a objetivos espec\u00edficos de comunica\u00e7\u00e3o. Impacto Processo de ajustar o estilo e a apar\u00eancia de texto e outros elementos em um design. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Grade","title":"Grade","text":"Nome Grade Sin\u00f4nimos Grid, Estrutura de Alinhamento No\u00e7\u00e3o Facilita a cria\u00e7\u00e3o de layouts equilibrados e organizados, melhorando a harmonia visual. Impacto Sistema de linhas que ajuda a alinhar e organizar os elementos em um design. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Gratuito","title":"Gratuito","text":"Nome Gratuito Sin\u00f4nimos Livre, Sem Custo No\u00e7\u00e3o Recursos ou ferramentas dispon\u00edveis na plataforma que podem ser utilizados sem custo adicional. Impacto Aumenta o acesso dos usu\u00e1rios a recursos b\u00e1sicos e essenciais para a cria\u00e7\u00e3o de design.. Classifica\u00e7\u00e3o Adjetivo."},{"location":"analise/correcoes/lexicos_corrigido/#Identidade","title":"Identidade visual","text":"Nome Identidade visual Sin\u00f4nimos Estilo, Marca No\u00e7\u00e3o Conjunto de elementos visuais que representam a personalidade e a identidade de uma marca ou projeto. Impacto Reflete a ess\u00eancia e os valores da marca, criando uma conex\u00e3o visual com o p\u00fablico. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Integra\u00e7\u00e3o","title":"Integra\u00e7\u00e3o","text":"Nome Integra\u00e7\u00e3o Sin\u00f4nimos Conectividade, Sincroniza\u00e7\u00e3o No\u00e7\u00e3o As integra\u00e7\u00f5es permitem que os usu\u00e1rios trabalhem de maneira mais eficiente, facilitando a publica\u00e7\u00e3o, compartilhamento e armazenamento de design diretamente do Canva. Impacto Capacidade do Canva de se conectar com outras ferramentas e plataformas, como redes sociais, servi\u00e7os de armazenamento em nuvem e sistemas de email marketing. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Login","title":"Login","text":"Nome Login Sin\u00f4nimos Acesso, Autentica\u00e7\u00e3o No\u00e7\u00e3o Processo de entrada na plataforma usando credenciais como nome de usu\u00e1rio e senha. Impacto Permite ao usu\u00e1rio acessar suas informa\u00e7\u00f5es pessoais, design e configura\u00e7\u00f5es personalizadas. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Logout","title":"Logout","text":"Nome Logout Sin\u00f4nimos Sair, Encerrar Sess\u00e3o No\u00e7\u00e3o A\u00e7\u00e3o de sair da conta da plataforma, encerrando a sess\u00e3o ativa. Impacto Protege a seguran\u00e7a dos dados do usu\u00e1rio, especialmente em dispositivos compartilhados. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Marca","title":"Marca d'\u00c1gua","text":"Nome Marca d'\u00c1gua Sin\u00f4nimos Selo, Assinatura Visual No\u00e7\u00e3o Um elemento visual sutil que \u00e9 sobreposto ao design, geralmente com transpar\u00eancia, para indicar propriedade intelectual. Impacto Protege a autoria do design, garantindo que o criador seja reconhecido. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Moldura","title":"Moldura","text":"Nome Moldura Sin\u00f4nimos Bordas, Quadro No\u00e7\u00e3o As molduras ajudam a focar a aten\u00e7\u00e3o em um conte\u00fado espec\u00edfico ou a melhorar a composi\u00e7\u00e3o do design. Impacto Elemento decorativo que circunda uma imagem ou texto, adicionando um contorno visual. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Padr\u00e3o","title":"Padr\u00e3o","text":"Nome Padr\u00e3o Sin\u00f4nimos Textura, Molde, Exemplo No\u00e7\u00e3o Os padr\u00f5es adicionam profundidade e interesse visual a um design, podendo ser usados para criar temas ou destacar partes espec\u00edficas de um projeto. Impacto Desenho repetitivo usado como fundo ou elemento decorativo em um design. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#P\u00e1gina","title":"P\u00e1gina","text":"Nome P\u00e1gina Sin\u00f4nimos Folha, Slide No\u00e7\u00e3o Representa uma se\u00e7\u00e3o individual de um projeto, podendo conter texto, imagens e elementos gr\u00e1ficos. Impacto Unidade b\u00e1sica de um design multip\u00e1gina, como um documento ou apresenta\u00e7\u00e3o. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Paleta","title":"Paleta de Cores","text":"Nome Paleta de Cores Sin\u00f4nimos Conjunto de Cores, Esquema de Cores No\u00e7\u00e3o Ajuda a criar coes\u00e3o visual e a transmitir emo\u00e7\u00f5es ou mensagens espec\u00edficas no design. Impacto Conjunto de cores selecionadas que guiam a est\u00e9tica de um design. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Permiss\u00e3o","title":"Permiss\u00e3o","text":"Nome Permiss\u00e3o Sin\u00f4nimos Autoriza\u00e7\u00e3o, Concess\u00e3o No\u00e7\u00e3o Direitos atribu\u00eddos a um usu\u00e1rio para acessar ou modificar certos recursos ou design na plataforma. Impacto Controla o acesso e as a\u00e7\u00f5es permitidas dentro de um projeto, garantindo a seguran\u00e7a e a integridade dos dados. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Personalizar","title":"Personalizar","text":"Nome Personalizar Sin\u00f4nimos Customizar, Ajustar No\u00e7\u00e3o Modificar elementos para atender a necessidades ou prefer\u00eancias espec\u00edficas. Impacto Permite que o design reflita a identidade ou requisitos espec\u00edficos do usu\u00e1rio. Classifica\u00e7\u00e3o Verbo."},{"location":"analise/correcoes/lexicos_corrigido/#Assinatura","title":"Plano de Assinatura","text":"Nome Plano de Assinatura Sin\u00f4nimos Pro, Conta Premium, Subscri\u00e7\u00e3o No\u00e7\u00e3o Oferece vantagens adicionais em rela\u00e7\u00e3o \u00e0 conta gratuita, como acesso a mais recursos gr\u00e1ficos e funcionalidades. Impacto Define o n\u00edvel de acesso do usu\u00e1rio a recursos avan\u00e7ados e templates exclusivos. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Plano","title":"Plano de Fundo","text":"Nome Plano de Fundo Sin\u00f4nimos Pro, Conta Premium, Subscri\u00e7\u00e3o No\u00e7\u00e3o Oferece vantagens adicionais em rela\u00e7\u00e3o \u00e0 conta gratuita, como acesso a mais recursos gr\u00e1ficos e funcionalidades. Impacto Define o n\u00edvel de acesso do usu\u00e1rio a recursos avan\u00e7ados e templates exclusivos. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Plataforma","title":"Plataforma","text":"Nome Plataforma Sin\u00f4nimos Sistema, Ambiente No\u00e7\u00e3o Ambiente digital que fornece as ferramentas e recursos necess\u00e1rios para criar e editar design. Impacto Oferece o espa\u00e7o e as funcionalidades necess\u00e1rias para o desenvolvimento de projetos criativos. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Prot\u00f3tipo","title":"Prot\u00f3tipo","text":"Nome Prot\u00f3tipo Sin\u00f4nimos Mockup, Modelo No\u00e7\u00e3o Permite testar a apar\u00eancia e funcionalidade de um design antes de sua conclus\u00e3o. Impacto Representa\u00e7\u00e3o visual inicial de um design, usado para valida\u00e7\u00e3o e ajustes antes do produto final. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Publica\u00e7\u00e3o","title":"Publica\u00e7\u00e3o","text":"Nome Publica\u00e7\u00e3o Sin\u00f4nimos Postagem, Compartilhamento Online No\u00e7\u00e3o Permite que o design seja visto por uma audi\u00eancia maior, aumentando a visibilidade do projeto. Impacto Ato de disponibilizar o design finalizado em uma plataforma online, como redes sociais ou websites. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Recursos","title":"Recursos","text":"Nome Recursos Sin\u00f4nimos Ferramentas, Materiais No\u00e7\u00e3o Conjunto de elementos, como imagens, fontes, e modelos, dispon\u00edveis para uso na cria\u00e7\u00e3o de design. Impacto Amplia as possibilidades de cria\u00e7\u00e3o, oferecendo uma variedade de elementos para enriquecer os design. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Responsividade","title":"Responsividade","text":"Nome Responsividade Sin\u00f4nimos Ajuste de Tamanho, Escalamento No\u00e7\u00e3o Ferramenta que facilita a adapta\u00e7\u00e3o do design para diferentes m\u00eddias, como redes sociais, impressos ou an\u00fancios. Impacto Permite que o design seja adaptado para diferentes formatos e propor\u00e7\u00f5es sem perder qualidade. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Rotacionar","title":"Rotacionar","text":"Nome Rotacionar Sin\u00f4nimos Girar, Virar No\u00e7\u00e3o Mudar a orienta\u00e7\u00e3o de um elemento ao redor de um ponto central. Impacto Permite criar efeitos din\u00e2micos e ajustar a perspectiva dos elementos dentro do design. Classifica\u00e7\u00e3o Verbo."},{"location":"analise/correcoes/lexicos_corrigido/#Salvar","title":"Salvar","text":"Nome Salvar Sin\u00f4nimos Armazenar, Guardar No\u00e7\u00e3o A\u00e7\u00e3o de armazenar um design ou projeto no sistema da plataforma. Impacto Garante que o trabalho do usu\u00e1rio n\u00e3o seja perdido e possa ser acessado ou editado posteriormente. Classifica\u00e7\u00e3o Verbo."},{"location":"analise/correcoes/lexicos_corrigido/#Simult\u00e2neo","title":"Simult\u00e2neo","text":"Nome Simult\u00e2neo Sin\u00f4nimos Paralelo, Concomitante No\u00e7\u00e3o Capacidade de realizar m\u00faltiplas a\u00e7\u00f5es ou colabora\u00e7\u00f5es ao mesmo tempo dentro da plataforma. Impacto Aumenta a efici\u00eancia e produtividade, permitindo que v\u00e1rios usu\u00e1rios ou processos aconte\u00e7am simultaneamente. Classifica\u00e7\u00e3o Adjetivo."},{"location":"analise/correcoes/lexicos_corrigido/#Slides","title":"Slides","text":"Nome Slides Sin\u00f4nimos P\u00e1ginas, Telas No\u00e7\u00e3o Unidades de conte\u00fado em uma apresenta\u00e7\u00e3o ou design que s\u00e3o visualizadas sequencialmente. Impacto Estruturam a apresenta\u00e7\u00e3o de informa\u00e7\u00f5es, facilitando a organiza\u00e7\u00e3o do conte\u00fado visual. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Smartphones","title":"Smartphones","text":"Nome Smartphones Sin\u00f4nimos Celulares, Dispositivos M\u00f3veis No\u00e7\u00e3o Dispositivos port\u00e1teis que permitem o acesso \u00e0 plataforma Canva em qualquer lugar. Impacto Amplia a acessibilidade e a mobilidade dos usu\u00e1rios, permitindo a cria\u00e7\u00e3o de design em qualquer momento e lugar. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Sobreposi\u00e7\u00e3o","title":"Sobreposi\u00e7\u00e3o","text":"Nome Sobreposi\u00e7\u00e3o Sin\u00f4nimos Overlay, Camada Adicional No\u00e7\u00e3o Utilizado para destacar ou real\u00e7ar partes espec\u00edficas de um design. Impacto Efeito visual onde um elemento \u00e9 colocado sobre outro, criando profundidade ou \u00eanfase. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Template","title":"Template","text":"Nome Template Sin\u00f4nimos Modelo, Esquema, Layout No\u00e7\u00e3o Oferece uma estrutura inicial que pode ser personalizada pelo usu\u00e1rio. Impacto Serve como base para a cria\u00e7\u00e3o de novos design, acelerando o processo criativo. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Teste","title":"Teste","text":"Nome Teste Sin\u00f4nimos Avalia\u00e7\u00e3o, Verifica\u00e7\u00e3o No\u00e7\u00e3o Processo de experimenta\u00e7\u00e3o de um design ou funcionalidade antes de sua finaliza\u00e7\u00e3o. Impacto Garante a qualidade do design, permitindo ajustes antes da entrega final. Classifica\u00e7\u00e3o Substantivo."},{"location":"analise/correcoes/lexicos_corrigido/#Usu\u00e1rio","title":"Usu\u00e1rio","text":"Nome Usu\u00e1rio Sin\u00f4nimos Cliente, Consumidor, Designer. No\u00e7\u00e3o Usa a ferramenta para criar, editar e compartilhar projetos gr\u00e1ficos. Impacto Interage com a plataforma Canva para criar design. Classifica\u00e7\u00e3o Substantivo"},{"location":"analise/correcoes/moscow_corrigido/","title":"MoSCoW","text":""},{"location":"analise/correcoes/moscow_corrigido/#historico-de-versoes","title":"Hist\u00f3rico de Vers\u00f5es","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 29/07/2024 Primeira vers\u00e3o da an\u00e1lise Gabriel Moura 1.0 03/09/2024 Corre\u00e7\u00e3o do MoSCoW ap\u00f3s a inspe\u00e7\u00e3o Luiza Maluf 2.0"},{"location":"analise/correcoes/moscow_corrigido/#origem","title":"Origem","text":"

O desenvolvimento deste MoSCoW foi dado a partir da Reuni\u00e3o 3.

"},{"location":"analise/correcoes/moscow_corrigido/#metodologia","title":"Metodologia","text":""},{"location":"analise/correcoes/moscow_corrigido/#introducao","title":"Introdu\u00e7\u00e3o","text":"

A an\u00e1lise MoSCoW \u00e9 uma t\u00e9cnica de prioriza\u00e7\u00e3o de requisitos amplamente utilizada em gerenciamento de projetos, especialmente em metodologias \u00e1geis. Ela auxilia na tomada de decis\u00e3o sobre quais funcionalidades devem ser implementadas primeiro, categorizando os requisitos em quatro n\u00edveis de prioridade: must, should, could e could.

Essa t\u00e9cnica \u00e9 fundamental para garantir que os recursos sejam alocados de forma eficiente, focando nos requisitos que trazem maior valor para o projeto, dentro do tempo e do or\u00e7amento dispon\u00edveis.

"},{"location":"analise/correcoes/moscow_corrigido/#objetivo","title":"Objetivo","text":"

O objetivo da an\u00e1lise MoSCoW \u00e9, em conjunto com o que foi aprendido em sala de aula, definir quais funcionalidades ser\u00e3o priorizadas no desenvolvimento da plataforma Canva. Priorizando as funcionalidades que s\u00e3o essenciais para o funcionamento b\u00e1sico da ferramenta, para posteriormente categorizar as funcionalidades que agregam valor \u00e0 experi\u00eancia do usu\u00e1rio e podem ser implementadas em vers\u00f5es futuras.

A an\u00e1lise MoSCoW se baseia em quatro categorias:

  • Must (Essencial): Requisitos absolutamente essenciais para o sistema funcionar. Se um requisito must n\u00e3o for atendido, o projeto \u00e9 considerado um fracasso.
  • Should (Importante): Requisitos importantes, mas n\u00e3o essenciais para o lan\u00e7amento da vers\u00e3o inicial. Podem ser implementados posteriormente, se necess\u00e1rio.
  • Could (Desej\u00e1vel): Requisitos desej\u00e1veis que agregam valor, mas n\u00e3o s\u00e3o cr\u00edticos. A implementa\u00e7\u00e3o deles depende de tempo e recursos dispon\u00edveis.
  • Would (Opcional): Requisitos de menor prioridade que podem ser considerados em vers\u00f5es futuras.

A equipe analisa cada requisito e o classifica em uma dessas categorias, com base em seu impacto no projeto, valor para o usu\u00e1rio, custo de implementa\u00e7\u00e3o e risco.

"},{"location":"analise/correcoes/moscow_corrigido/#artefatos","title":"Artefatos","text":""},{"location":"analise/correcoes/moscow_corrigido/#tabela-de-requisitos","title":"Tabela de Requisitos","text":""},{"location":"analise/correcoes/moscow_corrigido/#versao-10","title":"Vers\u00e3o 1.0","text":""},{"location":"analise/correcoes/moscow_corrigido/#tabela-de-requisitos-agrupados","title":"Tabela de Requisitos Agrupados","text":"ID Descri\u00e7\u00e3o Prioridade 1 Diversidade de formatos de design (posts, banners, apresenta\u00e7\u00f5es, etc.). Must 2 Templates personaliz\u00e1veis para cada formato. Must 3 Cria\u00e7\u00e3o de designs a partir do zero. Must 4 Importa\u00e7\u00e3o de imagens e fotos. Must 5 Salvar e exportar designs (PDF, JPG, PNG). Must 6 Importa\u00e7\u00e3o de v\u00eddeos e outros arquivos. Should 7 Exportar designs em formatos adicionais (SVG, MP4, GIF). Should 8 Integrar com redes sociais (agendamento de posts). Could 9 Ferramentas b\u00e1sicas de edi\u00e7\u00e3o de imagem (cortar, redimensionar, girar). Must 10 Ajustar brilho, contraste e satura\u00e7\u00e3o de imagens. Must 11 Ferramentas de edi\u00e7\u00e3o de texto (formata\u00e7\u00e3o b\u00e1sica, escolha de fontes, cores). Must 12 Adicionar \u00edcones, ilustra\u00e7\u00f5es e formas geom\u00e9tricas aos designs. Must 13 Ferramentas avan\u00e7adas de edi\u00e7\u00e3o de imagem (filtros, efeitos, remover fundo). Should 14 Criar efeitos de texto (sombra, contorno). Should 15 Camadas (organiza\u00e7\u00e3o b\u00e1sica, ordem e visibilidade). Should 16 Camadas (opacidade, bloqueio). Could 17 M\u00e1scaras (linear, radial). Could 18 Compartilhamento de designs para visualiza\u00e7\u00e3o. Must 19 Compartilhamento de designs para edi\u00e7\u00e3o com permiss\u00f5es b\u00e1sicas. Must 20 Edi\u00e7\u00e3o colaborativa em tempo real. Should 21 Sistema de chat na edi\u00e7\u00e3o colaborativa. Could 22 Coment\u00e1rios em elementos espec\u00edficos. Could 23 Grades e guias. Must 24 Pr\u00e9-visualiza\u00e7\u00e3o em tempo real. Must 25 Paleta de cores. Should 26 Guia de estilo. Could 27 Hist\u00f3rico de vers\u00f5es. Could 28 Atalhos de teclado. Could 29 Interface intuitiva e f\u00e1cil de usar. Must 30 Arrastar e soltar. Must 31 Design responsivo. Should 32 Integra\u00e7\u00e3o com outras ferramentas (redes sociais, armazenamento em nuvem). Could 33 Performance r\u00e1pida e eficiente. Must 34 Confiabilidade. Must 35 Seguran\u00e7a dos dados do usu\u00e1rio. Must 36 Acessibilidade. Should 37 Escalabilidade. Could 38 Internacionaliza\u00e7\u00e3o. Could"},{"location":"analise/correcoes/moscow_corrigido/#tabelas-de-requisitos-separadas-por-prioridade","title":"Tabelas de Requisitos Separadas por Prioridade","text":""},{"location":"analise/correcoes/moscow_corrigido/#must","title":"Must","text":"ID Descri\u00e7\u00e3o 1 Diversidade de formatos de design (posts, banners, apresenta\u00e7\u00f5es, etc.). 2 Templates personaliz\u00e1veis para cada formato. 3 Cria\u00e7\u00e3o de designs a partir do zero. 4 Importa\u00e7\u00e3o de imagens e fotos. 5 Salvar e exportar designs (PDF, JPG, PNG). 9 Ferramentas b\u00e1sicas de edi\u00e7\u00e3o de imagem (cortar, redimensionar, girar). 10 Ajustar brilho, contraste e satura\u00e7\u00e3o de imagens. 11 Ferramentas de edi\u00e7\u00e3o de texto (formata\u00e7\u00e3o b\u00e1sica, escolha de fontes, cores). 12 Adicionar \u00edcones, ilustra\u00e7\u00f5es e formas geom\u00e9tricas aos designs. 18 Compartilhamento de designs para visualiza\u00e7\u00e3o. 19 Compartilhamento de designs para edi\u00e7\u00e3o com permiss\u00f5es b\u00e1sicas. 23 Grade e guias. 24 Pr\u00e9-visualiza\u00e7\u00e3o em tempo real. 29 Interface intuitiva e f\u00e1cil de usar. 30 Arrastar e soltar. 33 Performance r\u00e1pida e eficiente. 34 Confiabilidade. 35 Seguran\u00e7a dos dados do usu\u00e1rio."},{"location":"analise/correcoes/moscow_corrigido/#should","title":"Should","text":"N\u00ba Requisito 6 Importa\u00e7\u00e3o de v\u00eddeos e outros arquivos 7 Exportar designs em formatos adicionais (SVG, MP4, GIF) 13 Ferramentas avan\u00e7adas de edi\u00e7\u00e3o de imagem (filtros, efeitos, remover fundo) 14 Criar efeitos de texto (sombra, contorno) 15 Camadas (organiza\u00e7\u00e3o b\u00e1sica, ordem e visibilidade) 20 Edi\u00e7\u00e3o colaborativa em tempo real 25 Paleta de cores 31 Design responsivo 36 Acessibilidade"},{"location":"analise/correcoes/moscow_corrigido/#could","title":"Could","text":"N\u00ba Requisito 8 Integrar com redes sociais (agendamento de posts) 16 Camadas (opacidade, bloqueio) 17 M\u00e1scaras (linear, radial) 21 Sistema de chat na edi\u00e7\u00e3o colaborativa 22 Coment\u00e1rios em elementos espec\u00edficos 26 Guia de estilo 27 Hist\u00f3rico de vers\u00f5es 28 Atalhos de teclado 32 Integra\u00e7\u00e3o com outras ferramentas (redes sociais, armazenamento em nuvem) 37 Escalabilidade 38 Internacionaliza\u00e7\u00e3o"},{"location":"analise/correcoes/moscow_corrigido/#would","title":"Would","text":"N\u00ba Requisito (Nenhum requisito foi classificado como Would nesta vers\u00e3o)"},{"location":"analise/correcoes/moscow_corrigido/#justificativa-e-impacto-de-cada-priorizacao","title":"Justificativa e impacto de cada prioriza\u00e7\u00e3o","text":"
  1. Diversidade de formatos de design (posts, banners, apresenta\u00e7\u00f5es, etc.): Essencial para atender \u00e0s diversas necessidades dos usu\u00e1rios, garantindo flexibilidade na cria\u00e7\u00e3o de diferentes tipos de conte\u00fado. Sem isso, o valor central da plataforma \u00e9 comprometido.

    • Impacto: Permite criar uma ampla gama de conte\u00fados para diferentes finalidades, oferecendo flexibilidade e atendendo a diversas necessidades.
  2. Templates personaliz\u00e1veis para cada formato: Facilita a cria\u00e7\u00e3o e aumenta a acessibilidade, especialmente para usu\u00e1rios menos experientes. Essencial para usabilidade b\u00e1sica.

    • Impacto: Facilita a cria\u00e7\u00e3o de designs ao fornecer estruturas pr\u00e9-feitas que podem ser adaptadas, tornando o processo mais r\u00e1pido e acess\u00edvel.
  3. Cria\u00e7\u00e3o de designs a partir do zero: Oferece liberdade criativa, permitindo que os usu\u00e1rios expressem suas ideias sem limita\u00e7\u00f5es, fundamental para um editor de design.

    • Impacto: Oferece total liberdade criativa, permitindo que os usu\u00e1rios criem designs \u00fanicos e personalizados de acordo com suas vis\u00f5es.
  4. Importa\u00e7\u00e3o de imagens e fotos: Necess\u00e1rio para personaliza\u00e7\u00e3o e cria\u00e7\u00e3o de designs \u00fanicos, permitindo a inclus\u00e3o de elementos visuais pr\u00f3prios dos usu\u00e1rios.

    • Impacto: Permite adicionar elementos visuais pessoais aos designs, tornando-os mais relevantes e personalizados.
  5. Salvar e exportar designs (PDF, JPG, PNG): Essencial para uso e compartilhamento dos designs criados em formatos amplamente suportados, garantindo aplicabilidade pr\u00e1tica.

    • Impacto: Facilita o uso e compartilhamento dos designs em formatos amplamente aceitos, aumentando a praticidade.
  6. Importa\u00e7\u00e3o de v\u00eddeos e outros arquivos: Importante para suportar multim\u00eddia, enriquecendo os designs, mas n\u00e3o essencial para o lan\u00e7amento inicial.

    • Impacto: Adiciona a capacidade de trabalhar com multim\u00eddia, enriquecendo os designs com diferentes tipos de m\u00eddia.
  7. Exportar designs em formatos adicionais (SVG, MP4, GIF): Fornece flexibilidade e op\u00e7\u00f5es adicionais de uso, atendendo a necessidades espec\u00edficas de alguns projetos.

    • Impacto: Oferece mais op\u00e7\u00f5es para uso e compartilhamento dos designs, atendendo a necessidades espec\u00edficas de alguns projetos.
  8. Integrar com redes sociais (agendamento de posts): Agrega conveni\u00eancia ao permitir a publica\u00e7\u00e3o direta, mas n\u00e3o \u00e9 essencial para o funcionamento b\u00e1sico.

    • Impacto: Permite a publica\u00e7\u00e3o direta dos designs nas redes sociais, economizando tempo e simplificando o processo de marketing.
  9. Ferramentas b\u00e1sicas de edi\u00e7\u00e3o de imagem (cortar, redimensionar, girar): Oferece controle b\u00e1sico sobre elementos visuais, essencial em qualquer editor de design.

    • Impacto: D\u00e1 controle b\u00e1sico sobre a modifica\u00e7\u00e3o de imagens, permitindo ajustes simples e r\u00e1pidos.
  10. Ajustar brilho, contraste e satura\u00e7\u00e3o de imagens: Necess\u00e1rio para ajustes b\u00e1sicos de qualidade visual, facilitando melhorias intuitivas nos designs.

    • Impacto: Melhora a qualidade visual dos designs com ajustes simples e intuitivos.
  11. Ferramentas de edi\u00e7\u00e3o de texto (formata\u00e7\u00e3o b\u00e1sica, escolha de fontes, cores): Essenciais para a cria\u00e7\u00e3o de textos personalizados e visuais atrativos nos designs.

    • Impacto: Permite personalizar textos de forma eficaz, criando designs visualmente atraentes e com conte\u00fado bem formatado.
  12. Adicionar \u00edcones, ilustra\u00e7\u00f5es e formas geom\u00e9tricas aos designs: Enriquecem os designs e oferecem uma ampla gama de op\u00e7\u00f5es criativas.

    • Impacto: Enriquecem os designs com elementos visuais variados, proporcionando mais op\u00e7\u00f5es criativas.
  13. Ferramentas avan\u00e7adas de edi\u00e7\u00e3o de imagem (filtros, efeitos, remover fundo): Adicionam valor e aprimoram os designs, mas podem ser implementadas ap\u00f3s o lan\u00e7amento inicial.

    • Impacto: Permite melhorias e personaliza\u00e7\u00f5es mais sofisticadas nas imagens, aprimorando a qualidade dos designs.
  14. Criar efeitos de texto (sombra, contorno): Melhora a apar\u00eancia dos textos com op\u00e7\u00f5es de estiliza\u00e7\u00e3o avan\u00e7adas, importantes para designs sofisticados.

    • Impacto: Melhora a est\u00e9tica dos textos com op\u00e7\u00f5es de estiliza\u00e7\u00e3o adicionais, tornando-os mais impactantes.
  15. Camadas (organiza\u00e7\u00e3o b\u00e1sica, ordem e visibilidade): Facilita a manipula\u00e7\u00e3o e organiza\u00e7\u00e3o de elementos em projetos complexos.

    • Impacto: Facilita a organiza\u00e7\u00e3o de elementos em projetos complexos, permitindo uma manipula\u00e7\u00e3o mais precisa.
  16. Camadas (opacidade, bloqueio): Recursos adicionais para controle avan\u00e7ado de camadas, \u00fateis para designs precisos, mas n\u00e3o essenciais inicialmente.

    • Impacto: Oferece controle avan\u00e7ado sobre a visibilidade e edi\u00e7\u00e3o de camadas, \u00fatil para designs mais detalhados.
  17. M\u00e1scaras (linear, radial): Oferece controle criativo para efeitos visuais complexos, mas n\u00e3o \u00e9 cr\u00edtico para a funcionalidade b\u00e1sica.

    • Impacto: Proporciona controle criativo para aplicar efeitos visuais avan\u00e7ados, aumentando as possibilidades de design.
  18. Compartilhamento de designs para visualiza\u00e7\u00e3o: Fundamental para colabora\u00e7\u00e3o e revis\u00e3o, permitindo f\u00e1cil compartilhamento de projetos.

    • Impacto: Facilita a revis\u00e3o e o feedback dos designs, permitindo que outras pessoas vejam e comentem os projetos.
  19. Compartilhamento de designs para edi\u00e7\u00e3o com permiss\u00f5es b\u00e1sicas: Suporta a colabora\u00e7\u00e3o com controles de permiss\u00e3o, essencial para trabalhos em equipe.

    • Impacto: Permite a colabora\u00e7\u00e3o com outros usu\u00e1rios, ajustando permiss\u00f5es para editar ou visualizar, essencial para o trabalho em equipe.
  20. Edi\u00e7\u00e3o colaborativa em tempo real: Melhora a efici\u00eancia de equipes, sendo implement\u00e1vel ap\u00f3s a funcionalidade b\u00e1sica de colabora\u00e7\u00e3o.

    • Impacto: Melhora a efici\u00eancia de equipes ao permitir edi\u00e7\u00e3o simult\u00e2nea, promovendo uma colabora\u00e7\u00e3o mais fluida.
  21. Sistema de chat na edi\u00e7\u00e3o colaborativa: Facilita comunica\u00e7\u00e3o durante a edi\u00e7\u00e3o, mas n\u00e3o \u00e9 cr\u00edtico para o funcionamento colaborativo inicial.

    • Impacto: Facilita a comunica\u00e7\u00e3o durante o processo de edi\u00e7\u00e3o colaborativa, embora n\u00e3o seja essencial inicialmente.
  22. Coment\u00e1rios em elementos espec\u00edficos: Adiciona valor \u00e0 revis\u00e3o colaborativa, permitindo feedback direto em elementos.

    • Impacto: Permite fornecer feedback direto e espec\u00edfico sobre partes dos designs, melhorando a revis\u00e3o colaborativa.
  23. Grades e guias: Essenciais para organiza\u00e7\u00e3o precisa dos designs, ajudando no alinhamento de elementos.

    • Impacto: Auxilia na organiza\u00e7\u00e3o e alinhamento preciso dos elementos, garantindo uma estrutura mais limpa e profissional.
  24. Pr\u00e9-visualiza\u00e7\u00e3o em tempo real: Permite visualiza\u00e7\u00e3o imediata das mudan\u00e7as feitas, melhorando a precis\u00e3o e experi\u00eancia de edi\u00e7\u00e3o.

    • Impacto: Oferece uma visualiza\u00e7\u00e3o imediata das altera\u00e7\u00f5es feitas, ajudando a ajustar e refinar os designs com mais precis\u00e3o.
  25. Paleta de cores: Ajuda a manter consist\u00eancia visual e personaliza\u00e7\u00e3o, importante, mas n\u00e3o essencial para a funcionalidade b\u00e1sica.

    • Impacto: Ajuda a manter a consist\u00eancia visual e personaliza\u00e7\u00e3o dos designs, melhorando a coes\u00e3o est\u00e9tica.
  26. Guia de estilo: \u00datil para consist\u00eancia, especialmente em equipes, mas pode ser implementado depois.

    • Impacto: Auxilia na manuten\u00e7\u00e3o da consist\u00eancia em projetos, especialmente em equipes, garantindo uma identidade visual uniforme.
  27. Hist\u00f3rico de vers\u00f5es: Permite reverter mudan\u00e7as e acompanhar o progresso, \u00fatil para projetos complexos, mas n\u00e3o essencial para lan\u00e7amento inicial.

    • Impacto: Permite reverter altera\u00e7\u00f5es e acompanhar o progresso, \u00fatil para gerenciar mudan\u00e7as e manter o controle dos projetos.
  28. Atalhos de teclado: Melhora a efici\u00eancia para usu\u00e1rios avan\u00e7ados, mas n\u00e3o \u00e9 cr\u00edtico para uso b\u00e1sico.

    • Impacto: Melhora a efici\u00eancia para usu\u00e1rios avan\u00e7ados, tornando o processo de edi\u00e7\u00e3o mais r\u00e1pido e \u00e1gil.
  29. Interface intuitiva e f\u00e1cil de usar: Essencial para acessibilidade e satisfa\u00e7\u00e3o, aumentando ades\u00e3o e uso da plataforma.

    • Impacto: Facilita o uso da plataforma, tornando-a mais acess\u00edvel e agrad\u00e1vel, especialmente para novos usu\u00e1rios.
  30. Arrastar e soltar: Torna a manipula\u00e7\u00e3o de elementos mais intuitiva, essencial para boa experi\u00eancia do usu\u00e1rio.

    • Impacto: Torna a manipula\u00e7\u00e3o de elementos mais intuitiva, simplificando a edi\u00e7\u00e3o e a organiza\u00e7\u00e3o dos designs.
  31. Design responsivo: Garante bom funcionamento em diferentes dispositivos, importante para acessibilidade, mas pode ser melhorado gradualmente.

    • Impacto: Garante que os designs funcionem bem em diferentes dispositivos, melhorando a acessibilidade e a experi\u00eancia do usu\u00e1rio.
  32. Integra\u00e7\u00e3o com outras ferramentas (redes sociais, armazenamento em nuvem): Facilita fluxo de trabalho, mas \u00e9 um recurso adicional para vers\u00f5es futuras.

    • Impacto: Facilita o fluxo de trabalho e o gerenciamento de arquivos, embora seja um recurso adicional para vers\u00f5es futuras.
  33. Performance r\u00e1pida e eficiente: Essencial para manter a usabilidade e satisfa\u00e7\u00e3o do usu\u00e1rio, evitando frustra\u00e7\u00f5es.

    • Impacto: Assegura uma experi\u00eancia de uso fluida e sem frustra\u00e7\u00f5es, mantendo a satisfa\u00e7\u00e3o com a plataforma.
  34. Confiabilidade: Necess\u00e1ria para a confian\u00e7a dos usu\u00e1rios na plataforma, essencial para a credibilidade.

    • Impacto: Garante que a plataforma funcione de forma consistente, fortalecendo a confian\u00e7a e a credibilidade entre os usu\u00e1rios.
  35. Seguran\u00e7a dos dados do usu\u00e1rio: Cr\u00edtica para prote\u00e7\u00e3o de informa\u00e7\u00f5es pessoais, essencial para conformidade e confian\u00e7a.

    • Impacto: Protege informa\u00e7\u00f5es pessoais e dados sens\u00edveis, essencial para a confian\u00e7a e conformidade com regulamenta\u00e7\u00f5es.
  36. Acessibilidade: Importante para inclus\u00e3o, melhorando o uso para pessoas com necessidades especiais, mas pode ser ajustada com o tempo.

    • Impacto: Melhora a inclus\u00e3o de pessoas com necessidades especiais, tornando a plataforma mais acess\u00edvel a um p\u00fablico mais amplo.
  37. Escalabilidade: Permite crescimento sem perda de performance, importante para o futuro, mas n\u00e3o cr\u00edtico inicialmente.

    • Impacto: Permite que a plataforma cres\u00e7a e se adapte \u00e0 medida que mais usu\u00e1rios e recursos s\u00e3o adicionados, garantindo uma boa experi\u00eancia a longo prazo.
  38. Internacionaliza\u00e7\u00e3o: Facilita o uso global da plataforma, \u00fatil para expans\u00e3o, mas n\u00e3o \u00e9 necess\u00e1rio para o lan\u00e7amento inicial.

    • Impacto: Facilita o uso da plataforma em diferentes regi\u00f5es e idiomas, permitindo a expans\u00e3o global e melhor atendimento a um p\u00fablico diversificado.
"},{"location":"analise/correcoes/nfr-framework_corrigido/","title":"NFR Framework","text":""},{"location":"analise/correcoes/nfr-framework_corrigido/#historico-de-versoes","title":"Hist\u00f3rico de Vers\u00f5es","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 17/08/2024 Desenvolvimento inicial dos NFR Frameworks. Caio Alexandre 0.0 05/09/2024 NFRs refeitos em nova e melhor vers\u00e3o. Gabriel Moura 1.0"},{"location":"analise/correcoes/nfr-framework_corrigido/#origem","title":"Origem","text":"

O desenvolvimento deste NFR Framework foi dado a partir da Reuni\u00e3o 5.

"},{"location":"analise/correcoes/nfr-framework_corrigido/#metodologia","title":"Metodologia","text":"

O desenvolvimento do NFR Framework foi feito primeiramente com a identifica\u00e7\u00e3o dos requisitos n\u00e3o funcionais do sistema. Em seguida, foi feita a modelagem primeiramente pelo Caio, que posteriormente foi revisada e melhorada pelo Rodrigo (houve um swap de tarefas).

"},{"location":"analise/correcoes/nfr-framework_corrigido/#introducao","title":"Introdu\u00e7\u00e3o","text":"

O NFR \u00e9 um framework orientado a metas, que busca representar requisitos n\u00e3o funcionais de um sistema de software. Desse modelo \u00e9 abstra\u00eddo um diagrama formado por softgoals (requisitos de qualidade), operacionaliza\u00e7\u00e3o, argumenta\u00e7\u00e3o, impactos e legenda.

"},{"location":"analise/correcoes/nfr-framework_corrigido/#artefatos","title":"Artefatos","text":""},{"location":"analise/correcoes/nfr-framework_corrigido/#geral-nfrf1","title":"Geral (NFRF1)","text":""},{"location":"analise/correcoes/nfr-framework_corrigido/#versao-00","title":"Vers\u00e3o 0.0","text":""},{"location":"analise/correcoes/nfr-framework_corrigido/#versao-10","title":"Vers\u00e3o 1.0","text":""},{"location":"analise/correcoes/nfr-framework_corrigido/#edicao-de-imagens-nfrf2","title":"Edi\u00e7\u00e3o de Imagens (NFRF2)","text":""},{"location":"analise/correcoes/nfr-framework_corrigido/#versao-00_1","title":"Vers\u00e3o 0.0","text":""},{"location":"analise/correcoes/nfr-framework_corrigido/#versao-10_1","title":"Vers\u00e3o 1.0","text":""},{"location":"analise/correcoes/nfr-framework_corrigido/#apresentacao-de-slides-nfrf3","title":"Apresenta\u00e7\u00e3o de Slides (NFRF3)","text":""},{"location":"analise/correcoes/nfr-framework_corrigido/#versao-00_2","title":"Vers\u00e3o 0.0","text":""},{"location":"analise/correcoes/nfr-framework_corrigido/#versao-10_2","title":"Vers\u00e3o 1.0","text":""},{"location":"atas/reuniao1/","title":"Reuni\u00e3o 1","text":"

Data: [25/07/2024] Hora de In\u00edcio: [20h30] Hora de T\u00e9rmino: [23h00] Local: [Discord]

"},{"location":"atas/reuniao1/#participantes","title":"Participantes","text":"
  • Caio Alexandre Ornelas Silva
  • Gabriel Moura dos Santos
  • Luiza Maluf Amorim
"},{"location":"atas/reuniao1/#pauta","title":"Pauta","text":"

Constru\u00e7\u00e3o do Rich Picture e Brainstorm.

"},{"location":"atas/reuniao1/#discussoes","title":"Discuss\u00f5es","text":"

Discuss\u00e3o inicial sobre a plataforma Canva, navegando entre todas as funcionalidades para ajudar a contru\u00e7\u00e3o dos Rich Picture. Os integrantes buscaram entender o fluxo principal do usu\u00e1rio para usar como base.

Entendendo melhor como funciona a plataforma, pudemos j\u00e1 fazer o Brainstorm e produzir mapas mentais.

"},{"location":"atas/reuniao1/#decisoes","title":"Decis\u00f5es","text":""},{"location":"atas/reuniao1/#rich-picture","title":"Rich Picture","text":"

Decidimos focar no percurso do usu\u00e1rio na plataforma e analisar as possibiliades que ele tem ao fazer o seu cadastro.

"},{"location":"atas/reuniao1/#brainstorm","title":"Brainstorm","text":"

Decidimos primeiro pensar em palavras-chave que melhor representasse o que est\u00e1vamos analisando. A partir das palavras, pudemos construir macro ideias sobre a plataforma.

"},{"location":"atas/reuniao1/#artefatos","title":"Artefatos","text":"
  • Rich Picture
  • Brainstorm
"},{"location":"atas/reuniao2/","title":"Reuni\u00e3o 2","text":"

Data: [28/07/2024] Hora de In\u00edcio: [19h30] Hora de T\u00e9rmino: [21h00] Local: [Teams]

"},{"location":"atas/reuniao2/#participantes","title":"Participantes","text":"
  • Caio Alexandre Ornelas Silva
  • Gabriel Moura dos Santos
  • Luiza Maluf Amorim
  • Rodrigo Mattos de F. Ayres Bezerra
  • Henrique Camelo Quenino
"},{"location":"atas/reuniao2/#pauta","title":"Pauta","text":"

Constru\u00e7\u00e3o da Argumenta\u00e7\u00e3o

"},{"location":"atas/reuniao2/#discussoes","title":"Discuss\u00f5es","text":"

Argumenta\u00e7\u00e3o sobre os pontos positivos e negativos da Plataforma Canva, identificando os conflitos entre funcionalidades e suas limita\u00e7\u00f5es.

"},{"location":"atas/reuniao2/#decisoes","title":"Decis\u00f5es","text":"

Decidimos usar o Framework ACE como framework de argumenta\u00e7\u00e3o e para representar as informa\u00e7\u00f5es obtidas a partir da nossa discuss\u00e3o em grupo.

"},{"location":"atas/reuniao2/#acoes","title":"A\u00e7\u00f5es","text":"
  1. Argumenta\u00e7\u00e3o
"},{"location":"atas/reuniao2/#observacao","title":"Observa\u00e7\u00e3o","text":"

A reuni\u00e3o foi feita pelo Teams para que pudesse ser gravada de forma adequada, contudo, tivemos uma dificuldade na utiliza\u00e7\u00e3o da ferramenta de grava\u00e7\u00e3o, nos prejudicando no armazenamento desse artefato.

As proximas reuni\u00f5es ter\u00e3o grava\u00e7\u00e3o ou grava\u00e7\u00e3o de a\u00fadio anexadas de forma adequada.

"},{"location":"atas/reuniao3/","title":"Reuni\u00e3o 3","text":"

Data: [29/07/2024] Hora de In\u00edcio: [20h30] Hora de T\u00e9rmino: [23h30] Local: [Discord]

"},{"location":"atas/reuniao3/#participantes","title":"Participantes","text":"
  • Caio Alexandre Ornelas Silva
  • Gabriel Moura dos Santos
"},{"location":"atas/reuniao3/#pauta","title":"Pauta","text":"

Constru\u00e7\u00e3o do MoSCoW e do First Things First

"},{"location":"atas/reuniao3/#discussoes","title":"Discuss\u00f5es","text":"

Utiliza\u00e7\u00e3o das T\u00e9cnicas de prioriza\u00e7\u00e3o de requisitos chamadas MoSCow e First Thins First para entender melhos e definir os requisitos da Plataforma Canva.

"},{"location":"atas/reuniao3/#acoes","title":"A\u00e7\u00f5es","text":"
  1. MoSCoW
  2. First Things First
"},{"location":"atas/reuniao3/#observacao","title":"Observa\u00e7\u00e3o","text":"

A reuni\u00e3o foi feita pelo Discord e os integrantes do grupo lembraram de fazer a grava\u00e7\u00e3o somente no final da reuni\u00e3o.

"},{"location":"atas/reuniao4/","title":"Reuni\u00e3o 4","text":"

Data: [30/07/2024] Hora de In\u00edcio: [19h25] Hora de T\u00e9rmino: [23h30] Local: [Discord]

"},{"location":"atas/reuniao4/#participantes","title":"Participantes","text":"
  • Caio Alexandre Ornelas Silva
  • Gabriel Moura dos Santos
  • Luiza Maluf Amorim
  • Rodrigo Mattos de F. Ayres Bezerra
  • Henrique Camelo Quenino
"},{"location":"atas/reuniao4/#pauta","title":"Pauta","text":"

An\u00e1lise dos resultados obtidos com as t\u00e9cnicas de elicita\u00e7\u00e3o e pre-rastreabilidade.

"},{"location":"atas/reuniao4/#discussoes","title":"Discuss\u00f5es","text":"

Utiliza\u00e7\u00e3o da ferramente de reuni\u00e3o Discord para an\u00e1lise dos resultados obtidos com as t\u00e9cnicas de elicita\u00e7\u00e3o e pre-rastreabilidade. Os integrantes do grupo discutiram sobre os resultados obtidos e como eles podem ser utilizados para a defini\u00e7\u00e3o dos requisitos do projeto.

"},{"location":"atas/reuniao4/#decisoes","title":"Decis\u00f5es","text":"
  1. Os resultados obtidos com as t\u00e9cnicas de elicita\u00e7\u00e3o e pre-rastreabilidade ser\u00e3o utilizados para a defini\u00e7\u00e3o dos requisitos do projeto.

  2. A pr\u00f3xima reuni\u00e3o ser\u00e1 realizada no dia 07/08/2024, \u00e0s 20h30, no Discord.

"},{"location":"atas/reuniao5/","title":"Reuni\u00e3o 5","text":"

Data: [07/08/2024] Hora de In\u00edcio: [20h30] Hora de T\u00e9rmino: [23h50] Local: [Discord]

"},{"location":"atas/reuniao5/#participantes","title":"Participantes","text":"
  • Caio Alexandre Ornelas Silva
  • Gabriel Moura dos Santos
  • Luiza Maluf Amorim
  • Rodrigo Mattos de F. Ayres Bezerra
  • Henrique Camelo Quenino
"},{"location":"atas/reuniao5/#pauta","title":"Pauta","text":"

Definir metodologia de desenvolvimento da parte de modelagem do projeto.

"},{"location":"atas/reuniao5/#discussoes","title":"Discuss\u00f5es","text":"

Os integrantes do grupo discutiram sobre as metodologias de desenvolvimento de software e como elas foram aplicadas ao projeto em quest\u00e3o. Foi decidido pelo pair programming, onde dois programadores trabalham juntos em um mesmo computador, um escrevendo o c\u00f3digo e o outro revisando. De modo que a modelagem por meio de diagramas UML seja feita de forma mais eficiente e com menos erros.

"},{"location":"atas/reuniao5/#decisoes","title":"Decis\u00f5es","text":"
  1. A metodologia de desenvolvimento de software escolhida foi o pair programming.
  2. Designou-se a tarefa de modelagem de cenarios para os integrantes Henrique e Luiza.
  3. Designou-se a tarefa de modelagem dos casos de uso para os integrantes Henrique e Gabriel.
  4. Designou-se a tarefa de modelagem por diagrama de classes para os integrantes Henrique e Gabriel.
  5. Designou-se a tarefa de modelagem do l\u00e9xico para os integrantes Luiza e Henrique.
  6. Designou-se a tarefa de modelagem por NFR para os integrantes Caio e Rodrigo.
  7. Designou-se a tarefa de modelagem por iStar para os integrantes Caio e Rodrigo.
  8. Designou-se a tarefa de modelagem por especifica\u00e7\u00e3o de suplementar para os integrantes Henrique e Luiza.
  9. A pr\u00f3xima reuni\u00e3o ser\u00e1 realizada no dia 10/08/2024, \u00e0s 20h30, no Discord.
"},{"location":"elicitacao/analise_protocolo/","title":"An\u00e1lise de Protocolo","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 30/07/2024 Adi\u00e7\u00e3o da An\u00e1lise de Protocolo feita ap\u00f3s navega\u00e7\u00e3o na plataforma Rodrigo Mattos 1.0
  • Objetivo: Avaliar a usabilidade do processo de cria\u00e7\u00e3o de uma apresenta\u00e7\u00e3o no Canva.
  • Participantes: Rodrigo Mattos (membro do grupo).
  • Tarefa: Criar uma apresenta\u00e7\u00e3o de slides utilizando templates, elementos gr\u00e1ficos e adicionando texto.
"},{"location":"elicitacao/analise_protocolo/#execucao-da-tarefa","title":"Execu\u00e7\u00e3o da tarefa","text":"
  • A navega\u00e7\u00e3o \u00e9 simples e intuitiva.
  • \u00c9 f\u00e1cil de encontrar modelos de templates, onde podemos filtrar pelo formato, estilo, tema, entre outros.
  • A personaliza\u00e7\u00e3o com elementos gr\u00e1ficos e textos tamb\u00e9m \u00e9 simples e intuitiva, com diversas op\u00e7\u00f5es de formas, cores, modelos e tamb\u00e9m permite a importa\u00e7\u00e3o de imagens, v\u00eddeos e \u00e1udios.
  • O compartilhamento com outras pessoas \u00e9 simples e f\u00e1cil, sendo necess\u00e1rio apenas o envio do link para que outras pessoas possam editar e/ou ver a apresenta\u00e7\u00e3o.
  • A exporta\u00e7\u00e3o da apresenta\u00e7\u00e3o como PDF tamb\u00e9m \u00e9 simples e intuitiva.
"},{"location":"elicitacao/analise_protocolo/#analise-dos-dados","title":"An\u00e1lise dos dados","text":"

Quanto \u00e0 navega\u00e7\u00e3o, funcionalidade, usabilidade e interface, o Canva se mostrou um site muito simples, intuitivo e de f\u00e1cil acesso e manipula\u00e7\u00e3o, tanto para pessoas que j\u00e1 utilizaram o site quanto para pessoas que est\u00e3o tendo um primeiro contato.

"},{"location":"elicitacao/analise_protocolo/#relatorio","title":"Relat\u00f3rio","text":"
  • Participantes: Rodrigo Mattos (membro do grupo).
  • Dificuldades encontradas: N\u00e3o foram encontradas dificuldades durante o uso do Canva pelo participante (talvez uma poss\u00edvel dificuldade encontrada por pessoas que nunca usaram o Canva seja a grande quantidade de modelos de templates, formas, modelos e cores, podendo levar o usu\u00e1rio a ficar um pouco perdido durante a navega\u00e7\u00e3o).
  • Coment\u00e1rios: \u201cAchei o site bem simples e intuitivo de se usar\u201d.
"},{"location":"elicitacao/analise_protocolo/#video-da-analise","title":"V\u00eddeo da An\u00e1lise","text":"

"},{"location":"elicitacao/brainstorming/","title":"Brainstorming","text":""},{"location":"elicitacao/brainstorming/#historico-de-versoes","title":"Hist\u00f3rico de Vers\u00f5es","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 31/07/2024 Cria\u00e7\u00e3o do documento. Caio Alexandre 0.0"},{"location":"elicitacao/brainstorming/#origem","title":"Origem","text":"

O desenvolvimento deste branstorming foi dado a partir da Reuni\u00e3o 1.

"},{"location":"elicitacao/brainstorming/#metodologia","title":"Metodologia","text":"

Durante a reuni\u00e3o, o grupo se reuniu para identificar poss\u00edveis palavras-chave e requisitos que melhor descrevem a plataforma Canva. A partir disso, foi poss\u00edvel gerar uma lista inicial de requisitos que ser\u00e3o utilizados para gerar o mapa mental. O objetivo desta lista \u00e9 identificar os requisitos mais elementares que definem a base da plataforma.

A partir do brainstorming, decidimos utilizar a t\u00e9cnica de MoSCoW e First Things First para priorizar os requisitos identificados.

"},{"location":"elicitacao/brainstorming/#introducao","title":"Introdu\u00e7\u00e3o","text":"

A ideia do brainstorming consiste em um grupo de pessoas se reunir para gerar ideias e solu\u00e7\u00f5es para um problema espec\u00edfico. O brainstorming \u00e9 uma t\u00e9cnica muito utilizada em diversas \u00e1reas, como por exemplo, na \u00e1rea de desenvolvimento de software. A partir dessa t\u00e9cnica, foi poss\u00edvel identificar os requisitos necess\u00e1rios para o desenvolvimento do projeto, junto com a escolha de t\u00e9cnicas para a prioriza\u00e7\u00e3o dos requisitos.

"},{"location":"elicitacao/brainstorming/#artefatos","title":"Artefatos","text":""},{"location":"elicitacao/brainstorming/#requisitos-inicial","title":"Requisitos Inicial","text":"

Os requisitos identificados durante o brainstorming foram:

  • O sistema deve permitir o cadastro de usu\u00e1rios
  • O sistema deve permitir a cria\u00e7\u00e3o de imagens, panfletos, banners, etc.
  • O usu\u00e1rio deve poder utilizar templates prontos
  • O sistema deve permitir a exporta\u00e7\u00e3o das imagens criadas
  • O sistema deve permitir a edi\u00e7\u00e3o das imagens criadas
  • O sistema deve permitir a exclus\u00e3o das imagens criadas
  • O sistema deve permitir a visualiza\u00e7\u00e3o das imagens criadas
  • O sistema deve permitir a personaliza\u00e7\u00e3o das imagens criadas
"},{"location":"elicitacao/brainstorming/#mapa-mental","title":"Mapa Mental","text":"

Como resultado desta t\u00e9cnica, foi gerado um mapa mental contendo os requisitos identificados durante o brainstorming. O mapa mental foi gerado utilizando a ferramenta Miro. A imagem do mapa mental pode ser visualizada abaixo:

"},{"location":"elicitacao/brainstorming/#versao-00","title":"Vers\u00e3o 0.0","text":""},{"location":"elicitacao/brainstorming/#priorizacao-dos-requisitos","title":"Prioriza\u00e7\u00e3o dos Requisitos","text":"

As t\u00e9cnicas escolhidas foram o MoSCoW e First Things First.

"},{"location":"elicitacao/first_things/","title":"First Things First","text":""},{"location":"elicitacao/first_things/#historico-de-versoes","title":"Hist\u00f3rico de Vers\u00f5es","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 29/07/2024 Primeira vers\u00e3o da an\u00e1lise FTF. Gabriel Moura 0.0"},{"location":"elicitacao/first_things/#origem","title":"Origem","text":"

O desenvolvimento deste MoSCoW foi dado a partir da Reuni\u00e3o 3.

"},{"location":"elicitacao/first_things/#metodologia","title":"Metodologia","text":""},{"location":"elicitacao/first_things/#introducao","title":"Introdu\u00e7\u00e3o","text":"

A t\u00e9cnica First Things First \u00e9 um m\u00e9todo de prioriza\u00e7\u00e3o que visa classificar os requisitos com base na rela\u00e7\u00e3o entre seu valor e o custo/risco envolvido em sua implementa\u00e7\u00e3o. Essa t\u00e9cnica \u00e9 especialmente \u00fatil para determinar a ordem de desenvolvimento das funcionalidades, garantindo que as de maior valor e menor custo/risco sejam priorizadas.

"},{"location":"elicitacao/first_things/#objetivo","title":"Objetivo","text":"

O objetivo da an\u00e1lise First Things First \u00e9 definir a ordem ideal de implementa\u00e7\u00e3o dos requisitos elicitados para a plataforma Canva, considerando o benef\u00edcio proporcionado ao usu\u00e1rio em rela\u00e7\u00e3o ao custo e risco de desenvolvimento.

A metodologia First Things First se baseia em uma tabela onde cada requisito \u00e9 avaliado em quatro crit\u00e9rios, utilizando uma escala de 1 a 9:

  1. Benef\u00edcio Relativo: Representa o qu\u00e3o ben\u00e9fico o requisito \u00e9 para o usu\u00e1rio, caso seja implementado.
  2. Penalidade Relativa: Indica o qu\u00e3o prejudicial seria para o usu\u00e1rio caso o requisito n\u00e3o fosse implementado.
  3. Custo Relativo: Reflete o custo estimado (em tempo, esfor\u00e7o e recursos) para implementar o requisito.
  4. Risco Relativo: Avalia o risco potencial de encontrar problemas ou dificuldades na implementa\u00e7\u00e3o do requisito.

Com base nessas avalia\u00e7\u00f5es, s\u00e3o calculados os seguintes valores:

  • Valor Total: Soma do Benef\u00edcio Relativo e da Penalidade Relativa.
  • Valor %: Porcentagem que o Valor Total de um requisito representa em rela\u00e7\u00e3o \u00e0 soma de todos os Valores Totais.
  • Custo %: Porcentagem que o Custo Relativo de um requisito representa em rela\u00e7\u00e3o \u00e0 soma de todos os Custos Relativos.
  • Risco %: Porcentagem que o Risco Relativo de um requisito representa em rela\u00e7\u00e3o \u00e0 soma de todos os Riscos Relativos.
  • Prioridade: Calculada pela f\u00f3rmula: Valor% / (Custo% + Risco%).

Os requisitos s\u00e3o ent\u00e3o ordenados de forma decrescente de acordo com o valor de prioridade. Aqueles com maior prioridade devem ser implementados primeiro.

"},{"location":"elicitacao/first_things/#artefatos","title":"Artefatos","text":""},{"location":"elicitacao/first_things/#requisitos-tabelados","title":"Requisitos tabelados","text":"N\u00ba Requisito Benef\u00edcio Relativo Penalidade Relativa Valor Total Valor % Custo Relativo Custo % Risco Relativo Risco % Prioridade 1 Diversidade de formatos de design (posts, banners, apresenta\u00e7\u00f5es, etc.) 9 9 18 8.87% 8 9.09% 2 2.63% 0.70 2 Templates personaliz\u00e1veis para cada formato 9 8 17 8.37% 7 8.00% 3 3.95% 0.72 3 Cria\u00e7\u00e3o de designs a partir do zero 8 7 15 7.39% 6 6.82% 4 5.26% 0.69 4 Importa\u00e7\u00e3o de imagens e fotos 9 9 18 8.87% 5 5.68% 2 2.63% 1.05 5 Salvar e exportar designs (PDF, JPG, PNG) 9 9 18 8.87% 4 4.55% 1 1.32% 1.45 6 Importa\u00e7\u00e3o de v\u00eddeos e outros arquivos 8 5 13 6.41% 6 7.14% 4 5.26% 0.64 7 Exportar designs em formatos adicionais (SVG, MP4, GIF) 7 4 11 5.43% 4 4.76% 3 3.95% 0.76 8 Integrar com redes sociais (agendamento de posts) 9 6 15 7.41% 7 8.33% 5 6.41% 0.58 9 Ferramentas b\u00e1sicas de edi\u00e7\u00e3o de imagem (cortar, redimensionar, girar) 9 8 17 8.37% 3 3.41% 2 2.63% 1.56 10 Ajustar brilho, contraste e satura\u00e7\u00e3o de imagens 8 7 15 7.39% 2 2.27% 1 1.32% 2.14 11 Ferramentas de edi\u00e7\u00e3o de texto (formata\u00e7\u00e3o b\u00e1sica, escolha de fontes, cores) 9 9 18 8.87% 4 4.55% 1 1.32% 1.45 12 Adicionar \u00edcones, ilustra\u00e7\u00f5es e formas geom\u00e9tricas aos designs 8 7 15 7.39% 3 3.41% 2 2.63% 1.42 13 Ferramentas avan\u00e7adas de edi\u00e7\u00e3o de imagem (filtros, efeitos, remover fundo) 8 6 14 6.91% 5 5.95% 4 5.26% 0.75 14 Criar efeitos de texto (sombra, contorno) 6 3 9 4.44% 3 3.57% 2 2.63% 0.81 15 Camadas (organiza\u00e7\u00e3o b\u00e1sica, ordem e visibilidade) 9 7 16 7.90% 6 7.14% 3 3.95% 0.73 16 Camadas (opacidade, bloqueio) 5 2 7 3.46% 2 2.38% 1 1.32% 1.12 17 M\u00e1scaras (linear, radial) 6 4 10 4.93% 4 4.76% 3 3.95% 0.67 18 Compartilhamento de designs para visualiza\u00e7\u00e3o 9 8 17 8.37% 2 2.27% 1 1.32% 2.32 19 Compartilhamento de designs para edi\u00e7\u00e3o com permiss\u00f5es b\u00e1sicas 8 7 15 7.39% 3 3.41% 2 2.63% 1.42 20 Edi\u00e7\u00e3o colaborativa em tempo real 9 8 17 8.40% 8 9.52% 6 7.69% 0.55 21 Sistema de chat na edi\u00e7\u00e3o colaborativa 7 5 12 5.92% 5 5.95% 4 5.26% 0.64 22 Coment\u00e1rios em elementos espec\u00edficos 8 6 14 6.91% 6 7.14% 4 5.26% 0.64 23 Grade e guias 9 8 17 8.37% 2 2.27% 1 1.32% 2.32 24 Pr\u00e9-visualiza\u00e7\u00e3o em tempo real 9 9 18 8.87% 1 1.14% 1 1.32% 3.92 25 Paleta de cores 7 4 11 5.43% 3 3.57% 2 2.63% 0.96 26 Guia de estilo 5 3 8 3.95% 4 4.76% 3 3.95% 0.48 27 Hist\u00f3rico de vers\u00f5es 8 6 14 6.91% 7 8.33% 5 6.41% 0.58 28 Atalhos de teclado 6 2 8 3.95% 2 2.38% 2 2.63% 0.98 29 Interface intuitiva e f\u00e1cil de usar 9 9 18 8.87% 7 8.00% 1 1.32% 0.86 30 Arrastar e soltar 9 9 18 8.87% 1 1.14% 1 1.32% 3.92 31 Design responsivo 9 7 16 7.90% 5 5.95% 3 3.95% 0.85 32 Integra\u00e7\u00e3o com outras ferramentas 7 5 12 5.92% 6 7.14% 4 5.26% 0.59 33 Performance r\u00e1pida e eficiente 9 9 18 8.87% 9 10.34% 1 1.32% 0.62 34 Confiabilidade 9 9 18 8.87% 8 9.09% 1 1.32% 0.74 35 Seguran\u00e7a dos dados do usu\u00e1rio 9 9 18 8.87% 9 10.34% 2 2.63% 0.61 36 Acessibilidade 8 7 15 7.41% 4 4.76% 3 3.95% 0.93 37 Escalabilidade 9 8 17 8.40% 9 10.71% 7 8.97% 0.45 38 Internacionaliza\u00e7\u00e3o 7 6 13 6.41% 7 8.33% 6 7.69% 0.51 TOTAL 301 252 553 100% 113 100% 89 100% -"},{"location":"elicitacao/moscow/","title":"MoSCoW","text":""},{"location":"elicitacao/moscow/#historico-de-versoes","title":"Hist\u00f3rico de Vers\u00f5es","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 29/07/2024 Primeira vers\u00e3o da an\u00e1lise Gabriel Moura 1.0"},{"location":"elicitacao/moscow/#origem","title":"Origem","text":"

O desenvolvimento deste MoSCoW foi dado a partir da Reuni\u00e3o 3.

"},{"location":"elicitacao/moscow/#metodologia","title":"Metodologia","text":""},{"location":"elicitacao/moscow/#introducao","title":"Introdu\u00e7\u00e3o","text":"

A an\u00e1lise MoSCoW \u00e9 uma t\u00e9cnica de prioriza\u00e7\u00e3o de requisitos amplamente utilizada em gerenciamento de projetos, especialmente em metodologias \u00e1geis. Ela auxilia na tomada de decis\u00e3o sobre quais funcionalidades devem ser implementadas primeiro, categorizando os requisitos em quatro n\u00edveis de prioridade: must, should, could e could.

Essa t\u00e9cnica \u00e9 fundamental para garantir que os recursos sejam alocados de forma eficiente, focando nos requisitos que trazem maior valor para o projeto, dentro do tempo e do or\u00e7amento dispon\u00edveis.

"},{"location":"elicitacao/moscow/#objetivo","title":"Objetivo","text":"

O objetivo da an\u00e1lise MoSCoW \u00e9, em conjunto com o que foi aprendido em sala de aula, definir quais funcionalidades ser\u00e3o priorizadas no desenvolvimento da plataforma Canva. Priorizando as funcionalidades que s\u00e3o essenciais para o funcionamento b\u00e1sico da ferramenta, para posteriormente categorizar as funcionalidades que agregam valor \u00e0 experi\u00eancia do usu\u00e1rio e podem ser implementadas em vers\u00f5es futuras.

A an\u00e1lise MoSCoW se baseia em quatro categorias:

  • Must (Essencial): Requisitos absolutamente essenciais para o sistema funcionar. Se um requisito must n\u00e3o for atendido, o projeto \u00e9 considerado um fracasso.
  • Should (Importante): Requisitos importantes, mas n\u00e3o essenciais para o lan\u00e7amento da vers\u00e3o inicial. Podem ser implementados posteriormente, se necess\u00e1rio.
  • Could (Desej\u00e1vel): Requisitos desej\u00e1veis que agregam valor, mas n\u00e3o s\u00e3o cr\u00edticos. A implementa\u00e7\u00e3o deles depende de tempo e recursos dispon\u00edveis.
  • Would (Opcional): Requisitos de menor prioridade que podem ser considerados em vers\u00f5es futuras.

A equipe analisa cada requisito e o classifica em uma dessas categorias, com base em seu impacto no projeto, valor para o usu\u00e1rio, custo de implementa\u00e7\u00e3o e risco.

"},{"location":"elicitacao/moscow/#artefatos","title":"Artefatos","text":""},{"location":"elicitacao/moscow/#tabela-de-requisitos","title":"Tabela de Requisitos","text":""},{"location":"elicitacao/moscow/#versao-10","title":"Vers\u00e3o 1.0","text":""},{"location":"elicitacao/moscow/#tabela-de-requisitos-agrupados","title":"Tabela de Requisitos Agrupados","text":"ID Descri\u00e7\u00e3o Prioridade 1 Diversidade de formatos de design (posts, banners, apresenta\u00e7\u00f5es, etc.). Must 2 Templates personaliz\u00e1veis para cada formato. Must 3 Cria\u00e7\u00e3o de designs a partir do zero. Must 4 Importa\u00e7\u00e3o de imagens e fotos. Must 5 Salvar e exportar designs (PDF, JPG, PNG). Must 6 Importa\u00e7\u00e3o de v\u00eddeos e outros arquivos. Should 7 Exportar designs em formatos adicionais (SVG, MP4, GIF). Should 8 Integrar com redes sociais (agendamento de posts). Could 9 Ferramentas b\u00e1sicas de edi\u00e7\u00e3o de imagem (cortar, redimensionar, girar). Must 10 Ajustar brilho, contraste e satura\u00e7\u00e3o de imagens. Must 11 Ferramentas de edi\u00e7\u00e3o de texto (formata\u00e7\u00e3o b\u00e1sica, escolha de fontes, cores). Must 12 Adicionar \u00edcones, ilustra\u00e7\u00f5es e formas geom\u00e9tricas aos designs. Must 13 Ferramentas avan\u00e7adas de edi\u00e7\u00e3o de imagem (filtros, efeitos, remover fundo). Should 14 Criar efeitos de texto (sombra, contorno). Should 15 Camadas (organiza\u00e7\u00e3o b\u00e1sica, ordem e visibilidade). Should 16 Camadas (opacidade, bloqueio). Could 17 M\u00e1scaras (linear, radial). Could 18 Compartilhamento de designs para visualiza\u00e7\u00e3o. Must 19 Compartilhamento de designs para edi\u00e7\u00e3o com permiss\u00f5es b\u00e1sicas. Must 20 Edi\u00e7\u00e3o colaborativa em tempo real. Should 21 Sistema de chat na edi\u00e7\u00e3o colaborativa. Could 22 Coment\u00e1rios em elementos espec\u00edficos. Could 23 Grades e guias. Must 24 Pr\u00e9-visualiza\u00e7\u00e3o em tempo real. Must 25 Paleta de cores. Should 26 Guia de estilo. Could 27 Hist\u00f3rico de vers\u00f5es. Could 28 Atalhos de teclado. Could 29 Interface intuitiva e f\u00e1cil de usar. Must 30 Arrastar e soltar. Must 31 Design responsivo. Should 32 Integra\u00e7\u00e3o com outras ferramentas (redes sociais, armazenamento em nuvem). Could 33 Performance r\u00e1pida e eficiente. Must 34 Confiabilidade. Must 35 Seguran\u00e7a dos dados do usu\u00e1rio. Must 36 Acessibilidade. Should 37 Escalabilidade. Could 38 Internacionaliza\u00e7\u00e3o. Could"},{"location":"elicitacao/moscow/#tabelas-de-requisitos-separadas-por-prioridade","title":"Tabelas de Requisitos Separadas por Prioridade","text":""},{"location":"elicitacao/moscow/#must","title":"Must","text":"ID Descri\u00e7\u00e3o 1 Diversidade de formatos de design (posts, banners, apresenta\u00e7\u00f5es, etc.). 2 Templates personaliz\u00e1veis para cada formato. 3 Cria\u00e7\u00e3o de designs a partir do zero. 4 Importa\u00e7\u00e3o de imagens e fotos. 5 Salvar e exportar designs (PDF, JPG, PNG). 9 Ferramentas b\u00e1sicas de edi\u00e7\u00e3o de imagem (cortar, redimensionar, girar). 10 Ajustar brilho, contraste e satura\u00e7\u00e3o de imagens. 11 Ferramentas de edi\u00e7\u00e3o de texto (formata\u00e7\u00e3o b\u00e1sica, escolha de fontes, cores). 12 Adicionar \u00edcones, ilustra\u00e7\u00f5es e formas geom\u00e9tricas aos designs. 18 Compartilhamento de designs para visualiza\u00e7\u00e3o. 19 Compartilhamento de designs para edi\u00e7\u00e3o com permiss\u00f5es b\u00e1sicas. 23 Grade e guias. 24 Pr\u00e9-visualiza\u00e7\u00e3o em tempo real. 29 Interface intuitiva e f\u00e1cil de usar. 30 Arrastar e soltar. 33 Performance r\u00e1pida e eficiente. 34 Confiabilidade. 35 Seguran\u00e7a dos dados do usu\u00e1rio."},{"location":"elicitacao/moscow/#should","title":"Should","text":"N\u00ba Requisito 6 Importa\u00e7\u00e3o de v\u00eddeos e outros arquivos 7 Exportar designs em formatos adicionais (SVG, MP4, GIF) 13 Ferramentas avan\u00e7adas de edi\u00e7\u00e3o de imagem (filtros, efeitos, remover fundo) 14 Criar efeitos de texto (sombra, contorno) 15 Camadas (organiza\u00e7\u00e3o b\u00e1sica, ordem e visibilidade) 20 Edi\u00e7\u00e3o colaborativa em tempo real 25 Paleta de cores 31 Design responsivo 36 Acessibilidade"},{"location":"elicitacao/moscow/#could","title":"Could","text":"N\u00ba Requisito 8 Integrar com redes sociais (agendamento de posts) 16 Camadas (opacidade, bloqueio) 17 M\u00e1scaras (linear, radial) 21 Sistema de chat na edi\u00e7\u00e3o colaborativa 22 Coment\u00e1rios em elementos espec\u00edficos 26 Guia de estilo 27 Hist\u00f3rico de vers\u00f5es 28 Atalhos de teclado 32 Integra\u00e7\u00e3o com outras ferramentas (redes sociais, armazenamento em nuvem) 37 Escalabilidade 38 Internacionaliza\u00e7\u00e3o"},{"location":"elicitacao/moscow/#would","title":"Would","text":"N\u00ba Requisito (Nenhum requisito foi classificado como Would nesta vers\u00e3o)"},{"location":"entregas/entrega1/","title":"Primeira Entrega","text":"

Caso n\u00e3o consiga visualizar o v\u00eddeo abaixo, clique aqui.

"},{"location":"entregas/entrega2/","title":"Segunda Entrega","text":"

Caso n\u00e3o consiga visualizar o v\u00eddeo abaixo, clique aqui.

"},{"location":"modelagem/backlog/","title":"Backlog","text":""},{"location":"modelagem/backlog/#historico-de-versoes","title":"Hist\u00f3rico de vers\u00f5es","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 17/08/2024 Defini\u00e7\u00e3o das hist\u00f3rias de usu\u00e1rio baseando-se nos requisitos listados na parte de elicita\u00e7\u00e3o MoSCoW. Defini\u00e7\u00e3o das Releases, Sprints e Backlog do Produto Luiza Maluf 0.0"},{"location":"modelagem/backlog/#origem","title":"Origem","text":"

Esse documento foi feito com base nos requisitos listados na parte de elicita\u00e7\u00e3o MoSCoW.

"},{"location":"modelagem/backlog/#metodologia","title":"Metodologia","text":"

Tendo em vista os requisitos elicitados, foram criadas hist\u00f3rias de usu\u00e1rio que descrevem as funcionalidades de uma maneira centrada no usu\u00e1rio. Cada hist\u00f3ria foi detalhada com crit\u00e9rios de aceita\u00e7\u00e3o, que estabelecem as condi\u00e7\u00f5es m\u00ednimas para que a funcionalidade seja considerada completa.

As hist\u00f3rias de usu\u00e1rio foram ent\u00e3o distribu\u00eddas em sprints, que s\u00e3o ciclos de desenvolvimento curtos e iterativos. Cada sprint foca em entregar funcionalidades espec\u00edficas, permitindo feedback cont\u00ednuo e ajustes ao longo do desenvolvimento.

O backlog foi estruturado com todas as hist\u00f3rias de usu\u00e1rio ordenadas por prioridade e distribu\u00eddas entre as sprints.

Esse backlog serve como guia para o desenvolvimento, garantindo que as funcionalidades mais importantes sejam entregues primeiro e que o produto evolua de acordo com as necessidades dos usu\u00e1rios.

"},{"location":"modelagem/backlog/#backlog-do-produto","title":"Backlog do Produto","text":"\u00c9pico Sprint ID Eu, como Desejo Para que eu possa Pontos Prioridade Requisito Diversidade de Formatos de Design 1 US#01 Usu\u00e1rio Criar posts, banners, apresenta\u00e7\u00f5es Utilizar diferentes formatos de design 5 Must RF1 Templates Personaliz\u00e1veis 1 US#02 Usu\u00e1rio Utilizar templates prontos e edit\u00e1-los Personalizar designs rapidamente 5 Must RF2 Cria\u00e7\u00e3o de Designs 2 US#03 Usu\u00e1rio Criar designs do zero Criar designs completamente personalizados 8 Must RF3 Importa\u00e7\u00e3o de M\u00eddia 2 US#04 Usu\u00e1rio Importar imagens e fotos Incluir minhas pr\u00f3prias m\u00eddias nos designs 5 Must RF4 Exporta\u00e7\u00e3o de Designs 2 US#05 Usu\u00e1rio Salvar e exportar designs em PDF, JPG, PNG Usar os designs fora da plataforma 5 Must RF5 Importa\u00e7\u00e3o de V\u00eddeos 3 US#06 Usu\u00e1rio Importar v\u00eddeos e outros arquivos Incluir v\u00eddeos nos meus designs 8 Should RF6 Exporta\u00e7\u00e3o Avan\u00e7ada 3 US#07 Usu\u00e1rio Exportar designs em SVG, MP4, GIF Usar designs em formatos espec\u00edficos 8 Should RF7 Integra\u00e7\u00e3o com Redes Sociais 4 US#08 Usu\u00e1rio Integrar com redes sociais e agendar posts Publicar diretamente nas redes sociais 13 Could RF8 Edi\u00e7\u00e3o de Imagem B\u00e1sica 4 US#09 Usu\u00e1rio Cortar, redimensionar e girar imagens Ajustar imagens de acordo com a necessidade 8 Must RF9 Ajustes de Imagem 4 US#10 Usu\u00e1rio Ajustar brilho, contraste e satura\u00e7\u00e3o das imagens Melhorar a qualidade visual das minhas imagens 8 Must RF10 Edi\u00e7\u00e3o de Texto 5 US#11 Usu\u00e1rio Editar textos com formata\u00e7\u00e3o b\u00e1sica, escolha de fontes, cores Personalizar textos nos meus designs 8 Must RF11 Adi\u00e7\u00e3o de Elementos 5 US#12 Usu\u00e1rio Adicionar \u00edcones, ilustra\u00e7\u00f5es e formas geom\u00e9tricas Enriquecer o conte\u00fado dos designs 5 Must RF12 Edi\u00e7\u00e3o de Imagem Avan\u00e7ada 5 US#13 Usu\u00e1rio Aplicar filtros, efeitos e remover fundo das imagens Criar efeitos visuais mais profissionais 13 Should RF13 Efeitos de Texto 6 US#14 Usu\u00e1rio Criar efeitos de texto como sombra e contorno Destacar textos nos designs 8 Should RF14 Camadas B\u00e1sicas 6 US#15 Usu\u00e1rio Organizar camadas b\u00e1sicas, ordem e visibilidade Gerenciar a composi\u00e7\u00e3o dos elementos 8 Should RF15 Camadas Avan\u00e7adas 7 US#16 Usu\u00e1rio Ajustar opacidade e bloquear camadas Controlar a visibilidade e seguran\u00e7a das camadas 8 Could RF16 M\u00e1scaras 7 US#17 Usu\u00e1rio Aplicar m\u00e1scaras lineares e radiais Criar efeitos de m\u00e1scara nos designs 5 Could RF17 Compartilhamento B\u00e1sico 7 US#18 Usu\u00e1rio Compartilhar designs para visualiza\u00e7\u00e3o Mostrar meus designs para outras pessoas 5 Must RF18 Compartilhamento com Edi\u00e7\u00e3o 7 US#19 Usu\u00e1rio Compartilhar designs para edi\u00e7\u00e3o com permiss\u00f5es Colaborar na cria\u00e7\u00e3o de designs 8 Must RF19 Edi\u00e7\u00e3o Colaborativa 8 US#20 Usu\u00e1rio Editar designs em tempo real com outros usu\u00e1rios Trabalhar junto com outros na cria\u00e7\u00e3o de designs 13 Should RF20 Sistema de Chat 8 US#21 Usu\u00e1rio Utilizar um sistema de chat durante a edi\u00e7\u00e3o Comunicar com outros enquanto edito 8 Could RF21 Coment\u00e1rios 8 US#22 Usu\u00e1rio Deixar coment\u00e1rios em elementos espec\u00edficos Revisar e dar feedback sobre partes do design 8 Could RF22 Grade e Guias 8 US#23 Usu\u00e1rio Usar grade e guias para alinhar elementos Manter a simetria e organiza\u00e7\u00e3o do design 5 Must RF23 Pr\u00e9-visualiza\u00e7\u00e3o em Tempo Real 9 US#24 Usu\u00e1rio Ver uma pr\u00e9-visualiza\u00e7\u00e3o em tempo real do design Avaliar o design enquanto edito 13 Must RF24 Paleta de Cores 9 US#25 Usu\u00e1rio Criar e usar paletas de cores Manter a consist\u00eancia de cores nos designs 8 Should RF25 Guia de Estilo 9 US#26 Usu\u00e1rio Utilizar um guia de estilo Assegurar que os designs sigam um padr\u00e3o visual 5 Could RF26 Hist\u00f3rico de Vers\u00f5es 9 US#27 Usu\u00e1rio Acessar o hist\u00f3rico de vers\u00f5es do design Reverter a vers\u00f5es anteriores caso necess\u00e1rio 8 Could RF27 Atalhos de Teclado 10 US#28 Usu\u00e1rio Utilizar atalhos de teclado Aumentar a efici\u00eancia durante a cria\u00e7\u00e3o de designs 5 Could RF28 Interface Intuitiva 10 US#29 Usu\u00e1rio Navegar por uma interface f\u00e1cil de usar Trabalhar de forma mais fluida e intuitiva 5 Must RF29 Arrastar e Soltar 10 US#30 Usu\u00e1rio Usar a fun\u00e7\u00e3o de arrastar e soltar Manipular elementos de forma f\u00e1cil e r\u00e1pida 5 Must RF30 Design Responsivo 10 US#31 Usu\u00e1rio Criar designs que sejam responsivos Assegurar que o design seja exibido corretamente em diferentes dispositivos 8 Should RF31 Integra\u00e7\u00e3o com Ferramentas 11 US#32 Usu\u00e1rio Integrar com redes sociais e armazenamento em nuvem Facilitar o compartilhamento e armazenamento dos designs 8 Could RF32 Performance 11 US#33 Usu\u00e1rio Usar a ferramenta com performance r\u00e1pida e eficiente Ter uma experi\u00eancia fluida durante a cria\u00e7\u00e3o dos designs 13 Must RF33 Confiabilidade 11 US#34 Usu\u00e1rio Confiar que a ferramenta funcionar\u00e1 de forma est\u00e1vel Evitar interrup\u00e7\u00f5es e perda de trabalho 13 Must RF34 Seguran\u00e7a de Dados 11 US#35 Usu\u00e1rio Ter seguran\u00e7a dos meus dados armazenados Garantir que meus dados pessoais estejam protegidos 13 Must RF35 Acessibilidade 12 US#36 Usu\u00e1rio Utilizar a ferramenta com recursos de acessibilidade Garantir que todos os usu\u00e1rios possam utilizar a plataforma 8 Should RF36 Escalabilidade 12 US#37 Usu\u00e1rio Ter a plataforma escal\u00e1vel conforme o uso aumenta Assegurar que o sistema suporte um grande n\u00famero de usu\u00e1rios 5 Could RF37 Internacionaliza\u00e7\u00e3o 12 US#38 Usu\u00e1rio Utilizar a plataforma em diferentes idiomas Acessar a plataforma em minha l\u00edngua nativa 5 Could RF38"},{"location":"modelagem/backlog/#release-1","title":"Release 1","text":""},{"location":"modelagem/backlog/#sprint-1","title":"Sprint 1","text":"ID Nome da Hist\u00f3ria de Usu\u00e1rio Pontos US#01 Criar posts, banners e apresenta\u00e7\u00f5es 5 US#02 Utilizar templates prontos e edit\u00e1-los 5"},{"location":"modelagem/backlog/#us01","title":"US#01","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo criar posts, banners e apresenta\u00e7\u00f5es para utilizar diferentes formatos de design.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O usu\u00e1rio deve ser capaz de selecionar entre diversos formatos de design, como posts, banners, e apresenta\u00e7\u00f5es, diretamente na interface inicial.

"},{"location":"modelagem/backlog/#us02","title":"US#02","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo utilizar templates prontos e edit\u00e1-los para personalizar designs rapidamente.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve oferecer uma biblioteca de templates personaliz\u00e1veis para diferentes formatos de design, permitindo a edi\u00e7\u00e3o r\u00e1pida e f\u00e1cil.

"},{"location":"modelagem/backlog/#sprint-2","title":"Sprint 2","text":"ID Nome da Hist\u00f3ria de Usu\u00e1rio Pontos US#03 Criar designs do zero 8 US#04 Importar imagens e fotos 5 US#05 Salvar e exportar designs em PDF, JPG, PNG 5"},{"location":"modelagem/backlog/#us03","title":"US#03","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo criar designs do zero para criar designs completamente personalizados.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O usu\u00e1rio deve ser capaz de iniciar um design em branco, sem restri\u00e7\u00f5es de template, com acesso completo \u00e0s ferramentas de cria\u00e7\u00e3o.

"},{"location":"modelagem/backlog/#us04","title":"US#04","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo importar imagens e fotos para incluir minhas pr\u00f3prias m\u00eddias nos designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir a importa\u00e7\u00e3o de arquivos de imagem nos formatos mais comuns (JPEG, PNG, etc.), e possibilitar sua inser\u00e7\u00e3o nos designs.

"},{"location":"modelagem/backlog/#us05","title":"US#05","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo salvar e exportar designs em PDF, JPG e PNG para usar os designs fora da plataforma.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O usu\u00e1rio deve poder salvar e exportar seus designs nos formatos PDF, JPG, e PNG, com qualidade configur\u00e1vel.

"},{"location":"modelagem/backlog/#sprint-3","title":"Sprint 3","text":"ID Nome da Hist\u00f3ria de Usu\u00e1rio Pontos US#06 Importar v\u00eddeos e outros arquivos 8 US#07 Exportar designs em SVG, MP4, GIF 8"},{"location":"modelagem/backlog/#us06","title":"US#06","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo importar v\u00eddeos e outros arquivos para incluir v\u00eddeos nos meus designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir a importa\u00e7\u00e3o de arquivos de v\u00eddeo (MP4, MOV, etc.) e possibilitar sua inser\u00e7\u00e3o nos designs.

"},{"location":"modelagem/backlog/#us07","title":"US#07","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo exportar designs em SVG, MP4 e GIF para usar designs em formatos espec\u00edficos.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O usu\u00e1rio deve poder exportar seus designs nos formatos SVG, MP4 e GIF, garantindo compatibilidade com diversas plataformas.

"},{"location":"modelagem/backlog/#release-2","title":"Release 2","text":""},{"location":"modelagem/backlog/#sprint-4","title":"Sprint 4","text":"ID Nome da Hist\u00f3ria de Usu\u00e1rio Pontos US#08 Integrar com redes sociais e agendar posts 13 US#09 Cortar, redimensionar e girar imagens 8 US#10 Ajustar brilho, contraste e satura\u00e7\u00e3o das imagens 8"},{"location":"modelagem/backlog/#us08","title":"US#08","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo integrar com redes sociais e agendar posts para publicar diretamente nas redes sociais.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve oferecer integra\u00e7\u00e3o com as principais redes sociais, permitindo o agendamento e a publica\u00e7\u00e3o direta de designs.

"},{"location":"modelagem/backlog/#us09","title":"US#09","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo cortar, redimensionar e girar imagens para ajustar imagens de acordo com a necessidade.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve incluir ferramentas b\u00e1sicas de edi\u00e7\u00e3o de imagem, como corte, redimensionamento e rota\u00e7\u00e3o, acess\u00edveis de forma intuitiva.

"},{"location":"modelagem/backlog/#us10","title":"US#10","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo ajustar brilho, contraste e satura\u00e7\u00e3o das imagens para melhorar a qualidade visual das minhas imagens.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir ajustes de brilho, contraste e satura\u00e7\u00e3o em imagens, com uma interface visual simples e eficaz.

"},{"location":"modelagem/backlog/#sprint-5","title":"Sprint 5","text":"ID Nome da Hist\u00f3ria de Usu\u00e1rio Pontos US#11 Editar textos com formata\u00e7\u00e3o b\u00e1sica, escolha de fontes e cores 8 US#12 Adicionar \u00edcones, ilustra\u00e7\u00f5es e formas geom\u00e9tricas 5 US#13 Aplicar filtros, efeitos e remover fundo das imagens 13"},{"location":"modelagem/backlog/#us11","title":"US#11","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo editar textos com formata\u00e7\u00e3o b\u00e1sica, escolha de fontes e cores para personalizar textos nos meus designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve oferecer op\u00e7\u00f5es de formata\u00e7\u00e3o de texto, incluindo a sele\u00e7\u00e3o de fontes, tamanhos, cores, e alinhamento.

"},{"location":"modelagem/backlog/#us12","title":"US#12","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo adicionar \u00edcones, ilustra\u00e7\u00f5es e formas geom\u00e9tricas para enriquecer o conte\u00fado dos designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve fornecer uma biblioteca de \u00edcones, ilustra\u00e7\u00f5es e formas geom\u00e9tricas, que possam ser adicionadas e editadas nos designs.

"},{"location":"modelagem/backlog/#us13","title":"US#13","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo aplicar filtros, efeitos e remover o fundo das imagens para criar efeitos visuais mais profissionais.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve incluir ferramentas para aplica\u00e7\u00e3o de filtros, efeitos visuais, e remo\u00e7\u00e3o autom\u00e1tica de fundos em imagens.

"},{"location":"modelagem/backlog/#release-3","title":"Release 3","text":""},{"location":"modelagem/backlog/#sprint-6","title":"Sprint 6","text":"ID Nome da Hist\u00f3ria de Usu\u00e1rio Pontos US#14 Criar efeitos de texto como sombra e contorno 8 US#15 Organizar camadas b\u00e1sicas, ordem e visibilidade 8"},{"location":"modelagem/backlog/#us14","title":"US#14","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo criar efeitos de texto como sombra e contorno para destacar textos nos designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir a aplica\u00e7\u00e3o de efeitos de sombra e contorno em textos, com op\u00e7\u00f5es de customiza\u00e7\u00e3o.

"},{"location":"modelagem/backlog/#us15","title":"US#15","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo organizar camadas b\u00e1sicas, ordem e visibilidade para gerenciar a composi\u00e7\u00e3o dos elementos.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve oferecer controle sobre as camadas dos elementos, permitindo alterar a ordem e visibilidade diretamente na interface.

"},{"location":"modelagem/backlog/#sprint-7","title":"Sprint 7","text":"ID Nome da Hist\u00f3ria de Usu\u00e1rio Pontos US#16 Ajustar opacidade e bloquear camadas 8 US#17 Aplicar m\u00e1scaras lineares e radiais 5 US#18 Compartilhar designs para visualiza\u00e7\u00e3o 5 US#19 Compartilhar designs para edi\u00e7\u00e3o com permiss\u00f5es 8"},{"location":"modelagem/backlog/#us16","title":"US#16","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo ajustar opacidade e bloquear camadas para controlar a visibilidade e seguran\u00e7a das camadas.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir ajustes de opacidade e a op\u00e7\u00e3o de bloquear camadas para evitar altera\u00e7\u00f5es indesejadas.

"},{"location":"modelagem/backlog/#us17","title":"US#17","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo aplicar m\u00e1scaras lineares e radiais para criar efeitos de m\u00e1scara nos designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve incluir ferramentas para a aplica\u00e7\u00e3o de m\u00e1scaras lineares e radiais em imagens e outros elementos.

"},{"location":"modelagem/backlog/#us18","title":"US#18","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo compartilhar designs para visualiza\u00e7\u00e3o para mostrar meus designs para outras pessoas.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir o compartilhamento de designs por meio de links ou outras plataformas, apenas para visualiza\u00e7\u00e3o.

"},{"location":"modelagem/backlog/#us19","title":"US#19","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo compartilhar designs para edi\u00e7\u00e3o com permiss\u00f5es b\u00e1sicas para colaborar na cria\u00e7\u00e3o de designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir o compartilhamento de designs com permiss\u00f5es b\u00e1sicas de edi\u00e7\u00e3o, incluindo restri\u00e7\u00f5es de acesso.

"},{"location":"modelagem/backlog/#release-4","title":"Release 4","text":""},{"location":"modelagem/backlog/#sprint-8","title":"Sprint 8","text":"ID Nome da Hist\u00f3ria de Usu\u00e1rio Pontos US#20 Editar designs em tempo real com outros usu\u00e1rios 13 US#21 Utilizar um sistema de chat durante a edi\u00e7\u00e3o 8 US#22 Deixar coment\u00e1rios em elementos espec\u00edficos 8 US#23 Usar grade e guias para alinhar elementos 5"},{"location":"modelagem/backlog/#us20","title":"US#20","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo editar designs em tempo real com outros usu\u00e1rios para trabalhar junto com outros na cria\u00e7\u00e3o de designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir a edi\u00e7\u00e3o colaborativa em tempo real, sincronizando altera\u00e7\u00f5es imediatamente entre os participantes.

"},{"location":"modelagem/backlog/#us21","title":"US#21","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo utilizar um sistema de chat durante a edi\u00e7\u00e3o para comunicar com outros enquanto edito.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve integrar um chat funcional dentro da interface de edi\u00e7\u00e3o, permitindo comunica\u00e7\u00e3o direta entre os usu\u00e1rios.

"},{"location":"modelagem/backlog/#us22","title":"US#22","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo deixar coment\u00e1rios em elementos espec\u00edficos para revisar e dar feedback sobre partes do design.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir a adi\u00e7\u00e3o de coment\u00e1rios diretamente em elementos espec\u00edficos do design, com notifica\u00e7\u00f5es para outros usu\u00e1rios.

"},{"location":"modelagem/backlog/#us23","title":"US#23","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo usar grade e guias para alinhar elementos para manter a simetria e organiza\u00e7\u00e3o do design.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve oferecer op\u00e7\u00f5es de grade e guias que podem ser ativadas ou desativadas conforme a necessidade.

"},{"location":"modelagem/backlog/#sprint-9","title":"Sprint 9","text":"ID Nome da Hist\u00f3ria de Usu\u00e1rio Pontos US#24 Ver uma pr\u00e9-visualiza\u00e7\u00e3o em tempo real do design 13 US#25 Criar e usar paletas de cores 8 US#26 Utilizar um guia de estilo 5 US#27 Acessar o hist\u00f3rico de vers\u00f5es do design 8"},{"location":"modelagem/backlog/#us24","title":"US#24","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo ver uma pr\u00e9-visualiza\u00e7\u00e3o em tempo real do design para avaliar o design enquanto edito.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve exibir uma pr\u00e9-visualiza\u00e7\u00e3o em tempo real, refletindo todas as mudan\u00e7as feitas no design.

"},{"location":"modelagem/backlog/#us25","title":"US#25","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo criar e usar paletas de cores para manter a consist\u00eancia de cores nos designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir a cria\u00e7\u00e3o e gerenciamento de paletas de cores, com a possibilidade de aplica\u00e7\u00e3o em qualquer design.

"},{"location":"modelagem/backlog/#us26","title":"US#26","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo utilizar um guia de estilo para assegurar que os designs sigam um padr\u00e3o visual.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve oferecer um guia de estilo que pode ser configurado e aplicado automaticamente em novos designs.

"},{"location":"modelagem/backlog/#us27","title":"US#27","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo acessar o hist\u00f3rico de vers\u00f5es do design para reverter a vers\u00f5es anteriores caso necess\u00e1rio.

-Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve manter um hist\u00f3rico de vers\u00f5es de cada design, permitindo a restaura\u00e7\u00e3o de vers\u00f5es anteriores com facilidade.

"},{"location":"modelagem/backlog/#sprint-10","title":"Sprint 10","text":"ID Nome da Hist\u00f3ria de Usu\u00e1rio Pontos US#28 Utilizar atalhos de teclado 5 US#29 Navegar por uma interface f\u00e1cil de usar 5 US#30 Usar a fun\u00e7\u00e3o de arrastar e soltar 5 US#31 Criar designs que sejam responsivos 8 US#32 Integrar com redes sociais e armazenamento em nuvem 8"},{"location":"modelagem/backlog/#us28","title":"US#28","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo utilizar atalhos de teclado para aumentar a efici\u00eancia durante a cria\u00e7\u00e3o de designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve incluir e permitir a personaliza\u00e7\u00e3o de atalhos de teclado para as principais fun\u00e7\u00f5es de design.

"},{"location":"modelagem/backlog/#us29","title":"US#29","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo navegar por uma interface f\u00e1cil de usar.

-Crit\u00e9rios de Aceita\u00e7\u00e3o: A interface deve ser intuitiva, com navega\u00e7\u00e3o clara e acess\u00edvel, permitindo uma experi\u00eancia de uso fluida.

"},{"location":"modelagem/backlog/#us30","title":"US#30","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo usar a fun\u00e7\u00e3o de arrastar e soltar para manipular elementos de forma f\u00e1cil e r\u00e1pida.

-Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir que o usu\u00e1rio arraste e solte elementos dentro da \u00e1rea de design com precis\u00e3o e sem dificuldades.

"},{"location":"modelagem/backlog/#us31","title":"US#31","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo criar designs que sejam responsivos para assegurar que o design seja exibido corretamente em diferentes dispositivos.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve fornecer ferramentas e op\u00e7\u00f5es para criar designs que se ajustem automaticamente a diferentes tamanhos e resolu\u00e7\u00f5es de tela.

"},{"location":"modelagem/backlog/#us32","title":"US#32","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo integrar com redes sociais e armazenamento em nuvem para facilitar o compartilhamento e armazenamento dos designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve permitir integra\u00e7\u00e3o com plataformas de redes sociais e servi\u00e7os de armazenamento em nuvem, possibilitando o compartilhamento e armazenamento direto dos designs.

"},{"location":"modelagem/backlog/#sprint-11","title":"Sprint 11","text":"ID Nome da Hist\u00f3ria de Usu\u00e1rio Pontos US#33 Usar a ferramenta com performance r\u00e1pida e eficiente 13 US#34 Confiar que a ferramenta funcionar\u00e1 de forma est\u00e1vel 13 US#35 Ter seguran\u00e7a dos meus dados armazenados 13 US#36 Utilizar a ferramenta com recursos de acessibilidade 8 US#37 Ter a plataforma escal\u00e1vel conforme o uso aumenta 5 US#38 Utilizar a plataforma em diferentes idiomas 5"},{"location":"modelagem/backlog/#us33","title":"US#33","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo usar a ferramenta com performance r\u00e1pida e eficiente para ter uma experi\u00eancia fluida durante a cria\u00e7\u00e3o dos designs.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve garantir um desempenho \u00e1gil e eficiente, com tempos de resposta r\u00e1pidos e m\u00ednima lat\u00eancia durante a cria\u00e7\u00e3o e edi\u00e7\u00e3o de designs.

"},{"location":"modelagem/backlog/#us34","title":"US#34","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo confiar que a ferramenta funcionar\u00e1 de forma est\u00e1vel para evitar interrup\u00e7\u00f5es e perda de trabalho.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve ser robusto e est\u00e1vel, minimizando falhas e interrup\u00e7\u00f5es durante o uso, com mecanismos de recupera\u00e7\u00e3o de dados em caso de problemas.

"},{"location":"modelagem/backlog/#us35","title":"US#35","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo ter seguran\u00e7a dos meus dados armazenados para garantir que meus dados pessoais estejam protegidos.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve implementar medidas de seguran\u00e7a robustas para proteger dados pessoais e informa\u00e7\u00f5es armazenadas, incluindo criptografia e controle de acesso.

"},{"location":"modelagem/backlog/#us36","title":"US#36","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo utilizar a ferramenta com recursos de acessibilidade para garantir que todos os usu\u00e1rios possam utilizar a plataforma.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve incluir recursos de acessibilidade, como suporte a leitores de tela, navega\u00e7\u00e3o por teclado e op\u00e7\u00f5es de contraste, para atender \u00e0s necessidades de todos os usu\u00e1rios.

"},{"location":"modelagem/backlog/#us37","title":"US#37","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo ter a plataforma escal\u00e1vel conforme o uso aumenta para assegurar que o sistema suporte um grande n\u00famero de usu\u00e1rios.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve ser capaz de escalar adequadamente para lidar com um aumento no n\u00famero de usu\u00e1rios e dados, sem perda de desempenho.

"},{"location":"modelagem/backlog/#us38","title":"US#38","text":"
  • Hist\u00f3ria: Como usu\u00e1rio, desejo utilizar a plataforma em diferentes idiomas para acessar a plataforma em minha l\u00edngua nativa.

  • Crit\u00e9rios de Aceita\u00e7\u00e3o: O sistema deve oferecer suporte a m\u00faltiplos idiomas, permitindo que os usu\u00e1rios escolham seu idioma preferido para a interface e os recursos da plataforma.

"},{"location":"modelagem/casos_de_uso/","title":"Especifica\u00e7\u00e3o de Casos de Uso","text":""},{"location":"modelagem/casos_de_uso/#historico-de-versoes","title":"Hist\u00f3rico de Vers\u00f5es","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 15/08/2024 Cria\u00e7\u00e3o do documento e especifica\u00e7\u00e3o do que s\u00e3o casos de uso. Henrique Quenino 0.1 15/08/2024 Adi\u00e7\u00e3o dos 11 primeiros casos de uso durante an\u00e1lise de protocolo. Henrique Quenino 0.2 16/08/2024 Revis\u00e3o e corre\u00e7\u00e3o de casos de uso. Henrique Quenino 0.3 16/08/2024 Adi\u00e7\u00e3o de 9 casos de uso. Henrique Quenino 0.5 17/08/2024 Revis\u00e3o e corre\u00e7\u00e3o de casos de uso. Henrique Quenino e Luiza Maluf 0.6 19/08/2024 Adi\u00e7\u00e3o de diagramas de casos de uso. Gabriel Moura 0.7 20/08/2024 Revis\u00e3o final do documento. Gabriel Moura e Henrique Quenino 1.0"},{"location":"modelagem/casos_de_uso/#origem","title":"Origem","text":"

Os casos de uso foram criados com base na elicita\u00e7\u00e3o, mais especificamente tendo em vista a an\u00e1lise de protocolo, j\u00e1 que por meio dela foi poss\u00edvel identificar as principais funcionalidades do aplicativo Canva.

"},{"location":"modelagem/casos_de_uso/#metodologia","title":"Metodologia","text":"

Realizou-se por meio do contacto direto com o Canva, onde foi poss\u00edvel obter informa\u00e7\u00f5es sobre o funcionamento do aplicativo e as principais funcionalidades oferecidas aos usu\u00e1rios. A partir dessas informa\u00e7\u00f5es, foram identificados os principais casos de uso do Canva.

"},{"location":"modelagem/casos_de_uso/#introducao","title":"Introdu\u00e7\u00e3o","text":"

A se\u00e7\u00e3o de casos de uso do aplicativo Canva descreve as principais funcionalidades do sistema. Cada caso de uso representa uma intera\u00e7\u00e3o espec\u00edfica entre o usu\u00e1rio e o sistema, detalhando os passos necess\u00e1rios para realizar uma determinada tarefa ou obter um resultado desejado. Os casos de uso s\u00e3o apresentados em um formato padronizado, incluindo descri\u00e7\u00e3o, atores envolvidos, fluxo b\u00e1sico de eventos, fluxos alternativos e exce\u00e7\u00f5es, al\u00e9m de diagramas de casos de uso para visualiza\u00e7\u00e3o.

"},{"location":"modelagem/casos_de_uso/#artefatos","title":"Artefatos","text":""},{"location":"modelagem/casos_de_uso/#casos-de-uso","title":"Casos de Uso","text":""},{"location":"modelagem/casos_de_uso/#uc-01-criar-um-novo-design","title":"UC-01: Criar um Novo Design","text":"
  • Descri\u00e7\u00e3o: Este caso de uso descreve o processo de cria\u00e7\u00e3o de um novo design no aplicativo Canva, incluindo a sele\u00e7\u00e3o de um formato ou modelo, a adi\u00e7\u00e3o de elementos visuais, texto e outros recursos, bem como a customiza\u00e7\u00e3o do design de acordo com as prefer\u00eancias do usu\u00e1rio.
  • Diagrama:
  • Ator: Usu\u00e1rio Canva
  • Fluxo B\u00e1sico de Eventos:
    1. O usu\u00e1rio seleciona a op\u00e7\u00e3o \"Criar um Design\" na tela inicial.
    2. O sistema apresenta op\u00e7\u00f5es de formatos e modelos pr\u00e9-definidos.
    3. O usu\u00e1rio escolhe um formato ou modelo.
    4. O sistema cria um novo design com o formato/modelo selecionado.
    5. O usu\u00e1rio \u00e9 direcionado para a interface de edi\u00e7\u00e3o do novo design.
  • Fluxo Alternativo:
    1. O usu\u00e1rio pode optar por criar um design com dimens\u00f5es personalizadas.
    2. O usu\u00e1rio pode iniciar um design a partir de um template vazio.
  • Fluxo de Exce\u00e7\u00f5es:
    1. Falha na conex\u00e3o com a internet durante o processo.
    2. Formato ou modelo selecionado n\u00e3o est\u00e1 dispon\u00edvel.
    3. Limite de designs atingido para Usu\u00e1rios Gratuitos.
"},{"location":"modelagem/casos_de_uso/#12-uc-02-editar-um-design-existente","title":"1.2. UC-02: Editar um Design Existente","text":"
  • Descri\u00e7\u00e3o: Este caso de uso descreve a a\u00e7\u00e3o de editar um design existente no Canva, permitindo ao usu\u00e1rio modificar elementos visuais, texto, cores, fontes e outros aspectos do design de forma intuitiva e pr\u00e1tica.
  • Diagrama:
  • Ator: Usu\u00e1rio Canva
  • Fluxo B\u00e1sico de Eventos:
    1. O usu\u00e1rio acessa a se\u00e7\u00e3o \"Seus Designs\".
    2. O usu\u00e1rio seleciona o design que deseja editar.
    3. O sistema abre o design na interface de edi\u00e7\u00e3o.
  • Fluxo Alternativo:
    1. O usu\u00e1rio pode duplicar o design antes de editar.
    2. O usu\u00e1rio pode acessar o hist\u00f3rico de revis\u00f5es do design.
    3. O usu\u00e1rio pode adicionar colaboradores para edi\u00e7\u00e3o em tempo real.
    4. O usu\u00e1rio pode acessar recursos de intelig\u00eancia artificial para sugest\u00f5es de design.
  • Fluxo de Exce\u00e7\u00f5es:
    1. Design inexistente ou sem permiss\u00e3o de edi\u00e7\u00e3o.
    2. Falha na conex\u00e3o com a internet durante o processo.
"},{"location":"modelagem/casos_de_uso/#13-uc-03-compartilhar-um-design","title":"1.3. UC-03: Compartilhar um Design","text":"
  • Descri\u00e7\u00e3o: Este caso de uso descreve a funcionalidade de compartilhamento de design no Canva, permitindo que os usu\u00e1rios compartilhem seus projetos com outras pessoas atrav\u00e9s de diferentes m\u00e9todos, como links, redes sociais ou download direto.
  • Diagrama:
  • Ator: Usu\u00e1rio Canva
  • Fluxo B\u00e1sico de Eventos:
    1. O usu\u00e1rio abre o design que deseja compartilhar.
    2. O usu\u00e1rio clica no bot\u00e3o \"Compartilhar\".
    3. O sistema apresenta op\u00e7\u00f5es de compartilhamento (link, email, redes sociais).
    4. O usu\u00e1rio escolhe o m\u00e9todo de compartilhamento.
    5. O sistema gera o link/mensagem de compartilhamento.
    6. O usu\u00e1rio compartilha o link/mensagem.
  • Fluxo Alternativo:
    1. O usu\u00e1rio pode definir permiss\u00f5es de acesso ao compartilhar (visualizar, editar, comentar).
    2. O usu\u00e1rio pode definir uma data de expira\u00e7\u00e3o para o compartilhamento.
    3. O usu\u00e1rio pode adicionar uma senha de acesso ao compartilhamento.
    4. O usu\u00e1rio pode compartilhar diretamente em redes sociais.
  • Fluxo de Exce\u00e7\u00f5es:
    1. Falha na conex\u00e3o com a internet durante o processo.
    2. Limite de compartilhamentos atingido para Usu\u00e1rios Gratuitos.
    3. Compartilhamento em redes sociais requer autentica\u00e7\u00e3o adicional.
"},{"location":"modelagem/casos_de_uso/#14-uc-04-baixar-um-design","title":"1.4. UC-04: Baixar um Design","text":"
  • Descri\u00e7\u00e3o: Este caso de uso descreve o processo de download de um design criado no Canva, possibilitando que os usu\u00e1rios salvem seus trabalhos em diferentes formatos, como imagem ou PDF, para uso posterior.
  • Diagrama:
  • Ator: Usu\u00e1rio Canva
  • Fluxo B\u00e1sico de Eventos:
    1. O usu\u00e1rio abre o design que deseja baixar.
    2. O usu\u00e1rio clica no bot\u00e3o \"Baixar\".
    3. O sistema apresenta op\u00e7\u00f5es de formato de arquivo (PNG, JPG, PDF, etc.).
    4. O usu\u00e1rio escolhe o formato desejado.
    5. O sistema gera o arquivo e inicia o download.
  • Fluxo Alternativo:
    1. Op\u00e7\u00f5es de download adicionais (resolu\u00e7\u00e3o, qualidade) podem ser apresentadas dependendo do tipo de arquivo.
    2. Alguns formatos ou op\u00e7\u00f5es de download podem ser exclusivos para Usu\u00e1rios Pro.
  • Fluxo de Exce\u00e7\u00f5es:
    1. Falha na conex\u00e3o com a internet durante o processo.
    2. Limite de downloads atingido para Usu\u00e1rios Gratuitos.
"},{"location":"modelagem/casos_de_uso/#15-uc-05-acessar-templates-prontos","title":"1.5. UC-05: Acessar Templates Prontos","text":"
  • Descri\u00e7\u00e3o: Este caso de uso descreve a funcionalidade de acesso a templates prontos no Canva, permitindo que os usu\u00e1rios escolham modelos pr\u00e9-definidos para criar designs de forma r\u00e1pida e eficiente.
  • Diagrama:
  • Ator: Usu\u00e1rio Canva
  • Fluxo B\u00e1sico de Eventos:
    1. O usu\u00e1rio navega pela p\u00e1gina inicial ou utiliza a barra de pesquisa.
    2. O sistema apresenta op\u00e7\u00f5es de templates por categoria, formato ou palavra-chave.
    3. O usu\u00e1rio seleciona um template.
    4. O sistema abre o template na interface de edi\u00e7\u00e3o.
  • Fluxo Alternativo:
    1. O usu\u00e1rio pode favoritar um template para acesso r\u00e1pido.
    2. O usu\u00e1rio pode visualizar designs relacionados ao template selecionado.
    3. O usu\u00e1rio pode acessar templates exclusivos para Usu\u00e1rios Pro.
  • Fluxo de Exce\u00e7\u00f5es:
    1. Falha na conex\u00e3o com a internet durante o processo.
    2. Template n\u00e3o dispon\u00edvel ou removido.
    3. Limite de templates acessados atingido para Usu\u00e1rios Gratuitos.
"},{"location":"modelagem/casos_de_uso/#16-uc-06-exploracao-de-recursos-premium","title":"1.6. UC-06: Explora\u00e7\u00e3o de Recursos Premium","text":"
  • Descri\u00e7\u00e3o: Este caso de uso descreve a explora\u00e7\u00e3o dos recursos premium oferecidos pelo Canva, incluindo imagens, elementos gr\u00e1ficos, templates exclusivos e outras funcionalidades avan\u00e7adas dispon\u00edveis para assinantes pagos.
  • Diagrama:
  • Ator: Usu\u00e1rio Canva (Gratuito e Pro)
  • Fluxo B\u00e1sico de Eventos:
    1. O usu\u00e1rio navega pelas funcionalidades da plataforma.
    2. O sistema identifica e sinaliza os recursos exclusivos para usu\u00e1rios Premium.
    3. O usu\u00e1rio visualiza a descri\u00e7\u00e3o e benef\u00edcios do recurso Premium.
  • Fluxo Alternativo:
    1. Usu\u00e1rio Gratuito pode optar por assinar o plano Premium.
    2. Usu\u00e1rio Pro utiliza o recurso Premium.
    3. Usu\u00e1rio Pro pode acessar recursos
  • Fluxo de Exce\u00e7\u00f5es:
    1. Falha na conex\u00e3o com a internet durante o processo.
    2. Recurso Premium n\u00e3o dispon\u00edvel no momento.
    3. Usu\u00e1rio Gratuito tenta acessar recurso exclusivo para Usu\u00e1rios Pro.
"},{"location":"modelagem/casos_de_uso/#17-uc-07-adaptacao-do-design-para-diversos-formatos","title":"1.7. UC-07: Adapta\u00e7\u00e3o do Design para diversos formatos","text":"
  • Descri\u00e7\u00e3o: Este caso de uso descreve a funcionalidade de redimensionamento de um design existente para diferentes formatos, como redes sociais, banners, cart\u00f5es de visita, entre outros, garantindo a consist\u00eancia visual e a qualidade do projeto.
  • Diagrama:
  • Ator: Usu\u00e1rio Canva
  • Fluxo B\u00e1sico de Eventos:
    1. O usu\u00e1rio abre um design existente.
    2. O usu\u00e1rio utiliza a fun\u00e7\u00e3o \"Redimensionar\" (bot\u00e3o ou menu).
    3. O sistema apresenta op\u00e7\u00f5es de formatos pr\u00e9-definidos.
    4. O usu\u00e1rio seleciona o novo formato.
    5. O sistema redimensiona o design automaticamente, ajustando os elementos.
  • Fluxo Alternativo:
    1. O usu\u00e1rio pode optar por redimensionar manualmente, definindo dimens\u00f5es personalizadas.
    2. O usu\u00e1rio pode salvar o design em diferentes formatos para uso posterior.
  • Fluxo de Exce\u00e7\u00f5es:
    1. Distor\u00e7\u00e3o de elementos visuais ap\u00f3s o redimensionamento autom\u00e1tico, necessitando ajustes manuais.
    2. Falha na conex\u00e3o com a internet durante o processo.
"},{"location":"modelagem/casos_de_uso/#18-uc-08-logar-na-plataforma-canva","title":"1.8. UC-08: Logar na plataforma Canva","text":"
  • Descri\u00e7\u00e3o: Este caso de uso descreve o processo de login na plataforma Canva, permitindo que os usu\u00e1rios acessem suas contas de forma segura e acessem recursos exclusivos dispon\u00edveis para usu\u00e1rios cadastrados.
  • Diagrama:
  • Ator: Usu\u00e1rio An\u00f4nimo, Usu\u00e1rio Canva
  • Fluxo B\u00e1sico de Eventos:
    1. O usu\u00e1rio acessa a tela inicial do aplicativo.
    2. O usu\u00e1rio informa seus dados de login (e-mail e senha) ou utiliza credenciais de redes sociais.
    3. O sistema valida as informa\u00e7\u00f5es.
    4. O usu\u00e1rio \u00e9 redirecionado para a p\u00e1gina inicial da plataforma.
  • Fluxo Alternativo:
    1. O usu\u00e1rio pode optar por \"Esqueci minha senha\" para recuperar o acesso.
    2. O sistema pode solicitar autentica\u00e7\u00e3o de dois fatores.
  • Fluxo de Exce\u00e7\u00f5es:
    1. Falha na conex\u00e3o com a internet durante o processo.
    2. Dados de login inv\u00e1lidos.
"},{"location":"modelagem/casos_de_uso/#19-uc-09-logout-da-plataforma-canva","title":"1.9. UC-09: Logout da plataforma Canva","text":"
  • Descri\u00e7\u00e3o: Este caso de uso descreve o processo de logout da plataforma Canva, permitindo que os usu\u00e1rios encerrem suas sess\u00f5es de forma segura e garantam a privacidade de suas informa\u00e7\u00f5es.
  • Diagrama:
  • Ator: Usu\u00e1rio Canva
  • Fluxo B\u00e1sico de Eventos:
    1. O usu\u00e1rio clica na foto de perfil ou \u00edcone de usu\u00e1rio.
    2. O usu\u00e1rio seleciona a op\u00e7\u00e3o \"Sair\".
    3. O sistema encerra a sess\u00e3o do usu\u00e1rio.
  • Fluxo Alternativo:
    1. O usu\u00e1rio pode optar por \"Permanecer Conectado\" para manter a sess\u00e3o ativa.
  • Fluxo de Exce\u00e7\u00f5es:
    1. Falha na conex\u00e3o com a internet durante o processo.
"},{"location":"modelagem/casos_de_uso/#110-uc-010-gerenciar-pastas-e-projetos","title":"1.10. UC-010: Gerenciar Pastas e projetos","text":"
  • Descri\u00e7\u00e3o: Este caso de uso descreve a funcionalidade de gerenciamento de pastas e projetos no Canva, permitindo que os usu\u00e1rios organizem seus designs em pastas, criem novas pastas, movam designs entre pastas e excluam pastas e designs.
  • Diagrama:
  • Ator: Usu\u00e1rio Canva
  • Fluxo B\u00e1sico de Eventos:
    1. O usu\u00e1rio acessa a se\u00e7\u00e3o \"Pastas e Projetos\".
    2. O sistema exibe a lista de pastas existentes e designs associados.
    3. O usu\u00e1rio cria uma nova pasta.
    4. O usu\u00e1rio move designs para a nova pasta.
    5. O usu\u00e1rio exclui uma pasta e seus designs associados.
  • Fluxo Alternativo:
    1. O usu\u00e1rio pode renomear uma pasta existente.
    2. O usu\u00e1rio pode mover designs entre pastas existentes.
    3. O usu\u00e1rio pode restaurar designs exclu\u00eddos da lixeira.
  • Fluxo de Exce\u00e7\u00f5es:
    1. Falha na conex\u00e3o com a internet durante o processo.
    2. Exclus\u00e3o acidental de designs sem possibilidade de recupera\u00e7\u00e3o.
    3. Limite de pastas ou designs atingido.
    4. O usu\u00e1rio tenta criar uma pasta com um nome j\u00e1 existente no mesmo n\u00edvel da estrutura de pastas.
    5. O usu\u00e1rio tenta realizar uma a\u00e7\u00e3o em uma pasta/projeto sem a devida permiss\u00e3o (ex: deletar um projeto compartilhado onde ele possui apenas permiss\u00e3o de visualiza\u00e7\u00e3o).
"},{"location":"modelagem/casos_de_uso/#111-uc-11-colaborar-em-tempo-real","title":"1.11. UC-11: Colaborar em tempo real","text":"
  • Descri\u00e7\u00e3o: Este caso de uso descreve a funcionalidade de colabora\u00e7\u00e3o em tempo real no Canva, permitindo que os usu\u00e1rios trabalhem em um design simultaneamente, visualizando as altera\u00e7\u00f5es em tempo real e interagindo com outros colaboradores.
  • Diagrama:
  • Ator: Usu\u00e1rio Canva
  • Fluxo B\u00e1sico de Eventos:
    1. O usu\u00e1rio abre um design existente.
    2. O usu\u00e1rio clica no bot\u00e3o \"Compartilhar para Colabora\u00e7\u00e3o\".
    3. O sistema gera um link de colabora\u00e7\u00e3o.
    4. O usu\u00e1rio compartilha o link com outros colaboradores.
    5. Os colaboradores acessam o link e visualizam o design em tempo real.
    6. Os colaboradores podem editar, comentar ou visualizar o design.
  • Fluxo Alternativo:
    1. O usu\u00e1rio pode definir permiss\u00f5es de colabora\u00e7\u00e3o (visualizar, editar, comentar).
    2. O usu\u00e1rio pode encerrar a colabora\u00e7\u00e3o a qualquer momento.
    3. O usu\u00e1rio pode visualizar o hist\u00f3rico de edi\u00e7\u00f5es e coment\u00e1rios.
  • Fluxo de Exce\u00e7\u00f5es:
    1. Falha na conex\u00e3o com a internet durante o processo.
    2. Limite de colaboradores atingido.
    3. Conflitos de edi\u00e7\u00e3o entre colaboradores.
"},{"location":"modelagem/casos_de_uso/#112-uc-12-utilizar-recursos-de-inteligencia-artificial","title":"1.12. UC-12: Utilizar Recursos de Intelig\u00eancia Artificial","text":"
  • Descri\u00e7\u00e3o: Este caso de uso descreve a utiliza\u00e7\u00e3o de recursos de intelig\u00eancia artificial no Canva, como sugest\u00f5es de design, detec\u00e7\u00e3o de cores, recomenda\u00e7\u00f5es de fontes e outros recursos automatizados que auxiliam os usu\u00e1rios na cria\u00e7\u00e3o de designs visualmente atraentes.

  • Diagrama:

  • Ator: Usu\u00e1rio Canva
  • Fluxo B\u00e1sico de Eventos:
    1. O usu\u00e1rio acessa a se\u00e7\u00e3o de edi\u00e7\u00e3o de um design.
    2. O sistema identifica elementos visuais e texto no design.
    3. O sistema sugere cores, fontes, imagens ou elementos gr\u00e1ficos com base no conte\u00fado do design.
    4. O usu\u00e1rio aceita ou rejeita as sugest\u00f5es.
  • Fluxo Alternativo:
    1. O usu\u00e1rio pode solicitar sugest\u00f5es espec\u00edficas para um elemento visual ou texto.
    2. O usu\u00e1rio pode desativar os recursos de intelig\u00eancia artificial.
  • Fluxo de Exce\u00e7\u00f5es:
    1. Falha na conex\u00e3o com o internet durante o processo.
    2. Sugest\u00f5es inadequadas ou imprecisas.
"},{"location":"modelagem/casos_de_uso/#113-uc-13-acessar-recursos-de-aprendizado","title":"1.13. UC-13: Acessar Recursos de Aprendizado","text":"
  • Descri\u00e7\u00e3o: Este caso de uso descreve a funcionalidade de acesso a recursos de aprendizado no Canva, como tutoriais, dicas, guias e cursos online, que auxiliam os usu\u00e1rios a explorar as funcionalidades da plataforma, aprimorar suas habilidades de design e obter inspira\u00e7\u00e3o para seus projetos.
  • Diagrama:
  • Ator: Usu\u00e1rio Canva
  • Fluxo B\u00e1sico de Eventos:
    1. O usu\u00e1rio acessa a se\u00e7\u00e3o de \"Recursos de Aprendizado\".
    2. O sistema exibe uma lista de tutoriais, dicas e cursos dispon\u00edveis.
    3. O usu\u00e1rio seleciona um recurso de aprendizado.
    4. O sistema abre o recurso selecionado para visualiza\u00e7\u00e3o.
  • Fluxo Alternativo:
    1. O usu\u00e1rio pode filtrar os recursos por categoria, n\u00edvel de dificuldade ou interesse.
    2. O usu\u00e1rio pode marcar recursos como favoritos para acesso r\u00e1pido.
  • Fluxo de Exce\u00e7\u00f5es:
    1. Falha na conex\u00e3o com a internet durante o processo.
    2. Recurso de aprendizado n\u00e3o dispon\u00edvel no momento.
    3. Usu\u00e1rio Gratuito tenta acessar recurso exclusivo para Usu\u00e1rios Pro.
"},{"location":"modelagem/casos_de_uso/#114-uc-14-personalizar-configuracoes-de-conta","title":"1.14. UC-14: Personalizar Configura\u00e7\u00f5es de Conta","text":"
  • Descri\u00e7\u00e3o: Este caso de uso descreve a funcionalidade de personaliza\u00e7\u00e3o das configura\u00e7\u00f5es de conta no Canva, permitindo que os usu\u00e1rios atualizem suas informa\u00e7\u00f5es pessoais, prefer\u00eancias de design, notifica\u00e7\u00f5es, privacidade e outras configura\u00e7\u00f5es relacionadas \u00e0 sua conta.
  • Diagrama:
  • Ator: Usu\u00e1rio Canva
  • Fluxo B\u00e1sico de Eventos:
    1. O usu\u00e1rio acessa a se\u00e7\u00e3o de \"Configura\u00e7\u00f5es de Conta\".
    2. O sistema exibe op\u00e7\u00f5es de personaliza\u00e7\u00e3o dispon\u00edveis.
    3. O usu\u00e1rio atualiza suas informa\u00e7\u00f5es pessoais (nome, e-mail, senha, etc.).
    4. O usu\u00e1rio configura suas prefer\u00eancias de design (cores, fontes, estilos).
    5. O usu\u00e1rio define suas prefer\u00eancias de notifica\u00e7\u00f5es (e-mail, push).
    6. O usu\u00e1rio ajusta suas configura\u00e7\u00f5es de privacidade (compartilhamento, visibilidade).
  • Fluxo Alternativo:
    1. O usu\u00e1rio pode ativar/desativar recursos de intelig\u00eancia artificial.
    2. O usu\u00e1rio pode definir permiss\u00f5es de colabora\u00e7\u00e3o padr\u00e3o.
    3. O usu\u00e1rio pode configurar a autentica\u00e7\u00e3o de dois fatores.
  • Fluxo de Exce\u00e7\u00f5es:

    1. Falha na conex\u00e3o com a internet durante o processo.
    2. Dados inv\u00e1lidos ou incompletos.
    3. Configura\u00e7\u00f5es n\u00e3o salvas corretamente.
"},{"location":"modelagem/casos_de_uso/#115-uc-15-acessar-suporte-e-atendimento-ao-cliente","title":"1.15. UC-15: Acessar Suporte e Atendimento ao Cliente","text":"
  • Descri\u00e7\u00e3o: Este caso de uso descreve a funcionalidade de acesso ao suporte e atendimento ao cliente no Canva, permitindo que os usu\u00e1rios obtenham ajuda, tirem d\u00favidas, relatem problemas, solicitem recursos ou forne\u00e7am feedback sobre a plataforma.
  • Diagrama:
  • Ator: Usu\u00e1rio Canva
  • Fluxo B\u00e1sico de Eventos:
    1. O usu\u00e1rio acessa a se\u00e7\u00e3o de \"Suporte e Atendimento\".
    2. O sistema exibe op\u00e7\u00f5es de contato (chat, e-mail, telefone).
    3. O usu\u00e1rio seleciona o m\u00e9todo de contato preferido.
    4. O sistema inicia o atendimento ao cliente.
  • Fluxo Alternativo:
    1. O usu\u00e1rio pode acessar a base de conhecimento ou FAQ.
    2. O usu\u00e1rio pode enviar feedback ou sugest\u00f5es de melhorias.
  • Fluxo de Exce\u00e7\u00f5es:
    1. Falha na conex\u00e3o com o internet durante o processo.
    2. Tempo de espera prolongado para atendimento.
    3. Resolu\u00e7\u00e3o inadequada do problema ou d\u00favida.
"},{"location":"modelagem/casos_de_uso/#116-uc-16-acessar-recursos-de-colaboracao","title":"1.16. UC-16: Acessar Recursos de Colabora\u00e7\u00e3o","text":"
  • Descri\u00e7\u00e3o: Este caso de uso descreve a funcionalidade de acesso a recursos de colabora\u00e7\u00e3o no Canva, como coment\u00e1rios, revis\u00f5es, aprova\u00e7\u00f5es, marca\u00e7\u00f5es, compartilhamento de projetos e outras ferramentas que facilitam a comunica\u00e7\u00e3o e o trabalho em equipe.
  • Diagrama:
  • Ator: Usu\u00e1rio Canva
  • Fluxo B\u00e1sico de Eventos:
    1. O usu\u00e1rio acessa a se\u00e7\u00e3o de \"Recursos de Colabora\u00e7\u00e3o\".
    2. O sistema exibe op\u00e7\u00f5es de colabora\u00e7\u00e3o dispon\u00edveis.
    3. O usu\u00e1rio seleciona um recurso de colabora\u00e7\u00e3o.
    4. O sistema abre o recurso selecionado para utiliza\u00e7\u00e3o.
  • Fluxo Alternativo:
    1. O usu\u00e1rio pode adicionar coment\u00e1rios em designs compartilhados.
    2. O usu\u00e1rio pode solicitar revis\u00f5es ou aprova\u00e7\u00f5es de projetos.
    3. O usu\u00e1rio pode marcar outros colaboradores em designs.
  • Fluxo de Exce\u00e7\u00f5es:
    1. Falha na conex\u00e3o com o internet durante o processo.
    2. Recurso de colabora\u00e7\u00e3o n\u00e3o dispon\u00edvel no momento.
    3. Usu\u00e1rio Gratuito tenta acessar recurso exclusivo para Usu\u00e1rios Pro.
"},{"location":"modelagem/casos_de_uso/#117-uc-17-acessar-recursos-de-marketing","title":"1.17. UC-17: Acessar Recursos de Marketing","text":"
  • Descri\u00e7\u00e3o: Este caso de uso descreve a funcionalidade de acesso a recursos de marketing no Canva, como modelos de cart\u00f5es de visita, banners, flyers, posts para redes sociais, apresenta\u00e7\u00f5es, entre outros, que auxiliam os usu\u00e1rios a criar materiais promocionais de forma r\u00e1pida e profissional.
  • Diagrama:
  • Ator: Usu\u00e1rio Canva
  • Fluxo B\u00e1sico de Eventos:
    1. O usu\u00e1rio acessa a se\u00e7\u00e3o de \"Recursos de Marketing\".
    2. O sistema exibe op\u00e7\u00f5es de templates dispon\u00edveis por categoria (neg\u00f3cios, eventos, vendas, etc.).
    3. O usu\u00e1rio seleciona um template de marketing.
    4. O sistema abre o template selecionado para edi\u00e7\u00e3o.
  • Fluxo Alternativo:
    1. O usu\u00e1rio pode personalizar o template de acordo com suas necessidades.
    2. O usu\u00e1rio pode salvar o design em diferentes formatos para uso posterior.
  • Fluxo de Exce\u00e7\u00f5es:
    1. Falha na conex\u00e3o com o internet durante o processo.
    2. Template de marketing n\u00e3o dispon\u00edvel no momento.
    3. Usu\u00e1rio Gratuito tenta acessar template exclusivo para Usu\u00e1rios Pro.
"},{"location":"modelagem/casos_de_uso/#118-uc-18-acessar-recursos-de-design-grafico","title":"1.18. UC-18: Acessar Recursos de Design Gr\u00e1fico","text":"
  • Descri\u00e7\u00e3o: Este caso de uso descreve a funcionalidade de acesso a recursos de design gr\u00e1fico no Canva, como \u00edcones, ilustra\u00e7\u00f5es, formas, texturas, fundos, paletas de cores, fontes, entre outros, que auxiliam os usu\u00e1rios a criar designs visualmente atraentes e profissionais.
  • Diagrama:
  • Ator: Usu\u00e1rio Canva
  • Fluxo B\u00e1sico de Eventos:
    1. O usu\u00e1rio acessa a se\u00e7\u00e3o de \"Recursos de Design Gr\u00e1fico\".
    2. O sistema exibe op\u00e7\u00f5es de recursos dispon\u00edveis por categoria (\u00edcones, ilustra\u00e7\u00f5es, formas, etc.).
    3. O usu\u00e1rio seleciona um recurso de design gr\u00e1fico.
    4. O sistema abre o recurso selecionado para utiliza\u00e7\u00e3o.
  • Fluxo Alternativo:
    1. O usu\u00e1rio pode pesquisar recursos por palavra-chave ou categoria.
    2. O usu\u00e1rio pode favoritar recursos para acesso r\u00e1pido.
  • Fluxo de Exce\u00e7\u00f5es:
    1. Falha na conex\u00e3o com o internet durante o processo.
    2. Recurso de design gr\u00e1fico n\u00e3o dispon\u00edvel no momento.
    3. Usu\u00e1rio Gratuito tenta acessar recurso exclusivo para Usu\u00e1rios Pro.
"},{"location":"modelagem/casos_de_uso/#119-uc-19-acessar-recursos-de-fotografia","title":"1.19. UC-19: Acessar Recursos de Fotografia","text":"
  • Descri\u00e7\u00e3o: Este caso de uso descreve a funcionalidade de acesso a recursos de fotografia no Canva, como imagens, fotos, ilustra\u00e7\u00f5es, fundos, texturas, filtros, efeitos, entre outros, que auxiliam os usu\u00e1rios a criar designs visualmente atraentes e profissionais.
  • Diagrama:
  • Ator: Usu\u00e1rio Canva
  • Fluxo B\u00e1sico de Eventos:
    1. O usu\u00e1rio acessa a se\u00e7\u00e3o de \"Recursos de Fotografia\".
    2. O sistema exibe op\u00e7\u00f5es de recursos dispon\u00edveis por categoria (imagens, fotos, ilustra\u00e7\u00f5es, etc.).
    3. O usu\u00e1rio seleciona um recurso de fotografia.
    4. O sistema abre o recurso selecionado para utiliza\u00e7\u00e3o.
  • Fluxo Alternativo:
    1. O usu\u00e1rio pode pesquisar recursos por palavra-chave ou categoria.
    2. O usu\u00e1rio pode favoritar recursos para acesso r\u00e1pido.
  • Fluxo de Exce\u00e7\u00f5es:
    1. Falha na conex\u00e3o com o internet durante o processo.
    2. Recurso de fotografia n\u00e3o dispon\u00edvel no momento.
    3. Usu\u00e1rio Gratuito tenta acessar recurso exclusivo para Usu\u00e1rios Pro.
"},{"location":"modelagem/casos_de_uso/#120-uc-20-acessar-recursos-de-video","title":"1.20. UC-20: Acessar Recursos de V\u00eddeo","text":"
  • Descri\u00e7\u00e3o: Este caso de uso descreve a funcionalidade de acesso a recursos de v\u00eddeo no Canva, como v\u00eddeos, anima\u00e7\u00f5es, transi\u00e7\u00f5es, efeitos, trilhas sonoras, narra\u00e7\u00f5es, entre outros, que auxiliam os usu\u00e1rios a criar designs audiovisuais atraentes e profissionais.
  • Diagrama:
  • Ator: Usu\u00e1rio Canva
  • Fluxo B\u00e1sico de Eventos:
    1. O usu\u00e1rio acessa a se\u00e7\u00e3o de \"Recursos de V\u00eddeo\".
    2. O sistema exibe op\u00e7\u00f5es de recursos dispon\u00edveis por categoria (v\u00eddeos, anima\u00e7\u00f5es, transi\u00e7\u00f5es, etc.).
    3. O usu\u00e1rio seleciona um recurso de v\u00eddeo.
    4. O sistema abre o recurso selecionado para utiliza\u00e7\u00e3o.
  • Fluxo Alternativo:
    1. O usu\u00e1rio pode pesquisar recursos por palavra-chave ou categoria.
    2. O usu\u00e1rio pode favoritar recursos para acesso r\u00e1pido.
  • Fluxo de Exce\u00e7\u00f5es:
    1. Falha na conex\u00e3o com o internet durante o processo.
    2. Recurso de v\u00eddeo n\u00e3o dispon\u00edvel no momento.
    3. Usu\u00e1rio Gratuito tenta acessar recurso exclusivo para Usu\u00e1rios Pro.
"},{"location":"modelagem/casos_de_uso/#121-uc-21-acessar-recursos-de-audio","title":"1.21. UC-21: Acessar Recursos de \u00c1udio","text":"
  • Descri\u00e7\u00e3o: Este caso de uso descreve a funcionalidade de acesso a recursos de \u00e1udio no Canva, como m\u00fasicas, efeitos sonoros, narra\u00e7\u00f5es, trilhas sonoras, entre outros, que auxiliam os usu\u00e1rios a criar designs audiovisuais atraentes e profissionais.
  • Diagrama:
  • Ator: Usu\u00e1rio Canva
  • Fluxo B\u00e1sico de Eventos:
    1. O usu\u00e1rio acessa a se\u00e7\u00e3o de \"Recursos de \u00c1udio\".
    2. O sistema exibe op\u00e7\u00f5es de recursos dispon\u00edveis por categoria (m\u00fasicas, efeitos sonoros, narra\u00e7\u00f5es, etc.).
    3. O usu\u00e1rio seleciona um recurso de \u00e1udio.
    4. O sistema abre o recurso selecionado para utiliza\u00e7\u00e3o.
  • Fluxo Alternativo:
    1. O usu\u00e1rio pode pesquisar recursos por palavra-chave ou categoria.
    2. O usu\u00e1rio pode favoritar recursos para acesso r\u00e1pido.
  • Fluxo de Exce\u00e7\u00f5es:
    1. Falha na conex\u00e3o com o internet durante o processo.
    2. Recurso de \u00e1udio n\u00e3o dispon\u00edvel no momento.
    3. Usu\u00e1rio Gratuito tenta acessar recurso exclusivo para Usu\u00e1rios Pro.
"},{"location":"modelagem/casos_de_uso/#2-modelo-de-casos-de-uso","title":"2. Modelo de Casos de Uso:","text":""},{"location":"modelagem/casos_de_uso/#21-atores","title":"2.1. Atores:","text":"
  • Usu\u00e1rio An\u00f4nimo: Qualquer pessoa que acessa o aplicativo Canva sem estar logado.
  • Usu\u00e1rio Canva: Pessoa cadastrada na plataforma, podendo ser um Usu\u00e1rio Gratuito ou Usu\u00e1rio Pro (assinante).
"},{"location":"modelagem/casos_de_uso/#22-fluxo-basico-de-eventos","title":"2.2. Fluxo B\u00e1sico de Eventos:","text":"

Descrito em cada caso de uso (UC-XX).

"},{"location":"modelagem/casos_de_uso/#23-fluxos-alternativos-e-excepcionais","title":"2.3. Fluxos Alternativos e Excepcionais:","text":"

Descritos em cada caso de uso (UC-XX).

"},{"location":"modelagem/casos_de_uso/#3-consideracoes-finais","title":"3. Considera\u00e7\u00f5es Finais:","text":""},{"location":"modelagem/casos_de_uso/#31-beneficios-da-especificacao-de-casos-de-uso","title":"3.1. Benef\u00edcios da Especifica\u00e7\u00e3o de Casos de Uso:","text":"
  • Define o comportamento esperado do sistema do ponto de vista do usu\u00e1rio.
  • Facilita a comunica\u00e7\u00e3o entre desenvolvedores, designers e stakeholders.
  • Auxilia na identifica\u00e7\u00e3o de requisitos funcionais e n\u00e3o funcionais.
  • Serve como base para testes e valida\u00e7\u00e3o do sistema.
"},{"location":"modelagem/cenarios/","title":"Cen\u00e1rios","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 12/08/2024 Adi\u00e7\u00e3o dos primeiros cen\u00e1rios encontrados durante a an\u00e1lise de protocolo Luiza Maluf 0.0 16/07/2024 Adi\u00e7\u00e3o de mais cen\u00e1rios ap\u00f3s avaliar os casos de uso. Luiza Maluf 0.1"},{"location":"modelagem/cenarios/#origem","title":"Origem","text":"

O desenvolvimento destes cen\u00e1rios foi dado a partir da an\u00e1lise de protocolo, feita na parte de elicita\u00e7\u00e3o.

N\u00e3o satisfeitos com a quantidade de cen\u00e1rios e com uma vis\u00e3o diferente vinda da Especifica\u00e7\u00e3o de Casos de Uso, foi poss\u00edvel identificar novos cen\u00e1rios.

"},{"location":"modelagem/cenarios/#metodologia","title":"Metodologia","text":"

Foi feita a navega\u00e7\u00e3o dentro da plataforma anotando os principais processos que o usu\u00e1ro poderia efetuar.

"},{"location":"modelagem/cenarios/#1-criacao-de-um-design-simples","title":"1. Cria\u00e7\u00e3o de um Design Simples","text":""},{"location":"modelagem/cenarios/#objetivo","title":"OBJETIVO","text":"

Um usu\u00e1rio novato acessa o Canva e deseja criar um design de cart\u00e3o de visita.

"},{"location":"modelagem/cenarios/#contexto","title":"CONTEXTO","text":"

O usu\u00e1rio est\u00e1 acessando o Canva pela primeira vez e tem pouca experi\u00eancia em design gr\u00e1fico.

"},{"location":"modelagem/cenarios/#atores","title":"ATORES","text":"
  • Usu\u00e1rio
"},{"location":"modelagem/cenarios/#recursos","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva.

"},{"location":"modelagem/cenarios/#pre-condicao","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve estar logado na plataforma Canva.

"},{"location":"modelagem/cenarios/#episodios","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio faz login na plataforma Canva.
  2. Navega pelos templates dispon\u00edveis e escolhe um para cart\u00e3o de visita.
  3. Personaliza o template, inserindo seu nome, cargo e informa\u00e7\u00f5es de contato.
  4. Altera as cores e fontes de acordo com sua prefer\u00eancia.
  5. Visualiza o design final e decide salv\u00e1-lo.
  6. O usu\u00e1rio baixa o design para seu computador.
"},{"location":"modelagem/cenarios/#restricoes","title":"RESTRI\u00c7\u00d5ES","text":"

Usu\u00e1rio deve ter uma conta ativa na plataforma Canva.

"},{"location":"modelagem/cenarios/#pos-condicao","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

Usu\u00e1rio criou e salvou um cart\u00e3o de visita simples, pronto para uso.

"},{"location":"modelagem/cenarios/#resultado-esperado","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio consegue criar e salvar um cart\u00e3o de visita simples, ficando satisfeito com a facilidade de uso da ferramenta.

"},{"location":"modelagem/cenarios/#2-colaboracao-em-tempo-real","title":"2. Colabora\u00e7\u00e3o em Tempo Real","text":""},{"location":"modelagem/cenarios/#objetivo_1","title":"OBJETIVO","text":"

Dois usu\u00e1rios colaboram simultaneamente em um design de apresenta\u00e7\u00e3o para uma reuni\u00e3o de neg\u00f3cios.

"},{"location":"modelagem/cenarios/#contexto_1","title":"CONTEXTO","text":"

Os usu\u00e1rios est\u00e3o em locais diferentes, mas precisam trabalhar juntos no mesmo projeto em tempo real na plataforma Canva.

"},{"location":"modelagem/cenarios/#atores_1","title":"ATORES","text":"
  • Usu\u00e1rios
"},{"location":"modelagem/cenarios/#recursos_1","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva, chat integrado.

"},{"location":"modelagem/cenarios/#pre-condicao_1","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

Ambos os usu\u00e1rios devem estar logados na plataforma Canva e ter uma conex\u00e3o de internet est\u00e1vel.

"},{"location":"modelagem/cenarios/#episodios_1","title":"EPIS\u00d3DIOS","text":"
  1. Usu\u00e1rio 1 cria uma apresenta\u00e7\u00e3o no Canva.
  2. Usu\u00e1rio 1 compartilha o link de edi\u00e7\u00e3o do design com o Usu\u00e1rio.
  3. Ambos os usu\u00e1rios abrem o design simultaneamente e come\u00e7am a edit\u00e1-lo.
  4. Usu\u00e1rio 1 trabalha nos primeiros slides, enquanto Usu\u00e1rio edita os \u00faltimos slides.
  5. Os usu\u00e1rios discutem as altera\u00e7\u00f5es e ajustes necess\u00e1rios usando o chat integrado da plataforma.
  6. Ambos revisam o design final juntos, fazem os ajustes necess\u00e1rios e salvam o projeto.
"},{"location":"modelagem/cenarios/#restricoes_1","title":"RESTRI\u00c7\u00d5ES","text":"

Ambos os usu\u00e1rios precisam ter permiss\u00e3o de edi\u00e7\u00e3o para colaborar no design.

"},{"location":"modelagem/cenarios/#pos-condicao_1","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

O design da apresenta\u00e7\u00e3o foi conclu\u00eddo e salvo, estando pronto para a reuni\u00e3o.

"},{"location":"modelagem/cenarios/#resultado-esperado_1","title":"RESULTADO ESPERADO","text":"

Os dois usu\u00e1rios conseguem colaborar em tempo real, completando o design de forma eficiente e satisfat\u00f3ria.

"},{"location":"modelagem/cenarios/#3-exploracao-de-recursos-premium","title":"3. Explora\u00e7\u00e3o de Recursos Premium","text":""},{"location":"modelagem/cenarios/#objetivo_2","title":"OBJETIVO","text":"

Um usu\u00e1rio gratuito explora os benef\u00edcios de um plano de assinatura para decidir se vale a pena assin\u00e1-lo.

"},{"location":"modelagem/cenarios/#contexto_2","title":"CONTEXTO","text":"

O usu\u00e1rio sente que as op\u00e7\u00f5es gratuitas s\u00e3o limitadas e deseja saber se vale a pena assinar um plano.

"},{"location":"modelagem/cenarios/#atores_2","title":"ATORES","text":"
  • Usu\u00e1rio
"},{"location":"modelagem/cenarios/#recursos_2","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva.

"},{"location":"modelagem/cenarios/#pre-condicao_2","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve estar logado na plataforma Canva.

"},{"location":"modelagem/cenarios/#episodios_2","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio navega pelos [templates] gratuitos, mas n\u00e3o encontra algo que atenda \u00e0s suas necessidades.
  2. Ele v\u00ea a indica\u00e7\u00e3o de templates Premium e resolve clicar para ver as op\u00e7\u00f5es.
  3. Um pop-up aparece explicando os benef\u00edcios do plano de assinatura, como acesso a templates exclusivos e recursos adicionais.
  4. O usu\u00e1rio decide experimentar o plano por 30 dias gratuitamente.
  5. Ap\u00f3s a ativa\u00e7\u00e3o, ele come\u00e7a a usar os templates Premium e nota a diferen\u00e7a na qualidade e variedade.
"},{"location":"modelagem/cenarios/#restricoes_2","title":"RESTRI\u00c7\u00d5ES","text":"

O usu\u00e1rio deve ter uma conta ativa na plataforma Canva.

"},{"location":"modelagem/cenarios/#pos-condicao_2","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio explora os recursos Premium e decide se continuar\u00e1 com a assinatura ap\u00f3s o per\u00edodo de teste.

"},{"location":"modelagem/cenarios/#resultado-esperado_2","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio percebe o valor dos recursos Premium e decide continuar com a assinatura ap\u00f3s o per\u00edodo de teste.

"},{"location":"modelagem/cenarios/#4-criacao-de-materiais-para-uma-campanha-publicitaria","title":"4. Cria\u00e7\u00e3o de Materiais para uma Campanha Publicit\u00e1ria","text":""},{"location":"modelagem/cenarios/#objetivo_3","title":"OBJETIVO","text":"

Uma equipe de marketing cria materiais gr\u00e1ficos para uma nova campanha publicit\u00e1ria.

"},{"location":"modelagem/cenarios/#contexto_3","title":"CONTEXTO","text":"

A equipe precisa garantir que todos os materiais tenham uma identidade visual consistente.

"},{"location":"modelagem/cenarios/#atores_3","title":"ATORES","text":"
  • Designer
  • Gerente de Marketing
"},{"location":"modelagem/cenarios/#recursos_3","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva.

"},{"location":"modelagem/cenarios/#pre-condicao_3","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

A equipe de marketing deve estar alinhada quanto \u00e0 identidade visual da campanha.

"},{"location":"modelagem/cenarios/#episodios_3","title":"EPIS\u00d3DIOS","text":"
  1. O designer seleciona um conjunto de templates que combinam entre si para garantir consist\u00eancia visual.
  2. Adapta cada Templates para diferentes formatos (postagem em redes sociais, banners para site, e-mail marketing).
  3. Utiliza elementos gr\u00e1ficos e o Banco de Imagens para enriquecer os materiais.
  4. O gerente de marketing revisa e sugere pequenas altera\u00e7\u00f5es.
  5. Ap\u00f3s aprova\u00e7\u00e3o, o designer exporta os materiais nos formatos necess\u00e1rios.
  6. Os materiais s\u00e3o compartilhados com a equipe e publicados conforme o cronograma da campanha.
"},{"location":"modelagem/cenarios/#restricoes_3","title":"RESTRI\u00c7\u00d5ES","text":"

A equipe deve respeitar o prazo da campanha e as diretrizes de identidade visual estabelecidas.

"},{"location":"modelagem/cenarios/#pos-condicao_3","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

Os materiais gr\u00e1ficos est\u00e3o prontos e alinhados com a identidade visual da campanha.

"},{"location":"modelagem/cenarios/#resultado-esperado_3","title":"RESULTADO ESPERADO","text":"

A equipe de marketing consegue criar uma campanha coesa e visualmente atraente, melhorando a identidade da marca.

"},{"location":"modelagem/cenarios/#5-adaptacao-de-um-design-para-diferentes-midias","title":"5. Adapta\u00e7\u00e3o de um Design para Diferentes M\u00eddias","text":""},{"location":"modelagem/cenarios/#objetivo_4","title":"OBJETIVO","text":"

Um designer adapta um \u00fanico design para diferentes m\u00eddias, como cartazes impressos, posts em redes sociais e banners para sites.

"},{"location":"modelagem/cenarios/#contexto_4","title":"CONTEXTO","text":"

O designer precisa garantir que a mensagem e a identidade visual sejam mantidas em todos os formatos.

"},{"location":"modelagem/cenarios/#atores_4","title":"ATORES","text":"
  • Designer
"},{"location":"modelagem/cenarios/#recursos_4","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva.

"},{"location":"modelagem/cenarios/#pre-condicao_4","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O designer deve ter acesso aos templates originais e aos requisitos espec\u00edficos de cada m\u00eddia.

"},{"location":"modelagem/cenarios/#episodios_4","title":"EPIS\u00d3DIOS","text":"
  1. O designer seleciona o design original no Canva.
  2. Duplica o design e ajusta as dimens\u00f5es para cada m\u00eddia (A4 para cartazes, 1080x1080 para posts, etc.).
  3. Reposiciona os elementos gr\u00e1ficos conforme necess\u00e1rio para manter o equil\u00edbrio visual.
  4. Ajusta o tamanho das fontes e o espa\u00e7amento para garantir legibilidade em cada formato.
  5. Revisa cada adapta\u00e7\u00e3o e exporta os arquivos nos formatos apropriados.
"},{"location":"modelagem/cenarios/#restricoes_4","title":"RESTRI\u00c7\u00d5ES","text":"

O designer deve garantir que a mensagem principal permane\u00e7a clara em todas as adapta\u00e7\u00f5es.

"},{"location":"modelagem/cenarios/#pos-condicao_4","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

Os designs est\u00e3o prontos para uso em diferentes m\u00eddias.

"},{"location":"modelagem/cenarios/#resultado-esperado_4","title":"RESULTADO ESPERADO","text":"

O designer adapta com sucesso o design original para diferentes m\u00eddias, mantendo a consist\u00eancia da mensagem e da identidade visual.

"},{"location":"modelagem/cenarios/#6-exportacao-de-um-projeto-em-alta-resolucao","title":"6. Exporta\u00e7\u00e3o de um Projeto em Alta Resolu\u00e7\u00e3o","text":""},{"location":"modelagem/cenarios/#objetivo_5","title":"OBJETIVO","text":"

Um designer exporta um projeto gr\u00e1fico em alta resolu\u00e7\u00e3o para impress\u00e3o profissional.

"},{"location":"modelagem/cenarios/#contexto_5","title":"CONTEXTO","text":"

O designer precisa garantir que o arquivo final tenha qualidade suficiente para impress\u00e3o em grande escala.

"},{"location":"modelagem/cenarios/#atores_5","title":"ATORES","text":"
  • Usu\u00e1rio
"},{"location":"modelagem/cenarios/#recursos_5","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva.

"},{"location":"modelagem/cenarios/#pre-condicao_5","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O projeto deve estar finalizado e revisado.

"},{"location":"modelagem/cenarios/#episodios_5","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio abre o projeto no Canva.
  2. Seleciona a op\u00e7\u00e3o de exporta\u00e7\u00e3o e escolhe o formato adequado (por exemplo, PDF para impress\u00e3o).
  3. Ajusta as configura\u00e7\u00f5es de resolu\u00e7\u00e3o para a m\u00e1xima qualidade dispon\u00edvel.
  4. Revisa as op\u00e7\u00f5es de margens, caso necess\u00e1rio.
  5. Exporta o arquivo e faz o download.
"},{"location":"modelagem/cenarios/#restricoes_5","title":"RESTRI\u00c7\u00d5ES","text":"

O usu\u00e1rio deve garantir que as configura\u00e7\u00f5es de exporta\u00e7\u00e3o atendam aos requisitos da impress\u00e3o.

"},{"location":"modelagem/cenarios/#pos-condicao_5","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

O projeto est\u00e1 pronto para ser enviado para a gr\u00e1fica.

"},{"location":"modelagem/cenarios/#resultado-esperado_5","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio consegue exportar o projeto em alta resolu\u00e7\u00e3o, garantindo uma impress\u00e3o de alta qualidade.

"},{"location":"modelagem/cenarios/#7-compartilhamento-de-post-para-redes-sociais","title":"7. Compartilhamento de Post para Redes Sociais","text":""},{"location":"modelagem/cenarios/#objetivo_6","title":"OBJETIVO","text":"

Um usu\u00e1rio cria e compartilha um post visual para promover um novo produto em diversas redes sociais.

"},{"location":"modelagem/cenarios/#contexto_6","title":"CONTEXTO","text":"

O usu\u00e1rio deseja utilizar o Canva para criar um post atraente que ser\u00e1 compartilhado em m\u00faltiplas plataformas sociais para maximizar o alcance do novo produto.

"},{"location":"modelagem/cenarios/#atores_6","title":"ATORES","text":"
  • Usu\u00e1rio
"},{"location":"modelagem/cenarios/#recursos_6","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva, contas nas redes sociais (Instagram, Facebook, Twitter, LinkedIn).

"},{"location":"modelagem/cenarios/#pre-condicao_6","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve ter as imagens do produto, textos promocionais e informa\u00e7\u00f5es sobre as redes sociais onde o post ser\u00e1 compartilhado.

"},{"location":"modelagem/cenarios/#episodios_6","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio acessa o Canva e escolhe um template de post adequado para redes sociais.
  2. Personaliza o [design](lexico.md#Design) com imagens do produto, texto promocional e hashtags relevantes.
  3. Ajusta o layout e o design para atender \u00e0s diretrizes espec\u00edficas de cada plataforma social.
  4. Rev\u00ea o post para garantir que todos os detalhes estejam corretos e que o design esteja otimizado para cada rede social.
  5. Exporta o post no formato adequado para cada plataforma (Instagram, Facebook, Twitter, LinkedIn).
  6. Compartilha o post diretamente nas contas de redes sociais usando as ferramentas de integra\u00e7\u00e3o do Canva ou faz o upload manualmente em cada plataforma.
"},{"location":"modelagem/cenarios/#restricoes_6","title":"RESTRI\u00c7\u00d5ES","text":"

Os posts devem seguir as diretrizes de tamanho e formato recomendadas por cada rede social para garantir uma boa visualiza\u00e7\u00e3o e desempenho.

"},{"location":"modelagem/cenarios/#pos-condicao_6","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

Os posts est\u00e3o publicados e vis\u00edveis nas redes sociais selecionadas.

"},{"location":"modelagem/cenarios/#resultado-esperado_6","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio cria e compartilha posts atraentes que promovem eficazmente o novo produto, engajando os seguidores em diversas redes sociais.

"},{"location":"modelagem/cenarios/#8-login-e-logout-na-plataforma-canva","title":"8. Login e Logout na Plataforma Canva","text":""},{"location":"modelagem/cenarios/#objetivo_7","title":"OBJETIVO","text":"

Um usu\u00e1rio acessa sua conta na plataforma Canva para criar e gerenciar design, e depois realiza o logout para garantir a seguran\u00e7a da conta.

"},{"location":"modelagem/cenarios/#contexto_7","title":"CONTEXTO","text":"

O usu\u00e1rio precisa acessar sua conta na plataforma Canva para trabalhar em projetos e, ap\u00f3s concluir seu trabalho, deseja fazer logout para proteger suas informa\u00e7\u00f5es.

"},{"location":"modelagem/cenarios/#atores_7","title":"ATORES","text":"
  • Usu\u00e1rio
"},{"location":"modelagem/cenarios/#recursos_7","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva.

"},{"location":"modelagem/cenarios/#pre-condicao_7","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve ter uma conta ativa na plataforma Canva e conhecer suas credenciais de login.

"},{"location":"modelagem/cenarios/#episodios_7","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio acessa a p\u00e1gina de login do Canva.
  2. Insere seu nome de usu\u00e1rio e senha.
  3. Clica no bot\u00e3o de login para acessar sua conta.
  4. O usu\u00e1rio usa a plataforma Canva para criar ou gerenciar design.
  5. Ap\u00f3s concluir suas atividades, o usu\u00e1rio localiza a op\u00e7\u00e3o de logout no menu de perfil.
  6. Clica na op\u00e7\u00e3o de logout para sair da conta.
  7. O usu\u00e1rio \u00e9 redirecionado para a p\u00e1gina de login ou para a p\u00e1gina inicial do Canva.
"},{"location":"modelagem/cenarios/#restricoes_7","title":"RESTRI\u00c7\u00d5ES","text":"

O usu\u00e1rio deve lembrar suas credenciais para realizar o login. Ap\u00f3s o logout, \u00e9 necess\u00e1rio fazer login novamente para acessar a conta.

"},{"location":"modelagem/cenarios/#pos-condicao_7","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio foi desconectado da sua conta na plataforma Canva, garantindo que suas informa\u00e7\u00f5es estejam seguras.

"},{"location":"modelagem/cenarios/#resultado-esperado_7","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio consegue fazer login e logout com sucesso, garantindo o acesso e a seguran\u00e7a de sua conta na plataforma Canva.

"},{"location":"modelagem/cenarios/#9-cenario-edicao-de-um-design-existente","title":"9. Cen\u00e1rio: Edi\u00e7\u00e3o de um Design Existente","text":""},{"location":"modelagem/cenarios/#objetivo_8","title":"OBJETIVO","text":"

Um usu\u00e1rio deseja editar um design j\u00e1 existente na plataforma Canva para ajusta-lo \u00e0s suas novas necessidades.

"},{"location":"modelagem/cenarios/#contexto_8","title":"CONTEXTO","text":"

O usu\u00e1rio j\u00e1 criou ou tem acesso a um design na plataforma Canva e agora precisa modific\u00e1-lo para atualiz\u00e1-lo ou adapt\u00e1-lo a um novo prop\u00f3sito.

"},{"location":"modelagem/cenarios/#atores_8","title":"ATORES","text":"
  • Usu\u00e1rio
"},{"location":"modelagem/cenarios/#recursos_8","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva.

"},{"location":"modelagem/cenarios/#pre-condicao_8","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve estar logado na plataforma Canva e ter acesso ao design que deseja editar.

"},{"location":"modelagem/cenarios/#episodios_8","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio faz login no Canva.
  2. Navega at\u00e9 a se\u00e7\u00e3o \"Meus Designs\" ou utiliza a barra de pesquisa para localizar o design existente.
  3. Clica no design desejado para abri-lo na interface de edi\u00e7\u00e3o.
  4. Realiza as modifica\u00e7\u00f5es necess\u00e1rias, como altera\u00e7\u00e3o de texto, imagens, cores e layout.
  5. Visualiza as mudan\u00e7as em tempo real para garantir que o design atende \u00e0s novas necessidades.
  6. Salva as altera\u00e7\u00f5es e, se necess\u00e1rio, exporta o design modificado nos formatos desejados.
"},{"location":"modelagem/cenarios/#restricoes_8","title":"RESTRI\u00c7\u00d5ES","text":"

O usu\u00e1rio deve garantir que todas as altera\u00e7\u00f5es estejam de acordo com os requisitos do projeto ou com a nova finalidade do design.

"},{"location":"modelagem/cenarios/#pos-condicao_8","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

O design foi editado com sucesso e est\u00e1 pronto para ser usado conforme o novo prop\u00f3sito.

"},{"location":"modelagem/cenarios/#resultado-esperado_8","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio consegue editar o design existente de maneira eficaz, adaptando-o \u00e0s suas novas necessidades e garantindo que o resultado final esteja de acordo com as expectativas.

"},{"location":"modelagem/cenarios/#10-cenario-download-de-um-design","title":"10. Cen\u00e1rio: Download de um Design","text":""},{"location":"modelagem/cenarios/#objetivo_9","title":"OBJETIVO","text":"

Um usu\u00e1rio deseja baixar um design da plataforma Canva para utiliz\u00e1-lo fora da plataforma, como para impress\u00e3o ou compartilhamento.

"},{"location":"modelagem/cenarios/#contexto_9","title":"CONTEXTO","text":"

O usu\u00e1rio terminou de criar ou editar um design na plataforma Canva e agora precisa baix\u00e1-lo para uso offline ou compartilhamento em outras plataformas.

"},{"location":"modelagem/cenarios/#atores_9","title":"ATORES","text":"
  • Usu\u00e1rio
"},{"location":"modelagem/cenarios/#recursos_9","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva.

"},{"location":"modelagem/cenarios/#pre-condicao_9","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve estar logado na plataforma Canva e ter um design finalizado e pronto para o download.

"},{"location":"modelagem/cenarios/#episodios_9","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio faz login no Canva.
  2. Navega at\u00e9 o design finalizado que deseja baixar, acessando-o atrav\u00e9s da se\u00e7\u00e3o \"Meus Designs\" ou utilizando a barra de pesquisa.
  3. Clica no design desejado e clica no bot\u00e3o de \"Download\" no canto superior direito da interface.
  4. Escolhe o formato de arquivo desejado (por exemplo, PNG, JPEG, PDF) e ajusta as configura\u00e7\u00f5es de qualidade, resolu\u00e7\u00e3o ou margens, se necess\u00e1rio.
  5. Confirma as op\u00e7\u00f5es e inicia o download do arquivo.
  6. O design \u00e9 baixado para o dispositivo do usu\u00e1rio, ficando dispon\u00edvel para uso offline.
"},{"location":"modelagem/cenarios/#restricoes_9","title":"RESTRI\u00c7\u00d5ES","text":"

O usu\u00e1rio deve garantir que escolheu o formato de arquivo correto e configurou as op\u00e7\u00f5es de download conforme a finalidade do design.

"},{"location":"modelagem/cenarios/#pos-condicao_9","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

O design foi baixado com sucesso e est\u00e1 pronto para ser usado conforme o necess\u00e1rio.

"},{"location":"modelagem/cenarios/#resultado-esperado_9","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio consegue baixar o design no formato desejado, com a qualidade adequada, pronto para o uso offline ou compartilhado.

"},{"location":"modelagem/cenarios/#11-acesso-a-um-template-pronto","title":"11. Acesso a um Template Pronto","text":""},{"location":"modelagem/cenarios/#objetivo_10","title":"OBJETIVO","text":"

O usu\u00e1rio deseja acessar um template pronto na plataforma Canva para iniciar a cria\u00e7\u00e3o de um design personalizado.

"},{"location":"modelagem/cenarios/#contexto_10","title":"CONTEXTO","text":"

O usu\u00e1rio est\u00e1 na plataforma Canva e deseja utilizar um template pr\u00e9-definido como base para criar um novo design. ATORES####

  • Usu\u00e1rio
"},{"location":"modelagem/cenarios/#recursos_10","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva.

"},{"location":"modelagem/cenarios/#pre-condicao_10","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve estar logado na plataforma Canva.

"},{"location":"modelagem/cenarios/#episodios_10","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio faz login no Canva.
  2. Na p\u00e1gina inicial, o usu\u00e1rio navega at\u00e9 a se\u00e7\u00e3o de \"Templates\" ou utiliza a barra de pesquisa para buscar um template espec\u00edfico.
  3. O usu\u00e1rio explora as categorias dispon\u00edveis, como \"Cart\u00f5es de Visita,\" \"Apresenta\u00e7\u00f5es,\" \"Postagens para Redes Sociais,\" entre outras.
  4. Seleciona o template que melhor atende \u00e0s suas necessidades.
  5. Abre o template escolhido, visualizando uma pr\u00e9via do design.
  6. Clica no bot\u00e3o \"Usar este template\" para iniciar a personaliza\u00e7\u00e3o do design.
"},{"location":"modelagem/cenarios/#restricoes_10","title":"RESTRI\u00c7\u00d5ES","text":"

O usu\u00e1rio deve garantir que escolheu um template adequado ao seu prop\u00f3sito antes de iniciar a personaliza\u00e7\u00e3o.

"},{"location":"modelagem/cenarios/#pos-condicao_10","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio tem o template pronto aberto na interface de edi\u00e7\u00e3o do Canva, pronto para ser personalizado conforme desejado.

"},{"location":"modelagem/cenarios/#resultado-esperado_10","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio consegue acessar e abrir um template pronto na plataforma Canva, facilitando o in\u00edcio da cria\u00e7\u00e3o de um design personalizado.

"},{"location":"modelagem/cenarios/#12-gerenciamento-de-pastas-e-projetos-no-canva","title":"12. Gerenciamento de Pastas e Projetos no Canva","text":""},{"location":"modelagem/cenarios/#objetivo_11","title":"OBJETIVO","text":"

O usu\u00e1rio deseja organizar seus projetos de design criando e gerenciando pastas na plataforma Canva.

"},{"location":"modelagem/cenarios/#contexto_11","title":"CONTEXTO","text":"

O usu\u00e1rio possui v\u00e1rios projetos na plataforma Canva e deseja organiz\u00e1-los de forma eficiente para facilitar o acesso e a gest\u00e3o.

"},{"location":"modelagem/cenarios/#atores_10","title":"ATORES","text":"
  • Usu\u00e1rio
"},{"location":"modelagem/cenarios/#recursos_11","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva.

"},{"location":"modelagem/cenarios/#pre-condicao_11","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve estar logado na plataforma Canva e ter projetos criados.

"},{"location":"modelagem/cenarios/#episodios_11","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio faz login no Canva.
  2. Acessa a se\u00e7\u00e3o \"Todos os seus designs\" no painel principal.
  3. Identifica a necessidade de organizar os projetos em pastas.
  4. Clica na op\u00e7\u00e3o \"Criar nova pasta\" e d\u00e1 um nome \u00e0 nova pasta, como \"Projetos de Marketing\" ou \"Apresenta\u00e7\u00f5es 2024\".
  5. Ap\u00f3s criar a pasta, o usu\u00e1rio arrasta e solta os projetos desejados dentro da pasta ou seleciona os projetos e usa a op\u00e7\u00e3o \"Mover para a pasta\" no menu de contexto.
  6. O usu\u00e1rio tamb\u00e9m pode criar subpastas dentro das pastas principais para uma organiza\u00e7\u00e3o mais detalhada.
  7. Se necess\u00e1rio, o usu\u00e1rio renomeia, exclui ou move as pastas conforme as necessidades de organiza\u00e7\u00e3o.
  8. Para localizar rapidamente um projeto espec\u00edfico, o usu\u00e1rio utiliza a barra de pesquisa ou navega pelas pastas organizadas.
"},{"location":"modelagem/cenarios/#restricoes_11","title":"RESTRI\u00c7\u00d5ES","text":"

O usu\u00e1rio deve organizar os projetos de maneira l\u00f3gica para facilitar o acesso futuro. O Canva pode ter limita\u00e7\u00f5es no n\u00famero de subpastas ou no n\u00famero de projetos por pasta, dependendo do plano de assinatura.

"},{"location":"modelagem/cenarios/#pos-condicao_11","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

Os projetos est\u00e3o organizados em pastas, permitindo que o usu\u00e1rio acesse e gerencie seus designs de forma mais eficiente.

"},{"location":"modelagem/cenarios/#resultado-esperado_11","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio consegue criar, organizar e gerenciar pastas para seus projetos na plataforma Canva, melhorando a efici\u00eancia na navega\u00e7\u00e3o e no gerenciamento dos designs.

"},{"location":"modelagem/cenarios/#13-utilizacao-de-recursos-de-inteligencia-artificial-no-canva","title":"13. Utiliza\u00e7\u00e3o de Recursos de Intelig\u00eancia Artificial no Canva","text":""},{"location":"modelagem/cenarios/#objetivo_12","title":"OBJETIVO","text":"

O usu\u00e1rio deseja utilizar os recursos de intelig\u00eancia artificial (IA) do Canva para aprimorar seus designs, como a gera\u00e7\u00e3o de textos autom\u00e1ticos ou a cria\u00e7\u00e3o de elementos gr\u00e1ficos personalizados.

"},{"location":"modelagem/cenarios/#contexto_12","title":"CONTEXTO","text":"

O usu\u00e1rio est\u00e1 trabalhando em um projeto de design no Canva e deseja explorar as ferramentas de IA dispon\u00edveis para acelerar o processo criativo e melhorar a qualidade do design.

"},{"location":"modelagem/cenarios/#atores_11","title":"ATORES","text":"
  • Usu\u00e1rio
"},{"location":"modelagem/cenarios/#recursos_12","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web, plataforma Canva.

"},{"location":"modelagem/cenarios/#pre-condicao_12","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve estar logado na plataforma Canva e ter um projeto aberto.

"},{"location":"modelagem/cenarios/#episodios_12","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio faz login no Canva e abre um projeto.
  2. No painel de ferramentas, o usu\u00e1rio identifica a se\u00e7\u00e3o de \"Recursos de IA\" ou uma ferramenta espec\u00edfica de IA, como \"Gerador de Texto\" ou \"Cria\u00e7\u00e3o Autom\u00e1tica de Elementos Gr\u00e1ficos\".
  3. O usu\u00e1rio seleciona o recurso de IA que deseja utilizar, como a gera\u00e7\u00e3o de texto autom\u00e1tico para uma manchete ou a sugest\u00e3o de paletas de cores personalizadas.
  4. Se utilizando da IA, o usu\u00e1rio insere palavras-chave ou instru\u00e7\u00f5es sobre o que deseja gerar (por exemplo, \"slogan para campanha de ver\u00e3o\" ou \"ilustra\u00e7\u00e3o abstrata para fundo\").
  5. A IA processa as informa\u00e7\u00f5es e apresenta sugest\u00f5es ou gera os elementos solicitados.
  6. O usu\u00e1rio revisa as sugest\u00f5es e, se necess\u00e1rio, faz ajustes manuais para alinhar o resultado com o objetivo do projeto.
  7. O usu\u00e1rio integra os elementos gerados pela IA ao design e continua a personaliza\u00e7\u00e3o conforme necess\u00e1rio.
  8. Se satisfeito com o resultado, o usu\u00e1rio salva o projeto final ou faz uma exporta\u00e7\u00e3o.
"},{"location":"modelagem/cenarios/#restricoes_12","title":"RESTRI\u00c7\u00d5ES","text":"

Os recursos de IA podem ter limita\u00e7\u00f5es em termos de complexidade de gera\u00e7\u00e3o ou em quantidade de op\u00e7\u00f5es oferecidas, dependendo do plano de assinatura do Canva.

"},{"location":"modelagem/cenarios/#pos-condicao_12","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

O design do projeto foi aprimorado com a ajuda dos recursos de IA, economizando tempo e aumentando a qualidade do resultado.

"},{"location":"modelagem/cenarios/#resultado-esperado_12","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio consegue utilizar eficazmente os recursos de intelig\u00eancia artificial do Canva, como a gera\u00e7\u00e3o autom\u00e1tica de texto ou a cria\u00e7\u00e3o de elementos gr\u00e1ficos, melhorando a efici\u00eancia do processo de design e o resultado final.

"},{"location":"modelagem/cenarios/#14-personalizar-configuracoes-de-conta-no-canva","title":"14. Personalizar Configura\u00e7\u00f5es de Conta no Canva","text":""},{"location":"modelagem/cenarios/#objetivo_13","title":"OBJETIVO","text":"

O usu\u00e1rio deseja personalizar as configura\u00e7\u00f5es de sua conta no Canva para adaptar a plataforma \u00e0s suas prefer\u00eancias e necessidades espec\u00edficas.

"},{"location":"modelagem/cenarios/#contexto_13","title":"CONTEXTO","text":"

O usu\u00e1rio est\u00e1 logado em sua conta no Canva e quer ajustar configura\u00e7\u00f5es como idioma, notifica\u00e7\u00f5es, m\u00e9todos de pagamento, ou privacidade para otimizar sua experi\u00eancia na plataforma.

"},{"location":"modelagem/cenarios/#atores_12","title":"ATORES","text":"
  • Usu\u00e1rio
"},{"location":"modelagem/cenarios/#recursos_13","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web ou aplicativo m\u00f3vel, conta ativa no Canva.

"},{"location":"modelagem/cenarios/#pre-condicao_13","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve estar logado na plataforma Canva.

"},{"location":"modelagem/cenarios/#episodios_13","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio faz login na plataforma Canva e acessa a p\u00e1gina inicial.
  2. O usu\u00e1rio localiza o menu de configura\u00e7\u00f5es de conta, geralmente acess\u00edvel atrav\u00e9s do \u00edcone de perfil ou das op\u00e7\u00f5es de menu.
  3. O usu\u00e1rio clica na op\u00e7\u00e3o \"Configura\u00e7\u00f5es de Conta\" para abrir a p\u00e1gina de configura\u00e7\u00f5es.
  4. Na p\u00e1gina de configura\u00e7\u00f5es, o usu\u00e1rio navega entre as diferentes categorias, como \"Informa\u00e7\u00f5es Pessoais\", \"Notifica\u00e7\u00f5es\", \"Seguran\u00e7a\", \"Prefer\u00eancias de Idioma\", ou \"Faturamento e Pagamentos\".
  5. O usu\u00e1rio seleciona a categoria que deseja personalizar. Por exemplo:

    • Para alterar o idioma da plataforma, o usu\u00e1rio acessa \"Prefer\u00eancias de Idioma\" e escolhe o idioma desejado.

    • Para ajustar as notifica\u00e7\u00f5es, o usu\u00e1rio acessa \"Notifica\u00e7\u00f5es\" e escolhe quais tipos de alertas deseja receber por email ou no aplicativo.

    • Para atualizar m\u00e9todos de pagamento, o usu\u00e1rio acessa \"Faturamento e Pagamentos\" e adiciona ou modifica as op\u00e7\u00f5es de pagamento.

  6. Ap\u00f3s fazer as altera\u00e7\u00f5es desejadas, o usu\u00e1rio salva as configura\u00e7\u00f5es.

  7. O usu\u00e1rio revisa as mudan\u00e7as feitas para garantir que as configura\u00e7\u00f5es est\u00e3o corretas e de acordo com suas prefer\u00eancias.
  8. Caso necess\u00e1rio, o usu\u00e1rio faz novos ajustes ou retorna \u00e0 p\u00e1gina inicial do Canva.
"},{"location":"modelagem/cenarios/#restricoes_13","title":"RESTRI\u00c7\u00d5ES","text":"

Algumas op\u00e7\u00f5es de personaliza\u00e7\u00e3o podem estar dispon\u00edveis apenas para usu\u00e1rios com planos de assinatura espec\u00edficos, como o Canva Pro. P\u00d3S-COND#### I\u00c7\u00c3O

As configura\u00e7\u00f5es da conta do usu\u00e1rio no Canva s\u00e3o atualizadas conforme as prefer\u00eancias definidas.

"},{"location":"modelagem/cenarios/#resultado-esperado_13","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio consegue personalizar as configura\u00e7\u00f5es de sua conta no Canva, adaptando a plataforma \u00e0s suas prefer\u00eancias e melhorando sua experi\u00eancia de uso.

"},{"location":"modelagem/cenarios/#15-acessar-suporte-e-atendimento-ao-cliente-no-canva","title":"15. Acessar Suporte e Atendimento ao Cliente no Canva","text":""},{"location":"modelagem/cenarios/#objetivo_14","title":"OBJETIVO","text":"

O usu\u00e1rio deseja acessar o suporte e atendimento ao cliente do Canva para resolver d\u00favidas, problemas t\u00e9cnicos, ou obter informa\u00e7\u00f5es sobre a plataforma.

"},{"location":"modelagem/cenarios/#contexto_14","title":"CONTEXTO","text":"

O usu\u00e1rio est\u00e1 utilizando a plataforma Canva e encontra dificuldades ou quest\u00f5es que n\u00e3o consegue resolver sozinho. Ele decide buscar ajuda atrav\u00e9s dos canais de suporte dispon\u00edveis.

"},{"location":"modelagem/cenarios/#atores_13","title":"ATORES","text":"
  • Usu\u00e1rio
  • Representante de Suporte do Canva
"},{"location":"modelagem/cenarios/#recursos_14","title":"RECURSOS","text":"

Computador ou smartphone, acesso \u00e0 internet, navegador web ou aplicativo m\u00f3vel, conta ativa no Canva.

"},{"location":"modelagem/cenarios/#pre-condicao_14","title":"PR\u00c9-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio deve estar logado na plataforma Canva.

"},{"location":"modelagem/cenarios/#episodios_14","title":"EPIS\u00d3DIOS","text":"
  1. O usu\u00e1rio faz login na plataforma Canva e acessa a p\u00e1gina inicial.
  2. O usu\u00e1rio localiza a se\u00e7\u00e3o de \"Ajuda\" ou \"Suporte\", geralmente dispon\u00edvel no rodap\u00e9 da p\u00e1gina ou no menu de perfil.
  3. O usu\u00e1rio clica na op\u00e7\u00e3o \"Ajuda\" para acessar a central de suporte do Canva.
  4. Na central de suporte, o usu\u00e1rio pode:

    • Explorar artigos e tutoriais dispon\u00edveis na base de conhecimento do Canva para encontrar uma solu\u00e7\u00e3o para sua d\u00favida.

    • Utilizar a barra de pesquisa para digitar palavras-chave relacionadas ao problema ou quest\u00e3o.

    -Acessar as perguntas frequentes (FAQ) para verificar se a d\u00favida j\u00e1 foi respondida.

  5. Se o usu\u00e1rio n\u00e3o encontrar a solu\u00e7\u00e3o nas op\u00e7\u00f5es anteriores, ele pode optar por:

    • Entrar em contato com o suporte ao cliente via chat ao vivo, se dispon\u00edvel.

    • Enviar uma solicita\u00e7\u00e3o de suporte por email, detalhando o problema e aguardando a resposta da equipe.

    • Acessar a comunidade do Canva para interagir com outros usu\u00e1rios e buscar solu\u00e7\u00f5es colaborativas.

  6. O usu\u00e1rio escolhe o canal de atendimento mais adequado para sua necessidade e segue as instru\u00e7\u00f5es fornecidas para entrar em contato com o suporte.

  7. O usu\u00e1rio aguarda a resposta do suporte e, caso solicitado, segue as orienta\u00e7\u00f5es fornecidas para resolver o problema.
  8. Caso necess\u00e1rio, o usu\u00e1rio faz novos ajustes ou retorna \u00e0 p\u00e1gina inicial do Canva.
  9. O usu\u00e1rio confirma que o problema foi resolvido ou, se necess\u00e1rio, continua o di\u00e1logo com o suporte at\u00e9 a conclus\u00e3o.
"},{"location":"modelagem/cenarios/#restricoes_14","title":"RESTRI\u00c7\u00d5ES","text":"

O tempo de resposta do suporte pode variar dependendo do canal escolhido e do plano de assinatura do usu\u00e1rio.

"},{"location":"modelagem/cenarios/#pos-condicao_13","title":"P\u00d3S-CONDI\u00c7\u00c3O","text":"

O usu\u00e1rio recebe o suporte necess\u00e1rio para resolver seu problema ou esclarecer suas d\u00favidas.

"},{"location":"modelagem/cenarios/#resultado-esperado_14","title":"RESULTADO ESPERADO","text":"

O usu\u00e1rio consegue acessar o suporte e atendimento ao cliente do Canva, resolve seu problema ou obt\u00e9m a informa\u00e7\u00e3o necess\u00e1ria, e retoma suas atividades na plataforma com sucesso.

"},{"location":"modelagem/especificacao_suplementar/","title":"Especifica\u00e7\u00e3o Suplementar","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 16/09/2021 Cria\u00e7\u00e3o do documento e defini\u00e7\u00e3o dos requisitos n\u00e3o funcionais ap\u00f3s an\u00e1lise de casos de uso Henrique Quenino 0.1 17/09/2021 Revis\u00e3o e ajustes dos requisitos n\u00e3o funcionais Henrique Quenino 1.0"},{"location":"modelagem/especificacao_suplementar/#origem","title":"Origem","text":"

A Especifica\u00e7\u00e3o Suplementar foi criada ap\u00f3s a an\u00e1lise dos casos de uso do site Canva, com o objetivo de definir os requisitos n\u00e3o funcionais essenciais para o desenvolvimento e opera\u00e7\u00e3o da plataforma.

"},{"location":"modelagem/especificacao_suplementar/#metodologia","title":"Metodologia","text":"

Os requisitos n\u00e3o funcionais foram identificados considerando as necessidades dos usu\u00e1rios, as restri\u00e7\u00f5es do sistema e as melhores pr\u00e1ticas de desenvolvimento de software.

"},{"location":"modelagem/especificacao_suplementar/#1-introducao","title":"1. Introdu\u00e7\u00e3o","text":"

Este documento descreve a Especifica\u00e7\u00e3o Suplementar do site Canva, complementando a Especifica\u00e7\u00e3o de Casos de Uso. Ele detalha os requisitos n\u00e3o funcionais, incluindo requisitos de desempenho, seguran\u00e7a, usabilidade e outros, essenciais para o sucesso da plataforma.

"},{"location":"modelagem/especificacao_suplementar/#2-requisitos-nao-funcionais","title":"2. Requisitos N\u00e3o Funcionais","text":""},{"location":"modelagem/especificacao_suplementar/#21-desempenho","title":"2.1. Desempenho","text":"
  • Tempo de Carregamento: O site deve carregar em menos de 3 segundos em uma conex\u00e3o de banda larga (5 Mbps) para 80% das requisi\u00e7\u00f5es.
  • Tempo de Resposta: As intera\u00e7\u00f5es do usu\u00e1rio, como arrastar e soltar elementos, aplicar filtros e salvar designs, devem ocorrer em tempo real, com um tempo de resposta m\u00e1ximo de 0,5 segundos.
  • Escalabilidade: A plataforma deve suportar um n\u00famero crescente de usu\u00e1rios simult\u00e2neos e projetos sem degrada\u00e7\u00e3o significativa no desempenho.
  • Disponibilidade: O site deve estar dispon\u00edvel 99,9% do tempo, com um tempo de inatividade m\u00e1ximo programado de 4 horas por m\u00eas para manuten\u00e7\u00e3o.
"},{"location":"modelagem/especificacao_suplementar/#22-seguranca","title":"2.2. Seguran\u00e7a","text":"
  • Autentica\u00e7\u00e3o: A plataforma deve oferecer autentica\u00e7\u00e3o segura por meio de senha, autentica\u00e7\u00e3o de dois fatores e login social (Google, Facebook).
  • Autoriza\u00e7\u00e3o: O acesso aos designs e recursos deve ser controlado por um sistema de permiss\u00f5es granular, permitindo o compartilhamento e a colabora\u00e7\u00e3o com diferentes n\u00edveis de acesso.
  • Prote\u00e7\u00e3o de Dados: As informa\u00e7\u00f5es do usu\u00e1rio, incluindo dados pessoais e designs, devem ser criptografadas em repouso e em tr\u00e2nsito usando protocolos de seguran\u00e7a padr\u00e3o da ind\u00fastria (SSL/TLS).
  • Conformidade: A plataforma deve cumprir as leis e regulamenta\u00e7\u00f5es de prote\u00e7\u00e3o de dados relevantes, como LGPD e GDPR.
"},{"location":"modelagem/especificacao_suplementar/#23-usabilidade","title":"2.3. Usabilidade","text":"
  • Interface do Usu\u00e1rio: A interface deve ser intuitiva, f\u00e1cil de usar e esteticamente agrad\u00e1vel, utilizando princ\u00edpios de design centrados no usu\u00e1rio.
  • Navega\u00e7\u00e3o: Os usu\u00e1rios devem ser capazes de navegar facilmente pelo site, encontrar as ferramentas e recursos necess\u00e1rios e acessar seus projetos rapidamente.
  • Acessibilidade: A plataforma deve ser acess\u00edvel a usu\u00e1rios com defici\u00eancia, seguindo as diretrizes de acessibilidade WCAG 2.1.
  • Documenta\u00e7\u00e3o e Suporte: O Canva deve fornecer documenta\u00e7\u00e3o abrangente, tutoriais e suporte ao cliente responsivo para ajudar os usu\u00e1rios a utilizar todas as funcionalidades da plataforma.
"},{"location":"modelagem/especificacao_suplementar/#24-confiabilidade","title":"2.4. Confiabilidade","text":"
  • Recupera\u00e7\u00e3o de Falhas: A plataforma deve ser projetada para lidar com falhas de hardware e software, garantindo a m\u00ednima perda de dados e r\u00e1pida recupera\u00e7\u00e3o.
  • Backup e Restaura\u00e7\u00e3o: Backups regulares do site e dos dados do usu\u00e1rio devem ser realizados, com a capacidade de restaurar dados em caso de perda ou corrup\u00e7\u00e3o.
  • Monitoramento: O sistema deve ser monitorado continuamente para detectar e solucionar problemas de desempenho, seguran\u00e7a e disponibilidade.
"},{"location":"modelagem/especificacao_suplementar/#25-manutenibilidade","title":"2.5. Manutenibilidade","text":"
  • Modularidade: A arquitetura do site deve ser modular, permitindo a atualiza\u00e7\u00e3o e manuten\u00e7\u00e3o de componentes individuais sem afetar outras partes do sistema.
  • Documenta\u00e7\u00e3o T\u00e9cnica: A documenta\u00e7\u00e3o t\u00e9cnica completa, incluindo diagramas de arquitetura, c\u00f3digo-fonte documentado e casos de teste, deve ser mantida para facilitar a manuten\u00e7\u00e3o e o desenvolvimento futuro.
  • Ferramentas de Desenvolvimento: O Canva deve utilizar ferramentas e tecnologias de desenvolvimento padr\u00e3o da ind\u00fastria para garantir a manutenibilidade e a escalabilidade do c\u00f3digo.
"},{"location":"modelagem/especificacao_suplementar/#3-restricoes","title":"3. Restri\u00e7\u00f5es","text":"
  • Navegadores Suportados: O site deve ser compat\u00edvel com as vers\u00f5es mais recentes dos principais navegadores da web, incluindo Chrome, Firefox, Safari e Edge.
  • Dispositivos Suportados: A plataforma deve funcionar corretamente em desktops, laptops, tablets e smartphones.
  • Idiomas Suportados: O Canva deve estar dispon\u00edvel em v\u00e1rios idiomas, incluindo portugu\u00eas, ingl\u00eas, espanhol e outros idiomas relevantes para o p\u00fablico-alvo.
"},{"location":"modelagem/especificacao_suplementar/#4-conclusao","title":"4. Conclus\u00e3o","text":"

A Especifica\u00e7\u00e3o Suplementar define os requisitos n\u00e3o funcionais essenciais para o desenvolvimento e opera\u00e7\u00e3o bem-sucedidos do site Canva. Ao atender a esses requisitos, a plataforma poder\u00e1 oferecer uma experi\u00eancia de usu\u00e1rio de alta qualidade, segura, confi\u00e1vel e escal\u00e1vel para seus usu\u00e1rios.

"},{"location":"modelagem/istar/","title":"iStar","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 14/08/2024 Adi\u00e7\u00e3o da vers\u00e3o inicial do iStar. Rodrigo Mattos 0.0 02/09/2024 Melhoria dos diagramas SD e SR. Rodrigo Mattos 0.1 09/09/2024 Corre\u00e7\u00e3o dos diagramas SD e SR. Rodrigo Mattos 0.2"},{"location":"modelagem/istar/#origem","title":"Origem","text":"

O desenvolvimento deste iStar foi dado inicialmente a partir da An\u00e1lise de Protocolo feita na parte da elicita\u00e7\u00e3o e ap\u00f3s introspec\u00e7\u00e3o durante navega\u00e7\u00e3o na plataforma Canva.

"},{"location":"modelagem/istar/#metodologia","title":"Metodologia","text":"

O desenvolvimento do iStar foi feito inicialmente com a identifica\u00e7\u00e3o dos principais atores e agentes envolvidos no sistema. Em seguida, foi feita a modelagem dos diagramas SD e SR explicando as depend\u00eancias entre os atores e as tarefas e objetivos de cada ator. Posteriormente o documento foi revisado pelo Caio.

"},{"location":"modelagem/istar/#introducao","title":"Introdu\u00e7\u00e3o","text":"

O iStar (ou i*) \u00e9 uma t\u00e9cnica de modelagem que ajuda a entender e representar as rela\u00e7\u00f5es e depend\u00eancias entre diferentes atores (como pessoas, sistemas ou organiza\u00e7\u00f5es) dentro de um sistema ou projeto. Ele foca em identificar os objetivos dos atores, as tarefas que realizam para alcan\u00e7\u00e1-los, e como esses atores dependem uns dos outros para atingir seus objetivos.

"},{"location":"modelagem/istar/#artefatos","title":"Artefatos","text":""},{"location":"modelagem/istar/#principais-atoresagentes","title":"Principais Atores/Agentes","text":"
  • Usu\u00e1rio
  • Canva
  • PRO
"},{"location":"modelagem/istar/#strategic-dependency-model-sd","title":"Strategic Dependency Model (SD)","text":""},{"location":"modelagem/istar/#strategic-rationale-model-sr","title":"Strategic Rationale Model (SR)","text":""},{"location":"modelagem/istar/#sr-usuario","title":"SR Usu\u00e1rio","text":""},{"location":"modelagem/istar/#sr-canva","title":"SR Canva","text":""},{"location":"modelagem/istar/#sr-pro","title":"SR PRO","text":""},{"location":"modelagem/lexico/","title":"L\u00e9xicos","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 12/08/2024 Adi\u00e7\u00e3o dos primeiros lexicos encontrados durante a an\u00e1lise de protocolo Luiza Maluf 0.0 16/07/2024 Adi\u00e7\u00e3o de mais l\u00e9xicos encontrados ap\u00f3s o desenvolvimento dos primeiros cen\u00e1rios. Luiza Maluf 0.1"},{"location":"modelagem/lexico/#origem","title":"Origem","text":"

O desenvolvimento deste l\u00e9xico foi dado a partir da an\u00e1lise de protocolo feita na parte da elicita\u00e7\u00e3o.

Al\u00e9m disso, um segunda vers\u00e3o foi feita ap\u00f3s o desenvolvimento dos cen\u00e1rios.

"},{"location":"modelagem/lexico/#metodologia","title":"Metodologia","text":"

Primeiramente, navegando dentro da plataforma e anotando as palavras chaves.

Em um segundo momento, foi poss\u00edvel identificar novos l\u00e9xicos durante a produ\u00e7\u00e3o dos cen\u00e1rios

"},{"location":"modelagem/lexico/#Adicionar","title":"Adicionar","text":"Nome Adicionar Sin\u00f4nimos Incluir, Inserir No\u00e7\u00e3o Inserir novos elementos, como texto, imagens, ou gr\u00e1ficos, em um design. Impacto Enriquecer o design com novos conte\u00fados, aumentando sua complexidade e valor visual. Classifica\u00e7\u00e3o Verbo."},{"location":"modelagem/lexico/#Acesso","title":"Acesso","text":"Nome Acesso Sin\u00f4nimos Entrada, Permiss\u00e3o No\u00e7\u00e3o Possibilidade de utilizar a plataforma ou determinadas funcionalidades ap\u00f3s autentica\u00e7\u00e3o ou autoriza\u00e7\u00e3o. Impacto Permite ao usu\u00e1rio interagir com o sistema, utilizando as ferramentas e recursos dispon\u00edveis. Classifica\u00e7\u00e3o Verbo."},{"location":"modelagem/lexico/#Agrupar","title":"Agrupar","text":"Nome Agrupar Sin\u00f4nimos Unir, Combinar No\u00e7\u00e3o Combinar m\u00faltiplos elementos em uma \u00fanica unidade para facilitar a movimenta\u00e7\u00e3o e edi\u00e7\u00e3o. Impacto Simplifica a manipula\u00e7\u00e3o de m\u00faltiplos elementos, permitindo edi\u00e7\u00f5es simult\u00e2neas e coordena\u00e7\u00e3o visual. Classifica\u00e7\u00e3o Verbo."},{"location":"modelagem/lexico/#Alinhamento","title":"Alinhamento","text":"Nome Alinhamento Sin\u00f4nimos Posicionamento, Distribui\u00e7\u00e3o No\u00e7\u00e3o O alinhamento correto melhora a organiza\u00e7\u00e3o e legibilidade do design, contribuindo para uma apresenta\u00e7\u00e3o visual mais profissional. Impacto Arranjo dos elementos gr\u00e1ficos e textuais em rela\u00e7\u00e3o ao layout. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Altera","title":"Altera","text":"Nome Altera Sin\u00f4nimos Modifica\u00e7\u00f5es, Ajustes No\u00e7\u00e3o Mudan\u00e7as realizadas em um design ou configura\u00e7\u00e3o dentro da plataforma. Impacto Influenciam o resultado final, permitindo ajustes e melhorias cont\u00ednuas no design ou no projeto. Classifica\u00e7\u00e3o Verbo."},{"location":"modelagem/lexico/#Anima\u00e7\u00e3o","title":"Anima\u00e7\u00e3o","text":"Nome Anima\u00e7\u00e3o Sin\u00f4nimos Movimento, Efeito Visual No\u00e7\u00e3o Permite que elementos do design tenham movimento, como transi\u00e7\u00f5es suaves ou efeitos de entrada e sa\u00edda, aumentando o impacto visual. Impacto Adiciona dinamismo aos designs, especialemnte em apresenta\u00e7\u00f5es e v\u00eddeos. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Aplicar","title":"Aplicar","text":"Nome Aplicar Sin\u00f4nimos Usar, Implementar No\u00e7\u00e3o Colocar efeitos, filtros ou estilos em um elemento ou design. Impacto Transforma a apar\u00eancia dos elementos, adicionando camadas de estilo e profundidade ao design. Classifica\u00e7\u00e3o Verbo."},{"location":"modelagem/lexico/#Arquivo","title":"Arquivo","text":"Nome Arquivo Sin\u00f4nimos Documento, Projeto No\u00e7\u00e3o Os arquivos podem ser salvos, compartilhados e reabertos para futuras edi\u00e7\u00f5es ou exporta\u00e7\u00f5es. Impacto Refere-se ao documento salvo que cont\u00e9m o design criado. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Arrastar","title":"Arrastar e Soltar","text":"Nome Arrastar e Soltar Sin\u00f4nimos Drag and Drop, Mover Elementos No\u00e7\u00e3o Simplifica o processo de edi\u00e7\u00e3o, permitindo que os usu\u00e1rios organizem os elementos de maneira intuitiva e r\u00e1pida. Impacto M\u00e9todo de intera\u00e7\u00e3o que permite mover elementos pelo design apenas arrastando-os com o cursor. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Apresenta\u00e7\u00e3o","title":"Apresenta\u00e7\u00e3o","text":"Nome Apresenta\u00e7\u00e3o Sin\u00f4nimos Slideshow, Pitch, Deck No\u00e7\u00e3o Tipo espec\u00edfico de design usado para apresenta\u00e7\u00f5es, frequentemente utilizado em contextos empresariais ou educacionais. Impacto Conjunto de slides criado para comunicar ideias de forma estruturada. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Baixar","title":"Baixar","text":"Nome Baixar Sin\u00f4nimos Download, Transferir No\u00e7\u00e3o A\u00e7\u00e3o de salvar o design ou projeto localmente no dispositivo do usu\u00e1rio. Impacto Facilita o uso do design em outros contextos, fora da plataforma, como apresenta\u00e7\u00f5es ou impress\u00f5es. Classifica\u00e7\u00e3o Verbo."},{"location":"modelagem/lexico/#Banco_de_Imagens","title":"Banco de Imagens","text":"Nome Banco de Imagens Sin\u00f4nimos Galeria de Fotos, Biblioteca de Imagens No\u00e7\u00e3o Fornece uma ampla variedade de fotos e gr\u00e1ficos, tanto gratuitos quanto pagos, que podem ser inseridos em projetos. Impacto Reposit\u00f3rio de imagens que os usu\u00e1rios podem utilizar em seus designs. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#","title":"Biclioteca de Elementos","text":"Nome Biclioteca de Elementos Sin\u00f4nimos Reposit\u00f3rio de Elementos, Cole\u00e7\u00e3o de Gr\u00e1ficos No\u00e7\u00e3o A biblioteca oferece uma vasta gama de elementos visuais, desde \u00edcones a ilustra\u00e7\u00f5es, que podem ser inseridos e personalizados em projetos. Impacto Conjunto de recursos gr\u00e1ficos dispon\u00edveis para uso em designs. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Camadas","title":"Camadas","text":"Nome Camadas Sin\u00f4nimos N\u00edveis, Estruturas No\u00e7\u00e3o Permitem manipular a disposi\u00e7\u00e3o dos elementos gr\u00e1ficos e texto, criando profundidade e organiza\u00e7\u00e3o no design. Impacto Controlam a ordem e sobreposi\u00e7\u00e3o dos elementos em um design. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Colabora\u00e7\u00e3o","title":"Colabora\u00e7\u00e3o","text":"Nome Colabora\u00e7\u00e3o Sin\u00f4nimos Trabalho em Equipe, Coopera\u00e7\u00e3o No\u00e7\u00e3o Facilita a cria\u00e7\u00e3o conjunta de projetos, possibilitando edi\u00e7\u00f5es simult\u00e2neas e feedback em tempo real. Impacto Permite que m\u00faltiplos usu\u00e1rios trabalhem juntos em um design ao mesmo tempo. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Coment\u00e1rio","title":"Coment\u00e1rio","text":"Nome Coment\u00e1rio Sin\u00f4nimos Anota\u00e7\u00f5es, Feedback No\u00e7\u00e3o Ferramenta de colabora\u00e7\u00e3o que facilita a comunica\u00e7\u00e3o entre membros da equipe ou clientes, diretamente no projeto. Impacto Permitem que os usu\u00e1rios compartilhem opini\u00f5es e sugest\u00f5es dentro de um design colaborativo. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Compartilhamento","title":"Compartilhamento","text":"Nome Compartilhamento Sin\u00f4nimos Publica\u00e7\u00e3o, Distribui\u00e7\u00e3o No\u00e7\u00e3o Facilita a colabora\u00e7\u00e3o e dissemina\u00e7\u00e3o dos trabalhos criados na plataforma. Impacto Mecanismo que permite aos usu\u00e1rio distribuir seus designs para outras pessoas ou plataformas. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Conex\u00e3o","title":"Conex\u00e3o","text":"Nome Conex\u00e3o Sin\u00f4nimos Liga\u00e7\u00e3o, V\u00ednculo No\u00e7\u00e3o A\u00e7\u00e3o de se conectar \u00e0 internet ou \u00e0 plataforma, essencial para o uso das funcionalidades online. Impacto Habilita o acesso \u00e0s ferramentas e recursos da plataforma, permitindo a colabora\u00e7\u00e3o e o armazenamento na nuvem. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Conta","title":"Conta","text":"Nome Conta Sin\u00f4nimos Perfil, Cadastro No\u00e7\u00e3o Identidade digital do usu\u00e1rio na plataforma, contendo suas informa\u00e7\u00f5es pessoais e prefer\u00eancias. Impacto Permite o acesso personalizado aos recursos da plataforma, al\u00e9m de armazenar os designs e configura\u00e7\u00f5es do usu\u00e1rio. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Criar","title":"Criar","text":"Nome Criar Sin\u00f4nimos Gerar, Desenvolver No\u00e7\u00e3o A\u00e7\u00e3o de come\u00e7ar um novo design ou projeto dentro da plataforma. Impacto Inicia o processo de design, proporcionando ao usu\u00e1rio a possibilidade de expressar suas ideias visualmente. Classifica\u00e7\u00e3o Verbo."},{"location":"modelagem/lexico/#Corte","title":"Corte","text":"Nome Corte Sin\u00f4nimos Recorte, Crop No\u00e7\u00e3o O corte ajuda a focar no conte\u00fado mais relevante de uma imagem, melhorando a composi\u00e7\u00e3o e clareza do design. Impacto Fun\u00e7\u00e3o que permite remover partes indesejadas de uma imagem ou elemento gr\u00e1fico. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Desfazer","title":"Desfazer","text":"Nome Desfazer Sin\u00f4nimos Reverter, Anular No\u00e7\u00e3o Voltar ao estado anterior de um design antes da \u00faltima a\u00e7\u00e3o realizada. Impacto Fornece seguran\u00e7a ao usu\u00e1rio, permitindo corre\u00e7\u00f5es r\u00e1pidas de erros ou mudan\u00e7as de decis\u00e3o. Classifica\u00e7\u00e3o Verbo."},{"location":"modelagem/lexico/#Design","title":"Design","text":"Nome Design Sin\u00f4nimos Projeto, Arte, Composi\u00e7\u00e3o, Desenho No\u00e7\u00e3o Resultado final da intera\u00e7\u00e3o do usu\u00e1rio com a plataforma, podendo ser impresso ou compartilhado digitalmente. Impacto Representa o principal produto criado e manipulado pelos usu\u00e1rio na plataforma. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Edi\u00e7\u00e3o","title":"Edi\u00e7\u00e3o","text":"Nome Edi\u00e7\u00e3o Sin\u00f4nimos Modifica\u00e7\u00e3o, Altera\u00e7\u00e3o, Ajuste No\u00e7\u00e3o Permite a personaliza\u00e7\u00e3o completa do design dentro das ferramentas fornecidas pelo Canva. Impacto Processo pelo qual o usu\u00e1rio altera um design, incluindo adi\u00e7\u00e3o de texto, imagens e gr\u00e1ficos. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Efeito","title":"Efeito","text":"Nome Efeito Sin\u00f4nimos Modifica\u00e7\u00e3o, Estilo No\u00e7\u00e3o Efeitos podem ser aplicados a textos, imagens ou formas para melhorar a expressividade ou criar impacto visual. Impacto Altera\u00e7\u00e3o aplicada a um elemento para criar uma apar\u00eancia ou sensa\u00e7\u00e3o espec\u00edfica. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Elementos","title":"Elementos Gr\u00e1ficos","text":"Nome Elementos Gr\u00e1ficos Sin\u00f4nimos \u00cdcones, Ilustra\u00e7\u00f5es, Formas No\u00e7\u00e3o Itens visuais dispon\u00edveis na biblioteca do Canva, utilizados para melhorar a apar\u00eancia e a comunica\u00e7\u00e3o visual dos designs. Impacto Componente visual que pode ser adicionado aos designs apra enriquecer o conte\u00fado. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Excluir","title":"Excluir","text":"Nome Excluir Sin\u00f4nimos Apagar, Remover No\u00e7\u00e3o Remover elementos indesejados de um design. Impacto Simplifica o design, eliminando o que \u00e9 desnecess\u00e1rio ou indesejado. Classifica\u00e7\u00e3o Verbo."},{"location":"modelagem/lexico/#Exporta\u00e7\u00e3o","title":"Exporta\u00e7\u00e3o","text":"Nome Exporta\u00e7\u00e3o Sin\u00f4nimos Download, Salvamento No\u00e7\u00e3o Permite ao usu\u00e1rio baixar o design em formatos como PNG, PDF, JPG, entre outros, para uso offline ou impress\u00e3o. Impacto Processo de salvar o design criado em diferentes formatos de arquivo. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Ferramenta","title":"Ferramenta","text":"Nome Ferramenta Sin\u00f4nimos Instrumento, Recurso No\u00e7\u00e3o Funcionalidades dispon\u00edveis na plataforma que auxiliam na cria\u00e7\u00e3o e edi\u00e7\u00e3o de designs. Impacto Facilita o processo de design, oferecendo diversas op\u00e7\u00f5es para personalizar e melhorar o conte\u00fado. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Fonte","title":"Fonte","text":"Nome Fonte Sin\u00f4nimos Tipografia, Tipo de Letra No\u00e7\u00e3o As fontes ajudam a comunicar o tom e a identidade do projeto, influenciando a legibilidade e o apelo est\u00e9tico. Impacto Determina o estilo visual do texto em um design. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Formata\u00e7\u00e3o","title":"Formata\u00e7\u00e3o","text":"Nome Formata\u00e7\u00e3o Sin\u00f4nimos Estiliza\u00e7\u00e3o, Personaliza\u00e7\u00e3o No\u00e7\u00e3o A formata\u00e7\u00e3o inclui a escolha de Fonte, tamanho, cor, alinhamento e espa\u00e7amento, permitindo que o design seja ajustado para atender a objetivos espec\u00edficos de comunica\u00e7\u00e3o. Impacto Processo de ajustar o estilo e a apar\u00eancia de texto e outros elementos em um design. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Grade","title":"Grade","text":"Nome Grade Sin\u00f4nimos Grid, Estrutura de Alinhamento No\u00e7\u00e3o Facilita a cria\u00e7\u00e3o de layouts equilibrados e organizados, melhorando a harmonia visual. Impacto Sistema de linhas que ajuda a alinhar e organizar os elementos em um design. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Gratuito","title":"Gratuito","text":"Nome Gratuito Sin\u00f4nimos Livre, Sem Custo No\u00e7\u00e3o Recursos ou ferramentas dispon\u00edveis na plataforma que podem ser utilizados sem custo adicional. Impacto Aumenta o acesso dos usu\u00e1rios a recursos b\u00e1sicos e essenciais para a cria\u00e7\u00e3o de designs.. Classifica\u00e7\u00e3o Adjetivo."},{"location":"modelagem/lexico/#Integra\u00e7\u00e3o","title":"Integra\u00e7\u00e3o","text":"Nome Integra\u00e7\u00e3o Sin\u00f4nimos Conectividade, Sincroniza\u00e7\u00e3o No\u00e7\u00e3o As integra\u00e7\u00f5es permitem que os usu\u00e1rios trabalhem de maneira mais eficiente, facilitando a publica\u00e7\u00e3o, compartilhamento e armazenamento de designs diretamente do Canva. Impacto Capacidade do Canva de se conectar com outras ferramentas e plataformas, como redes sociais, servi\u00e7os de armazenamento em nuvem e sistemas de email marketing. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Login","title":"Login","text":"Nome Login Sin\u00f4nimos Acesso, Autentica\u00e7\u00e3o No\u00e7\u00e3o Processo de entrada na plataforma usando credenciais como nome de usu\u00e1rio e senha. Impacto Permite ao usu\u00e1rio acessar suas informa\u00e7\u00f5es pessoais, designs e configura\u00e7\u00f5es personalizadas. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Logout","title":"Logout","text":"Nome Logout Sin\u00f4nimos Sair, Encerrar Sess\u00e3o No\u00e7\u00e3o A\u00e7\u00e3o de sair da conta da plataforma, encerrando a sess\u00e3o ativa. Impacto Protege a seguran\u00e7a dos dados do usu\u00e1rio, especialmente em dispositivos compartilhados. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Marca","title":"Marca d'\u00c1gua","text":"Nome Marca d'\u00c1gua Sin\u00f4nimos Selo, Assinatura Visual No\u00e7\u00e3o Um elemento visual sutil que \u00e9 sobreposto ao design, geralmente com transpar\u00eancia, para indicar propriedade intelectual. Impacto Protege a autoria do design, garantindo que o criador seja reconhecido. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Moldura","title":"Moldura","text":"Nome Moldura Sin\u00f4nimos Bordas, Quadro No\u00e7\u00e3o As molduras ajudam a focar a aten\u00e7\u00e3o em um conte\u00fado espec\u00edfico ou a melhorar a composi\u00e7\u00e3o do design. Impacto Elemento decorativo que circunda uma imagem ou texto, adicionando um contorno visual. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Padr\u00e3o","title":"Padr\u00e3o","text":"Nome Padr\u00e3o Sin\u00f4nimos Textura, Molde, Exemplo No\u00e7\u00e3o Os padr\u00f5es adicionam profundidade e interesse visual a um design, podendo ser usados para criar temas ou destacar partes espec\u00edficas de um projeto. Impacto Desenho repetitivo usado como fundo ou elemento decorativo em um design. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#P\u00e1gina","title":"P\u00e1gina","text":"Nome P\u00e1gina Sin\u00f4nimos Folha, Slide No\u00e7\u00e3o Representa uma se\u00e7\u00e3o individual de um projeto, podendo conter texto, imagens e elementos gr\u00e1ficos. Impacto Unidade b\u00e1sica de um design multip\u00e1gina, como um documento ou apresenta\u00e7\u00e3o. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Paleta","title":"Paleta de Cores","text":"Nome Paleta de Cores Sin\u00f4nimos Conjunto de Cores, Esquema de Cores No\u00e7\u00e3o Ajuda a criar coes\u00e3o visual e a transmitir emo\u00e7\u00f5es ou mensagens espec\u00edficas no design. Impacto Conjunto de cores selecionadas que guiam a est\u00e9tica de um design. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Permiss\u00e3o","title":"Permiss\u00e3o","text":"Nome Permiss\u00e3o Sin\u00f4nimos Autoriza\u00e7\u00e3o, Concess\u00e3o No\u00e7\u00e3o Direitos atribu\u00eddos a um usu\u00e1rio para acessar ou modificar certos recursos ou designs na plataforma. Impacto Controla o acesso e as a\u00e7\u00f5es permitidas dentro de um projeto, garantindo a seguran\u00e7a e a integridade dos dados. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Personalizar","title":"Personalizar","text":"Nome Personalizar Sin\u00f4nimos Customizar, Ajustar No\u00e7\u00e3o Modificar elementos para atender a necessidades ou prefer\u00eancias espec\u00edficas. Impacto Permite que o design reflita a identidade ou requisitos espec\u00edficos do usu\u00e1rio. Classifica\u00e7\u00e3o Verbo."},{"location":"modelagem/lexico/#Assinatura","title":"Plano de Assinatura","text":"Nome Plano de Assinatura Sin\u00f4nimos Pro, Conta Premium, Subscri\u00e7\u00e3o No\u00e7\u00e3o Oferece vantagens adicionais em rela\u00e7\u00e3o \u00e0 conta gratuita, como acesso a mais recursos gr\u00e1ficos e funcionalidades. Impacto Define o n\u00edvel de acesso do usu\u00e1rio a recursos avan\u00e7ados e templates exclusivos. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Plano","title":"Plano de Fundo","text":"Nome Plano de Fundo Sin\u00f4nimos Pro, Conta Premium, Subscri\u00e7\u00e3o No\u00e7\u00e3o Oferece vantagens adicionais em rela\u00e7\u00e3o \u00e0 conta gratuita, como acesso a mais recursos gr\u00e1ficos e funcionalidades. Impacto Define o n\u00edvel de acesso do usu\u00e1rio a recursos avan\u00e7ados e templates exclusivos. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Plataforma","title":"Plataforma","text":"Nome Plataforma Sin\u00f4nimos Sistema, Ambiente No\u00e7\u00e3o Ambiente digital que fornece as ferramentas e recursos necess\u00e1rios para criar e editar designs. Impacto Oferece o espa\u00e7o e as funcionalidades necess\u00e1rias para o desenvolvimento de projetos criativos. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Prot\u00f3tipo","title":"Prot\u00f3tipo","text":"Nome Prot\u00f3tipo Sin\u00f4nimos Mockup, Modelo No\u00e7\u00e3o Permite testar a apar\u00eancia e funcionalidade de um design antes de sua conclus\u00e3o. Impacto Representa\u00e7\u00e3o visual inicial de um design, usado para valida\u00e7\u00e3o e ajustes antes do produto final. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Publica\u00e7\u00e3o","title":"Publica\u00e7\u00e3o","text":"Nome Publica\u00e7\u00e3o Sin\u00f4nimos Postagem, Compartilhamento Online No\u00e7\u00e3o Permite que o design seja visto por uma audi\u00eancia maior, aumentando a visibilidade do projeto. Impacto Ato de disponibilizar o design finalizado em uma plataforma online, como redes sociais ou websites. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Recursos","title":"Recursos","text":"Nome Recursos Sin\u00f4nimos Ferramentas, Materiais No\u00e7\u00e3o Conjunto de elementos, como imagens, fontes, e modelos, dispon\u00edveis para uso na cria\u00e7\u00e3o de designs. Impacto Amplia as possibilidades de cria\u00e7\u00e3o, oferecendo uma variedade de elementos para enriquecer os designs. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Responsividade","title":"Responsividade","text":"Nome Responsividade Sin\u00f4nimos Ajuste de Tamanho, Escalamento No\u00e7\u00e3o Ferramenta que facilita a adapta\u00e7\u00e3o do design para diferentes m\u00eddias, como redes sociais, impressos ou an\u00fancios. Impacto Permite que o design seja adaptado para diferentes formatos e propor\u00e7\u00f5es sem perder qualidade. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Rotacionar","title":"Rotacionar","text":"Nome Rotacionar Sin\u00f4nimos Girar, Virar No\u00e7\u00e3o Mudar a orienta\u00e7\u00e3o de um elemento ao redor de um ponto central. Impacto Permite criar efeitos din\u00e2micos e ajustar a perspectiva dos elementos dentro do design. Classifica\u00e7\u00e3o Verbo."},{"location":"modelagem/lexico/#Salvar","title":"Salvar","text":"Nome Salvar Sin\u00f4nimos Armazenar, Guardar No\u00e7\u00e3o A\u00e7\u00e3o de armazenar um design ou projeto no sistema da plataforma. Impacto Garante que o trabalho do usu\u00e1rio n\u00e3o seja perdido e possa ser acessado ou editado posteriormente. Classifica\u00e7\u00e3o Verbo."},{"location":"modelagem/lexico/#Simult\u00e2neo","title":"Simult\u00e2neo","text":"Nome Simult\u00e2neo Sin\u00f4nimos Paralelo, Concomitante No\u00e7\u00e3o Capacidade de realizar m\u00faltiplas a\u00e7\u00f5es ou colabora\u00e7\u00f5es ao mesmo tempo dentro da plataforma. Impacto Aumenta a efici\u00eancia e produtividade, permitindo que v\u00e1rios usu\u00e1rios ou processos aconte\u00e7am simultaneamente. Classifica\u00e7\u00e3o Adjetivo."},{"location":"modelagem/lexico/#Slides","title":"Slides","text":"Nome Slides Sin\u00f4nimos P\u00e1ginas, Telas No\u00e7\u00e3o Unidades de conte\u00fado em uma apresenta\u00e7\u00e3o ou design que s\u00e3o visualizadas sequencialmente. Impacto Estruturam a apresenta\u00e7\u00e3o de informa\u00e7\u00f5es, facilitando a organiza\u00e7\u00e3o do conte\u00fado visual. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Sobreposi\u00e7\u00e3o","title":"Sobreposi\u00e7\u00e3o","text":"Nome Sobreposi\u00e7\u00e3o Sin\u00f4nimos Overlay, Camada Adicional No\u00e7\u00e3o Utilizado para destacar ou real\u00e7ar partes espec\u00edficas de um design. Impacto Efeito visual onde um elemento \u00e9 colocado sobre outro, criando profundidade ou \u00eanfase. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Template","title":"Template","text":"Nome Template Sin\u00f4nimos Modelo, Esquema, Layout No\u00e7\u00e3o Oferece uma estrutura inicial que pode ser personalizada pelo usu\u00e1rio. Impacto Serve como base para a cria\u00e7\u00e3o de novos designs, acelerando o processo criativo. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Teste","title":"Teste","text":"Nome Teste Sin\u00f4nimos Avalia\u00e7\u00e3o, Verifica\u00e7\u00e3o No\u00e7\u00e3o Processo de experimenta\u00e7\u00e3o de um design ou funcionalidade antes de sua finaliza\u00e7\u00e3o. Impacto Garante a qualidade do design, permitindo ajustes antes da entrega final. Classifica\u00e7\u00e3o Substantivo."},{"location":"modelagem/lexico/#Usu\u00e1rio","title":"Usu\u00e1rio","text":"Nome Usu\u00e1rio Sin\u00f4nimos Cliente, Consumidor, Designer. No\u00e7\u00e3o Usa a ferramenta para criar, editar e compartilhar projetos gr\u00e1ficos. Impacto Interage com a plataforma Canva para criar designs. Classifica\u00e7\u00e3o Substantivo"},{"location":"modelagem/nfr-framework/","title":"NFR Framework","text":""},{"location":"modelagem/nfr-framework/#historico-de-versoes","title":"Hist\u00f3rico de Vers\u00f5es","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 17/08/2024 Desenvolvimento inicial dos NFR Frameworks. Caio Alexandre 0.0 05/09/2024 Corre\u00e7\u00e3o ap\u00f3s inspe\u00e7\u00e3o. Gabriel Moura 1.0"},{"location":"modelagem/nfr-framework/#origem","title":"Origem","text":"

O desenvolvimento deste NFR Framework foi dado a partir da Reuni\u00e3o 5.

"},{"location":"modelagem/nfr-framework/#metodologia","title":"Metodologia","text":"

O desenvolvimento do NFR Framework foi feito primeiramente com a identifica\u00e7\u00e3o dos requisitos n\u00e3o funcionais do sistema. Em seguida, foi feita a modelagem primeiramente pelo Caio, que posteriormente foi revisada e melhorada pelo Rodrigo (houve um swap de tarefas).

"},{"location":"modelagem/nfr-framework/#introducao","title":"Introdu\u00e7\u00e3o","text":"

O NFR \u00e9 um framework orientado a metas, que busca representar requisitos n\u00e3o funcionais de um sistema de software. Desse modelo \u00e9 abstra\u00eddo um diagrama formado por softgoals (requisitos de qualidade), operacionaliza\u00e7\u00e3o, argumenta\u00e7\u00e3o, impactos e legenda.

"},{"location":"modelagem/nfr-framework/#artefatos","title":"Artefatos","text":""},{"location":"modelagem/nfr-framework/#geral-nfrf1","title":"Geral (NFRF1)","text":""},{"location":"modelagem/nfr-framework/#versao-00","title":"Vers\u00e3o 0.0","text":""},{"location":"modelagem/nfr-framework/#edicao-de-imagens-nfrf2","title":"Edi\u00e7\u00e3o de Imagens (NFRF2)","text":"

Depreciado

Este NFR Framework ser\u00e1 refeito em uma nova vers\u00e3o.

"},{"location":"modelagem/nfr-framework/#versao-00_1","title":"Vers\u00e3o 0.0","text":""},{"location":"modelagem/nfr-framework/#apresentacao-de-slides-nfrf3","title":"Apresenta\u00e7\u00e3o de Slides (NFRF3)","text":"

Depreciado

Este NFR Framework ser\u00e1 refeito em uma nova vers\u00e3o.

"},{"location":"modelagem/nfr-framework/#versao-00_2","title":"Vers\u00e3o 0.0","text":""},{"location":"pos-rastreabilidade/backward/","title":"Backward-From","text":""},{"location":"pos-rastreabilidade/backward/#historico-de-versoes","title":"Hist\u00f3rico de Vers\u00f5es","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 09/09/2024 Cria\u00e7\u00e3o e desenvolvimento do documento. Caio Alexandre 0.0"},{"location":"pos-rastreabilidade/backward/#backward-from","title":"Backward-From","text":"ID Requisito Fonte Modelo RQ01 Diversidade de formatos de design (posts, banners, apresenta\u00e7\u00f5es, etc.). UC-07 Casos de Uso RQ02 Templates personaliz\u00e1veis para cada formato. UC-05 Casos de Uso RQ03 Cria\u00e7\u00e3o de designs a partir do zero. UC-01 Casos de Uso RQ04 Importa\u00e7\u00e3o de imagens e fotos. MoSCoW MoSCoW RQ05 Salvar e exportar designs (PDF, JPG, PNG). L\u00e9xico - Salvar L\u00e9xico RQ06 Importa\u00e7\u00e3o de v\u00eddeos e outros arquivos. MoSCoW MoSCoW RQ07 Exportar designs em formatos adicionais (SVG, MP4, GIF). MoSCoW MoSCoW RQ08 Integrar com redes sociais (agendamento de posts). MoSCoW MoSCoW RQ09 Ferramentas b\u00e1sicas de edi\u00e7\u00e3o de imagem (cortar, redimensionar, girar). MoSCoW MoSCoW RQ10 Ajustar brilho, contraste e satura\u00e7\u00e3o de imagens. MoSCoW MoSCoW RQ11 Ferramentas de edi\u00e7\u00e3o de texto (formata\u00e7\u00e3o b\u00e1sica, escolha de fontes, cores). MoSCoW MoSCoW RQ12 Adicionar \u00edcones, ilustra\u00e7\u00f5es e formas geom\u00e9tricas aos designs. MoSCoW MoSCoW RQ13 Ferramentas avan\u00e7adas de edi\u00e7\u00e3o de imagem (filtros, efeitos, remover fundo). MoSCoW MoSCoW RQ14 Criar efeitos de texto (sombra, contorno). MoSCoW MoSCoW RQ15 Camadas (organiza\u00e7\u00e3o b\u00e1sica, ordem e visibilidade). MoSCoW MoSCoW RQ16 Camadas (opacidade, bloqueio). MoSCoW MoSCoW RQ17 M\u00e1scaras (linear, radial). MoSCoW MoSCoW RQ18 Compartilhamento de designs para visualiza\u00e7\u00e3o. MoSCoW MoSCoW RQ19 Compartilhamento de designs para edi\u00e7\u00e3o com permiss\u00f5es b\u00e1sicas. MoSCoW MoSCoW RQ20 Edi\u00e7\u00e3o colaborativa em tempo real. MoSCoW MoSCoW RQ21 Sistema de chat na edi\u00e7\u00e3o colaborativa. MoSCoW MoSCoW RQ22 Coment\u00e1rios em elementos espec\u00edficos. MoSCoW MoSCoW RQ23 Grades e guias. MoSCoW MoSCoW RQ24 Pr\u00e9-visualiza\u00e7\u00e3o em tempo real. MoSCoW MoSCoW RQ25 Paleta de cores. MoSCoW MoSCoW RQ26 Guia de estilo. MoSCoW MoSCoW RQ27 Hist\u00f3rico de vers\u00f5es. MoSCoW MoSCoW RQ28 Atalhos de teclado. MoSCoW MoSCoW RQ29 Interface intuitiva e f\u00e1cil de usar. MoSCoW MoSCoW RQ30 Arrastar e soltar. MoSCoW MoSCoW RQ31 Design responsivo. MoSCoW MoSCoW RQ32 Integra\u00e7\u00e3o com outras ferramentas (redes sociais, armazenamento em nuvem). MoSCoW MoSCoW RQ33 Performance r\u00e1pida e eficiente. MoSCoW MoSCoW RQ34 Confiabilidade. Especifica\u00e7\u00e3o Suplementar Especifica\u00e7\u00e3o Suplementar RQ35 Seguran\u00e7a dos dados do usu\u00e1rio. Especifica\u00e7\u00e3o Suplementar Especifica\u00e7\u00e3o Suplementar RQ36 Acessibilidade. Especifica\u00e7\u00e3o Suplementar Especifica\u00e7\u00e3o Suplementar RQ37 Escalabilidade. Especifica\u00e7\u00e3o Suplementar Especifica\u00e7\u00e3o Suplementar RQ38 Internacionaliza\u00e7\u00e3o. MoSCoW MoSCoW"},{"location":"pos-rastreabilidade/forward/","title":"Hist\u00f3rico de Vers\u00f5es","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 06/09/2024 Cria\u00e7\u00e3o e desenvolvimento do documento Luiza Maluf e Rodrigo Bezerra 0.0"},{"location":"pos-rastreabilidade/forward/#forward-from","title":"Forward-From","text":"ID Requisito Tela do Aplicativo RF001 Diversidade de formatos de design (posts, banners, apresenta\u00e7\u00f5es, etc.). Acesse aqui RF002 Templates personaliz\u00e1veis para cada formato. Acesse aqui RF003 Cria\u00e7\u00e3o de designs a partir do zero. Acesse aqui RF004 Importa\u00e7\u00e3o de imagens e fotos. Acesse aqui RF005 Salvar e exportar designs (PDF, JPG, PNG). Acesse aqui RF006 Importa\u00e7\u00e3o de v\u00eddeos e outros arquivos. Acesse aqui RF007 Exportar designs em formatos adicionais (SVG, MP4, GIF). Acesse aqui RF008 Integrar com redes sociais (agendamento de posts). Acesse aqui RF009 Ferramentas b\u00e1sicas de edi\u00e7\u00e3o de imagem (cortar, redimensionar, girar). Acesse aqui RF010 Ajustar brilho, contraste e satura\u00e7\u00e3o de imagens. Acesse aqui RF011 Ferramentas de edi\u00e7\u00e3o de texto (formata\u00e7\u00e3o b\u00e1sica, escolha de fontes, cores). Acesse aqui RF012 Adicionar \u00edcones, ilustra\u00e7\u00f5es e formas geom\u00e9tricas aos designs. Acesse aqui RF013 Ferramentas avan\u00e7adas de edi\u00e7\u00e3o de imagem (filtros, efeitos, remover fundo). Acesse aqui RF014 Criar efeitos de texto (sombra, contorno). Acesse aqui RF015 Camadas (organiza\u00e7\u00e3o b\u00e1sica, ordem e visibilidade). Acesse aqui RF016 Camadas (opacidade, bloqueio). Acesse aqui RF017 M\u00e1scaras (linear, radial). Acesse aqui RF018 Compartilhamento de designs para visualiza\u00e7\u00e3o. Acesse aqui RF019 Compartilhamento de designs para edi\u00e7\u00e3o com permiss\u00f5es b\u00e1sicas. Acesse aqui RF020 Edi\u00e7\u00e3o colaborativa em tempo real. Acesse aqui RF021 Sistema de chat na edi\u00e7\u00e3o colaborativa. Acesse aqui RF022 Coment\u00e1rios em elementos espec\u00edficos. Acesse aqui RF023 Grades e guias. Acesse aqui RF024 Pr\u00e9-visualiza\u00e7\u00e3o em tempo real. Acesse aqui RF025 Paleta de cores. Acesse aqui RF026 Guia de estilo. Acesse aqui RF027 Hist\u00f3rico de vers\u00f5es. Acesse aqui RF028 Atalhos de teclado. Acesse aqui RF029 Interface intuitiva e f\u00e1cil de usar. Acesse aqui RF030 Arrastar e soltar. Acesse aqui RF031 Design responsivo. Acesse aqui RF032 Integra\u00e7\u00e3o com outras ferramentas (redes sociais, armazenamento em nuvem). Acesse aqui RF033 Performance r\u00e1pida e eficiente. Acesse aqui RF034 Confiabilidade. RF035 Seguran\u00e7a dos dados do usu\u00e1rio. RF036 Acessibilidade. RF037 Escalabilidade. RF038 Internacionaliza\u00e7\u00e3o."},{"location":"pre-rastreabilidade/argumentacao/","title":"Argumenta\u00e7\u00e3o","text":""},{"location":"pre-rastreabilidade/argumentacao/#historico-de-versoes","title":"Hist\u00f3rico de Vers\u00f5es","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 29/07/2024 Primeiras discuss\u00f5es em grupo da plataforma Canva. Luiza Maluf 0.0"},{"location":"pre-rastreabilidade/argumentacao/#origem","title":"Origem","text":"

O desenvolvimento desta Argumenta\u00e7\u00e3o foi dado a partir da Reuni\u00e3o 2.

"},{"location":"pre-rastreabilidade/argumentacao/#metodologia","title":"Metodologia","text":"

O grupo decidiu adotar um processo baseado em reuni\u00f5es para expor e discutir os pontos de vista de cada membro, permitindo que as ideias fossem expostas, analisadas e confrontadas.

As primeiras argumenta\u00e7\u00f5es possuem foco na defini\u00e7\u00e3o de escopo e a pontos relacionados a primeira parte da disciplina. Em seguida, as discurss\u00f5es s\u00e3o essenciais para o aprofundamento da an\u00e1lise da plataforma Canva.

Por quest\u00e3o de organiza\u00e7\u00e3o, decidimos que ocorrer\u00e1 um rod\u00edzio de membros para a produ\u00e7\u00e3o da documenta\u00e7\u00e3o do tema em quest\u00e3o. Dessa forma, o grupo pretende analisar diversos setores do aplicativo, garantindo uma compreens\u00e3o mais completa e detalhada dos aspectos relevantes para o projeto.

"},{"location":"pre-rastreabilidade/argumentacao/#introducao","title":"Introdu\u00e7\u00e3o","text":"

A argumenta\u00e7\u00e3o \u00e9 fundamental para o sucesso de um trabalho em grupo, pois ela assegura o compartilhamento e o confronto de ideias. Esse processo n\u00e3o s\u00f3 torna o projeto mais eficaz, mas tamb\u00e9m alinha os membros da equipe, permitindo que todos trabalhem juntos em dire\u00e7\u00e3o a um objetivo comum.

"},{"location":"pre-rastreabilidade/argumentacao/#objetivos","title":"Objetivos","text":"

O principal objetivo da argumenta\u00e7\u00e3o \u00e9 promover a discurs\u00e3o de pontos de vista divergentes. A documenta\u00e7\u00e3o dessa t\u00e9cnica \u00e9 crucial para garantir a rastreabilidade e a transpar\u00eancia do processo de decis\u00e3o.

"},{"location":"pre-rastreabilidade/argumentacao/#artefatos","title":"Artefatos","text":""},{"location":"pre-rastreabilidade/argumentacao/#discussao-sobre-os-atributos-gerais-do-canva","title":"Discuss\u00e3o sobre os atributos gerais do Canva","text":"

Pensando em atributos, pudemos pensar em 5 principais:

  1. Interface Intuitiva: O Canva possui uma interface de usu\u00e1rio intuitiva, facilitando o uso para iniciantes (Henrique).

  2. Variedade de Templates: Oferece uma vasta gama de templates para diferentes tipos de projetos, como apresenta\u00e7\u00f5es, posts de redes sociais, cartazes e mais. (Rodrigo)

  3. Recursos Gr\u00e1ficos e Elementos Visuais: Inclui uma biblioteca rica em imagens, \u00edcones, ilustra\u00e7\u00f5es e fontes. (Luiza)

  4. Colabora\u00e7\u00e3o em Tempo Real: Permite que m\u00faltiplos usu\u00e1rios colaborem em um mesmo projeto em tempo real. (Gabriel)

  5. Versatilidade de Exporta\u00e7\u00e3o: Possibilidade de exportar os projetos em diversos formatos, como PDF, PNG e MP4. (Caio)

A partir disso, pensamos nas consequ\u00eancias geradas ao usu\u00e1rio a partir dos atributos citados.

  1. Facilidade de Uso: A interface intuitiva permite que usu\u00e1rios com pouca ou nenhuma experi\u00eancia em design gr\u00e1fico possam criar conte\u00fados visuais de qualidade. (Luiza)

  2. Rapidez na Cria\u00e7\u00e3o de Conte\u00fados: Com a variedade de templates e recursos gr\u00e1ficos, os usu\u00e1rios podem criar materiais visuais de forma r\u00e1pida e eficiente. (Gabriel)

  3. Qualidade e Profissionalismo: Acessar uma ampla gama de elementos visuais permite que os projetos tenham uma apar\u00eancia profissional, independentemente do n\u00edvel de habilidade do usu\u00e1rio. (Henrique)

  4. Colabora\u00e7\u00e3o e Feedback: A funcionalidade de colabora\u00e7\u00e3o em tempo real facilita o trabalho em equipe, permitindo a troca de feedback e a edi\u00e7\u00e3o conjunta de projetos. (Rodrigo)

  5. Flexibilidade no Uso: A versatilidade de exporta\u00e7\u00e3o garante que os projetos possam ser utilizados em diferentes plataformas e para diferentes finalidades, como impress\u00f5es, publica\u00e7\u00f5es digitais e m\u00eddias sociais. (Caio)

Por fim, alguns contra-argumentos foram citados:

  1. Limita\u00e7\u00f5es de Personaliza\u00e7\u00e3o Avan\u00e7ada: Apesar da interface intuitiva, pode haver limita\u00e7\u00f5es para usu\u00e1rios avan\u00e7ados que buscam personaliza\u00e7\u00f5es mais complexas. (Luiza)

  2. Depend\u00eancia de Conex\u00e3o com a Internet: A necessidade de colabora\u00e7\u00e3o em tempo real requer uma conex\u00e3o est\u00e1vel com a internet, o que pode ser uma limita\u00e7\u00e3o em certas situa\u00e7\u00f5es. (Henrique)

  3. Custo de Recursos Premium: Alguns recursos gr\u00e1ficos e templates s\u00e3o pagos, o que pode ser uma barreira para usu\u00e1rios que procuram solu\u00e7\u00f5es completamente gratuitas. (Gabriel)

"},{"location":"pre-rastreabilidade/argumentacao/#descricao-dos-conflitos","title":"Descri\u00e7\u00e3o dos Conflitos","text":"

Os conflitos identificados foram:

ID Conflito Descri\u00e7\u00e3o C1 Personaliza\u00e7\u00e3o Limitada vs. Interface Intuitiva A interface intuitiva simplifica o uso, mas pode n\u00e3o oferecer op\u00e7\u00f5es avan\u00e7adas de personaliza\u00e7\u00e3o. C2 Depend\u00eancia de Internet vs. Colabora\u00e7\u00e3o em Tempo Real A colabora\u00e7\u00e3o em tempo real depende de uma conex\u00e3o est\u00e1vel com a internet. C3 Custo de Recursos Premium vs. Acessibilidade dos Recursos Muitos recursos premium exigem pagamento, o que pode limitar a acessibilidade para todos os usu\u00e1rios."},{"location":"pre-rastreabilidade/argumentacao/#conclusao","title":"Conclus\u00e3o","text":"

O Canva \u00e9 uma plataforma acess\u00edvel que facilita o design gr\u00e1fico com sua interface intuitiva e ampla variedade de recursos.

Ela permite que usu\u00e1rios de todos os n\u00edveis criem conte\u00fados de alta qualidade de forma r\u00e1pida e colaborativa. No entanto, apresenta algumas limita\u00e7\u00f5es, como falta de op\u00e7\u00f5es avan\u00e7adas de personaliza\u00e7\u00e3o, depend\u00eancia de conex\u00e3o \u00e0 internet para colabora\u00e7\u00e3o e custo de recursos premium.

Abordar esses pontos pode ampliar o alcance e a efic\u00e1cia da plataforma, tornando-a ainda mais inclusiva e poderosa para uma audi\u00eancia diversificada.

"},{"location":"pre-rastreabilidade/argumentacao/#proposicoes-i","title":"Proposi\u00e7\u00f5es (i)","text":"ID Proposi\u00e7\u00e3o i1 Interface Intuitiva i2 Variedade de Templates i3 Recursos Gr\u00e1ficos e Elementos Visuais i4 Colabora\u00e7\u00e3o em Tempo Real i5 Versatilidade de Exporta\u00e7\u00e3o i6 Limita\u00e7\u00f5es de Personaliza\u00e7\u00e3o Avan\u00e7ada i7 Depend\u00eancia de Conex\u00e3o com a Internet i8 Custo de Recursos Premium"},{"location":"pre-rastreabilidade/argumentacao/#inferencias-it","title":"Infer\u00eancias (iT)","text":"ID Infer\u00eancia iT1 Facilidade de Uso iT2 Rapidez na Cria\u00e7\u00e3o de Conte\u00fados iT3 Qualidade e Profissionalismo iT4 Colabora\u00e7\u00e3o e Feedback iT5 Flexibilidade no Uso"},{"location":"pre-rastreabilidade/argumentacao/#conflitos-c","title":"Conflitos (C):","text":"ID Conflito C1 Personaliza\u00e7\u00e3o Limitada vs. Interface Intuitiva C2 Depend\u00eancia de Internet vs. Colabora\u00e7\u00e3o em Tempo Real C3 Custo de Recursos Premium vs. Acessibilidade dos Recursos"},{"location":"pre-rastreabilidade/argumentacao/#grafo-de-argumentacao","title":"Grafo de Argumenta\u00e7\u00e3o","text":""},{"location":"pre-rastreabilidade/argumentacao/#versao-00","title":"Vers\u00e3o 0.0","text":""},{"location":"pre-rastreabilidade/rich_picture/","title":"Rich Picture","text":""},{"location":"pre-rastreabilidade/rich_picture/#historico-de-versoes","title":"Hist\u00f3rico de Vers\u00f5es","text":"Data Descri\u00e7\u00e3o Autor Vers\u00e3o 24/07/2024 Rich Picture geral. Luiza Maluf 0.0 24/07/2024 Rich Picture Foco no usu\u00e1rio. Luiza Maluf 0.1"},{"location":"pre-rastreabilidade/rich_picture/#origem","title":"Origem","text":"

O desenvolvimento deste Rich Picture foi dado a partir da Reuni\u00e3o 1.

"},{"location":"pre-rastreabilidade/rich_picture/#introducao","title":"Introdu\u00e7\u00e3o","text":"

Um Rich Picture \u00e9 uma ferramenta visual utilizada para representar de forma hol\u00edstica e intuitiva um sistema complexo ou uma situa\u00e7\u00e3o problem\u00e1tica. Originado na abordagem de Soft Systems Methodology (SSM) desenvolvida por Peter Checkland, o Rich Picture \u00e9 caracterizado por ser uma representa\u00e7\u00e3o gr\u00e1fica que inclui pessoas, processos, fluxos de informa\u00e7\u00e3o, relacionamentos e contextos.

"},{"location":"pre-rastreabilidade/rich_picture/#caracteristicas-principais","title":"Caracter\u00edsticas Principais","text":"
  • Visual e Intuitivo: Utiliza desenhos, s\u00edmbolos, \u00edcones e texto para capturar e comunicar aspectos importantes do sistema.
  • Hol\u00edstico: Oferece uma vis\u00e3o abrangente do sistema ou problema, considerando m\u00faltiplas perspectivas e intera\u00e7\u00f5es.
  • Flex\u00edvel: Pode ser continuamente refinado e ajustado \u00e0 medida que novas informa\u00e7\u00f5es s\u00e3o obtidas.
  • Colaborativo: Frequentemente criado em grupos, promovendo a participa\u00e7\u00e3o e a comunica\u00e7\u00e3o entre stakeholders.
"},{"location":"pre-rastreabilidade/rich_picture/#objetivos","title":"Objetivos","text":"
  • Compreens\u00e3o: Ajudar a entender complexidades e din\u00e2micas de sistemas.
  • Comunica\u00e7\u00e3o: Facilitar a comunica\u00e7\u00e3o entre diferentes partes interessadas.
  • Identifica\u00e7\u00e3o de Problemas: Destacar \u00e1reas problem\u00e1ticas e oportunidades de melhoria.
  • Planejamento: Apoiar na elabora\u00e7\u00e3o de estrat\u00e9gias e solu\u00e7\u00f5es.
"},{"location":"pre-rastreabilidade/rich_picture/#utilizacao","title":"Utiliza\u00e7\u00e3o","text":"

Rich Pictures s\u00e3o amplamente usados em diversas \u00e1reas, incluindo engenharia de sistemas, gest\u00e3o de projetos, an\u00e1lise de neg\u00f3cios e desenvolvimento organizacional, devido \u00e0 sua capacidade de simplificar e visualizar complexidades.

Em resumo, um Rich Picture \u00e9 uma ferramenta poderosa para explorar, comunicar e resolver problemas complexos de maneira visual e colaborativa.

"},{"location":"pre-rastreabilidade/rich_picture/#artefatos","title":"Artefatos","text":""},{"location":"pre-rastreabilidade/rich_picture/#fluxo-geral","title":"Fluxo Geral","text":""},{"location":"pre-rastreabilidade/rich_picture/#versao-00","title":"Vers\u00e3o 0.0","text":""},{"location":"pre-rastreabilidade/rich_picture/#fluxo-do-usuario","title":"Fluxo do Usu\u00e1rio","text":""},{"location":"pre-rastreabilidade/rich_picture/#versao-00_1","title":"Vers\u00e3o 0.0","text":""}]} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..0f8724e --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz new file mode 100644 index 0000000..2f826fd Binary files /dev/null and b/sitemap.xml.gz differ

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/elicitacao/brainstorming/index.html b/elicitacao/brainstorming/index.html new file mode 100644 index 0000000..81c0c9f --- /dev/null +++ b/elicitacao/brainstorming/index.html @@ -0,0 +1,1942 @@ + + + + + + + + + + + + + + + + + + + + + + + Brainstorming - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Brainstorming

+

Histórico de Versões

+ + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
31/07/2024Criação do documento.Caio Alexandre0.0
+

Origem

+

O desenvolvimento deste branstorming foi dado a partir da +Reunião 1.

+

Metodologia

+

Durante a reunião, o grupo se reuniu para identificar possíveis palavras-chave +e requisitos que melhor descrevem a plataforma Canva. A partir disso, foi +possível gerar uma lista inicial de requisitos que serão utilizados para +gerar o mapa mental. O objetivo desta lista é identificar os requisitos mais +elementares que definem a base da plataforma.

+

A partir do brainstorming, decidimos utilizar a técnica de MoSCoW e First Things +First para priorizar os requisitos identificados.

+

Introdução

+

A ideia do brainstorming consiste em um grupo de pessoas se reunir para gerar +ideias e soluções para um problema específico. O brainstorming é uma técnica +muito utilizada em diversas áreas, como por exemplo, na área de desenvolvimento +de software. A partir dessa técnica, foi possível identificar os requisitos +necessários para o desenvolvimento do projeto, junto com a escolha de técnicas +para a priorização dos requisitos.

+

Artefatos

+

Requisitos Inicial

+

Os requisitos identificados durante o brainstorming foram:

+
    +
  • O sistema deve permitir o cadastro de usuários
  • +
  • O sistema deve permitir a criação de imagens, panfletos, banners, etc.
  • +
  • O usuário deve poder utilizar templates prontos
  • +
  • O sistema deve permitir a exportação das imagens criadas
  • +
  • O sistema deve permitir a edição das imagens criadas
  • +
  • O sistema deve permitir a exclusão das imagens criadas
  • +
  • O sistema deve permitir a visualização das imagens criadas
  • +
  • O sistema deve permitir a personalização das imagens criadas
  • +
+

Mapa Mental

+

Como resultado desta técnica, foi gerado um mapa mental contendo os requisitos +identificados durante o brainstorming. O mapa mental foi gerado utilizando a +ferramenta Miro. A imagem do mapa mental pode ser +visualizada abaixo:

+

Versão 0.0

+

Mapa Mental

+

Priorização dos Requisitos

+

As técnicas escolhidas foram o MoSCoW e +First Things First.

+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/elicitacao/first_things/index.html b/elicitacao/first_things/index.html new file mode 100644 index 0000000..cdbfbd2 --- /dev/null +++ b/elicitacao/first_things/index.html @@ -0,0 +1,2423 @@ + + + + + + + + + + + + + + + + + + + + + + + First Things First - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

First Things First

+

Histórico de Versões

+ + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
29/07/2024Primeira versão da análise FTF.Gabriel Moura0.0
+

Origem

+

O desenvolvimento deste MoSCoW foi dado a partir da +Reunião 3.

+

Metodologia

+

Introdução

+

A técnica First Things First é um método de priorização que visa classificar os +requisitos com base na relação entre seu valor e o custo/risco envolvido em sua +implementação. Essa técnica é especialmente útil para determinar a ordem de +desenvolvimento das funcionalidades, garantindo que as de maior valor e menor +custo/risco sejam priorizadas.

+

Objetivo

+

O objetivo da análise First Things First é definir a ordem ideal de +implementação dos requisitos elicitados para a plataforma Canva, considerando o +benefício proporcionado ao usuário em relação ao custo e risco de +desenvolvimento.

+

A metodologia First Things First se baseia em uma tabela onde cada requisito é +avaliado em quatro critérios, utilizando uma escala de 1 a 9:

+
    +
  1. Benefício Relativo: Representa o quão benéfico o requisito é para o + usuário, caso seja implementado.
  2. +
  3. Penalidade Relativa: Indica o quão prejudicial seria para o usuário caso + o requisito não fosse implementado.
  4. +
  5. Custo Relativo: Reflete o custo estimado (em tempo, esforço e recursos) + para implementar o requisito.
  6. +
  7. Risco Relativo: Avalia o risco potencial de encontrar problemas ou + dificuldades na implementação do requisito.
  8. +
+

Com base nessas avaliações, são calculados os seguintes valores:

+
    +
  • Valor Total: Soma do Benefício Relativo e da Penalidade Relativa.
  • +
  • Valor %: Porcentagem que o Valor Total de um requisito representa em + relação à soma de todos os Valores Totais.
  • +
  • Custo %: Porcentagem que o Custo Relativo de um requisito representa em + relação à soma de todos os Custos Relativos.
  • +
  • Risco %: Porcentagem que o Risco Relativo de um requisito representa em + relação à soma de todos os Riscos Relativos.
  • +
  • Prioridade: Calculada pela fórmula: Valor% / (Custo% + Risco%).
  • +
+

Os requisitos são então ordenados de forma decrescente de acordo com o valor de +prioridade. Aqueles com maior prioridade devem ser implementados primeiro.

+ + +

Artefatos

+

Requisitos tabelados

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RequisitoBenefício RelativoPenalidade RelativaValor TotalValor %Custo RelativoCusto %Risco RelativoRisco %Prioridade
1Diversidade de formatos de design (posts, banners, apresentações, etc.)99188.87%89.09%22.63%0.70
2Templates personalizáveis para cada formato98178.37%78.00%33.95%0.72
3Criação de designs a partir do zero87157.39%66.82%45.26%0.69
4Importação de imagens e fotos99188.87%55.68%22.63%1.05
5Salvar e exportar designs (PDF, JPG, PNG)99188.87%44.55%11.32%1.45
6Importação de vídeos e outros arquivos85136.41%67.14%45.26%0.64
7Exportar designs em formatos adicionais (SVG, MP4, GIF)74115.43%44.76%33.95%0.76
8Integrar com redes sociais (agendamento de posts)96157.41%78.33%56.41%0.58
9Ferramentas básicas de edição de imagem (cortar, redimensionar, girar)98178.37%33.41%22.63%1.56
10Ajustar brilho, contraste e saturação de imagens87157.39%22.27%11.32%2.14
11Ferramentas de edição de texto (formatação básica, escolha de fontes, cores)99188.87%44.55%11.32%1.45
12Adicionar ícones, ilustrações e formas geométricas aos designs87157.39%33.41%22.63%1.42
13Ferramentas avançadas de edição de imagem (filtros, efeitos, remover fundo)86146.91%55.95%45.26%0.75
14Criar efeitos de texto (sombra, contorno)6394.44%33.57%22.63%0.81
15Camadas (organização básica, ordem e visibilidade)97167.90%67.14%33.95%0.73
16Camadas (opacidade, bloqueio)5273.46%22.38%11.32%1.12
17Máscaras (linear, radial)64104.93%44.76%33.95%0.67
18Compartilhamento de designs para visualização98178.37%22.27%11.32%2.32
19Compartilhamento de designs para edição com permissões básicas87157.39%33.41%22.63%1.42
20Edição colaborativa em tempo real98178.40%89.52%67.69%0.55
21Sistema de chat na edição colaborativa75125.92%55.95%45.26%0.64
22Comentários em elementos específicos86146.91%67.14%45.26%0.64
23Grade e guias98178.37%22.27%11.32%2.32
24Pré-visualização em tempo real99188.87%11.14%11.32%3.92
25Paleta de cores74115.43%33.57%22.63%0.96
26Guia de estilo5383.95%44.76%33.95%0.48
27Histórico de versões86146.91%78.33%56.41%0.58
28Atalhos de teclado6283.95%22.38%22.63%0.98
29Interface intuitiva e fácil de usar99188.87%78.00%11.32%0.86
30Arrastar e soltar99188.87%11.14%11.32%3.92
31Design responsivo97167.90%55.95%33.95%0.85
32Integração com outras ferramentas75125.92%67.14%45.26%0.59
33Performance rápida e eficiente99188.87%910.34%11.32%0.62
34Confiabilidade99188.87%89.09%11.32%0.74
35Segurança dos dados do usuário99188.87%910.34%22.63%0.61
36Acessibilidade87157.41%44.76%33.95%0.93
37Escalabilidade98178.40%910.71%78.97%0.45
38Internacionalização76136.41%78.33%67.69%0.51
TOTAL301252553100%113100%89100%-
+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/elicitacao/moscow/index.html b/elicitacao/moscow/index.html new file mode 100644 index 0000000..f3d647f --- /dev/null +++ b/elicitacao/moscow/index.html @@ -0,0 +1,2238 @@ + + + + + + + + + + + + + + + + + + + MoSCoW - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+ +
+
+ + + +
+
+ + + + + + + +

MoSCoW

+

Histórico de Versões

+ + + + + + + + + + + + + + + + + +
DataDescriçãoAutorVersão
29/07/2024Primeira versão da análiseGabriel Moura1.0
+

Origem

+

O desenvolvimento deste MoSCoW foi dado a partir da +Reunião 3.

+

Metodologia

+

Introdução

+

A análise MoSCoW é uma técnica de priorização de requisitos amplamente utilizada +em gerenciamento de projetos, especialmente em metodologias ágeis. Ela auxilia +na tomada de decisão sobre quais funcionalidades devem ser implementadas +primeiro, categorizando os requisitos em quatro níveis de prioridade: must, +should, could e could.

+

Essa técnica é fundamental para garantir que os recursos sejam alocados de forma +eficiente, focando nos requisitos que trazem maior valor para o projeto, dentro +do tempo e do orçamento disponíveis.

+

Objetivo

+

O objetivo da análise MoSCoW é, em conjunto com o que foi aprendido em sala de +aula, definir quais funcionalidades serão priorizadas no desenvolvimento da +plataforma Canva. Priorizando as funcionalidades que são essenciais para o +funcionamento básico da ferramenta, para posteriormente categorizar as +funcionalidades que agregam valor à experiência do usuário e podem ser +implementadas em versões futuras.

+

A análise MoSCoW se baseia em quatro categorias:

+
    +
  • Must (Essencial): Requisitos absolutamente essenciais para o sistema + funcionar. Se um requisito must não for atendido, o projeto é considerado um + fracasso.
  • +
  • Should (Importante): Requisitos importantes, mas não essenciais para o + lançamento da versão inicial. Podem ser implementados posteriormente, se + necessário.
  • +
  • Could (Desejável): Requisitos desejáveis que agregam valor, mas não são + críticos. A implementação deles depende de tempo e recursos disponíveis.
  • +
  • Would (Opcional): Requisitos de menor prioridade que podem ser + considerados em versões futuras.
  • +
+

A equipe analisa cada requisito e o classifica em uma dessas categorias, com +base em seu impacto no projeto, valor para o usuário, custo de implementação e +risco.

+

Artefatos

+

Tabela de Requisitos

+

Versão 1.0

+
Tabela de Requisitos Agrupados
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDDescriçãoPrioridade
1Diversidade de formatos de design (posts, banners, apresentações, etc.).Must
2Templates personalizáveis para cada formato.Must
3Criação de designs a partir do zero.Must
4Importação de imagens e fotos.Must
5Salvar e exportar designs (PDF, JPG, PNG).Must
6Importação de vídeos e outros arquivos.Should
7Exportar designs em formatos adicionais (SVG, MP4, GIF).Should
8Integrar com redes sociais (agendamento de posts).Could
9Ferramentas básicas de edição de imagem (cortar, redimensionar, girar).Must
10Ajustar brilho, contraste e saturação de imagens.Must
11Ferramentas de edição de texto (formatação básica, escolha de fontes, cores).Must
12Adicionar ícones, ilustrações e formas geométricas aos designs.Must
13Ferramentas avançadas de edição de imagem (filtros, efeitos, remover fundo).Should
14Criar efeitos de texto (sombra, contorno).Should
15Camadas (organização básica, ordem e visibilidade).Should
16Camadas (opacidade, bloqueio).Could
17Máscaras (linear, radial).Could
18Compartilhamento de designs para visualização.Must
19Compartilhamento de designs para edição com permissões básicas.Must
20Edição colaborativa em tempo real.Should
21Sistema de chat na edição colaborativa.Could
22Comentários em elementos específicos.Could
23Grades e guias.Must
24Pré-visualização em tempo real.Must
25Paleta de cores.Should
26Guia de estilo.Could
27Histórico de versões.Could
28Atalhos de teclado.Could
29Interface intuitiva e fácil de usar.Must
30Arrastar e soltar.Must
31Design responsivo.Should
32Integração com outras ferramentas (redes sociais, armazenamento em nuvem).Could
33Performance rápida e eficiente.Must
34Confiabilidade.Must
35Segurança dos dados do usuário.Must
36Acessibilidade.Should
37Escalabilidade.Could
38Internacionalização.Could
+
Tabelas de Requisitos Separadas por Prioridade
+
Must
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDDescrição
1Diversidade de formatos de design (posts, banners, apresentações, etc.).
2Templates personalizáveis para cada formato.
3Criação de designs a partir do zero.
4Importação de imagens e fotos.
5Salvar e exportar designs (PDF, JPG, PNG).
9Ferramentas básicas de edição de imagem (cortar, redimensionar, girar).
10Ajustar brilho, contraste e saturação de imagens.
11Ferramentas de edição de texto (formatação básica, escolha de fontes, cores).
12Adicionar ícones, ilustrações e formas geométricas aos designs.
18Compartilhamento de designs para visualização.
19Compartilhamento de designs para edição com permissões básicas.
23Grade e guias.
24Pré-visualização em tempo real.
29Interface intuitiva e fácil de usar.
30Arrastar e soltar.
33Performance rápida e eficiente.
34Confiabilidade.
35Segurança dos dados do usuário.
+
Should
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Requisito
6Importação de vídeos e outros arquivos
7Exportar designs em formatos adicionais (SVG, MP4, GIF)
13Ferramentas avançadas de edição de imagem (filtros, efeitos, remover fundo)
14Criar efeitos de texto (sombra, contorno)
15Camadas (organização básica, ordem e visibilidade)
20Edição colaborativa em tempo real
25Paleta de cores
31Design responsivo
36Acessibilidade
+
Could
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Requisito
8Integrar com redes sociais (agendamento de posts)
16Camadas (opacidade, bloqueio)
17Máscaras (linear, radial)
21Sistema de chat na edição colaborativa
22Comentários em elementos específicos
26Guia de estilo
27Histórico de versões
28Atalhos de teclado
32Integração com outras ferramentas (redes sociais, armazenamento em nuvem)
37Escalabilidade
38Internacionalização
+
Would
+ + + + + + + + + + + + + + + +
Requisito
(Nenhum requisito foi classificado como Would nesta versão)
+ + + + + + + + + + + + + +
+
+ + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/entregas/entrega1/index.html b/entregas/entrega1/index.html new file mode 100644 index 0000000..d86aa08 --- /dev/null +++ b/entregas/entrega1/index.html @@ -0,0 +1,1663 @@ + + + + + + + + + + + + + + + + + + + + + + + Entrega 1 - Canva - Requisitos de Software + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Primeira Entrega

+

Caso não consiga visualizar o vídeo abaixo, clique aqui.

+