0% acharam este documento útil (0 voto)
23 visualizações19 páginas

Aplicativo JavaLearners: Aprenda Java Interativamente

O projeto JavaLearners é um aplicativo educacional interativo que ensina programação em Java através de uma abordagem baseada em jogos, visando facilitar a aprendizagem dessa linguagem. O aplicativo se diferencia por focar exclusivamente em Java, oferecendo conteúdo adaptado para iniciantes e uma interface amigável. Além disso, o projeto busca resolver a dificuldade de aprendizado em programação, promovendo uma experiência de estudo dinâmica e acessível.

Enviado por

Zack do mine
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
23 visualizações19 páginas

Aplicativo JavaLearners: Aprenda Java Interativamente

O projeto JavaLearners é um aplicativo educacional interativo que ensina programação em Java através de uma abordagem baseada em jogos, visando facilitar a aprendizagem dessa linguagem. O aplicativo se diferencia por focar exclusivamente em Java, oferecendo conteúdo adaptado para iniciantes e uma interface amigável. Além disso, o projeto busca resolver a dificuldade de aprendizado em programação, promovendo uma experiência de estudo dinâmica e acessível.

Enviado por

Zack do mine
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

FATEC DE BARUERI

Engenharia de Software

JAVALEARNERS

Ana Maria Melo de Oliveira | RA: 2090782311009

Davi Araujo Oliveira | RA: 2090782311020

Gabriel Spisso | RA: 2090782311038

Isac de Oliveira Nascimento | RA: 2090782311022

Luiz Eduardo Trindade Almeida | RA: 2090782311003

Documentação de Engenharia de Software

Barueri
2023
1. Introdução

O projeto JavaLearners trata-se de um aplicativo educacional interativo que ensina


programação em Java de forma divertida e envolvente, por meio de uma abordagem baseada
em jogos. O aplicativo oferece uma série de módulos e desafios temáticos que permitem aos
usuários aprender Java enquanto resolvem quebra-cabeças, completam missões e ganham
recompensas. Recursos Principais: Módulos de aprendizado estruturados; Desafios e missões
com temas interessantes; Tutoriais em vídeo e exemplos de código; Comunidade de
aprendizado para compartilhar experiências e obter suporte; Monitoramento do progresso do
usuário.

O projeto tem como objetivo diminuir a dificuldade na aprendizagem de linguagens de


programação, trazendo uma maneira disruptiva de estudar. O maior desafio com esse tipo de
programação, é a dificuldade de aprendizagem, o aplicativo inova e traz uma maneira
diferente de aprender a linguagem de programação Java.

1.1 Clientes

Stackholders – Investidores de Empresas de tecnologia, Escolas e Faculdades que ensinam a


linguagem de programação Java.

Usuário Principal – Alunos da área de TI interessados em aprender Java.

Usuário Secundário – Professores de cursos, ou faculdades.

Usuário Potencial – Público geral que tem interesse no aprendizado de Linguagens de


programação, Profissionais em programação.

1.2 Problema solucionado

O principal problema apresentado nesse segmento de aplicativo, principalmente nessa


linguagem de programação em específico, é a grande dificuldade de aprendizagem,
necessitando de grandes cursos e especialização nesse conteúdo. A proposta do aplicativo é
facilitar e trazer mais acessibilidade no aprendizado desta linguagem de programação,
trazendo propostas diferentes, de forma mais interativa e dinâmica, apresentando jogos,
tarefas interativas, não deixando de lado o mais importante, o conteúdo.
2. Modelagem de Negócio

2.1 Concorrentes

Mimo - É o único software que encontramos no mercado que oferece um serviço


muito semelhante ao nosso, com a proposta de ser muito parecido com o duolingo, porém
ensinando linguagens de programação. Entretanto, o Mimo ensina as seguintes linguagens:
Python, JavaScript, HTML, SQL e CSS. Já este projeto, visa oferecer apenas a linguagem
Java, linguagem essa que não é oferecida pelo nosso concorrente, e é justamente esse nosso
principal diferencial.

2.1.1 Quais são nossas vantagens sobre o concorrente?

Foco exclusivo na linguagem Java: Nosso projeto tem foco apenas na linguagem
Java, enquanto o Mimo oferece várias linguagens e nenhuma delas é o Java.

