Aluno: Leandro Santiago da Silva. Artigo. Sistemas de controle de versão

Tamanho: px
Começar a partir da página:

Download "Aluno: Leandro Santiago da Silva. Artigo. Sistemas de controle de versão"

Transcrição

1 Aluno: Leandro Santiago da Silva Artigo Sistemas de controle de versão Maringá/PR UEM 2011

2 1 Resumo Sistemas de controle de versão permitem um maior controle sobre documentos digitais e são amplamente utilizados em muitas áreas, sendo a mais conhecida a de desenvolvimento de softwares de computador. Seu uso permite um maior controle sobre documentos que costumam sofrer atualizações frequentes por várias pessoas, quase sempre remotamente distantes. Seu uso se tornou, se não recomendado, essencial para todo processo de desenvolvimento de software, e entendê-los é essencial para desenvolver sistemas em equipe.

3 Índice 1. Resumo Introdução O que são sistemas de controle de versão Quando e porque utilizar VCS e o processo de software Tipos de sistemas de controle de versão Sistemas de controle de versão centralizados Sistemas de controle de versão distribuídos Sistemas de controle de versão embarcados Softwares disponíveis no mercado CVS Subversion Mercurial Bazaar Git Outros Darcs Monotone Serviços disponíveis Github Gitorious Google Code Launchpad Sourceforge BitBucket CodePlex A influência do desenvolvimento distribuído Ambientes de desenvolvimento e os VCS Eclipse e VCS Operações comuns Criar um repositório Copiar o projeto Buscar modificações Enviar modificações Comparar diferentes versões ou revisões Obter o histórico de modificações Criar forks Executar merges Conclusão Referências...27

4 Índice de Ilustrações Ilustração 1: Processo de fork/merge e tempo de linha de um projeto...8 Ilustração 2: Arquitetura de um sistema centralizado...11 Ilustração 3: Arquitetura de um sistema distribuído...12

5 4 2 Introdução O processo de desenvolvimento de software mudou muito desde seu surgimento, há décadas atrás. Pode-se até dizer que hoje tem um destaque maior do que o próprio desenvolvimento de hardware, embora ainda seja muito dependente deste. Com uma complexidade cada vez maior, é natural que haja uma maior necessidade maior de gerenciarmos o processo de desenvolvimento de um software. E é neste ponto que os sistemas de controle de versão ganham destaque. Um sistema de controle de versão VCS, do inglês Version Control System é um software capaz de gerenciar a criação e modificação de documentos, sejam eles textos, imagens, arquivos binários, tanto no espectro temporal quanto na manipulação destes documentos por vários membros de uma mesma equipe. Por armazenar todo o histórico de modificações destes documentos e permitirem seu acesso em qualquer momento do projeto, um VCS também atua como ferramenta de backup destes documentos. Recentemente o controle de versão foi embutido em alguns sistemas operacionais para gerenciar, em baixo nível, os arquivos do sistema de arquivos. Usualmente são classificados em sistemas centralizados ou sistemas distribuídos, devido à forma forma como organizam o acesso aos documentos versionados.

6 5 3 O que são sistemas de controle de versão De maneira breve, um sistema de controle de versão é um software capaz de gerenciar a criação e o desenvolvimento de um ou mais documentos no decorrer do tempo. Embora sua principal utilização atualmente seja no controle de códigos de software de computador, não existem restrições quanto ao seu uso, podendo ser utilizado para versionar qualquer tipo de arquivo ou mesmo embutido em outras aplicações que visem o gerenciamento de documentos do usuário, tais como editores de textos, editores de imagens ou vídeo, etc. Tradicionalmente os VCS contam com uma base de dados chamada de repositório. É esta base que armazena todo o conteúdo dos documentos versionados, e todo documento versionado deve estar registrado neste repositório. Diferentes VCS tratam seus repositórios de maneiras igualmente diferentes. Para os sistemas centralizados, este repositório é único e encontra-se num local comum a todos membros da equipe, e deve estar sempre disponível para que estes possam efetivar as modificações feitas nos documentos versionados. Estes membros têm em seus computadores uma cópia de uma determinada versão dos documentos contida no repositório. A esta cópia dá-se o nome de cópia de trabalho. Já os sistemas distribuídos (DVCS, do inglês distribuited version control system), embora permitam uma simulação de um sistema centralizado (podendo substituir completamente o uso este), não possuem o conceito de cópia de trabalho, tratando cada cópia como um repositório completo dos documentos, contendo todo o histórico dos documentos contidos naquele repositório. Estes sistemas são chamados distribuídos por não funcionarem numa arquitetura clienteservidor, mas numa arquitetura peer-to-peer, onde cada membro é capaz de colaborar com o repositório de qualquer outro membro, sem requerer um serviço central. E esta é a principal razão do sucesso desta arquitetura nos últimos anos. Outra utilização comum de VCS ocorre em aplicações baseadas na manipulação de documentos. Neste caso não existe o conceito explícito de repositório ou cópia de trabalho: o próprio arquivo atua como um repositório, contendo não só a versão corrente do conteúdo do arquivo como uma monografia -, mas todo o histórico de modificação do mesmo. Neste caso a própria aplicação se encarrega de permitir ao usuário o gerenciamento e manipulação de todas estas versões de seu documento, contidas num único arquivo-repositório. Embora sejam extramente úteis no desenvolvimento de pequenos projetos normalmente

7 6 manipulados por poucas pessoas ou mesmo um só membro, têm evoluído de forma a apresentar recursos que facilitem o gerenciamento de grandes projetos onde trabalham várias equipes de até milhares de membros. Com o advento do software livre, modalidade de desenvolvimento e distribuição de software que permite que pessoas fora de uma equipe local possam contribuir com no desenvolvimento de um projeto, os VCSs se tornaram indispensáveis neste processo.

8 7 4 Quando e porque utilizar A razão mais imediata para se utilizar um VCS é, no contexto do desenvolvimento de um software, facilitar o controle sobre o código que está sendo desenvolvido, e utilizá-lo como método de acompanhamento deste desenvolvimento, como será visto adiante. Por meio do histórico de desenvolvimento, é possível saber o que está sendo modificado, por quem e porque e quando. Mas há outras características interessantes, como por exemplo o melhor gerenciamento de equipes trabalhando num mesmo projeto, mas em diferentes funcionalidades, sem que precise criar projetos distintos. De tempos em tempos, quando as funcionalidades se tornam estáveis, é realizado o processo de merge, onde o código da funcionalidade desenvolvida fora da árvore principal do processo é unida a esta. Junto a este processo de merge, ou mesclagem, em tradução livre, surgem problemas como os conflitos de código, quando um mesmo código foi modificado por diferentes membros. Um bom VCS apresenta aos seus usuários mecanismos de resolução destes conflitos. Complementar ao processo de merge, existe o fork, ou, em forma traduzida, bifurcação. Um fork constitui na criação de uma cópia de um repositório que desenvolverá uma versão alternativa do projeto versionado. Pode ser ou não criado no intuito de sofrer processo de merge com o projeto inicial ou mesmo com outro fork. Processos de fork/merge são especialmente e frequentemente utilizados no desenvolvimento de softwares de código aberto

