تارا فایل

مبانی نظری وپیشینه تحقیق صنعت نرم افزار


صنعت نرم افزار
تعریف و تاریخچه صنعت نرم افزار
2-1تعریف IT و اجزا تشکیل دهنده آن
3-1کیفیت نرم افزار
1-3-1 انطباق با نیازهای کاربر
1-3-2 مستندات مناسب
1-3-3 استفاده از تکنولوژی روز
1-3-4 پشتیبانی مناسب نرم افزار
1-3-5 مدیریت و برنامه ریزی تولید
1-3-6 سنجش کیفیت نرم افزار
1-3-6-1 مدل مک کال
1-3-6-2مدل بوام
1-4مشکلات سنجش کیفیت نرم افزار
1- 5 پارامترهای کیفیتی نرم افزار
1-5-1صحت
1-5-2 قابلیت اطمینان
1-5-3 سازگاری
1-5-4قابلیت خوانایی
1-5-5 قابلیت استفاده مجدد
1-5-6 انعطاف پذیری نرم افزار
1-5-7 قابلیت حمل
1-5-8 سادگی
1-5-9 قابلیت نگهداری
1-5-10 تحمل اشکال
1-5-11 قابلیت نصب
1-5-12کارایی
1-5-13 قابلیت آزمون
1-5-14 واسط کاربر
1. کاربر کنترل کننده است.
2. صراحت
3. سازگاری
4. جبران
5. بازخورد
6. زیبایی شناسی
7. سادگی
1-6 طبقه بندی نرم افزار
1-6-1طبقه بندی نرم افزار از نظر پیچیدگی که به دو دسته تقسیم می شود:
1-6-2طبقه بندی نرم افزار از نظر لایه های نرم افزاری
1-7 ویژگی ها و تفاوتهای عمده کالا و خدمات نرم افزاری
2-1) موانع و مشکلات توسعه صادرات نرم افزار
2-1-1) فقدان برنامه روشن و مشخص
2-1-2) مشکلات بین المللی
2-1-3)رویکرد اشتباه بودجه‏های تکفا
2-1-4)توجه سایر کشورها به این موضوع
2-1-5) الگوی تجارت نرم افزار
2-1-6)بحران نرم افزار و کمبود نیروی انسانی متخصص
2-1-7) ارتباطات بین المللی و بازاریابی
2-2) وضعیت صادرات ایران از نظر آمار و ارقام:
2-3) کشورهای واردکننده نرم افزار ایران
منابع وماخذ
فهرست منابع فارسی
فهرست منابع لاتین

