terça-feira, 18 de maio de 2010

Tecnologia 3G

A tecnologia 3G é uma tecnologia sem-fio que tem sido bastante debatida ultimamente, ou seja, a terceira geração de telefonia móvel. A primeira foi a dos celulares analógicos e a segunda dos digitais. Como proporciona uma transmissão de dados mais veloz, a tecnologia 3G torna possível às empresas oferecerem pacotes de serviços complexos a custos acessíveis. É uma das possibilidades de conexão de banda larga sem fio. O sistema permite que voz, dados e imagens sejam transmitidas e acessadas em alta velocidade, via rede celular. Com a 3G é possível se conectar a Internet e desfrutar de velocidades comparáveis à banda larga convencional no seu computador ou laptop, utilizando modems ou cartões de dados. Com um smartphone 3G, você tem acesso a emails e pode navegar pela Internet com muito mais velocidade; no celular a 3G torna muito mais rápidos os downloads de arquivos como jogos, músicas, vídeos e ainda permite aplicações como vídeo-chamada.
Entre os serviços prestados estão internet banda larga, TV no celular, jogos tridimensionais e download de músicas e vídeos com mais rapidez. Os celulares com a tecnologia 3G já estão disponíveis no mercado e algumas operadoras passaram a divulgar e oferecer esse serviço em áreas restritas do território nacional. O Japão foi o primeiro pais a oferecer 3G em todo o país, sua implantação começou em 1999. As primeiras redes 3G na Europa foram lançadas em 2003 no padrão. No Brasil a Vivo foi a primeira operadora de celular com uma rede 3G em operação.

A tecnologia 3G também tem suas desvantagens. A sua disponibilidade não é completa, ou seja, apenas em grandes cidades as operadoras oferecem esse serviço; Por enquanto, os preços dos pacotes de dados estão abusivos para a maioria das pessoas. A qualidade do serviço é instável, mesmo nas cidades onde há o serviço, a velocidade da conexão ainda pode deixar a desejar; As torres que transmitem o sinal tem uma capacidade limitada de acordo com o número de usuários atendidos; A localização geográfica do usuário interfere na recepção do sinal; A rede 3G demanda uma energia maior do celular, fazendo com que a bateria acabe mais rápido. Por exemplo, num celular onde a bateria duraria 4 horas conectado à rede GPRS, durará de 3 à 3,5 horas, na rede 3G.

domingo, 18 de abril de 2010

Modelo cascata

MODELO DE PROCESSO CLÁSSICO OU CASCATA

Wesley Torres Galindo

Email: wesleygalindo@gmail.com.br

RESUMO: O modelo Clássico ou Cascata é um dos modelos de processos de desenvolvimento de software, com o objetivo de estruturar uma ordem no processo de desenvolvimento. A ideia principal que o dirige é que as diferentes etapas do desenvolvimento seguem uma sequência. O artigo mostrará a estrutura e as etapas deste modelo e algumas vantagens e desvantagens, detalhando cada um delas.

ABSTRACT: The model classic or cascade is a models of process of software development, with the objective of structuring an order in the development process. The main idea is that the addresses that the various stages of development follow a sequence. The article will shows the structure and stages of this model and some advantages and disadvantages, detailing each.

A Engenharia de Software surgiu para corrigir problemas relacionados ao desenvolvimento de projetos de softwares, a partir desse surgimento foram criados, modelos de processos de desenvolvimento de software (PREESMAN; 95), dentro desses modelos existe o modelo em cascata, que é um modelo de engenharia de software projetado para ser aplicado no desenvolvimento de software. O modelo em Cascata é referência para muitos outros modelos, servindo de base para muitos projetos. Comparados com os outros modelos este é o mais rígido e menos administrativo (NEGRÃO, 2007), porém, existem problemas relacionados a ele. Às vezes os clientes não conseguem relacionar todos os requisitos de uma só vez no inicio do projeto. Logo, isto atrasa o desenvolvimento do software, e existem dificuldades de fazer alterações quando o processo está avançado. Para solucionar problemas que aparecem neste processo, seria necessário seguir o fluxo sequencial que este modelo propõe e trabalhar dentro do esboço pré-determinado, fazendo sempre uma revisão ao final de cada etapa para evitar possíveis problemas que irá prejudicar no final do projeto. Este modelo torna o processo de desenvolvimento estruturado.