9 8 Ilustração 1: Processo de fork/merge e tempo de linha de um projeto Na ilustração 1 podemos ver um exemplo de representação do desenvolvimento de um projeto, onde vemos vários processos de fork e merge. As linhas pretas representam forks, as vermelhas representam os merges e as linhas azuis as chamadas versões estáveis do software. A direção das setas acompanha o espectro temporal. Nesta figura, os retângulos verdes representam as versões da chamada árvore principal do projeto, enquanto que os amarelos representam as versões que desenvolvem funcionalidades alternativas e os azuis representam os marcos do desenvolvimento em que existe um produto ou artefato estável e usável. Na mesma ilustração, o retângulo cor-de-rosa representa uma versão do projeto que foi abandonada, ou seja, o código ali criado não foi reaproveitado pelo projeto. O processo de fork/merge é gerenciado de formas distintas pelos variados softwares existentes no mercado.

10 9 5 VCS e o processo de software Um VCS pode influenciar de forma profunda o processo de software de uma organização. Embora seu uso se concentre nas fases de projeto e de construção de um software, eles podem ser utilizados em outras fases que não envolvem código, como na criação da documentação e dos documentos anexos ao desenvolvimento da aplicação, tais como arquivos de diagramas, ou mesmo em ferramentas de diagramação que possuem um versionador integrado. Há vários aspectos ao analisarmos esta influência, como segue: 1. Falta de organização entre os membros de uma equipe, principalmente se estiverem geologicamente distantes, sobre que funcionalidade foi implementada, por quem foi implementada, quando e porque. Também auxilia na descoberta de bugs e reversão destes. Manter manualmente cópias de segurança backup de um software sempre que houver uma mudança pode ser um processo dispendioso e difícil de gerenciar. 2. Esta falta de organização pode dificultar a divisão das tarefas entre diferentes membros da equipe, ou mesmo entre diferentes times de desenvolvimento de um mesmo projeto. A utilização de um VCS ajuda na organização destes times/membros ao longo do processo de desenvolvimento. 3. Acompanhamento e métrica: Por meio do histórico do desenvolvimento do projeto, é possível fazer um acompanhamento objetivo do projeto. Isso pode ser feito por meio de várias métricas, como por exemplo número de linhas inseridos ou removidos ao longo do projeto, partes do sistema que tiveram maior dedicação dos desenvolvedores, tempo utilizado no desenvolvimento de cada funcionalidade, bem como quais desenvolvedores trabalharam mais no processo. A utilização de ferramentas dedicadas na mineração destas informações baseadas no histórico do repositório do projeto podem realizar estas tarefas. 4. Esta métrica permite um melhor planejamento de futuros projetos, baseados nas deficiências encontradas no processo atual, facilitando o processo de aprendizado e melhoria no trabalho da equipe. No entanto, somente auxiliado pelo uso de boas praticas de engenharia de software um VCS pode ter um bom impacto no processo de software.

11 10 6 Tipos de sistemas de controle de versão Como já dito anteriormente, podemos categorizar os VCSs segundo a maneira como tratam o repositório do projeto. Segundo estes critérios, temos duas possibilidades: sistemas distribuídos e sistemas centralizados. 6.1 Sistemas de controle de versão centralizados Este tipo de VCS possui uma arquitetura mais rígida, onde existe uma classificação entre as partes: ou se é o próprio repositório central, ou se é uma cópia de trabalho. O repositório central frequentemente localiza-se no servidor central, que serve aos usuários uma revisão contida no seu histórico. Todo o histórico do projeto está neste único servidor, e a única maneira de efetivar uma mudança, ou seja, criar uma revisão, é por meio deste servidor. Ele deve sempre estar ativo para que os membros da equipe possam colaborar no desenvolvimento do projeto. E única e exclusivamente por meio dele que os membros da equipe podem colaborar com o projeto e permitir que os outros membros tenham acesso às funcionalidades desenvolvidas. Esta arquitetura rígida tem feito com que grandes projetos migrem para sistemas distribuídos, como será explicado adiante. Além de mais simples, esta arquitetura pode ser benéfica em projetos pequenos, onde a colaboratividade entre os membros sem passar pelo servidor central não seja requerido, como quando necessita-se que todo e qualquer trabalho realizado sobre o projeto fique registrado de forma centralizada, seja para controle quanto para consulta. Outra deficiência deste modelo é a possibilidade de perda de dados por problemas neste repositório central. Caso algum problema aconteça a ele, mesmo a cópia de trabalho com a versão mais recente não terá o histórico do desenvolvimento do projeto. Uma abordagem para resolver este problema seria manter cópias de segurança manuais deste repositório, mas esta abordagem é contrária aos próprio sistema. Como o próprio repositório é, do ponto de vista do sistema operacional do servidor, composto de arquivos, poderíamos pensar em versionar os arquivos do próprio repositório, mas isto entraria num processo de recursão infinita, se considerarmos o problema inicial.

12 11 Ilustração 2: Arquitetura de um sistema centralizado Na ilustração 2 podemos ver a representação de um sistema centralizado. O retângulo alaranjado representa o servidor central, com o repositório, enquanto os retângulos verdes representam as cópias de trabalho. 6.2 Sistemas de controle de versão distribuídos Em oposição aos VCSs centralizados, houve nos últimos anos uma explosão de novos softwares para controle distribuído. Como o desenvolvimento de software se dá de forma cada vez mais distribuída, aplicações preparadas para gerenciar sistemas distribuídos se tornaram, senão benéficas, essenciais no desenvolvimento de software. Nos sistemas de controle de versão distribuídos (DVCS), toda cópia de um projeto versionado é efetivamente um repositório, com algumas exceções 2, e costuma-se dar a este o nome de clone. A arquitetura de um DCVS, diferentemente dos sistemas centralizados, que são árvores de altura igual a um, tem o aspecto de uma rede onde todos os nós são capazes de ter ligações entre si. Estas ligações normalmente são unidirecionais, ou seja, ou de envio ou de recebimento de dados, embora seja possível ter as duas modalidades ativadas. Ainda sim, é possível e desejável a existência de um ou mais repositórios centrais, que podem ser simulados como repositórios que não possuem manipulação direta dos membros da equipe. Todo nó da rede é um repositório completo, que pode trabalhar de forma independente dos outros. Isso permite a existência de equipes trabalhando em versões paralelas de um projeto sem que interfiram no projeto principal. 2 O software Monotone, como será visto adiante, possui o conceito de cópia de trabalho, mas esta opera sobre um arquivo local, que representa o repositório em si. É sobre este arquivo que são efetuados processos de gerenciamento.

13 Devido a esta flexibilidade natural, DVCSs têm tomado o lugar dos sistemas centralizados em grandes projetos pelas suas inúmeras vantagens Ilustração 3: Arquitetura de um sistema distribuído Na ilustração 3 podemos ver um exemplo de sistema distribuído, onde os nós alaranjados são cópias do repositório central representado pelo retângulo verde. Nota-se que nem todos os nós estão ligados neste repositório central, pelo simples fato de ele não ser requerido, mas é comummente utilizado como referência àqueles que acharem necessário. 6.3 Sistemas de controle de versão embarcados Estes VCSs são comumente embarcados em aplicações não relacionadas ao desenvolvimento de softwares de computador, como editores de texto ou planilhas eletrônicas. Exemplos de softwares que possuem um sistema de versionamento de documentos: LibreOffice 4 /OpenOffice 5 Microsoft Office 6 Apple iwork 7 Alguns sistemas operacionais permitem o versionamento dos arquivos de forma integrada ao núcleo do sistema, independente de qualquer aplicação. Isto permite que o usuário mantenha um

14 13 histórico de qualquer arquivo armazenado, podendo acessar o conteúdo deles em qualquer instante desde o momento em que foram criados. Exemplos de sistemas de arquivos com este suporte ZFS, suportado no Solaris, OS X e FreeBSD LFS 8, suportado no Linux Time Machine 9, disponível para OS X Alguns criadores de VCS oferecem também uma camada em nível de programação das funcionalidades que oferece. Isto permite que programadores criem novas aplicações que utilizem versionamento de arquivos sem a necessidade de reescrever toda uma arquitetura para isso. Exemplos de bibliotecas disponíveis: LibGit2 10, Git para C, C++, Ruby e outras LibQtGit 11, Git integrada ao framework Qt Libsvn 12, Subversion para C hg4j 13, Mercurial para Java

15 14 7 Softwares disponíveis no mercado Há vários fornecedores de softwares de controle de versão voltados ao desenvolvimento de software, mas este artigo foca-se somente nos que são caracterizados como software de código aberto. 7.1 CVS 14 Acrônimo de Concurrent Versions System, foi um dos primeiros VCSs centralizados de código aberto disponível, e foi por muito tempo o mais amplamente utilizado em projetos de software aberto. Surgiu no início da década de 90 e desde então não mudou muito sua forma de funcionamento, sendo considerado por muitos inadequado ao processo de desenvolvimento de software atual. Possui um gerenciamento rígido, onde um repositório gerencia vários módulos, onde cada um destes módulos é um projeto. Pelo seu tempo de vida, é considerado um software estável e maduro, mas seu uso teve um declínio nos últimos anos, vindo a ser substituído por outros VCSs centralizados, como o Subversion, ou mesmo sistemas distribuídos. Atualmente os grandes projetos de código aberto em ativos já não mais o utilizam. 7.2 Subversion 15 O Subversion também chamado de SVN surgiu como um substituto para o CVS e seu desenvolvimento é gerenciado pela Apache Foundation 16. É desenvolvido de forma ativa desde o ano 2000 e é talvez o VCS centralizado de maior uso no mundo, tanto por projetos de código aberto quanto proprietários. É um serviço oferecido por boa parte das empresas de hospedagem, e tem como principais usuários os projetos da Apache Foundation e outros projetos como a linguagem de programação Ruby Mercurial 18 Desenvolvido desde 2005, é um VCS distribuído e de código aberto que vem atraído muito a

16 15 atenção de vários grandes projetos de código aberto. Tem como mais famosos usuários: Mozilla Foundation 19 Linguagem de programação Go 20 (da empresa Google 21 ) NetBeans 22 (da empresa Oracle 23 ) OpenJDK 24, versão comunitária da máquina virtual Java da Oracle. VIM 25, famoso editor de textos. XEN 26, conjunto de ferramentas para virtualização 7.4 Bazaar 27 O Baazar é um VCS distribuído desenvolvido desde 2007 pela empresa Canonical para o desenvolvimento de seus projetos no portal de software Launchpad, dedicado ao desenvolvimento de softwares para seu sistema operacional Ubuntu, sendo este inclusive hospedado no portal Launchpad. Ainda assim, embora possua esta integração com o portal, o Bazaar permite a utilização fora daquele. Sua principal filosofia é tornar fácil o processo de colaboratividade em projetos de código aberto. Como principais usuários, temos: Ubuntu 28 MySQL 29, da empresa Oracle GNU Emacs 30, famoso editor de textos

17 Git 31 Desenvolvido desde 2005 pelos mesmos desenvolvedores do sistema operacional Linux. É um DVCS. Foi pensado pelos seus desenvolvedores para não fazer o que o CVS faz 32. Seu principal desenvolvedor é Linus Torvalds, também criador do Linux, e seu nome no projeto serve para alguns como atestado de qualidade do Git, por ser Linus talvez o desenvolvedor mais famoso do mundo e considerado, segundo a revista estadunidense Time, uma das 100 mais importantes pessoas do século 33. É criticado por muitos como difícil 34, devido à pouca integração com ambientes de desenvolvimento consagrados, e por requerer um conhecimento maior de outras ferramentas do sistema operacional para ser utilizas, bem como ter comandos mais complexos, se comparado com sistemas similares, como o Mercurial. Como principais usuários, possui: Linux 35 Plataforma KDE 36 Plataforma GNOME 37 Sistema operacional Android 38 Perl 39 (linguagem de programação) X.org 40 (principal implementação do protocolo X11) Rails 41 (framework Ruby) Samba 42 (implementação em código aberto do protocolo SMB, da Microsoft) Apresentação de Linus Towarlds, na Conferência Google Talk, em O vídeo encontra-se disponível no endereço:

18 Outros Darcs 43 Desenvolvido com base na teoria da álgebra dos patches 44, foi pensado inicialmente como um substituto do já não mais mantido GNU Arch, VCS desenvolvido pela GNU Foundation 45. É um DVCS Monotone 46 O Monotone é desenvolvido ativamente desde 2003 e seu modelo de funcionamento serviu de inspiração para o Git, sendo, como este, um sistema distribuído. Como diferencial, seu repositório é contido num arquivo único, de fácil distribuição, pois pode ser copiado como um arquivo comum. Todos os desenvolvedores precisam ter uma cópia local deste arquivo, de onde se obtém uma cópia de trabalho. Este arquivo é então utilizado para sincronização com outros repositórios do mesmo projeto. Seu mais famoso usuário é o projeto Pidgim 47, programa de mensagens instantâneas multiprotocolo

19 18 8 Serviços disponíveis Embora existam custos na hospedagem de repositórios de software, e existem empresas que oferecem estes serviços de forma paga, existem várias iniciativas que incentivam a criação de softwares de código aberto por meio da hospedagem gratuita dos repositórios e alguns com vários outros serviços que acompanham o desenvolvimento de um software, tal como ferramenta de gerenciamento de projetos, wiki, registro de bugs, etc. 8.1 Github 48 Como o nome sugere, é voltado à hospedagem de projetos que utilizam o Git. Possui, como slogan, a frase Social coding, ou Desenvolvimento de código social, numa tradução livre. Possui, além disso, ferramenta de acompanhamento de bugs (bug tracker). Exemplos de projetos hospedados: Facebook 49 Jquery 50 Rails MongoDB Gitorious 52 Outro serviço dedicado ao Git, sendo o próprio serviço um software livre, tendo seu códigofonte disponível. Dentre os projetos hospedados nele, destacam-se: Qt 53 (framework para desenvolvimento de aplicações na linguagem C++) OpenSUSE 54, famoso sistema operacional baseado em Linux 8.3 Google Code 55 Serviço oferecido pela empresa Google, que hospeda seus próprios projetos neste portal, embora

