Rafael Lucena
Este usuário ainda não compartilhou nenhuma informação biográfica
Artigos por Rafael Lucena
Innovation as a Learning Process
05/02/10
Após indicação de leitura de meu orientador no mestrado deixo a dica para aqueles que gostam de ler sobre inovação o paper que trata de inovação como um processo de aprendizagem é bem interessante e para quem gosta de ler sobre o tema, é uma boa indicação , felizmente para alguns e infelizmente para outros o Paper está em inglês, mas vale a pena fazer um esforço para ler esse artigo que foi publicado pela California Review Management by Sara L. Beckman e Michael Barry.
Para ler Clique Aqui!
Boa leitura a todos.
Testes de Software
27/10/09
Recentemente estive envolvido em um projeto onde qualidade e tempo andavam em lados opostos, qualidade a equipe tem e muita, porém nos faltava tempo. “O projeto deve ser entregue dentro de 15 dias” e após muita luta e esforço de todos, conseguimos o prazo de 30 dias, dependendo do tamanho do projeto isso poderia ser um ótimo prazo, mas não para esse.
Um portal para fins educativos, com conceitos chaves como COMUNICAÇÃO, GESTÃO E CONTEÚDO.
Infelizmente não posso falar o nome da empresa. Você agora deve esta se perguntando certo mais o que isso tem haver com TESTES DE SOFTWARE, pois bem a equipe conseguiu terminar o projeto dentro do prazo, porém na apresentação para a direção da empresa, vários repito vários BUGS foram surgindo na apresentação.
O que ficou claro para todos foi a equipe esqueceu uma fase importante e talvez junto com a implementação a fase mais dispendiosa, mais cara como alguns acadêmicos definem, a fase de TESTES. Não que nenhum dos programadores não tenha testado o que faziam, sim eles faziam isso, porém não realizavam testes mais profundos no momento em que as funcionalidades eram adicionadas, isso gerou a equipe RETRABALHO, pois além de parar todo o desenvolvimento para realizar os testes, “Já que éramos uma equipe pequena que fazia uso de metodologia ágil”, nos tínhamos uma certeza “falhamos”, não pelo que foi feito e sim pelo o que não foi feito.
Mas Rafael por que contar toda essa historinha para falar de testes? Por que não ir direto ao ponto, onde você falaria das questões como testes servem para detectar defeitos e não acertos. Por que não falar das estatísticas que mostram que empresa que investem no estudos e aplicações de testes como algo primordial para o processo de desenvolvimento de software obtém ótimos resultados do ponto de vista de qualidade, satisfação do cliente, menos retrabalho.
Não falei, pois tudo isso já é falado aos quatro cantos do mundo. O que queria mostrar é que até mesmo uma equipe de alto nível pode falhar feio, se subestimar a engenharia de software, pois para muitos, o que Summerville, Pressman entre outros pregam não são aplicáveis ao mundo real de desenvolvimento de software.
Não é ter que aplicar tudo que esta na teoria para a prática e sim os conceitos ou boas práticas junto com suas necessidades é claro. No próximo POST “amanhã”, eu irei falar sobre uma outra forma de evitar problemas com bugs INSPEÇÃO DE SOFTWARE.
Paradigma de Programação Imperativo
14/06/09
Uma linguagem de programação que utiliza paradigma imperativo, manipula variáveis a partir de ordens ou
comandos. Por exemplo, determinado número de váriáveis são lidas na entrada, são manipuladas e colodas
em outras variáveis, ditas saídas, manipulando estados.
Um programa imperativo realiza uma série de tarefas, uma atrás da outra, que o computador tende a executar.
Alguns exemplos de linguagens que utilizam paradigma imperativo são: Ada, Algol, C, Fortran, Pascal,
entre outras.
Essa imagem mostra de forma bem interessante o fluxo dos dados num paradigma Imperativo.
Vantagens:
- Eficiência (embute modelo de Von Neumann);
- Modelagem “natural” de aplicações do mundo real;
- Paradigma dominante e bem estabelecido;
- É altamente flexível, podendo ser migrado para outras paradigmas facilmente;
Desvantagens:
- Difícil legibilidade;
- Erros introduzidos durante manutenção;
- descrições demasiadamente operacionais focalizam o como e não o que
- Relacionamento indireto com a E/S (indução a erros/estados)
No próximo post falaremos sobre o Paradigma Funcional.

