سامانه نرمافزار
با نرمافزار سیستم اشتباه نشود.
یک سامانه نرمافزاری یک سامانه متشکل از قطعات به هم مرتبطی است که اساس آن نرمافزاری که یک سیستم کامپیوتری (ترکیبی از سختافزار و نرمافزار) را شکل داده است، میباشد. این سامانه متشکل از تعدادی برنامه جداگانه به همراه فایلهای تنظیمات (که برای راه اندازی این برنامهها، استفاده میشود)، مستندات سیستم (که سیستم را توصیف میکند) و مستندات کاربر (که چگونگی استفاده از سیستم را توضیح میدهد) است.
در مقابل یک برنامه کامپیوتری که مجموعهای از دستورالعملها (منبع، یا کد شی) است، یک سامانه نرمافزاری شامل قطعات بسیار دیگری مانند مشخصات، نتایج آزمون، مستندات کاربر نهایی، سوابق تعمیر و نگهداری، و غیره میباشد.
بررسی اجمالی
اصطلاح سامانه نرمافزاری باید از لغتهایی مثل برنامه کامپیوتری یا نرمافزار تمایز داده شود. اصطلاح برنامه کامپیوتری عموماً به مجموعهای از دستورات (منبع یا کد) که وظیفه معینی را انجام میدهد، نسبت داده میشود. با این حال، یک سامانه نرمافزاری به طور کلی به یک مفهوم فراگیرتر با بسیاری از جزئیات بیشتر مانند مشخصات، نتایج آزمون، مستندات کاربر نهایی، سوابق تعمیر و نگهداری و غیره اشاره میکند.
از اصطلاح سامانه نرمافزاری است در زمانهایی که تئوری سیستمها در زمینه مهندسی نرمافزار کاربرد دارد، استفاده میشود. یک سامانه نرمافزاری متشکل از چندین برنامههای کامپیوتری جداگانه و فایلهای تنظیمات مرتبط با برنامهها، مستندات و غیره که در کنار هم عمل میکنند، میباشد. از این مفهوم در مطالعه نرمافزارهای بزرگ و پیچیده استفاده میشود، به این دلیل که در اجزای اصلی نرمافزار و اثر متقابل آنها تمرکز دارد.
سامانههای نرمافزاری در حال حاضر برای گروههای تحقیقاتی که در مهندسی نرمافزار به طور خاص و سیستمهای مهندسی به صورت کلی علاقهمند هستند، بسیار مناسب میباشد. مجلههای علمی مانند مجله سیستمها و نرمافزار (منتشر شده توسط الزویر) به همین مبحث اختصاص یافته است.
جایزه سامانه نرمافزاری ACM یک جایزه سالانه در ارتباط با تلاشها و افتخارات مردم یا سازمانی است که به تلاشهای مرتبط با "توسعه یک سامانه نرمافزاری برای تبدیل به یک اثر ماندگار، منعکس شده در قالب مفاهیم همکاری، یا مورد پذیرش در زمینههای تجارتی، یا هر دو " تعلق میگیرد. این جایزه از سال ۱۹۸۳ توسط انجمن ماشینهای محاسباتی و به همراه کمک مالی IBM در قالب یک جایزه نقدی اهدا میشود.
دستهبندیها
حوزههای عمده سامانههای نرمافزاری شامل حوزههای مربوط به نرمافزارهای کاربردی، نرمافزارهای برنامهنویسی و نرمافزارهای سیستم، میباشد اگر چه گاهی اوقات تشخیص میزان تفاوت میتواند مشکل باشد. نمونههایی از سامانههای نرمافزاری شامل سیستم عاملها، سیستمهای رزرو کامپیوتری و سیستمهای کنترل ترافیک هوایی، فرماندهی و کنترل سیستمهای نظامی، شبکههای مخابراتی، سامانههای مدیریت محتوا، سیستمهای مدیریت پایگاه داده، سیستمهای خبره، سیستمهای تعبیه شده و غیره میباشد.