20 19 disponibilize-o como serviço para quem desejar hospedar projetos de código aberto. Possui vários recursos como wiki e gerenciamento de bugs, embora não ofereça exclusivamente um serviço de controle de versão, tendo o cliente a possibilidade de escolher entre o Subversion e o Mercurial. A maior parte dos projetos em código aberto da Google estão hospedados lá, como o framework para web GWT Launchpad 57 Portal gerenciado pela empresa Canonical 58, visa a hospedagem de softwares para o sistema operacional Ubuntu e a utilização do VCS Bazaar 59. Dentre os softwares que o utilizam está o próprio Ubuntu. 8.5 Sourceforge 60 Conhecido como o repositório de código aberto do mundo, é o mais antigo ainda em atuação e oferece vários serviços, como gerenciamento de projetos, controle de versão, wiki, dentre outros. Estima-se que hospede mais de 230 mil projetos e possui mais de 2 milhões de usuários 61 Devido à questões políticas, bloqueou seu acesso aos países considerados inimigos dos EUA 62, como Cuba, Irã e Coréia do Norte, o que provocou algum descontentamento pro parte de alguns usuários 63. Oferece várias opções de VCS: Git, Subversion, Bazaar, CVS e Mercurial, além de acesso à banco de dados. 8.6 BitBucket 64 Oferece o serviço de hospedagem de projetos que utilizam o Mercurial. Limita a cinco usuários por projeto de código aberto no plano gratuito, mas possui planos pagos para um número maior que este ou para a hospedagem de softwares proprietários. Dentre os usuários encontra-se a Opera 65, que

21 20 desenvolve um navegador web de mesmo nome. 8.7 CodePlex 66 Portal gerenciado pela empresa Microsoft, dedica-se ao desenvolvimento de aplicações de código aberto para a plataforma Windows. Oferece o Subversion como VCS. 66

22 21 9 A influência do desenvolvimento distribuído Não só os VCSs influenciam o processo de desenvolvimento de software, mas o próprio processo de desenvolvimento de softwares de forma distribuída favoreceu o desenvolvimento de VCSs, pois demandou a criação destes. Um caso notável deste processo foi o desenvolvimento do Git. Segundo Linus Torvalds, principal desenvolvedor do Linux, durante os dez primeiros anos de desenvolvimento de desenvolvimento do Linux, nenhum VCS foi utilizado, devido ao fato de nenhum de código aberto atender as necessidades do projeto. Mas o desenvolvimento do Linux encontrava-se de maneira cada vez mais acelerada, tendo contribuição de pessoas de todo o mundo. Este é o típico caso onde um sistema VCS distribuído é essencial. Para contornar este problema, os desenvolvedores do Linux desenvolveram um software que fosse capaz de resolver este problema. Por isso não é complicado entender que a demanda do mercado por VCSs distribuídos é que favoreceu o seu desenvolvimento, e não o contrário. 10 Ambientes de desenvolvimento e os VCS Outro aspecto relacionado ao sucesso de um VCS é a sua integração com outras ferramentas, e principalmente com ambientes de desenvolvimento. Um ambiente de desenvolvimento é um conjunto de ferramentas que trabalham de forma integrada para permitir o desenvolvimento de um software. Existem no mercado diversos ambientes de desenvolvimento, alguns mais complexos, que auxiliam desde as fases de captura e análise de requisitos até a codificação, testes e distribuição. Todo este processo pode ser acompanhado por um VCS, auxiliando no controle sobre o desenvolvimento do sistema. O suporte a VCSs pode vir nativamente com o ambiente de desenvolvimento ou com o uso de plugins ou mesmo extensões. São exemplos de ambientes de desenvolvimento de código aberto com suporte a vários VCSs: Eclipse

23 22 NetBeans CodeBlocks 68 KDevelop 69 Anjuta 70 Emacs Qt Creator 71 MonoDevelop 72 IntelliJ IDEA 73 Komodo 74 Ainda sim é perfeitamente possível utilizar a maioria dos VCSs externamente aos ambientes de desenvolvimento, por meio de bibliotecas de funções que permitem que o programador embarque o VCS em seu software, ou por meio de aplicações gráficas ou em linha-de-comando para gerenciar o repositório de código de um projeto. 10.1Eclipse e VCS O ambiente de desenvolvimento integrado (Integrated Development Environment, ou IDE) Eclipse é um dos mais versáteis disponíveis hoje no mercado. E isto se reflete também no seu suporte à VCS. Por ser desenvolvido de forma comunitária e bastante democrática, o suporte à VCS no Eclipse é desenvolvido na forma de subprojetos, conforme segue a lista: Mercurial: Git: Egit: Subversion: Subeclipse: Bazaar:

24 23 CVS: Embora estes projetos possuam algumas funcionalidades distintas, são apresentados para o programador sob uma mesma interface.

25 24 11 Operações comuns Embora sejam softwares diferentes, todos os VCSs, sejam centralizados ou distribuídos, possuem algumas operações comuns, necessárias para que cumpram seu papel. Os exemplos são executados num prompt do sistema operacional, e serão mostrados exemplos com o Git (distribuído) e Subversion (centralizado). Os parâmetros dentro de [] são opcionais. A expressão nó indica repositório remoto deverá ser consultado Criar um repositório É o primeiro passo para se usar um VCS. Exemplos de uso: Git: mkdir project; cd project; git init Subversion: svnadmin create project/ 11.2 Copiar o projeto Git: git clone git://url.do.reposotorio.git Subversion: svn checkout svn://url.do.reposotorio 11.3 Buscar modificações Trata-se da tarefa de atualizar o repositório local ou cópia de trabalho para a última versão Git: git pull [nó] Subversion: svn update 11.4 Enviar modificações Git: git commit -a -m mensagem ; git push [nó --all] [branch] Subversion: svn commit -m messagem 11.5 Comparar diferentes versões ou revisões Git: git diff d423e886888a2da4341e5e4cac fbea81e # código da revisão Subversion: git diff -r 30 # número da revisão 11.6 Obter o histórico de modificações Git: git log

TUTORIAL PRÁTICO SOBRE Git. Versão 1.1

TUTORIAL PRÁTICO SOBRE Git. Versão 1.1 TUTORIAL PRÁTICO SOBRE Git por Djalma Oliveira Versão 1.1 "Git é um sistema de controle de revisão distribuida, rápido e escalável" (tradução rápida do manual). Basicamente é

Leia mais

Controle de Versão com GIT

Controle de Versão com GIT Controle de Versão com GIT Túlio Toffolo tulio@toffolo.com.br http://www.toffolo.com.br Conteúdo Extra Algoritmos e Estruturas de Dados História do GIT Linus usa BitKeeper para gerenciar o código de suas

Leia mais

Controle de Versão de Software. Luiz Jácome Júnior

Controle de Versão de Software. Luiz Jácome Júnior Controle de Versão de Software Luiz Jácome Júnior Motivação Alguém já sobrescreveu o código de outra pessoa por acidente e acabou perdendo as alterações? Tem dificuldades em saber quais as alterações efetuadas

Leia mais

Versionamento de Código. Núcleo de Desenvolvimento de Software

Versionamento de Código. Núcleo de Desenvolvimento de Software Versionamento de Código Núcleo de Desenvolvimento de Software Por quê? Facilidades de utilizar um sistema de versionamento de código. Várias versões Quando se salva uma nova versão de um arquivo, a versão

Leia mais

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Ferramenta de apoio a gerência de configuração de software Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Gerência de Configuração

Leia mais

Introdução ao Git. Laboratório de Programação. Luísa Lima, Pedro Vasconcelos, DCC/FCUP. Março 2015

Introdução ao Git. Laboratório de Programação. Luísa Lima, Pedro Vasconcelos, DCC/FCUP. Março 2015 Introdução ao Git Laboratório de Programação Luísa Lima, Pedro Vasconcelos, DCC/FCUP Março 2015 Porquê controlo de versões? Um sistema de controlo de versões (VCS) é um ferramenta integrada que possibilita

Leia mais

