رایانه‌های نسل دوم

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






در فاصله زمانی سال‌های ۱۹۵۸ تا ۱۹۶۴ توسط شرکت‌های کامپیوتری ان‌سی‌آر٬ ای‌بی‌ام و سی‌دی‌سی رایانه‌های مختلف الکترونیک ساخته شدند و عرضه شدند و در سال ۱۹۶۳ اولین مینی رایانه بنام پی‌دی‌وی ۸ توسط شرکت دک معرفی گردید.

انقلاب میکروالکترونیک‌ها باعث شد مدارهای مجتمع که به اندازهٔ ناخن انگشت شست شما باشند جای آن سیم کشی‌های دستی را بگیرد.
اولین سود مدارهای مجتمع ترانزیستورها نیستند بلکه کوچکی آنها هست چرا که ترانزیستورها فایدهٔ تعدادی آنها است و بیشتر از میلیون‌ها ترانزیستور می‌تواند تولید شود و به فرایندهای ماشینی دستگاه مرتبط شود تمام عناصر بر روی یک مدار مجتمع ساخته شده‌اند همزمان در طریق شماره کوچک (شاید ۱۲) از پوشانه‌های بصری که هندسهٔ هر لایه را تعریف می‌کند. این‌ها سرعت پردازش و ساختن کامپیوترها را افزایش می‌دهد واز این جهت هزینهٔ آنها هم کاسته شد همان گونه که دستگاه چاپ یوهانس گوتنبرگ ساختن کتاب‌هایش را سرعت داد و بدین وسیله آنها را برای عموم قابل خرید کرد

کامپیوتر ای بی ام استرچ سال ۱۹۵۹ درازای ۳۳ فوتی را برای نگاه داشتن ۱۵۰۰۰۰ ترانزیستور داخلش را لازم داشت . این ترانزیستورها به طور شگفت انگیزی کوچک تر از لامپ‌های خلا هستند . اما آنها عناصر منحصر به فردی بودند که نیاز به اسمبلی منحصر به فردی داشت در اوایل دهه ۱۹۸۰ این ترانزیستورهای زیاد توانست به طور هم زمان بر روی یک مدار مجتمع ساخته شود امروزه کامپیوترهای پنتیوم ۴ شامل ۴۲۰۰۰۰۰۰ ترانزیستور برروی یک مدار مجتمع به اندازهٔ یک ناخن شست است .






رایانه‌های نسل سوم

برای ساختن کامپیوترهای سریعتر و قویتر کوشش‌ها همچنان ادامه داشت تا در اوایل ۱۹۶۰ اولین کامپیوتر نسل سوم (Third Generation) به بازار عرضه شد. این کامپیوتر از سری IBM ۳۶۰ بود که برای ساختن آن ۵ میلیارد دلار سرمایه گذاری شد که بزرگترین پروژه مالی بخش خصوصی تا آن تاریخ به شمار می‌رفت.این کامپیوتر که مدل‌های گوناگونی از نظر ظرفیت و سرعت کار داشت، در هر دو امور تجاری و علمی قابل استفاده بود.

جدیدترین تحول در تکامل کامپیوترها، ساختن وسایل ضبط اطلاعات با قابلیت دسترسی مستقیم (Direct Access Device) در این نسل بود.به این ترتیب کاربران توانستند به هر یک از اجزا اطلاعات ذخیره شده در یک مجموعه عظیم اطلاعاتی، در کسری از ثانیه دسترسی پیدا کنند.علاوه بر آن در این نسل از کامپیوترها، سعی شده که قطعات مدارها را هرچه کوچکتر و با حجم کمتر بسازند و بدین ترتیب مدارهای مجتمع (Integrated Circuits(IC)) به وجود آمدند.ویژگی دیگر رایانه‌های نسل سوم امکان استفاده همزمان چندین کاربر از یک رایانه بود. این رایانه‌ها بر خلاف نسل قبلی که فقط در یکی از دو حیط علمی و غیرعلمی توانایی کار داشتند، توانایی کار در هر دو محیط را دارا بودند.
سرعت عملیان در رایانه‌های نسل سوم بسیار افزایش یافت. عملیات حسابی و منطقی در این رایانه‌ها در مایکرو ثانیه(یک میلیونیم ثانیه) و حتی نانو ثانیه (یک بیلیونیم ثانیه) انجام می‌شد. در ایران، از زمان ارایه کامپیوترهای نسل سوم کاربرد کامپیوتر به سرعت توسعه یافت و مؤسسات مختلف تعدادی از آنها را نصب کردند.

بارزترین ویژگی رایانه‌های نسل سوم استفاده از مدارهای مجتمع یا آی سی در قسمت‌های مختلف ساختمان رایانه بود. این مدارها که از حدود ۱۰۰ عنصر منطقی تشکیل شده بود و در هر عنصر منطقی حدود ۱۰ عنصر الکترونیکی نظیر ترانزیستور و دیود بکار رفته بود، به روش خاصی در سطحی به اندازه یک سانتیمتر مربع تجمع پیدا می‌کردند و بدین لحاظ اندازه و حجم رایانه‌های نسل سوم در برابر با رایانه‌های نسل دوم کاهش یافتند. ظرفیت حافظه در رایانه‌های نسل سوم به چندین برابر قبل افزایش یافت.

در فاصله زمانی سال‌های ۱۹۶۴ تا ۱۹۷۱ شرکت‌های از قبیل آی‌بی‌ام٬ جنرال الکتریک٬ باروز٬ یونیواک٬ آرسی‌ای، ان‌سی‌آر، سی‌دی‌سی٬ هانیول و تعداد زیادی از شرکت‌های کوچکتر ارائه گردید. بویژه شرکت دک با تولید مینی رایانه‌های پی‌دی‌پی ۱۰ و پی‌دی‌پی ۱۱ راه را برای پیشرفت سریع پدیده مینی رایانه‌ها باز کرد و هزاران مینی رایانه به بازار عرضه کرد.






رایانه‌های نسل چهارم

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

با معرفی اولین ریزپردازنده به نام ۴۰۰۴ در سال ۱۹۷۱ توسط شرکت اینتل و عرضه ریزوردازنده ۸ بیتی ۸۰۸ در اواخر همان سال و ریزپردازنده ۸۰۸۰ در سال ۱۹۷۴ توسط همان شرکت، زمینه کاری جهت ساختن رایانه‌های شخصی (PC) فراهم گردید. با معرفی ریز رایانه سلب ۸-اینچ در سال ۱۹۷۲ توسط شرکت سلبی و ریز رایانه التایر ۸۸۰ در سال ۱۹۷۵ توسط شرکت میتس و ساخت ریزپردازنده‌های مختلف توسط شرکت‌های اینتل٬ زیلاک٬ موتورولا و ام‌اُ‌اس تکنالوژی، فرایند ساخت و معرفی ریزرایانه‌ها روز به روز گسترش یافت و توسط شرکت‌های مختلف از آن جمله اپل(Apple)٬ آتاری(Atari)٬ کامودر(commodore) و آی‌بی‌ام(IBM) ریز رایانه‌های گوناگونی عرضه گردید.

در دهه ۸۰ میلادی در زمینه رایانه‌های بزرگ و مینی رایانه‌ها شرکت‌های مختلف از آن جمله آی‌بی‌ام ٬سی‌دی‌سی ٬دک و باروز رایانه‌های بسیار پیشرفته‌ای ساختند و به بازار عرضه نمودند.
در همین دهه ابر رایانه‌های پیشرفته‌ای توسط شرکت‌های مختلف از جمله کری آی‌بی‌ام، سی‌دی‌سی٬ فوجیتسو ٬ هیتاچی و نک ساخته شدند.






رایانه‌های نسل پنجم

در رایانه‌های نسل پنجم که از سال ۱۹۹۰ به بعد هستند اندازهٔ تراشه‌ها خیلی کوچکتر شده و از پردازنده‌های با تراکم خیلی زیاد در آنها استفاده می‌شود. در این نسل از رایانه بجای معماری ترتیبی از معماری موازی بهره گرفته شده. کشورهای پیشرفتهٔ زیادی مانند آمریکا و ژاپن پژوهشهای زیادی برای ساخت رایانه‌های بسیار پیشرفته در گذشته و حال انجام داده‌اند.
ابر رایانههای در دست ساخت به نام سی ام ۵ که از ۳۲ تا ۱۶۰۰۰ پردازنده بصورت موازی بهره خواهند گرفت سرعت رایانه را تا دو برابر ترافلاپس (تریلیون عملیات اعشاری در ثانیه) خواهند رساند.

نسل پنجم رایانه‌ها که ایده آن اولین بار توسط ژاپنی‌ها در سال ۱۹۸۰ مطرح شد، ساختن کامپیوترهایی را پیشنهاد می‌کند که بتوانند بیاموزند، استنباط کنند و تصمیم بگیرند و بطور کلی رفتاری داشته باشند که معمولاً در حوزه منطق و استدلال خاص انسان قرار دارد و به عبارت ساده تر هوشمند باشند. در این نسل از مدارهای مجتمع با تراکم فوق العاده بالا استفاده می‌شود.

