Categoria Blog

Gerenciamento da Configuração Software CMS

Hoje muitas empresas que trabalham com a engenharia de software encontram-se com o seguinte CENÁRIO ATUAL:

  • Projetos cada vez mais complexos em relação ao tamanho, sofisticação e tecnologias envolvidas;
  • Grandes equipes geograficamente dispersas ;
  • Requisitos de execução do sistema em diferentes plataformas de hardware e software ;
  • Suporte a diferentes línguas e culturas ;
  • Crescente velocidade da comunicação entre clientes sobre a ocorrência de defeitos ;
  • Diminuição dos tempos de desenvolvimento e de correção de defeitos para preservar a reputação da empresa ;
  • Necessidade de lidar com o inevitável caos relacionado à atividade criativa, buscando métodos e ferramentas para maximizar a produtividade e minimizar os erros.

 As mesmas empresas que apresentam o cenário apresentado acima podem está apresentando os seguintes problemas com a AUSÊNCIA da CM

  • Perda de código-fonte ;
  • Bibliotecas inesperadamente não funcionam mais ;
  • Impossibilidade de determinar o que aconteceu com um programa, ou parte dele ;
  • Impossibilidade de determinar quem, porque e quando foram efetuadas modificações ;
  • Requisitos já documentados desaparecem ;
  • Requisitos implementados desaparecem do código ;
  • O programa em execução e o seu código fonte estão em diferentes versões .

Definição

Mediante exposto acima, posso informar que a Gerenciamento de configuração (CM) poderá ajudar a solucionar estes conflitos, pois a CM refere-se a uma disciplina para avaliar, coordenar, aprovar ou desaprovar, e implementar mudanças nos artefatos usados ​​para construir e manter sistemas de software.

Um artefato pode ser um pedaço de hardware ou software ou documentação. CM permite o gerenciamento de artefatos a partir do conceito inicial através do design, implementação, teste de linha de base, construção, lançamento e manutenção.

CM visa eliminar a confusão e o erro provocado pela existência de diferentes versões de artefatos.

As alterações que são realizadas para corrigir erros, proporcionar melhorias, ou simplesmente refletir o refinamento evolutivo da definição do produto, a CM as mantém a sob controle.

 

Outras Definições

 Roger Pressman

“conjunto de atividades projetadas para controlar as mudanças pela identificação dos produtos do trabalho que serão alterados, estabelecendo um relacionamento entre eles, definindo o mecanismo para o gerenciamento de diferentesversões destes produtos, controlando as mudanças impostas, e auditando e relatando as mudanças realizadas.”

 Steve McConnell

“CM é a prática de lidar com modificações de forma sistemática, permitindo que o sistema tenha a sua integridade mantida com o passar do tempo.”

CMMI

O propósito de CM é estabelecer e manter a integridade dos produtos de trabalho utilizando identificação da configuração, controle da configuração, contabilização da situação da configuração e auditoria da configuração

MPS.BR

O propósito do processo de Gerência de Configuração é estabelecer e manter a integridade de todos os produtos de trabalho de um processo ou projeto e disponibilizá-los a todos os envolvidos

Atividades que envolvem o Gerenciamento de Configuração- PDCA

Políticas e Normas que definição CM

  • Conjunto de Artefatos (itens de configuração), sob a jurisdição da CM;
  • Nomeação dos artefatos;
  • Como os artefatos entrão e saem do conjunto controlado;
  • Como um artefato sob CM é pode ser modificado;
  • Como diferentes versões de um artefato sob CM são disponibilizados e em que condições cada um pode ser usado;
  • Como as ferramentas de CM são usadas para habilitar e fazer cumprir as regras.

Estas políticas e normas estão documentados em um plano CM que informa todos na organização apenas como CM é realizado.

Contra Definição

CM não é (somente) controle de versões!
CM não é configuração de conteúdo/dados!
CM não é backup!
CM não é simples!
CM não é impossível!
CM não é modismo!
CM não é opcional!
CM não é uma panacéia!
CM não evita que ocorram modificações!
CM não termina nela mesma!
CM não é somente para sistemas grandes e complexos!
CM não é somente para grandes equipes geograficamente distribuídas!