Como contribuir com projetos de software livre

Como contribuir com projetos de software livre Como contribuir com projetos de software livre Luciana Fujii Pontello 1 / 29 Software livre? 2 / 29 Por que contribuir? Software livre Liberdade não preço Linux, Ubuntu? Sim, mas não só Quatro liberdades

Leia mais

Sistema de Controle de Versão - CVS

Sistema de Controle de Versão - CVS - CVS Adailton Magalhães Lima adailton@webapsee.com Não há nada permanente exceto a modificação. Heráclitos 500 a.c. Adaptado de ESTUDO E PROPOSTA DE MODELOS DE PROCESSO DE SOFTWARE PARA O LABORATÓRIO

Leia mais

Controle de Versão. Prof. Msc. Bruno Urbano Rodrigues. bruno@urbano.eti.br

Controle de Versão. Prof. Msc. Bruno Urbano Rodrigues. bruno@urbano.eti.br Controle de Versão Prof. Msc. Bruno Urbano Rodrigues bruno@urbano.eti.br Apresentação - Docente Mestre em Ciência da Computação na Universidade Federal de Goiás. Especialista em Gestão de Software pela

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Cluster, Grid e computação em nuvem Slide 8 Nielsen C. Damasceno Introdução Inicialmente, os ambientes distribuídos eram formados através de um cluster. Com o avanço das tecnologias

Leia mais

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE Agosto 2007 Sumário de Informações do Documento Tipo do Documento: Manual Título do Documento: MANUAL DE UTILIZAÇÃO DO

Leia mais

3 Estudo de Ferramentas

3 Estudo de Ferramentas 3 Estudo de Ferramentas Existem diferentes abordagens para automatizar um processo de desenvolvimento. Um conjunto de ferramentas pode ser utilizado para aperfeiçoar o trabalho, mantendo os desenvolvedores

Leia mais

Software Livre. Acesso ao código fonte Alterar o código fonte Redistribuir Utilizar como desejar

Software Livre. Acesso ao código fonte Alterar o código fonte Redistribuir Utilizar como desejar Software Livre Acesso ao código fonte Alterar o código fonte Redistribuir Utilizar como desejar Linux Licença GPL (Licença Pública Geral) Linux Licença GPL (Licença Pública Geral) - A liberdade de executar

Leia mais

Curso de Linux Básico

Curso de Linux Básico Curso de Linux Básico Oficina TecnoJovem Outubro/2013 Instalação de Programas Introdução Pacotes Gerenciamento de Pacotes Exemplos Material baseado na Documentação Ubuntu, disponível na Internet (WIKI)

Leia mais

Universidade Federal de Goiás. Alexandre Ferreira de Melo CERCOMP / UFG

Universidade Federal de Goiás. Alexandre Ferreira de Melo CERCOMP / UFG Universidade Federal de Goiás Ubuntu Desktop Alexandre Ferreira de Melo CERCOMP / UFG Conpeex / 2010 Agenda Introdução Conceitos Categorias de Software História do Linux Arquitetura do Linux Ubuntu Projeto

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

Git e contribuição para projetos Open Source. Bruno Orlandi

Git e contribuição para projetos Open Source. Bruno Orlandi Git e contribuição para projetos Open Source Bruno Orlandi Bruno Orlandi 4º Ano Ciências de Computação ICMC USP PET Computação HTML5 Web e Mobile Gosta de compartilhar conhecimento @BrOrlandi Instalando

Leia mais

Gerenciamento de configuração. Gerenciamento de Configuração. Gerenciamento de configuração. Gerenciamento de configuração. Famílias de sistemas

Gerenciamento de configuração. Gerenciamento de Configuração. Gerenciamento de configuração. Gerenciamento de configuração. Famílias de sistemas Gerenciamento de Gerenciamento de Configuração Novas versões de sistemas de software são criadas quando eles: Mudam para máquinas/os diferentes; Oferecem funcionalidade diferente; São configurados para

Leia mais

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG Marco T. A. Rodrigues*, Paulo E. M. de Almeida* *Departamento de Recursos em Informática Centro Federal de Educação Tecnológica de

Leia mais

Salvando modificações localmente (commit) Enviando modificações para o servidor (push) Sinalizando versão estável (tag)

Salvando modificações localmente (commit) Enviando modificações para o servidor (push) Sinalizando versão estável (tag) Salvando modificações localmente (commit) Enviando modificações para o servidor (push) Sinalizando versão estável (tag) Desfazendo modificações (reset) Verificar status de repositório 5 Não vamos fazer,

Leia mais

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

Leia mais

Como é o desenvolvimento de Software?

Como é o desenvolvimento de Software? Como é o desenvolvimento de Software? Fases do Desenvolvimento Modelo Cascata Define atividades seqüenciais Outras abordagens são baseadas nesta idéia Especificação de Requisitos Projeto Implementação

Leia mais

Gerência de Configuração. Professor: Dr. Eduardo Santana de Almeida Universidade Federal da Bahia esa@dcc.ufba.br

Gerência de Configuração. Professor: Dr. Eduardo Santana de Almeida Universidade Federal da Bahia esa@dcc.ufba.br Gerência de Configuração Professor: Dr. Eduardo Santana de Almeida Universidade Federal da Bahia esa@dcc.ufba.br Introdução Mudanças durante o desenvolvimento de software são inevitáveis: os interesses

Leia mais

Figura 1 - Arquitetura multi-camadas do SIE

Figura 1 - Arquitetura multi-camadas do SIE Um estudo sobre os aspectos de desenvolvimento e distribuição do SIE Fernando Pires Barbosa¹, Equipe Técnica do SIE¹ ¹Centro de Processamento de Dados, Universidade Federal de Santa Maria fernando.barbosa@cpd.ufsm.br

Leia mais

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer lugar e independente da plataforma, bastando para isso

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

IW10. Rev.: 02. Especificações Técnicas

IW10. Rev.: 02. Especificações Técnicas IW10 Rev.: 02 Especificações Técnicas Sumário 1. INTRODUÇÃO... 1 2. COMPOSIÇÃO DO IW10... 2 2.1 Placa Principal... 2 2.2 Módulos de Sensores... 5 3. APLICAÇÕES... 6 3.1 Monitoramento Local... 7 3.2 Monitoramento

Leia mais

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert: BRAlarmExpert Software para Gerenciamento de Alarmes A TriSolutions conta com um produto diferenciado para gerenciamento de alarmes que é totalmente flexível e amigável. O software BRAlarmExpert é uma

Leia mais

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho vi http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Administração de Redes de Computadores Resumo de Serviços em Rede Linux Controlador de Domínio Servidor DNS

Leia mais

CURSO BÁSICO DE PROGRAMAÇÃO AULA 8. Introdução ao Linux Introdução a linguagem C

CURSO BÁSICO DE PROGRAMAÇÃO AULA 8. Introdução ao Linux Introdução a linguagem C CURSO BÁSICO DE PROGRAMAÇÃO AULA 8 Introdução ao Linux Introdução a linguagem C Linux Linux é um termo utilizado para se referir a sistemas operacionais que utilizem o núcleo Linux. Existem muitas distribuições

Leia mais

Como contribuir com projetos de software livre

Como contribuir com projetos de software livre Como contribuir com projetos de software livre Luciana Fujii Pontello 1 / 29 O que é software livre Sobre mim 2 / 29 Software livre? 3 / 29 O que é software livre Software livre Liberdade não preço Linux,

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Controle de Versão com CVS