Um modelo de processo de software é uma representação abstrata de um processo de software. Cada modelo de processo representa um processo a partir de uma perspectiva particular, de uma maneira que proporciona apenas informações parciais sobre o processo (SOMMERVILLE; 1995). O modelo Clássico ou Cascata foi proposto por “Royce (1970)”, esse modelo foi derivado de outros modelos de atividades de engenharia com o fim de estabelecer ordem no desenvolvimento de grandes produtos de software. O modelo em cascata é um dos mais importantes, e é referência para muitos outros (NEGRÃO, 2007). Sua versão original foi melhorada ao longo do tempo e continua sendo usada hoje em dia, o seu sucesso esta no fato dele ser orientado para documentação. Ele sugeri uma abordagem sequencial para o desenvolvimento do software, e tem a vantagem de só avançar para a próxima fase quando o cliente valida e aceita o que foi feito na fase atual. O modelo pressupõe que o cliente esteja participando ativamente do projeto. Na versão original deste projeto, quando se passava para outra etapa não se podia regressar para nenhuma anterior, no entanto, não era possível fazer nenhuma alteração e as novas ideias não eram aproveitadas. No intuito de resolver este problema foi criado um novo tipo de processo baseado no clássico em cascata, cuja diferença consiste na possibilidade de regressar para qualquer outra etapa e realizar as alterações que venha a surgir. Ele é dividido em diferentes etapas, que são: Engenharia do Sistema, Analise de requisitos, Projeto, codificação (ou Implementação ), Teste, e Manutenção. [DUTRA, 2005; PRESSMAN, 1995; MELNIKOFF, 2002]

Engenharia do sistema: é a etapa onde se define o esboço do sistema e o objetivo, estimativa do tempo e recursos. Envolve a coleta de requisitos em nível do sistema.

Analise de Requisitos do software: nesta etapa estabelecem-se os requisitos do produto que se deseja desenvolver, os serviços que se devem fornecer, limitações e objetivos do software. Esta etapa inclui também a documentação. Pode ser visto também como o inicio do seu ciclo de vida, deve-se ter a compreensão clara e precisa das funcionalidades do software , bem como a função, desempenho e interface exigidos.

Projeto: é um processo de muitos passos que se concentra em quatro atributos diferentes do sistema: estrutura de dados, arquitetura de software, detalhes procedais e caracterização da interface. Assim como os requisitos, o projeto é documentado e torna-se parte do software.

Codificação: esta é a etapa em que são criados os programas, o projeto deve ser traduzido para a máquina de maneira legível. Se o projeto for bem detalhado a etapa da codificação pode ser executada automaticamente. Nesta é montado o banco de dados.

Testes: concluído a fase de codificação, inicia-se a fase de testes do sistema. O processo concentra-se em dois pontos: aspectos lógicos internos do software e as funcionalidades externas. Os testes dos aspectos lógicos internos consistem em garantir que todas as instruções tenham sido testadas, e as funcionalidades externas realiza testes para descobrir erros de comportamento do software e garantir que as entradas definidas produzam resultados esperados, de acordo com os requisitos exigidos.

Manutenção: consiste na correção de erros que foram detectados na fase anterior, ocorrerão mudanças por conta de erros encontrados e porque o software deve ser adaptado para acomodar mudanças externas (como por exemplo, uma mudança na plataforma do software, mudanças de negócios) ou então, porque o cliente exige o acréscimo de recursos funcionais. A manutenção de software reavalia todas as outras etapas anteriores.

Melhorias e correções podem vir a acontecer durante todas as fases até o final do projeto. Estas etapas são as principais, porém pode existir dentro cada etapa outras etapas que se diferenciam muito de um projeto para o outro, assim também como pode existir etapas extras, tudo depende da necessidade do projeto. O que o modelo em Cascata propõe é uma mesma ideia de que as etapas de desenvolvimento seguem uma sequência, e uma etapa fornece saída que será a entrada da próxima etapa e assim sucessivamente.

Este ciclo de vida clássico ou modelo em cascata é o paradigma mais antigo e muito usado hoje em dia na engenharia de software como base para muitos outros. Porem, muitas criticas vieram a aparecer ao longo do tempo e fizeram com que até mesmo os seus ativos defensores questionassem sua aplicabilidade em algumas situações.

Segundo Pressman (1995:34):

“Os projetos reais raramente seguem o fluxo sequencial que o modelo propõe. Alguma iteração sempre ocorre e traz problemas na explicação do paradigma.

Muitas vezes é difícil para o cliente declarar todas as exigências explicitamente. O ciclo de clássico exige isso e tem dificuldade de acomodar a incerteza natural que existe no começo de muitos projetos.”

O que Pressman comenta sobre estes problemas relatados por Ele é real. Entretanto, o paradigma do ciclo de vida clássico tem um lugar definido e importante no trabalho da engenharia de software.

Atualmente são mais usados modelos como o espiral que foi desenvolvido para abranger as melhores características tanto do ciclo de vida clássico como da prototipação, acrescentando ao mesmo tempo um novo elemento, a análise de riscos que falta a esses paradigmas, trabalhando iterações incrementais. A Engenharia de Software é um processo importante no desenvolvimento de Software, não há como definir a melhor técnica de desenvolvimento, pois tudo depende do projeto que está sendo desenvolvido.