صنعت نرم افزار
تعریف و تاریخچه صنعت نرم افزار
نرم افزار در معنای عام کلمه به کلیه روش ها و داده ها و هر آنچه که منجر به ایجاد آگاهی می شود اطلاق می شود. این تعریف کلی است و شامل نرم افزار کامپیوتری نیز می شود.(شورای عالی انفورماتیک، 73)
نرم افزار یکی از دو شاخه علم کامپیوتر می باشد. نرم افزار را می توان برنامه ریزی سخت افزار به منظور استفاده از آن تعریف کرد. یا بعبارتی دیگر"نرم افزار مانند روح انسان است که به کالبد آن جان می بخشد" در دنیای امروز که عصر اطلاعات می باشد، نرم افزار به عنوان بخشی از فن آوری اطلاعات (IT)مطرح است. امروزه فن آوری اطلاعات و فروش آن به عنوان یک صنعت بسیار مهم و پولساز معرفی می شود. به عنوان مثال، در سال 1985 در آمریکا، در آمد ناشی از تولید و فروش نرم افزار بالغ بر 4.9% تولید ناخالص داخلی را تشکیل می داده است. که البته امروزه چیزی بیشتر از این آمار است. امروزه افرادی که در این صنعت مشغول به کارند، به عنوان نسل جدید ثروتمندان معرفی می شوند(مانند بیل گیتس-صاحب اصلی شرکت مایکروسافت-که ثروت وی در 4 اوت سال 1998 بیش از 61 میلیارد دلار برآورد شده است. این شرکت در سال 1986 با سرمایه 80 دلار شروع بکار کرد و در سال 1997 سرمایه آن بالغ بر 482 میلیارد دلار تخمین زده شده است). همچنین سرمایه شرکت های تولیدی و فروشنده بخش فن آوری اطلاعات، قابل مقایسه با سرمایه بزرگترین و سودآورترین شرکت های نفتی در دنیا هستند.
شاید بتوان گفت این صنعت (صنعت نرم افزار) برای اولین بار در سال 1970معرفی شد. در این سال شرکت IBM برای اولین مرتبه، فروش نرم افزارهایش را از فروش سخت افزارهایش جدا نمود. تا قبل از این تاریخ نرم افزار به صورت رایگان همراه سخت افزار ارائه می شد. این کار پیامدهای بسیار مهمی در پیداشت که از جمله به وجود آمدن "صنعت نرم افزار"می توان اشاره نمود. بنابراین هر چند نرم افزار پیش از سخت افزار وجود داشته، اما به عنوان یک صنعت و بخش کاملا" مجزا وجود خارجی نداشته است.
2-1تعریف IT و اجزا تشکیل دهنده آن
IT شامل مجموعه ای از تکنیک ها و ابزارهاست که در جهت بهینه سازی و پشتیبانی سیستم های فعال بر محوریت اطلاعات و دانش می باشند. همچنین شامل مطالعه، طراحی، گسترش، اجرا، نگهداری و مدیریت سیستم های اطلاعاتی مبتنی بر کامپیوتر و به خصوص کاربردهای نرم افزاری و سخت افزاری کامپیوتر می باشد. به عبارت دیگر، برای توصیف تکنولوژی هایی به کار می رود که ما را در ضبط ،ذخیره سازی، پردازش، بازاریابی، انتقال و دریافت اطلاعات یاری می کنند. IT بر دانش و مهارت استفاده از کامپیوتر و سیستم ارتباط از راه دور به همراه ذخیره سازی، کاربرد و انتقال اطلاعات تاکید دارد.
اجزاء تشکیل دهنده IT
IT مانند هر تکنولوژی دیگری، دارای اجزای تشکیل دهنده می باشد و از منظر نگرش "بستر پیاده سازی" دارای اجزاء ذیل است.
نرم افزار: برنامه های کامپیوتری به منظور دریافت، پردازش و تولید اطلاعات به کار برده می شوند.
سخت افزار پردازشی و ذخیره سازی: سخت افزار مورد نیاز به منظور پردازش(مانند کامپیوترهای شخصی) و سخت افزار لازم جهت ذخیره و بازیابی نمودن اطلاعات.
سخت افزار ارتباطی: به منظور برقراری ارتباط میان کامپیوترها بکار می رود.(مثل خطوط تلفن)
نیروی انسانی: افرادی که در این تکنولوژی شاغل هستند و همچنین آنهایی که مصرف کننده محصولات این فن آوری ها هستند.
داده ها ومنابع آنها: به عنوان ماده اولیه فن آوری اطلاعات می باشد. این داده ها باید قابل اعتماد، جدید و دقیق باشند.(تارخ ، محمد جعفر و امی، امیر علی 1381 ص 23)
3-1کیفیت نرم افزار
نرم افزار نیز مانند هر کالای تولیدی دیگر، باید دارای کیفیت باشد. نرم افزاری که فاقد کیفیت باشد، مورد استفاد قرار نخواهد گرفت. اما کیفیتی که برای یک نرم افزار در نظر گرفته می شود با کیفیت کالاهای دیگر و حتی خود سخت افزار کامپیوتر تفاوت دارد. این تفاوت ناشی از ماهیت نرم افزار می باشد. اما اینکه منظور از کیفیت نرم افزار چیست نظرات مختلفی وجود دارد ولی پارامترهای دخیل در کیفیت نرم افزار به شرح زیر است.
1-3-1 انطباق با نیازهای کاربر
از جمله مواردی که در تعیین کیفیت یک نرم افزار دخیل می باشد، انطباق با نیازهای کاربر است. نرم افزاری که تهیه می شود، باید جوابگوی درخواست های کاربر خود باشد. البته منظور این نیست که یک نرم افزار همه منظوره در اختیار کاربر قرار داده شود تا وی بتواند کلیه مشکلاتش را با آن حل کند. چه بسا تولید چنین محصولی غیر ممکن و یا حداقل بسیار سخت می باشد. مسلما" کار با این نرم افزار هم بسیار سخت و پیچیده خواهد بود. شاید بهتر باشد به کاربر یک زبان برنامه نویسی یاد دهیم تا خود وی بتواند بدین ترتیب نیازهایش را برطرف کند.
به هر ترتیب، برای تولید یک محصول نرم افزاری خوب که بتواند در بازار فروش خوبی داشته باشد و مشتریان زیادی را به خود جلب کند، باید ابتدا مشتری و بازار مربوطه به طور کامل و دقیق بررسی و شناخته شوند. پس از بررسی آنها می توان نیازهای موجود را تشخیص داده و از آنها در تولید محصول استفاده نمود. بعنوان نمونه در بازار ایران، کاربران ویندوز نیازمند یک نرم افزار فارسی ساز خوب و با قیمت مناسب می باشند. عمده فارسی سازهایی که موجود هستند، بر پایه ویندوزهای عربی بنا شده اند، به طوری که فقط جدول کارکترها و صفحه کلید آن ویندوز را تغییر می دهند. کافی است یک ویندوز عربی را بر روی دستگاه خود نسب کنید و حداقل با تغییر دو فایل(این دو فایل از پیش آماده می باشند و لازم است آنها را بر روی فایل های مشابه در ویندوز کپی شود)یک ویندوز فارسی به دست آورید. این روش بسیار آسان، در دسترس و کم هزینه می باشد. ولی بدلیل اینکه به صورت بنیادین تغییرات صورت نگرفته و این تغییرات در ظاهر می باشد، عمده کاربران این گونه ویندوزها با مشکل مواجه می شوند. به عنوان نمونه در بسیاری از این ویندوزها چهار حرف فارسی گ چ پ ژ با استفاده از ترکیب حروف ساده و علایم ویژه قابل دسترسی می باشد.
1-3-2 مستندات مناسب
مستندات یک نرم افزار، شامل توضیحاتی در مورد آن نرم افزار می باشد. امروزه اهمیت مستندات بقدری است که نرم افزار بدون مستندات، مانند یک فرد بدون شناسنامه است. مستندات انواع و اقسام گوناگونی دارد. با توجه به مقدار و نوع اطلاعاتی که در آن نوشته می شود، دسته بندی میگردند. مثل مستندات کاربر و مستندات سیستم.
1-3-3 استفاده از تکنولوژی روز
علم کامپیوتر (چه از لحاظ سخت افزار و چه از لحاظ نرم افزار) هر روز پیشرفت می کند. شاید بتوان گفت که این سرعت پیشرفت، بیشتر از سرعت پیشرفت هر علم و یا صنعت دیگری می باشد. امروزه شاهد هستیم که پیشرفت های سخت افزاری موجب گشته تا در کمتر از یک دهه، سرعت کامپیوتر ها وقابلیت ها و منابع آنان چند ده برابر شود. مشابه همین امر در مورد نرم افزار صادق است. مفاهیمی که در چند سال قبل (کم تر از یک دهه) مطرح بوده و شاید تصور می شد که تغییر نا پذیرند، در حال حاضر تغییرات اساسی نموده اند. این تغییرات در جهت بهبود روش های انجام عملیات می باشند.
برای مثال صنعت اتومبیل از زمان پیدایش تا کنون تغییرات شگرفی را به خود دیده است. از جمله می توان به اختراع تایرهای امروزی، سیستم های ترمز و غیره اشاره نمود. تمامی این تغییرات در جهت بهبود کیفیت اتومبیل بوجود آمده است. به عنوان نمونه، تایرهای جدید خودرو در مقایسه با چرخ های چوبی و یا فلزی نرم تر بوده و در نتیجه حرکت و ایست خودرو را راحت تر نموده اند. در کل به دلیل آنکه تمایل انسان رسیدن به کمال است و تمامی فعالیت هایش نیز در همین راستا می باشد و در نتیجه اختراعاتی که نموده به همین دلیل است. با این اوصاف، تغییرات علم و تکنولوژی کامپیوتر در همین راستا بوده و در جهت بالا رفتن سهولت و کیفیت کار می باشد. پس نرم افزاری که تهیه می شود باید از تکنولوژی روز بهره مند باشد.
در حال حاضر، گردونه پیشرفت های علمی و تکنولوژی کامپیوتری در اختیار چند کشور بزرگ صنعتی می باشد. این کشور ها که مهمترین آنها آمریکا می باشد، جلودار مسابقه پیشرفت هستند. همچنین سرعت پیشرفت نیز بسیار بالاست به طوری که تصور می شود که کارخانه ای برای توسعه و پیشرفت احداث کرده اند و پس از مدت زمان کوتاهی، یک توسعه و یا پیشرفت جدید را ارائه می نمایند. از طرف دیگر این پیشرفت های جدید یا پس از مدت زمان طولانی در اختیار دیگران قرار داده می شوند و یا بدون هر گونه اطلاعاتی در مورد نحوه به کارگیری ارایه می شوند.
این مجموعه عوامل موجب می گردند تا کشوری مانند ایران، نتواند در حداقل زمان ممکنه به اطلاعات و پیشرفت های روز دسترسی پیدا کرده و یا از آنها به درستی استفاده نماید. زمانی هم که به اطلاعات مورد نیاز دست پیدا نمودیم، پیشرفت جدیدی به وجود آمده است که روش قبلی دیگر کارایی نخواهد داشت. همین مسئله یکی از مشکلات عمده صنعت نرم افزار ایران برای راهیابی به بازارهای جهانی می باشد. چرا که بدون داشتن دانش روز نمی توانیم نرم افزارهای مناسبی تولید کرده و در نتیجه سهمی مناسب از بازار جهانی نرم افزار را در اختیار خود داشته باشیم.
1-3-4 پشتیبانی مناسب نرم افزار
ارزیابی هر محصول صنعتی، شامل بررسی تعدادی پارامتر می باشد. از جمله این پارامترها می توان به پارامتر"پشتیبانی خریدار"، "قابلیت اطمینان"، "سادگی" و غیره اشاره نمود. بعضی از مردم چنین تصور می کنند که خریدار، مانند یک رهگذر غریبه است که خواهان جنسی می باشد و پس از خرید جنس مورد نظر، به راه خویش ادامه داده و می رود (فلسفه تولید و فروش). احتمال این که چنین شخصی بار دیگر به همان فروشگاه مراجعه نماید، بسیار کم می باشد. حتی اگر محصول فروشی، دارای کیفیت نامطلوبی باشد نیز احتمال مراجعه مجدد خریدار بسیار قلیل است. تفکر مقابل حالت فوق این است که، خریدار رهگذر نیز مانند خریدار دائم می باشد. اگر خریدار راضی باشد نه تنها سعی خواهد کرد که همیشه و در حد امکان از همان فروشگاه خرید نماید، بلکه به افراد دیگری توصیه نموده و آنان را ترغیب می نماید تا از همان فروشگاه خرید کنند. در حالت اول به مشتری به چشم یک فردی که باید چشم وگوش بسته بوده و فقط چشم بگوید، نگاه می شود. در این حالت مشتری مانند برده فروشنده می باشد. در حالت دوم به مشتری به چشم ولی نعمت فروشنده نگاه می شود.
به هر ترتیب، خریدار یک محصول نرم افزاری را نباید رها کرده و وی را تنها گذاشت. باید همواره با او در ارتباط بود تا در هنگام بروز مشکلات احتمالی، وی را یاری رسانیم. همین سرویس دهی خوب و سریع به مشتریان موجب می شود تا محصول نرم افزاری، شخص و یا شرکت تولیدکننده شناخته شده و فروش محصول و یا شرکت بالا رود. همین مسئله در خارج از کشور بسیار مهمتر از ایران است. چرا که در ایران به دلیل نیاز مشتری، وی باید به دنبال فروشنده برود. در حالی که در خارج از کشور چنین نیست. در آنجا به دلیل آنکه محصولات متنوعی وجود دارد، در صورت عدم رضایت مشتری، وی سراغ محصول و شرکت دیگری می رود و در نتیجه بازار از دست خواهد رفت.
لازمه پشتیبانی مناسب محصولات نرم افزاری در خارج از کشور، حداقل یک نمایندگی فعال و قابل اعتماد است. چرا که از راه دور نمی توان مشکلات و خواسته های مشتریان را مرتفع نمود. در حال حاضر نیز یکی از مشکلات بزرگ محصولات نرم افزاری ایران در کشورهای دیگر، عدم امکان معرفی و یا ایجاد نمایندگی می باشد.
1-3-5 مدیریت و برنامه ریزی تولید
برای انجام درست هر کار برنامه ریزی لازم است. صنعت نرم افزار نیز از این امر مستثنی نیست. به دو صورت کلی می توان در تولید نرم افزار رفتار کرد. یک روش بدین صورت است که پس از نیت برای انجام کار و با توجه به شرایط، مراحل بعدی کار انتخاب می شوند.
روش دوم، روش اصولی مدیریت پروژه است. در این روش ابتدا فعالیت های موجود در پروژه بررسی و تعریف می شوند. سپس منابع لازم، به همراه مدت زمانی که هر کدام از فعالیت ها نیاز دارند، مشخص می گردد. در ادامه فعالیتها اولویت بندی شده و کار شروع می شود. همواره پیشرفت کار با برنامه تطبیق داده می شود تا در صورت عقب افتادن تمهیدات لازم انجام شوند.
در فرآیند تولید نرم افزار مانند هر کار تولیدی دیگری، تعدادی فعالیت باید در مدت زمان مشخصی انجام پذیرند. این فعالیت در راستای نیل به هدف(همان تولید نرم افزار مورد نظر) مفروض می باشند. اگر در این بین فعالیت ها به درستی تعریف نشوند، به هدف دست پیدا نخواهیم کرد. اگر هم در مدت زمان معین شده به هدف برسیم، چه بسا دیگر کارایی و کاربردی نخواهد داشت. بنابراین، وجود یک نظام مدیریتی برای تولید هر گونه نرم افزاری لازم می باشد.
1-3-6 سنجش کیفیت نرم افزار
رسیدن به نقطه مطلوب ممکن نیست مگر با دانستن وضعیت فعلی و میزان فاصله از وضعیت مطلوب. این بدین معنی است که هر تلاش هدفمندی مستلزم سنجش و مقایسه است. تلاش برای بالا بردن کیفیت نیز از این قائده مستثنی نیست. برای سنجش کیفیت در موقعیت های مختلف، چه از نظر کمی و چه از نظر کیفی، باید مدلی از کیفیت در دست باشد. برای این منظور تا کنون مدل های زیادی پیشنهاد شده است که در زیر چند مدل معروف ذکر می گردد.
1-3-6-1 مدل مک کال
مک کال مدل خود را در سال 1977 ارائه کرد. این مدل برای تولیدکنندگان جهت استفاده در فرآیند تولید نرم افزار تهیه شد. هدف این بود که معیارها به گونه ای انتخاب شوند که هم نشان دهنده دید کاربر باشند و هم دید تولید کننده. از همین رو معیارهای که فنی به نظر می رسند با تعدادی سوال که فهم آنها را برای افراد غیر فنی ساده می کند، شرح داده می شوند. مدل مک کال در زیر آمده است:
• کیفیت نرم افزار
• عملکرد فرآورده
• صحت1. آیا همان کاری که من می خواهم انجام می دهد؟
• قابلیت اعتماد2. آیا کار را همیشه به درستی انجام می دهد؟
• کارایی3. آیا روی کامپیوتر من به بهترین وجه اجرا می شود؟
• یکپارچگی4. آیا بصورت کامل ترکیب شده و پیوسته عمل می کند؟
• قابلیت کاربرد5. آیا من می توانم آنرا اجرا کنم؟
• اصلاح فرآورده.
• قابلیت نگه داری6. آیا من می توانم خرابی آنرا رفع کنم؟
• قابلیت انعطاف7. آیا می توانم آن را تغییر دهم؟
• قابلیت آزمایش8 . آیا می توانم آن را آزمایش کنم؟
• قابلیت انتقال9. آیا خواهم توانست از آن روی بستر کامپیوتری دیگری استفاده کنم؟
• قابلیت استفاده مجدد10. آیا خواهم توانست از آن در تولیدات آتی استفاده کنم؟