Controle de Versão com CVS Controle de Versão com CVS Danilo Toshiaki Sato www.dtsato.com Treinamento ALESP SPL Agenda 1. Introdução 2. Conceitos Importantes 3. Operações mais comuns - Eclipse 4. Processo de Liberação SPL 5. Conclusão

Leia mais

ESTOQUE. Manual Estoque Atualizado em 29/06/2007 Pág. 1

ESTOQUE. Manual Estoque Atualizado em 29/06/2007 Pág. 1 MANUAL ESTOQUE Pág. 1 INTRODUÇÃO AO MÓDULO ESTOQUE Sua empresa seja de pequeno, médio, ou grande porte, precisa de um sistema que contemple as principais rotinas de controle de estoque. É para contornar

Leia mais

Sistema de Controle de Solicitação de Desenvolvimento

Sistema de Controle de Solicitação de Desenvolvimento Sistema de Controle de Solicitação de Desenvolvimento Introdução O presente documento descreverá de forma objetiva as principais operações para abertura e consulta de uma solicitação ao Setor de Desenvolvimento

Leia mais

Tutorial SVN Básico Engenharia de Software. Denise Notini Nogueira denotini@dcc.ufmg.br

Tutorial SVN Básico Engenharia de Software. Denise Notini Nogueira denotini@dcc.ufmg.br Tutorial SVN Básico Engenharia de Software Denise Notini Nogueira denotini@dcc.ufmg.br As vantagens do controle de Versão As principais vantagens de se utilizar um sistema de controle de versão para rastrear

Leia mais

A LIBERDADE DO LINUX COM A QUALIDADE ITAUTEC

A LIBERDADE DO LINUX COM A QUALIDADE ITAUTEC A LIBERDADE DO LINUX COM A QUALIDADE ITAUTEC O AMBIENTE OPERACIONAL QUE AGREGA A CONFIABILIDADE E O SUPORTE DA ITAUTEC À SEGURANÇA E À PERFORMANCE DO LINUX O LIBRIX É UMA DISTRIBUIÇÃO PROFISSIONAL LINUX

Leia mais

Consultoria sobre Joomla!

Consultoria sobre Joomla! Consultoria sobre Joomla! Joomla! (pronuncia-se djumla) é um CMS (Content Management System) desenvolvido a partir do Mambo. É escrito em PHP e roda no servidor web Apache ou IIS e banco de dados MySQL.

Leia mais

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados. BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br INTRODUÇÃO Hoje é

Leia mais

No mercado atual, podemos encontrar vários tipos de sistemas operacionais que fazem parte das seguintes classes:

No mercado atual, podemos encontrar vários tipos de sistemas operacionais que fazem parte das seguintes classes: Módulo 4 Sistema Operacional Sistemas Operacionais Neste módulo falaremos sobre alguns sistemas operacionais existentes no mercado, suas características, e conheceremos o básico das redes de computadores.

Leia mais

7 Mudanças Realizadas

7 Mudanças Realizadas 7 Mudanças Realizadas Este capítulo tem o objetivo de detalhar as mudanças realizadas no ambiente de trabalho da equipe estudada. Ele cita as alterações no produto de software utilizado pela equipe, que

Leia mais

I N F O R M Á T I C A. Sistemas Operacionais Prof. Dr. Rogério Vargas Campus Itaqui-RS

I N F O R M Á T I C A. Sistemas Operacionais Prof. Dr. Rogério Vargas Campus Itaqui-RS I N F O R M Á T I C A Sistemas Operacionais Campus Itaqui-RS Sistemas Operacionais É o software que gerencia o computador! Entre suas funções temos: inicializa o hardware do computador fornece rotinas

Leia mais

4 Estrutura do Sistema Operacional. 4.1 - Kernel

4 Estrutura do Sistema Operacional. 4.1 - Kernel 1 4 Estrutura do Sistema Operacional 4.1 - Kernel O kernel é o núcleo do sistema operacional, sendo responsável direto por controlar tudo ao seu redor. Desde os dispositivos usuais, como unidades de disco,

Leia mais

Controle de versão e fluxo de trabalho em projetos de desenvolvimento de software

Controle de versão e fluxo de trabalho em projetos de desenvolvimento de software Controle de versão e fluxo de trabalho em projetos de desenvolvimento de software Doutorado Multi-Institucional em Ciência da Computação UFBA UNIFACS UEFS terceiro@dcc.ufba.br 8 de novembro de 2008 Termos

Leia mais

SISTEMA DE MONITORAMENTO DE CONDIÇÕES CLIMÁTICAS

SISTEMA DE MONITORAMENTO DE CONDIÇÕES CLIMÁTICAS SISTEMA DE MONITORAMENTO DE CONDIÇÕES CLIMÁTICAS SUMÁRIO 1 Introdução...5 2 Sistema de monitoramento climático Ressonare...7 2.1 A rede de monitoramento...8 2.2 A coleta, o armazenamento e o acesso aos

Leia mais

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 05 Estrutura e arquitetura do SO Parte 2 Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC,

Leia mais

São programas de computador utilizados para realizar diversas tarefas É a parte lógica do computador, o que faz o computador realmente funcionar.

São programas de computador utilizados para realizar diversas tarefas É a parte lógica do computador, o que faz o computador realmente funcionar. São programas de computador utilizados para realizar diversas tarefas É a parte lógica do computador, o que faz o computador realmente funcionar. Quais são eles? Vários outros programas 1 Sistema Básico

Leia mais

Introdução à Computação

Introdução à Computação Aspectos Importantes - Desenvolvimento de Software Motivação A economia de todos países dependem do uso de software. Cada vez mais, o controle dos processos tem sido feito por software. Atualmente, os

Leia mais

Tutorial de uso do Subversion com RapidSVN

Tutorial de uso do Subversion com RapidSVN Universidade Federal de São Carlos Departamento de Computação Tutorial de uso do Subversion com RapidSVN João Celso Santos de Oliveira Orientação: Prof.ª Dra. Marilde T. P. Santos - São Carlos - Agosto

Leia mais

APOO Análise e Projeto Orientado a Objetos. Requisitos

APOO Análise e Projeto Orientado a Objetos. Requisitos + APOO Análise e Projeto Orientado a Objetos Requisitos Requisitos 2 n Segundo Larman: n São capacidades e condições às quais o sistema e em termos mais amplos, o projeto deve atender n Não são apenas

Leia mais

Manual de Utilização de Webcams no. Desenvolvimento de Aplicativos Java

Manual de Utilização de Webcams no. Desenvolvimento de Aplicativos Java Manual de Utilização de Webcams no Desenvolvimento de Aplicativos Java Coordenador: Hemerson Pistori Manual desenvolvido no âmbito do projeto Plataforma de Apoio ao Desenvolvimento de Sistemas para Inclusão

Leia mais

ESTUDO DE CASO WINDOWS VISTA

ESTUDO DE CASO WINDOWS VISTA ESTUDO DE CASO WINDOWS VISTA História Os sistemas operacionais da Microsoft para PCs desktop e portáteis e para servidores podem ser divididos em 3 famílias: MS-DOS Windows baseado em MS-DOS Windows baseado

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - APLICATIVOS HÍBRIDOS. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - APLICATIVOS HÍBRIDOS. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - APLICATIVOS HÍBRIDOS Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução PhoneGap PhoneGap Build GitHub INTRODUÇÃO Aplicativos nativos

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Anexo I Formulário para Proposta

