توسعه نرم‌افزار

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

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





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

توسعه نرم‌افزار ارتباط تنگاتنگی با مهندسی نرم‌افزار دارد و از دید بسیاری این دو مفاهیمی تقریباً یکسان هستند.

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

اغلب توسعه نرم‌افزار Software Development با برنامه نویسی Programming یکسان فرض شده اند در حالیکه توسعه نرم‌افزار بر خلاف برنامه نویسی با تولید تجاری نرم‌افزار، استفاده بهینه از بخشهای در دسترس تولید شده و همچنین روشهای مدیریت، افزایش سرعت و افزایش کیفیت پروژه‌های نرم‌افزاری سر و کار دارد.








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








رابط برنامه‌نویسی نرم‌افزار

رابط برنامه‌نویسی نرم‌افزار (به انگلیسی: Application Programming Interface یا API) یا به صورت خلاصه رابط برنامه نویسی، رابط بین یک کتابخانه یا سیستم‌عامل و برنامه‌هایی است که از آن تقاضای سرویس می‌کنند.

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

برای مثال مایکروسافت برای APIهای ویندوز مرجع‌هایی استاندارد دارد که با استفاده از آنها برنامه‌نویسان می‌توانند از قابلیت‌ها و سرویس‌های سیستم‌عامل در توسعه و نوشتن برنامه‌های کاربردی خود استفاده کنند.







گسترش نرم‌افزار
گسترش نرم‌افزار به تمامی فعالیت‌هایی که یک نرم‌افزار را برای استفاده آماده می‌کند اطلاق می‌شود.






پارادایم برنامه‌نویسی

پارادایم برنامه‌نویسی یا شیوه‌های برنامه‌نویسی، به شیوه‌های اساسی برنامه‌نویسی رایانه گویند.






مرور کلی

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






برنامه‌نویسی دستوری

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

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






برنامه‌نویسی تابعی
برنامه‌نویسی تابعی (به انگلیسی: Functional programming) نوعی پارادایم برنامه‌نویسی است که در آن «محاسبات» به صورت ارزش‌یابی توابع ریاضی در نظر گرفته می‌شوند.






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

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

هر پروسه می‌تواند در هر نقطه‌ای در طول اجرای برنامه فراخوانده شود شامل فراخوانی پروسه توسط خودش (برنامه‌نویسی بازگشتی) یا پروسه‌های دیگر.






برنامه‌نویسی شیءگرا

برنامه‌نویسی شیءگرا (به انگلیسی Object-Oriented Programming مخفف OOP) یک شیوه برنامه نویسی است که ساختار یا بلوک اصلی اجزای آن، شی‌ها می‌باشند. در واقع در این شیوه برنامه نویسی، برنامه به شیء گرایش پیدا می‌کند. به این معنا که داده‌ها و توابعی که قرار است بر روی این داده‌ها عمل کنند، تا حد امکان در قالبی به نام شی در کنار یکدیگر قرار گرفته، جمع‌بندی شده و یک واحد (شی) را تشکیل داده و نسبت به محیط بیرونِ خود، کپسوله می‌شوند و از این طریق، توابع بیگانهٔ خارج از آن شی، دیگر امکان ایجاد تغییر در داده‌های درون آن شی را ندارند. به طور مثال حساب بانکی شما که شامل مشخصات فردی شما و میزان سپردهٔ شما در بانک است، تشکیل یک شی را می‌دهند و به دلیل دارا بودن ویژگی کپسوله، امکان دستکاری در میزان سپرده یا مشخصات شما، توسط دیگران وجود ندارد. از دیگر ویژگی‌های برنامه نویسی شی گرا، پیچیدگی کم، هزینه کم، امکان گسترش سریع برنامه با خطای کمتر نسبت به سایر پارادیام‌های برنامه نویسی است.

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






مفاهیم عمده
کلاس

کلاس نوع خاصی از آرایه است که امکان ذخیره و جمع‌بندی تعداد زیادی المان را (که شامل داده‌ها و توابع هستند) برای یک شی جدید فراهم آورده و تحت یک نام مشترک ذخیره می‌کند. اما بر خلاف آرایه که تنها قادر به ذخیرهٔ داده‌هایی هم جنس است، کلاس می‌تواند داده‌هایی از جنس‌های مختلف را ذخیره نماید. به طور مثال در نظر بگیرید که می‌خواهیم تاریخ ۱۳ نوامبر ۲۰۰۶ را که تشکیل شده از روز، ماه و سال است مورد استفاده قرار دهیم.
حال در نظر بگیرید که نه فقط یک تاریخ، بلکه n تاریخ متفاوت مورد نیاز است. این بدان معنی ست که می‌بایستی به تعداد n بار، سه متغیر بالا، جداگانه تعریف شوند و تعریفِ تک تک و پیاپی متغیرها، نه فقط از لحاظ زمانی بسیار وقت گیر می‌نماید، بلکه از لحاظ میزان کد مورد نیاز نیز بسیار غیر عملی ست، چرا که هر بار می‌بایستی نام جدیدی برای متغیرها در نظر گرفته شود (دو متغیر متفاوت نمی‌توانند هم نام باشند). در اینجاست که کلاس‌ها به خوبی وارد عمل می‌شوند. با استفاده از کلاس‌ها می‌توان متغیرهای متعدد (در مثال بالا: int day ;String month, ;int year) را زیر عنوان یک جنسیت مشترک جدید (به طور مثال هر سه را در یک کلاس با نام Date)، تعریف و جمع‌بندی نمود. و بعد از آن، بدون نیاز به تعریف مجدد روز، ماه و سال، از کلاس Date به میزان مورد نیاز استفاده کرد






وراثت

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






مخفی‌سازی

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

عمل مخفی سازی باعث می‌شود که اشیاء بدون آنکه از چگونگی کارکرد یکدیگر اطلاع داشته باشند با هم کار کنند.






چندشکلی

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






انتزاع / تجرید

به این معنا است که بخشی از یک موجودیّت یک مفهوم را که میان همهٔ وارثان مشترک است، پیش تعریف کنیم. این توانایی منجر به داشتن نگاه مشابه به موجودیّت‌های مشابه می‌گردد.






یک مثال کاربردی

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

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

مفاهیم فوق در زبان‌های برنامه نویسی شیءگرا گنجانده شده‌اند. در این زبان‌ها، اشیاء زیادی از پیش وجود دارند که برنامه‌نویسان می‌توانند از آنها استفاده کنند.






ارتباط اشیاء

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

ماشین باربری، خودرویی است که محلی برای قرار دادن بار داشته باشد و ماشین سواری خودروییاست که صندوق عقب داشته باشد.

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

در زبان‌های برنامه نویسی شیءگرا نیز اشیاء مختلفی وجود دارند که تعریف آنها تکمیل کننده یکدیگر است، به عبارت دیگر اشیا از یکدیگر ارث بری می‌کنند. برخی از تعاریف کاملاً عام است و نمی‌توان از آنها نمونه شیئی ساخت و تنها تعریف هستند. به این تعاریف Interface گفته می‌شود.






مدیریت پیچیدگی

اعمال شیوه‌های مدیریتی با محوریت اشیاء در مطالعه، طراحی، ایجاد، و اجراء پروژه‌های مهندسی نرم‌افزار و مهندسی دانش.






برنامه‌نویسی منطقی
برنامه‌نویسی منطقی در کلی‌ترین مفهوم آن، کاربرد منطق ریاضی در برنامه‌نویسی رایانه است.






معماری نرم‌افزار

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

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

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