بعد از موفقیت کامل بشر در ساخت کامپیوترهای هوشمند، ایده بعدی انسان طراحی کامپیوتری خواهد بود که مدارهای داخلی آن کپی برداری عینی از مغز آدمی است.






با توجه به تحولات در تغییر نسل‌های کامپیوتری، در نسل بعد باید منتظر تغییرات زیر باشیم:

کاهش حجم مدارها تا حد مینیاتوری شدن و نیز کاهش توان مصرفی لازم
افزایش پیچیدگی مدارها
افزایش کارایی و بهبود کیفیت عملکرد مدارها
افزایش سرعت عملکرد مدارها







مشخصات کلی

پیشرفت‌های سخت‌افزاری

الف)مینیاتوری کردن(تقلیل حجم دستگاه‌ها و اجزای آنها)
ب)افزایش ظرفیت حافظه به چندین برابر قبل
ج)استفاده از دستگاه‌های واسطه(Media)، با قابلیت دسترسی مستقیم
د)قدرت ارتباط با نقاط دور و متعدد







پیشرفت‌های نرم‌افزاری

الف)هماهنگی بیشتر با سخت‌افزار
ب)هماهنگی بیشتر با سیستم‌عامل
ج)پیشرفت در زبانهای برنامه نویسی و به کارگیری زبان‌های سطح بال







عملیات و بهره برداری

الف)استفاده از روش‌های پردازش مستقیم(on-line) و بازده فوری(real time)
ب)اجرای همزمان چند برنامه با یکدیگر

تقسیم‌بندی و تفکیک نسل‌های کامپیوتری تا قبل از نسل چهارم(Forth Generation)، به لحاظ تغییرات عمده در پیشرفت و تکامل کامپیوتر در هر نسل، به سهولت صورت گرفت. دراوایل سال ۱۹۷۰ تکنیکهای جدیدتری در ساخت و بهره گیری از کامپیوترها به کار برده شدکه بسیاری از دست اندرکاران آن را نسل چهارم نامیدند. مهمترین تغییرات در سخت‌افزار کامپیوترهای نسل چهارم، به کارگرفتن مدارهای مجتمع با تراکم زیاد و تراکم خیلی زیاد است.

در نسل سوم از تراکم SSI(Small Scale Integration) و (Scale Integration Medium)MSI یعنی تراکم کم و تراکم متوسط بهره گرفتند. ولی درنسل چهارم از تراکم (Scale Integration Large) LSI،( Scale Integration Very Large) VLSI و (Ultra Large Scale Integration)ULSI یعنی تراکم بالا، خیلی بالا وفوق العاده بالا بهره می‌گیرند. نسل چهارم همچنین از حافظه نیمه هادی (Semiconductor) ومیکرو پروسسور (Microprocessor)، سیستم‌های محاوره‌ای (Interactive System)، پردازش مستقیم و شبکه‌های کامپیوتری (Computer Network) بهره جسته‌است.

توسعه و پیشرفت سخت‌افزار کامپیوترهای فعلی، در مقایسه با نسلهای قبلی با بررسی چند عامل نظیر سرعت، اندازه، هزینه و ظرفیت حافظه روشن می‌گردد. در کامپیوترهای اولیه از لامپ خلا استفاده می‌شد و به همین جهت حجم و وزن زیادی داشتند (کامپیوتر انیاک ۳۰ تن وزن داشت) به کار بردن ترانزیستور در نسل دوم به طور قابل ملاحظه‌ای، اندازه کامپیوترها را کاهش داد. در یک فوت مربع از کامپیوترهای نسل اول ۶۰۰۰ مؤلفه وجود داشت که با بکاربردن ترانزیستور۱۰۰۰۰۰ مدار درهمان حجم کار می‌کرد. در کامپیوترهای فعلی که در آنها میکروالکترونیک و مدارهای مجتمع با تراکم زیاد به کار می‌رود بیش از ۱۰ میلیون مدار در یک فوت مربع کار می‌کند.





فناوری

فناوری یا تکنولوژی (به فرانسوی: technologie) شگردها وبه کاربردن ابزارها، دستگاه‌ها، ماده‌ها و فرایندهایی گره گشای دشواری‌های انسان است. فناوری فعالیتی انسانی است و از همین رو، از دانش و از مهندسی دیرینه تر است.

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







اصول علمی و اکتشافات
فرایندهای صنعتی موجود و پیشین، منابع نیرو و مواد، و روش‌های انتقال و ارتباط، که تصور می‌شود به تولید یا بهبود کالالها و خدمات مربوط باشند.

مفهوم تکنولوژی به صورت دانشی که به ساختن و بکار بردن ابزار و وسائل مربوط می‌شود، و دانش استفاده از مواد خام (به استثنای خوراک)
«نظام تکنولوژیک» یعنی «ابزار مادی و مجموعه‌ای از دانش» که «در اختیار افراد سهیم در یک اقتصاد قرار دارد».
کاربرد صنعتی نتایج علم که کار فن شناسان و مهندسان است و «علم» یا «علم محض» اختصاص داده شده‌است.
دلالت دارد بر فعالیت عملی در راه بهبود روش‌ها و وسائل صنعتی قدیمی بدون ارجاع به اصول علمی، یعنی گرایش به «اختراع اشیاء و فرایندهای جدید یا ایجاد بهبود در اشیاء و فرایندهای قدیمی تر.. و شاید اکثر اختراعات فنی و ترقیات بی هیچ نوع کمکی از سوی علم محض صورت گرفته‌است.
دلالت دارد بر مجموعه‌ای از دانش و مهارتی که مبشر اختراعات و ترقیات فنی بوده یا بالقوه قابل استفادهٔ آنها باشد.
واژه فناوری اغلب به نوآوری‌ها و نوابزارهایی اشاره دارد که از اصول و فرایندهای تازه یافتهٔ دانشی بهره می‌گیرند. از این رو مقولهٔ فناوری ممکن است در بدو مواجهه عجیب جلوه کند. لیکن چنین نیست. حتی نوآوری‌های بسیار کهن مانند چرخ هم نمونه‌هایی از فناوری بوده و به شمار می‌روند. از مصداقهای فناوری نزد قدما فوت کوزه‌گری بوده‌است.
فناوری همان تسلط و تبحر انجام کار است، فناوری توانایی انجام کار در تمامی سطوح و زمینه‌ها است. یعنی طراحی، ساخت، استفاده، تعمیر و نگهداری و تحقیق و توسعه و غیره می‌باشد.
امروزه بسیاری از فناوری‌ها در نتیجه پژوهش به دست می‌آیند و پژوهشگاه‌های فناوری زیادی در سراسر جهان بر پا شده‌است. تکنولوژی به معنای اصلی حداکثر استفاده از کمترین امکانات موجود می‌باشد. در کتاب مبانی و مدیریت فناوری اطلاعات آمده‌است:
فناوری یا همان تکنولوژی، که از دو لغت یونانی techne و logia تشکیل شده‌است که اولی به معنی هنر و دومی به معنی علم و دانش است.
فناوری به معنی کاربرد منظم معلومات علمی و دیگر آگاهی‌های نظام‌یافته برای انجام وظایف علمی است.
فناوری را می‌توان کلیهٔ دانش‌ها، فرایندها، ابزارها، روش‌ها و سیستم‌های به کار رفته در ساخت محصولات و ارائهٔ خدمات تعریف کرد.
فناوری کاربرد عملی دانش و ابزاری برای کمک به تلاش انسان است.
فناوری نوآورد (cutting-edge) به فناوری‌ای گفته می‌شود که به تازگی در بازار آمده و قابلیت‌های نوین و نوآورانه‌ای ارائه می‌کند.
یونیدو فناوری را کاربرد علوم در صنایع با استفاده از رویه‌ها و مطالعات منظم می‌داند
فرهنگ لاروس، فناوری را مطالعهٔ ابزارها، شیوه‌ها و روش‌های مورد انتظار و مورد استفاده در حوزه‌ها گوناگون صنعت می‌داند.
فناوری مجموعه‌ای از فرایندها، روش‌ها، فنون، ابزار، تجهیزات، ماشین‌آلات و مهارت‌هایی است که توسط آن‌ها کالایی ساخته شده و یا خدمتی ارائه می‌گردد.
فناوری عبارت است از کاربرد علوم در صنایع با استفاده از رویه‌ها و مطالعات منظم و جهت‌دار.
علام با مطالعهٔ طبیعت به بررسی رفتارهای طبیعی و فیزیکی پرداخته و به دنبال کشف پدیده‌ها است و در حالی‌که فناوری با به کارگیری ایده‌ها و دستاوردهای علمی، خدمات و کالای مورد نیاز بشر را ارائه می‌کند.
فناوری عامل تبدیل منابع طبیعی، سرمایه و نیروی انسانی به کالا و خدمات است که عناصر متشکله و یا ارکان آن عبارت است از: سخت‌افزار، انسان افزار یا نیروی انسانی متخصص، فناوری متبلور در اسناد و مدارک یا اطلاعات، سازمان‌ها یا نهادافزار.
تکنولوژی یا فناوری به معنای کاربرد منظم معلومات علمی و دیگر آگاهی‌های نظام یافته برای انجام وظایف عملی است. به بیان ساده تر، تکنولوژی کاربرد عملی دانش و ابزاری برای کمک به تلاش انسان است و تأثیر بسزایی بر توسعه جوامع بشری دارد.