Abordagem acolhedora e amigável: Nosso projeto visa ter uma interface amigável e
com interações sugestivas, obviamente sem prejudicar o foco necessário para o aprendizado,
criando assim uma experiência de estudo de programação agradável e diferente do restante do
mercado.

Conteúdo adaptado para iniciantes: O JavaLearner tem como público-alvo aqueles


que querem trocar de área de atuação ou mesmo começar a programar e não tem muita noção
sobre esse nicho do mercado.

2.2 Regras de negócio:

As regras de negócio para o software JavaLearners definem o que é permitido e o que


não é permitido dentro do contexto do aplicativo. Algumas dessas regras podem incluir:

Conteúdo focado em Java: O software deve se concentrar exclusivamente na


linguagem de programação Java, tanto em termos de ensino quanto de prática.

Interface amigável e interativa: O aplicativo deve ter uma interface amigável e


interativa para tornar a experiência de aprendizado agradável para os usuários.
Acessibilidade: O software deve ser acessível a todos os usuários interessados em
aprender Java, independentemente de seu nível de habilidade prévio.

Progresso do usuário: O aplicativo deve ser capaz de rastrear o progresso individual


do usuário para fornecer feedback personalizado e adaptar o conteúdo conforme necessário.

Segurança dos dados: Todas as informações dos usuários devem ser protegidas de
acordo com os padrões de segurança da informação para garantir a privacidade e a
confidencialidade dos dados.

2.3 Vantagem do software

A vantagem do software JavaLearners reside em sua abordagem inovadora e focada


para ensinar a linguagem de programação Java. Algumas das vantagens específicas incluem:

Foco exclusivo na linguagem Java: Enquanto outros aplicativos oferecem uma


variedade de linguagens de programação, JavaLearners se destaca por se concentrar
exclusivamente na linguagem Java, atendendo a um nicho específico de usuários interessados
em aprender essa linguagem em particular.

Conteúdo adaptado para iniciantes: JavaLearners é ideal para iniciantes na


programação ou aqueles que desejam mudar para o campo da tecnologia, fornecendo um
caminho estruturado para aprender os conceitos fundamentais de Java de uma maneira
acessível e compreensível.

3. Análise financeira

Possibilita na antecipação das consequências financeiras durante o


cumprimento das atividades da empresa. Segue tabela:
Figura 1. Estimativa de Gastos
3.1 ROI

Estimativa de Dados:

500 pessoas assinaram o plano básico a $9,99 por mês;

1.000 pessoas assinaram o plano premium a $19,99 por mês;

Período de um ano.

Receita do Plano Básico:

Receita do Plano Premium:

Receita Total:

Investimento Total:

R$200.000,00

ROI:
4. Requisitos de software

4.1 Método e técnica de levantamento de requisitos

Para levantar os requisitos do software, utilizamos uma abordagem centrada no


usuário, incluindo entrevistas com potenciais usuários, análise de casos de uso e feedback de
especialistas em Java e educação em tecnologia.

4.1.1 Técnica 1: Entrevistas com Potenciais Usuários

Realizamos entrevistas estruturadas com estudantes, profissionais e instrutores de Java


para identificar suas necessidades, preferências e desafios no aprendizado e ensino de Java.

4.1.2 Técnica 2: Análise de Casos de Uso

Analisamos casos de uso de plataformas de aprendizado existentes, bem como padrões


de comportamento de usuários em ambientes de aprendizado online, para entender melhor
como projetar uma experiência de usuário eficaz e envolvente.

4.2 Requisitos funcionais

[RF001] Selecionar Curso de Linguagem Java

Prioridade: x Essencial Importante Desejável

Descrição: Este requisito permite que o usuário escolha um curso de Linguagem Java na lista
de cursos disponíveis na plataforma JavaLearner durante o processo de iniciar um novo curso.

[RF002] Criar Conta de Usuário

Prioridade: x Essencial Importante Desejável

Descrição: Este requisito permite que um usuário crie uma nova conta na plataforma
JavaLearner, fornecendo informações como nome, e-mail e senha.

[RF003] Visualizar Lista de Cursos Favoritos

Prioridade: Essencial x Importante Desejável