Ferramentas de Apoio

Atividades
Observações
Ferramentas
Controle de Versão
Apoia as atividades de controle de mudança e integração contínua. Fornecendo os serviços de identificação, armazenamento dos artefatos sob CM e de suas versões durante todo o ciclo de vida do software, geração histórico de todas as alterações efetuadas nos artefatos sob CM, criação de rótulos e ramificações no projeto e Faz a recuperação de uma configuração em um determinado momento desejado do tempo.
  • Git
  • Subversion
  • CVS
Controle de Mudanças
Fornece um serviço complementar ao sistema de controle de versão, identifica, rastrea, analisa e controla as mudanças nos itens de configuração.
  • Trac
  • Redmine
  • Mantis
Integração Continua
O objetivo é garantir que as mudanças no projeto são construídas, testadas e relatadas tão logo quanto possível depois de serem introduzidas.
  • Jenkins
  • Bitten
  • SCons
  • Maven

Escolha do Autor

Escolha do Autor
Controle de Versão
Subversion
Subversion é uma ferramenta open source de controle de versão centralizado que foi construída para substituir o CVS, mas seguindo o mesmo modelo de funcionamento.
Controle de Mudanças
Redmine
É um software livre, gerenciador de projetos baseados na web e ferramenta de gerenciamento de bugs. Ele contém calendário e gráficos de Gantt para ajudar na representação visual dos projetos e seus deadlines (prazos de entrega). Ele trabalhar com múltiplos projetos.
Integração Continua
Jenkins
Jenkins é uma ferramenta para integração contínua que gerencia os passos de construção, teste automatizados é escrito em Java, com mais de 300 plugins para suportar todos os tipos de desenvolvimento de software.

Conclusão

 A busca da melhoria do processo de desenvolvimento vem sendo impulsionada por exigências do mercado por mais qualidade e da produtividade do desenvolvimento. Muitas empresas têm revisto seus processos e procurado se capacitar no mercado cada vez mais competitivo.

A Gerência de Configuração é necessária para manter o desenvolvimento de software controlável. Contudo, ainda é grande o número de empresas que ainda não utilizam nenhum tipo de CMS ou que utilizam apenas o controle de versão nos seus projetos.

Gerência de Configuração é uma atividade que deve ser usada em todos os projetos de desenvolvimento de software. A existência de várias opções de ferramentas open source torna a implantação da CMS mais fácil principalmente para micro e pequenas empresas.

 

Vídeo Sugerido

Introdução à Análise Forense

Iniciaremos uma sequência de posts sobre Análise Forense e hoje farei uma pequena introdução nesse grandioso tema, espero que tenham uma boa leitura.

Desde o início do período Mesolítico da Pré História que a humanidade conseguiu dar importantes passos rumos à sua evolução e a sobrevivência. Nesse período o homem dominou o fogo, domesticou animais e desenvolveu a agricultura, tudo isso exigiu o conhecimento do tempo, das estações do ano e também das fases da lua, além das formas de controlar seu rebanho, surgindo assim a necessidade de contar, desde então não parou, quantificando desde alimentos para consumo até partículas subatômicas para pesquisas espaciais. Contudo, o homem percebeu que a capacidade de efetuar cálculos sempre esteve ligada com seu desenvolvimento, ou seja, cada vez que ele conseguia resolver operações matemáticas mais complexas e com maior rapidez, maiores eram os avanços científicos que alcançava.

Em 1946, surge nos EUA com certa de 30 toneladas, 1800 válvulas, ocupando aproximadamente uma área de 180 m2 e com capacidade de realizar 5000 somas por segundo, o primeiro computador digital eletrônico do mundo, chamado de ENIAC (Electrical Numerical Integrator and Computer). Ele foi concebido através de uma parceria entre o exército norte americano e a Universidade da Pensilvânia com o intuito de realizar cálculos balísticos e continha a arquitetura básica de um computador empregada até hoje, com memória principal, memória auxiliar, unidade central de processamento e dispositivos de entrada e saída de dados. Com a criação do transistor, em 1947, trouxe maior velocidade às máquinas e provocou uma revolução na eletrônica dos aparelhos da época. Atualmente, a  facilidade e a velocidade com que o computador processa, armazena e transmite informações por toda a sua rede, tornou-o um bem de consumo muito desejado, e por diversas vezes indispensável, em muitos lares de todo o mundo.

