1 2 3 4
domingo, 18 de setembro de 2011


Mais uma matéria da equipe Atualizados e Antenados está pronta. Após descrevermos sobre os segmentos industriais do nosso Estado, na primeira tarefa, desta vez, vamos falar para você leitor, sobre o processo de desenvolvimento de um software, pela indústria catarinense da tecnologia. Foi uma tarefa complicada, porém como dizem os organizadores deste concurso "Complicado com certeza está. Pois é o DESAFIO do Conhecimento".


Enfim pessoal, para vocês terem uma ideia, estávamos preparando um post sobre a fabricação de um roteador, com vídeos e tudo mais, vários links interessantes a respeito deste aparelho, ainda, depoimentos de pessoas influentes, porém, faltou-nos o primordial, estávamos aguardando o retorno de um contato que fizemos com uma indústria nacionalmente conhecida, que havia oferecido-nos ajuda na descrição do processo produtivo. Pode notar-se, que esta ajuda não chegou, então, sem termos condições de concluirmos a nossa matéria sobre os roteadores, na noite do dia 16/09, anulamos-na e partimos para a descrição dos processos de desenvolvimento de um software. Vai aí o conteúdo que conseguimos preparar:


codigo_binario"Software, logiciário ou suporte lógico é uma sequência de instruções a serem seguidas e/ou executadas, na manipulação, 
redirecionamento ou modificação de um dado/informação ou acontecimento. Software também é o nome dado ao comportamento exibido por essa seqüência de instruções quando executada em um computador ou máquina semelhante além de um produto desenvolvido pela Engenharia de software, e inclui não só o programa de computador propriamente dito, mas também manuais e especificações. Para fins contábeis e financeiros, o Software é considerado um bem de capital."


A definição de software descrita acima, provém do site Wikipédia, porém, é uma explicação que muitos podem considerar "complicada demais". Então vai aí a definição do dicionário Michaelis da língua portuguesa que também define a palavra de origem inglesa, devido a padronização: 


"Conjunto de todos os recursos humanos, lógicos e mesmo de instalação e de organização, com os quais se explora uma máquina, equipamento ou sistema."


Ainda está difícil de compreender o conceito de software? Então vamos tentar simplificar... No nosso dia-a-dia, softwares são os conhecidos programas de computador, englobando assim, jogos, sistemas operacionais, sistemas usados no comércio, etc. Conseguiu compreender agora? Neste momento, por exemplo, você está fazendo o uso de diversos softwares, simplesmente para ler este post. Acreditamos que estejam sacudindo a cabeça, negando esta nossa afirmação, ou não? Bem, vamos explicar então. Certamente você está conectado de um computador ou dispositivo móvel, este mesmo, utiliza-se de um sistema operacional, por mais simples que seja, como no caso dos celulares, porém este sistema operacional trata-se de um software trabalhosamente desenvolvido por técnicos.
Continuando, vamos dar uma ênfase maior ao caso de você estar conectado por um computador de mesa ou notebook. A maioria dos computadores possui alguma versão do Sistema Operacional Microsoft Windows (2000, XP, Vista, 7...), este sistema é um aglomerado de softwares, digamos que ele é um software muito complexo, que  só pode ser desenvolvido devido ao envolvimento de diversos técnicos, e muito estudo.