تاثیر بر زندگی

یک پژوهش میدانی در مورد استفاده از نمایش‌گرهای الکترونیکی نشان می‌دهد که از هر ده نفر، شش نفر احساس می‌کنند که روزانه‌ وقتشان را بیش از حد در جلوی این دستگاه‌ها می‌گذرانند.آنها می‌گویند می‌خواهند یک زندگی ساده‌تر و آهسته‌تر داشته باشند.این پژوهش همچنین رویکرد فناوری به حیطه فردی، به سنت و جهانی‌شدن را بررسی کرده است. سه چهارم افراد شرکت‌کننده گفته‌اند که فکر می‌کنند جهان با سرعتی بیش از حد برای آنها در حال تغییر است.






تاریخ فناوری
تاریخ فناوری به بیان سیر زمانی اختراع و ساخت ابزار و وسائل مورد نیاز در زندگی انسان‌ها و جوامع بشری مبادرت می‌کند.




فناوری اطلاعات

فناوری اطلاعات (فا) (به انگلیسی: Information Technology یا IT)، همان طور که به‌وسیله انجمن فناوری اطلاعات آمریکا (ITAA‎) تعریف شده‌است، «به مطالعه، طراحی، توسعه، پیاده‌سازی، پشتیبانی یا مدیریت سیستم‌های اطلاعاتی مبتنی بر رایانه، خصوصا برنامه‌های نرم‌افزاری و سخت‌افزار رایانه می‌پردازد». به طور کوتاه، فناوری اطلاعات با مسائلی مانند استفاده از رایانه‌های الکترونیکی و نرم‌افزار سروکار دارد تا تبدیل، ذخیره، حفاظت، پردازش، انتقال و بازیابی اطلاعات به شکلی مطمئن و امن انجام پذیرد.

اخیرا تغییر اندکی در این عبارت داده می‌شود تا این اصطلاح به طور روشن دایره ارتباطات مخابراتی را نیز شامل گردد. بنابراین عده‌ای بیشتر مایلند تا عبارت «فناوری اطلاعات و ارتباطات» (فاوا) (Information and Communications Technology) یا به اختصار ICT را به کار برند.






عناصر کاملا اصلی

فناوری اطلاعات متشکل از چهار عنصر اساسی انسان، ساز و کار، ابزار، ساختار است، به طوری که در این فناوری، اطلاعات از طریق زنجیره ارزشی که از بهم پیوستن این عناصر ایجاد می‌شود جریان یافته و پیوسته تعالی و تکامل سازمان را فراراه خود قرار می‌دهد:

انسان: منابع انسانی، مفاهیم و اندیشه، نوآوری
ساز و کار: قوانین، مقررات و روشها، سازوکارهای بهبود و رشد، سازوکارهای ارزش گذاری و مالی
ابزار: نرم‌افزار، سخت‌افزار، شبکه و ارتباطات
ساختار: سازمانی، فراسازمانی مرتبط، جهانی

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






زمینه‌های IT

امروزه معنای اصطلاح «فناوری اطلاعات» بسیار گسترده شده‌است و بسیاری از جنبه‌های محاسباتی و فناوری را دربر می‌گیرد و نسبت به گذشته شناخت این اصطلاح آسان‌تر شده‌است. چتر فناوری اطلاعات تقریباً بزرگ است و بسیاری از زمینه‌ها را پوشش می‌دهد. متخصص فناوری اطلاعات وظایف گوناگونی دارد، از نصب برنامه‌های کاربردی تا طراحی شبکه‌های پیچیده رایانه‌ای و پایگاه داده‌های اطلاعاتی. چند نمونه از زمینه‌های فعالیت متخصصین فناوری اطلاعات می‌تواند موارد زیر باشند: فناوری اطلاعات و علوم کتابداری و اطلاع رسانی ارتباط تنگاتنگی با هم دارند. Information Technology در ایران متولی اصلی فناوری اطلاعات و ارتباطات را وزارت ارتباطات و فناوری اطلاعات می‌دانند.






ابزارهای نرم‌افزاری مدیریت خدمات فناوری اطلاعات

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






فناوری اطلاعات در دانشگاه‌های ایران

در بیشتر کشورها این دانش در دانشگاه‌ها با عنوان رشته «فناوری اطلاعات» (Information Technology) شناخته می‌شود، در حالیکه در ایران بر اساس تصمیم سازمان آموزش عالی کشور عنوان «مهندسی فناوری اطلاعات» برای این رشته بکار برده می‌شود و رشته‌ای نیز تحت عنوان مهندسی فناوری اطلاعات و ارتباطات (ICT) به پیشنهاد وزارت ارتباطات و فناوری اطلاعات اخیراً در دانشگاههای ایران تدریس می‌شود همچنین رشته‌ای با عنوان فقط «فناوری اطلاعات» وجود ندارد. همچنین رشتهٔ میان‌رشته‌ای دیگری با عنوان رشته «مدیریت فناوری اطلاعات» در دانشگاه‌های ایران و دیگر کشورها وجود دارد که از ترکیب دو رشته "مدیریت" و «فناوری اطلاعات» به وجود آمده‌است. رشته مهندسی فناوری اطلاعات به چگونگی سازماندهی و ساماندهی داده‌ها می‌پردازد و رشته مدیریت فناوری اطلاعات به چگونگی تدوین سیستم و استفاده از داده‌ها می‌پردازد. هرکدام از این رشته‌ها دارای گرایش‌های ویژه خود هستند که در دانشگاه‌های ایران به شرح زیرند:







مهندسی فناوری اطلاعات:

تجارت الکترونیکی
سیستم‌های چندرسانه‌ای
مدیریت سیستم‌های اطلاعاتی
امنیت اطلاعات
شبکه‌های کامپیوتری
مهندسی فناوری اطلاعات (IT)







علم اطلاعات ودانش شناسی:

مدیریت اطلاعات
بازیابی اطلاعات ودانش
علم سنجی
اقتصاد و بازاریابی اطلاعات
مدیریت دانش







گرایش‌های رشته مدیریت فناوری اطلاعات:

مدیریت منابع اطلاعاتی
سیستم‌های اطلاعات پیشرفته
نظام کیفیت فراگیر
کسب و کار الکترونیک (کارشناسی ارشد)
مدیریت دانش (کارشناسی ارشد)
مدیریت رسانه (کارشناسی ارشد)
فناوری اطلاعات پزشکی (کاربرد فناوری اطلاعات در پزشکی)







گرایش‌های رشته مهندسی فناوری اطلاعات و ارتباطات:

مدیریت شبکه
دیتا و امنیت شبکه
ارتباطات سیار
مدیریت ارتباطات و فناوری اطلاعات
سیستمهای چند رسانه‌ای







دروس تخصصی مهندسی فناوری اطلاعات

درس‌های تخصصی کارشناسی مهندسی فناوری اطلاعات عبارتند از:

مبانی فناوری اطلاعات
مهندسی فناوری اطلاعات
تجارت الکترونیکی
مدیریت و کنترل پروژه‌های فناوری اطلاعات
برنامه‌ریزی استراتژیک فناوری اطلاعات
آموزش الکترونیکی
محیط‌های چند رسانه‌ای
پروژه فناوری اطلاعات
کارآموزی IT
گرافیک کامپیوتری
ریاضی







فناوری اطلاعات در ایران

در ایران همیشه بحث بر سر متولی اصلی فناوری اطلاعات وجود داشت تا با تغییر نام وزارت پست و تلگراف و تلفن در سال ۱۳۸۲ به وزارت ارتباطات و فناوری اطلاعات و مهمتر از آن ایجاد معاونت فناوری اطلاعات وزارت ارتباطات، خود را متولی اصلی فناوری اطلاعات در کشور مطرح ساخت. از این سال به بعد توسعه همه‌جانبه‌ای در این وزارتخانه صورت گرفت تا شرکتها و مراکز متعددی زیر مجموعه آن تشکل یافتند و هر یک از آنها با توانمندیها و فعالیتهای بسیار، تحولات فراوانی را شکل داده و باعث گسترش وضع ارتباطی کشور در بخش‌های پست و مخابرات شدند. معاونت فناوری اطلاعات به منظور تدوین راهبردها، سیاستها، برنامه‌های بلند مدت و اهداف کیفی و کمی بخش توسعه فناوری اطلاعات و ارائه آن به شورای عالی فناوری اطلاعات معاونتی تحت عنوان معاونت فناوری اطلاعات در ساختار سازمانی وزارت ارتباطات و فناوری اطلاعات در نظر گرفته شد. و کم‌کم سازمانهایی مثل سازمان فناوری اطلاعات و ارتباطات زیرساخت نیز در این رابطه شکل گرفتند.





