Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach Software Engineering for Students A Programming Approach

web.firat.edu.tr
from web.firat.edu.tr More from this publisher
21.08.2013 Views

sharing of software or their own requirement for the software product. Code is commonly implemented via reuse and most open source projects begin immediately by rewriting the code of existing products, with enhancements and alterations made where necessary. When there is no original from which to copy, a core developer base begins writing the code before offering it to the wider community for critique. The design of the code is communicated via web-based tools. Sometimes UML diagrams or other cross-reference displays, using hyperlinks to depict the overall structure of the are deployed. However, generally, there is a lack of design documentation within open source products. An explicit project manager or management group is generally in place on open source projects. They decide on the usefulness and appropriateness of contributions that are made by the wider developer community. They also usually add the patch to the code and therefore act as chief implementer on the project. Once contributions have been implemented, beta versions of open source products are released. Releases are made frequently, so that the effectiveness of contributions can be tested immediately. Feedback on the latest version is received and contributions again incorporated into the code in a continuous cycle, which continues until the community is satisfied with the eventual outcome. Contributions then slow down or cease. Development communities and product websites act as sources of support for users of open source software. The websites contain installation tutorials and user forum groups providing technical support. The development community mostly provides these voluntarily. As an alternative means of support, commercially supported versions of open source software are available to buy. This software is an exact replica of the source code, but is provided with supporting manuals and services. These do not exist for all products and therefore many smaller open source products are only used by technically adept users. However, most of the larger open source projects now have their own commercial subsidiaries. SELF-TEST QUESTIONS 25.3 What is the main technique of open source development? 25.4 What is the main tool of open source development? 25.5 Case study: the GNU/Linux operating system 325 25.5 ● Case study: the GNU/Linux operating system GNU/Linux is an open source operating system, loosely based upon Unix. It contains over 10 million lines of code and has been developed using over 3,000 major contributors of code throughout 90 countries. Linus Torvalds, who still oversees the project today, instigated the project in 1991. Torvalds originally began the project because none of the current operating systems served his own requirements. They were either unreliable, too expensive or devoid of

326 Chapter 25 ■ Open source software development the functionality he required. He also feared that another open source operating system, GNU/HURD, was far off completion. He could not wait. Torvalds began to write the kernel for his operating system. He was also motivated by the enjoyment of writing code and claims that he wrote it “just for fun”! Torvalds targeted developer forums and websites, posting an early release of the kernel and requesting feedback and contributions. Increased contributions and collaborations between GNU/Linux and GNU groups meant that distribution of beta versions was frequent and continuous. The GNU/Linux operating system is licensed under the GPL, ensuring that the source code remains open. After years of continuous development, GNU/Linux is now a renowned open source operating system, competing on the world market with other commercial and proprietary software companies. What began as a personal project is now widely used and technically reputable. The GNU/Linux software code is still available in its original non-supported format. However, a number of commercial organizations also exist to provide appropriate support for various user markets. GNU/Linux remains in continuous development, often responding to technological advancements. 25.6 ● Discussion Open source development’s most attractive asset is the enormous enthusiasm and passion that resonates throughout the developer community and their building of software. Developers have an unrelenting belief in what they do; voice their pride in their hacker roots; find nothing more fulfilling than the art of programming. Forking ensures that developer requirements are established and implemented in a democratic process. This means that the requirements of the majority of the development community are satisfied. Similarly, any specific personal modification can be made by individuals, providing that they have the technical ability to implement them. However, it is worth noting that this process largely ignores non-developer user requirements. The general user does not have the power to register their vote via code implementation; neither can they personally modify their own code. The reuse of code is an important development approach. However, in the case of open source projects that attempt to rewrite entire systems and applications, a reuse approach can only be facilitated by source code that is not covered by a proprietary license. Liability issues may hinder entire projects because developers may not have legal access to any code that they would like to rewrite. However, the overall expertise of the hacker community usually means that volunteers are willing to take on the alternative and more difficult task of writing entire systems from scratch. Releasing frequent versions of the software brings benefits of continuous feedback. Whilst the beta code may not contain all the functionality that is required, it means that the developer base can immediately evaluate the code and get a feel for the software. Crucially, the potentially vast audience of testers can immediately begin to track and fix bugs, so that changes can be made incrementally, continuously and at a relatively fast pace.

326 Chapter 25 ■ Open source software development<br />

the functionality he required. He also feared that another open source operating system,<br />

GNU/HURD, was far off completion. He could not wait. Torvalds began to<br />

write the kernel <strong>for</strong> his operating system. He was also motivated by the enjoyment of<br />

writing code and claims that he wrote it “just <strong>for</strong> fun”!<br />

Torvalds targeted developer <strong>for</strong>ums and websites, posting an early release of the kernel<br />

and requesting feedback and contributions. Increased contributions and collaborations<br />

between GNU/Linux and GNU groups meant that distribution of beta versions<br />

was frequent and continuous. The GNU/Linux operating system is licensed under the<br />

GPL, ensuring that the source code remains open.<br />

After years of continuous development, GNU/Linux is now a renowned open<br />

source operating system, competing on the world market with other commercial and<br />

proprietary software companies. What began as a personal project is now widely used<br />

and technically reputable. The GNU/Linux software code is still available in its original<br />

non-supported <strong>for</strong>mat. However, a number of commercial organizations also exist<br />

to provide appropriate support <strong>for</strong> various user markets. GNU/Linux remains in continuous<br />

development, often responding to technological advancements.<br />

25.6 ● Discussion<br />

Open source development’s most attractive asset is the enormous enthusiasm and passion<br />

that resonates throughout the developer community and their building of software.<br />

Developers have an unrelenting belief in what they do; voice their pride in their<br />

hacker roots; find nothing more fulfilling than the art of programming.<br />

Forking ensures that developer requirements are established and implemented in<br />

a democratic process. This means that the requirements of the majority of the development<br />

community are satisfied. Similarly, any specific personal modification can be<br />

made by individuals, providing that they have the technical ability to implement<br />

them.<br />

However, it is worth noting that this process largely ignores non-developer user<br />

requirements. The general user does not have the power to register their vote via code<br />

implementation; neither can they personally modify their own code.<br />

The reuse of code is an important development approach. However, in the case of<br />

open source projects that attempt to rewrite entire systems and applications, a reuse<br />

approach can only be facilitated by source code that is not covered by a proprietary<br />

license. Liability issues may hinder entire projects because developers may not have legal<br />

access to any code that they would like to rewrite. However, the overall expertise of the<br />

hacker community usually means that volunteers are willing to take on the alternative<br />

and more difficult task of writing entire systems from scratch.<br />

Releasing frequent versions of the software brings benefits of continuous feedback.<br />

Whilst the beta code may not contain all the functionality that is required, it means<br />

that the developer base can immediately evaluate the code and get a feel <strong>for</strong> the software.<br />

Crucially, the potentially vast audience of testers can immediately begin to track<br />

and fix bugs, so that changes can be made incrementally, continuously and at a relatively<br />

fast pace.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!