Prévia do material em texto
Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Unidade 1 Tecnologia da Informação e Comunicação no Ambiente Organizacional Aula 1 Conceitos e Princípios da Informação Conceitos e princípios da informação Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Prepare-se para mergulhar em um universo fascinante! Vamos explorar, juntos, três temas essenciais aos sistemas de computação: o princípio da informação, a evolução dos sistemas de informação e o valor da informação. Entender o princípio da informação é como descobrir o segredo para transformar dados em um conhecimento poderoso. Ao estudar sobre a evolução dos sistemas, você perceberá como a tecnologia se desenvolveu ao longo do tempo e de que maneira esse fenômeno afeta o nosso dia a dia. Além disso, ao compreender o valor da informação, você notará como ela pode ser uma verdadeira chave para obter sucesso em qualquer área. Esses conceitos não são apenas teorias; são ferramentas que podem transformar seu modo de pensar e agir no mundo digital. Esta é a sua chance de adquirir um conhecimento que fará toda a diferença na sua trajetória de aprendizagem. Juntos, descobriremos o poder da informação! Aproveite esta jornada de conhecimento! Vamos lá! Ponto de Partida Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Olá! Boas-vindas a uma jornada fascinante pelo mundo da informação. Vamos explorar, juntos, alguns conceitos fundamentais que não apenas moldam a forma como vivemos e trabalhamos, mas também abrem portas para inúmeras oportunidades. Começaremos nossa análise considerando o princípio da informação, que é a base do modo pelo qual entendemos e utilizamos os dados ao nosso redor. Imagine ser capaz de transformar simples fatos e números em um conhecimento poderoso, o qual pode guiar decisões importantes. É isso que tal princípio nos ensina. Em seguida, viajaremos pelo campo da evolução dos sistemas de informação. É incrível observar como as ferramentas e tecnologias que usamos hoje foram moldadas por avanços ao longo do tempo. Compreender essa evolução nos ajuda a perceber como chegamos até aqui e de que forma podemos contribuir para o futuro da tecnologia. Por �m, abordaremos o valor da informação. Em um mundo onde a informação é o novo petróleo, saber como gerá-la, utilizá-la e protegê-la é crucial para obter sucesso em qualquer área. Nesse sentido, vamos descobrir como a informação pode se tornar um recurso estratégico e valioso, tanto para empresas quanto para indivíduos. Para contextualizar sua aprendizagem, imagine a seguinte situação: você trabalha em uma empresa que vem enfrentando di�culdades na gestão de informações de seus clientes. Recentemente, foi implementado um novo sistema de Customer Relationship Management (CRM), o qual gerencia e organiza os dados e informações dos clientes. Porém o pessoal do TI tem encontrado diversos problemas relacionados à integridade, precisão e disponibilidade dos dados. Isso tem gerado atrasos no atendimento e insatisfação por parte dos clientes. O diretor da sua empresa acredita que a solução reside na aplicação adequada do princípio da informação de dados, a �m de melhorar a qualidade dos registros e promover a satisfação dos clientes. Nesse momento, o seu diretor lhe chama e faz a seguinte pergunta: como podemos aplicar o princípio da informação de dados para resolver os problemas da gestão de informações (integridade, precisão e disponibilidade dos dados) e ampliar a satisfação dos nossos clientes? Mergulhe neste estudo para responder a essa e outras perguntas. Descubra como a informação pode auxiliá-lo e compreenda de que maneira ela pode ser empregada em diversas situações, sejam estas relativas a um sistema especí�co ou a outros mais comuns. Vamos embarcar nesta jornada de aprendizagem juntos? Bons estudos! Vamos Começar! Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO O princípio da informação em sistemas da computação: a base da tomada de decisão Informação é um conceito fundamental para diversas áreas do conhecimento humano, como a ciência da computação, a comunicação, a �loso�a e a gestão. De maneira geral, a informação pode ser entendida como um conjunto de dados organizados de forma que apresentem signi�cado e utilidade para quem os recebe (Audy; Andrade; Cidral, 2005). Trata-se de um elemento essencial para a tomada de decisões, resolução de problemas e transmissão de conhecimento. O princípio da informação em sistemas de computação é um conceito crucial, o qual guia a concepção, implementação e operação de sistemas computacionais. Ele se baseia na premissa de que a informação é a essência dos dados processados por computadores, servindo como pilar para a tomada de decisões, execução de operações e geração de conhecimento (Baltzan; Phillips, 2012). Tal princípio abrange várias dimensões, as quais contemplam desde a organização e o armazenamento de dados até a transmissão e segurança da informação. Como a informação é uma maneira organizada de se comunicar por meio dos dados, concluímos que um dado é uma unidade básica de informação (Baltzan; Phillips, 2012). O que é um dado? Dados são representações de fatos, instruções ou conceitos feitas de um modo formalizado, adequado para a comunicação, interpretação ou processamento por meios humanos ou automáticos (Escada et al., 2021). Eles constituem a matéria-prima que, uma vez coletada e organizada, pode ser transformada em informação útil e signi�cativa. Dados podem ser qualquer tipo de detalhe registrado possível de se utilizar para análise, como números, textos, imagens, sons, entre outros elementos (Baltzan; Phillips, 2012). No campo da ciência da computação e da tecnologia da informação, dados são a matéria-prima que, quando coletada, organizada e processada, pode ser transformada em informação útil (Pressman, Maxim, 2021). Na literatura a respeito do assunto, diversos autores – (Pressman; Maxim, 2021), (Silberschatz, 2020), (Machado, 2014), (Baltzan; Phillips, 2012), (Escada et al., 2021) – a�rmam que os dados são categorizados de diversas maneiras, como: Dados estruturados: dados organizados em um formato especí�co, como tabelas em banco de dados. Exemplos: nomes, endereços, números de telefone e datas. Dados não estruturados: dados que não possuem uma organização prede�nida, como textos livres. Exemplos: imagens, vídeos e e-mails. Dados semiestruturados: dados que não se encaixam em uma estrutura de banco de dados, mas apresentam uma organização. Exemplo: arquivos XML e JSON. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Reconhecer a distinção e a organização desses diferentes tipos de dados é vital para a criação de sistemas e�cientes que possam transformar dados brutos em informações valiosas para a tomada de decisões e a geração de conhecimento. A informação está presente em nossas vidas em todos os lugares, visto que passamos o tempo todo acessando dados e informações. A previsão do tempo que você consulta no seu smartphone é apenas uma das informações pesquisadas diariamente. Para gerar essa e outras milhares de informações que acessamos cotidianamente, muitos dados foram analisados e relacionados com o uso de diferentes sistemas de computação e informação, com base em dados. Redes sociais, como Instagram e Facebook, utilizam uma quantidade imensa de dados para analisar e retornar anúncios e propagandas para os usuários. Siga em Frente... Tecnologia da informação: um mundo conectado A Tecnologia da Informação, ou simplesmente TI, é um campo vasto que envolve o uso de computadores e softwares para armazenar, organizar, processar e transmitir dados. Em outras palavras, a TI é a espinha dorsal do mundo digital, pois permite que empresas, governos e indivíduos se conectem, compartilhemcon�dencialidade, integridade, disponibilidade, autenticidade e não repúdio (Agra; Barboza, 2019). Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Con�dencialidade: somente pessoas autorizadas podem acessar a informação. Ou seja, a informação não pode estar disponível ou ser revelada a usuários e/ou processos não autorizados (Nakamura, 2016). Integridade: deve-se assegurar que a informação apresentada seja verdadeira. Assim sendo, os dados não podem ser modi�cados sem a permissão prévia do administrador do sistema. Se um dado for alterado incorretamente, a informação sofrerá um impacto negativo e, por consequência, será incorreta, o que comprometerá sua integridade, ou seja, a sua verdade (Nakamura, 2016). Disponibilidade: os recursos de informação devem estar disponíveis sempre que forem necessários para os usuários autorizados. Nesse sentido, é importante contar com serviços, sistemas e dados prontamente acessíveis e operacionais, evitando interrupções não planejadas (Agra; Barboza, 2019). Autenticidade: refere-se à garantia de que as informações e as identidades dos usuários sejam genuínas e veri�cáveis. Em termos práticos, isso signi�ca assegurar que os dados recebidos ou transmitidos vêm de uma fonte legítima e que a identidade de quem acessa ou altera a informação é con�rmada de modo con�ável. Para assegurar a autenticidade, são usadas técnicas como autenticação multifatorial, na qual os usuários devem fornecer mais de uma forma de prova de identidade, e métodos de veri�cação digital, como certi�cados digitais, que comprovam a identidade de sistemas e indivíduos (Fontes, 2012). Não repúdio: princípio que impede que uma parte envolvida em uma transação ou comunicação negue sua participação ou a veracidade da informação posteriormente. Em outras palavras, o não repúdio garante que um usuário ou remetente não possa a�rmar que não enviou ou recebeu uma mensagem ou transação especí�ca. Para assegurar o não repúdio, utilizam-se mecanismos como assinaturas digitais e registros de auditoria, que criam provas veri�cáveis da origem e integridade das informações, garantindo que todas as partes associadas ao contexto sejam responsabilizadas por suas ações (Zanin et al., 2018). Também não podemos deixar de citar a vulnerabilidade, a ameaça e o exploit. Esses princípios são a base para o estabelecimento de estratégias de segurança robustas em ambientes digitais. Vulnerabilidade: corresponde às fraquezas nos sistemas ou processos que podem ser exploradas por ameaças para comprometer a segurança da informação. Ameaça: representa qualquer evento ou circunstância que possa causar danos aos sistemas ou à informação. As ameaças podem ser naturais (como desastres naturais) ou humanas (como ataques cibernéticos). Exploit: refere-se à ação de tirar vantagem de uma vulnerabilidade existente para explorar ou comprometer a segurança de um sistema, gerando danos à informação ou à infraestrutura. Esses princípios trabalham em conjunto para criar um ambiente de segurança da informação sólido. A con�dencialidade protege os dados de acessos não autorizados, a integridade garante a consistência dessas informações, enquanto a disponibilidade as mantém acessíveis. A Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO identi�cação de vulnerabilidades e ameaças ajuda na prevenção de ataques, reduzindo a possibilidade de exploits (Zanin et al., 2018). Compreender e aplicar esses princípios são ações cruciais para desenvolver estratégias e�cazes de segurança da informação, protegendo ativos valiosos e garantindo a con�ança e a integridade dos sistemas digitais em um mundo cada vez mais interconectado. Elementos a serem protegidos Proteger elementos de informação não é apenas uma questão de segurança técnica, mas também envolve aspectos legais e éticos, os quais asseguram que os dados sejam manuseados de forma responsável e conforme as regulamentações vigentes. A identi�cação e a proteção adequadas desses elementos são práticas indispensáveis para prevenir fraudes, vazamentos e ataques cibernéticos, além de ajudarem a manter a con�ança dos clientes e a integridade das operações. Nesse contexto, é vital entender quais são os principais tipos de elementos de informação que devem ser protegidos e as melhores práticas para garantir sua segurança. Em segurança de dados, vários elementos precisam ser preservados para salvaguardar a integridade, con�dencialidade e disponibilidade das informações, como: 1. Dados sensíveis e con�denciais: - Informações pessoais: dados como nome, endereço, número de identi�cação, informações médicas e �nanceiras de clientes e funcionários. - Propriedade intelectual: segredos comerciais, patentes, projetos de pesquisa e desenvolvimento, fórmulas, algoritmos e outros ativos intangíveis. - Informações de negócios: estratégias de marketing, planos operacionais, contratos, registros �nanceiros e informações estratégicas. 2. Infraestrutura de TI: - Redes e sistemas: servidores, roteadores, switches, sistemas operacionais e infraestrutura de rede necessária para a operação dos serviços. - Armazenamento de dados: bancos de dados, data centers e sistemas de armazenamento em nuvem onde os dados são mantidos. 3. Equipamentos e dispositivos: - Dispositivos físicos: computadores, laptops, smartphones, tablets, dispositivos IoT (Internet das Coisas) e qualquer hardware que contenha ou acesse dados sensíveis. 4. Aplicações e software: - Aplicações e softwares: sistemas de gerenciamento, softwares empresariais, aplicativos móveis e quaisquer programas utilizados para armazenar, processar ou acessar dados. 5. Pessoas: constituem um dos ativos mais valiosos em qualquer sistema de segurança da informação. Incluem não apenas os colaboradores, mas também usuários externos que interagem com os sistemas. Para garantir sua proteção, considere os seguintes aspectos: - Conscientização e treinamento: educar os usuários sobre boas práticas de segurança, Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO averiguando desde a criação de senhas fortes até a identi�cação de ameaças, como phishing, é crucial para fortalecer a defesa contra possíveis ataques. - Controle de acesso: devem-se implementar políticas de acesso que garantam que cada usuário tenha as permissões adequadas para acessar apenas as informações e recursos necessários à execução de suas atividades. �. Gerenciamento de contas e senhas O gerenciamento coerente de contas e senhas é um componente essencial da segurança da informação, uma vez que as credenciais de acesso são frequentemente alvos de ataques. Para garantir a integridade das contas, considere os seguintes aspectos: - Políticas de senhas: implementar políticas que exijam senhas fortes, atualizações regulares e evitem o uso de senhas comuns é uma medida crucial. - Autenticação em duas etapas: adotar a autenticação em duas etapas aumenta a segurança, exigindo uma segunda forma de veri�cação além da senha. A proteção de dados é uma necessidade crítica em um ambiente digital cada vez mais interconectado. Investir em medidas de segurança apropriadas para esses elementos é uma maneira de mitigar riscos, assegurar a continuidade das operações e preservar a integridade das informações, promovendo a con�ança e a robustez dos sistemas e da infraestrutura de TI (Fontes, 2012). Os riscos representam eventos que podem ocorrer, e precisamos conhecê-los para prover a devida segurança com a implementação de controles. No entanto, como há riscos aceitos, riscos residuais e novos riscos não identi�cados ou emergentes, é preciso estar preparado para eventuais incidentes de segurança (Agra; Barboza, 2019). A identi�cação de riscos requer o conhecimento de certos elementos, como ativos, vulnerabilidades, ameaças e agentes de risco (Agra; Barboza, 2019). A análise e avaliação de riscos é realizada por meio do cálculo da probabilidade e do impacto de cada evento detectado, con�gurando uma matriz de riscos. A partir desse ponto, os procedimentos de segurança ou medidas de proteção são de�nidos e implementadosno tratamento dos riscos (Agra; Barboza, 2019). Os ativos podem apresentar algumas vulnerabilidades, isto é, fraquezas que existem em ativos que os agentes de ameaça exploram em seus ataques. Um exemplo pode ser observado quando um cracker (agente de ameaça) explora uma autenticação fraca do usuário (vulnerabilidade) na aplicação web (ativo). Essa ameaça pode se tornar um incidente de segurança e ser lançada em diferentes níveis (Silva, 2023). Há possibilidades de ataques aos computadores com um malware ao servidor, quando a investida busca explorar vulnerabilidades no sistema operacional, ou ao banco de dados, quando o sistema é atacado por uma falha na autenticação do administrador. Inclusive, podem acontecer invasões físicas aos servidores ou golpes que se aproveitem da inocência de um funcionário. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO As vulnerabilidades estão relacionadas aos ativos, e esse conceito é importante no contexto da segurança da informação por se tratar do elemento que é explorado em ataques (Agra; Barboza, 2019). Uma vulnerabilidade é um ponto fraco que, uma vez usado, resulta em um incidente de segurança. Proteger esses elementos é crucial para evitar acesso não autorizado, vazamentos de informações con�denciais, interrupções de serviço, perda de dados e danos à reputação. A segurança de dados busca garantir que apenas indivíduos autorizados tenham acesso aos dados necessários, mantendo sua integridade e disponibilidade, bem como respeitando as regulamentações de privacidade e compliance aplicáveis (Zanin et al., 2018). Siga em Frente... Introdução sobre mecanismo de defesa (processo, tecnologia e prevenção) Os mecanismos de defesa são a espinha dorsal da segurança da informação, envolvendo processos, tecnologias e medidas preventivas que protegem ativos valiosos contra ameaças cibernéticas. Tais mecanismos englobam desde processos de gestão de riscos e políticas de segurança até tecnologias avançadas, como �rewalls e criptogra�a, além de medidas preventivas, como atualizações regulares e conscientização de usuários. Esse cenário de segurança é continuamente desa�ado por ataques so�sticados, como os de negação de serviço (DoS e DDoS), cujo objetivo é comprometer a disponibilidade e acessibilidade dos sistemas. Portanto, uma compreensão aprofundada e a aplicação estratégica desses mecanismos são fatores essenciais para garantir a proteção e a resiliência das operações digitais em um mundo cada vez mais vulnerável a ameaças cibernéticas. Os ataques clássicos que comprometem a disponibilidade são os de negação de serviço, como o DoS (Denial of Service) e o DDoS (Distributed Denial of Service) (Agra; Barboza, 2019). De acordo com Agra e Barboza (2019) os ataques de negação de serviços (DoS) geram uma exploração agressiva de recursos, impedindo que usuários legítimos possam usufruir deles. Nesses ataques, que podem ocorrer com o emprego de diversas técnicas, as quais abrangem desde o nível de rede até o nível de aplicação, os serviços se tornam indisponíveis e o acesso à informação é comprometido. Dessa forma, pode-se a�rmar que os mecanismos são fundamentais para manter a integridade, con�dencialidade e disponibilidade dos dados em um ambiente digital cada vez mais complexo e interconectado. A seguir, elencamos alguns pontos de atenção que podem apoiar a proteção dos ativos contra ameaças cibernéticas (Silva, 2023). Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO 1. Processos de defesa: - Gestão de riscos: identi�cação, avaliação e mitigação de riscos associados à segurança da informação, adotando estratégias para minimizar vulnerabilidades. - Políticas de segurança: estabelecimento de diretrizes e regras que regem o uso adequado de sistemas e informações, delineando as responsabilidades e práticas de segurança. - Gestão de incidentes: procedimentos para lidar com incidentes de segurança, como violações de dados, ataques cibernéticos e falhas de segurança, na intenção de reduzir danos e restaurar a normalidade. 2. Tecnologias de defesa: - Firewalls e segurança de rede: utilização de �rewalls para monitorar e controlar o tráfego de rede, impedindo acessos não autorizados e protegendo contra ameaças externas. - Antivírus e antimalware: softwares especializados que identi�cam, bloqueiam e removem malware, protegendo sistemas contra ameaças como vírus, spyware e ransomware. - Criptogra�a: técnica para codi�car dados, tornando-os ilegíveis para pessoas não autorizadas, o que ajuda a garantir a con�dencialidade das informações. 3. Medidas preventivas: - Atualizações de segurança: manter sistemas, aplicativos e softwares atualizados com as últimas correções de segurança, para evitar vulnerabilidades conhecidas. - Controle de acesso: implementar políticas de acesso para assegurar que apenas usuários autorizados tenham permissão para acessar recursos especí�cos. - Conscientização e treinamento: educar funcionários sobre boas práticas de segurança, incluindo phishing, senhas fortes e procedimentos de segurança. 4. Importância dos mecanismos de defesa: - Proteção dos ativos: garantir a integridade, con�dencialidade e disponibilidade dos dados, preservando sua importância e valor. - Mitigação de riscos: reduzir a probabilidade de ocorrência de violações de segurança, prevenindo possíveis danos e prejuízos. - Conformidade regulatória: cumprir regulamentações de segurança e privacidade, evitando sanções legais e danos à reputação. Os mecanismos de defesa formam a base da segurança cibernética, trabalhando em conjunto para proteger ativamente sistemas e dados contra ameaças. Isso ajuda a preservar a con�ança e a integridade das operações digitais. A integração bem-sucedida de processos de gestão de riscos, políticas de segurança, tecnologias, como �rewalls e criptogra�a, e medidas preventivas, como atualizações e treinamento, é vital para assegurar a integridade, con�dencialidade e disponibilidade dos dados. Manter essas práticas robustas e adaptativas é fundamental para proteger ativos digitais, mitigar riscos e garantir a conformidade regulatória, preservando, assim, a segurança e a con�ança nas operações digitais. Vamos Exercitar? Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Descrição da situação-problema Agora que você já possui conhecimentos relacionados à segurança da informação, está apto para responder à pergunta feita no início desta aula: quais são os princípios fundamentais da segurança da informação que a TechGuard Inc. deve adotar para melhorar sua proteção contra vazamentos e garantir a segurança de suas informações sensíveis? Solução Para melhorar a proteção contra vazamentos e garantir a segurança das informações sensíveis, a TechGuard Inc. deve considerar os seguintes princípios fundamentais da segurança da informação: Con�dencialidade: é importante assegurar que as informações sejam acessíveis apenas para aqueles que têm autorização. Isso pode ser alcançado por meio de controles de acesso rigorosos, criptogra�a de dados e práticas adequadas de gerenciamento de senhas. Integridade: consiste em garantir que as informações permaneçam completas e precisas, como também que não sejam alteradas de forma não autorizada. A integridade pode ser mantida com a implementação de mecanismos de controle de alterações, validação de dados e auditorias regulares. Disponibilidade: deve-se garantir que as informações e os sistemas estejam acessíveis aos usuários autorizados quando necessário. Para assegurar a disponibilidade, é essencial ter planos de continuidade de negócios, backups regulares e proteções contra ataques de negação de serviço (DoS e DDoS). Autenticidade: é importante se certi�car de que as informações são genuínas e a identidade dos usuários é veri�cável. Isso inclui a implementação de métodos robustos de autenticação, como autenticação multifatorial e veri�cações de identidade. Não repúdio: consiste em garantir que as partes envolvidas não possam negar a autoria ou o recebimento de uma transação ou comunicação. Tal efeito podeser obtido com o uso de assinaturas digitais e registros de auditoria que comprovam a origem e a integridade das informações. Adotar esses princípios ajudará a TechGuard Inc. a construir uma base sólida para a segurança da informação, protegendo seus dados sensíveis contra acessos não autorizados e garantindo a continuidade e a integridade das operações. Saiba mais Para saber mais detalhes sobre segurança de dados, faça a leitura do artigo HashifyPass: uma ferramenta para visualização de Hashes de senhas. Acesse o material sugerido por meio do link a seguir. https://sol.sbc.org.br/index.php/sbseg_estendido/article/view/21695/21519 https://sol.sbc.org.br/index.php/sbseg_estendido/article/view/21695/21519 Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO CARVALHO, H. A. de. et al. HashifyPass: uma ferramenta para visualização de Hashes de senhas. In: SALÃO DE FERRAMENTAS – SIMPÓSIO BRASILEIRO DE SEGURANÇA DA INFORMAÇÃO E DE SISTEMAS COMPUTACIONAIS (SBSEG), 22., 2022, Santa Maria. Anais... Porto Alegre: Sociedade Brasileira de Computação, 2022, p. 79-86. Referências AGRA, A. D.; BARBOZA, F. F M. Segurança de sistemas da informação. Porto Alegre: Grupo A, 2019. CARVALHO, H. A. de. et al. HashifyPass: uma ferramenta para visualização de Hashes de senhas. In: SALÃO DE FERRAMENTAS – SIMPÓSIO BRASILEIRO DE SEGURANÇA DA INFORMAÇÃO E DE SISTEMAS COMPUTACIONAIS (SBSEG), 22., 2022, Santa Maria. Anais... Porto Alegre: Sociedade Brasileira de Computação, 2022, p. 79-86. Disponível em: https://sol.sbc.org.br/index.php/sbseg_estendido/article/view/21695. Acesso em: 9 ago. 2024. FONTES, E. L. G. Segurança da informação. São Paulo: Saraiva, 2012. NAKAMURA, E. T. Segurança da informação e de redes. Londrina: Editora e Distribuidora Educacional, 2016. SILVA, M. B. F. da. Cibersegurança: uma visão panorâmica sobre a segurança da informação na internet. Rio de Janeiro: Freitas Bastos, 2023. ZANIN, J. S. et al. Fundamentos de segurança da informação. Porto Alegre: Grupo A, 2018. Aula 5 Encerramento da Unidade Videoaula de Encerramento Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Os sistemas de informação evoluíram de registros manuais para redes digitais avançadas, re�etindo o avanço tecnológico e a crescente demanda por e�ciência. Cada época da história trouxe inovações que modi�caram a coleta, o processamento e a utilização de informações. A informação tem o poder de diminuir incertezas, melhorar a tomada de decisões e oferecer vantagens competitivas. Com ferramentas como Big Data e inteligência arti�cial, empresas e indivíduos podem explorar oportunidades inéditas e solucionar problemas complexos. Entender as particularidades atreladas ao princípio da informação, ao aprimoramento dos sistemas de informação e ao valor da informação é uma prática essencial para quem deseja participar da revolução digital e contribuir para um futuro no qual a informação seja o principal motor de inovação e crescimento. Estudar sobre esses temas signi�ca mergulhar em um campo dinâmico e vital para o sucesso na era moderna. Prepare-se para esta jornada de conhecimento! Vamos lá! Ponto de Chegada O princípio da informação em sistemas de computação O princípio da informação em sistemas de computação é um conceito fundamental que guia a concepção, implementação e operação de sistemas computacionais. Baseia-se na premissa de que a informação é a essência dos dados processados por computadores, servindo como alicerce para a tomada de decisões, execução de operações e geração de conhecimento (Baltzan; Phillips, 2012). Tal princípio abrange várias dimensões, as quais contemplam desde a organização e o armazenamento de dados até a transmissão e segurança da informação. Como a informação é uma forma organizada de se comunicar a partir dos dados, concluímos que dado é uma unidade básica de informação (Baltzan; Phillips, 2012). A evolução dos sistemas de informação A evolução dos sistemas de informação é permeada por uma trajetória fascinante que re�ete o progresso tecnológico e as mudanças nas necessidades das organizações e da sociedade ao longo do tempo. Desde os primeiros registros manuais até os complexos sistemas integrados e baseados na nuvem disponíveis atualmente, os sistemas de informação passaram por várias fases de desenvolvimento. A seguir, serão descritas as principais etapas dessa evolução, bem como as inovações que moldaram os sistemas de informação modernos. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Os sistemas de informação atravessaram diversas fases, cada uma com momentos de extrema relevância, o que gerou para a sociedade um ganho na operacionalização de processos (Baltzan; Phillips, 2012). Primeira fase: registros manuais e início da automação. Segunda fase: sistemas operacionais para microcomputadores. Terceira fase: a era da Internet e a popularização do Windows. Quarta fase: computação móvel e em nuvem. Quinta fase: integração da inteligência arti�cial. Ao longo dessas fases, os sistemas de informação evoluíram de simples registros manuais para so�sticadas plataformas inteligentes que dão suporte à tomada de decisões e à inovação em todos os setores. Qual o valor da informação? A informação, quando corretamente coletada, processada, analisada e utilizada, pode gerar visões valiosas que impulsionam a tomada de decisões, aumentam a e�ciência, promovem a inovação e criam vantagens competitivas (Mancini; Souza-Concilio, 2022). A informação é um conjunto de dados que precisam ser armazenados em locais que assegurem sua proteção e integridade (Brookshear, 2013). Esse armazenamento pode ser efetuado de várias maneiras, como por meios físicos, digitais, redes, nuvens, bancos de dados e Big Data. Componentes de um sistema de informação É necessário saber que um sistema de informação nada mais é do que um conjunto organizado de recursos que coleta, processa, armazena e distribui informações. Tais recursos podem ser representados por pessoas, hardware, software, dados e procedimentos (Audy; Andrade; Cidral, 2005). O principal objetivo de um sistema de informação é apoiar a tomada de decisões, coordenação, controle, análise e visualização em uma organização (Baltzan; Phillips, 2012). Os componentes de sistemas de informação são subdivididos em cinco categorias principais: pessoas, hardware, software, dados e procedimentos. A integração e�ciente desses componentes é crucial para o sucesso de qualquer sistema de informação, pois proporciona o suporte essencial para a tomada de decisões e a operação e�caz de uma empresa. Tipos de sistemas de informação Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO De acordo com a literatura que versa sobre essa área (Dale; Lewis, 2010, Escada et al., 2021, Kroenke, 2012, Baltzan; Phillips, 2012, Pressman; Maxim, 2021), podemos categorizar os sistemas de informação de diversas maneiras, mas uma das classi�cações mais comuns os divide em três tipos principais: Sistemas de Processamento de Transações (SPTs), Sistemas de Informação Gerencial (SIGs) e Sistemas de Apoio à Decisão (SADs). Esses sistemas são fundamentais porque abrangem áreas como planejamento �nanceiro, gestão da cadeia de suprimentos, análise de mercado, gestão de riscos e recursos humanos. Em um ambiente empresarial cada vez mais dinâmico e imprevisível, a habilidade de fazer escolhas rápidas e bem embasadas é um diferencial competitivo relevante, e os SADs desempenham um papel crucial nesse processo. Princípios e conceitos de sistemas operacionais O sistema operacional é o elemento essencial que conecta o usuário ao hardware do computador. Ele atua como um intermediário, traduzindo as ações do usuário em comandos que o hardwarecompreende. Essa ponte permite a execução bem-sucedida de programas, fornecendo uma interface intuitiva e gerenciando os recursos do sistema de forma otimizada. Ao abstrair a complexidade do hardware, o sistema operacional possibilita que o usuário se concentre nas tarefas, sem a necessidade de entender os detalhes técnicos do funcionamento interno do computador. Como exemplos de sistemas operacionais, podemos citar: Windows, macOS, Linux, Android e iOS. Os princípios e conceitos mais relevantes relativos aos sistemas operacionais são: gestão de processos e recursos, gerência de memória, multitarefa, gerenciamento de arquivos, segurança e proteção, e interface de usuário. O SO é composto por funções que desenvolvem, controlam e organizam o bom funcionamento do computador (Silberschatz; Galvin; Gagne, 2015). Para obter uma operação bem-sucedida, alguns elementos se fazem necessários. Os principais são: 1. Núcleo (Kernel): é o componente central do SO, responsável por gerenciar o hardware e os recursos do sistema (Silberschatz; Galvin; Gagne, 2015). Ele fornece serviços fundamentais, como gerenciamento de processos, memória e dispositivos. 2. Gerenciador de processos: controla a execução dos processos, incluindo criação, agendamento e �nalização. Também gerencia a troca de contexto e a sincronização entre processos. 3. Gerenciador de memória: encarregado do gerenciamento da memória física e virtual, o gerenciador de memória aloca e libera espaço quando necessário, utiliza técnicas de paginação e segmentação, e protege o espaço de memória de processos concorrentes (Tanenbaum; Woodhull, 2008). 4. Gerenciador de arquivos: organiza e controla o acesso aos arquivos e diretórios no sistema de armazenamento. Ele lida com a criação, leitura, escrita e exclusão de arquivos, além de preservar a integridade e a estrutura dos dados. 5. Gerenciador de dispositivos: inclui os drivers de dispositivo e o subsistema de I/O (Input/Output), os quais viabilizam a comunicação entre o sistema operacional e o Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO hardware periférico. Ele fornece uma interface uniforme para dispositivos de entrada e saída. �. Interface de usuário: a interface de usuário (UI) é a parte do SO que interage diretamente com o usuário. Os sistemas operacionais exercem um papel crucial na operação de computadores e dispositivos, administrando recursos, garantindo a segurança e facilitando a comunicação com o usuário. Introdução sobre princípios da informação Os princípios da segurança de informação são fundamentais para proteger dados sensíveis e sistemas contra potenciais ameaças. Tais princípios são geralmente representados pelos seguintes pilares: con�dencialidade, integridade, disponibilidade, autenticidade e não repúdio (Agra; Barboza, 2019). Também não podemos deixar de citar a vulnerabilidade, a ameaça e o exploit. Esses princípios são a base para o estabelecimento de estratégias de segurança robustas em ambientes digitais. Vulnerabilidade: corresponde às fraquezas nos sistemas ou processos que podem ser exploradas por ameaças para comprometer a segurança da informação. Ameaça: representa qualquer evento ou circunstância que possa causar danos aos sistemas ou à informação. As ameaças podem ser naturais (como desastres naturais) ou humanas (como ataques cibernéticos). Exploit: refere-se à ação de tirar vantagem de uma vulnerabilidade existente para explorar ou comprometer a segurança de um sistema, gerando danos à informação ou à infraestrutura. Esses princípios trabalham em conjunto para criar um ambiente de segurança da informação sólido. A con�dencialidade protege os dados de acessos não autorizados, a integridade garante a consistência dessas informações, enquanto a disponibilidade as mantém acessíveis. A identi�cação de vulnerabilidades e ameaças ajuda na prevenção de ataques, reduzindo a possibilidade de exploits (Zanin et al., 2018). Elementos a serem protegidos A identi�cação e a proteção adequadas desses elementos são práticas indispensáveis para prevenir fraudes, vazamentos e ataques cibernéticos, além de ajudarem a manter a con�ança dos clientes e a integridade das operações. Nesse contexto, é vital entender quais são os principais tipos de elementos de informação que devem ser protegidos e as melhores práticas para garantir sua segurança. Em segurança de dados, vários elementos precisam ser preservados para salvaguardar a integridade, con�dencialidade e disponibilidade das informações, como: dados sensíveis e con�denciais, Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO infraestrutura de TI, equipamentos e dispositivos, aplicações e software, pessoas, gerenciamento de contas e senhas. A proteção de dados é uma necessidade crítica em um ambiente digital cada vez mais interconectado. Investir em medidas de segurança apropriadas para esses elementos é uma maneira de mitigar riscos, assegurar a continuidade das operações e preservar a integridade das informações, promovendo a con�ança e a robustez dos sistemas e da infraestrutura de TI (Fontes, 2012). Introdução sobre mecanismo de defesa Os mecanismos de defesa englobam desde processos de gestão de riscos e políticas de segurança até tecnologias avançadas, como �rewalls e criptogra�a, além de medidas preventivas, como atualizações regulares e conscientização de usuários. Esse cenário de segurança é continuamente desa�ado por ataques so�sticados, como os de negação de serviço (DoS e DDoS), cujo objetivo é comprometer a disponibilidade e acessibilidade dos sistemas. Portanto, uma compreensão aprofundada e a aplicação estratégica desses mecanismos são fatores essenciais para garantir a proteção e a resiliência das operações digitais em um mundo cada vez mais vulnerável a ameaças cibernéticas. Os ataques clássicos que comprometem a disponibilidade são os de negação de serviço, como o DoS (Denial of Service) e o DDoS (Distributed Denial of Service) (Agra; Barboza, 2019). De acordo com Agra e Barboza (2019) os ataques de negação de serviços (DoS) geram uma exploração agressiva de recursos, impedindo que usuários legítimos possam usufruir deles. Os mecanismos de defesa formam a base da segurança cibernética, trabalhando em conjunto para proteger ativamente sistemas e dados contra ameaças. Isso ajuda a preservar a con�ança e a integridade das operações digitais. Re�ita Nas últimas cinco décadas, os sistemas de informação transformaram-se profundamente, assim como aconteceu com o modo de funcionamento das empresas. Esse contexto introduziu uma série de inovações que revolucionaram a gestão e operação das organizações. Desde os primeiros mainframes, que centralizavam o processamento de dados em grandes computadores, até a era atual da computação em nuvem e da inteligência arti�cial, essas tecnologias proporcionaram novos meios de e�ciência, agilidade e competitividade. 1. Diante desse cenário, re�ita sobre as seguintes questões: 2. Como os sistemas de informação mudaram a forma com que as empresas operam? 3. Qual o impacto da tecnologia sobre a vida das pessoas? 4. Quais os desa�os éticos relacionados ao desenvolvimento e uso de sistemas de informação? Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO É Hora de Praticar! Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Uma empresa de médio porte tem se deparado com desa�os em diversas áreas operacionais, que incluem desde o gerenciamento de inventário até a tomada de decisões estratégicas. Para resolver essas complexidades, o CEO da empresa, o sr. Carlos, decidiu implementar diferentes tipos de sistemas de informação. No entanto, ele está incerto sobre quais sistemas são mais adequados para cada necessidade especí�ca da organização. Considerando os tipos de sistemas de informação (Sistemas de Processamento de Transações, Sistemas de Informações Gerenciais, Sistemas de Suporte à Decisãoe Sistemas de Informação Executiva), qual seria a opção mais apropriada para solucionar o caso apresentado? Explique. Para garantir a escolha do sistema de informação mais adequado ao contexto descrito e que seja capaz de atender às necessidades do CEO e da diretoria, é necessário analisar os seguintes pontos: 1. Gerenciamento de inventário e controle de estoque - Sistema de Processamento de Transações (SPT): é ideal para registrar e processar as transações diárias da empresa, como vendas, compras e atualizações de inventário. Permite um controle preciso e em tempo real do estoque, evitando excesso ou falta de produtos. 2. Análise de desempenho de vendas e geração de relatórios mensais - Sistema de Informações Gerenciais (SIG): é apropriado para a análise e geração de relatórios periódicos. Coleta dados dos SPTs e os processa para fornecer relatórios detalhados sobre o desempenho das vendas, ajudando os gerentes a monitorarem e tomarem decisões operacionais. 3. Auxílio na tomada de decisões estratégicas de longo prazo - Sistema de Suporte à Decisão (SAD): apoia a análise de dados complexos e a modelagem de cenários para suportar decisões estratégicas. Esse tipo de sistema utiliza técnicas analíticas avançadas e simulações para fornecer insights valiosos que auxiliam na elaboração de estratégias de longo prazo. 4. Fornecimento de informações consolidadas e resumidas para a alta administração - Sistema de Informação Executiva (SIE): é projetado para disponibilizar uma visão abrangente e resumida do desempenho da empresa, combinando dados de diversas Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO fontes. Oferece dashboards e relatórios consolidados que ajudam a alta administração a monitorar os principais indicadores de performance e a tomar decisões informadas. O mapa mental a seguir apresenta um breve resumo das principais informações relativas aos conceitos e princípios da informação, aos componentes de um sistema da informação, aos sistemas operacionais e aos fundamentos da segurança da informação. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO AGRA, A. D.; BARBOZA, F. F M. Segurança de sistemas da informação. Porto Alegre: Grupo A, 2019. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO AUDY, J. L. N.; ANDRADE, G. K.; CIDRAL, A. Fundamentos de sistemas de informação. Porto Alegre: Grupo A, 2005. BALTZAN, P.; PHILLIPS, A. Sistemas de informação. Porto Alegre: Grupo A, 2012. E-book. BROOKSHEAR, J. G. Ciência da computação. Porto Alegre: Bookman, 2013. DALE, N.; LEWIS, J. Ciência da computação. 4. ed. Rio de Janeiro: LTC, 2010. ESCADA, R. M. et al. Princípios de sistemas de informação. São Paulo: Cengage Learning Brasil, 2021. FONTES, E. L. G. Segurança da informação. São Paulo: Saraiva, 2012. KROENKE, D. M. Sistemas de informação gerenciais. Rio de Janeiro: Grupo GEN, 2012. MANCINI, M.; SOUZA-CONCILIO, I. (Org.). Sistemas de informação: gestão e tecnologia na era digital. Rio de Janeiro: Brasport, 2022. PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software. Porto Alegre: AMGH, 2021. SILBERSCHATZ, A. Sistema de banco de dados. Rio de Janeiro: Grupo GEN, 2020. SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Fundamentos de sistemas operacionais. Rio de Janeiro: LTC, 2015. TANENBAUM, A. S.; WOODHULL, A. S. Sistemas operacionais. Porto Alegre: Bookman, 2008. ZANIN, J. S. et al. Fundamentos de segurança da informação. Porto Alegre: Grupo A, 2018. , Unidade 2 Classi�cação dos Sistemas Computacionais Aula 1 Conceitos e Importância dos Sistemas de Computação Conceitos e importância dos sistemas de computação Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Olá, estudante! Você está convidado a ingressar em um universo de conhecimento, compreensão e busca pelas melhores práticas no processo de escolha de sistemas computacionais. Para tanto, conheceremos as de�nições mais bem fundamentadas para categorizar esses sistemas e descobriremos como alcançar um resultado mais satisfatório para a empresa nesse contexto. Os sistemas computacionais são o coração da tecnologia moderna, pois oferecem uma in�nidade de possibilidades e aplicações. Entender suas características e como são classi�cados é essencial para aproveitar ao máximo suas potencialidades. Desde supercomputadores que realizam cálculos impressionantes até microcomputadores versáteis usados no dia a dia, cada sistema computacional desempenha um papel especí�co e fascinante. A classi�cação dos sistemas ajuda na escolha da tecnologia certa e otimiza operações. Além disso, dominar suas principais características, como processamento rápido, armazenamento e�ciente e segurança robusta, é uma prática que revela o poder e a complexidade desses sistemas. Estudar sobre esses temas não apenas amplia seu conhecimento técnico, mas também abre portas para inovações e soluções criativas. Mergulhe no mundo dos sistemas computacionais e descubra como eles moldam o futuro da tecnologia! Ponto de Partida Estudante, desejo a você boas-vindas! Os sistemas computacionais são fundamentais no mundo moderno, e dominar suas classi�cações e características é essencial para qualquer estudante de tecnologia. Vamos veri�car como a classi�cação dos sistemas pode revelar muito sobre sua importância e funcionalidades. Primeiro, é válido salientar que os sistemas computacionais podem ser classi�cados de várias formas, como por sua �nalidade, arquitetura e capacidade. Essa categorização não é apenas um exercício acadêmico; ela desempenha um papel crucial na escolha de soluções adequadas para problemas especí�cos. Por exemplo, sistemas podem ser divididos em sistemas de processamento de dados, sistemas embarcados e sistemas de tempo real, cada um com características próprias, que atendem a necessidades distintas. A relevância dessa classi�cação não pode ser subestimada. Conhecer os diferentes tipos de sistemas computacionais ajuda pro�ssionais da área da tecnologia a identi�carem quais são as alternativas mais apropriadas para tarefas especí�cas, seja para otimizar o desempenho em grandes empresas ou para desenvolver novos produtos tecnológicos. Além disso, entender essas categorias auxilia na manutenção e na evolução dos sistemas, garantindo que eles continuem suprindo as urgências do mercado e dos usuários. Falando em características, cada sistema computacional possui atributos únicos que de�nem sua funcionalidade e e�ciência. Desde a velocidade de processamento até a con�abilidade e Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO escalabilidade, esses atributos interferem diretamente na escolha do sistema para aplicações singulares. Por exemplo, um sistema embarcado em um dispositivo médico precisa ser altamente con�ável e ter uma capacidade de processamento adequada para garantir seu funcionamento correto. Para contextualizar sua aprendizagem, imagine a seguinte situação: você é gerente de uma pequena empresa de marketing digital e está buscando expandir as operações do seu negócio. Com o aumento da demanda por serviços, percebeu-se que o atual sistema computacional utilizado pela empresa não está mais atendendo às necessidades da equipe. No entanto, você não possui um conhecimento técnico profundo sobre sistemas computacionais e, ao pesquisar sobre o assunto, encontrou termos como “supercomputadores”, “servidores”, “computadores pessoais” e “sistemas embarcados”. Você se pergunta como de�nir e classi�car adequadamente os diferentes tipos de sistemas computacionais para escolher o mais adequado ao contexto de sua empresa. Com base no conceito e na de�nição de sistemas computacionais, como classi�car os diferentes tipos de sistemas disponíveis e qual seria o mais indicado para as necessidades de sua empresade marketing digital? Analisar os conceitos mencionados anteriormente não apenas ampliará seu conhecimento sobre como os sistemas são organizados e classi�cados, mas também revelará a importância de escolher e projetar sistemas com características especí�cas para atender às diversas demandas da tecnologia. Ao entender a fundo esses aspectos, você estará mais preparado para enfrentar desa�os e contribuir com inovações no campo dos sistemas computacionais. Bons estudos! Vamos Começar! Conceitos e de�nição da classi�cação dos sistemas computacionais Um sistema computacional é um conjunto de componentes interligados que trabalham em sincronia para processar informações (Audy; Andrade; Cidral, 2005). Os sistemas computacionais constituem uma das partes essenciais da infraestrutura tecnológica que sustenta a sociedade moderna, desempenhando um papel vital em uma ampla gama de aplicações, as quais abrangem desde tarefas cotidianas até operações complexas em organizações e indústrias. Para compreender plenamente como funcionam os sistemas computacionais, é importante investigar seus conceitos fundamentais e respectivas classi�cações. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Conceitos fundamentais Um sistema computacional pode ser entendido como um conjunto de hardware, software e periféricos que trabalham juntos para executar tarefas especí�cas. O hardware se refere aos componentes físicos do sistema, como processador, memória, discos rígidos e dispositivos de entrada/saída. O software é composto pelos programas e aplicativos que controlam o hardware e executam as tarefas solicitadas, contemplando desde sistemas operacionais até aplicativos especí�cos. Os periféricos são dispositivos externos conectados ao sistema, como impressoras, monitores e armazenamento externo. Classi�cação dos sistemas computacionais Os sistemas computacionais podem ser classi�cados de várias maneiras, dependendo de fatores como capacidade de processamento, arquitetura, uso e tamanho. A seguir, serão elencadas algumas das classi�cações mais comuns: 1. Com base em capacidade de processamento - Supercomputadores: sistemas extremamente poderosos, projetados para executar cálculos complexos e processar grandes volumes de dados. Utilizados em áreas como previsão do tempo, simulação de explosões nucleares e pesquisas cientí�cas avançadas. - Mainframes: grandes computadores, capazes de processar extensos volumes de dados e atender a muitos usuários simultaneamente. Usados por grandes organizações, como bancos e seguradoras. - Minicomputadores: mais poderosos que microcomputadores, porém menos potentes que mainframes, os minicomputadores eram populares em empresas médias para a execução de tarefas especí�cas. Atualmente, têm sido substituídos por servidores de alta capacidade. - Microcomputadores (PCs): são os computadores pessoais usados por indivíduos e pequenas empresas. Incluem desktops, laptops e workstations, sendo projetados para uso geral. 2. Com base em arquitetura - Sistemas centralizados: possuem um único processador ou um conjunto de processadores que operam em um mesmo local. São comuns em aplicações nas quais a centralização do processamento e dos dados é crucial (Dale; Lewis, 2010). - Sistemas distribuídos: compreendem vários computadores interconectados, que trabalham juntos para completar uma tarefa. Cada computador no sistema pode operar de forma independente, mas compartilha recursos e informações com os outros. Alguns exemplos são redes de computadores e sistemas em nuvem (Pressman; Maxim, 2021). - Sistemas embarcados: são projetados para realizar funções especí�cas e integrados em outros dispositivos, como eletrodomésticos, automóveis e equipamentos industriais (Pressman; Maxim, 2021). 3. Com base em uso - Sistemas de tempo real: precisam responder a eventos ou estímulos em tempo real ou quase real. Exemplos: sistemas de controle em fábricas, equipamentos médicos e Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO sistemas de navegação aérea. - Sistemas interativos: projetados para interagir diretamente com os usuários, fornecendo respostas imediatas às suas entradas. Exemplos: sistemas de jogos e interfaces grá�cas de usuário (GUI). - Sistemas de processamento em lote: executam tarefas sem interação direta com o usuário, processando grandes volumes de dados em um único lote. Exemplos: processamento de folha de pagamento e geração de relatórios �nanceiros (Pressman; Maxim, 2021). 4. Com base em tamanho - Computadores de mesa desktops: projetados para uso em um local �xo, com componentes separados, como monitor, teclado e CPU. - Notebooks laptops: computadores portáteis que combinam todos os componentes em um único dispositivo compacto, viabilizando a mobilidade. - Dispositivos móveis: incluem smartphones e tablets, que são computadores portáteis desenvolvidos para promover a conectividade e o uso diário em diversas tarefas. A categorização dos sistemas de computação oferece uma visão clara de suas habilidades e aplicações, abrangendo desde computadores poderosos até dispositivos móveis de pequeno porte. A compreensão dessas categorias – que se baseiam na capacidade de processamento, arquitetura, uso e tamanho – é crucial para a escolha e a implementação e�cientes de soluções tecnológicas. À medida que a tecnologia avança, novas classi�cações surgem, re�etindo o progresso constante e a diversidade dos sistemas computacionais. A importância da classi�cação dos sistemas computacionais A classi�cação de sistemas computacionais é relevante para a estruturação, análise e aplicação das tecnologias de informação e comunicação em diferentes contextos. Ao classi�car os sistemas de acordo com suas características, como capacidade de processamento, arquitetura, uso e tamanho, é possível compreender de modo mais exato as funcionalidades de cada tipo de sistema e, assim, escolher a solução mais adequada para uma necessidade especí�ca (Silva; Borges, 2024). Nesse sentido, a classi�cação dos sistemas computacionais: 1. Facilita a tomada de decisões Uma das principais vantagens da classi�cação dos sistemas computacionais é o fato de que essa abordagem facilita a tomada de decisões em relação à escolha do sistema ideal para determinadas tarefas ou ambientes. Ao compreender a diferença entre um supercomputador e um microcomputador, uma organização pode tomar decisões mais bem fundamentadas sobre em qual sistema deve investir para suportar tarefas como análise de grandes volumes de dados ou atividades diárias de escritório (Silberschatz; Galvin; Gagne, 2015). 2. Otimiza a alocação de recursos A classi�cação é importante para que seja possível usar melhor os recursos, como máquinas e softwares. Sistemas diferentes exigem investimentos distintos, manutenção e suporte. Conhecendo as categorias e capacidades dos sistemas, as empresas podem Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO alocar seus recursos �nanceiros e humanos de maneira mais e�ciente, evitando sobrecargas ou subutilizações (Silva; Borges, 2024). 3. Melhora a e�ciência operacional Ao compreender e aplicar de forma adequada a classi�cação dos sistemas de computação, as empresas podem aprimorar sua e�ciência operacional. Por exemplo, a escolha de um sistema de tempo real para monitoramento industrial garante que os processos sejam controlados de forma e�ciente e sem atrasos. Do mesmo modo, um sistema distribuído pode ser mais produtivo em ambientes que demandam alta disponibilidade e redundância. 4. Dá suporte à inovação tecnológica A classi�cação dos sistemas computacionais também exerce uma função indispensável no suporte à inovação tecnológica. À medida que novas tecnologias emergem, elas são frequentemente classi�cadas em categorias ou subcategorias inéditas, permitindo que as organizações acompanhem as tendências tecnológicas e integrem inovações de maneira estruturada. Isso ajuda a manter a competitividade e a capacidade de adaptação em um mercado em constante evolução. 5. Facilita o ensino e a aprendizagem No campo educacional,a classi�cação dos sistemas computacionais é essencial para o ensino e a aprendizagem. Essa abordagem fornece uma estrutura clara para que estudantes e pro�ssionais compreendam as diferenças e semelhanças entre os diversos sistemas, possibilitando uma formação mais sólida e direcionada. Além disso, a classi�cação ajuda a padronizar o conhecimento, tornando-o mais acessível e fácil de ser transmitido. É válido ressaltar, ainda, que a classi�cação dos sistemas computacionais é uma ferramenta poderosa que vai além da simples categorização. Ela exerce impacto direto sobre a e�ciência operacional, a alocação de recursos, a inovação tecnológica e o processo educacional. Ao entender e aplicar corretamente essa classi�cação, organizações e indivíduos podem tomar decisões mais bem fundamentadas e estratégicas, garantindo o uso otimizado da tecnologia para atender às suas necessidades e objetivos. Siga em Frente... Características dos sistemas computacionais Os sistemas computacionais são a base da tecnologia moderna, permitindo a execução de uma grande variedade de tarefas, as quais abrangem desde simples cálculos até complexas simulações cientí�cas. Para compreender como esses sistemas funcionam e de que modo podem ser usados de forma e�ciente, é necessário conhecer suas principais características. Essas características incluem atributos como capacidade de processamento, arquitetura, escalabilidade, con�abilidade, segurança e usabilidade, cada qual desempenhando um papel Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO crucial na funcionalidade e e�ciência dos sistemas computacionais. Con�ra, a seguir, mais detalhes sobre essas características. 1. Capacidade de processamento Refere-se à quantidade de dados que um sistema pode processar em um determinado período de tempo. Essa característica é estimada pelo desempenho da Unidade de Processamento (CPU). A capacidade de processamento é medida em termos de ciclos por segundo (Hertz). Sistemas com maior capacidade de processamento são capazes de executar tarefas mais complexas e de suportar uma carga de trabalho maior (Silva; Borges, 2024). 2. Arquitetura Determina a forma e a organização dos seus componentes, incluindo o hardware e o software. Existem diversas arquiteturas, como as que são baseadas em sistemas centralizados, distribuídos ou em nuvem. A arquitetura tem um impacto signi�cativo sobre a maneira como o sistema lida com tarefas, distribui recursos e interage com seus componentes (Silva; Borges, 2024). Por exemplo, em um sistema distribuído, várias máquinas independentes trabalham juntas para resolver um problema, o que pode aumentar a e�ciência do sistema. 3. Escalabilidade É a capacidade que um sistema computacional tem de crescer ou encolher em resposta às mudanças nas demandas de trabalho (Silberschatz; Galvin; Gagne, 2015). Um sistema escalável pode ser ajustado para acomodar um aumento no número de usuários ou na quantidade de dados sem que isso comprometa o desempenho. Esse é um aspecto crucial para empresas que esperam crescimento ou que operam em ambientes voláteis, pois permite que o sistema evolua de acordo com as necessidades, seja adicionando mais recursos de hardware ou otimizando o software. 4. Con�abilidade Corresponde à capacidade de o sistema operar corretamente e sem falhas ao longo do tempo. Um sistema con�ável deve ser capaz de resistir a falhas de hardware, erros de software e outros problemas inesperados, mantendo-se operacional e assegurando a integridade dos dados. Sistemas com alta con�abilidade são muito utilizados em hospitais, bancos e infraestruturas de transporte, nos quais falhas podem ter consequências graves. 5. Segurança É uma característica que diz respeito à proteção dos dados e recursos contra acessos não autorizados, ataques cibernéticos e outras ameaças (Silva; Borges, 2024). Medidas de segurança incluem a criptogra�a, o uso de �rewalls, a autenticação de usuários e a implementação de protocolos de segurança de rede. Em um ambiente no qual as ameaças cibernéticas são cada vez mais so�sticadas, a segurança é uma preocupação central para garantir que as informações con�denciais permaneçam protegidas. �. Usabilidade Refere-se à facilidade com que os usuários podem interagir com o sistema computacional para executar suas tarefas (Pressman; Maxim, 2021). Um sistema com alta usabilidade é intuitivo, com uma interface amigável e de fácil navegação, permitindo que os usuários realizem suas atividades de forma e�ciente e sem problemas. A usabilidade é Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO particularmente relevante em aplicativos de software e sistemas de informação, nos quais a experiência do usuário pode determinar o êxito ou o fracasso de uma solução tecnológica. As características dos sistemas computacionais são fundamentais para determinar como esses sistemas funcionam e de que maneira são usados em diferentes contextos. Capacidade de processamento, arquitetura, escalabilidade, con�abilidade, segurança e usabilidade são elementos fundamentais que in�uenciam a e�ciência, a segurança e a satisfação do cliente. Dominar essas características torna possíveis a seleção e o desenvolvimento de sistemas que atendam às necessidades especí�cas de indivíduos e organizações, assegurando o melhor uso da tecnologia disponível. Vamos Exercitar? Descrição da situação-problema Agora que você já possui conhecimentos relacionados ao princípio dos componentes de sistemas de informação, está apto para responder à pergunta feita no início desta aula: com base no conceito e na de�nição de sistemas computacionais, como classi�car os diferentes tipos de sistemas disponíveis e qual seria o mais indicado para as necessidades de sua empresa de marketing digital? Solução Primeiro, é necessário entender que um sistema computacional é composto por hardware, software e periféricos que trabalham em conjunto para efetuar tarefas especí�cas. Para escolher o sistema ideal para a resolução do caso apresentado, é preciso classi�car os sistemas computacionais de acordo com sua capacidade de processamento, arquitetura, uso e tamanho. Capacidade de processamento: já que a empresa não precisa processar grandes volumes de dados cientí�cos, ela não necessitaria de um supercomputador. Um microcomputador, como um desktop ou um laptop de alto desempenho, pode ser su�ciente para as tarefas diárias da equipe. Arquitetura: para uma empresa de pequeno porte, um sistema centralizado pode ser o mais adequado, por meio do qual todos os dados e tarefas são geridos a partir de um servidor principal, assegurando controle centralizado e fácil gerenciamento. Uso: considerando os tipos de tarefas realizadas na empresa, que são principalmente relacionadas ao marketing digital, como criação de conteúdo, análise de dados e comunicação com clientes, um sistema interativo com interfaces amigáveis e responsivas seria o ideal. Tamanho: seria interessante optar por notebooks para sua equipe, já que esses equipamentos oferecem portabilidade e desempenho su�cientes para suprir as Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO necessidades diárias, ou por desktops, se a mobilidade não for uma prioridade. Portanto, o sistema mais adequado para a empresa seria um conjunto de computadores pessoais, como desktops ou notebooks, conectados a um servidor central para armazenar dados e gerenciar tarefas, usando um sistema interativo e amigável. Isso permitirá que a organização cresça e aumente as suas atividades de maneira e�ciente e controlada. Saiba mais Para saber mais detalhes sobre a importância da classi�cação dos sistemas computacionais, faça a leitura do artigo Abordagem multidisciplinar para ensino-aprendizagem de projetos de sistemas computacionais com apoio do CompSim. LISBOA, E. B. et al. Abordagem multidisciplinar para ensino-aprendizagem de projetos de sistemas computacionais com Apoio do CompSim. In: ESCOLA REGIONAL DE COMPUTAÇÃO DO CEARÁ, MARANHÃO E PIAUÍ (ERCEMAPI), 10., 2022, São Luís, MA. Anais... Porto Alegre: SociedadeBrasileira de Computação, 2022, p. 169-178. Referências AUDY, J. L. N.; ANDRADE, G. K.; CIDRAL, A. Fundamentos de sistemas de informação. Porto Alegre: Grupo A, 2005. DALE, N.; LEWIS, J. Ciência da computação. 4. ed. Rio de Janeiro: LTC, 2010. LISBOA, E. B. et al. Abordagem multidisciplinar para ensino-aprendizagem de projetos de sistemas computacionais com Apoio do CompSim. In: ESCOLA REGIONAL DE COMPUTAÇÃO DO CEARÁ, MARANHÃO E PIAUÍ (ERCEMAPI), 10., 2022, São Luís, MA. Anais... Porto Alegre: Sociedade Brasileira de Computação, 2022, p. 169-178. Disponível em: https://sol.sbc.org.br/index.php/ercemapi/article/view/21971. Acesso em: 17 set. 2024. PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software. Porto Alegre: AMGH, 2021. SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Fundamentos de sistemas operacionais. Rio de Janeiro: LTC, 2015. SILVA, G. P. da; BORGES, J. A. dos S. Arquitetura e organização de computadores: uma introdução. Rio de Janeiro: LTC, 2024. https://sol.sbc.org.br/index.php/ercemapi/article/view/21971/21794 https://sol.sbc.org.br/index.php/ercemapi/article/view/21971/21794 https://sol.sbc.org.br/index.php/ercemapi/article/view/21971 Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Aula 2 Principais Classi�cações dos Sistemas Computacionais - Parte I Principais classi�cações dos sistemas computacionais - parte I Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! A classi�cação de sistemas computacionais é essencial para entender como diferentes arquiteturas e modelos moldam a tecnologia que usamos. Ao explorar a classi�cação baseada na arquitetura, você saberá como escolher entre sistemas monolíticos, ou em nuvem, considerando as particularidades inerentes a cada um deles. A classi�cação por modelo de implementação, que abrange sistemas em tempo real e distribuídos, revela abordagens que desa�am sua criatividade técnica. Além disso, a análise da complexidade e escala, em conjunto com o tipo de processamento, proporciona uma visão sobre como lidar com grandes volumes de dados e otimizar o desempenho. Estudar sobre esses temas não apenas enriquece sua aprendizagem, mas também aprimora sua habilidade de resolver problemas práticos. Mergulhe nesta jornada e descubra como essas classi�cações podem transformar sua carreira na tecnologia! Prepare-se para esta trajetória de conhecimento! Vamos lá! Ponto de Partida Estudante, desejo a você boas-vindas! A classi�cação de sistemas computacionais representa um tema de pesquisa fascinante, que nos ajuda a entender como diferentes arquiteturas e modelos de implementação moldam a tecnologia que usamos diariamente. Pense em um mundo onde cada sistema é projetado de maneira única para atender a diferentes necessidades – isso é o que a classi�cação baseada na arquitetura de sistema nos revela. Essa abordagem divide os sistemas em categorias, como Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO sistemas monolíticos, em rede, sistemas de arquitetura em camadas, em nuvem, permitindo que você escolha a estrutura mais adequada para o seu projeto. Por outro lado, a classi�cação por modelo de implementação nos apresenta diferentes métodos de operação, como sistemas em tempo real, distribuídos ou embarcados. Cada modelo oferece vantagens e desa�os especí�cos, e compreender essas nuances é fundamental para quem deseja se aprofundar na área da tecnologia. Além disso, a classi�cação por complexidade e escala, juntamente com a classi�cação por tipo de processamento, introduz uma nova dimensão. Nesse caso, aprendemos a diferenciar sistemas simples de sistemas complexos, descobrindo como tal distinção interfere no desempenho e na escalabilidade. Sistemas que lidam com grandes volumes de dados ou que exigem processamento paralelo, por exemplo, demandam uma abordagem estratégica para garantir e�ciência e e�cácia. Para contextualizar sua aprendizagem, imagine a seguinte situação: você é engenheiro de software de uma organização que está desenvolvendo um sistema para uma grande rede de empresas. Tal sistema deverá gerenciar informações de clientes e produtos, consultas de dados, além de fornecer suporte a uma plataforma on-line que permitirá consultas remotas em tempo real. A empresa possui várias �liais distribuídas por diferentes estados, e o sistema precisa estar acessível para milhares de pro�ssionais simultaneamente. Vale ressaltar, ainda, que o sistema deve ser capaz de processar dados em tempo real, como a atualização de vendas e o controle de estoque on-line, mas também precisa lidar com o processamento em lote para gerar relatórios diários de atividades e estatísticas de clientes e produtos. Com base nos requisitos do projeto, como classi�car o sistema em termos de complexidade e escala. Qual tipo de processamento seria mais adequado para as diferentes funcionalidades exigidas? Estudar os temas mencionados anteriormente não apenas aprimorará seu conhecimento técnico, mas também ampliará sua capacidade de resolver problemas reais, possibilitando que você se destaque em um mercado cada vez mais competitivo. Explore essas classi�cações e descubra como elas podem transformar sua compreensão sobre os sistemas computacionais e suas respectivas aplicações no mundo moderno. Bons estudos! Vamos Começar! Classi�cação baseada na arquitetura de sistema e modelo de implementação: uma exploração Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Antes de começarmos a analisar a classi�cação de sistemas computacionais de uma forma mais minuciosa, é crucial compreender que a arquitetura de sistema é a base fundamental de um programa, delineando como seus componentes se inter-relacionam para atingir um objetivo especí�co. Ela funciona, por exemplo, como o projeto arquitetônico de um prédio: de�ne a disposição das salas, a estrutura das paredes e a forma com que tudo se conecta para criar um espaço funcional. Ter ciência da importância de classi�car os sistemas pela arquitetura é vital para manter a estrutura organizada de um software. As classi�cações abordam diferentes aspectos, como: compreensão, reutilização, evolução e seleção. Na literatura dedicada a essa área (Silva; Borges, 2024, Silberschatz; Galvin; Gagne, 2015), encontramos diversas maneiras de classi�car as arquiteturas de sistemas. Algumas das mais comuns são: 1. Classi�cação baseada na arquitetura de sistema - Foco principal: concentra-se na estrutura e na organização dos componentes dentro de um sistema (Machado; Maia, 2013). Analisa de que modo diferentes partes do sistema, como hardware, software, rede e dados, estão interligadas e interagem para executar as funções desejadas. As principais categorias desse modelo de classi�cação são: - Sistemas monolíticos: possuem uma arquitetura única e integrada, na qual o hardware e o software são parte de um único bloco. Historicamente, eram usados para aplicações menos complexas e mais restritas (Machado; Maia, 2013). Exemplo: computadores pessoais antigos, em que o sistema operacional e o hardware eram fortemente integrados. - Sistemas de rede: envolvem múltiplos computadores ou dispositivos conectados que colaboram para o compartilhamento de recursos e informações. A comunicação é central para a operação desses sistemas (Fedeli; Polloni; Peres, 2013). Exemplos: redes locais (LANs) e redes de longa distância (WANs). - Sistemas distribuídos: consistem em vários sistemas independentes que trabalham juntos para atingir um objetivo comum. Cada componente pode estar em um local físico diferente, mas todos cooperam para um processo global (Machado; Maia, 2013). Exemplos: sistemas de computação em nuvem e redes de serviços distribuídos. - Sistemas de arquitetura em camadas: organizam os componentes do sistema em camadas, de modo que cada camadaexerce uma função especí�ca e interage com as camadas acima e abaixo dela (Machado; Maia, 2013). Exemplo: arquitetura de software em camadas, como o modelo OSI para redes, no qual cada camada tem funções singulares. 2. Classi�cação por modelo de implementação - Foco principal: este tipo de classi�cação aborda a forma com que os sistemas são implementados e a infraestrutura usada para fornecer serviços e funcionalidades. As principais categorias desse modelo de classi�cação são: - Modelos de implementação baseados em servidores: envolvem um ou mais servidores que fornecem serviços e recursos a clientes ou usuários. O servidor centraliza o gerenciamento e o processamento de dados (Silberschatz; Galvin; Gagne, 2015). Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Exemplo: modelos cliente-servidor, em que o cliente solicita serviços ao servidor central. - Modelos de implementação baseados em nuvem: utilizam a infraestrutura de computação em nuvem para oferecer serviços e recursos escaláveis pela internet. A infraestrutura física é gerenciada por provedores de nuvem, e os recursos podem ser acessados quando necessário (Silberschatz; Galvin; Gagne, 2015). Exemplo: plataformas de computação em nuvem, como Amazon Web Services (AWS), Microsoft Azure e Google Cloud Platform (GCP). - Modelos de implementação embarcados: incorporam sistemas especializados diretamente em dispositivos para realizar funções especí�cas. O sistema é projetado para operar em um ambiente dedicado e geralmente não é acessível para modi�cações externas (Silva; Borges, 2024). Exemplos: sistemas de controle em eletrodomésticos, automóveis e dispositivos médicos. - Modelos de implementação híbrido: combinam aspectos de diferentes modelos de implementação para atender a necessidades especí�cas. Por exemplo, uma aplicação pode usar uma combinação entre servidores locais e serviços em nuvem (Silva; Borges, 2024). Exemplo: aplicações que utilizam tanto recurso local quanto serviços baseados em nuvem para otimizar o desempenho e a escalabilidade. A classi�cação baseada na arquitetura de sistema tem foco voltado à estrutura e à organização dos componentes de hardware e software, bem como à forma com que estes se inter- relacionam. Já a classi�cação por modelo de implementação se dedica a entender como os sistemas são implementados e operados, considerando a infraestrutura usada para fornecer serviços e recursos. A arquitetura de sistema trata da organização interna e da con�guração dos componentes, enquanto o modelo de implementação aborda o método e a infraestrutura utilizados para disponibilizar e operar esses sistemas. A escolha da melhor arquitetura de um sistema depende de diversos fatores, como: requisitos funcionais e não funcionais, tamanho e complexidade do sistema, tecnologia disponível, orçamento e tempo de desenvolvimento. Saber exatamente qual arquitetura melhor se adéqua à realidade da empresa pode interferir diretamente no desempenho, escalabilidade, facilidade de manutenção e capacidade de inovações. Com o apoio dessas análises, �ca claro que a classi�cação baseada na arquitetura de sistema e o modelo de implementação a ser adotado não correspondem a questões apenas técnicas, mas também estratégicas. Esses fatores ajudam a alinhar as capacidades tecnológicas de uma organização com seus objetivos de negócios, garantindo que os sistemas desenvolvidos sejam robustos, escaláveis e sustentáveis a longo prazo. Ao entender as diferentes arquiteturas disponíveis e suas respectivas características, os pro�ssionais podem tomar decisões mais bem fundamentadas e criar soluções que atendam de modo mais preciso às necessidades dos usuários e da organização. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Siga em Frente... Classi�cação por complexidade e escala e classi�cação por tipo de processamento: uma visão geral A classi�cação por complexidade e escala e a classi�cação por tipo de processamento são técnicas usadas para categorizar sistemas computacionais levando em consideração suas capacidades e o modo com que processam dados e executam tarefas (Silva; Borges, 2024). Esses critérios são fundamentais para de�nir a adequação de uma solução tecnológica a um determinado contexto, tomando como importância a complexidade do sistema e o tipo de processamento necessário para suprir as necessidades do negócio ou aplicação. A classi�cação de sistemas de software é uma ferramenta essencial para a compreensão das características, funcionalidades e requisitos de tais sistemas. Ao analisar um sistema sob diferentes perspectivas, como por complexidade, escala e tipo de processamento, podemos tomar decisões mais corretas sobre seu desenvolvimento, manutenção e evolução (Machado; Maia, 2013). 1. Classi�cação por complexidade e escala Esta classi�cação avalia os sistemas de acordo com a complexidade das tarefas que executam e a escala em que operam, ou seja, considerando a quantidade de dados processados, o número de usuários atendidos ou a extensão da rede de operações (Perini, 2019). - Sistemas de pequena escala: são projetados para lidar com uma quantidade limitada de dados, atender a um número reduzido de usuários ou operar em um ambiente restrito (Perini, 2019). Geralmente são simples em termos de arquitetura e requisitos de hardware. Têm um baixo custo, manutenção simples e implantação rápida. Por outro lado, são limitados em termos de escalabilidade e capacidade de processamento. Exemplos: aplicações de escritório, software de gestão pessoal, pequenas bases de dados. - Sistemas de média escala: atendem a um número maior de usuários ou processam volumes mais extensos de dados, porém ainda dentro de um escopo controlado e limitado (Pressman; Maxim, 2021). São sistemas com maior capacidade de processamento e funcionalidade em comparação aos sistemas de pequena escala, com custos ainda gerenciáveis. No entanto, enfrentam desa�os de escalabilidade quando as demandas crescem. Exemplos: sistemas de gestão empresarial para pequenas e médias empresas, sistemas de controle de estoque, redes corporativas de médio porte. - Sistemas de grande escala: são projetados para operar em larga escala, atendendo a grandes volumes de dados, milhares ou milhões de usuários, ou operando em ambientes distribuídos globalmente (Pressman; Maxim, 2021). São sistemas com alta escalabilidade, robustez e capacidade para atender a necessidades complexas e variadas, porém têm um alto custo de desenvolvimento e manutenção, assim como maior complexidade na gestão e na garantia de desempenho. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Exemplo: plataformas de redes sociais, sistemas de e-commerce global, infraestrutura de nuvem. 2. Classi�cação por tipo de processamento Esta classi�cação considera a maneira pela qual os dados são processados e as operações são executadas em um sistema. O tipo de processamento pode interferir signi�cativamente na escolha da arquitetura, no desempenho e na adequação do sistema a determinadas aplicações (Delgado; Ribeiro, 2017). - Processamento em lote: dados são coletados ao longo do tempo e processados em grandes blocos ou lotes em vez de serem processados imediatamente. Esse tipo de processamento é comum em operações que não requerem resposta em tempo real (Delgado; Ribeiro, 2017). Nesse caso, os sistemas possuem e�ciência no uso de recursos, especialmente em tarefas repetitivas e que podem ser adiadas. Contudo, essa abordagem não é adequada para aplicações que exigem respostas imediatas ou processamento em tempo real. Exemplo: processamento de folhas de pagamento, análise de dados de vendas diárias, processamento de transações bancárias noturnas. - Processamento em tempo real: os dados são processados imediatamente após sua entrada, permitindo respostas quase instantâneas. Esse tipo de processamento é essencial em sistemas nos quais a latência pode comprometer a e�cácia ou a segurança (Delgado; Ribeiro, 2017). Sistemas com alta responsividade são essenciais para aplicações críticas, nas quais o tempo de reaçãoé vital. Tais sistemas necessitam de hardware e software de alto desempenho, o que pode aumentar os custos e a complexidade. Exemplos: sistemas de controle de tráfego aéreo, aplicações de bolsa de valores, sistemas de monitoramento de saúde. - Processamento distribuído: o processamento é dividido entre vários sistemas ou servidores que trabalham juntos para realizar tarefas. Isso permite que grandes volumes de dados sejam processados simultaneamente em diferentes locais (Silva; Borges, 2024). Nesse contexto, utilizam-se sistemas com alta escalabilidade, capacidade de lidar com grandes volumes de dados e processamento complexo. Vale destacar, no entanto, que eles apresentam grande complexidade na coordenação e gestão dos diferentes sistemas, além de desa�os com a latência de rede e a consistência de dados. Exemplos: computação em nuvem, redes de processamento paralelo, sistemas de Big Data. - Processamento paralelo: várias operações ou tarefas são processadas simultaneamente, utilizando-se múltiplos processadores ou núcleos de processamento. É comum em aplicações que exigem grande capacidade de processamento em um curto período de tempo (Silva; Borges, 2024). Nesse caso, usam-se sistemas com aumento signi�cativo na velocidade de processamento, os quais são adequados para tarefas intensivas em computação. Tais sistemas requerem software especializado e hardware compatível, o que pode ser caro e de difícil implementação. Exemplos: supercomputadores, renderização de grá�cos 3D, simulações cientí�cas. Essas classi�cações ajudam a identi�car a técnica mais adequada para atender às necessidades especí�cas de uma organização ou aplicação. Ao compreender a complexidade e a escala do sistema, bem como o tipo de processamento necessário, os projetistas de sistemas e Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO engenheiros de software podem escolher a arquitetura, as ferramentas e os recursos mais apropriados para garantir que o sistema seja e�ciente, escalável e sustentável. A escolha da classi�cação ideal, seja por sua complexidade e escala, seja por tipo de processamento, é crucial para o êxito de um sistema computacional. Esse tipo de decisão exerce impacto direto sobre o desempenho, a escalabilidade, os custos e a capacidade do sistema para se aprimorar com as mudanças nas necessidades do negócio. Dominar essas classi�cações permite uma melhor utilização de recursos e um planejamento mais bem-sucedido, resultando em sistemas que atendem plenamente às expectativas e aos requisitos de seus usuários. Vamos Exercitar? Descrição da situação-problema Agora que você já possui conhecimentos relacionados à classi�cação por complexidade e escala, bem como à classi�cação por tipo de processamento, está apto para responder às perguntas feitas no início desta aula: com base nos requisitos do projeto, como classi�car o sistema em termos de complexidade e escala. Qual tipo de processamento seria mais adequado para as diferentes funcionalidades exigidas? Solução Você deveria classi�car o sistema descrito no caso apresentado como um sistema de grande escala e alta complexidade, dada a necessidade de suportar milhares de usuários simultaneamente e de integrar múltiplos componentes distribuídos geogra�camente. Para promover a atualização de produtos e clientes on-line, o processamento em tempo real é essencial para a garantia de respostas rápidas e precisas. Já no caso de tarefas como a geração de relatórios diários, o processamento em lote seria o mais adequado, pois permitiria que grandes volumes de dados fossem processados de forma coerente em horários programados. Desse modo, o sistema atenderá às exigências de performance e con�abilidade necessárias para o ambiente empresarial de alta performance. Saiba mais Para saber mais detalhes sobre a arquitetura de sistemas, faça a leitura do artigo Uma arquitetura para reduzir a complexidade e aumentar a produtividade do ciclo de vida do desenvolvimento de sistemas. OLIVEIRA, A. L. C. de; OLIVEIRA, J. P. M. de. Uma Arquitetura para reduzir a complexidade e aumentar a produtividade do ciclo de vida do desenvolvimento de sistemas. In: SIMPÓSIO https://sol.sbc.org.br/index.php/sbes/article/view/23921/23749 https://sol.sbc.org.br/index.php/sbes/article/view/23921/23749 https://sol.sbc.org.br/index.php/sbes/article/view/23921/23749 Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 13., 1999, Florianópolis/SC. Anais... Porto Alegre: Sociedade Brasileira de Computação, 1999, p. 158-171. Referências DELGADO, J.; RIBEIRO, C. Arquitetura de computadores. Rio de Janeiro: LTC, 2017. FEDELI, R. D.; POLLONI, E. G. F.; PERES, F. E. Introdução à ciência da computação. 2. ed. São Paulo: Cengage Learning Brasil, 2013. MACHADO, F. B.; MAIA, L. P. Arquitetura de sistemas operacionais. 5. ed. Rio de Janeiro: Grupo GEN, 2013. OLIVEIRA, A. L. C. de; OLIVEIRA, J. P. M. de. Uma Arquitetura para reduzir a complexidade e aumentar a produtividade do ciclo de vida do desenvolvimento de sistemas. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 13., 1999, Florianópolis/SC. Anais... Porto Alegre: Sociedade Brasileira de Computação, 1999, p. 158-171. Disponível em: https://sol.sbc.org.br/index.php/sbes/article/view/23921/23749. Acesso em: 13 ago. 2024. PERINI, L. C. Administração de sistemas de informação. São Paulo: Unopar, 2019. PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software. Porto Alegre: AMGH, 2021. SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Fundamentos de sistemas operacionais. Rio de Janeiro: LTC, 2015. SILVA, G. P. da; BORGES, J. A. dos S. Arquitetura e organização de computadores: uma introdução. Rio de Janeiro: LTC, 2024. Aula 3 Principais Classi�cações dos Sistemas Computacionais - Parte II Principais classi�cações dos sistemas computacionais: parte II Este conteúdo é um vídeo! https://sol.sbc.org.br/index.php/sbes/article/view/23921/23749 Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Aprender as singularidades da classi�cação por tecnologia de armazenamento, níveis de serviço e suporte, e segurança e con�dencialidade é fundamental para quem deseja dominar o mundo da computação e da TI. Compreender as especi�cidades dessas categorias vai muito além de um conhecimento teórico; é sobre preparar-se para enfrentar os desa�os reais com os quais as empresas se deparam diariamente. Nesse sentido, você aprenderá a escolher as tecnologias certas para armazenar e acessar dados com e�ciência, a garantir que serviços essenciais sejam entregues com qualidade e a proteger informações sensíveis contra ameaças. Estudar sobre esses temas não apenas ampliará sua compreensão técnica, mas também o capacitará para atuar como um pro�ssional capaz de tomar decisões críticas e estratégicas, protegendo e otimizando recursos em qualquer ambiente de TI. Aprofundar seu entendimento sobre tais conceitos é o primeiro passo para se tornar um especialista indispensável no mercado. Ponto de Partida Estudante, desejo a você boas-vindas! A partir de agora, convido você a estudar e aprofundar sua compreensão sobre a classi�cação dos sistemas de computação, que pode parecer desa�adora à primeira vista, mas é fundamental para entender como as tecnologias que usamos diariamente funcionam e são protegidas. Com base em conceitos como tecnologia de armazenamento e acesso, nível de serviço e suporte, e segurança e con�dencialidade, será possível descobrir como os dados são gerenciados, de que modo os serviços permanecem e�cientes e como as informações são protegidas contra ameaças. Esses saberes não apenas formam a base para uma carreira sólida em TI, mas também preparam você para enfrentar desa�os complexosinformações e realizem tarefas de forma e�ciente. A TI é e�caz porque promove e�ciência, inovação, conectividade e acesso à informação (Audy; Andrade; Cidral, 2005). Esses efeitos se tornam possíveis porque tudo está organizado em um hardware, controlado por um software, que gera dados e é interligado por uma rede. Vale ressaltar que a TI está presente em diversos ramos da sociedade (como negócios, saúde, educação, governo e entretenimento), sempre gerando dados interligados e que podem ser compartilhados de um modo geral. Diante desse cenário, percebemos que a Tecnologia da Informação é um campo dinâmico e em constante evolução que molda o mundo em que vivemos. Ao assimilar os fundamentos da TI, você estará mais bem preparado para aproveitar as oportunidades e enfrentar os desa�os do futuro. A evolução dos sistemas de informação: uma jornada pela era digital A evolução dos sistemas de informação é uma trajetória fascinante que re�ete o progresso tecnológico e as mudanças nas necessidades das organizações e da sociedade no decorrer dos anos. Desde os primeiros registros manuais até os complexos sistemas integrados e baseados na nuvem disponíveis atualmente, os sistemas de informação passaram por várias fases de desenvolvimento. A seguir, serão apresentadas as principais etapas dessa evolução e as inovações que moldaram os sistemas de informação modernos. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Os sistemas de informação atravessaram diversas fases, cada uma com momentos de extrema relevância, o que gerou para a sociedade um ganho na operacionalização de processos (Baltzan; Phillips, 2012). Primeira fase – registros manuais e início da automação: durante a Revolução Industrial, as organizações perceberam a necessidade de métodos mais e�cientes para gerenciar informações. Os dados, nessa época, eram registrados manualmente em livros e planilhas, processo que era demorado e propenso a erros (Audy; Andrade; Cidral, 2005). Com o progresso tecnológico, máquinas de tabulação, como as criadas por Herman Hollerith, começaram a ser usadas para automatizar a contagem e a organização de dados, marcando o início da automação (Wazlawick, 2016). Segunda fase – sistemas operacionais para microcomputadores: a introdução do MS-DOS (Microsoft Disk Operating System) na década de 1980 sinalizou uma mudança signi�cativa (Wazlawick, 2016). Esse sistema operacional para microcomputadores permitiu que empresas e indivíduos tivessem acesso a poderosas ferramentas de processamento de dados em uma escala muito menor e mais acessível do que os grandes mainframes. Essa fase foi fundamental para a democratização do uso de computadores. Terceira fase – a era da Internet e a popularização do Windows: a expansão da Internet na década de 1990 e o lançamento do Windows 3.11 em 1983 foram acontecimentos importantes pelo fato de trazerem uma interface grá�ca que tornou os computadores mais acessíveis e fáceis de se usar (Wazlawick, 2016). A Internet abriu espaço para uma conectividade sem precedentes, permitindo que os sistemas de informação se tornassem mais integrados e colaborativos. Quarta fase – computação móvel e em nuvem: o advento dos smartphones e tablets no início dos anos 2000, juntamente com o desenvolvimento da computação em nuvem, transformou completamente os sistemas de informação (Pressman; Maxim, 2021). A computação móvel viabilizou o acesso a informações em qualquer lugar e a qualquer momento, enquanto a computação em nuvem ofereceu escalabilidade e �exibilidade, possibilitando que dados e aplicativos fossem acessados e gerenciados remotamente. Quinta fase – integração da inteligência arti�cial: a integração da inteligência arti�cial (IA) nos sistemas de informação representa a fase mais recente e revolucionária (Gabriel Filho, 2023) da evolução. Tecnologias de IA, como aprendizagem de máquina e análise de Big Data, permitem que os sistemas sejam treinados para realizar tarefas complexas. Tais sistemas exigem grandes quantidades de dados e capacidade de processamento, mas oferecem enormes benefícios em termos de e�ciência e inovação. Ao longo dessas fases, os sistemas de informação evoluíram de simples registros manuais para so�sticadas plataformas inteligentes que dão suporte à tomada de decisões e à inovação em todos os setores. Essa trajetória não apenas re�ete o avanço tecnológico, mas também a capacidade das organizações de se adaptarem e aproveitarem essas inovações para atender às necessidades dinâmicas da sociedade. Qual o valor da informação, um bem essencial na era digital? Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO O valor da informação é um conceito central em várias áreas de atuação, como negócios, ciência, tecnologia e vida cotidiana. A informação, quando corretamente coletada, processada, analisada e utilizada, pode gerar visões valiosas que impulsionam a tomada de decisões, aumentam a e�ciência, promovem a inovação e criam vantagens competitivas (Mancini; Souza-Concilio, 2022). Para entender plenamente o valor da informação, é importante veri�car como ela pode ser aplicada a diferentes contextos, além de conhecer as características que a tornam valiosa. No mundo dos negócios: auxilia na tomada de decisões estratégicas, visto que ocorre a análise de preferência dos clientes, tendências dos produtos e movimentos dos concorrentes. Na ciência e tecnologia: neste caso, a informação é considerada a base para o progresso pelo fato de conduzir experimentos que fomentam a evolução de áreas como biologia, astronomia e medicina, pois a troca de informação entre pesquisadores acelera o desenvolvimento das tecnologias. Na tomada de decisões: a informação é essencial para a tomada de decisões e�cazes em qualquer contexto, seja ele pro�ssional ou pessoal. Nas organizações, a tomada de decisões fundamentada em dados se tornou uma prática comum. Para que tenha valor, uma informação precisa apresentar algumas caraterísticas como precisão, relevância, pontualidade, completude e acessibilidade (Mancini; Souza-Concilio, 2022). Tais características garantem que a análise esteja apoiada em dados con�áveis e úteis, direcionando todo o processo de tomada de decisão e inovação. A informação é um conjunto de dados que precisam ser armazenados em locais que assegurem sua proteção e integridade (Brookshear, 2013). Esse armazenamento pode ser efetuado de várias maneiras, como por meios físicos, digitais, redes, nuvens, bancos de dados e Big Data. Meios físicos: papéis e documentos impressos, como livros e documentos, os quais são armazenados em arquivos ou bibliotecas. Hoje, essa abordagem vem sendo amplamente substituída por meios digitais de armazenamento. Meios digitais: disco rígido, mídias digitais (CD, DVD), pendrives, cartões de memória. O grande diferencial, nesse caso, é a velocidade de acesso, visto que esses instrumentos são portáteis, de modo que é possível levá-los para outro local. Rede: servidores físicos e dedicados, bem como dispositivos de armazenamento conectados à rede, utilizados para armazenar grandes quantidades de informações, as quais poderão ser acessadas por múltiplos usuários. Nuvem: é frequentemente considerada uma rede, pois as informações são armazenadas em computadores remotos, os quais são acessados via Internet. Empresas como Amazon Web, Google Cloud e Microsoft Azure passaram a oferecer soluções de armazenamento em nuvem, o que revolucionou o processo de armazenamento seguro da informação. Banco de dados: armazena um grande volume de informações estruturadas. É preciso contar com o apoio de um sistema para ler e interpretar essas informações de forma clara e rápida. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Big Data: utilizado para armazenar volumes massivos de dados gerados em alta velocidade e em grande variedade. Esse conjunto de informações é guardado até mesmo em locais distribuídos. Dessa forma, compreendemos que o valor da informação está em sua capacidade de transformar dados brutos em conhecimento útil e aplicável, promovendo o progressocom con�ança e precisão. Pense em quão grandioso seria saber exatamente como um sistema responde a milhares de acessos simultâneos, ou de que modo os dados de milhões de pessoas são mantidos seguros em um ambiente digital. Compreender esses mecanismos é como desvendar os segredos do mundo digital que nos cerca, possibilitando que você se torne um especialista capaz de criar, gerenciar e proteger as tecnologias que moldam o futuro. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Para contextualizar sua aprendizagem, imagine a seguinte situação: você trabalha em uma empresa de consultoria �nanceira que lida com informações altamente sensíveis, incluindo dados pessoais de clientes, relatórios �nanceiros e estratégias de investimento. Recentemente, essa instituição decidiu adotar uma nova política de segurança da informação, na intenção de se alinhar às melhores práticas do setor. Você foi incumbido, pelo seu diretor, de classi�car todos os dados da empresa de acordo com seu nível de segurança e con�dencialidade, a �m de garantir que cada tipo de informação receba a proteção adequada. Em sua análise, foi possível identi�car três tipos principais de dados: relatórios �nanceiros internos, estratégias de investimento futuras e dados pessoais de clientes. Como você deve classi�car cada tipo de dado por nível de segurança e con�dencialidade. Quais medidas de proteção devem ser implementadas para preservar a segurança dessas informações? Ao se aprofundar no estudo desses temas, lembre-se de que cada conceito aprendido representa um passo em direção à maestria no campo da tecnologia da informação. Este é um caminho de grandes oportunidades, no qual cada detalhe compreendido pode fazer a diferença em sua jornada pro�ssional. Bons estudos! Vamos Começar! Classi�cação por tecnologia de armazenamento e acesso O volume com que armazenamos e acessamos informações teve um aumento signi�cativo ao longo dos anos, impulsionado pelos progressos tecnológicos e pela crescente demanda por soluções mais e�cazes e competentes. A classi�cação por tecnologia de armazenamento e acesso nos permite compreender as diferentes maneiras de guardar e recuperar dados, cada uma com características e aplicações especí�cas. A classi�cação por tecnologia de armazenamento e acesso se refere à maneira com que os sistemas de armazenamento de dados são categorizados com base na tecnologia subjacente que utilizam para armazenar e acessar informações (Silva; Borges, 2024). Essa classi�cação é essencial para entender as capacidades, limitações e aplicações ideais de variados tipos de armazenamento em ambientes de computação. A seguir, descobriremos que é possível dividir os armazenamentos em duas categorias principais: 1. Armazenamento direto - Armazenamento magnético: é uma das tecnologias mais tradicionais, sendo amplamente utilizada. Nessa categoria, os dados são armazenados em meios magnéticos, como discos rígidos (HDD) e �tas magnéticas (Delgado; Ribeiro, 2017). Suas principais características são: alta capacidade, durabilidade e acesso sequencial versus aleatório. - Armazenamento óptico: utiliza a luz (geralmente lasers) para ler e gravar dados em discos Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO ópticos, como CD, DVD, pendrive e Blu-ray. Essa tecnologia é conhecida por sua capacidade de armazenar grandes volumes de dados em um formato físico compacto (Somasundaram; Shrivastava; EMC Education Services, 2011). Suas principais características são: portabilidade, longevidade e acesso sequencial. - Armazenamento em estado sólido: os dispositivos de armazenamento em estado sólido, como SSDs, utilizam memória �ash para armazenar dados. Diferentemente dos HDDs, não possuem partes móveis, o que os torna muito mais rápidos e menos propensos a falhas mecânicas (Somasundaram; Shrivastava; EMC Education Services, 2011). Suas principais características são: alta velocidade de acesso e gravação, bem como resistência a impactos. No entanto, apresentam um alto custo de implementação. 2. Armazenamento em rede - Armazenamento SAN (Storage Area Network): rede de alta velocidade dedicada exclusivamente ao armazenamento de dados, utilizada em grandes ambientes corporativos (Somasundaram; Shrivastava; EMC Education Services, 2011). - Armazenamento em nuvem: representa uma tecnologia moderna que permite o armazenamento de dados em servidores remotos, os quais podem ser acessados pela internet (Somasundaram; Shrivastava; EMC Education Services, 2011). Esses servidores são mantidos por provedores de serviços de nuvem, como Amazon Web Services (AWS), Google Cloud e Microsoft Azure. Suas principais características são: escalabilidade, acessibilidade e alta segurança e con�abilidade. Além da distinção entre armazenamento direto e em rede, podemos classi�car os sistemas de armazenamento considerando outros critérios, como: tipo de mídia, capacidade de armazenamento, velocidade de armazenamento, velocidade de acesso, custo por gigabyte, durabilidade e facilidade de uso. Diante disso, percebemos que a escolha do modelo de armazenamento ideal dependerá de diversos fatores, como: Tipo de dados: dados sensíveis exigem soluções de armazenamento mais seguras. Volume de dados: grandes volumes de dados demandam sistemas de alta capacidade. Frequência de acesso: dados acessados com frequência se bene�ciam de tecnologias mais rápidas. Disponibilidade: sistemas críticos exigem alta disponibilidade e redundância. Custo: o custo total de propriedade deve ser considerado, incluindo hardware, software, energia e manutenção. Classi�cação por tipo de acesso A tecnologia de acesso aos dados diz respeito à maneira com que o sistema acessa e recupera os dados armazenados. O tipo de acesso pode ser determinado pelo padrão de operação e pela necessidade de rapidez na recuperação dos dados. Con�ra alguns exemplos a seguir. Acesso sequencial: envolve a leitura ou gravação de dados em uma sequência prede�nida. Isso signi�ca que, para acessar um dado especí�co, o sistema precisa percorrer todos os Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO dados anteriores até encontrá-lo. Esse modelo é mais lento, pois os dados não estão organizados para um rápido acesso. Acesso direto ou aleatório: permite que o sistema acesse qualquer parte do armazenamento de forma direta, sem a necessidade de percorrer os dados sequencialmente. O acesso é muito mais rápido e e�ciente, já que o sistema pode buscar e recuperar dados de qualquer ponto de maneira independente. Acesso em bloco: refere-se a um método em que os dados são lidos ou gravados em grandes unidades (blocos) em vez de serem acessados individualmente. Esse tipo de acesso é usado em sistemas de armazenamento de alto desempenho, nos quais grandes volumes de dados precisam ser manipulados de modo e�ciente. Cada tecnologia de armazenamento e acesso tem suas vantagens e desvantagens, e a preferência por uma delas dependerá das necessidades especí�cas do usuário ou da organização. Considerando desde a durabilidade e o custo-benefício do armazenamento magnético até a velocidade e resistência do armazenamento em estado sólido, é importante conhecer as características de cada tecnologia para tomar decisões corretas sobre o armazenamento de dados. Siga em Frente... Classi�cação por nível de serviço e suporte: uma estrutura para atendimento e�ciente A classi�cação por nível de serviço e suporte é uma maneira de categorizar e avaliar a qualidade e a abrangência dos serviços prestados por empresas, sobretudo em setores como tecnologia da informação, telecomunicações e serviços ao cliente. Essa abordagem é fundamental para garantir que os serviços oferecidos atendam às expectativas dos clientes e às necessidades operacionais das empresas. Ao pensar nesse processo como uma unidade essencial da organização, é possível mapear e entender que tal estrutura permite que as empresas distribuam as demandas de forma e�ciente, direcionando cada problema ao pro�ssional mais quali�cado para solucioná-lo com aptidão e no menor tempopossível (Fedeli; Polloni; Peres, 2013). Os níveis de suporte e serviços são divididos em categorias, cada uma com um grau de complexidade e especialização crescente: Níveis de serviço básico: os níveis de serviço são de�nidos por acordos conhecidos como Service Level Agreements (SLA), os quais detalham os parâmetros especí�cos de desempenho e qualidade que um serviço deve cumprir (Audy; Andrade; Cidral, 2005). Nível intermediário de serviço: o provedor oferece uma melhoria no tempo de resposta e uma disponibilidade mais alta do sistema. Esse nível de serviço é comum em sistemas Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO corporativos de médio porte ou para serviços de backup e recuperação de dados que exigem um suporte mais rápido. Nível avançado de serviço: oferece garantias mais rigorosas em termos de desempenho, tempo de resposta e disponibilidade. Esse nível é característico de grandes empresas ou sistemas críticos nos quais qualquer interrupção pode causar prejuízos ou impactos operacionais expressivos. Nível de serviço premium: representa o máximo de garantia e suporte possível. É voltado para sistemas e aplicações de missão crítica, em que a continuidade operacional é vital para os negócios, e a qualidade do serviço não pode ser comprometida. O provedor concede alta disponibilidade, suporte especializado e backup de sistemas redundantes. Esses níveis variam amplamente a depender do tipo de serviço e das necessidades do cliente. Geralmente incluem: Disponibilidade: refere-se ao tempo durante o qual um serviço ou sistema está operacional e disponível para uso. Em serviços críticos, como servidores ou sistemas de pagamento on- line, uma alta disponibilidade (geralmente acima de 99,9%) é essencial (Audy; Andrade; Cidral, 2005). Tempo de resposta: mede o tempo que um serviço leva para responder a uma solicitação. Isso pode incluir desde o tempo de carregamento de uma página web até o tempo de resposta do suporte técnico. Capacidade: relaciona-se à quantidade de recursos que um serviço pode manejar, como o número de usuários simultâneos em uma plataforma ou a quantidade de dados possível de ser processada por um sistema (Pressman; Maxim, 2021). Escalabilidade: é a capacidade de um serviço aumentar ou diminuir recursos de acordo com as necessidades, sem comprometer o desempenho (Pressman; Maxim, 2021). Níveis de suporte O nível de suporte corresponde à qualidade e à abrangência da assistência que uma empresa oferece a seus clientes. Isso pode incluir suporte técnico, atendimento ao cliente ou ajuda em processos especí�cos. Os níveis de suporte normalmente são categorizados da seguinte maneira: Suporte de nível 1: é o suporte básico, frequentemente fornecido por técnicos ou atendentes de primeira linha que lidam com problemas comuns e simples, como rede�nição de senhas, questões de con�guração básica e perguntas gerais sobre o produto (Pressman; Maxim, 2021). Suporte de nível 2: envolve técnicos mais experientes que tratam de problemas mais complexos não resolvidos no nível 1. Isso pode incluir falhas de hardware, problemas de software mais complicados e outros incidentes que requerem maior conhecimento técnico. Suporte de nível 3: é o nível mais alto de suporte técnico, geralmente composto por especialistas e engenheiros que têm profundo conhecimento sobre o produto ou serviço em questão. Esses pro�ssionais lidam com problemas críticos e complexos que os níveis Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO anteriores não puderam resolver. Além disso, podem trabalhar diretamente com os desenvolvedores ou engenheiros do produto para encontrar soluções. Suporte proativo: além dos níveis tradicionais, o suporte proativo abrange o monitoramento contínuo de sistemas para identi�car e corrigir problemas antes que eles afetem o cliente (Pressman; Maxim, 2021). Esse tipo de suporte é valioso em ambientes onde a prevenção de falhas é crítica. O serviço e o suporte em diferentes modelos de negócio podem ser divididos em: Serviços de nuvem: provedores de serviços de nuvem, como Amazon Web Services (AWS), Google Cloud e Microsoft Azure, comumente oferecem diversos níveis de serviço e suporte, os quais variam conforme o plano escolhido pelo cliente. Níveis mais altos de serviço e suporte, como maior disponibilidade e suporte técnico especializado, são frequentemente oferecidos a um custo adicional. Telecomunicações: em telecomunicações, a classi�cação por nível de serviço pode incluir métricas como qualidade da ligação, cobertura de rede e tempo de resolução de problemas. O suporte, por outro lado, pode comportar desde o suporte básico por telefone até equipes especializadas para grandes contas empresariais. Softwares empresariais: empresas que fornecem software como serviço (SaaS) geralmente disponibilizam diferentes pacotes de suporte que incluem desde o acesso a bases de conhecimento e FAQs até o suporte dedicado com gerentes de conta e engenheiros. A classi�cação por nível de serviço e suporte é uma ferramenta essencial para gerenciar as expectativas do cliente e garantir que os serviços prestados atendam às necessidades operacionais. Conhecer as diferentes categorias dentro dessa classi�cação ajuda tanto os provedores quanto os consumidores a estabelecerem acordos claros e mensuráveis, assegurando uma experiência de serviço e�ciente e satisfatória. A evolução constante dos modelos de serviço e suporte continua a moldar a forma com que as empresas interagem com seus clientes, sempre buscando maior e�ciência e qualidade. Classi�cação por segurança e con�dencialidade: protegendo seus dados mais valiosos A classi�cação por segurança e con�dencialidade é um sistema utilizado para categorizar informações, sistemas e infraestruturas com base no nível de proteção requerido para garantir a integridade, disponibilidade e con�dencialidade dos dados (Agra; Barboza, 2019). Essa classi�cação é crucial para diversos setores, sobretudo para aqueles que lidam com dados relevantes, como governo, �nanças, saúde e tecnologia. Ao atribuir níveis diferenciados de classi�cação aos dados, podem-se implementar medidas de segurança adequadas para cada tipo de informação, reduzindo o risco de vazamentos, acessos não autorizados e outros incidentes de segurança. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO 1. Classi�cação por segurança da informação A segurança da informação engloba medidas e práticas adotadas para proteger dados contra acessos não autorizados, ataques cibernéticos, perda ou corrupção. As classi�cações por segurança da informação normalmente são alicerçadas em três pilares fundamentais: - Con�dencialidade: na segurança da informação, a con�dencialidade se refere à proteção dos dados contra acessos não autorizados. Isso signi�ca que apenas indivíduos ou sistemas autorizados têm permissão para visualizar ou manipular informações sensíveis. A con�dencialidade é imprescindível para garantir a privacidade de dados pessoais, informações �nanceiras, segredos comerciais e outros dados críticos (Escada et al., 2021). - Integridade: envolve a garantia de que os dados permaneçam precisos e consistentes ao longo do tempo, sem alterações não autorizadas. Isso é crucial em ambientes onde a precisão dos dados é essencial, como em registros �nanceiros ou médicos (Escada et al., 2021). - Disponibilidade: assegura que os dados e sistemas possam ser acessados e utilizados por usuários autorizados sempre que necessário. A falta de disponibilidade pode causar interrupções em operações críticas, resultando em perdas �nanceiras ou de reputação (Escada et al., 2021). 2. Classi�cação de dados por con�dencialidade As organizações classi�cam dados com base em seu nível de con�dencialidade para determinar o nível adequado de proteção. Nessa abordagem, as principais categorias são: - Público: dados classi�cados como públicos são informações que podem ser livremente divulgadas sem riscos signi�cativos para a organização ou indivíduos. Exemplos incluem relatórios anuais de empresas, materiais de marketinge dados estatísticos não sensíveis. - Interno: informações restritas ao uso dentro da organização, as quais não devem ser divulgadas ao público. Embora não sejam extremamente sensíveis, o acesso não autorizado a essas informações pode causar inconvenientes ou danos limitados. Alguns exemplos são políticas internas, diretórios de funcionários e relatórios de desempenho. - Con�dencial: dados con�denciais são informações sensíveis que, se divulgadas, podem gerar prejuízos signi�cativos à organização ou aos indivíduos. Esse tipo de dado requer proteção rigorosa e inclui dados pessoais identi�cáveis, segredos comerciais e comunicações internas estratégicas. - Secreto: abrange dados que exigem um nível extremamente alto de proteção, pois a divulgação não autorizada pode causar danos graves. Exemplos incluem planos de negócios estratégicos, pesquisas e desenvolvimentos proprietários, e comunicações con�denciais de alto nível. - Ultrassecreto: categoria reservada para as informações mais sensíveis, cuja divulgação pode resultar em danos catastró�cos, como ameaças à segurança nacional ou grandes perdas �nanceiras. Tipicamente, esse nível de classi�cação é usado em contextos governamentais ou militares. A con�dencialidade pode ser assegurada por diferentes medidas de segurança, as quais são implementadas para proteger os dados. Acompanhe, a seguir, algumas estratégias. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Criptogra�a: é amplamente utilizada para proteger dados con�denciais e secretos. Ela garante que os dados sejam ilegíveis para qualquer pessoa que não tenha a chave de descriptogra�a correta. Controle de acesso: sistemas de controle de acesso, como autenticação multifator (MFA) e gestão de identidades, são essenciais para garantir que apenas indivíduos autorizados possam acessar informações sensíveis. Monitoramento e auditoria: a monitoração contínua e a auditoria regular de acessos e atividades relacionadas aos dados ajudam a detectar e responder rapidamente a tentativas de acesso não autorizado. Segurança física: para informações ultrassecretas, além das medidas digitais, são implementadas proteções físicas, como cofres seguros, salas de servidores com controle de acesso estrito e segurança patrimonial. A classi�cação por segurança e con�dencialidade é vital para a proteção de informações sensíveis e críticas em qualquer organização. Dominar os diferentes níveis de con�dencialidade e as medidas de segurança correspondentes a eles permite que as organizações preservem seus dados de maneira e�caz, minimizando riscos e assegurando conformidade com regulamentações (Escada et al., 2021). Em um mundo no qual as ameaças cibernéticas estão em constante evolução, a classi�cação e a proteção adequadas das informações se mostram mais importantes do que nunca. Vamos Exercitar? Descrição da situação-problema Agora que você já possui conhecimentos relacionados à classi�cação por segurança e con�dencialidade, está apto para responder às perguntas feitas no início desta aula. Você identi�cou três tipos principais de dados: relatórios �nanceiros internos, estratégias de investimento futuras e dados pessoais de clientes. Como você deve classi�car cada tipo de dado por nível de segurança e con�dencialidade. Quais medidas de proteção devem ser implementadas para preservar a segurança dessas informações? Solução 1. Relatórios �nanceiros internos - Classi�cação con�dencial: estes relatórios contêm informações sensíveis sobre a saúde �nanceira da empresa que, se divulgadas, poderiam prejudicar a organização. - Medidas de proteção: criptogra�a de arquivos, controle de acesso restrito e monitoramento de acesso. 2. Estratégias de investimento futuras - Classi�cação secreta: estas informações são extremamente valiosas e, se caírem em mãos erradas, podem comprometer o sucesso da empresa e bene�ciar concorrentes. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO - Medidas de proteção: criptogra�a avançada, autenticação multifator (MFA), segmentação de rede, monitoramento contínuo e auditorias regulares. 3. Dados pessoais de clientes - Classi�cação con�dencial: a proteção desses dados é crítica para cumprir regulamentações de privacidade, como a Lei Geral de Proteção de Dados Pessoais (LGPD), no Brasil, ou o Regulamento Geral de Proteção de Dados (GDPR), na União Europeia, além de manter a con�ança dos clientes. - Medidas de proteção: criptogra�a de dados, controle de acesso baseado em função (RBAC), tokenização, conformidade com regulamentações e treinamento de segurança. Essas medidas combinadas ajudarão você a proteger adequadamente os diferentes tipos de dados, garantindo a segurança da informação e minimizando o risco de vazamentos ou acessos não autorizados. Saiba mais Para saber mais detalhes sobre a classi�cação por segurança, faça a leitura do artigo Gestão segura e escalável de identidades através de múltiplas corrente de bloco. SOUZA, L. A. C. de et al. Gestão segura e escalável de identidades através de múltiplas corrente de blocos. In: WORKSHOP DE GESTÃO DE IDENTIDADES DIGITAIS – SIMPÓSIO BRASILEIRO DE SEGURANÇA DA INFORMAÇÃO E DE SISTEMAS COMPUTACIONAIS (SBSEG), 22., 2022, Santa Maria. Anais... Porto Alegre: Sociedade Brasileira de Computação, 2022, p. 167-170. Referências AGRA, A. D.; BARBOZA, F. F M. Segurança de sistemas da informação. Porto Alegre: Grupo A, 2019. AUDY, J. L. N.; ANDRADE, G. K.; CIDRAL, A. Fundamentos de sistemas de informação. Porto Alegre: Grupo A, 2005. DELGADO, J.; RIBEIRO, C. Arquitetura de computadores. Rio de Janeiro: LTC, 2017. ESCADA, R. M. et al. Princípios de sistemas de informação. São Paulo: Cengage Learning Brasil, 2021. FEDELI, R. D.; POLLONI, E. G. F.; PERES, F. E. Introdução à ciência da computação. 2. ed. São Paulo: Cengage Learning Brasil, 2013. PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software. Porto Alegre: AMGH, 2021. https://sol.sbc.org.br/index.php/sbseg_estendido/article/view/21707/21531 https://sol.sbc.org.br/index.php/sbseg_estendido/article/view/21707/21531 https://sol.sbc.org.br/index.php/sbseg_estendido/article/view/21707/21531 Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO SILVA, G. P. da; BORGES, J. A. dos S. Arquitetura e organização de computadores: uma introdução. Rio de Janeiro: LTC, 2024. SOMASUNDARAM, G; SHRIVASTAVA, A.; EMC Education Services. Armazenamento e gerenciamento de informações. Porto Alegre: Grupo A, 2011. SOUZA, L. A. C. de et al. Gestão segura e escalável de identidades através de múltiplas corrente de blocos. In: WORKSHOP DE GESTÃO DE IDENTIDADES DIGITAIS – SIMPÓSIO BRASILEIRO DE SEGURANÇA DA INFORMAÇÃO E DE SISTEMAS COMPUTACIONAIS (SBSEG), 22., 2022, Santa Maria. Anais... Porto Alegre: Sociedade Brasileira de Computação, 2022, p. 167-170. Disponível em: https://sol.sbc.org.br/index.php/sbseg_estendido/article/view/21707/21531. Acesso em: 17 ago. 2024. Aula 4 Tipos de Sistemas de Computação Tipos de sistemas de computação Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Os sistemas de computação estão presentes em tudo, como em nossos smartphones e até mesmo em carros autônomos. Entender as diferenças entre sistemas embarcados, distribuídos e em tempo real é importante para quem deseja dominar o mundo da tecnologia. Os sistemas embarcados são projetados para realizar funções especí�cas com e�ciência, como no caso de eletrodomésticos ou dispositivos médicos. Já os sistemas distribuídos conectam vários computadores, permitindo que trabalhem juntos, como ocorre em grandes redes de dados e serviços na nuvem. Por outro lado, os sistemas em tempo real são cruciais em situações que exigem respostas imediatas, como no contexto de veículos ou sistemas de controle industrial. https://sol.sbc.org.br/index.php/sbseg_estendido/article/view/21707/21531Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Cada um desses sistemas resolve problemas complexos do mundo moderno, e dominá-los abre portas para inúmeras oportunidades no campo da tecnologia. Estudá-los é o primeiro passo para transformar ideias em soluções inovadoras e impactantes. Prepare-se para esta jornada de aprendizagem! Vamos lá! Ponto de Partida Estudante, desejo a você boas-vindas! Os sistemas de computação estão presentes em praticamente todas as áreas da nossa vida, manifestando sua relevância em contextos que abrangem desde os dispositivos mais simples até as redes mais complexas. Ao iniciar o estudo desses sistemas, entendemos que eles não são todos iguais. Existem diferentes tipos de sistemas de computação, cada um com características e funções especí�cas que atendem a diversas demandas, dentre os quais podemos destacar os sistemas embarcados, distribuídos e em tempo real. Os sistemas embarcados são projetados para desempenhar tarefas especí�cas dentro de dispositivos, como eletrodomésticos, carros ou equipamentos médicos. Sua principal característica é o fato de operar de maneira otimizada e con�ável em um ambiente restrito, geralmente com recursos limitados de processamento e memória. Já os sistemas distribuídos são aqueles que trabalham de forma cooperativa em várias máquinas ou processadores, que se encontram conectados por uma rede. Eles compartilham dados e tarefas, o que garante maior escalabilidade e e�ciência. Você pode observar exemplos desses sistemas ao pensar em serviços de nuvem, nos quais múltiplos servidores ajudam a oferecer uma experiência �uida e integrada. Por �m, os sistemas em tempo real são projetados para reagir a eventos em um tempo predeterminado, o que é crítico em aplicações para as quais uma resposta rápida é vital, como no caso de controladores de tráfego aéreo ou sistemas de frenagem automática em carros. Nesses contextos, é importante que o sistema não apenas funcione, mas funcione no tempo certo. Esses três tipos de sistemas, apesar de distintos, exercem um papel fundamental no avanço da tecnologia. Compreender os respectivos atributos dessas abordagens abre um leque de oportunidades para desenvolver soluções inovadoras que in�uenciam a sociedade. Estudar esses temas é o primeiro passo para entender como o mundo digital se organiza e de que forma podemos contribuir para sua evolução. Para contextualizar sua aprendizagem, imagine a seguinte situação: você trabalha em uma empresa de desenvolvimento de tecnologia que foi contratada para criar um sistema inovador direcionado ao monitoramento e controle de uma usina de energia. Esse sistema precisa garantir a operação segura e e�ciente da usina, respondendo rapidamente a qualquer variação nas Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO condições de trabalho. Além disso, esse sistema deve ser integrado aos dispositivos de controle já existentes na usina, a �m de que possa ser monitorado e gerenciado remotamente por várias unidades de controle localizadas em diferentes partes do país. Considerando as necessidades da usina de energia e os tipos de sistemas de computação disponíveis, quais características de sistemas embarcados, distribuídos e de tempo real devem ser priorizadas para propor uma solução? Explique como esses sistemas podem ser combinados para atender aos requisitos do projeto em questão. Bons estudos! Vamos Começar! Tipos de sistemas de computação: uma visão abrangente Os sistemas de computação evoluíram expressivamente ao longo dos anos, dando origem a uma variedade de tipos, cada um com características e aplicações próprias. Essa diversidade é resultado da busca constante por soluções mais e�cientes e adequadas às necessidades de cada usuário e setor. A diversidade e a complexidade dos sistemas de computação são a base das atividades tecnológicas modernas. Tais sistemas exercem um papel fundamental em diversos setores, os quais abrangem desde empresas e indústrias até o dia a dia das pessoas. Para entender como os sistemas de computação moldam o mundo atual, é preciso conhecer seus diferentes tipos, cada um projetado para suprir urgências especí�cas. Sistemas como aqueles que operam em computadores pessoais (PCs) são os mais comuns e familiares. Eles incluem desktops, laptops e tablets projetados para uso individual. Esses sistemas são geralmente utilizados para tarefas cotidianas, como navegação na internet, edição de documentos, jogos e comunicação. O poder de processamento dos PCs varia, mas esses equipamentos normalmente são equipados com sistemas operacionais como Windows, macOS ou Linux, que oferecem uma ampla gama de funcionalidades e suportam uma grande variedade de aplicativos. Siga em Frente... De�nição e características de sistemas embarcados, distribuídos e em tempo real Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Os sistemas de computação são essenciais em diversas aplicações modernas, visto que cada um é projetado para atender a necessidades especí�cas. Dentre os principais tipos, destacam-se os sistemas embarcados, distribuídos e de tempo real, que apresentam diferenças signi�cativas em sua de�nição, características e aplicações. A seguir, você terá acesso às principais distinções e qualidades existentes entre esses sistemas. Sistemas embarcados São sistemas de computação integrados a dispositivos maiores, projetados para realizar uma função especí�ca. São parte integrante de máquinas ou equipamentos e operam de forma autônoma para controlar ou monitorar os sistemas nos quais estão inseridos (Oliveira; Andrade, 2010). Características Especialização: os sistemas embarcados são altamente especializados para executar tarefas singulares, como controle de motores, monitoramento de sinais vitais ou gerenciamento de energia em dispositivos. E�ciência em recursos: por causa das restrições de tamanho, energia e custo, esses sistemas são otimizados para funcionar com recursos limitados, como memória e poder de processamento. Tempo real: muitos sistemas embarcados operam em tempo real, exigindo respostas imediatas a eventos, embora nem todos sejam de tempo real. Con�abilidade: são projetados para operar de forma contínua e con�ável, muitas vezes em ambientes adversos, onde a falha não é uma opção. Aplicações Esses sistemas estão presentes em dispositivos que fazem parte do nosso dia a dia, como controladores de airbags em automóveis, sistemas de navegação em aeronaves, marca-passos, controles de micro-ondas, câmeras digitais, robôs industriais, etc. Sistemas distribuídos São compostos por múltiplos computadores que trabalham juntos para realizar uma tarefa comum. Esses sistemas são interconectados por uma rede e cooperam para compartilhar recursos e processar informações de forma coordenada (Oliveira; Andrade, 2010). Características Escalabilidade: um dos principais benefícios dos sistemas distribuídos é a capacidade de escalar horizontalmente, adicionando mais nós (computadores) para aumentar o poder de processamento. Con�abilidade e tolerância a falhas: por causa da distribuição dos recursos, esses sistemas podem continuar operando mesmo que alguns nós falhem, garantindo alta disponibilidade e continuidade do serviço. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Desempenho colaborativo: a carga de trabalho é dividida entre os nós, o que pode resultar em uma maior e�ciência e velocidade de processamento, especialmente em tarefas complexas. Descentralização: não há um ponto único de falha, pois o controle e a execução das tarefas são distribuídos entre os vários componentes do sistema. Aplicações Esses sistemas são amplamente utilizados em ambientes corporativos, como em servidores de bancos de dados distribuídos, sistemas de armazenamento em nuvem (por exemplo, Google Drive e Dropbox) e plataformas de streaming de vídeo. Sistemas em tempo real São sistemas de computação projetados para responder a eventos ou condições externas dentro de um prazo rigorosamente de�nido. A principal característica desses sistemas é a suacapacidade de garantir que todas as operações críticas sejam executadas dentro do tempo necessário para manter a operação segura e e�caz (Fedeli; Polloni; Peres, 2013). Características Prazos estritos: os sistemas de tempo real devem cumprir prazos rígidos, já que o tempo de resposta é um fator crítico. A falha ao atender esses prazos pode resultar em consequências graves. Determinismo: esses sistemas operam de forma previsível, garantindo que as respostas a eventos aconteçam dentro dos limites de tempo preestabelecidos (Machado; Maia, 2013). Prioridade: as tarefas em sistemas de tempo real são frequentemente priorizadas com base em sua criticidade, assegurando que as mais importantes sejam executadas primeiro. Estabilidade: devem ser estáveis e con�áveis, funcionando de maneira consistente sob todas as condições operacionais. Aplicações Sistemas de tempo real são usados em ambientes nos quais a segurança e a precisão são críticas, como sistemas de controle de tráfego aéreo, equipamentos médicos de suporte à vida, sistemas de controle industrial, sistemas meteorológicos e robótica. Sistemas embarcados, distribuídos e em tempo real: uma visão geral É importante saber que um sistema pode apresentar características comuns a mais de uma categoria. Por exemplo, um sistema de controle industrial pode ser tanto embarcado quanto de tempo real. A classi�cação dependerá do contexto e dos requisitos especí�cos da aplicação. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Embora os sistemas embarcados, distribuídos e de tempo real compartilhem algumas propriedades, como a necessidade de alta con�abilidade, eles diferem em suas aplicações e requisitos particulares. Sistemas embarcados são projetados para realizar tarefas especí�cas dentro de dispositivos, muitas vezes em ambientes com recursos limitados (Oliveira; Andrade, 2010). Sistemas distribuídos, por outro lado, envolvem múltiplos computadores que colaboram para oferecer maior escalabilidade e resiliência (Pressman; Maxim, 2021). Já os sistemas de tempo real são críticos em situações nas quais o tempo de resposta é vital para o sucesso da operação (Escada et al., 2021). Cada tipo de sistema é desenvolvido para resolver problemas singulares e operar em ambientes que exigem diferentes níveis de desempenho, e�ciência e segurança. Compreender as disparidades entre esses sistemas viabiliza a escolha da solução mais adequada para cada cenário de aplicação, assegurando que a tecnologia atenda da melhor forma possível às necessidades dos usuários e organizações. Deve-se ter em mente que os sistemas podem apresentar várias características distintas, além de levar em conta a necessidade de cada organização. Também é imprescindível obter uma compreensão apropriada acerca dos sistemas embarcados, distribuídos e de tempo real. Para tanto, é válido distinguir as seguintes regras: Segurança em sistemas embarcados: é sempre importante considerar a proteção conta ameaças externas, porque nesses sistemas existem dispositivos críticos, como automóveis e dispositivos médicos, os quais demandam medidas de segurança rigorosas para proteger contra ataques cibernéticos (Agra; Barboza, 2019). A atualização de software nessas aplicações é um grande desa�o em função da natureza integrada e da necessidade de não interromper o funcionamento do dispositivo. Arquitetura de sistemas distribuídos: validar as diferentes topologias de rede, como malha, estrela e anel, afeta a e�ciência e a robustez dos sistemas distribuídos (Agra; Barboza, 2019). É preciso, ainda, analisar os mecanismos de sincronização, como o algoritmo de tempo de Lamport, pois são essenciais para garantir que todos os nós de um sistema distribuído obtenham uma visão consistente dos dados. A latência e a propagação na comunicação entre os nós podem exercer impacto sobre o desempenho e a e�ciência dos sistemas distribuídos, sobretudo em ambientes de larga escala (Dale; Lewis, 2010). Desa�os na integração de sistemas embarcados, distribuídos e de tempo real: a interoperabilidade de sistemas embarcados em uma infraestrutura distribuída pode ser complexa, exigindo protocolos de comunicação padronizados e compatíveis, especialmente aqueles que funcionam com baterias. Nesse contexto, o gerenciamento e�ciente de energia é crítico para prolongar a vida útil do dispositivo (Dale; Lewis, 2010). Esse processo garante a consistência, con�abilidade e qualidade dos sistemas de tempo real, principalmente em ambientes distribuídos, o que exige rigorosos processos de testes e validação. A evolução tecnológica e as tendências futuras de integração com IoT (Internet das Coisas) vêm impulsionando a evolução dos sistemas embarcados, que agora precisam se comunicar com Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO outros dispositivos e sistemas em uma rede distribuída (Morais et al., 2018). É válido ressaltar, ainda, que a inteligência arti�cial e o aprendizado de máquina em sistemas de tempo real e embarcados estão abrindo novas possibilidades, como o desenvolvimento de sistemas autônomos que podem aprender e se adaptar em tempo real. O custo do desenvolvimento e implementação de sistemas embarcados e de tempo real pode ser elevado em virtude da necessidade de hardware especializado e de processos rigorosos de validação. Os ciclos de vida longos também são caracterizados pelo alto custo, pois exigem suporte prolongado, atualizações e manutenção, o que interfere no planejamento e nos custos operacionais. Vamos Exercitar? Descrição da situação-problema Agora que você já possui conhecimentos relacionados à de�nição e às características de sistemas embarcados, distribuídos e de tempo real, está apto para responder à pergunta feita no início desta aula: considerando as necessidades da usina de energia e os tipos de sistemas de computação disponíveis, quais características de sistemas embarcados, distribuídos e de tempo real devem ser priorizadas para propor uma solução? Explique como esses sistemas podem ser combinados para atender aos requisitos do projeto em questão. Solução Para atender às necessidades da usina de energia descrita no caso, a proposta de resolução deve integrar características dos três tipos de sistemas relacionados a seguir: 1. Sistemas embarcados: para garantir a especialização e a e�ciência, o sistema deve incluir módulos embarcados que sejam integrados aos dispositivos de controle da usina, como sensores e atuadores, para monitorar e controlar operações especí�cas, como o controle de temperatura e a regulação de válvulas. Esses módulos precisam ser e�cientes e con�áveis, operando de forma autônoma e contínua. 2. Sistemas de tempo real: a segurança da usina depende de respostas rápidas e imediatas, visto que, diante da ocorrência de qualquer variação operacional, alertas e sinalizadores devem mostrar essa alteração. O sistema deve incorporar elementos de tempo real, pois isso garante que qualquer desvio nos parâmetros críticos, como pressão ou temperatura, seja detectado e corrigido imediatamente, dentro de prazos estritos. Por exemplo, se a pressão em uma caldeira exceder o limite seguro, o sistema deve automaticamente ativar válvulas de alívio para evitar explosões. 3. Sistemas distribuídos: a escalabilidade e a resiliência garantem que a usina possa ser monitorada e controlada remotamente. O sistema deve ser distribuído, com diferentes Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO unidades de controle capazes de acessar e gerenciar o sistema em tempo real. Isso permite que, mesmo que uma unidade de controle falhe ou �que inacessível, outras unidades consigam assumir suas funções, assegurando a continuidade da operação. Ao combinar esses três tipos de sistemas, a empresa pode desenvolver uma solução que não apenas atenda aos requisitos de monitoramento e controle em tempo real da usina, mas também ofereça alta disponibilidade, resiliência e e�ciência operacional, o que é essencial para o funcionamento seguro e con�ável da usina de energia. Saiba mais Para saber mais detalhessobre a de�nição e as características de sistemas embarcados, distribuídos e de tempo real, faça a leitura do artigo Uma arquitetura para compressão de código em processadores embarcados. SILVA, A. B. R.; SILVA, G. P. Uma arquitetura para compressão de código em processadores embarcados. In: SIMPÓSIO EM SISTEMAS COMPUTACIONAIS DE ALTO DESEMPENHO (SSCAD), 9., 2008, Campo Grande. Anais... Porto Alegre: Sociedade Brasileira de Computação, 2008, p. 131- 138. Referências AGRA, A. D.; BARBOZA, F. F M. Segurança de sistemas da informação. Porto Alegre: Grupo A, 2019. DALE, N.; LEWIS, J. Ciência da computação. 4. ed. Rio de Janeiro: LTC, 2010. ESCADA, R. M. et al. Princípios de sistemas de informação. São Paulo: Cengage Learning Brasil, 2021. FEDELI, R. D.; POLLONI, E. G. F.; PERES, F. E. Introdução à ciência da computação. 2. ed. São Paulo: Cengage Learning Brasil, 2013. MACHADO, F. B.; MAIA, L. P. Arquitetura de sistemas operacionais. 5. ed. Rio de Janeiro: Grupo GEN, 2013. MORAIS, I. S. de et al. Introdução a Big Data e Internet das Coisas (IoT). Porto Alegre: Grupo A, 2018. OLIVEIRA, A. S. de; ANDRADE, F. S. de. Sistemas embarcados: hardware e �rmware na prática. Rio de Janeiro: Grupo GEN, 2010. https://sol.sbc.org.br/index.php/sscad/article/view/17677/17512 https://sol.sbc.org.br/index.php/sscad/article/view/17677/17512 Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software. Porto Alegre: AMGH, 2021. SILVA, A. B. R.; SILVA, G. P. Uma arquitetura para compressão de código em processadores embarcados. In: SIMPÓSIO EM SISTEMAS COMPUTACIONAIS DE ALTO DESEMPENHO (SSCAD), 9., 2008, Campo Grande. Anais... Porto Alegre: Sociedade Brasileira de Computação, 2008, p. 131- 138. Disponível em: https://sol.sbc.org.br/index.php/sscad/article/view/17677/17512. Acesso em: 22 ago. 2024. Aula 5 Encerramento da Unidade Videoaula de Encerramento Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Os sistemas computacionais são o coração da tecnologia moderna e oferecem uma in�nidade de possibilidades e aplicações. Compreender suas principais características e o modo como são classi�cados é essencial para aproveitar ao máximo suas potencialidades. Desde supercomputadores que realizam cálculos impressionantes até microcomputadores versáteis usados no dia a dia, cada tipo de sistema desempenha um papel especí�co e fascinante. A classi�cação dos sistemas ajuda na escolha da tecnologia certa e otimiza operações. Além disso, atributos como processamento rápido, armazenamento e�ciente e segurança robusta revelam o poder e a complexidade desses conjuntos de dispositivos. Analisar esses temas não apenas ampliará seu conhecimento técnico, mas também abrirá portas para inovações e soluções criativas. Mergulhe no mundo dos sistemas computacionais e descubra como eles moldam o futuro da tecnologia. Vamos lá! https://sol.sbc.org.br/index.php/sscad/article/view/17677/17512 Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Ponto de Chegada Conceitos e de�nição da classi�cação dos sistemas computacionais Um sistema computacional é um conjunto de componentes interligados que trabalham em sincronia para processar informações (Audy; Andrade; Cidral, 2005). Os sistemas computacionais constituem uma das partes essenciais da infraestrutura tecnológica que sustenta a sociedade moderna, desempenhando um papel vital em uma ampla gama de aplicações, as quais abrangem desde tarefas cotidianas até operações complexas em organizações e indústrias. Para compreender plenamente como funcionam os sistemas computacionais, é importante investigar seus conceitos fundamentais e respectivas classi�cações. Conceitos fundamentais Um sistema computacional pode ser entendido como um conjunto de hardware, software e periféricos que trabalham juntos para executar tarefas especí�cas. O hardware se refere aos componentes físicos do sistema, como processador, memória, discos rígidos e dispositivos de entrada/saída. O software é composto pelos programas e aplicativos que controlam o hardware e executam as tarefas solicitadas, contemplando desde sistemas operacionais até aplicativos especí�cos. Os periféricos são dispositivos externos conectados ao sistema, como impressoras, monitores e armazenamento externo. A categorização dos sistemas de computação oferece uma visão clara de suas habilidades e aplicações, abrangendo desde computadores poderosos até dispositivos móveis de pequeno porte. A compreensão dessas categorias – que se baseiam na capacidade de processamento, arquitetura, uso e tamanho – é crucial para a escolha e a implementação e�cientes de soluções tecnológicas. À medida que a tecnologia avança, novas classi�cações surgem, re�etindo o progresso constante e a diversidade dos sistemas computacionais. A importância da classi�cação dos sistemas computacionais A classi�cação de sistemas computacionais é relevante para a estruturação, análise e aplicação das tecnologias de informação e comunicação em diferentes contextos. Ao classi�car os sistemas de acordo com suas características, como capacidade de processamento, arquitetura, uso e tamanho, é possível compreender de modo mais exato as funcionalidades de cada tipo de sistema e, assim, escolher a solução mais adequada para uma necessidade especí�ca (Silva; Borges, 2024). Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO É válido ressaltar, ainda, que a classi�cação dos sistemas computacionais é uma ferramenta poderosa que vai além da simples categorização. Ela exerce impacto direto sobre a e�ciência operacional, a alocação de recursos, a inovação tecnológica e o processo educacional. Ao entender e aplicar corretamente essa classi�cação, organizações e indivíduos podem tomar decisões mais bem fundamentadas e estratégicas, garantindo o uso otimizado da tecnologia para atender às suas necessidades e objetivos. Características dos sistemas computacionais Os sistemas computacionais são a base da tecnologia moderna, permitindo a execução de uma grande variedade de tarefas, as quais abrangem desde simples cálculos até complexas simulações cientí�cas. Para compreender como esses sistemas funcionam e de que modo podem ser usados de forma e�ciente, é necessário conhecer suas principais características. Essas características incluem atributos como capacidade de processamento, arquitetura, escalabilidade, con�abilidade, segurança e usabilidade, cada qual desempenhando um papel crucial na funcionalidade e e�ciência dos sistemas computacionais. Classi�cação baseada na arquitetura de sistema e modelo de implementação Antes de começarmos a analisar a classi�cação de sistemas computacionais de uma forma mais minuciosa, é crucial compreender que a arquitetura de sistema é a base fundamental de um programa, delineando como seus componentes se inter-relacionam para atingir um objetivo especí�co. Ela funciona, por exemplo, como o projeto arquitetônico de um prédio: de�ne a disposição das salas, a estrutura das paredes e a forma com que tudo se conecta para criar um espaço funcional. Ter ciência da importância de classi�car os sistemas pela arquitetura é vital para manter a estrutura organizada de um software. As classi�cações abordam diferentes aspectos, como: compreensão, reutilização, evolução e seleção. Na literatura dedicada a essa área (Silva; Borges, 2024, Silberschatz; Galvin; Gagne, 2015), encontramos diversas maneiras de classi�car as arquiteturas de sistemas. Algumas das mais comuns são: 1. Classi�cação baseada na arquitetura de sistema - Foco principal: concentra-se na estrutura e na organização dos componentes dentro de um sistema (Machado; Maia, 2013). Analisa de que modo diferentes partes do sistema, como hardware, software, redee dados, estão interligadas e interagem para executar as funções desejadas. 2. Classi�cação por modelo de implementação - Foco principal: este tipo de classi�cação aborda a forma com que os sistemas são implementados e a infraestrutura usada para fornecer serviços e funcionalidades. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO A classi�cação baseada na arquitetura de sistema tem foco voltado à estrutura e à organização dos componentes de hardware e software, bem como à forma com que estes se inter- relacionam. Já a classi�cação por modelo de implementação se dedica a entender como os sistemas são implementados e operados, considerando a infraestrutura usada para fornecer serviços e recursos. A arquitetura de sistema trata da organização interna e da con�guração dos componentes, enquanto o modelo de implementação aborda o método e a infraestrutura utilizados para disponibilizar e operar esses sistemas. A escolha da melhor arquitetura de um sistema depende de diversos fatores, como: requisitos funcionais e não funcionais, tamanho e complexidade do sistema, tecnologia disponível, orçamento e tempo de desenvolvimento. Saber exatamente qual arquitetura melhor se adéqua à realidade da empresa pode interferir diretamente no desempenho, escalabilidade, facilidade de manutenção e capacidade de inovações. Com o apoio dessas análises, �ca claro que a classi�cação baseada na arquitetura de sistema e o modelo de implementação a ser adotado não correspondem a questões apenas técnicas, mas também estratégicas. Esses fatores ajudam a alinhar as capacidades tecnológicas de uma organização com seus objetivos de negócios, garantindo que os sistemas desenvolvidos sejam robustos, escaláveis e sustentáveis a longo prazo. Ao entender as diferentes arquiteturas disponíveis e suas respectivas características, os pro�ssionais podem tomar decisões mais bem fundamentadas e criar soluções que atendam de modo mais preciso às necessidades dos usuários e da organização. Classi�cação por complexidade e escala e por tipo de processamento A classi�cação por complexidade e escala e a classi�cação por tipo de processamento são técnicas usadas para categorizar sistemas computacionais levando em consideração suas capacidades e o modo com que processam dados e executam tarefas (Silva; Borges, 2024). Esses critérios são fundamentais para de�nir a adequação de uma solução tecnológica a um determinado contexto, tomando como importância a complexidade do sistema e o tipo de processamento necessário para suprir as necessidades do negócio ou aplicação. A classi�cação de sistemas de software é uma ferramenta essencial para a compreensão das características, funcionalidades e requisitos de tais sistemas. Ao analisar um sistema sob diferentes perspectivas, como por complexidade, escala e tipo de processamento, podemos tomar decisões mais corretas sobre seu desenvolvimento, manutenção e evolução (Machado; Maia, 2013). Classi�cação por complexidade e escala: esta classi�cação avalia os sistemas de acordo com a complexidade das tarefas que executam e a escala em que operam, ou seja, Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO considerando a quantidade de dados processados, o número de usuários atendidos ou a extensão da rede de operações (Perini, 2019). Classi�cação por tipo de processamento: esta classi�cação considera a maneira pela qual os dados são processados e as operações são executadas em um sistema. O tipo de processamento pode interferir signi�cativamente na escolha da arquitetura, no desempenho e na adequação do sistema a determinadas aplicações (Delgado; Ribeiro, 2017). Classi�cação por tecnologia de armazenamento e acesso O volume com que armazenamos e acessamos informações teve um aumento signi�cativo ao longo dos anos, impulsionado pelos progressos tecnológicos e pela crescente demanda por soluções mais e�cazes e competentes. A classi�cação por tecnologia de armazenamento e acesso nos permite compreender as diferentes maneiras de guardar e recuperar dados, cada uma com características e aplicações especí�cas. A classi�cação por tecnologia de armazenamento e acesso se refere à maneira com que os sistemas de armazenamento de dados são categorizados com base na tecnologia subjacente que utilizam para armazenar e acessar informações (Silva; Borges, 2024). Essa classi�cação é essencial para entender as capacidades, limitações e aplicações ideais de variados tipos de armazenamento em ambientes de computação. Descobrimos que é possível dividir os armazenamentos em duas categorias principais: armazenamento direto (meio magnético, ótico e estado sólido) e armazenamento em rede (nuvem e storage area network). Classi�cação por nível de serviço e suporte A classi�cação por nível de serviço e suporte é uma maneira de categorizar e avaliar a qualidade e a abrangência dos serviços prestados por empresas, sobretudo em setores como tecnologia da informação, telecomunicações e serviços ao cliente. Essa abordagem é fundamental para garantir que os serviços oferecidos atendam às expectativas dos clientes e às necessidades operacionais das empresas. Ao pensar nesse processo como uma unidade essencial da organização, é possível mapear e entender que tal estrutura permite que as empresas distribuam as demandas de forma e�ciente, direcionando cada problema ao pro�ssional mais quali�cado para solucioná-lo com aptidão e no menor tempo possível (Fedeli; Polloni; Peres, 2013). Os níveis de suporte e serviços são divididos em categorias, cada uma com um grau de complexidade e especialização crescente. Classi�cação por segurança e con�dencialidade Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO A classi�cação por segurança e con�dencialidade é um sistema utilizado para categorizar informações, sistemas e infraestruturas com base no nível de proteção requerido para garantir a integridade, disponibilidade e con�dencialidade dos dados (Agra; Barboza, 2019). Essa classi�cação é crucial para diversos setores, sobretudo para aqueles que lidam com dados relevantes, como governo, �nanças, saúde e tecnologia. Ao atribuir níveis diferenciados de classi�cação aos dados, podem-se implementar medidas de segurança adequadas para cada tipo de informação, reduzindo o risco de vazamentos, acessos não autorizados e outros incidentes de segurança. Tipos de sistemas de computação Os sistemas de computação evoluíram expressivamente ao longo dos anos, dando origem a uma variedade de tipos, cada um com características e aplicações próprias. Essa diversidade é resultado da busca constante por soluções mais e�cientes e adequadas às necessidades de cada usuário e setor. Sistemas como aqueles que operam em computadores pessoais (PCs) são os mais comuns e familiares. Eles incluem desktops, laptops e tablets projetados para uso individual. Esses sistemas são geralmente utilizados para tarefas cotidianas, como navegação na internet, edição de documentos, jogos e comunicação. O poder de processamento dos PCs varia, mas esses equipamentos normalmente são equipados com sistemas operacionais como Windows, macOS ou Linux, que oferecem uma ampla gama de funcionalidades e suportam uma grande variedade de aplicativos. De�nição e características de sistemas embarcados, distribuídos e em tempo real Os sistemas de computação são essenciais em diversas aplicações modernas, visto que cada um é projetado para atender a necessidades especí�cas. Dentre os principais tipos, destacam-se os sistemas embarcados, distribuídos e de tempo real, que apresentam diferenças signi�cativas em sua de�nição, características e aplicações. As principais distinções e qualidades existentes entre esses sistemas servem como base para classi�cá-los em: sistemas embarcados, sistemas distribuídos e sistemas de tempo real. Embora os sistemas embarcados, distribuídos e de tempo real compartilhem algumas propriedades, como a necessidade de alta con�abilidade, eles diferem em suas aplicações e requisitos particulares. Sistemas embarcados são projetados para realizar tarefas especí�casdentro de dispositivos, muitas vezes em ambientes com recursos limitados (Oliveira; Andrade, 2010). Sistemas distribuídos, por outro lado, envolvem múltiplos computadores que colaboram para oferecer maior escalabilidade e resiliência (Pressman; Maxim, 2021). Já os sistemas de Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO tempo real são críticos em situações nas quais o tempo de resposta é vital para o sucesso da operação (Escada et al., 2021). A evolução tecnológica e as tendências futuras de integração com IoT (Internet das Coisas) vêm impulsionando a evolução dos sistemas embarcados, que agora precisam se comunicar com outros dispositivos e sistemas em uma rede distribuída (Morais et al., 2018). É válido ressaltar, ainda, que a inteligência arti�cial e o aprendizado de máquina em sistemas de tempo real e embarcados estão abrindo novas possibilidades, como o desenvolvimento de sistemas autônomos que podem aprender e se adaptar em tempo real. O custo do desenvolvimento e implementação de sistemas embarcados e de tempo real pode ser elevado em virtude da necessidade de hardware especializado e de processos rigorosos de validação. Os ciclos de vida longos também são caracterizados pelo alto custo, pois exigem suporte prolongado, atualizações e manutenção, o que interfere no planejamento e nos custos operacionais. É Hora de Praticar! Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Em uma escola de tecnologia, os alunos estão estudando sobre diferentes tipos de sistemas computacionais. O professor apresentou uma tarefa: identi�car e classi�car diversos sistemas em três categorias principais: sistemas operacionais, sistemas de aplicação e sistemas embarcados. Um dos estudantes, chamado Lucas, �cou confuso sobre como classi�car alguns dos sistemas que ele encontrou. O aluno trouxe os seguintes itens para discussão: Um software que controla a temperatura de um forno industrial. Um aplicativo de celular usado para gerenciamento de tarefas. O Windows 10, que é um sistema operacional de desktop. Como Lucas deve classi�car cada um dos itens apresentados? Por quê? Vamos à solução: Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Sistema embarcado: o software que controla a temperatura do forno industrial deve ser classi�cado como um sistema embarcado, já que é projetado para operar de maneira especí�ca em um dispositivo, realizando funções dedicadas em tempo real. Sistema de aplicação: o aplicativo de celular usado para gerenciamento de tarefas se encaixa na categoria de sistemas de aplicação. Ele é desenvolvido para atender a uma necessidade singular dos usuários, oferecendo funcionalidades que facilitam o dia a dia. Sistema operacional: o Windows 10 é classi�cado como um sistema operacional, pois gerencia o hardware do computador e fornece uma plataforma para a execução de programas e aplicações. Conclusão Lucas entendeu que a classi�cação de sistemas computacionais depende da função que cada item desempenha e do contexto em que é utilizado. Essa atividade ajudou a consolidar o conhecimento desse estudante sobre as categorias de sistemas computacionais. O mapa mental a seguir apresenta um breve resumo sobre os conceitos e a importância dos sistemas de computação, as principais classi�cações dos sistemas computacionais e os tipos de sistemas de computação. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO AGRA, A. D.; BARBOZA, F. F M. Segurança de sistemas da informação. Porto Alegre: Grupo A, 2019. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO AUDY, J. L. N.; ANDRADE, G. K.; CIDRAL, A. Fundamentos de sistemas de informação. Porto Alegre: Grupo A, 2005. DELGADO, J.; RIBEIRO, C. Arquitetura de computadores. Rio de Janeiro: LTC, 2017. ESCADA, R. M. et al. Princípios de sistemas de informação. São Paulo: Cengage Learning Brasil, 2021. FEDELI, R. D.; POLLONI, E. G. F.; PERES, F. E. Introdução à ciência da computação. 2. ed. São Paulo: Cengage Learning Brasil, 2013. MACHADO, F. B.; MAIA, L. P. Arquitetura de sistemas operacionais. 5. ed. Rio de Janeiro: Grupo GEN, 2013. MORAIS, I. S. de et al. Introdução a Big Data e Internet das Coisas (IoT). Porto Alegre: Grupo A, 2018. OLIVEIRA, A. S. de; ANDRADE, F. S. de. Sistemas embarcados: hardware e �rmware na prática. Rio de Janeiro: Grupo GEN, 2010. PERINI, L. C. Administração de sistemas de informação. São Paulo: Unopar, 2019. PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software. Porto Alegre: AMGH, 2021. SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Fundamentos de sistemas operacionais. Rio de Janeiro: LTC, 2015. SILVA, G. P. da; BORGES, J. A. dos S. Arquitetura e organização de computadores: uma introdução. Rio de Janeiro: LTC, 2024. , Unidade 3 Tecnologias de Desenvolvimento de Sistemas Aula 1 Fundamentos Gerais Sobre Desenvolvimento de Sistemas Fundamentos gerais sobre desenvolvimento de sistemas Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! O desenvolvimento de sistemas de informação é uma disciplina fascinante e essencial para qualquer organização moderna, já que envolve não apenas a criação de software, mas também o planejamento estratégico e a solução de problemas complexos que exercem impacto direto sobre o sucesso de uma empresa. Ao conhecer o ciclo de vida do desenvolvimento de sistemas (SDLC), você descobrirá como cada fase desse processo, considerando desde o planejamento até a manutenção, desempenha um papel crucial na construção de sistemas e�cientes e seguros. Compreender os fundamentos do SDLC é como dominar o roteiro de uma grande produção. Você aprende a estruturar e guiar um projeto, garantindo que ele atenda às necessidades dos usuários e seja entregue no prazo. Estudar sobre os temas mencionados não apenas ampliará suas habilidades técnicas, mas também fortalecerá sua capacidade de gerenciar projetos, liderar equipes e inovar. Cada conceito aprendido por você poderá ser aplicado diretamente na criação de soluções tecnológicas que fazem a diferença no mundo. Por isso, mergulhe fundo no estudo do desenvolvimento de sistemas. O conhecimento adquirido abrirá portas para inúmeras oportunidades na sua carreira. Ponto de Partida Estudante, desejo a você boas-vindas! Vivemos numa era em que a tecnologia é o enfoque das atividades de qualquer organização. Nesse sentido, convido você a mergulhar nesse emaranhado de informações e conceitos que ajudam a entender como ocorre o desenvolvimento de software. Todas as empresas, desde as de pequeno porte até as grandes organizações, dependem de sistemas de informação para gerir dados, aprimorar processos e tomar decisões estratégicas. O desenvolvimento desses sistemas consiste em uma atividade que vai além de apenas escrever códigos; é um processo complexo e vital que envolve planejamento, design, testes e manutenção constante. Aprender sobre os princípios do desenvolvimento de sistemas de informação, bem como sobre o ciclo de vida do desenvolvimento de sistemas (SDLC), é uma prática indispensável para qualquer pro�ssional que queira atuar na área de tecnologia, pois são essas habilidades que garantem a criação de soluções tecnológicas robustas e alinhadas às demandas do mercado. Você está no início de uma jornada fascinante, a qual combina criatividade, lógica e inovação. Investigar o desenvolvimento de sistemas de informação e o SDLC não somente permitirá que você entenda como grandes projetos de software são construídos, mas também o capacitará para criar soluções que fazem a diferença no mundo real. Cada conceito dominado se tornará umaferramenta valiosa no seu arsenal, possibilitando que você enfrente desa�os complexos Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO com con�ança. Imagine o quão grati�cante seria participar da criação de sistemas que transformam negócios, facilitam a vida das pessoas e impulsionam o progresso. Esse é o poder que você está prestes a adquirir. Então, mergulhe de cabeça nesta jornada de estudos, sabendo que o que você aprender a partir de agora será a base para uma carreira cheia de oportunidades e realizações. Para contextualizar sua aprendizagem, imagine a seguinte situação: você foi recentemente contratado como analista de sistemas em uma empresa de desenvolvimento de software. Essa organização acabou de �rmar um contrato para criar um sistema de gestão de estoque direcionado a uma grande rede de lojas. O cliente espera que o sistema ajude a otimizar o controle de estoque, reduza desperdícios e melhore a e�ciência logística. No entanto, você percebe que o projeto foi iniciado sem um planejamento adequado, pulando diretamente para a fase de desenvolvimento. A equipe de programação já começou a escrever o código, mas sem uma clara de�nição dos requisitos ou design do sistema. Diante desse cenário, o seu gerente direto faz as seguintes perguntas: considerando os fundamentos e fases do ciclo de vida do desenvolvimento de sistemas (SDLC), quais serão os possíveis riscos se dermos continuidade ao projeto da forma como vem sendo conduzido? Quais etapas você recomendaria revisar ou implementar antes de prosseguir com o desenvolvimento? Por quê? Vamos lá! Você é um estudante fantástico e com certeza conseguirá encontrar a melhor proposta de resolução para o caso ao se aprofundar em suas análises. Bons estudos! Vamos Começar! Fundamentos gerais do desenvolvimento de sistemas Desenvolvimento de sistemas é o processo de criação de softwares voltado ao atendimento a necessidades especí�cas de um usuário ou organização. O desenvolvimento de sistemas é uma área central no campo da tecnologia da informação, a qual envolve a criação, implementação e manutenção de sistemas de software com o objetivo de solucionar problemas especí�cos ou suprir as demandas de usuários e organizações. Esses sistemas podem variar, de modo que são representados tanto por aplicativos simples quanto por complexas infraestruturas de TI. Eles desempenham um papel crucial na automação de processos, na melhoria da e�ciência operacional e na facilitação da tomada de decisões. Conceitos gerais de sistemas Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Um sistema pode ser de�nido como um conjunto de componentes inter-relacionados que trabalham em conjunto para alcançar um objetivo comum (Pressman; Maxim, 2021). No contexto do desenvolvimento de sistemas, tais componentes incluem hardware, software, pessoas, dados e processos. Um sistema bem projetado é aquele que integra todos esses elementos de forma coesa para realizar tarefas especí�cas de modo e�ciente e e�caz. Pense na seguinte comparação: na construção de um edifício, tudo começa com a de�nição e a composição da estrutura, que consiste em um “esqueleto” de concreto e ferro sobre o qual serão erguidas as paredes, instaladas as infraestruturas de água, luz e esgoto, e, por �m, aplicados os acabamentos necessários. Embora não sejam formados por concreto e ferro, os sistemas de informação devem ter suas estruturas de�nidas previamente. Tais estruturas apontam as características essenciais do sistema de informação. Para que o desenvolvimento de sistemas siga o mesmo princípio da construção de um edifício, é importante dividi-lo em etapas. Cada fase deve validar o que realmente foi solicitado pelo usuário ou pela organização, a �m de garantir que o resultado �nal atenda às necessidades reais. Conheça, a seguir, algumas dessas etapas. Etapa de análise de requisito: a análise de requisitos é um estágio inicial do desenvolvimento de um sistema de informação, sendo fundamental para o sucesso do projeto. Envolve a identi�cação das necessidades dos usuários e dos objetivos do sistema. Os requisitos podem ser funcionais (o que o sistema deve fazer) e não funcionais (como o sistema deve se comportar) (Pressman; Maxim, 2021). Técnicas comuns para a análise de requisitos incluem entrevistas com stakeholders, questionários, observações e análise de documentos existentes. A documentação cuidadosa e a validação dos requisitos com as partes interessadas ajudam a assegurar que o sistema desenvolvido será útil e adequado às urgências reais dos usuários (Paula Filho, 2019). Etapa de modelagem e design: a modelagem consiste na criação de representações abstratas do sistema. Ferramentas como diagramas de �uxo de dados, diagramas de casos de uso e diagramas de classe são utilizadas para visualizar a estrutura e o funcionamento do sistema (Hirama, 2011). Esses modelos ajudam a compreender de forma mais objetiva o que será desenvolvido e como as diferentes partes do sistema interagem. A modelagem é crucial para identi�car e resolver potenciais problemas antes da construção, o que reduz o risco de falhas e melhora a e�ciência do desenvolvimento. Por sua vez, o design se refere à de�nição detalhada da arquitetura do sistema, abrangendo a escolha de tecnologias, a estrutura de dados, a interface do usuário e os processos internos. O design deve traduzir os requisitos levantados em especi�cações técnicas que orientarão a fase de implementação (Hirama, 2011). Nessa etapa, de�nem-se os detalhes técnicos, como a arquitetura de software, a estrutura do banco de dados e as interações entre os diferentes módulos do sistema. Etapa de implementação: é a fase em que o sistema é efetivamente construído com base nos designs especi�cados. Essa etapa inclui a codi�cação, quando os programadores escrevem o código-fonte do sistema, e a integração, que ocorre entre os diferentes Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO módulos e componentes para formar um sistema coeso. Testes são efetuados para assegurar que o sistema funciona corretamente e atende aos requisitos estabelecidos. A fase de implementação também pode englobar a migração de dados existentes para o novo sistema e a con�guração de ambientes de produção (Paula Filho, 2019). Manutenção e suporte: após a implementação, a manutenção é necessária para garantir que o sistema continue a funcionar corretamente e a suprir as urgências dos usuários. A manutenção pode incluir a correção de erros, a realização de atualizações e a adição de novas funcionalidades. O suporte contínuo aos usuários também é fundamental para resolver problemas que surgem, bem como para garantir que o sistema permaneça e�ciente e relevante ao longo do tempo. As atividades de manutenção são críticas para prolongar a vida útil do sistema e maximizar seu valor para a organização. O desenvolvimento de sistemas de informação é um processo complexo, que exige uma abordagem estruturada e metodológica. Cada uma de suas etapas, desde a de�nição e análise de requisitos até a implementação e manutenção, é interdependente e imprescindível para o sucesso do sistema. Compreender e aplicar adequadamente os fundamentos do desenvolvimento de sistemas de informação são práticas que permitem a criação de soluções tecnológicas que não apenas atendem às necessidades atuais das organizações, mas também se adaptam às mudanças e evoluções futuras. Siga em Frente... Fundamentos e fases do ciclo de vida do desenvolvimento de sistemas (SDLC): uma comparação O ciclo de vida do desenvolvimento de sistemas (Systems Development Life Cycle – SDLC) é uma metodologia organizada e sequencial para a criação de sistemas de software (Prikladnicki; Willi; Milani, 2014). Ele abrange todas as etapas necessárias para transformar uma ideia inicial em um sistema funcional e e�ciente, além de assegurar sua manutenção ao longo de sua vida útil. Dominar os princípios e as etapas do SDLC é fundamental para viabilizar um desenvolvimento e�ciente e garantir que o produto �nal atenda às expectativas dos usuáriose aos objetivos da empresa. A importância do SDLC para o ciclo de vida Organização: de�ne um �uxo de trabalho claro, facilitando a colaboração entre equipes. Qualidade: garante que o software atenda aos requisitos do cliente e funcione corretamente. E�ciência: permite otimizar recursos e reduzir custos. Gerenciamento: facilita o acompanhamento do progresso do projeto e a identi�cação de possíveis problemas. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Para facilitar o entendimento das etapas do SDLC com as quais trabalharemos nos próximos tópicos, con�ra na Figura 1, a seguir, uma representação do ciclo de vida. Figura 1 | SDLC. Fonte: Ross (2021). Fundamentos do ciclo de vida do desenvolvimento de sistemas Os fundamentos do SDLC envolvem a compreensão dos princípios e objetivos que orientam cada fase do ciclo de vida. Tais fundamentos garantem que o desenvolvimento de sistemas seja Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO sistemático e bem organizado. De acordo com a literatura da área (Paula Filho, 2019, Pressman; Maxim, 2021, Schach, 2010, Sbrocco; Macedo, 2012), os principais fundamentos são: Estrutura e sequência: o SDLC fornece uma estrutura clara e uma sequência lógica de etapas que devem ser seguidas para garantir que todos os aspectos do desenvolvimento sejam abordados. Essa técnica ajuda a minimizar erros e omissões durante o desenvolvimento. Gestão de projetos: o SDLC apoia a gestão de projetos de software ao estabelecer etapas especí�cas e marcos bem de�nidos. Isso facilita o planejamento, a alocação de recursos e o controle de qualidade no decorrer de todo o projeto (Sbrocco; Macedo, 2012). Comunicação e documentação: as fases do SDLC incluem a documentação detalhada dos requisitos, design e especi�cações. Essa documentação é crucial para a comunicação entre as partes interessadas e a garantia de que todos estejam alinhados com os objetivos do projeto. Qualidade e controle: o SDLC incorpora práticas para preservar a qualidade do software, como testes e revisão contínua. Isso auxilia a identi�cação e correção de possíveis falhas e erros antes que o sistema seja implantado. Flexibilidade e adaptação: embora o SDLC siga um conjunto de�nido de fases, ele também permite adaptações e revisões ao longo do processo para acomodar mudanças nas necessidades dos usuários ou melhorias no projeto (Sbrocco; Macedo, 2012). Fases do ciclo de vida do desenvolvimento de sistemas O SDLC é dividido em várias fases distintas, cada uma exercendo um papel crucial no desenvolvimento do sistema. As principais fases são: 1. Planejamento A fase de planejamento consiste na de�nição dos objetivos do sistema, na análise de viabilidade e no planejamento de recursos. É uma etapa crucial, pois estabelece os parâmetros necessários para o sucesso do projeto (Schach, 2010). Importância: garante que os objetivos do sistema sejam claros e alcançáveis, como também que os recursos estejam adequados para o desenvolvimento. 2. Levantamento de requisitos Nesta fase, os requisitos do sistema são identi�cados e documentados por meio da interação com os stakeholders. Inclui a coleta de informações sobre o que o sistema deve realizar. Importância: fornece a base para todas as etapas subsequentes do SDLC, assegurando que o sistema desenvolvido atenda às necessidades reais dos usuários (Schach, 2010). 3. Análise A fase de análise converte os requisitos em especi�cações detalhadas e modelos do sistema. Essa etapa compreende a modelagem de processos e a de�nição do funcionamento do sistema. Importância: ajuda a estabelecer um entendimento claro e minucioso do sistema, tornando o design e a implementação mais simples. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO 4. Design O design do sistema é elaborado com base nas especi�cações da fase de análise. Inclui a de�nição da arquitetura do sistema, o design da interface do usuário e o planejamento da estrutura de dados (Pressman; Maxim, 2021). Importância: concede um plano detalhado para a construção do sistema, assegurando que todos os componentes e funcionalidades estejam bem de�nidos. 5. Implementação Nesta etapa, o sistema é efetivamente construído. Ou seja, trata-se da fase da codi�cação de acordo com o design. Envolve a programação, con�guração de banco de dados e integração de componentes. Importância: converte os planos e designs em um sistema funcional. É a fase na qual o sistema toma sua forma real. �. Teste O sistema é rigorosamente testado para identi�car e corrigir erros. Inclui testes unitários, de integração, de sistema e de aceitação. Importância: assegura que o sistema funcione conforme o esperado e esteja livre de defeitos antes da implantação. 7. Implantação O sistema é colocado em operação no ambiente de produção. Abrange a instalação do software, a con�guração de hardware e o treinamento dos usuários. Importância: marca a transição do sistema do ambiente de desenvolvimento para o ambiente real, tornando-o disponível para ser usado pelos usuários �nais. �. Manutenção Após a implantação, o sistema entra na fase de manutenção, quando são realizadas atualizações, correções e melhorias. Importância: garante que o sistema continue a atender às necessidades dos usuários e se adapte a mudanças no ambiente ou na tecnologia. Metodologias do SDLC Na literatura que estuda essa área (Paula Filho, 2019, Pressman; Maxim, 2021, Schach, 2010, Sbrocco; Macedo, 2012), existem diversas metodologias que de�nem como as fases do SDLC são executadas. As principais são: Cascata: modelo linear em que cada fase é concluída antes que a próxima seja iniciada. É mais adequado para projetos com requisitos bem de�nidos e estáveis. Ágil: foco voltado a entregas rápidas e iterativas, com alta colaboração entre equipe e cliente. É ideal para projetos com requisitos em constante mudança. DevOps: integração contínua entre desenvolvimento e operações, com automação de processos. Prioriza a entrega rápida e con�ável de software. Para ter acesso a uma esquematização que ilustre a comparação entre as metodologias citadas anteriormente, observe o Quadro 1, a seguir. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Característica Cascata Ágil DevOps Foco Planejamento detalhado no início Flexibilidade e adaptação Entrega contínua e automatizada Iterações Poucas ou nenhuma Muitas e curtas Contínuas Documentação Extensa Essencial, mas concisa Foco em código e automação Feedback do cliente No �nal do projeto Frequente durante o desenvolvimento Contínuo e automatizado Quadro 1 | Metodologias do SDLC. Fonte: elaborado pela autora. Enquanto os fundamentos do SDLC estabelecem o “porquê” e o “como” do processo de desenvolvimento de sistemas, as fases fornecem o “o quê” e o “quando”. Os fundamentos garantem que o desenvolvimento siga uma abordagem estruturada e orientada para resultados, tratando de aspectos como gestão de projetos e controle de qualidade (Paula Filho, 2019). As fases do SDLC representam a execução prática dessa abordagem, detalhando as etapas especí�cas que devem ser seguidas para transformar uma ideia em um sistema funcional. A compreensão dos fundamentos ajuda a aplicar as fases de maneira e�caz, enquanto a execução dessas etapas assegura que os princípios fundamentais sejam seguidos na prática. Juntas, essas práticas garantem que o desenvolvimento de sistemas seja bem organizado, e�ciente e capaz de produzir um software de alta qualidade, que supra as demandas dos usuários e os objetivos da organização. Vamos Exercitar? Descrição da situação-problema Agora que você já possui conhecimentos relacionados aos fundamentos e às fases do ciclo de vida do desenvolvimento de sistemas (SDLC), está apto para responder às perguntas feitas no início desta aula: considerando os fundamentos e fases do ciclo de vida do desenvolvimento de sistemas (SDLC), quais serão os possíveis riscos se dermos continuidade ao projeto da forma como vem sendo conduzido? Quais etapas você recomendaria revisar ou implementar antes de prosseguir com o desenvolvimento?e a inovação em diversas áreas. Essa transformação oportuniza a tomada de decisões mais informadas e precisas, gerando o aumento da e�ciência, o desenvolvimento de novas tecnologias e a criação de vantagens competitivas. Pode-se a�rmar, então, que a informação é fundamental para o avanço e a inovação em negócios, ciência, tecnologia e na vida cotidiana. Vamos Exercitar? Descrição da situação-problema Agora que você já possui conhecimentos relacionados ao princípio da informação, está apto para responder à pergunta feita no início desta aula: como podemos aplicar o princípio da informação de dados para resolver os problemas da gestão de informações (integridade, precisão e disponibilidade dos dados) e ampliar a satisfação dos nossos clientes? Solução Para a empresa solucionar os problemas de gestão de informações e melhorar a satisfação de seus clientes, é importante aplicar o princípio da informação de dados de maneira e�caz. Con�ra, a seguir, alguns passos que podem ser seguidos para obter o resultado esperado: Qualidade dos dados: deve-se assegurar que os dados coletados sejam precisos, completos, consistentes e atualizados. Isso pode ser alcançado por meio de treinamentos para a equipe sobre a importância da inserção correta dos dados e a implementação de sistemas de veri�cação automática, na intenção de detectar e corrigir erros. Integração de sistemas: consiste em garantir que o sistema de CRM esteja bem integrado com outros sistemas utilizados pela empresa, como os �nanceiros e de gestão de venda. A integração e�ciente permite que todas as informações relevantes estejam disponíveis em um único lugar, otimizando o acesso e a tomada de decisões. Acessibilidade dos dados: é importante facilitar o acesso seguro e rápido aos dados para todos os pro�ssionais. Isso pode incluir a implementação de sistemas de autenticação robustos e a criação de interfaces de usuário intuitivas que permitam a visualização rápida das informações necessárias. Análise de dados: devem-se utilizar ferramentas de análise de dados para identi�car padrões e tendências que possam ajudar na melhoria do atendimento. Seria interessante, por exemplo, desenvolver a análise de históricos dos clientes e direcionar a tomada de decisão sobre cada um deles. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Feedback e melhoria contínua: consiste em estabelecer canais de feedback para que os pro�ssionais da empresa possam reportar problemas e sugerir melhorias no sistema. É possível realizar reuniões regulares para discutir sobre o desempenho do sistema e implementar ajustes quando necessário. Ao aplicar esses princípios, a empresa conseguirá aprimorar signi�cativamente a gestão de informações dos seus clientes. Isso resultará em um atendimento mais rápido, preciso e e�ciente. Saiba mais Para saber mais detalhes sobre os princípios da informação, faça a leitura do artigo Arquitetura da informação: revisão integrativa em bases de dados de ciência da informação. Acesse o material sugerido por meio do link a seguir. ROCHA, C. C.; PINTO, V. B.; DAVID, P. B. Arquitetura da informação: revisão integrativa em bases de dados de ciência da informação. Informação & Informação, Londrina, v. 25, n. 2, p. 49-73, abr./jun. 2020. Referências AUDY, J. L. N.; ANDRADE, G. K.; CIDRAL, A. Fundamentos de sistemas de informação. Porto Alegre: Grupo A, 2005. BALTZAN, P.; PHILLIPS, A. Sistemas de informação. Porto Alegre: Grupo A, 2012. E-book. BROOKSHEAR, J. G. Ciência da computação. Porto Alegre: Bookman, 2013. ESCADA, R. M. et al. Princípios de sistemas de informação. São Paulo: Cengage Learning Brasil, 2021. GABRIEL FILHO, O. Inteligência arti�cial e aprendizagem de máquina: aspectos teóricos e aplicações. São Paulo: Blucher, 2023. MACHADO, F. N. R. Segurança da informação: princípios e controle de ameaças. São Paulo: Saraiva, 2014. MANCINI, M.; SOUZA-CONCILIO, I. (Org.). Sistemas de informação: gestão e tecnologia na era digital. Rio de Janeiro: Brasport, 2022. PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software. Porto Alegre: AMGH, 2021. https://ojs.uel.br/revistas/uel/index.php/informacao/article/view/38061/pdf https://ojs.uel.br/revistas/uel/index.php/informacao/article/view/38061/pdf Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO ROCHA, C. C.; PINTO, V. B.; DAVID, P. B. Arquitetura da informação: revisão integrativa em bases de dados de ciência da informação. Informação & Informação, Londrina, v. 25, n. 2, p. 49-73, abr./jun. 2020. Disponível em: https://ojs.uel.br/revistas/uel/index.php/informacao/article/view/38061/pdf. Acesso em: 3 ago. 2024. SILBERSCHATZ, A. Sistema de banco de dados. Rio de Janeiro: Grupo GEN, 2020. WAZLAWICK, R. História da computação. Rio de Janeiro: Elsevier, 2016. E-book. Aula 2 Componentes de um Sistema de Informação Componentes de um sistema de informação Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Explore um universo em que a informação é a chave para o sucesso! Ao investigar os componentes de um sistema de informação, você descobrirá como hardware, software e dados se unem para criar soluções poderosas. Entendendo os diferentes tipos de sistemas de informação, será possível perceber como cada modelo é desenhado para resolver problemas especí�cos, os quais envolvem desde a automação de processos até a tomada de decisões estratégicas. Além disso, ao aprofundar sua compreensão sobre o ciclo de vida da informação, você descobrirá como os dados são gerados, transformados e utilizados ao longo do tempo, a �m de que se tornem ativos valiosos. Esses saberes não dizem respeito apenas a temas técnicos, mas também são conteúdos fundamentais para quem deseja dominar o mundo digital e estar à frente no mercado. Ao assimilar esses conceitos, você estará preparado para enfrentar os desa�os da era da informação com con�ança e visão estratégica. https://ojs.uel.br/revistas/uel/index.php/informacao/article/view/38061/pdf Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Vamos juntos desvendar o poder dos sistemas de informação! Ponto de Partida Estudante, desejo boas-vindas a você! Imagine como seria mergulhar em um mundo onde a tecnologia e a informação se unem para transformar dados em poderosas ferramentas de decisão. Ao explorar os componentes de um sistema de informação, você descobrirá como cada parte que o estrutura – desde o hardware até o software – trabalha em conjunto com as outras para processar e organizar dados. Depois de conhecer os diferentes tipos de sistemas de informação, será possível notar como cada sistema é projetado para atender a necessidades especí�cas, as quais abrangem desde a simples automação de tarefas até a análise complexa de dados. Para concluir, ao estudar o ciclo de vida da informação, você entenderá como a informação nasce, evolui e se torna um ativo valioso ao longo do tempo. Para contextualizar sua aprendizagem, imagine a seguinte situação: a empresa de varejo Comércio & Comércio está enfrentando desa�os na gestão de suas operações, como problemas com controle de estoque e atendimento ao cliente. Recentemente, a organização expandiu suas lojas físicas e lançou um e-commerce, o que aumentou a complexidade de suas operações. O gerente de TI, Carlos, sugere a implementação de um sistema de informação integrado para melhorar a e�ciência e o êxito das atividades. No entanto, a diretoria não tem certeza sobre os componentes e tipos de sistemas de informação necessários para suprir as diversas necessidades da empresa. Quais componentes e tipos de sistemas de informação a Comércio & Comércio pode pensar em implementar para resolver seus desa�os operacionais e melhorar a e�ciência de suas atividades? Estudar sobre os temas mencionados anteriormente nãoPor quê? Solução Os possíveis riscos ao dar continuidade ao projeto sem seguir as fases adequadas do SDLC são signi�cativos e podem comprometer seriamente o sucesso do sistema de gestão de inventário. Sem um planejamento estruturado e a documentação de requisitos, a equipe corre o perigo de desenvolver um sistema que não atende às expectativas do cliente, o que daria origem a um Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO produto �nal que pode ser funcionalmente inadequado ou mesmo inviável para a rede de lojas. Além disso, a ausência de um design detalhado pode levar a uma arquitetura de sistema mal estruturada, tornando o sistema difícil de escalar, integrar com outras plataformas ou manter no longo prazo. Os riscos especí�cos incluem: Desacordo com as necessidades do cliente: sem uma análise de requisitos, há uma grande chance de o sistema não resolver os problemas reais do cliente, gerando insatisfação e necessidade de retrabalho. Retrabalho e aumento de custos: a falta de planejamento e design pode culminar em erros que só serão identi�cados nas fases �nais, aumentando expressivamente os custos e o tempo de desenvolvimento. Di�culdades na manutenção e escalabilidade: um sistema desenvolvido sem uma arquitetura bem planejada pode apresentar di�culdades na sua manutenção e adaptação a futuras necessidades, além de ser mais propenso a falhas. Diante dessa situação, é imperativo que o projeto seja temporariamente interrompido para que as fases iniciais do SDLC sejam revisadas ou implementadas adequadamente. As etapas recomendadas são: Planejamento: deve-se retornar à fase de planejamento para revisar os objetivos estratégicos do sistema. É crucial efetuar uma análise de viabilidade técnica, econômica e operacional para garantir que os recursos necessários estejam disponíveis e que o sistema proposto seja sustentável a longo prazo. Análise de requisitos: consiste em conduzir uma análise de requisitos abrangente, envolvendo todas as partes interessadas, para assegurar que as funcionalidades críticas sejam claramente de�nidas e documentadas. Isso inclui a identi�cação de requisitos funcionais (o que o sistema deve fazer) e não funcionais (como o sistema deve se comportar), como desempenho, segurança e usabilidade. Desenho do sistema: é preciso desenvolver um design robusto, que inclua a de�nição da arquitetura do sistema, modelagem de dados, �uxos de trabalho e interfaces de usuário. Um design bem pensado permitirá que o sistema seja construído de forma modular, facilitando futuras manutenções e expansões. Ao seguir essas etapas, o projeto estará mais alinhado com as melhores práticas de desenvolvimento de sistemas, reduzindo os riscos e aumentando signi�cativamente as chances de entregar um sistema que não somente atenda, mas supere as expectativas do cliente. Saiba mais Para saber mais detalhes sobre modelos de processo de desenvolvimento de sistemas, faça a leitura do artigo Um modelo de processo de software para o desenvolvimento Follow the Sun. https://sol.sbc.org.br/index.php/sbqs/article/view/15235/15079 Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO KROLL, J.; AUDY, J. L. N. Um modelo de processo de software para o desenvolvimento Follow the Sun. In: SIMPÓSIO BRASILEIRO DE QUALIDADE DE SOFTWARE (SBQS), 14., 2015, Manaus. Anais... Porto Alegre: Sociedade Brasileira de Computação, 2015, p. 308-322. Referências HIRAMA, K. Engenharia de software. Rio de Janeiro: Grupo Gen/LTC, 2011. KROLL, J.; AUDY, J. L. N. Um modelo de processo de software para o desenvolvimento Follow the Sun. In: SIMPÓSIO BRASILEIRO DE QUALIDADE DE SOFTWARE (SBQS), 14., 2015, Manaus. Anais... Porto Alegre: Sociedade Brasileira de Computação, 2015, p. 308-322. Disponível em: https://sol.sbc.org.br/index.php/sbqs/article/view/15235/15079. Acesso em: 21 set. 2024. PAULA FILHO, W. de P. Engenharia de software: produtos: volume 1. Rio de Janeiro: LTC, 2019. PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software. Porto Alegre: AMGH, 2021. PRIKLADNICKI, R.; WILLI, R.; MILANI, F. Métodos ágeis para desenvolvimento de software. Porto Alegre: Bookman, 2014. E-book. ROSS, P. Quais são as principais funções, responsabilidades e preocupações da equipe de desenvolvimento no Ciclo de Vida do Desenvolvimento de Software (SDLC). Ubiminds, 2 out. 2021. Disponível em: https://ubiminds.com/pt-br/quais-sao-as-principais-funcoes- responsabilidades-e-preocupacoes-da-equipe-de-desenvolvimento-no-ciclo-de-vida-do- desenvolvimento-de-software-sdlc/. Acesso em: 2 dez. 2024. SBROCCO, J. H. T. de C.; MACEDO, P. C. de. Metodologias ágeis: engenharia de software sob medida. Rio de Janeiro: Érica, 2012. SCHACH, S. R. Engenharia de software. Porto Alegre: Artmed, 2010. Aula 2 Metodologias e Processos de Desenvolvimento Metodologias e processos de desenvolvimento Este conteúdo é um vídeo! https://sol.sbc.org.br/index.php/sbqs/article/view/15235/15079 https://ubiminds.com/pt-br/quais-sao-as-principais-funcoes-responsabilidades-e-preocupacoes-da-equipe-de-desenvolvimento-no-ciclo-de-vida-do-desenvolvimento-de-software-sdlc/ https://ubiminds.com/pt-br/quais-sao-as-principais-funcoes-responsabilidades-e-preocupacoes-da-equipe-de-desenvolvimento-no-ciclo-de-vida-do-desenvolvimento-de-software-sdlc/ https://ubiminds.com/pt-br/quais-sao-as-principais-funcoes-responsabilidades-e-preocupacoes-da-equipe-de-desenvolvimento-no-ciclo-de-vida-do-desenvolvimento-de-software-sdlc/ Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! O desenvolvimento de software é uma área em constante evolução, e entender suas metodologias é essencial para qualquer pro�ssional. Modelos tradicionais, como o modelo em cascata, oferecem uma base, mas é nas metodologias ágeis – como Scrum, Kanban e Extreme Programming (XP) – que encontramos �exibilidade e colaboração, o que viabiliza entregas rápidas e de qualidade. O Lean Software Development complementa esses benefícios ao eliminar desperdícios e maximizar valor. Além disso, os processos de DevOps, que englobam Integração Contínua (CI) e Entrega Contínua (CD), revolucionam a forma como desenvolvemos e implantamos software, garantindo atualizações rápidas e con�áveis. Investigar esses temas não apenas aprimorará suas habilidades, mas também o preparará para impactar positivamente projetos e equipes. Venha descobrir como se tornar um pro�ssional indispensável no mundo do desenvolvimento! Prepare-se para esta jornada de conhecimento! Vamos lá! Ponto de Partida Estudante, desejo a você boas-vindas! O desenvolvimento de software é uma jornada fascinante, que evoluiu expressivamente ao longo dos anos. Ao começar nossa análise pelos modelos tradicionais, como o modelo em cascata, no qual cada fase é sequencial e rigidamente estruturada, percebemos limitações em termos de �exibilidade e adaptação às mudanças. Esse cenário levou ao surgimento das metodologias ágeis, que transformaram a forma com que equipes trabalham. Metodologias como Scrum e Kanban permitem uma abordagem mais dinâmica, como foco voltado à colaboração e à entrega incremental, enquanto o Extreme Programming (XP) enfatiza a importância de testes rigorosos e da programação em par, a �m de assegurar um código de alta qualidade. Por sua vez, o Lean Software Development traz a e�ciência do pensamento lean para o mundo do software, eliminando desperdícios e maximizando o valor entregue. Nesse contexto, os processos de DevOps surgem como uma poderosa combinação de desenvolvimento e operações, promovendo a Integração Contínua (CI) e a Entrega Contínua (CD). Isso signi�ca que as equipes podem lançar atualizações de software rapidamente e de forma con�ável, respondendo de modo ágil às necessidades dos usuários. DisciplinaSISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Para contextualizar sua aprendizagem, imagine a seguinte situação: você foi contratado por uma startup de tecnologia que está desenvolvendo um aplicativo inovador para o mercado �nanceiro. A equipe é pequena, composta por desenvolvedores, designers e um gerente de produto. Todos estão trabalhando juntos para criar um produto mínimo viável (MVP) rapidamente. No entanto, o mercado é extremamente dinâmico, e as demandas dos usuários estão constantemente mudando com base no feedback. A equipe precisa ser ágil para responder velozmente a essas transformações, mas também garantir que o código seja de alta qualidade e que as entregas sejam frequentes e e�cientes. Diante desse cenário, o seu diretor faz a você a seguinte pergunta: com base nas necessidades da nossa startup e nas características de cada metodologia ágil, qual seria a melhor opção a ser adotada pela equipe: Scrum, Kanban, Extreme Programming (XP) ou Lean Software Development? Explorar os temas mencionados é como mergulhar em um universo de inovações e práticas que não apenas melhoram a qualidade do software, mas também tornam o trabalho em equipe mais prazeroso e produtivo. Ao entender esses modelos e metodologias, você estará preparado para enfrentar os desa�os do desenvolvimento moderno e contribuir em projetos que fazem a diferença. Vamos seguir juntos nesta jornada de aprendizagem? Bons estudos! Vamos Começar! Modelos tradicionais de desenvolvimento: uma abordagem estruturada e sequencial Os modelos tradicionais de desenvolvimento de sistemas de informação são abordagens metodológicas que se caracterizam pela estruturação linear e sequencial das etapas de um projeto (Paula Filho, 2019). Tais metodologias foram amplamente adotadas ao longo das décadas, especialmente em ambientes onde a previsibilidade, o controle rigoroso e a documentação detalhada são cruciais para o sucesso do projeto. Esses modelos são tradicionais e fundamentados em um planejamento detalhado, com uma de�nição clara dos requisitos desde o início do projeto (Pressman; Maxim, 2021). Cada fase do desenvolvimento deve ser concluída antes que a próxima seja iniciada, o que minimiza a ambiguidade e facilita o gerenciamento. Essa abordagem sequencial resulta em uma clara divisão entre as diferentes atividades do projeto, como levantamento de requisitos, análise, design, implementação, testes e manutenção (Pressman; Maxim, 2021). Uma característica central desses modelos é a forte ênfase na documentação. Cada etapa do processo de desenvolvimento é acompanhada de uma documentação rigorosa, fato que Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO proporciona uma visão clara do progresso do projeto e otimiza comunicação entre as partes interessadas (Hirama, 2011). A documentação também serve como um guia para a equipe de desenvolvimento e como uma base para futuras manutenções e atualizações do sistema. Principais características: Sequencialidade: as etapas do desenvolvimento seguem uma ordem prede�nida, como: análise de requisitos > design > codi�cação > testes > implantação. Cada fase é concluída antes que a próxima seja iniciada (Fedeli; Polloni; Peres, 2013). Rigidez: as mudanças são difíceis de implementar após o início de uma fase, pois exigem retrabalho em etapas anteriores. Documentação extensa: a documentação detalhada é fundamental em todas as fases do projeto, contemplando desde a análise de requisitos até os manuais do usuário. Foco voltado ao planejamento: o planejamento detalhado é crucial para o sucesso do projeto. Todas as atividades e prazos são de�nidos no início do desenvolvimento. Entrega �nal: o produto �nal é entregue ao cliente após a conclusão de todas as etapas. Existem diversos modelos de acompanhamento e controle para o desenvolvimento de software. Dentre os modelos tradicionais, alguns dos mais conhecidos são: 1. Modelo cascata (waterfall): é o modelo mais icônico, conhecido por sua abordagem linear e sequencial. Cada fase do desenvolvimento �ui para a próxima, como uma cascata, sem retorno às etapas anteriores (Hirama, 2011), o que torna essa opção ideal para projetos com requisitos bem de�nidos desde o início, mas in�exíveis para mudanças. 2. Modelo V (v-model): uma variação do modelo cascata, o modelo V integra as fases de desenvolvimento e teste, de modo que cada fase de desenvolvimento possui uma fase de teste correspondente (Hirama, 2011). Isso enfatiza a veri�cação e a validação desde o início do projeto. 3. Modelo incremental: permite que o sistema seja desenvolvido em pequenos incrementos ou versões, cada qual agregando funcionalidade ao sistema (Pressman; Maxim, 2021). Embora ainda siga uma estrutura sequencial, esse modelo oferece maior �exibilidade para ajustes ao longo do processo. 4. Modelo espiral: combinando aspectos dos modelos cascata e incremental, o modelo espiral organiza o desenvolvimento em ciclos, com ênfase na avaliação e mitigação de riscos (Paula Filho, 2019). A cada ciclo, o projeto é revisado e melhorado, o que torna essa abordagem ideal para projetos complexos e de grande porte. Os modelos tradicionais são usados com frequência em indústrias e projetos nos quais a clareza nos requisitos e a estabilidade do escopo são fatores fundamentais. Alguns setores, como o governo, a construção civil e o desenvolvimento de sistemas críticos, muitas vezes preferem esses modelos pela previsibilidade que oferecem. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO No entanto, tais modelos apresentam limitações quando aplicados a projetos que requerem grande �exibilidade e habilidade para se adaptar às mudanças. A rigidez das fases e a di�culdade para acomodar alterações de requisitos durante o desenvolvimento podem levar a desa�os, especialmente em ambientes de negócios dinâmicos. Os modelos tradicionais de desenvolvimento têm seu valor em contextos nos quais a previsibilidade, o controle e a documentação são prioritários. Eles fornecem uma estrutura sólida para projetos cujos requisitos são bem compreendidos e estáveis. Contudo, em um mundo onde as necessidades de negócios evoluem rapidamente, esses modelos podem ser complementados ou substituídos por abordagens mais ágeis, que oferecem mais �exibilidade e resposta rápida às mudanças. A escolha do modelo adequado deve sempre considerar as características especí�cas do projeto e o ambiente em que ele será desenvolvido. Siga em Frente... Metodologias ágeis: uma abordagem �exível para o desenvolvimento de software As metodologias ágeis representam uma mudança de paradigma na forma como desenvolvemos software. Elas surgiram como uma resposta à rigidez e à estrutura sequencial dos modelos tradicionais de desenvolvimento de software (Sbrocco; Macedo, 2012). Tais metodologias são projetadas para promover a �exibilidade, a colaboração e a entrega contínua de valor ao longo do ciclo de vida do projeto. São especialmente apropriadas para projetos com requisitos em constante mudança e ambientes dinâmicos. Princípios fundamentais das metodologias ágeis O Manifesto Ágil de�ne os valores e princípios que guiam as metodologias ágeis (Agile Manifesto, 2010). São eles: Indivíduos e interações mais que processos e ferramentas. Software em funcionamento mais que documentação abrangente. Colaboração com o cliente mais que negociação de contratos. Responder a mudanças mais que seguir um plano. A partir de agora, vamos explorar detalhadamente algumas das principais metodologias ágeis, que são: Scrum, Kanban, Extreme Programming (XP) e Lean Software Development. Scrum Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO É uma das metodologias ágeis mais populares, conhecida por seu foco voltado à entrega incremental e iterativa de software. Nesse caso, o trabalho é organizado em ciclos curtos e repetitivos, chamados sprints, que geralmente duram de duas a quatro semanas (Sbrocco; Macedo, 2012). O Scrum se baseia em três pilares principais: transparência, inspeção e adaptação. O Scrum possui alguns elementos que são consideradoscomo fatores-chave: Papéis: o Scrum de�ne três papéis principais: Product owner: responsável por de�nir a visão do produto e priorizar o backlog, garantindo que a equipe esteja trabalhando nas funcionalidades mais valiosas. Scrum master: facilita o processo, remove impedimentos e assegura que a equipe siga as práticas ágeis. Equipe de desenvolvimento: um grupo multifuncional e autogerido que desenvolve o produto. Artefatos: o Scrum estipula três artefatos principais: Product backlog: lista priorizada de todas as funcionalidades, melhorias e correções necessárias para o produto. Sprint backlog: conjunto de itens do product backlog selecionados para que sejam trabalhados durante a sprint. Incremento: resultado �nal de uma sprint, que deve ser uma versão utilizável e potencialmente entregável do produto. Cerimônias: Sprint planning: planejamento do trabalho a ser feito na sprint. Daily scrum: reunião diária rápida para sincronizar as atividades da equipe. Sprint review: demonstração do trabalho realizado às partes interessadas. Sprint retrospective: revisão do processo e identi�cação de melhorias. Product backlog: lista priorizada de todas as funcionalidades, melhorias e correções necessárias para o produto. Sprint backlog: conjunto de itens do product backlog selecionados para que sejam trabalhados durante a sprint. Incremento: resultado �nal de uma sprint, que deve ser uma versão utilizável e potencialmente entregável do produto. Sprint planning: planejamento do trabalho a ser feito na sprint. Daily scrum: reunião diária rápida para sincronizar as atividades da equipe. Sprint review: demonstração do trabalho realizado às partes interessadas. Sprint retrospective: revisão do processo e identi�cação de melhorias. Kanban É uma metodologia ágil que se concentra na visualização do �uxo de trabalho e na limitação do trabalho em andamento (WIP) (Coutinho, 2021). Originário do Japão, onde foi inicialmente Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO aplicado na manufatura, o Kanban foi adaptado para o desenvolvimento de software como uma ferramenta produtiva para melhorar a e�ciência e a entrega contínua. Princípios e práticas: Visualização do �uxo de trabalho: o Kanban usa um quadro visual, frequentemente dividido em colunas como “A Fazer”, “Em Progresso” e “Concluído”, para mostrar o status de cada tarefa. Limitação de WIP: de�ne um limite para o número de itens que podem estar em progresso ao mesmo tempo, ajudando a evitar sobrecarga de trabalho e a identi�car gargalos. Gerenciamento do �uxo: monitoramento contínuo do �uxo de trabalho para melhorar a e�ciência e reduzir o tempo de ciclo. Revisão contínua: em vez de sprints, o Kanban promove revisões constantes, viabilizando ajustes imediatos com base no desempenho atual. Extreme Programming (XP) É uma metodologia ágil que se destaca por suas práticas técnicas e rigorosas, bem como pelo seu foco direcionado à qualidade do software. A abordagem XP é ideal para projetos que exigem alta �exibilidade e cujos requisitos podem mudar frequentemente (Coutinho, 2021). Práticas-chave: Programação em par (pair programming): dois desenvolvedores trabalham juntos no mesmo código, alternando entre o papel de “motorista” (quem codi�ca) e “navegador” (quem revisa) (Coutinho, 2021). Desenvolvimento guiado por testes (TDD): os testes são escritos antes do código, garantindo que cada funcionalidade seja validada desde o início. Integração contínua: o código é integrado e testado frequentemente, por vezes em várias ocasiões em um mesmo dia, para detectar e resolver problemas rapidamente. Refatoração: melhoria contínua do código para simpli�car e otimizar sem alterar seu comportamento externo (Coutinho, 2021). Feedback contínuo: recebimento constante de feedback do cliente e da equipe para ajustar o desenvolvimento quando necessário. Lean Software Development É uma metodologia ágil inspirada nos princípios da manufatura enxuta (lean manufacturing), desenvolvida pela Toyota. O objetivo é maximizar o valor entregue ao cliente, eliminando desperdícios e melhorando continuamente o processo de desenvolvimento (Coutinho, 2021). O lean é alicerçado em cinco princípios fundamentais: valor, �uxo de valor, �uxo contínuo, produção puxada e perfeição (Coutinho, 2021). Esses princípios são aplicados em várias indústrias, incluindo o desenvolvimento de software, contexto ao qual são adaptados para maximizar a e�ciência, reduzir o tempo de Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO desenvolvimento e garantir que o produto �nal atenda às expectativas dos clientes com o mínimo desperdício de recursos. Princípios fundamentais: Eliminação de desperdícios: identi�cação e remoção de atividades que não agregam valor ao cliente. Ampli�cação do aprendizado: aprendizado contínuo e adaptação às novas informações. Decisões tomadas o mais tarde possível: adiamento de decisões até que todas as informações necessárias estejam disponíveis, permitindo mais �exibilidade. Entrega feita o mais rápido possível: foco direcionado a entregas rápidas e frequentes para garantir que o cliente receba valor continuamente. Respeito às pessoas: engajamento e valorização das pessoas envolvidas no processo de desenvolvimento. Otimização do todo: predileção pela e�ciência do sistema como um todo em vez de otimizações locais que não melhoram o resultado global. Para exempli�car as particularidades desses métodos, é interessante que você visualize cada uma das metodologias analisadas anteriormente no formato de um quadro comparativo, que evidencia as características associadas a essas abordagens. Acompanhe o Quadro 1, a seguir. Bloco 1 Característica Scrum Kanban XP Foco Ciclos curtos (sprints) Fluxo de trabalho visual Simplicidade e feedback Papéis Product owner, scrum master, time de desenvolvimento Qualquer membro da equipe Programadores, clientes, testadores Artefatos Backlog do produto, backlog da sprint, diário de equipe Quadro Kanban, tarefas Testes unitários, código simples Práticas Planejamento, daily scrum, revisão, retrospectiva Limitar o trabalho em progresso, visualização, melhoria contínua Programação em pares, testes unitários, integração contínua Bloco 2 Lean Software Development Eliminar desperdícios Toda a equipe Mapa de valor, �uxo de valor Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Eliminar desperdícios, ampli�car o aprendizado As metodologias ágeis, como Scrum, Kanban, Extreme Programming (XP) e Lean Software Development, oferecem abordagens �exíveis e colaborativas para o desenvolvimento de software. São particularmente e�cazes em ambientes dinâmicos, onde a adaptação rápida às mudanças e a entrega contínua de valor são cruciais. Cada uma dessas metodologias traz um conjunto único de práticas e princípios que podem ser adaptados às necessidades especí�cas de um projeto, promovendo a e�ciência, a qualidade e a satisfação do cliente. Processos DevOps: Integração Contínua (CI) e Entrega Contínua (CD) DevOps é uma abordagem cultural e técnica que tem a �nalidade de uni�car o desenvolvimento de software (Dev) e as operações de TI (Ops) para melhorar a e�ciência e a qualidade na entrega de software (Prikladnicki; Willi; Milani, 2014). Dentro desse contexto, dois dos principais processos são a Integração Contínua (Continuous Integration – CI) e a Entrega Contínua (Continuous Delivery – CD). Tais processos desempenham papéis vitais na automação e na agilidade do ciclo de vida do desenvolvimento de software, facilitando a entrega frequente e con�ável. Integração Contínua (CI) É uma prática de desenvolvimento de software em que os desenvolvedores integram seu código a um repositório compartilhado várias vezes ao dia (Schach, 2010). Cada integração é, então, veri�cada automaticamente por meio de testes automatizados, a �m de detectar erros o mais cedo possível. Princípios e benefícios: Integrações frequentes: em vez de integrar o código ao �nal do projeto, os desenvolvedores fazem commits frequentes no repositório. Isso reduz a complexidadede integração, já que as mudanças são pequenas e mais fáceis de combinar. Builds automáticos: após cada commit, um processo de build automático é acionado, compilando o código e executando uma suíte de testes automatizados (Schach, 2010). Tal operação garante que o código integrado esteja sempre em um estado funcional. Feedback rápido: o CI proporciona feedback rápido aos desenvolvedores sobre a qualidade do código, permitindo que problemas sejam identi�cados e corrigidos de modo veloz, antes de serem propagados para o restante do projeto. Detecção precoce de erros: ao detectar erros logo após a integração, o CI diminui expressivamente o risco de encontrar grandes problemas mais à frente no ciclo de desenvolvimento. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO O �uxo de trabalho na CI é organizado da seguinte maneira: desenvolvimento > builds automáticos > testes automatizados > feedback, garantindo, assim, processos sempre contínuos (Prikladnicki; Willi; Milani, 2014). Entrega Contínua (CD) É a prática de assegurar que o software esteja em um estado de prontidão para ser liberado a qualquer momento. Ela estende a Integração Contínua ao automatizar ainda mais o pipeline de desenvolvimento, de modo que o software possa ser implantado automaticamente em ambientes de teste ou produção a qualquer instante (Prikladnicki; Willi; Milani, 2014). Princípios e benefícios: Pipeline de implantação automatizado: o CD automatiza todo o processo de implantação, desde o commit até a entrega em produção, garantindo que o software seja disponibilizado de forma rápida e consistente. Entrega rápida e frequente: a prática de CD permite que novas funcionalidades, correções de bugs e melhorias sejam entregues continuamente, proporcionando valor constante ao cliente. Redução de riscos: ao automatizar o processo de implantação e realizar pequenas atualizações frequentes, o CD minimiza os riscos associados a grandes lançamentos de software, nos quais pode ser mais difícil isolar e corrigir problemas. Feedback contínuo: a implantação contínua possibilita que feedbacks reais do uso do software em produção sejam rapidamente obtidos, ajudando a equipe a ajustar o produto de acordo com as necessidades do usuário. O �uxo de trabalho na CD é organizado da seguinte forma: builds e testes automáticos > entrega automatizada > monitoramento. Diferença entre CI e CD CI: concentra-se na integração frequente de código e na execução de testes automatizados para garantir que o código seja funcional. CD: vai além, assegurando que o código integrado e testado possa ser implantado automaticamente em qualquer ambiente, desde o teste até a produção, a qualquer momento. Os processos de Integração Contínua (CI) e Entrega Contínua (CD) são fundamentais no contexto de DevOps, pois permitem que as equipes de desenvolvimento entreguem softwares de alta qualidade de forma rápida e e�ciente. Por meio da automação, essas práticas reduzem os riscos, aumentam a agilidade e proporcionam feedback contínuo, tudo isso enquanto garantem que o software esteja sempre pronto para ser implantado (Sbrocco; Macedo, 2012). A adoção de CI e CD é essencial para qualquer organização que busca melhorar sua capacidade de entregar valor aos clientes de maneira constante e con�ável. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Vamos Exercitar? Descrição da situação-problema Agora que você já possui conhecimentos relacionados às metodologias ágeis Scrum, Kanban, Extreme Programming (XP) e Lean Software Development, está apto para responder à pergunta feita no início desta aula: com base nas necessidades da nossa startup e nas características de cada metodologia ágil, qual seria a melhor opção a ser adotada pela equipe: Scrum, Kanban, Extreme Programming (XP) ou Lean Software Development? Solução A metodologia Scrum é a mais adequada para o contexto da startup, já que é ideal para equipes pequenas e viabiliza a entrega frequente de funcionalidades a partir de sprints curtos. Com o feedback constante dos usuários, a equipe pode ajustar rapidamente o backlog do produto, priorizando as funcionalidades que agregam mais valor. Além disso, as reuniões diárias e as revisões de sprint garantem que todos os envolvidos estejam alinhados e concentrados nos objetivos certos, enquanto a retrospectiva promove a melhoria contínua. Esse ciclo iterativo e incremental oferece a agilidade necessária para responder às mudanças do mercado e assegurar a entrega de um produto de alta qualidade. As principais características que justi�cam a preferência pela metodologia Scrum são: Estrutura de sprints: garante que o produto esteja sempre alinhado com as expectativas do cliente e do mercado, melhorando a qualidade e a relevância do produto �nal. Priorização e �exibilidade: assegura que a equipe esteja sempre atenta às funcionalidades que agregam mais valor ao cliente, permitindo uma adaptação rápida às mudanças do mercado. Transparência e comunicação: garantem que todos os membros da equipe estejam em harmonia e que quaisquer problemas sejam identi�cados e resolvidos de forma veloz. Melhoria contínua: ajuda a equipe a se adaptar e evoluir, otimizando seu desempenho ao longo do tempo e ajustando as práticas para melhor atender às necessidades do projeto e do mercado. Envolvimento dos stakeholders: assegura que o produto esteja sempre em conformidade com as expectativas do cliente e do mercado, aprimorando a qualidade e a relevância do produto �nal. Saiba mais Para saber mais detalhes sobre as metodologias ágeis Scrum, Kanban, Extreme Programming (XP) Lean Software Development, faça a leitura do artigo Adoção de metodologias ágeis para https://sol.sbc.org.br/index.php/sbqs/article/view/15328/15171 Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO produção de jogos sociais com times distribuídos. ANTUNES, J. B. et al. Adoção de metodologias ágeis para produção de jogos sociais com times distribuídos. In: SIMPÓSIO BRASILEIRO DE QUALIDADE DE SOFTWARE (SBQS), 11., 2012, Fortaleza. Anais... Porto Alegre: Sociedade Brasileira de Computação, 2012, p. 349-356. Referências ANTUNES, J. B. et al. Adoção de metodologias ágeis para produção de jogos sociais com times distribuídos. In: SIMPÓSIO BRASILEIRO DE QUALIDADE DE SOFTWARE (SBQS), 11., 2012, Fortaleza. Anais... Porto Alegre: Sociedade Brasileira de Computação, 2012, p. 349-356. Disponível em: https://sol.sbc.org.br/index.php/sbqs/article/view/15328/15171. Acesso em: 27 set. 2024. COUTINHO, C. Resiliência ágil. Rio de Janeiro: Alta Livros, 2021. FEDELI, R. D.; POLLONI, E. G. F.; PERES, F. E. Introdução à ciência da computação. 2. ed. São Paulo: Cengage Learning Brasil, 2013. HIRAMA, K. Engenharia de software. Rio de Janeiro: Grupo Gen/LTC, 2011. MANIFESTO para desenvolvimento ágil de software. Agile Manifesto, 27 abr. 2010. Disponível em: https://agilemanifesto.org/iso/ptbr/manifesto.html. Acesso em: 2 dez. 2024. PAULA FILHO, W. de P. Engenharia de software: produtos: volume 1. Rio de Janeiro: LTC, 2019. PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software. Porto Alegre: AMGH, 2021. PRIKLADNICKI, R.; WILLI, R.; MILANI, F. Métodos ágeis para desenvolvimento de software. Porto Alegre: Bookman, 2014. E-book. SBROCCO, J. H. T. de C.; MACEDO, P. C. de. Metodologias ágeis: engenharia de software sob medida. Rio de Janeiro: Érica, 2012. SCHACH, S. R. Engenharia de software. Porto Alegre: Artmed, 2010. Aula 3 Linguagens de Programação e Paradigmas https://sol.sbc.org.br/index.php/sbqs/article/view/15328/15171 https://sol.sbc.org.br/index.php/sbqs/article/view/15328/15171 https://agilemanifesto.org/iso/ptbr/manifesto.html Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Linguagens de programação e paradigmas Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar suaaprendizagem ainda mais completa. Olá, estudante! Explorar diferentes paradigmas de programação e tecnologias back-end é uma jornada empolgante, que abre portas para inúmeras oportunidades no desenvolvimento de softwares. A programação orientada a objetos (POO) permite modelar sistemas complexos com facilidade, enquanto a programação funcional dá origem a um código limpo e e�ciente. A programação declarativa, por sua vez, oferece uma maneira intuitiva de resolver problemas intricados. No mundo do desenvolvimento web e mobile, dominar Node.js e Express viabiliza a criação de aplicações rápidas e escaláveis com JavaScript, uma das linguagens mais populares do mundo. O Ruby on Rails, com seu foco voltado à convenção sobre con�guração, acelera o desenvolvimento, tornando o processo mais intuitivo e produtivo. Aprofundar seu entendimento sobre esses temas não apenas expandirá suas habilidades técnicas, mas também abrirá caminho para a elaboração de soluções inovadoras e impactantes. Aventure-se e transforme suas ideias em realidade, porque, independentemente do paradigma escolhido, um universo de possibilidades se abrirá para você. Prepare-se para esta jornada de conhecimento! Vamos lá! Ponto de Partida Estudante, desejo a você boas-vindas! O mundo da programação é repleto de possibilidades e oportunidades, no qual diferentes tipos de linguagens e paradigmas desempenham papéis fundamentais na criação de soluções inovadoras. As linguagens de programação podem ser classi�cadas como: imperativas, orientadas a objetos, funcionais e lógicas. Cada uma dessas categorias oferece características únicas que se adaptam a diferentes necessidades e contextos de desenvolvimento. Os paradigmas de programação, como a programação orientada a objetos (POO), enfatizam a modularidade e a reutilização de códigos, enquanto a programação funcional se dedica à Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO aplicação de funções e imutabilidade, promovendo um estilo de programação mais declarativo. Já a programação declarativa simpli�ca o desenvolvimento, possibilitando que o programador descreva o que deseja alcançar sem se preocupar com a implementação detalhada. No cenário atual, em que o desenvolvimento web e mobile se mostra cada vez mais relevante, entender essas linguagens e paradigmas é essencial. Com a crescente demanda por aplicativos e sites responsivos, os conhecimentos em POO e programação funcional são particularmente valiosos para criar experiências de usuário excepcionais. Para contextualizar sua aprendizagem, imagine a seguinte situação: você, um engenheiro de software já formado, trabalha em uma startup de tecnologia que atua no desenvolvimento de aplicações web e mobile. Essa empresa está lançando um novo produto, uma plataforma de gerenciamento de eventos que precisa ser robusta, escalável, capaz de responder rapidamente a grandes volumes de requisições e de fácil manutenção. É preciso decidir qual tecnologia de back-end usar: Node.js com Express ou Ruby on Rails. Você sabe que cada tecnologia tem suas vantagens e que é importante fazer a melhor escolha, a �m de garantir o sucesso do projeto. Diante desse cenário, seu gestor o convida para uma reunião e faz as seguintes perguntas: considerando as características e vantagens do Node.js com Express e Ruby on Rails, qual tecnologia devemos selecionar para o back-end do projeto? Por quê? Ao aprofundar seu entendimento sobre conceitos, você se tornará apto a desenvolver aplicações que impactam positivamente a vida das pessoas, apresentando-se como um pro�ssional indispensável no campo da tecnologia. Junte-se a mim nesta jornada de aprendizagem e descubra como transformar ideias em realidade a partir da programação. Bons estudos! Vamos Começar! Uma visão geral de linguagem de programação Uma linguagem de programação é um conjunto estruturado de regras e comandos que viabilizam a comunicação entre o programador e o computador (Alves, 2013). Assim como as línguas humanas, as linguagens de programação têm sintaxe e semântica próprias, as quais de�nem como as instruções devem ser escritas e interpretadas. Essas linguagens permitem que os desenvolvedores descrevam de maneira precisa as operações que o computador deve executar para realizar uma determinada tarefa. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO A função principal de uma linguagem de programação é possibilitar a criação de softwares, ou seja, de programas que instruem o computador a executar funções especí�cas, as quais incluem desde operações simples, como cálculos matemáticos, até tarefas complexas, como gerenciamento de redes, processamento de grandes volumes de dados ou a elaboração de interfaces de usuário interativas (Alves, 2013). Além de oportunizar a criação de softwares, as linguagens de programação exercem outras funções essenciais, como: automatização de processos, resolução de problemas complexos, integração entre sistemas, personalização e inovação. Em síntese, a linguagem de programação é uma ferramenta indispensável para a criação de softwares, pois transforma ideias e soluções humanas em instruções que os computadores podem executar, abrindo caminho para a automatização, inovação e resolução de problemas complexos no mundo digital (Santos; Saraiva; Fátima, 2018). Os tipos de linguagem de programação Como aprendemos no tópico anterior, as linguagens de programação são ferramentas imprescindíveis para a criação de softwares, e cada uma delas apresenta características e aplicações especí�cas. Ao longo dos anos, diversos paradigmas de programação foram desenvolvidos, dando origem a diferentes tipos de linguagens. De acordo com a literatura dedicada a essa área (Alves, 2013, Melo, 2003, Santos; Saraiva; Fátima, 2018, Audy; Andrade; Cidral, 2005), dentre os principais tipos de linguagens, destacam-se quatro: imperativas, orientadas a objetos, funcionais e lógicas. Cada um desses paradigmas oferece uma abordagem única para o desenvolvimento de softwares, in�uenciando a estruturação do código e a forma com que as operações são realizadas. Vamos analisar essas linguagens de modo mais detalhado a seguir. 1. Linguagens imperativas: são fundamentadas no conceito de que o programador especi�ca de forma clara como o computador deve executar uma tarefa (Santos; Saraiva; Fátima, 2018). O código é uma sequência de comandos que alteram o estado do sistema, executando uma série de instruções passo a passo. A ênfase está no controle detalhado do �uxo de execução, o que torna as linguagens imperativas particularmente e�cientes em tarefas nas quais a performance e o gerenciamento de recursos são fatores críticos. Exemplos: COBOL, C, C++, Java, Python, Pascal e Assembly são amplamente utilizadas em sistemas operacionais, drivers de dispositivos e outras aplicações que exigem proximidade com o hardware. A linguagem COBOL (Common Business-Oriented Language) pode ser considerada uma linguagem emblemática. Foi criada na década de 1950 para atender às necessidades do processamento de dados de negócios e sistemas de informação em grandes organizações, sobretudo no contexto de aplicações comerciais. Também é amplamente utilizada em sistemas bancários, �nanceiros e governamentais. Até hoje, permanece relevante em muitos sistemas legados. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO 2. Linguagens orientadas a objetos (OO): o paradigma orientado a objetos introduz um modelo apoiado na abstração de dados em “objetos”, que são instâncias de “classes”. Cada objeto combina dados (atributos) e comportamento (métodos), promovendo o encapsulamento, de forma que os detalhes internos de um objeto são ocultados do mundo exterior. Esse paradigma facilita a reutilização de código a partir de herança e do polimor�smo, possibilitando que objetos derivados compartilhem e especializem o comportamento de suas classes-mãe (Alves, 2013). Exemplo: linguagens como Java, C++, Python e Ruby ilustram essa abordagem, que é amplamente utilizada em projetos de software de grande escala, nos quais a modularidade,a manutenção e a extensão do sistema são prioridades. 3. Linguagens funcionais: são baseadas na aplicação de funções matemáticas e na ênfase em imutabilidade (ou seja, uma vez que um valor é atribuído a uma variável, ele não pode ser alterado). Nesse paradigma, o foco está voltado ao que deve ser feito, e não ao modo como deve ser feito. Funções puras, que sempre retornam o mesmo resultado para os mesmos parâmetros e não têm efeitos colaterais, são centrais nesse modelo (Melo, 2003). Exemplos: Haskell, Lisp e Scala são tipos de linguagens funcionais especialmente e�cazes em problemas que envolvem processamento paralelo e concorrente, além de oferecer mais facilidade na prova de correção do software. 4. Linguagens lógicas: adotam um paradigma declarativo, em que o programador descreve as propriedades de um problema e deixa a incumbência de encontrar a solução para o sistema de inferência da linguagem (Pressman; Maxim, 2021). Fundamentadas em lógica formal, essas linguagens utilizam conjuntos de fatos e regras para deduzir respostas a consultas. O Prolog é a linguagem mais conhecida desse grupo, sendo frequentemente empregada em áreas como inteligência arti�cial, na qual o raciocínio lógico e a manipulação de conhecimento são essenciais. Esse paradigma é poderoso para solucionar problemas que envolvem grandes volumes de dados estruturados e relações complexas. Cada tipo de linguagem de programação concede vantagens distintas e se adéqua melhor a tarefas e contextos especí�cos. A escolha da linguagem e do paradigma ideal é in�uenciada por fatores como natureza do problema, desempenho desejado, facilidade de manutenção e experiência dos desenvolvedores. Esses paradigmas não são exclusivos; muitos projetos de software contemporâneos adotam uma combinação de diferentes abordagens para atender às diversas necessidades de maneira e�caz. Siga em Frente... Paradigmas de programação: programação orientada a objetos (POO), programação funcional e programação declarativa Pense, agora, na construção de uma casa. Você pode optar por erguê-la tijolo por tijolo, de�nindo cada passo da construção (paradigma imperativo), ou pode desenhar um projeto completo e detalhado, deixando que outros executem as tarefas necessárias (paradigma declarativo). Os Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO paradigmas de programação funcionam como esses diferentes estilos de construção: eles de�nem a forma como você pensa e estrutura um programa de computador (Brookshear, 2013). A programação de computadores é uma atividade fundamental nas áreas de ciência da computação e tecnologia da informação. Para facilitar a organização e a estruturação do código, diferentes paradigmas de programação foram desenvolvidos ao longo dos anos. Dentre os mais importantes, destacam-se a programação orientada a objetos (POO), a programação funcional e a programação declarativa. Cada um desses paradigmas possui características únicas e aborda a solução de problemas de um modo distinto. Vamos tratar, a seguir, desses três principais paradigmas de programação mais detalhadamente. 1. Programação orientada a objetos (POO): é um paradigma que organiza o software em torno de objetos. Esses objetos são instâncias de classes, as quais, por sua vez, são moldes que de�nem atributos (dados) e métodos (funções) especí�cos (Schach, 2010). A POO é baseada em quatro princípios fundamentais: - Encapsulamento: os dados de um objeto são escondidos do mundo externo e só podem ser acessados ou modi�cados por meio de métodos singulares, protegendo a integridade do objeto (Schach, 2010). Isso permite que os detalhes internos de um objeto sejam ocultados e modi�cados sem afetar outras partes do programa. - Herança: possibilita que uma classe herde características (atributos e métodos) de outra classe, promovendo a reutilização de código e facilitando a manutenção. Por exemplo, a classe “Veículo” pode ter as subclasses “Carro” e “Moto”, que herdam características comuns de “Veículo” e adicionam suas próprias características especí�cas. - Polimor�smo: permite que objetos de diferentes classes sejam tratados de maneira uniforme, a partir de uma interface comum (Hirama, 2011). Isso signi�ca que uma única função pode operar em diferentes tipos de objetos, proporcionando �exibilidade e extensibilidade ao código. - Abstração: simpli�ca a complexidade ao ocultar os detalhes desnecessários e destacar apenas os aspectos relevantes de um objeto (Hirama, 2011). A abstração permite que os desenvolvedores se concentrem naquilo que um objeto faz, e não em como faz. A POO é amplamente utilizada em linguagens como Java, C++, Python e C#. Mostra-se particularmente e�caz em aplicações nas quais a modelagem de entidades do mundo real e suas interações é crucial, como em sistemas de gerenciamento de banco de dados, aplicações web complexas e jogos. 2. Programação funcional: é um paradigma que entende a computação como a avaliação de funções matemáticas e evita mudanças de estado e dados mutáveis. Enfatiza o uso de funções puras, isto é, funções nas quais a saída é determinada apenas pelos seus argumentos de entrada, sem efeitos colaterais (Melo, 2003). As principais características da programação funcional são: - Imutabilidade: os dados não podem ser alterados depois de criados. Em vez disso, novas estruturas de dados são criadas a partir das já existentes (Schach, 2010). Isso ajuda a evitar erros relacionados à modi�cação de estado e torna o código mais previsível e fácil de entender. - Funções como cidadão de primeira classe: as funções podem ser passadas como Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO argumentos para outras funções, retornadas como valores de outras funções e atribuídas a variáveis (Sicsú; Samartini; Barth, 2023), o que viabiliza a criação de funções de ordem superior e promove um estilo de programação mais modular e reutilizável. - Recursão: em vez de laços de iteração, a recursão é frequentemente utilizada para a repetição de operações (Sicsú; Samartini; Barth, 2023). Esse processo pode simpli�car a lógica de algoritmos complexos e é especialmente útil em linguagens funcionais. - Composição de funções: funções pequenas e reutilizáveis são compostas para formar funções mais complexas. A composição de funções permite construir programas a partir de componentes simples e reutilizáveis, facilitando a manutenção e a compreensão do código. Haskell, Lisp, Erlang e F# são exemplos de linguagens que suportam a programação funcional. Esse paradigma é particularmente útil para lidar com problemas matemáticos, processamento de dados e situações em que a concorrência e a paralelização são necessárias. 3. Programação declarativa: é um paradigma que expressa a lógica de um cálculo sem descrever seu controle de �uxo. Em vez de descrever como fazer algo, o programador especi�ca o que deve ser feito (Melo, 2003). Existem dois subtipos principais de programação declarativa: - Programação lógica: utiliza a lógica formal para declarar relações entre os dados. O exemplo mais conhecido é o Prolog, em que o programador de�ne fatos e regras, e o sistema de inferência lógica resolve consultas baseadas nesses fatos e regras (Sicsú; Samartini; Barth, 2023). Na programação lógica, o foco está voltado à especi�cação das relações lógicas e às regras de inferência que permitem deduzir novos fatos a partir dos já existentes. - Programação funcional: como mencionado anteriormente, a programação funcional também pode ser entendida como um subtipo da programação declarativa, pois as funções declarativas especi�cam o que deve ser calculado. A programação funcional evita a mutação de estado e permite a composição de funções para construir programas declarativos. A programação declarativa é amplamente adotada em linguagens de consulta, como SQL, em que o programador declara o que deseja que o sistema de banco de dados retorne, em vez de especi�car como os dados devem ser buscados. Além disso, linguagens de script e frameworks de automação, como Ansible e Terraform, seguem princípiosdeclarativos, viabilizando a de�nição do estado desejado dos sistemas e infraestrutura. Para exempli�car as particularidades desses paradigmas, é interessante que você visualize o Quadro 1, a seguir, que apresenta uma comparação entre eles, bem como suas respectivas características. Característica POO Programação Funcional Programação Declarativa Foco Objetos Funções Resultados Estado Mutable (pode mudar) Imutável (não muda) Abstraído Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Estilo Imperativo (instruções passo a passo) Declarativo (o que fazer, e não como) Declarativo Quadro 1 | Comparação entre os paradigmas de programação. Fonte: elaborado pela autora. Cada paradigma de programação oferece uma forma única de resolver problemas computacionais. A escolha da opção ideal dependerá da natureza do problema a ser enfrentado, das preferências do programador e das especi�cações do projeto. Compreender os princípios e as vantagens de cada paradigma permite que os desenvolvedores selecionem a abordagem mais e�ciente e adequada para suas necessidades, tornando a escrita de código mais limpa, modular e sustentável. Desenvolvimento web e mobile: uma exploração do back-end com Node.js, Express e Ruby on Rails O desenvolvimento de software moderno é frequentemente dividido em duas categorias principais: desenvolvimento web e desenvolvimento mobile. Embora ambos os tipos de desenvolvimento compartilhem o objetivo de criar aplicações úteis e funcionais para os usuários, eles diferem signi�cativamente em termos de plataformas, tecnologias, abordagens e considerações de design. Desenvolvimento web O desenvolvimento web envolve a criação de aplicações que rodam em navegadores e podem ser acessadas via internet. As aplicações web podem ser sites simples ou plataformas interativas complexas. No desenvolvimento web, há muitas tecnologias comuns para o bom desempenho e o correto uso dos processos. Como exemplos, podemos citar: HTML/CSS, JavaScript, framework/biblioteca, protocolos e APIs (Pressman; Maxim, 2021). Algumas características marcantes do desenvolvimento web são: Acessibilidade universal: aplicações web podem ser acessadas de qualquer dispositivo com um navegador e conexão à internet. Atualizações centralizadas: as atualizações são realizadas no servidor, sem a necessidade de intervenção do usuário �nal. Responsividade: existe a necessidade de design responsivo para garantir uma boa experiência de usuário em diferentes tamanhos de tela. Desenvolvimento mobile Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO O desenvolvimento mobile se refere à criação de aplicações que rodam em dispositivos móveis, como smartphones e tablets. As aplicações mobile podem ser nativas, híbridas ou baseadas na web (Hirama, 2011). No desenvolvimento mobile, há diversas tecnologias que asseguram um bom desempenho e o uso adequado dos processos. Algumas delas são o desenvolvimento nativo, o desenvolvimento híbrido/cross-platform e o desenvolvimento mobile web. Con�ra, a seguir, algumas características marcantes do desenvolvimento mobile: Acesso a recursos do dispositivo: aplicações móveis podem acessar recursos nativos do dispositivo, como GPS, câmera, acelerômetro, etc. Performance e usabilidade: aplicações nativas geralmente oferecem melhor performance e uma experiência de usuário mais �uida se comparadas às aplicações web. Distribuição via App Stores: aplicações móveis são distribuídas por meio de lojas de aplicativos, como a App Store (iOS) e Google Play Store (Android). Noti�cações Push: capacidade de enviar noti�cações diretamente para o dispositivo do usuário, aumentando o engajamento. Bloco 1 Formas de desenvolvime nto Plataformas Desempenho DEV e Manutenção Web Executa em qualquer navegador Limitado pela capacidade do navegador e da internet Código único, o que facilita a manutenção Mobile Executa em dispositivos móveis Mais rápidos por terem acesso direto ao dispositivo Pode ter DEV separado para cada plataforma iOS e Android Bloco 2 Experiência do Usuário (UX) Distribuição UX mais rica e interativa, utilizando recursos nativos do dispositivo Disponível imediatamente após publicação UX mais rica e interativa, utilizando recursos nativos do dispositivo Requer aprovação e distribuição pelas lojas App Store e Google Play Store Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Quadro 2 | Comparação entre as formas de desenvolvimento web e mobile. Fonte: elaborado pela autora. No desenvolvimento de aplicações web e mobile, o back-end desempenha um papel crucial ao gerenciar a lógica de negócio, o armazenamento de dados e a comunicação com o front-end. Três das tecnologias mais populares para o desenvolvimento de back-end são: Node.js, Express e Ruby on Rails (Dale; Lewis, 2010). Cada uma dessas tecnologias oferece um conjunto distinto de características e vantagens que podem atender a diferentes necessidades de projetos. Tais tecnologias são amplamente utilizadas para construir back-ends robustos e escaláveis. Vamos conhecê-las mais detalhadamente a seguir. 1. Node.js: é um ambiente de execução JavaScript baseado no motor V8 do Google Chrome. Permite que os desenvolvedores usem JavaScript para construir a lógica de back-end, promovendo uma uni�cação da linguagem entre o front-end e o back-end (Dale; Lewis, 2010). Principais características: - Event-Driven: é projetado para construir aplicações escaláveis utilizando um modelo de I/O não bloqueante e dirigido a eventos. - Single-Threaded: embora seja single-threaded, ele pode gerenciar múltiplas conexões concorrentes sem bloquear o thread principal. - NPM (Node Package Manager): o NPM é o gerenciador de pacotes para Node.js, oferecendo uma vasta quantidade de bibliotecas e módulos que podem ser facilmente integrados às aplicações (Hirama, 2011). As principais vantagens obtidas pelo uso dessa linguagem são alta performance e desenvolvimento uni�cado. 2. Express: é um framework minimalista para Node.js que facilita a criação de aplicações web e APIs robustas (Hirama, 2011). Fornece uma camada leve e �exível sobre Node.js, simpli�cando o desenvolvimento. Principais características: - Minimalista e �exível: oferece um conjunto básico de funcionalidades sem impor uma estrutura rígida, permitindo grande �exibilidade na arquitetura da aplicação. - Middleware: usa uma série de funções intermediárias (middleware) que podem manipular solicitações e respostas, tornando o código mais modular e reutilizável. - Rotas simples e poderosas: facilita a de�nição de rotas para tratar de diferentes endpoints de uma aplicação. As principais vantagens adquiridas pela utilização dessa linguagem são simplicidade, �exibilidade e ecossistema amplo. 3. Ruby on Rails: também chamado de Rails, é um framework web escrito em Ruby que segue o padrão de arquitetura Model-View-Controller (MVC). É conhecido por sua convenção sobre con�guração, que acelera o desenvolvimento de aplicações (Hirama, 2011). Principais características: - Padrão MVC: segrega claramente a lógica de apresentação, a lógica de negócios e o acesso aos dados. - Convenção sobre con�guração: adota padrões sensatos para a estrutura e con�guração Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO da aplicação, minimizando a necessidade de con�guração explícita. - Active Record: um poderoso sistema de mapeamento objeto-relacional (ORM) que facilita a interação com o banco de dados. - Gemas: o gerenciador de pacotes do Ruby, conhecido como RubyGems, otimiza a inclusão de bibliotecas e extensões na aplicação. As principais vantagens obtidas pelo uso dessa linguagem são desenvolvimento rápido, participação em comunidades e suporte. Característica Node.js/Express Ruby on Rails Linguagem JavaScript Ruby Filoso�a Minimalista e �exível Convenção sobre con�guração Performance Alta performance, ideal para aplicações em tempo real Boa performance, ideal para aplicações web tradicionais Curva de aprendizado Mais fácil para desenvolvedores JavaScript Pode exigir um pouco mais de tempopara aprender Quadro 3 | Comparação entre tecnologias de desenvolvimento. Fonte: elaborado pela autora. Cada uma das tecnologias de desenvolvimento apresenta vantagens e desvantagens. Por essa razão, é importante considerar os seguintes aspectos: Node.js/Express: ideal para aplicações em tempo real, APIs RESTful, aplicações de streaming e microsserviços. Ruby on Rails: ideal para aplicações web tradicionais, e-commerce, aplicações de gerenciamento de conteúdo e MVPs. Node.js, Express e Ruby on Rails são tecnologias poderosas para o desenvolvimento de back- end. Cada uma delas apresenta características e benefícios próprios. Node.js e Express são recomendadas para aplicações que necessitam de alta escalabilidade e desempenho em tempo real, enquanto a tecnologia Ruby on Rails é sugerida para desenvolvimento rápido e aplicações que se bene�ciam de um padrão MVC robusto. A escolha da opção mais pertinente dependerá das urgências especí�cas do projeto, da equipe de desenvolvimento e do ecossistema existente. Vamos Exercitar? Descrição da situação-problema Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Agora que você já possui conhecimentos relacionados ao desenvolvimento web e mobile, sobretudo quanto ao back-end com Node.js, Express e Ruby on Rails, está apto para responder à pergunta feita no início desta aula. No caso proposto, você precisaria desenvolver uma plataforma de gerenciamento de eventos que requer alta escalabilidade e resposta rápida para grandes volumes de requisições. Considerando as características e vantagens do Node.js com Express e Ruby on Rails, qual tecnologia devemos selecionar para o back-end do projeto? Por quê? Solução Vantagens do Node.js com Express Alta escalabilidade: a tecnologia Node.js pode gerenciar milhares de conexões simultâneas com um único servidor, graças ao seu modelo de loop de eventos. Isso signi�ca que você, caro estudante, pode escalar sua aplicação horizontalmente, adicionando mais instâncias quando necessário, na intenção de lidar com o aumento da demanda. Desempenho: a execução de JavaScript no lado do servidor com Node.js proporciona um desempenho elevado, especialmente em aplicações que necessitam de respostas rápidas e em tempo real. A arquitetura não bloqueante permite que o servidor continue processando outras requisições enquanto aguarda a conclusão de operações I/O. Ecossistema NPM: o Node Package Manager (NPM) oferece uma vasta gama de bibliotecas e módulos que você pode aproveitar para acelerar o desenvolvimento da aplicação. A comunidade ativa contribui com inúmeras soluções prontas para uso, facilitando a integração de funcionalidades complexas. Flexibilidade com Express: Express é um framework minimalista que oferece a �exibilidade necessária para criar APIs e�cientes e gerenciar rotas de forma simples e organizada. Ele viabiliza a con�guração de middlewares, a manipulação de requisições e respostas HTTP, e a implementação de funcionalidades personalizadas, conforme as necessidades do projeto. Comparação com Ruby on Rails Ruby on Rails é um framework poderoso que acelera o desenvolvimento inicial com sua �loso�a de convenção sobre con�guração, otimizando a criação de aplicações web estruturadas e organizadas. No entanto, em cenários que exigem alta escalabilidade e desempenho em tempo real, a tecnologia Node.js se destaca por sua capacidade de lidar e�cientemente com operações I/O intensivas. Rails utiliza um modelo de threading que pode se tornar um gargalo em aplicações com um alto volume de conexões simultâneas, em que cada requisição pode consumir uma thread separada. Isso pode fazer surgir a necessidade de uma maior capacidade de hardware para manter o desempenho, aumentando os custos operacionais. Portanto, considerando as demandas especí�cas de alta escalabilidade e resposta rápida para a plataforma de gerenciamento de eventos, a abordagem Node.js com Express é a escolha mais adequada. Essa combinação proporcionará a e�ciência e a �exibilidade necessárias para Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO desenvolver uma aplicação robusta e escalável, garantindo a satisfação dos usuários e o sucesso do projeto. Saiba mais Para saber mais detalhes sobre desenvolvimento web e mobile, faça a leitura do artigo Análise teórica sobre o desenvolvimento de aplicativos nativos, híbridos e webapps. SILVA, F. A. de S.; PRADO, E. F. do. Análise teórica sobre o desenvolvimento de aplicativos nativos, híbridos e webapps. EduFatec: educação, tecnologia e gestão, Franca, v. 2, n. 1, p. 1-18, jan./jun, 2019. Referências ALVES, W. P. Linguagem e lógica de programação. Rio de Janeiro: Érica, 2013. AUDY, J. L. N.; ANDRADE, G. K.; CIDRAL, A. Fundamentos de sistemas de informação. Porto Alegre: Grupo A, 2005. E-book. BROOKSHEAR, J. G. Ciência da computação. Porto Alegre: Bookman, 2013. DALE, N.; LEWIS, J. Ciência da computação. 4. ed. Rio de Janeiro: LTC, 2010. HIRAMA, K. Engenharia de software. Rio de Janeiro: Grupo Gen/LTC, 2011. MELO, A. C. V. de. Princípios de linguagem de programação. São Paulo: Blucher, 2003. PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software. Porto Alegre: AMGH, 2021. SANTOS, M. G.; SARAIVA, M. O.; FÁTIMA, P. G. Linguagem de programação. Porto Alegre: SAGAH, 2018. SCHACH, S. R. Engenharia de software. Porto Alegre: Artmed, 2010. SICSÚ, A. L.; SAMARTINI, A.; BARTH, N. L. Técnicas de aprendizado de máquina. São Paulo: Blucher, 2023. SILVA, F. A. de S.; PRADO, E. F. do. Análise teórica sobre o desenvolvimento de aplicativos nativos, híbridos e webapps. EduFatec: educação, tecnologia e gestão, Franca, v. 2, n. 1, p. 1-18, jan./jun, 2019. Disponível em: https://ric.cps.sp.gov.br/bitstream/123456789/5044/1/AN%c3%81LISE%20TE%c3%93RICA%20S https://ric.cps.sp.gov.br/bitstream/123456789/5044/1/AN%c3%81LISE%20TE%c3%93RICA%20SOBRE%20O%20DESENVOLVIMENTO%20DE%20janeiro%20junho%202019.pdf https://ric.cps.sp.gov.br/bitstream/123456789/5044/1/AN%c3%81LISE%20TE%c3%93RICA%20SOBRE%20O%20DESENVOLVIMENTO%20DE%20janeiro%20junho%202019.pdf https://ric.cps.sp.gov.br/bitstream/123456789/5044/1/AN%c3%81LISE%20TE%c3%93RICA%20SOBRE%20O%20DESENVOLVIMENTO%20DE%20janeiro%20junho%202019.pdf Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO OBRE%20O%20DESENVOLVIMENTO%20DE%20janeiro%20junho%202019.pdf. Acesso em: 25 set. 2024. Aula 4 Principais Tipos de Sistemas Gerenciadores de Banco de Dados Principais tipos de sistemas gerenciadores de banco de dados Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Conhecer as particularidades inerentes aos bancos de dados é fundamental para qualquer pro�ssional de tecnologia, pois são elementos essenciais para a gestão de dados em aplicações modernas. Existem dois tipos principais de bancos de dados: os relacionais, que organizam informações em tabelas e garantem integridade, e os não relacionais, que oferecem �exibilidade para lidar com grandes volumes de dados não estruturados. Além disso, a computação em nuvem transformou a forma com que gerenciamos essas informações, já que podemos escolher entre modelos como IaaS, PaaS e SaaS. Tais serviços permitem que as empresas escalem recursos, desenvolvam aplicações e acessem softwares de maneira prática. Estudar sobre os conceitos mencionados anteriormente não apenas aprimorará suas habilidades técnicas, mas também o preparará para enfrentar desa�os reais no campo da tecnologia. Venha explorar esse universo e saiba como se tornar um pro�ssional indispensável na era dos dados. Ponto de Partida Estudante, desejo a você boas-vindas! https://ric.cps.sp.gov.br/bitstream/123456789/5044/1/AN%c3%81LISE%20TE%c3%93RICA%20SOBRE%20O%20DESENVOLVIMENTO%20DE%20janeiro%20junho%202019.pdf Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃOEntender o funcionamento dos bancos de dados é essencial no cenário tecnológico atual, pois eles são fundamentais para a gestão e�ciente de dados em diversas aplicações. Os bancos de dados podem ser classi�cados em dois tipos principais: relacionais e não relacionais. Os bancos de dados relacionais organizam dados em tabelas interconectadas, utilizando um modelo estruturado que permite consultas complexas e integridade referencial. São ideais para aplicações que requerem consistência e transações rigorosas, como sistemas �nanceiros e de gerenciamento empresarial. Por sua vez, os bancos de dados não relacionais oferecem mais �exibilidade, viabilizando o armazenamento de dados em formatos variados, como documentos, chaves-valor e grafos. Essa abordagem é especialmente útil para aplicações que lidam com grandes volumes de dados não estruturados ou que exigem escalabilidade rápida, como as redes sociais. Além disso, a computação em nuvem revolucionou a maneira com que as empresas gerenciam e armazenam dados. Os modelos de serviço em nuvem, como Infrastructure as a Service (IaaS), Platform as a Service (PaaS) e Software as a Service (SaaS) disponibilizam soluções adaptáveis às demandas de cada organização. O IaaS fornece a infraestrutura necessária para rodar bancos de dados na nuvem, possibilitando que as empresas escalem recursos quando for preciso. O PaaS, por sua vez, oferece um ambiente de desenvolvimento completo, facilitando a criação e implantação de aplicativos que utilizam bancos de dados. Já o SaaS concede aplicações prontas para uso, as quais podem acessar bancos de dados sem que os usuários precisem se preocupar com a infraestrutura ou a manutenção. Para contextualizar sua aprendizagem, imagine a seguinte situação: você é um consultor de TI contratado por uma startup de tecnologia chamada Teck & Teck, que está desenvolvendo uma aplicação inovadora para gestão de eventos. A empresa está no início do seu ciclo de desenvolvimento e precisa escolher o melhor modelo de serviço em nuvem para hospedar sua aplicação. A equipe responsável pelo andamento do projeto tem conhecimentos variados em infraestrutura, desenvolvimento de software e gerenciamento de aplicativos. Os membros precisam de uma solução que ajude a escalar rapidamente, controlar custos e manter o foco direcionado ao desenvolvimento do produto, sem que seja preciso se preocupar excessivamente com a manutenção da infraestrutura. Diante desse cenário, seu diretor o convida para uma reunião e lhe faz a seguinte pergunta: qual modelo de serviço em nuvem (IaaS, PaaS ou SaaS) você recomendaria? Por quê? Estudar sobre os conceitos e modelos mencionados anteriormente é crucial para quem deseja se destacar no campo da tecnologia. Ao dominar as diferenças entre bancos de dados relacionais e não relacionais, além de entender como funcionam os serviços em nuvem, você estará preparado para enfrentar desa�os complexos e contribuir signi�cativamente com o sucesso de projetos que dependem da gestão e�caz de dados. Venha explorar este fascinante universo e descubra como suas habilidades podem impactar o futuro da tecnologia. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO E aí? Vamos embarcar nesta análise juntos? Bons estudos! Vamos Começar! Introdução, conceitos e fundamentos relacionados aos bancos de dados Os bancos de dados são componentes essenciais no cenário tecnológico atual, pois viabilizam uma forma organizada de armazenar, gerenciar e recuperar informações. Com o crescente volume de dados gerados diariamente, o uso e�ciente de bancos de dados se tornou fundamental para o funcionamento de diversas aplicações, seja no contexto de atuação de pequenas empresas ou de grandes corporações. Conceitos fundamentais Um banco de dados é uma coleção organizada de dados estruturados, os quais são armazenados de maneira que possam ser facilmente acessados, gerenciados e atualizados (Silberschatz, 2020). É utilizado para suportar operações empresariais, como transações �nanceiras, gestão de estoque, registros de clientes e muitas outras atividades. Uma planilha eletrônica pode ser considerada uma base de dados relacionais, já que: a. Dispõe de recursos para armazenar e manipular informações, permitindo que a chamemos de base de dados. b. Viabiliza a correlação dos dados, o que nos permite classi�cá-la como relacional. Deve-se entender que não é necessário cumprir muitos requisitos para que um sistema seja classi�cado como uma base de dados. Por exemplo, um saco que armazena contas de papel impressas, cada uma contendo informações, pode ser considerado uma base de dados. Embora essa abordagem não seja uma solução útil e não bene�cie uma organização, além de abrir margem para a desordem, ainda assim é uma base de dados, pois as informações �cam disponíveis e podem ser consultadas, mesmo que de forma inconveniente. Vale ressaltar, ainda, que é possível adicionar e remover informações desse “sistema”. Vamos conhecer, a seguir, alguns dos bancos de dados mais utilizados atualmente. 1. Sistema de gerenciamento de banco de dados (SGBD) O sistema de gerenciamento de banco de dados (SGBD) é o software que interage com os usuários �nais, aplicativos e o próprio banco de dados para capturar e analisar os dados Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO (Pichetti; Vida; Cortes, 2021). Ele facilita os processos de de�nição, criação, consulta, atualização e administração dos bancos de dados. Podemos citar como exemplos de SGBDs: MySQL, PostgreSQL, Oracle Database e Microsoft SQL Server. 2. Modelo de dados O modelo de dados determina a estrutura lógica de um banco de dados, tornando-se essencial para a sua organização. De acordo com a literatura dedicada a essa área (Alves, 2021, Pichetti; Vida; Cortes, 2021, Silberschatz, 2020, Silva et al., 2021), os principais modelos de dados são: - Modelo relacional: organiza os dados em tabelas (ou relações) que podem ser relacionadas entre si por meio de chaves primárias e estrangeiras (Alves, 2021). Esse é o modelo mais comum, fundamentado na álgebra relacional. - Modelo de dados em rede: os dados são organizados em uma estrutura de rede ou grá�co, permitindo relações complexas entre registros (Schach, 2010). - Modelo de dados hierárquico: organiza os dados em uma estrutura de árvore, com um único pai para cada registro-�lho. - Modelo de dados orientado a objetos: combina conceitos de bancos de dados e programação orientada a objetos, possibilitando que objetos complexos sejam armazenados diretamente no banco de dados. 3. Structured Query Language (SQL) SQL é a linguagem-padrão utilizada para gerenciar e manipular bancos de dados relacionais. Com SQL, é possível executar operações como inserção, atualização, exclusão e consulta de dados. Algumas das principais instruções SQL incluem: SELECT, utilizada para consultar dados; INSERT, empregada para inserir novos registros; UPDATE, usada para atualizar registros já existentes; e DELETE, utilizada para excluir registros. Fundamentos dos bancos de dados Integridade dos dados: corresponde à precisão e à consistência dos dados armazenados no banco de dados (Silva et al., 2021). Existem vários tipos de integridade, como: Integridade de entidade: garante que cada tabela tenha uma chave primária única. Integridade referencial: assegura que as relações entre tabelas sejam mantidas corretamente por meio de chaves estrangeiras (Silva et al., 2021). Integridade de domínio: garante que os dados armazenados em uma coluna sejam do tipo especi�cado e estejam dentro do domínio permitido. Normalização: é o processo de organizar as informações em um banco de dados para reduzir a redundância e melhorar a integridade dos dados (Pressman; Maxim, 2021). As formas normais são etapas de normalização, em que cada etapa remove tipos especí�cos de anomalias de dados. De acordo com Silberschatz (2020), as três primeiras formas normais são: Primeira forma normal (1NF): garante que cada coluna contenha apenas valores atômicos e que cada registro seja único. Segundaforma normal (2NF): assegura que todos os atributos não chave sejam totalmente dependentes da chave primária. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Terceira forma normal (3NF): garante que não haja dependências transitivas entre os atributos não chave. Transações e con�abilidade: as transações em um banco de dados são sequências de operações tratadas como uma única unidade lógica de trabalho. Segundo a literatura especializada no assunto (Alves, 2021, Pichetti; Vida; Cortes, 2021, Silberschatz, 2020, Silva et al., 2021), para garantir a con�abilidade e a integridade dos dados, as transações devem seguir as propriedades ACID: Atomicidade: assegura que todas as operações dentro da transação sejam completadas com sucesso ou que nenhuma delas seja aplicada. Consistência: garante que uma transação leve o banco de dados de um estado consistente a outro estado consistente. Isolamento: assegura que as operações de uma transação sejam isoladas das operações de outras transações. Durabilidade: garante que, uma vez que uma transação seja con�rmada, suas alterações persistam, mesmo em caso de falhas de sistema. Primeira forma normal (1NF): garante que cada coluna contenha apenas valores atômicos e que cada registro seja único. Segunda forma normal (2NF): assegura que todos os atributos não chave sejam totalmente dependentes da chave primária. Terceira forma normal (3NF): garante que não haja dependências transitivas entre os atributos não chave. Atomicidade: assegura que todas as operações dentro da transação sejam completadas com sucesso ou que nenhuma delas seja aplicada. Consistência: garante que uma transação leve o banco de dados de um estado consistente a outro estado consistente. Isolamento: assegura que as operações de uma transação sejam isoladas das operações de outras transações. Durabilidade: garante que, uma vez que uma transação seja con�rmada, suas alterações persistam, mesmo em caso de falhas de sistema. Os bancos de dados estão presentes em nosso dia a dia e são utilizados em diversas áreas, como gerenciamento de clientes, e-commerce, sistemas bancários e sistemas de gestão empresarial (ERP). Os bancos de dados são fundamentais para a gestão e utilização e�ciente de grandes volumes de informações. Compreender os conceitos básicos e os fundamentos dos bancos de dados é essencial para qualquer pro�ssional de TI. O uso adequado de um sistema de gerenciamento de banco de dados (SGBDs), a aplicação de modelos de dados apropriados, a escrita de consultas SQL coerentes e a garantia da integridade dos dados são habilidades cruciais para a construção de sistemas robustos e con�áveis. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Siga em Frente... Bancos de dados relacionais e não relacionais: uma comparação detalhada Os bancos de dados desempenham um papel imprescindível na gestão de informações em diversas aplicações, suprindo desde pequenos sistemas até grandes infraestruturas corporativas. Eles podem ser classi�cados em duas categorias principais: bancos de dados relacionais (RDBMS) e bancos de dados não relacionais (NoSQL). Cada tipo possui características, vantagens e desvantagens especí�cas que o tornam adequado para diferentes modelos de aplicações e necessidades de armazenamento de dados. Banco de dados relacional (RDBMS) Organiza dados em tabelas, que consistem em linhas e colunas. Cada tabela possui um esquema prede�nido que estipula a estrutura dos dados, e as relações entre diferentes tabelas são estabelecidas por meio de chaves primárias e estrangeiras (Silva et al., 2021). Principais características: Integridade e consistência: a integridade dos dados é garantida a partir de regras de integridade referencial, chaves primárias e estrangeiras. A consistência é mantida com o uso de transações ACID (Atomicidade, Consistência, Isolamento, Durabilidade) (Silberschatz, 2020). Chave primária: uma chave primária em um banco de dados é um atributo ou um conjunto de atributos que identi�ca de maneira única cada registro em uma tabela (Silberschatz, 2020). Ela assegura que não existam registros duplicados e que cada entrada possa ser referenciada de modo singular. Além disso, a chave primária não pode conter valores nulos, a �m de preservar a integridade dos dados. Em geral, utiliza-se um campo como um número de identi�cação (ID) para facilitar essa detecção, como CPF, CNPJ ou código. Chave estrangeira: uma chave estrangeira em um banco de dados é um campo ou conjunto de campos em uma tabela que se refere à chave primária de outra tabela (Pichetti; Vida; Cortes, 2021). Ela estabelece uma relação entre as duas tabelas, garantindo a integridade referencial dos dados. Isso signi�ca que os valores da chave estrangeira devem corresponder a valores existentes na chave primária da tabela referenciada, viabilizando a criação de vínculos entre registros relacionados, como o código da cidade na tabela de cadastros de cliente. SQL (Structured Query Language): é a linguagem-padrão para o gerenciamento e a manipulação de dados em bancos de dados relacionais. Permite a execução de operações complexas de consulta, inserção, atualização e exclusão de dados. Vantagens: Consistência e integridade dos dados: as regras de integridade e transações ACID garantem que os dados sejam precisos e consistentes. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Flexibilidade de consulta: a linguagem SQL viabiliza consultas complexas e ad hoc, facilitando a recuperação de dados de maneiras especí�cas e detalhadas. Padronização: SQL é uma linguagem padronizada, amplamente aceita e utilizada, o que otimiza a portabilidade e interoperabilidade entre diferentes sistemas. Desvantagens: Escalabilidade vertical: os bancos de dados relacionais geralmente escalam melhor verticalmente (aumentando a capacidade do servidor) do que horizontalmente (distribuindo a carga entre múltiplos servidores). Desempenho em grandes volumes de dados: em cenários com extensos volumes de dados e alta taxa de transações, o desempenho pode se degradar. Esquema rígido: a necessidade de um esquema prede�nido pode limitar a �exibilidade na alteração da estrutura dos dados. Exemplos de bancos de dados relacionais são: MySQL, PostgreSQL, Oracle Database e Microsoft SQL Server. Consistência e integridade dos dados: as regras de integridade e transações ACID garantem que os dados sejam precisos e consistentes. Flexibilidade de consulta: a linguagem SQL viabiliza consultas complexas e ad hoc, facilitando a recuperação de dados de maneiras especí�cas e detalhadas. Padronização: SQL é uma linguagem padronizada, amplamente aceita e utilizada, o que otimiza a portabilidade e interoperabilidade entre diferentes sistemas. Escalabilidade vertical: os bancos de dados relacionais geralmente escalam melhor verticalmente (aumentando a capacidade do servidor) do que horizontalmente (distribuindo a carga entre múltiplos servidores). Desempenho em grandes volumes de dados: em cenários com extensos volumes de dados e alta taxa de transações, o desempenho pode se degradar. Esquema rígido: a necessidade de um esquema prede�nido pode limitar a �exibilidade na alteração da estrutura dos dados. Banco de dados não relacional (NoSQL) Foi desenvolvido para lidar com grandes volumes de dados, alta taxa de transações e a necessidade de escalabilidade horizontal (Silva et al., 2021). Esses bancos não seguem um esquema rígido e podem armazenar dados de formatos variados, incluindo documentos, grá�cos, colunas e pares chave-valor. Principais características: Escalabilidade horizontal: facilmente escalável adicionando mais servidores ao cluster, distribuindo a carga de forma e�ciente (Silva et al., 2021). Flexibilidade de esquema: permite mudanças na estrutura dos dados sem a necessidade de rede�nir o esquema, tornando-se ideal para aplicações em constante evolução. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Desempenho em grandes volumes de dados: otimizado para lidar com grandes volumes de dados e altas taxas de transações (Silvaé apenas uma questão de adquirir conhecimento técnico; também consiste em se preparar para entender e participar do futuro digital, no qual a informação é o recurso mais valioso. Prepare-se para se conectar com o futuro da tecnologia e do conhecimento! Bons estudos! Vamos Começar! Componentes de um sistema de informação Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Conhecer os sistemas de informação e o ciclo de vida da informação é uma ação crucial para compreender como as organizações usam dados na intenção de alcançar o sucesso. Os componentes de um sistema de informação, como hardware, software, dados, pessoas e processos, trabalham em conjunto para transformar dados em decisões estratégicas. No entanto, primeiro é necessário saber que um sistema de informação nada mais é do que um conjunto organizado de recursos que coleta, processa, armazena e distribui informações. Tais recursos podem ser representados por pessoas, hardware, software, dados e procedimentos (Audy; Andrade; Cidral, 2005). O principal objetivo de um sistema de informação é apoiar a tomada de decisões, coordenação, controle, análise e visualização em uma organização (Baltzan; Phillips, 2012). Os componentes de sistemas de informação são subdivididos em cinco categorias principais. Con�ra a seguir. 1. Pessoas: são os usuários e operadores do sistema de informação. Elas desempenham um papel imprescindível, uma vez que são responsáveis por inserir dados, operar e manter o sistema, e usar as informações produzidas para tomar decisões (Dale; Lewis, 2010). - Usuários: incluem funcionários que utilizam o sistema para realizar suas tarefas diárias, como inserir dados, gerar relatórios e buscar informações. - Administradores e técnicos de TI: encarregados da manutenção, atualização, segurança e solução de problemas do sistema de informação. - Gestores: usam as informações fornecidas pelo sistema para tomar decisões estratégicas e gerenciar a organização. 2. Hardware: compreende todos os dispositivos físicos utilizados para operar e interagir com o sistema de informação (Dale; Lewis, 2010). - Dispositivos de entrada: incluem teclados, mouses, scanners e outros equipamentos usados para inserir dados no sistema. - Dispositivos de processamento: computadores e servidores que processam os dados. - Dispositivos de armazenamento: HD, SSD, sistemas de armazenamento em nuvem que guardam dados e informações. - Dispositivos de saída: monitores, impressoras e outros dispositivos que exibem ou produzem as informações processadas. - Infraestrutura de rede: equipamentos de rede, como roteadores e switches, que facilitam a comunicação entre os diferentes componentes do sistema. 3. Software: inclui todos os programas e aplicações que processam os dados e executam as tarefas necessárias (Brookshear, 2013). - Sistemas operacionais: controlam o hardware e fornecem uma interface para os usuários e outras aplicações. Alguns dos sistemas operacionais mais conhecidos são: Windows, macOS, Linux, Android e iOS. - Aplicativos de negócio: softwares especí�cos que ajudam a realizar tarefas empresariais, como sistemas de gestão empresarial (ERP) e sistemas de gestão de relacionamento com clientes (CRM). Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO - Sistemas de gestão de banco de dados (DBMS): softwares que gerenciam a criação, manutenção e uso de bancos de dados. 4. Dados: são a matéria-prima do sistema de informação. Incluem todos os fatos e números que são coletados, processados e armazenados pelo sistema (Escada et al., 2021). - Dados brutos: informações coletadas diretamente das fontes, como transações de vendas, entradas de clientes e dados de sensores. - Dados processados: dados que foram organizados e analisados para que fossem transformados em informações úteis para a tomada de decisões. 5. Procedimento: são as normas e as diretrizes que guiam a utilização e a operação do sistema de informação. Sem um procedimento bem estruturado e de�nido, uma organização pode correr riscos até mesmo em relação à sua estrutura (Escada et al., 2021). - Políticas de segurança: regras que garantem a proteção dos dados contra acessos não autorizados e outras ameaças. - Normas operacionais: procedimentos para a operação diária do sistema, incluindo backups, atualizações e manutenção. - Manuais de usuário: instruções que orientam os usuários sobre como utilizar o sistema de forma e�ciente e produtiva. Os componentes de um sistema de informação são interdependentes e trabalham em conjunto para coletar, processar, armazenar e distribuir informações dentro de uma organização. As pessoas operam e utilizam os sistemas, o hardware proporciona a infraestrutura física, o software executa as tarefas e a gerência dos dados, os dados são a matéria-prima que alimenta o sistema e os procedimentos garantem que tudo funcione de maneira bem-sucedida e segura. A integração e�ciente desses componentes é crucial para o sucesso de qualquer sistema de informação, pois proporciona o suporte essencial para a tomada de decisões e a operação e�caz de uma empresa. Tipos de sistemas de informação: uma visão geral Os sistemas de informação são ferramentas indispensáveis para as organizações modernas, visto que auxiliam na coleta, processamento, armazenamento e distribuição de dados para a tomada de decisões. Existem diversos tipos de sistemas, cada um com características e funções especí�cas. Em uma organização, devem existir sistemas de informação que apoiem a rotina e as atividades que ocorrem no curso normal e diário de um negócio. Tais sistemas ajudam a empresa a agregar valor aos seus produtos e serviços (Kroenke, 2012). De acordo com a literatura que versa sobre essa área (Dale; Lewis, 2010, Escada et al., 2021, Kroenke, 2012, Baltzan; Phillips, 2012, Pressman; Maxim, 2021), podemos categorizar os sistemas de informação de diversas maneiras, mas uma das classi�cações mais comuns os divide em três tipos principais: Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO 1. Sistema de Processamento de Transações (SPT) Os Sistemas de Processamento de Transações (SPTs) são fundamentais para a operação diária de qualquer organização. São projetados para coletar, armazenar, modi�car e recuperar todas as transações que acontecem na empresa, garantindo que essas atividades sejam realizadas de maneira e�ciente e con�ável (Escada et al., 2021). Os SPTs efetuam operações rotineiras necessárias para o bom funcionamento da organização. Suas principais características são: - Alta e�ciência: são projetados para processar um grande volume de transações rapidamente, assegurando que as operações sejam concluídas em tempo real. - Con�abilidade: garantem o registro de todas as transações de forma precisa e consistente, evitando erros que poderiam comprometer a integridade dos dados. - Automatização: automatizam processos repetitivos, reduzindo, por conseguinte, a interferência manual. Isso ajuda a minimizar erros. - Segurança: implementam mecanismos robustos de segurança para proteger os dados contra acessos não autorizados, fraudes e outras ameaças. - Recuperação de falhas: possuem funcionalidades de backup e recuperação que permitem restaurar dados em caso de falhas do sistema, assegurando a continuidade das operações. É válido ressaltar que os SPTs estão presentes no dia a dia das pessoas. Como exemplos, podemos citar os sistemas de ponto de venda, sistemas bancários, sistemas de venda de passagem aéreas e sistemas de folha de pagamento. Eles são vitais para a operação e�ciente de qualquer organização, garantindo que as transações diárias sejam realizadas de maneira rápida, precisa e segura. 2. Sistema de Informação Gerencial (SIG) Os Sistemas de Informação Gerencial (SIGs) são ferramentas indispensáveis para a gestão bem-sucedida de uma organização. Eles fornecem informações essenciais que ajudam os gestores a tomarem decisões informadas e estratégicas. Os SIGs transformam dados brutos em informações úteis, gerando relatórios, análises e sumários que apoiam os gestores em suaset al., 2021). Vantagens: Escalabilidade: capacidade de escalar horizontalmente de maneira bem-sucedida, adicionando novos servidores conforme a demanda cresce. Desempenho: altamente e�ciente em cenários com grandes volumes de dados e alta taxa de transações. Flexibilidade: a ausência de um esquema rígido oportuniza uma maior �exibilidade na alteração da estrutura dos dados. Desvantagens: Consistência eventual: em alguns sistemas NoSQL, a consistência dos dados pode ser eventual, o que signi�ca que os dados podem não ser imediatamente consistentes em todos os nós após uma atualização (Alves, 2021). Falta de padronização: a ausência de uma linguagem-padrão, como a SQL, pode di�cultar a interoperabilidade entre diferentes sistemas NoSQL. Complexidade de consultas: pode ser mais desa�ador executar consultas complexas em comparação com bancos de dados relacionais. Exemplos de bancos de dados não relacionais são: MongoDB (documentos), Redis (chave- valor), Apache Cassandra (colunas), Neo4j (grafos). Escalabilidade: capacidade de escalar horizontalmente de maneira bem-sucedida, adicionando novos servidores conforme a demanda cresce. Desempenho: altamente e�ciente em cenários com grandes volumes de dados e alta taxa de transações. Flexibilidade: a ausência de um esquema rígido oportuniza uma maior �exibilidade na alteração da estrutura dos dados. Consistência eventual: em alguns sistemas NoSQL, a consistência dos dados pode ser eventual, o que signi�ca que os dados podem não ser imediatamente consistentes em todos os nós após uma atualização (Alves, 2021). Falta de padronização: a ausência de uma linguagem-padrão, como a SQL, pode di�cultar a interoperabilidade entre diferentes sistemas NoSQL. Complexidade de consultas: pode ser mais desa�ador executar consultas complexas em comparação com bancos de dados relacionais. Tipos de bancos de dados NoSQL Documentos: armazenam dados em documentos, geralmente no formato JSON ou BSON. Exemplos: MongoDB, CouchDB (Alves, 2021). Chave-valor: armazenam dados como pares chave-valor, de modo que cada chave é única e mapeia diretamente para um valor. Exemplos: Redis, DynamoDB. Colunas: armazenam dados em colunas em vez de linhas, permitindo uma alta e�ciência em consultas agregadas. Exemplos: Apache Cassandra, HBase. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Grafos: armazenam dados em nós e arestas, possibilitando a modelagem de relações complexas entre os dados. Exemplos: Neo4j, Amazon Neptune. A escolha entre bancos de dados relacionais e não relacionais dependerá das necessidades especí�cas da aplicação. Os bancos de dados relacionais são ideais para aplicações que requerem consistência, integridade dos dados e consultas complexas. Por outro lado, os bancos de dados não relacionais são mais adequados para cenários que demandam escalabilidade horizontal, alta performance e �exibilidade na estrutura dos dados (Alves, 2021). Compreender as diferenças, vantagens e desvantagens de cada tipo de banco é crucial para tomar decisões bem informadas sobre a arquitetura de dados em qualquer projeto. Característica Relacional Não Relacional Estrutura Tabelas Documentos, chave-valor, colunas, grafos Esquema Rígido Flexível Transações ACID Eventualmente consistente Escalabilidade Vertical e horizontal (com limitações) Horizontal Desempenho Bom para consultas complexas Excelente para leitura e escrita Uso típico Sistemas transacionais, OLTP Big Data, NoSQL, aplicações em tempo real Quadro 1 | Diferenças entre bancos de dados relacionais e não relacionais. Fonte: elaborado pela autora. Conceitos e modelos de serviço em nuvem (IaaS, PaaS, SaaS) A computação em nuvem transformou a maneira com que empresas e indivíduos acessam, armazenam e gerenciam dados e aplicativos. Em vez de manter uma infraestrutura física própria, as organizações, agora, podem alugar recursos computacionais por meio da internet, pagando apenas pelo que utilizam. Segundo a literatura especializada nessa área (Silva et al., 2020, Sousa Neto, 2015, Rose, 2020, Kolbe Júnior, 2020), existem três principais modelos de serviço em nuvem que oferecem diferentes níveis de controle, �exibilidade e gerenciamento: IaaS (Infraestrutura como Serviço), PaaS (Plataforma como Serviço) e SaaS (Software como Serviço). Computação em nuvem Antes de investigar com mais detalhes os modelos citados anteriormente, é importante entender o conceito de computação em nuvem, que se refere à entrega de serviços de computação, incluindo servidores, armazenamento, bancos de dados, rede, software, análises e inteligência via internet, para “a nuvem” (Pressman; Maxim, 2021). Esses serviços oferecem economias de escala, �exibilidade e capacidade de inovar mais rapidamente. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Infrastructure as a Service (IaaS) É um modelo que disponibiliza infraestrutura de TI virtualizada pela internet. As empresas podem alugar servidores, armazenamento, redes e sistemas operacionais de provedores de nuvem, como Amazon Web Services (AWS) e Microsoft Azure. Isso permite que as organizações escalem agilmente seus recursos de acordo com a demanda, sem a necessidade de investir em hardware físico (Silva et al., 2020). O modelo IaaS é ideal para empresas que precisam de controle total sobre sua infraestrutura, pois oferece �exibilidade para con�gurar e gerenciar servidores e redes quando necessário (Rose, 2020). Características Controle total: o usuário tem pleno controle do sistema operacional e do hardware subjacente (Sousa Neto, 2015). Escalabilidade: facilita a escalabilidade, permitindo que os recursos sejam ajustados conforme a demanda. Responsabilidades: o usuário é responsável pelo sistema operacional, aplicativos, dados e segurança. O provedor da nuvem gerencia a infraestrutura física. Pagamento por uso: o modelo de pagamento é baseado no uso real dos recursos, o que pode reduzir custos operacionais. Platform as a Service (PaaS) Concede uma plataforma que permite aos desenvolvedores criar, implementar e gerenciar aplicações sem a complexidade de administrar a infraestrutura subjacente (Rose, 2020). A plataforma geralmente inclui sistemas operacionais, bancos de dados, servidores web e ferramentas de desenvolvimento. O modelo PaaS é recomendado para desenvolvedores que desejam direcionar o foco ao desenvolvimento de aplicações sem se preocupar com aspectos referentes à gestão da infraestrutura, como desenvolvimento de aplicações web e móveis, análises de dados e Integração Contínua e Entrega Contínua (CI/CD) (Rose, 2020). Características: Ambiente de desenvolvimento: fornece um ambiente completo de desenvolvimento e implantação, englobando ferramentas de desenvolvimento, banco de dados e servidores web (Rose, 2020). Gestão simpli�cada: a gestão da infraestrutura é abstraída, possibilitando que os desenvolvedores se concentrem no código e na lógica da aplicação. Escalabilidade automática: as plataformas PaaS podem escalar automaticamente as aplicações com base na demanda (Rose, 2020). Responsabilidades: o usuário é responsável pelo código do aplicativo e dados. O provedor da nuvem gerencia a infraestrutura, sistema operacional, middleware e ferramentas de desenvolvimento. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Como exemplos de PaaS, podemos citar: Google App Engine, Microsoft Azure App Services e Heroku. Software as a Service (SaaS) Oferece aplicações de software a partir da internet, eliminando a necessidade de instalação e execução de aplicações nos computadores dos usuários (Rose, 2020). Os provedores de SaaS gerenciam todas as questões técnicas, como manutenção, atualizações e segurança. O modelo SaaS é adequado para empresas e indivíduos que precisam de acesso a software de alta qualidade, sem a necessidade de gestão da infraestrutura ou do próprio software, como ferramentas de produtividade, gerenciamento de relacionamento com clientes (CRM) e serviços de e-mail. Características: Acesso via web: as aplicações são acessíveis por meio de um navegadorweb, de modo que o uso pode se dar em diversos dispositivos. Modelo de assinatura: geralmente os serviços são disponibilizados em um modelo de assinatura, com pagamento mensal ou anual. Atualizações automáticas: os provedores cuidam das atualizações de software, assegurando que os usuários sempre tenham a versão mais recente. Responsabilidades: o usuário é responsável pelos dados. O provedor da nuvem gerencia toda a infraestrutura, sistema operacional, aplicativos e dados. Como exemplos de SaaS, podemos citar: Google Workspace (Gmail, Google Drive, Google Docs), Microsoft O�ce 365 e Salesforce. A escolha entre IaaS, PaaS e SaaS dependerá das necessidades especí�cas de cada empresa. O modelo IaaS oferece controle total sobre a infraestrutura, o PaaS facilita o desenvolvimento de aplicativos e, por �m, o SaaS proporciona acesso rápido e fácil a softwares. Entender as especi�cidades desses modelos é essencial para que as organizações maximizem os benefícios da computação em nuvem e atendam às suas demandas de forma e�caz. Vamos Exercitar? Descrição da situação-problema Agora que você já possui conhecimentos relacionados aos modelos de serviço em nuvem (IaaS, PaaS, SaaS), está apto para responder à problemática apresentada no início desta aula. Você, caro estudante, precisa recomendar, com base nas necessidades da Teck & Teck, um modelo de serviço em nuvem (IaaS, PaaS ou SaaS) ao seu diretor, justi�cando sua escolha. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Solução Para a Teck & Teck, o modelo de serviço em nuvem mais adequado seria o PaaS (Plataforma como Serviço). Justi�cativas: Foco voltado ao desenvolvimento: o modelo PaaS permite que a equipe se concentre no desenvolvimento e implementação da aplicação, sem se preocupar com a gestão da infraestrutura subjacente. Isso é crucial para uma startup que deseja acelerar o desenvolvimento do produto. Ferramentas integradas: o PaaS oferece um ambiente completo de desenvolvimento, com ferramentas integradas para a elaboração, teste e implantação de aplicativos, aumentando a produtividade da equipe. Escalabilidade: as plataformas PaaS são projetadas para escalar facilmente, possibilitando que a organização cresça rapidamente sem se preocupar com limitações de infraestrutura. Custo-efetividade: o modelo PaaS pode ser mais econômico em comparação com o IaaS, pois elimina a necessidade de gerenciar servidores e outros recursos de infraestrutura, reduzindo custos operacionais e administrativos. Manutenção e atualizações: o provedor do PaaS cuida das atualizações e manutenção da plataforma, garantindo que a organização sempre utilize a tecnologia mais recente e segura. Saiba mais Para aprender mais detalhes sobre os bancos de dados relacionais e não relacionais, faça a leitura do artigo Comparativo entre os modelos de banco de dados relacional e não relacional. GARCIA, V. S.; SOTTO, E. C. S. Comparativo entre os modelos de banco de dados relacional e não relacional. Interface Tecnológica, v. 16, n. 2, 2019. Referências ALVES, W. P. Banco de dados: teoria e desenvolvimento. Rio de Janeiro: Érica, 2021. GARCIA, V. S.; SOTTO, E. C. S. Comparativo entre os modelos de banco de dados relacional e não relacional. Interface Tecnológica, v. 16, n. 2, 2019. Disponível em: https://revista.fatectq.edu.br/interfacetecnologica/article/view/673/408. Acesso em: 27 set. 2024. KOLBE JÚNIOR, A. Computação em nuvem. São Paulo: Contentus, 2020. https://revista.fatectq.edu.br/interfacetecnologica/article/view/673/408 https://revista.fatectq.edu.br/interfacetecnologica/article/view/673/408 Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO PICHETTI, R. F.; VIDA, E. S.; CORTES, V. S. M. P. Banco de dados. Porto Alegre: SAGAH, 2021. PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software. Porto Alegre: AMGH, 2021. ROSE, C. A. F. de. O que é esta tal de nuvem e o que pode fazer por você? Porto Alegre: ediPUCRS, 2020. SCHACH, S. R. Engenharia de software. Porto Alegre: Artmed, 2010. SILBERSCHATZ, A. Sistema de banco de dados. Rio de Janeiro: Grupo Gen, 2020. SILVA, F. R. et al. Computação em nuvem. Porto Alegre: SAGAH, 2020. SILVA, L. F. C. et al. Banco de dados não relacional. Porto Alegre: SAGAH, 2021. SOUSA NETO, M. V. de. Computação em nuvem: nova arquitetura de TI. Rio de Janeiro: Brasport, 2015. Aula 5 Encerramento da Unidade Videoaula de Encerramento Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Nesta unidade de aprendizagem, examinamos os fundamentos gerais do desenvolvimento de sistemas, começando nossa análise pelo ciclo de vida do desenvolvimento de sistemas (SDLC). Esse ciclo abrange diversas fases, as quais englobam desde a concepção até a implementação e manutenção. Ele pode ser trabalhado por meio de modelos tradicionais, como o em cascata e o Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO v-model, ou por metodologias ágeis, como Scrum, Kanban e Extreme Programming (XP), que promovem uma maior �exibilidade e adaptação às mudanças. No contexto de DevOps, a Integração Contínua (CI) e a Entrega Contínua (CD) surgem como práticas essenciais para acelerar o desenvolvimento e melhorar a qualidade do software, facilitando a colaboração entre equipes de desenvolvimento e operações. Em relação às linguagens de programação, é fundamental compreender os diferentes tipos existentes, como linguagens imperativas, orientadas a objetos e funcionais. Os paradigmas de programação, sobretudo a programação orientada a objetos (POO), a programação funcional e a programação declarativa, oferecem abordagens distintas para solucionar problemas e estruturar o código. Na prática do desenvolvimento web e mobile, tecnologias como Node.js, Express e Ruby on Rails são amplamente utilizadas para o back-end, o que viabiliza a criação de aplicações escaláveis e e�cientes. Também é crucial entender os conceitos e fundamentos inerentes aos bancos de dados, a �m de promover a correta distinção entre bancos de dados relacionais e não relacionais, visto que cada um carrega características e aplicações especí�cas. Para concluir, vale ressaltar que a computação em nuvem introduz modelos de serviço, como IaaS, PaaS e SaaS, que proporcionam soluções �exíveis para infraestruturas, plataformas e softwares, respeitando as necessidades modernas de escalabilidade e e�ciência. Esta aula de revisão integra todos esses temas, preparando você para aplicar o conhecimento adquirido em desa�os futuros no campo do desenvolvimento de sistemas. Ponto de Chegada Conceitos gerais de sistemas Um sistema pode ser de�nido como um conjunto de componentes inter-relacionados que trabalham em conjunto para alcançar um objetivo comum (Pressman; Maxim, 2021). No contexto do desenvolvimento de sistemas, tais componentes incluem hardware, software, pessoas, dados e processos. Um sistema bem projetado é aquele que integra todos esses elementos de forma coesa para realizar tarefas especí�cas de modo e�ciente e e�caz. Pense na seguinte comparação: na construção de um edifício, tudo começa com a de�nição e a composição da estrutura, que consiste em um “esqueleto” de concreto e ferro sobre o qual serão erguidas as paredes, instaladas as infraestruturas de água, luz e esgoto, e, por �m, aplicados os acabamentos necessários. Embora não sejam formados por concreto e ferro, os sistemas de informação devem ter suas estruturas de�nidas previamente. Tais estruturas apontam as características essenciais do sistema de informação. Para que o desenvolvimento de sistemas siga o mesmo princípio da construção de um edifício, é importante dividi-lo em etapas. Cada fase deve validar o que realmente foi solicitado pelo usuário ou pela organização, a �m de garantir que o resultado �nal atenda às necessidadesreais. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Fundamentos e fases do ciclo de vida do desenvolvimento de sistemas (SDLC): uma comparação O ciclo de vida do desenvolvimento de sistemas (Systems Development Life Cycle – SDLC) é uma metodologia organizada e sequencial para a criação de sistemas de software (Prikladnicki; Willi; Milani, 2014). Ele abrange todas as etapas necessárias para transformar uma ideia inicial em um sistema funcional e e�ciente, além de assegurar sua manutenção ao longo de sua vida útil. Dominar os princípios e as etapas do SDLC é fundamental para viabilizar um desenvolvimento e�ciente e garantir que o produto �nal atenda às expectativas dos usuários e aos objetivos da empresa. O SDLC é dividido em várias fases distintas, cada uma exercendo um papel crucial no desenvolvimento do sistema (Schach, 2010). As principais fases são: planejamento, levantamento de requisitos, análise, design, implementação, teste, implantação e manutenção. Metodologias do SDLC Na literatura que estuda essa área (Paula Filho, 2019, Pressman; Maxim, 2021, Schach, 2010, Sbrocco; Macedo, 2012), existem diversas metodologias que de�nem como as fases do SDLC são executadas. As principais são: Cascata: modelo linear em que cada fase é concluída antes que a próxima seja iniciada. É mais adequado para projetos com requisitos bem de�nidos e estáveis. Ágil: foco voltado a entregas rápidas e iterativas, com alta colaboração entre equipe e cliente. É ideal para projetos com requisitos em constante mudança. DevOps: integração contínua entre desenvolvimento e operações, com automação de processos. Prioriza a entrega rápida e con�ável de software. Modelos tradicionais de desenvolvimento: uma metodologia estruturada e sequencial Os modelos tradicionais de desenvolvimento de sistemas de informação são abordagens metodológicas que se caracterizam pela estruturação linear e sequencial das etapas de um projeto (Paula Filho, 2019). Essas abordagens, amplamente utilizadas em contextos que exigem previsibilidade e controle rigoroso, baseiam-se em um planejamento detalhado e na de�nição clara dos requisitos desde o início do projeto (Pressman; Maxim, 2021). Cada fase do desenvolvimento deve ser concluída antes que a próxima seja iniciada, o que ajuda a minimizar ambiguidades e facilita a gestão do projeto. As etapas são: levantamento de requisitos, análise, design, implementação, testes e manutenção (Pressman; Maxim, 2021). Uma característica central é a ênfase na documentação, que acompanha cada fase, proporcionando uma visão clara do progresso e otimizando a comunicação entre as partes interessadas (Hirama, 2011). Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Existem diversos modelos de acompanhamento e controle para o desenvolvimento de software. Dentre os modelos tradicionais, alguns dos mais conhecidos são: modelo cascata (waterfall), modelo V (v-model), modelo incremental e modelo espiral. Esses modelos são frequentemente utilizados em setores que exigem clareza nos requisitos e estabilidade, como governo e construção civil, em função da previsibilidade que oferecem. No entanto, apresentam limitações quando aplicados a projetos que requerem grande �exibilidade e habilidade para se adaptar às mudanças. Apesar de sua estrutura sólida, modelos tradicionais podem ser complementados por abordagens ágeis em ambientes de negócios dinâmicos, a depender das características do projeto. Princípios fundamentais das metodologias ágeis O Manifesto Ágil de�ne os valores e princípios que guiam as metodologias ágeis: Indivíduos e interações mais que processos e ferramentas. Software em funcionamento mais que documentação abrangente. Colaboração com o cliente mais que negociação de contratos. Responder a mudanças mais que seguir um plano. Algumas das principais metodologias ágeis são: Scrum, Kanban, Extreme Programming (XP) e Lean Software Development. As metodologias ágeis, como Scrum, Kanban, Extreme Programming (XP) e Lean Software Development, oferecem abordagens �exíveis e colaborativas para o desenvolvimento de software. São particularmente e�cazes em ambientes dinâmicos, onde a adaptação rápida às mudanças e a entrega contínua de valor são cruciais. Cada uma dessas metodologias traz um conjunto único de práticas e princípios que podem ser adaptados às necessidades especí�cas de um projeto, promovendo a e�ciência, a qualidade e a satisfação do cliente Processos DevOps: Integração Contínua (CI) e Entrega Contínua (CD) É uma abordagem cultural e técnica que tem a �nalidade de uni�car o desenvolvimento de software (Dev) e as operações de TI (Ops) para melhorar a e�ciência e a qualidade na entrega de software (Prikladnicki; Willi; Milani, 2014). Dentro desse contexto, a Integração Contínua (CI) e a Entrega Contínua (CD) são processos-chave que automatizam e agilizam o ciclo de vida do desenvolvimento, oportunizando entregas frequentes e con�áveis. Integração Contínua (CI): é uma prática de desenvolvimento de software em que os desenvolvedores integram seu código a um repositório compartilhado várias vezes ao dia (Schach, 2010). Cada integração é, então, veri�cada automaticamente por meio de testes automatizados, permitindo a detecção precoce de erros. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO O �uxo de trabalho na CI é organizado da seguinte maneira: desenvolvimento > builds automáticos > testes automatizados > feedback, garantindo, assim, processos sempre contínuos (Prikladnicki; Willi; Milani, 2014). Entrega Contínua (CD): é a prática de assegurar que o software esteja em um estado de prontidão para ser liberado a qualquer momento. Ela estende a Integração Contínua ao automatizar ainda mais o pipeline de desenvolvimento, de modo que o software possa ser implantado automaticamente em ambientes de teste ou produção a qualquer instante (Prikladnicki; Willi; Milani, 2014). O �uxo de trabalho na CD é organizado da seguinte forma: builds e testes automáticos > entrega automatizada > monitoramento. Os processos de Integração Contínua (CI) e Entrega Contínua (CD) são fundamentais no contexto de DevOps, pois permitem que as equipes de desenvolvimento entreguem softwares de alta qualidade de forma rápida e e�ciente. Essas práticas automatizadas reduzem os riscos, aumentam a agilidade e proporcionam feedback contínuo, tudo isso enquanto garantem que o software esteja sempre pronto para ser implantado (Sbrocco; Macedo, 2012). A adoção de CI e CD é essencial para qualquer organização que busca melhorar sua capacidade de entregar valor aos clientes de maneira consistente. Uma visão geral de linguagem de programação Uma linguagem de programação é um conjunto estruturado de regras e comandos que viabilizam a comunicação entre o programador e o computador (Alves, 2013). Assim como as línguas humanas, as linguagens de programação têm sintaxe e semântica próprias, as quais de�nem como as instruções devem ser escritas e interpretadas. Seu principal objetivo é possibilitar a criação de softwares, permitindo que os desenvolvedores especi�quem as operações que o computador deve executar, considerando desde tarefas simples até complexas, como gerenciamento de redes e criação de interfaces. Além disso, as linguagens de programação facilitam a automatização de processos, a resolução de problemas, a integração entre sistemas e a inovação. Em resumo, são ferramentas essenciais para transformar ideias em instruções executáveis por computadores. As linguagens de programação são ferramentas imprescindíveis para a criação de softwares, e cada uma delas apresenta características e aplicações especí�cas. Diversos paradigmas de programação deram origem a diferentes tipos de linguagens, dentre os quais destacam-se quatro principais: imperativas, orientadas a objetos, funcionais e lógicas. De acordo com a literatura dedicada a essa área (Alves, 2013, Melo, 2003, Santos; Saraiva; Fátima, 2018, Audy; Andrade; Cidral, 2005), cada um desses paradigmas oferece uma abordagem única para o desenvolvimento de softwares,in�uenciando a estruturação do código e a forma com que as operações são realizadas. Paradigmas de programação: programação orientada a objetos (POO), programação funcional e programação declarativa Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Os paradigmas de programação in�uenciam a maneira com que os programas de computador são estruturados e desenvolvidos, assemelhando-se a diferentes estilos de construção. Dentre os principais paradigmas, destacam-se os seguintes: Programação orientada a objetos (POO): organiza o software em torno de objetos, com princípios como encapsulamento, herança, polimor�smo e abstração, permitindo a modelagem de entidades do mundo real. É amplamente utilizada em linguagens como Java e Python. Programação funcional: entende a computação como a avaliação de funções matemáticas e evita mudanças de estado. Suas características incluem imutabilidade, funções como cidadãos de primeira classe, recursão e composição de funções. Linguagens como Haskell e Lisp são exemplos dessa abordagem. Programação declarativa: direciona o foco ao que deve ser feito, e não a como deve ser feito, permitindo a expressão da lógica de cálculos. Inclui a programação lógica, como no Prolog, e a programação funcional. É comum em linguagens de consulta, como SQL. Cada paradigma oferece abordagens únicas para resolver problemas e estruturar o código, contribuindo para a evolução da programação. Desenvolvimento web e mobile O desenvolvimento de software moderno é frequentemente dividido em duas categorias principais: desenvolvimento web e desenvolvimento mobile. Embora ambos os tipos de desenvolvimento compartilhem o objetivo de criar aplicações úteis e funcionais para os usuários, eles diferem signi�cativamente em termos de plataformas, tecnologias, abordagens e considerações de design. No desenvolvimento web, várias tecnologias são essenciais para garantir bom desempenho, como HTML, CSS, JavaScript, frameworks, bibliotecas, protocolos e APIs (Pressman; Maxim, 2021). Algumas características marcantes são: acessibilidade universal, atualizações centralizadas e responsividade. O desenvolvimento mobile envolve a criação de aplicações para dispositivos móveis, as quais podem ser nativas, híbridas ou baseadas na web (Hirama, 2011). Suas principais características são: acesso a recursos do dispositivo, melhor performance em aplicações nativas, distribuição via App Stores e noti�cações Push. Para o back-end, tecnologias populares, como Node.js, Express e Ruby on Rails, oferecem diferentes vantagens. Node.js: ambiente JavaScript que permite alta performance e desenvolvimento uni�cado. Express: framework minimalista para Node.js, proporcionando �exibilidade e simplicidade. Ruby on Rails: framework que acelera o desenvolvimento com o padrão MVC e convenção sobre con�guração. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Cada uma dessas tecnologias é ideal para diferentes tipos de aplicações. Logo, a escolha dependerá das necessidades especí�cas do projeto e da equipe de desenvolvimento. Fundamentos de banco de dados Um banco de dados é uma coleção organizada de dados estruturados, os quais são armazenados de maneira que possam ser facilmente acessados, gerenciados e atualizados (Silberschatz, 2020). Ele é essencial para operações empresariais, como transações �nanceiras e gestão de estoque. O sistema de gerenciamento de banco de dados (SGBD) é o software que interage com os usuários �nais, aplicativos e o próprio banco de dados para capturar e analisar os dados (Pichetti; Vida; Cortes, 2021). Ele facilita os processos de de�nição, criação, consulta, atualização e administração dos bancos de dados. Podemos citar como exemplos de SGBDs: MySQL, PostgreSQL, Oracle Database e Microsoft SQL Server. Bancos de dados relacionais e não relacionais: uma comparação detalhada Os bancos de dados são indispensáveis para a gestão de informações em aplicações, sendo classi�cados em duas categorias principais: relacionais (RDBMS) e não relacionais (NoSQL). Bancos de dados relacionais (RDBMS): Organizam dados em tabelas com esquemas prede�nidos. Garantem integridade e consistência com regras como transações ACID e chaves primárias e estrangeiras. Usam SQL para a manipulação de dados. Vantagens: consistência, �exibilidade de consultas e padronização. Desvantagens: escalabilidade vertical, desempenho em grandes volumes e rigidez de esquema. Exemplos: MySQL, PostgreSQL, Oracle Database. Bancos de dados não relacionais (NoSQL): Projetados para grandes volumes de dados e escalabilidade horizontal, sem um esquema rígido. Vantagens: escalabilidade, desempenho e �exibilidade. Desvantagens: consistência eventual, falta de padronização e complexidade nas consultas. Exemplos: MongoDB, Redis, Apache Cassandra. Projetados para grandes volumes de dados e escalabilidade horizontal, sem um esquema rígido. Vantagens: escalabilidade, desempenho e �exibilidade. Desvantagens: consistência eventual, falta de padronização e complexidade nas consultas. Exemplos: MongoDB, Redis, Apache Cassandra. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO A escolha entre bancos de dados relacionais e não relacionais dependerá das necessidades especí�cas da aplicação. Os bancos de dados relacionais são ideais para aplicações que requerem consistência, integridade dos dados e consultas complexas. Por outro lado, os bancos de dados não relacionais são mais adequados para cenários que demandam escalabilidade horizontal, alta performance e �exibilidade na estrutura dos dados. Compreender as diferenças, vantagens e desvantagens de cada tipo de banco é crucial para tomar decisões bem informadas sobre a arquitetura de dados. Conceitos e modelos de serviço em nuvem (IaaS, PaaS, SaaS) A computação em nuvem envolve a entrega de serviços de TI via internet, oferecendo economia, �exibilidade e inovação. Existem três modelos principais de serviço em nuvem: Infrastructure as a Service (IaaS): fornece infraestrutura virtualizada, permitindo que as empresas aluguem servidores e recursos (Silva et al., 2020). É ideal para quem precisa de controle total e escalabilidade, com pagamento baseado no uso. Platform as a Service (PaaS): oferece uma plataforma para desenvolvedores criarem e gerenciarem aplicações sem que seja necessário se preocupar com a infraestrutura (Rose, 2020). Proporciona um ambiente de desenvolvimento simpli�cado e escalabilidade automática. Software as a Service (SaaS): disponibiliza aplicações via web, eliminando a necessidade de instalação (Rose, 2020). Os provedores cuidam da manutenção e atualizações, geralmente sob um modelo de assinatura. A escolha entre IaaS, PaaS e SaaS dependerá das necessidades especí�cas de cada empresa, a �m de maximizar os benefícios da computação em nuvem. Re�ita No cenário atual de desenvolvimento de softwares, a seleção das tecnologias e dos paradigmas certos é fundamental para criar aplicações robustas e e�cientes. Com a crescente demanda por sistemas que atendam às necessidades de negócios dinâmicos, como os aplicativos de gestão �nanceira, é importante compreender as diferenças entre bancos de dados, as abordagens de programação e as opções de infraestrutura disponíveis. Nesse contexto, surgem diversas questões que podem orientar seu processo de aprendizagem e ampliar sua compreensão sobre como essas decisões interferem no sucesso de um projeto. A seguir, apresentamos algumas perguntas para instigar sua re�exão e debate sobre os temas abordados. Como você imagina que a escolha entre um banco de dados relacional e um não relacional exerça impacto sobre o desempenho e a escalabilidade de uma aplicação �nanceira? Que fatores você consideraria ao tomar essa decisão? Se tivesse que desenvolver um aplicativo de gestão �nanceira, de que maneira você utilizaria a programação orientada a objetos para estruturar suas entidades e garantir que as regras de negócio fossem facilmente aplicáveis e extensíveis? Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Considerando as vantagens da computaçãoem nuvem, como você usaria os modelos IaaS, PaaS e SaaS em um projeto de software? Quais aspectos da sua aplicação se bene�ciariam mais de cada um desses modelos? É Hora de Praticar! Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Para contextualizar sua aprendizagem, imagine a seguinte situação: você é um desenvolvedor de software que vem trabalhando em um projeto complexo, o qual envolve a criação de uma aplicação de gestão �nanceira. Essa aplicação precisa ser robusta, escalável e fácil de manter. Durante o desenvolvimento, você se depara com a necessidade de escolher a abordagem de programação mais adequada para diferentes partes do sistema. Você tem conhecimentos em programação orientada a objetos (POO), programação funcional e programação declarativa, mas está em dúvida sobre como aplicar tais paradigmas de forma e�ciente para atender às necessidades do projeto. Como você pode empregar os paradigmas de programação orientada a objetos (POO), programação funcional e programação declarativa em diferentes partes da aplicação de gestão �nanceira para maximizar a e�ciência, a escalabilidade e a manutenibilidade do sistema? Dê exemplos práticos de como cada paradigma pode ser utilizado. Para maximizar a e�ciência, a escalabilidade e a manutenibilidade da aplicação de gestão �nanceira, você pode combinar os três paradigmas de programação de acordo com as necessidades especí�cas de cada parte do sistema. Programação orientada a objetos (POO): use a POO para modelar entidades do domínio �nanceiro, como contas, transações e relatórios. A POO permite criar classes que encapsulam dados e comportamentos, facilitando a reutilização e a extensão do código. Por exemplo, você pode ter uma classe Conta com métodos para depositar e sacar dinheiro, garantindo que as regras de negócios sejam aplicadas corretamente. Programação funcional: utilize a programação funcional para implementar funções puras que realizam cálculos �nanceiros, como a geração de relatórios e previsões. A programação funcional promove a imutabilidade e a composição de funções, o que pode Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO melhorar a testabilidade e reduzir bugs. Por exemplo, uma função pura pode calcular o saldo médio de uma conta ao longo de um período sem modi�car o estado do sistema. Programação declarativa: aplique a programação declarativa em consultas de dados e regras de negócios complexas. Linguagens de consulta como SQL são declarativas e permitem expressar “o que” você deseja obter dos dados sem especi�car “como” isso deve ser feito. Por exemplo, você pode usar uma consulta SQL para extrair todas as transações acima de um certo valor em um determinado período. Ao combinar POO, programação funcional e programação declarativa, você aproveitará os pontos fortes de cada paradigma para diferentes partes do sistema. A POO facilita a modelagem e a manutenção das entidades de negócios, a programação funcional melhora a clareza e a testabilidade das funções de cálculo, e a programação declarativa simpli�ca as operações de consulta e regras de negócios complexas. Essa abordagem híbrida resulta em um sistema mais robusto, �exível e fácil de manter, atendendo às necessidades da aplicação de gestão �nanceira de forma e�ciente. O mapa mental a seguir apresenta um breve resumo sobre o ciclo de vida do desenvolvimento de software (SDLC), metodologias ágeis, paradigmas de programação, conceitos relacionados a banco de dados e serviços em nuvem. Esses assuntos formam a espinha dorsal do desenvolvimento moderno, capacitando empresas a inovarem e se adaptarem rapidamente às demandas do mercado. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO ALVES, W. P. Linguagem e lógica de programação. Rio de Janeiro: Érica, 2013. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO AUDY, J. L. N.; ANDRADE, G. K.; CIDRAL, A. Fundamentos de sistemas de informação. Porto Alegre: Grupo A, 2005. E-book. HIRAMA, K. Engenharia de software. Rio de Janeiro: Grupo Gen/LTC, 2011. MELO, A. C. V. de. Princípios de linguagem de programação. São Paulo: Blucher, 2003. PAULA FILHO, W. de P. Engenharia de software: produtos: volume 1. Rio de Janeiro: LTC, 2019. PICHETTI, R. F.; VIDA, E. S.; CORTES, V. S. M. P. Banco de dados. Porto Alegre: SAGAH, 2021. PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software. Porto Alegre: AMGH, 2021. PRIKLADNICKI, R.; WILLI, R.; MILANI, F. Métodos ágeis para desenvolvimento de software. Porto Alegre: Bookman, 2014. E-book. ROSE, C. A. F. de. O que é esta tal de nuvem e o que pode fazer por você? Porto Alegre: ediPUCRS, 2020. SANTOS, M. G.; SARAIVA, M. O.; FÁTIMA, P. G. Linguagem de programação. Porto Alegre: SAGAH, 2018. SBROCCO, J. H. T. de C.; MACEDO, P. C. de. Metodologias ágeis: engenharia de software sob medida. Rio de Janeiro: Érica, 2012. SCHACH, S. R. Engenharia de software. Porto Alegre: Artmed, 2010. SILBERSCHATZ, A. Sistema de banco de dados. Rio de Janeiro: Grupo Gen, 2020. SILVA, F. R. et al. Computação em nuvem. Porto Alegre: SAGAH, 2020. SILVA, L. F. C. et al. Banco de dados não relacional. Porto Alegre: SAGAH, 2021. , Unidade 4 Gestão da Informação e do Conhecimento Aula 1 Modelos de Gestão do Conhecimento Modelos de gestão do conhecimento Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! A gestão do conhecimento é uma habilidade essencial na era digital, capaz de impulsionar sua carreira. Ao transformar o conhecimento tácito – fundamentado em experiências pessoais – em insights valiosos, você poderá fomentar inovação e colaboração. O modelo SECI conecta esses saberes, utilizando tecnologias de informação para facilitar a troca de conhecimento de forma dinâmica. Além disso, a escolha entre modelos centralizados e descentralizados pode revolucionar a operação da sua equipe, promovendo agilidade e criatividade. Ao aprofundar seu entendimento sobre esses temas, você não apenas enriquecerá seu processo de formação, mas também se tornará um agente de mudança em um mundo em constante evolução. Prepare-se para transformar desa�os em oportunidades e se destacar no mercado! Ponto de Partida Estudante, desejo a você boas-vindas! A gestão do conhecimento é um elemento crucial para o sucesso das organizações, especialmente na era da tecnologia da informação. Compreender as nuances e diferenças entre conhecimento tácito e explícito é fundamental. O conhecimento explícito, que pode ser facilmente documentado e compartilhado por meio de ferramentas digitais, contrasta com o conhecimento tácito, que é mais sutil e comumente enraizado na experiência pessoal. Essa distinção suscita abordagens e desa�os únicos no gerenciamento do conhecimento. Uma metodologia e�caz para integrar esses conceitos é o modelo SECI, que, ao utilizar plataformas de colaboração e gestão do conhecimento, viabiliza a criação e transferência de saberes por meio das etapas de socialização, externalização, combinação e internalização. Por exemplo, ferramentas como wikis e sistemas de videoconferência facilitam a socialização do conhecimento tácito entre os colaboradores, enquanto softwares de documentação ajudam a externalizar e organizar informações explícitas. Além disso, é válido ressaltar que a estrutura de gestão do conhecimento – seja centralizada ou descentralizada – desempenha um papel vital em relação à maneira com que as tecnologias são implementadas. Um modelo centralizado, que utiliza um sistema único para armazenar e gerenciar informações, garante controle e consistência, sendo ideal para ambientes queexigem conformidade. Em contrapartida, o modelo descentralizado, que promove a autonomia das equipes, se bene�cia de tecnologias de comunicação e colaboração que possibilitam uma resposta ágil às mudanças e a troca de experiências. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Ao combinar esses elementos, torna-se possível veri�car como a gestão do conhecimento, mediada pela tecnologia da informação, pode ser uma poderosa alavanca para a inovação e a e�ciência. Compreender essas abordagens não apenas enriquece a formação acadêmica, mas também prepara os estudantes da área para enfrentar os desa�os do mercado com uma perspectiva estratégica e inovadora. Agora, para contextualizar sua aprendizagem, imagine a seguinte situação: você é o coordenador de TI da empresa TokTac Ltda, que está em processo de reestruturação para melhorar a gestão do conhecimento. Atualmente, a empresa utiliza um modelo centralizado, no qual todo o conhecimento e informações críticas são geridos por um pequeno grupo de especialistas e armazenados em um sistema central. No entanto, o CEO da TokTac Ltda está considerando a adoção de um modelo descentralizado, pelo qual o conhecimento seria distribuído entre diferentes departamentos e equipes, viabilizando uma maior autonomia e colaboração. Como ainda está em dúvida, o CEO faz a você a seguinte pergunta: qual dos modelos seria mais coerente para melhorar a inovação, a tomada de decisões e a e�ciência operacional na empresa, com base nas características dos modelos centralizados e descentralizados de gestão do conhecimento? E aí? Vamos embarcar nesta análise juntos? Bons estudos! Vamos Começar! Gestão do conhecimento tácito e explícito: abordagens e desa�os A gestão do conhecimento é uma disciplina essencial nas organizações contemporâneas, cujo objetivo é maximizar a utilização dos recursos de conhecimento disponíveis. No contexto da gestão do conhecimento, distinguem-se dois tipos principais: conhecimento tácito e conhecimento explícito. Cada tipo apresenta abordagens e desa�os especí�cos para sua gestão e�caz. Conhecimento tácito Esse tipo de conhecimento é pessoal e difícil de formalizar. Inclui habilidades, experiências, intuições e insights individuais que não são facilmente comunicáveis (Angeloni, 2008). A gestão do conhecimento tácito envolve métodos que facilitam a transferência desse conhecimento entre indivíduos e equipes. Abordagens para a gestão do conhecimento tácito Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Mentoria e coaching: os mais experientes passam seu conhecimento para novatos por meio de orientações personalizadas. Aprendizagem prática: treinamentos no trabalho e estágios pelos quais os funcionários aprendem observando e imitando. Comunidades de prática: grupos informais que compartilham interesses comuns, promovendo a troca de conhecimentos de maneira orgânica. Reuniões e discussões informais: criação de espaços para interações face a face nos quais o conhecimento tácito pode ser compartilhado de forma natural. Desa�os na gestão do conhecimento tácito Di�culdade de formalização: a natureza intangível do conhecimento tácito torna sua captura e documentação complexas. Dependência de relacionamentos: a transferência de conhecimento tácito depende fortemente de relações interpessoais, o que pode ser limitado por barreiras culturais ou hierárquicas. Perda de conhecimento: a aposentadoria ou saída de funcionários experientes pode resultar na perda signi�cativa de conhecimento tácito. Tempo e custo: implementar programas e�cazes de mentoria e treinamento pode ser demorado e custoso. Di�culdade de formalização: a natureza intangível do conhecimento tácito torna sua captura e documentação complexas. Dependência de relacionamentos: a transferência de conhecimento tácito depende fortemente de relações interpessoais, o que pode ser limitado por barreiras culturais ou hierárquicas. Perda de conhecimento: a aposentadoria ou saída de funcionários experientes pode resultar na perda signi�cativa de conhecimento tácito. Tempo e custo: implementar programas e�cazes de mentoria e treinamento pode ser demorado e custoso. O uso de tecnologias para otimizar a gestão e a disseminação do conhecimento tácito tem se tornado cada vez mais relevante em ambientes organizacionais. Con�ra, a seguir, alguns meios pelos quais a tecnologia pode ajudar nesse processo. Plataformas de colaboração: ferramentas como Microsoft Teams, Slack e Trello permitem que equipes compartilhem experiências e insights de maneira interativa, promovendo um ambiente onde o conhecimento tácito pode ser disseminado em tempo real. Redes sociais corporativas: plataformas como Yammer ou Workplace by Facebook incentivam a comunicação informal entre funcionários, de modo que experiências e dicas podem ser compartilhadas de forma mais natural. Vídeo e conteúdo visual: a criação de vídeos tutoriais ou gravações de sessões práticas pode capturar o conhecimento tácito que, de outra forma, seria difícil de transmitir. Ferramentas de videoconferência também possibilitam a realização de workshops nos quais habilidades podem ser demonstradas e discutidas. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Inteligência arti�cial: algoritmos de IA podem analisar dados sobre interações e práticas de trabalho, identi�cando padrões capazes de ser utilizados para converter conhecimento tácito em explícito, o que facilita seu compartilhamento. Sistemas de gestão do conhecimento: softwares que viabilizam o armazenamento e a organização de informações podem ajudar a catalogar experiências e melhores práticas, tornando-as acessíveis a todos os colaboradores. Gami�cação: a utilização de elementos de jogos em processos de aprendizagem pode estimular a prática e a experimentação, ajudando os colaboradores a compartilharem e desenvolverem seu conhecimento tácito em um ambiente mais envolvente. Ao integrar essas tecnologias, as organizações não apenas melhoram a gestão do conhecimento, mas também fomentam uma cultura de aprendizagem contínua, que é essencial para a inovação e o crescimento. Conhecimento explícito É aquele que pode ser articulado, codi�cado e transmitido em formato de dados, textos, documentos e outros meios formais (Angeloni, 2008). Esse tipo de conhecimento é mais fácil de armazenar e compartilhar. Abordagens para a gestão do conhecimento explícito Documentação e arquivamento: criação de manuais, relatórios e procedimentos que formalizam o conhecimento. Bases de conhecimento: utilização de sistemas de gestão de conhecimento que armazenam e organizam informações de maneira acessível. Tecnologias de informação: plataformas digitais como intranets, wikis e sistemas ERP (Enterprise Resource Planning), que facilitam o acesso e a disseminação do conhecimento explícito. Processos de padronização: estabelecimento de padrões e protocolos para assegurar que o conhecimento explícito seja capturado e compartilhado consistentemente. Desa�os na gestão do conhecimento explícito Manutenção e atualização: o conhecimento explícito deve ser constantemente atualizado para que permaneça relevante e útil. Acessibilidade e recuperação: consiste em garantir que o conhecimento armazenado seja facilmente acessível e recuperável por aqueles que precisam dele. Qualidade e relevância: é preciso �ltrar informações irrelevantes e garantir que o conhecimento armazenado seja de alta qualidade e aplicável. Resistência à documentação: funcionários podem relutar para documentar seu conhecimento por causa de falta de tempo ou percepção de valor. Manutenção e atualização: o conhecimento explícito deve ser constantemente atualizado para que permaneça relevante e útil. Acessibilidade e recuperação: consiste em garantir que o conhecimento armazenado seja facilmente acessível e recuperável por aqueles que precisam dele. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Qualidade e relevância: é preciso �ltrar informações irrelevantes e garantir que o conhecimento armazenado seja de alta qualidade e aplicável.Resistência à documentação: funcionários podem relutar para documentar seu conhecimento por causa de falta de tempo ou percepção de valor. De acordo com a literatura especializada na área (Ozaki; Avona, 2016, Angeloni, 2008, Tigre, 2019, Pressman; Maxim, 2021, Perini, 2019, Kroenke, 2012), compreender os conceitos de conhecimento tácito e explícito é essencial no campo da tecnologia da informação (TI) por diversas razões. Conheça algumas delas a seguir. E�ciência na gestão do conhecimento Aproveitamento de recursos: saber como cada tipo de conhecimento opera permite que as organizações utilizem suas ferramentas de forma mais produtiva (Tigre, 2019). O conhecimento explícito pode ser facilmente documentado e compartilhado, enquanto o tácito requer abordagens mais interativas. Inovação e competitividade Fomento à criatividade: o conhecimento tácito, frequentemente ligado à experiência e à intuição, é crucial para a inovação (Tigre, 2019). Organizações que reconhecem e valorizam esse tipo de conhecimento estão mais bem posicionadas para desenvolver soluções criativas e se manter competitivas no mercado. Desenvolvimento de talentos Capacitação e mentoria: entender a diferença entre os tipos de conhecimento ajuda a criar programas de capacitação mais e�cazes (Ozaki; Avona, 2016). A mentoria, por exemplo, pode ser estruturada para facilitar a transferência do conhecimento tácito entre pro�ssionais experientes e novatos. Melhoria contínua Processos aprimorados: a gestão e�caz do conhecimento tácito e explícito possibilita que as organizações aprendam com suas experiências e aperfeiçoem continuamente seus processos, produtos e serviços. Tecnologia da informação e compartilhamento Ferramentas adequadas: conhecer esses conceitos auxilia na escolha e implementação de tecnologias apropriadas para captura, armazenamento e compartilhamento de conhecimento (Pressman; Maxim, 2021). Plataformas colaborativas e sistemas de gestão do conhecimento podem ser con�gurados para atender de modo mais preciso às necessidades de cada tipo. Resiliência organizacional Sustentação do conhecimento: em casos de mudanças de equipe ou reestruturações, contar com um sistema que reconheça e preserve tanto o conhecimento explícito quanto o tácito é vital para assegurar a continuidade e a resiliência dos negócios (Perini, 2019, Kroenke, 2012). Os conhecimentos tácitos e explícitos são fundamentais para a e�cácia das estratégias de TI. A gestão adequada desses tipos de conhecimento não apenas melhora a produtividade operacional, mas também impulsiona a inovação e a adaptação em um ambiente de negócios Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO em constante mudança. Entender suas dinâmicas é, portanto, um passo imprescindível para o sucesso organizacional. Siga em Frente... O modelo SECI de Nonaka e Takeuchi: uma espiral de conhecimento O modelo SECI é um framework que ajuda a entender como o conhecimento é criado e transformado dentro das organizações. Ele é fundamental para perceber como as organizações podem fomentar a criação de conhecimento e a inovação, destacando a importância da interação humana e da troca de experiências. Desenvolvido por Ikujiro Nonaka e Hirotaka Takeuchi, o modelo SECI descreve a criação do conhecimento organizacional a partir de quatro processos interdependentes: socialização, externalização, combinação e internalização. Essa abordagem é essencial para entender como os conhecimentos tácito (experiências pessoais, intuições) e explícito (informações formalizadas) podem ser gerados, compartilhados e utilizados dentro das organizações. Nesse modelo, consideram-se quatro modos interconectados (Ozaki; Avona, 2016). 1. Socialização: é o processo de compartilhamento de conhecimento tácito entre indivíduos. O conhecimento tácito é altamente pessoal e difícil de formalizar, abrangendo habilidades, experiências e insights que não são facilmente comunicáveis (Ozaki; Avona, 2016). Tal processo geralmente ocorre por meio das seguintes atividades: - Interações face a face: conversas informais, reuniões e discussões que permitem a troca direta de experiências e intuições. - Aprendizado prático: a partir de observação e imitação, como em treinamentos no trabalho ou em estágios, nos quais os novatos aprendem ao acompanhar os experientes. - Comunidades de prática: grupos informais dentro da organização que compartilham interesses ou problemas comuns, facilitando a troca de conhecimentos. 2. Externalização: envolve a conversão de conhecimento tácito em explícito, tornando-o documentado e codi�cável (Ozaki; Avona, 2016). Esse processo é crucial para a comunicação e a disseminação do conhecimento dentro da organização. Métodos para externalização incluem: - Metáforas e analogias: utilizar linguagem �gurativa para expressar conceitos complexos de maneira compreensível. - Modelos e diagramas: representações visuais que ajudam a esclarecer ideias e processos. - Documentação: criação de manuais, relatórios e procedimentos que capturam o conhecimento tácito na forma escrita. 3. Combinação: refere-se ao processo de reunir e sistematizar diferentes partes de conhecimento explícito para formar um novo conjunto de conhecimentos (Ozaki; Avona, Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO 2016). Esse estágio é importante para a construção de bases de conhecimento e a integração de informações de diversas fontes. Como exemplos de ferramentas e métodos comuns de combinação, podemos citar: - Bancos de dados: armazenamento e organização de informações de maneira acessível. - Tecnologias de informação: utilização de softwares de gestão de conhecimento, sistemas de intranet e outras plataformas digitais para compartilhar e combinar dados. - Reuniões e conferências: fóruns formais nos quais informações de diferentes áreas são compartilhadas e integradas. 4. Internalização: é o processo pelo qual o conhecimento explícito é absorvido pelos indivíduos e convertido novamente em conhecimento tácito (Ozaki; Avona, 2016). Isso acontece a partir da prática, permitindo que os indivíduos incorporem o conhecimento formalizado em suas próprias experiências e habilidades. Alguns dos métodos de internalização são: - Treinamento e desenvolvimento: programas de capacitação que ajudam os funcionários a aplicarem o conhecimento teórico em situações práticas. - Simulações e experimentação: ambientes controlados onde os indivíduos podem experimentar novas ideias sem ter que lidar com os riscos do mundo real. - Re�exão e aprendizagem contínua: incentivar a análise crítica das experiências passadas para incorporar novas aprendizagens. O modelo SECI não é um processo linear, mas sim um ciclo contínuo e dinâmico em que cada estágio interage com os outros (Ozaki; Avona, 2016). Essa interação contínua é conhecida como “espiral do conhecimento”, na qual o conhecimento é constantemente ampliado e re�nado (Angeloni, 2008). A criação de conhecimento é entendida como uma interação social entre indivíduos que contribuem com suas experiências e insights, promovendo um ambiente de aprendizagem e inovação constante. A integração e�ciente entre conhecimento tácito e explícito é crucial para a criação de um ambiente de aprendizagem contínua e de inovação. O modelo SECI (socialização, externalização, combinação e internalização), de Nonaka e Takeuchi, é uma abordagem que destaca a interação dinâmica entre esses dois tipos de conhecimento. Acompanhe, a seguir, exemplos dessa relação. Socialização: tácito para tácito. Externalização tácito para explícito. Combinação: explícito para explícito. Internalização: explícito para tácito. Os benefícios do modelo SECI na tecnologia são: Inovação contínua: o ciclo de criação e compartilhamento de conhecimento facilita a inovação, possibilitando que equipes desenvolvam soluções criativas e e�cientes (Kroenke, 2012). Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Aprimoramento da competência: a prática constante e a aplicação do conhecimento ajudam os colaboradores a aperfeiçoarem suas habilidades técnicase a se manterem inteirados com relação às novas tecnologias (Tigre, 2019). Colaboração e�ciente: o modelo promove um ambiente de trabalho colaborativo, onde o conhecimento é compartilhado livremente, melhorando a comunicação entre equipes (Tigre, 2019). O modelo SECI é uma ferramenta poderosa para a gestão do conhecimento no setor de tecnologia. Ao facilitar a troca de saberes e a integração de informações, essa abordagem não apenas aprimora a e�ciência operacional, mas também impulsiona a inovação e a competitividade. Adotar esse modelo permite que as organizações se tornem mais ágeis e adaptáveis diante de um mercado em constante evolução. Modelos de gestão do conhecimento na tecnologia da informação: centralização versus descentralização A gestão do conhecimento é um componente essencial para o sucesso organizacional, já que viabiliza a captura, armazenamento, compartilhamento e utilização e�caz de saberes. O modelo centralizado e o modelo descentralizado de conhecimento são abordagens fundamentais para a gestão da informação dentro das organizações, especialmente no contexto da tecnologia da informação (TI). Cada um deles possui características distintas que interferem no modo com que o conhecimento é gerido, compartilhado e utilizado. Modelo centralizado A gestão do conhecimento é centralizada em um único ponto ou departamento da organização. Um repositório centralizado armazena todo o conhecimento, e o acesso e a gestão são controlados por um grupo especí�co de pessoas (Ozaki; Avona, 2016, Somasundaram; Shrivastava; EMC Education Services, 2011). Vantagens Repositório único: existe um sistema centralizado, como uma intranet, um software especí�co ou uma plataforma de colaboração, no qual todos os documentos, dados, conhecimentos e informações são armazenados (Somasundaram; Shrivastava; EMC Education Services, 2011). Controle centralizado: permite uma governança mais rigorosa e a implementação de políticas de segurança mais e�cientes. A centralização facilita a auditoria e o monitoramento do uso do conhecimento. Padronização: garante uniformidade na captura, armazenamento e categorização do conhecimento, tornando mais fáceis a busca e a recuperação de informações (Pressman; Maxim, 2021). Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO E�ciência de acesso: proporciona um ponto único de acesso, simpli�cando a navegação e a consulta de informações. Isso pode ser especialmente útil em organizações grandes, nas quais a informação é vasta e diversi�cada. Hierarquia: a informação �ui de cima para baixo, ou seja, os líderes e gestores são os principais responsáveis por gerar e compartilhar o conhecimento. Desvantagens Rigidez: pode ser menos �exível e adaptável às mudanças, pois a atualização do repositório centralizado geralmente consiste em um processo lento e burocrático. Gargalos: a centralização pode criar gargalos, principalmente se houver um volume grande de informações sendo atualizadas e acessadas simultaneamente (Pressman; Maxim, 2021). Dependência: há uma dependência excessiva de um único sistema, o que pode representar um risco em caso de falhas técnicas ou ciberataques. Falta de �exibilidade: pode ser menos adaptável às necessidades especí�cas de diferentes departamentos ou unidades de negócios, di�cultando a personalização de processos (Somasundaram; Shrivastava; EMC Education Services, 2011). Rigidez: pode ser menos �exível e adaptável às mudanças, pois a atualização do repositório centralizado geralmente consiste em um processo lento e burocrático. Gargalos: a centralização pode criar gargalos, principalmente se houver um volume grande de informações sendo atualizadas e acessadas simultaneamente (Pressman; Maxim, 2021). Dependência: há uma dependência excessiva de um único sistema, o que pode representar um risco em caso de falhas técnicas ou ciberataques. Falta de �exibilidade: pode ser menos adaptável às necessidades especí�cas de diferentes departamentos ou unidades de negócios, di�cultando a personalização de processos (Somasundaram; Shrivastava; EMC Education Services, 2011). Modelo descentralizado O conhecimento é distribuído entre diferentes unidades, departamentos ou indivíduos. Esse modelo promove a agilidade e a inovação, oportunizando uma gestão mais �exível e adaptável às necessidades especí�cas de cada setor (Somasundaram; Shrivastava; EMC Education Services, 2011). Vantagens Múltiplos repositórios: em vez de um único repositório centralizado, existem diversos repositórios distribuídos pela organização, como documentos compartilhados, plataformas de colaboração, e-mails e intranets setoriais. Flexibilidade: cada unidade pode adaptar a gestão do conhecimento às suas demandas particulares, permitindo uma resposta mais rápida às mudanças e aos desa�os do mercado (Silberschatz; Galvin; Gagne, 2015). Inovação: incentiva a criação de soluções inovadoras, já que os departamentos têm autonomia para desenvolver e implementar suas próprias práticas de gestão do Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO conhecimento. Comunidades de prática: são formados grupos de pessoas com interesses em comum, as quais se reúnem para compartilhar conhecimentos e experiências. Colaboração: a colaboração é incentivada por meio de ferramentas e plataformas que facilitam a troca de informações e ideias entre os colaboradores. Redundância: reduz a dependência de um único ponto de falha, aumentando a resiliência da organização. Em caso de falhas em uma unidade, outras ainda poderão operar normalmente. Desvantagens Inconsistência: a descentralização pode levar à inconsistência das informações, de modo que diferentes unidades adotem padrões e práticas variadas (Silberschatz; Galvin; Gagne, 2015). Di�culdades de integração: a integração e o compartilhamento de conhecimento entre unidades distintas podem ser mais desa�adores, resultando em silos de informação (Somasundaram; Shrivastava; EMC Education Services, 2011). Complexidade de governança: a gestão descentralizada pode complicar a implementação de políticas de segurança e compliance, exigindo um esforço maior para manter a coesão. Inconsistência: a descentralização pode levar à inconsistência das informações, de modo que diferentes unidades adotem padrões e práticas variadas (Silberschatz; Galvin; Gagne, 2015). Di�culdades de integração: a integração e o compartilhamento de conhecimento entre unidades distintas podem ser mais desa�adores, resultando em silos de informação (Somasundaram; Shrivastava; EMC Education Services, 2011). Complexidade de governança: a gestão descentralizada pode complicar a implementação de políticas de segurança e compliance, exigindo um esforço maior para manter a coesão. A escolha entre um modelo centralizado ou descentralizado de administração do conhecimento dependerá das demandas especí�cas, da estrutura organizacional e dos objetivos estratégicos da empresa. Muitas organizações adotam uma abordagem mista, que combina elementos de ambas as abordagens para extrair proveitos e minimizar suas limitações. A chave para uma gestão e�caz do conhecimento está na adaptação da estratégia às particularidades da empresa, incentivando tanto a e�ciência operacional quanto a habilidade de inovação e adaptação às mudanças do mercado. Em um ambiente de negócios dinâmico e competitivo, a gestão do conhecimento deve ser encarada como um processo de aprimoramento e adaptação constantes, o qual é fundamental para o desenvolvimento sustentável e a vantagem competitiva a longo prazo. Vamos Exercitar? Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Descrição da situação-problema Agora que você já possui conhecimentos relacionados aos modelos centralizados e descentralizados da gestão do conhecimento, está apto para responder à problemática apresentada no início desta aula. Com base nas características dos modelos centralizados e descentralizados de gestão do conhecimento, você precisa validar e recomendar a abordagem mais apropriada ao contexto da empresa TokTac Ltda, que busca ampliar a inovação,a tomada de decisões e a e�ciência operacional. Justi�que sua resposta elencando pelo menos três argumentos relevantes. Solução Sugere-se a adoção do modelo descentralizado de gestão do conhecimento para atender às necessidades da empresa TokTac Ltda. Essa recomendação está fundamentada nos seguintes pontos: 1. Aumento da inovação: o modelo descentralizado promove a inovação ao permitir que diferentes equipes e departamentos colaborem e compartilhem suas ideias e conhecimentos de maneira mais livre e aberta. Essa diversidade de pensamentos e experiências pode gerar soluções mais criativas e inovadoras para os desa�os enfrentados pela empresa. 2. Melhoria na tomada de decisões: em um modelo descentralizado, as decisões podem ser tomadas mais rapidamente, já que as equipes têm acesso direto a conhecimentos relevantes e não precisam esperar pela aprovação de um grupo central. Isso tornará a TokTac Ltda mais ágil e responsiva às mudanças e oportunidades do mercado. 3. E�ciência operacional: com a gestão do conhecimento distribuída, as informações poderão ser acessadas de um modo mais fácil por aqueles que precisam delas, o que diminuirá o tempo gasto na busca e recuperação de dados. Além disso, ao empoderar os funcionários com o conhecimento necessário, a empresa pode melhorar a qualidade e a velocidade das operações, ampliando a e�ciência geral. Adotar um modelo descentralizado pode trazer desa�os, como a necessidade de estabelecer mecanismos competentes de comunicação e coordenação, mas os benefícios em termos de inovação, tomada de decisões e e�ciência operacional superam tais complexidades, especialmente no contexto de uma empresa que busca se destacar pela sua capacidade de inovar e se adaptar rapidamente. Saiba mais Para aprender mais detalhes sobre gestão do conhecimento tácito e explícito, conhecendo as abordagens e os desa�os atrelados a essa prática, faça a leitura do artigo A gestão do https://doi.org/10.1590/S1679-39512008000100003 Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO conhecimento como técnica de controle: uma abordagem crítica da conversão do conhecimento tácito em explícito. BEHR, R. R.; NASCIMENTO, S. P. A gestão do conhecimento como técnica de controle: uma abordagem crítica da conversão do conhecimento tácito em explícito. Cadernos EBAPE.BR, v. 6, n. 1, p. 1-11, mar. 2008. Referências ANGELONI, M. T. Organizações do conhecimento: infraestrutura, pessoas e tecnologia. 2. ed. Rio de Janeiro: Saraiva, 2008. BEHR, R. R.; NASCIMENTO, S. P. A gestão do conhecimento como técnica de controle: uma abordagem crítica da conversão do conhecimento tácito em explícito. Cadernos EBAPE.BR, v. 6, n. 1, p. 1-11, mar. 2008. Disponível em: https://doi.org/10.1590/S1679-39512008000100003. Acesso em: 27 ago. 2024. KROENKE, D. M. Sistemas de informação gerenciais. Rio de Janeiro: Grupo Gen, 2012. OZAKI, Y.; AVONA, M. E. Gestão do conhecimento. Londrina, PR: Editora e Distribuidora Educacional S.A., 2016. PERINI, L. C. Administração de sistemas de informação. São Paulo: Unopar, 2019. PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software. Porto Alegre: AMGH, 2021. SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Fundamentos de sistemas operacionais. Rio de Janeiro: LTC, 2015. SOMASUNDARAM, G.; SHRIVASTAVA, A.; EMC Education Services. Armazenamento e gerenciamento de informações. Porto Alegre: Grupo A, 2011. TIGRE, P. Gestão da inovação: uma abordagem estratégica, organizacional e de gestão de conhecimento. 3. ed. Rio de Janeiro: Gen Atlas, 2019. Aula 2 Análise de Dados e Business Intelligence Análise de dados e business intelligence https://doi.org/10.1590/S1679-39512008000100003 https://doi.org/10.1590/S1679-39512008000100003 https://doi.org/10.1590/S1679-39512008000100003 Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Convido você a explorar o fascinante universo do business intelligence (BI), que é permeado por conceitos como ETL, data warehouses, data marts, OLAP e data mining. Essas ferramentas transformam dados brutos em insights valiosos para decisões estratégicas. Pense na possibilidade de prever tendências de mercado, otimizar operações e aprimorar o atendimento ao cliente com análises precisas. O processo ETL (extração, transformação e carga) integra dados de diversas fontes em um data warehouse, que armazena informações históricas e simpli�ca análises complexas. Os data marts são versões especializadas desses repositórios, com foco voltado a necessidades especí�cas. O OLAP permite uma análise interativa e rápida, oferecendo uma visão multidimensional que apoia decisões em tempo real. Já o data mining revela padrões ocultos e previsões que podem mudar a estratégia empresarial. Investigar esses temas pode abrir portas para carreiras em BI e análise de dados. Ao dominar esses conceitos, você se tornará indispensável em um mundo cada vez mais orientado por informações. Prepare-se para esta jornada de conhecimento! Vamos lá! Ponto de Partida Boas-vindas, estudante, ao fascinante mundo da análise de dados e business intelligence (BI). Você está prestes a explorar um campo que não somente está no coração das decisões estratégicas das empresas, mas também é um dos mais dinâmicos e promissores do mercado atual. Pense em quão extraordinário é ser capaz de transformar grandes volumes de dados brutos em insights valiosos que podem prever tendências, otimizar operações e melhorar o atendimento ao cliente. Esse é o poder do BI. Para começar nossa análise, você aprenderá sobre o processo ETL (extração, transformação e carga), no qual dados são coletados de diversas fontes, transformados para garantir qualidade e consistência, e, por �m, carregados em data warehouses. Esses repositórios centralizados de dados históricos são a base para análises aprofundadas e relatórios detalhados. Além disso, você descobrirá como os data marts atendem às necessidades especí�cas de diferentes departamentos, permitindo uma análise mais direcionada e e�ciente. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Com as ferramentas de OLAP (Online Analytical Processing), você será capaz de realizar análises rápidas e interativas, visualizando dados sob múltiplas perspectivas. E, com a ajuda do data mining, será possível desenterrar padrões ocultos e correlações que não são visíveis a olho nu, revelando insights poderosos que podem transformar a estratégia empresarial. Estudar sobre esses temas não apenas abrirá portas para carreiras formidáveis e bem remuneradas, mas também lhe dará a oportunidade de se tornar a pessoa que transforma dados em vantagem competitiva. Para contextualizar sua aprendizagem, imagine a seguinte situação: você é o gerente de TI de uma organização especializada em desenvolvimento de softwares que tem experimentado um crescimento rápido nos últimos anos. Com o aumento do número de clientes e a diversi�cação de seus produtos, a empresa tem gerado uma quantidade massiva de dados diariamente, provenientes de vendas, atendimento ao cliente, marketing e operações internas. No entanto, a diretoria tem enfrentado di�culdades para tomar decisões estratégicas em função da falta de uma visão consolidada e integrada desses dados. Como resultado, os diretores estão considerando a implementação de uma solução de business intelligence (BI) para transformar esses dados brutos em informações valiosas, que possam orientar a tomada de decisões. Diante desse cenário, o CEO da empresa convidou você para participar de uma reunião juntamente com todos os outros funcionários, a �m de entender qual será o ganho com a implementação de uma solução de business intelligence e como a organização poderá obter melhorias na tomada de decisõese na otimização de suas operações. Com base nos conceitos das regras e processos de BI, você precisa ajudar a empresa a aperfeiçoar suas escolhas e aprimorar suas operações. Quais serão, então, os principais benefícios garantidos pela adoção de uma abordagem de BI? Como esse processo pode ser estruturado para atender às necessidades da organização? Prepare-se para mergulhar nesta jornada de aprendizagem e tornar-se um especialista quando o assunto é transformar informação em poder. Bons estudos! Vamos Começar! Business intelligence: transformando dados em conhecimento para a tomada de decisões No cenário atual, em que o volume de dados cresce exponencialmente, o business intelligence (BI) emerge como uma ferramenta crucial para as organizações que querem não apenas sobreviver, mas sim prosperar. BI refere-se ao conjunto de tecnologias e processos que coletam, Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO analisam e transformam dados brutos em informações signi�cativas, permitindo que os gestores tomem decisões bem informadas e estratégicas. Por meio de dashboards interativos e relatórios analíticos, as ferramentas de BI oferecem uma visualização clara de tendências, padrões e insights, capacitando as empresas para entenderem de modo mais sólido o comportamento do consumidor, identi�carem oportunidades de mercado e otimizarem operações internas (Sharda; Delen; Turban, 2019). A integração de dados de diversas fontes, como sistemas de gestão, redes sociais e vendas, proporciona uma perspectiva holística do desempenho organizacional, o que viabiliza uma análise mais completa e precisa. Além disso, o BI não se limita apenas à análise histórica; ele também possibilita previsões e simulações que ajudam as empresas a se anteciparem a mudanças e a se adaptarem rapidamente (Davenport, 2017). Em um mundo onde a agilidade e a inovação são essenciais, o business intelligence se destaca como um aliado estratégico, transformando dados em conhecimento e, consequentemente, aprimorando a tomada de decisões. Ao investir em soluções de BI, as organizações aumentam sua e�ciência e se posicionam de forma competitiva em um mercado dinâmico e desa�ador. 1. Os principais componentes do BI - Coleta de dados: o primeiro passo no processo de BI é a coleta de dados de diversas fontes, como bancos de dados internos, sistemas de ERP (Enterprise Resource Planning), CRM (Customer Relationship Management) e fontes externas, como redes sociais e dados de mercado (Davenport, 2017). - Armazenamento de dados: uma vez coletados, os dados são guardados em um data warehouse ou data mart, que são sistemas de armazenamento projetados para facilitar o acesso e a análise de grandes volumes de dados. - Processamento de dados: os dados armazenados são processados e organizados. Tal procedimento pode incluir a limpeza de dados, a transformação e a integração de diferentes fontes de dados, na intenção de assegurar a consistência e a qualidade das informações (Silberschatz, 2020). - Análise de dados: ferramentas de BI são usadas para analisar os dados e extrair insights. - Relatórios e dashboards: os resultados da análise de dados são apresentados em forma de relatórios e dashboards interativos. Esses relatórios permitem que os usuários visualizem tendências, padrões e anomalias de maneira clara e compreensível (Sharda; Delen; Turban, 2019). - Tomada de decisão: com base nos insights gerados, os gestores e tomadores de decisão podem planejar estratégias, ajustar operações e identi�car novas oportunidades de negócio. A tomada de decisão apoiada em dados viabiliza uma abordagem mais precisa e e�caz para resolver problemas e capitalizar possibilidades. 2. Benefícios do BI - Tomada de decisão informada: o BI fornece informações exatas e atualizadas, permitindo que os tomadores de decisão baseiem suas escolhas em dados concretos, reduzindo o risco de erros e incertezas (Pichetti; Vida; Cortes, 2021). - Aumento da e�ciência operacional: ao identi�car áreas de ine�ciência e gargalos, as Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO organizações podem otimizar seus processos e melhorar a produtividade. - Identi�cação de oportunidades de mercado: o BI ajuda as empresas a identi�carem novas oportunidades de mercado e tendências emergentes, dando espaço para uma resposta proativa e estratégica. - Melhoria da experiência do cliente: analisar dados de clientes permite que as empresas personalizem suas ofertas e ampliem a satisfação e a �delidade desses usuários. 3. Desa�os do BI - Qualidade dos dados: a precisão das análises de BI depende da qualidade dos dados coletados (Pichetti; Vida; Cortes, 2021). Dados inconsistentes ou incompletos podem levar a insights incorretos. - Integração de dados: integrar dados de diferentes fontes pode ser complexo e requer ferramentas e processos adequados para garantir a consistência e a integridade das informações. - Cultura organizacional: a adoção de BI exige uma mudança na cultura organizacional, de maneira que decisões baseadas em dados sejam valorizadas e incentivadas. - Segurança dos dados: proteger os dados sensíveis e assegurar a conformidade com as regulamentações de privacidade são práticas essenciais para a implementação de soluções de BI. Existem diversas ferramentas de BI disponíveis no mercado. Conheça algumas delas a seguir. Tableau: conhecida por sua interface visual intuitiva e capacidade de criar dashboards interativos. Power BI: uma solução completa da Microsoft que integra diversas ferramentas de análise de dados. QlikView: destaca-se por sua capacidade de realizar análises associativas e descobrir insights. Qlik Sense: oferece uma plataforma de BI intuitiva com recursos de análise associativa, permitindo que os usuários explorem dados e descubram insights de maneira interativa. Google Data Studio: uma ferramenta gratuita e fácil de usar para criar dashboards personalizados. Looker: agora parte integrante do Google Cloud, o Looker é uma plataforma de BI que possibilita criar relatórios e dashboards personalizados, concentrando-se na análise de dados em tempo real. SAP BusinessObjects: uma solução robusta para grandes empresas, o SAP BusinessObjects oferece uma ampla gama de ferramentas para relatórios, análise e visualização de dados. IBM Cognos Analytics: disponibiliza recursos de BI e análise avançada, viabilizando a criação de dashboards e relatórios interativos, além de análises preditivas. Domo: uma plataforma de BI baseada em nuvem que combina visualização de dados com colaboração, permitindo que equipes trabalhem juntas em tempo real. Sisense: conhecida por sua capacidade de integrar dados de várias fontes, essa plataforma facilita a criação de dashboards e relatórios que auxiliam na tomada de decisões rápidas. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO MicroStrategy: fornece uma plataforma de BI escalável que combina análise avançada, visualização e integração de dados em uma única solução. Zoho Analytics: como uma ferramenta acessível para pequenas e médias empresas, o Zoho Analytics permite criar relatórios e dashboards a partir de dados de várias fontes. O business intelligence é uma ferramenta poderosa que transforma dados em informações valiosas, ajudando as organizações a tomarem decisões estratégicas e a melhorarem sua e�ciência operacional (Sharda; Delen; Turban, 2019). Esse recurso de análise pode ser empregado em diversas áreas, como vendas, marketing, �nanceiro e recursos humanos. Ao enfrentar os desa�os e aproveitar os benefícios do BI, as empresas podem se posicionar de maneira competitiva no mercado e impulsionar seu crescimento e sucesso a longo prazo. ETL, data warehouse e data marts: um contexto das ferramentas e técnicas Algumas ferramentas e técnicas apoiam tanto o BI quanto a gestão do conhecimento. Tais ferramentas, incluindo o data warehouse, que emprega as técnicas de ETL, e os data marts, oferecem toda a infraestrutura necessária para identi�car informações valiosas a partir dos dados (Sharda; Delen; Turban, 2019). Isso aconteceatividades diárias (Kroenke, 2012). Seus principais atributos são: - Foco gerencial: concedem informações que atendem às necessidades dos gestores de nível intermediário e superior. - Relatórios padronizados: ajudam a monitorar e avaliar o desempenho da organização. - Integração de dados: proporcionam uma visão geral das operações da empresa. - Flexibilidade: suprem necessidades especí�cas de diferentes áreas da organização. - Suporte à decisão: apoiam a tomada de decisões táticas e estratégicas da empresa. Os Sistemas de Informação Gerencial são ferramentas imprescindíveis para qualquer organização que deseja melhorar sua e�ciência, fundamentar sua tomada de decisões e alcançar seus objetivos estratégicos, pois os gestores devem alicerçar suas decisões em relatórios �nanceiros, análise de vendas, gestão de inventário, planejamento de produção e gestão de recursos humanos. Esses sistemas convertem dados brutos em informações claras e úteis, o que permite que os gestores obtenham uma compreensão mais profunda de suas operações, além de facilitar a identi�cação de problemas e a tomada de decisões mais certeiras. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO 3. Sistema de Apoio à Decisão (SAD) Os Sistemas de Apoio à Decisão (SADs) são ferramentas tecnológicas que auxiliam gestores e tomadores de decisão em suas atividades, proporcionando suporte analítico e informacional para resolver problemas complexos e orientar escolhas mais corretas. Esses sistemas combinam dados, modelos analíticos e a intuição dos usuários para ajudar na análise e seleção das melhores alternativas (Escada et al., 2021). Os SADs são projetados para melhorar a e�cácia das decisões, disponibilizando insights valiosos e estruturando o processo decisório ao atuar nas tomadas de decisões em situações de alta complexidade e incerteza. Suas principais características são: - Interatividade: são altamente interativos, de modo que os usuários podem ajustar parâmetros, executar simulações e explorar diferentes cenários de decisão. - Flexibilidade: são capazes de lidar com diferentes tipos de problemas e adaptar-se a várias áreas funcionais da organização. - Suporte analítico: utilizam modelos matemáticos, estatísticos e de otimização para analisar dados e gerar recomendações. - Integração de dados: combinam dados internos e externos para fornecer uma visão abrangente e detalhada das situações analisadas. - Usuariocentrismo: são usados por gestores e outros tomadores de decisão, independentemente de seu nível de conhecimento técnico. Diante disso, os Sistemas de Apoio à Decisão são ferramentas essenciais para qualquer organização que busca por melhorias e e�cácia nas suas decisões. Ao integrar dados, modelos analíticos e a intuição dos gestores, os SADs oferecem uma plataforma poderosa para avaliar problemas complexos, prever resultados e escolher as melhores opções. Esses sistemas são fundamentais porque abrangem áreas como planejamento �nanceiro, gestão da cadeia de suprimentos, análise de mercado, gestão de riscos e recursos humanos. Em um ambiente empresarial cada vez mais dinâmico e imprevisível, a habilidade de fazer escolhas rápidas e bem embasadas é um diferencial competitivo relevante, e os SADs desempenham um papel crucial nesse processo. Siga em Frente... Ciclo de vida da informação O ciclo de vida da informação e do dado se refere às etapas pelas quais os dados percorrem desde a sua criação até o seu descarte. Entender como funciona esse ciclo é fundamental para gerenciar e�cazmente a informação dentro de uma organização, garantindo a sua qualidade, segurança e utilidade ao longo do tempo (Silberschatz, 2020). A seguir, serão descritas as principais fases do ciclo de vida da informação e do dado: 1. Coleta e criação: esta fase envolve a geração ou aquisição de dados a partir de diversas fontes, como transações comerciais, sensores, pesquisas, observações e outras atividades. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO A coleta de dados deve ser realizada com precisão, a �m de assegurar a integridade e a con�abilidade dos dados (Silberschatz, 2020). Exemplos: captura de dados de vendas em um ponto de venda, coleta de dados meteorológicos por sensores, preenchimento de formulários on-line. 2. Armazenamento: após a coleta, os dados são armazenados em repositórios apropriados, como bancos de dados, data warehouses ou sistemas de arquivos. O armazenamento deve garantir a proteção contra perda e corrupção de dados, bem como a sua acessibilidade para futuros usos (Dale; Lewis, 2010). Exemplos: bancos de dados relacionais (SQL), armazenamento em nuvem, sistemas de gerenciamento de documentos. 3. Processamento e organização: nesta etapa, os dados brutos são processados e organizados para que se tornem úteis. Isso pode envolver limpeza, validação, transformação e integração de dados provenientes de diferentes fontes (Silberschatz, 2020). Exemplos: limpeza de dados para remover duplicatas, transformação de formatos de dados, integração de dados de diversas fontes em um data warehouse. 4. Análise e uso: os dados processados são analisados para extrair informações valiosas e insights que podem ser usados para a tomada de decisões, planejamento estratégico e outras atividades organizacionais. Ferramentas analíticas e técnicas de mineração de dados são frequentemente empregadas durante essa fase. Exemplos: análises estatísticas, relatórios gerenciais, dashboards interativos, modelos preditivos. 5. Distribuição e compartilhamento: as informações derivadas dos dados são disseminadas para os usuários apropriados dentro ou fora da organização. A distribuição deve ser feita de forma segura e e�ciente, garantindo que os dados cheguem aos destinatários certos, no momento correto (Silberschatz, 2020). Exemplos: envio de relatórios por e-mail, publicação de dashboards em portais corporativos, compartilhamento de dados via Application Programming Interface (APIs). �. Manutenção e atualização: os dados e as informações precisam ser mantidos e atualizados regularmente para proteger a sua relevância e precisão. Isso demanda a revisão periódica, a correção de erros e a atualização de informações quando necessário (Silberschatz, 2020). Exemplos: atualização de registros de clientes, manutenção de dados de inventário, revisão de informações de produtos. 7. Arquivamento e retenção: os dados que não são mais usados ativamente, mas que precisam ser preservados por razões legais ou históricas, são arquivados. A retenção de dados deve seguir políticas especí�cas para garantir a conformidade com regulamentos e normas (Pressman; Maxim, 2021). Exemplos: arquivamento de registros �nanceiros por períodos regulamentares, armazenamento de dados históricos de pesquisa. �. Descarte e destruição: quando os dados atingem o �m de sua utilidade, ou quando o período de retenção expira, eles devem ser descartados de maneira segura. A destruição de dados precisa assegurar que informações sensíveis não sejam recuperáveis, protegendo a privacidade e a segurança (Pressman; Maxim, 2021). Exemplos: destruição segura de documentos em papel, exclusão segura de dados eletrônicos, desmagnetização de discos rígidos. As características importantes no ciclo de vida dos dados são: Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Qualidade dos dados: garantir que os dados sejam precisos, completos e consistentes em todas as fases. Segurança: proteger os dados contra acesso não autorizado, perda e corrupção durante todo o ciclo de vida. Conformidade: cumprir regulamentos e normas relacionados à privacidade, à retenção e ao descarte de dados. E�ciência: maximizar a e�ciência no armazenamento, processamento e distribuição de dados para otimizar recursos. Gestão de metadados: manter informações sobre os dados, como origem, formato e contexto, com o propósito de facilitar a gestão e o uso. Compreender e gerenciar de modo e�caz o ciclo de vida da informação e do dado é crucial para qualquer organização que pretende utilizar dados de forma estratégica. Umapor uma razão simples: a complexidade dos sistemas de informação das empresas aumentou consideravelmente nas últimas três décadas. Esse cenário tem ampliado signi�cativamente o número de sistemas que dependem de bases de dados e as quantidades de dados armazenados nesses sistemas. Ou seja, esses dados não são apenas necessários, e sim fundamentais para o desempenho das organizações (Pichetti; Vida; Cortes, 2021). ETL é um processo crucial em sistemas de dados que envolve três etapas principais: extração, transformação e carregamento. Na extração, os dados são retirados de diversas fontes, como bancos de dados, arquivos ou APIs (Vida et al., 2021). Durante a transformação, esses dados são limpos, formatados e transformados para atender aos requisitos do sistema de destino. O carregamento é a etapa �nal, quando os dados transformados são inseridos em um banco de dados ou data warehouse. 1. ETL (Extract, Transform, Load): é um processo crítico em sistemas de gerenciamento de dados, responsável pela movimentação e transformação de dados de fontes diversas para um destino comum (Vida et al., 2021). As três principais etapas desse processo são: - Extração (Extract): os dados são retirados de várias fontes heterogêneas, como bancos de dados, sistemas ERP, arquivos CSV, APIs e até mesmo fontes externas (Silberschatz, 2020). A extração deve ser realizada de maneira e�ciente para garantir que os dados brutos sejam coletados sem perdas. - Transformação (Transform): nesta fase, os dados extraídos são transformados para atender aos requisitos do sistema de destino. Isso demanda a limpeza de dados (remover dados duplicados, corrigir inconsistências), agregações, junções e a aplicação de regras de negócio (Silberschatz, 2020). A transformação é essencial para assegurar que os dados Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO sejam úteis e relevantes para análises futuras. - Carregamento (Load): os dados transformados são, então, carregados no sistema de destino, que pode ser um data warehouse, data mart ou outro sistema de armazenamento de dados (Pichetti; Vida; Cortes, 2021). O carregamento pode ser executado de modo incremental ou em massa, dependendo das necessidades do negócio e da arquitetura do sistema. 2. Data warehouse: um data warehouse é um repositório centralizado e consolidado de dados, projetado especi�camente para consultas e análises avançadas (Vida et al., 2021). Ele integra dados de diversas fontes operacionais e externas, oportunizando uma visão histórica e integrada do negócio. Os principais benefícios de um data warehouse incluem: - Desempenho de consulta: otimizado para executar consultas complexas e gerar relatórios rapidamente (Vida et al., 2021). - Consistência e qualidade dos dados: garante que os dados sejam consistentes e de alta qualidade após passarem pelo processo de ETL (Pichetti; Vida; Cortes, 2021). - Análise histórica: armazena grandes volumes de dados históricos, permitindo análises de tendências e padrões ao longo do tempo. - Tomada de decisão informada: facilita a tomada de decisões estratégicas e táticas baseadas em dados precisos e atualizados. 3. Data marts: são subconjuntos especializados de um data warehouse, com foco direcionado a áreas especí�cas de negócio ou departamentos, como vendas, �nanças, marketing ou recursos humanos (Vida et al., 2021). Eles concedem diversas vantagens, como: - Foco especí�co: atendem às necessidades de um departamento em particular, proporcionando uma visão detalhada e segmentada dos dados relevantes (Vida et al., 2021). - Implementação rápida: podem ser desenvolvidos e implementados mais rapidamente do que um data warehouse completo, em função de seu escopo reduzido. - Desempenho aprimorado: por serem menores e mais direcionados, permitem consultas e análises mais velozes e e�cientes. - Facilidade de uso: oferecem interfaces amigáveis e personalizadas para os usuários �nais, facilitando o acesso e a análise dos dados. O Quadro 1, a seguir, exibe um esquema comparativo entre o data warehouse e o data mart. Características Data Warehouse Data Mart Escopo Corporativo, abrangente Especí�co para um departamento ou área de negócio Tamanho Grande volume de dados Subconjunto de dados Complexidade Alta complexidade Menos complexidade Usuário Diversos usuários, incluindo analistas de negócios, gerentes e executivos Usuários especí�cos de um departamento Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Quadro 1 | Data warehouse versus data mart. Fonte: elaborado pela autora. Conexão e onde usar ETL, data warehouse e data mart O processo ETL é a espinha dorsal que conecta as fontes de dados aos data warehouses e data marts. Os dados extraídos de múltiplas fontes são transformados para garantir consistência, qualidade e relevância antes que sejam carregados no data warehouse central (Silberschatz, 2020). A partir desse repositório central, data marts especí�cos podem ser criados para atender a necessidades particulares de diferentes departamentos ou unidades de negócio. Esses sistemas de armazenamento são capazes de conceder os seguintes benefícios: Tomada de decisão: permitem a análise de dados históricos e atuais para identi�car tendências, padrões e oportunidades de negócio. Relatórios e análises: facilitam a criação de relatórios personalizados e a realização de análises complexas. Inteligência de negócios: suportam a implementação de soluções de business intelligence, como dashboards e scorecards. Mineração de dados: viabilizam a descoberta de padrões ocultos nos dados e a geração de insights valiosos. A Figura 1, a seguir, mostra um exemplo prático do funcionamento do processo ETL, data warehouse e data mart. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Figura 1 | Esquematização de ETL, data warehouse e data mart. Fonte: Informatica Tutorials ([s. d.]). ETL, data warehouses e data marts são componentes interdependentes e fundamentais na arquitetura de gestão e análise de dados de uma organização (Silberschatz, 2020). Juntos, eles permitem a coleta, integração, armazenamento e análise e�ciente de grandes volumes de dados, proporcionando insights valiosos e dando suporte a decisões estratégicas e operacionais. Uma implementação e�caz desses componentes pode transformar dados brutos em informações acionáveis, impulsionando o desempenho e a competitividade do negócio. Siga em Frente... OLAP e data mining: desvendando os segredos dos dados Data mining A expressão “data mining” pode ser traduzida de maneira livre como “mineração de dados”. Dependendo das ações realizadas sobre os dados, também poderíamos apelidá-la de “garimpo de dados” (Silberschatz, 2020). O uso do termo se justi�ca pelo fato de corresponder a um conjunto de técnicas que buscam examinar minuciosamente os dados, combinando-os de Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO diversas maneiras com o objetivo de identi�car padrões que os representem (Silberschatz, 2020). É um processo semelhante à mineração de um terreno, em busca de metais ou pedras preciosas. Porém, nesse caso, o “terreno” é uma grande quantidade de dados, e o que há de valioso são os padrões que podem surgir deles. De acordo com Silberschatz (2020), o data mining é uma abordagem empresarial que permite analisar grandes volumes de dados para descobrir regras e padrões signi�cativos. De acordo com a literatura que estuda esse processo (Sharda; Delen; Turban, 2019, Davenport, 2017, Silberschatz, 2020, Pichetti; Vida; Cortes, 2021, Vida et al., 2021), suas principais técnicas e aplicações incluem: Classi�cação: atribuição de categorias a um conjunto de dados com base em um modelo prede�nido. Exemplo: classi�cação de e-mails como spam ou não spam. Regressão: modelagem da relação entre variáveis para prever valores futuros. Exemplo: previsão de vendas futuras com base em dados históricos. Agrupamento (clustering): agrupamento de dados semelhantes sem rótulos prede�nidos. Exemplo: segmentação de clientes com base em comportamentos de compra. Associação: identi�caçãoabordagem bem estruturada assegura que os dados permaneçam valiosos e seguros durante todo o seu ciclo de vida, apoiando a tomada de decisões e promovendo o sucesso organizacional. Vamos Exercitar? Descrição da situação-problema Agora que você já possui conhecimentos relacionados aos componentes dos sistemas de informação, está apto para responder à pergunta feita no início desta aula: quais componentes e tipos de sistemas de informação a Comércio & Comércio pode pensar em implementar para resolver seus desa�os operacionais e melhorar a e�ciência de suas atividades? Solução Para solucionar seus desa�os operacionais e melhorar a e�ciência de suas operações, a Comércio & Comércio deve considerar a implementação de um sistema de informação integrado que inclua os seguintes componentes e tipos de sistemas de informação: Sistemas de Processamento de Transações (SPTs): essenciais para a gestão de operações diárias, como vendas, pagamentos e controle de estoque. Esses sistemas capturam e processam dados transacionais em tempo real. Sistemas de Informação Gerencial (SIGs): fornecem relatórios e informações resumidas para ajudar os gerentes a tomarem decisões bem fundamentadas. Alguns dos documentos levados em consideração são: relatórios de vendas mensais, análise de desempenho de lojas e tendências de compras dos clientes. Sistemas de Apoio à Decisão (SADs): ajudam os gerentes a tomarem decisões complexas, fornecendo análises avançadas e ferramentas de modelagem. Podem ser usados para planejamento de demanda, otimização de inventário e análise de mercado. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Sistemas de Gestão de Relacionamento com o Cliente (CRMs): auxiliam no gerenciamento das interações com os clientes, melhorando o atendimento e a �delização. Integram informações de diferentes pontos de contato com o cliente, como loja física, on-line e atendimento ao cliente. Ao implementar um sistema de informação integrado com os componentes e tipos de sistemas de informação adequados, a Comércio & Comércio pode aperfeiçoar signi�cativamente a gestão de suas operações. Isso resultará em um melhor controle de estoque, atendimento ao cliente mais e�ciente, tomadas de decisão mais bem fundamentadas e, em última análise, uma maior competitividade no mercado. Saiba mais Para saber mais detalhes sobre os tipos de sistemas de informação, faça a leitura do artigo E�cácia de sistemas de informação e percepção de mudança organizacional: um estudo de caso. Acesse o material sugerido por meio do link a seguir. ANDRADE, D. G. de; FALK, J. A. E�cácia de sistemas de informação e percepção de mudança organizacional: um estudo de caso. Revista de Administração Contemporânea, v. 5, n. 3, p. 53-84, set. 2001. Referências ANDRADE, D. G. de; FALK, J. A. E�cácia de sistemas de informação e percepção de mudança organizacional: um estudo de caso. Revista de Administração Contemporânea, v. 5, n. 3, p. 53-84, set. 2001. Disponível em: https://www.scielo.br/j/rac/a/GWsTCZxhZMKskWdpMLSGbKG/? lang=pt&format=pdf. Acesso em: 4 ago. 2024. AUDY, J. L. N.; ANDRADE, G. K.; CIDRAL, A. Fundamentos de sistemas de informação. Porto Alegre: Grupo A, 2005. BALTZAN, P.; PHILLIPS, A. Sistemas de informação. Porto Alegre: Grupo A, 2012. E-book. BROOKSHEAR, J. G. Ciência da computação. Porto Alegre: Bookman, 2013. DALE, N.; LEWIS, J. Ciência da computação. 4. ed. Rio de Janeiro: LTC, 2010. ESCADA, R. M. et al. Princípios de sistemas de informação. São Paulo: Cengage Learning Brasil, 2021. KROENKE, D. M. Sistemas de informação gerenciais. Rio de Janeiro: Grupo GEN, 2012. https://www.scielo.br/j/rac/a/GWsTCZxhZMKskWdpMLSGbKG/?lang=pt&format=pdf https://www.scielo.br/j/rac/a/GWsTCZxhZMKskWdpMLSGbKG/?lang=pt&format=pdf https://www.scielo.br/j/rac/a/GWsTCZxhZMKskWdpMLSGbKG/?lang=pt&format=pdf https://www.scielo.br/j/rac/a/GWsTCZxhZMKskWdpMLSGbKG/?lang=pt&format=pdf Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software. Porto Alegre: AMGH, 2021. SILBERSCHATZ, A. Sistema de banco de dados. Rio de Janeiro: Grupo GEN, 2020. Aula 3 Sistemas Operacionais Sistemas operacionais Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Nesta videoaula, você descobrirá o que faz seu computador funcionar de maneira e�ciente e poderosa! Estudando os princípios e conceitos relacionados aos sistemas operacionais, conseguiremos entender como essas ferramentas essenciais controlam desde o hardware até o software, ou seja, tudo. Ao explorar as funções e os componentes de um sistema operacional, você aprenderá como ele gerencia tarefas importantes, como a execução de programas e a organização de arquivos. Por �m, ao aprofundar seu entendimento sobre o gerenciamento de processos, memória e armazenamento, será possível notar como o sistema operacional coordena múltiplas atividades, otimiza a memória e organiza os dados de modo inteligente. Esses conceitos servem como base para qualquer tecnologia moderna, e dominá-los tornará você capaz de entender e solucionar problemas no mundo digital. Estudar sobre sistemas operacionais não signi�ca apenas aprender como as máquinas funcionam, mas também consiste em abrir caminho para se tornar um especialista em tecnologia. Ponto de Partida Estudante, desejo boas-vindas a você! Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Pense no sistema operacional do seu computador como o maestro de uma sinfonia tecnológica. Ele é o responsável por coordenar cada nota, cada instrumento, garantindo que tudo funcione em perfeita harmonia. Nesta etapa de aprendizagem, vamos desvendar os princípios e conceitos fundamentais que tornam isso possível, além de investigar as funções e os componentes cruciais que fazem dos sistemas operacionais o coração pulsante dos dispositivos modernos. Todo sistema operacional (SO) tem como missão primordial gerenciar o hardware e o software de um computador, possibilitando que esses componentes trabalhem juntos de maneira e�ciente. A base dessa gestão está nos princípios fundamentais, como a abstração de hardware e a criação de uma interface amigável para o usuário. O SO atua como um intermediário vital, pois proporciona um ambiente onde os programas podem ser executados sem que seja necessário se preocupar com os detalhes complexos do hardware. Para entender o funcionamento de um SO, é preciso conhecer seus principais componentes. O núcleo, ou “kernel”, é o coração do sistema, encarregado de gerenciar todos os recursos do computador, contemplando desde o processador até a memória. Outros componentes importantes incluem o gerenciador de arquivos, que organiza e controla o armazenamento de dados, e o gerenciador de dispositivos, que se comunica com o hardware. Esses elementos trabalham em conjunto para garantir que o sistema seja e�ciente e estável. Para uma correta operação diária do seu computador, o gerenciamento de processos é imprescindível. O SO deve assegurar que diferentes aplicações e tarefas sejam executadas simultaneamente, sem con�itos. Isso demanda o controle da execução dos processos, a alocação de recursos e a comunicação entre eles. Paralelamente, o gerenciamento de memória é essencial para manter o sistema rápido e responsivo. O SO deve alocar e liberar memória de maneira e�ciente para evitar desperdícios e assegurar que as aplicações contem com aquilo de que precisam para funcionar adequadamente. O gerenciamento de armazenamento abrange a organização e proteção dos dados no disco rígido ou SSD. O SO deve manter um sistema de arquivos organizado e seguro, permitindo que você salve, acesse e modi�que seus arquivos sem que haja problemas. Para contextualizar sua aprendizagem, imagine a seguinte situação: você acaboude comprar um computador novo, mas, ao ligá-lo, percebe que o equipamento não faz nada além de mostrar uma tela preta. Não há nenhum menu, programa ou função disponível. Ao conversar com um amigo, ele menciona que o computador precisa de um sistema operacional para que funcione corretamente. Por que o sistema operacional é necessário para que você consiga utilizar o computador e acessar seus programas e arquivos? Compreender os princípios e conceitos relacionados aos sistemas operacionais, bem como suas funções e componentes, é como descobrir os segredos por trás da orquestração de uma performance tecnológica impecável. Cada parte do sistema desempenha um papel crucial, e o conhecimento dessas funções permite que você compreenda, de modo mais apropriado, o funcionamento dos seus dispositivos e as tecnologias que usamos diariamente. Adentrar esse Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO universo é essencial para qualquer entusiasta da informática, pois oferece uma base sólida para explorar e inovar no campo da computação. Bons estudos! Vamos Começar! Princípios e conceitos relacionados aos sistemas operacionais Os sistemas operacionais são a espinha dorsal dos computadores, já que coordenam o hardware e proporcionam um ambiente e�ciente para a execução de programas. Eles gerenciam processos, memória e armazenamento, garantindo que tudo funcione harmoniosamente (Silberschatz; Galvin; Gagne, 2015). Um sistema operacional (SO) é um software fundamental que atua como intermediário entre o hardware de um computador e os programas que o usuário executa (Machado; Maia, 2013). Com isso, entendemos que o sistema operacional é o elemento essencial que conecta o usuário ao hardware do computador. Ele atua como um intermediário, traduzindo as ações do usuário em comandos que o hardware compreende. Essa ponte permite a execução bem-sucedida de programas, fornecendo uma interface intuitiva e gerenciando os recursos do sistema de forma otimizada. Ao abstrair a complexidade do hardware, o sistema operacional possibilita que o usuário se concentre nas tarefas, sem a necessidade de entender os detalhes técnicos do funcionamento interno do computador. Como exemplos de sistemas operacionais, podemos citar: Windows, macOS, Linux, Android e iOS. A seguir, vamos conhecer de modo detalhado os princípios e conceitos atrelados aos sistemas operacionais. 1. Gestão de processos e recursos Os sistemas operacionais desempenham um papel crucial no gerenciamento de recursos do computador, que incluem CPU, memória, armazenamento e dispositivos periféricos. Cada recurso deve ser alocado e controlado para garantir que o sistema funcione de maneira e�ciente e sem con�itos. - CPU (Unidade Central de Processamento): o SO utiliza técnicas como escalonamento de processos para dividir o tempo da CPU entre vários processos em execução. Ele decide qual processo deve ser executado e por quanto tempo, equilibrando a carga de trabalho e garantindo que os aplicativos respondam de maneira e�ciente (Silberschatz; Galvin; Gagne, 2015). - Memória: o gerenciamento de memória engloba a alocação de espaço de memória para processos e a utilização de técnicas como paginação e segmentação para otimizar o uso da memória física e virtual (Machado; Maia, 2013). O SO garante que os processos não inter�ram uns nos outros e protege a memória do sistema contra acessos não autorizados. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO - Armazenamento: o gerenciamento de armazenamento envolve a organização e a manutenção de dados em dispositivos de armazenamento, como discos rígidos e SSDs, gerenciando a alocação de espaço em disco e garantindo, por consequência, a integridade dos dados (Pressman; Maxim, 2021). - Dispositivos periféricos: o SO controla dispositivos como impressoras, scanners e mouses por meio de drivers e interfaces. Ele gerencia a comunicação entre o hardware e o software, assegurando que os dispositivos funcionem adequadamente e que os dados sejam transferidos de forma exitosa. 2. Gerência de memória A memória é um recurso crítico e limitado. O SO é responsável por gerenciar a alocação e liberação de memória para os processos em execução. Os principais conceitos associados a esse contexto incluem: - Memória virtual: permite que os programas utilizem mais memória do que a �sicamente disponível, a partir da paginação e segmentação. - Alocação contígua e não contígua: métodos para alocar memória de forma e�ciente, minimizando a fragmentação. - Proteção de memória: impede que um processo acesse a memória alocada a outro, garantindo a estabilidade e segurança do sistema. 3. Multitarefa A multitarefa é a capacidade que um sistema operacional tem para executar vários processos simultaneamente, proporcionando uma experiência de usuário mais �uida e e�ciente (Tanenbaum; Woodhull, 2008). - Escalonamento de processos: o SO utiliza algoritmos de escalonamento, como Round- Robin e Prioridade, para decidir a ordem e a duração com que os processos recebem tempo de CPU (Tanenbaum; Woodhull, 2008). - Context Switch: o processo de alternar a execução entre diferentes processos é conhecido como troca de contexto (context switch). O SO salva o estado atual de um processo e carrega o estado de outro, viabilizando a execução e�caz de múltiplos processos (Machado; Maia, 2013). 4. Gerenciamento de arquivos O gerenciamento de arquivos é crucial para a organização e o acesso aos dados armazenados. - Criação e manipulação de arquivos: o SO fornece funções para criar, ler, escrever e excluir arquivos. Também organiza arquivos em diretórios e subdiretórios, facilitando a navegação e a busca por dados. - Controle de acesso e permissões: o SO implementa controles de acesso para proteger arquivos e diretórios. Ele de�ne permissões de leitura, escrita e execução, garantindo que apenas usuários autorizados possam acessar ou modi�car determinados arquivos. 5. Segurança e proteção A segurança é uma preocupação fundamental para a integridade e a con�dencialidade dos dados e do sistema. - Autenticação: o SO veri�ca a identidade dos usuários por meio de mecanismos como senhas, biometria e cartões de segurança, o que assegura que apenas usuários autorizados possam acessar o sistema (Tanenbaum; Woodhull, 2008). Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO - Controle de acesso: o SO aplica políticas de controle de acesso para garantir que os usuários e aplicativos consigam acessar apenas os recursos e dados aos quais têm permissão (Dale; Lewis, 2010). - Criptogra�a e proteção contra malware: o SO pode incorporar mecanismos de criptogra�a para proteger dados sensíveis e ferramentas de segurança, com o propósito de detectar e neutralizar malware e ataques (Dale; Lewis, 2010). �. Interface de usuário A interface de usuário é o ponto de interação entre o usuário e o sistema operacional. Pode assumir duas formas principais: - Interface Grá�ca do Usuário (GUI): a GUI fornece elementos visuais, como janelas, ícones e menus, possibilitando uma interação intuitiva e amigável. Exemplos: Windows, macOS, Linux, Android, iOS e outros. - Interface de Linha de Comando (CLI): a CLI permite aos usuários interagir com o sistema a partir de comandos textuais. Embora possa parecer menos intuitiva para iniciantes, a CLI concede mais controle e �exibilidade para usuários avançados e é essencial para a automação de tarefas e administração de sistemas. Dominar os fundamentos e conceitos dos sistemas operacionais é crucial para qualquer pro�ssional de tecnologia e para o uso e�ciente de computadores e dispositivos. Esses princípios fornecem uma base sólida para entender como os sistemas operam, gerenciam recursos e de que maneira podem ser aplicados para aprimorar o desempenho e a segurança dos dispositivos. Siga em Frente... Funções e componentes de um sistema operacional Como aprendemos no tópico anterior, os sistemas operacionais são importantes para o funcionamento de computadores e dispositivos, pois executam uma variedade de funções críticas e complexas.São formados por vários componentes interdependentes, os quais garantem a operação e�ciente e estável do sistema. O SO é composto por funções que desenvolvem, controlam e organizam o bom funcionamento do computador (Silberschatz; Galvin; Gagne, 2015). Para obter uma operação bem-sucedida, alguns elementos se fazem necessários. Os principais são: 1. Núcleo (Kernel): é o componente central do SO, responsável por gerenciar o hardware e os recursos do sistema (Silberschatz; Galvin; Gagne, 2015). Ele fornece serviços fundamentais, como gerenciamento de processos, memória e dispositivos. 2. Gerenciador de processos: controla a execução dos processos, incluindo criação, agendamento e �nalização. Também gerencia a troca de contexto e a sincronização entre processos. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO 3. Gerenciador de memória: encarregado do gerenciamento da memória física e virtual, o gerenciador de memória aloca e libera espaço quando necessário, utiliza técnicas de paginação e segmentação, e protege o espaço de memória de processos concorrentes (Tanenbaum; Woodhull, 2008). 4. Gerenciador de arquivos: organiza e controla o acesso aos arquivos e diretórios no sistema de armazenamento. Ele lida com a criação, leitura, escrita e exclusão de arquivos, além de preservar a integridade e a estrutura dos dados. 5. Gerenciador de dispositivos: inclui os drivers de dispositivo e o subsistema de I/O (Input/Output), os quais viabilizam a comunicação entre o sistema operacional e o hardware periférico. Ele fornece uma interface uniforme para dispositivos de entrada e saída. �. Interface de usuário: a interface de usuário (UI) é a parte do SO que interage diretamente com o usuário. Os sistemas operacionais exercem um papel crucial na operação de computadores e dispositivos, administrando recursos, garantindo a segurança e facilitando a comunicação com o usuário. A correta compreensão das funções e componentes de um SO é indispensável para qualquer pro�ssional de tecnologia, pois ajuda a otimizar o uso de dispositivos computacionais (Pressman; Maxim, 2021). A aplicação desses saberes permite que o sistema funcione de modo efetivo, seguro e con�ável, suportando uma grande variedade de aplicações e serviços. Gerenciamento de processos, memória e armazenamento: a base do funcionamento de um sistema operacional O gerenciamento de processos, da memória e do armazenamento é uma função crucial dos sistemas operacionais (SOs), que são responsáveis por garantir o funcionamento e�ciente e estável de um computador (Tanenbaum; Woodhull, 2008). Cada uma desses elementos lida com diferentes aspectos da operação do sistema e possui suas próprias técnicas e desa�os. A seguir, vamos explorar as particularidades dessas atividades. 1. Gerenciamento de processos: é uma das principais responsabilidades do sistema operacional e envolve a criação, execução e coordenação de processos, que são instâncias de programas em execução (Delgado; Ribeiro, 2017). - Criação e inicialização: quando um programa é iniciado, o SO cria um processo para ele. Isso inclui a alocação de recursos, a criação de um espaço de memória para o processo e a con�guração do ambiente de execução. - Escalonamento: o SO utiliza algoritmos de escalonamento para determinar a ordem e o tempo de execução dos processos na CPU. O objetivo é garantir uma utilização e�ciente da CPU e uma resposta adequada do sistema (Silva; Borges, 2024). - Troca de contexto: quando a CPU muda de um processo para outro, o SO efetua a troca de contexto. Tal procedimento consiste em salvar o estado do processo atual e restaurar o estado do próximo processo, permitindo a continuidade da execução. - Sincronização e comunicação: o SO também gerencia a sincronização entre processos Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO concorrentes e facilita a comunicação entre eles por meio de mecanismos como semáforos, mutexes e �las de mensagens (Silva; Borges, 2024). 2. Gerenciamento de memória O gerenciamento de memória é responsável por alocar e gerenciar a memória física e virtual disponível no sistema (Silva; Borges, 2024). - Alocação de memória: o SO deve alocar espaço de memória para processos e aplicativos de maneira e�ciente. Ele utiliza técnicas como partição �xa, partição dinâmica e paginação para gerenciar o espaço disponível. - Memória virtual: para lidar com a limitação da memória física, o SO usa a memória virtual, que simula uma memória contínua e expansível, aproveitando-se do espaço no disco rígido. - Proteção e compartilhamento: o gerenciamento de memória inclui a proteção dos espaços de memória dos processos para evitar que um processo inter�ra no espaço de outro. O SO também deve garantir que a memória seja compartilhada de maneira segura entre processos que necessitam dessa funcionalidade (Delgado; Ribeiro, 2017). - Gerenciamento de páginas e segmentos: a paginação divide a memória em blocos de tamanho �xo chamados de páginas, enquanto a segmentação divide a memória em segmentos de tamanho variável (Delgado; Ribeiro, 2017). 3. Gerenciamento de armazenamento O gerenciamento de armazenamento envolve a organização e o controle dos dados arquivados em dispositivos de armazenamento, como discos rígidos e SSDs. - Sistema de arquivos: o SO utiliza sistemas de arquivos para organizar dados em dispositivos de armazenamento. Sistemas de arquivos como NTFS, FAT32 e EXT4 fornecem estruturas hierárquicas de diretórios e arquivos, além de métodos para acessar e gerenciar esses dados (Delgado; Ribeiro, 2017). - Alocação de espaço em disco: o gerenciamento de armazenamento abrange a alocação de espaço em disco para arquivos e diretórios. O SO deve lidar com a alocação de blocos de disco, a fragmentação e a recuperação de espaço quando arquivos são excluídos. - Controle de acesso: o SO aplica permissões e controle de acesso para proteger arquivos e diretórios. Isso garante que apenas usuários autorizados possam ler, escrever ou modi�car dados, ajudando a manter a integridade e a segurança dos dados armazenados (Silva; Borges, 2024). - Backup e recuperação: o gerenciamento de armazenamento também envolve a realização de backups regulares e a recuperação de dados em caso de falha ou perda. O controle de processos, memória e armazenamento são fundamentais para o funcionamento e�ciente dos sistemas operacionais. Cada uma dessas áreas lida com aspectos críticos da operação do sistema, assegurando que os recursos sejam alocados e utilizados de forma e�ciente, que a memória seja gerida adequadamente e que os dados sejam organizados e protegidos. Compreender esses conceitos é uma ação indispensável para pro�ssionais de tecnologia e para quem deseja melhorar o desempenho e a estabilidade dos sistemas computacionais. Vamos Exercitar? Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Descrição da situação-problema Agora que você já possui conhecimentos relacionados aos sistemas operacionais, está apto para responder à pergunta feita no início desta aula: por que o sistema operacional é necessário para que você consiga utilizar o computador e acessar seus programas e arquivos? Solução O sistema operacional é imprescindível porque atua como intermediário entre o usuário e o hardware do computador. Ele gerencia os recursos do sistema, como memória, processamento e dispositivos de entrada e saída, além de fornecer a interface grá�ca e os comandos necessários para executar programas. Sem o sistema operacional, o computador não consegue interpretar as instruções do usuário, tornando-se incapaz de efetuar qualquer tarefa útil. Saiba mais Para saber mais detalhes sobre os tipos de sistemas operacionais, faça a leitura do texto Fundamentos conceituais para a construção de sistemas operacionais baseados em conhecimento. Acesse o material sugerido por meio do link a seguir. MATTOS, M. M. Fundamentos conceituais para a construção de sistemas operacionais baseados em conhecimento. 2003. 382 f. Tese (Doutorado em Engenharia de Produção) – Universidade Federal de SantaCatarina, Centro Tecnológico, Programa de Pós-Graduação em Engenharia de Produção, Florianópolis, SC, 2003. Referências DALE, N.; LEWIS, J. Ciência da computação. 4. ed. Rio de Janeiro: LTC, 2010. DELGADO, J.; RIBEIRO, C. Arquitetura de computadores. Rio de Janeiro: LTC, 2017. MACHADO, F. B.; MAIA, L. P. Arquitetura de sistemas operacionais. 5. ed. Rio de Janeiro: Grupo GEN, 2013. MATTOS, M. M. Fundamentos conceituais para a construção de sistemas operacionais baseados em conhecimento. 2003. 382 f. Tese (Doutorado em Engenharia de Produção) – Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Engenharia de Produção, Florianópolis, SC, 2003. Disponível em: https://repositorio.ufsc.br/xmlui/handle/123456789/85476. Acesso em: 4 ago. 2024. https://repositorio.ufsc.br/xmlui/handle/123456789/85476 https://repositorio.ufsc.br/xmlui/handle/123456789/85476 https://repositorio.ufsc.br/xmlui/handle/123456789/85476 Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software. Porto Alegre: AMGH, 2021. SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Fundamentos de sistemas operacionais. Rio de Janeiro: LTC, 2015. SILVA, G. P. da; BORGES, J. A. dos S. Arquitetura e organização de computadores: uma introdução. Rio de Janeiro: LTC, 2024. TANENBAUM, A. S.; WOODHULL, A. S. Sistemas operacionais. Porto Alegre: Bookman, 2008. Aula 4 Fundamentos da Segurança da Informação Fundamentos da segurança da informação Este conteúdo é um vídeo! Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo. Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet. Dica para você Aproveite o acesso para baixar os slides do vídeo, isso pode deixar sua aprendizagem ainda mais completa. Olá, estudante! Temos presenciado uma série de incidentes de segurança relacionados ao vazamento de informações que podem causar diversos problemas. Diante desse cenário, podemos fazer os seguintes questionamentos: por que é necessário investir em segurança da informação? O que deve ser protegido? Por quê? Como? Essas são algumas das perguntas que responderemos a partir de agora. Investir em segurança da informação é essencial frente ao ambiente digital complexo e das ameaças cibernéticas em constante evolução. A necessidade de proteger dados sensíveis, sistemas e redes é justi�cada por diversos motivos, como proteção contra ameaças cibernéticas, preservação da reputação e con�ança, conformidade com regulamentações, proteção de ativos e propriedade intelectual, prevenção de interrupções operacionais e garantia da continuidade do negócio. Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Logo, prezar pela segurança da informação é importante para proteger os ativos e a reputação da empresa, cumprir as regras, evitar prejuízos �nanceiros e assegurar que todos con�em nela. Trata-se de uma medida indispensável para lidar com os desa�os constantes do mundo digital atual. Nesta videoaula, vamos investigar a segurança da informação, entendendo como protegê-la. Também descobriremos a melhor forma de se defender e lidar com os riscos associados à segurança da informação. Prepare-se para esta jornada de conhecimento! Vamos lá! Ponto de Partida Estudante, desejo boas-vindas a você! No mundo digital moderno, entender as especi�cidades da segurança da informação é essencial para proteger dados valiosos e manter a integridade das operações. Uma correta introdução aos princípios da segurança da informação é o ponto de partida ideal para a compreensão de como proteger informações contra ameaças cibernéticas. Tais princípios – con�dencialidade, integridade, disponibilidade, autenticidade e não repúdio – formam a base sobre a qual se constrói a segurança e�caz. Cada um desses conceitos corresponde a um aspecto fundamental da proteção de dados, garantindo que informações sensíveis se tornem acessíveis apenas para quem é pertinente, permaneçam precisas e estejam disponíveis quando necessário. Para aplicar esses princípios, é importante identi�car e preservar os elementos a serem protegidos, os quais incluem dados pessoais, informações �nanceiras, segredos comerciais e qualquer outro dado crítico que, se comprometido, pode causar danos signi�cativos. A proteção desses elementos exige uma abordagem meticulosa, que envolve não apenas a identi�cação dos dados críticos, mas também a implementação de estratégias e�cazes para a segurança dessas informações. É nesse contexto que entram os mecanismos de defesa. Trata-se das ferramentas e técnicas que aplicam os princípios de segurança para proteger os dados. Esses mecanismos abrangem desde políticas de segurança e controle de acesso até tecnologias avançadas, como criptogra�a e �rewalls. Além disso, incluem práticas preventivas, como atualizações regulares e treinamento de usuários, a �m de garantir que os sistemas estejam sempre protegidos contra novas ameaças. Para contextualizar sua aprendizagem, imagine a seguinte situação: a empresa TechGuard Inc. vem enfrentando di�culdades para proteger suas informações sensíveis após um recente incidente de vazamento de dados. A alta administração está preocupada com a integridade e a con�dencialidade das informações da empresa e precisa implementar práticas e�cazes de segurança da informação. Diante desse caso, quais são os princípios fundamentais da segurança da informação que a TechGuard Inc. deve adotar para melhorar sua proteção contra vazamentos e garantir a segurança de suas informações sensíveis? Disciplina SISTEMAS DE COMPUTAÇÃO E DE INFORMAÇÃO Ao explorar os temas mencionados anteriormente, você descobrirá como cada princípio e mecanismo se inter-relaciona para formar uma defesa robusta contra ataques e violações. A compreensão e a aplicação desses conceitos são práticas fundamentais para qualquer pro�ssional de tecnologia da informação, pois oferta as bases necessárias para construir sistemas seguros e efetivos. Estudar a segurança da informação é, portanto, não apenas uma questão de aprender sobre proteção de dados, mas também uma oportunidade de desenvolver habilidades críticas que são imprescindíveis no cenário digital atual. Bons estudos! Vamos Começar! Introdução sobre princípios da informação O princípio da segurança da informação pode ser de�nido como o processo de proteger a informação do mau uso tanto acidental como intencional, por parte de pessoas internas ou externas à organização, incluindo empregados, consultores e hackers (Zanin et al., 2018). Uma vulnerabilidade ou falha de segurança pode ser um bug em um sistema operacional ou aplicação, como pode acontecer em um servidor web ou no Windows. Um funcionário que divulga a sua senha indiscriminadamente também indica vulnerabilidade, ou mesmo uma ameaça mais perigosa, como um funcionário que sabota a base de dados da empresa por vingança, ou um espião industrial contratado para roubar informações da organização (Fontes, 2012). A segurança da informação é o processo de proteção das informações digitais contra o acesso não autorizado, a distorção ou o furto ao longo de todo o ciclo de vida (Agra; Barboza, 2019). Esse conceito abrange todos os aspectos da segurança da informação, contemplando desde a segurança física de hardware e dispositivos de armazenamento até controles administrativos e de acesso, bem como a segurança lógica de aplicações de software. Engloba, ainda, políticas e procedimentos organizacionais (Agra; Barboza, 2019). As estratégias de segurança de dados, quando implementadas corretamente, protegem os ativos de informações de uma organização não somente contra atividades de cibercriminosos, como também contra ameaças internas e erro humano, que ainda são as principais causas das violações de dados atualmente (Silva, 2023). Os princípios da segurança de informação são fundamentais para proteger dados sensíveis e sistemas contra potenciais ameaças. Tais princípios são geralmente representados pelos seguintes pilares: