Refactoring: Re-escrevendo código fonte para ganhar qualidade e performance

“Refatoração é uma técnica elaborada para reestruturar um código fonte existente, alterando sua estrutura interna sem mudar o seu comportamento final, anda junto com a manutenção de software.

A idéia principal de refatorar está em uma série de pequenas melhorias que mantém a estrutura inicial da regra de negócio realizando a manutenção do código. Cada refatoração faz pouca coisa, mas uma seqüência de pequenas refatorações pode fazer uma diferença significativa. Uma vez que cada refatoração tem um escopo pequeno e é localizada existe um baixo risco associado. O sistema se mantém funcionando normalmente após cada refatoração, reduzindo as chances de o sistema sofrer um grande erro durante sua reestruturação. Continue lendo “Refactoring: Re-escrevendo código fonte para ganhar qualidade e performance”

Modelagem de software baseada em análise de vulnerabilidades

Modelagem de software baseada em análise de vulnerabilidades é um processo de análise feita durante o desenvolvimento de uma aplicação, onde devemos identificar os bens ou recursos que aplicação deve proteger e avaliar a necessidade de proteção em relação aos acessos de usuários aos recursos do sistema e sua possibilidade de ação/interação na aplicação.

Devemos ter em mente o ativo que pretendemos proteger e como desenvolvedores podem simular invasões na aplicação e exploração dos pontos de coleta de informações. Este processo deve ser repetido durante a análise, construção, teste e manutenção da aplicação. Continue lendo “Modelagem de software baseada em análise de vulnerabilidades”

Teste de Software: Investimento necessário.

O mundo está aderindo ao software por vontade própria ou impropria. A necessidade da utilização de sistemas esta cada vez maior pela obrigatoriedade do mercado. É uma realidade presente em nossas vidas desde uma aplicação para celular até para controle de uma nave espacial. Cada vez mais os sistemas estão se tornando complexos, com isso vem à necessidade de se investir em teste de forma profissional e com qualidade para garantir o desenvolvimento de software seguro.

Investir para reduzir falhas, erros ou defeitos aumenta a reputação da empresa que desenvolve o software, testar corretamente diminui a exploração de vulnerabilidades de segurança. Continue lendo “Teste de Software: Investimento necessário.”

Entendendo SQL Injection

A melhor defesa para falhas de segurança é o teste adequado do software e a utilização componentes com alto nível de maturidade.

SQL Injection é uma ameaça de segurança que utiliza um conceito bastante simples para atacar suas vítimas: utilizar comando SQL em campos de entrada de dados na tentativa de “enganar” o programa e obter acesso ao banco de dados, podendo ser para roubar ou adulterar informações ou prejudicar a imagem da empresa, indisponibilizando os serviços prestados pela vítima. Continue lendo “Entendendo SQL Injection”

Segurança em Banco de Dados: Cuidando do bem mais valioso da empresa

A segurança da informação, até pouco tempo não estava em destaque, dificilmente ouvíamos assuntos referente a invasões ou vazamento de informações. Porém, esse tempo mudou como também o conceito das empresas, onde hoje a informação é o bem mais valioso da organização.

Quando falamos em segurança inúmeros métodos surgem como forma de proteção de sua organização. Veremos assim, alguns métodos para proteger o seu banco de dados e algumas boas práticas para mantê-lo íntegro. Continue lendo “Segurança em Banco de Dados: Cuidando do bem mais valioso da empresa”

Criptografia, da antiguidade à era digital

A criptografia é tão antiga quanto à própria escrita. Esta já se fazia presente nos escritos das civilizações mais antigas como os egípcios. Desde os tempos ímpios, a qualidade e confidencialidade da informação têm influenciado e decidido o destino de pessoas e nações. Portanto, assegurar que a informação correta seja transmitida e entregue de forma segura é um desafio frente ao qual a tecnologia tem muito a contribuir.

Cifrar a informação textual como é conhecido tecnicamente a criptografia é ao mesmo tempo uma ciência e uma arte. As civilizações mais antigas lançavam mão deste artifício para que informações sobre planos de batalhas não caíssem na mão de inimigos. O interessante é que os métodos não mudaram muito até meados do século XX. Durante a segunda guerra os esforços ingleses para quebrar as mensagens alemãs tornaram-se notórios e decisivos para o desfecho da guerra.

Com advento do computador, houve um significativo avanço nesta área Continue lendo “Criptografia, da antiguidade à era digital”

Especialista alerta para ‘ameaça dos algoritmos’

Especialista em algoritmos alertou para as conseqüências da influência cada vez maior dos sistemas de códigos operacionais em diversos aspectos da vida das pessoas.