Em seguida, para chegar até esta postagem, você certamente fez o uso de um Navegador de Internet, figurando entre os mais populares o Internet Explorer, Firefox, Opera, Safari, e a sensação do momento, o Google Chrome, que são, também, softwares bastante complexos. Pode não parecer, porém estes navegadores foram desenvolvidos e aprimorados ao longo de muito tempo, por diversos profissionais.
Conseguiu compreender agora o porquê de afirmarmos que você está fazendo o uso de um software?
No dia-a-dia, por exemplo, quando vamos ao supermercado, ao passarmos nossas compras no caixa, um enorme aparato de softwares faz com que obtenhamos a nota final. O processamento de todos os preços, de todos os códigos de barra, a geração do cupom fiscal, dentre outros processos que ocorrem, são feitos através de softwares especificamente desenvolvidos para aquele tipo de empresa.
Os jogos de computador, também são grandes exemplares da indústria de softwares, (ao que notamos no site do desafio, outras equipes vão dar uma ênfase maior à indústria de jogos, portanto, não vamos detalhar). Você deve estar se perguntando como é que ocorre esse desenvolvimento de software do qual falamos, pareceu um bicho de sete cabeças para você? Na realidade, não é tão complicado assim de se realizar o desenvolvimento de um software, os exemplos que citamos fazem parte de um grupo mais complexo.


Vamos então entender as etapas da produção de um software de gestão empresarial:






Nesta primeira etapa é feito o levantamento das necessidades que o software deverá atender, desta forma, define-se de que forma o software será desenvolvido, para poder atender estas necessidades.
Algumas vezes, os desenvolvedores ignoram esta primeira etapa, partindo diretamente para a parte do desenvolvimento, muitas vezes, isto acaba provocando falhas no produto final, deixando de atender todas as necessidades existentes. O processo de análise possui algumas subdivisões:


Levantamento de informações


É nesta etapa que o analista realiza contato com o usuário, coletando uma série de informações que lhe serão úteis no desenvolvimento do produto final. É conforme os detalhes requeridos pelo usuário, que o analista pode alterar completamente o projeto que já tinha em mente.
Muitas vezes, o usuário não é capaz de dar todas as informações das quais o analista precisa, tendo apenas informações sobre o seu trabalho atual, desta forma, o analista tem de ouvir outras pessoas além do usuário, visando o futuro da empresa.




Desenho de processo


Nesta etapa, é realizada uma representação gráfica, à partir dos dados colhidos anteriormente, para demonstrar o funcionamento de determinado negócio. Cabe ao usuário aprovar ou rejeitar o desenho de processo, caso ele não seja aprovado, o analista deve refazer as etapas.






Modelagem de dados


Esta etapa é feita tão logo que se dispõem do desenho de processo. A modelagem de dados também requer as dados do levantamento de informações, sendo que, se não forem suficientes, o analista deverá voltar à primeira etapa para coletar mais conteúdo.
O modelo de dados possui uma estrutura muito mais complexa à do desenho de processo, sendo que depende do analista a decisão de apresentá-lo ou não ao usuário. Após o modelo ser aprovado por uma equipe especializada, é gerado um script do banco de dados.






Modelagem do sistema

Consiste no desenvolvimento do sistema que manipulará os dados gerados na etapa anterior. Nesta etapa, são obtidas as descrições gráficas dos módulos que serão gerados.
Cada etapa da análise depende da outra. A modelagem do sistema pode interferir em todas as etapas anteriores, podendo até exigir que o analista retorne ao levantamento. Outro dever do analista é supor ao cliente diversas situações inesperadas em que possa haver uma exigência de outras funções vindas do software.




Prototipação

Após as etapas descritas acima, obtêm-se uma amostra do software. O protótipo é basicamente um modelo primário do sistema que é encaminhado para aprovação por parte do usuário.



Definições finais

Após obter a aprovação do desenho de processo e do protótipo, conclui-se a fase de análise.




Veja abaixo algumas curiosidades sobre a etapa de análise, descritas pelo técnico Paulo Oliver:

"A etapa de análise na verdade não termina. Mesmo durante as etapas seguintes a análise continua a ocorrer, se aprofundando mais tecnicamente no sistema. Eventualmente descobre-se na etapa de codificação novas características do negócio que alteram definições feitas em análise;"

"O analista é, em geral, um gerente de projetos. Após a etapa de análise ele estará gerenciando os desenvolvedores na execução da especificação do sistema."

