Cadastre-se Revistas DevMedia Cursos
 

Space de Lenildo Morais
Busca Autor


Últimas 20 atualizações de Lenildo Morais

Artigo - Migrando de testes tradicionais para testes ágeis - Revista Engenharia de Software Magazine 48

A qualidade do software tornou-se o fator mais importante para determinar o sucesso de produtos ou empresas, e uma das maneiras de alcançar este objetivo é avaliar e testar sistematicamente o software desenvolvido [1]. Além disso, muitas empresas de desenvolvimento de software estão se esforçando para se tornar mais ágeis, visto que times ágeis bem-sucedidos podem ser capazes de produzir software de alta qualidade, que melhor atende às necessidades do usuário mais rapidamente e a um custo inferior, se comparado aos times tradicionais [2].

Um software de qualidade desempenha funções relevantes que trazem benefícios e agregam valor ao contexto no qual ele é inserido. Para uma empresa (ou usuário), obter tal software pode ser decisivo para o sucesso de seu negócio. E as atividades de teste de software são indispensáveis para alcançar este objetivo.

As metodologias ágeis, como XP (Extreme Programming) e SCRUM, são cada vez mais adotadas pelas empresas de desenvolvimento de software, pois permitem obter resultados mais cedo, isto é, são capazes de agregar valor ao cliente desde a primeira iteração. Essas práticas tendem a valorizar a equipe e a interação constante entre os seus membros, a colaboração com os clientes, o conhecimento do negócio do software em desenvolvimento e a capacidade de resposta a mudanças.

No entanto, o que ainda não está claramente definido é como as atividades de teste devem se encaixar neste contexto, isto é, como praticar efetivamente testes ágeis. A literatura [3] diz que se tornar ágil exige quebra de paradigmas, mudança de cultura, dinamismo da equipe, conhecimento técnico, entre outros fatores que viabilizam a aplicação.
Neste artigo, alguns dos principais pontos de transição entre as abordagens de testes tradicionais e testes ágeis serão relatados, com ênfase na comparação entre as duas práticas e as vantagens e desafios de se tornar um testador ágil. Por testes “tradicionais”, referimo-nos a testes caixa preta, mais especificamente funcional e de sistema, aplicados a projetos que seguem o m ...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
04/05/2012 19:04:00





Artigo - CMMI: Uma visão Geral - Revista Engenharia de Software Magazine 44

Ao longo dos últimos anos, tanto as empresas de desenvolvimento de software quanto seus clientes têm se preocupado com problemas que são comumente identificados durante a execução dos projetos, tais como: prazos e orçamentos não cumpridos, insatisfação de ambos os lados, produtos com erros, entre outros. No entanto, há algum tempo, existe um consenso na Engenharia de Software de que estes problemas estão, em grande parte, relacionados ao fato de que o desenvolvimento de sistemas é muitas vezes realizado de forma “artesanal”, ou através de métodos improvisados pelos desenvolvedores. Tais métodos dependem mais do talento individual do desenvolvedor que de uma sólida formação que oriente suas atividades.

Um processo definido e controlado pode garantir um produto de qualidade, sobretudo do ponto de vista do desenvolvimento de software. O Capability Maturity Model Integration, ou CMMI, como é chamado, é um modelo de referência que provê uma orientação para o desenvolvimento de processos de software, procurando nortear a organização no sentido de implementar a melhoria contínua do processo de software (ler Nota 1).

 Para isso, o modelo contempla duas representações que permitem à empresa desenvolvedora do software utilizar o caminho de melhoria mais adequado. Estas representações estão divididas em níveis de maturidade, priorizando de forma lógica as ações a serem realizadas. Assim, quanto maior o nível, maior a maturidade da organização, o que pode se traduzir em maior qualidade do produto final, com maior previsibilidade em cronogramas e orçamentos.

O objetivo do CMMI é servir de guia para a melhoria de processos na organização, assim como auxiliar a habilidade dos profissionais em gerenciar o desenvolvimento e manutenção de produtos ou serviços de software, além de proporcionar a visibilidade apropriada do processo de desenvolvimento para todos os envolvidos no projeto. Isto é particularmente importante em grandes projetos que possuem equipes envolvendo dezenas de pessoas, pois, sem o apoio desses mod

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
06/01/2012 19:08:00





Artigo - Entendendo melhor SOA e ESB - Engenharia de Software 32

Esse artigo faz parte da revista Engenharia de Software 32 edição especial. Clique aqui para ler todos os artigos desta edição

