Prévia do material em texto
UNIVERSIDADE PAULISTA – UNIP EaD Projeto Integrado Multidisciplinar VI Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas ADRIAN LUCAS SOUZA DA SILVA – RA: 2312805 CHRISTOPH DE LIMA ALMEIDA ARAUJO – RA: 2364352 ENZO GABRIEL FRAZÃO BRAGA – RA: 2320847 FELIPE QUEIROZ HUFFNER – RA: 2367481 GABRIEL DE LIMA BARBOSA – RA 2367470 JOSÉ MAURICIO SOUZA DE ANDRADE JUNIOR – RA: 2355640 Sistema de streaming de conteúdo multimídia. Tefé-AM 2024 ADRIAN LUCAS SOUZA DA SILVA – RA: 2312805 CHRISTOPH DE LIMA ALMEIDA ARAUJO – RA: 2364352 ENZO GABRIEL FRAZÃO BRAGA – RA: 2320847 FELIPE QUEIROZ HUFFNER – RA: 2367481 GABRIEL DE LIMA BARBOSA – RA 2367470 JOSÉ MAURICIO SOUZA DE ANDRADE JUNIOR – RA: 2355640 Sistema de streaming de conteúdo multimídia. Projeto Integrado Multidisciplinar em Análise e Desenvolvime de Sistemas Projeto Integrado Multidisciplinar para obtenção do título de tecnólogo em Análise e Desenvolvimento de Sistemas, apresentado à Universidade Paulista – UNIP EaD. Orientador(a): Tefé-AM 2024 RESUMO Palavras-chave: ABSTRACT Keywords: SUMÁRIO 1. Introdução 5 2. Desenvolvimento 6 3. Conclusão 7 REFERÊNCIAS 8 1. Introdução No contexto atual, os sistemas de streaming multimídia desempenham um papel crucial na distribuição de conteúdo digital, oferecendo aos usuários acesso a uma vasta gama de mídias de forma contínua e interativa. Este documento apresenta uma análise detalhada dos requisitos funcionais e não funcionais, além das regras de negócio necessárias para a confecção de um sistema de streaming multimídia. A análise está fundamentada na disciplina de Projeto de Sistemas Orientado a Objetos, incorporando diagramas que representam visualmente a arquitetura e o comportamento do sistema proposto. 10 2. Desenvolvimento Requisitos Funcionais Os requisitos funcionais descrevem as funcionalidades que o sistema deve oferecer para atender às necessidades dos usuários e dos negócios. A seguir, são apresentados os principais requisitos funcionais para o sistema de streaming multimídia: 1. Cadastro e Autenticação de Usuários: - Permitir que novos usuários se cadastrem fornecendo informações básicas (nome, e-mail, senha). - Implementar mecanismos de autenticação para acesso seguro ao sistema. 2. Gerenciamento de Perfil de Usuário: - Permitir que os usuários editem suas informações pessoais e preferências. - Suportar a criação de múltiplos perfis dentro de uma mesma conta. 3. Navegação e Busca de Conteúdo: - Oferecer funcionalidades de busca por título, gênero, artista, etc. - Implementar filtros avançados para refinar resultados de busca. 4. Reprodução de Conteúdo Multimídia: - Suportar streaming de vídeo e áudio em diferentes formatos e resoluções. - Implementar controles de reprodução (play, pause, stop, avançar, retroceder). 5. Recomendações Personalizadas: - Utilizar algoritmos de recomendação para sugerir conteúdo baseado no histórico e preferências do usuário. 6. Gerenciamento de Bibliotecas de Conteúdo: - Permitir que administradores adicionem, editem e removam conteúdos disponíveis para streaming. - Implementar categorização e etiquetagem de conteúdo para facilitar a organização. 7. Suporte a Vários Dispositivos: - Garantir que o sistema seja acessível em diferentes plataformas (web, mobile, smart TV). 8. Sistema de Pagamento e Assinaturas: - Integrar métodos de pagamento para a aquisição de assinaturas ou conteúdos pagos. - Gerenciar diferentes planos de assinatura com benefícios variados. Requisitos Não Funcionais Os requisitos não funcionais especificam os critérios que julgam a operação do sistema, ao invés de comportamentos específicos. A seguir, destacam-se os principais requisitos não funcionais: 1. Desempenho: - O sistema deve suportar alta disponibilidade e baixa latência na transmissão de conteúdos. - Tempo de resposta para buscas e carregamento de páginas deve ser inferior a 2 segundos. 2. Escalabilidade: - Arquitetura do sistema deve permitir escalabilidade horizontal para acomodar aumento de usuários e conteúdo. 3. Segurança: - Implementar criptografia de dados sensíveis (ex.: senhas, informações de pagamento). - Garantir conformidade com regulamentações de proteção de dados, como a LGPD. 4. Usabilidade: - Interface intuitiva e de fácil navegação para diferentes tipos de usuários. - Suporte a múltiplos idiomas para alcançar uma audiência global. 5. Manutenibilidade: - Código-fonte deve ser modular e bem documentado para facilitar futuras manutenções e atualizações. 6. Compatibilidade: - Suportar diferentes navegadores e sistemas operacionais. - Garantir interoperabilidade com APIs e serviços de terceiros. 7. Confiabilidade: - Sistema deve ter alta disponibilidade, visando 99,9% de uptime. - Implementar mecanismos de backup e recuperação de desastres. Regras de Negócio As regras de negócio definem as políticas e restrições que regem o funcionamento do sistema. As principais regras de negócio para o sistema de streaming multimídia são: 1. Política de Assinaturas: - Definir planos de assinatura com diferentes níveis de acesso e preços. - Permitir atualização ou downgrade de planos conforme solicitação do usuário. 2. Direitos Autorais e Licenciamento: - Garantir que todo o conteúdo disponibilizado possui as devidas licenças e direitos autorais. - Implementar restrições geográficas conforme contratos de licenciamento. 3. Gestão de Conteúdo: - Apenas administradores autorizados podem adicionar ou remover conteúdo da plataforma. - Todo conteúdo deve passar por revisão antes de ser disponibilizado para os usuários. 4. Política de Privacidade: - Informar claramente aos usuários como seus dados serão utilizados e protegidos. - Permitir que usuários gerenciem suas preferências de privacidade e consentimentos. 5. Suporte ao Cliente: - Disponibilizar canais de atendimento para suporte técnico e atendimento a dúvidas dos usuários. - Implementar tempos de resposta definidos para diferentes tipos de solicitações. Diagramas do Sistema 1. Diagrama de Casos de Uso O diagrama de casos de uso identifica as interações entre os atores (usuários, administradores) e o sistema, destacando as funcionalidades principais. Atores Principais: - Usuário - Administrador - Sistema de Pagamento Casos de Uso Principais: - Cadastro de Usuário - Login/Autenticação - Gerenciamento de Perfil - Busca de Conteúdo - Reprodução de Mídia - Recomendações Personalizadas - Gerenciamento de Conteúdo (Admin) - Processamento de Pagamentos Explicação: Segundo Jacobson et al. (1992), os casos de uso são essenciais para capturar os requisitos funcionais do sistema de forma orientada ao usuário, facilitando a comunicação entre stakeholders e desenvolvedores. 2. Diagrama de Atividades O diagrama de atividades descreve o fluxo de atividades para processos específicos dentro do sistema, como a reprodução de um vídeo. Fluxo Principal: 1. Usuário seleciona um vídeo. 2. Sistema verifica disponibilidade. 3. Sistema inicia o streaming. 4. Usuário interage com os controles de reprodução. 5. Sistema atualiza o status de reprodução. Explicação: Conforme a abordagem de Unified Modeling Language (UML) por Booch et al. (1999), os diagramas de atividades são úteis para modelar processos de negócios e fluxos de trabalho, proporcionando uma visão clara das sequências de operações. 3. Diagrama de Classes O diagrama de classes representa a estrutura estática do sistema, mostrando as classes, seus atributos, métodos e relacionamentos. Principais Classes: - Usuário - Atributos: id, nome, email, senha, perfil - Métodos: cadastrar(), autenticar(), atualizarPerfil() - Conteúdo - Atributos: id, título, descrição, gênero, diretor, duração - Métodos: adicionarConteúdo(), editarConteúdo(), removerConteúdo() - Recomendação - Atributos: id, tipo, parâmetros - Métodos: gerarRecomendações() - Assinatura - Atributos: id, tipo,preço, validade - Métodos: processarPagamento(), renovarAssinatura() Explicação: Segundo Fowler (2004), os diagramas de classes são fundamentais na modelagem orientada a objetos, permitindo a definição clara das entidades e suas interações dentro do sistema. 4. Diagrama de Sequência O diagrama de sequência ilustra como os objetos interagem em uma sequência temporal para realizar uma funcionalidade específica, como o processo de login do usuário. Sequência de Login: 1. Usuário insere credenciais. 2. Sistema autentica credenciais. 3. Sistema retorna status de autenticação. 4. Usuário acessa painel principal. Explicação: De acordo com Larman (2005), os diagramas de sequência são úteis para detalhar a lógica de interação entre objetos, demonstrando como as funcionalidades são executadas passo a passo. 5. Diagrama de Componentes O diagrama de componentes descreve a organização e dependências entre os componentes do sistema, como módulos e serviços. Principais Componentes: - Interface do Usuário - Módulo de Autenticação - Serviço de Streaming - Banco de Dados - Módulo de Recomendações - Serviço de Pagamento Explicação: Segundo Buschmann et al. (2007), os diagramas de componentes são essenciais para entender a arquitetura do sistema, facilitando a identificação de dependências e a modularização. 6. Diagrama de Implantação O diagrama de implantação mostra a configuração física do sistema, incluindo servidores, dispositivos e conexões de rede. Elementos de Implantação: - Servidor Web - Servidor de Aplicações - Servidor de Banco de Dados - CDN (Content Delivery Network) - Dispositivos do Usuário (PC, Smartphone, Smart TV) Explicação: Conforme a abordagem de UML, os diagramas de implantação são importantes para visualizar a distribuição física dos componentes do sistema, assegurando que a infraestrutura suporte os requisitos de desempenho e escalabilidade. 3. Conclusão A análise apresentada detalha os requisitos funcionais e não funcionais, além das regras de negócio essenciais para o desenvolvimento de um sistema de streaming multimídia eficaz e robusto. Os diagramas fornecem uma representação visual da arquitetura e do comportamento do sistema, facilitando a comunicação entre desenvolvedores e stakeholders. Fundamentado em práticas de engenharia de software e orientado a objetos, o sistema proposto visa oferecer uma experiência de usuário de alta qualidade, alinhada às demandas atuais do mercado de streaming. REFERÊNCIAS - Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., & Stal, M. (2007). Pattern-Oriented Software Architecture Volume 4: A Pattern Language for Distributed Computing. Wiley. - Fowler, M. (2004). UML Distilled: A Brief Guide to the Standard Object Modeling Language. Addison-Wesley. - Jacobson, I., Booch, G., & Rumbaugh, J. (1992). The Unified Software Development Process. Addison-Wesley. - Larman, C. (2005). Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. Prentice Hall. - Booch, G., Rumbaugh, J., & Jacobson, I. (1999). The Unified Modeling Language User Guide. Addison-Wesley. PARTE 1 – GABRIEL O Product Backlog é como uma lista organizada de tarefas que precisam ser realizadas em um projeto. Nele, são registrados todos os itens, que vão desde grandes funcionalidades até pequenos ajustes (SCHWABER; SUTHERLAND, 2017). Cada item pode ser uma tarefa, uma ideia ou uma melhoria. Lembrando que são possíveis correções ou otimizações que podem ocorrer ou não, pois, ao longo do tempo, com o produto utilizado pelo cliente, podem surgir dificuldades e possíveis melhorias em qualquer uma das funcionalidades (COHN, 2009). Dentro do backlog, existem algumas palavras-chave que podem nos auxiliar para a resolução exata do problema ou sugestão de melhoria apresentada, dentre elas: · Bug: Quando o produto apresenta uma funcionalidade ou estado que pode ser otimizado. · Melhoria: O produto pode ser adaptado para versões melhores. · Pesquisa: Se necessário, ao longo do desenvolvimento pode-se realizar uma pesquisa para uma nova tecnologia ou framework, por exemplo. · Dívida Técnica: À medida que o desenvolvimento avança, algumas decisões técnicas podem levar o time a optar por trocar de ferramentas de desenvolvimento por vários motivos (CUNHA; PIRES, 2016). · Tarefa Técnica: Exemplos como a instalação de um banco de dados não fazem parte, em si, de uma funcionalidade final para o usuário, mas são tarefas que precisam ser feitas para viabilizar o produto. · Protótipo: Vários modelos ou esboços podem ser utilizados dentro do projeto para evitar eventuais erros nas funcionalidades do produto. No contexto de streaming de conteúdo multimídia, o backlog pode incluir, por exemplo: · Desenvolver a interface para os usuários acessarem vídeos. · Implementar o sistema de login. · Melhorar a qualidade de reprodução dos vídeos. · Criar uma ferramenta de busca. O Product Backlog para o streaming de conteúdo multimídia cobre uma ampla gama de aspectos do sistema de streaming de conteúdo multimídia proposto neste trabalho: ID História do Usuário Prioridade Critério de Aceitação 1 Como usuário, quero criar uma conta para acessar o conteúdo. Alta O usuário deve ser capaz de criar uma conta com nome, e-mail, senha, e aceitar os termos de uso. 2 Como usuário, quero fazer login para acessar minhas preferências e histórico. Alta O sistema deve autenticar o usuário com e-mail e senha, e oferecer opção de recuperação de senha. 3 Como usuário, quero buscar conteúdo por título, gênero, artista e ano de lançamento. Alta O sistema deve permitir buscas por palavras-chave e aplicar filtros de gênero, artista e ano de lançamento. 4 Como usuário, quero reproduzir vídeos e músicas em diferentes resoluções (480p, 720p, 1080p, 4K). Alta O sistema deve suportar reprodução de vídeo e áudio com controle de qualidade de imagem e som, além de uma opção de autoajuste. 5 Como administrador, quero adicionar, editar e remover conteúdo do sistema. Alta O administrador deve ser capaz de gerenciar o conteúdo com opções de adicionar, editar e remover vídeos, músicas, e metadados (descrição, gênero, elenco, etc.). 6 Como administrador, quero visualizar relatórios de uso, tempo de reprodução e engajamento do usuário. Média O administrador deve visualizar métricas como número de reproduções, tempo assistido por conteúdo, e os usuários mais ativos. 7 Como usuário, quero receber recomendações personalizadas com base no meu histórico de visualizações e preferências. Média O sistema deve sugerir conteúdos com base no histórico de visualizações, preferências, e o que outros usuários com gostos similares assistiram. 8 Como usuário, quero gerenciar minha assinatura (upgrade, downgrade, cancelamento) diretamente pelo painel. Média O usuário deve ser capaz de alterar o plano de assinatura, visualizar benefícios e cancelar a assinatura a qualquer momento. 9 Como usuário, quero pagar minha assinatura com diferentes métodos de pagamento (cartão de crédito, débito, boleto, Pix). Alta O sistema deve integrar métodos de pagamento diversificados e garantir segurança nas transações. 10 Como administrador, quero garantir que todo o conteúdo tenha os direitos autorais corretos. Alta O sistema deve armazenar as licenças de uso e direitos autorais, bem como notificar automaticamente a expiração de direitos. 11 Como usuário, quero acessar o sistema em dispositivos diferentes (smartphones, tablets, smart TVs) com a mesma conta. Alta O sistema deve suportar login em múltiplos dispositivos com sincronização de progresso de conteúdo entre eles. 12 Como usuário, quero criar uma lista de favoritos para salvar conteúdos que desejo assistir depois. Média O usuário deve ser capaz de adicionar e remover títulos de uma lista de favoritos. 13 Como administrador, quero poder suspender ou banir usuários que violem os termos de serviço. Baixa O administrador deve ter uma opção de suspender ou banir usuárioscom justificativa visível no sistema. 14 Como usuário, quero deixar comentários e avaliações em cada conteúdo que assisto. Média O sistema deve permitir que os usuários façam avaliações e deixem comentários em cada vídeo, com moderação de conteúdo inapropriado. 15 Como administrador, quero configurar promoções e descontos para novos usuários. Média O administrador deve poder criar campanhas de desconto, como cupons para novas assinaturas. 16 Como usuário, quero ajustar o idioma e legendas dos vídeos para melhorar minha experiência de visualização. Alta O sistema deve oferecer opções de idioma e legendas, incluindo a opção de legendas automáticas geradas por IA. 17 Como usuário, quero um sistema de notificação que me avise quando novos conteúdos forem adicionados. Baixa O usuário deve poder optar por receber notificações via e-mail ou push sobre novos lançamentos. 18 Como usuário, quero poder compartilhar conteúdos diretamente em redes sociais. Média O sistema deve permitir que os usuários compartilhem links de vídeos ou playlists diretamente em redes sociais. Referências COHN, M. Succeeding with Agile: Software Development Using Scrum. Boston: Addison-Wesley, 2009. CUNHA, R.; PIRES, L. Gestão Ágil de Projetos de Software. São Paulo: Novatec, 2016. SCHWABER, K.; SUTHERLAND, J. The Scrum Guide. 2017. Disponível em: https://www.scrumguides.org/scrum-guide.html. Acesso em: 1 out. 2024. PARTE 2 – GABRIEL USER STORY foram criadas para definir e organizar os requisitos em uma abordagem ágil. Nada mais é do que uma descrição concisa de uma necessidade do usuário do ponto de vista do mesmo, um lembrete de que mais detalhes serão necessários. É uma das partes principais para que o desenvolvedor consiga implementar as funcionalidades dentro de um projeto (BECK, 1999). O user story apareceu pela primeira vez em 1998 no Extreme Programming (XP), uma metodologia ágil. Nesta aparição, foi dito que os usuários definiam o corpo do projeto apenas com user stories, algo muito parecido com os casos de uso em UML. No entanto, algumas literaturas comparam distinções grandes entre user story e casos de uso (COHN, 2004). Vamos ver na prática as user stories criadas para o projeto de conteúdo multimídia proposto neste trabalho: User Story 1: · Como: usuário · Quero: criar uma conta para acessar o conteúdo. · Para: salvar minhas preferências e histórico. · Critério de Aceitação: O usuário deve ser capaz de se registrar com nome, e-mail, senha, escolher uma foto de perfil e aceitar os termos de uso. Um e-mail de confirmação deve ser enviado após o registro. User Story 2: · Como: usuário · Quero: fazer login para acessar minhas preferências e histórico. · Para: ter acesso aos meus conteúdos favoritos e histórico de visualizações. · Critério de Aceitação: O sistema deve autenticar o usuário por e-mail e senha, com a opção de recuperar a senha via e-mail. O login deve permitir sincronização entre dispositivos (ex.: continuar um filme da onde parou em outro dispositivo). User Story 3: · Como: usuário · Quero: buscar conteúdo por título, gênero, artista e ano de lançamento. · Para: encontrar rapidamente o que estou interessado. · Critério de Aceitação: O sistema deve permitir busca por palavras-chave, com filtros avançados para refinar a pesquisa por gênero, artista, data de lançamento e duração. User Story 4: · Como: usuário · Quero: reproduzir vídeos e músicas com controles de qualidade (480p, 720p, 1080p, 4K). · Para: ajustar a qualidade conforme minha conexão de internet. · Critério de Aceitação: O player deve permitir controle de qualidade manual e automático, além de suporte a pausas, retrocessos e avanços rápidos. User Story 5: · Como: administrador · Quero: adicionar, editar e remover conteúdos (vídeos e músicas). · Para: gerenciar o catálogo de conteúdos. · Critério de Aceitação: O administrador deve poder adicionar metadados como descrição, gênero, elenco, e a interface deve permitir edição fácil e exclusão segura de conteúdos. User Story 6: · Como: administrador · Quero: visualizar relatórios de uso, como tempo assistido e engajamento dos usuários. · Para: melhorar a oferta de conteúdo com base nas preferências dos usuários. · Critério de Aceitação: O sistema deve gerar relatórios automáticos e detalhados sobre o tempo de reprodução, engajamento por vídeo, e o número de novos usuários e cancelamentos. User Story 7: · Como: usuário · Quero: receber recomendações personalizadas com base no meu histórico de visualizações. · Para: descobrir novos conteúdos que correspondem aos meus gostos. · Critério de Aceitação: O sistema deve sugerir conteúdos com base no histórico de visualização, comportamento de navegação e preferências pessoais, apresentando recomendações na página inicial. Referências BECK, K. Extreme Programming Explained: Embrace Change. Boston: Addison-Wesley, 1999. COHN, M. User Stories Applied: For Agile Software Development. Boston: Addison-Wesley, 2004. PARTE 3 – GABRIEL Relatório de Sprint 1 – Sistema de Streaming de Conteúdo Multimídia Definições Sprint: Um Sprint é uma forma de se organizar em um desenvolvimento atual para que de fato consiga ter metas alcançáveis que durante um incremento do produto é desenvolvido e potencialmente utilizável. O Sprint é basicamente um esforço de tempo temporário e intenso com o foco de alcançar um objetivo De acordo com Schwaber e Sutherland (2017), "um Sprint é um contêiner para o trabalho de todos os eventos do Scrum". Essa abordagem permite entregas frequentes e ajustes baseados no feedback contínuo. A vantagem é a fragmentação de sprints intermediários, para que os desenvolvedores possam ver resultados em curto tempo enquanto estão trabalhando para alcançar a meta final, causando mais engajamento dos próprios. Objetivo do Sprint O objetivo deste Sprint foi implementar as funcionalidades essenciais para a plataforma de streaming, incluindo: · Cadastro de Usuários: Para permitir que novos usuários se cadastrem. · Login/Autenticação: Para garantir acesso seguro ao conteúdo e histórico do usuário. · Busca de Conteúdo: Para facilitar a navegação e descoberta de vídeos e músicas. Histórias de Usuário Trabalhadas 1. Cadastro de Usuários: · User Story: "Como usuário, quero criar uma conta para acessar a plataforma de streaming." · Critério de Aceitação: O sistema deve permitir que o usuário se registre com nome, e-mail e senha. Um e-mail de confirmação deve ser enviado após o registro. · Status: Concluído. 2. Login e Autenticação: · User Story: "Como usuário, quero fazer login para acessar minhas preferências." · Critério de Aceitação: O sistema deve autenticar o usuário com e-mail e senha, oferecendo opção de recuperação de senha. · Status: Concluído. 3. Busca de Conteúdo: · User Story: "Como usuário, quero buscar vídeos e músicas por título e gênero." · Critério de Aceitação: A busca deve permitir pesquisas por título e filtros por gênero. · Status: Parcialmente Concluído (filtro por artista ainda em desenvolvimento). O que foi Realizado · Cadastro de Usuários: Implementado com validação de dados e envio de e-mail de confirmação, essencial para personalizar a experiência do usuário na plataforma de streaming (SOMMERVILLE, 2011). · Login e Autenticação: Sistema de login concluído, permitindo acesso seguro e recuperação de senha, fundamentais para a experiência do usuário em múltiplos dispositivos (PRESSMAN, 2010). · Busca de Conteúdo: A funcionalidade de busca foi parcialmente concluída, permitindo pesquisa por título e gênero, uma característica crítica em plataformas de streaming para facilitar a descoberta de conteúdo (FOWLER, 2004). Desafios Encontrados 1. Integração dos Filtros de Busca: · Dificuldades técnicas na implementação de filtros múltiplos. A lentidão da busca foi um problema encontrado. · Solução Proposta: Melhorar o desempenho através de técnicas de indexação e caching de consultas (LARMAN, 2005). 2. Sincronização Multi-Dispositivo: · Problemas na continuidadeda visualização entre diferentes dispositivos, um desafio comum em sistemas de streaming (FOWLER, 2004). · Solução Proposta: Implementar um sistema de sincronização de progresso entre dispositivos. Resultados Obtidos · Cadastro e Login: Funcionalidades testadas e operacionais. · Busca de Conteúdo: Em funcionamento, mas com melhorias necessárias na busca avançada. Melhorias Sugeridas · Otimizar a Busca: Acelerar a busca com filtros múltiplos através de técnicas de otimização (SOMMERVILLE, 2011). · Sincronização: Resolver inconsistências na continuidade da visualização entre dispositivos (FOWLER, 2004). Planejamento para o Próximo Sprint · Finalizar a implementação da busca de conteúdo com o filtro por artista. · Iniciar o desenvolvimento da reprodução de vídeos, com suporte a múltiplas resoluções. Referências · BECK, K. Extreme Programming Explained: Embrace Change. Addison-Wesley, 1999. · FOWLER, M. Patterns of Enterprise Application Architecture. Addison-Wesley, 2004. · LARMAN, C. Applying UML and Patterns. Prentice Hall, 2005. · PRESSMAN, R. S. Engenharia de Software. McGraw-Hill, 2010. · SCHWABER, K.; SUTHERLAND, J. The Scrum Guide. Scrum.org, 2017. · SOMMERVILLE, I. Engenharia de Software. Pearson, 2011.