Portal IDEA

Introdução ao Desenvolvimento de Software

 INTRODUÇÃO AO DESENVOLVIMENTO DE SOFTWARE

 

Fundamentos da Computação e Lógica de Programação 

O que é Software? 

 

1. Conceito de Software

O termo software refere-se ao conjunto de instruções, programas e dados utilizados para operar computadores e realizar tarefas específicas. Ele é essencial para o funcionamento de qualquer dispositivo computacional, desde um simples celular até servidores complexos que sustentam a internet. De forma simplificada, o software é a parte lógica de um sistema de computação — ou seja, aquilo que não se pode tocar, diferentemente dos componentes físicos.

Segundo Pressman (2016), o software pode ser definido como "instruções que, quando executadas, produzem a função e o comportamento desejados, estruturas de dados que permitem a manipulação das informações e documentos que descrevem o uso e funcionamento do programa".

Sem o software, o hardware seria apenas uma carcaça sem funcionalidade. É ele quem dá “vida” às máquinas, permitindo que realizem operações úteis para os usuários.

2. Diferença entre Software e Hardware

É comum que pessoas iniciantes confundam software com hardware. Embora ambos sejam indispensáveis para o funcionamento de qualquer sistema computacional, representam elementos distintos:

  • Hardware: é a parte física do computador — placas, processadores, memórias, cabos, discos rígidos, entre outros. Tudo o que se pode ver e tocar faz parte do hardware.
  • Software: é a parte lógica, composta por programas, sistemas operacionais e dados. Ele é armazenado no hardware, mas não tem forma física.

Uma boa analogia é pensar em um DVD player (hardware) e o filme gravado no disco (software). O aparelho está pronto para funcionar, mas só executará alguma tarefa se tiver um conteúdo adequado inserido — neste caso, o software.

3. Tipos de Software

Os softwares podem ser classificados de diversas formas, mas uma das mais comuns distingue entre sistemas operacionais, aplicativos e softwares web.

3.1. Software de Sistema

Os softwares de sistema são aqueles responsáveis por controlar e gerenciar os recursos do computador. O principal exemplo é o sistema operacional, como Windows, Linux ou macOS. Ele atua como uma ponte entre o hardware e os programas utilizados pelo usuário, oferecendo uma interface e gerenciando tarefas como memória, dispositivos de entrada e saída, e armazenamento.

3.2. Software Aplicativo

Os softwares aplicativos são

softwares aplicativos são desenvolvidos para atender diretamente às necessidades do usuário. São exemplos: editores de texto (Microsoft Word), navegadores de internet (Google Chrome), planilhas eletrônicas (Excel), players de música, entre outros. Eles são instalados sobre o sistema operacional e desempenham funções específicas.

3.3. Software Web

Com o avanço da internet, os softwares web se tornaram extremamente populares. Eles são acessados por meio de navegadores e não exigem instalação no computador do usuário. Exemplos incluem Google Docs, redes sociais, plataformas de streaming (como Netflix) e sistemas de gestão online (como ERPs). A principal vantagem é a acessibilidade — basta ter conexão à internet para utilizá-los de qualquer lugar.

4. Ciclo de Vida do Software (Visão Geral)

O ciclo de vida do software descreve as etapas envolvidas desde a concepção de um sistema até seu descarte. Trata-se de um processo que ajuda a planejar, organizar e controlar o desenvolvimento de produtos de software com qualidade e eficiência.

Embora existam diversas metodologias (como o modelo em cascata, ágil ou espiral), os principais estágios incluem:

4.1. Levantamento de Requisitos

É a fase em que se busca entender o que o cliente ou usuário deseja. Os requisitos funcionais (o que o sistema deve fazer) e não funcionais (como deve se comportar) são documentados.

4.2. Análise e Projeto

Após a definição dos requisitos, elabora-se o modelo lógico do sistema. Nesta etapa, são criados diagramas, estruturas de dados e fluxos de informação que orientarão os programadores.

4.3. Implementação (Codificação)

Nesta fase, os desenvolvedores traduzem os modelos e requisitos em código-fonte usando linguagens de programação (como Python, Java, C++, etc.). É a construção efetiva do software.

4.4. Testes

O software é testado para verificar se funciona corretamente e se atende aos requisitos definidos. Testes manuais e automáticos são aplicados para encontrar e corrigir erros (bugs).

4.5. Implantação