Arquitetura

Entendendo melhor SOA e ESB

Importantes conceitos para demandas de negócio

 

De que se trata o artigo:

Apresentar, através de uma visão geral, os conceitos, diferenças e algumas características de SOA (Service Oriented Architecture) e ESB (Enterprise Service Bus) e como estes podem ser úteis nas empresas que os adotam.

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
03/01/2011 13:53:00





Artigo - Modelagem em uma Visão Ágil - Engenharia de Software 32

Esse artigo faz parte da revista Engenharia de Software 32 edição especial. Clique aqui para ler todos os artigos desta edição

Agilidade

Modelagem em uma Visão Ágil

O que? Quanto? E para que modelar?

 

De que se trata o artigo:

Apresentar, através de uma visão geral, os valores, princípios e práticas da modelagem ágil (Agile Modeling), abordando aspectos como: trabalho em conjunto, participação efetiva do cliente, comunicação, rascunhos como forma de modelagem e a utilização da modelagem na obtenção da qualidade e de maior produtividade.

 

Para que serve:

Proporcionar às equipes de desenvolvimento de software maior conhecimento sobre a modelagem ágil, uma vez que grande parte dos projetos de desenvolvimento ainda precisa evoluir neste aspecto.

 

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
03/01/2011 13:08:00





Artigo - Qualidade de Software - Engenharia de Software 29

Esse artigo faz parte da revista Engenharia de Software 29 edição especial. Clique aqui para ler todos os artigos desta edição

Engenharia de Software

Qualidade de Software

Desvendando um requisito essencial no processo de desenvolvimento

 

De que se trata o artigo:

Demonstrar, através de uma visão geral, como os aspectos inerentes à qualidade de software podem contribuir para a competitividade e produtividade. Você conhecerá os conceitos, características, pontos positivos e negativos referentes ao processo de qualidade de software.

 

Para que serve:

Proporcionar aos desenvolvedores e consumidores de software maior conhecimento sobre a qualidade, uma vez que grande parte dos projetos de desenvolvimento ainda precisa evoluir neste aspecto.

 

Em que situação o tema útil:

Nos projetos de desenvolvimento de software, que adotam políticas de qualidade, sobretudo quando se deseja buscar mercados externos ou expandir seus clientes internos aumentando a satisfação dos mesmos.

 

 

O conceito da qualidade tem hoje importância fundamental para alavancar a competitividade das empresas. Atualmente, a preocupação com a qualidade deixou de ser um diferencial competitivo e passou a ser um pré-requisito básico para participação no mercado. No setor de software não é diferente. A disseminação do uso do software em todas as áreas, envolvendo monitoração, controle e gestão de funções críticas, tem aumentado consideravelmente a importância da qualidade de software.

Qualidade hoje em dia não é apenas um diferencial de mercado para a empresa conseguir vender e lucrar mais, é um pré-requisito que a empresa deve conquistar para conseguir colocar seu produto no mercado global. Apesar da ideia de qualidade parecer aparentemente intuitiva, quando analisada com maior atenção, o conceito se revela um pouco mais complexo.

Na medida em que cresce a demanda por sistemas complexos, com grande responsabilidade no contexto das organizações, a qualidade desponta como um fator essencial no desenvolvimento de software, e cada vez mais há uma disposição de investimento nesta área. Entretanto, uma das primeiras dificuldades encontradas na definição e implantação de um programa de qualidade está em compreender o que, de fato, significa qualidade de software.

Visando apoiar um maior entendimento a respeito do assunto, este artigo apresenta o conceito de qualidade de software, abordando aspectos como a importância dos requisitos neste processo assim como uma visão geral sobre medição e avaliação da qualidade.

Qualidade de Software

Conceituar qualidade de fato é uma tarefa complexa, mas ela pode ser vista como um método gerencial que através de procedimentos disseminados por toda a organização, busca garantir um produto final que satisfaça às expectativas do cliente, dentro daquilo que foi acordado inicialmente.

No contexto de desenvolvimento de software, qualidade pode ser entendida como um conjunto de características a serem satisfeitas, de modo que o produto de software atenda às necessidades de seus usuários. Entretanto, tal nível de satisfação nem sempre é alcançado de forma espontânea, devendo ser continuamente construído. Assim, a qualidade do produto depende fortemente do seu respectivo processo de desenvolvimento.