Descrição: Este requisito permite que o usuário visualize uma lista dos cursos marcados como
favoritos para facilitar o acesso rápido aos cursos de seu interesse.
[RF004] Marcar Curso como Concluído

Prioridade: Essencial x Importante Desejável

Descrição: Este requisito permite que o usuário marque um curso como concluído após
terminar todas as lições, para acompanhar seu progresso e histórico de aprendizado.

[RF005] Compartilhar Curso em Redes Sociais

Prioridade: Essencial Importante x Desejável

Descrição: Este requisito permite que o usuário compartilhe informações sobre um curso em
suas redes sociais, promovendo a plataforma JavaLearner e incentivando outros usuários a
participarem.

[RF006] Pesquisar Cursos por Categoria

Prioridade: x Essencial Importante Desejável

Descrição: Este requisito permite que o usuário pesquise cursos específicos por categoria (por
exemplo, iniciante, intermediário, avançado) para encontrar conteúdo relevante para seu nível
de habilidade.

[RF007] Avaliar Curso e Deixar Comentário

Prioridade: Essencial Importante x Desejável

Descrição: Este requisito permite que o usuário avalie um curso e deixe um comentário para
fornecer feedback aos criadores de conteúdo e ajudar outros usuários na escolha de cursos.

[RF008] Avaliar Desempenho do Usuário

Prioridade: Essencial x Importante Desejável

Descrição: Este requisito permite que a plataforma JavaLearner avalie o desempenho dos
usuários em diferentes cursos, acompanhando o progresso, a participação e o desempenho nas
avaliações, para fornecer feedback personalizado e recomendações de melhoria.

[RF009] Gerenciar Certificados de Conclusão

Prioridade: Essencial x Importante Desejável


Descrição: Este requisito permite que os usuários gerenciem e baixem certificados de
conclusão de cursos concluídos com sucesso na plataforma JavaLearner, fornecendo uma
comprovação tangível de suas habilidades e realizações.

4.3 Requisitos não funcionais

[RNF001] Usabilidade da Interface do Usuário

Prioridade: x Essencial Importante Desejável

Descrição: A interface do sistema deve ser intuitiva, proporcionando facilidade de


aprendizado, eficiência, facilidade de recordação, satisfação e minimizando o número de erros
durante a interação com o sistema. Isso inclui a utilização de elementos visuais claros, uma
estrutura de navegação lógica, feedbacks claros e informativos, garantindo uma experiência
de usuário satisfatória.

[RNF002] Segurança dos Dados do Usuário

Prioridade: x Essencial Importante Desejável

Descrição: O sistema deve garantir a segurança e a privacidade dos dados dos usuários,
utilizando criptografia de ponta a ponta e práticas de segurança recomendadas para proteger
informações sensíveis, como senhas e informações de pagamento.

[RNF003] Compatibilidade com Dispositivos Móveis

Prioridade: x Essencial Importante Desejável

Descrição: A plataforma JavaLearner deve ser compatível e responsiva em dispositivos


móveis, como smartphones e tablets, garantindo uma experiência de usuário otimizada em
diferentes tamanhos de tela e sistemas operacionais móveis, como Android e iOS. 100% das
funcionalidades devem estar disponíveis em dispositivos móveis.
[RNF004] Tempo de Resposta do Servidor

Prioridade: Essencial x Importante Desejável

Descrição: O sistema JavaLearner deve ter um tempo de resposta do servidor rápido,


garantindo que as solicitações dos usuários e as páginas sejam carregadas em um tempo de até
1 segundo, proporcionando uma experiência de usuário ágil e responsiva.

[RNF005] Escalabilidade da Infraestrutura

Prioridade: Essencial Importante x Desejável

Descrição: A infraestrutura da plataforma JavaLearner deve ser escalável, capaz de lidar com
até 5.000 usuários simultâneos sem comprometer o desempenho ou a disponibilidade do
sistema.

[RNF006] Disponibilidade do Suporte ao Cliente

Prioridade: Essencial Importante x Desejável

Descrição: A equipe de suporte ao cliente da plataforma JavaLearner deve estar disponível


