خانه / بیشتر از برنامه نویسی / بیشتر از برنامه نویسی (۴) : نرم افزارها

بیشتر از برنامه نویسی (۴) : نرم افزارها

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

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

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

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

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

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

نقد و بررسی

۰

User Rating: ۳٫۷۸ ( ۳ votes)

درباره ی [مرتضی]

مرتضی ذاکری - عضو تیم کاری تارنمای میکروپدیا دانش آموخته مهندسی کامپیوتر - گرایش نرم افزار

همچنین ببینید

میکروپدیا؛ وب سایت تخصصی انجام پروژه های فنی و مهندسی

بیشتر از برنامه نویسی (۳) : ساختمان کامپیوترها

در این قسمت، نگاهی اجمالی بر سازمان و ساختمان کامپیوترها می اندازیم. خواهیم دید چگونه …

پاسخ دهید

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

پاسخ عبارت زیر را وارد کنید: *