Anexo I Formulário para Proposta PLATAFORMA CGI.br Solicitação de Propostas SP Anexo I Formulário para Proposta Data: 05/07/2013 Versão: 1.1 Plataforma CGI.br Solicitação de Propostas - SP Anexo I Formulário para Proposta 1. Estrutura

Leia mais

Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes

Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes 3 MÁQUINAS VIRTUAIS Em nossa aula anterior, fizemos uma breve introdução com uso de máquinas virtuais para emularmos um computador novo

Leia mais

Lógica de Programação

Lógica de Programação Lógica de Programação Softblue Logic IDE Guia de Instalação www.softblue.com.br Sumário 1 O Ensino da Lógica de Programação... 1 2 A Ferramenta... 1 3 Funcionalidades... 2 4 Instalação... 3 4.1 Windows...

Leia mais

Introdução ao Controle de Versões. Leonardo Murta (leomurta@ic.uff.br)

Introdução ao Controle de Versões. Leonardo Murta (leomurta@ic.uff.br) Introdução ao Controle de Versões Leonardo Murta (leomurta@ic.uff.br) Introdução A Engenharia de Software... Abordagem disciplinada para o desenvolvimento de software Grande diversidade de metodologias

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS APLICATIVOS HÍBRIDOS. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS APLICATIVOS HÍBRIDOS. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS APLICATIVOS HÍBRIDOS Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução PhoneGap PhoneGap Build GitHub INTRODUÇÃO Aplicativos nativos É

Leia mais

2. GERÊNCIA DE CONFIGURAÇÃO DE SOTWARE

2. GERÊNCIA DE CONFIGURAÇÃO DE SOTWARE 1. INTRODUÇÃO Constata se, atualmente, que organizações voltadas ao desenvolvimento de software, buscam alavancar seus níveis de competitividade, uma vez que o mercado de desenvolvimento de software apresenta

Leia mais

Quais os principais pacotes de softwares aplicativos para automação de escritório, quais os seus mantenedores e qual a sua participação no mercado?

Quais os principais pacotes de softwares aplicativos para automação de escritório, quais os seus mantenedores e qual a sua participação no mercado? Quais os principais pacotes de softwares aplicativos para automação de escritório, quais os seus mantenedores e qual a sua participação no mercado? Professor: Luciano Matéria: Informática Trabalho apresentado

Leia mais

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP SMTP "Protocolo de transferência de correio simples (ou em inglês Simple Mail Transfer Protocol ) é o protocolo padrão para envio de e- mails através da

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

Sistema Operacional LINUX

Sistema Operacional LINUX SISTEMA OPERACIONAL Sistema Operacional LINUX Para que o computador funcione e possibilite a execução de programas é necessária a existência de um sistema operacional. O sistema operacional é uma camada

Leia mais

Aula 01. Introdução ao Linux

Aula 01. Introdução ao Linux Aula 01 Introdução ao Linux Introdução Objetivos aprender a usar um novo sistema aprender a usar uma nova interface Como no Windows navegar pela internet (e-mails, facebook, etc) criar pastas e arquivos

Leia mais

SAIBA MAIS SOBRE O LINUX E DESCUBRA QUAL DISTRIBUIÇÃO É MELHOR PARA VOCÊ! CURSO

SAIBA MAIS SOBRE O LINUX E DESCUBRA QUAL DISTRIBUIÇÃO É MELHOR PARA VOCÊ! CURSO 1 AULA SAIBA MAIS SOBRE O LINUX E DESCUBRA QUAL DISTRIBUIÇÃO É MELHOR PARA VOCÊ! ROTEIRO PRÉ-REQUISITOS 1 INTRODUÇÃO 2 DISTRIBUIÇÕES LINUX 3 AJUDA PARA ESCOLHER SUA DISTRIBUIÇÃO LINUX 4 DÚVIDAS FREQUENTES

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

CENTRAL DE SERVIÇOS APOIADA EM SOFTWARE LIVRE

CENTRAL DE SERVIÇOS APOIADA EM SOFTWARE LIVRE CENTRAL DE SERVIÇOS APOIADA EM SOFTWARE LIVRE Juliano Flores Prof. Wagner Walter Lehmann Centro Universitário Leonardo da Vinci - UNIASSELVI Gestão de Tecnologia da Informação (GTI0034) Prática do Módulo

Leia mais

COMUNICAÇÃO DE PORTIFÓLIO UTILIZANDO DASHBOARDS EXTRAIDOS DO MICROSOFT PROJECT SERVER

COMUNICAÇÃO DE PORTIFÓLIO UTILIZANDO DASHBOARDS EXTRAIDOS DO MICROSOFT PROJECT SERVER COMUNICAÇÃO DE PORTIFÓLIO UTILIZANDO DASHBOARDS EXTRAIDOS DO MICROSOFT PROJECT SERVER Autor: RANGEL TORREZAN RESUMO 1. Gestão de Portfolio e suas vantagens. A gestão de portfólio de projetos estabelece

Leia mais

XXXVIII Reunião Anual da SBNeC

XXXVIII Reunião Anual da SBNeC XXXVIII Reunião Anual da SBNeC Introdução ao Armazenamento de Dados de Experimentos em Neurociência Parte 3: Uso de questionários digitais (continuação) + Ferramentas para Gerenciamento de Arquivos Amanda

Leia mais

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2 .:: Universidade Estadual de Maringá Bacharelado em Informática Eng. de Software III :. Sistema de Gerenciamento de Eventos - Equipe 09 EPSI Event Programming System Interface Metodologia e Gerenciamento

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID Maik Olher CHAVES 1 ; Daniela Costa Terra 2. 1 Graduado no curso de Tecnologia em Análise e Desenvolvimento de Sistemas

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

UNIVERSIDADE FEDERAL DA PARAÍBA PRÓ REITORIA DE EXTENSÃO E ASSUNTOS COMUNITÁRIOS

UNIVERSIDADE FEDERAL DA PARAÍBA PRÓ REITORIA DE EXTENSÃO E ASSUNTOS COMUNITÁRIOS UNIVERSIDADE FEDERAL DA PARAÍBA PRÓ REITORIA DE EXTENSÃO E ASSUNTOS COMUNITÁRIOS INCUBADORA DE EMPREENDIMENTOS SOLIDÁRIOS PROJETO TELECENTROS COMUNITÁRIOS APPEL MICROSOFT LINUX GOOGLE É um controlador

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Conceitos Básicos Sistema Operacional: Um Sistema Operacional é um programa que atua como intermediário entre o usuário e o hardware de um computador. O Propósito do SO é fornecer

Leia mais

Dicas para a prova do MPU (cargos Analista e Técnico) NOÇÕES DE INFORMÁTICA: (comentário por tópico do edital visando o CESPE/UnB)

