Knowledge

Programming tool

Source đź“ť

1126: 1786: 1776: 1231: 617:) all the time as tools. However a full-blown database is usually thought of as an application or software in its own right. For many years, computer-assisted software engineering (CASE) tools were sought. Successful tools have proven elusive. In one sense, CASE tools emphasized design and architecture support, such as for UML. But the most successful of these tools are IDEs. 610:(IDE). In many cases, particularly for simpler use, simple ad hoc techniques are used instead of a tool, such as print debugging instead of using a debugger, manual timing (of overall program or section of code) instead of a profiler, or tracking bugs in a text file or spreadsheet instead of a bug tracking system. 651:
These programs perform many well defined and repetitive tasks that would nonetheless be time-consuming and error-prone when performed by a human, like laying out parts of a program in memory and fixing up the references between parts of a program as a linker does. Optimizing compilers on the other
672:
allows a programmer to extract information about a running program in terms of the source language used to program it. The debugger can compute the value of a variable in the source program from the state of the concrete machine by using information stored by the compiler. Memory debuggers can
660:
Because of the high complexity of software, it is not possible to understand most programs at a single glance even for the most experienced software developer. The abstractions provided by high-level programming languages also make it harder to understand the connection between the source code
652:
hand can perform complex transformations on the source code in order to improve the execution speed or other characteristics of a program. This allows a programmer to focus more on higher level, conceptual aspects of a program without worrying about the details of the machine it is running on.
602:, which are used ubiquitously and continuously. Other tools are used more or less depending on the language, development methodology, and individual engineer, often used for a discrete task, like a debugger or profiler. Tools may be discrete programs, executed separately – often from the 589:
use to create, debug, maintain, or otherwise support other programs and applications. The term usually refers to relatively simple programs, that can be combined to accomplish a task, much as one might use multiple hands to fix a physical object. The most basic tools are a
1047:
combine the features of many tools into one package. They for example make it easier to do specific tasks, such as searching for content only in files in a particular project. IDEs may for example be used for development of enterprise-level applications.
630:
Modern computers are very complex and in order to productively program them, various abstractions are needed. For example, rather than writing down a program's binary representation a programmer will write a program in a
647:
translate a program from a human write-able and readable source language into the bits and bytes that can be executed by a computer. Interpreters interpret the program on the fly to produce the desired behavior.
665:
in programs and to prevent creating new bugs when extending a program, a software developer uses some programming tools to visualize all kinds of information about programs.
673:
directly point out questionable or outright wrong memory accesses of running programs which may otherwise remain undetected and are a common source of program failures.
560: 514: 1052: 1262: 481: 553: 333: 911: 1027: 815: 471: 323: 1779: 1645: 1574: 546: 446: 202: 187: 1468: 1371: 695: 466: 1094: 1064: 504: 1255: 1235: 1044: 898: 607: 413: 177: 1448: 1315: 1300: 1214: 1169: 1147: 907: 706: 280: 1140: 894: 834: 403: 398: 154: 1033: 613:
The distinction between tools and applications is murky. For example, developers use simple databases (such as a
532: 1604: 1531: 1521: 1366: 1295: 423: 136: 116: 285: 1789: 1655: 1584: 1526: 1248: 1014: 932: 726: 222: 212: 162: 1594: 1453: 1320: 1104: 748: 509: 237: 53: 1516: 1511: 1325: 940: 328: 300: 1810: 1711: 1559: 1554: 1506: 1483: 1463: 1005: 982: 451: 295: 182: 172: 111: 1716: 1706: 685: 217: 197: 1619: 1418: 1401: 1310: 1134: 1085: 860: 852: 358: 227: 207: 1569: 1413: 819: 811: 770: 766: 599: 486: 368: 247: 121: 1624: 1381: 1376: 1151: 1010: 944: 636: 428: 338: 290: 232: 1443: 1396: 889: 867:
and other problems. They are also useful to optimize efficiency of memory usage. Examples:
252: 68: 58: 1741: 1579: 1438: 1428: 1340: 1285: 1271: 1206: 1199: 1109: 1090: 1075: 1019: 978: 632: 348: 192: 126: 93: 73: 34: 20: 8: 1761: 1746: 1614: 1478: 1386: 1330: 805: 343: 262: 88: 16:
Computer program that software developers use to support other programs and applications
1751: 1391: 1080: 969: 916: 758: 644: 614: 591: 586: 461: 716: 1665: 1423: 1210: 989: 964: 791: 1736: 1680: 1458: 1350: 1345: 1099: 1070: 903: 782: 702: 582: 418: 363: 353: 78: 1051:
Different aspects of IDEs for specific programming languages can be found in this
1756: 1609: 1589: 1473: 1335: 1190: 1023: 848: 305: 257: 141: 63: 1184: 1660: 1564: 1305: 1001: 872: 828: 1804: 1640: 1408: 1194: 993: 762: 661:
written by a programmer and the actual program's behaviour. In order to find
48: 1675: 1670: 1599: 801: 691: 662: 603: 131: 997: 974: 958: 864: 831:: Mathematical techniques for specification, development and verification 774: 740: 722: 1685: 1650: 1240: 876: 711: 795: 732: 83: 1433: 880: 823: 787: 754: 669: 640: 595: 456: 408: 393: 388: 655: 885: 868: 1185:
Software Development Tools for Petascale Computing Workshop 2007
1290: 1230: 744: 736: 167: 625: 1490: 856: 778: 242: 1701: 954: 936: 928: 840: 476: 948: 924: 920: 606:– or may be parts of a single large program, called an 851:
are frequently used in programming languages (such as
1198: 1053:comparison of integrated development environments 1802: 1189: 656:Making program information available for humans 635:like C, Java or Python. Programming tools like 1256: 554: 620: 626:Translating from human to computer language 1263: 1249: 615:file containing a list of important values 561: 547: 1170:Learn how and when to remove this message 963:Source code Clones/Duplications Finding: 1454:Software development process/methodology 1270: 1133:This article includes a list of general 912:Comparison of revision control software 1803: 1028:List of tools for static code analysis 816:Comparison of documentation generators 515:Electrical and electronics engineering 1244: 1015:Automatic programming#Implementations 1775: 1469:Software verification and validation 1372:Component-based software engineering 1119: 696:Comparison of issue tracking systems 1095:list of software engineering topics 1065:Computer aided software engineering 1045:Integrated development environments 890:Parsing#Parser development software 681:Software tools come in many forms: 13: 1139:it lacks sufficient corresponding 899:List of performance analysis tools 608:integrated development environment 14: 1822: 1449:Software configuration management 1316:Search-based software engineering 1301:Experimental software engineering 1224: 908:List of revision control software 707:List of build automation software 441:Standards and bodies of knowledge 1785: 1784: 1774: 1229: 1124: 698:– Including bug tracking systems 676: 1034:List of unit testing frameworks 533:Outline of software development 1296:Empirical software engineering 839:Library interface generators: 1: 1115: 727:List of tools for code review 717:Code coverage § Software 1321:Site reliability engineering 1105:Toolkits for User Innovation 863:and thus the possibility of 7: 1326:Social software engineering 1205:, Addison-Wesley, pp.  1058: 10: 1827: 1464:Software quality assurance 983:Comparison of text editors 792:Debugger#List of debuggers 296:Software quality assurance 18: 1770: 1729: 1694: 1633: 1547: 1540: 1499: 1359: 1278: 621:Uses of programming tools 579:software development tool 1620:Model-driven engineering 1419:Functional specification 1402:Software incompatibility 1311:Requirements engineering 1086:Software development kit 861:manual memory management 835:GUI interface generators 812:Documentation generators 281:Configuration management 19:Not to be confused with 1414:Enterprise architecture 1154:more precise citations. 1039: 820:Plain Old Documentation 771:Microsoft Visual Studio 505:Artificial intelligence 1625:Round-trip engineering 1382:Backward compatibility 1377:Software compatibility 1011:Source code generation 990:Source code formatting 429:Infrastructure as code 275:Supporting disciplines 1444:Software architecture 1397:Forward compatibility 1238:at Wikimedia Commons 286:Deployment management 1742:Computer engineering 1439:Software archaeology 1429:Programming paradigm 1341:Software maintenance 1286:Computer programming 1272:Software engineering 1110:Developer experience 1091:Software engineering 1076:Configuration system 1020:Static code analysis 979:List of text editors 965:Duplicate code#Tools 895:Performance analysis 731:Code sharing sites: 686:Binary compatibility 633:programming language 106:Paradigms and models 35:Software development 21:Programmable tooling 1762:Systems engineering 1747:Information science 1527:Service orientation 1479:Structured analysis 1387:Compatibility layer 1331:Software deployment 1191:Kernighan, Brian W. 917:Scripting languages 806:reverse-engineering 749:Code search engines 587:software developers 29:Part of a series on 1752:Project management 1517:Object orientation 1484:Essential analysis 1392:Compatibility mode 1081:Scripting language 970:Source code editor 592:source code editor 424:Release automation 301:Project management 1811:Programming tools 1798: 1797: 1725: 1724: 1666:Information model 1570:Incremental model 1424:Modeling language 1236:Programming tools 1234:Media related to 1180: 1179: 1172: 886:Parser generators 845:Integration Tools 571: 570: 462:ISO/IEC standards 1818: 1788: 1787: 1778: 1777: 1737:Computer science 1545: 1544: 1459:Software quality 1351:Systems analysis 1346:Software testing 1265: 1258: 1251: 1242: 1241: 1233: 1219: 1204: 1175: 1168: 1164: 1161: 1155: 1150:this article by 1141:inline citations 1128: 1127: 1120: 1100:Software systems 1071:Computer science 904:Revision control 849:Memory debuggers 703:Build automation 583:computer program 575:programming tool 563: 556: 549: 510:Computer science 419:Build automation 26: 25: 1826: 1825: 1821: 1820: 1819: 1817: 1816: 1815: 1801: 1800: 1799: 1794: 1766: 1757:Risk management 1721: 1690: 1629: 1610:Waterfall model 1580:Prototype model 1575:Iterative model 1536: 1512:Aspect-oriented 1495: 1474:Software system 1355: 1336:Software design 1274: 1269: 1227: 1222: 1217: 1176: 1165: 1159: 1156: 1146:Please help to 1145: 1129: 1125: 1118: 1061: 1042: 998:pretty-printers 679: 668:For example, a 658: 628: 623: 567: 538: 537: 528: 520: 519: 500: 492: 491: 442: 434: 433: 384: 374: 373: 319: 311: 310: 306:User experience 276: 268: 267: 158: 147: 146: 107: 99: 98: 44: 43:Core activities 24: 17: 12: 11: 5: 1824: 1814: 1813: 1796: 1795: 1793: 1792: 1782: 1771: 1768: 1767: 1765: 1764: 1759: 1754: 1749: 1744: 1739: 1733: 1731: 1730:Related fields 1727: 1726: 1723: 1722: 1720: 1719: 1714: 1709: 1704: 1698: 1696: 1692: 1691: 1689: 1688: 1683: 1678: 1673: 1668: 1663: 1661:Function model 1658: 1653: 1648: 1643: 1637: 1635: 1631: 1630: 1628: 1627: 1622: 1617: 1612: 1607: 1602: 1597: 1592: 1587: 1582: 1577: 1572: 1567: 1565:Executable UML 1562: 1557: 1551: 1549: 1542: 1538: 1537: 1535: 1534: 1529: 1524: 1519: 1514: 1509: 1503: 1501: 1497: 1496: 1494: 1493: 1488: 1487: 1486: 1476: 1471: 1466: 1461: 1456: 1451: 1446: 1441: 1436: 1431: 1426: 1421: 1416: 1411: 1406: 1405: 1404: 1399: 1394: 1389: 1384: 1374: 1369: 1363: 1361: 1357: 1356: 1354: 1353: 1348: 1343: 1338: 1333: 1328: 1323: 1318: 1313: 1308: 1306:Formal methods 1303: 1298: 1293: 1288: 1282: 1280: 1276: 1275: 1268: 1267: 1260: 1253: 1245: 1226: 1225:External links 1223: 1221: 1220: 1215: 1201:Software Tools 1195:Plauger, P. J. 1187: 1181: 1178: 1177: 1132: 1130: 1123: 1117: 1114: 1113: 1112: 1107: 1102: 1097: 1088: 1083: 1078: 1073: 1068: 1060: 1057: 1041: 1038: 1037: 1036: 1032:Unit testing: 1030: 1017: 1008: 987: 986: 985: 967: 961: 951: 914: 901: 897:or profiling: 892: 883: 873:Electric Fence 846: 843: 837: 832: 829:Formal methods 826: 809: 799: 785: 752: 729: 720: 714: 709: 699: 689: 688:analysis tools 678: 675: 657: 654: 627: 624: 622: 619: 569: 568: 566: 565: 558: 551: 543: 540: 539: 536: 535: 529: 526: 525: 522: 521: 518: 517: 512: 507: 501: 498: 497: 494: 493: 490: 489: 484: 479: 474: 469: 464: 459: 454: 452:IEEE standards 449: 443: 440: 439: 436: 435: 432: 431: 426: 421: 416: 411: 406: 401: 396: 391: 385: 380: 379: 376: 375: 372: 371: 366: 361: 356: 351: 346: 341: 336: 331: 326: 320: 317: 316: 313: 312: 309: 308: 303: 298: 293: 288: 283: 277: 274: 273: 270: 269: 266: 265: 260: 255: 250: 245: 240: 235: 230: 225: 220: 215: 210: 205: 200: 195: 190: 185: 180: 175: 170: 165: 159: 157:and frameworks 153: 152: 149: 148: 145: 144: 139: 134: 129: 124: 119: 114: 108: 105: 104: 101: 100: 97: 96: 91: 86: 81: 76: 71: 66: 61: 56: 51: 45: 42: 41: 38: 37: 31: 30: 15: 9: 6: 4: 3: 2: 1823: 1812: 1809: 1808: 1806: 1791: 1783: 1781: 1773: 1772: 1769: 1763: 1760: 1758: 1755: 1753: 1750: 1748: 1745: 1743: 1740: 1738: 1735: 1734: 1732: 1728: 1718: 1715: 1713: 1710: 1708: 1705: 1703: 1700: 1699: 1697: 1693: 1687: 1684: 1682: 1681:Systems model 1679: 1677: 1674: 1672: 1669: 1667: 1664: 1662: 1659: 1657: 1654: 1652: 1649: 1647: 1644: 1642: 1639: 1638: 1636: 1632: 1626: 1623: 1621: 1618: 1616: 1613: 1611: 1608: 1606: 1603: 1601: 1598: 1596: 1593: 1591: 1588: 1586: 1583: 1581: 1578: 1576: 1573: 1571: 1568: 1566: 1563: 1561: 1558: 1556: 1553: 1552: 1550: 1548:Developmental 1546: 1543: 1539: 1533: 1530: 1528: 1525: 1523: 1520: 1518: 1515: 1513: 1510: 1508: 1505: 1504: 1502: 1498: 1492: 1489: 1485: 1482: 1481: 1480: 1477: 1475: 1472: 1470: 1467: 1465: 1462: 1460: 1457: 1455: 1452: 1450: 1447: 1445: 1442: 1440: 1437: 1435: 1432: 1430: 1427: 1425: 1422: 1420: 1417: 1415: 1412: 1410: 1409:Data modeling 1407: 1403: 1400: 1398: 1395: 1393: 1390: 1388: 1385: 1383: 1380: 1379: 1378: 1375: 1373: 1370: 1368: 1365: 1364: 1362: 1358: 1352: 1349: 1347: 1344: 1342: 1339: 1337: 1334: 1332: 1329: 1327: 1324: 1322: 1319: 1317: 1314: 1312: 1309: 1307: 1304: 1302: 1299: 1297: 1294: 1292: 1289: 1287: 1284: 1283: 1281: 1277: 1273: 1266: 1261: 1259: 1254: 1252: 1247: 1246: 1243: 1239: 1237: 1232: 1218: 1216:0-201-03669-X 1212: 1208: 1203: 1202: 1196: 1192: 1188: 1186: 1183: 1182: 1174: 1171: 1163: 1153: 1149: 1143: 1142: 1136: 1131: 1122: 1121: 1111: 1108: 1106: 1103: 1101: 1098: 1096: 1092: 1089: 1087: 1084: 1082: 1079: 1077: 1074: 1072: 1069: 1066: 1063: 1062: 1056: 1054: 1049: 1046: 1035: 1031: 1029: 1025: 1021: 1018: 1016: 1012: 1009: 1007: 1003: 999: 995: 991: 988: 984: 980: 976: 973: 972: 971: 968: 966: 962: 960: 956: 952: 950: 946: 942: 938: 934: 930: 926: 922: 918: 915: 913: 909: 905: 902: 900: 896: 893: 891: 887: 884: 882: 878: 874: 870: 866: 862: 859:) that allow 858: 854: 850: 847: 844: 842: 838: 836: 833: 830: 827: 825: 821: 817: 813: 810: 807: 803: 802:Disassemblers 800: 797: 793: 789: 786: 784: 780: 776: 772: 768: 764: 763:GNU toolchain 760: 756: 753: 750: 746: 742: 738: 734: 730: 728: 724: 721: 718: 715: 713: 710: 708: 704: 701:Build tools: 700: 697: 693: 692:Bug databases 690: 687: 684: 683: 682: 677:List of tools 674: 671: 666: 664: 653: 649: 646: 642: 638: 634: 618: 616: 611: 609: 605: 601: 597: 593: 588: 584: 580: 576: 564: 559: 557: 552: 550: 545: 544: 542: 541: 534: 531: 530: 524: 523: 516: 513: 511: 508: 506: 503: 502: 496: 495: 488: 485: 483: 480: 478: 475: 473: 470: 468: 465: 463: 460: 458: 455: 453: 450: 448: 445: 444: 438: 437: 430: 427: 425: 422: 420: 417: 415: 412: 410: 407: 405: 402: 400: 397: 395: 392: 390: 387: 386: 383: 378: 377: 370: 367: 365: 362: 360: 357: 355: 352: 350: 347: 345: 342: 340: 337: 335: 332: 330: 327: 325: 322: 321: 315: 314: 307: 304: 302: 299: 297: 294: 292: 291:Documentation 289: 287: 284: 282: 279: 278: 272: 271: 264: 261: 259: 256: 254: 251: 249: 246: 244: 241: 239: 236: 234: 231: 229: 226: 224: 221: 219: 216: 214: 211: 209: 206: 204: 201: 199: 196: 194: 191: 189: 186: 184: 181: 179: 176: 174: 171: 169: 166: 164: 161: 160: 156: 155:Methodologies 151: 150: 143: 140: 138: 135: 133: 130: 128: 125: 123: 120: 118: 115: 113: 110: 109: 103: 102: 95: 92: 90: 87: 85: 82: 80: 77: 75: 72: 70: 67: 65: 62: 60: 57: 55: 52: 50: 49:Data modeling 47: 46: 40: 39: 36: 33: 32: 28: 27: 22: 1676:Object model 1671:Metamodeling 1600:Spiral model 1500:Orientations 1228: 1200: 1166: 1157: 1138: 1050: 1043: 975:Text editors 865:memory leaks 818:, help2man, 804:: Generally 680: 667: 659: 650: 629: 612: 604:command line 578: 574: 572: 409:UML Modeling 404:GUI designer 381: 69:Construction 59:Requirements 1367:Abstraction 1160:August 2010 1152:introducing 1002:beautifiers 794:. See also 775:CodeWarrior 755:Compilation 747:. See also 741:SourceForge 723:Code review 600:interpreter 127:Prototyping 122:Incremental 94:Maintenance 74:Engineering 1686:View model 1651:Data model 1135:references 1116:References 712:Call graph 637:assemblers 499:Glossaries 89:Deployment 1695:Languages 1006:minifiers 796:Debugging 788:Debuggers 733:Freshmeat 641:compilers 318:Practices 142:Waterfall 117:Cleanroom 84:Debugging 54:Processes 1805:Category 1790:Category 1656:ER model 1522:Ontology 1434:Software 1360:Concepts 1197:(1976), 1059:See also 953:Search: 881:Valgrind 877:Insure++ 824:asciidoc 670:debugger 596:compiler 527:Outlines 457:ISO 9001 399:Profiler 394:Debugger 389:Compiler 364:Stand-up 1780:Commons 1605:V-model 1148:improve 1013:tools: 869:dmalloc 761:tools: 759:linking 645:linkers 198:Lean SD 137:V model 79:Testing 1541:Models 1291:DevOps 1279:Fields 1213:  1137:, but 994:indent 933:Python 808:tools. 745:GitHub 737:Krugle 594:and a 472:SWEBOK 193:Kanban 168:DevOps 132:Spiral 64:Design 1717:SysML 1641:SPICE 1634:Other 1595:Scrum 1555:Agile 1507:Agile 1491:CI/CD 1067:tools 945:Shell 779:Xcode 585:that 581:is a 467:PMBOK 382:Tools 243:SEMAT 238:Scrum 112:Agile 1702:IDEF 1646:CMMI 1532:SDLC 1211:ISBN 1093:and 1040:IDEs 1024:lint 959:find 955:grep 941:Ruby 937:REXX 929:Perl 855:and 841:SWIG 757:and 663:bugs 643:and 482:IREB 477:ITIL 447:CMMI 324:ATDD 233:SAFe 203:LeSS 178:DSDM 1712:USL 1707:UML 1585:RAD 1560:EUP 1207:352 949:Tcl 925:AWK 921:PHP 857:C++ 783:ICC 767:gcc 598:or 577:or 487:OMG 414:IDE 369:TDD 359:SBE 349:DDD 334:CCO 329:BDD 253:TSP 248:TDD 228:RUP 223:RAD 218:PSP 213:MSF 208:MDD 188:IID 183:FDD 173:DAD 163:ASD 1807:: 1615:XP 1590:UP 1209:, 1193:; 1055:. 1026:, 1022:: 1004:, 1000:, 996:, 992:: 981:, 977:: 957:, 947:, 943:, 939:, 935:, 931:, 927:, 923:, 919:: 910:, 906:: 888:: 879:, 875:, 871:, 822:, 814:: 790:: 781:, 777:, 773:, 769:, 765:, 743:, 739:, 735:, 725:: 705:, 694:: 639:, 573:A 354:PP 344:CD 339:CI 263:XP 258:UP 1264:e 1257:t 1250:v 1173:) 1167:( 1162:) 1158:( 1144:. 853:C 798:. 751:. 719:. 562:e 555:t 548:v 23:.

Index

Programmable tooling
Software development
Data modeling
Processes
Requirements
Design
Construction
Engineering
Testing
Debugging
Deployment
Maintenance
Agile
Cleanroom
Incremental
Prototyping
Spiral
V model
Waterfall
Methodologies
ASD
DevOps
DAD
DSDM
FDD
IID
Kanban
Lean SD
LeSS
MDD

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