نرم افزار چیست ؟
برای نرم افزار سه تعریف وجود دارد :
- برنامه ای کامپیوتری است که یک سری خصیصه ها و ویژگی ها در اختیار کاربران قرار می دهد.
- ساختمان داده ای است که به سایر برنامه ها اجازه دستکاری و ذخیره داده ها را می دهد.
- مستندی باشد که در ارتباط با ویژگی ها و کارکردهای سایر برنامه ها به کاربران اطلاعات می دهد.
مهندس نرم افزار کیست ؟
شخصی است که تولید و پشتیبانی یک محصول نرم افزاری را برعهده دارد تا محصولی با کیفیت در اختیار کاربران قرار بدهد.
مهندسی نرم افزار چیست ؟
به مجموعه از روش ها ، فناوری ها و ابزارها برای تولید یک محصول با کیفیت، مهندسی نرم افزار می گویند .
( در دنیای امروزه ، اطلاعات و داده ها از اهمیت بالایی برخوردار هستند . به کمک نرم افزار می توان اطلاعات تولید ، تبدیل ، نگهداری و ارائه داد )
نکته : تفاوت مهندسی نرم افزار و برنامه نویسی در چیست ؟ در واقع برنامه نویسی جزئی از مهندسی نرم افزار است .
مثال : کدام یک از گزینه های زیر نادرست است ؟
- نرم افزار ساختمان داده ای است که سایر برنامه ها را قادر می سازد تا اطلاعات را دستکاری کنند.
- مهندس نرم افزار کسی است که نرم افزار را تولید و پشتیبانی می کند .
- برنامه نویسی بخشی از مهندسی نرم افزار نیست.
- هیچ کدام.
جواب : گزینه ۳ – برنامه نویسی بخشی از فرایند مهندسی نرم افزار است.
بررسی مشکلات نرم افزار ها :
- رشد چشم گیر سخت افزار ها ( رشد تکنولوژی ) : هر نرم افزار با رشد چشم گیر سخت افرار ها باید مدام خودش را با جدیدترین تکنولوژی ها وفق دهد
- رشد سریع نیازهای بازار : در بازار امروزه با رشد سریع تغییرات و نیازهای کاربران روبرو هستیم که این مشکل زمان تولید نرم افزار را افزایش می دهد.
- نیاز به نرم افزارهای تحت وبی : امروزه با گسترش اینترنت و دردسترس بودن آن ، نیاز کاربران به نرم افزارهای تحت وب ، روز به روز افزایش می یابد که در این مورد باید امنیت این گونه نرم افزار ها بالا باشد .
- اقبال عمومی : در گذشته استفاده از نرم افزار مختص ادارات و سازمان ها بود ولی امروزه با گسترش کامپیوتر ها و تبلت ها و… اقبال عمومی به استفاده از نرم افزار بالاتر رفته و این خود باعث می شود تا نیازهای کاربران خانگی را نیز در نظر گرفت .
- نگهداری و پشتیبانی نرم افزار
نکته ۱ : در تولید یک نرم افزار زمان و هزینه از مولفه های مهم می باشد . یکی از علل اصلی بالا بودن تولید نرم افزار ، عدم استفاده از مولفه های آماده و آزمایش شده می باشد . و از علل اصلی بالارفتن هزینه تولید نرم افزار رشد سریع نیازهای مشتریان می باشد.
ویژگی های نرم افزار که از آن را از سخت افزار متمایز می کند :
- نرم افزار ساخته نمی شود بلکه توسعه و مهندسی می شود .تولید نرم افزار یک فرآیند فکری است نه فیزیکی .در واقع هزینه تولید نرم افزار بر روی مهندسی آن متمرکز است .
- نرم افزار دورانداخته نمی شود : سخت افزار دورانداخته می شود درحالی که نرم افزار رو به زوال می رود .
- نرم افزار براساس نیاز مشتری ساخته می شود. اگرچه سفارشی ساختن در سخت افزار وجود دارد ولی در نرم افزار بیشتر به چشم می خورد .
- نرم افزار اصطحکاک ندارد .
انواع نرم افزار ها و کاربردهای آن ها :
- نرم افزار های سیستمی :
- برای سرویس دادن به سایر برنامه ها تولید می شوند . مثل برخی مولفه های سیستم عامل ها ، کامپایلرها ، برنامه های مدیریت فایل ها . این نرم افزار ها ساختار پیچیده ای دارند و نیز فعل و انفعال زیادی با سخت افزار دارند و توسط کاربران زیادی مورد استفاده قرار می گیرند پس :
- فعل و انفعال زیاد با سخت افزار دارند.
- مورد استفاده زیاد کاربران قرار دارند.
- منابع را به اشتراک می گذارند.
- واسط های خارجی چندگانه ای دارند .
- برای سرویس دادن به سایر برنامه ها تولید می شوند . مثل برخی مولفه های سیستم عامل ها ، کامپایلرها ، برنامه های مدیریت فایل ها . این نرم افزار ها ساختار پیچیده ای دارند و نیز فعل و انفعال زیادی با سخت افزار دارند و توسط کاربران زیادی مورد استفاده قرار می گیرند پس :
- نرم افزار های کاربردی :
- این نرم افزارها برای حل مشکلات تجاری طراحی و توسعه داده می شوند . اینگونه نرم افزار ها پردازش داده ها را به صورت آنلاین انجام می دهند .
- نرم افزارهای علمی و مهندسی :
- برای حل مشکلات در رشته های فنی و مهندسی و علمی طراحی می شوند . مثل سیستم های زمین شناسی ، شاتل فضایی و حسابداری تخصصی و…
- نرم افزار های تعبیه شده – توکار
- این نرم افزار ها به صورت آنلاین و برخط برای کنترل یکسری خصیصه ها کاربرد دارند مثلا کنترل سوخت هواپیما یا کنترل چرخ های اتومبیل و …
- نرم افزار های خط تولید
- هدف این نرم افزار ها فراهم کردن قابلیت های شخصی برای استفاده زیاد کاربران است . . مثل نرم افزار فوتوشاپ ، تفریحی و …
- نرم افزار های تحت وب
- هوش مصنوعی :
- برای حل مسائل غیرعددی و پیچیده که در حالت مستقیم قابل حل نیستند . مثل روباتیک و …
- همه جا حاضر:
- نرم افزار های توزیع شده که در هرجایی در دسترس هستند.
- متن باز :
- نرم افزار هایی که سورس آن ها مشخص و باز بوده و هرکسی می تواند طبق سلیقه خودش آن ها را ویرایش و شخصی سازی کند .
مثال :کدام گزینه در ارتباط با نوع نرم افزار نادرست است :
- فوتوشاپ جز نرم افزارهای خط تولید می باشد .
- نرم افزار های کنترل پرواز جز نرم افزارهای توکار است .
- نرم افزار های پردازش صوت ، جز نرم افزارهای هوش مصنوعی است.
- نرم افزارهای حسابداری ، جز نرم افزار های خط تولید است .
جواب : ۴
نکته : نرم افزارهای کاربردی مختلف را می توان براساس محتوا و پیچیدگی اطلاعات آن ها تقسیم بندی کرد.