Devido ao processo de globalização e consequente aumento de empresas concorrentes, a qualidade, hoje em dia, é crítica para a sobrevivência e o sucesso no mercado de software. Portanto, uma organização não se destacará neste mercado a menos que produza software de boa qualidade e que seus clientes percebam isso nos seus produtos e serviços. Neste contexto, há algumas razões que devem ser consideradas:

·         Qualidade é competitividade: Uma forma do produto se destacar é através da qualidade do software e do suporte que é fornecido com ele. Com o amadurecimento do mercado, os usuários não querem apenas que a empresa fale que tem qualidade, mas que mostre a todos que a tem através de certificação internacional. Não ter uma certificação pode acarretar em desvantagem competitiva;

·         Qualidade é essencial para a sobrevivência: Clientes estão buscando por qualidade. Se a empresa não tiver habilidade de sobreviver em um mercado altamente competitivo, ela está em débito com o mercado. A maioria das grandes organizações está reduzindo o número de fornecedores, e um meio de escolher os fornecedores é verificando quais deles têm certificações de qualidade;

·         Qualidade é essencial para o mercado internacional: O mercado de software está cada vez mais se expandindo, se tornando global. A habilidade das empresas de mostrar qualidade possibilita sua colocação no mercado;

·         Qualidade é custo/benefício: Um sistema de qualidade direciona para o aumento da produtividade e permanente redução de custos, dando ênfase à prevenção de inconsistências no desenvolvimento e, consequentemente, de defeitos. A maior parte das empresas sabe que corrigir defeitos após o desenvolvimento do software é mais dispendioso do que identificá-los e corrigi-los antes;

·         Qualidade retém consumidores e aumenta lucros: Pouca qualidade normalmente custa muito mais. A maioria dos clientes não tolera falta de qualidade, e caso isso ocorra procuram por outros desenvolvedores. A preocupação com a qualidade aumenta a satisfação dos clientes e assegura os que já são por mais tempo.

 

Os consumidores de software necessitam de produtos cada vez melhores e mais rápidos de serem desenvolvidos para aumentarem a sua competitividade no mercado. Para que este objetivo seja cumprido, os fornecedores de software devem utilizar as melhores práticas da engenharia de software, corrigindo os defeitos assim que forem detectados.

Infelizmente, ainda há empresas fornecedoras de software que acham que criar sistemas é uma arte que não necessita seguir regras, normas ou padrões. Isto acontece principalmente por que:

·         Produtos de software são complexos, até mais do que o hardware onde executam;

·         Software não tem produção em série. Seu custo está no projeto e desenvolvimento;

·         A engenharia de software ainda não está madura, é um processo em constante evolução;

·         Não há um acordo entre os profissionais da área sobre o que é qualidade de software.

 

Apesar de tudo isso, é preciso entender que o problema não está no software em si, mas na forma como as pessoas têm desenvolvido software. É de fundamental importância que as equipes de desenvolvimento tenham a contínua atenção com a aplicação dos conceitos de qualidade em seus projetos.

Atualmente, muitas instituições têm se preocupado em criar normas para permitir o desenvolvimento de softwares de qualidade. A Tabela 1 apresenta uma visão geral com as principais normas nacionais e internacionais nesta área.

 

NORMAS

COMENTÁRIOS

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
06/10/2010 19:03:00





Artigo - Negociação de Contratos - Engenharia de Software 28

Esse artigo faz parte da revista Engenharia de Software 28 edição especial. Clique aqui para ler todos os artigos desta edição

Agilidade

Negociação de Contratos

Negociação de contratos em projetos utilizando desenvolvimento ágil

 

De que se trata o artigo:

Demonstrar, através de uma visão geral, como os contratos de projetos são tratados no ambiente da metodologia ágil. Você conhecerá os principais tipos de contratos e como eles podem influenciar no seu processo de desenvolvimento de software.

 

Para que serve:

Proporcionar maior controle das inovações tecnológicas e das mudanças constantes de requisitos do cliente, uma vez que grande parte dos projetos de desenvolvimento de software excedem o prazo e o orçamento previstos, haja vista que o desenvolvimento de software é uma atividade complexa, envolvendo inúmeros fatores considerados imprevisíveis e de difícil acompanhamento.

 

Em que situação o tema útil:

Nos projetos de desenvolvimento de software, que adotam metodologias ágeis, sobretudo quando se deseja gerenciar riscos, ainda que seja em um ambiente heterogêneo e que apresente dificuldades na estratégia organizacional ou nas prioridades e restrições do processo de desenvolvimento, necessitando um maior comprometimento entre os gestores e os clientes.

 

