·
Ciência da Computação ·
Informática
Send your question to AI and receive an answer instantly
Recommended for you
25
Projeto de Extensão Universitária em DevOps - Ação e Difusão Cultural
Informática
UNOPAR
29
Projeto de Extensao I DevOps - Programa de Acao e Difusao Cultural
Informática
UNOPAR
15
Portifolio Algoritmos e Tecnica de Progamacao Pago R 70 00
Informática
UNOPAR
18
Sistemas Operacionais T i
Informática
UNOPAR
32
Sistemas Operacionais
Informática
UNOPAR
25
Projeto Extensão - Ciencia da Computação
Informática
UNIA
11
Software Livre - Apostila
Informática
UMG
3
Introdução a Conceitos de Computação - Com140 - Atividade Avaliativa Semana 2
Informática
FATECE
2
LAC-UA2-Especificacao-de-Gramatica-Livre-de-Contexto-ANTLR
Informática
PUC
2
Gramatica Livre de Contexto para Linguagem de Programacao com ANTLR - Avaliacao UA2
Informática
PUC
Preview text
PROJETO INTEGRADO CURSOS DA ÁREA DE TI PROJETO INTEGRADO PROJETO INTEGRADO Prezado aluno Seja bemvindo a este semestre A proposta de Projeto Integrado é possibilitar a aprendizagem interdisciplinar dos conteúdos desenvolvidos nas disciplinas desse semestre ORIENTAÇÕES DO PROJETO INTEGRADO 1 O trabalho será realizado individualmente 2 Importante Você deverá postar o trabalho finalizado no AVA o que deverá ser feito na pasta específica da disciplina Projeto Integrado obedecendo ao prazo limite de postagem conforme disposto no AVA Não existe prorrogação para a postagem da atividade 3 Deve conter depois de pronto capa e folha de rosto padrão da Instituição sendo organizado no que tange à sua apresentação visual tipos e tamanhos de fontes alinhamento do texto espaçamentos adentramento de parágrafos apresentação correta de citações e referências entre outros elementos importantes conforme modelo disponível no AVA 4 A produção textual é um trabalho original e portanto não poderá haver trabalhos idênticos aos de outros alunos ou com reprodução de materiais extraídos da internet Os trabalhos plagiados serão invalidados sendo os alunos reprovados na atividade Lembrese de que a prática do plágio constitui crime com pena prevista em lei Lei nº 9610 e deve ser evitada no âmbito acadêmico 5 Importante O trabalho deve ser enviado em formato Word Não serão aceitos sob nenhuma hipótese trabalhos enviados em PDF A seguir apresentamos a você alguns dos critérios avaliativos que nortearão a análise do Tutor a Distância para atribuir o conceito à produção textual Normalização correta do trabalho com atendimento ao número de páginas solicitadas Apresentação de estrutura condizente com a proposta apresentada com introdução desenvolvimento e conclusão Uso de linguagem acadêmica adequada com clareza e correção atendendo à norma padrão Atendimento à proposta contemplando todos os itens solicitados com objetividade criatividade originalidade e autenticidade Fundamentação teórica do trabalho com as devidas referências dos autores eventualmente citados Lembrese de que seu Tutor a Distância está à disposição para lhe atender em suas dúvidas e também para repassar orientações sempre que você precisar Aproveite esta oportunidade para realizar um trabalho com a qualidade acadêmica de nível universitário PROJETO INTEGRADO 2 Leitura proposta Para atingir os objetivos deste projeto integrado você deverá seguir as instruções voltadas à elaboração do trabalho disponibilizadas ao longo do semestre sob a orientação do Tutor a Distância ATIVIDADES Tarefa 1 Governança de TI é um conjunto de diretrizes habilidades competências e responsabilidades assumidas pela alta cúpula da empresa e pela equipe de TI para guiar as ações organizacionais de modo a controlar processos otimizar a aplicação de recursos dar suporte para a tomada de decisões e garantir a segurança das informações aPesquise e exemplifique fundamentos sobre elaboração e implementação de normas e politicas de privacidade e gestão de nuvem Tarefa 2 Se um time de desenvolvimento de software opta pela Integração Contínua para atender à demanda de constantes mudanças em regras de negócio certamente as atividades da construção do sistema deverão ter auxílio de técnicas e ferramentas adequadamente preparados para garantir a qualidade do sistema em funcionamento e também a viabilidade de manutenções Escolha uma ferramenta no processo de desenvolvimento de software que proporcionará maior velocidade produtividade e controle do códigofonte Descreva como esta ferramenta será útil nesta proposta do desenvolvimento de software baseado em CICD Tarefa 3 Os Dashboards e o Balance Scorecard BSC fornecem informações sobre o desempenho dos negócios em toda a empresa Sobre este assunto responda as questões a seguir Descreva com suas palavras o que é um BSC Em qual is âmbito s da empresa um BSC pode contribuir Liste as diferenças entre um BSC e um Dashboard Tarefa 4 PROJETO INTEGRADO BDD Behaviour Driven Development uma metodologia de desenvolvimento ágil que foca no comportamento esperado de um sistema segundo seu requisito de negócio explícito utilizando práticas de levantamento de requisitos como User story e critérios de aceitação O foco é a confirmação do entendimento dos requisitos de negócio por todos os envolvidos no projeto Stakeholders equipe de negócios e equipe de desenvolvimento permitindo que tudo seja validado desde a elaboração das estórias de usuários até a codificação e usabilidade O uso dessa técnica permite uma comunicação mais eficiente entre as equipes no projeto porque a partir dela os desenvolvedores escrevem testes a partir de uma linguagem estruturada em combinação com sua linguagem nativa SMART 2014 1 Cite e explique sobre os três princípios que norteiam a utilização da prática BDD Nome do curso SUPERIOR DE TECNOLOGIA EM INTELIGÊNCIA DE MERCADO E ANÁLISE DE DADOS Disciplina Visualização de dados e storylling 0 1 Introdução2 2 Desenvolvimento2 21 Tarefa 12 211 Herança2 212 Polimorfismo3 22 Tarefa 24 23 Tarefa 35 24 Tarefa 46 25 Tarefa 57 3 Referências Bibliográficas8 1 1 Introdução Este relatório tem como objetivo apresentar os resultados das questões propostas no Projeto Integrado 2 Desenvolvimento 21 Tarefa 1 Orientação a objetos é um paradigma aplicado na programação que consiste na interação entre diversas unidades chamadas de objetos Explique os conceitos de herança e polimorfismo dando exemplos de utilização na linguagem Python 211 Herança Na programação orientada a objetos a herança é um mecanismo pelo qual uma classe pode ser derivada de outra classe existente chamada de classe base ou superclasse A classe derivada herda os atributos e métodos da classe base e pode adicionar novos atributos e métodos além de modificar ou estender os existentes Isso permite que as classes derivadas compartilhem funcionalidades e comportamentos com a classe base o que pode reduzir a redundância de código e tornar o código mais fácil de manter e modificar Por exemplo vamos supor que temos uma classe Animal que tem um método chamado emitirsom Podemos criar uma classe derivada como Cachorro que herda a funcionalidade de emitirsom da classe Animal e adiciona novas funcionalidades como latir A classe Cachorro pode ter o seguinte código 2 Figura 1 Exemplo de Herança em Python Aqui a classe Cachorro é derivada da classe Animal usando a sintaxe class CachorroAnimal Isso significa que a classe Cachorro herda todos os métodos e atributos da classe Animal incluindo o método emitirsom No entanto a classe Cachorro também tem seu próprio método latir que não existe na classe Animal 212 Polimorfismo O polimorfismo por sua vez é a capacidade de objetos de diferentes classes serem tratados de maneira semelhante Em outras palavras objetos diferentes podem ser usados em um contexto genérico desde que eles tenham uma interface ou comportamento comum Isso permite que o código seja mais flexível e possa lidar com uma variedade de objetos de forma consistente Por exemplo podemos criar uma função chamada emitirsomanimal que aceita um objeto Animal como argumento e chama seu método emitirsom Se passarmos um objeto Cachorro para essa função ele será tratado como um objeto Animal e seu método emitirsom será chamado Figura 2 Exemplo de Polimorfismo em Python Nesse exemplo a função emitirsomanimal pode receber tanto um objeto Animal quanto um objeto Cachorro porque a classe Cachorro herda a 3 funcionalidade de emitirsom da classe Animal Dessa forma o código é mais flexível e pode ser reutilizado com diferentes tipos de objetos 22 Tarefa 2 Você trabalha em uma grande empresa e é o responsável por garantir que todos os desenvolvedores de todas as equipes desta empresa sigam o mesmo padrão de desenvolvimento utilizando as melhores práticas de desenvolvimento Descreva a ferramenta SonarQube O SonarQube é uma ferramenta de análise estática de códigofonte e gerenciamento de qualidade de código que ajuda a garantir que todos os desenvolvedores em uma equipe sigam as mesmas práticas de desenvolvimento e produzam código de alta qualidade Ele pode ser usado em projetos de várias linguagens de programação incluindo Java C JavaScript Python PHP Ruby e outras O SonarQube tem uma série de recursos que ajudam a melhorar a qualidade do código incluindo Análise de código estática o SonarQube examina o códigofonte em busca de problemas de qualidade como vulnerabilidades de segurança bugs dívida técnica duplicação de código entre outros Métricas de código a ferramenta fornece uma série de métricas que ajudam a avaliar a qualidade do código como complexidade ciclomática cobertura de código tempo de execução entre outros Integração contínua o SonarQube pode ser integrado em pipelines de integração contínua para que os resultados da análise de qualidade possam ser incorporados automaticamente em processos de compilação e teste Gerenciamento de regras o SonarQube permite que os desenvolvedores definam suas próprias regras de qualidade de código para garantir que todos sigam as mesmas práticas de codificação Análise de código para linguagens específicas o SonarQube suporta várias linguagens de programação e possui recursos específicos para cada uma delas permitindo uma análise mais profunda do código Além disso o SonarQube pode ser integrado com outras ferramentas de desenvolvimento como IDEs sistemas de controle de versão ferramentas de gerenciamento de tarefas entre outras Usando o SonarQube um responsável pelo desenvolvimento pode garantir que todas as equipes da empresa sigam as mesmas práticas de codificação além de poder monitorar a qualidade do código em tempo real identificar possíveis problemas e corrigilos antes que causem problemas maiores 4 23 Tarefa 3 O diagrama de classes da UML é um diagrama estrutural que tem como objetivo principal ilustrar graficamente a estrutura do software em níveis mais e menos abrangentes Além disso o diagrama de classes mostra como se dá a interligação entre os componentes da estrutura do sistema Para compreender o diagrama de classes é preciso entender os relacionamentos entre as classes que poderão ser representadas no diagrama de classes e objetos Sabendo disso explique os relacionamentos listados a seguir Encapsulamento Herança Agregação Composição Os relacionamentos entre classes no diagrama de classes da UML indicam como as classes estão interrelacionadas e como os objetos são instanciados e usados em um sistema Entre os principais relacionamentos temos Encapsulamento indica que uma classe protege seus atributos e métodos internos tornandoos privados e inacessíveis de fora da classe Isso promove a segurança e a integridade do código No diagrama de classes o encapsulamento é representado por meio do uso de setas fechadas entre a classe e seus atributosmétodos internos Herança indica que uma classe é uma especialização de outra classe herdando todos os atributos e métodos da classe pai mas podendo ter também seus próprios atributos e métodos No diagrama de classes a herança é representada por meio de uma seta sólida que aponta da subclasse para a superclasse Agregação indica que uma classe é composta por outras classes mas que essas classes podem ser utilizadas por outras classes também No diagrama de classes a agregação é representada por meio de um losango vazio na classe que contém a referência para a classe agregada Composição é um tipo mais forte de agregação onde uma classe é composta por outras classes e essas classes não são compartilhadas com outras classes Ou seja a existência de uma classe depende da existência da outra No diagrama de classes a composição é representada por meio de um losango preenchido na classe que contém a referência para a classe composta Em resumo o diagrama de classes da UML é uma ferramenta fundamental para a modelagem e visualização da estrutura do software e os relacionamentos entre as classes indicam como elas estão interrelacionadas e como os objetos são instanciados e usados no sistema 5 24 Tarefa 4 Construa um código simples utilizando a linguagem Java que receba um número informado pelo usuário Você poderá utilizar a biblioteca Scanner para isso O número informado referese ao percentual de aumento do salário desse usuário Por exemplo se ele obteve aumento de 7 o usuário deverá digitar 7 e assim por diante Depois o software deverá informar o valor do salário que pode ser definido em um salário mínimo federal e em seguida o valor já reajustado com os 7 a mais incluso Em formato textual import java util Scanner public class AumentoSalarial public static void main String args double salarioMinimo 11000 valor do salario minimo federal em 2021 double percentualAumento double salarioReajustado Scanner scanner new Scanner System in System out print Informe o percentual de aumento do salario percentualAumento scanner nextDouble salarioReajustado salarioMinimo 1 percentualAumento 100 System out println O valor do salario minimo e R salarioMinimo System out println O valor do salario reajustado e R salarioReajustado Em formato imagem mostrando o resultado no terminal 6 Figura 3 Código para cálculo do aumento salarial 25 Tarefa 5 Explique as diferenças entre os tipos de junção utilizadas em bancos de dados relacionais INNER JOIN RIGHT JOIN e LEFT JOIN Dê exemplos As junções joins são utilizadas em bancos de dados relacionais para combinar informações de duas ou mais tabelas com base em uma ou mais colunas comuns entre elas Existem diferentes tipos de junções disponíveis sendo as principais o INNER JOIN LEFT JOIN e RIGHT JOIN Abaixo explicamos as diferenças entre cada um deles INNER JOIN Retorna apenas os registros que têm correspondência em ambas as tabelas envolvidas na junção ou seja apenas as linhas que têm valores correspondentes nas colunas definidas como chave de junção O INNER JOIN é o tipo mais comum de junção e é usado quando se deseja retornar apenas os registros que estão presentes nas duas tabelas Exemplo SELECT 7 FROM tabela1 INNER JOIN tabela2 ON tabela1coluna tabela2coluna LEFT JOIN Retorna todos os registros da tabela à esquerda da junção tabela1 bem como os registros correspondentes da tabela à direita tabela2 ou seja todos os registros da tabela à esquerda são mantidos mesmo que não haja correspondência na tabela à direita Quando não há correspondência as colunas da tabela à direita serão preenchidas com valores NULL Exemplo SELECT FROM tabela1 LEFT JOIN tabela2 ON tabela1coluna tabela2coluna RIGHT JOIN Retorna todos os registros da tabela à direita da junção tabela2 bem como os registros correspondentes da tabela à esquerda tabela1 ou seja todos os registros da tabela à direita são mantidos mesmo que não haja correspondência na tabela à esquerda Quando não há correspondência as colunas da tabela à esquerda serão preenchidas com valores NULL Exemplo SELECT FROM tabela1 RIGHT JOIN tabela2 ON tabela1coluna tabela2coluna Em resumo o INNER JOIN retorna apenas os registros que têm correspondência em ambas as tabelas enquanto o LEFT JOIN e o RIGHT JOIN retornam todos os registros da tabela à esquerda ou à direita respectivamente além dos registros correspondentes da tabela oposta É importante ressaltar que a escolha do tipo de junção a ser utilizado depende da finalidade do banco de dados e dos objetivos da consulta que se deseja realizar 3 Referências Bibliográficas CJ Date Introdução a Sistemas de Bancos de Dados 8a Ed Editora Campus 2004 ELMASRI Ramez NAVATHE Shamkant B Sistemas de Banco de Dados 6ª Edição Pearson 2011 Ambler S W 2002 The Elements of UML 20 Style Cambridge University Press 8 Booch G Rumbaugh J Jacobson I 1999 The Unified Modeling Language User Guide AddisonWesley Professional SONARQUBE SonarQube Disponível em httpswwwsonarqubeorg Acesso em 03 maio 2023 9 PLANO DE ENSINO Disciplina Projeto Integrado IV Ementa O projeto integrado é uma disciplina que estimula a elaboração de projetos concebidos a partir de conceitos apreendidos durante o curso Visa integrar os conhecimentos adquiridos pelos estudantes durante o desenvolvimento do curso e oferece a reflexão da prática profissional mediante a proposta de aplicação dos conhecimentos em situações reais Objetivos Objetivo Geral Promover a articulação integradora e interdisciplinar dos conteúdos das disciplinas do semestre visando o desenvolvimento de habilidades e competências necessárias para atuação profissional no campo da computação em nuvem Objetivos Específicos Conhecer conceitos e práticas da programação e de segurança da informação para redes Consolidar os conhecimentos nas áreas de arquitetura de dados e de banco de dados não relacionais Desenvolver habilidades necessárias ao futuro profissional por meio do destaque prático às atividades do curso Conteúdo Programático Arquitetura de Dados Banco de Dados Não Relacionais Programação para Redes Segurança da Informação e Redes Procedimentos Metodológicos A metodologia adotada em consonância com o modelo acadêmico viabiliza ações para favorecer o processo de ensino e aprendizagem de modo a desenvolver as competências e habilidades necessárias para a formação profissional de seus alunos O processo de ensino e aprendizagem é conduzido por meio da integração de diferentes momentos didáticos Um destes momentos é a aula em que são desenvolvidas situaçõesproblema do cotidiano profissional permitindo e estimulando trocas de experiências e conhecimentos Nessa jornada acadêmica o aluno é desafiado em outros momentos à realização de atividades que o auxiliam a fixar correlacionar e sistematizar os conteúdos da disciplina por meio de avaliações virtuais de proposições via conteúdo web livro didático digital objetos de aprendizagem textos e outros recursos Sistema de Avaliação A IES utiliza a metodologia de Avaliação Continuada que valoriza o aprendizado e garante o desenvolvimento das competências necessárias à formação do estudante Na Avaliação Continuada o aluno acumula pontos a cada atividade realizada durante o semestre A soma da pontuação obtida de 1000 a 10000 por disciplina é convertida em nota de 1 a 10 Atividades a serem realizadas I Prova presenciais por disciplina realizada individualmente II Avaliações formativas compostas por Avaliações Virtuais III Engajamento AVA que são pontuações obtidas a cada atividade realizada sendo elas web aula videoaula e avaliação virtual Critérios de aprovação PLANO DE ENSINO 1 Atingir a pontuação mínima na prova da disciplina 1500 pontos e na avaliação de proficiência 200 pontos quando elegível 2 Acumular a pontuação mínima total na disciplina 6000 pontos 3 Obter frequência mínima de 50 em teleaulas e aulasatividades quando se aplicar e 75 em aulas práticas quando se aplicar O detalhamento do Sistema de Avaliação deve ser verificado no Manual de Avaliação Continuada disponibilizado no AVA Bibliografia Básica AGUILAR Luis Joyanes Fundamentos de Programação algoritmos estruturas de dados e objetos 3ed Porto Alegre AMGH 2008 AMARAL Daniel Capaldo et al Gerenciamento ágil de projetos aplicação em produtos inovadores São Paulo Saraiva 2011 TORRES Luis Fernando Fundamentos do gerenciamento de projetos Rio de Janeiro Elsevier 2014 Advances in Software Engineering ISSN 16878655 Bibliografia Complementar TERADA Routo Segurança de dados criptografia em redes de computador São Paulo Blucher 2008 SBROCCO José Henrique Teixeira de Carvalho Metodologias ágeis engenharia de software sob medida São Paulo Érica 2012 MORAES Alexandre Fernandes de Segurança em Redes fundamentos São Paulo Érica 2010 ACM Queue ISSN 15427730 15427749 0 1 Introdução2 2 Desenvolvimento2 21 Tarefa 12 22 Tarefa 24 23 Tarefa 36 231 O que é um BSC Balanced Scorecard6 232 Em qualis âmbitos da empresa um BSC pode contribuir6 233 Diferenças entre um BSC e um Dashboard6 24 Tarefa 47 3 Referências Bibliográficas8 1 1 Introdução Este relatório tem como objetivo apresentar os resultados das questões propostas no Projeto Integrado 2 Desenvolvimento 21 Tarefa 1 Governança de TI é uma parte essencial da governança corporativa especialmente na era digital Ao falar sobre elaboração e implementação de normas e políticas de privacidade e gestão de nuvem é vital entender que esses princípios ajudam a garantir que a tecnologia suporte os objetivos de negócio ao mesmo tempo que protege os direitos dos usuários e as informações da empresa Alguns fundamentos e exemplos sobre a elaboração e implementação de normas e políticas de privacidade e gestão de nuvem são 1 Avaliação de Risco Fundamento Antes de implementar qualquer política ou norma é crucial entender os riscos associados aos dados que você está armazenando ou processando Exemplo Para empresas que armazenam informações pessoais sensíveis na nuvem pode ser necessário avaliar riscos como acesso não autorizado falhas de compliance ou violações de dados 2 Definição Clara de Papéis e Responsabilidades 2 Fundamento Determinar quem na organização é responsável por quais aspectos da privacidade e gestão da nuvem Exemplo Enquanto um CISO Chief Information Security Officer pode ser responsável pela segurança geral da informação pode haver um gerente de conformidade designado especificamente para garantir que a empresa esteja aderindo às regulamentações de privacidade 3 Transparência Fundamento Os usuários e partes interessadas devem ser informados sobre como seus dados são coletados processados e armazenados Exemplo Uma política de privacidade clara e compreensível que informe os usuários sobre a coleta de dados seu uso e seus direitos em relação a esses dados 4 Implementação de Controles Técnicos Fundamento Utilizar tecnologias para proteger informações e garantir a conformidade Exemplo Criptografia de dados em repouso e em trânsito multifator de autenticação para acesso a ambientes sensíveis e soluções de DLP Data Loss Prevention para monitorar e controlar transferências de dados 5 Auditoria e Monitoramento Fundamento Manter registros e realizar auditorias regulares para garantir a conformidade e identificar possíveis problemas Exemplo Logs de acesso e modificações feitas em bancos de dados sensíveis junto com revisões periódicas por terceiros para garantir que a empresa esteja seguindo suas próprias políticas e regulamentações aplicáveis 6 Educação e Treinamento Fundamento Garantir que todos os funcionários entendam a importância das políticas e saibam como seguir os procedimentos corretos Exemplo Workshops anuais sobre privacidade de dados e segurança em nuvem para todos os funcionários 7 Resposta a Incidentes 3 Fundamento Ter um plano de resposta a incidentes para lidar rapidamente com qualquer violação de segurança ou vazamento de dados Exemplo Protocolos de notificação para alertar os usuários afetados em caso de violação de dados bem como procedimentos para mitigar os danos e prevenir futuras ocorrências 8 Revisão e Atualização Periódica Fundamento O cenário de ameaças bem como as regulamentações estão sempre mudando As políticas e normas devem ser revisadas regularmente Exemplo Uma revisão anual das políticas de privacidade para garantir a conformidade com regulamentos atualizados como o GDPR Regulamento Geral sobre a Proteção de Dados europeu ou a LGPD Lei Geral de Proteção de Dados Pessoais no Brasil 22 Tarefa 2 Uma das ferramentas mais notórias e amplamente adotadas no mundo do desenvolvimento de software para Integração Contínua CI e Entrega Contínua CD é o Jenkins O Jenkins é um servidor de automação de código aberto que permite aos desenvolvedores construir testar e implementar seu código de forma contínua Ele é altamente configurável através de uma vasta gama de plugins que o tornam adaptável a quase qualquer fluxo de trabalho de CICD O Jenkins quando configurado corretamente proporciona uma solução robusta de CICD que acelera o processo de desenvolvimento aumenta a qualidade do software e reduz o tempo e o esforço associados ao lançamento de novas versões Ele encapsula os princípios de Integração Contínua garantindo que o código seja constantemente testado e esteja pronto para ser entregue a qualquer momento Algumas utilidades do Jenkins em um processo de desenvolvimento baseado em CICD são 1 Automação de Builds Jenkins pode ser configurado para realizar compilações do código fonte sempre que uma alteração é feita Isso garante que os 4 desenvolvedores estejam sempre trabalhando com a versão mais recente do software e que problemas sejam identificados rapidamente 2 Testes Contínuos Jenkins pode executar uma série de testes automáticos toda vez que uma nova versão do código for construída Isso garante que regressões ou novos bugs sejam rapidamente identificados 3 Integração com Controle de Versão Jenkins tem integrações robustas com sistemas de controle de versão como Git SVN entre outros Assim sempre que um novo código é commitado no repositório Jenkins pode ser configurado para iniciar um build e testar o código 4 Deployment Automatizado Com Jenkins o código pode ser automaticamente implementado em ambientes de teste staging ou produção após a fase de build e teste 5 Notificações Jenkins pode notificar os desenvolvedores se um build falhar ou se algum teste não passar Isso ajuda as equipes a serem proativas na correção de problemas 6 Plugins e Extensibilidade A ampla variedade de plugins disponíveis permite que o Jenkins se integre com quase todas as ferramentas populares do mercado como Docker Kubernetes AWS Azure etc Isso permite que as equipes configurem seu pipeline CICD de acordo com suas necessidades específicas 7 Ambiente Paralelo e Distribuído Jenkins permite que os builds sejam distribuídos entre diferentes máquinas e containers Isso acelera o processo de construção e teste especialmente para projetos maiores 8 Histórico e Monitoramento 5 Através do painel do Jenkins é possível monitorar o histórico de builds testes e deployments Isso proporciona uma visão clara do estado do projeto em qualquer momento 23 Tarefa 3 231 O que é um BSC Balanced Scorecard O Balanced Scorecard BSC é uma ferramenta de gestão estratégica que busca equilibrar indicadores em diferentes perspectivas para proporcionar uma visão ampla e completa do desempenho organizacional Ao invés de focar apenas em métricas financeiras o BSC considera outros aspectos vitais do negócio A ideia é que observando o negócio sob várias perspectivas os gestores possam ter uma compreensão mais holística e equilibrada do desempenho da organização e assim tomar decisões mais informadas 232 Em qualis âmbitos da empresa um BSC pode contribuir O BSC pode contribuir em diversos âmbitos da empresa especialmente em Estratégia Ajudando a traduzir a visão e estratégia da empresa em objetivos operacionais concretos Finanças Avaliando o desempenho financeiro e observando como as ações e as estratégias se traduzem em valor para a empresa Clientes Monitorando a satisfação e retenção de clientes bem como a aquisição de novos clientes Processos Internos Analisando a eficiência e eficácia dos processos operacionais principais Aprendizado e Crescimento Observando a capacidade da empresa de se inovar aprender e melhorar Isso envolve aspectos como a satisfação dos empregados a cultura corporativa e a capacidade de inovação 233 Diferenças entre um BSC e um Dashboard Finalidade 6 BSC É uma ferramenta estratégica focada em medir o desempenho da organização em relação à sua visão e estratégia usando uma variedade de indicadores distribuídos em várias perspectivas Dashboard É uma ferramenta visual que exibe métricas e indicadores chave KPIs sobre diversos aspectos do negócio Sua finalidade é fornecer uma visão rápida e clara da situação atual Complexidade e Profundidade BSC Geralmente é mais profundo focado em conectar objetivos estratégicos com indicadores metas e iniciativas Dashboard É mais uma representação gráfica de dados e informações permitindo visualizações rápidas e decisões informadas no dia a dia Tempo de Análise BSC Tende a ser usado para análises de médio a longo prazo ajudando na tomada de decisão estratégica Dashboard Frequentemente atualizado em tempo real ou em curtos intervalos de tempo sendo mais tático Componentes BSC Inclui objetivos indicadores metas e iniciativas alinhados com a estratégia da empresa Dashboard Consiste principalmente de gráficos tabelas e outras visualizações que refletem métricas e KPIs atuais Perspectiva BSC Abordagem holística focada em várias perspectivas financeira cliente processos internos aprendizado e crescimento Dashboard Pode focar em qualquer área ou conjunto de dados seja ela financeira operacional de marketing etc 24 Tarefa 4 O Behavior Driven Development BDD é uma evolução do Test Driven Development TDD Ele se concentra em definir o comportamento do software através da colaboração entre os desenvolvedores QA Quality Assurance e os stakeholders nãotécnicos Três princípios essenciais orientam a prática do BDD 7 1 Desenvolvimento baseado em necessidades reais O foco do BDD está em satisfazer as necessidades reais dos usuários e stakeholders Ao usar histórias de usuário e critérios de aceitação a equipe garante que as funcionalidades desenvolvidas são realmente necessárias e oferecem valor ao negócio e aos usuários finais Ao basear o desenvolvimento em situações reais a equipe evita trabalhar em características desnecessárias ou mal definidas 2 Colaboração e Comunicação Um dos principais benefícios do BDD é promover a colaboração e comunicação entre equipes técnicas e nãotécnicas Ao discutir histórias de usuários e critérios de aceitação todos os envolvidos no projeto têm a oportunidade de contribuir com seus insights e garantir que haja um entendimento mútuo sobre o que está sendo desenvolvido Isso minimiza os riscos de malentendidos e retrabalho As ferramentas usadas em BDD como Cucumber ou SpecFlow permitem que os testes sejam escritos em uma linguagem natural facilitando a participação de todos mesmo daqueles que não têm conhecimento técnico 3 Feedback Rápido Com o BDD os testes são escritos antes do código assim como no TDD No entanto esses testes não são apenas testes unitários são testes de comportamento que definem como o software deve funcionar do ponto de vista do usuário Esses testes dão feedback imediato para os desenvolvedores sobre se o software está ou não funcionando conforme o esperado Se um teste falhar eles saberão imediatamente que algo não está certo permitindo que erros sejam corrigidos cedo no ciclo de desenvolvimento quando é mais barato e fácil de fazer A combinação desses princípios no BDD garante que o software desenvolvido esteja alinhado com as necessidades do negócio promove uma comunicação mais eficaz entre todos os envolvidos no projeto e fornece feedback rápido para a equipe de desenvolvimento tornando o processo de desenvolvimento mais eficiente e produtivo 3 Referências Bibliográficas WEILL Peter ROSS Jeanne W Governança de TI Tecnologia da informação São Paulo M Books do Brasil Editora Ltda 2006 8 FOWLER Martin HIGHSMITH Jim Continuous integration ThoughtWorks 2001 KAPLAN Robert S NORTON David P A estratégia em ação balanced scorecard Rio de Janeiro Campus 1997 NORTH Dan Behaviourdriven development Encyclopedia of Software Engineering 2010 JENKINS Disponível em httpswwwjenkinsio Acesso em 17 de setembro de 2023 XP EDUCAÇÃO Balanced Scorecard BSC o que é e como aplicar em sua empresa Disponível em httpsblogxpeducacaocombrbalancedscorecardbsc gclidCj0KCQjwx5qoBhDyARIsAPbMagBJE1DfNJdo65K7ND hkSMJzfPNIiyUm26jnTOI2PCEZxdi45FiQvoaAvwmEALwwcB Acesso em 17 de setembro de 2023 9
Send your question to AI and receive an answer instantly
Recommended for you
25
Projeto de Extensão Universitária em DevOps - Ação e Difusão Cultural
Informática
UNOPAR
29
Projeto de Extensao I DevOps - Programa de Acao e Difusao Cultural
Informática
UNOPAR
15
Portifolio Algoritmos e Tecnica de Progamacao Pago R 70 00
Informática
UNOPAR
18
Sistemas Operacionais T i
Informática
UNOPAR
32
Sistemas Operacionais
Informática
UNOPAR
25
Projeto Extensão - Ciencia da Computação
Informática
UNIA
11
Software Livre - Apostila
Informática
UMG
3
Introdução a Conceitos de Computação - Com140 - Atividade Avaliativa Semana 2
Informática
FATECE
2
LAC-UA2-Especificacao-de-Gramatica-Livre-de-Contexto-ANTLR
Informática
PUC
2
Gramatica Livre de Contexto para Linguagem de Programacao com ANTLR - Avaliacao UA2
Informática
PUC
Preview text
PROJETO INTEGRADO CURSOS DA ÁREA DE TI PROJETO INTEGRADO PROJETO INTEGRADO Prezado aluno Seja bemvindo a este semestre A proposta de Projeto Integrado é possibilitar a aprendizagem interdisciplinar dos conteúdos desenvolvidos nas disciplinas desse semestre ORIENTAÇÕES DO PROJETO INTEGRADO 1 O trabalho será realizado individualmente 2 Importante Você deverá postar o trabalho finalizado no AVA o que deverá ser feito na pasta específica da disciplina Projeto Integrado obedecendo ao prazo limite de postagem conforme disposto no AVA Não existe prorrogação para a postagem da atividade 3 Deve conter depois de pronto capa e folha de rosto padrão da Instituição sendo organizado no que tange à sua apresentação visual tipos e tamanhos de fontes alinhamento do texto espaçamentos adentramento de parágrafos apresentação correta de citações e referências entre outros elementos importantes conforme modelo disponível no AVA 4 A produção textual é um trabalho original e portanto não poderá haver trabalhos idênticos aos de outros alunos ou com reprodução de materiais extraídos da internet Os trabalhos plagiados serão invalidados sendo os alunos reprovados na atividade Lembrese de que a prática do plágio constitui crime com pena prevista em lei Lei nº 9610 e deve ser evitada no âmbito acadêmico 5 Importante O trabalho deve ser enviado em formato Word Não serão aceitos sob nenhuma hipótese trabalhos enviados em PDF A seguir apresentamos a você alguns dos critérios avaliativos que nortearão a análise do Tutor a Distância para atribuir o conceito à produção textual Normalização correta do trabalho com atendimento ao número de páginas solicitadas Apresentação de estrutura condizente com a proposta apresentada com introdução desenvolvimento e conclusão Uso de linguagem acadêmica adequada com clareza e correção atendendo à norma padrão Atendimento à proposta contemplando todos os itens solicitados com objetividade criatividade originalidade e autenticidade Fundamentação teórica do trabalho com as devidas referências dos autores eventualmente citados Lembrese de que seu Tutor a Distância está à disposição para lhe atender em suas dúvidas e também para repassar orientações sempre que você precisar Aproveite esta oportunidade para realizar um trabalho com a qualidade acadêmica de nível universitário PROJETO INTEGRADO 2 Leitura proposta Para atingir os objetivos deste projeto integrado você deverá seguir as instruções voltadas à elaboração do trabalho disponibilizadas ao longo do semestre sob a orientação do Tutor a Distância ATIVIDADES Tarefa 1 Governança de TI é um conjunto de diretrizes habilidades competências e responsabilidades assumidas pela alta cúpula da empresa e pela equipe de TI para guiar as ações organizacionais de modo a controlar processos otimizar a aplicação de recursos dar suporte para a tomada de decisões e garantir a segurança das informações aPesquise e exemplifique fundamentos sobre elaboração e implementação de normas e politicas de privacidade e gestão de nuvem Tarefa 2 Se um time de desenvolvimento de software opta pela Integração Contínua para atender à demanda de constantes mudanças em regras de negócio certamente as atividades da construção do sistema deverão ter auxílio de técnicas e ferramentas adequadamente preparados para garantir a qualidade do sistema em funcionamento e também a viabilidade de manutenções Escolha uma ferramenta no processo de desenvolvimento de software que proporcionará maior velocidade produtividade e controle do códigofonte Descreva como esta ferramenta será útil nesta proposta do desenvolvimento de software baseado em CICD Tarefa 3 Os Dashboards e o Balance Scorecard BSC fornecem informações sobre o desempenho dos negócios em toda a empresa Sobre este assunto responda as questões a seguir Descreva com suas palavras o que é um BSC Em qual is âmbito s da empresa um BSC pode contribuir Liste as diferenças entre um BSC e um Dashboard Tarefa 4 PROJETO INTEGRADO BDD Behaviour Driven Development uma metodologia de desenvolvimento ágil que foca no comportamento esperado de um sistema segundo seu requisito de negócio explícito utilizando práticas de levantamento de requisitos como User story e critérios de aceitação O foco é a confirmação do entendimento dos requisitos de negócio por todos os envolvidos no projeto Stakeholders equipe de negócios e equipe de desenvolvimento permitindo que tudo seja validado desde a elaboração das estórias de usuários até a codificação e usabilidade O uso dessa técnica permite uma comunicação mais eficiente entre as equipes no projeto porque a partir dela os desenvolvedores escrevem testes a partir de uma linguagem estruturada em combinação com sua linguagem nativa SMART 2014 1 Cite e explique sobre os três princípios que norteiam a utilização da prática BDD Nome do curso SUPERIOR DE TECNOLOGIA EM INTELIGÊNCIA DE MERCADO E ANÁLISE DE DADOS Disciplina Visualização de dados e storylling 0 1 Introdução2 2 Desenvolvimento2 21 Tarefa 12 211 Herança2 212 Polimorfismo3 22 Tarefa 24 23 Tarefa 35 24 Tarefa 46 25 Tarefa 57 3 Referências Bibliográficas8 1 1 Introdução Este relatório tem como objetivo apresentar os resultados das questões propostas no Projeto Integrado 2 Desenvolvimento 21 Tarefa 1 Orientação a objetos é um paradigma aplicado na programação que consiste na interação entre diversas unidades chamadas de objetos Explique os conceitos de herança e polimorfismo dando exemplos de utilização na linguagem Python 211 Herança Na programação orientada a objetos a herança é um mecanismo pelo qual uma classe pode ser derivada de outra classe existente chamada de classe base ou superclasse A classe derivada herda os atributos e métodos da classe base e pode adicionar novos atributos e métodos além de modificar ou estender os existentes Isso permite que as classes derivadas compartilhem funcionalidades e comportamentos com a classe base o que pode reduzir a redundância de código e tornar o código mais fácil de manter e modificar Por exemplo vamos supor que temos uma classe Animal que tem um método chamado emitirsom Podemos criar uma classe derivada como Cachorro que herda a funcionalidade de emitirsom da classe Animal e adiciona novas funcionalidades como latir A classe Cachorro pode ter o seguinte código 2 Figura 1 Exemplo de Herança em Python Aqui a classe Cachorro é derivada da classe Animal usando a sintaxe class CachorroAnimal Isso significa que a classe Cachorro herda todos os métodos e atributos da classe Animal incluindo o método emitirsom No entanto a classe Cachorro também tem seu próprio método latir que não existe na classe Animal 212 Polimorfismo O polimorfismo por sua vez é a capacidade de objetos de diferentes classes serem tratados de maneira semelhante Em outras palavras objetos diferentes podem ser usados em um contexto genérico desde que eles tenham uma interface ou comportamento comum Isso permite que o código seja mais flexível e possa lidar com uma variedade de objetos de forma consistente Por exemplo podemos criar uma função chamada emitirsomanimal que aceita um objeto Animal como argumento e chama seu método emitirsom Se passarmos um objeto Cachorro para essa função ele será tratado como um objeto Animal e seu método emitirsom será chamado Figura 2 Exemplo de Polimorfismo em Python Nesse exemplo a função emitirsomanimal pode receber tanto um objeto Animal quanto um objeto Cachorro porque a classe Cachorro herda a 3 funcionalidade de emitirsom da classe Animal Dessa forma o código é mais flexível e pode ser reutilizado com diferentes tipos de objetos 22 Tarefa 2 Você trabalha em uma grande empresa e é o responsável por garantir que todos os desenvolvedores de todas as equipes desta empresa sigam o mesmo padrão de desenvolvimento utilizando as melhores práticas de desenvolvimento Descreva a ferramenta SonarQube O SonarQube é uma ferramenta de análise estática de códigofonte e gerenciamento de qualidade de código que ajuda a garantir que todos os desenvolvedores em uma equipe sigam as mesmas práticas de desenvolvimento e produzam código de alta qualidade Ele pode ser usado em projetos de várias linguagens de programação incluindo Java C JavaScript Python PHP Ruby e outras O SonarQube tem uma série de recursos que ajudam a melhorar a qualidade do código incluindo Análise de código estática o SonarQube examina o códigofonte em busca de problemas de qualidade como vulnerabilidades de segurança bugs dívida técnica duplicação de código entre outros Métricas de código a ferramenta fornece uma série de métricas que ajudam a avaliar a qualidade do código como complexidade ciclomática cobertura de código tempo de execução entre outros Integração contínua o SonarQube pode ser integrado em pipelines de integração contínua para que os resultados da análise de qualidade possam ser incorporados automaticamente em processos de compilação e teste Gerenciamento de regras o SonarQube permite que os desenvolvedores definam suas próprias regras de qualidade de código para garantir que todos sigam as mesmas práticas de codificação Análise de código para linguagens específicas o SonarQube suporta várias linguagens de programação e possui recursos específicos para cada uma delas permitindo uma análise mais profunda do código Além disso o SonarQube pode ser integrado com outras ferramentas de desenvolvimento como IDEs sistemas de controle de versão ferramentas de gerenciamento de tarefas entre outras Usando o SonarQube um responsável pelo desenvolvimento pode garantir que todas as equipes da empresa sigam as mesmas práticas de codificação além de poder monitorar a qualidade do código em tempo real identificar possíveis problemas e corrigilos antes que causem problemas maiores 4 23 Tarefa 3 O diagrama de classes da UML é um diagrama estrutural que tem como objetivo principal ilustrar graficamente a estrutura do software em níveis mais e menos abrangentes Além disso o diagrama de classes mostra como se dá a interligação entre os componentes da estrutura do sistema Para compreender o diagrama de classes é preciso entender os relacionamentos entre as classes que poderão ser representadas no diagrama de classes e objetos Sabendo disso explique os relacionamentos listados a seguir Encapsulamento Herança Agregação Composição Os relacionamentos entre classes no diagrama de classes da UML indicam como as classes estão interrelacionadas e como os objetos são instanciados e usados em um sistema Entre os principais relacionamentos temos Encapsulamento indica que uma classe protege seus atributos e métodos internos tornandoos privados e inacessíveis de fora da classe Isso promove a segurança e a integridade do código No diagrama de classes o encapsulamento é representado por meio do uso de setas fechadas entre a classe e seus atributosmétodos internos Herança indica que uma classe é uma especialização de outra classe herdando todos os atributos e métodos da classe pai mas podendo ter também seus próprios atributos e métodos No diagrama de classes a herança é representada por meio de uma seta sólida que aponta da subclasse para a superclasse Agregação indica que uma classe é composta por outras classes mas que essas classes podem ser utilizadas por outras classes também No diagrama de classes a agregação é representada por meio de um losango vazio na classe que contém a referência para a classe agregada Composição é um tipo mais forte de agregação onde uma classe é composta por outras classes e essas classes não são compartilhadas com outras classes Ou seja a existência de uma classe depende da existência da outra No diagrama de classes a composição é representada por meio de um losango preenchido na classe que contém a referência para a classe composta Em resumo o diagrama de classes da UML é uma ferramenta fundamental para a modelagem e visualização da estrutura do software e os relacionamentos entre as classes indicam como elas estão interrelacionadas e como os objetos são instanciados e usados no sistema 5 24 Tarefa 4 Construa um código simples utilizando a linguagem Java que receba um número informado pelo usuário Você poderá utilizar a biblioteca Scanner para isso O número informado referese ao percentual de aumento do salário desse usuário Por exemplo se ele obteve aumento de 7 o usuário deverá digitar 7 e assim por diante Depois o software deverá informar o valor do salário que pode ser definido em um salário mínimo federal e em seguida o valor já reajustado com os 7 a mais incluso Em formato textual import java util Scanner public class AumentoSalarial public static void main String args double salarioMinimo 11000 valor do salario minimo federal em 2021 double percentualAumento double salarioReajustado Scanner scanner new Scanner System in System out print Informe o percentual de aumento do salario percentualAumento scanner nextDouble salarioReajustado salarioMinimo 1 percentualAumento 100 System out println O valor do salario minimo e R salarioMinimo System out println O valor do salario reajustado e R salarioReajustado Em formato imagem mostrando o resultado no terminal 6 Figura 3 Código para cálculo do aumento salarial 25 Tarefa 5 Explique as diferenças entre os tipos de junção utilizadas em bancos de dados relacionais INNER JOIN RIGHT JOIN e LEFT JOIN Dê exemplos As junções joins são utilizadas em bancos de dados relacionais para combinar informações de duas ou mais tabelas com base em uma ou mais colunas comuns entre elas Existem diferentes tipos de junções disponíveis sendo as principais o INNER JOIN LEFT JOIN e RIGHT JOIN Abaixo explicamos as diferenças entre cada um deles INNER JOIN Retorna apenas os registros que têm correspondência em ambas as tabelas envolvidas na junção ou seja apenas as linhas que têm valores correspondentes nas colunas definidas como chave de junção O INNER JOIN é o tipo mais comum de junção e é usado quando se deseja retornar apenas os registros que estão presentes nas duas tabelas Exemplo SELECT 7 FROM tabela1 INNER JOIN tabela2 ON tabela1coluna tabela2coluna LEFT JOIN Retorna todos os registros da tabela à esquerda da junção tabela1 bem como os registros correspondentes da tabela à direita tabela2 ou seja todos os registros da tabela à esquerda são mantidos mesmo que não haja correspondência na tabela à direita Quando não há correspondência as colunas da tabela à direita serão preenchidas com valores NULL Exemplo SELECT FROM tabela1 LEFT JOIN tabela2 ON tabela1coluna tabela2coluna RIGHT JOIN Retorna todos os registros da tabela à direita da junção tabela2 bem como os registros correspondentes da tabela à esquerda tabela1 ou seja todos os registros da tabela à direita são mantidos mesmo que não haja correspondência na tabela à esquerda Quando não há correspondência as colunas da tabela à esquerda serão preenchidas com valores NULL Exemplo SELECT FROM tabela1 RIGHT JOIN tabela2 ON tabela1coluna tabela2coluna Em resumo o INNER JOIN retorna apenas os registros que têm correspondência em ambas as tabelas enquanto o LEFT JOIN e o RIGHT JOIN retornam todos os registros da tabela à esquerda ou à direita respectivamente além dos registros correspondentes da tabela oposta É importante ressaltar que a escolha do tipo de junção a ser utilizado depende da finalidade do banco de dados e dos objetivos da consulta que se deseja realizar 3 Referências Bibliográficas CJ Date Introdução a Sistemas de Bancos de Dados 8a Ed Editora Campus 2004 ELMASRI Ramez NAVATHE Shamkant B Sistemas de Banco de Dados 6ª Edição Pearson 2011 Ambler S W 2002 The Elements of UML 20 Style Cambridge University Press 8 Booch G Rumbaugh J Jacobson I 1999 The Unified Modeling Language User Guide AddisonWesley Professional SONARQUBE SonarQube Disponível em httpswwwsonarqubeorg Acesso em 03 maio 2023 9 PLANO DE ENSINO Disciplina Projeto Integrado IV Ementa O projeto integrado é uma disciplina que estimula a elaboração de projetos concebidos a partir de conceitos apreendidos durante o curso Visa integrar os conhecimentos adquiridos pelos estudantes durante o desenvolvimento do curso e oferece a reflexão da prática profissional mediante a proposta de aplicação dos conhecimentos em situações reais Objetivos Objetivo Geral Promover a articulação integradora e interdisciplinar dos conteúdos das disciplinas do semestre visando o desenvolvimento de habilidades e competências necessárias para atuação profissional no campo da computação em nuvem Objetivos Específicos Conhecer conceitos e práticas da programação e de segurança da informação para redes Consolidar os conhecimentos nas áreas de arquitetura de dados e de banco de dados não relacionais Desenvolver habilidades necessárias ao futuro profissional por meio do destaque prático às atividades do curso Conteúdo Programático Arquitetura de Dados Banco de Dados Não Relacionais Programação para Redes Segurança da Informação e Redes Procedimentos Metodológicos A metodologia adotada em consonância com o modelo acadêmico viabiliza ações para favorecer o processo de ensino e aprendizagem de modo a desenvolver as competências e habilidades necessárias para a formação profissional de seus alunos O processo de ensino e aprendizagem é conduzido por meio da integração de diferentes momentos didáticos Um destes momentos é a aula em que são desenvolvidas situaçõesproblema do cotidiano profissional permitindo e estimulando trocas de experiências e conhecimentos Nessa jornada acadêmica o aluno é desafiado em outros momentos à realização de atividades que o auxiliam a fixar correlacionar e sistematizar os conteúdos da disciplina por meio de avaliações virtuais de proposições via conteúdo web livro didático digital objetos de aprendizagem textos e outros recursos Sistema de Avaliação A IES utiliza a metodologia de Avaliação Continuada que valoriza o aprendizado e garante o desenvolvimento das competências necessárias à formação do estudante Na Avaliação Continuada o aluno acumula pontos a cada atividade realizada durante o semestre A soma da pontuação obtida de 1000 a 10000 por disciplina é convertida em nota de 1 a 10 Atividades a serem realizadas I Prova presenciais por disciplina realizada individualmente II Avaliações formativas compostas por Avaliações Virtuais III Engajamento AVA que são pontuações obtidas a cada atividade realizada sendo elas web aula videoaula e avaliação virtual Critérios de aprovação PLANO DE ENSINO 1 Atingir a pontuação mínima na prova da disciplina 1500 pontos e na avaliação de proficiência 200 pontos quando elegível 2 Acumular a pontuação mínima total na disciplina 6000 pontos 3 Obter frequência mínima de 50 em teleaulas e aulasatividades quando se aplicar e 75 em aulas práticas quando se aplicar O detalhamento do Sistema de Avaliação deve ser verificado no Manual de Avaliação Continuada disponibilizado no AVA Bibliografia Básica AGUILAR Luis Joyanes Fundamentos de Programação algoritmos estruturas de dados e objetos 3ed Porto Alegre AMGH 2008 AMARAL Daniel Capaldo et al Gerenciamento ágil de projetos aplicação em produtos inovadores São Paulo Saraiva 2011 TORRES Luis Fernando Fundamentos do gerenciamento de projetos Rio de Janeiro Elsevier 2014 Advances in Software Engineering ISSN 16878655 Bibliografia Complementar TERADA Routo Segurança de dados criptografia em redes de computador São Paulo Blucher 2008 SBROCCO José Henrique Teixeira de Carvalho Metodologias ágeis engenharia de software sob medida São Paulo Érica 2012 MORAES Alexandre Fernandes de Segurança em Redes fundamentos São Paulo Érica 2010 ACM Queue ISSN 15427730 15427749 0 1 Introdução2 2 Desenvolvimento2 21 Tarefa 12 22 Tarefa 24 23 Tarefa 36 231 O que é um BSC Balanced Scorecard6 232 Em qualis âmbitos da empresa um BSC pode contribuir6 233 Diferenças entre um BSC e um Dashboard6 24 Tarefa 47 3 Referências Bibliográficas8 1 1 Introdução Este relatório tem como objetivo apresentar os resultados das questões propostas no Projeto Integrado 2 Desenvolvimento 21 Tarefa 1 Governança de TI é uma parte essencial da governança corporativa especialmente na era digital Ao falar sobre elaboração e implementação de normas e políticas de privacidade e gestão de nuvem é vital entender que esses princípios ajudam a garantir que a tecnologia suporte os objetivos de negócio ao mesmo tempo que protege os direitos dos usuários e as informações da empresa Alguns fundamentos e exemplos sobre a elaboração e implementação de normas e políticas de privacidade e gestão de nuvem são 1 Avaliação de Risco Fundamento Antes de implementar qualquer política ou norma é crucial entender os riscos associados aos dados que você está armazenando ou processando Exemplo Para empresas que armazenam informações pessoais sensíveis na nuvem pode ser necessário avaliar riscos como acesso não autorizado falhas de compliance ou violações de dados 2 Definição Clara de Papéis e Responsabilidades 2 Fundamento Determinar quem na organização é responsável por quais aspectos da privacidade e gestão da nuvem Exemplo Enquanto um CISO Chief Information Security Officer pode ser responsável pela segurança geral da informação pode haver um gerente de conformidade designado especificamente para garantir que a empresa esteja aderindo às regulamentações de privacidade 3 Transparência Fundamento Os usuários e partes interessadas devem ser informados sobre como seus dados são coletados processados e armazenados Exemplo Uma política de privacidade clara e compreensível que informe os usuários sobre a coleta de dados seu uso e seus direitos em relação a esses dados 4 Implementação de Controles Técnicos Fundamento Utilizar tecnologias para proteger informações e garantir a conformidade Exemplo Criptografia de dados em repouso e em trânsito multifator de autenticação para acesso a ambientes sensíveis e soluções de DLP Data Loss Prevention para monitorar e controlar transferências de dados 5 Auditoria e Monitoramento Fundamento Manter registros e realizar auditorias regulares para garantir a conformidade e identificar possíveis problemas Exemplo Logs de acesso e modificações feitas em bancos de dados sensíveis junto com revisões periódicas por terceiros para garantir que a empresa esteja seguindo suas próprias políticas e regulamentações aplicáveis 6 Educação e Treinamento Fundamento Garantir que todos os funcionários entendam a importância das políticas e saibam como seguir os procedimentos corretos Exemplo Workshops anuais sobre privacidade de dados e segurança em nuvem para todos os funcionários 7 Resposta a Incidentes 3 Fundamento Ter um plano de resposta a incidentes para lidar rapidamente com qualquer violação de segurança ou vazamento de dados Exemplo Protocolos de notificação para alertar os usuários afetados em caso de violação de dados bem como procedimentos para mitigar os danos e prevenir futuras ocorrências 8 Revisão e Atualização Periódica Fundamento O cenário de ameaças bem como as regulamentações estão sempre mudando As políticas e normas devem ser revisadas regularmente Exemplo Uma revisão anual das políticas de privacidade para garantir a conformidade com regulamentos atualizados como o GDPR Regulamento Geral sobre a Proteção de Dados europeu ou a LGPD Lei Geral de Proteção de Dados Pessoais no Brasil 22 Tarefa 2 Uma das ferramentas mais notórias e amplamente adotadas no mundo do desenvolvimento de software para Integração Contínua CI e Entrega Contínua CD é o Jenkins O Jenkins é um servidor de automação de código aberto que permite aos desenvolvedores construir testar e implementar seu código de forma contínua Ele é altamente configurável através de uma vasta gama de plugins que o tornam adaptável a quase qualquer fluxo de trabalho de CICD O Jenkins quando configurado corretamente proporciona uma solução robusta de CICD que acelera o processo de desenvolvimento aumenta a qualidade do software e reduz o tempo e o esforço associados ao lançamento de novas versões Ele encapsula os princípios de Integração Contínua garantindo que o código seja constantemente testado e esteja pronto para ser entregue a qualquer momento Algumas utilidades do Jenkins em um processo de desenvolvimento baseado em CICD são 1 Automação de Builds Jenkins pode ser configurado para realizar compilações do código fonte sempre que uma alteração é feita Isso garante que os 4 desenvolvedores estejam sempre trabalhando com a versão mais recente do software e que problemas sejam identificados rapidamente 2 Testes Contínuos Jenkins pode executar uma série de testes automáticos toda vez que uma nova versão do código for construída Isso garante que regressões ou novos bugs sejam rapidamente identificados 3 Integração com Controle de Versão Jenkins tem integrações robustas com sistemas de controle de versão como Git SVN entre outros Assim sempre que um novo código é commitado no repositório Jenkins pode ser configurado para iniciar um build e testar o código 4 Deployment Automatizado Com Jenkins o código pode ser automaticamente implementado em ambientes de teste staging ou produção após a fase de build e teste 5 Notificações Jenkins pode notificar os desenvolvedores se um build falhar ou se algum teste não passar Isso ajuda as equipes a serem proativas na correção de problemas 6 Plugins e Extensibilidade A ampla variedade de plugins disponíveis permite que o Jenkins se integre com quase todas as ferramentas populares do mercado como Docker Kubernetes AWS Azure etc Isso permite que as equipes configurem seu pipeline CICD de acordo com suas necessidades específicas 7 Ambiente Paralelo e Distribuído Jenkins permite que os builds sejam distribuídos entre diferentes máquinas e containers Isso acelera o processo de construção e teste especialmente para projetos maiores 8 Histórico e Monitoramento 5 Através do painel do Jenkins é possível monitorar o histórico de builds testes e deployments Isso proporciona uma visão clara do estado do projeto em qualquer momento 23 Tarefa 3 231 O que é um BSC Balanced Scorecard O Balanced Scorecard BSC é uma ferramenta de gestão estratégica que busca equilibrar indicadores em diferentes perspectivas para proporcionar uma visão ampla e completa do desempenho organizacional Ao invés de focar apenas em métricas financeiras o BSC considera outros aspectos vitais do negócio A ideia é que observando o negócio sob várias perspectivas os gestores possam ter uma compreensão mais holística e equilibrada do desempenho da organização e assim tomar decisões mais informadas 232 Em qualis âmbitos da empresa um BSC pode contribuir O BSC pode contribuir em diversos âmbitos da empresa especialmente em Estratégia Ajudando a traduzir a visão e estratégia da empresa em objetivos operacionais concretos Finanças Avaliando o desempenho financeiro e observando como as ações e as estratégias se traduzem em valor para a empresa Clientes Monitorando a satisfação e retenção de clientes bem como a aquisição de novos clientes Processos Internos Analisando a eficiência e eficácia dos processos operacionais principais Aprendizado e Crescimento Observando a capacidade da empresa de se inovar aprender e melhorar Isso envolve aspectos como a satisfação dos empregados a cultura corporativa e a capacidade de inovação 233 Diferenças entre um BSC e um Dashboard Finalidade 6 BSC É uma ferramenta estratégica focada em medir o desempenho da organização em relação à sua visão e estratégia usando uma variedade de indicadores distribuídos em várias perspectivas Dashboard É uma ferramenta visual que exibe métricas e indicadores chave KPIs sobre diversos aspectos do negócio Sua finalidade é fornecer uma visão rápida e clara da situação atual Complexidade e Profundidade BSC Geralmente é mais profundo focado em conectar objetivos estratégicos com indicadores metas e iniciativas Dashboard É mais uma representação gráfica de dados e informações permitindo visualizações rápidas e decisões informadas no dia a dia Tempo de Análise BSC Tende a ser usado para análises de médio a longo prazo ajudando na tomada de decisão estratégica Dashboard Frequentemente atualizado em tempo real ou em curtos intervalos de tempo sendo mais tático Componentes BSC Inclui objetivos indicadores metas e iniciativas alinhados com a estratégia da empresa Dashboard Consiste principalmente de gráficos tabelas e outras visualizações que refletem métricas e KPIs atuais Perspectiva BSC Abordagem holística focada em várias perspectivas financeira cliente processos internos aprendizado e crescimento Dashboard Pode focar em qualquer área ou conjunto de dados seja ela financeira operacional de marketing etc 24 Tarefa 4 O Behavior Driven Development BDD é uma evolução do Test Driven Development TDD Ele se concentra em definir o comportamento do software através da colaboração entre os desenvolvedores QA Quality Assurance e os stakeholders nãotécnicos Três princípios essenciais orientam a prática do BDD 7 1 Desenvolvimento baseado em necessidades reais O foco do BDD está em satisfazer as necessidades reais dos usuários e stakeholders Ao usar histórias de usuário e critérios de aceitação a equipe garante que as funcionalidades desenvolvidas são realmente necessárias e oferecem valor ao negócio e aos usuários finais Ao basear o desenvolvimento em situações reais a equipe evita trabalhar em características desnecessárias ou mal definidas 2 Colaboração e Comunicação Um dos principais benefícios do BDD é promover a colaboração e comunicação entre equipes técnicas e nãotécnicas Ao discutir histórias de usuários e critérios de aceitação todos os envolvidos no projeto têm a oportunidade de contribuir com seus insights e garantir que haja um entendimento mútuo sobre o que está sendo desenvolvido Isso minimiza os riscos de malentendidos e retrabalho As ferramentas usadas em BDD como Cucumber ou SpecFlow permitem que os testes sejam escritos em uma linguagem natural facilitando a participação de todos mesmo daqueles que não têm conhecimento técnico 3 Feedback Rápido Com o BDD os testes são escritos antes do código assim como no TDD No entanto esses testes não são apenas testes unitários são testes de comportamento que definem como o software deve funcionar do ponto de vista do usuário Esses testes dão feedback imediato para os desenvolvedores sobre se o software está ou não funcionando conforme o esperado Se um teste falhar eles saberão imediatamente que algo não está certo permitindo que erros sejam corrigidos cedo no ciclo de desenvolvimento quando é mais barato e fácil de fazer A combinação desses princípios no BDD garante que o software desenvolvido esteja alinhado com as necessidades do negócio promove uma comunicação mais eficaz entre todos os envolvidos no projeto e fornece feedback rápido para a equipe de desenvolvimento tornando o processo de desenvolvimento mais eficiente e produtivo 3 Referências Bibliográficas WEILL Peter ROSS Jeanne W Governança de TI Tecnologia da informação São Paulo M Books do Brasil Editora Ltda 2006 8 FOWLER Martin HIGHSMITH Jim Continuous integration ThoughtWorks 2001 KAPLAN Robert S NORTON David P A estratégia em ação balanced scorecard Rio de Janeiro Campus 1997 NORTH Dan Behaviourdriven development Encyclopedia of Software Engineering 2010 JENKINS Disponível em httpswwwjenkinsio Acesso em 17 de setembro de 2023 XP EDUCAÇÃO Balanced Scorecard BSC o que é e como aplicar em sua empresa Disponível em httpsblogxpeducacaocombrbalancedscorecardbsc gclidCj0KCQjwx5qoBhDyARIsAPbMagBJE1DfNJdo65K7ND hkSMJzfPNIiyUm26jnTOI2PCEZxdi45FiQvoaAvwmEALwwcB Acesso em 17 de setembro de 2023 9