Ferramenta de programação - Programming tool
Desenvolvimento de software |
---|
Uma ferramenta de programação ou ferramenta de desenvolvimento de software é um programa de computador que os desenvolvedores de software usam para criar, depurar, manter ou de outra forma oferecer suporte a outros programas e aplicativos. O termo geralmente se refere a programas relativamente simples, que podem ser combinados para realizar uma tarefa, da mesma forma que alguém pode usar várias mãos para consertar um objeto físico. As ferramentas mais básicas são um editor de código-fonte e um compilador ou interpretador , que são usados de forma ubíqua e contínua. Outras ferramentas são usadas mais ou menos dependendo da linguagem, metodologia de desenvolvimento e engenheiro individual, frequentemente usado para uma tarefa discreta, como um depurador ou criador de perfil. As ferramentas podem ser programas discretos, executados separadamente - geralmente a partir da linha de comando - ou podem ser partes de um único programa grande, chamado de ambiente de desenvolvimento integrado (IDE). Em muitos casos, especialmente para um uso mais simples, técnicas ad hoc simples são usadas em vez de uma ferramenta, como depuração de impressão em vez de usar um depurador, cronometragem manual (do programa geral ou seção de código) em vez de um criador de perfil ou rastreamento de bugs em um arquivo de texto ou planilha em vez de um sistema de rastreamento de bugs.
A distinção entre ferramentas e aplicativos é obscura. Por exemplo, os desenvolvedores usam bancos de dados simples (como um arquivo contendo uma lista de valores importantes ) o tempo todo como ferramentas. No entanto, um banco de dados completo é geralmente considerado um aplicativo ou software por si só. Por muitos anos, ferramentas de engenharia de software assistida por computador (CASE) foram procuradas. Ferramentas bem-sucedidas se mostraram elusivas. Em certo sentido, as ferramentas CASE enfatizaram o suporte de design e arquitetura, como para UML. Mas as ferramentas de maior sucesso são os IDEs.
Usos de ferramentas de programação
Tradução da linguagem humana para a linguagem de computador
Os computadores modernos são muito complexos e, para programá-los de forma produtiva, várias abstrações são necessárias. Por exemplo, em vez de escrever a representação binária de um programa, um programador escreverá um programa em uma linguagem de programação como C, Java ou Python. Ferramentas de programação como montadores , compiladores e linkers traduzem um programa de uma linguagem de origem legível e gravável por humanos em bits e bytes que podem ser executados por um computador. Os intérpretes interpretam o programa em tempo real para produzir o comportamento desejado.
Esses programas executam muitas tarefas bem definidas e repetitivas que, no entanto, seriam demoradas e sujeitas a erros quando realizadas por um ser humano, como colocar partes de um programa na memória e consertar as referências entre as partes de um programa como faz um vinculador. A otimização de compiladores, por outro lado, pode realizar transformações complexas no código-fonte para melhorar a velocidade de execução ou outras características de um programa. Isso permite que um programador se concentre mais nos aspectos conceituais de nível superior de um programa, sem se preocupar com os detalhes da máquina em que está sendo executado.
Disponibilizando informações do programa para humanos
Devido à alta complexidade do software, não é possível entender a maioria dos programas de uma só vez, mesmo para o desenvolvedor de software mais experiente. As abstrações fornecidas por linguagens de programação de alto nível também tornam mais difícil entender a conexão entre o código-fonte escrito por um programador e o comportamento real do programa. Para localizar bugs nos programas e evitar a criação de novos bugs ao estender um programa, um desenvolvedor de software usa algumas ferramentas de programação para visualizar todo tipo de informação sobre os programas.
Por exemplo, um depurador permite que um programador extraia informações sobre um programa em execução em termos da linguagem de origem usada para programá-lo. O depurador pode calcular o valor de uma variável no programa de origem a partir do estado da máquina concreta usando informações armazenadas pelo compilador. Os depuradores de memória podem apontar diretamente acessos de memória questionáveis ou completamente errados de programas em execução que, de outra forma, podem permanecer não detectados e são uma fonte comum de falhas de programa.
Lista de ferramentas
As ferramentas de software vêm em muitas formas:
- Ferramentas de análise de compatibilidade binária
- Bancos de dados de bugs : Comparação de sistemas de rastreamento de problemas - incluindo sistemas de rastreamento de bugs
- Ferramentas de compilação: automação de compilação , lista de software de automação de compilação
- Gráfico de chamadas
- Cobertura de código : cobertura de código # Ferramentas de cobertura de código de software .
- Revisão de código : lista de ferramentas para revisão de código
- Sites de compartilhamento de código: Freshmeat , Krugle , Sourceforge , GitHub . Veja também motores de busca de código .
- Ferramentas de compilação e vinculação : GNU toolchain , gcc , Microsoft Visual Studio , CodeWarrior , Xcode , ICC
- Depuradores : Depurador # Lista de depuradores . Veja também Depuração .
- Desmontadores : Geralmente ferramentas de engenharia reversa .
- Geradores de documentação : Comparação de geradores de documentação , help2man, Plain Old Documentation , asciidoc
- Métodos formais : técnicas matemáticas para especificação, desenvolvimento e verificação
- Geradores de interface GUI
- Geradores de interface de biblioteca: SWIG
- Ferramentas de Integração
- Os depuradores de memória são freqüentemente usados em linguagens de programação (como C e C ++ ) que permitem o gerenciamento manual de memória e, portanto, a possibilidade de vazamentos de memória e outros problemas. Eles também são úteis para otimizar a eficiência do uso da memória. Exemplos: Dmalloc , cerca elétrica , segurar ++ , Valgrind
- Geradores de analisador : Análise # software de desenvolvimento de analisador
- Análise de desempenho ou criação de perfil: Lista de ferramentas de análise de desempenho
- Controle de revisão : Lista de software de controle de revisão , comparação de software de controle de revisão
- Linguagens de script : PHP , Awk , Perl , Python , REXX , Ruby , Shell , Tcl
- Pesquisar: grep , encontrar
- Código-fonte Clones / Duplicações Descoberta: Código duplicado # Ferramentas
- Editor de código fonte
- Formatação do código-fonte : indent , pretty-printers , embelezadores , minificadores
- Ferramentas de geração de código-fonte : Programação automática # Implementações
- Análise de código estático : lint , lista de ferramentas para análise de código estático
- Teste de unidade : lista de estruturas de teste de unidade
IDEs
Ambientes de desenvolvimento integrados combinam os recursos de muitas ferramentas em um pacote. Eles, por exemplo, tornam mais fácil realizar tarefas específicas, como pesquisar conteúdo apenas em arquivos em um projeto específico. IDEs podem ser usados, por exemplo, para o desenvolvimento de aplicativos de nível empresarial.
Diferentes aspectos de IDEs para linguagens de programação específicas podem ser encontrados nesta comparação de ambientes de desenvolvimento integrados .
Veja também
- Ferramentas de engenharia de software auxiliadas por computador
- Ciência da Computação
- Sistema de Configuração
- Linguagem de script
- Kit de desenvolvimento de software
- Engenharia de software e lista de tópicos de engenharia de software
- Sistemas de software
- Kits de ferramentas para inovação do usuário
Referências
- Workshop de Ferramentas de Desenvolvimento de Software para Petascale Computing 2007
- Kernighan, Brian W .; Plauger, PJ (1976), Software Tools , Addison-Wesley, pp. 352 , ISBN 0-201-03669-X
links externos
Mídia relacionada a ferramentas de programação no Wikimedia Commons