Paradigmas de programação
14/06/09
Consiste em modelos ou padrões adotados por linguagens de programação que agrupam caracteristicas em comum, a classificação de um paradigma é decorrente de decisões de projetos de projeto que impactam radicalmente na forma como um problema real é modelado do ponto de vista computacional.
Classificação:
Imperativa, Funcional, Orientado a objetos, Lógico e orientado a aspectos. Existem outras classificações porém as mais “comerciais” são essa listadas acima. Vamos durante essa semana estudar o que diz cada paradigma, quais suas vantagens e desvantagens e faremos um quadro comparativo entre elas.
Tipos de programação parte 4
13/08/08
Programação Modular
O que é:
Programação modular como próprio nome ja sugere é um paradgima de desenvolvimento de software no qual as rotinas são divididas em módulos e são interligados entre si através de uma interface comun.
Na programação modular, o programa principal coordena as chamadas aos módulos secundários e passa os dados necessários em forma de parâmetros.
Por sua vez cada módulo pode conter seus próprios dados e chamar a outros módulos ou funções.
Conceitos Básicos:
Existem dois tipos de SubProgramas:
Os que retornam um valor (funções)
Os que executam acções (procedimentos)
Um Módulo ou SubPrograma
· É um grupo de acções identificado por um nome.
· Pode executar as mesmas acções que um programa, receber valores, manipular esses valores, e produzir novos valores.
· Recebe informação do programa a que pertence e retorna a informação produzida a esse programa.
· Introduz uma nova estrutura de controlo: a chamada ou invocação de um subprograma.
· Quando é chamado (invocado), as acções do programa deixam
· Temporariamente de ser executadas e o computador começa executar as acções do subprograma.
· Quando termina a sua execução, o computador recomeça a execução das acções do programa, a partir da instrução que “chamou” o subprograma.
Principais Vantagens:
· Estrutura do programa fica mais clara ao agrupar funções e variáveis relacionadas num mesmo módulo.
· Possibilidade de compilar cada um dos módulos separadamente, poupando tempo.
· A reutilização das funções é facilitada
· Programas mais fáceis de escrever
· Programas mais fáceis de ler
· Programas, em geral, mais curtos
· Programas mais fáceis de modificar
· Abstração
Objetivo:
Facilitar a construção de grandes programas, através de sua divisão em pequenas etapas.(Módulos);
Tipos de Programação Parte 2.
05/08/08
Programação Estruturada:
O que é:
Não existe uma definição universalmente aceita para a programação estruturada; ao contrário, existem várias escolas de pensamento que a conceituam.
No sentido mais restrito, o conceito de programação estruturada diz respeito à forma do programa e do processo de codificação. É um conjunto de convenções que o programador pode seguir para produzir o código estruturado.
Onde podemos preconizar que todos os programas possíveis podem ser reduzidos a apenas três estruturas: sequência, Seleção e iteração.
Estruturas Básicas de Controle
As três estruturas básicas de controle para a construção de programas estruturados :
Seqüência: É usada para controlar a execução do programa, os comandos são executados na mesma ordem em que aparecem no código fonte. As estruturas de seleção, iteração e desvio são usadas para alterar o fluxo de execução do programa de sua ordem seqüencial normal.
Seleção: É usada para testar uma condição e, então, dependendo de ser o teste verdadeiro ou falso, um dos dois conjuntos alternativos de instruções é executado.
Iteração: É usada para executar um conjunto de instruções em um número inteiro de vezes – isto é, para construir um laço (loop). Deve-se observar que existem duas formas básicas para a estrutura de iteração: DO UNTIL e WHILE.
Objetivos:
O principal objetivo da programação estruturada é produzir um programa de alta qualidade a baixo custo, proporcionando uma disciplina de programação para conseguir:
• Melhorar a confiabilidade do programa
• Aumentar a legibilidade do programa
• Minimizar a complexidade do programa
• Simplificar a manutenção do programa
• Aumentar a produtividade do programador
• Estabelecer uma metodologia disciplinada de programação
Quando Usar:
Aplicações de pequeno porte.
Vantagens
As principais vantagens da programação estruturada são:
· Os programas são mais fáceis de entender
· Reduz a complexidade das provas
· Aumenta a produtividade do programador
· Os programas ficam melhor documentado internamente.
Desvantagens:
· A capacidade de reúso de código é limitada pela interdependência entre procedimentos.
· A seqüência das chamadas pode se tornar demasiadamente emaranhada, o que dificulta muito a manutenção e a depuração de código.
· Não há possibilidade de se criar procedimentos mais específicos a partir de outros mais genéricos.
· Uma mudança na representação dos dados implica na alteração em cada local onde estes são acessados.
Observações:
Um programa está estruturado se possui um único ponto de entrada e só um de saída, existem de “1 a n” caminhos desde o princípio até o fim do programa e por último, que todas as instruções são executáveis sem que apareçam loops infinitos
Tipos de Programação.
04/08/08
Sabemos que existem vários tipos de programação que diferem umas das outras pelas técnicas aplicadas e métodos. O objetivo deste post é trazer uma visão imparcial de cada tipo de programação, onde iremos mostar a particularidades de cada um do tipos de programação desde a programação estruturada, a programação Orientada a aspectos e até mesmo, por que não a programação orientada a GAMBIARRA(POG).
Acho por bem começarmos logo com ela que é usada por quase todos os programadores: Programação Orientada a Gambiarra, bem suas particularidades:
- Esse tipo de programação é a que está de fato no dia a dia de todo programador;
- Com a POG temos sistemas Sistemas mal projetados;
- Falta de vontade;
- Falta de tempo;
- Gente que pensa que é DBA; - Em pouco tempo de convivio com a programação propriamente dita pude perceber uma coisa, se esta funcionando Deixa!.
Esses são os fundamentos da POG.
Por definição temos como Gambiarra: é o nome dado informalmente ao procedimento necessário para a configuração de um artefato improvisado.
No próximo post, irei Trazer sobre a programação Estruturada e Modular.
Até a próxima.
Integração entre o Ebusiness e Softwares ERP
30/07/08
A internet é o mais importante ferramenta de negócios atualmente, essa super ferramente de negócios proporciona as empresas a expansão para novos horizontes atrvés do E-Business, porém algumas empresas com a necessidade de para evoluir rapidamente com o E-Business se afobam em atualizar seus processos de negócios atuais e perdem de vista uma fator muito importante. O sistema E-Business simplesmente não funciona na ausência de uma estrutura baseada em sistemas integrados (ERP).
Então surge uma questão: Como combinar os softwares de ERP com as mais novas tecnologias da internet para criar uma estratégia de E-Business integrada?
É exatamente a essa questão que nos próximos posts eu vamos tentar esclarecer.
Nesse post Vou explicar basicamente:
- O que é o E-Business;
- O que são sistemas ERP;
- E-Business
Segundo Paulo Ricardo (imasters): E-BUSINESS pode ser definido como sistemas de informação que auxiliam os processos de negócio. Estes sistemas podem ser desde B2C e B2B até CRM, Supply Chain Management (SCM) e gerenciadores de conteúdo.
O que não se pode confundir é E-Business com E-commerce ja que o E-commerce faz parte do E-Business, o E-commerce não compreende apenas a parte de compras e vendas, mas também o marketing, a logística, a infra-estrutura e o atendimento ao cliente.
O que realmente importa nesse casa é que tanto o E-business quanto o E-Commerce auxiliam as empresas a alcançar novos mercados, agilizar a troca de informações e estreitar relacionamento com clientes e fornecedores.
- ERP
são sistemas de informações que integram todos os dados e processos de uma organização em um único sistema (Laudon[1], Padoveze[2]). A integração pode ser vista sob a perspectiva funcional (sistemas de: finanças, contabilidade, recursos humanos, fabricação, marketing, vendas, compras, etc) e sob a perspectiva sistêmica (sistema de processamento de transações, sistemas de informações gerenciais, sistemas de apoio a decisão, etc).
Os ERPs em termos gerais, são uma plataforma de software desenvolvida para integrar os diversos departamentos de uma empresa, possibilitando a automação e armazenamento de todas as informações de negócios.
Continuaremos nos Proximos Posts.


