دوشنبه, ۱۰ اردیبهشت, ۱۴۰۳ / 29 April, 2024
مجله ویستا

مدل توسعه نرم‌افزار متن‌باز و ضوابط توزیع آن


مدل توسعه نرم‌افزار متن‌باز و ضوابط توزیع آن
نرم افزارهای متن‌باز از نظر مدل توسعه به دو دسته مختلف طبفه بندی می‌شوند. در ادامه این دو دسته را بررسی می‌کنیم و به شرح ضوابط توزیع این نرم‌افزارها می‌پردازیم.
۱) مدل کلیسا (Cathedral)
۲) مدل غالب دنیاهای تجاری است.
۳) توسط گروههای کوچک و افراد با ‌تجربه و نیز با دقت زیاد تولید می‌شوند.
۴) انتشار نگارشهای جدید نرم‎افزارهای این مدل معمولاً با سرعت بسیار پایین‌تری نسبت به مدل "بازار"- که در ادامه توضیح داده شده است- انجام می‎گیرد.
۵) دارای حمایت مالی هستند.
بازار (Bazaar)
۶) مدل دنیایLinux است.
۷) "زود خروجی بده و همیشه خروجی بده"( Release early! Release often) یک اصل مهم در این مدل است..
۸) هر کاری که فردی می‌تواند انجام دهد به او محول می‌شود.
۹) قید و شرط خاصی برای کاربر ندارد.
۱۰) انتشار نگارشهای جدید نرم‎افزارهای این مدل اغلب تا جایی که ممکن است انجام می‎گیرد.
۱۱) بدون هیچ‌گونه حمایت مالی تولید می‌شوند.
پس با تقریب خوبی می‎توان پروژه‎های Cathedral متن‌باز را تا حد زیادی شبیه پروژه‎های کدبسته فرض کرد.
● ضوابط توزیع نرم‌افزار متن‌باز
متن‌باز بودن صرفاً به معنای دسترسی به کد منبع نیست. در توزیع نرم‌افزارهای متن‌باز باید ضوابطی را رعایت کرد. در زیر این موارد ذکر شده‌اند. در واقع ۹ موردی که در بند ۱-۴ گفته شد، در این بند به مفصل توضیح داده می‌شوند:
۱) تکثیر رایگان: اجازه‌نامه‌ای که به این نرم‌افزارها داده می‌شود، باعث نمی‌شود که هیچ‌یک از موارد مربوط به فروش یا پخش و توزیع نرم‌افزار محدود شود. اجازه نامه به حق امتیاز یا هرگونه پرداختی به خاطر فروش، نیاز ندارد. با اعمال تکثیر رایگان روی اجازه‌نامه، دیگر وسوسه‌ی حذف خیلی از قسمتهای طولانی ولی سودمند برنامه را، به منظور داشتن فروش اندکی از قسمتهای کوتاه، از بین می‌بریم. اگر این اجبار را برداریم، فشارهای زیادی روی همکاران پروژه به خاطر نقص و کاستی در پروژه خواهد بود.
۲) کد منبع: برنامه باید شامل کد منبع باشد و امکان توزیع این کد نیز مثل فرم کامپایل شده برنامه وجود داشته باشد. اگر بخشهایی از محصول به همراه کد منبع توزیع نمی‌شوند، باید اطلاع‌رسانی خوبی از نحوه بدست‌آمدن کد و امکان download آن از اینترنت، بدون هیچ هزینه‌ای وجود داشته باشد.
آوردن هر نوع نکته مبهم و گیج‌کننده‌ای در کد، ممنوع است. کدهای میانی مثل خروجی پیش‌پردازنده‌ها یا مترجمها در توزیع نرم‌افزار گنجانده نمی‌شوند. ما نیاز داریم که به یک کد غیرمبهم و واضح دسترسی داشته باشیم؛ در غیر این صورت نمی‌توان به تکامل برنامه، بدون اعمال تغییراتی در آن، کمک کرد. بنابراین تغییرات ما باید به سهولت اعمال شود.
۳) کارهای مشتق‌شده: مجوز باید اجازه‌ی تغییرات، در دیگر کارهایی که در همین زمینه انجام شده‌اند، را بدهد و آنها نیز مثل نرم‌افزار اولیه امکان توزیع داشته باشند. برای سرعت بخشیدن به تکامل نرم‌افزار، افراد به تجربیات کاری و تکثیر تغییرات نیاز دارند.
۴) جامعیت کد نویسنده: مجوز نرم‌افزار ممکن است توزیع کد برنامه را پس از تغییرات اعمال شده توسط دیگران محدود کند و امکان این کار را فقط به صورت فایلهای وصله‌ای بدهد. این امر به منظور امکان تغییر در برنامه در زمان ساخت آن است. مجوز باید صریحاً اجازه توزیع نرم‌افزاری را که از کد تغییر‌یافته ساخته شده، بدهد. برای این کار نیز ممکن است به کارهای از قبل انجام‌شده، تحت یک عنوان جدید، یا یک شماره نگارش جدید از نرم‌افزار اولیه نیاز باشد.
انگیزه دادن برای بهبود برنامه‌ها امری مفید است، اما کاربران این حق را دارند که بدانند چه کسی مسوؤل نرم‌افزاری است که آنها از آن استفاده می‌کنند. نویسندگان و پشتیبانان نرم‌افزار نیز متقابلاً این حق را دارند که بدانند اعتبارشان را صرف چه چیزی کرده‌اند.
از اینرو، یک مجوز متن‌باز باید دردسترس بودن کد را تضمین کند، اما ممکن است، برای توزیع، نیاز به ضمیمه کردن کدهای پایه و دست‌نخورده اولیه به فایلهای وصله‌ای باشد. به این ترتیب، تغییرات غیررسمی و غیرمستند در دسترس همه قرار می‌گیرند، اما از نظر قابلیت خواندن کد با کد اولیه متمایزند.
۵) هر‌گونه تمایزی در برابر افراد و گروهها ممنوع: به منظور داشتن حداکثر بهره از فرآیند جاری، شرایط شرکت و همکاری افراد و گروهها در برنامه متن‌باز باید یکسان باشد. بنابراین نباید به هیچ فردی، جهت فیلتر کردن بخشی از فرآیند، مجوزی داده شود.
۶) هرگونه تمایزی در زمینه‌های مختلف تحقیقی ممنوع: مجوز نباید افراد را در استفاده‌ی برنامه، در یک رشته‌ی خاص، محدود کند. برای مثال چه در زمینه‌ی تجارت و چه در تحقیقات ژنتیکی(!) نباید محدودیتی برای استفاده از برنامه وضع کند. اجازه‌نامه‌های غیر حقیقی ممکن است مانع از استفاده‌های تجاری برنامه شوند. در صورتیکه هدف این است که کاربران تجاری نیز به این گروه نرم‌افزاری ملحق شوند و در بهره‌گیری از امکانات آن مستثنی نباشند.
۷) تکثیر مجوز: حقوقی که به برنامه الصاق می‌شود، باید به همه برنامه‌هایی که تکثیر می‌شوند نیز تعلق بگیرد، بدون اینکه مجوز جدیدی برای این قسمتها اضافه شود.
۸) مجوز نباید مختص به یک محصول خاص باشد: حقوقی که به یک برنامه تعلق می‌گیرد نباید وابسته به یک نرم‌افزار توزیع‌شده باشد. همه‌ی نرم‌افزارها و برنامه‌هایی که از برنامه‌ی اولیه منشعب و توزیع شده‌اند، باید همان حقوقی را که به نرم‌افزار اصلی و اولیه تعلق دارد، داشته باشند. خوشبختانه این موضوع عرصه را بر گروههای مجوزدهنده غیرحقیقی تنگ کرده است.
۹) مجوز نباید محدودیتی برای دیگر نرم‌افزارها ایجاد کند: مجوز نباید برای دیگر نرم‌افزارها که همزمان و در طول تولید نرم‌افزار ثبت‌شده، توزیع شده‌اند، محدودیتی ایجاد کند. مثلا نباید اصرار داشته باشد که همه برنامه‌های توزیع‌شده روی یک رسانه حتماً متن‌باز باشند. توزیع‌کنندگان نرم‌افزارهای متن‌باز این حق را دارند که سلایق شخصی خود را روی نرم‌افزار خود اعمال کنند.
۱۰) مجوز باید تکنولوژی بی‌طرف داشته باشد: هیچ بند و ماده‌ای از اجازه‌‌نامه نباید به تکنولوژی‌های شخصی یا سبک واسط خاصی استناد دهد. این بند بیشتر به این منظور خاص است که برای انعقاد قرارداد بین مجوز‌دهنده و گیرنده‌ی مجوز، نیاز به توافقی صریح می‌باشد.
منابع:
http://www.opensource.org/docs/definition.php
http://gnuwin.epfl.ch/articles/en/cathedralbazaar/cathedral-bazaar.pdf
ترجمه: زهرا احمدی
منبع : طرح ملی نرم‌افزارهای آزاد


همچنین مشاهده کنید