Em uma palestra durante a conferência TED no mês de julho, na Escócia, o americano Kevin Slavin disse que “a matemática que os computadores usam para decidir as coisas” está se infiltrando em diferentes áreas as nossas vidas.

Slavin disse que os “serviços inteligentes” oferecidos por lojas de internet – que calculam livros e filmes nos quais o cliente pode estar interessado -, por sites como o Facebook e pelos mecanismos de busca como o Google comprovam que operações computacionais complexas e invisíveis controlam cada vez mais a relação das pessoas com o mundo eletrônico. Continue lendo “Especialista alerta para ‘ameaça dos algoritmos’”

Ferramentas de Controle de Versão: Uma saída para organizar os arquivos de sua empresa.

É impensável que empresas de desenvolvimento de software possam tentar viver sem ferramentas de controle de versões.

Ferramentas de controle de versão, tem como principal função, servir como um repositório de arquivos. A cada alteração os arquivos são atualizados de forma que fique registrado em um banco de dados todas as versões anteriores. Isto facilita a vida dos desenvolvedores, pois conseguem saber exatamente o que foi alterado de uma versão para outra, localizando rapidamente possíveis problemas ocasionados por alguma implementação incorreta. Continue lendo “Ferramentas de Controle de Versão: Uma saída para organizar os arquivos de sua empresa.”

Engenharia Social, a arte de enganar.

Por mais que as empresas invistam cada vez mais em tecnologias e máquinas mais seguras, elas não estão fora dos riscos de ataques, pois a parte mais fraca e vulnerável de uma empresa é a parte humana.

Os hackers normalmente coletam todas as informações necessárias para só depois invadir o sistema. E as pessoas não estão preparadas para este tipo de ataque e são facilmente manipuladas, acabam fornecendo informações importantes e isso pode causar um enorme prejuízo para a organização. Continue lendo “Engenharia Social, a arte de enganar.”

Boas Práticas para Desenvolvimento de Softwares seguros

Segurança no desenvolvimento de software
À medida que as aplicações passaram a ser baseadas na Web, a segurança de software foi ganhando força. Com a constante atividade de invasores, desenvolver um software seguro se tornou fundamental. Este artigo apresenta boas práticas e recomendações de segurança para o desenvolvimento de software.

A segurança em aplicações visa manter a confidencialidade, integridade e disponibilidade dos recursos de informação a fim de permitir que as operações de negócios sejam bem sucedidas. Geralmente é mais barato construir software seguro do que corrigir as vulnerabilidades de segurança após a entrega do software. Continue lendo “Boas Práticas para Desenvolvimento de Softwares seguros”

MPS.BR: Uma experiência de implantação

O MR-MPS.BR é o Modelo de Referência de Maturidade de Processos de Software alinhado com melhores práticas e exigências internacionais de qualidade de software, compatível com as empregadas no CMMI (Capability Maturity Model Integration) que é o modelo da americana Carnegie Mellon University.

Nos próximos dias a Guardian TI passara a fazer parte do seleto grupo de empresas do Brasil a terem o certificado MPS.BR – Nível G, grupo este que atualmente é de 176 empresas. Esta conquista é graças ao trabalho de mais de 12 meses da equipe, em que reformulou-se todo o processo de desenvolvimento de produto, da sua concepção, passando pela construção até a entrega ao cliente final.

Foram implementadas mudanças que refletem diretamente na qualidade final do  produto Continue lendo “MPS.BR: Uma experiência de implantação”

Introdução ao Scrum

Metodologias “ágeis” de desenvolvimento de software formam um novo paradigma em relação a engenharia de software tradicional, nos métodos “ágeis” preza-se mais pelos resultados que pela documentção gerada no processo. Isso é um assunto para tratarmos em outro post.

Scrum é por definição uma metodologia ágil para gestão e planejamento de projetos de software.

No Scrum, os projetos são dividos em ciclos (tipicamente mensais) chamados de Sprints. O Sprint representa um Time Box dentro do qual um conjunto de atividades deve ser executado. Continue lendo “Introdução ao Scrum”

Introdução a Qualidade de Software

Qualidade de software não é algo que possamos garantir meramente testando o produto final, isso pode ajudar, porém não é suficiente, pois pode ser muito tarde para corrigir alguns errors e o custo pode ser muito alto e até mesmo inviabilizar um projeto software. Quanto mais cedo identificamos as falhas, mais barato custa consertalas.

A qualidade de software é uma área de conhecimento da engenharia de software que objetiva garantir a qualidade do software através da definição e normatização de processos de desenvolvimento. Apesar dos modelos aplicados na garantia da qualidade de software atuarem principalmente no processo, o principal objetivo é garantir um produto final que satisfaça às expectativas do cliente, dentro daquilo que foi acordado inicialmente. Continue lendo “Introdução a Qualidade de Software”