Anotações, resumos, trabalhos, provas e exercícios de Computação de Outros cursos

Engenharia de Software: Conceitos, Processos e Modelos

Computação9,98 KB

O que é Software?

É um produto que profissionais de software desenvolvem e ao qual dão suporte ao **longo** do prazo.

Definição de Software

Software consiste em:

  • Instruções que, quando executadas, fornecem características, funções e desempenho desejados;
  • Estruturas de dados que possibilitam aos programas manipular informações adequadamente;
  • Informações descritivas, tanto na forma impressa como na virtual, descrevendo a operação e o uso dos programas.

3 Princípios Básicos do Software

  1. Software desenvolvido sempre passa por um processo de engenharia;
  2. Software não se desgasta;
  3. Embora os softwares sejam construídos com base em componentes, a maioria continua sendo construída de forma personalizada (sob encomenda).

O que é Engenharia de

...
Continue lendo "Engenharia de Software: Conceitos, Processos e Modelos" »

Tipos de Diagramas UML: Estruturais e Comportamentais

Computação3,38 KB

A UML (Unified Modeling Language) oferece diversos diagramas para modelar sistemas de software, divididos em categorias estruturais e comportamentais. Abaixo, apresentamos os principais tipos e suas características:

Diagrama de Caso de Uso (Comportamental – Lógica)

  • Mais geral e informal, usado nas fases de levantamento e análise.
  • É consultado durante todo o processo de modelagem.
  • Serve de base para os demais diagramas.
  • O usuário obtém uma ideia geral do sistema, suas funcionalidades e serviços possíveis.

Diagrama de Classes (Estrutural – Física)

  • O diagrama mais usado e importante.
  • Serve de apoio para a maioria dos diagramas.
  • Determina atributos e métodos.
  • Mostra como as classes se relacionam e trocam informações.