Devido a essa crescente evolução dos equipamentos computacionais, governos e empresas começaram a oferecer diversos serviços aos cidadãos, como por exemplo emissão de documentos, transações bancárias, vendas de produtos, entre outros, gerando assim uma enorme quantidade de dados sigilosos. Toda essa informação disponível aos usuários começou a surgir criminosos atraídos pelo grande volume de informações pessoais circulando pelas redes do mundo inteiro, esses indivíduos começaram a se especializar e até recrutar pessoas com conhecimentos na área de computação para obtenção dessas informações. Contudo a melhor maneira para combater tais ataques, sem dúvida, é a prevenção, não só utilizando equipamentos de alta tecnologia e sistemas seguros, como também instruindo as pessoas que os utilizam. Entretanto, quando ela se torna ineficaz ou inexistente, deve-se recorrer à Perícia Forense Computacional para que haja uma investigação e os criminosos punidos.

A perícia forense é o suporte técnico ao judiciário, realizado preferencialmente por pessoas com formação e capacidade para isso nas mais diversas áreas do conhecimento, para a resposta a quesitos para os quais o judiciário não dispõe de embasamento suficiente para julgar com precisão, esse suporte técnico é fornecido pelo perito designado para, utilizando seu conhecimento na área específica, periciar o objeto da investigação e apresentar respostas a quesitos na forma de laudo ou parecer técnico. Nesse contexto, a perícia forence, ou computação forense, pode ser definida, de forma superficial, mas direta, como a área da computação responsável por dar respostas ao judiciário em questões envolvendo sistemas computacionais, sejam os objetos da investigação equipamentos, mídias, estruturas computacionais ou que tenham sido utilizados como meio em atividades sob investigação.

Vários fatores podem determinar o que deve ser considerado na preparação da análise forense computacional, dentre os quais devemos observar o Amparo Legal (perito não é advogado e nem juiz), a Periculosidade (perito não é policial), o Conhecimento Técnico, o Planejamento e o Parecer Técnico (Laudo).

A maioria das atividades periciais em computadores tem como foco a análise de mídias de armazenamento como por exemplo disco rígido (interno e externo), a memória do computador com suas informações voláteis armazenadas temporariamente, contudo esse tipo de atividade é considerado como a análise forense computacional tradicional e temos também algumas particularidades voltadas ao âmbito de redes de computadores, a qual consiste na captura, armazenamento, manipulação e análise de dados que trafegam, ou trafegaram, em redes de computadores, como parte do processo de investigação. Contudo é importante termos em mente que a análise forense em redes de computadores não é um produto e nem substitui as soluções em segurança como firewall, IDS, antivírus e nem processos políticos de segurança previamente definidos.

Antes do início de qualquer procedimento técnico no uso de ferramentas e na manipulação de evidências, é necessário refletir e definir estratégias de abordagem em função das respostas a questões importantes, como por exemplo que equipamentos serão analisados, quais o sistemas operacionais, que tipo de tráfego passa por cada um deles, como garantir a integridades dos dados após a captura, em fim são muitos questionamentos que devem ser realizados durante a análise das informações.

O presente material tem como foco a introdução na análise forense, uma área bastante grande e muito legal de se conhecer, nos próximos posts tentarei melhorar o assunto sobre análise forense computacional e trarei questões bem interessantes sobre a área. Então bons estudos e até a próxima.

7 configurações que todo mundo deveria mudar no roteador de casa