Depois de testado, o software é disponibilizado para uso. Isso pode envolver a instalação em servidores, distribuição para usuários ou publicação online.

4.6. Manutenção

Mesmo após a entrega, softwares precisam ser atualizados, corrigidos e adaptados. A manutenção garante que o sistema permaneça funcional e seguro.

Considerações Finais

O software está presente em praticamente todos os aspectos da vida moderna — de caixas eletrônicos a carros, de smartphones a máquinas

hospitalares. Entender seus fundamentos é o primeiro passo para quem deseja ingressar no mundo da tecnologia, seja como programador, analista, gestor de projetos ou usuário consciente.

A clara distinção entre software e hardware, a compreensão de seus tipos e o conhecimento do ciclo de vida de desenvolvimento são fundamentais para qualquer profissional da área de tecnologia e, cada vez mais, para qualquer cidadão do século XXI.

Referências Bibliográficas

  • Pressman, R. S. (2016). Engenharia de Software (8ª ed.). McGraw-Hill.
  • Sommerville, I. (2011). Engenharia de Software (9ª ed.). Pearson.
  • Tanenbaum, A. S. (2009). Estruturas de Sistemas Operacionais. Pearson.
  • SEBRAE. (2020). O que é software e qual sua importância? Disponível em: https://www.sebrae.com.br
  • Kurose, J. F.; Ross, K. W. (2017). Redes de Computadores e a Internet. Pearson.


Algoritmos e Lógica de Programação

 

1. O que é um Algoritmo?

O termo algoritmo vem do nome do matemático persa Al-Khwarizmi e refere-se a um conjunto de passos finitos e bem definidos para resolver um problema ou executar uma tarefa. Na programação de computadores, um algoritmo descreve, de forma lógica e sequencial, as instruções que um programa deve seguir para produzir um resultado desejado.

De acordo com Manzano & Oliveira (2017), um algoritmo é "uma sequência finita de instruções que, obedecidas, levam à solução de um problema". Ele pode ser escrito de diversas formas, como linguagem natural, fluxogramas, pseudocódigos ou diretamente em linguagens de programação (como Python ou JavaScript).

No cotidiano, usamos algoritmos intuitivamente: seguir uma receita de bolo, montar um móvel ou realizar uma operação bancária são exemplos de situações em que executamos uma sequência de passos — ou seja, um algoritmo.

Características de um algoritmo:

  • Finitude: deve ter um fim claro.
  • Precisão: cada passo deve ser bem definido.
  • Sequência lógica: os passos devem seguir uma ordem coerente.

2. Estruturas Fundamentais: Sequência, Decisão e Repetição

Todo algoritmo é construído com base em três estruturas fundamentais de controle: sequência, decisão (condicional) e repetição (laços). Esses blocos formam a base da lógica de programação, ou seja, da forma como se organiza o raciocínio computacional.

2.1 Sequência

A estrutura mais simples de um algoritmo é a sequência, onde as instruções são executadas uma após a outra, na ordem em que são escritas.

Exemplo:

1.     Ler o nome do usuário

2.

     Ler a idade do usuário

3.     Exibir uma mensagem com nome e idade

Esse tipo de estrutura não exige condições ou repetições. É linear e direta.

2.2 Decisão (Condicional)

A decisão é utilizada quando é necessário escolher entre dois ou mais caminhos possíveis com base em uma condição. Em lógica de programação, as estruturas mais comuns são: if, else if, else.

Exemplo lógico:

Se a idade for maior ou igual a 18

Exibir "Maior de idade"

Senão

Exibir "Menor de idade"

Essa estrutura permite que o programa tome decisões de acordo com diferentes situações.

2.3 Repetição (Laços)

Laços são usados quando uma ação precisa ser repetida várias vezes, seja por um número determinado de vezes, ou enquanto uma condição for verdadeira. Os principais tipos são: for, while, do while.

Exemplo lógico:

Enquanto o número for menor que 5

Exibir o número

Aumentar o número em 1

Laços economizam código e evitam repetição manual de instruções.

3. Representação de Algoritmos: Fluxogramas e Pseudocódigos

Para facilitar a criação e compreensão de algoritmos, existem representações visuais e textuais que ajudam a planejar a lógica antes de se transformar em código.

3.1 Fluxogramas

Os fluxogramas são diagramas que representam visualmente os passos de um algoritmo. Eles utilizam formas geométricas padronizadas:

  • Retângulo: processo ou instrução
  • Losango: decisão (condicional)
  • Paralelogramo: entrada ou saída de dados
  • Elipse: início ou fim

