O que é desenvolvimento de software iterativo?

Saiba o que significa desenvolvimento iterativo e como ele pode lhe ajudar a entregar software com qualidade e dentro dos prazos

Bom dia pessoal, hoje é terça-feira, e vou iniciar uma nova série de posts aqui no blog que tem como tema engenharia de software, assunto que pretendo estudar bastante nos próximos meses e pretendo compartilhar o que aprender aqui nestes espaço.

Basicamente, segundo a definição de Margaret Rouse, desenvolvimento iterativo é uma forma de “quebrar” o desenvolvimento de uma grande aplicação em pequenos pedaços de software.

No desenvolvimento iterativo, cada ciclo de desenvolvimento deve contemplar:

  • Levantamento de requisitos
  • Análise a arquitetura da solução
  • Implementação
  • Testes
  • Distribuição
Abaixo você pode ver uma abordagem visual do conceito proposto pelo RUP:
RUP - Desenvolvimento Iterativo

O produto de cada iteração apesar de incompleto do ponto de vista visual e de integração deve permitir seu uso total e testes pelo usuário final mantendo qualidade de produto final.

Cada nova iteração de incluir novas funcionalidades as iterações anteriores, ampliando desta forma o escopo da solução. Normalmente o desenvolvimento iterativo é usado em conjunto com uma metodologia Agil de desenvolvimento que irá controlar o escopo da implementação daquela iteração.

De forma geral cada iteração ou ciclo tem um período e escopo curtos que giram em torno de duas semanas e ao seu final deve gerar código funcional que dever ser demonstrado e validado pelo cliente.

O desenvolvimento iterativo contrasta com o modelo tradicional de desenvolvimento de software baseado em cascata e que envolve o usuário final apenas nas etapas inicial, durante o levantamento de requisitos e final após a entrega do produto, e tem demonstrado uma melhor capacidade de entrega de projetos de software com sucesso.

Veja abaixo o modelo Waterfall:

O propósito do desenvolvimento iterativo esta em permitir um processo mais flexível a mudanças de escopo durante o processo de desenvolvimento do produto reduzindo desta forma os riscos de falha no projeto de desenvolvimento de software.

Para vinalizar veja o vídeo abaixo uma pequena explicação sobre este conceito:

É isso pessoal, essa é apenas uma pequena introdução ao assunto que pretendo abordar aqui no blog todas as terças-feiras, até a próxima.

Melhorando o desempenho de seu banco de dados do Opencart!

Saiba como você pode de forma simples aumentar o desempenho de sua loja Opencart com alguns pequenos ajustes no banco de dados.

Oi pessoal tudo bom? Hoje é terça-feira, dia de colocar a mão na massa, ou melhor, no código aqui no blog e como ultimamente tenho falado bastante do Opencart, hoje vou continuar no assunto, mas antes leia alguns dos posts que já fiz sobre a plataforma.

O problema com o banco de dados do Opencart

Nesse período de mais de dois anos que venho trabalhando diariamente com o Opencart, consegui conhecer algumas de suas vantagens e desvantagens e posso dizer com tranquilidade que um dos maiores problemas da plataforma esta em seu banco de dados, porém esse problema pode ser minimizado aplicando algumas pequenas alterações no banco.

Vamos a elas?

Índices, sim eles existem

Por incrível que pareça o pessoal que desenvolveu o Opencart não teve muita preocupação com a criação de índices a grande maioria das tabelas possui apenas um único em indice que contempla apenas a chave primária.

Quem já lidou com grandes bancos de dados sabe da importância desta prática e o quanto ela reduz o tempo das consultas.

Você pode criar índices em todas as tabelas do banco de dados, mas vou listar aqui as que julgo mais importante e o comando para você criar os índices:

Tabela de Produtos (product)

#Indice para fabricantes
 CREATE INDEX manufacturer ON `oc_product` (`manufacturer_id`)
#Indice para status de estoque
 CREATE INDEX stock_status ON `oc_product` (`stock_status_id`)