Na hora de pensar na segurança dos dispositivos domésticos, muita gente acaba esquecendo do roteador. E trata-se de um esquecimento perigoso, já que um roteador sem segurança pode ser invadido com muita facilidade. Essa falta de atenção à segurança dos roteadores já permitiu até mesmo que um grupo de hackers criasse uma botnet com roteadores brasileiros para fazer ataques DDoS.

As configurações de fábrica do seu roteador, portanto, não são seguras, e é importante que você altere ao menos algumas opções delas. Para acessá-las, basta abrir um navegador e digitar o endereço do seu roteador na barra de endereços. Em geral, esse endereço é um número que vem escrito na documentação do roteador: 192.168.1.1, 192.168.2.1 e 192.168.1.10 são alguns dos endereços mais comuns, mas esse número varia bastante.

Uma vez que você consiga acessar as configurações do seu roteador, veja a seguir as principais mudanças que você deve fazer:

Fonte: Olhar Digital

Os riscos de Pokémon Go para o ambiente corporativo

O game Pokémon Go, desenvolvido pela Niantic em parceria com a Nintendo, é um dos assuntos mais comentados do momento, não só pela tecnologia embarcada, mas pela polêmica que está sendo gerada em torno dele. Mesmo que esteja disponível apenas em alguns países, o jogo de realidade aumentada já foi baixado por milhões de pessoas em todo o mundo, além de ser responsável por aumentar o valor das ações da Nintendo em 40% desde o seu lançamento. Apesar de todo esse sucesso, o Pokémon Go apresenta características que podem representar riscos para usuários e sistemas de TI. Veja abaixo alguns dos principais pontos:

Nível de acesso

Os desenvolvedores afirmam que o erro foi corrigido, mas primeira versões do app carregavam problemas no nível de autorização para utilização de dados do usuário. Ao fazer o login no app com uma conta Google, o jogador permitia que o app e, por consequência, seus desenvolvedores e qualquer pessoa com acesso à base de dados de usuários, acesso total total à e-mails, documentos, histórico de navegação e fotos.

O app também utiliza os recursos de localização por GPS do smartphone enquanto está em execução, mantendo um histórico de localização do usuário, e já há notícias de pessoas sendo atraídas para golpes e furtos enquanto procuram pelos pokémons. Uma vez que o dispositivo móvel do jogador é roubado, com ele também são levadas informações, dados e e-mails corporativos, um risco grave de perda de informações para as empresas.

Conexão de dados

O usuário necessita de uma boa conexão de dados para conseguir jogar. Levando em consideração a alta popularidade do game, os jogadores podem perfeitamente utilizar a rede e conexões de dados móveis das empresas onde trabalham para capturar seus “pikachus”. O alto tráfego e consumo de dados podem impactar a qualidade de rede e os planos móveis corporativos, gerando custos para as companhias.

Versões maliciosas do app

Devido ao alto volume de novos usuários, os servidores oficiais não estão conseguindo atender todos os novos pedidos de conexão do app, além disso a Niantic não disponibilizou oficialmente o jogo em todo o mundo. A solução encontrada pelos usuários é a instalação a partir de arquivos APK hospedados em servidores espelho que podem, na verdade, hospedar malwares. Já se notou também a prática de phishing aliada ao app, em que software malicioso é disfarçado para parecer, por exemplo, um manual do usuário ou pacotes de recursos especiais para serem utilizados na brincadeira. Ao executar esse app, o usuário tem seus dados, fotos, contas e senhas roubados e pode ser vítima de um ataque do tipo ransomware em que o cibercriminoso só permite acesso aos dados mediante pagamento de um resgate.

Para se proteger, as empresas devem criar novas políticas de segurança que impeçam a conexão com os servidores do app, devem também fazer uma monitoria da carga de utilização de suas redes, para identificar a execução e uso do jogo em suas instalações. É possível também instalar recursos avançados de segurança no próprio dispositivo móvel que permitem aplicar as políticas de segurança, monitoria de conexão e busca por software e conexões maliciosas, impedindo a execução de app que podem trazer riscos e protegendo usuários e sistemas de falhas de segurança.

Autor: Edison Figueira – Chief Product Officer da BLOCKBIT.
Site: Blockbit – Blog