1137:
1797:
1787:
1242:
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.
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.
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.
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.
571:
525:
1063:
1273:
492:
564:
344:
922:
1038:
826:
482:
334:
1790:
1656:
1585:
557:
457:
213:
198:
1479:
1382:
706:
477:
1105:
1075:
515:
1266:
1246:
1055:
909:
618:
424:
188:
1459:
1326:
1311:
1225:
1180:
1158:
918:
717:
291:
17:
1151:
905:
845:
414:
409:
165:
1044:
624:
The distinction between tools and applications is murky. For example, developers use simple databases (such as a
543:
1615:
1542:
1532:
1377:
1306:
434:
147:
127:
296:
1800:
1666:
1595:
1537:
1259:
1025:
943:
737:
233:
223:
173:
1605:
1464:
1331:
1115:
759:
520:
248:
64:
1527:
1522:
1336:
951:
339:
311:
1821:
1722:
1570:
1565:
1517:
1494:
1474:
1016:
993:
462:
306:
193:
183:
122:
1727:
1717:
696:
228:
208:
1630:
1429:
1412:
1321:
1145:
1096:
871:
863:
369:
238:
218:
1580:
1424:
830:
822:
781:
777:
610:
497:
379:
258:
132:
1635:
1392:
1387:
1162:
1021:
955:
647:
439:
349:
301:
243:
1454:
1407:
900:
878:
and other problems. They are also useful to optimize efficiency of memory usage. Examples:
263:
79:
69:
1752:
1590:
1449:
1439:
1351:
1296:
1282:
1217:
1210:
1120:
1101:
1086:
1030:
989:
643:
359:
203:
137:
104:
84:
45:
31:
8:
1772:
1757:
1625:
1489:
1397:
1341:
816:
354:
273:
99:
27:
Computer program that software developers use to support other programs and applications
1762:
1402:
1091:
980:
927:
769:
655:
625:
602:
597:
472:
727:
1676:
1434:
1221:
1000:
975:
802:
1747:
1691:
1469:
1361:
1356:
1110:
1081:
914:
793:
713:
593:
429:
374:
364:
89:
1062:
Different aspects of IDEs for specific programming languages can be found in this
1767:
1620:
1600:
1484:
1346:
1201:
1034:
859:
316:
268:
152:
74:
1195:
1671:
1575:
1316:
1012:
883:
839:
1815:
1651:
1419:
1205:
1004:
773:
672:
written by a programmer and the actual program's behaviour. In order to find
59:
1686:
1681:
1610:
812:
702:
673:
614:
142:
1008:
985:
969:
875:
842:: Mathematical techniques for specification, development and verification
785:
751:
733:
1696:
1661:
1251:
887:
722:
806:
743:
94:
1444:
891:
834:
798:
765:
680:
651:
606:
467:
419:
404:
399:
666:
896:
879:
1196:
Software
Development Tools for Petascale Computing Workshop 2007
1301:
1241:
755:
747:
178:
636:
1501:
867:
789:
253:
1712:
965:
947:
939:
851:
487:
959:
935:
931:
617:– or may be parts of a single large program, called an
862:
are frequently used in programming languages (such as
1209:
1064:comparison of integrated development environments
1813:
1200:
667:Making program information available for humans
646:like C, Java or Python. Programming tools like
1267:
565:
631:
637:Translating from human to computer language
1274:
1260:
626:file containing a list of important values
572:
558:
1181:Learn how and when to remove this message
974:Source code Clones/Duplications Finding:
1465:Software development process/methodology
1281:
1144:This article includes a list of general
923:Comparison of revision control software
14:
1814:
1039:List of tools for static code analysis
827:Comparison of documentation generators
526:Electrical and electronics engineering
1255:
1026:Automatic programming#Implementations
1786:
1480:Software verification and validation
1383:Component-based software engineering
1130:
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:
24:
1150:it lacks sufficient corresponding
910:List of performance analysis tools
619:integrated development environment
25:
1833:
1460:Software configuration management
1327:Search-based software engineering
1312:Experimental software engineering
1235:
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
687:
1045:List of unit testing frameworks
544:Outline of software development
1307:Empirical software engineering
850:Library interface generators:
13:
1:
1126:
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
7:
1337:Social software engineering
1216:, Addison-Wesley, pp.
1069:
10:
1838:
1475:Software quality assurance
994:Comparison of text editors
803:Debugger#List of debuggers
307:Software quality assurance
29:
1781:
1740:
1705:
1644:
1558:
1551:
1510:
1370:
1289:
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.
1050:
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
18:Development tools
16:(Redirected from
1829:
1799:
1798:
1789:
1788:
1748:Computer science
1556:
1555:
1470:Software quality
1362:Systems analysis
1357:Software testing
1276:
1269:
1262:
1253:
1252:
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:
36:
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:
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:
1825:
1824:
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:
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:
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:
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:
1122:
1119:
1117:
1114:
1112:
1109:
1107:
1103:
1100:
1098:
1095:
1093:
1090:
1088:
1085:
1083:
1080:
1077:
1074:
1073:
1067:
1065:
1060:
1057:
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
685:
682:
677:
675:
664:
660:
657:
653:
649:
645:
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:
44:
43:
39:
38:
33:
19:
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:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.