فرایند توسعه نرم‌افزار
فرایند تولید نرم‌افزار که با عنوان «چرخهٔ حیات تولید نرم‌افزار» نیز شناخته می‌شود، ساختاری است که روی توسعه و تولید محصولات نرم‌افزاری اعمال می‌شود. عبارت‌های مشابهی چون «چرخهٔ حیات نرم‌افزار» و «فرایند نرم‌افزار» در این رابطه استفاده می‌شود.الگوهای گوناگونی نظیر فرایندهای (خاص) وجود دارند که هر کدام خط مشی مختص (آن فرایندها) برای انجام کارها و فعالیت‌های متنوع در طول فرایندها را مشخص می‌کنند. برخی عنوان می‌کنند که «طرح چرخهٔ حیات» یک عبارت بسیار عمومی بوده و «فرایند تولید نرم‌افزار» عبارت تخصصی‌تر است. برای مثال خیلی از فرایندهای تولید نرم‌افزار ویژه‌ای هستند که خود زیر مجموعه چرخهٔ حیات حلزونی به شمار می‌روند.از مهمترین کارها در تولید نرم‌افزار استخراج نیازمندی‌ها یا تحلیل نیازمندی‌های آن سامانه است. مشتریان عمومی معمولاً تصور مفهومی، انتزاعی و مبهمی از نتیجه نهایی خواسته‌هایشان دارند و نمی‌دانند به درستی نرم‌افزار مورد نظرشان چه کاری باید انجام دهد. در این مرحله نیازمندی‌های ناتمام، پیچیده و مبهم، و حتی متضاد توسط مهندسان نرم‌افزار ماهر شناسایی می‌شوند. در این برهه تکه نرم‌افزارهای آماده، تجربه‌شده و فعال ممکن است برای پایین آوردن ریسک (و مشکلات) نیازمندی‌ها کمک کنند.نخست نیازمندی‌های عمومی از کاربران جمع‌آوری شده و دامنه توسعه و تولید نرم‌افزار که باید تولید شود شناسایی و تحلیل می‌شود، سپس مستندات بصورت شفاف نوشته می‌شوند. معمولاً به این مستند، مستند دامنه یا محدوده سامانه اطلاق می‌شود.برخی قابلیت‌ها ممکن است در ابتدای پروژه به خاطر مسائل مالی یا نیازمندی‌های غیر شفاف و نامشخص خارج از محدوده پروژه باشند. اگر تولید و توسعه نرم‌افزار برون‌سپاری شود (یعنی به شرکت‌های خارجی محول شود) این مستندات به عنوان مستندات قانونی و حقوقی در نظر گرفته می‌شود؛ بنابراین در صورت اتفاق هرگونه دعوای حقوقی یا ابهام در مورد تعهدات داده‌شده به کاربر، این مسائل قابل شفاف‌سازی خواهد بود.=== پیاده‌سازی، آزمون و مستندسازی ===پیاده‌سازی آن قسمت از فرایند تولید نرم‌افزار به شمار می‌رود که مهندسان نرم‌افزار در دنیای واقعی تمام کدهای پروژه را می‌نویسند و به قول معروف برنامه‌نویسی می‌کنند.آزمون نرم‌افزار بخش لاینفک و مهم از فرایند تولید نرم‌افزار است. این قسمت از فرایندها کمک می‌کند تا مشکلات سامانه بصورت سریع شناسایی شوند.مستندسازی در تمام مراحل پروژه چون طراحی داخلی نرم‌افزار برای تعیین اهداف سیستم، نگهداری آینده و ارتقاء و بهبود سامانه هرچند پروژه پایان یافته باشد انجام می‌شود. همچنین ممکن است این مستندسازی شامل نوشتن ساختار تکه‌های برنامه ظاهر برنامه کاربردی داخلی و خارجی هم باشند. این مطلب خیلی مهم است که همه چیز پروژه مستندسازی شود.=== استقرار و نگهداری سامانه ===استقرار و تحویل سامانه پس از اینکه آزمون مناسب را گذراند و برای انتشار، فروش یا هر نوع توزیع برای محیط کار نهایی تأیید شد انجام خواهد شد.آموزش نرم‌افزار و پشتیبانی خیلی مهم است و خیلی از تولیدکنندگان و توسعه‌دهندگان نرم‌افزارها اهمیت آن را درک نمی‌کنند. مهم نیست که چقدر زمان و برنامه‌ریزی توسط تیم تولید و توسعه نرم‌افزار برای ایجاد نرم‌افزار مصرف کرده‌اند اگر در آخر کار کاربری در سازمان نباشد تا از نرم‌افزار استفاده کند. مردم معمولاً در برابر تغییرات مقاومت نشان می‌دهند و از ماجراجویی در محیط ناآشنا اجتناب می‌کنند، برای همین در فاز استقرار این خیلی مهم است کلاس‌های آموزشی برای کاربران جدیدِ نرم‌افزار گذاشته شود.نگهداری و ارتقای نرم‌افزاری برای پوشش، مسائل پوشش داده‌نشده یا نیازمندی‌های تازه‌ای که ممکن است بوجود آیند مدت خیلی زیادی حتی بیشتر از زمان اولیه تولید نرم‌افزار زمان بگیرد. این مرحله ممکن است نیاز باشد تا کدهای برنامه‌نویسی تازه‌ای که در طراحی اصلی برنامه نیز دیده نشده اضافه شود تا مسائل و مشکلات دیده‌نشده حل شوند یا ممکن است کاربر درخواست عملیات اصلی دیگری کند و برنامه‌نویسی‌های تازه‌ای برای برآورده کردن نیازهای جدید انجام گیرد. اگر هزینه کار فاز نگهداری از ۲۵ درصد هزینه فاز قبلی (پیاده‌سازی) بیشتر باشد، این احتمال وجود دارد که کیفیت کلی فاز قبلی خیلی ضعیف بوده باشد. در این صورت مدیران پروژه باید گزینهٔ ایجاد مجدد سامانه (یا بخشی از سامانه) را قبل از اینکه هزینه‌های نگهداری غیر قابل کنترل شود را مطرح کنند.الگوهای تولید نرم‌افزارالگو آبشاریالگو آبشاری فرایندها را به گونه‌ای نشان می‌دهد که کجا تولید کنندگان نرم‌افزار (برنامه‌نویسان) فازهای زیر را به ترتیب انجام دهند:# مشخصات مورد نیاز (تحلیل نیازمندی‌ها)# طراحی نرم‌افزار# پیاده‌سازی و یکپارچه‌سازی# تست نرم‌افزار (یا اعتبارسنجی)# گسترش نرم‌افزار (یا نصب)# نگهداری نرم‌افزاردر سختگیرانه‌ترین حالت آبشاری، بعد از اینکه هر فاز کاملاً پایان پذیرفت، به مرحله بعدی می‌رویم. بازبینی که اجازه ایجاد تغییرات در سامانه را بدهد (که ممکن است شامل تغییرات فرایندهای کنترل رسمی باشد) فقط قبل از رفتن به مرحله بعد امکان‌پذیر است. همچنین بازبینی ممکن است جهت اطمینان از پایان قطعی این فاز (مرحله) بکار گرفته شود. فازی که معیارهای تکمیل آن کامل شده، معمولاً با عنوان دروازه اطلاق می‌شود که نشان می‌دهد پروژه از فاز فعلی به فاز بعدی منتقل شده است. الگو آبشاری از بازبینی و تجدید نظر فازهای قبلی که کامل شده‌اند، جلوگیری می‌کند. این عدم انعطاف‌پذیری مفصل در الگو آبشاری محض، دست مایه انتقاد، پشتیبانی کنندگان الگوهای انعطاف پذیر است.الگو حلزونیخصوصیت کلیدی الگو حلزونی مدیریت ریسک در تمام مراحل چرخهٔ تولید نرم‌افزار است. در سال ۱۹۸۸ میلادی بری بوهم به صورت رسمی الگو حلزونی فرایند تولید نرم‌افزار را منتشر کرد، که ترکیبی از بعضی کلیدهای تایید شده متدولوژی الگو آبشاری و نمونه‌سازی سریع است، اما احساس می‌شود الگو ارائه شده تاکید در ناحیه های کلیدی (الگو آبشاری) را با متدهای دیگری همچون بررسی دقیق و تحلیل دائمی ریسک‌ها، سیستم‌های خاص مناسب برای سامانه پیچیده و بزرگ، کوتاه تر کرده است.الگو حلزونی این روش را با چهار نمودار که نشان دهند فعالیت های زیر است، به تصویر می کشد که فرایندها در چند مرحله تکرار انجام می‌شود:# تدوین و فرموله کردن برنامه ریزی خوب است برای شناسایی اهداف سیستم، قسمت های انتخاب شده جهت پیاده سازی برنامه، محدودیت‌های واضح و مشخص پروژه.# تحلیل ریسک و مشکلات سامانه: ارزیابی تحلیلی برنامه های انتخاب شده، جهت مشخص کردن چگونگی شناسایی و از بین بردن ریسک‌ها.# پیاده سازی پروژه: پیاده سازی تولید نرم‌افزار و تایید کارایی سامانه. الگو حلزونی مبتنی بر ریسک، بر اختیارانتخاب گزینه ها و محدودیت‌ها در سفارش‌ها برای پشتیبانی استفاده مجدد نرم‌افزار و اینکه کیفیت نرم‌افزار می‌تواند در ادغام اهداف ویژه در تولید نرم‌افزار کمک می‌کند، تاکید می‌کند.به هر حال الگو حلزونی شرایط محدود کننده زیر را دارا می باشد: # الگو حلزونی تحلیل ریسک‌ها را تاکید می‌کند و بنابراین کاربران باید این تحلیل را قبول کنند و فکری برایش کنند (این مطالب را در نظر داشته باشند). این مسئله نیازمند اعتماد متقابل و همچنین تمایل به هزینه کردن برای رفع ایرادات، در هنگام تولید نرم‌افزار است و این دلیل استفاده شدن این الگو تولید نرم‌افزار پروژه های بزرگ است.# درصورتیکه در هنگام پیاده‌سازی تحلیل ریسک‌ها تاثیر منفی روی سود پروژه زیاد باشد نبایستی از الگو حلزونی استفاده گردد.# تولید و توسعه دهندگان نرم‌افزار بصورت فعال حواسشان به ریسک‌های قابل حل خواهد بود و به دقت آنها را در الگو حلزونی تحلیل می‌کنند.مرحله اول تدوین و فرموله کردن یک برنامه برای رسیدن به اهداف با این محدودیت‌ها، و پس از آن تلاش برای پیدا کردن و حذف تمام خطرات بالقوه (ریسک‌های بالقوه) از طریق تجزیه و تحلیل دقیق و در صورت لزوم، با ساخت نمونه اولیه است. اگر برخی ریسک‌ها قابل حل نبودند در این صورت مشتریان باید تصمیم بگیرند که آیا می‌خواهند انجام پروژه را خاتمه دهند یا از ریسک‌های مورد نظر چشم پوشی کنند و به هر ترتیب ادامه دهند. در نهایت، نتایج ارزیابی شده و طراحی مرحله بعدی آغاز می‌شود.در حالت کلی یک الگو تکاملی است که به صورت مجموعه‌ای از نسخه‌های افزایشی توسعه میابد و همچنین در طی تکرارهای اولیه ممکن است یک الگو کاغذی یا یک نمونه اولیه باشد ولی در طول تکرارهای بعدی هر بار نسخه کامل‌تری از سامانه تولید می‌شود و این الگو به ۳ تا ۶ نواحی کاری تقسیم میشود.روش تکرارشونده و افزایشیروشی تکراری تولید نرم‌افزار اجازه ی ایجاد که پروژه در ابتدا از بخشهای کوچک شروع شود و به مرور زمان سامانه رشد کند تا کمک کند در این درگیری مشکلات مهم پیدا شوند قبل از اینکه فرضیات اشتباه باعث خراب شدن سامانه شوند. الگو تکرار فرایند ها بوسیله تولید کنندگان نرم‌افزارهای تجاری انتخاب و استفاده می‌شود چون این الگو اجازه می دهد تا نیازهای کاربرانی که در زمان طراحی دقیقاً نمی‌دانند چگونه نیازمندی‌هایشان از سامانه را معرفی کنند بصورت بالقوه برآورده شود. روش توسعه سریع نرم‌افزارروش توسعه سریع نرم‌افزار (به انگلیسی: Rapid application development)(مخفف انگلیسی: RAD) روش تکراری را بعنوان پایه کار استفاده می‌کند اما طرفداری نظریه سبک‌تر و محبوبیت بیشتر از روش سنتی است. روش سریع از بازخوردها به جای برنامه‌ریزی بعنوان سازوکار اصلی کنترل پروژه استفاده می‌کند. بازخوردها بوسیله آزمون‌های مرتب و انتشار پیاپی در بازه‌های زمانی کوتاه نرم‌افزارهای در حال تکامل تولید می‌شوند.روش‌های گوناگونی از فرایند سریع برای تولید نرم‌افزار استفاه می‌شود:روش برنامه‌سازی مفرطتولید نرم‌افزار به روش برنامه‌سازی مفرط (به انگلیسی: Extreme programming)(مخفف انگلیسی: XP) در فازهای خیلی کوچک (یا مداوم) انجام و با فرایندهای دسته‌ای قدیمی‌تر تطبیق داده می‌شوند. فاز اول (که عمداً کامل نشده) در طول مراحل ممکن است به جای اینکه ماه‌ها و سال‌ها در روش آبشاری طول بکشد تا کامل شود، یک روز یا یک هفته وقت بگیرد. ابتدا یک آزمون خودکار برای ایجاد اهداف اساسی تولید نرم‌افزار نوشته می‌شود. سپس (توسط دو برنامه‌نویس) برنامه‌نویسی انجام می‌گیرد که وقتی تمام آزمون‌ها را پشت سر گذاشته و دیگر هیچ آزمون مورد نیازی به ذهن برنامه‌نویسان نرسد کامل می‌شود. کار طراحی و معماری سیستم بعد از اینکه نه آزمونی وجود دارد و نه برنامه‌نویسی‌شده انجام می‌شود.طراحی توسط برنامه‌نویسان انجام می‌شود. (فقط مشخصات نهایی و ترکیب طراحی و کد در تمام فرایندها در روش سریع مشترک هستند) عملیات اصلی ناقص سامانه (توسط دست کم یکی از افراد گروه تولیدکننده و برنامه‌نویس) برای کاربران (یا برخی از کاربران) نصب یا نمایش داده می‌شوند. در اینجا تمام عوامل پروژه دوباره شروع به نوشتن آزمون برای قسمت‌های مهم سامانه خواهند کرد.الگو اسکرام اسکرام یک روش چابکِ تکرارشونده و افزایشی برای مدیریت پروژه است که معمولاً در الگوی تولید نرم‌افزار چابک به عنوان نوعی متدولوژی توسعه نرم‌افزار دیده می‌شود. با اینکه روش اسکرام در واقع برای مدیریت محصولات تولید و توسعه پروژه‌ها پیشنهاد شده بود، اما استفاده آن در مدیریت پروژه‌های تولید نرم‌افزار متمرکز شد؛ همچنین امکان دارد جهت مدیریت تیم نگهداری نرم‌افزار، مدیریت پروژه‌ها یا برنامه‌های عمومی مدیریت خط مشی‌ها استفاده شود.الگوهای بهبودسازی الگوی تکامل قابلیت یکپارچه سازی (CMMI) الگوی تکامل قابلیت یکپارچه‌سازی (CMMI) یکی از الگوهای پیشنهادی و تکنیک‌های پیشتاز است. ارزیابی سازمان‌های مستقل و رتبه‌بندی در مورد کیفیت چگونگی تعریف فرایندهای آن سازمان‌ها را دنبال می‌کند، نه بر کیفیت خود فرایندها یا نرم‌افزار تهیه شده است. الگوی CMMI جایگزین الگوی CMM شده است.ایزو ۹۰۰۰ ایزو ۹۰۰۰ یک استاندارد رسمی سازماندهی فراینده ساخت محصولات و روشی برای مدیریت و نظارت پیشرفت کارهاست. در اصل این استاندارد برای بخش تولید وساخت(صنعتی) ایجاد شد.ایزو ۹۰۰۰ همچنین برای فرایند تولید نرم‌افزار نیز به خوبی استفاده شده.مانند الگو CMMI مدرک ایزو ۹۰۰۰ هیچ تضمینی راجع به کیفیت نتایج نهایی ندارد و فقط فرایندهای کاری را فرموله و قالب استاندارد رسمی می دهد.ایزو ۱۵۵۰۴ ایزو ۱۵۵۰۴ که با عنوان فرایند تشخیص و تعیین بهبود قابلیت نرم‌افزار (به انگلیسی: Software Process Improvement and Capability Determination)(مخفف انگلیسی: SPICE) نیز شناخته می‌شود، چارچوبی برای ارزیابی فرایندهای نرم‌افزار است. این استاندارد تنظیمات قالب روشنی برای مقایسه فرایندها به شمار می‌رود. SPICE خیلی شبیه CMMI استفاده می‌شود. فرایندهای این الگو برای مدیریت، کنترل، راهنمایی و نظارت تولید نرم‌افزار است. این الگو جهت سنجش سازماندهی تولید و توسعه یا تیم پروژه بصورت واقعی در طول مدت تولید نرم‌افزار استفاده می‌شود. تجزیه و تحلیل این اطلاعات برای شناسایی نقاط ضعف و حرکت به سمت بهبود پروژه استفاه می‌شود. همچنین برای تشخیص نقاط قوت پروژه که می تواند برای سازمان یا تیم پروژه ادامه پیدا کند یا برای امور مشترک یکپارچه شود.