"O analista é em geral um ex-desenvolvedor, mas que adquiriu um linguajar de negócios que permite que ele se comunique com os usuário na mesma língua destes, podendo desta forma extrair informações durante o levantamento."

"Como ex-desenvolvedor é comum que o analista não esteja 100% atualizado com as tecnologias atuais. Desta forma nem sempre o analista consegue realizar as melhores opções em termos de tecnologia para o projeto e, nos piores casos, o analista chega a ter dificuldade de falar com os desenvolvedores. Neste caso é necessária a presença de um outro personagem, o arquiteto do sistema, que tem por finalidade definir as tecnologias a serem aplicadas para execução do projeto, definir as metodologias de desenvolvimento a serem usadas pelos desenvolvedores e fazer a tradução entre o analista e os desenvolvedores quando necessário. A equipe de suporte deve trabalhar em conjunto do analista ou do arquiteto do projeto na definição física do projeto, iniciando uma especificação de equipamentos que serão necessários ao projeto."



A codificação consiste no desenvolvimento propriamente dito do software em questão.



Escrever o código



Qualquer alteração que venha a ser necessária no modelo de dados deve passar pelas mãos da equipe do banco de dados, e em seguida, há a geração de um script evolutivo.

É comum, que em cursos como o de Ciências da Computação, os estudantes desenvolvam este tipo de projetos, à exemplo, o universitário Cristóvão Schvaab, nos disponibilizou um script criado por ele durante o curso, que visa projetar a média salarial de um indivíduo. Veja a seguir o modelo:

