نرم افزار چیست؟
نرم افزار کامپیوتر یا همان نرم افزار رایانه چیست؟ در این مقاله با ما همراه باشید تا علاوه بر اینکه نرم افزار چیست ، به اجزای نرم افزار کامپیوتر و انواع آن نیز بپردازیم.
نرم افزار مجموعهای از دستورالعملها ، دادهها یا برنامهها است که برای کار با رایانهها و انجام کارهای خاص استفاده میشود. نرم افزار برعکس سخت افزار است که جنبههای فیزیکی رایانه را توصیف میکند. نرم افزار یک اصطلاح عمومی است که به برنامهها ، اسکریپتها و برنامههایی که بر روی دستگاه اجرا میشوند ، اطلاق میشود.
میتوان آن را به عنوان قسمت متغیر یک کامپیوتر در نظر گرفت ، در حالی که سخت افزار قسمت غیرقابل تغییر است. نرم افزارهای اولیه برای رایانههای خاص نوشته شده بود و با سخت افزاری که بر روی آن کار میکرد به فروش میرسید. در دهه 1980 ، نرم افزارها روی فلاپی دیسکها و بعداً روی سی دی و دی وی دی فروخته میشوند. امروزه اکثر نرم افزارها از طریق اینترنت خریداری شده و مستقیماً بارگیری میشوند. نرم افزار را میتوان در وب سایتهای فروشنده یا وب سایتهای ارائه دهنده خدمات برنامه یافت.
نرم افزار کامپیوتر برنامه ای است که کامپیوتر را قادر به انجام یک کار خاص ، برخلاف اجزای فیزیکی سیستم (سخت افزار) می کند. این شامل نرم افزارهای کاربردی مانند پردازشگر کلمه است که کاربر را قادر به انجام وظیفه می کند و نرم افزار سیستمی مانند سیستم عامل که با رابط کاربری با سخت افزار و سایر نرم افزارها نرم افزارهای دیگر را به درستی اجرا می کند.
شاید برایتان سوال پیش بیاید که نرم افزار چیست؟ اصطلاح “نرم افزار” برای اولین بار توسط جان دبلیو توکی در سال 1957 استفاده شد. در علوم کامپیوتر و مهندسی نرم افزار ، نرم افزار کامپیوتر همه برنامه های رایانه ای است.
مفهوم خواندن توالی های مختلف دستورالعمل ها در حافظه دستگاهی برای کنترل محاسبات ، توسط چارلز بابیج به عنوان بخشی از موتور تفاوت خود ابداع شد. نظریه ای که پایه و اساس بیش ترین نرم افزارهای مدرن است و اولین بار توسط آلن تورینگ در مقاله خود در سال 1935 با عنوان “اعداد قابل محاسبه با کاربردی در Entscheidungsproblem” ارائه شد.
تاریخچه نرم افزار چیست ؟
اصطلاح نرم افزار اواخر دهه 1950 مورد استفاده قرار گرفت. در این مدت ، اگرچه انواع مختلفی از نرم افزارهای برنامه نویسی ایجاد میشد ، اما معمولاً در دسترس تجاری نبود. در نتیجه ، کاربران – عمدتا دانشمندان و شرکتهای بزرگ – اغلب مجبور بودند نرم افزار خود را بنویسند.
21 ژوئن 1948. تام کیلبورن ، دانشمند کامپیوتر ، اولین نرم افزار جهان را برای کامپیوتر منچستر بیبی در دانشگاه منچستر در انگلستان مینویسد.
اوایل 1950 جنرال موتورز اولین سیستم عامل را برای ماشین پردازش الکترونیکی داده IBM 701 ایجاد کرد. این سیستم عامل جنرال موتورز یا GM OS نامیده میشود.
- 1958. جان توکی ، متخصص آمار ، کلمه نرم افزار را در مقالهای در مورد برنامه نویسی کامپیوتر ضبط میکند.
اواخر دهه 1960 فلاپی دیسکها معرفی شدهاند و در دهههای 1980 و 1990 برای توزیع نرم افزار مورد استفاده قرار گرفتند.
3 نوامبر 1971AT&T اولین نسخه سیستم عامل Unix را منتشر میکند.
- 1977. اپل Apple II را عرضه میکند و نرم افزارهای مصرفی از بین میروند.
- 1979. VisiCorp VisiCalc را برای Apple II ، اولین نرم افزار صفحه گسترده برای رایانههای شخصی ، منتشر کرد.
- 1981. مایکروسافت MS-DOS را منتشر کرد ، سیستم عامل که بسیاری از رایانههای اولیه IBM بر روی آن کار میکردند. IBM شروع به فروش نرم افزار میکند و نرم افزار تجاری در دسترس مصرف کننده عادی قرار میگیرد.
دهه 1980 هارد دیسکها در رایانههای شخصی استاندارد میشوند و تولیدکنندگان شروع به جمع آوری نرم افزار در رایانهها میکنند.
- 1984. سیستم عامل مک برای اجرای خط مکینتاش اپل منتشر شد.
اواسط دهه 1980 برنامههای کلیدی نرم افزاری ، از جمله AutoDesk AutoCAD ، Microsoft Word و Microsoft Excel ، منتشر میشوند.
- 1985. مایکروسافت ویندوز 1.0 منتشر شد.
- 1989. CD-ROM ها استاندارد میشوند و دادههای بسیار بیشتری را نسبت به فلاپی دیسکها در خود جای میدهند. برنامههای بزرگ نرم افزاری را میتوان سریع ، آسان و نسبتاً ارزان توزیع کرد.
- 1991. هسته لینوکس ، اساس سیستم عامل لینوکس منبع باز ، منتشر شد.
- 1997. DVD معرفی شد و میتواند دادههای بیشتری را نسبت به CD ذخیره کند ، بنابراین امکان قرار دادن مجموعهای از برنامهها ، مانند Microsoft Office Suite ، بر روی یک دیسک وجود دارد.
- 1999. Salesforce.com از رایانش ابری برای پیشگام شدن تحویل نرم افزار از طریق اینترنت استفاده میکند.
- 2000. اصطلاح نرم افزار به عنوان سرویس (SaaS) رواج پیدا کرد.
- 2007. IPhone راه اندازی شد و برنامههای تلفن همراه شروع به کار کردند.
2010 تا کنون DVD ها با خرید و بارگیری نرم افزار از اینترنت و ابر ، منسوخ میشوند. فروشندگان به مدل ای مبتنی بر اشتراک میروند و SaaS رایج شد.
طراحی و پیاده سازی نرم افزار چگونه است؟
چرخه عمر توسعه نرم افزار چارچوبی است که مدیران پروژه برای توصیف مراحل و وظایف مربوط به طراحی نرم افزار از آن استفاده میکنند. اولین گام در چرخه عمر طراحی ، برنامه ریزی تلاش و سپس تجزیه و تحلیل نیازهای افرادی است که از نرم افزار استفاده خواهند کرد. پس از تجزیه و تحلیل نیازهای اولیه ، مرحله طراحی با هدف تعیین چگونگی برآوردن نیازهای کاربر مشخص می شود.
مرحله بعدی پیاده سازی است ، جایی که کار توسعه به پایان میرسد ، و سپس آزمایش نرم افزار اتفاق میافتد. مرحله تعمیر و نگهداری شامل همه کارهایی است که برای کارکرد سیستم لازم است.
طراحی نرم افزار شامل توصیفی از ساختار نرم افزار مورد استفاده ، مدلهای داده ، رابط بین اجزای سیستم و الگوریتمهایی است که مهندس نرم افزار از آنها استفاده خواهد کرد.
فرآیند طراحی نرم افزار نیازهای کاربر را به شکلی تبدیل میکند که برنامه نویسان کامپیوتر میتوانند از آن برای کد نویسی و پیاده سازی نرم افزار استفاده کنند. مهندسان نرم افزار طراحی نرم افزار را به صورت مکرر توسعه میدهند و با توسعه آن جزئیات را اضافه میکنند و طرح را اصلاح میکنند.
انواع مختلف طراحی نرم افزار شامل موارد زیر است:
- طراحی معماری: این طرح بنیادی است که ساختار کلی سیستم ، اجزای اصلی آن و روابط آنها با یکدیگر را با استفاده از ابزارهای طراحی معماری مشخص میکند.
- طراحی سطح بالا: این دومین لایه طراحی است که بر چگونگی پیاده سازی سیستم به همراه تمام اجزای آن در قالبهای ماژولهایی که توسط یک پشته نرم افزار پشتیبانی میشوند ، تمرکز دارد. یک طرح سطح بالا روابط بین جریان داده و ماژولها و عملکردهای مختلف سیستم را توصیف میکند.
- طراحی دقیق و با جزییات: این لایه سوم طراحی بر تمام جزئیات تمرکز میکند.
نحوه حفظ کیفیت نرم افزار کامپیوتر
الزامات عملکردی مشخص میکند که نرم افزار باید چه کاری انجام دهد. آنها شامل جزئیات فنی ، دستکاری و پردازش دادهها ، محاسبات یا هر عملکرد خاص دیگری است که مشخص میکند یک برنامه چه اهدافی را انجام میدهد. الزامات غیر عملکردی – که به عنوان ویژگیهای کیفیت نیز شناخته میشوند – نحوه عملکرد سیستم را تعیین میکند. الزامات غیرعملی شامل قابلیت حمل ، بازیابی بلایا ، امنیت ، حریم خصوصی و قابلیت استفاده است. تست نرم افزار مسائل فنی را در کد منبع نرم افزار شناسایی و حل میکند و قابلیت استفاده ، عملکرد ، امنیت و سازگاری کلی محصول را ارزیابی میکند تا از نیازهای آن اطمینان حاصل کند.