کیفیت نرم‌افزار

در مبحث مهندسی نرم افزار، کیفیت نرم افزار به دو رده مرتبط اما مجزای زیر اشاره دارد:

کیفیت عملیاتی نرم افزار (Software Functional Quality): شاخصی جهت نشان دادن میزان تطابق نرم افزار با نیامندی های عملیاتی تعریف شده برای نرم افزار.
کیفیت ساختاری نرم افزار (Software Structural Quality): که منعکس کننده میزان دست یابی به نیازمندی های غیر عملیاتی مانند استحکام (Robustness) و قابلیت نگهداری (Maintainability) نرم افزار است.







مایکروسافت

مایکروسافت، (به انگلیسی: Microsoft Corporation) شرکت کامپیوتری آمریکایی و چندملیتی است، که دفتر مرکزی آن در شهر ردموند، ایالت واشینگتن، ایالات متحده آمریکا قرار دارد. این شرکت، بزرگترین شرکت ارائه نرم‌افزار رایانه در دنیاست، که به انتشار کتاب و تولید محصولات چندرسانه‌ای و ارائه خدمات پست الکترونیکی نیز می‌پردازد.

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

پرفروش‌ترین محصولات مایکروسافت، سیستم‌عامل «ویندوز» و نرم‌افزار «آفیس» است و شعار اصلی شرکت «یک کامپیوتر روی هر میز و در هر خانه، که نرم‌افزارهای مایکروسافت را اجرا کند.» می‌باشد. این دو محصول با سهمی حدود ۹۰٪ در سال ۲۰۰۳ برای مایکروسافت آفیس و در سال ۲۰۰۶ برای ویندوز جایگاه مهمی در بازار فروش محصولات کامپیوترهای شخصی و کامپیوترهای رومیزی پیدا کردند.