مدیریت فناوری اطلاعات

مدیریت فناوری اطلاعات نظم و انضباطی است که در آن، تمام منابع فناوری، مطابق با نیازها و اولویت‌های خود، اداره می‌شود. این منابع ممکن است شامل سرمایه گذاری‌های محسوس مانند سخت افزار کامپیوتر، نرم‌افزار، داده‌ها، شبکه و امکانات مرکز داده، که توسط کارکنان استخدام شده اش از آن منابع نگهداری می‌شود باشد. مسئولیت مدیریت فناوری اطلاعات در یک شرکت شامل بسیاری از توابع اساسی مدیریت‌هایی، مانند بودجه ، نیروی انسانی و سازماندهی و کنترل می‌باشد که، همراه با موارد که به تکنولوژی مربوط می‌باشد، مانند مدیریت تغییر، طراحی نرم‌افزار ، برنامه ریزی شبکه، پشتیبانی فنی و غیره می‌باشد.






مقدمه

مدیریت فناوری اطلاعات روندی است که به موجب آن تمام منابع مربوط به فناوری اطلاعات با توجه به اولویت‌ها و نیازهای سازمان اداره می‌شود. این مدیریت، شامل منابع محسوس مانند شبکه سخت افزار، کامپیوتر و مردم، و همچنین به عنوان منابع نامشهود مانند نرم‌افزار و داده‌ها می‌باشد. هدف اصلی مدیریت فناوری اطلاعات برای تولید ارزش از طریق استفاده از فناوری می‌باشد. برای رسیدن به این هدف، استراتژی‌های کسب و کار و فناوری باید هم تراز شوند.

مدیریت فناوری اطلاعات از سیستم‌های اطلاعات مدیریت متفاوت است. و در آن اشاره می‌شود به روشهای مدیریتی که به اتوماسیون یا پشتیبانی از تصمیم گیری انسانی، گره خورده است. مدیریت فناوری اطلاعات اشاره به فعالیتهای مدیران وابسته به فناوری اطلاعات در سازمانها می‌کند.سیستم‌های اطلاعات مدیریت عمداتا با ورود قوی به فاز تکنولوژی کسب وکار /سازمان، بر روی جوانب کسب و کار متمرکز شده است.

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

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






زیرساخت فناوری اطلاعات

عبارت زیرساخت فناوری اطلاعات در کتابخانه زیرساخت فناوری اطلاعات به عنوان یک مجموعه ترکیبی از سخت افزار، نرم‌افزار، شبکه، امکانات، و غیره (شامل تمامی تکنولوژی‌های فناوری اطلاعات)، به منظور توسعه، تست، ارائه، نظارت، کنترل یا حمایت از فناوری اطلاعات خدمات تعریف شده است.
فهرست رشته‌های مدیریت فناوری اطلاعات







به طور معمول مفاهیم ذیل می‌باشد:

کسب و کار
اداره امور فناوری اطلاعات
مدیریت مالی فناوری اطلاعات
مدیریت خدمات فناوری اطلاعات
منابع فناوری اطلاعات
مدیریت پیکربندی فناوری اطلاعات







گرایش های مدیریت فناوری اطلاعات

مدیریت فناوری اطلاعات در کشور ایران در چهار گرایش سیستم های اطلاعات پیشرفته ، مدیریت دانش ، کسب و کار الکترونیکی و مدیریت منابع اطلاعاتی موجود بوده و فقط در مقطع کارشناسی ارشد قابل تحصیل می باشد که به همین دلیل اکثر دانشجویان آن فراغ التحصیلان مهندسی نرم‌افزار و آی تی می باشند. لیست گرایش ها و دروس : گرایش ها و دروس مدیریت فناوری اطلاعات
مدیران فناوری اطلاعات

مدیران فناوری اطلاعات با مدیران پروژه اشتراک زیادی دارند، اما تفاوت اصلی آنها این است که یک مدیر فناوری اطلاعات مسئول و پاسخگو برای برنامه‌های در حال پیشرفت خدمات IT است در حالی که مدیر پروژه مسئولیت و پاسخگویی اش محدود به دادن مدت یک پروژه با یک شروع مشخص و پایان تاریخ پروژه، است. اکثر برنامه‌های مدیریت فناوری اطلاعات برای آموزش و توسعه مدیرانی طراحی شده که به طور موثر می‌توانند مدیریت برنامه ریزی، طراحی، انتخاب، پیاده سازی، استفاده، و همگرایی اطلاعات و فناوری ارتباطات را انجام دهند.





امنیت اطلاعات
تعریف امنیت اطلاعات

امنیت اطلاعات یعنی حفاظت اطلاعات و سیستم‌های اطلاعاتی از فعالیت‌های غیرمجاز. این فعالیت‌ها عبارتند از دسترسی، استفاده، افشاء، خواندن، نسخه برداری یا ضبط، خراب کردن، تغییر، دستکاری.

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

امنیت اطلاعات به محرمانگی، یکپارچگی و در دسترس بودن داده‌ها مربوط است بدون در نظر گرفتن فرم اطلاعات اعم از الکترونیکی، چاپ، و یا اشکال دیگر.

امنیت کامپیوتر در حصول اطمینان از در دسترس بودن و عملکرد صحیح سیستم کامپیوتری تمرکز دارد بدون نگرانی از اطلاعاتی که توسط این سیستم کامپیوتری ذخیره یا پردازش می‌شود.

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

برای افراد، امنیت اطلاعات تاثیر معناداری بر حریم خصوصی دارد. البته در فرهنگ‌های مختلف این مفهوم حریم خصوصی تعبیرهای متفاوتی دارد.

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






تاریخچه

از زمانی که نوشتن و تبادل اطلاعات آغاز شد، همه انسانها مخصوصا سران حکومتها و فرماندهان نظامی در پی راهکاری برای محافظت از محرمانه بودن مکاتبات و تشخیص دستکاری آنها بودند. ژولیوس سزار ۵۰ سال قبل از میلاد یک سیستم رمزنگاری مکاتبات ابداع کرد تا از خوانده شدن پیام‌های سری خود توسط دشمن جلوگیری کند حتی اگر پیام به دست دشمن بیافتد. جنگ جهانی دوم باعث پیشرفت چشمگیری در زمینه امنیت اطلاعات گردید و این آغاز کارهای حرفه ای در حوزه امنیت اطلاعات شد. پایان قرن بیستم و سالهای اولیه قرن بیست و یکم شاهد پیشرفتهای سریع در ارتباطات راه دور، سخت افزار، نرم افزار و رمزگذاری داده‌ها بود. در دسترس بودن تجهیزات محاسباتی کوچکتر، قوی تر و ارزان تر پردازش الکترونیکی داده‌ها باعث شد که شرکت‌های کوچک و کاربران خانگی دسترسی بیشتری به آنها داشته باشند. این تجهیزات به سرعت از طریق شبکه‌های کامپیوتر مثل اینترنت به هم متصل شدند.

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






مفاهیم پایه

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






محرمانگی

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

نقض محرمانگی ممکن است اشکال مختلف داشته باشد. مثلا اگر کسی از روی شانه شما اطلاعات محرمانه نمایش داده شده روی صفحه نمایش کامپیوتر شما را بخواند. یا فروش یا سرقت کامپیوتر لپ تاپ حاوی اطلاعات حساس. یا دادن اطلاعات محرمانه از طریق تلفن همه موارد نقض محرمانگی است.






یکپارچه بودن

یکپارچه بودن یعنی جلوگیری از تغییر داده‌ها بطور غیرمجاز و تشخیص تغییر در صورت دستکاری غیر مجاز اطلاعات. یکپارچگی وقتی نقض میشود که اطلاعات در حین انتقال بصورت غیرمجاز تغییر داده میشود. سیستم‌های امنیت اطلاعات به طور معمول علاوه بر محرمانه بودن اطلاعات، یکپارچگی آنرا نیز تضمین میکنند.






قابل دسترس بودن

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






قابلیت عدم انکار انجام عمل

در انتقال اطلاعات و یا انجام عملی روی اطلاعات، گیرنده یا فرستنده و یا عمل کننده روی اطلاعات نباید قادر به انکار عمل خود باشد. مثلا فرستنده یا گیرنده نتواند ارسال یا دریافت پیامی را انکار کند.






اصل بودن

در بسیاری از موارد باید از اصل بودن و درست بودن اطلاعات ارسالی و نیز فرستنده و گیرنده اطلاعات اطمینان حاصل کرد. در بعضی موارد ممکن است اطلاعات رمز شده باشد و دستکاری هم نشده باشد و به خوبی به دست گیرنده برسد ولی ممکن است اطلاعات غلط باشد و یا از گیرنده اصلی نباشد. در این حالت اگر چه محرمانگی، یکپارچگی و در دسترس بودن رعایت شده ولی اصل بودن اطلاعات مهم است.






کنترل دسترسی

