• Home
  • Chat IA
  • Guru IA
  • Tutores
  • Central de ajuda
Home
Chat IA
Guru IA
Tutores

·

Ciência da Computação ·

Linguagens de Programação

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Certificados de Eventos - Lista para Usuários

1

Certificados de Eventos - Lista para Usuários

Linguagens de Programação

UNIANDRADE

Eventos Participados - Acesso aos seus eventos futuros e certificados

1

Eventos Participados - Acesso aos seus eventos futuros e certificados

Linguagens de Programação

UNIANDRADE

Lista de Eventos Participados e Acesso aos Certificados

1

Lista de Eventos Participados e Acesso aos Certificados

Linguagens de Programação

UNIANDRADE

Notificação Importante

1

Notificação Importante

Linguagens de Programação

UNIANDRADE

Feedback Evento - Descricao e Avaliacao

1

Feedback Evento - Descricao e Avaliacao

Linguagens de Programação

UNIANDRADE

Lista de Eventos Participados - Acesso e Feedback

1

Lista de Eventos Participados - Acesso e Feedback

Linguagens de Programação

UNIANDRADE

Eventos Participados - Notificacoes e Acesso a Certificados

1

Eventos Participados - Notificacoes e Acesso a Certificados

Linguagens de Programação

UNIANDRADE

Sistema de Gerenciamento de Eventos e Workshops - Especificacao de Funcionalidades e Design

2

Sistema de Gerenciamento de Eventos e Workshops - Especificacao de Funcionalidades e Design

Linguagens de Programação

UNIANDRADE

Ceder Feedback: Importância e Estratégias Eficazes

1

Ceder Feedback: Importância e Estratégias Eficazes

Linguagens de Programação

UNIANDRADE

Lifting the Stone- Business Case for Responsible Mineral Sourcing in Asia

1

Lifting the Stone- Business Case for Responsible Mineral Sourcing in Asia

Linguagens de Programação

UNIANDRADE

Texto de pré-visualização