مایکروسافت که در ابتدا کار خود را توسط دو دوست دوران کودکی به نام‌های بیل گیتس و پُل جی. آلن با ساخت و فروش مفسر زبان برنامه‌نویسی بیسیک (Basic interpreters) برای «آلتایر» (Altair) شروع کرد، در اواسط دههٔ ۸۰ میلادی با طراحی سیستم‌عامل داس بر بازار سیستم‌های عامل رایانه‌های خانگی مسلط شد.

شرکت، سهام خود را وارد بورس کرد، که با افزایش ارزش سهام، چهار نفر، میلیاردر و حدود ۱۲٬۰۰۰ نفر از کارکنان مایکروسافت، میلیونر شدند.

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

مایکروسافت علاوه بر بازار سیستم‌عامل و نرم‌افزار اداری، در زمینه‌های دیگر هم فعالیت می‌کند مانند: شبکه تلویزیونی ام‌اس‌ان‌بی‌سی "MSNBC"، سایت اینترنتی «ام‌اس‌ان» و دانشنامه چندرسانه‌ای انکارتا (که دیگر انتشار نمی‌یابد). همچنین در زمینه تولید سخت‌افزار رایانه، با ساخت محصولاتی مانند موشواره و نیز سرگرمی‌های خانگی، از جمله ایکس‌باکس، ایکس‌باکس ۳۶۰ و زون(zune) نیز می‌پردازد. مایکروسافت از گذشته تاکنون با استفاده از روش‌های مختلف مانند گروه خبری «یوزنت» "Usenet" و وب، پشتیبانی از نرم‌افزارهای خود را همواره ادامه داده‌است و جایزهٔ «ام‌وی‌پی» Microsoft MVP را به داوطلبانی که در کمک به مشتریان شرکت مفید بوده باشند، اهدا می‌کند.

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






تاریخچه
تاریخچه اولیه

پائول آلن و بیل گیتس، دوستان دوران کودکی بودند که با شور و شوق فراوانی برای کامپیوتر برنامه نویسی می‌کردند و به دنبال ایجاد یک کسب و کار بودند. در ژانویه ۱۹۷۵، سیستم‌های تله میتری (MITS) به نام آتاری ۸۸۰۰ از شرکت میکرو تولید شد. پائول آلن متوجه شد که آن‌ها می‌توانند برای آتاری ۸۸۰۰، Basic بسازند و پس از تماس با بیل گیتس آن‌ها از این شرکت تقاضای استخدام کردند. پائول آلن به عنوان شبیه‌ساز و بیل گیتس به عنوان مترجم استخدام شدند. پس از تولید Basic، میکرو دستگاه آتاری Basic را تولید کرد و بازاریابی کرد. سرانجام در تاریخ ۴ آوریل ۱۹۷۵، شرکت مایکروسافت با مدیر عاملی بیل گیتس تاسیس شد. در آگوست ۱۹۷۷، مایکروسافت با مجله اسکی در ژاپن توافق کرد و در نتیجه اولین دفتر بین‌المللی خود را در ژاپن تاسیس کرد. مایکروسافت در ژانویه ۱۹۷۹، به یک مرکز جدید در واشینگتن در ایالات متحده آمریکا نقل مکان کرد.