برای حراست از اطلاعات، باید دسترسی به اطلاعات کنترل شود. افراد مجاز باید و افراد غیرمجاز نباید توانایی دسترسی داشته باشند. بدین منظور روش‌ها و تکنیک‌های کنترل دسترسی ایجاد شده اند که در اینجا توضیح داده میشوند.

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

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

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

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

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

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

صدور مجوز برای دسترسی به اطلاعات و خدمات کامپیوتری با برقراری سیاست و روش‌های مدیریتی آغاز می شود. سیاست دسترسی تبیین میکند که چه اطلاعات و خدمات کامپیوتری می تواند توسط چه کسی و تحت چه شرایطی دسترسی شود. مکانیسم‌های کنترل دسترسی سپس برای به اجرا درآوردن این سیاست‌ها نصب و تنظیم میشوند.

رویکردهای کنترل دسترسی مختلفی وجود دارند. سه رویکرد شناخته شده وجود دارند که عبارتند از: رویکرد صلاحدیدی، غیرصلاحدیدی و اجباری. در رویکرد صلاحدیدی خالق یا صاحب منابع اطلاعات قابلیت دسترسی به این منابع را تعیین میکند. رویکرد غیر صلاحدیدی تمام کنترل دسترسی متمرکز است و به صلاحدید افراد نیست. در روش اجباری، دسترسی به اطلاعات و یا محروم کردن بسته به طبقه بندی اطلاعات و رتبه فرد خواهان دسترسی دارد.






کنترل امنیت اطلاعات

کنترل امنیت به اقداماتی گفته میشود که منجر به حفاظت، مقابله، پیشگیری و یا به حداقل رساندن خطرات امنیتی است. این اقدامات را میتوان به سه دسته تقسیم کرد.






مدیریتی

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






منطقی

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






فیزیکی

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






کنترل تنظیمات(رمزنگاری)

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

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






حراست فیزیکی

حراست فیزیکی دارایی ها عنصری است که در هر سیستم حسابداری وجود دارد.رایانه ها و اطلاعات و برنامه های موجود در این رایانه ها در حقیقت دارایی های با ارزش سازمان هستند.امنیت فیزیکی می تواند با اعمال کنترل ها ی زیر به دست آید : ۱-در صورت داشتن امکانات مالی استفاده از سیستم امنیتی هشدار دهنده و دوربین مدار بسته ۲-نگهداری و حفاظت و انبار کردن ابزار های حاوی اطلاعات مثل دیسک ها و نوار ها

حراست فیزیکی چیز خوبی است.
به دنبال روشی برای مدیریت امنیت اطلاعات

به دنبال جست‌وجوی روشی به‌جز شیوه‌های سنتی امنیت شبکهٔ IT شرکت آی‌بی‌ام و چند شرکت و سازمان IT شورای جدید حفاظت از اطلاعات را احداث کرده‌اند. هدف از این کار ایجاد روش‌هایی برای مقابله با هکرها و دیگر راه‌های دسترسی غیرقانونی به اطلاعات است. شرکت IBM در گزارشی اعلام کرد که این شورا برای تنظیم طرحی نوین برای محافظت و کنترل در اطلاعات شخصی و سازمانی افراد همهٔ تلاش خود را به کار خواهد گرفت. استوارت مک‌ایروین، مدیر بخش امنیت اطلاعات مشتری IBM می‌گوید: "بیش‌تر شرکت‌ها و همین‌طور افراد حقیقی کنترل و امنیت اطلاعات خود را به عنوان مسئله‌ای فرعی در نظر می‌گیرند و در کنار دیگر فعالیت‌های خود به آن می‌پردازند." به عقیدهٔ اعضای این شورا کنترل و نظارت بر اطلاعات به این معناست که چه‌گونه یک شرکت در کنار ایجاد امکان بهره‌برداری از اطلاعات مجاز، محدودیت‌هایی را برای دست‌رسی و محافظت از بخش‌های مخفی تدارک می‌بیند. اعضای این شورا برآن‌اند تا تعریفی جدید از مدیرت کنترل اطلاعات و سیاست‌های مربوط به آن ارایه دهند. هم‌چنین پیش‌بینی شده است که این راهکارها بخش مهمی را در زیربنای سیاست‌های IT داشته باشد. مک‌آروین می‌گوید: "ایدهٔ اولیهٔ تشکیل این شورا در جلسات سه ماه یک‌بار و غیررسمی شرکت IBM با مشتریان و برخی شرکا شکل گرفت. ما با افرادی گفت‌وگو می‌کردیم که با مشکلات ناامنی اطلاعات به شکل عینی روبه‌رو بودند. برای شرکت IBM و شرکای تجاری آن مشارکت مشتریان عاملی موثر در اصلاح و هماهنگی نرم‌افزارهای امنیتی موجود و طراحی نرم‌افزارهای جدید است. ما سعی می‌کنیم ابزارهای امنیتی IBM را با نیازهای مشتری آشتی دهیم. بسیاری از مشتریان شرکت که اکنون اعضای فعال این شورا را تشکیل داده‌اند، خود طرح پروژه‌های جدید برای کنترل خروج اطلاعات و مدیریت آن‌را تنظیم کرده‌اند. آن‌ها داوطلب شده‌اند که برای اولین بار این روش‌ها را در مورد اطلاعات شخصی خود به کار گیرند. بدیهی است شرایط واقعی در مقایسه با وضعیت آزمایشی نتیجهٔ بهتری دارد. رابرت گاریگ، مدیر ارشد بخش امنیتی بانک مونترآل و یکی از اعضای شورا، معتقد است اکنون زمان آن رسیده که شرکت‌ها روش‌های جدیدی را برای کنترل اطلاعات مشتریان خود به‌کار بگیرند او می‌گوید: "من فکر می‌کنم اکنون زمان مدیریت کنترل اطلاعات فرارسیده است." پیش از این بخش IT تمام حواس خود را بر حفاظت از شبکه‌ها متمرکز کرده بود، اما اکنون اطلاعات به عنوان بخشی مستقل به محدودیت‌هایی برای دستیابی و هم‌چنین روش‌های مدیریتی نوین نیازمند است. این حوزه به کوششی چشمگیر نیازمند است. شرکت‌ها هر روز بیش از پیش با سرقت اطلاعات روبه‌رو هستند. هدف اصلی شورا ایجاد مدیریتی هوشمند و بی‌واسطه است . مسائل مورد توجه این شورا به ترتیب اهمیت عبارت‌اند از: "امنیت، حریم خصوصی افراد، پذیرش قوانین و برطرف کردن سوء تعبیرهایی که در مورد IT و وظایف آن وجود دارد." به نظر این شورا مشکل اصلی ناهماهنگی برنامه‌های بخش IT با فعالیت‌های شرکت و بی‌توجهی به ادغام این راهکارهاست. شرکت آمریکن اکسپرس و بانک جهانی، دانشگاه ایالتی کارولینای شمالی و ... از اعضای این شورا هستند
2:58 pm
کاربرد برنامه نویسی

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