Conteudista Prof Dr Artur Marques Revisão Textual Mª Bruna Giovana Bengozi Objetivo da Unidade Integrar as competências adquiridas e desenvolver soluções computacionais aplicáveis a problemas reais DESAFIO ATIVIDADE Material Teórico Material Complementar SituaçãoProblema 1 SituaçãoProblema 2 SituaçãoProblema 3 Projetos Computacionais da Teoria à Prática REFERÊNCIAS Atividade de Entrega Referências Olá estudante Vamos iniciar a disciplina abordando os conceitos necessários para que você possa realizar a atividade através das situaçõesproblema mais à frente Aprendizagem Baseada em Projetos ABP Página 1 de 7 Material Teórico Atenção estudante Aqui reforçamos o acesso ao conteúdo online para que você assista à videoaula Será muito importante para o entendimento do conteúdo A Aprendizagem Baseada em Projetos ABP vai além da simples concepção de um mero método de ensino para se configurar como uma abrangente estratégia pedagógica Seu ponto focal reside na ideia de que osas estudantes adquirem conhecimentos e habilidades de forma mais significativa e duradoura quando engajados ativamente na investigação e resolução de problemas culminando na criação de um produto apresentação ou performance tangível Conforme elucidam Larmer Mergendoller e Boss 2015 p 6 a ABP é um método de ensino no qual os alunos aprendem através do engajamento ativo em projetos do mundo real e pessoalmente significativos Essa abordagem pedagógica coloca o discente no centro do processo de aprendizagem promovendo autonomia responsabilidade e colaboração Diferentemente de modelos tradicionais nos quais oa professora é oa detentora primárioa do conhecimento e o transmite de forma expositiva na ABP oa docente assume o papel de facilitadora orientadora e mediadora do processo de descoberta e de construção do saber peloa alunoa A eficácia da ABP sustentase em alguns princípios e características cruciais que a distinguem como o foco em questões ou problemas desafiadores ou seja os projetos em ABP geralmente partem de uma questão norteadora ou de um problema complexo que não possui uma solução única ou simples Essa questão deve ser instigante e relevante para osas estudantes incentivando a investigação aprofundada Thomas 2000 Além disso é possível citar a investigação sustentada na qual osas alunos se engajam em um processo rigoroso e estendido de investigação buscando informações aplicando conceitos e desenvolvendo soluções ao longo de um período significativo Isso envolve pesquisa análise crítica e síntese de informações de diversas fontes Outros pontos relevantes levam em consideração a autenticidade fortemente contextualizados no mundo real abordando problemas relevantes para osas discentes suas comunidades ou o campo profissional Essa autenticidade aumenta o engajamento e a percepção da relevância do aprendizado Blumenfeld et al 1991 Além disso não devemos ignorar o espaço para o protagonismo doa alunoa que pode fazer escolhas significativas sobre o projeto seja no tema nos métodos de investigação nos produtos a serem desenvolvidos ou na forma de apresentação É fundamental que ao longo do projeto osas estudantes sejam incentivadosa a refletirem sobre o que e como estão aprendendo bem como sobre o próprio processo de trabalho A reflexão assim ajuda a consolidar o conhecimento e a desenvolver habilidades metacognitivas No contexto da Ciência da Computação essa metodologia se revela particularmente vantajosa A natureza intrinsecamente prática e orientada à resolução de problemas dessa área do conhecimento encontra na ABP um alinhamento natural Algumas vantagens se destacam Desenvolvimento de habilidades técnicas aplicadas Fomento de soft skills Aumento da motivação e engajamento Aprendizagem profunda e significativa Preparação para o mercado de trabalho Mas não podemos perder a perspectiva do papel doa alunoa que deixa de ser uma receptora passivoa de informações para se tornar oa protagonista de seu aprendizado Portanto esperamos de sua parte uma postura Ativa e investigativa Colaborativa Autônoma e responsável Reflexiva Cabe um comentário sobre o termo colaborativa embora o trabalho deva ser uma entrega individual nada impede que osas alunosas conversem entre si e compartilhem experiências Essa troca ajuda a elevar significativamente a qualidade de todos os trabalhos produzidos Reflita A nossa disciplina PIT em Ciência da Computação foi concebida como um espaço para a articulação entre teoria e prática Seu principal objetivo como delineado no plano de ensino é integrar as competências adquiridas e desenvolver soluções computacionais aplicáveis a problemas reais Para alcançar tal objetivo fundamentamonos integralmente na metodologia ABP Nossas atividades serão majoritariamente práticas intercaladas com momentos de exposição teórica para embasar os conceitos essenciais já abordados em nosso material teórico O cerne desta disciplina é o desenvolvimento de um projeto computacional simples e factível compatível com o estágio inicial da sua formação em Ciência da Computação O tema específico do projeto foi pensado para ser ao mesmo tempo útil e interessante com potencial de uso pessoal ou por outras pessoas Ainda assim o principal objetivo do projeto é promover a aplicação dos seguintes conhecimentos Linguagem de programação Java Paradigma de programação orientação a objetos O sistema que será desenvolvido será explicado no tópico a seguir Catálogo Simples de Livros ou Filmes Descrição Uma aplicação web que permita aoà usuárioa catalogar e consultar informações sobre livros séries ou filmes Cada item deve conter atributos mínimos como título autordiretor ano de publicaçãolançamento gênero e uma breve sinopse Funcionalidades mandatórias essenciais Funcionalidades mandatórias essenciais Interface web para navegação e gerenciamento Cadastro de novos livrosfilmes Listagem de todos os itens catalogados Visualização dos detalhes de um item específico Opção de editar as informações de um item Opção de excluir um item do catálogo Busca simples por título ou autordiretor Persistência dos dados em banco de dados Principais aprendizados envolvidos Modelagem da entidade Livro ou Filme Implementação de CRUD Create Read Update Delete Desenvolvimento de JSPs para exibição de lista detalhes e formulários Implementação de uma funcionalidade de busca básica usando SQL Sua complexidade de desenvolvimento é muito baixa e envolve uma entidade principal com atributos claros A funcionalidade de busca simples adiciona um pequeno desafio interessante voltada para o SQL Possíveis extensões caso haja tempo e interesse da sua parte não é obrigatório essa etapa dependerá unicamente do seu desejo de se superar e ir além do esperado Adicionar um sistema de avaliação use estrelas ou emoji que desejar Permitir o upload de uma imagem de capa requer cuidado com o manuseio de arquivos se for muito complexo para você pode ser simplificado para um simples link externo com a imagem Filtragem por gênero romance drama comédia ficção ação aventura documentário etc Uma dica importante é fundamental que o escopo do projeto seja gerenciável dentro do cronograma semestral A ideia não é construir um sistema comercial complexo mas sim vivenciar o ciclo de desenvolvimento de um software em menor escala aplicando os conceitos aprendidos Os componentes de projeto que você seguirá para a construção deverá contemplar e documentar as seguintes fases Fase de concepção e planejamento definição detalhada do escopo levantamento de requisitos modelagem inicial do sistema casos de uso diagramas de classes simplificados modelo de dados e planejamento das entregas Fase de desenvolvimento iterativo implementação dos módulos do sistema Fase de testes e refinamento testes unitários e de integração bem como correção de falhas Fase de documentação e preparação para apresentação elaboração do relatório técnico e dos materiais para a apresentação final documentada do projeto Vale reforçar que o projeto será desenvolvido individualmente Este projeto integrador não é apenas um trabalho a ser entregue mas uma jornada de aprendizado Encareo como uma oportunidade para aplicar seus conhecimentos desenvolver novas habilidades enfrentar desafios e acima de tudo aprender fazendo Assim você se preparará para o mercado supercompetitivo que estamos vivenciando hoje Isso é muito importante pois vivemos em um século que impôs uma reconfiguração nas demandas da sociedade e consequentemente nas competências requeridas dosas profissionais em todas as áreas com especial ênfase nos campos tecnológicos como a Ciência da Computação Já não basta dominar apenas o conhecimento técnico específico é imperativo desenvolver um conjunto de habilidades transversais frequentemente denominadas competências essenciais que são cruciais para a adaptação inovação e resolução de problemas em um mundo cada vez mais complexo interconectado e dinâmico Trilling e Fadel 2009 p 47 argumentam que para ter sucesso na vida e no trabalho do século XXI os cidadãos e trabalhadores devem ser proficientes em habilidades do século XXI como pensamento crítico resolução de problemas comunicação e colaboração A Partnership for 21st Century Skills a P21 uma organização influente na disseminação dessas ideias categoriza essas habilidades em diversos eixos sendo os 4 Cs Pensamento Crítico Critical Thinking Criatividade Creativity Colaboração Collaboration e Comunicação Communication amplamente reconhecidos como pilares centrais Fundamentos de Programação em Java Neste item iremos retomar os pilares da linguagem de programação Java essencial para o desenvolvimento do projeto integrador desta disciplina O domínio desses fundamentos é condição mandatória para a construção de aplicações robustas e eficientes Vamos relembrar desde a configuração do ambiente até os conceitos avançados de orientação a objetos e tratamento de exceções fornecendo uma base sólida para as etapas subsequentes de desenvolvimento A linguagem Java foi concebida pela Sun Microsystems no início da década de 1990 e atualmente é mantida pela Oracle consolidandose como uma das mais proeminentes e versáteis no panorama da Ciência da Computação Sua popularidade deriva de características como a portabilidade viabilizada pela Máquina Virtual Java ou JVM que permite a execução de código Java compilado conhecido como bytecode em diversas plataformas sem a necessidade de recompilação É intrinsecamente orientada a objetos robusta e possui um vasto ecossistema de bibliotecas e frameworks Conforme Deitel e Deitel 2017 p 2 Java é uma linguagem de programação orientada a objetos poderosa e amplamente utilizada no desenvolvimento de aplicações corporativas e mobile Para iniciar o desenvolvimento em Java é imprescindível a instalação do Java Development Kit JDK a JVM e outras ferramentas essenciais O ambiente de desenvolvimento integrado IDE como Eclipse IntelliJ IDEA ou Apache NetBeans facilita sobremaneira o processo de codificação depuração e gerenciamento de projetos Recomendamos fortemente que faça os downloads e instale em seu equipamento Aqui oferecemos a você alguns recursos por meio dos links estáveis da web para que se aprofunde aprenda ou recicle o seu conhecimento a fim de que o desenvolvimento do sistema proposto saia sem muitas intercorrências Leitura Sites Importantes para Utilização da Linguagem Java Oracle Java Tutorials Getting Started Clique no botão para conferir o conteúdo ACESSE Instalação do JDK e Configuração do Ambiente W3Schools Clique no botão para conferir o conteúdo ACESSE A sintaxe de Java possui similaridades com CC O entendimento de seus elementos básicos é o primeiro passo para a escrita de programas funcionais Java possui tipos de dados primitivos para representar valores numéricos inteiros como int byte short long e de ponto flutuante como float double caracteres char e booleanos boolean Variáveis são declaradas com um tipo e um nome bem como podem ser inicializadas A linguagem oferece operadores aritméticos relacionais lógicos e de atribuição etc Além disso permite o controle do fluxo de execução com base em condições As principais são if ifelse ifelseif e switch Possui também instruções para executar blocos de código múltiplas vezes Incluem instruções for que são ideais para iterações com contagem definida while que executa enquanto uma condição for verdadeira e dowhile que executa ao menos uma vez e depois verifica a condição Leitura Instruções Importantes Java Basic Syntax TutorialsPoint Clique no botão para conferir o conteúdo ACESSE Java Control Flow Statements Oracle Docs Clique no botão para conferir o conteúdo ACESSE Programação Orientada a Objetos POO em Java A Programação Orientada a Objetos POO é um paradigma que organiza o software em torno de objetos que são instâncias de classes Isso promove a modularidade reutilização e manutenibilidade do código Segundo Booch et al 2007 p 41 a orientação a objetos é um método de modelagem de sistemas complexos como um conjunto de objetos que interagem entre si Classes e objetos uma classe é um molde ou projeto que define os atributos que para nós são os dados e métodos que descrevem os comportamentos que seus objetos terão Um objeto é uma instância concreta de uma classe Atributos e métodos atributos também chamados de campos ou variáveis de instância armazenam o estado de um objeto Os métodos por outro lado definem as ações que um objeto pode realizar Encapsulamento é um princípio da POO que consiste em agrupar dados especialmente os atributos e os métodos que os manipulam dentro de uma unidade que chamamos de classe Esse conceito ajuda a proteger os dados contra acesso externo indevido A visibilidade de atributos e métodos é controlada por modificadores de acesso public private protected e default Métodos especiais Construtores são métodos com o mesmo nome da classe responsáveis por inicializar os objetos no momento em que são criados Dentro desses métodos e de outros métodos da classe podese usar a palavrachave this que faz referência à instância atual do objeto permitindo acessar seus próprios métodos ou construtores Site Reciclagem do Conhecimento ObjectOriented Programming Concepts Oracle Docs Clique no botão para conferir o conteúdo ACESSE Leitura Java Classes and Objects W3Schools Clique no botão para conferir o conteúdo ACESSE Agora que você já reciclou a parte fundamental do Java iremos um pouco mais adiante com mecanismos que conferem maior flexibilidade e poder à modelagem de sistemas Um dos grandes conceitos na linguagem é a herança ela permite que uma classe subclasse ou classe derivada herde atributos e métodos de outra classe ou seja superclasse ou classe base Isso promove a reutilização de código e a criação de hierarquias de classes A palavra chave super é usada para acessar membros da superclasse Outra grande invenção no Java é o polimorfismo que como você já sabe significa muitas formas Ele permite que objetos de diferentes classes sejam tratados por meio de uma interface comum superclasse ou interface Em Java manifestase principalmente através da sobrescrita de métodos ou como é comumente conhecida overriding na qual uma subclasse fornece uma implementação específica para um método herdado Há também o conceito de sobrecarga de métodos chamado de overloading em que múltiplos métodos com o mesmo nome mas com assinaturas diferentes coexistem na mesma classe Temos ainda as classes abstratas que não podem ser instanciadas diretamente e podem conter métodos abstratos ou seja sem implementação Servem como modelos para subclasses que devem implementar os métodos abstratos Por outro lado as interfaces definem um contrato de métodos que uma classe pode implementar Uma classe pode implementar múltiplas interfaces permitindo uma forma de herança múltipla de tipos mas não de implementação As interfaces contêm apenas assinaturas de métodos e constantes Leitura Momento de Reciclagem de Conhecimento Inheritance Oracle Docs Clique no botão para conferir o conteúdo ACESSE Polymorphism Oracle Docs Clique no botão para conferir o conteúdo ACESSE Abstract Methods and Classes Oracle Docs Clique no botão para conferir o conteúdo ACESSE Interfaces Oracle Docs Clique no botão para conferir o conteúdo ACESSE Para armazenar e manipular grupos de objetos ou dados primitivos o Java oferece estruturas de dados como arrays e o Java Collections Framework Arrays são estruturas de tamanho fixo que armazenam elementos do mesmo tipo Podem ser unidimensionais ou multidimensionais O acesso aos elementos é feito por um índice numérico Por outro lado Java Collections Framework é um conjunto robusto de classes e interfaces como List Set e Map utilizados para representar e manipular coleções de objetos de forma mais flexível e eficiente que as arrays ou matrizes Leitura Arrays Oracle Docs Clique no botão para conferir o conteúdo ACESSE Java Collections Framework Overview Oracle Docs Clique no botão para conferir o conteúdo ACESSE Vamos lembrar o que são as exceções elas se referem a eventos anormais que ocorrem durante a execução de um programa e interrompem o fluxo normal de instruções O tratamento adequado de exceções é crucial para a construção de um software resiliente ou seja quando um erro ocorre por exemplo uma divisão por zero ou acesso a um arquivo inexistente uma exceção é lançada Chamamos esse evento de throw Para isso lidar com isso utilizamos os blocos trycatchfinally da seguinte forma Try envolve o bloco de código onde uma exceção pode ocorrer Catch captura e trata uma exceção específica que foi lançada no bloco try Pode haver múltiplos blocos catch para diferentes tipos de exceção Finally bloco de código que é sempre executado independentemente de uma exceção ter sido lançada ou capturada Utilizado para liberar recursos ex fechar arquivos ou conexões de banco de dados O tratamento de exceções permite que o programa lide com erros de forma elegante evitando que ele termine abruptamente e fornecendo feedback útil ao usuário ou registrando o erro para análise posterior Leitura Momento de Aprendizagem Lesson Exceptions Oracle Docs Clique no botão para conferir o conteúdo ACESSE Site Java Try Catch W3Schools Clique no botão para conferir o conteúdo ACESSE Projeto do Sistema e Segurança da Informação A ideia por trás desta seção é mostrar as fases mais importantes do ciclo de vida de um projeto de software desde a concepção e o planejamento detalhado passando pelo desenvolvimento iterativo com atenção aos aspectos de segurança até a documentação técnica e a preparação para a apresentação final da solução computacional desenvolvida Saiba que antes de qualquer linha de código ser escrita um planejamento cuidadoso e uma modelagem precisa do sistema são etapas imperativas Segundo Pressman e Maxim 2016 p 78 o planejamento de projeto de software envolve a estimativa de esforço custo e cronograma bem como o gerenciamento de riscos Embora nosso escopo seja reduzido a aplicação desses princípios é fundamental O ponto de partida é a clara compreensão do problema a ser resolvido e dos objetivos do projeto Para o nosso Catálogo Simples de Livros Séries ou Filmes os requisitos funcionais mandatórios já foram estabelecidos Interface web para navegação e gerenciamento Cadastro de novos itens livros séries filmes Listagem de todos os itens catalogados Visualização dos detalhes de um item específico Edição das informações de um item Exclusão de um item do catálogo Busca simples por título ou autordiretor Persistência dos dados em banco de dados Nesta fase você deve refinar o escopo o que inclui confirmar o entendimento de cada funcionalidade Deve decidir se o catálogo será focado em apenas um tipo de mídia livros ou se permitirá múltiplos livros e filmes por exemplo Para simplificação inicial focar em uma única entidade como ItemDeMidia com um campo tipo livro filme série pode ser uma abordagem útil É necessário levantar requisitos não funcionais básicos Para tanto considere aspectos como usabilidade por exemplo uma interface simples e intuitiva e desempenho que pode ser relacionado a respostas rápidas para cadastro e busca dentro do razoável para um projeto acadêmico É importante para seu controle criar um cronograma de entregas parciais Como foi sugerido o método ágil acredito que você deva organizar as sprints ou iterações e as entregas esperadas Portanto divida o projeto em marcos menores como módulo de cadastro módulo de listagembusca módulo de ediçãoexclusão Isso facilita o acompanhamento e permite feedbacks iterativos ajudando você mesmo a perceber a evolução do que está desenvolvendo A modelagem visualiza a estrutura e o comportamento do sistema antes de sua implementação Fowler 2004 p 15 argumenta que a modelagem é crucial para compreender o sistema a ser desenvolvido e comunicar essa compreensão entre os membros da equipe Você utilizará para tanto Diagrama de Casos de Uso da UML para identificar os atores e as principais interações que eles terão com o sistema Diagrama de Classes da UML para representar a estrutura estática do sistema A classe principal será por exemplo ItemMidia com atributos como id inteiro chave primária titulo String autorDiretor String anoLancamento inteiro genero String sinopse String tipoMidia String Métodos associados a essa classe podem incluir getters e setters para seus atributos Poderá haver também classes de serviço e classes DAO Glossário UML sigla para Unified Modeling Language Linguagem de Modelagem Unificada Linguagem gráfica para especificar visualizar construir e documentar artefatos de sistemas de software Modelagem do Banco de Dados pode para isso utilizar o Diagrama Entidade Relacionamento DER que definirá a estrutura das tabelas no banco de dados Para nosso projeto por exemplo uma tabela itemmidia com colunas correspondentes aos atributos da classe ItemMidia será suficiente A seguir disponibilizamos um exemplo dessa modelagem Introdução aos Fundamentos de Segurança da Informação Mesmo em projetos simples a segurança da informação não pode ser negligenciada A ISOIEC 270012013 define que a segurança da informação visa proteger os ativos de informação contra uma ampla gama de ameaças Para nosso projeto do catálogo os principais ativos são os dados dos itens catalogados Os pilares da segurança confidencialidade integridade e disponibilidade devem ser considerados Por exemplo a confidencialidade em nosso projeto não há dados sensíveis de usuários Porém se houvesse um sistema de login a proteção das credenciais seria crucial A integridade por sua vez serve para garantir que os dados do catálogo título autor etc sejam precisos e não sejam modificados indevidamente Isso se relaciona com a validação de Tabela itemmidia id INT PRIMARY KEY AUTOINCREMENT ou SERIAL titulo VARCHAR255 NOT NULL autordiretor VARCHAR255 anolancamento INT genero VARCHAR100 sinopse TEXT tipomidia VARCHAR50 NOT NULL ex Livro Filme Série entradas Por fim o sistema deve estar acessível para consulta e gerenciamento quando necessário Você Sabia No contexto do desenvolvimento McGraw 2006 p 18 advoga pelo Secure by Design ou seja pensar em segurança desde o início As ameaças mais comuns em aplicações web simples que devemos ter em mente para o catálogo incluem SQL Injection manipulação de entradas para executar comandos SQL maliciosos no banco de dados CrossSite Scripting XSS injeção de scripts maliciosos em páginas web visualizadas por outros usuários menos crítico em nosso projeto se não houver exibição de dados inseridos por um usuário para outro sem tratamento mas importante para a sua conscientização Você deverá ter em mente a mitigação dessas ameaças durante o desenvolvimento Com o planejamento e a modelagem concluídos iniciase o ciclo de desenvolvimento Adotaremos uma abordagem iterativa construindo e testando o sistema em partes de tal forma que cada funcionalidade o CRUD e a busca serão implementados com a utilização de Java será utilizado para a lógica de negócios aplicando classes de modelo como ItemMidia classes de serviço se necessário e classes DAO sigla para Data Access Object que encapsularão o acesso ao banco de dados Servlets atuarão como controladores recebendo requisições HTTP das páginas JSP processandoas invocando a lógica de negócios e os DAOs e encaminhando a resposta de volta para uma JSP JSP sigla para JavaServer Pages serão responsáveis pela camada de apresentação View exibindo os formulários de cadastroedição e as listagens de itens Utilizarão Expression Language EL e a JavaServer Pages Standard Tag Library JSTL para simplificar a exibição de dados e a lógica na view Java Database Connectivity JDBC será usado para conectar a aplicação Java ao banco de dados relacional como MySQL PostgreSQL etc e executar as instruções SQL de inserção seleção atualização e exclusão dos itens do catálogo Glossário HTPP sigla para Hypertext Transfer Protocol Protocolo de comunicação usado para a transferência de informações na World Wide Web Você Sabia Para facilitar seu entendimento construímos um exemplo de fluxo para Cadastrar Item JSP cadastroItemjsp exibe um formulário HTML Usuário preenche e submete o formulário Servlet CadastrarItemServlet recebe os dados do formulário via requestgetParameter Servlet valida os dados recebidos Servlet cria um objeto ItemMidia com os dados Servlet invoca um método em ItemMidiaDAO por exemplo inserirItemMidia item para persistir o objeto no banco ItemMidiaDAO utiliza JDBC PreparedStatement para executar o INSERT SQL Servlet redireciona para uma página de sucesso ou para a listagem de itens Durante a implementação aplicaremos práticas básicas de segurança como Prevenção de SQL Injection utilizar PreparedStatement Essa é a principal defesa contra ataques de SQL Injection em aplicações Java que usam JDBC As PreparedStatements précompilam as instruções SQL e tratam os parâmetros de entrada como dados e não como parte executável do comando SQL Vejamos um exemplo de código em ItemMidiaDAO Lembrando que se trata de apenas um exemplo ele não rodará se você copiar e colar por isso é importante entender a lógica do que estamos escrevendo por aqui Antes de processar qualquer dado vindo do cliente é preciso fazer a seguinte validar Verificar se campos obrigatórios não estão vazios Verificar tipos de dados por exemplo se anoLancamento deve ser um número Verificar comprimentos máximos para evitar estouro de buffer no banco embora você possa codar isso no SGBD como restrição Outra dica importante ao exibir dados no JSP que foram inseridos pelo usuário como título e sinopse você deverá garantir que sejam devidamente escapados para que qualquer HTMLJavaScript inserido seja tratado como texto literal e não executado A JSTL com a tag cout valueitemtitulo faz isso por padrão Se não usar JSTL para saída é preciso ter atenção Temos que testar sempre Myers Sandler e Badgett 2012 p 4 enfatizam que o teste de software é um processo de execução de um programa com o intuito de encontrar erros À String sql INSERT INTO itemmidia titulo autordiretor anolancamento genero sinopse tipomidia VALUES try Connection conn FabricaDeConexoesgetConexao Método para obter conexão PreparedStatement stmt connprepareStatementsql stmtsetString1 itemgetTitulo stmtsetString2 itemgetAutorDiretor setar outros parâmetros stmtexecuteUpdate catch SQLException e Tratar exceção medida que cada módulo ou funcionalidade é desenvolvida testes devem ser realizados Você poderá utilizar o JUNIT para isso Testes Unitários ou Conceituais idealmente cada método crítico especialmente nos DAOs e classes de serviço deveria ser testado isoladamente Para um projeto inicial podese focar em testes manuais mais rigorosos de cada funcionalidade Testes de Integração ou Funcional você deverá testar o fluxo completo desde a submissão de um formulário no JSP até a verificação dos dados no banco e sua correta exibição Por exemplo cadastrar um livro e verificar se ele aparece corretamente na listagem e se a busca por seu título o encontra Não esqueçamos a documentação porque ela não é uma reflexão tardia mas sim um componente integral do desenvolvimento Ela facilita a compreensão manutenção e evolução do software A apresentação final é a oportunidade de demonstrar o trabalho realizado por você e as competências adquiridas Portanto aproveitamos para te informar que a documentação do nosso projeto para o Catálogo Simples de Livros Séries ou Filmes deverá incluir um Relatório Técnico do Projeto com os seguintes conteúdos Introdução apresentação do projeto objetivos e justificativa mesmo que seja acadêmica Metodologia breve descrição da abordagem de desenvolvimento que no nosso caso será a iterativa e das tecnologias utilizadas lembrando que em nosso projeto teremos Java Servlets JSP JDBC e o SGBD escolhido por você Modelagem do sistema incluir os diagramas de casos de uso diagrama de classes principal e o esquema do banco de dados nesse caso os DER e o script SQL de criação da tabela ou das tabelas Desenvolvimento e implementação descrever a arquitetura geral da aplicação que você criará por exemplo Servlets JSPs e DAOs e detalhar a implementação de uma ou duas funcionalidadeschave por exemplo Cadastro e Busca mostrando trechos de código relevantes como os Servlets JSPs e DAOs e a explicando da lógica Resultados apresentar as telas ou seja produzir alguns screenshots da aplicação funcional demonstrando as funcionalidades implementadas Considerações sobre segurança descrever as medidas de segurança que foram implementadas Conclusões dificuldades encontradas aprendizados e possíveis trabalhos futuros Referências listar todas as fontes consultadas para o trabalho livros artigos documentações online e cursos ou vídeos Documentação do códigofonte Comentários claros e concisos no código Java explicando a lógica de blocos complexos o propósito de classes e métodos O uso de Javadoc para os métodos públicos das classes DAO e Servlets é uma boa prática Manual do usuário simplificado Um pequeno guia contendo uma ou duas páginas explicando como instalar se houver passos específicos além de deploy no servidor e como utilizar as funcionalidades básicas do catálogo Ao final você deverá entregar tudo isso nas seguintes modalidades Documentação em arquivo de programa da linguagemfonte Documentação e relatório técnico em arquivo no formato PDF submetido aoà tutora para avaliação Glossário SGBD sigla para Sistema Gerenciador de Banco de Dados Software que permite criar gerenciar e manipular bancos de dados ex MySQL PostgreSQL Javadoc ferramenta para gerar documentação HTML a partir de comentários especiais no código Java Em Síntese A disciplina de Aprendizagem Baseada em Projetos ABP é uma estratégia pedagógica que coloca oa alunoa no centro do processo incentivando a aquisição de conhecimento e habilidades por meio da investigação ativa e resolução de problemas do mundo real OA professora atua como facilitadora enquanto a abordagem enfatiza a autonomia a colaboração e a reflexão No contexto da Ciência da Computação a ABP é particularmente vantajosa promovendo o desenvolvimento de habilidades técnicas aplicadas competências socioemocionais soft skills aumento da motivação e engajamento além de uma aprendizagem profunda e significativa que prepara oa estudante para os desafios do mercado de trabalho Nesse modelo oa alunoa assume um papel ativo investigativo colaborativo autônomo e reflexivo A disciplina de PIT Projeto Integrador Transdisciplinar em Ciência da Computação baseiase integralmente na ABP tendo como objetivo a integração de competências e o desenvolvimento de soluções computacionais aplicáveis a problemas reais O projeto principal é a criação de um Catálogo Simples de Livros ou Filmes utilizando Java e Programação Orientada a Objetos POO As funcionalidades incluem CRUD Cadastro Listagem Visualização Edição Exclusão além de uma busca simples com persistência de dados em banco O desenvolvimento do projeto segue as fases concepção e planejamento desenvolvimento iterativo testes e refinamento e documentação e preparação para apresentação A segurança da informação como a prevenção de SQL Injection é abordada desde o início do projeto A disciplina também reforça os fundamentos de Java sintaxe POO coleções e tratamento de exceções e a importância das habilidades do século XXI pensamento crítico criatividade colaboração e comunicação Indicações para saber mais sobre os assuntos abordados nesta Unidade Sites SPRINGIO Spring Boot Documentation A documentação oficial do Spring Boot é a fonte mais completa e atualizada para aprender a desenvolver aplicações web com este popular framework Java Oferece guias tutoriais passo a passo Getting Started Guides e referências detalhadas Embora em inglês é um recurso indispensável Muitos tutoriais cobrem desde a configuração inicial até a criação de APIs RESTful Clique no botão para conferir o conteúdo Página 2 de 7 Material Complementar ACESSE Baeldung É uma excelente fonte de tutoriais e exemplos práticos sobre Spring Boot frequentemente citado e recomendado pela comunidade de desenvolvedores Java Clique no botão para conferir o conteúdo ACESSE DevSuperior Canal no YouTube que possui tutoriais completos e práticos sobre Git e GitHub para iniciantes além de JAVA Clique no botão para conferir o conteúdo ACESSE Vídeo GitHub Como Usar Tutorial para Iniciantes Guia Completo e Atualizado Nesse vídeo você vai aprender do absoluto zero a trabalhar com o Git e GitHub Clique no botão para conferir o vídeo indicado ASSISTA Caroa estudante Agora vamos compreender o cenário que será abordado na primeira situaçãoproblema de caso da disciplina Atentese à situação profissional que você precisará entender para poder realizar a atividade Modelagem e Segurança Um aluno está desenvolvendo o Catálogo Simples de LivrosFilmes e decide criar uma única tabela no banco de dados chamada itens com colunas como id titulo autor ano genero e detalhes Para permitir buscas mais flexíveis o aluno concatena os campos titulo e autor em uma única string para a busca Ao implementar a funcionalidade de busca ele percebe que está vulnerável a SQL Injection Quais são os riscos de segurança ao concatenar campos diretamente em consultas SQL Como o uso de PreparedStatement pode mitigar essa vulnerabilidade Demonstre com um exemplo de código Página 3 de 7 SituaçãoProblema 1 Como a modelagem do banco de dados pode influenciar na segurança e eficiência da aplicação CONTINUE Concatenar campos diretamente em consultas SQL permite que um atacante insira código SQL malicioso através das entradas do usuário comprometendo a integridade e confidencialidade dos dados PreparedStatement impede a interpretação das entradas do usuário como código SQL tratandoas como dados Exemplo Uma modelagem inadequada pode levar a vulnerabilidades e ineficiências A normalização do banco de dados e a escolha correta dos tipos de dados podem melhorar a segurança e o desempenho String sql SELECT FROM itens WHERE titulo LIKE OR autor LIKE PreparedStatement stmt connprepareStatementsql stmtsetString1 termoDeBusca stmtsetString2 termoDeBusca ResultSet rs stmtexecuteQuery P I N T R E S T A CLOSELY CONNECTED VISUAL BOOKMARKING TOOL Earn user trust by offering an adfree experience that respects privacy Pinterest shares its innovation openly but it guards against abuse by using a secret algorithm Spam prevention is a delicate balance between access control and trust control The Care and Feeding of Our Users Were very proud of the strong sense of community among people who use Pinterest and we want to preserve it while growing beyond 70 million monthly users In fact we rely on the discovery abilities collaboration and enthusiasm of our users themselves to keep Pinterest a trusted safe and exciting space We do watch carefully for a few forms of misbehavior that put our community at risk spam hoaxes and hate Because people on Pinterest are famous for sharing ideas in a takingturns kind of way were able to detect disruptive behavior more easily than sites where people broadcast messages without much filtering or curation For example a few Pinterest users have tried to take advantage of their large follower bases by repinning a lot of spammy links instead of good ideas We also see people posting fraudulent offers misleading information about products or business practices and plenty of stale content that misleads We tackle spam in multiple ways keyword analysis site reputation checks sender reputation checks and user behavior analysis eg flagging users who pin a large proportion of their Pins from shady websites In cases of suspected abuse we go to manual review Maintaining the Trust Our amazing moderation program is part art part science We want everyone to enjoy using Pinterest on a large scale so we employ people and products at Pinterest to keep a close eye on the network Weve found that abusesuppression systems work best when a real person is involved obviously more efficient than overreliance on automation Our spammers are smart and tenacious and they keep trying new schemes We want to nip those in the bud before they gain too much traction but were always balancing the tension between limiting abuse and limiting false positives To keep the network clean Pinterest Cons content and pins against spammy sites and pin descriptions Uses computer vision to internally rate images and sources Able to roll back the posting Be selective about bandwidth for highvolume users since they have the most influence Loads content via thousands of separate servers rather than one or two large machines Frequent tuning of the algorithms and learning from user feedback Identifies and disables accounts that abuse the system and violate our policies Encourages users to flag inappropriate content via community flags As we grow and scale Pinterest is dedicated to using new technologies and human moderation to innovate on what is generally called the trust and safety space Our policies platform and monitoring are coordinated across teams in a way that is flexible enough to respond even in unusual or extreme cases For example when something really worrying appears suddenly on the platform a hoax a hate campaign a defamation our internal teams communicate and react immediately using real reports from real community members and not just bots The Future of Trust and Safety at Pinterest In the next year we will expand our spamprotection measures improve the detection of hate and inappropriate content and continue to build better contentwarning and contentfiltering tools Pinterest will keep pace with the growth of our user base and the challenge of balancing openness with safety No one system can fully protect people on the Internet but Pinterests widely trusted and userfriendly platform is designed to provide one reliably safe place for discovery We always invite our users to get involved by reporting issues and giving feedback about areas they want us to improve We value the mutual trust between Pinterest and its passionate community above all else we appreciate it and we intend to preserve it Pinterest Trust Safety Team For more info visit pinterestcomtrust Caroa estudante Agora vamos compreender o cenário que será abordado na segunda situaçãoproblema de caso da disciplina Atentese à situação profissional que você precisará entender para poder realizar a atividade Tratamento de Exceções e Validação de Dados Durante o desenvolvimento da funcionalidade de cadastro de livros o aluno não implementa tratamento de exceções ao tentar inserir um novo livro no banco de dados Além disso não há validação dos dados inseridos pelo usuário eg o campo ano pode receber strings Quando um usuário tenta cadastrar um livro com um ano inválido a aplicação quebra exibindo uma mensagem de erro genérica Por que é importante tratar exceções em aplicações Java Página 4 de 7 SituaçãoProblema 2 Como os blocos trycatchfinally podem ser utilizados para tratar a exceção de inserção de dados inválidos Quais tipos de validações de dados devem ser implementadas no formulário de cadastro e como elas podem prevenir erros CONTINUE O tratamento de exceções garante que a aplicação não termine abruptamente em caso de erros proporcionando uma melhor experiência ao usuário e permitindo o registro de informações de depuração O bloco try envolve o código que pode lançar uma exceção eg a inserção no banco de dados O bloco catch captura a exceção e permite o tratamento adequado eg exibir uma mensagem de erro amigável O bloco finally garante que recursos sejam liberados eg fechar conexões com o banco de dados independentemente de ocorrer ou não uma exceção Validações como verificar se campos obrigatórios estão preenchidos validar o tipo de dados eg ano deve ser um número e verificar comprimentos máximos previnem erros e vulnerabilidades Caroa estudante Agora vamos compreender o cenário que será abordado na terceira situaçãoproblema da disciplina Atentese à situação profissional que você precisará entender para poder realizar a atividade Refatoração e Orientação a Objetos O aluno implementa todas as funcionalidades do Catálogo Simples CRUD e busca diretamente na Servlet resultando em um código extenso e difícil de manter Há duplicação de código em várias partes da aplicação especialmente no acesso ao banco de dados Como a aplicação dos Princípios de Orientação a Objetos POO pode melhorar a estrutura e a manutenibilidade do código Qual o papel das classes DAO Data Access Object na separação de responsabilidades e como elas podem reduzir a duplicação de código Como a refatoração do código para utilizar classes de serviço pode melhorar a organização e testabilidade da aplicação Página 5 de 7 SituaçãoProblema 3 CONTINUE POO promove a modularidade reutilização e manutenibilidade do código Encapsulamento herança e polimorfismo permitem criar um código mais organizado e fácil de entender DAOs encapsulam a lógica de acesso a dados isolandoa do restante da aplicação Isso facilita a manutenção e permite que a camada de persistência seja alterada sem afetar outras partes do sistema Classes de serviço implementam a lógica de negócios da aplicação separandoa da Servlet e das DAOs Isso torna o código mais organizado testável e fácil de manter Muito bem estudante Agora que você já leu todas as situaçõesproblema você pode acessar o Ambiente Virtual de Aprendizagem para realizar a atividade de entrega Página 6 de 7 Atividade de Entrega BENDER W N Aprendizagem baseada em projetos educação diferenciada para o século XXI 1 ed Porto Alegre Penso 2014 BLUMENFELD P C et al Motivating projectbased learning Sustaining the doing supporting the learning Educational Psychologist sl v 26 n 34 p 369398 1991 Disponível em httpsdoiorg1010800046152019919653139 Acesso em 05042025 BOOCH G RUMBAUGH J JACOBSON I UML guia do usuário 2 ed Rio de Janeiro Elsevier 2007 DEITEL P DEITEL H Java como programar 10 ed São Paulo Pearson Universidades 2017 FOWLER M UML distilled a brief guide to the standard object modeling language 3rd ed Boston AddisonWesley Professional 2004 INTERNATIONAL ORGANIZATION FOR STANDARDIZATION ISOIEC 270012013 Information technology Security techniques Information security management systems Requirements 1st ed Geneva ISO 2013 KNUTH D E Computer programming as an art Communications of the ACM v 17 n 12 p 667673 Dec 1974 Disponível em httpsdoiorg10114536160436161 Acesso em 05042025 Página 7 de 7 Referências LARMER J MERGENDOLLER J BOSS S Setting the standard for projectbased learning a proven approach to rigorous classroom instruction 1st ed Alexandria ASCD 2015 MCGRAW G Software security building security in 1st ed Upper Saddle River Addison Wesley 2006 MYERS G J SANDLER C BADGETT T The art of software testing 3rd ed Hoboken John Wiley Sons 2012 OLIVEIRA K Aprendizagem Baseada em Projetos como estratégia para o desenvolvimento de atividades não presenciais no ensino médio integrado em informática no IFB Campus Brasília Revista Brasileira da Educação Profissional e Tecnológica v 2 n 22 e11815 2022 CC BY 40 ISSN 24471801 DOI httpsdoiorg1015628rbept202211815 Acesso em 05042025 PRESSMAN R S MAXIM B R Engenharia de software uma abordagem profissional 8 ed Porto Alegre AMGH 2016 THOMAS J W A review of research on projectbased learning 1st ed San Rafael Autodesk Foundation 2000 Disponível em httpwwwbobpearlmanorgBestPracticesPBLResearchpdf Acesso em 25052025 TRILLING B FADEL C 21st century skills learning for life in our times 1st ed San Francisco JosseyBass 2009 Muito bem estudante Você concluiu o material de estudos Agora volte ao Ambiente Virtual de Aprendizagem para realizar a Atividade

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Certificados de Eventos - Lista para Usuários