Neste artigo vamos abordar como os requisitos são tratados, no tocante a negociação de contratos, em projetos de desenvolvimento ágil. Será apresentada uma visão geral sobre metodologias ágeis e quais as principais vantagens e desvantagens dos tipos de contrato utilizados nestas metodologias.

Além disso, algumas técnicas utilizadas por empresas para elaboração de contratos serão apresentadas, mostrando ainda como isso pode influenciar e motivar os gestores quanto à adoção dessa cultura, propiciando maior interação e satisfação entre gerentes, analistas, desenvolvedores e clientes. A adoção deste tipo de negociação deve ser considerada pelas empresas que desejam reduzir custos e melhorar a produtividade na construção de seus projetos de software.

Metodologias Ágeis

De uma maneira geral, pode-se afirmar que os projetos de desenvolvimento de software têm sido de preocupação constante para clientes do sistema (stakeholders), gerentes de projeto e para os próprios desenvolvedores. Postergações nos prazos de entrega do produto, longas fases de análise de requisitos, estouro no orçamento dos projetos, fases de testes insuficientes, cancelamento de projetos, produtos com alta taxa de defeitos e requisitos que não satisfazem as necessidades reais dos clientes são apenas alguns exemplos que servem para ilustrar a gr

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
06/09/2010 09:01:00





Artigo - Artigo Engenharia de Software 23 - Métricas e Planejamento com XPlanner

Esse artigo faz parte da revista Engenharia de Software 23 edição especial. Clique aqui para ler todos os artigos desta edição



Planejamento e Gerência

Métricas e Planejamento com XPlanner

Melhore o planejamento e acompanhamento das atividades com a ferramenta XPlanner

 

De que trata o artigo:

Instalação e utilização da ferramenta XPlanner. Você conhecerá como esta ferramenta open source pode colaborar no processo de planejamento e acompanhamento das atividades de desenvolvimento de software.

 

Para que serve:

Proporcionar o planejamento e acompanhamento das atividades inerentes à Engenharia de Software. Além disso, a ferramenta fornece suporte ao desenvolvimento tradicional e às metodologias ágeis, onde todas as informações adquiridas no desenvolvimento das tarefas podem ser armazenadas e utilizadas como base histórica.

 

Em que situação o tema útil:

Nos projetos de desenvolvimento de software, sobretudo quando se deseja otimizar os recursos humanos existentes para o desenvolvimento das tarefas. Se você trabalha em uma fábrica de software e precisa planejar, acompanhar e extrair métricas inerentes às atividades que sua equipe está realizando, a ferramenta XPlanner apresenta-se como uma ótima alternativa para este propósito.

 

 

O XPlanner é uma ferramenta de código livre utilizada para auxiliar no planejamento e acompanhamento de projetos de software, podendo ser utilizada em processos de desenvolvimento tradicionais e ágeis. Ela fornece aos desenvolvedores uma forma mais fácil de acompanhar o andamento do projeto, possibilitando a comunicação de toda a equipe, mesmo sendo em diferentes tarefas, para todos terem controle do que está sendo feito dentro do projeto.

Neste artigo vamos abordar, de forma prática, os procedimentos de instalação da ferramenta XPlanner. Em seguida iremos explorar suas principais funcionalidades, que permitem que as equipes tenham uma melhor visão do desenvolvimento das diversas tarefas que estão sendo desenvolvidas. Tal visibilidade proporciona, através dos dados históricos fornecidos pela ferramenta, planejamentos futuros mais precisos.

O que é o XPlanner?

Ferramenta open source implementada em Java para auxiliar o planejamento de projetos de desenvolvimento tradicionais ou ágeis, onde todas as tarefas executadas durante o projeto são armazenadas. O XPlanner tem como principal objetivo fornecer aos times uma forma mais fácil de controlar o andamento do projeto. Suas principais características são as iterações, “users stories” e as tarefas, referentes ao projeto de software, que podem ser planejadas e posteriormente acompanhadas, dando maior visibilidade à equipe quanto a evolução das atividades.

No XPlanner há apenas dois níveis de usuários: o System Administrator e o usuário comum. O primeiro nível tem a responsabilidade de criar os demais usuários que utilizarão a ferramenta, sendo recomendado, por medida de segurança, que este nível esteja centralizado em uma ou duas pessoas no máximo.

Instalando o XPlanner

