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

نرمافزارهای سیستمی (System Software)
نرمافزارهای سیستمی، مدیریت رایانه را برعهده دارند. این دسته از نرمافزارها با سختافزار رایانه (دستگاههای ورودی، خروجی، حافظه، پردازنده مرکزی) در ارتباط هستند و مدیریت بخش سختافزاری سیستم را برعهده دارند. نرمافزارهای سیستمی رابط بین سختافزار، نرمافزار و کاربران هستند و به چند گروه اصلی تقسیم میشوند که عبارتانداز:
برنامههای راهانداز (Startup Software): راهاندازی سیستم طی سه مرحله زیر انجام میشود.
1- مرحله (POST): یکی از برنامههایی که به محض روشن شدن رایانه، در آن اجرا میشود، برنامه عیبیاب سیستم (POST) است. این برنامه قسمتهای اصلی رایانه از قبیل حافظه، پردازندهٔ مرکزی را آزمایش میکند و اگر اشکالی در بخشهای اصلی رایانه بیابد، توسط این برنامه به کاربر اطلاعرسانی میشود.
2- مرحله (BIOS): پس از مرحله عیبیابی، برنامهای بهنام بایوس اجرا شده و در حافظه اصلی کپی میشود. این برنامه وظیفۀ انجام و کنترل عملیات اصلی ورودی و خروجی را برعهده دارد.
3- مرحله (Loader): در آخرین مرحله، بخشهای اصلی سیستم عامل از حافظهٔ جانبی (دیسک سخت) روی حافظهٔ اصلی (RAM) بارگذاری میشود تا کنترل رایانه را برعهده بگیرد.
سیستم عامل (Operating System): سیستم عامل اصلیترین نرمافزار رایانه است که پس از روشن شدن سیستم روی آن بارگذاری شده و تمام فعالیتهای نرمافزاری و سختافزاری رایانه را هدایت میکند.
تعریف سیستم عامل یا (OS): سیستم عامل مهمترین نرمافزار رایانه است که سختافزار و دیگر نرمافزارهای سیستم را کنترل و مدیریت میکند و بستری را فراهم میسازد که برنامههای کاربردی بتوانند بر روی آن اجرا شوند.
بهعبارتی دیگر سیستم عامل سختافزار و نرمافزار را مدیریت کرده و بهعنوان واسطی بین کاربر و سختافزار عمل میکند.

