Knowledge (XXG)

Programming tool

Source đź“ť

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

Index

Software tool
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

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

↑