Diagrama de Objetos (Estrutural

...
Continue lendo "Tipos de Diagramas UML: Estruturais e Comportamentais" »

h2 Shell Script: Guia Completo e Exemplos Práticos

Computação3,03 KB

Teste

Podemos associar a estrutura de decisão com as opções do comando test:

OPERAÇÕES COM STRING:

  • -n string: se o comprimento da string é maior que zero
  • -z string: se o comprimento da string é igual a zero

OPERAÇÕES COM INTEIROS:

  • n1 -eq n2: igual
  • n1 -gt n2: maior
  • n1 -lt n2: menor
  • n1 -le n2: menor ou igual
  • n1 -ge n2: maior ou igual

Shell Script

Shell é uma interface textual que interpreta os comandos existentes em um sistema operacional e os envia ao kernel, imprimindo posteriormente o resultado do processamento na tela. Embora haja ferramentas GUI disponíveis para gerenciar praticamente tudo em um sistema GNU/Linux, é importante ter conhecimento sólido sobre utilitários de linha de comando para se preparar melhor para trabalhar com qualquer...

Continue lendo "h2 Shell Script: Guia Completo e Exemplos Práticos" »

Como a Internet é Gerenciada: Organizações e Protocolos

Computação2,97 KB

Quem controla o funcionamento da Internet?

Não há um gerenciamento centralizado para a Internet. A Internet é a reunião de redes e organizações individuais, cada uma administrada por seu próprio usuário. Essas redes colaboram com outras redes para que as informações possam percorrê-las, formando assim a Internet.

Existe um acordo geral sobre procedimentos e protocolos, que se encontram em RFCs (Requests for Comments), sobre os quais os usuários concordam.

Organizações Chave na Gestão da Internet:

  • ISOC (Internet Society): Organização sem fins lucrativos de associados profissionais que facilita e sustenta a evolução técnica da Internet, dedicada a reforçar o desenvolvimento. A ISOC coordena:
...
Continue lendo "Como a Internet é Gerenciada: Organizações e Protocolos" »

Análise de Sistemas: Fundamentos, Modelagem e Metodologias

Computação10,88 KB

Análise de Sistemas

Aspectos Relevantes

  • Ter conhecimento de todas as necessidades nos níveis estratégico, tático e operacional, não apenas nos sistemas atuais, mas também nos sistemas futuros, sejam eles automatizados ou não.
  • A inadequação dos sistemas é comum porque os profissionais de informática tendem, durante a fase de desenvolvimento, a dar maior atenção aos aspectos pertinentes à eficiência ou ao desempenho, em detrimento dos aspectos relativos à eficácia ou à adequação dos sistemas às necessidades dos usuários.
  • Construção de sistemas efetivos, que sejam úteis para os usuários e para a empresa de modo global.

Especificação

É o detalhamento do comportamento de uma funcionalidade do sistema.

Problemas Comuns no Desenvolvimento

...
Continue lendo "Análise de Sistemas: Fundamentos, Modelagem e Metodologias" »

Glossário Essencial de Redes e Protocolos

Computação4,05 KB

Conceitos de Sistemas Operacionais

Processamento em Batch: O sistema operacional só processa uma tarefa após o término da outra.

Time Sharing (Compartilhamento de Tempo): Permite que o sistema operacional consiga executar mais de uma tarefa simultaneamente, alternando o uso da CPU.

História e Desenvolvimento de Redes

DARPA (Defense Advanced Research Projects Agency): O objetivo da DARPA era manter a superioridade tecnológica dos EUA e alertar contra possíveis avanços tecnológicos dos adversários.

RAND Corporation: Atendia às necessidades militares. Já apresentava um conceito de redes de PCs que se assemelha ao modelo de rede atual. (Contexto: Rede Militar)

NPL (National Physical Laboratory): Donald Davies propôs uma rede nacional de dados...

Continue lendo "Glossário Essencial de Redes e Protocolos" »

Estruturas de Dados e Algoritmos: Merge Sort, Quicksort, Busca Binária e Mais

Computação7,8 KB

Merge Sort

O merge sort, ou ordenação por mistura, é um exemplo de algoritmo de ordenação do tipo dividir-para-conquistar. Sua ideia básica consiste em:

  • Dividir: o problema em vários sub-problemas e resolver esses sub-problemas através da recursividade.
  • Conquistar: após todos os sub-problemas terem sido resolvidos, ocorre a conquista, que é a união das resoluções dos sub-problemas.

Como o algoritmo do Merge Sort usa a recursividade em alguns problemas, esta técnica pode não ser muito eficiente devido ao alto consumo de memória e tempo de execução.

Quicksort

O Quicksort ordena as duas sublistas de chaves menores e maiores recursivamente até que a lista completa se encontre ordenada. Os passos são:

  1. Escolha um elemento da lista, denominado
...
Continue lendo "Estruturas de Dados e Algoritmos: Merge Sort, Quicksort, Busca Binária e Mais" »

Conceitos Fundamentais de Java: Interfaces, Pacotes e Mais

Computação2,65 KB

Interfaces

  • Maneira que o Java utiliza para implementar a herança múltipla, permitindo que uma subclasse herde características de duas classes distintas.
  • Pode gerar conflitos de nomes de atributos ou métodos.
  • Interfaces não contêm atributos.
  • Os métodos da interface não contêm nenhuma implementação ou corpo (comandos).
  • Usa-se interface no lugar de uma classe abstrata quando não há implementação default a herdar.
  • Uma classe pode implementar quantas interfaces precisar.

Pacotes



* Bibliotecas que contém classes encapsuladas

* Estruturas de diretórios utilizadas para organizar classes

* Possibilita Reutilização do software


APPLET

* Programa Java com recursos gráficos que não é executado com o java.exe, mas num browser ou no appletviewer....

Continue lendo "Conceitos Fundamentais de Java: Interfaces, Pacotes e Mais" »

Fundamentos de Sistemas Operacionais: Threads, Memória e I/O

Computação17,12 KB

Gerenciamento de Threads e Processos

Monothread vs. Multithreads

Monothread

Neste ambiente, cada processo possui seu próprio espaço de endereçamento. Consome muitos recursos do sistema, pois o sistema precisa alocar recursos no início e no término do processo. O compartilhamento de espaço de endereçamento é um desafio, pois como cada processo tem seu próprio espaço, a comunicação entre processos fica mais lenta, sendo necessária a utilização de mecanismos como semáforos, pipes, compartilhamento de memória, etc.

Multithreads

É um ambiente com múltiplos threads, e pode ser definido como uma sub-rotina de um programa executada de forma assíncrona. Desta forma, um ambiente multithread possibilita a execução concorrente de sub-rotinas...

Continue lendo "Fundamentos de Sistemas Operacionais: Threads, Memória e I/O" »

Conceitos Essenciais de Sistemas Operacionais: Memória, Disco e Processos

Computação12,13 KB

Como funciona o DMA (Direct Memory Access)?

O DMA (Direct Memory Access) é uma característica essencial dos computadores modernos. Normalmente, o único componente que acessa a memória RAM da máquina é o processador. O recurso DMA permite que outros componentes também acessem a memória RAM diretamente, o que aumenta o desempenho na transferência de grandes quantidades de dados. Caso isso não fosse possível, a CPU teria que copiar todos os dados da fonte até o destino, o que é bem mais lento do que copiar blocos de dados dentro da memória. Além disso, durante a cópia dos dados, a CPU ficaria indisponível para outras tarefas.

Links Simbólicos e Hard Links em Sistemas de Arquivos

Em um sistema de arquivos baseado em i-node, a diferença...

Continue lendo "Conceitos Essenciais de Sistemas Operacionais: Memória, Disco e Processos" »