#Indice para o status
 CREATE INDEX status ON `oc_product` (`status`)

Tabela de Pedidos (order)

#Indice para loja
 CREATE INDEX store ON `oc_order` (`store_id`)
#indice para cliente
 CREATE INDEX customer ON `oc_order` (`customer_id`)

Chaves estrangeiras, elas podem ajudar

Outra boa prática é a criação de chaves estrangeira e que tenham remoção de dados em cascata, desta forma se você remover um produto diretamente no banco todas os dados vinculados ao produto em outras tabelas serão também removidos.

Esse é um processo longo e um pouco mais complexo pois envolve mexer em diversas tabelas, no caso de produto são 16 tabelas vinculadas, mas pode ter certeza que o esforço vai valer a pena, pois sua base de dados vai ficar sempre homogênea.

Veja abaixo o exemplo da criação da chave na tabela product_to_category que é responsável por vincular os produtos as categorias do sistema.

O primeiro passo é alteras as tabelas envolvidas pra o tipo Innodb:
 ALTER TABLE `product` ENGINE=InnoDB
 ALTER TABLE `product_to_category` ENGINE=InnoDB
#cria a chave estrangeira com a tabela produto
 ALTER TABLE `oc_product_to_category` ADD CONSTRAINT `product_id` FOREIGN KEY ( `product_id` ) REFERENCES `oc_product` ( `product_id` ) ON DELETE CASCADE ON UPDATE CASCADE ;

Não altere o banco!

Por fim a última dica que eu tenho sobre melhorar o desempenho do banco de dados é: não altere o banco de dados e sobre alterar estou falando em criar campos, renomear colunas etc…

Fazendo isso você pode quebrar referências e prejudicar e muito sua loja Opencart além de dificultar e muito o processo de atualização.

Se precisar crie novas tabelas, mas não altere as tabelas do sistema.

É isso pessoal essas foram algumas dicas que podem melhorar o desempenho da base de dados do Opencart e consequentemente aumentar a velocidade e os resultados de sua loja Opencart.

Até amanhã!!!

Conheça o Hello e nunca mais perca nenhum contato!

Saiba como esse aplicativo vai aumentar sua produtividade na organização de contatos e manutenção do histórico de reuniões

Bom dia pessoal, como foi o fim de semana? Espero que muito bem, como vocês sabem segunda-feira é dia de trazer dicas de produtividade aqui no blog. Se você não acompanhou os últimos posts não perca:

  • Aumente sua produtividade com Alfred no Mac
  • Descubra onde você gasta seu tempo com RescueTime

Mas vamos a dica do dia:

O problema…

Todas as semanas fazemos diversas reuniões, conhecemos pessoas e discutimos diversos assuntos, porém, não raro é comum encontrarmos depois de algum tempo um “bolo” de cartões de visita na mesa ou na gaveta, sem conseguir ligar mais o nome a pessoa.

Até pior do que isso é quando em uma segunda reunião você não se lembra o nome de alguém ou o assunto discutido ou até quando você conheceu a pessoa.

A solução…

Para resolver esse problema o pessoal que criou o Evernote, um dos mais famosos softwares de produtividade desenvolveu um aplicativo chamado Hello que permite a você apenas tirar uma foto do cartão de visita e o App identifica todos os dados e te permite criar um contato diretamente na sua agenda além de permitir que você descreva quando, onde e como conheceu aquele contato.

Outro ponto muito interessante do aplicativo é já integrar com o Linkedin e Facebook permitindo que você já se conecte ao perfil do novo conhecido, tudo em poucos toques e da forma mais simples possível.

Ah, todos os seus dados vão para nuvem em sua conta Evernote que fica acessível em todas as plataformas.

Ficou curioso? Assista o vídeo sobre o aplicativo abaixo:

O Hello pode ser baixado gratuitamente na AppStore e no Android MarketPlace.

Bom por hoje é isso pessoal, espero que a dica ajude vocês a não perder mais nenhum contato, até amanhã!