Y@SiN
09-13-2009, 11:54 AM
شيوه تعيين نگارش برنامههاي كامپيوتري (بخش نخست)
هركس با رايانه و نرمافزارهاي رايانهاي كار كرده باشد، بيشك با يك عدد بهنام نگارش (Version) در عنوان نرمافزار برخورد داشته است و عموما تنها برداشتي كه از آن عدد ميشود آن است كه هرچه بزرگتر باشد بهمعني جديدتر بودن برنامه است. اين برداشت درست است، اما خوب است با جزئيات و نحوه تعيين و انتخاب عدد نگارش نيز آشنا شويم و مفهوم آن را بهتر بدانيم.
سخهگذاري
نسخهگذاري فرايندي است كه يك نام يا يك عدد منحصربهفرد به يك نرمافزار خاص در يك وضعيت مشخص اختصاص داده ميشود. اين نامگذاري يا عددگذاري با هر تغيير يا بهروزرساني نرمافزار با روندي افزايشي تغيير ميكند. بهطوري كه نسخه با عدد بزرگتر بهمعناي جديدتر بودن نرمافزار نسبت به نسخه با عدد كوچكتر است.
در نسخهگذاري نرمافزارها شكلهاي متعددي مرسوم شده و برخي آنقدر خاص است كه از ذكر آن خودداري ميكنيم. اما اغلب قالبها در ميان كاربران شناخته شده و بعضا بهصورت قرارداد يا استاندارد در آمده است و برخي از آنها در مفهوم، مشابه با يكديگر و برخي خود مفهومي مستقل دارند.
اعداد و ارقام موجود در عدد نگارش يك نرمافزار بر اساس ميزان اهميت تغييرات درجهبندي ميشوند و هر درجه معمولا توسط يك نقطه از ديگري جدا ميشود. البته جداسازي با خطفاصله يا مميز و... نيز انجام ميشود. اما استفاده از نقطه مرسومتر است. بايد توجه داشت كه نبايد نقطه را به مفهوم اعشار دهدهي دانست. مثلا 2.5 به معناي دوونيم نيست، بلكه به معني بازبيني پنجم سطح دوم نسخهگذاري است.
اولين عدد بيانگر مهمترين تغييرات نرمافزار است و به ترتيب از درجه اهميت اعداد ديگر كم ميشود. براي مثال در حالتي كه از نسخهگذاري چهارقسمتي مثل 2.1.3.4 استفاده شود، اولين عدد تنها در صورتي افزايش مييابد كه كد برنامه بهطور كامل بازنويسي شود. در حالي كه اعمال تغييرات در ظاهر برنامه يا واسط كاربر، همچنين مستندات برنامه، تنها موجب تغيير در بخش چهام عدد نگارش ميشود. اين كار موجب ميشود كه كاربر با ديدن تغيير در نگارش يك برنامه متوجه شود كه تغييرات نرمافزار به چه ميزان و در چه سطحي بوده است.
در نسخهگذاري سهقسمتي، بهطور كلي در نسخههاي بعدي نرمافزارها، عدد اول يا عدد اصلي نگارش (Major number) زماني افزايش مييابد كه قابليت، امكانات يا تغييرات عمده و چشمگيري در برنامه حاصل شود. عدد دوم يا عدد فرعي (Minor number) نيز زماني افزايش مييابد كه امكانات كوچكي به برنامه اضافه شود و يا اشكالات بزرگ و مهمي رفع شود. عدد سوم يا عدد بازبيني (Revision number) نيز زماني افزايش مييابد كه اشكالات كوچك نرمافزار رفع شود.
گاه بعد از نسخهاي مثلا نسخه 2.0 از يك نرمافزار، بدون عرضه نسخههاي مياني يعني 2.1، 2.2 و... يكباره نسخه 2.5 آن عرضه ميشود. اين بيانگر آن است كه امكانات و تغييرات عمدهاي در برنامه اعمال شده است، اما در آن حدي نبودهاند كه عدد اصلي نگارش افزايش يابد.
براي مثال بعد از نسخه 5 نرمافزار معروف فتوشاپ، نسخه 5.5 آن عرضه شد كه نسبت به نسخه 5، امكانات آن افزايش يافته و تغييرات عمدهاي در روش انجام كارها در آن اعمال شده بود. البته اگر نسخهدهي به نرمافزار بهصورت دستي و توسط شخص انجام شود، ميتوان بدون كوچكترين تغيير در كد برنامه، حتي عدد اصلي نگارش آن را تغيير داد كه اينطور بنمايد كه تغييرات اساسي داشته است! اما اين خلاف اصول توسعه نرمافزار است.
گاهي در نسخهگذاري از كاراكترها نيز استفاده ميشود. مثل a1.32، b1.32، c1.32 و... كه اين بهمعناي آن است كه در نسخه 1.32 تنها اشكالات برطرف شدهاند و امكانات خاصي به آن اضافه نشده است. در برخي نسخههاي نرمافزارها نيز از واژه Build و پس از آن از يك عدد استفاده ميشود كه آن نيز نمايانگر شماره ساخت نسخه اجرايي برنامه است و پس از هر بار كامپايل برنامه، اين عدد افزايش مييابد.
در استاندارد GNU، قالب نسخهگذاري بهصورت Major .Minor .Revision است كه البته در برخي نرمافزارها عدد مربوط به ساخت را نيز بدون استفاده از كلمه Build، بين عدد اصلي نگارش و عدد بازبيني قرار ميدهند.
معمولا نسخههاي جديد نرمافزارها نسخههاي پيشين را پشتيباني كرده و با آنها سازگارند. اما زماني كه دو نسخه از يك نرمافزار در عدد اصلي يا فرعي متفاوت باشند، ممكن است اين سازگاري وجود نداشته باشد. اما تفاوت در عدد بازبيني، سازگاري دو نسخه از نرمافزار را تضمين ميكند. البته عمدتا نسخههاي متفاوت در عدد فرعي نيز با يكديگر سازگارند.
ميتوان گفت هيچكدام از نرمافزارهاي دنيا، چه نسخههاي آزمايشي و چه نسخههاي رسمي كه تحت فشار مورد آزمون قرار گرفتهاند، بدون اشكال نيستند. اما تلاش بر اين است كه نرمافزاري كماشكالتر عرضه شود. بهعبارتي ميتوان اين جمله را گفت كه: نرمافزار بدون اشكال، نرمافزار نانوشته است!
چند استثنا
در نسخهگذاري نرمافزارها استثناهاي بسياري بهچشم ميخورد. مثلا جالب است بدانيد كه نرمافزاري همچون كامپايلر Smalleiffel از نسخهگذاري منفي استفاده ميكند. عرضه اين برنامه از نگارش 1.0 آغاز شده و به سمت 0.0 در حال پيشروي است. در حال حاضر نيز نسخه 0.75- آن عرضه شده است.
مشاهده ميشود كه برخي از نرمافزارها در كنار عدد نگارش، از سال ساخت يا عرضه يا استفاده آن نيز بهعنوان بخشي از نام برنامه استفاده ميكنند (مانند 2003 (Office و برخي ديگر، از تاريخ دقيق عرضه به عنوان عدد نگارش استفاده ميكنند و چون اين عدد بايد همواره سير صعودي داشته باشد، در آن به ترتيب سال، ماه و روز در قالب yyyymmdd آورده ميشود (مثل 20080421 Wine.) شماره ساخت مايكروسافت نيز در واقع يك تاريخ رمز شده است.
برخي از شركتها براي تمايز نسخههاي اصلي برنامههايشان از كدهاي كاراكتري استفاده ميكنند. مثل Windows XP، 4Photoshop CS، Flash MX و... . شركت مايكروسافت براي نسخهگذاري نرمافزار ويندوز خود از عدد 1.0 تا 3.11 استفاده كرد.
سپس از سال 95 محصول خود را با ذكر سال ارائه كرد: 2000 ‚98 ‚95 Windows. بعد از آن نيز محصول خود را با كدهاي كاراكتري عرضه كرد: Windows Me, XP, CE. اكنون نيز از نام تجاري مثل Windows Vista استفاده ميكند. بسياري از عرضهكنندگان براي نسخهگذاري خود از قوانين استاندارد تبعيت نكرده و براي خود قانون ميگذارند. مثلا Debian كه در كنار عدد نگارش، براي بيان پايداري، غيرپايداري و نسخه آزمايشي از كد نامهاي فيلم Toy Story استفاده ميكند.
برخي نرمافزارها هم در كنار نگارش ظاهري، يك نگارش دروني هم دارند. مثلا نگارش اصلي و دروني 5.0 SE2J در واقع 1.5.0 است. همچنين ويندوز 95 در حقيقت نگارش 4.0، ويندوز 98 نگارش 4.10، ويندوز Me نگارش 4.90، ويندوز 2000 نگارش 5.0 NT، ويندوز XP نگارش 5.1 NT، ويندوز 2003 نگارش 5.2 NT و ويندوز ويستا نگارش 6.0 NT است.
هركس با رايانه و نرمافزارهاي رايانهاي كار كرده باشد، بيشك با يك عدد بهنام نگارش (Version) در عنوان نرمافزار برخورد داشته است و عموما تنها برداشتي كه از آن عدد ميشود آن است كه هرچه بزرگتر باشد بهمعني جديدتر بودن برنامه است. اين برداشت درست است، اما خوب است با جزئيات و نحوه تعيين و انتخاب عدد نگارش نيز آشنا شويم و مفهوم آن را بهتر بدانيم.
سخهگذاري
نسخهگذاري فرايندي است كه يك نام يا يك عدد منحصربهفرد به يك نرمافزار خاص در يك وضعيت مشخص اختصاص داده ميشود. اين نامگذاري يا عددگذاري با هر تغيير يا بهروزرساني نرمافزار با روندي افزايشي تغيير ميكند. بهطوري كه نسخه با عدد بزرگتر بهمعناي جديدتر بودن نرمافزار نسبت به نسخه با عدد كوچكتر است.
در نسخهگذاري نرمافزارها شكلهاي متعددي مرسوم شده و برخي آنقدر خاص است كه از ذكر آن خودداري ميكنيم. اما اغلب قالبها در ميان كاربران شناخته شده و بعضا بهصورت قرارداد يا استاندارد در آمده است و برخي از آنها در مفهوم، مشابه با يكديگر و برخي خود مفهومي مستقل دارند.
اعداد و ارقام موجود در عدد نگارش يك نرمافزار بر اساس ميزان اهميت تغييرات درجهبندي ميشوند و هر درجه معمولا توسط يك نقطه از ديگري جدا ميشود. البته جداسازي با خطفاصله يا مميز و... نيز انجام ميشود. اما استفاده از نقطه مرسومتر است. بايد توجه داشت كه نبايد نقطه را به مفهوم اعشار دهدهي دانست. مثلا 2.5 به معناي دوونيم نيست، بلكه به معني بازبيني پنجم سطح دوم نسخهگذاري است.
اولين عدد بيانگر مهمترين تغييرات نرمافزار است و به ترتيب از درجه اهميت اعداد ديگر كم ميشود. براي مثال در حالتي كه از نسخهگذاري چهارقسمتي مثل 2.1.3.4 استفاده شود، اولين عدد تنها در صورتي افزايش مييابد كه كد برنامه بهطور كامل بازنويسي شود. در حالي كه اعمال تغييرات در ظاهر برنامه يا واسط كاربر، همچنين مستندات برنامه، تنها موجب تغيير در بخش چهام عدد نگارش ميشود. اين كار موجب ميشود كه كاربر با ديدن تغيير در نگارش يك برنامه متوجه شود كه تغييرات نرمافزار به چه ميزان و در چه سطحي بوده است.
در نسخهگذاري سهقسمتي، بهطور كلي در نسخههاي بعدي نرمافزارها، عدد اول يا عدد اصلي نگارش (Major number) زماني افزايش مييابد كه قابليت، امكانات يا تغييرات عمده و چشمگيري در برنامه حاصل شود. عدد دوم يا عدد فرعي (Minor number) نيز زماني افزايش مييابد كه امكانات كوچكي به برنامه اضافه شود و يا اشكالات بزرگ و مهمي رفع شود. عدد سوم يا عدد بازبيني (Revision number) نيز زماني افزايش مييابد كه اشكالات كوچك نرمافزار رفع شود.
گاه بعد از نسخهاي مثلا نسخه 2.0 از يك نرمافزار، بدون عرضه نسخههاي مياني يعني 2.1، 2.2 و... يكباره نسخه 2.5 آن عرضه ميشود. اين بيانگر آن است كه امكانات و تغييرات عمدهاي در برنامه اعمال شده است، اما در آن حدي نبودهاند كه عدد اصلي نگارش افزايش يابد.
براي مثال بعد از نسخه 5 نرمافزار معروف فتوشاپ، نسخه 5.5 آن عرضه شد كه نسبت به نسخه 5، امكانات آن افزايش يافته و تغييرات عمدهاي در روش انجام كارها در آن اعمال شده بود. البته اگر نسخهدهي به نرمافزار بهصورت دستي و توسط شخص انجام شود، ميتوان بدون كوچكترين تغيير در كد برنامه، حتي عدد اصلي نگارش آن را تغيير داد كه اينطور بنمايد كه تغييرات اساسي داشته است! اما اين خلاف اصول توسعه نرمافزار است.
گاهي در نسخهگذاري از كاراكترها نيز استفاده ميشود. مثل a1.32، b1.32، c1.32 و... كه اين بهمعناي آن است كه در نسخه 1.32 تنها اشكالات برطرف شدهاند و امكانات خاصي به آن اضافه نشده است. در برخي نسخههاي نرمافزارها نيز از واژه Build و پس از آن از يك عدد استفاده ميشود كه آن نيز نمايانگر شماره ساخت نسخه اجرايي برنامه است و پس از هر بار كامپايل برنامه، اين عدد افزايش مييابد.
در استاندارد GNU، قالب نسخهگذاري بهصورت Major .Minor .Revision است كه البته در برخي نرمافزارها عدد مربوط به ساخت را نيز بدون استفاده از كلمه Build، بين عدد اصلي نگارش و عدد بازبيني قرار ميدهند.
معمولا نسخههاي جديد نرمافزارها نسخههاي پيشين را پشتيباني كرده و با آنها سازگارند. اما زماني كه دو نسخه از يك نرمافزار در عدد اصلي يا فرعي متفاوت باشند، ممكن است اين سازگاري وجود نداشته باشد. اما تفاوت در عدد بازبيني، سازگاري دو نسخه از نرمافزار را تضمين ميكند. البته عمدتا نسخههاي متفاوت در عدد فرعي نيز با يكديگر سازگارند.
ميتوان گفت هيچكدام از نرمافزارهاي دنيا، چه نسخههاي آزمايشي و چه نسخههاي رسمي كه تحت فشار مورد آزمون قرار گرفتهاند، بدون اشكال نيستند. اما تلاش بر اين است كه نرمافزاري كماشكالتر عرضه شود. بهعبارتي ميتوان اين جمله را گفت كه: نرمافزار بدون اشكال، نرمافزار نانوشته است!
چند استثنا
در نسخهگذاري نرمافزارها استثناهاي بسياري بهچشم ميخورد. مثلا جالب است بدانيد كه نرمافزاري همچون كامپايلر Smalleiffel از نسخهگذاري منفي استفاده ميكند. عرضه اين برنامه از نگارش 1.0 آغاز شده و به سمت 0.0 در حال پيشروي است. در حال حاضر نيز نسخه 0.75- آن عرضه شده است.
مشاهده ميشود كه برخي از نرمافزارها در كنار عدد نگارش، از سال ساخت يا عرضه يا استفاده آن نيز بهعنوان بخشي از نام برنامه استفاده ميكنند (مانند 2003 (Office و برخي ديگر، از تاريخ دقيق عرضه به عنوان عدد نگارش استفاده ميكنند و چون اين عدد بايد همواره سير صعودي داشته باشد، در آن به ترتيب سال، ماه و روز در قالب yyyymmdd آورده ميشود (مثل 20080421 Wine.) شماره ساخت مايكروسافت نيز در واقع يك تاريخ رمز شده است.
برخي از شركتها براي تمايز نسخههاي اصلي برنامههايشان از كدهاي كاراكتري استفاده ميكنند. مثل Windows XP، 4Photoshop CS، Flash MX و... . شركت مايكروسافت براي نسخهگذاري نرمافزار ويندوز خود از عدد 1.0 تا 3.11 استفاده كرد.
سپس از سال 95 محصول خود را با ذكر سال ارائه كرد: 2000 ‚98 ‚95 Windows. بعد از آن نيز محصول خود را با كدهاي كاراكتري عرضه كرد: Windows Me, XP, CE. اكنون نيز از نام تجاري مثل Windows Vista استفاده ميكند. بسياري از عرضهكنندگان براي نسخهگذاري خود از قوانين استاندارد تبعيت نكرده و براي خود قانون ميگذارند. مثلا Debian كه در كنار عدد نگارش، براي بيان پايداري، غيرپايداري و نسخه آزمايشي از كد نامهاي فيلم Toy Story استفاده ميكند.
برخي نرمافزارها هم در كنار نگارش ظاهري، يك نگارش دروني هم دارند. مثلا نگارش اصلي و دروني 5.0 SE2J در واقع 1.5.0 است. همچنين ويندوز 95 در حقيقت نگارش 4.0، ويندوز 98 نگارش 4.10، ويندوز Me نگارش 4.90، ويندوز 2000 نگارش 5.0 NT، ويندوز XP نگارش 5.1 NT، ويندوز 2003 نگارش 5.2 NT و ويندوز ويستا نگارش 6.0 NT است.