نرمافزار
برای ایجاد یک سیستم اطلاعاتی، وجود سختافزار و نرمافزار ضروری است. نرمافزار در سازمانها نقش مهمی دارد و برای کارهایی مانند پایش فروش، تهیه گزارش، کنترل حضور کارکنان، پردازش اطلاعات بازاریابی و پیگیری موجودی بهکار میرود. عملکرد این سیستمها بر پایهٔ برنامههایی است که شامل دستورهای مرحلهبهمرحله برای انجام وظایف مختلف هستند. این برنامهها با استفاده از زبانهای ویژهای نوشته میشوند که زبان برنامهنویسی نام دارند و فرایند نوشتن آنها برنامهنویسی است. امروزه به دلیل پیچیدگی نرمافزارها، سهم سختافزار از هزینهٔ سیستم کمتر و سهم نرمافزار بسیار بیشتر شده است. همچنین، چون رایانهها در حوزههای مختلف برای کارهای پیچیده استفاده میشوند و نیازهای اطلاعاتی کاربران دائماً تغییر میکند، نرمافزار باید مرتب بهروز شود.
زبانهای برنامهنویس
زبان برنامهنویسی زبانی است که برای نوشتن برنامه و بیان دستورهای لازم به رایانه بهکار میرود. این زبانها دارای دستور و ساختار مشخص هستند و به برنامهنویس امکان میدهند روش انجام کارها و مراحل پردازش دادهها را برای رایانه مشخص کند. بهطور کلی زبانهای برنامهنویسی را میتوان به دو دستهٔ اصلی تقسیم کرد:
- زبانهای رویهای که در آنها برنامهنویس مراحل انجام کار را به صورت گامبهگام بیان میکند.
- زبانهای غیررویهای که در آنها بیشتر بر نتیجهٔ مورد نیاز تأکید میشود و لازم نیست شیوهٔ انجام کار به صورت مرحلهبهمرحله مشخص شود.
در نسلهای اولیهٔ رایانه بیشتر زبانها از نوع رویهای بودند، اما بهتدریج زبانهای غیررویهای و سادهتر برای کاربر معرفی شدند که توانایی و سهولت بیشتری در برنامهنویسی فراهم میکنند.
زبان ماشین
زبان ماشین نخستین نسل زبانهای برنامهنویسی است و دستورهای آن به صورت دنبالهای از صفر و یک نوشته میشود. این زبان تنها زبانی است که رایانه مستقیماً آن را درک و اجرا میکند، اما برای انسان بسیار دشوار، طولانی و خطاپذیر است. به همین دلیل، برنامهنویسی در این سطح بهندرت انجام میشود و بیشتر نقش پایهای برای زبانهای بالاتر دارد.
اسمبلر
اسمبلر به عنوان نسل دوم زبانهای برنامهنویسی شکل گرفت تا دشواری برنامهنویسی با زبان ماشین را کاهش دهد. در این زبان، به جای رشتههای طولانی متشکل از صفر و یک، از نشانهها و واژههای اختصاری قابلفهم برای بیان دستورها استفاده میشود و هر دستور تقریباً معادل مستقیم همان دستور در سطح ماشین است. ترجمهٔ این دستورهای نمادین به کد قابلاجرای رایانه توسط برنامهای به نام اسمبلر انجام میشود. زبان اسمبلر از نظر خوانایی و امکان پیگیری خطاها وضعیت بهتری نسبت به زبان ماشین دارد، اما به دلیل وابستگی کامل به نوع سختافزار و معماری رایانه همچنان در ردهٔ زبانهای سطح پایین قرار میگیرد و برای برنامهنویسی عمومی مناسب نیست.
کامپایلر
کامپایلر برنامهای است که یک برنامهٔ نوشتهشده به زبان سطحبالا را دریافت میکند، آن را مرحلهبهمرحله تحلیل میکند و در پایان، نسخهای تبدیلشده از آن را تولید میکند. این نسخهٔ تبدیلشده «برنامهٔ شیء» نام دارد. برنامهٔ شیء کدی است که پس از انجام همهٔ مراحل ترجمه به دست میآید و به زبانی نوشته شده است که رایانه میتواند آن را مستقیماً اجرا کند. پس از تولید برنامهٔ شیء، این برنامه وارد مرحلهٔ اجرا میشود و دستگاه دستورهای آن را بهترتیب انجام میدهد.
مفسر
مفسر برنامهای است که دستورهای نوشتهشده به زبان سطحبالا را بهصورت مستقیم و مرحلهبهمرحله برای دستگاه تفسیر و اجرا میکند. در این روش، کل برنامه ابتدا بهطور کامل ترجمه نمیشود؛ بلکه هر دستور در زمان اجرای برنامه بررسی شده، به فرمان قابلفهم برای رایانه تبدیل میشود و سپس اجرا میگردد. به همین دلیل، خطاهای برنامه در همان هنگام اجرای دستورها آشکار میشوند. با این حال، از آنجا که هر بار اجرای برنامه نیازمند تفسیر دوبارهٔ دستورهاست، سرعت اجرای برنامه در روش مفسری معمولاً کمتر از روش کامپایلری است.
زبان طبیعی1
زبان طبیعی گونهای از زبانهای سطحبالای نسل چهارم است که برای رفع محدودیتهای زبانهای رویهای در اواخر دههٔ ۱۹۷۰ معرفی شد. این زبانها غیررویهایاند؛ به این معنا که کاربر یا برنامهنویس به رایانه میگوید چه کاری باید انجام شود نه اینکه چگونه انجام شود. علت نامگذاری آن به «طبیعی» این است که دستورها و نحو آن بسیار به گفتار روزمرهٔ انسان نزدیک است و درک و نگارش آن برای کاربر سادهتر است. زبانهای طبیعی طیف وسیعی از نرمافزارها را شامل میشوند که توان تصمیمیارانهٔ بالا و سهولت استفاده دارند. این زبانها به گونهای طراحی شدهاند که با حداقل آموزش قابل یادگیری باشند و بتوانند تمامی مراحل حل مسئله را پشتیبانی کنند.
زبان جستجوی دیتا2
زبان جستجوی داده یکی از گونههای مهم زبانهای نسل چهارم است که برای استخراج یا گزارشگیری از دادههای پایگاه داده بدون نیاز به برنامهنویسی پیچیده به کار میرود. با استفاده از این زبانها میتوان به راحتی گزارشهای ویژهای را از محتویات پایگاه داده ایجاد کرد، بیآنکه لازم باشد کاربر برنامهای بنویسد. زبان جستجوی داده ابزاری است که مدیران و کاربران را قادر میسازد دادههای موجود را بر اساس نیاز خود بازیابی، فیلتر، و خلاصهسازی کنند. چنین زبانی نمونهای از تعامل مستقیم میان کاربر و دادههاست که از قدرت تصمیمگیری بالایی برخوردار بوده و در عین حال کاربرپسند است.
زبان مدلسازی
زبانهای مدلسازی برای ایجاد نمایشهای انتزاعی از سیستمها استفاده میشوند. این نمایشها به طراحان و توسعهدهندگان کمک میکنند تا سیستم را درک، تجزیه و تحلیل و مستند کنند. این زبانها معمولاً از نمودارها، دیاگرامها و قواعد خاصی برای تعریف ساختار و رفتار سیستم استفاده میکنند.
| زبان مدلسازی | کاربرد اصلی | مثال |
|---|---|---|
| UML3 | مدلسازی نرمافزار و سیستمهای پیچیده | نمودار کلاس برای نمایش ساختار یک سیستم، نمودار فعالیت برای نمایش جریان کار |
| BPMN4 | مدلسازی فرآیندهای کسب و کار | نمایش مراحل یک فرآیند فروش، از دریافت سفارش تا ارسال کالا |
| SysML5 | مدلسازی سیستمهای مهندسی، سختافزار و نرمافزار | طراحی معماری یک خودرو، مدلسازی سیستم کنترل یک هواپیما |
| ERD6 | مدلسازی پایگاه داده | نمایش جداول، فیلدها و روابط بین آنها در یک پایگاه داده |
| Statechart | مدلسازی رفتار سیستم در پاسخ به رویدادها | نمایش حالتهای مختلف یک دستگاه و انتقال بین آنها |
زبان نشانهگذاری
زبان نشانهگذاری مجموعهای از قواعد است که برای افزودن اطلاعات ساختاری و معنایی به متن استفاده میشود. این زبانها خود متن را نمایش نمیدهند، بلکه به نرمافزار (مانند مرورگر وب یا پردازشگر متن) میگویند که چگونه متن را نمایش دهد. به عبارت دیگر، آنها بر روی نحوه نمایش محتوا تمرکز دارند، نه خود محتوا.
| زبان | کاربرد اصلی | مثال |
|---|---|---|
| HTML | ساختاربندی صفحات وب | <p>این یک پاراگراف.</p> |
| XML | انتقال و ذخیرهی داده | <book><title>کتاب من</title></book> |
| LaTeX | فرمولنویسی و صفحهآرایی | $E=mc^2$ نتیجه: \(E=mc^2\) |
| Markdown | فرمتبندی سادهی متن | # عنوان اصلی, **متن پررنگ** |
انواع نرمافزار
نرمافزارهای رایانهای به طور کلی به دو دستهٔ نرمافزارهای سیستمی و نرمافزارهای کاربردی تقسیم میشوند. نرمافزارهای سیستمی وظایف مربوط به عملکرد و مدیریت رایانه را انجام میدهند، در حالی که نرمافزارهای کاربردی برای انجام فعالیتها و نیازهای کاربران به کار میروند.
نرمافزار سیستمی
نرمافزار سیستمی نرمافزار سیستمی مجموعهای از برنامههاست که مدیریت منابع رایانه و کنترل عملکرد کلی سیستم را بر عهده دارد و بستر لازم برای اجرای نرمافزارهای کاربردی را فراهم میکند. این نرمافزار واسطهای میان کاربر، برنامهها و سختافزار ایجاد کرده و هماهنگی لازم میان اجزای مختلف سیستم را برقرار میسازد. نرمافزار سیستمی به سه دستهٔ اصلی تقسیم میشود: نرمافزار کنترل سیستم، نرمافزار پشتیبانی سیستم و نرمافزار توسعهٔ سیستم.
-
نرمافزار کنترل سیستم وظیفهٔ نظارت، هماهنگی و مدیریت منابع رایانه را بر عهده دارد. مهمترین جزء این دسته، سیستم عامل است. سیستم عامل اجرای برنامهها را مدیریت میکند و نقش واسط میان کاربر، نرمافزارهای کاربردی و سختافزار را ایفا مینماید. سیستم عامل مجموعهای از وظایف اساسی را انجام میدهد که مهمترین آنها عبارتاند از:
- بارگذاری و اجرای برنامهها در حافظهٔ اصلی
- مدیریت دستگاههای ورودی و خروجی و افزایش کارایی آنها
- ایجاد، نگهداری و مدیریت فایلها
- تخصیص و آزادسازی حافظه برای برنامههای مختلف
- تشخیص و مدیریت خطاهای سیستم
- تخصیص منابعی مانند پردازنده، حافظه و تجهیزات جانبی
- نظارت بر نحوهٔ استفاده از منابع
- رفع تعارض میان برنامهها و تعیین اولویت اجرا
-
نرمافزار پشتیبانی سیستم شامل برنامههایی است که اجرای روان عملیات رایانه را تضمین میکنند. این نرمافزارها ابزارهایی مانند مدیریت دیسک، بازیابی فایلهای آسیبدیده، تبدیل قالب دادهها، پشتیبانگیری از اطلاعات و ارائهٔ راهنمای آنلاین را فراهم میکنند. همچنین نرمافزارهای مدیریت پایگاه داده، نرمافزارهای امنیتی و برنامههای خدمات برنامهنویسی نیز در این دسته قرار میگیرند.
-
نرمافزار توسعهٔ سیستم برای طراحی و پیادهسازی سیستمهای اطلاعاتی جدید به کار میرود. این دسته شامل ابزارهای مهندسی نرمافزار و محیطهایی است که به تحلیلگران و برنامهنویسان کمک میکند سیستمهای پیچیده را طراحی، آزمایش و پیادهسازی کنند. برخی از این ابزارها امکان ایجاد نمونهٔ اولیهٔ سیستم و توسعهٔ سیستمهای پشتیبان تصمیم و سیستمهای خبره را فراهم میکنند.
نرمافزار کاربردی
- نرمافزارهای عمومی: برای کارهای روزمره مانند حقوق و دستمزد، مدیریت موجودی و حسابداری طراحی شدهاند مانند نرمافزارهای آفیس.
- نرمافزارهای اختصاصی: برای نیازهای خاص یا سفارشیسازیشده بهکار میروند؛ به عنوان مثال نرمافزارهای لجستیک که جریان کالا و خدمات را بهصورت کارآمد مدیریت کرده و هزینهها و زمان انتقال را کاهش میدهند.