PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : �?روش نرم ا�?زار از نرم ا�?زارهاي س�?ارشي تا بسته هاي عمومي نرم ا�?زاري



Y@SiN
11-19-2009, 07:20 PM
چند روز پيش جلسه نصب و راه اندازي سيستم تل�?ن گوياي يکي از سازمانها بود. در حين آموزش سيستم به کاربر مربوطه، يکي از مديران مجموعه براي مشاهده سيستم وارد شد. پس از اينکه مشخصات سيستم را برايشان توضيح دادم با قيا�?ه حق به جانبي گ�?ت: "پس سورس برنامه کو؟" گ�?تم منظور شما از سورس چيست؟ اگر منظورتان CD است که از روي آن بتوانيد نرم ا�?زار را نصب کنيد ب�?رماييد اين هم CD. به اپراتور هم آموزش داده شده است تا بتواند به سادگي سيستم را نصب کند و اصولا براي اينکار نياز به تخصص خاصي نيست. اما اگر از سورس منظورتان کد برنامه است متاس�?انه اين کد نمي تواند در اختيار شما قرار گيرد. با ناراحتي پاسخ داد: "يعني چي؟ مگر مي شود نرم ا�?زار را بدون سورس آن خريد؟ نرم ا�?زار بدون کد آن هيچ ارزشي ندارد."
آيا اين حر�? درست است؟ .....
نرم ا�?زار ها را بسته به شيوه توليد مي توان به دو گروه تقسيم نمود: نرم ا�?زارهاي س�?ارشي و بسته هاي نرم ا�?زاري
1- نرم ا�?زارهاي س�?ارشي
2- بسته هاي نرم ا�?زاري (Package)
در نرم ا�?زارهاي س�?ارشي تمام عمليات تحليل، طراحي و پیاده سازی به شیوه مرسوم آن اجرا می شود و سیستم بر اساس شرایط موجود و نیازهای مشتری است�?اده کننده ساخته می شود. در حالیکه در بسته های نرم ا�?زاری ، تولید کننده با نیاز سنجی عمومی از کل بازار و در نظر گر�?تن نیازهای مشتریان مت�?اوت اقدام به توسعه سیستمی می نماید که بتواند نه الزاما همه بلکه اکثر نیازهای مشتریان را پوشش دهد. در نرم ا�?زارهای س�?ارشی، سیستم تولیدی منطبق بر نیازهای یک مشتری است در حالیکه در بسته های نرم ا�?زاری این مشتری است که باید نیازهای خود را با سیستم جدید منطبق نماید. با این وجود یک بسته نرم ا�?زاری خوش ساخت این امکان را برای مشتری �?راهم می کند که بتواند تا حدودی نیازهای خود را در سیستم اعمال نماید. به عبارت دیگر با به کار گیری ابزارهای عمومی و ساخت قسمت های پویا در بسته های نرم ا�?زاری این امکان �?راهم می شود که هر مشتری با نیاز خود سیستم مورد نیاز خود را یا خود شخصا تنظیم نماید و یا این کار توسط �?روشنده صورت می گیرد.
اما چه زمانی تولید کننده موظ�? به ارائه سورس برنامه به مشتری است؟ در هیچ زمانی مگر آنکه در قرارداد �?روش مشخص شده باشد. به عبارت دیگر در حالت �?روش سیستم به صورت یک بسته نرم ا�?زاری عمومی طبیعتا سورس همراه آن نست چون اگر چنین باشد یعنی شما عملا به خریدار این امکان را داده اید که نرم ا�?زار شما را در جای دیگری هم به �?روش برساند. حتی در حالتی که نرم ا�?زار به شکل س�?ارشی هم تولید می گردد، تولید کننده الزامی به تحویل سورس ندارد. تولید کننده صر�?ا موظ�? است که سیستم را مطابق نیازهای �?نی و اطلاعاتی مشتری تولید کند. اما با این وجود در زمانی که در قرارداد صریحا مشخص شده باشد که سورس برنامه نیز بایستی به خریدار تحویل گردد �?روشنده و یا تولید کننده می تواند با دریا�?ت مبلغ بیشتری نسبت به �?روش �?قط سیستم این کار را انجام دهد. اما این مبلغ آنقدر زیاد است که عملا خریدار رغبت چندانی به خرید سیستم ندارد!
نکته حائز اهمیت دیگر آنکه معمولا سورس یک برنامه را نمی توان به صورت کامل به مشتری تحویل داد. با توجه به روشهای رایج تولید نرم ا�?زار اکثر تولید کنندگان از کتابخانه ها (Library) و یا مول�?ه ها (Component) هایی است�?اده می کنند که یا توسط خودشان تولید نشده است و از تولید کننده دیگری خریداری کرده اند که طبیعتا طبق قانون رعایت حق مول�? (Copyright) صر�?ا در موارد مشخصی مجاز به ارائه آن به سایرین می باشند و یا توسط خودشان ساخته شده است که محصولی به جز محصول نهایی �?روش ر�?ته محسوب می شود و مشتری باید به صورت جداگانه آنها را خریداری نماید.
از طر�? دیگر حتی اگر سورس کد برنامه به صورت کامل در اختیار مشتری قرار بگیرید این کد بدون مستندات آن عملا به یک چیز بی ارزش تبدیل می شود. معمولا سیستمهای نرم ا�?زاری از تعداد خطوط برنامه زیاد و یا شیوه های پیچیده برنامه نویسی تشکیل شده اند و پر هستند از تکنیک ها، ساختمان داده ها و الگوریتم های متنوع. و این در حالی است که مستند سازی در اکثر پروژه های نرم ا�?زاری به ندرت صورت می گیرد و حتی اگر چنین شود مستندا معمولا بی �?ایده و صر�?ا برای خالی نبودن عریضه تولید شده اند.
تنها در پروژه هایی که با یک متدولوژی خوب استاندارد و توسط Case Tools های مناسب تولید شده باشند حاوی مستنداتی هستند که برنامه را برای اشخاص دیگری به جز تولید کنندگان و حتی برای خود آنها در مراجعات بعد خوانا می کند.
حتی اگر سورس پروژه به صورت کامل و همراه مستند سازی به خریدار عرضه شود تجربه نشان داده است که هزینه تغییر سیستم تولید شده توسط شخصی دیگر کمتر از تولید مجدد یک سیستم جدید نیست!
بنابراین با جمع کردن همه این موارد می توان به چنین نتیجه گیری رسید که در هنگام خرید نرم ا�?زار حتی اگر �?روشنده حاظر به �?روش سورس کد خود
باشد و سورس را خوب و کامل و به همراه مستندات آن ارائه نماید منطقی نیست که خریدار هزینه اضا�?ی برای خرید آن صر�? نماید. چون از آن سورس کد نمی تواند است�?اده خوبی بنماید. بلکه بهتر است با یک هزینه کمتر نسبت به عقد یک قرارداد پشتیبانی خوب اقدام نماید تا تغییرات مورد نیاز آتی توسط خود تولید کننده اولیه و در چارچوب این قرارداد صورت گیرد.
داستانی است که در مواقعی که مشتری چنین نیازی دارد همیشه مطرح می کنم :"در زمانهای قدیم و در ایام برده داری ، یک روز شخصی را دیدند که مادر خود را به بازار برده دار ها می برد. گ�?تند مادرت را کجا می بری؟ گ�?ت می برم برای �?روش!! گ�?تند : آخر آدم حسابی چه کسی مادر خود را �?روخته است؟ این چه کاری است که تو می کنی؟ گ�?ت: یک قیمتی روی مادرم می گذارم که هیچکس نخرد!!!" حال ما هم چنین عمل می کنیم. شما سورس کد برنامه ما را می خواهید مشکلی نیست. الساعه تقدیم می کنیم ولی قیمتش می شود 100 میلیون تومان! اگر خواستید بخرید. من نه تنها قول می دهم سورس را با مستندات و با آموزش به صورت کامل به شما عرضه کنم بلکه قول می دهم آن را از روی کامپیوترهای خودمان هم پاک کنیم! اصلا قول می دهیم دیگر هیچ نوع نرم ا�?زاری تولید نکنیم و از این بازار خارج شویم!!
همین!