مایکروسافت با سیستم عامل خود در سال ۱۹۸۰ یعنی زنیکس، وارد بازار کار سیستم عامل شد. سپس مایکروسافت سیستم عامل MS-DOS را تولید کرد. سرانجام مایکروسافت در مذاکرات با تحقیقات دیجیتال شکست خورد و در نوامبر ۱۹۸۰ سیستم عامل جدیدی با نام CP/M تولید کرد که در آینده در کامپیوترهای شخصی مورد استفاده قرار گرفت. مایکروسافت با درآمدهای بسیارش ۲۱۰ شرکت را خرید و هم چنین یک بخش چاپ و نشر به نام مایکروسافت پرس تولید کرد. سرانجام پائول آلن در ماه فوریه پس از مبتلا شدن به بیماری هوکچین استعفا داد.






آغاز فعالیت‌ها

در ۱۹۹۴ مایکروسافت انکارتا را به راه انداخت؛ نخستین دانشنامه‌ای که روی کامپیوتر قابل اجرا بود. مایکروسافت با همکاری دریم ورکس در سال ۱۹۹۵ برای تولید سرگرمی‌های چندمنظوره یک شرکت جدید تأسیس کردند. پیش از ارائه ویندوز ۹۵، مایکروسافت یک شرکت تجارت محور قلمداد می‌شد اما ویندوز ۹۵ موجب شد که دیگر آن را یک شرکت مشتری محور بدانند. در سپتامبر ۱۹۹۵ دولت چین ویندوز را به عنوان سیستم‌عامل رسمی کشورش انتخاب کرد و از مایکروسافت خواست نسخه چینی ویندوز را برایشان آماده کند. اواسط دهه۹۰ بیل گیتس تصمیم گرفت مایکروسافت را وارد دنیای اینترنت کند و "MSN" به وجود آمد. این یک سرویس آنلاین بود که قرار بود با آمریکن آنلاین (AOL) رقابت کند. بعد با همکاری ان‌بی‌سی، ایستگاه کابلی خبری "MSNBC" و مجلهٔ آنلاین "Slate" به سردبیری مایکل کینسلی را تأسیس نمود. راه‌اندازی وب‌تی‌وی که امکان اتصال تلویزیون به شبکه را فراهم می‌کرد، از دیگر اقدامات مایکروسافت در سال ۱۹۹۶ بود.






فعالیتهای مستمر

در ۱۹۹۷ اینترنت اکسپلورر ۴ همراه ویندوز به بازار آمد. اما دادگستری آمریکا به این دلیل که مایکروسافت با این کار از توافق‌نامه‌ای که در سال ۱۹۹۴ امضا کرده، تخطی نموده‌است، از آن‌ها خواست که دیگر اینترنت اکسپلورر و ویندوز را همراه هم به بازار نفرستند. در سال ۱۹۹۸ ویندوز ۹۸ به همراه اکسپلورر SP۴/۰ SP۱ و FAT۳۲ به عنوان فایل سیستم عرضه گشت. در عین حال، جنجال‌های زیادی در پی افشای یادداشت‌های داخلی مایکروسافت در اینترنت به وجود آمد: «نرم‌افزارهای اوپن سورس تهدیدی جدی برای مایکروسافت به حساب می‌آیند.» این اسناد که به اسناد هالووین معروف شده‌اند، بخشی از این خطرات را عنوان کرده و در عین حال از فعالیت‌های مایکروسافت علیه لینوکس پرده برمی‌دارد. مایکروسافت نیز ضمن این که به صحت این اسناد اعتراف کرد، آن‌ها را صرفاً تحقیقات مهندسی دانست.






دیگر فعالیت‌ها

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

تا سال ۲۰۰۵، ایکس باکس در بازار فروش آمریکا در رده دوم پس از پلی استیشن ۲ سونی و قبل از گیم کیوب نینتندو قرار داشت. (در بازار جهانی بعد از هر دو بود.) اما با این وجود، با فروش ۲۲ میلیون دستگاه در مقایسه با فروش بیش از ۱۰۰میلیون دستگاه پلی استیشن ۲، ضرر سنگینی معادل ۴ میلیارد دلار متحمل شده‌است. مایکروسافت در مدت ۳ سال کار ساخت «NET.» مقدماتی و سرور ویندوز ۲۰۰۳ را هم به پایان رساند.

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






ایکس باکس ۳۶۰

در نوامبر ۲۰۰۵، مایکروسافت دومین کنسول بازی خود را با نام ایکس باکس ۳۶۰ به بازار عرضه کرد (لازم به ذکر است اولین نسخه کنسول مایکروسافت XBOX نام داشت). مایکروسافت در زمینه رقابت با کنسول‌های بازی تجربیات خوبی بدست آورده بود و این بار کنسولی بسیار کامل‌تر و بهتر نسبت به اولین کنسول خود به بازار عرضه کرد. ایکس باکس ۳۶۰ در دو مدل با نام‌های "Premium" و «Core System» عرضه شد. نسخهٔ «ایکس باکس ۳۶۰ Premium» دارای دسته بی‌سیم، هارد درایو، ریموت کنترل و هدست می‌باشد ولی نسخهٔ «Core System» شامل دسته سیمی و بدون هارد درایو و وسایل جانبی می‌باشد. ایکس باکس ۳۶۰ تقریباً یک سال زودتر از رقیبان خود یعنی پلی استیشن ۳ و نینتندو Wii به بازار عرضه شد. ایکس باکس ۳۶۰ پیشرفت‌های زیادی نسبت به کنسول قبلی خود کرده‌است و علاوه بر قدرت سخت‌افزاری، دارای طراحی فوق‌العاده زیبایی می‌باشد. ایکس باکس ۳۶۰ فروش بسیار بهتری نسبت به کنسول قبلی مایکروسافت داشت.






وب‌گاه مایکروسافت
وب‌گاه مایکروسافت با بیش از ۱۰۰ میلیون بازدید در روز یکی از پرطرفدارترین وب‌گاه‌ها در اینترنت است. بر طبق اطلاعات وب‌گاه «الکسا»، وب‌گاه مایکروسافت در ۱۱ مه ۲۰۰۷ رده سیزدهم را در بین وب‌گاه‌های اینترنتی از نظر تعداد بازدیدکننده به خود اختصاص داده‌است.






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






نام

در زبان انگلیسی «کامپیوتر» به دستگاه خودکاری می‌گفتند که محاسبات ریاضی را انجام می‌داد. بر پایهٔ «واژه‌نامه ریشه‌یابی Barnhart Concise» واژهٔ کامپیوتر در سال ۱۶۴۶ به زبان انگلیسی وارد گردید که به معنی «شخصی که محاسبه می‌کند» بوده‌است و سپس از سال ۱۸۹۷ به ماشین‌های محاسبه مکانیکی گفته می‌شد. در هنگام جنگ جهانی دوم «کامپیوتر» به زنان نظامی انگلیسی و آمریکایی که کارشان محاسبه مسیرهای شلیک توپ‌های بزرگ جنگی به وسیله ابزار مشابهی بود، اشاره می‌کرد.

البته در اوایل دهه ۵۰ میلادی هنوز اصطلاح ماشین حساب (computing machines) برای معرفی این ماشین‌ها به‌کار می‌رفت. پس از آن عبارت کوتاه‌تر کامپیوتر (computer) به‌جای آن به‌کار گرفته شد. ورود این ماشین به ایران در اوائل دهه ۱۳۴۰ بود و در فارسی از آن زمان به آن «کامپیوتر» می‌گفتند. واژه رایانه در دو دهه اخیر در فارسی رایج شده است.