para ajudar os usuários com dúvidas, problemas técnicos ou solicitações de assistência,
proporcionando um serviço eficiente e responsivo. Com prazo de resposta da solicitação de
até 24 horas.

[RNF007] Resiliência a Falhas de Servidor

Prioridade: x Essencial Importante Desejável

Descrição: O sistema JavaLearner deve ser projetado com mecanismos de recuperação de


falhas para lidar com interrupções temporárias de servidor ou quedas de serviço, minimizando
o impacto nos usuários e garantindo uma experiência de usuário contínua. Com tempo de
recuperação, após uma falha de servidor, sendo de até 5 minutos.

[RNF008] Acessibilidade

Prioridade: x Essencial Importante Desejável

Descrição: A plataforma JavaLearner deve ser acessível para usuários com deficiências,
seguindo as diretrizes de acessibilidade da Web (WCAG) e oferecendo suporte para
tecnologias assistivas, como leitores de tela, controles de voz e navegação por teclado,
garantindo uma experiência inclusiva para todos os usuários. Conformidade com o nível AA
das diretrizes WCAG.

[RNF009] Eficiência no Armazenamento de Dados

Prioridade: Essencial x Importante Desejável

Descrição: O sistema deve ser eficiente no armazenamento e gerenciamento de dados dos


usuários e cursos, utilizando técnicas de compactação e otimização de banco de dados para
garantir um uso eficiente dos recursos de armazenamento e processamento.

4.4 Requisito de usuário/sistema

[RUS001] Acesso com conexão à internet

Prioridade: x Essencial Importante Desejável

Descrição: Os usuários devem acessar a plataforma de aprendizado de Java em qualquer


dispositivo, desde que com conexão à internet.

[RUS002] Navegação Intuitiva e Orientação para Iniciantes

Prioridade: x Essencial Importante Desejável

Descrição: Os usuários, especialmente os iniciantes em programação Java, devem ser capazes


de navegar facilmente pela plataforma e receber orientações claras sobre por onde começar,
quais recursos acessar e como progredir em seu aprendizado.

[RUS003] Feedback Interativo e Personalizado

Prioridade: Essencial x Importante Desejável

Descrição: Os usuários devem receber feedbacks interativos e personalizados sobre seu


progresso no aprendizado de Java, incluindo avaliações de desempenho, sugestões de
melhoria e recomendações de recursos adicionais com base em seu estilo de aprendizado e
áreas de interesse.
[RUS004] Personalização do Conteúdo e Recomendações

Prioridade: Essencial x Importante Desejável

Descrição: A plataforma JavaLearner deve oferecer recursos de personalização de conteúdo e


recomendações adaptadas aos interesses, nível de habilidade e progresso de cada usuário,
proporcionando uma experiência de aprendizado mais relevante e engajadora.

4.5 Requisitos de negócio

[RN001] Modelo de Negócio Freemium

Prioridade: x Essencial Importante Desejável

Descrição: A plataforma JavaLearner deve adotar um modelo de negócio "freemium",


oferecendo funcionalidades básicas gratuitas para todos os usuários, com a opção de upgrade
para uma assinatura paga que desbloqueia recursos avançados e conteúdo premium.

[RN002] Parcerias Estratégicas com Instituições Educacionais

Prioridade: Essencial x Importante Desejável

Descrição: A plataforma JavaLearner deve estabelecer parcerias estratégicas com instituições


educacionais, como escolas, universidades e empresas de treinamento, para promover o uso
da plataforma como recurso complementar em programas de ensino de programação Java.

[RN003] Parte de Receita Baseado em Publicidade

Prioridade: Essencial x Importante Desejável

Descrição: A plataforma JavaLearner explora um modelo de receita baseado em publicidade,


exibindo anúncios relevantes para os usuários do plano "freemium" durante sua interação com
a plataforma, como banners publicitários ou patrocínios de conteúdo.

[RN004] Estratégia de Upselling para Assinatura Premium

Prioridade: x Essencial Importante Desejável

Descrição: A plataforma JavaLearner deve implementar uma estratégia eficaz de upselling


para incentivar os usuários do plano básico a fazer upgrade para o plano premium. Isso inclui
a oferta de benefícios exclusivos e demonstração do valor adicional proporcionado pelo plano
premium, como acesso a módulos premium, recursos avançados de aprendizado e suporte
prioritário.