1-3-6-2مدل بوام
مدل کیفیت بوام بر مبنای تعدادی مشخصه نرم افزاری که به خوبی تعریف و از یکدیگر مجزا شده اند، بنا شده است. مدل سلسله مراتبی است ولی سلسله به چند سطح گسترش یافته است. علت این است که معیارهای کیفیت در دو سطح تعریف شده اند.
1-4مشکلات سنجش کیفیت نرم افزار
اندازه گیری کیفیت نرم افزار بسیار دشوار است. این عمل توسط مشخصه های نرم افزاری صورت می گیرد و بستگی کامل به قوت و ضعف در انتخاب و تعریف مشخصه ها دارد. هر مشخصه ایده آل باید دارای شرایط ذیل باشد:
• به طور مستقیم به معیار کیفیتی که می خواهد بسنجد، مربوط باشد.
• نسبت به درجات مختلف معیار حساس باشد.
• امکان تعیین عینیتی معیار را فراهم آورد و بتواند آن را در یک مقیاس مناسب منعکس کند.
متاسفانه مشخصه با یک وسیله اندازه گیری مثل خط کش یا دماسنج فرق دارد.
مشخصه ها دارای نقاط ضعف زیر هستند:
• مشخصه ها قابل اعتبار سنجی نیستند.
• مشخصه ها هدف گرا نیستند.
• کیفیت که مشخصه باید آن را بسنجد، نسبی است و نه مطلق.
• مشخصه ها دارای نقاط کالیبریزاسیون نیستند.
• سنجش هر معیار مستلزم استفاده از چند مشخصه است.
• عمده مشخصه ها بر پایه مجموعه کوچکی از مشخصه های قابل اندازه گیری نرم افزار بنا شده اند.
1- 5 پارامترهای کیفیتی نرم افزار
1-5-1صحت
صحت عبارتست از تعداد خواسته هایی که توسط برنامه برآورده می شوند. هر برنامه بر پایه خواسته های کاربر ایجاد می شود. ولی هیچ تضمینی وجود ندارد که برنامه شامل تمام خواسته ها باشد. همچنین ممکن است علاوه بر خواسته های تعیین شده، تهیه کننده برنامه امکانات و مواردی را در نظر بگیرد که کاربر از در نظر گرفتن آنها غافل شده است.
1-5-2 قابلیت اطمینان
مقدار عملکرد درست برنامه را قابلیت اطمینان گویند. بدون شک قابلیت اطمینان یک برنامه یکی از مهمترین عوامل کیفیت نرم افزار می باشد. اگر برنامه ای داشته باشیم که از لحاظ پارامترهای دیگر مورد قبول واقع شده است اما در اجرا مشکل داشته باشد همین مسئله موجب رد کیفیت برنامه می شود. البته قابل ذکر است که هیچ برنامه دارای قابلیت اطمینان 100% نیست. برای مثال، یکی از اولین ماهواره های فضای ناسا به دلیل یک اشتباه تایپی ساده در برنامه هدایت موشک، منهدم شد. در برنامه فوق که چند بار توسط متخصصان کنترل شده بود بجای علامت _(زیر خط)علامت -(علامت منفی)به کار رفته بود.
1-5-3 سازگاری11
بکارگیری یک طرح و تکنیک ثابت در کل نرم افزار را سازگاری گویند. سازگاری می تواند به دو شکل سازگاری با خارج و سازگاری داخل نمایان شود. سازگاری خارجی می تواند به صورت سازگاری محیط با نرم افزار باشد و یا سازگاری نرم افزار با نرم افزار دیگری مطرح شود. از جمله روش هایی که برای سازگاری بین دو نرم افزار استفاده می شود، می توان به وجود قراردادهایی (protocol)بین آنها اشاره نمود.
1-5-4قابلیت خوانایی12
خوانایی نقطه شروع نگهداری هر نوع نرم افزار است. خوانایی باعث می گردد تا متن اصلی نرم افزار راحت تر و سریعتر توسط برنامه نویس درک شود. چندین عامل در خوانایی موثر می باشند که عبارتند از:
• ظاهر برنامه: از جمله مهم ترین عوامل موثر در خوانا بودن یک نرم افزار، شکل ظاهری برنامه است. به عنوان نمونه می توان به طول خط ها، میزان تورفتگی ها، اندازه قسمت ها(ماجول ها)، طریقه نوشتن عبارات و کلمات و اسامی، رنگ نوشته ها و میزان فاصله میان عبارات اشاره نمود.
• اسامی مناسب: باید برای متغیرها و ماجول های موجود در برنامه از اسامی گویا و مناسب استفاده نمود بگونه ای که نام آنها معرف عملکردشان باشد.
• توضیحات: در میان خطوط برنامه و در هر کجا که لازم باشد، باید توضیحاتی ارائه گردد. این توضیحات عموما"برای مشخص کردن کار ماجول ها، متغیرها و یا روش انجام کار استفاده می شود.
1-5-5 قابلیت استفاده مجدد
بکارگیری یک برنامه و یا قسمتی از آن را در تولید نرم افزار جدید، امکان استفاده از نرم افزار را گویند. همانطور که در تهیه سخت افزار جدید، تراشه ها باز سازی مجدد نمی شوند و از آنها استفاده می گردد، در مورد نرم افزار نیز چنین نمی باشد. عوامل موثر در قابلیت استفاده مجدد عبارتند از:
عدم استفاده از متغیرهایی جهانی: استفاده از متغیرهای محلی و پارامترها در برنامه موجب می گردد تا وابستگی به دیگر اجزا و قسمت ها وجود نداشته باشد.
کتابخانه ها : وجود کتابخانه ها موجب می گردد تا راحت تر و بهتر بتوان از قسمت های مختلف استفاده مجدد نمود. چرا که خاصیت اصلی کتابخانه، استقلال اجرایی می باشد.
استقلال: استقلال دارای دو جنبه می باشد. یکی استقلال سخت افزاری و دیگر استقلال نرم افزاری است. هیچ وقت نرم افزاری به طور کامل مستقل از سخت افزار نمی باشد. حتی نرم افزارهای تولید شده توسط زبان جاوا نیز دارای استقلال نیستند(زیرا چنین برنامه هایی قابلیت اجرایی ندارند و باید توسط یک مرورگر جاوا به اجرا درآیند).
پیمانه13 بهتر است در هر برنامه انجام کارها توسط قسمت ها(رویه ها و یا توابع)انجام شوند. به طوری که بتوان از آن قسمت ها در برنامه های دیگر هم بهره برد. در این مقوله یک سوال مهم این است که اندازه قسمت چقدر باشد؟ هرچه قسمت کوچکتر باشد، به همان نسبت قابل فهم تر نیز هست. ولی قسمت های کوچک در هنگام بسط و تکمیل برنامه در معرض از بین رفتن قرار می گیرند. یک نظریه این است که قسمت نباید بیشتر از یک صفحه(بین 40تا 50خط)باشد. نظریه دیگر این است که باید هر قسمت عموما"هفت خط و در صورت نیاز حداکثر 9 خط دستور باشد. وجود عدد هفت ریشه روانی دارد. سوال دومی که مطرح است، میزان پیچیدگی قسمت چه مقدار باید باشد؟ منطق موجود در هر قسمت باید تا آنجا که ممکن است ساده و آسان باشد. ولی این سادگی با حجم یک قسمت در تضاد می باشد. بنابراین در هنگام تهیه قسمت ها جواب این دو سوال باید در حالت تعادل باشند. سوال سوم، میزان فعل و انفعالات بین قسمت ها باید چقدر باشد؟ مسلم است که هر چه مقدار ارتباط قسمت ها کم تر باشد، بهتر است. طبق بررسی های انجام شده به این نتیجه رسیده اند که بیشتر از چهار پارامتر به هر قسمت نباید داده شود.
1-5-6 انعطاف پذیری نرم افزار
برای آنکه برنامه یا قسمتی از آن در جای دیگر به کار رود (قابلیت استفاده مجدد) باید تغییراتی صورت گیرد تا برای کار جدید و یا محیط جدید بکار آید. در این حال، انعطاف پذیری روال نقش بسیار مهمی در انجام تغییرات و استفاده مجدد خواهد داشت. از مزایای انعطاف پذیری می توان به بالا رفتن سرعت برنامه نویسی، سادگی نگهداری برنامه، افزایش خوانایی و قابلیت استفاده مجدد نام برد.
1-5-7 قابلیت حمل
امکان جابجایی نرم افزار از یک محیط کاری به محیط کاری دیگر را قابلیت حمل گویند. این محیط می تواند کامپلیر، سیستم عامل و یا سخت افزار باشد. قابلیت حمل در دو سطح کلی مطرح است. یکی قابلیت حمل از یک محیط به محیط هم خانواده و دیگری قابلیت حمل از یک محیط به محیط متفاوت دیگر است. با ظهور زبان های سطح بالا و ایجاد استانداردهای بین المللی، دور نمای روشنی برای تهیه برنامه های کاربردی قابل انتقال ایجاد شده است. عوامل موثر در قابلیت حمل عبارتند از:
• عدم وابستگی به سیستم عامل: یعنی اگر در برنامه سیستم عامل داس نوشته شده است، بتوان آن را در سیستم عامل دیگری نیز اجرا نمود.
• عدم استفاده مستقیم از دستورات و عملیات سیستم عامل: اگر در برنامه از دستورات و امکانات خاص سیستم عامل داس استفاده شده است (استفاده از وقفه های داس) ، در سیستم عامل دیگری قابلیت اجرایی نخواهد داشت.
• عدم وابستگی به سخت افزار: این عدم وابستگی در دو سطح مطرح می گردد. حالت اول در سخت افزارهای هم خانواده است. یعنی اگر بر روی پردازنده 80286 اینتل کار کند، بتواند بر روی پردازنده های هم خانواده دیگر مانند 80486 و غیر نیز اجرا شود. حالت دوم در سخت افزار های غیر هم خانواده است. بدین معنی که اگر برنامه ای بر روی کامپیوترهای شخصی سازگار با IBM اجرا شد. بتواند بر روی کامپیوترهای دیگر(اعم از شخصی و غیر شخصی) نیز اجرا شود.
• کامپلیر: برای تهیه برنامه باید از کامپلیرهایی که در تمام محیط هایی که قرار است برنامه در آنها اجرا شود، موجود باشند. همچنین امکان استفاده غیر مستقیم از امکانات سیستم عامل و سخت افزاری را در اختیار قرار دهند.
• استفاده از زبان های سطح بالاتر: در زبان های سطح پایین وابستگی شدیدی به سخت افزار وجود دارد (مانند زبان اسمبلی). هر چه از زبان سطح بالاتری استفاده نماییم، امکان انتقال آن نرم افزار بیشتر می شود.
• پیمانه ای بودن نرم افزار: نرم افزار اگر متشکل از قسمت ها (ماجول ها) باشد، می توان اجزایی که وابسته به سخت افزار هستند (از دستورات سخت افزار و یا سیستم عامل بهره می برند) را برای محیط جدید تغییر داد.
• شرایط محیطی قابل تعریف و مشخص: شرایطی که باید در یک کامپیوتر تعریف نمود تا برنامه اجرا شود.
1-5-8 سادگی14
سادگی عبارت است از میزان عدم پیچیدگی در نرم افزار. هر چقدر برنامه ای راحت تر درک شود، دارای سادگی بیشتری است. سادگی دارای دو جنبه است. یکی در سهولت استفاده و دیگری در ساختمان و برنامه نویسی است. سادگی در استفاده بدین معنی است که کاربر برنامه، به سادگی هرچه تمام تر بتواند از آن استفاده کند(مانند سیستم عامل ویندوز در برابر سیستم عامل داس).سادگی در ساختمان و برنامه نویسی بدین مفهوم است که به سادگی ساختار و نحوه عمل برنامه درک شود و همچنین با منطقی ساده، پیاده سازی شود.
1-5-9 قابلیت نگهداری
میزان تلاشی که لازم است تا اشکالی در برنامه پیدا کرده و تصحیح شود و یا خواسته های جدید در برنامه گنجانده شوند را، قابلیت نگهداری گویند. نگهداری نرم افزار به دو دسته "تکمیلی" و "تصحیحی" تقسیم می شود. در نگهداری تصحیحی، اشکالات موجود در برنامه مشخص شده و رفع می گردند. نگهداری تکمیلی شامل اعمال خواسته های جدید در برنامه است. به مرور زمان شرایط تغییر پیدا می کنند و در نتیجه خواسته ها نیز یا تغییر می یابند و یا خواسته های جدیدی مطرح می شوند. بنابراین برای پوشش دادن به این خواسته های جدید برنامه را به گونه ای تغییر داد که نیازهای مطروحه را برآورده سازد. عمدا" 70% کل هزینه یک سیستم را انواع نگهداری تشکیل میدهد. هرچه هزینه ای که برای ساخت یک نرم افزار صرف می شود بیشتر باشد، هزینه نگهداری آن پایین می آید. از جمله عوامل بالا رفتن هزینه نگهداری، می توان به موارد زیر اشاره نمود:
• ضعف طراحی
• کمبود مستندات
• ناهمگونی مستندات با سیستم پیاده شده
• عدم ثبت تاریخچه تغییرات
1-5-10 تحمل اشکال15
این امر که برنامه های کامپیوتری بتوانند در برابر بروز اشکالات احتمالی عکس العمل مناسبی را از خود نشان دهند، مسئله مطرحی است. در اکثر برنامه ها و در هنگام بروز اشکال، ناگهان از برنامه خارج شده و یا کامپیوتر دیگر هیچ کاری انجام نمی دهد(اصطلاحا" قفل می کند). مانند این است که شما در یک هواپیما و در ارتفاع 10000 پایی قرار داشته باشید و به طور ناگهانی و بدون هیچ گونه اخطار قبلی، هواپیما منفجر شود.
حال اگر برنامه طوری نوشته شود که دلیل بروز خطا، و یا شماره خطی از برنامه که خطا در آن رخ داده است اعلام شود، کاربر می تواند خطا را پیگیری و احتمالا" مشکل را حل نماید. حداکثر این که پیغام خطا را به تهیه کننده برنامه اعلام می دارد تا وی بتواند مشکل را حل نماید. بهترین حالت ممکنه این است که برنامه با وجود بروز خطا، به کار خود ادامه دهد و یا بصورت عادی(نه به صورت غیرمنتظره) از برنامه خارج شود(همچنین برنامه می تواند از کاربر بخواهد تا خود وی از برنامه خارج شود). امروزه با وجود ابزارهای جدید، این امر به راحتی امکان پذیر می باشد. به عنوان مثال در ابزار Delphi با استفاده از دستور try except…. و یا در foxpro با استفاده از دستورon error، می توان این کار را انجام داد.
1-5-11 قابلیت نصب16
تبدیل یک نرم افزار از حالت بسته بندی به حالت در حال اجرا را نصب گویند. حال نرم افزاری که کار نصب آن ساده تر و راحت تر انجام شود، به عنوان نرم افزار قابل نصب شناخته می شود. از جمله عواملی که در ساده شدن نصب برنامه موثر است می توان به عوامل زیر اشاره کرد:
• مرجع نصب و سادگی آن
• سازگاری برنامه با شرایط مختلف
• حجم برنامه از نظر تعداد دیسک و دیسک های فشرده
• سرعت عملیات
• تعداد مراحل و یا سوالات کم
• انعطاف پذیری نصب
• سادگی عملیات
1-5-12کارایی
کارایی عبارتست از استفاده مطلوب از سخت افزار. اگر چه کارایی یک هدف مهم می باشد ولی باید سه قاعده را درنظر گرفت. اول اینکه کارایی نیازمند به یک کار برجسته می باشد. بنابراین در طول تحلیل نیازهای نرم افزار بیان می شود. دوم اینکه کارایی با طراحی خوب پیشرفت می کند و سوم اینکه پارامتر و پارامتر خوانایی ارتباط معکوس با یکدیگر دارند. عوامل موثر کارایی در سخت افزار شامل حافظه(که خود شامل نوشتار برنامه و داده ها می باشد) و سرعت است.
به منظور ایجاد کارایی در داده های برنامه، کافی است از ساختمان داده های مطلوب و مناسب داده ها استفاده نمایید. همچنین در هنگام کار با بانک اطلاعاتی، کافی است ساختار اطلاعات مطابق با استاندارد های موجود در این زمینه منطبق باشد (صورت های نرمال). در خط مشی بانکی(چه نرم افزارهای بانک اطلاعاتی و چه نرم افزارهایی که طبق اصول بانکی عمل می نمایند) یکی از ابزار قدرتمند، پرس جوها17می باشند. به کمک این پرس وجوها می توان کلیه پردازش ها را بر روی اطلاعات خام موجود در بانک انجام داد و از نتایج کسب شده بهره جست. به منظور بالا بردن کارایی پرس و جوها(گرفتن نتایج در زمان کم تر و با هزینه کمتر) مسئله "بهینه سازی پرس و جو"مطرح می گردد. جواب این مسئله، ارائه راه حل هایی است که با استفاده از آنها، کارایی بالا می رود. بهینه سازی پرس و جو ها در بانک های اطلاعاتی رابطه ای ، دارای دو جنبه است:
• مبارزه طلبی18: به دلیل این که بهینه سازی برای رسیدن به کارایی قابل قبول مورد نیاز است، به خصوص اگر سیستم به طور دائم استفاده می شود.
• مزیت19: به دلیل این که عبارات رابطه ای در یک سطح بالای مفهومی بیان می گردند، لذا نیاز به بهینه سازی وجود دارد.
1-5-13 قابلیت آزمون
آزمایش عبارت است از عملی که به منظور تعیین صحت انجام کارها توسط برنامه و تطبیق نتایج مورد انتظار و نتایج حقیقی، انجام شود. هدف از انجام آزمایش را می توان عبارت از موارد زیر دانست:
• آزمایش فرآیند اجرای یک برنامه با هدف یافتن یک خطاست.
• یک مورد آزمایش خوب و موفق، آزمایشی است که یک خطای تا کنون کشف نشده را مشخص کند.
مطابق با اهداف فوق اگر آزمایشی موفق انجام گیرد، نتایج زیر حاصل می آید:
• خطا های نرم افزار را مشخص می کند.
• تعیین می کند نرم افزار مطابق با خواسته ها کار می کند.
• اطلاعات جمع شده از آزمایش، دلیل خوبی بر قابلیت اطمینان نرم افزار و در کل کیفیت نرم افزار می باشد.
1-5-14 واسط کاربر20
کیفیت واسط کاربر برنامه نیز در کیفیت کل نرم افزار مهم است. اگر برنامه از لحاظ عملیات، ساختمان داده و دیگر موارد بسیار خوب باشد، ولی از لحاظ واسط کاربری مشکل داشته باشد. مورد قبول کاربران قرار نخواهد گرفت در مقابل اگر برنامه از واسط کاربری مناسبی برخوردار باشد، به سرعت و به راحتی توسط کاربران مورد استفاده قرار می گیرد(مانند ویندوز که با داشتن اشکالات زیاد، خیلی مورد توجه قرار گرفته است) بنابراین لازم است تا واسط کاربری برنامه امان از کیفیت مطلوبی برخوردار باشد. بدین منظور شرکت مایکروسافت هفت اصل برای طراحی واسط کاربری برنامه تعیین نموده است. این هفت اصل عبارتند از:
1. کاربر کنترل کننده است.
هیچ یک از ما دوست نداریم تحت کنترل دیگری باشیم، به خصوص تحت کنترل کامپیوتر. کاربر همیشه باید این احساس را داشته باشد که هر چه روی صفحه اتفاق می افتد، در کنترل اوست. کاربران باید احساس کنند که خودشان کاری را هدایت می کنند، نه این که تصور کنند که عکس العملی در برابر خواسته های کامپیوتر انجام می دهند. کاربران خواسته ها و نیازهایی خاص خود دارند. لذا، مسئله مهم آن است که در نرم افزارتان تا حدودی به کاربر امکان اعمال سلیقه های شخصی را بدهید. به عنوان مثال، در ویندوز می توانید رنگ ها، فونت ها و بعضی چیزهای دیگر را مطابق میل خود تغییر دهید، همین امر موجب می شود احساس کنید که ویندوز در کنترل شماست.
یک برنامه خوب به کاربر می گوید که در حال انجام چه کاری است برنامه نباید موجب سرگردانی کاربر شود، به طوری که نداند درکجا و در حال انجام چه کاری است. به عنوان مثال اگر تهیه یک گزارش زمانگیر باشد و پیغام مناسبی به کاربر داده نشود این احساس بوجود می آید که برنامه قفل کرده است و باید به طریقی از آن خارج شود. در همین مثال ساده می توان اهمیت یک پیغام را دریافت کرد.
2. صراحت21
یعنی بجای لغات از اشکال استفاده کنیم درست مثل یک عکس که از هزاران لغت ارزشمندتر است.
3. سازگاری22
یکی از مهمترین وجوه پیاده سازی برنامه های تحت ویندوز، سازگاری آنها می باشد. اگر تمام برنامه ها از نظر نمایش اطلاعات و عکس العمل در برابر کاربران، با یکدیگر سازگار بودند، هنگام کار با آنها کاربر به جای آنکه وقتش را صرف یادگیری نحوه عکس العمل برنامه شما در مقایسه با دیگر برنامه ها نماید، می تواند به انجام کارهای دیگری بپردازد.
4. جبران23
در برنامه های خوب، فشردن کلیدها و مشاهده رویدادهایی که رخ می دهد، به ندرت موجب اشکال می شود. اگر کاربر عملی انجام دهد که موجب پاک شدن اطلاعات شود، کادر محاوره ای ظاهر می شود و او را از این واقعه مطلع می سازد. به این ترتیب، او می تواند کلید انصراف را فشار دهد تا عملیات متوقف گردد. که این عمل مفهوم جبران را بیان می کنند. باید به کاربر اجازه داده شود برنامه را کشف کند و تمام عملیاتی که انجام می دهد قابل برگشت و اصلاح پذیر باشند. بخصوص قبل از انجام عملیات مخرب، کاربر باید مطلع شود که چه کاری را می خواهد انجام دهد.
5. بازخورد24
بیشتر کاربران از یک کامپیوتر ساکت و بدون واکنش متنفرند. کاربر باید از رویدادهایی که رخ می دهد، مطلع شود. و باید با استفاده از ترکیب امکانات صوتی وتصویری، اطلاعات لازم به کاربر داده شود. محلی که واکنش نشان داده می شود، باید نزدیک نقطه ای باشد که کاربر مشغول کار است. یعنی هنگامی که کاربر اطلاعاتی را در بالای صفحه وارد می کند پیغام خطا نباید در پایین صفحه نمایش داده شود. در هر حال باید اطلاعات لازم به کاربر داده شود مثلا" تغییر شکل اشاره گر موس به حالت شنی .
6. زیبایی شناسی25
از لحاظ ظاهری نیز برنامه باید کاربر را راضی کند. علاوه بر رنگ های استفاده شده در برنامه، طراحی شکل صفحه بسیار مهم است.
7. سادگی
آخرین قانون طراحی، سادگی است. سهولت استفاده از برنامه بسیار مهم است و باید دو مورد زیر در حالت تعادل باشد.
• دسترسی به تمام اطلاعات و عملیات در برنامه
• سادگی در واسط کاربری و استفاده از برنامه
1-6 طبقه بندی نرم افزار
نرم افزار را از دیدگاه های مختلف طبقه بندی می کنند که در اینجا به دو دیدگاه اشاره می شود:
1-6-1طبقه بندی نرم افزار از نظر پیچیدگی که به دو دسته تقسیم می شود:
الف: کمی شامل تعداد نفرات لازم برای طراحی و تولید، زمان مورد نیاز، هزینه، تعداد دستور العمل برنامه.
ب: کیفی شامل ضریب اطمینان بالا، سهولت استفاده، قابلیت های برنامه.
1-6-2طبقه بندی نرم افزار از نظر لایه های نرم افزاری
الف: نرم افزار های سیستم عامل
ب: نرم افزارهای توسعه امکانات سیستم
پ: نرم افزارهای پایگاه داده، نرم افزارهای ارتباطی داده ها، نرم افزارهای مترجم
ت: نرم افزارهای مفسر
ث: نرم افزارهای کاربردی، نرم افزار های تسهیلاتی
به چهار لایه اول نرم افزارهای بنیادی می گویند که نرم افزارهای کاربردی و تسهیلاتی با استفاده از امکانات آنها نوشته می شود.( تارخ، محمد جعفر، امی، امیر علی ، 1381، تکنولوژی اطلاعات و صادرات نرم افزار).
1-7 ویژگی ها و تفاوتهای عمده کالا و خدمات نرم افزاری
• نرم افزار حاصل اندیشه و تفکر است و در تولید محصول نرم افزاری، بطور کلی نیروی انسانی متخصص عامل اصلی است نه ماشین آلات و فرآیند تولید و ساخت.
• تولید نرم افزار در مقایسه با تولیدات محصولات صنعتی و کشاورزی، با حداقل سرمایه و امکانات قابل عرضه است.
• سرعت رشد و تحول تکنولوژی ساخت نرم افزار و محیط های بهره برداری آن با سایر رشته های صنعتی و مهندسی قابل مقایسه نیست.
• آخرین فناوری های تولید نرم افزار به راحتی قابل حصول است و عقب ماندگی فناوری در تولید نرم افزار بین کشورهای در حال توسعه و پیشرفته مفهومی ندارد.
• نرم افزار موجودی زنده است و محصولی است که پس از فروش (صادرات) باید سر پا نگه داشته شود بنابراین نرم افزار کالایی است دو بازار دارد. بازار آشکار (فروش) و بازار پنهان(پشتیبانی(.
• نرم افزار فاقد قلمرو گمرکی است و به راحتی از یک نقطه جهان به نقطه دیگر جهان ارسال و عرضه گردد.
• نرم افزار مشابه سایر کالاهای تجاری قابل قیمت گذاری نیست. شرایط و پیچیدگی های موضوع، تجربه تولیدکننده، ابزارهای به کارگرفته شده، امکانات و تسهیلات پیش بینی شده و سایر موارد قیمت آنرا شناور می سازد. حتی دو محصول نرم افزاری مشابه توسط دو تولید کننده می تواند دو قیمت متفاوت داشته باشد26.
بخش دوم
وضعیت نرم افزار ایران
مهمترین مشکلی که در بررسی وضعیت نرم افزار در ایران وجود دارد کمبود منابع و پراکندگی آنهاست. با وجود پیشینه 40 ساله صنعت نرم افزار در ایران، تحقیقات کمی در مورد وضعیت آن صورت گرفته است. در ادامه ضمن اشاره به بعضی از مشکلات صنعت نرم افزار، وضعیت صادرات نرم افزار ایران با اعداد و ارقام نشان داده می شود.
2-1) موانع و مشکلات توسعه صادرات نرم افزار
2-1-1) فقدان برنامه روشن و مشخص
وجود یک برنامه کلان هدف‏دار که‏ با واقع‏بینی تهیه شده باشد، و به درستی مورد اجرا قرار گیرد، می‏تواند پیشران خوبی برای توسعه صادرات نرم افزار کشور باشد. در سال‏های گذشته از طرف شورای عالی انفورماتیک و وزارت صنایع پروژه‏هایی برای این موضوع تعریف گردید و به‏ شرکت‏های بعضا" بی‏ربط خصوصی سپرده شد که هیچ نتیجه‏ای‏ نداشت. نبود هدایت و برنامه مشخص، دستگاه‏های متولی دولتی را به سوی اقدامات عجولانه و بدون هدف تحریک کرده و می‏کند که در عمل نه تنها صادرات نرم افزار را گسترش نمی‏دهد بلکه‏ مانع از تلاش‏های موجود نیز می‏شود.

2-1-2) مشکلات بین المللی
شرایط خاص جمهوری اسلامی و تحریم‏ها و بی‏عدالتی‏های‏ کشورهای خارجی که جهان را از منظر منافع خودشان می‏بینند و همچنین افکار عمومی که تحت تاثیر شدید رسانه‏های‏ غربی قرار دارند، مسلما" باعث فرصت‏سوزی در همه حوزه‏ها و بخصوص حوزه صادرات نرم افزار می‏شوند.
2-1-3)رویکرد اشتباه بودجه‏های تکفا
رویکرد تکفا دادن پول به بخش دولتی‏ و انجام پروژه‏ها در بخش خصوصی است. این رویکرد تنها بازار بیمار دولتی را گسترش داده و توجه معدود نگاه‏هایی که برای‏ صادرات به سوی خارج از کشور چشم دوخته بودند به بازار داخل‏ جلب نمود. از آنجایی که نیازهای اولیه این بازار عمدتا" تجهیزات‏ یا آموزش است، بنابراین تکفا در عمل شرکت‏ها را تشویق نموده‏ تا به کارهای واسطه‏گری روی بیاورند. تداوم این رویکرد ضربه نهایی را به پیکره صادرات نرم افزار کشور فرود خواهد آورد.
2-1-4)توجه سایر کشورها به این موضوع
بسیاری از کشورها بخصوص کشورهای آسیایی‏ در پی کسب سهم از بازار آن برآمده‏اند. این مساله و ایجاد رقبای جدید و حتی ارزان‏تر و از کشوری که مشکلات ما را هم ندارند، به معنای از بین رفتن بازار بالقوه صادرات نرم افزار می‏باشد.
2-1-5) الگوی تجارت نرم افزار
یکی از مهم‏ترین مشکلات صادرات نرم افزار در ایران وجود تفکر مبتنی بر تولید کننده در تجارت است. تفکری که در آن‏ رقابت حذف می‏شود و مشتری مجبور است. یکی از دلایل این‏ تفکر ناآگاهی مشتری است که رفع آن نیازمند اطلاع‏رسانی‏ قوی در این زمینه می‏باشد، چیزی که در کشور ما وجود ندارد. در این سیستم مشتری به سراغ تولید کننده می‏رود و تولید کننده‏ است که در تعیین قیمت و کیفیت نقش اصلی را دارد.
تفکر دیگر، تفکر جهانی تجارت نرم افزار، تفکر مبتنی بر مشتری است که در آن"حق با مشتری است". تولیدکنندگان با ابزاری چون اعتبار، کیفیت و قیمت مناسب سراغ مشتریان رفته‏ و آن‏ها را جذب می‏کنند. با توجه به این دو تفکر، تولیدکنندگان داخلی نرم افزار که مشتریان خود را دارند و جذابیت‏های دیگر بازار از جمله‏ خرید و فروش سخت افزار آن‏ها را مشغول کرده است، تنها منتظر مشتریان جدید هستند. از آن طرف مشتریان خارجی‏ به دنبال تولیدکنندگان معتبر با کیفیت و ارزان قیمت هستند که از نزدیک‏ترین جا برمی‏گزینند. مشتریان خارجی منتظر تولیدکنندگان و تولیدکنندگان داخلی‏ منتظر مشتریان هستند. با این بن بست، صادرات نرم افزار هیچ گاه انجام نمی‏گیرد.
2-1-6)بحران نرم افزار و کمبود نیروی انسانی متخصص
دنیای نرم افزار تا کنون با دو بحران اساسی مواجه شده است. بحران نخست در اواخر دهه 60 و در پی شکست بسیاری از پروژه‏های نرم افزاری بزرگ(و اتمام آن‏ها با هزینه و زمانی به‏ مراتب بیشتر از میزان پیش‏بینی شده) بروز کرد. بحران دوم‏ در دهه 80 پس از رشد سریع صنعت الکترونیک و ارزان شدن‏ سخت افزار و در نتیجه بکارگیری رایانه در تمام عرصه‏ها بروز کرد. کمبود نیروی انسانی لازم جهت طراحی و تولید نرم افزارهای‏ مورد نیاز، بارزترین نمونه بحران مذکور تلقی می‏شود.
در صورتی که برنامه درستی برای کشور تدوین شود و اهدافی برای صادرات نرم افزار تعیین گردد، مسلما" نیروی انسانی‏ به مراتب کیفی‏تر و کمی‏تر از امروز مورد نیاز خواهد بود.
2-1-7) ارتباطات بین المللی و بازاریابی
برخی از صاحب نظران انفورماتیک، مهم‏ترین دلیل ضعف‏ صادرات نرم افزار را کمبود نیروی برنامه‏نویس تلقی می‏کنند. بر اساس این نظر در یک سیستم مبتنی بر تولید، با افزایش‏ برنامه‏نویس، میزان کار داخل کاهش می‏یابد و این خود باعث‏ رقابت می‏گردد. از نتایج این رقابت، افزایش کیفیت و رواج‏ تفکر مبتنی بر مشتری خواهد بود. در نتیجه افراد و شرکت‏ها از بن بست خارج شده و برای یافتن کار مجبور به بازاریابی خارجی‏ و برقراری ارتباطات بین المللی می‏گردند. پس باید دولت در تربیت برنامه‏نویس ماهر اقدام کند.
هر چند کلیت این نظر درست است ولی اشکالاتی نیز بر آن وارد است: این طرح در صورتی یک طرح دراز مدت‏ چندین ساله است؛ در حالی که شرکت‏ها بیشتر تمایل به‏ طرح‏های کوتاه مدت هستند. مهاجرت برنامه‏نویسان زبده به‏ خارج از کشور یکی از مهم ترین موانع این طرح است. هم چنین‏ گستردگی کار نرم افزار(بخصوص نرم افزارهای بی‏کیفیت که‏ برای ادارات دولتی ساخته می‏شود)و افزایش روز افزون نیاز به آن با مقوله کمبود کار داخلی در تضاد است و تا موقعی‏ که بر کیفیت نرم افزارهای تولید داخل، نظارتی اعمال نشده و سفارش‏های دولتی از طریق مناقصه و رقابت واقعی ارائه نشوند، این طرح به نتیجه موفق نهایی دست نخواهد یافت.(اکرمی فر، 1384)