برابر این واژه در زبان‌های دیگر حتماً همان واژه زبان انگلیسی نیست. در زبان فرانسوی واژه "ordinateur"، که به معنی «سازمان‌ده» یا «ماشین مرتب‌ساز» است، به‌کار می‌رود. در اسپانیایی "ordenador" با معنایی مشابه استفاده می‌شود، همچنین در دیگر کشورهای اسپانیایی زبان computadora بصورت انگلیسی‌مآبانه‌ای ادا می‌شود. در پرتغالی واژه computador به‌کار می‌رود که از واژه computar گرفته شده و به معنای «محاسبه کردن» می‌باشد. در ایتالیایی واژه "calcolatore" که معنای ماشین حساب است بکار می‌رود که بیشتر روی ویژگی حسابگری منطقی آن تاکید دارد. در سوئدی رایانه "dator" خوانده می‌شود که از "data" (داده‌ها) برگرفته شده‌است. به فنلاندی "tietokone" خوانده می‌شود که به معنی «ماشین اطلاعات» می‌باشد. اما در زبان ایسلندی توصیف شاعرانه‌تری بکار می‌رود، «tölva» که واژه‌ای مرکب است و به معنای «زن پیشگوی شمارشگر» می‌باشد. در چینی رایانه «dian nao» یا «مغز برقی» خوانده می‌شود. در انگلیسی واژه‌ها و تعابیر گوناگونی استفاده می‌شود، به‌عنوان مثال دستگاه داده‌پرداز («data processing machine»).






معنای واژهٔ فارسی رایانه

واژهٔ رایانه از مصدر رایانیدن ساخته شده که در فارسی میانه به شکلِ rāyēnīdan و به معنای «سنجیدن، سبک و سنگین کردن، مقایسه کردن» یا «مرتّب کردن، نظم بخشیدن و سامان دادن» بوده‌است. این مصدر در زبان فارسی میانه یا همان پهلوی کاربرد فراوانی داشته و مشتق‌های زیادی نیز از آن گرفته شده بوده است. برایِ مصدر رایانیدن/ رایاندن در فرهنگ واژه دهخدا چنین آمده:







رایاندن
دَ (مص) رهنمائی نمودن به بیرون. هدایت کردن. (ناظم الاطباء).

شکلِ فارسی میانهٔ این واژه rāyēnīdan بوده و اگر می‌خواسته به فارسی نو برسد به شکل رایانیدن/ رایاندن درمی‌آمده. (بسنجید با واژه‌یِ فارسیِ میانه‌یِ āgāhēnīdan که در فارسیِ نو آگاهانیدن/ آگاهاندن شده‌است).

این واژه از ریشه‌یِ فرضیِ ایرانیِ باستانِ –radz* است که به معنایِ «مرتّب کردن» بوده. این ریشه به‌صورتِ –rad به فارسیِ باستان رسیده و به شکلِ rāy در فارسیِ میانه (پهلوی) به‌کار رفته. از این ریشه ستاک‌هایِ حالِ و واژه‌هایِ زیر در فارسیِ میانه و نو به‌کار رفته‌اند:

-ā-rādz-a*یِ ایرانیِ باستان> -ā-rāy ِ فارسی میانه که در واژه‌یِ آرایشِ فارسیِ نو دیده می‌شود.
-pati-rādz-a*یِ ایرانیِ باستان> -pē-rāy ِ فارسی میانه که در واژه‌یِ پیرایشِ فارسیِ نو دیده می‌شود؛ و
-rādz-ta*یِ ایرانیِ باستان> rāst ِ فارسی میانه که در واژه‌یِ راستِ فارسیِ نو دیده می‌شود.

این ریشه‌یِ ایرانی از ریشه‌یِ هندواروپاییِ -reĝ* به معنایِ «مرتّب کردن و نظم دادن» آمده‌است. از این ریشه در

هندی rāj-a به معنیِ «هدایت‌کننده، شاه» (یعنی کسی که نظم می‌دهد)؛
لاتینی rect-us به معنیِ «راست، مستقیم»،
فرانسه di-rect به معنیِ «راست، مستقیم»،
آلمانی richt به معنیِ «راست، مستقیم کردن» و
انگلیسی right به معنیِ «راست، مستقیم، درست»

برجای مانده‌است.

در فارسیِ نو پسوندِ -ـه (= /e/ در فارسی رسمی ایران و /a/ در فارسی رسمی افغانستان و تاجیکستان) را به ستاکِ حالِ فعل‌ها می‌چسبانند تا نامِ ابزارِ آن فعل‌ها به‌دست آید (البته با این فرمول مشتق‌های دیگری نیز ساخته می‌شود، امّا در اینجا تنها نامِ ابزار مدِّ نظر است)؛ برای نمونه از

مالـ- (یعنی ستاکِ حالِ مالیدن) + -ـه، ماله «ابزار مالیدنِ سیمان و گچِ خیس»
گیر- (یعنی ستاکِ حالِ گرفتن) + -ـه، گیره «ابزار گرفتن»
پوشـ- (یعنی ستاکِ حالِ پوشیدن) + -ـه، پوشه «ابزار پوشیدن» (خود را جایِ کاغذهایی بگذارید که پوشه را می‌پوشند!)
رسانـ- (یعنی ستاکِ حالِ رساندن) + -ـه، رسانه «ابزار رساندنِ اطّلاعات و برنامه‌هایِ دیداری و شنیداری»

حاصل می‌گردد.

در فارسیِ نو پسوندِ -ـه (= e- یا همان a-) را به ستاکِ حالِ "رایانیدن" یعنی رایانـ- چسبانده‌اند تا نامِ ابزارِ این فعل ساخته شود؛ یعنی "رایانه" به معنایِ «ابزارِ نظم بخشیدن و سازماندهی (ِ داده‌ها)» است.

سازندگان این واژه به واژه‌یِ فرانسویِ این مفهوم، یعنی ordinateurتوجّه داشته‌اند که در فرانسه از مصدرِ ordre«ترتیب و نظم دادن و سازمان بخشیدن» ساخته شده. به هرحال، معنادهیِ واژه‌یِ رایانه برایِ این دستگاه جامع‌تر و رساتر از کامپیوتر است. یادآور می‌شود که computerبه معنایِ «حسابگر» یا «مقایسه‌گر» است، حال آن‌که کارِ این دستگاه براستی فراتر از "حساب کردن" است.






تاریخچه

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

به تصریح دانشنامه انگلیسی ویکی‌پدیا، بدیع‌الزمان ابوالعز بن اسماعیل بن رزاز جَزَری (درگذشتهٔ ۶۰۲ ق.) یکی از نخستین ماشین‌های اتوماتا را که جد رایانه‌های امروزین است، ساخته بوده‌است. این مهندس مکانیک مسلمان از دیاربکر در شرق آناتولی بوده‌است. رایانه یکی از دو چیز برجسته‌ای است که بشر در سدهٔ بیستم اختراع کرد. دستگاهی که بلز پاسکال در سال ۱۶۴۲ ساخت اولین تلاش در راه ساخت دستگاه‌های محاسب خودکار بود. پاسکال آن دستگاه را که پس از چرتکه دومیت ابزار ساخت بشر بود، برای یاری رساندن به پدرش ساخت. پدر وی حسابدار دولتی بود و با کمک این دستگاه می‌توانست همه اعدادشش رقمی را با هم جمع و تفریق کند.

لایبنیتز ریاضی‌دان آلمانی نیز از نخستین کسانی بود که در راه ساختن یک دستگاه خودکار محاسبه کوشش کرد. او در سال ۱۶۷۱ دستگاهی برای محاسبه ساخت که کامل شدن آن تا ۱۹۶۴ به درازا کشید. همزمان در انگلستان ساموئل مورلند در سال ۱۶۷۳ دستگاهی ساخت که جمع و تفریق و ضرب می‌کرد.