[RN005] Programa de Recompensas para Usuários Ativos

Prioridade: Essencial Importante x Desejável

Descrição: A plataforma JavaLearner deve implementar um programa de recompensas para


incentivar a participação e o engajamento dos usuários. Isso pode incluir pontos de fidelidade
por conclusão de cursos, que podem ser trocados por descontos em assinaturas premium,
acesso antecipado a novos recursos ou brindes exclusivos.

5. Modelagem de software

5.1 IDEF 0

Figura 2. Representação Gráfica IDEF0


5.2 IDEF 1

Figura 3. Representação Gráfica IDEF1


5.3 Canvas

Figura 4. Canvas
5.4 BPMN

Figura 5. BPMN
6. Análise SWOT

6.1 Strengths (Forças)

6.1.1 Conteúdo de Qualidade

Oferecimento de conteúdo de alta qualidade, incluindo tutoriais, exercícios práticos e


projetos.

6.1.2 Experiência do Usuário

Interface intuitiva e amigável, facilitando a navegação e o aprendizado.

6.1.3 Modelo de Negócio

Implementação de um modelo freemium com estratégia de upselling para o plano


premium, possibilitando atrair usuários e gerar receita.

6.1.4 Engajamento da Comunidade

Estabelecimento de uma comunidade ativa de aprendizado e colaboração, onde os


usuários podem interagir, compartilhar conhecimentos e colaborar em projetos.

6.2 Weaknesses (Fraquezas)

6.2.1 Dependência da Conexão à Internet

O aplicativo requer conexão à internet para acesso ao conteúdo, o que pode limitar a
acessibilidade em áreas com conectividade instável.

6.2.2 Barreira de Entrada para Planos Pagos

A transição de usuários do plano gratuito para o plano premium pode ser difícil devido
à resistência em pagar por conteúdo que está disponível gratuitamente em outros lugares.

6.2.3 Diversidade de Idiomas

Limitação na oferta de conteúdo em vários idiomas pode restringir o alcance global da


plataforma.
6.2.4 Concorrência

Presença de concorrentes estabelecidos no mercado de ensino de programação, o que


pode dificultar a aquisição e retenção de usuários.

6.3 Opportunities (Oportunidades)

6.3.1 Expansão de Conteúdo

Oportunidade de expandir o conteúdo para cobrir outras linguagens de programação


além de Java, aumentando assim o público-alvo da plataforma.

6.3.2 Parcerias Estratégicas

Potencial para estabelecer parcerias estratégicas com instituições educacionais,


empresas de tecnologia e outras organizações para expandir o alcance e a oferta de serviços.

6.3.3 Mercado em Crescimento

A crescente demanda por habilidades de programação oferece oportunidades para o


crescimento do mercado de educação em tecnologia.

6.3.4 Personalização do Conteúdo

Possibilidade de oferecer conteúdo personalizado e recomendações com base nas


necessidades e preferências individuais dos usuários, aumentando assim o engajamento e a
retenção.

6.3.5 Inovação Tecnológica

Integração de novas tecnologias, como realidade virtual ou inteligência artificial, para


aprimorar a experiência de aprendizado e diferenciar a plataforma da concorrência.

6.4 Threats (Ameaças):

6.4.1 Mudanças no Mercado

Rápidas mudanças no setor de tecnologia podem exigir atualizações frequentes de


conteúdo e tecnologia para manter a relevância da plataforma.
6.4.2 Segurança de Dados

Aumento das preocupações com segurança e privacidade de dados podem afetar a


confiança dos usuários na plataforma.

6.4.3 Concorrência Crescente

Surgimento de novos concorrentes e plataformas de ensino de programação pode


intensificar a competição e reduzir a participação de mercado.

6.4.4 Instabilidade Econômica

Flutuações econômicas podem afetar o poder de compra dos consumidores e reduzir a


disposição para investir em educação adicional.

6.4.5 Regulamentações Governamentais

Mudanças nas regulamentações governamentais, como políticas de privacidade de


dados ou leis de educação, podem impactar as operações e os custos da plataforma.

6.5 Figura Análise SWOT

Figura 6. SWOT ANALYSIS

Você também pode gostar