2-2) وضعیت صادرات ایران از نظر آمار و ارقام:
بر اساس آمارهای موجود ایران تا سال 1388 تقریبا 75میلیون دلار صادرات نرم افزار داشته است (طلایی، 1390). این در حالی است که بازار نرم افزار جهانی در سال2007، 251 میلیارد اعلام شده است . (نهاوندیان، 1387) نمودار 2-1 رشد صادرات نرم افزار از سال 1382 تا سال 1388 را نشان می دهد. که هرچند مبلغ کل صادرات کم است اما صعودی است.
سال
نمودار2-1 رشد صادرات نرم افزار از سال 1386تا سال1388
رشد
درصد تغییرات
1388
1387
9.3
109
70
64

رشد
درصد تغییرات
1387
1386
45.5
64
64
44
جدول 2-1رشد و درصد تغییرات صادرات نرم افزار از سال 1386 تا سال 1388(واحد میلیون دلار)
2-3) کشورهای واردکننده نرم افزار ایران
افغانستان، ازبکستان، امارات، کانادا، آلمان، دومینیکن، مکزیک، تاجیکستان، مالزی، زیمباوه واردکننده نرم افزار ایران هستند این نرم افزارها بیشتر در حوزه های آموزشی، مالی، قرآنی، فرهنگی، ادبی و هنری، فیلم و حتی بازی های رایانه ای هستند که نرم افزار های آموزشی و قرآنی بیشترین حجم صادرات ما را به خود اختصاص می دهند و بازی های رایانه ای کمترین میزان را شامل می شوند.

