تعریف نرم افزار
تعریف نرم افزار
نرم افزار عبارت است:
1- برنامه های کامپیوتری که در صورت اجرا شدن باعث انجام عمل و کار خواسته شده می شوند.
2- ساختمان داده هایی که باعث میشوند، برنامه ها بطور مناسبی اطلاعات را دستکاری کنند.
3- مستنداتی که توصیف کننده عملکرد و استفاده از برنامه ها است.
مشخصات نرم افزار
نرم افزار یک جزء منطقی سیستم است و نه یک جزء فیزیکی . بنابراین نرم افزار دارای مشخصاتی است که تا حد قابل ملاحظه ای با مشخصات سخت افزار متفاوت است این تفاوتها را میتوان بصورت زیر لیست کرد:
1- نرم افزار توسعه داده می شود و به شکل معمول ساخته نمی شود.
نکته: Development و ِDeployment هر دو در لغت به معنای توسعه هستند اما ما در اینجا بین این دو تفاوت می گذاریم ،لغت اول را به معنای توسعه و لغت دوم را به عنوان تکامل در نظر می گیریم (Development از زمان تفکر ساخت نرم افزار تا زمان عرضه به بازار است و Deployment از زمان عرضه به بازار تا زمان مرگ نرم افزار ) .
2- نرم افزار دور انداختنی نیست (نرم افزار از بین نمی رود بلکه کیفیت با زمان همگام نیست و عملا تنزل مییابد) یعنی نرم افزار به عوامل محیطی که باعث از رده خارج شدن سخت افزار می شود حساس نیست .
3- اگر چه صنعت به سمت نصب قطعات پیش ساخته می رود، اکثر نرم افزارها به شکل متداول ایجاد میشوند یعنی به صورت یکپارچه تولید می گردند که فرایند نگهداری و پشتیبانی آنرا با مشکل روبرو میکند.
4- سخت افزار به دلیل اشکالات طراحی و ساخت نرخ شکست بالایی دارد و بعد از مدت زمانی مشخص یا نامشخص دوباره نرخ شکست آن افزایش می یابد. در حالیکه نرم افزار اینطوری نیست و نرخ شکست آن با مرور زمان تغییر میکند شکل زیر تفاوت بین سخت افزار و نرم افزار را نشان میدهد.
انواع نرم افزار و کاربرد آنها
نرم افزار می تواند در هر موردی بکارگرفته شود که برای آن مجموعه ای مشخص از مراحل رویه ای (الگوریتم) تعریف شده است (موارد استثنایی برای این قانون سیستم خبره و شبکه عصبی می باشد) .
نرم افزارها را می توان به صورت های زیر دسته بندی کرد:
1- نرم افزارهای سیستم: نرم افزار سیستم مجموعه ای از برنامه هایی است که برای سرویس دادن به برنامه های دیگر نوشته شده اند، مانند: کامپایلر، سیستم عامل، نرم افزار مدیریت فایل و ویراستار و ... .
2- نرم افزارهای بلادرنگ: نرم افزاری که نمایش،تحلیل و کنترل وقایع دنیای واقعی را در هنگام وقوع بر عهده دارد بلادرنگ نامیده می شود. اجزاء نرم افزار بلادرنگ عبارتند از:یک مؤلفه جمع آوری داده ها برای جمع آوری و سازماندهی اطلاعات از محیط خارجی، یک مؤلفه تحلیل برای تبدیل اطلاعات در صورت نیاز کاربرها به آنها، یک مؤلفه کنترل ورودی/خروجی که به محرک های محیط خارجی پاسخ می دهد و یک مؤلفه نمایش دهنده که هماهنگ کننده تمام اجزاء دیگر می باشد به گونه ای که پاسخ بلادرنگ امکان پذیر باشد (معمولأ بین 1 میلی ثانیه تا 1 ثانیه) مانند:نرم افزارهای کنترلی.
3- نرم افزارهای تجاری: نرم افزار تجاری پردازش اطلاعات تجاری، ذخیره و بازیابی اطلاعات که حاوی اطلاعات تجاری باشند را دربر می گیرد مانند:MIS (سیستم مدیریت اطلاعات). پردازش اطلاعات تجاری بزرگترین زمینه کاربرد نرم افزار می باشد.
4- نرم افزارهای مهندسی و علمی: این گونه نرم افزار ها معمولأ محاسبات خاصی بر روی یک سری داده های ورودی انجام می دهند مانند:Matlab (محاسبات ریاضی و شبیه سازی) ، SAP (محاسبات عمرانی) و ... .
5- نرم افزارهای جاسازی شده: نرم افزارهایی هستند که معمولأ بر روی سخت افزار قرار می گیرند تا مجموعه اعمال هوشمندی را برای سخت افزار انجام دهند به این صورت که این نرم افزار در حافظه فقط خواندنی قرار می گیرد و برای کنترل محصولات و سیستم های صنعتی و مشتری استفاده می شوند نرم افزار جاسازی شده می تواند اعمال محدود و خاصی را انجام دهد مانند: کنترل صفحه کلید ماکروویو ، کنترل سوخت اتومبیل و ... .
6- نرم افزار کامپیوتر شخصی: بازار نرم افزار کامپیوتر شخصی در دو دهه گذشته رشد سریعی داشته است. پردازش کلمه، گرافیک کامپیوتری و مدیریت بانک اطلاعاتی تعدادی از صدها کاربرد آن می باشد .
7- نرم افزارهای Web: نرم افزارهایی هستند شامل دستورات اجرایی (برای مثال Java , Perl, HTML, CGI ) و داده ها (برای مثال فرامتن و قالبهای متعدد صوتی و تصویری ) . این گونه نرم افزارها برای استفاده از پروتکل های شبکه توسعه پیدا کرده اند .
8- نرم افزارهای هوش مصنوعی: نرم افزارهوش مصنوعی (AI) از الگوریتم های غیر عددی برای حل مسائل پیچیده ای که با روش های تحلیل و محاسبه متداول قابل حل نیستند استفاده می نماید .