0 Flares Twitter 0 Facebook 0 0 Flares ×

Pessoal, este é o primeiro post de muitos do blog Knoaam. A ideia é abordar assuntos de tecnologia e gestão com objetivo de compartilhar conhecimento através de materiais educativos. Espero que gostem e sintam-se a vontade para comentar. A cada semana será lançado um post, um Webinar ou um e-book. Acompanhe-nos também no Facebook e Twitter. O post de hoje será sobre software web para pessoas não técnicas.

1 ) Percepção da dificuldade

Eu comecei a trabalhar com tecnologia quando era adolescente e naquela época investi tempo e dedicação para entender o que era um software e como ele era estruturado. A medida que eu aprendia e tudo ficava claro na minha mente, notava que as pessoas tinham uma dificuldade enorme para entender sobre o assunto. Interessante que ao longo dos anos percebi o mesmo obstáculo em alguns departamentos de empresas de tecnologia.

Acredito que essa dificuldade ocorre pela falta de conceitos técnicos que são: intangíveis, abstratos e, sobretudo, complexos. Em virtude disso, o conceito de software formulado pelas pessoas é bem simples e diferente da realidade.

Com o objetivo de mostrar o outro lado dessa história  a proposta deste artigo é explicar de uma forma simples, resumida e não técnica o que é software, mais precisamente software web. Há um mundo atrás das telas e botões de um software que será desvendado nas próximas linhas.

2) O que é software web?

Softwares são sequencias de instruções executadas por um processador com propósito de resolver algum problema. Elas são criadas por meio de uma da linguagem de programação, método formado por regras sintáticas e semânticas que permite o programador especificar precisamente sobre quais recursos do computador vai atuar, quais dados manipulará, como eles serão armazenados, transmitidos e quais ações serão tomadas. Existe uma infinidade de linguagens e as mais usadas são: Java, C, C++, .net, Php e Pyton. Pode-se dizer também que todo software é um aplicativo que essencialmente resolve problemas externos. Um exemplo bem claro é a internet banking, usado para, entre outras coisas, pagar contas.

images

 Figura 1 - Software

Aplicativo web ou software web é um software projetado para funcionar na internet ou rede privada (intranet) que através de um navegador( chrome, firefox ou IE), instalado em um computador, mantém um canal de comunicação com outro computador, o servidor. O canal viabiliza a troca informações e é função do servidor capturar solicitações para: executá-las, processá-las e responde-las seguindo as regras de negócio escritas pelo programador.

tela de login

Figura 2 - Tela de login

3) Camadas
Um aplicativo pode ser dividido em três partes: camada de apresentação, camada de negócio e camada de dados.

camadas

 Figura 3 - Divisão em camadas do software

A primeira camada é formada por telas com textos, vídeos, formulários, imagens, links e botões. Ela é a única que o usuário consegue enxergar e tem o propósito de criar um canal de interação entre o mundo externo e o software. Um exemplo é a tela de login, em que o usuário ao preencher suas informações e acionar o botão acessar, recebe como resposta do servidor autorização para acessar o aplicativo.

A camada de negócio é responsável por implementar a lógica de negócio do software, isto significa, que o conhecimento que resolve um determinado problema ou automatiza uma área de conhecimento será transformado em algoritmos e depois traduzido em instruções. Pode-se definir um algoritmo como uma forma lógica de resolver um problema passo a passo a partir de padrões e regras. Na tela que usamos como exemplo é necessário o seguinte algoritmo para ela funcionar:

  1. Capturar login e senha do usuário;
  2. Se eles forem diferentes de vazio então verificar se existem no banco de dados;
  3. Se existirem verificar se a senha é válida ;
  4. Caso seja válida permitir acesso ao sistema;

A camada de dados é responsável por armazenar, num mecanismo conhecido como gerenciador de banco de dados, as informações que a camada de negócio manipula. Este mecanismo nada mais é que um software cujo o objetivo é proporcionar um ambiente eficiente para a recuperação e armazenamento das informações.

4 ) Exemplo prático

Com base no texto acima vamos ver como a tela de login deve ser desenvolvida. Vou chamá-la de funcionalidade de acesso por ser o termo mais apropriado. Em sua opinião o que esta funcionalidade deve ter? Eu inicialmente enxergo um titulo, um lugar para digitar o login, outro para digitar a senha e um botão de acesso para o aplicativo. Só isso basta? Somente com essas informações ela funcionará perfeitamente? Acredito que não,  então vamos, a partir de agora, esmiuçar cada camada deste exemplo.

A camada de apresentação deve ter uma tela, titulo que indique o nome do software, um label escrito login, outro escrito senha, uma caixa de texto para digitar login, outro para senha, um botão acessar, outro cancelar.

detalhes

Figura 4 - Detalhes da tela de login

A camada de negócio deverá implementar as seguintes regras:

  1. Verificar se o login existe;
  2. Verificar se a senha existe;
  3. Verificar se a senha está correta;
  4. Conceder acesso ao usuário, caso o usuário seja validado;
  5. Negar acesso ao usuário;
  6. Verificar se o usuário não digitou espaço em branco nas caixas de texto;
  7. Limitar o número de caracteres que o usuário digita em cada caixa de texto. Afinal, ele não pode digitar uma senha do tamanho de uma redação;
  8. Se o usuário já expirou, negar o acesso
  9. Se o usuário for inativo,  negar o acesso
  10. Se o usuário digitar a senha mais de três vezes o software deve bloqueá-lo

Veja que cada uma dessas regras serão transformadas em algoritmos e posteriormente em instruções.
A camada de dados, por sua vez, armazenará no computador as seguintes informações

  • Nome do usuário
  • Login
  • Senha
  • Email
  • Data que representa o tempo de validade do login
  • Indicativo que ele está ativo, inativo ou bloqueado

5 ) Conclusão

O exemplo acima mostra uma tela básica, porém existe uma complexidade que exige tempo e análise para cobrir todas as possibilidades.

Em suma, é necessário visualizar e considerar outras camadas de um software para entender completamente o assunto. Isso permitirá planejamentos mais assertivos,  custos mais próximos da realidade e uma comunicação mais clara entre profissionais da área e pessoas não técnicas.

Pessoal neste post nós aprendemos como um software web funciona e quais camadas ele têm. Vimos também que a camada de apresentação é a única que o usuário consegue enxergar. No final, mostramos um exemplo de uma tela de login que chamamos de funcionalidade de acesso.

Abraço a  todos e continuamos no próximo post.

 

0 Flares Twitter 0 Facebook 0 0 Flares ×