#include <stdio.h>
#include <stdlib.h>


       struct pesquisa{
       int idade;
       char sexo;
       int salario;
       int nfilhos;
       };
     
        struct pesquisa dadospessoais[3];
              int i;
              float mediasal=0;
              float mediafil=0;
           
              for(i=0;i<3;i++){
               printf("digite a quantidade de filhos: ");
               scanf("%d",&dadospessoais[i].nfilhos);
               mediafil=mediafil + dadospessoais[i].nfilhos);
             
               printf("digite o valor do seu salario: ");
               scanf("%d",&dadospessoais[i].salario);
               mediasal=mediasal + dadospessoais[i].salario);
             
             
     }


 main()
{
  printf(" \nA media do salario dos habitantes eh de: %.2f", mediasal/3);
  printf("\nA media de filhos dos habitantes eh de: %.2f", mediafil/3);


 for (i=0;i<3;i++){
 if (dadospessoais[i].salario<mediasal/3){
     printf("\nO entrevistado com idade %d possui salario abaixo da media",dadospessoais[i].salario);
     }
 if(adospessoais[i].nfilhos>cmediafil/3){
     printf("\nO entrevistado com idade  possui numero de filhos acima  da media, com %f filhos.",dadospessoais[i].nfilhos);
      }
   
  system("PAUSE");   return 0;
}
Acima, você pode ver um script simples (para os profissionais), sem muitos recursos, porém, desenvolvido detalhadamente para seu correto funcionamento. Veja no link a seguir  um outro modelo de código que encontramos na net, para calcular números primos:  http://www.hardware.com.br/comunidade/programa-calcular/665498/

Durante o período de desenvolvimento, o analista direciona seu trabalho principalmente ao gerenciamento do projeto.


Ambiente

Os desenvolvedores necessitam de um ambiente adequado para o seu trabalho, possibilitando uma rápida solução de eventuais problemas.
Os desenvolvedores necessitam do apoio de uma equipe de suporte.


São diversos os tipos de testes realizados após a codificação, mas vamos lá pessoal, iremos descrever  para vocês...











Teste de bancada

Notamos que o teste de bancada é o único que é feito no ambiente de desenvolvimento, os outros, são executados num lugar denominado de ambiente de qualidade.




Teste de qualidade

É um teste bastante minucioso, o mais detalhado de todos os testes. E da mesma forma que os demais, é realizado por profissionais especializados, os testers.






















O objetivo dos testers é contrariar as ações proposta pelo software, para desta forma ver quais serão as respostas emitidas pelo sistema.


Teste de stress

Este teste, conforme constatamos em nossas pesquisas, é realizado com o intuito de verificar a
funcionalidade do software em uso constante.




Teste de segurança

Consiste em tentativas de burlar o sistema, através de hackers profissionais, para testar a sua vulnerabilidade.


























Homologação

Na homologação, o sistema é disposto ao usuário para que se façam testes, obtendo uma posterior aprovação ou reprovação, consequentemente, fazendo reparos necessários no sistema.










Na etapa de implantação, o analista, em conjunto com a equipe de suporte e do banco de dados, devem focar seu trabalho no treinamento do usuário final, trabalhar também com outras aplicações existentes, e também, se necessário, migrar os dados do banco de dados. Devido ao envolvimento de todos estes profissionais, o software fica quase que inexposto à falhas.



Ao término do período de implantação do sistema, começa a atuação da equipe de produção que tem por funções:
Dispor suporte aos usuários;
Identificar possíveis problemas de scripts na produção;
Conhecer todas as características do sistema, possibilitando que futuramente auxilie na criação de uma segunda versão;
Informar à equipe de desenvolvimento problemas de performance do sistema.

Desta forma, conclui-se o processo de desenvolvimento de um software, após obter-se a aprovação do usuário.


Uma das grandes empresas que constituem a indústria de softwares catarinense, é a Sysmo, especializada em softwares de automação empresarial, possui sua sede em São Miguel do Oeste e filial em Itajaí, atendendo a todo o mercado nacional. Encontramos um vídeo bastante interessante sobre as atividades desta empresa, deem uma olhadinha:


Acesse o site da empresa e saiba mais: http://www.sysmo.com.br/sysmo/


Outra empresa destaque em desenvolver sistemas de gestão empresarial no nosso Estado é a Senior Sistemas, que possui sua sede em SC e uma filial em SP, veja o vídeo institucional  e do sistema sapiens, desenvolvido pela empresa:


Acesse o site da empresa e saiba mais: http://www.senior.com.br/



Bom, agora que já conseguimos descrever para vocês as etapas de produção de um software comercial, vamos falar um pouco sobre os demais tipos de softwares.
Atualmente, podemos encontrar na internet diversos softwares, programas de computador, gratuitos para download. O maior site, ou pelo menos, o mais popular e completo, é o BAIXAKI, um site onde você encontra todos os tipos de softwares. Veja aí o top semanal de softwares mais baixados em tal site:


Top Semanal

Acreditamos que deva ter estranhado alguns dos programas acima listados, ou não? Pois é, todos estes são softwares. Com isso, esperamos que você tenha conseguido compreender melhor o conceito de software.

Não podemos deixar de mostrar para vocês o artigo escrito pelo André Batera no site onúcleo, ele descreve de forma descontraída sobre os softwares disponíveis na internet, veja a seguir:


"Sem dúvida muitos usuários utilizam ou ao menos já utilizaram versões não-oficiais de softwares proprietários. Essas versões também são conhecidas como "crackeadas" ou "piratas", geralmente distribuídas por profissionais da área de programação. Conheça algumas curiosidades, riscos e problemas dessas versões.
Na internet é possível encontrar uma grande variedade de aplicativos disponíveis para download relacionados às mais variadas finalidades e categorias distintas. Há um grande acervo de softwares para diversas funções, desde o uso pessoal até o profissional. O grande obstáculo para os usuários é que geralmente esses softwares são proprietários, ou seja, precisam ser pagos para conceder a liberdade para usá-lo por um longo prazo ou ter acesso a todas as suas funções. Para esclarecer melhor, vou revisar os tipos de distribuição mais comuns que encontramos na internet:
Shareware - versões com esse tipo de distribuição permitem que o usuário baixe o software gratuitamente mas o use por um prazo de validade determinado, normalmente um mês ou menos. O objetivo dos desenvolvedores em criar esse tipo de versão é submetê-lo a uma avaliação dos usuários. Caso ele se interesse pelo programa e queira estender o prazo de uso, terá que pagar pela licença do software.
Demo - ao contrário dos que algumas pessoas pensam, "Demo" nesse contexto não é a abreviação da palavra "Demônio"!!! Alguns usuários chegam a dizer que os programas Demos não funcionam direito porque são do inferno, hahaha! Pessoal, a palavra "Demo" significa "Demonstração", e como o próprio nome diz, o software limita suas próprias funções, para que este seja apenas testado pelo usuário. Diferente do Shareware, as versões Demo não possuem um prazo de validade de uso, porém apenas as funções básicas do software ficam disponíveis. Para ter acesso a todas as opções e funcionalidades, é necessário comprar a licença do aplicativo.
Trial - esse tipo de versão possui um outro tipo de limite: não é permitido salvar o trabalho ou o arquivo criado pelo programa. No caso de jogos, o usuário não consegue salvar o ponto onde parou para continuar futuramente. Os desenvolvedores aplicam esse tipo de distribuição em softwares para funções importantes, como recuperação de arquivos deletados, reparador de arquivos corrompidos ou restauração de banco de dados. Normalmente o usuário fica livre para visualizar os resultados, mas não tem permissão para salvá-los. Para isso, o usuário precisa comprar o programa.
Freeware - versão livre para download e utilização, sem restrições. Algumas empresas (de anti-vírus, por exemplo), usam a estratégia de criar duas versões do mesmo software: uma grátis e outra que exija compra, normalmente chamada de Professional. Essa versão, lógico, possui muito mais recursos e funcionalidades quando comparada com a versão gratuita.
Dentro de todo esse contexto de distribuição, muitos crackers começaram a abrir o código-fonte dos softwares para burlar o sistema de limitação. Através de técnicas e programas específicos, eles são capazes de decodificar o arquivo EXE do software e descobrir qual o tipo de algoritmo utilizado para verificar se há uma licença válida para utilização. Mesmo as funções de criptografia são expostas aos crackers, que se encarregam de criar aplicativos para quebrar a limitação do software, popularmente conhecidos como cracks. Para alguns softwares, a inserção de um número de licença (chamado Serial), já é o suficiente para liberar todas as funções do programa. Para isso, os crackers desenvolvem um executável conhecido como keygen (da abreviação Key Generator - Gerador de Chave), capaz de gerar números de licenças aleatórios válidos.
Para tentar evitar esse problema, os desenvolvedores passaram a programar os algoritmos de verificação em arquivos DLL externos (biblioteca de funções). A princípio foi funcional, mas não demorou muito para que os crackers descobrisse a façanha. Logo conseguiram quebrar o arquivo e criar outra versão da DLL, acompanhada com o crack. Em uma outra tentativa, os desenvolvedores utilizaram uma estratégia de integrar um código de ativação ao número de licença. Assim era necessário que o usuário adquirisse a licença, enviasse ao site da empresa e recebesse em retorno um código de ativação. E mais uma vez a tentativa falhou: os crackers criaram versões de keygens capazes de gerar números de licença e ativação simultaneamente. Em outros casos, eles modificavam o próprio executável do programa para substituir o arquivo original após a instalação do software, comumente encontrado em jogos.
Hoje qualquer usuário consegue encontrar versões crackeadas de softwares proprietários na internet, principalmente em redes P2P, como o eMule. Mas é aqui que entra o perigo!
Ao notar que muitos usuários precisavam de cracks para os programas, crackers mal intencionados começaram a criar vírus e espalhá-los como supostos cracks de softwares de alta procura pelos usuários. Ao tentar crackear o programa, o usuário na verdade instalava um vírus no computador, capaz de abrir brechas de segurança, roubar informações ou causar outros danos ao sistema. Devido à utilização dessa técnica, atualmente o risco de baixar cracks se tornou muito alto, mesmo com as definições de anti-vírus atualizadas, visto que cracks e keygens não passam de executáveis normais.
Portanto, aqui vai uma dica! Se você utiliza algum software proprietário para trabalhar ou para uso pessoal, opte por comprar a licença do software, mesmo que o preço seja relativamente caro. Assim você colabora tanto para a sua segurança quanto pela ética de privilegiar os verdadeiros desenvolvedores do software. Em muitos casos, quando o usuário realmente paga pela versão do software, ele adquire vantagens como atualização automática, suporte 24 horas, e a possibilidade de avaliar outros aplicativos da mesma empresa. A Microsoft já vem tomando algumas providências quanto à pirataria de software - uma atualização do Windows marcada como "Notificação de Vantagens do Windows Original" é baixada automaticamente no computador, responsável por verificar a autenticidade do Windows e alertar o usuário caso a cópia não seja original.
Outra alternativa é optar pelo software livre, que não exige pagamento para utilização e pode ser usado de forma totalmente legal perante à sua licença."



Gente, foi apresentada na semana passada  a versão pré-beta do tão aguardado Sistema Operacional Microsoft Windows 8. O sistema provém de uma série de aperfeiçoamentos e alterações significativas principalmente no layout em relação ao seu antecessor. Foi desenvolvido para ser utilizado principalmente, porém não exclusivamente em computadores de toque, os tablets. Nós demos uma olhada em diversos materiais publicados a respeito do novo Windows, podemos dizer que ele parece ser maravilhoso. Olha aí esse vídeo publicado pelo baixaki:



Para ver muito mais detalhes deste novo sistema e para fazer o download da versão pré-beta clique no link a seguir, e veja uma matéria completa publicada no baixaki:  http://www.baixaki.com.br/download/windows-8-developer-preview.htm


http://www.portalits.com.br

Estão lembrados do começo desta postagem, onde citamos a indústria de jogos? Então, os jogos são a exemplo dos demais,  softwares bastante utilizados mundo afora, estes, como forma de lazer. Você também é um louco por jogos, ou tem curiosidade em conhecê-los? Então você não pode deixar de ver a revista Its, edição #78 do mês de setembro. Nela, você encontra um encarte especial escrito pela Melina, sobre os games, não relacionando à produção, mas sim aos jogos no seu dia-a-dia, é muito interessante. Caso você não disponha, ou não consiga acesso à revista impressa, da uma clicada no link a seguir e veja uma versão da revista em PDF http://www.portalits.com.br/img/Revistas/78.pdf 



FOI RAPIDINHO MAS FOI BOM... 

É isso pessoal, nós da equipe atualizados e antenados esperamos que tenham gostado da nossa postagem, (concluída em dois dias), esperamos ter ampliado seus conhecimentos, da mesma forma que ampliamos os nossos com a elaboração de tal. Diante das circunstâncias, sentimo-nos orgulhosos pela matéria publicada, acreditamos que nossa força de vontade foi um fator fundamental para não acabarmos desistindo nesta segunda tarefa, tendo em vista as dificuldades encontradas pela equipe. Aguardem que já já tem mais uma postagem para vocês. Abraço forte, obrigado pela atenção!


Fontes: Diagrama - OLIVER, Paulo; Wikipédia, Baixaki, Uol tecnologia; Sysmo sistemas; onúcleo; Portal Its.

0 comentários:

Postar um comentário

Olá! Para nós é muito importante que você deixe o seu comentário sobre o conteúdo apresentado neste blog. Após a realização de seu comentário, ele será encaminhado à administração do blog para posterior publicação. Agradece a equipe: Atualizados e Antenados!

1 2 3 4
Blinkie Text Generator at TextSpace.net