شکل 2-1 نحوه پراکندگی کشورهای هدف صادرات نرم افزار

ارزش به میلیارد ریال

سال

نمودار 2-2 وضعیت پرداخت جوایز صادراتی به صادرکنندگان نرم افزار
توضیح: همانطور که در این نمودار ملاحظه می کنید دولت از اوایل دهه 1380 جهت تشویق صادرکنندگان نرم افزار پرداخت جوایز صادراتی را در دستور کار قرار داده است.که روند پرداخت روند صعودی داشته است (غضنفری، 1388).
منابع وماخذ
فهرست منابع فارسی
1. خاکی، غلامرضا؛" روش تحقیق؛ با رویکردی به پایان نامه نویسی"،کانون فرهنگی انتشاراتی درایت، تهران،1378
2. صالحی، علیرضا،"راهبردهای بر صادرات نرم افزار"ماهنامه شبکه شماره 11
3. دلاور، علی، روش های تحقیق در روانشناسی و علوم تربیتی، انتشارات دانشگاه پیام نور،تهران،1374
4. روحانی ، خیام ،"نرم افزار به کجا می رود"خبرنامه انفورماتیک شماره60
5. تارخ،محمد جعفر،امی،امیر علی ،تکنولوژی اطلاعات و صادرات نرم افزار 1351.
6. سرمد،ز و دیگران ،1381،روش های تحقیق در علوم رفتاری،انتشارات آگاه، تهران،چاپ ششم
7. سکاران ، اوما،روش های تحقیق در مدیریت، مترجمان محمد صائبی و محمود شیرازی،موسسه عالی آموزش و پژوهش مدیریت و برنامه ریزی،چاپ دوم ،1381
8. کاتلر و آرمسترانگ، 1380، اصول بازاریابی، ترجمه علی پارسائیان، نشر جهان نو ،جلد دوم.
9. نبوی، بهروز، روش تحقیق در علوم اجتماعی، تهران ، کتابخانه فروردین، سال 1372
10. کومار،کریشان،1374-روش های پژوهش در کتابداری و اطلاع رسانی ،مترجمان فاطمه رها دوست،فریبرز خسروی ،کتابخانه جمهوری اسلامی ایران،تهران
11. حسنی،فرنود ،چالشهای مدیریتی تولیدنرم افزاردرایران،مجله کتاب ماه کلیات " مهروآبان 1384 – شماره 94 و 95 (ازصفحه 42 تا 53)
12. اکرمی فر،سیدعلی ،عوامل اصلی شکست صادرات نرم افزاردرکشور ،مجله کتاب ماه کلیات " مهروآبان 1384 – شماره 94 و 95
13. ایران نژاد پاریزی، مهدی،روش تحقیق در علوم اجتماعی،نشر مدیران،1378.
14. غضنفری، مهدی، دومین همایش ملی توسعه صادرات نرم افزار ،دی ماه 1387
15. اصول بازاریابی، فیلیپ کاتلر و گری آرمسترانگ، ترجمه بهمن فروزنده، 1377
16. سکاران ، اوما، 1384، روش های تحقیق در مدیریت، انتشارات موسسه عالی آموزش و پژوهش مدیریت و برنامه ریزی، تهران،چاپ سوم،
17. البرزی، صدرالله، مقدمه ای بر بازاریابی بین المللی،نشریه زمینه سال، 1372

