Knowledge (XXG)

Open-source software development

Source 📝

254:, because in these traditional methods it is not allowed to go back to a previous phase. In open-source software development, requirements are rarely gathered before the start of the project; instead they are based on early releases of the software product, as Robbins describes. Besides requirements, often volunteer staff is attracted to help develop the software product based on the early releases of the software. This networking effect is essential according to Abrahamsson et al.: “if the introduced prototype gathers enough attention, it will gradually start to attract more and more developers”. However, Abrahamsson et al. also point out that the community is very harsh, much like the business world of closed-source software: “if you find the customers you survive, but without customers you die”. 89:
of time dealing with and creating bug reports, as well as handling feature requests. This time is spent on creating and prioritizing further development plans. This leads to part of the development team spending a lot of time on these issues, and not on the actual development. Also, in closed-source projects, the development teams must often work under management-related constraints (such as deadlines, budgets, etc.) that interfere with technical issues of the software. In open-source software development, these issues are solved by integrating the users of the software in the development process, or even letting these users build the system themselves.
85:. In this book, Raymond makes the distinction between two kinds of software development. The first is the conventional closed-source development. This kind of development method is, according to Raymond, like the building of a cathedral; central planning, tight organization and one process from start to finish. The second is the progressive open-source development, which is more like "a great babbling bazaar of differing agendas and approaches out of which a coherent and stable system could seemingly emerge only by a succession of miracles." The latter analogy points to the discussion involved in an open-source development process. 105: 538: 271:, for example is suitable for open-source software development because of the distributed development principle it adopts. Internet-Speed Development uses geographically distributed teams to ‘work around the clock’. This method, mostly adopted by large closed-source firms, (because they're the only ones which afford development centers in different time zones), works equally well in open source projects because a software developed by a large group of volunteers shall naturally tend to have developers spread across all time zones. 393:(CVS) was a prominent example of a source code collaboration tool being used in OSS projects. CVS helps manage the files and codes of a project when several people are working on the project at the same time. CVS allows several people to work on the same file at the same time. This is done by moving the file into the users’ directories and then merging the files when the users are done. CVS also enables one to easily retrieve a previous version of a file. During mid 2000s, 1310: 285: 1300: 164:). To start a successful project it is very important to investigate what's already there. The process starts with a choice between the adopting of an existing project, or the starting of a new project. If a new project is started, the process goes to the Initiation phase. If an existing project is adopted, the process goes directly to the Execution phase. 88:
Differences between the two styles of development, according to Bar and Fogel, are in general the handling (and creation) of bug reports and feature requests, and the constraints under which the programmers are working. In closed-source software development, the programmers are often spending a lot
241:
Finally, there is the book or standalone document project. These items usually do not ship as part of an open-source software package. The Linux Documentation Project hosts many such projects that document various aspects of the Linux operating system. There are many other examples of this type of
178:
Several types of open-source projects exist. First, there is the garden variety of software programs and libraries, which consist of standalone pieces of code. Some might even be dependent on other open-source projects. These projects serve a specified purpose and fill a definite need. Examples of
438:
Since OSS projects undergo frequent integration, tools that help automate testing during system integration are used. An example of such tool is Tinderbox. Tinderbox enables participants in an OSS project to detect errors during system integration. Tinderbox runs a continuous build process and
257:
Fuggetta argues that “rapid prototyping, incremental and evolutionary development, spiral lifecycle, rapid application development, and, recently, extreme programming and the agile software process can be equally applied to proprietary and open source software”. He also pinpoints
116:. A diagram displaying the process-data structure of open-source software development is shown on the right. In this picture, the phases of open-source software development are displayed, along with the corresponding data elements. This diagram is made using the 186:
Distributions are another type of open-source project. Distributions are collections of software that are published from the same source with a common purpose. The most prominent example of a "distribution" is an operating system. There are many
465:. A memory leak is a particular kind of unnecessary memory consumption by a computer program, where the program fails to release memory that is no longer needed. Examples of memory leak detection tools used by Mozilla are the 385:
In OSS development the participants, who are mostly volunteers, are distributed amongst different geographic regions so there is need for tools to aid participants to collaborate in the development of source code.
358:
are used to make sure e-mail messages are delivered to all interested parties at once. This ensures that at least one of the members can reply to it. In order to communicate in real time, many projects use an
266:
methods are applicable to open-source software development, because of their iterative and incremental character. Other Agile methods are equally useful for both open and closed source software development:
238:
system; developing the entire system together as a single team. These operating system development projects closely integrate their tools, more so than in the other distribution-based systems.
450:(GDB) is an example of a debugger used in open-source software development. This debugger offers remote debugging, what makes it especially applicable to open-source software development. 400:
Many open-source projects are now using distributed revision control systems, which scale better than centralized repositories such as SVN and CVS. Popular examples are
306: 786: 350:
Developers and users of an open-source project are not all necessarily working on the project in proximity. They require some electronic means of communications.
173: 552: 1334: 1169: 1098: 485:
is a collection of tools to automate the process of installing, upgrading, configuring, and removing software packages from a computer. The
469:
Memory Leak tools. Validation tools are used to check if pieces of code conform to the specified syntax. An example of a validation tool is
992: 895: 543: 430:
Most large-scale projects require a bug tracking system to keep track of the status of various issues in the development of the project.
779: 557: 367:. Web forums have recently become a common way for users to get help with problems they encounter when using an open-source product. 972: 839: 824: 637: 332: 104: 139:
A developer working on a limited but working codebase, releases it to the public as the first version of an open-source program.
1303: 1128: 1055: 1045: 890: 819: 310: 231: 1179: 1313: 1108: 1050: 772: 567: 562: 413: 1118: 977: 844: 616: 572: 234:
derivatives, maintain the source code of an entire operating system, the kernel and all of its core components, in one
1040: 1035: 849: 146: 295: 1235: 1083: 1078: 1030: 1007: 987: 390: 268: 212: 160:
It's a common mistake to start a project when contributing to an existing similar project would be more effective (
58: 314: 299: 1240: 1230: 482: 470: 112:
Open-source software development can be divided into several phases. The phases specified here are derived from
1143: 942: 925: 834: 721: 1093: 937: 510: 355: 211:
etc.) which ship the Linux kernel along with many user-land components. There are other distributions, like
439:
informs users about the parts of source code that have issues and on which platform(s) these issues arise.
250:
It is hard to run an open-source project following a more traditional software development method like the
157:
that announcing the intent for a project is usually inferior to releasing a working project to the public.
1148: 905: 900: 54: 38: 397:(SVN) was created to replace CVS. It is quickly gaining ground as an OSS project version control system. 967: 920: 121: 17: 1265: 1103: 962: 952: 864: 809: 795: 582: 49:
to study, change, and improve its design. Examples of some popular open-source software products are
34: 136:
An individual who senses the need for a project announces the intent to develop a project in public.
1285: 1270: 1138: 1002: 910: 854: 486: 425: 364: 259: 46: 1275: 915: 739: 577: 354:
is one of the most common forms of communication among open-source developers and users. Often,
1189: 947: 633: 520: 494: 394: 360: 263: 224: 161: 98: 446:
is a computer program that is used to debug (and sometimes test or optimize) other programs.
1260: 1204: 982: 874: 869: 698: 462: 380: 235: 66: 1280: 1133: 1113: 997: 859: 454: 251: 78: 50: 262:
as an extremely useful method for open source software development. More generally, all
1184: 1088: 829: 666:. Making Sense of the Bazaar: Perspectives on Open Source and Free Software, Fall 2003. 490: 702: 612: 1328: 1164: 932: 497:
file format, are package management systems used by a number of Linux distributions.
117: 1199: 1194: 1123: 587: 458: 447: 405: 196: 180: 664:
Adopting Open Source Software Engineering (OSSE) Practices by Adopting OSSE Tools
284: 62: 1209: 1174: 533: 409: 204: 132:
There are several ways in which work on an open-source project can start:
957: 443: 200: 764: 371:
have become common as a communication medium for developers and users.
45:. These are software products available with its source code under an 814: 220: 208: 192: 183:, the Firefox web browser and the LibreOffice office suite of tools. 1014: 466: 351: 188: 689:
Fuggetta, Alfonso (2003). "Open source software––an evaluation".
1225: 722:"Tim Berners-Lee on the Web at 25: the past, present and future" 651:
A framework for creating hybrid-open source software communities
368: 216: 768: 401: 278: 142:
The source code of a mature project is released to the public.
27:
Freely accessible creation and refinement of computer programs
649:
Sharma, S., Sugumaran, V. & Rajagopalan, B. (2002).
677:
Agile software development methods: Review and Analysis
108:
Process-Data Model for open-source software development
1253: 1218: 1157: 1071: 1064: 1023: 883: 802: 613:
http://www.catb.org/~esr/writings/cathedral-bazaar/
675:Abrahamsson, P, Salo, O. & Warsta, J. (2002). 174:List of free and open-source software packages 145:A well-established open-source project can be 780: 653:. Information Systems Journal 12 (1), 7 – 25. 8: 313:. Unsourced material may be challenged and 1068: 787: 773: 765: 223:distributions of open-source programs for 41:is publicly available, is developed by an 740:"The Greatness of Git - Linux Foundation" 333:Learn how and when to remove this message 978:Software development process/methodology 553:Business models for open-source software 103: 600: 505:Software directories and release logs: 31:Open-source software development (OSSD) 395:The Subversion revision control system 18:Open-source software development model 230:Other open-source projects, like the 7: 1299: 993:Software verification and validation 896:Component-based software engineering 716: 714: 712: 544:Free and open-source software portal 311:adding citations to reliable sources 219:for various operating systems, and 153:Eric Raymond observed in his essay 558:Government Open Code Collaborative 457:is a programming tool for finding 25: 973:Software configuration management 840:Search-based software engineering 825:Experimental software engineering 632:, 3rd Edition. Paraglyph Press. ( 179:this type of project include the 1309: 1308: 1298: 630:Open Source Development with CVS 628:Bar, M. & Fogel, K. (2003). 536: 283: 691:Journal of Systems and Software 149:by an interested outside party. 128:Starting an open-source project 820:Empirical software engineering 609:The Cathedral & the Bazaar 1: 1335:Free and open-source software 703:10.1016/S0164-1212(02)00065-1 568:Software composition analysis 563:Open-source software security 168:Types of open-source projects 845:Site reliability engineering 617:The Cathedral and the Bazaar 573:Software development process 155:The Cathedral and the Bazaar 83:The Cathedral and the Bazaar 43:open-source software project 37:, or similar software whose 850:Social software engineering 434:Testing and debugging tools 420:Bug trackers and task lists 1351: 988:Software quality assurance 611:. O'Reilly Retrieved from 423: 391:Concurrent Versions System 378: 269:Internet-Speed Development 171: 96: 1294: 483:package management system 217:Perl programming language 1144:Model-driven engineering 943:Functional specification 926:Software incompatibility 835:Requirements engineering 356:electronic mailing lists 97:Not to be confused with 33:is the process by which 938:Enterprise architecture 744:www.linuxfoundation.org 662:Robbins, J. E. (2003). 511:Free Software Directory 491:Advanced Packaging Tool 487:Red Hat Package Manager 375:Version control systems 191:distributions (such as 1149:Round-trip engineering 906:Backward compatibility 901:Software compatibility 607:Raymond, E.S. (1999). 453:A memory leak tool or 416:programming language. 346:Communication channels 109: 968:Software architecture 921:Forward compatibility 501:Publicizing a project 242:open-source project. 122:meta-process modeling 107: 1266:Computer engineering 963:Software archaeology 953:Programming paradigm 865:Software maintenance 810:Computer programming 796:Software engineering 583:Software engineering 389:During early 2000s, 307:improve this section 35:open-source software 1286:Systems engineering 1271:Information science 1051:Service orientation 1003:Structured analysis 911:Compatibility layer 855:Software deployment 679:. VTT Publications. 489:(RPM) for .rpm and 426:Bug tracking system 260:Extreme Programming 47:open-source license 1276:Project management 1041:Object orientation 1008:Essential analysis 916:Compatibility mode 578:Release management 525:IBM developerWorks 477:Package management 110: 1322: 1321: 1249: 1248: 1190:Information model 1094:Incremental model 948:Modeling language 521:Linux Weekly News 361:instant messaging 343: 342: 335: 264:Agile programming 225:Microsoft Windows 99:Open-source model 16:(Redirected from 1342: 1312: 1311: 1302: 1301: 1261:Computer science 1069: 983:Software quality 875:Systems analysis 870:Software testing 789: 782: 775: 766: 754: 753: 751: 750: 736: 730: 729: 718: 707: 706: 686: 680: 673: 667: 660: 654: 647: 641: 626: 620: 605: 546: 541: 540: 539: 463:buffer overflows 381:Revision control 338: 331: 327: 324: 318: 287: 279: 236:revision control 67:VLC media player 21: 1350: 1349: 1345: 1344: 1343: 1341: 1340: 1339: 1325: 1324: 1323: 1318: 1290: 1281:Risk management 1245: 1214: 1153: 1134:Waterfall model 1104:Prototype model 1099:Iterative model 1060: 1036:Aspect-oriented 1019: 998:Software system 879: 860:Software design 798: 793: 763: 758: 757: 748: 746: 738: 737: 733: 720: 719: 710: 688: 687: 683: 674: 670: 661: 657: 648: 644: 627: 623: 606: 602: 597: 592: 542: 537: 535: 532: 503: 479: 455:memory debugger 436: 428: 422: 383: 377: 363:method such as 348: 339: 328: 322: 319: 304: 288: 277: 252:waterfall model 248: 176: 170: 130: 102: 95: 79:Eric S. Raymond 75: 55:Google Chromium 51:Mozilla Firefox 28: 23: 22: 15: 12: 11: 5: 1348: 1346: 1338: 1337: 1327: 1326: 1320: 1319: 1317: 1316: 1306: 1295: 1292: 1291: 1289: 1288: 1283: 1278: 1273: 1268: 1263: 1257: 1255: 1254:Related fields 1251: 1250: 1247: 1246: 1244: 1243: 1238: 1233: 1228: 1222: 1220: 1216: 1215: 1213: 1212: 1207: 1202: 1197: 1192: 1187: 1185:Function model 1182: 1177: 1172: 1167: 1161: 1159: 1155: 1154: 1152: 1151: 1146: 1141: 1136: 1131: 1126: 1121: 1116: 1111: 1106: 1101: 1096: 1091: 1089:Executable UML 1086: 1081: 1075: 1073: 1066: 1062: 1061: 1059: 1058: 1053: 1048: 1043: 1038: 1033: 1027: 1025: 1021: 1020: 1018: 1017: 1012: 1011: 1010: 1000: 995: 990: 985: 980: 975: 970: 965: 960: 955: 950: 945: 940: 935: 930: 929: 928: 923: 918: 913: 908: 898: 893: 887: 885: 881: 880: 878: 877: 872: 867: 862: 857: 852: 847: 842: 837: 832: 830:Formal methods 827: 822: 817: 812: 806: 804: 800: 799: 794: 792: 791: 784: 777: 769: 762: 761:External links 759: 756: 755: 731: 708: 681: 668: 655: 642: 621: 599: 598: 596: 593: 591: 590: 585: 580: 575: 570: 565: 560: 555: 549: 548: 547: 531: 528: 527: 526: 523: 514: 513: 502: 499: 478: 475: 435: 432: 424:Main article: 421: 418: 412:, used by the 404:, used by the 379:Main article: 376: 373: 347: 344: 341: 340: 291: 289: 282: 276: 273: 247: 244: 169: 166: 151: 150: 143: 140: 137: 129: 126: 94: 91: 74: 71: 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 1347: 1336: 1333: 1332: 1330: 1315: 1307: 1305: 1297: 1296: 1293: 1287: 1284: 1282: 1279: 1277: 1274: 1272: 1269: 1267: 1264: 1262: 1259: 1258: 1256: 1252: 1242: 1239: 1237: 1234: 1232: 1229: 1227: 1224: 1223: 1221: 1217: 1211: 1208: 1206: 1205:Systems model 1203: 1201: 1198: 1196: 1193: 1191: 1188: 1186: 1183: 1181: 1178: 1176: 1173: 1171: 1168: 1166: 1163: 1162: 1160: 1156: 1150: 1147: 1145: 1142: 1140: 1137: 1135: 1132: 1130: 1127: 1125: 1122: 1120: 1117: 1115: 1112: 1110: 1107: 1105: 1102: 1100: 1097: 1095: 1092: 1090: 1087: 1085: 1082: 1080: 1077: 1076: 1074: 1072:Developmental 1070: 1067: 1063: 1057: 1054: 1052: 1049: 1047: 1044: 1042: 1039: 1037: 1034: 1032: 1029: 1028: 1026: 1022: 1016: 1013: 1009: 1006: 1005: 1004: 1001: 999: 996: 994: 991: 989: 986: 984: 981: 979: 976: 974: 971: 969: 966: 964: 961: 959: 956: 954: 951: 949: 946: 944: 941: 939: 936: 934: 933:Data modeling 931: 927: 924: 922: 919: 917: 914: 912: 909: 907: 904: 903: 902: 899: 897: 894: 892: 889: 888: 886: 882: 876: 873: 871: 868: 866: 863: 861: 858: 856: 853: 851: 848: 846: 843: 841: 838: 836: 833: 831: 828: 826: 823: 821: 818: 816: 813: 811: 808: 807: 805: 801: 797: 790: 785: 783: 778: 776: 771: 770: 767: 760: 745: 741: 735: 732: 727: 723: 717: 715: 713: 709: 704: 700: 696: 692: 685: 682: 678: 672: 669: 665: 659: 656: 652: 646: 643: 639: 638:1-932111-81-6 635: 631: 625: 622: 618: 614: 610: 604: 601: 594: 589: 586: 584: 581: 579: 576: 574: 571: 569: 566: 564: 561: 559: 556: 554: 551: 550: 545: 534: 529: 524: 522: 519: 518: 517: 512: 508: 507: 506: 500: 498: 496: 492: 488: 484: 476: 474: 472: 468: 464: 460: 456: 451: 449: 445: 440: 433: 431: 427: 419: 417: 415: 411: 407: 403: 398: 396: 392: 387: 382: 374: 372: 370: 366: 362: 357: 353: 345: 337: 334: 326: 316: 312: 308: 302: 301: 297: 292:This section 290: 286: 281: 280: 274: 272: 270: 265: 261: 255: 253: 245: 243: 239: 237: 233: 228: 226: 222: 218: 214: 210: 206: 202: 198: 194: 190: 184: 182: 175: 167: 165: 163: 158: 156: 148: 144: 141: 138: 135: 134: 133: 127: 125: 123: 119: 118:meta-modeling 115: 106: 100: 92: 90: 86: 84: 80: 72: 70: 68: 64: 60: 56: 52: 48: 44: 40: 36: 32: 19: 1200:Object model 1195:Metamodeling 1124:Spiral model 1024:Orientations 747:. Retrieved 743: 734: 725: 697:(1): 77–90. 694: 690: 684: 676: 671: 663: 658: 650: 645: 629: 624: 615:. See also: 608: 603: 588:Metamodeling 515: 504: 480: 459:memory leaks 452: 448:GNU Debugger 441: 437: 429: 406:Linux kernel 399: 388: 384: 349: 329: 320: 305:Please help 293: 256: 249: 240: 229: 185: 181:Linux kernel 177: 162:NIH syndrome 159: 154: 152: 131: 124:techniques. 114:Sharma et al 113: 111: 87: 82: 76: 42: 30: 29: 891:Abstraction 197:Fedora Core 63:LibreOffice 39:source code 1210:View model 1175:Data model 749:2023-08-25 595:References 516:Articles: 493:(APT) for 213:ActivePerl 172:See also: 1219:Languages 410:Mercurial 294:does not 205:Slackware 77:In 1997, 1329:Category 1314:Category 1180:ER model 1046:Ontology 958:Software 884:Concepts 726:Wired UK 530:See also 444:debugger 323:May 2013 201:Mandriva 65:and the 1304:Commons 1129:V-model 315:removed 300:sources 246:Methods 73:History 59:Android 1065:Models 815:DevOps 803:Fields 636:  471:Splint 414:Python 408:, and 221:Cygwin 215:, the 209:Ubuntu 193:Debian 147:forked 81:wrote 1241:SysML 1165:SPICE 1158:Other 1119:Scrum 1079:Agile 1031:Agile 1015:CI/CD 467:XPCOM 369:Wikis 352:Email 275:Tools 189:Linux 93:Model 1226:IDEF 1170:CMMI 1056:SDLC 634:ISBN 509:The 495:.deb 461:and 298:any 296:cite 120:and 1236:USL 1231:UML 1109:RAD 1084:EUP 699:doi 402:git 365:IRC 309:by 232:BSD 1331:: 1139:XP 1114:UP 742:. 724:. 711:^ 695:66 693:. 481:A 473:. 442:A 227:. 207:, 203:, 199:, 195:, 69:. 61:, 57:, 53:, 788:e 781:t 774:v 752:. 728:. 705:. 701:: 640:) 619:. 336:) 330:( 325:) 321:( 317:. 303:. 101:. 20:)

Index

Open-source software development model
open-source software
source code
open-source license
Mozilla Firefox
Google Chromium
Android
LibreOffice
VLC media player
Eric S. Raymond
Open-source model

meta-modeling
meta-process modeling
forked
NIH syndrome
List of free and open-source software packages
Linux kernel
Linux
Debian
Fedora Core
Mandriva
Slackware
Ubuntu
ActivePerl
Perl programming language
Cygwin
Microsoft Windows
BSD
revision control

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

↑