1

Certificados de Eventos - Lista para Usuários

Linguagens de Programação

UNIANDRADE

Eventos Participados - Acesso aos seus eventos futuros e certificados

1

Eventos Participados - Acesso aos seus eventos futuros e certificados

Linguagens de Programação

UNIANDRADE

Lista de Eventos Participados e Acesso aos Certificados

1

Lista de Eventos Participados e Acesso aos Certificados

Linguagens de Programação

UNIANDRADE

Notificação Importante

1

Notificação Importante

Linguagens de Programação

UNIANDRADE

Feedback Evento - Descricao e Avaliacao

1

Feedback Evento - Descricao e Avaliacao

Linguagens de Programação

UNIANDRADE

Lista de Eventos Participados - Acesso e Feedback

1

Lista de Eventos Participados - Acesso e Feedback

Linguagens de Programação

UNIANDRADE

Eventos Participados - Notificacoes e Acesso a Certificados

1

Eventos Participados - Notificacoes e Acesso a Certificados

Linguagens de Programação

UNIANDRADE

Sistema de Gerenciamento de Eventos e Workshops - Especificacao de Funcionalidades e Design

2

Sistema de Gerenciamento de Eventos e Workshops - Especificacao de Funcionalidades e Design

Linguagens de Programação

UNIANDRADE