Por exemplo, um fluxograma para verificar se um número é par ou ímpar poderia seguir o seguinte raciocínio:

  • Início
  • Ler número
  • Se número % 2 == 0, mostrar “Par”
  • Senão, mostrar “Ímpar”
  • Fim

Embora o fluxograma seja uma ferramenta visual, ele é extremamente útil para planejamento, especialmente para iniciantes.

3.2 Pseudocódigo

O pseudocódigo é uma maneira intermediária entre a linguagem natural e a linguagem de programação. Ele descreve os passos de um algoritmo de forma textual, com uma estrutura lógica próxima ao código real, mas sem depender da sintaxe de nenhuma linguagem específica.

Exemplo – Algoritmo para calcular a média de dois números:

Início


 Ler número1

 Ler número2

 media ← (número1 + número2) / 2

 Exibir "A média é", media

Fim

Essa abordagem é bastante útil no ensino de lógica, pois foca na estrutura do raciocínio, e não em detalhes técnicos da linguagem de programação.

4. Por Que Estudar Algoritmos e Lógica?

A lógica de programação é a base para qualquer linguagem de programação moderna. Quem

domina os princípios de algoritmos e sabe estruturar soluções, pode facilmente aprender diferentes linguagens e paradigmas de desenvolvimento.

Além disso, o raciocínio lógico é uma habilidade que se estende para outras áreas do conhecimento, ajudando na resolução de problemas, no planejamento de tarefas e na tomada de decisões de forma sistemática.

A construção de algoritmos também contribui para o pensamento computacional, que é a capacidade de formular problemas e soluções que podem ser implementadas por um computador — competência cada vez mais valorizada na educação e no mercado de trabalho.

Considerações Finais

Entender o que é um algoritmo e como utilizar as estruturas básicas de controle (sequência, decisão e repetição) é o primeiro passo para se tornar um programador ou profissional de tecnologia. Utilizando ferramentas como pseudocódigos e fluxogramas, é possível projetar soluções de forma clara e eficiente, antes mesmo de escrever uma única linha de código.

A lógica de programação é um alicerce universal: uma vez compreendida, permite ao estudante transitar por diversas linguagens, contextos e tecnologias. Assim como na matemática, seu estudo é cumulativo e essencial.

Referências Bibliográficas

  • Manzano, J. A. N. G.; Oliveira, J. C. F. (2017). Algoritmos: Lógica para Desenvolvimento de Programação de Computadores. Érica.
  • Forbellone, A. L. V.; Eberspacher, H. F. (2005). Lógica de Programação: A Construção de Algoritmos e Estruturas de Dados. Prentice Hall.
  • Sebesta, R. W. (2010). Conceitos de Linguagens de Programação. Pearson.
  • Cormen, T. H.; Leiserson, C. E.; Rivest, R. L.; Stein, C. (2009). Algoritmos: Teoria e Prática. Gen LTC.


Variáveis, Tipos de Dados e Operações

 

1. O Que São Variáveis?

No contexto da programação, variáveis são elementos fundamentais usados para armazenar informações temporárias na memória do computador, permitindo que o programa as manipule e reutilize ao longo da execução.

De forma simples, uma variável é como uma “caixa” com um nome, onde podemos guardar um valor (como um número, uma palavra, ou um resultado de operação) e depois acessar esse valor quando necessário. Cada variável precisa de:

  • Um nome identificador (por exemplo, idade, nome, notaFinal);
  • Um valor armazenado (como 25, "João" ou true);
  • Um tipo de dado, que determina o que pode ser armazenado naquela variável.

Em linguagens como Python, a declaração de uma variável pode ser feita sem especificar o tipo

explicitamente:

nome = "Ana"

idade = 20

aprovado = True

Já em linguagens como Java, é necessário declarar o tipo de dado:

String nome = "Ana";

int idade = 20;

boolean aprovado = true;

Variáveis são essenciais para qualquer programa, pois permitem guardar resultados de cálculos, controlar estruturas de repetição, comparar condições e muito mais.

2. Tipos de Dados

Os tipos de dados determinam o tipo de informação que uma variável pode armazenar. Embora diferentes linguagens tenham variações, os principais tipos de dados são:

2.1 Números (Inteiros e Reais)

  • Inteiros (int, integer): armazenam números sem casas decimais, como 5, -10, 0.
  • Reais (float, double, decimal): armazenam números com casas decimais, como 3.14, -2.5, 0.0.

