(IJCSIS) International Journal of Computer Science and Information Security,Vol. 10, No. 7, July 2012
Open Source Initiative (OSI) has identified severalterms and standards that the open source softwaremust fulfill [1]. These terms and standards arediscussed below1.
RedistributionOSS is freely available to everyone and it does notlimit any one from redistributing it without any cost.2.
Free Source CodeThe OSS program must contain the source code. If due to any reason the source code is not providedalong with OSS, then it should be possible to get itfrom some authorized source.3.
Derived Work The OSS source code should be freely available toeveryone for variations in code as well as to add anyrequired functionality. The product will be thenavailable to the public under the same licenseagreement.4.
No discrimination against usersOSS must not discriminate among people. It is freelyavailable to everyone and anyone can modify it andredistribute it according to the policies.5.
No discrimination against a specific fieldOSS can be used in any field of study and there is norestriction of its use in commerce, business, andresearch or any other field.6.
Distribution of LicenseOSS license is distributed among its users so thatthey can make changes to the code, add functionalityand then redistribute the code. Every person thatcontributes code to the OSS does it according to thepolicies described in the license.IV.
CLASSICAL VS. OSS REQUIREMENTENGINEERING PROCESSRequirements elicitation is defined as the process of gathering the requirements from the stakeholders orend users of the product. Fox C. defines the processof requirements elicitation as “the activity of determining stakeholder’s needs and desires for aproduct” [13]. Open source software development(OSSD) process is unlike traditional softwareengineering development process. OSSD is carriedout by some volunteers who find the need to developsome software and then make it public for the usersto review and modify it. Whereas the traditionalsoftware development process is carried out by someprofessional developers and it is developed for someparticular customers [12]. Therefore the requirementsphase of OSSD and traditional software developmentalso differs to some extent. Requirements phase is themost fundamental and complicated phase in softwaredevelopment, as stating what is needed becomescomplex for the clients. Classical requirementsengineering process includes Eliciting requirements,Modeling or specifying requirements, Analyzingrequirements, Validating requirements,Communicating requirements [2]. For open sourcesoftware development, requirements phase can bedivided into sub phases which include requirementselicitation or more specifically it can be called asrequirements assertion from the open sourcecommunity using different techniques available,analyzing those requirements to remove duplicates,ambiguity and inconsistencies. After analyzing,requirements are again altered to maintainconsistency among them and to include or excluderequirements; these requirements are then finalized.Figure 2: Proposed Requirements Elicitation Phase inOSSDRequirements elicitation phase in OSS developmentrequires identifying the stakeholders of the product,their goals and expectations. For this purposetechnique like introspection, questionnaires,discussions, open ended interviews are most suitableas they can be easily implemented but all thesetechniques have their own merits and demerits.
14http://sites.google.com/site/ijcsis/ISSN 1947-5500