Dicas para a prova do MPU (cargos Analista e Técnico) NOÇÕES DE INFORMÁTICA: (comentário por tópico do edital visando o CESPE/UnB) Dicas para a prova do MPU (cargos Analista e Técnico) Por Prof.ª Ana Lucia Castilho NOÇÕES DE INFORMÁTICA: (comentário por tópico do edital visando o CESPE/UnB) Assunto: Noções de sistema operacional (ambientes

Leia mais

MANUAL DE UTILIZAÇÃO DO SISTEMA GLPI

MANUAL DE UTILIZAÇÃO DO SISTEMA GLPI MANUAL DE UTILIZAÇÃO DO SISTEMA GLPI PERFIL TÉCNICO Versão 2.0 DEPARTAMENTO DE INFORMÁTICA E TELECOMUNICAÇÕES PREFEITURA DE GUARULHOS SP 1 Objetivo: Esse manual tem como objetivo principal instruir os

Leia mais

06/06/2013. O que é Software de Sistema? Sistema Operacional (SO) Tipos de Software de Sistema. Fatia de Mercado :: SO Desktop

06/06/2013. O que é Software de Sistema? Sistema Operacional (SO) Tipos de Software de Sistema. Fatia de Mercado :: SO Desktop 2 O que é Software de Sistema? SOFTWARES DE SISTEMA Introdução à Microinformática Softwares base para utilização do computador Podem ter as seguintes funções: Operar e controlar hardware Prover plataforma

Leia mais

José Benedito Lopes Junior ¹, Marcello Erick Bonfim 2

José Benedito Lopes Junior ¹, Marcello Erick Bonfim 2 ISBN 978-85-61091-05-7 Encontro Internacional de Produção Científica Cesumar 27 a 30 de outubro de 2009 Definição de uma tecnologia de implementação e do repositório de dados para a criação da ferramenta

Leia mais

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Satélite Manual de instalação e configuração CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Índice Índice 1.Informações gerais 1.1.Sobre este manual 1.2.Visão geral do sistema 1.3.História

Leia mais

Sistema Datachk. Plano de Projeto. Versão <1.0> Z u s a m m e n a r b e i t I d e i a s C o l a b o r a t i v a s

Sistema Datachk. Plano de Projeto. Versão <1.0> Z u s a m m e n a r b e i t I d e i a s C o l a b o r a t i v a s Plano de Projeto Versão Z u s a m m e n a r b e i t I d e i a s C o l a b o r a t i v a s 2010 2 Histórico de Revisões Data Versão Descrição Autores 07/04/2010 1.0 Criação da primeira versão do Plano

Leia mais

Resumo. Prof. Alejandro - Introdução à Sistemas Operacionais Resumo Informativo, complemente o material assistindo as Aulas 19/08/2015 1

Resumo. Prof. Alejandro - Introdução à Sistemas Operacionais Resumo Informativo, complemente o material assistindo as Aulas 19/08/2015 1 Resumo 19/08/2015 1 1. Tipos de Software 2. Introdução aos Sistemas Operacionais 3. Os Arquivos 4. Funções do Sistema Operacional 5. Programas Utilitários do Sistema Operacional 6. Termos Básicos 7. Tipos

Leia mais

Linux, Windows, Antivírus, Teclado e Email.

Linux, Windows, Antivírus, Teclado e Email. Linux, Windows, Antivírus, Teclado e Email. Criador do Linux Linux foi, originalmente, escrito por Linus Torvalds do Departamento de Ciência da Computação da Universidade de Helsinki, Finlândia, com a

Leia mais

Laboratório de Redes de Computadores e Sistemas Operacionais

Laboratório de Redes de Computadores e Sistemas Operacionais Laboratório de Redes de Computadores e Sistemas Operacionais Linux: Introdução Fabricio Breve Introdução O que é Linux? Uma versão do UNIX (re-implementação do padrão POSIX) Principais diferenciais: Gratuito

Leia mais

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento HOME O QUE É TOUR MÓDULOS POR QUE SOMOS DIFERENTES METODOLOGIA CLIENTES DÚVIDAS PREÇOS FALE CONOSCO Suporte Sou Cliente Onde sua empresa quer chegar? Sistemas de gestão precisam ajudar sua empresa a atingir

Leia mais

Documento de Análise e Projeto VideoSystem

Documento de Análise e Projeto VideoSystem Documento de Análise e Projeto VideoSystem Versão Data Versão Descrição Autor 20/10/2009 1.0 21/10/2009 1.0 05/11/2009 1.1 Definição inicial do documento de análise e projeto Revisão do documento

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

Introdução à Engenharia ENG1000

Introdução à Engenharia ENG1000 Introdução à Engenharia ENG1000 Aula Extra - Projetos e Controle de Versões 2016.1 Prof. Augusto Baffa Armazenando seu projeto Como armazenar versões? Não se preocupar Acumular

Leia mais

O primeiro passo é habilitar acesso externo através de web service a configuração é bem simples e não exige maiores explicações.

O primeiro passo é habilitar acesso externo através de web service a configuração é bem simples e não exige maiores explicações. Integração de Controle de versão com Redmine. A integração do controle de versão pode permitir uma interatividade bem interessante entre os tickets e projetos do redmine com o controle de versão segue

Leia mais

TUTORIAL AUTODESK 360 COLABORAÇÃO E ARMAZENAMENTO DE ARQUIVOS

TUTORIAL AUTODESK 360 COLABORAÇÃO E ARMAZENAMENTO DE ARQUIVOS TUTORIAL AUTODESK 360 COLABORAÇÃO E ARMAZENAMENTO DE ARQUIVOS Autodesk 360 é a nuvem da Autodesk, podendo ser acessada pela sua conta da Autodesk Education Community (estudantes) ou Autodesk Academic Resource

Leia mais

Manual AGENDA DE BACKUP

Manual AGENDA DE BACKUP Gemelo Backup Online DESKTOP Manual AGENDA DE BACKUP Realiza seus backups de maneira automática. Você só programa os dias e horas em que serão efetuados. A única coisa que você deve fazer é manter seu

Leia mais

CONFIGURAÇÃO DE REDE SISTEMA IDEAGRI - FAQ CONCEITOS GERAIS

CONFIGURAÇÃO DE REDE SISTEMA IDEAGRI - FAQ CONCEITOS GERAIS CONFIGURAÇÃO DE REDE SISTEMA IDEAGRI - FAQ CONCEITOS GERAIS Servidor: O servidor é todo computador no qual um banco de dados ou um programa (aplicação) está instalado e será COMPARTILHADO para outros computadores,

Leia mais

Noções de Software. André Aziz (andreaziz.ufrpe@gmail.com) Francielle Santos (francielle.ufrpe@gmail.com)

Noções de Software. André Aziz (andreaziz.ufrpe@gmail.com) Francielle Santos (francielle.ufrpe@gmail.com) Noções de Software André Aziz (andreaziz.ufrpe@gmail.com) Francielle Santos (francielle.ufrpe@gmail.com) Noções de Software; Sistemas Operacionais: Evolução; Conceitos Básicos; Tipos; Exemplos. DEINFO/UFRPE

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Material 5 Administração de Recursos de HW e SW. Prof. Edson Ceroni

Material 5 Administração de Recursos de HW e SW. Prof. Edson Ceroni Material 5 Administração de Recursos de HW e SW Prof. Edson Ceroni Desafios para a Administração Centralização X Descentralização Operação interna x Outsourcing Hardware Hardware de um Computador Armazenamento

Leia mais

2. O AMBIENTE DE PROGRAMAÇÃO EM C

2. O AMBIENTE DE PROGRAMAÇÃO EM C 2. O AMBIENTE DE PROGRAMAÇÃO EM C Este capítulo trata de colocar a linguagem C para funcionar em um ambiente de programação, concentrando-se no compilador GNU Compiler Collection (gcc). Mas qualquer outro

Leia mais