زبان‌های برنامه نویسی با غالب زبان‌های انسانی تفاوتی دارد و آن این است که نیاز به بیان دقیق تر و کامل تری دارد. هنگام استفاده از زبان‌های طبیعی برای ارتباط با دیگر انسان‌ها، نویسندگان و گویندگان می‌توانند مبهم باشند و اشتباهات کوچک داشته باشند، و همچنان انتظار داشته باشند که مخاطب آنها متوجه شده باشد. اگرچه، مجازا، رایانه‌ها "دقیقاً آنچه که به آنها گفته شده را انجام می‌دهند." و نمی‌توانند "بفهمند" که نویسنده دقیقاً چه کدی مد نظر نویسنده بوده‌است] البته امروزه برنامه‌هایی برای انجام این کار تولید شده‌اند و تلاش‌های بسیاری در این زمینه انجام شده ولی هنوز به نتیجهٔ رضایت بخشی نرسیده است[. ترکیب تعریف زبان، یک برنامه، و ورودی برنامه بطور کامل رفتار خروجی را به هنگام اجرای برنامه (در محدوده کنترل آن برنامه) مشخص می‌کند. برنامه‌های یک رایانه ممکن است در یک فرایند ناپیوسته بدون دخالت انسان اجرا شوند، یا یک کاربر ممکن است دستورات را در یک مرحله فعل و انفعال مفسر تایپ کند.در این حالت "دستور"ها همان برنامه‌ها هستند، که اجرای آنها زنجیروار به هم مرتبطند.به زبانی که برای دستور دادن به برنامه‌ای استفاده می‌شود، زبان اسکریپت می‌گویند. بسیاری از زبان‌ها کنار گذاشته شده‌اند، برای رفع نیازهای جدید جایگزین شده‌اند، با برنامه‌های دیگر ترکیب شده‌اند و در نهایت استعمال آنها متوقف شده‌است. با وجود اینکه تلاش‌هایی برای طراحی یک زبان رایانه" کامل" شده‌است که تمام اهداف را تحت پوشش قرار دهد، هیچ یک نتوانستند بطور کلی این جایگاه را پر کنند. نیاز به زبان‌های رایانه‌ای گسترده از گستردگی زمینه‌هایی که زبان‌ها استفاده می‌شوند، ناشی می‌شود:

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

یک سیر رایج در گسترش زبان‌های برنامه نویسی این است که قابلیت حل مسائلی با درجات انتزاعی بالاتری را اضافه کنند. زبان‌های برنامه نویسی اولیه به سخت‌افزار رایانه گره خورده بودند. همانطور که زبان‌های برنامه نویسی جدید گسترش پیدا کرده‌اند، ویژگی‌هایی به برنامه‌ها افزوده شده که به برنامه نویس اجازه دهد که ایده‌هایی که از ترجمه ساده به دستورات سخت‌افزار دورتر هستند نیز استفاده کند. چون برنامه نویس‌ها کمتر به پیچیدگی رایانه محدود شده‌اند، برنامه‌های آنها می‌تواند محاسبات بیشتری با تلاش کمتر از سوی برنامه نویس انجام دهند. این به آنها این امکان را می‌دهد که کارایی بیشتردر واحد زمان داشته باشند. "پردازنده‌های زبان طبیعی" به عنوان راهی برای ازبین بردن نیاز به زبان‌های اختصاصی برنامه نویسی پیشنهاد شده‌اند. هرچند، این هدف دور است و فواید آن قابل بحث است. "ادسگر دیجسترا" موافق بود که استفاده از یک زبان رسمی برای جلوگیری از مقدمه سازی ساختارهای بی معنی واجب است، و زبان برنامه نویسی طبیعی را با عنوان "احمقانه" رد کرد، "آلن پرلیس" نیز مشابها این ایده را رد کرد. مطابق با متدولوژی نامتجانس استفاده شده توسط langpop.com در سال ۲۰۰۸، ۱۲ زبان پرکاربرد عبارتند از: C, C++, C#, Java, JavaScript, Perl, PHP, Python, Ruby, Shell, SQL, and Visual Basic.



المان‌ها
تمام زبان‌های بزنامه نویسی تعدادی بلوک‌های ابتدایی برای توضیح داده و پردازش یا تبدیل آنها(مانند جمع کردن دو عدد با انتخاب یک عضو از یک مجموعه)دارند. این " عناصرابتدایی" بوسیله قوانین معناشناسی و دستوری تعریف می‌شوند که ساختار و معنای مربوطه را توضیح می‌دهند.
دستور(
syntax)

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

دستور زبان برنامه نویسی معمولاً بوسیله ترکیب عبارات معین(برای ساختار لغوی) و فرم توضیح اعمال(برای ساختار گرامری) تعریف می‌شوند. متن زیر یک گرامر ساده، به زبان lisp است: expression ::= atom | list atom ::= number | symbol number ::= [+-]?['۰'-'۹']+ symbol ::= ['A'-'Za'-'z'].* list ::= '(' expression* ')' این گرامر موارد ذیل را مشخص می‌کند:

یک عبارت یا atom است و یا یک لیست
یک atom یا یک عدد است و یا یک سمبل
یک عدد دنباله ناشکسته‌ای از یک یا تعداد بیشتری اعداد دهدهی است، که یک علامت مثبت و یا منفی می‌تواند پیش از آن بیاید.
یک سمبل حرفی است که بعد از هیچ یا تعدادی کاراکتر (جز فاصله) می‌آید.
یک لیست تعدادی پرانتز است که می‌تواند صفر یا چند عبارت در خود داشته باشد.

"۱۲۳۴۵"، "()"، "(a b c۲۳۲ (۱))" مثال‌هایی هستند از دنباله‌های خوش فرم در این گرامر.

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

به عنوان مثال در زبان طبیعی، ممکن نیست به برخی از جملات درست از لحاظ گرامری، معنای خاصی اطلاق کرد و یا ممکن است جمله نادرست باشد:

"ایده‌های بی رنگ سبز با خشم می‌خوابند."از نظر دستوری خوش فرم است ولی معنای مورد قبولی ندارد.
"جان یک مجرد متاهل است." از نظر دستوری درست است، ولی معنایی را بیان می‌کند که نمی‌تواند درست باشد.

این قسمت از زبان C از نظر دستوری درست است، اما دستوری را انجام می‌دهد که از نظرمعنایی تعریف نشده است(چون p یک اشاره گر خالی است، عمل p->real,p->im معنای خاصی ندارد.) complex *p = NULL; complex abs_p = sqrt (p->real * p->real + p->im * p->im);

گرامر مورد نیاز برای مشخص کردن یک زبان برنامه نویسی می‌تواند با جایگاهش در "سلسله مراتب چامسکی" طبقه بندی شود. دستور اغلب زبان‌های برنامه نویسی می‌تواند بوسیله یک گرامر نوع ۲ مشخص گردد، برای مثال، گرامرهای مستقل از متن.




معناشناسی ایستا
معناشناسی ایستا محدودیت‌هایی بر روی ساختار مجاز متن‌ها تعیین می‌کند که بیان آنها در فرمول دستوری استاندارد مشکل و یا غیر ممکن است. مهمترین این محدودیت‌ها به وسیله سیستم نوع گذاری انجام می‌شود.


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

یک زبان نوع گذاری شده‌است اگر مشخصات هر عملیات، نوع داده‌های قابل اجرا توسط آن را با نشان دادن نوع‌هایی که برای آنها قابل اجرا نیست، تعیین کند. برای مثال، "این متن درون گیومه قرار دارد" یک رشته‌است. در غالب زبان‌های برنامه نویسی، تقسیم یک رشته با یک عدد معنایی ندارد. در نتیجه غالب زبان‌های برنامه نویسی مدرن ممکن است اجرای این عملیات را توسط برنامه‌ها رد کنند. در برخی زبان‌ها، عبارات بی معنی ممکن است هنگام ترجمه(compile) پیدا شود(چک کننده نوع ایستا)، و توسط کامپایلر رد شود، در حالی که در سایر برنامه‌ها، هنگام اجرا پیدا شود.(چک کننده نوع دینامیک) که به استثنای در حال اجرا منتج شود(runtime exception). حالت خاص زبان‌های نوع دار زبان‌های تک نوعند. این زبان‌ها غالباً اسکریپتی و یا مارک آپ هستند، مانند rexx وSGML و فقط یک داده گونه دارند—غالباً رشته‌های کاراکتری که هم برای داده‌های عددی و هم برای داده‌های سمبلی کاربرد دارند. در مقابل، یک زبان بدون نوع گذاری، مثل اکثر زبان‌های اسمبلی، این امکان را می‌دهد که هر عملیاتی روی هر داده‌ای انجام شود، که معمولاً دنباله‌ای از بیت‌ها با طول‌های متفاوت در نظر گرفته می‌شوند. زبان‌های سطح بالا که بی نوع هستند شامل زبان‌های ساده رایانه‌ای و برخی از انواع زبان‌های نسل چهارم.

در عمل، در حالیکه تعداد بسیار کمی از دیدگاه نظریه نوع، نوع گذاری شده تلقی می‌شوند(چک کردن یا رد کردن تمام عملیات‌ها)، غالب زبان‌های امروزی درجه‌ای از نوع گذاری را فراهم می‌کنند. بسیاری از زبان‌های تولیدکننده راهی را برای گذشتن یا موقوف کردن سیستم نوع فراهم می‌کنند.



نوع گذاری ایستا و متحرک

در نوع گذاری ایستا تمام عبارات نوع‌های خود را قبل از اجرای برنامه تعیین می‌کنند(معمولاً در زمان کامپایل). برای مثال، ۱ و (۲+۲) عبارات عددی هستند؛ آنها نمی‌توانند به تابعی که نیاز به یک رشته دارد داده شوند، یا در متغیری که تعریف شده تا تاریخ را نگه دارد، ذخیره شوند.


زبان‌های نوع گذاری شده ایستا می‌توانند با مانیفست نوع گذاری شوند یا با استفاده از نوع استنباط شوند. در حالت اول، برنامه نویس بیشتر صریحاً نوع‌ها را در جایگاه‌های منتنی مشخص می‌نویسد(برای مثال، در تعریف متغیرها). در حالت دوم، کامپایلر نوع عبارات و تعریف‌ها را بر اساس متن استنباط می‌کند. غالب زبان‌های مسیر اصلی(mainstream) ایستا نوع گذاری شده، مانند C#,C++ و Java، با مانیفست نوع گذاری می‌شوند



نوع گذاری قوی و ضعیف

نوع گذاری ضعیف این امکان را ایجاد می‌کند که با متغیری به جای متغیری دیگر برخورد شود، برای مثال رفتار با یک رشته به عنوان یک عدد. این ویژگی بعضی اوقات ممکن است مفید باشد، اما ممکن است باعث ایجاد برخی مشکلات برنامه شود که موقع کامپایل و حتی اجرا پنهان بمانند.

نوع گذاری قوی مانع رخ دادن مشکل فوق می‌شود. تلاش برای انجام عملیات روی نوع نادرست متغیر منجر به رخ دادن خطا می‌شود. زبان‌هایی که نوع گذاری قوی دارند غالباً با نام "نوع-امن" و یا امن شناخته می‌شوند. تمام تعاریف جایگزین برای "ضعیف نوع گذاری شده" به زبان‌ها اشاره می‌کند، مثل perl, JavaScript, C++، که اجازه تعداد زیادی تبدیل نوع داخلی را می‌دهند. در جاوااسکریپت، برای مثال، عبارت ۲*x به صورت ضمنی x را به عدد تبدیل می‌کند، و این تبدیل موفقیت آمیز خواهد بود حتی اگر x خالی، تعریف نشده، یک آرایه، و یا رشته‌ای از حروف باشد. چنین تبدیلات ضمنی غالباً مفیدند، اما خطاهای برنامه نویسی را پنهان می‌کنند.

قوی و ایستا در حال حاضر عموماً دو مفهوم متعامد فرض می‌شوند، اما استفاده در ادبیات تفاوت دارد، برخی عبارت "قوی نوع گذاری شده" را به کار می‌برند و منظورشان قوی، ایستایی نوع گذاری شده‌است، و یا، حتی گیچ کننده تر، منظورشان همان ایستایی نوع گذاری شده‌است. بنابراین C هم قوی نوع گذاری شده و هم ضعیف و ایستایی نوع گذاری شده نامیده می‌شود.



معناشناسی اجرا

وقتی که داده مشخص شد، ماشین باید هدایت شود تا عملیات‌ها را روی داده انجام دهد. معناشناسی اجرا ی یک زبان تعیین می‌کند که چگونه و چه زمانی ساختارهای گوناگون یک زبان باید رفتار برنامه را ایجاد کنند.

برای مثال، معناشناسی ممکن است استراتژی را که بویسله آن عبارات ارزیابی می‌شوند را تعریف کند و یا حالتی را که ساختارهای کنترلی تحت شرایطی دستورها را اجرا می‌کنند.


کتابخانه هسته
اغلب زبان‌های برنامه نویسی یک کتابخانه هسته مرتبط دارند(گاهی اوقات "کتابخانه استاندارد" نامیده می‌شوند، مخصوصا وقتی که به عنوان قسمتی از یک زبان استاندارد ارائه شده باشد)، که به طور قراردادی توسط تمام پیاده سازی‌های زبان در دسترس قرار گرفته باشند. کتابخانه هسته معمولاً تعریف الگوریتم‌ها، داده ساختارها و مکانیزم‌های ورودی و خروجی پرکاربرد را در خود دارد. کاربران یک زبان، غالباً با کتابخانه هسته به عنوان قسمتی از آن رفتار می‌کنند، اگرچه طراحان ممکن است با آن به صورت یک مفهوم مجزا رفتار کرده باشند. بسیاری از خصوصیات زبان هسته‌ای را مشخص می‌کنند که باید در تمام پیاده سازی‌ها موجود باشند، و در زبان‌های استاندارد شده این کتابخانه هسته ممکن است نیاز باشد. بنابراین خط بین زبان و کتابخانه هسته آن از زبانی به زبان دیگر متفاوت است. درواقع، برخی زبان‌ها به گونه‌ای تعریف شده‌اند که برخی از ساختارهای دستوری بدون اشاره به کتابخانه هسته قابل استفاده نیستند. برای مثالف در جاوا، یک رشته به عنوان نمونه‌ای از کلاس “java.lang.String” تعریف شده است؛ مشابها، در سمال تاک(smalltalk) یک تابع بی نام(یک "بلاک") نمونه‌ای از کلاس BlockContext کتابخانه می‌سازد. بطور معکوس، Scheme دارای چندین زیرمجموعه مرتبط برای ایجاد سایر ماکروهای زبان می‌باشد، و در نتیجه طراحان زبان حتی این زحمت را نیز تحمل نمی‌کنند که بگویند کدام قسمت زبان به عنوان ساختارهای زبان باید پیاده سازی شوند، و کدام یک به عنوان بخشی ازکتابخانه.


عمل
طراحان زبان و کاربران باید مصنوعاتی ایجاد کنند تا برنامه نویسی را در عمل ممکن سازند و کنترل کنند. مهمترین این مصنوعات خصوصیات و پیاده سازی‌های زبان هستند.



خصوصیات

یک زبان برنامه نویسی باید تعریفی فراهم کند که کاربران و پیاده کننده‌های زبان می‌توانند از آن استفاده کنند تا مشخص کنند که رفتار یک برنامه درست است. با داشتن کد منبع: خصوصیات یک زبان برنامه نویسی چندین قالب می‌تواند بگیرد، مانند مثال‌های زیر:

تعریف صریح دستور، معناشناسی ایستا، ومعناشناسی اجرای زبان. درحالیکه دستور معمولاً با یک معناشناسی قراردادی مشخص می‌شود، تعاریف معناشناسی ممکن است در زبان طبیعی نوشته شده باشند (مثل زبان C)، یا معناشناسی قراردادی(مثل StandardML ,Scheme)
توضیح رفتار یک مترجم برای زبان(مثل C,fortran). دستور و معناشناسی یک زبان باید از این توضیح استنتاج شوند، که ممکن است به زبان طبیعی یا قراردادی نوشته شود.
پیاده سازی منبع یا مدل. گاهی اوقات در زبان‌های مشخص شده(مثل: prolog,ANSI REXX).دستور و معناشناسی صریحاً در رفتار پیاده سازی مدل موجودند.


پیاده سازی

پیاده سازی یک زبان برنامه نویسی امکان اجرای آن برنامه را روی پیکربندی مشخصی از سخت‌افزار و نرم‌افزار را فراهم می‌کند. بطور وسیع، دو راه رسیدن به پیاده سازی زبان برنامه نویسی وجود دارد. کامپایل کردن و تفسیر کردن. بطور کلی با هر بک از ابن دو روش می‌توان یک زبان را پیاده سازی کرد.

خروجی یک کامپایلر ممکن است با سخت‌افزار و یا برنامه‌ای به نام مفسر اجرا شود. در برخی پیاده سازی‌ها که از مفسر استفاده می‌شود، مرز مشخصی بین کامپایل و تفسیر وجود ندارد. برای مثال، برخی پیاده سازی‌های زبان برنامه نویسی بیسیک کامپایل می‌کنند و سپس کد را خط به خط اجرا می‌کنند.

برنامه‌هایی که مستقیماً روی سخت‌افزار اجرا می‌شوند چندین برابر سریعتر از برنامه‌هایی که با کمک نرم‌افزار اجرا می‌شوند، انجام می‌شوند.

یک تکنیک برای بهبود عملکرد برنامه‌های تفسیر شده کامپایل در لحظه آن است. در این روش ماشین مجازی، دقیقاً قبل از اجرا، بلوک‌های کدهای بایتی که قرار است استفاده شوند را برای اجرای مستقیم روی سخت‌افزار ترجمه می‌کند.



تاریخچه
پیشرفت‌های اولیه

اولین زبان برنامه نویسی به قبل از رایانه‌های مدرن باز می‌گردد. قرن ۱۹ دستگاه‌های نساجی و متون نوازنده پیانو قابل برنامه نویسی داشت که امروزه به عنوان مثال‌هایی از زبان‌های برنامه نویسی با حوزه مشخص شناخته می‌شوند. با شروع قرن بیستم، پانچ کارت‌ها داده را کد گذاری کردند و پردازش مکانیکی را هدایت کردند. در دهه ۱۹۳۰ و ۱۹۴۰، صورت گرایی حساب لاندای آلونزو چرچ و ماشین تورینگ آلن تورینگ مفاهیم ریاضی بیان الگوریتم‌ها را فراهم کردند؛ حساب لاندا همچنان در طراحی زبان موثر است.

در دهه ۴۰، اولین رایانه‌های دیجیتال که توسط برق تغذیه می‌شدند ایجاد شدند. اولین زبان برنامه نویسی سطح بالا طراحی شده برای کامپیوتر پلانکالکول بود، که بین سال‌های ۱۹۴۵ و ۱۹۴۳ توسط کنراد زوس برای ز۳ آلمان طراحی شد.

کامپیوترهای اوایل ۱۹۵۰، بطور خاص ÜNIVAC ۱ و IBM ۷۰۱ از برنامه‌های زبان ماشین استفاده می‌کردند. برنامه نویسی زبان ماشین نسل اول توسط نسل دومی که زبان اسمبلی نامیده می‌شوند جایگزین شد. در سال‌های بعد دهه ۵۰، زبان برنامه نویسی اسمبلی، که برای استفاده از دستورات ماکرو تکامل یافته بود، توسط سه زبان برنامه نویسی سطح بالا دیگر: FORTRAN,LISP , COBOL مورد استفاده قرار گرفت. نسخه‌های به روز شده این برنامه‌ها همچنان مورد استفاده قرار می‌گیرند، و هر کدام قویا توسعه زبان‌های بعد را تحت تاثیر قرار دادند. در پایان دهه ۵۰ زبان algol ۶۰ معرفی شد، و بسیاری از زبان‌های برنامه نویسی بعد، با ملاحظه بسیار، از نسل algol هستند. قالب و استفاده از زبان‌های برنامه نویسی به شدت متاثر از محدودیت‌های رابط بودند.



پالایش

دوره دهه ۶۰ تا اواخر دهه ۷۰ گسترش مثال‌های عمده زبان پرکاربرد امروز را به همراه داشت. با این حال بسیاری از جنبه‌های آن بهینه سازی ایده‌های اولیه نسل سوم زبان برنامه نویسی بود:

APL برنامه نویسی آرایه‌ای را معرفی کرد و برنامه نویسی کاربردی را تحت تاثیر قرار داد.
PL/i(NPL) دراوایل دهه ۶۰ طراحی شده بود تا ایده‌های خوب فورترن و کوبول را بهم پیوند دهد.
در دهه ۶۰، Simula اولین زبانی بود که برنامه نویسی شئ گرا را پشتیبانی می‌کرد، در اواسط دهه۷۰. Smalltalk به دنبال آن به

عنوان اولین زبان کاملاً شئ گرا معرفی شد.

C بین سال‌های ۱۹۶۹ تا ۱۹۷۳ به عنوان زبان برنامه نویسی سیستمی طراحی شد و همچنان محبوب است.
Prolog، طراحی شده در ۱۹۷۲، اولین زبان برنامه نویسی منطقی بود.
در ۱۹۷۸ ML سیستم نوع چند ریخت روی لیسپ ایجاد کرد، و در زبان‌های برنامه نویسی کاربردی ایستا نوع گذاری شده پیشگام شد.

هر یک از این زبان‌ها یک خانواده بزرگ از وارثین از خود به جای گذاشت، و مدرنترین زبان‌ها از تبار حداقل یکی از زبان‌های فوق به شمار می‌آیند.

دهه‌های ۶۰ و ۷۰ مناقشات بسیاری روی برنامه نویسی ساخت یافته به خود دیدند، و اینکه آیا زبان‌های برنامه نویسی باید طوری طراحی شوند که آنها را پشتیبانی کنند.

"ادسگر دیکسترا" در نامه‌ای معروف در ۱۹۶۸ که در ارتباطات ACM منتشر شد، استدلال کرد که دستورgoto باید از تمام زبان‌های سطح بالا حذف شود.

در دهه‌های ۶۰ و ۷۰ توسعهٔ تکنیک‌هایی صورت گرفت که اثر یک برنامه را کاهش می‌داد و در عین حال بهره وری برنامه نویس و کاربر را بهبود بخشید. دسته کارت برای ۴GL اولیه بسیار کوچکتر از برنامهٔ هم سطح بود که با ۳GL deck نوشته شده بود.




یکپارچگی و رشد

دهه ۸۰ سال‌های یکپارچگی نسبی بود. C++ برنامه نویسی شئ گرا و برنامه نویسی سیستمی را ترکیب کرده بود. ایالات متحده ایدا(زبان برنامه نویسی سیستمی که بیشتر برای استفاده توسط پیمان کاران دفاعی بود) را استاندارد سازی کرد. در ژاپن و جاهای دیگر، هزینه‌های گزافی صرف تحقیق در مورد زبان نسل پنجم می‌شد که دارای ساختارهای برنامه نویسی منطقی بود. انجمن زبان کاربردی به سمت استانداردسازی ML و Lisp حرکت کرد. به جای ایجاد مثال‌های جدید، تمام این تلاش‌ها ایده‌هایی که در دهه‌های قبل حلق شده بودند را بهتر کرد.

یک گرایش مهم در طراحی زبان در دهه ۸۰ تمرکز بیشتر روی برنامه نویسی برای سیستم‌های بزرگ از طریق مدول‌ها، و یا واحدهای کدهای سازمانی بزرگ مقیاس بود. مدول-۲، ایدا. و ML همگی سیستم‌های مدولی برجسته‌ای را در دهه ۸۰ توسعه دادند. با وجود اینکه زبان‌های دیگر، مثل PL/i، پشتیبانی بسیار خوبی برای برنامه نویسی مدولی داشتند. سیستم‌های مدولی غالباً با ساختارهای برنامه نویسی عام همراه شده‌اند.

رشد سریع اینترنت در میانه دهه ۹۰ فرصت‌های ایجاد زبان‌های جدید را فراهم کرد. Perl، در اصل یک ابزار نوشتن یونیکس بود که اولین بار در سال ۱۹۸۷ منتشر شد، در وب‌گاه‌های دینامیک متداول شد. جاوا برای برنامه نویسی جنب سروری مورد استفاده قرار گرفت. این توسعه‌ها اساساً نو نبودند، بلکه بیشتر بهینه سازی شده زبان و مثال‌های موجود بودند، و بیشتر بر اساس خانواده زبان برنامه نویسی C بودند. پیشرفت زبان برنامه نویسی همچنان ادامه پیدا می‌کند، هم در تحقیقات و هم در صنعت. جهت‌های فعلی شامل امنیت و وارسی قابلیت اعتماد است، گونه‌های جدید مدولی(mixin، نماینده‌ها، جنبه‌ها) و تجمع پایگاه داده.

۴GLها نمونه‌ای از زبان‌هایی هستند که محدوده استفاده آنها مشخص است، مثل SQL. که به جای اینکه داده‌های اسکالر را برگردانند، مجموعه‌هایی را تغییر داده و بر می‌گردانند که برای اکثر زبان‌ها متعارفند. Perl برای مثال، با "مدرک اینجا" خود می‌تواند چندین برنامه ۴GL را نگه دارد، مانند چند برنامه جاوا سکریبت، در قسمتی از کد پرل خود و برای پشتیبانی از چندین زبان برنامه نویسی با تناسب متغیر در "مدرک اینجا" استفاده کند.




سنجش استفاده از زبان

مشکل است که مشخص کنیم کدام زبان برنامه نویسی بیشتر مورد استفاده‌است، و اینکه کاربرد چه معنی می‌دهد با توجه به زمینه تغییر می‌کند. یک زبان ممکن است زمان بیشتری از برنامه نویس بگیرد، زبان دیگر ممکن است خطوط بیشتری داشته باشد، و دیگری ممکن است زمان بیشتری از پردازنده را مصرف کند. برخی زبان‌ها برای کاربردهای خاص بسیار محبوبند. برای مثال: کوبول همچنان در مراکزداده متحد، غالباً روی کامپیوترهای بزرگ توانا است؛ fortran در مهندسی برنامه‌های کاربردی، C در برنامه‌های تعبیه شده و سیستم‌های عامل؛ و بقیه برنامه‌ها معمولاً برای نوشتن انواع دیگر برنامه‌ها کاربرد دارند. روش‌های مختلفی برای سنجش محبوبیت زبان‌ها، هر یک متناسب یا یک ویژگی محوری متفاوت پیشنهاد شده‌است:

شمارش تعداد تبلیغات شغلی که از آن زبان نام می‌برند.
تعداد کتاب‌های آموزشی و شرح دهندهٔ آن زبان که فروش رفته‌است.
تخمین تعداد خطوطی که در آن زبان نوشته شده اند- که ممکن است زبان‌هایی را که در جستجوها کمتر پیدا می‌شوند دست کم گرفته شوند.
شمارش ارجاع‌های زبان(برای مثال، به اسم زبان) در موتورهای جستجوهای اینترنت.

طبقه بندی‌ها هیچ برنامه غالبی برای دسته بندی زبان‌های برنامه نویسی وجود ندارد. یک زبان مشخص معمولاً یک زبان اجدادی ندارد. زبان‌ها معمولاً با ترکیب المان‌های چند زبان پیشینه بوجود می‌آیند که هربار ایده‌های جدید درگردشند. ایده‌هایی که در یک زبان ایجاد می‌شوند در یک خانواده از زبان‌های مرتبط پخش می‌شوند، و سپس از بین خلاهای بین خانواده‌ها منتقل شده و در خانواده‌های دیگر ظاهر می‌شوند.

این حقیقت که این دسته بندی ممکن است در راستای محورهای مختلف انجام شوند، این وظیفه را پیچیده تر می‌کند؛ برای مثال، جاوا هم یک زبان شیءگرا(چون به برنامه نویسی شیءگرا تشویق می‌کند) و زبان همزمان(چون ساختارهای داخلی برای اجرای چندین جریان موازی دارد) است. پایتون یک زبان اسکریپتی شیءگراست.

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

یک زبان برنامه نویسی ممکن است با فاکتورهای غیر مرتبط به مثال‌های برنامه نویسی دسته بندی شود. برای مثال، غالب زبان‌های برنامه نویسی کلمات کلیدی زبان انگلیسی را استفاده می‌کنند، در حالیکه تعداد کمی این کار را نمی‌کنند. سایر زبان‌ها ممکن است براساس داخلی بودن یا نبودن دسته بندی شوند.
ساعت : 2:58 pm | نویسنده : admin | گرافیکسولوژی | مطلب قبلی
گرافیکسولوژی | next page | next page