یکی از اصلیترین تفاوتهای میان این دو مدل از نرمافزار، قابلیت دیدن کد منبع آن میباشد. در ادامه به بررسی دقیقتر تفاوتهای این دو مدل میپردازیم
توسعهدهنده متنباز کیست؟
به زبان ساده، هر کس
که با پروژه متنباز همکاری و کمک میکند، یک توسعهدهنده متنباز است.
مثل کاربر یک نرمافزار، یک تولیدکننده نرمافزار که آن را تولید میکند،
فردی که اشکالات متنباز را گزارش میکند یا هر مروجی که از این توسعه
حمایت میکند.
در متنباز چه کاری انجام میشود؟
توسعهدهندگان متنباز با فعالیتهای متفاوتی نظیر طراحی، برنامهنویسی
اشکالزدایی و به مصرفرسانیدن، درگیر هستند همگی این امور به صورت موازی
و همزمان در راه موفقیت متنباز با یکدیگر حرکت میکنند. همچنین کاربران
نقشی اساسی درگزارشدادن اشکالات به تولیدکنندگان ایفا میکنند. که گهگاه
امر اشکالزدایی را نیز خود انجام میدهند و تولیدکنندگان به خوبی آگاه
هستند که کاربران بهترین آزمایشکنندگان نرمافزارهایشان هستند.
متنباز در جدال با متنبسته
نرمافزار متنباز یک پدیده جدید است. در حالیکه نرمافزار متنبسته به
صورتی سنتی از ابتدای پدیدارشدن نرمافزار وجود داشته است. یکی از
اصلیترین تفاوتهای میان این دو مدل از نرمافزار، قابلیت دیدن کد منبع
آن میباشد. در ادامه به بررسی دقیقتر تفاوتهای این دو مدل میپردازیم.
تعیین و تشخیص و تعریف نیازمندیها
توسعه نرمافزارهای متنباز با انگیزه رضایتمندی شروع میشود
نیازمندیها واضح هستند و تولیدکنندگان از نیازمندیها به خوبی آگاه هستند
تولید نرمافزارهای متنبسته با تعریف و تعیین نیازمندیها شروع میشود و
در این بحث نیازمندیها مبهم هستند. تولیدکنندگان این پروژه از نیازمندیهای
حقیقی آگاه نیستند و مجبورند با سرمایهگذاران مذاکره کنند تا نیازمندیها
را استخراج کنند و سپس وارد مرحله اجرایی شوند.
تمام نیازمندیها و خواستههای کاربر قابل اجراست؛ به علت این که خود
کاربران همان توسعهدهندگان و پرورشدهندگان نرمافزارها هستند تمام
نیازمندیهای کاربر، به علت در قید و بند بودجه بودن، قابل اجرا نیستند
کاربر ممکن است ویژگی و قابلیتهای اضافی را پیشبینی کند که اغلب اوقات
اجرا میشود. کاربران ممکن است نیازمندیها و خواستههای خود را بیان کنند
ولی این نظرات و پیشنهادات ممکن است اجرا شود و ممکن است اجرا نشود
اعضای اصلی و هسته تیم پروژه تصمیم میگیرند که چه نیازمندیهایی ثبت
نمیشود معمار سیستم و مدیر پروژه تصمیم میگیرند که چه نیاز مندیهایی
درج شود.
مستند سازی
ممکن است طرح پروژه موجود باشد یا نباشد طرح پروژهها ثبت میشود و طبق آن پروژهها دنبال میشود
نیازمندیها ممکن است مستند یا غیر مستند باشد وقتی نیازمندیهای طرح شفاف باشند مستند میشوند
نقشه طرح و طرح آزمایش ممکن است مستند شود یا نشود نقشه طرح و طرح آزمایشی باید مستند شوند
تحلیل و مقصود
مراحل طراحی(برنامهریزی) و اجرا غالباً با یکدیگر ترکیب میشوند و مراحلی
جدا از هم نیستند معماران سیستم و مدیران پروژه وقت زیادی را صرف
طراحی(برنامهریزی) بر روی پروژه میکنند
این نوع از توسعه بیشتر بر مبنای مؤلفهها است. تولیدکنندگان، برنامههای
کامپیوتری کوچک را که روی بستر های مختلف کارمیکنند، تولید میکنند
تولیدکنندگان راهکارهای نرمافزاری خود را بر اساس نیازمندیهای شرکتهای
بزرگ که محصول برای َآنها سفارشی شدهاست، تعیین میکنند.
معماری نرمافزار
در طول رشد کردن نرمافزار، این احتمال وجود دارد که معماری عوض شود و
ادامه دادن یک معماری سازگار مشکل است نگهداری معماری سازگار نرمافزاری
در طول تولید و توسعه پروژه یک امر اجباری است.
در طول تولید و توسعهی نرمافزار، تغییرات سیستمی بدون در نظر گرفتن همه
تأثیرات و نتایج بروی معماری سیستمی انجام می گیرد. این تغییرات بی ترتیبی
های ساختاری بین معماری مفهومی و معماری به هم پیوسته را بیان می کند.
معماری نرمافزار غالباً حفظ میشود. به دلیل این که تغییرات تدبیر شده بر
روی معماری نرم افزار اکثر اوقات قبل از تغییرات بزرگ و اصلی صورت می
گیرند. (معماری مفهومی)
اکثر تولیدکنندگان و توسعهدهندگان نرمافزار متنباز با علاقه و از سر
ذوق به این امر میپردازند به همین علت در مورد معماری نرم افزار چندان
نگران نیستند تولید کنندگان و مدیران از معماری نرمافزار خود حمایت می
کنند و آن را از دستخوش پیشآمد بودن حفظ می کنند
اجرا
تولید کنندگان و توسعه دهندگان برای یک مشخصه دوستانه و تعاملی کار
میکنند و مردم این شناسه را از وقف کردن یک نرمافزار توسط یک تولیدکننده
(توسعه دهنده) متوجه میشوند. تولید کنندگان به انگیزه اقتصادی کار میکنند
سرعت توسعه نرمافزار بسیار زیاد است چون از نوع توسعه موازی بر اساس
همکاری دوطرفه بین تولیدکننده و توسعهدهنده میباشد سرعت رشد در مقایسه
با متنباز بسیار کندتر است به علت اینکه تعداد اعضای توسعهدهنده و
تولیدکنندهی نرمافزارهای متنبسته هیچگاه به اندازه نرمافزارهای بزرگی
مثل لینوکس نمیشوند.
از آنجایی که تولیدکنندگان مجبور به کارکردن روی یک پروژه بخصوص نیستند
کارایی افراد در پروژههای مختلف بالا میرود. کارایی و خلاقیت
تولیدکنندگان ممکن است پایین بیاید به علت اینکه ممکن است فرد برای تولید
نرمافزار مجبور به کارکردن بر روی پروژهای که به آن علاقهای ندارند،
شوند.
آزمایش
کاربران به عنوان گزارشدهندگان اشکالات برنامهها ویا آزمایشکنندههای
نسخههای آزمایشی هستند هر گاه یک کاربر هرگونه اشکالی در نرمافزار پیدا
کند در اول سعی میکند که این اشکال را برطرف کند و ان را به صورت یک
اعلامیه در یک انجمن به دیگران اعلام کند با کاربران به عنوان آزمایشگرهای
نسخههای آزمایشی برخورد نمیشود.
انتشار و تحویل محصولات
نرمافزار به صورت هفتگی یا روزانه انتشار مییابد و بروزرسانی میشود
انتشار یک نرمافزار مدت زیادی طول نمیکشد حتی گاهی در عرض یک سال
نرمافرازها روانه بازار میشود
محصول هنگامی روانه بازار میشود که تولید کننده احساس کند که محصول به
مرحله عملیاتی دست یافته است محصول اغلب اوقات به علت فشارحاکم بر بازار
فروش یا اتمام زمانبندی منتشر میشود.
پایان پذیرفتن یا نپذیرفتن بستگی به علاقه کاربران دارد. اگر کاربر یا
مالک پروژه علاقه خود را در پروژه از دست دهد ممکن است پروژه به مدت
نامحدود به تاخیر بیفتد. هر پروژهای که شروع میشود مجبور به اتمام است و
همچنین ممکن است پروژه به مدت نامحدود به علتهای مختلفی مانندبرنامهریزی
نامناسب، مدیریت غلط یا ناتوانی در به پایان رساندن طبق برنامهریزی، به
تاخیر بیفتد.
محصول
محصول هیچ گاه در وضعیت نهایی قرار نخواهد گرفت بلکه نیازمندیها پدیدار
شده و سپس به انجام میرسند و در نتیجه چرخهای تکاملی پیدا میکند. وقتی
نیازمندیهای منتشر شده تکمیل شده باشد محصول طولی نخواهدکشید که به وضعیت
نهایی خود برسد.
موفقیت در تمامی پروژههای متنباز به نیازمندیها و علاقهمندیهای
گروههای کاربران وابسته است موفقیت به عامل زمانبندی بسیار دقیق بستگی
دارد
نگهداری و تعمیر
به سرویس پکها احتیاجی نداریم به علت اینکه گزارش دادن اشکالات و برطرف
کردن اشکالات یکی ازخصوصیات متعارف برنامههای بازمتن میباشد برای اصلاح
کردن اشکالات برنامه همیشه به سرویس پکها نیازمندیم
در تولید نرمافزارهای متنباز پیشرفتپ و زمان به جای مراقبتهای
پیشگیرانه، صرف تعمیرات اصلاحی و تولید فعال میشود .مراقبتهای پیشگیرانه
شغل کسل کنندهای به نظر میرسد به علت اینکه باعث مختل شدن جریان توسعه
میشود نگهداری و تعمیر، اصلیترین مرحله، توسعة نرمافزار است.
سودمندی، کیفیت و هزینه
نرمافزارهای متن باز راه خود برای نگهداری کردن و هماهنگی و پیچیدگی طی
میکنند اضافه کردن نیروهای انسانی به پروژه برای زیادکردن سرعت رشد
پروژه اغلب باعث تاخیر در پروژه میشود زیرا سطح هماهنگی و پیچیدگیها
پایین میآید.
سریع و ارزان و بهتر کند و گرانقیمت
هر سه عامل به طور همزمان با یکدیگر هماهنگی دارند. هزینهها کاهش پیدا
میکند زیرا به هیچ کس برای کاری که انجام میدهد هزینهای پرداخت نمیشود
. هر فرد به عنوان یک داوطلب است. سرعت افزایش پیدا کرده زیرا توسعه و
پیشرفت طبیعتاً به صورت موازی وهمکارانه است و کیفیت نیز حفظ میشود زیرا
فقط وقتی یک محصول منتشر میشود که تولید کننده آن از کارکرد و پایداری
نرمافزار خود اطمینان داشته باشد سرعت و کیفیت و هزینهها به طور هماهنگ
با یکدیگر رابطه ندارند در یک زمان خاص تنها یک عامل خاص میتواند در نظر
گرفته شود برای مثال اگر به عامل سرعت بها داده شود کیفیت و هزینهها بالا
میرود ویا اگر هزینهها در نظرگرفته شود و سرعت و کیفیت پایین میآید.
کد منبع
کد منبع باز است . کاربر میتواند در هر لحظهای آن را مشاهده کرده و
تغییر دهد و اصلاح کند تا نیازمندیهای شخصی خود را برآورده کند کد منبع
از کاربران مخفی است بدین معنی که قدرت تغییر آن از جانب کاربر در آن
جلوگیری شده است
محیط
غیر متمرکز و توزیع شده محیط کاربری چند فضایی متمرکز و یک محیط کاربری
توسعه بر روی شبکه اینترنت رخ میدهد که به سهولت در توسعه ناگهانی آن کمک
میکند رشد و توسعه معمولا در یک فاصله جغرافیایی محدود انجام میپذیرد
امنیت
امنیت بواسطه متنباز امنیت در هالهای ازابهام
بازار عرضه باعث توسعه نرمافزار متنباز نیست بلکه کیفیت است که موجب
رونق آن شده است. واکنش انجمنها و گروههای متنباز نسبت به گزارش مشکلات
نرمافزار متنباز نسبت به نرمافزار متنبسته بسیار بسیار سریعتر است و
این عامل باعث تسهیل در رفع مشکلات نرمافزار متنباز میباشد بازار عرضه
بر این عقیده است که نرمافزار متنبسته بسیار از لحاظ امنیت در سطح
بالایی قرار دارد. به علت اینکه توسط عدهای از متخصصان و برای یک منطقه
جغرافیایی خاص و طی یک زمانبندی دقیق طراحی و تولید میشود؛ ولی اصلا
موضوع بحث نیست. مخفی کردن اطلاعات، آن را امن نمیکند بلکه خود دلیلی
برای ناتوانی و ضعف آن است.
قابلیت تغییر کد منبع یکی از مهمترین فواید آن برای فراهم آوردن یک سیستم
با امنیت بسیار بالا میباشد تغییر در کد منبع برای بالابردن سطح امنیت
امکانپذیر نمیباشد