فهرست منابع لاتین
18.kotler,p.(2006),marketing management, by prentice-hall,inc.
19. mathur, somesh,kumar ris(2007) . http://mpra.ub.uni-muenchen.de/2368 mpra paper no.2368, posted 07.
20.richards heeks (1998) the unevenprofile of Indian software exports,published institute for development policy and management,by university of Manchester , precinct center,machester,MB 9GH,uk.)
21. Rafiq dossani, origins and growth industry un Indian,asia-pacific
22. Braian Nicholson & sundeep sahay, human resource development policy in context of software exports: case evidence from costa
23.anderson,(2000), chiristofer," software industry .
24.norbert, bruell, (2003), exporting software from indonesia.
25.larry press professer(2002), strategies for software export.
26.Online at http://mpra.ub.uni-muenchen.de/2368/MPRA Paper No. 2368, posted 07. November 2007 / 02:26
27. http://itanalyze.com/news/2012/01/14/15684.php

1.correctness
2 reliability
3 efficiency
4 integrity
5 usability
6 maintainability
7 flexiability
8 testability
9 portability
10 reusability
11 consistency
12 readability
13modularity
14 simplcity
15 Error tolarance
16 installability
17query
18 challenge
19 opportunity
20 User interface
21 Explicitly
22 consistency
23FORGIVENESS
24feedback
25AESTHTICS
26 (http:www.softexport.ir/iransoftware.2.asp)
—————

————————————————————

—————

————————————————————


تعداد صفحات : 44 | فرمت فایل : WORD

بلافاصله بعد از پرداخت لینک دانلود فعال می شود