در سدهٔ هجدهم میلادی هم تلاش‌های فراوانی برای ساخت دستگاه‌های محاسب خودکار انجام شد که بیشترشان نافرجام بود. سرانجام در سال ۱۸۷۵ میلادی استیفن بالدوین نخستین دستگاه محاسب را که هر چهار عمل اصلی را انجام می‌داد، به نام خود ثبت کرد.

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

کارهای بابیچ به فراموشی سپرده شد تا این که در سال ۱۹۴۳ و در بحبوحه جنگ جهانی دوم دولت آمریکا طرحی سری برای ساخت دستگاهی را آغاز کرد که بتواند مکالمات رمزنگاری‌شدهٔ آلمانی‌ها را رمزبرداری کند. این مسئولیت را شرکت آی‌بی‌ام و دانشگاه هاروارد به عهده گرفتند که سرانجام به ساخت دستگاهی به نام ASCC در سال ۱۹۴۴ انجامید. این دستگاه پنج تنی که ۱۵ متر درازا و ۲٫۵ متر بلندی داشت، می‌توانست تا ۷۲ عدد ۲۴ رقمی را در خود نگاه دارد و با آن‌ها کار کند. دستگاه با نوارهای سوراخدار برنامه‌ریزی می‌شد و همهٔ بخش‌های آن مکانیکی یا الکترومکانیکی بود.






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

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

به داده‌های پردازش شده اطّلاعات می‌گویند.






رایانه‌ها چگونه کار می‌کنند؟

از زمان رایانه‌های اولیه که در سال ۱۹۴۱ ساخته شده بودند تا کنون فناوری‌های دیجیتالی رشد نموده‌است، معماری فون نوِیمن یک رایانه را به چهار بخش اصلی توصیف می‌کند: واحد محاسبه و منطق (Arithmetic and Logic Unit یا ALU)، واحد کنترل یا حافظه، و ابزارهای ورودی و خروجی (که جمعا I/O نامیده می‌شود). این بخش‌ها توسط اتصالات داخلی سیمی به نام گذرگاه (bus) با یکدیگر در پیوند هستند.






حافظه

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






پردازش

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

البته CPUها به دو دسته کلی RISC و CISC تقسیم بندی می‌شوند. نوع اول پردازش‌گرهای مبتنی بر اعمال ساده هستند و نوع دوم پردازشگرهای مبتنی بر اعمال پیچیده می‌باشند. پردازشگرهای مبتنی بر اعمال پیچیده در واحد محاسبه و منطق خود دارای اعمال و دستوراتی بسیار فراتر از چهار عمل اصلی یا منطقی می‌باشند. تنوع دستورات این دسته از پردازنده‌ها تا حدی است که توضیحات آن‌ها خود می‌تواند یک کتاب با قطر متوسط ایجاد کند. پردازنده‌های مبتنی بر اعمال ساده اعمال بسیار کمی را پوشش می‌دهند و در حقیقت برای برنامه‌نویسی برای این پردازنده‌ها بار نسبتاً سنگینی بر دوش برنامه‌نویس است. این پردازنده‌ها تنها حاوی ۴ عمل اصلی و اعمال منطقی ریاضی و مقایسه‌ای به علاوه چند دستور بی‌اهمیت دیگر می‌باشند. هرچند ذکر این نکته ضروری است که دستورات پیچیده نیز از ترکیب تعدادی دستور ساده تشکیل شده‌اند و برای پیاده‌سازی این دستورات در معماری‌های مختلف از پیاده‌سازی سخت‌افزاری (معماری CISC) و پیاده‌سازی نرم‌افزاری (معماری RISC) استفاده می‌شود.







(قابل ذکر است پردازنده‌های اینتل از نوع پردازنده مبتنی بر اعمال پیچیده می‌باشند.)

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






ورودی/خروجی

بخش ورودی/خروجی (I/O) این امکان را به رایانه می‌دهد تا اطلاعات را از جهان بیرون تهیه و نتایج آن‌ها را به همان جا برگرداند. محدوده فوق العاده وسیعی از دستگاه‌های ورودی/خروجی وجود دارد، از خانواده آشنای صفحه‌کلیدها، نمایشگرها، نَرم‌دیسک گرفته تا دستگاه‌های کمی غریب مانند رایابین‌ها (webcams). (از سایر ورودی/خروجی‌ها می‌توان موشواره mouse، قلم نوری، چاپگرها (printer)، اسکنرها، انواع لوح‌های فشرده(CD, DVD) را نام برد).

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






دستورالعمل‌ها

هر رایانه تنها دارای یک مجموعه کم تعداد از دستورالعمل‌های ساده و تعریف شده می‌باشد. از انواع پرکاربردشان می‌توان به دستورالعمل «محتوای خانه ۱۲۳ را در خانه ۴۵۶ کپی کن!»، «محتوای خانه ۶۶۶ را با محتوای خانه ۰۴۲ جمع کن، نتایج را در خانه ۰۱۳ کن!»، «اگر محتوای خانه ۹۹۹ برابر با صفر است، به دستورالعمل واقع در خانه ۳۴۵ رجوع کن!».