Antes de apresentarmos o processo de instalação, vamos conhecer os pré-requisitos necessários para a instalação do XPlanner:

·         Banco de dados MySQL 5.0;

·         Tomcat – O XPlanner precisa de um servidor para que seja executado, e o Tomcat é um servidor web que atende a este propósito. Até o momento da escrita deste artigo a versão atual era a 6.0.20.

·         Para instalar o Tomcat tudo que você precisa é fazer o download e executar o arquivo .exe.

 

O XPlanner é distribuído através de um único arquivo compactado chamado xplanner_0.6.1. Após baixar este arquivo, descompacte-o em um diretório qualquer e copie o arquivo xplanner.war para o diretório /webapps do Tomcat (ex.: C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\webapps).

Em seguida, inicie o Tomcat. Isso fará com que seja gerado o deploy automático do XPlanner, descompactando o arquivo .war e criando a estrutura de diretórios dentro do servidor.

Será preciso também executar o MySQL para que seja criada uma base de dados com o nome “xplanner”. Neste primeiro momento a base ficará vazia.

A carga do script responsável pela criação das tabelas utilizadas pelo XPlanner pode ser dada executando o MySQL Query Browser e depois Arquivo>Open Script. Agora basta selecionarmos o arquivo xplanner.sql (que está presente no arquivo do Xplanner que foi baixado e descompactado) e executarmos o script.

Neste momento todas as tabelas necessárias serão criadas, faltando apenas configurar o banco de dados para que o XPlanner funcione corretamente. A configuração será feita através do arquivo xplanner.properties. Nele poderão ser informados os dados para que a ferramenta possa se comunicar com o banco de dados.

Para realizar esta configuração devemos abrir o arquivo xplanner.properties, que está no diretório classes (por exemplo: C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\webapps\xplanner\WEB-INF\classes) e localizar a linha “Hibernate MySQL Configuration”. Neste trecho constam os parâmetros para a conexão com o banco de dados, sendo necessário configurar a url, o usuário e a senha. A Listagem 1 mostra as linhas com as configurações que devem ser feitas para a conexão ser realizada com sucesso.

 

Listagem 1. Arquivo xplanner.properties com os parâmetros de conexão.

###################################

### XPlanner Configuration     ###

###################################

 

#

# Hibernate JDBC Configuration

#

 

# Hibernate MySQL Configuration

hibernate.dialect=com.technoetic.xplanner.db.hibernate.XPlannerMySQLDialect

hibernate.connection.driver_class=com.mysql.jdbc.Driver

hibernate.connection.url=jdbc:mysql://localhost/xplanner?autoReconnect=true

hibernate.connection.username=root

hibernate.connection.password=root

 

# Hibernate HSQLDB Configuration - external HSQLDB

#hibernate.dialect=net.sf.hibernate.dialect.HSQLDialect

#hibernate.connection.url=jdbc:hsqldb:/some/directory/xplanner

#hibernate.connection.driver_class=org.hsqldb.jdbcDriver

#hibernate.connection.username=sa

#hibernate.connection.password=Krufeib4

 

Após informar os dados para a conexão entre o XPlanner e o banco de dados, o arquivo pode ser salvo e fechado.

Agora vamos testar a ferramenta. Assim, abra o navegador e acesse o endereço http://localhost:8080/xplanner. A tela de login será apresentada. Entre com o usuário sysadmin, senha admin e clique em login. Se tudo estiver correto, você será autenticado e a tela inicial do XPlanner será exibida, conforme a Figura 1.

Figura 1. Tela de inicial do XPlanner.

Primeiros passos na utilização do XPlanner

A partir de agora iremos preparar o XPlanner para que seja possível realizar o acompanhamento de atividades. Primeiramente devemos criar um projeto, haja vista que as iterações e atividades que serão acompanhadas deverão estar sempre relacionadas a um projeto. Na tela inicial, são disponibilizados quatro links que atendem a objetivos distintos. A Tabela 1 mostra um quadro com as descrições de cada um deles.

 

Links

Objetivo

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
06/04/2010 11:53:00





 

Mestre em Ciência da Computação pelo Centro de Informática da Universidade Federal de Pernambuco.
Arquivo de atualizações
 2012
 2011
 2010

Estatísticas do Autor:
Número de posts: 8
Características dos posts deste autor:
Conteúdo:
Utilidade:
2 0
 
DevMedia Group - Tel: (21) 3382-5038 - www.devmedia.com.br
Todos os Direitos Reservados a DevMedia Group