Esses tipos são usados para cálculos matemáticos, contagens, estatísticas, entre outros.

2.2 Textos (Strings)

As strings são sequências de caracteres, usadas para representar nomes, frases, códigos e qualquer tipo de texto.

Exemplos:

nome = "Maria"

mensagem = "Bem-vindo ao curso!"

Strings podem ser manipuladas com várias funções, como concatenar (juntar), dividir, converter letras maiúsculas/minúsculas, entre outras.

2.3 Booleanos (Lógicos)

O tipo booleano representa apenas dois valores possíveis:

  • true (verdadeiro)
  • false (falso)

São usados para representar decisões e condições lógicas, como:

maior_idade = idade >= 18  # retorna True ou False

Esse tipo é a base das estruturas de decisão e controle de fluxo nos programas.

3. Operações Matemáticas

As operações matemáticas são fundamentais para a manipulação de dados numéricos. Elas seguem a lógica da matemática tradicional:

3.1 Operadores Aritméticos Comuns

Operador

Operação

Exemplo

+

Adição

2 + 3 → 5

-

Subtração

5 - 2 → 3

*

Multiplicação

4 * 2 → 8

/

Divisão

10 / 2 → 5.0

%

Módulo (resto)

7 % 3 → 1

**

Potência

2 ** 3 → 8

As linguagens de programação geralmente respeitam a ordem de precedência matemática (parênteses, exponenciação, multiplicação/divisão, soma/subtração).

4. Operações Lógicas

As operações lógicas são utilizadas para comparar valores e retornar resultados booleanos. Elas são muito usadas em estruturas de decisão (if, else) e repetição (while, for).

4.1 Operadores de Comparação

Operador

Significado

Exemplo

==

Igual a

5 == 5 → true

!=

Diferente de

5 != 4 → true

> 

Maior que

7 > 3 → true

< 

Menor que

2 < 5 → true

>=

Maior ou igual a

4 >= 4 → true

<=

Menor ou igual a

3 <= 2 → false

4.2 Operadores Lógicos

Operador

Significado

Exemplo

and

E lógico

True and False → False

or

Ou lógico

True or False → True

not

Negação

not True → False

Esses operadores permitem criar expressões complexas que combinam várias condições.

5. Boas Práticas no Uso de Variáveis

  • Nomes descritivos: use nomes que indiquem o que a variável armazena, como salarioMensal em vez de x.
  • Evite reusar variáveis com propósitos diferentes no mesmo código.
  • Cuidado com tipos de dados: não tente fazer operações matemáticas com textos ou concatenar textos com números sem conversão apropriada.

Em linguagens fortemente tipadas (como Java), erros de tipo geram mensagens de erro na compilação. Em linguagens fracamente tipadas (como JavaScript ou Python), esses erros podem aparecer apenas em tempo de execução.

Considerações Finais

O entendimento de variáveis, tipos de dados e operações é essencial para qualquer pessoa que estejam começando na programação. Esses elementos são a base sobre a qual se constrói toda a lógica dos algoritmos e sistemas computacionais.

Saber declarar variáveis corretamente, escolher o tipo de dado mais adequado e aplicar operações matemáticas e lógicas de forma precisa é o primeiro passo para escrever códigos eficientes, corretos e legíveis. Com essa base sólida, o estudante estará preparado para avançar em estruturas mais complexas, como funções, classes, estruturas de dados e bancos de dados.

Referências Bibliográficas

  • Manzano, J. A. N. G.; Oliveira, J. C. F. (2017). Algoritmos: Lógica para Desenvolvimento de Programação de Computadores. Érica.
  • Forbellone, A. L. V.; Eberspacher, H. F. (2005). Lógica de Programação: A Construção de Algoritmos e Estruturas de Dados. Prentice Hall.
  • Sebesta, R. W. (2010). Conceitos de Linguagens de Programação. Pearson.
  • Cormen, T. H.; Leiserson, C. E.; Rivest, R. L.; Stein, C. (2009). Algoritmos: Teoria e Prática. Gen LTC.
  • Downey, A. (2016). Think
  • Python: How to Think Like a Computer Scientist. Green Tea Press.

Quer acesso gratuito a mais materiais como este?

Acesse materiais, apostilas e vídeos em mais de 3000 cursos, tudo isso gratuitamente!

Matricule-se Agora