دستورالعمل‌ها در داخل رایانه بصورت اعداد مشخص شده‌اند - مثلاً کد دستور العمل (copy instruction) برابر ۰۰۱ می‌تواند باشد. مجموعه معین دستورالعمل‌های تعریف شده که توسط یک رایانه ویژه پشتیبانی می‌شود را زبان ماشین می‌نامند. در واقعیت، اشخاص معمولاً به زبان ماشین دستورالعمل نمی‌نویسند بلکه بیشتر به نوعی از انواع سطح بالای زبان‌های برنامه‌نویسی، برنامه‌نویسی می‌کنند تا سپس توسط برنامه ویژه‌ای (تفسیرگرها (interpreters) یا همگردان‌ها (compilers) به دستورالعمل ویژه ماشین تبدیل گردد. برخی زبان‌های برنامه‌نویسی از نوع بسیار شبیه و نزدیک به زبان ماشین که اسمبلر (یک زبان سطح پایین) نامیده می‌شود، استفاده می‌کنند؛ همچنین زبان‌های سطح بالای دیگری نیز مانند پرولوگ نیز از یک زبان انتزاعی و چکیده که با زبان ماشین تفاوت دارد بجای دستورالعمل‌های ویژه ماشین استفاده می‌کنند.






معماری‌ها

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

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

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






برنامه‌ها

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

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






سیستم‌عامل

کامپیوتر همیشه نیاز دارد تا برای بکار انداختنش حداقل یک برنامه روی آن در حال اجرا باشد. تحت عملکردهای عادی این برنامه همان سیستم‌عامل یا OS که مخفف واژه‌های Operating System است. سیستم یا سامانه عامل بر اساس پیشفرض‌ها تصمیم می‌گیرد که کدام برنامه برای انجام چه وظیفه‌ای اجرا شود، چه زمان، از کدام منابع (مثل حافظه، ورودی/خروجی و...) استفاده شود. همچنین سیستم‌عامل یک لایه انتزاعی بین سخت‌افزار و برنامه‌های دیگر که می‌خواهند از سخت‌افزار استفاده کنند، می‌باشد، که این امکان را به برنامه نویسان می‌دهد تا بدون اینکه جزئیات ریز هر قطعه الکترونیکی از سخت‌افزار را بدانند بتوانند برای آن قطعه برنامه‌نویسی نمایند. در گذشته یک اصطلاح متداول بود که گفته می‌شد با تمام این وجود کامپیوترها نمی‌توانند برخی از مسائل را حل کنند که به این مسائل حل نشدنی گفته می‌شود مانند مسائلی که در مسیر حلشان در حلقه بی‌نهایت می‌افتند. به همین دلیل نیاز است که با کمک روشهای خاص بطور مثال به چند بخش تقسیم نمودن مساله یا روشهای متداول دیگر از رخ دادن این خطا تا حد امکان جلوگیری نمود. از جمله سیستم عامل‌های امروزی می‌توان به مایروسافت ویندوز، مکینتاش اپل و لینوکس و بی اس دی اشاره کرد.
7:40 pm
دیدگاه‌ها دربارهٔ حسین و انگیزهٔ قیام کربلا
اکثر مسلمانان مقام حسین را گرامی می‌دارند. تنها هواداران بنی امیه بودند که به وی لقب «باغی بعد انعقاد البیعة» را می‌دادند به این علت که علیه دولت اسلامی وقت شورش نمود. این گروه قتل حسین توسط یزید را به این دلیل قابل اغماض می دانند. اما مخالفان این فرقه، نه تنها کسانی بودند که از بنی امیه متنفر بودند، بلکه حتی گروهی که قیام حسین و یارانش را مخلصانه نمی پنداشند و در عین حال به دنبال بهانه‌ای برای خودداری از سرزنش کردن حسین و یا صحابه و تابعین بی طرف (به منظور جلوگیری از جنگهای داخلی در اسلام) در نزاع حسین و یزید، بودند نیز از مخالفان طرفداران بنی امیه در قضیه قتل حسین بودند.





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




دیدگاه شیعه

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

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





آیات قرآن منسوب شده به حسین از سوی شیعه

آیات ۱۴ و ۱۵ سوره الأحقاف که دربارهٔ زنی حامله صحبت می‌کند که درد و رنج بسیاری را تحمل می‌کند را اشاره‌ای به فاطمه می دانند و فرزند را نیز حسین می دانند که در آن وقتی خداوند به محمد در مورد سرنوشت این نوه تسلیت گفت و محمد این موضوع را به فاطمه ابراز داشت، فاطمه بسیار پریشان گردید. پس از آنکه خداوند اسامی پنج تن را به زکریا یاد داد، آیه رمز آلود اول سوره مریم (کهیعص) را به زکریا به این صورت رمز گشایی کرد: ک= کربلا، ه= هلاک العترة، ی= یزید، ع= عطش، ص= صبر. تفسیر فوق متواترترین تفسیر از کلمه کیهعص است. این مطلب نشان دهنده شباهت خارق العاده‌ای بین سرنوشت یحیی و حسین است (احتمالاً با توجه به این که سر هر دو بریده شد و در طشت قرار داده شد.). وقتی جبرئیل نام ۵ تن آل عبا را به زکریا یاد داد و زکریا نام هر یک از آنها را به زبان آورد، در تمامی موارد به جز حسین، وقتی نام را ادا می‌کرد حالتی مسرت بخش به وی دست می‌داد، اما وقتی نام حسین را بیان نمود، اشک در چشمان زکریا جاری گشت. سپس خداوند به زکریا سرنوشت حسین را وحی نمود و زکریا هق هق گریه را سر داد و از خدا درخواست کرد که پسری به وی دهد تا سرنوشتی همانند حسین را داشته باشد تا بتواند مصیبتی شبیه مصیبتی که محمد به آن دچار می‌شود را تحمل کند و خداوند به زکریا، یحیی را بخشید. حسین در تمامی مراحل سفر خود از مکه به سمت کربلا، به یاد یحیی می‌افتاد. بر طبق روایتی دیگر، خون حسین همانند خون یحیی به جوشش خواهد آمد و خداوند برای آنکه این جوشش را تسکین دهد، ۷۰۰۰۰ نفر از منافقان و کفار و سست ایمانها را نابود خواهد کرد همان گونه که این کار را برای انتقام از یحیی انجام داده بود. از آیات دیگری که شیعه آن را منتسب به حسین می داند می‌توان به آیه ۶ سوره احزاب اشاره نمود در مورد ادامه امامت از نسل تفسیر شده است. همچنین آیاتی چون ۷۷ سوره نسا، ۳۳ سوره اسرا و ۲۷ تا ۳۰ سوره فجر (که در نزد شیعه سوره حسین دانسته شده) از نظر شیعه به قیام و کشته شدن حسین اشاره می‌کند.





احادیث

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

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

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

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

بر طبق دانشنامه بریتانیکا: «حسن و حسین به خلافت معاویه، نخستین خلیفه اموی تن در دادند و در ازای آن از او مستمری گرفتند اما حسین با خلافت جانشین او، یزید، مخالفت کرد. حسین سپس توسط مردم کوفه که اکثریت آن شیعه بودند دعوت شد تا شورش ایشان را علیه بنی امیه رهبری کند. حسین به همراه گروه کوچکی از خویشاوند و رهروانش به سوی کوفه رفت. گفته می‌شود که او در راه فرزدق شاعر را ملاقات کرد و در این دیدار به او گفته شد که قلب مردم عراق با او است اما شمشیرشان با بنی امیه‌است. حکمران عراق به پشتیبانی از خلیفه چهار هزار مرد را به دستگیری او فرستاد و آنها در ساحل رود فرات راه را بر حسین بستند (اکتبر ۶۸۰ میلادی)؛ حسین تسلیم را نپذیرفت و محافظانش کشته شدند و سر خودش به دمشق فرستاده شد. مسلمانان شیعه روز ده محرم (سالروز جنگ حسین در تقویم مسلمانان) را بزرگداشت می‌گیرند. خونخواهی حسین و سوگواری برای او موجب تضعیف بنی امیه و پدید آمدن یک جنبش قدرتمند شیعه شد. جزییات زندگی حسین به گونه افسانه وار و اغراق آمیز حول شهادت او شکل می‌گیرد. اما اقدام نهایی اش نشان از تاثیرات ایدئولوژیک دارد تا نظامی را شکل دهد که اسلام حقیقی را در برابر حکومت به عقیدهٔ او نا عادلانهٔ اموی می‌نشاند.»




ویژگیهای ظاهری و اخلاقی حسین

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

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

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




باورهای غالیانه در خصوص حسین

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

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




کرامات در هنگام تولد و کودکی حسین

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





معجزات پس از کشته شدن حسین

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





معجزات سر بریده حسین

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





سرنوشت کسانی که به حسین اهانت کرده یا وی را زخمی کردند

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





القاب در دیگر کتب مقدس

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





صفات فراطبیعی حسین که معجزه آفریده‌اند

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




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




سوگواری محرم

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

روضه خوانی در شب و روز در اماکن عمومی، قصرها، مساجد، تکایا و حسینیه‌ها
رسم دفن کردن خود تا سر
دسته‌های عزاداران که با زنجیر، ستگ، تیغ و نیز با سوزاندن خود ریاضت می‌کشیدند
مراسم جنگ گروههای رقیب حیدری نعمتی
رژه تابوت و نخل با علم که با شکوه و بر دوش مردم در میدان اصلی و بر دوش مردم حرکت می‌کردند و با عناصر نمایشی کاروان او را شبیه سازی می‌کردند
مراسم سوزاندن پیکر خائنان (عمرکشان) زین رو مراسم محرم جنبه‌های کارناوال گونه داشت و شادی را با غم و اندوه در می‌آمیخت.
ساعت : 7:40 pm | نویسنده : admin | نوای علمدار | مطلب قبلی
نوای علمدار | next page | next page