Ceder Feedback: Importância e Estratégias Eficazes

1

Ceder Feedback: Importância e Estratégias Eficazes

Linguagens de Programação

UNIANDRADE

Lifting the Stone- Business Case for Responsible Mineral Sourcing in Asia

1

Lifting the Stone- Business Case for Responsible Mineral Sourcing in Asia

Linguagens de Programação

UNIANDRADE

Texto de pré-visualização

Conteudista Prof Dr Artur Marques Revisão Textual Mª Bruna Giovana Bengozi Objetivo da Unidade Integrar as competências adquiridas e desenvolver soluções computacionais aplicáveis a problemas reais DESAFIO ATIVIDADE Material Teórico Material Complementar SituaçãoProblema 1 SituaçãoProblema 2 SituaçãoProblema 3 Projetos Computacionais da Teoria à Prática REFERÊNCIAS Atividade de Entrega Referências Olá estudante Vamos iniciar a disciplina abordando os conceitos necessários para que você possa realizar a atividade através das situaçõesproblema mais à frente Aprendizagem Baseada em Projetos ABP Página 1 de 7 Material Teórico Atenção estudante Aqui reforçamos o acesso ao conteúdo online para que você assista à videoaula Será muito importante para o entendimento do conteúdo A Aprendizagem Baseada em Projetos ABP vai além da simples concepção de um mero método de ensino para se configurar como uma abrangente estratégia pedagógica Seu ponto focal reside na ideia de que osas estudantes adquirem conhecimentos e habilidades de forma mais significativa e duradoura quando engajados ativamente na investigação e resolução de problemas culminando na criação de um produto apresentação ou performance tangível Conforme elucidam Larmer Mergendoller e Boss 2015 p 6 a ABP é um método de ensino no qual os alunos aprendem através do engajamento ativo em projetos do mundo real e pessoalmente significativos Essa abordagem pedagógica coloca o discente no centro do processo de aprendizagem promovendo autonomia responsabilidade e colaboração Diferentemente de modelos tradicionais nos quais oa professora é oa detentora primárioa do conhecimento e o transmite de forma expositiva na ABP oa docente assume o papel de facilitadora orientadora e mediadora do processo de descoberta e de construção do saber peloa alunoa A eficácia da ABP sustentase em alguns princípios e características cruciais que a distinguem como o foco em questões ou problemas desafiadores ou seja os projetos em ABP geralmente partem de uma questão norteadora ou de um problema complexo que não possui uma solução única ou simples Essa questão deve ser instigante e relevante para osas estudantes incentivando a investigação aprofundada Thomas 2000 Além disso é possível citar a investigação sustentada na qual osas alunos se engajam em um processo rigoroso e estendido de investigação buscando informações aplicando conceitos e desenvolvendo soluções ao longo de um período significativo Isso envolve pesquisa análise crítica e síntese de informações de diversas fontes Outros pontos relevantes levam em consideração a autenticidade fortemente contextualizados no mundo real abordando problemas relevantes para osas discentes suas comunidades ou o campo profissional Essa autenticidade aumenta o engajamento e a percepção da relevância do aprendizado Blumenfeld et al 1991 Além disso não devemos ignorar o espaço para o protagonismo doa alunoa que pode fazer escolhas significativas sobre o projeto seja no tema nos métodos de investigação nos produtos a serem desenvolvidos ou na forma de apresentação É fundamental que ao longo do projeto osas estudantes sejam incentivadosa a refletirem sobre o que e como estão aprendendo bem como sobre o próprio processo de trabalho A reflexão assim ajuda a consolidar o conhecimento e a desenvolver habilidades metacognitivas No contexto da Ciência da Computação essa metodologia se revela particularmente vantajosa A natureza intrinsecamente prática e orientada à resolução de problemas dessa área do conhecimento encontra na ABP um alinhamento natural Algumas vantagens se destacam Desenvolvimento de habilidades técnicas aplicadas Fomento de soft skills Aumento da motivação e engajamento Aprendizagem profunda e significativa Preparação para o mercado de trabalho Mas não podemos perder a perspectiva do papel doa alunoa que deixa de ser uma receptora passivoa de informações para se tornar oa protagonista de seu aprendizado Portanto esperamos de sua parte uma postura Ativa e investigativa Colaborativa Autônoma e responsável Reflexiva Cabe um comentário sobre o termo colaborativa embora o trabalho deva ser uma entrega individual nada impede que osas alunosas conversem entre si e compartilhem experiências Essa troca ajuda a elevar significativamente a qualidade de todos os trabalhos produzidos Reflita A nossa disciplina PIT em Ciência da Computação foi concebida como um espaço para a articulação entre teoria e prática Seu principal objetivo como delineado no plano de ensino é integrar as competências adquiridas e desenvolver soluções computacionais aplicáveis a problemas reais Para alcançar tal objetivo fundamentamonos integralmente na metodologia ABP Nossas atividades serão majoritariamente práticas intercaladas com momentos de exposição teórica para embasar os conceitos essenciais já abordados em nosso material teórico O cerne desta disciplina é o desenvolvimento de um projeto computacional simples e factível compatível com o estágio inicial da sua formação em Ciência da Computação O tema específico do projeto foi pensado para ser ao mesmo tempo útil e interessante com potencial de uso pessoal ou por outras pessoas Ainda assim o principal objetivo do projeto é promover a aplicação dos seguintes conhecimentos Linguagem de programação Java Paradigma de programação orientação a objetos O sistema que será desenvolvido será explicado no tópico a seguir Catálogo Simples de Livros ou Filmes Descrição Uma aplicação web que permita aoà usuárioa catalogar e consultar informações sobre livros séries ou filmes Cada item deve conter atributos mínimos como título autordiretor ano de publicaçãolançamento gênero e uma breve sinopse Funcionalidades mandatórias essenciais Funcionalidades mandatórias essenciais Interface web para navegação e gerenciamento Cadastro de novos livrosfilmes Listagem de todos os itens catalogados Visualização dos detalhes de um item específico Opção de editar as informações de um item Opção de excluir um item do catálogo Busca simples por título ou autordiretor Persistência dos dados em banco de dados Principais aprendizados envolvidos Modelagem da entidade Livro ou Filme Implementação de CRUD Create Read Update Delete Desenvolvimento de JSPs para exibição de lista detalhes e formulários Implementação de uma funcionalidade de busca básica usando SQL Sua complexidade de desenvolvimento é muito baixa e envolve uma entidade principal com atributos claros A funcionalidade de busca simples adiciona um pequeno desafio interessante voltada para o SQL Possíveis extensões caso haja tempo e interesse da sua parte não é obrigatório essa etapa dependerá unicamente do seu desejo de se superar e ir além do esperado Adicionar um sistema de avaliação use estrelas ou emoji que desejar Permitir o upload de uma imagem de capa requer cuidado com o manuseio de arquivos se for muito complexo para você pode ser simplificado para um simples link externo com a imagem Filtragem por gênero romance drama comédia ficção ação aventura documentário etc Uma dica importante é fundamental que o escopo do projeto seja gerenciável dentro do cronograma semestral A ideia não é construir um sistema comercial complexo mas sim vivenciar o ciclo de desenvolvimento de um software em menor escala aplicando os conceitos aprendidos Os componentes de projeto que você seguirá para a construção deverá contemplar e documentar as seguintes fases Fase de concepção e planejamento definição detalhada do escopo levantamento de requisitos modelagem inicial do sistema casos de uso diagramas de classes simplificados modelo de dados e planejamento das entregas Fase de desenvolvimento iterativo implementação dos módulos do sistema Fase de testes e refinamento testes unitários e de integração bem como correção de falhas Fase de documentação e preparação para apresentação elaboração do relatório técnico e dos materiais para a apresentação final documentada do projeto Vale reforçar que o projeto será desenvolvido individualmente Este projeto integrador não é apenas um trabalho a ser entregue mas uma jornada de aprendizado Encareo como uma oportunidade para aplicar seus conhecimentos desenvolver novas habilidades enfrentar desafios e acima de tudo aprender fazendo Assim você se preparará para o mercado supercompetitivo que estamos vivenciando hoje Isso é muito importante pois vivemos em um século que impôs uma reconfiguração nas demandas da sociedade e consequentemente nas competências requeridas dosas profissionais em todas as áreas com especial ênfase nos campos tecnológicos como a Ciência da Computação Já não basta dominar apenas o conhecimento técnico específico é imperativo desenvolver um conjunto de habilidades transversais frequentemente denominadas competências essenciais que são cruciais para a adaptação inovação e resolução de problemas em um mundo cada vez mais complexo interconectado e dinâmico Trilling e Fadel 2009 p 47 argumentam que para ter sucesso na vida e no trabalho do século XXI os cidadãos e trabalhadores devem ser proficientes em habilidades do século XXI como pensamento crítico resolução de problemas comunicação e colaboração A Partnership for 21st Century Skills a P21 uma organização influente na disseminação dessas ideias categoriza essas habilidades em diversos eixos sendo os 4 Cs Pensamento Crítico Critical Thinking Criatividade Creativity Colaboração Collaboration e Comunicação Communication amplamente reconhecidos como pilares centrais Fundamentos de Programação em Java Neste item iremos retomar os pilares da linguagem de programação Java essencial para o desenvolvimento do projeto integrador desta disciplina O domínio desses fundamentos é condição mandatória para a construção de aplicações robustas e eficientes Vamos relembrar desde a configuração do ambiente até os conceitos avançados de orientação a objetos e tratamento de exceções fornecendo uma base sólida para as etapas subsequentes de desenvolvimento A linguagem Java foi concebida pela Sun Microsystems no início da década de 1990 e atualmente é mantida pela Oracle consolidandose como uma das mais proeminentes e versáteis no panorama da Ciência da Computação Sua popularidade deriva de características como a portabilidade viabilizada pela Máquina Virtual Java ou JVM que permite a execução de código Java compilado conhecido como bytecode em diversas plataformas sem a necessidade de recompilação É intrinsecamente orientada a objetos robusta e possui um vasto ecossistema de bibliotecas e frameworks Conforme Deitel e Deitel 2017 p 2 Java é uma linguagem de programação orientada a objetos poderosa e amplamente utilizada no desenvolvimento de aplicações corporativas e mobile Para iniciar o desenvolvimento em Java é imprescindível a instalação do Java Development Kit JDK a JVM e outras ferramentas essenciais O ambiente de desenvolvimento integrado IDE como Eclipse IntelliJ IDEA ou Apache NetBeans facilita sobremaneira o processo de codificação depuração e gerenciamento de projetos Recomendamos fortemente que faça os downloads e instale em seu equipamento Aqui oferecemos a você alguns recursos por meio dos links estáveis da web para que se aprofunde aprenda ou recicle o seu conhecimento a fim de que o desenvolvimento do sistema proposto saia sem muitas intercorrências Leitura Sites Importantes para Utilização da Linguagem Java Oracle Java Tutorials Getting Started Clique no botão para conferir o conteúdo ACESSE Instalação do JDK e Configuração do Ambiente W3Schools Clique no botão para conferir o conteúdo ACESSE A sintaxe de Java possui similaridades com CC O entendimento de seus elementos básicos é o primeiro passo para a escrita de programas funcionais Java possui tipos de dados primitivos para representar valores numéricos inteiros como int byte short long e de ponto flutuante como float double caracteres char e booleanos boolean Variáveis são declaradas com um tipo e um nome bem como podem ser inicializadas A linguagem oferece operadores aritméticos relacionais lógicos e de atribuição etc Além disso permite o controle do fluxo de execução com base em condições As principais são if ifelse ifelseif e switch Possui também instruções para executar blocos de código múltiplas vezes Incluem instruções for que são ideais para iterações com contagem definida while que executa enquanto uma condição for verdadeira e dowhile que executa ao menos uma vez e depois verifica a condição Leitura Instruções Importantes Java Basic Syntax TutorialsPoint Clique no botão para conferir o conteúdo ACESSE Java Control Flow Statements Oracle Docs Clique no botão para conferir o conteúdo ACESSE Programação Orientada a Objetos POO em Java A Programação Orientada a Objetos POO é um paradigma que organiza o software em torno de objetos que são instâncias de classes Isso promove a modularidade reutilização e manutenibilidade do código Segundo Booch et al 2007 p 41 a orientação a objetos é um método de modelagem de sistemas complexos como um conjunto de objetos que interagem entre si Classes e objetos uma classe é um molde ou projeto que define os atributos que para nós são os dados e métodos que descrevem os comportamentos que seus objetos terão Um objeto é uma instância concreta de uma classe Atributos e métodos atributos também chamados de campos ou variáveis de instância armazenam o estado de um objeto Os métodos por outro lado definem as ações que um objeto pode realizar Encapsulamento é um princípio da POO que consiste em agrupar dados especialmente os atributos e os métodos que os manipulam dentro de uma unidade que chamamos de classe Esse conceito ajuda a proteger os dados contra acesso externo indevido A visibilidade de atributos e métodos é controlada por modificadores de acesso public private protected e default Métodos especiais Construtores são métodos com o mesmo nome da classe responsáveis por inicializar os objetos no momento em que são criados Dentro desses métodos e de outros métodos da classe podese usar a palavrachave this que faz referência à instância atual do objeto permitindo acessar seus próprios métodos ou construtores Site Reciclagem do Conhecimento ObjectOriented Programming Concepts Oracle Docs Clique no botão para conferir o conteúdo ACESSE Leitura Java Classes and Objects W3Schools Clique no botão para conferir o conteúdo ACESSE Agora que você já reciclou a parte fundamental do Java iremos um pouco mais adiante com mecanismos que conferem maior flexibilidade e poder à modelagem de sistemas Um dos grandes conceitos na linguagem é a herança ela permite que uma classe subclasse ou classe derivada herde atributos e métodos de outra classe ou seja superclasse ou classe base Isso promove a reutilização de código e a criação de hierarquias de classes A palavra chave super é usada para acessar membros da superclasse Outra grande invenção no Java é o polimorfismo que como você já sabe significa muitas formas Ele permite que objetos de diferentes classes sejam tratados por meio de uma interface comum superclasse ou interface Em Java manifestase principalmente através da sobrescrita de métodos ou como é comumente conhecida overriding na qual uma subclasse fornece uma implementação específica para um método herdado Há também o conceito de sobrecarga de métodos chamado de overloading em que múltiplos métodos com o mesmo nome mas com assinaturas diferentes coexistem na mesma classe Temos ainda as classes abstratas que não podem ser instanciadas diretamente e podem conter métodos abstratos ou seja sem implementação Servem como modelos para subclasses que devem implementar os métodos abstratos Por outro lado as interfaces definem um contrato de métodos que uma classe pode implementar Uma classe pode implementar múltiplas interfaces permitindo uma forma de herança múltipla de tipos mas não de implementação As interfaces contêm apenas assinaturas de métodos e constantes Leitura Momento de Reciclagem de Conhecimento Inheritance Oracle Docs Clique no botão para conferir o conteúdo ACESSE Polymorphism Oracle Docs Clique no botão para conferir o conteúdo ACESSE Abstract Methods and Classes Oracle Docs Clique no botão para conferir o conteúdo ACESSE Interfaces Oracle Docs Clique no botão para conferir o conteúdo ACESSE Para armazenar e manipular grupos de objetos ou dados primitivos o Java oferece estruturas de dados como arrays e o Java Collections Framework Arrays são estruturas de tamanho fixo que armazenam elementos do mesmo tipo Podem ser unidimensionais ou multidimensionais O acesso aos elementos é feito por um índice numérico Por outro lado Java Collections Framework é um conjunto robusto de classes e interfaces como List Set e Map utilizados para representar e manipular coleções de objetos de forma mais flexível e eficiente que as arrays ou matrizes Leitura Arrays Oracle Docs Clique no botão para conferir o conteúdo ACESSE Java Collections Framework Overview Oracle Docs Clique no botão para conferir o conteúdo ACESSE Vamos lembrar o que são as exceções elas se referem a eventos anormais que ocorrem durante a execução de um programa e interrompem o fluxo normal de instruções O tratamento adequado de exceções é crucial para a construção de um software resiliente ou seja quando um erro ocorre por exemplo uma divisão por zero ou acesso a um arquivo inexistente uma exceção é lançada Chamamos esse evento de throw Para isso lidar com isso utilizamos os blocos trycatchfinally da seguinte forma Try envolve o bloco de código onde uma exceção pode ocorrer Catch captura e trata uma exceção específica que foi lançada no bloco try Pode haver múltiplos blocos catch para diferentes tipos de exceção Finally bloco de código que é sempre executado independentemente de uma exceção ter sido lançada ou capturada Utilizado para liberar recursos ex fechar arquivos ou conexões de banco de dados O tratamento de exceções permite que o programa lide com erros de forma elegante evitando que ele termine abruptamente e fornecendo feedback útil ao usuário ou registrando o erro para análise posterior Leitura Momento de Aprendizagem Lesson Exceptions Oracle Docs Clique no botão para conferir o conteúdo ACESSE Site Java Try Catch W3Schools Clique no botão para conferir o conteúdo ACESSE Projeto do Sistema e Segurança da Informação A ideia por trás desta seção é mostrar as fases mais importantes do ciclo de vida de um projeto de software desde a concepção e o planejamento detalhado passando pelo desenvolvimento iterativo com atenção aos aspectos de segurança até a documentação técnica e a preparação para a apresentação final da solução computacional desenvolvida Saiba que antes de qualquer linha de código ser escrita um planejamento cuidadoso e uma modelagem precisa do sistema são etapas imperativas Segundo Pressman e Maxim 2016 p 78 o planejamento de projeto de software envolve a estimativa de esforço custo e cronograma bem como o gerenciamento de riscos Embora nosso escopo seja reduzido a aplicação desses princípios é fundamental O ponto de partida é a clara compreensão do problema a ser resolvido e dos objetivos do projeto Para o nosso Catálogo Simples de Livros Séries ou Filmes os requisitos funcionais mandatórios já foram estabelecidos Interface web para navegação e gerenciamento Cadastro de novos itens livros séries filmes Listagem de todos os itens catalogados Visualização dos detalhes de um item específico Edição das informações de um item Exclusão de um item do catálogo Busca simples por título ou autordiretor Persistência dos dados em banco de dados Nesta fase você deve refinar o escopo o que inclui confirmar o entendimento de cada funcionalidade Deve decidir se o catálogo será focado em apenas um tipo de mídia livros ou se permitirá múltiplos livros e filmes por exemplo Para simplificação inicial focar em uma única entidade como ItemDeMidia com um campo tipo livro filme série pode ser uma abordagem útil É necessário levantar requisitos não funcionais básicos Para tanto considere aspectos como usabilidade por exemplo uma interface simples e intuitiva e desempenho que pode ser relacionado a respostas rápidas para cadastro e busca dentro do razoável para um projeto acadêmico É importante para seu controle criar um cronograma de entregas parciais Como foi sugerido o método ágil acredito que você deva organizar as sprints ou iterações e as entregas esperadas Portanto divida o projeto em marcos menores como módulo de cadastro módulo de listagembusca módulo de ediçãoexclusão Isso facilita o acompanhamento e permite feedbacks iterativos ajudando você mesmo a perceber a evolução do que está desenvolvendo A modelagem visualiza a estrutura e o comportamento do sistema antes de sua implementação Fowler 2004 p 15 argumenta que a modelagem é crucial para compreender o sistema a ser desenvolvido e comunicar essa compreensão entre os membros da equipe Você utilizará para tanto Diagrama de Casos de Uso da UML para identificar os atores e as principais interações que eles terão com o sistema Diagrama de Classes da UML para representar a estrutura estática do sistema A classe principal será por exemplo ItemMidia com atributos como id inteiro chave primária titulo String autorDiretor String anoLancamento inteiro genero String sinopse String tipoMidia String Métodos associados a essa classe podem incluir getters e setters para seus atributos Poderá haver também classes de serviço e classes DAO Glossário UML sigla para Unified Modeling Language Linguagem de Modelagem Unificada Linguagem gráfica para especificar visualizar construir e documentar artefatos de sistemas de software Modelagem do Banco de Dados pode para isso utilizar o Diagrama Entidade Relacionamento DER que definirá a estrutura das tabelas no banco de dados Para nosso projeto por exemplo uma tabela itemmidia com colunas correspondentes aos atributos da classe ItemMidia será suficiente A seguir disponibilizamos um exemplo dessa modelagem Introdução aos Fundamentos de Segurança da Informação Mesmo em projetos simples a segurança da informação não pode ser negligenciada A ISOIEC 270012013 define que a segurança da informação visa proteger os ativos de informação contra uma ampla gama de ameaças Para nosso projeto do catálogo os principais ativos são os dados dos itens catalogados Os pilares da segurança confidencialidade integridade e disponibilidade devem ser considerados Por exemplo a confidencialidade em nosso projeto não há dados sensíveis de usuários Porém se houvesse um sistema de login a proteção das credenciais seria crucial A integridade por sua vez serve para garantir que os dados do catálogo título autor etc sejam precisos e não sejam modificados indevidamente Isso se relaciona com a validação de Tabela itemmidia id INT PRIMARY KEY AUTOINCREMENT ou SERIAL titulo VARCHAR255 NOT NULL autordiretor VARCHAR255 anolancamento INT genero VARCHAR100 sinopse TEXT tipomidia VARCHAR50 NOT NULL ex Livro Filme Série entradas Por fim o sistema deve estar acessível para consulta e gerenciamento quando necessário Você Sabia No contexto do desenvolvimento McGraw 2006 p 18 advoga pelo Secure by Design ou seja pensar em segurança desde o início As ameaças mais comuns em aplicações web simples que devemos ter em mente para o catálogo incluem SQL Injection manipulação de entradas para executar comandos SQL maliciosos no banco de dados CrossSite Scripting XSS injeção de scripts maliciosos em páginas web visualizadas por outros usuários menos crítico em nosso projeto se não houver exibição de dados inseridos por um usuário para outro sem tratamento mas importante para a sua conscientização Você deverá ter em mente a mitigação dessas ameaças durante o desenvolvimento Com o planejamento e a modelagem concluídos iniciase o ciclo de desenvolvimento Adotaremos uma abordagem iterativa construindo e testando o sistema em partes de tal forma que cada funcionalidade o CRUD e a busca serão implementados com a utilização de Java será utilizado para a lógica de negócios aplicando classes de modelo como ItemMidia classes de serviço se necessário e classes DAO sigla para Data Access Object que encapsularão o acesso ao banco de dados Servlets atuarão como controladores recebendo requisições HTTP das páginas JSP processandoas invocando a lógica de negócios e os DAOs e encaminhando a resposta de volta para uma JSP JSP sigla para JavaServer Pages serão responsáveis pela camada de apresentação View exibindo os formulários de cadastroedição e as listagens de itens Utilizarão Expression Language EL e a JavaServer Pages Standard Tag Library JSTL para simplificar a exibição de dados e a lógica na view Java Database Connectivity JDBC será usado para conectar a aplicação Java ao banco de dados relacional como MySQL PostgreSQL etc e executar as instruções SQL de inserção seleção atualização e exclusão dos itens do catálogo Glossário HTPP sigla para Hypertext Transfer Protocol Protocolo de comunicação usado para a transferência de informações na World Wide Web Você Sabia Para facilitar seu entendimento construímos um exemplo de fluxo para Cadastrar Item JSP cadastroItemjsp exibe um formulário HTML Usuário preenche e submete o formulário Servlet CadastrarItemServlet recebe os dados do formulário via requestgetParameter Servlet valida os dados recebidos Servlet cria um objeto ItemMidia com os dados Servlet invoca um método em ItemMidiaDAO por exemplo inserirItemMidia item para persistir o objeto no banco ItemMidiaDAO utiliza JDBC PreparedStatement para executar o INSERT SQL Servlet redireciona para uma página de sucesso ou para a listagem de itens Durante a implementação aplicaremos práticas básicas de segurança como Prevenção de SQL Injection utilizar PreparedStatement Essa é a principal defesa contra ataques de SQL Injection em aplicações Java que usam JDBC As PreparedStatements précompilam as instruções SQL e tratam os parâmetros de entrada como dados e não como parte executável do comando SQL Vejamos um exemplo de código em ItemMidiaDAO Lembrando que se trata de apenas um exemplo ele não rodará se você copiar e colar por isso é importante entender a lógica do que estamos escrevendo por aqui Antes de processar qualquer dado vindo do cliente é preciso fazer a seguinte validar Verificar se campos obrigatórios não estão vazios Verificar tipos de dados por exemplo se anoLancamento deve ser um número Verificar comprimentos máximos para evitar estouro de buffer no banco embora você possa codar isso no SGBD como restrição Outra dica importante ao exibir dados no JSP que foram inseridos pelo usuário como título e sinopse você deverá garantir que sejam devidamente escapados para que qualquer HTMLJavaScript inserido seja tratado como texto literal e não executado A JSTL com a tag cout valueitemtitulo faz isso por padrão Se não usar JSTL para saída é preciso ter atenção Temos que testar sempre Myers Sandler e Badgett 2012 p 4 enfatizam que o teste de software é um processo de execução de um programa com o intuito de encontrar erros À String sql INSERT INTO itemmidia titulo autordiretor anolancamento genero sinopse tipomidia VALUES try Connection conn FabricaDeConexoesgetConexao Método para obter conexão PreparedStatement stmt connprepareStatementsql stmtsetString1 itemgetTitulo stmtsetString2 itemgetAutorDiretor setar outros parâmetros stmtexecuteUpdate catch SQLException e Tratar exceção medida que cada módulo ou funcionalidade é desenvolvida testes devem ser realizados Você poderá utilizar o JUNIT para isso Testes Unitários ou Conceituais idealmente cada método crítico especialmente nos DAOs e classes de serviço deveria ser testado isoladamente Para um projeto inicial podese focar em testes manuais mais rigorosos de cada funcionalidade Testes de Integração ou Funcional você deverá testar o fluxo completo desde a submissão de um formulário no JSP até a verificação dos dados no banco e sua correta exibição Por exemplo cadastrar um livro e verificar se ele aparece corretamente na listagem e se a busca por seu título o encontra Não esqueçamos a documentação porque ela não é uma reflexão tardia mas sim um componente integral do desenvolvimento Ela facilita a compreensão manutenção e evolução do software A apresentação final é a oportunidade de demonstrar o trabalho realizado por você e as competências adquiridas Portanto aproveitamos para te informar que a documentação do nosso projeto para o Catálogo Simples de Livros Séries ou Filmes deverá incluir um Relatório Técnico do Projeto com os seguintes conteúdos Introdução apresentação do projeto objetivos e justificativa mesmo que seja acadêmica Metodologia breve descrição da abordagem de desenvolvimento que no nosso caso será a iterativa e das tecnologias utilizadas lembrando que em nosso projeto teremos Java Servlets JSP JDBC e o SGBD escolhido por você Modelagem do sistema incluir os diagramas de casos de uso diagrama de classes principal e o esquema do banco de dados nesse caso os DER e o script SQL de criação da tabela ou das tabelas Desenvolvimento e implementação descrever a arquitetura geral da aplicação que você criará por exemplo Servlets JSPs e DAOs e detalhar a implementação de uma ou duas funcionalidadeschave por exemplo Cadastro e Busca mostrando trechos de código relevantes como os Servlets JSPs e DAOs e a explicando da lógica Resultados apresentar as telas ou seja produzir alguns screenshots da aplicação funcional demonstrando as funcionalidades implementadas Considerações sobre segurança descrever as medidas de segurança que foram implementadas Conclusões dificuldades encontradas aprendizados e possíveis trabalhos futuros Referências listar todas as fontes consultadas para o trabalho livros artigos documentações online e cursos ou vídeos Documentação do códigofonte Comentários claros e concisos no código Java explicando a lógica de blocos complexos o propósito de classes e métodos O uso de Javadoc para os métodos públicos das classes DAO e Servlets é uma boa prática Manual do usuário simplificado Um pequeno guia contendo uma ou duas páginas explicando como instalar se houver passos específicos além de deploy no servidor e como utilizar as funcionalidades básicas do catálogo Ao final você deverá entregar tudo isso nas seguintes modalidades Documentação em arquivo de programa da linguagemfonte Documentação e relatório técnico em arquivo no formato PDF submetido aoà tutora para avaliação Glossário SGBD sigla para Sistema Gerenciador de Banco de Dados Software que permite criar gerenciar e manipular bancos de dados ex MySQL PostgreSQL Javadoc ferramenta para gerar documentação HTML a partir de comentários especiais no código Java Em Síntese A disciplina de Aprendizagem Baseada em Projetos ABP é uma estratégia pedagógica que coloca oa alunoa no centro do processo incentivando a aquisição de conhecimento e habilidades por meio da investigação ativa e resolução de problemas do mundo real OA professora atua como facilitadora enquanto a abordagem enfatiza a autonomia a colaboração e a reflexão No contexto da Ciência da Computação a ABP é particularmente vantajosa promovendo o desenvolvimento de habilidades técnicas aplicadas competências socioemocionais soft skills aumento da motivação e engajamento além de uma aprendizagem profunda e significativa que prepara oa estudante para os desafios do mercado de trabalho Nesse modelo oa alunoa assume um papel ativo investigativo colaborativo autônomo e reflexivo A disciplina de PIT Projeto Integrador Transdisciplinar em Ciência da Computação baseiase integralmente na ABP tendo como objetivo a integração de competências e o desenvolvimento de soluções computacionais aplicáveis a problemas reais O projeto principal é a criação de um Catálogo Simples de Livros ou Filmes utilizando Java e Programação Orientada a Objetos POO As funcionalidades incluem CRUD Cadastro Listagem Visualização Edição Exclusão além de uma busca simples com persistência de dados em banco O desenvolvimento do projeto segue as fases concepção e planejamento desenvolvimento iterativo testes e refinamento e documentação e preparação para apresentação A segurança da informação como a prevenção de SQL Injection é abordada desde o início do projeto A disciplina também reforça os fundamentos de Java sintaxe POO coleções e tratamento de exceções e a importância das habilidades do século XXI pensamento crítico criatividade colaboração e comunicação Indicações para saber mais sobre os assuntos abordados nesta Unidade Sites SPRINGIO Spring Boot Documentation A documentação oficial do Spring Boot é a fonte mais completa e atualizada para aprender a desenvolver aplicações web com este popular framework Java Oferece guias tutoriais passo a passo Getting Started Guides e referências detalhadas Embora em inglês é um recurso indispensável Muitos tutoriais cobrem desde a configuração inicial até a criação de APIs RESTful Clique no botão para conferir o conteúdo Página 2 de 7 Material Complementar ACESSE Baeldung É uma excelente fonte de tutoriais e exemplos práticos sobre Spring Boot frequentemente citado e recomendado pela comunidade de desenvolvedores Java Clique no botão para conferir o conteúdo ACESSE DevSuperior Canal no YouTube que possui tutoriais completos e práticos sobre Git e GitHub para iniciantes além de JAVA Clique no botão para conferir o conteúdo ACESSE Vídeo GitHub Como Usar Tutorial para Iniciantes Guia Completo e Atualizado Nesse vídeo você vai aprender do absoluto zero a trabalhar com o Git e GitHub Clique no botão para conferir o vídeo indicado ASSISTA Caroa estudante Agora vamos compreender o cenário que será abordado na primeira situaçãoproblema de caso da disciplina Atentese à situação profissional que você precisará entender para poder realizar a atividade Modelagem e Segurança Um aluno está desenvolvendo o Catálogo Simples de LivrosFilmes e decide criar uma única tabela no banco de dados chamada itens com colunas como id titulo autor ano genero e detalhes Para permitir buscas mais flexíveis o aluno concatena os campos titulo e autor em uma única string para a busca Ao implementar a funcionalidade de busca ele percebe que está vulnerável a SQL Injection Quais são os riscos de segurança ao concatenar campos diretamente em consultas SQL Como o uso de PreparedStatement pode mitigar essa vulnerabilidade Demonstre com um exemplo de código Página 3 de 7 SituaçãoProblema 1 Como a modelagem do banco de dados pode influenciar na segurança e eficiência da aplicação CONTINUE Concatenar campos diretamente em consultas SQL permite que um atacante insira código SQL malicioso através das entradas do usuário comprometendo a integridade e confidencialidade dos dados PreparedStatement impede a interpretação das entradas do usuário como código SQL tratandoas como dados Exemplo Uma modelagem inadequada pode levar a vulnerabilidades e ineficiências A normalização do banco de dados e a escolha correta dos tipos de dados podem melhorar a segurança e o desempenho String sql SELECT FROM itens WHERE titulo LIKE OR autor LIKE PreparedStatement stmt connprepareStatementsql stmtsetString1 termoDeBusca stmtsetString2 termoDeBusca ResultSet rs stmtexecuteQuery P I N T R E S T A CLOSELY CONNECTED VISUAL BOOKMARKING TOOL Earn user trust by offering an adfree experience that respects privacy Pinterest shares its innovation openly but it guards against abuse by using a secret algorithm Spam prevention is a delicate balance between access control and trust control The Care and Feeding of Our Users Were very proud of the strong sense of community among people who use Pinterest and we want to preserve it while growing beyond 70 million monthly users In fact we rely on the discovery abilities collaboration and enthusiasm of our users themselves to keep Pinterest a trusted safe and exciting space We do watch carefully for a few forms of misbehavior that put our community at risk spam hoaxes and hate Because people on Pinterest are famous for sharing ideas in a takingturns kind of way were able to detect disruptive behavior more easily than sites where people broadcast messages without much filtering or curation For example a few Pinterest users have tried to take advantage of their large follower bases by repinning a lot of spammy links instead of good ideas We also see people posting fraudulent offers misleading information about products or business practices and plenty of stale content that misleads We tackle spam in multiple ways keyword analysis site reputation checks sender reputation checks and user behavior analysis eg flagging users who pin a large proportion of their Pins from shady websites In cases of suspected abuse we go to manual review Maintaining the Trust Our amazing moderation program is part art part science We want everyone to enjoy using Pinterest on a large scale so we employ people and products at Pinterest to keep a close eye on the network Weve found that abusesuppression systems work best when a real person is involved obviously more efficient than overreliance on automation Our spammers are smart and tenacious and they keep trying new schemes We want to nip those in the bud before they gain too much traction but were always balancing the tension between limiting abuse and limiting false positives To keep the network clean Pinterest Cons content and pins against spammy sites and pin descriptions Uses computer vision to internally rate images and sources Able to roll back the posting Be selective about bandwidth for highvolume users since they have the most influence Loads content via thousands of separate servers rather than one or two large machines Frequent tuning of the algorithms and learning from user feedback Identifies and disables accounts that abuse the system and violate our policies Encourages users to flag inappropriate content via community flags As we grow and scale Pinterest is dedicated to using new technologies and human moderation to innovate on what is generally called the trust and safety space Our policies platform and monitoring are coordinated across teams in a way that is flexible enough to respond even in unusual or extreme cases For example when something really worrying appears suddenly on the platform a hoax a hate campaign a defamation our internal teams communicate and react immediately using real reports from real community members and not just bots The Future of Trust and Safety at Pinterest In the next year we will expand our spamprotection measures improve the detection of hate and inappropriate content and continue to build better contentwarning and contentfiltering tools Pinterest will keep pace with the growth of our user base and the challenge of balancing openness with safety No one system can fully protect people on the Internet but Pinterests widely trusted and userfriendly platform is designed to provide one reliably safe place for discovery We always invite our users to get involved by reporting issues and giving feedback about areas they want us to improve We value the mutual trust between Pinterest and its passionate community above all else we appreciate it and we intend to preserve it Pinterest Trust Safety Team For more info visit pinterestcomtrust Caroa estudante Agora vamos compreender o cenário que será abordado na segunda situaçãoproblema de caso da disciplina Atentese à situação profissional que você precisará entender para poder realizar a atividade Tratamento de Exceções e Validação de Dados Durante o desenvolvimento da funcionalidade de cadastro de livros o aluno não implementa tratamento de exceções ao tentar inserir um novo livro no banco de dados Além disso não há validação dos dados inseridos pelo usuário eg o campo ano pode receber strings Quando um usuário tenta cadastrar um livro com um ano inválido a aplicação quebra exibindo uma mensagem de erro genérica Por que é importante tratar exceções em aplicações Java Página 4 de 7 SituaçãoProblema 2 Como os blocos trycatchfinally podem ser utilizados para tratar a exceção de inserção de dados inválidos Quais tipos de validações de dados devem ser implementadas no formulário de cadastro e como elas podem prevenir erros CONTINUE O tratamento de exceções garante que a aplicação não termine abruptamente em caso de erros proporcionando uma melhor experiência ao usuário e permitindo o registro de informações de depuração O bloco try envolve o código que pode lançar uma exceção eg a inserção no banco de dados O bloco catch captura a exceção e permite o tratamento adequado eg exibir uma mensagem de erro amigável O bloco finally garante que recursos sejam liberados eg fechar conexões com o banco de dados independentemente de ocorrer ou não uma exceção Validações como verificar se campos obrigatórios estão preenchidos validar o tipo de dados eg ano deve ser um número e verificar comprimentos máximos previnem erros e vulnerabilidades Caroa estudante Agora vamos compreender o cenário que será abordado na terceira situaçãoproblema da disciplina Atentese à situação profissional que você precisará entender para poder realizar a atividade Refatoração e Orientação a Objetos O aluno implementa todas as funcionalidades do Catálogo Simples CRUD e busca diretamente na Servlet resultando em um código extenso e difícil de manter Há duplicação de código em várias partes da aplicação especialmente no acesso ao banco de dados Como a aplicação dos Princípios de Orientação a Objetos POO pode melhorar a estrutura e a manutenibilidade do código Qual o papel das classes DAO Data Access Object na separação de responsabilidades e como elas podem reduzir a duplicação de código Como a refatoração do código para utilizar classes de serviço pode melhorar a organização e testabilidade da aplicação Página 5 de 7 SituaçãoProblema 3 CONTINUE POO promove a modularidade reutilização e manutenibilidade do código Encapsulamento herança e polimorfismo permitem criar um código mais organizado e fácil de entender DAOs encapsulam a lógica de acesso a dados isolandoa do restante da aplicação Isso facilita a manutenção e permite que a camada de persistência seja alterada sem afetar outras partes do sistema Classes de serviço implementam a lógica de negócios da aplicação separandoa da Servlet e das DAOs Isso torna o código mais organizado testável e fácil de manter Muito bem estudante Agora que você já leu todas as situaçõesproblema você pode acessar o Ambiente Virtual de Aprendizagem para realizar a atividade de entrega Página 6 de 7 Atividade de Entrega BENDER W N Aprendizagem baseada em projetos educação diferenciada para o século XXI 1 ed Porto Alegre Penso 2014 BLUMENFELD P C et al Motivating projectbased learning Sustaining the doing supporting the learning Educational Psychologist sl v 26 n 34 p 369398 1991 Disponível em httpsdoiorg1010800046152019919653139 Acesso em 05042025 BOOCH G RUMBAUGH J JACOBSON I UML guia do usuário 2 ed Rio de Janeiro Elsevier 2007 DEITEL P DEITEL H Java como programar 10 ed São Paulo Pearson Universidades 2017 FOWLER M UML distilled a brief guide to the standard object modeling language 3rd ed Boston AddisonWesley Professional 2004 INTERNATIONAL ORGANIZATION FOR STANDARDIZATION ISOIEC 270012013 Information technology Security techniques Information security management systems Requirements 1st ed Geneva ISO 2013 KNUTH D E Computer programming as an art Communications of the ACM v 17 n 12 p 667673 Dec 1974 Disponível em httpsdoiorg10114536160436161 Acesso em 05042025 Página 7 de 7 Referências LARMER J MERGENDOLLER J BOSS S Setting the standard for projectbased learning a proven approach to rigorous classroom instruction 1st ed Alexandria ASCD 2015 MCGRAW G Software security building security in 1st ed Upper Saddle River Addison Wesley 2006 MYERS G J SANDLER C BADGETT T The art of software testing 3rd ed Hoboken John Wiley Sons 2012 OLIVEIRA K Aprendizagem Baseada em Projetos como estratégia para o desenvolvimento de atividades não presenciais no ensino médio integrado em informática no IFB Campus Brasília Revista Brasileira da Educação Profissional e Tecnológica v 2 n 22 e11815 2022 CC BY 40 ISSN 24471801 DOI httpsdoiorg1015628rbept202211815 Acesso em 05042025 PRESSMAN R S MAXIM B R Engenharia de software uma abordagem profissional 8 ed Porto Alegre AMGH 2016 THOMAS J W A review of research on projectbased learning 1st ed San Rafael Autodesk Foundation 2000 Disponível em httpwwwbobpearlmanorgBestPracticesPBLResearchpdf Acesso em 25052025 TRILLING B FADEL C 21st century skills learning for life in our times 1st ed San Francisco JosseyBass 2009 Muito bem estudante Você concluiu o material de estudos Agora volte ao Ambiente Virtual de Aprendizagem para realizar a Atividade

Sua Nova Sala de Aula

Sua Nova Sala de Aula

Empresa

Central de ajuda Contato Blog

Legal

Termos de uso Política de privacidade Política de cookies Código de honra

Baixe o app

4,8
(35.000 avaliações)
© 2025 Meu Guru®