سیستم عاملها از نظر نوع رابط کاربری به دو دسته تقسیم میشوند:
1- سیستم عاملهای متنی: این سیستم عامل یک محیط مبتنی بر متن دارد و انجام کار در این محیط نیاز به نوشتن فرمان دارد. (مثل سیستم عامل MS-DOS)
2- سیستم عاملهای گرافیکی: در این نوع سیستم عاملها (مثل ویندوز) ارتباط با کاربر از طریق رابط گرافیکی GUI انجام میشود.
تعریف رابط کاربر گرافیکی (Graphical User Interface): برای برقراری تعامل میان کاربر و رایانه، از رابط گرافیکی کاربر استفاده میشود. این رابط کاربری، شامل نمایههای گرافیکی مثل دکمهها، آیکونها و تعاملات قابل انجام با کمک این آیکونها است. در واقع بهجای نوشتن متن یا کدهای فرمان، از رابط کاربری گرافیکی استفاده میشود. یکی از نمونههای بسیار متداول استفاده از GUI، در سیستم عاملهای مایکروسافت مانند نسخههای مختلف ویندوز است.
استفاده از رابط کاربری گرافیکی یا GUI در سیستم عاملهایی مثل ویندوز، باعث راحتی کاربران شده است. کاربران دیگر برای تعامل با رایانه همانند سیستم MS-DOS نیازی به نوشتن فرمان ندارند. آنها به راحتی از آیکونهای گرافیکی ویندوز استفاده کرده و با عملکرد هر کدام آشنایی دارند. بنابراین این رابط کاربری جزئیات فنی و دشوار سیستم را ساده میکند.
رابط کاربر گرافیکی، واسطی است میان کاربر و دستورات پیچیده سیستم عامل که با استفاده از آن، انجام کار برای کاربران سادهتر خواهد شد.
فعالیت (صفحهٔ 86 کتاب درسی)
در مورد انواع سیستم عاملها تحقیق کرده سپس جدول زیر را تکمیل کنید.
| نام سیستم عامل | کاربرد |
مترجمهای زبان برنامهنویسی (Compiler): مترجم زبان، نرمافزاری است که برنامهٔ نوشته شده با یک زبان خاص برنامهنویسی را به زبان قابل فهم برای ماشین تبدیل میکند.
زبانهای برنامهنویسی از نظر ارتباط با سختافزار و یا ارتباط با زبان انسان به دو دسته کلی تقسیمبندی میشوند:
زبانهای سطح پایین (Low-Level Language)
زبانهای سطح بالا (High-Level Language)
برنامههای کمکی (Utilities): برنامههای کمکی، نرمافزارهایی هستند که عملیات مربوط به استفاده از رایانه را سادهتر میکنند و در مدیریت بهتر سیستم به کاربران کمک میکنند. برخی از این برنامههای کمکی تحت عنوان بستههای نرمافزاری در بازار عرضه میشوند. نرمافزارهای ویروسیابی، فشردهسازی و مدیریت حافظه و دیسک، نمونههایی از برنامههای کمکی هستند.
نرمافزارهای کاربردی (Application Software)
نرمافزارهای کاربردی، برنامههایی هستند که برای انجام کارهای خاصی طراحی و پیادهسازی شدهاند. هر نرمافزاری که به کمک آن بتوان بخشی از نیازهای یک فرد، یک شرکت یا یک سازمان را انجام داد، به آن نرمافزار کاربردی گفته میشود.
برای مثال میتوان به نرمافزارهای اداری مانند واژهپرداز، ارائه کننده و صفحهگسترده و یا نرمافزارهای پخش ویدئو و موسیقی، نرمافزار حسابداری، نرمافزار نقشهکشی و هزاران نرمافزار دیگر اشاره کرد.
فعالیت (صفحهٔ 87 کتاب درسی)
با کمک دوستان خود، در مورد کاربرد هر یک از نرمافزارهای کاربردی زیر بحث کرده، سپس جدول را کامل نمایید.
| نماد نرمافزار | نماد نرمافزار و کاربرد آن |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
زبانهای برنامهنویسی و انواع آن
برنامهها از کنار هم قرار گرفتن مجموعهای از دستورالعملها بهوجود میآید که این دستورالعملها باید تحت یکسری قوانین مشخص و استاندارد، پیادهسازی و اجرا شود. زبانهای برنامهنویسی از مجموعهای از علائم، قواعد و دستورالعملهایی تشکیل شده است که موجب ایجاد برنامههایی میشود که این برنامهها، رفتار یک ماشین را مشخص کرده و در نهایت موجب تعامل انسان و رایانه میشود.
به زبان خیلی ساده، برنامهنویسی عبارت است از نوشتن دستوراتی که یک سیستم (مثل رایانه) آنها را متوجه شده و دستورات را یکی پس از دیگری اجرا میکند.
زبانهای برنامهنویسی از نظر ارتباط با سختافزار و یا ارتباط با زبان انسان به دو دسته کلی تقسیمبندی میشوند:
زبان سطح پایین
دستورالعملهای زبانهای سطح پایین، در سطح ماشین و وابسته به سختافزار رایانه است. خواندن و نوشتن زبان ماشین دشوار است، زیرا شبیه نمادهای معمولی ریاضی یا زبان انسانی نیست و کدهای آن از رایانهای به رایانه دیگر متفاوت است. از آنجایی که کار با این زبان، پیچیده و نیازمند داشتن اطلاعات سختافزاری خاصی است، کاربران محدودی فقط در موارد خاص از این زبان برنامهنویسی استفاده میکنند. زبان برنامهنویسی اسمبلی از معروفترین زبانهای سطح پایین محسوب میشود.
زبان سطح بالا
دستورالعملهای این نوع زبان برنامهنویسی شباهت و نزدیکی زیادی به زبان انسان دارد. در زبان سطح بالا از نشانهگذاری ریاضی برای اجرای وظایف استفاده میشود. یادگیری زبان سطح بالا بسیار آسانتر از زبان سطح پایین است.
برخی از معروفترین زبانهای سطح بالا عبارتاند از: (Java, C#, Go, JavaScript, Python, Ruby, SQL)
انواع حوزههای مختلف برنامهنویسی براساس پلتفرم (Platform)
تعریف پلتفرم: Platform به نرمافزار یا سختافزاری گفته میشود که روی آن سرویسی قرار گرفته باشد. یک پلتفرم، شامل یک سختافزار، سیستم عامل و یکسری برنامهها و دستورالعملهایی است که بستری برای اجرای اپلیکیشن فراهم میکند.
حوزههای برنامهنویسی را براساس پلتفرم به چهار دسته کلی تقسیم میکنند:
برنامهنویسی تحت ویندوز
زبانهای برنامهنویسی تحت ویندوز زبانهایی هستند که از آنها برای تولید نرمافزارهای کاربردی روی سیستم عامل ویندوز، لینوکس، مک و... استفاده میشود. مانند نرمافزارهای اتوماسیون اداری، نرمافزارهای چندرسانهای Multi Media، مرورگرها و... .
از بین انواع زبانهای برنامهنویسی در این حوزه، متداولترین آنها که میتوان نام برد:
زبانهای برنامهنویسی ویندوز: C#, java, javascript
زبانهای برنامهنویسی لینوکس: java, python
زبانهای برنامهنویسی مک: swift
برنامهنویسی تحت وب
یکی از محبوبترین حوزههای برنامهنویسی، برنامهنویسی تحت وب است. به زبانهایی که برای کار، بر روی وب و شبکه طراحی و ساخته شدهاند، زبانهای برنامهنویسی تحت وب گفته میشود. این زبانها برای ایجاد و تولید انواع پروژهها و نرم افزارهای تحت وب مورد استفاده قرار میگیرند. به عنوان مثال انواع وبسایتها، ایمیل، خرید آنلاین، امور بانکی مجلهها و برنامههای آنلاین نمونه کاربردهایی هستند که از زبانهای تحت وب برای ایجاد آنها استفاده شده است.
زبانهای برنامهنویسی تحت وب به دو دستهٔ زبانهای برنامهنویسی سمت کاربر (Front end) و زبانهای برنامهنویسی سمت سرور (Back end) تقسیم میشوند.
1- برخی زبانهای برنامهنویسی / نشانهگذاری سمت کاربر: jQuery, JavaScript, CSS, HTML
2- برخی زبانهای برنامهنویسی سمت سرور: ASP.NET, Python, Ruby, PHP, Java
برنامهنویسی تحت موبایل
برای توسعهٔ اپلیکیشنهای موبایل میتوان از زبانهای برنامهنویسی مختص هر پلتفرم (اندروید یا iOS) استفاده کرد. برخی از این زبانها عبارتاند از: C#, Java, Swift, Ruby, Javascript و Objectice-C
برنامهنویسی چند منظوره
برخی از زبانهای برنامهنویسی قابلیت استفاده در چندین بخش و پلتفرمهای مختلف دارند که به اینگونه زبانها، زبانهای چند منظوره گفته میشود. برای نمونه، زبانهای C#, C++, Scala, Python و C از این دسته زبانها میباشد.
مراحل تولید یک نرمافزار سفارشی
برای تولید یک نرمافزار سفارشی، روشهای گوناگونی وجود دارد که روز بهروز بر دامنهٔ تکامل و پیشرفت آنها افزوده میشود، اصولاً برای تولید یک نرمافزار سفارشی مراحلی وجود دارد که به تشریح آنها خواهیم پرداخت:
مرحله تجزیه و تحلیل
از مهمترین فعالیتها در تولید یک نرمافزار سفارشی، مرحلهٔ تجزیه و تحلیل میباشد. مشتریان و کاربران معمولاً تصویر واضح و شفافی از نیازهایشان برای ارائه به مهندسان تولید نرمافزار ندارند. در این مرحله نیازمندیهای پیچیده، مبهم و حتی متضاد توسط تحلیلگران سیستم شناسایی میشوند. استخراج نیازمندیها و تحلیل نیازمندیهای کاربر در اولین مرحله تولید نرمافزار انجام میشود. در این مرحله تحلیلگران سیستم با استفاده از روشهایی مانند، پرسشنامه، مصاحبه و بررسی وضعیت موجود فرایندهای کاربری، گزارشی از نیازمندیهای کاربر تدوین میکنند.
مرحله طراحی نرمافزار
ساخت یک مدل برای یک نرمافزار سفارشی قبل از پیادهسازی، شبیه به طراحی نقشه برای ساخت یک ساختمان است. طراحی سبب شکلگیری دید درستی از ارکان معماری نرمافزار سفارشی خواهد شد. در این مرحله توسط تیم تولید نرمافزار، نیازها و زمانبندی توسعه مشخص شده، تمام طرحها ریخته میشود و هر مرحلهٔ کاری، به مراحل کاری کوچکتر تقسیم شود.
مرحله پیادهسازی و کدنویسی
پیادهسازی بخشی از فرایند تولید نرمافزار است که در آن کدنویسی و برنامهنویسی پروژه نرمافزار سفارشی نوشته میشود. در این فاز، نرمافزار براساس معماری از قبل طراحی شده، پیادهسازی و برنامهنویسی میشود. به واقع ساخت نرمافزار در این مرحله صورت میپذیرد. دادهها با توجه به شناختی که از نیازهای مشتری بهدست آمده است و با توجه به بستری که قرار است نرمافزار در آن تولید شود (تحت وب، تحت ویندوز، تحت اندروید و...) زبان برنامهنویسی نرمافزار و پایگاه داده را به مشتری پیشنهاد میدهد و پس از تصویب نهایی در برگه مستندات پروژه، نرمافزار را پیادهسازی میکند.
مرحله آزمایش نرمافزار
بعد از کدنویسی، نرمافزار بارها اجرا و مورد آزمون قرار گرفته تا خطاها و ایرادات آن شناسایی و رفع شود. آزمایش و اصلاح کدهای نرمافزار بخش مهمی از فرایند تولید نرمافزار است و کمک میکند تا مشکلات سامانه بهصورت سریع شناسایی شوند. در این مرحله، گروهی از کاربران برای آزمایش محصول انتخاب میشوند تا بازخورد خود را به تیم نرمافزار برگردانند. آزمایش کاربر برای مشخص کردن مشکلاتی که برنامهنویسان متوجه آن نمیشوند، بسیار اهمیت دارد.
مرحله استقرار و گسترش نرمافزار
پس از پایان آزمون اولیهٔ نرمافزار، استقرار و تحویل سیستم در محیط کار نهایی انجام خواهد شد. تمرکز این فاز بر تضمین نرمافزار برای استفادهٔ کاربران نهایی نرمافزار است. در این نقطه از چرخهٔ حیات نرمافزار، تمرکز روی بازخورد کاربران در خصوص تنظیم دقیق محصول، پیکربندی نرمافزاری، نصب و نکات مربوط به قابلیت استفاده خواهد بود.
در پایان این مرحله باید اهداف نرمافزار بهطور کامل برآورده شده باشد و رابط کاربری نرم افزار (User Interface) برای کاربران جذاب باشد بهطوری که استفاده از نرمافزار برای کاربران آسان باشد.
مرحله پشتیبانی از نرمافزار
پس از اتمام پروژه و تحویل آن، کار به پایان نمیرسد. ارتقای نرمافزار و ارائه نسخههای جدید با قابلیتهای بیشتر و یا نیازمندیهای جدیدی که کاربران با آن مواجه میشوند، رفع خطاهای موجود در سیستم فعلی، آموزش مستمر کاربران سیستم و آموزش کاربران جدید از مهمترین اهداف فاز پشتیبانی محسوب میشوند. در واقع نگهداری و توسعه یک نرمافزار، فرایندی دائمی برای رفع نیاز کاربران و ایجاد کارآمدی بیشتر آن است که از زمان استقرار شروع تا پایان عمر یک نرمافزار، ادامه دارد. چرا که اگر در پایان، کاربران نهایی از عملکرد نرمافزار راضی نباشند چرخۀ حیات نرمافزار به پایان میرسد.





