انواع نرم‌افزارها

نرم‌افزار، ماهیتی منطقی است، که بر اساس مورد کاربرد، گاه درون یک محصول سخت‌افزاری مانند تلفن همراه و گاه درون یک محیط عملیاتی مانند دانشگاه قرار می‌گیرد و سپس تمام یا بخشی از روال کسب و کار را که به صورت دستی و سنتی انجام می‌شده است. به شیوه‌ای مدرن، مکانیزه و کامپیوتری انجام می‌دهد.

‏در یک دسته‌بندی کلی برای نرم‌افزارهای موجود، می‌توان آنها را به دو گروه اصلی زیر تقسیم نمود:

نرم‌افزارهای کاربردی

‏برنامه‌هایی که برای رفع نیازهای کاربران کامپیوتر نوشته می‌شود، به بیان دیگر نرم­افزارهای کاربردی به­طور مستقیم به انسان سرویس می­دهند. مانند نرم‌افزارهای حسابداری و نرم‌افزار فرهنگ لغات.

نرم‌افزارهای سیستمی

‏برنامه‌هایی که برای بهره‌برداری از سخت‌افزار یا سرویس­دادن به سایر برنامه‌ها نوشته شده‌اند. به­بیان دیگر نرم­افزار­های سیستمی به طور مستقیم به نرم افزارهای دیگر و به طور غیر­مستقیم به انسان سرویس می­دهند. مانند سیستم عامل‌ها و کامپایلرها.

در یک دسته‌بندی دقیق‌تر برای نرم‌افزارهای موجود، می‌توان آنها را به گروه‌های زیر تقسیم نمود:

‏نرم‌افزارهای بیدرنگ

‏در نرم‌افزارهای بی‌درنگ باید خروجی و پاسخ نهایی در یک زمان مشخص و از پیش تعیین شده حاصل شود. در این نرم‌افزارها، زمان نقشی کلیدی ایفا می‌کند و زمان پاسخ باید به موقع و تضمین شده باشد. نرم‌افزارهای بی‌درنگ معمولاً به عنوان یک دستگاه کنترلی در یک ‏کاربرد خاص (مثلاً صنعتی) به کار گرفته می‌شوند. در این نرم‌افزارها دیر پاسخ دادن به همان بدی پاسخ ندادن است. در این نوع نرم‌افزارها هدف اصلی طراحان، پاسخگویی سریع (در مهلت تعیین شده) به رویدادها و درخواست‌ها می‌باشد و راحتی کاربران و بهره‌وری منابع در درجه‌های بعدی اهمیت، قرار دارند.

‏انسان در وادی زندگی نیازهای گوناگونی دارد، یکی از نیازهای اساسی انسان، نیاز به امنیت است. اما گاهاً، ممکن است در معرض عوامل محیطی و بیرونی و یا حتی درونی امنیت انسان در شرایط هشیاری یا ناهشیاری به مخاطره بیفتد. بنابراین نیاز است تا مکانیزمی همواره هوشیار و همیشه بیدار و با اشراف لحظه به لحظه، مخاطرات پیرامون انسان را رصد و تحت کنترل خود قرار دهد تا در موقع لزوم و به صورت آنی، بی‌درنگ، در لحظه و در زمان حقیقی و واقعی (تا دیر نشده) با تهدید مقابله کند، نرم‌افزارهای بی‌درنگ این نگهبان همیشه هوشیار و همیشه بیدار هستند. مانند نرم‌افزارهای ترمز اتومبیل، کنترل ضربان قلب اتاق بیهوشی، کنترل فشار کابین هواپیما و …

نرم‌افزارهای مدیریت پایگاه داده

این نرم‌افزارها، برای کاربردهای پایگاه داده، مورد استفاده قرار می‌گیرند، مانند نرم‌افزار
SQL Server به عنوان یک DBMS که ایجاد جداول و پرس و جوهای مربوط به یک پایگاه داده را فراهم می‌کند. در این نوع نرم‌افزارها حجم داده‌ها بالا و حجم محاسبات پایین است.

نرم‌افزارهای علمی و مهندسی

این نرم‌افزار­ها، برای کاربردهایی با محاسبات پیچیده و سنگین مورد استفاده قرار می‌گیرند، مانند نرم‌افزارهای محاسبات ریاضی (مثل ضرب ماتریس‌ها)، علوم زمین‌شناسی و ستاره‌شناسی، کنترل سیستم‌های صنعتی. در این نوع نرم‌افزارها حجم داده‌‌ها پایین و حجم محاسبات بالا است.

نرم‌افزارهای نهفته (توکار)

این نرم‌افزارها در محصولات صنعتی که به بازار عرضه می‌شوند، گنجانده می‌شوند و دارای کارکردهای محدود (مانند کنترل فعالیت‌های ماشین لباسشویی) و یا دارای کارکردهای حیاتی (مانند کنترل ترمز اتومبیل، کنترل ضربان قلب) می‌باشند. اغلب این نرم‌افزارها، از نوع نرم‌افزارهای بی‌درنگ نیز هستند، به بیان دیگر، اغلب نرم‌افزار­های بی‌درنگ، نهفته هستند.

نرم‌افزارهای خط تولیدی

این نرم‌افزارها بر طراحی و آماده‌سازی یک سرویس ویژه که مشتریان بسیاری خواهان آن هستند، تأکید می‌کند. این نرم‌افزارها بر رقابت‌های تجاری تمرکز دارند و تلاش می‌کنند، محصولاتی تولید کنند که مشتری‌های زیادی در بازار داشته باشد (مانند نرم‌افزارهای پردازش متن، گرافیک کامپیوتری، برنامه‌های تفریحی و برنامه‌های چندرسانه‌ای).

نرم‌افزارهای مبتنی بر وب

این نرم‌افزارها طیف وسیعی از برنامه‌هایی را شامل می‌شود که از طریق شبکه‌های کامپیوتری در دسترس هستند. در فرم ساده، این نرم‌افزارها می‌توانند شامل چند لینک صفحات و فایل‌های مختلف بوده و اطلاعاتی را به کاربر نمایش دهند. در فرم‌های پیچیده‌تر، این نرم‌افزارها می‌توانند محاسبات و پردازش‌هایی را در بستر شبکه انجام داده و یا حتی اطلاعات کاربران را در ساختار پایگاه داده ذخیره و بازیابی نمایند.

نرم‌افزارهای هوش مصنوعی

این نرم‌افزارها از الگوریتم‌های غیرعددی برای حل مسائل پیچیده کمک می‌گیرند. مسائلی که با محاسبات متعارف قابل حل نبوده و روش حل آسانی ندارند. از حوزه‌های مختلف این نرم‌افزارها، می‌توان به نرم‌افزارهای ربات‌ها، شناسایی الگو (تصویر و صدا)، شبکه‌های عصبی مصنوعی و یا بازی‌های کامپیوتری اشاره کرد.

نرم‌افزارهای متن باز

این نرم‌افزارها با در اختیار گذاشتن کدهای منبع، این امکان را فراهم می‌کنند که مشتریان بتوانند اصلاحاتی را با توجه به اقتضای محلی خودشان در آنها اعمال کنند.

ارسطو خلیلی‌فر

مولف کتاب مهندسی نرم افزار راهیان ارشد

0 پاسخ ها

دیدگاه خود را ثبت کنید

آیا می خواهید به بحث بپیوندید؟
در صورت تمایل از راهنمایی رایگان ما استفاده کنید!!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *