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:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.