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





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




ویژگی ها ومفاهیم معمولی

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




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





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




شبه سنجه‌ها

برنامه نویسی مفهوم شبه سنجه‌ها را برای ارزیابی کیفیت کد به کار می‌گیرد. بدین دلیل به اینها شبه سنجه گفته می‌شود که فضای مفهوم و فضای کد را به هم مربوط می‌سازند. با درک روشنی از اینکه فضای مفهوم را نمی‌توان به اندازهٔ کافی محدود به قالب بندی‌هایی کرد تا بتوان سنجه‌های واقعی را تعریف نمود. شبه سنجه‌های برنامه نویسی مفهومی در برگیرندهٔ موارد زیر می‌شوند:

اعوجاج نحوی تفاوت میان مفهوم و نحوی که برای نمایش آن به کار گرفته شده است را اندازه‌گیری می‌کند. به عنوان مثال: نقطه ویرگول در انتهای دستورات در زبان C می‌تواند به عنوان اعوجاج نحوی در نظر گرفته شود چون در فضای مفهوم معادلی ندارد.
اعوجاج معنایی فاصلهٔ معنا یا رفتار مورد انتظار از مفهوم با معنا با رفتار واقعی درون کد را اندازه‌گیری می‌کند. به عنوان مثال: این حقیقت که انواع دادهٔ حسابی سرریز می‌کنند (در حالیکه اعداد حسابی ریاضی چنین نیستند.) صورتی از اعوجاج معنایی است.
پهنای باند این را اندازه‌گیری می‌کند که به چه میزان از فضای مفهوم را یک ساختار کد از پیش تعیین شده می‌تواند معرفی نماید. به عنوان مثال: عملگر جمع اضافه بار شده در زبان C پهنای باند بیشتری از دستور جمع در زبان اسمبلی (Add) دارد چون عملگر زبان C می‌تواند عمل جمع را با اعداد ممیز شناور (و نه فقط اعداد حسابی انجام دهد.)
نسبت سیگنال به اعوجاج این را اندازه‌گیری می‍کند که چه کسری از فضای کد در برابر اطلاعات پیاده‌سازی شده برای نمایش مفاهیم واقعی به کار گرفته شده است.





قانون برابری، شکست برابری

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

خطای دامنه وضعیتی است که در آن کد خارج از دامنهٔ برابری اجرا می‌شود، که این دامنه ایست که در آن مفهوم و پیاده‌سازی منطبق می‌شوند سرریز عدد حسابی مثالی از خطای دامنه است.
قالب مفهوم (همچنین قالب بندی دوباره مفهوم یا مفهوم را دوباره قالب بندی کردن) بازنویسی یک مفهوم به صورت مفهومی دیگر است بدین سبب که مفهوم اصلی را نمی‌توان به وسیله ابزارها پیاده‌سازی نمود در زبان C به کار بردن اشاره گرها برای آرگومان‌های خروجی به این دلیل که زبان C از آرگومان‌های خروجی به صورت صریح پشتیبانی نمی‌کند، مثالی از قالب مفهوم است.
وارونگی اولویت صورتی از اعوجاج نحوی یا معنایی است که به وسیله برخی قوانین عمومی دیکته شده از سوی زبان به وجود می‌آید. از این رو وارونگی اولویت نامیده می‌شود که زبان تقدم را بر مفهوم حاکم می‌سازد. در Smalltalk هر چیزی یک شی است و این قانون به این دستاورد ناخواسته منجر می‌شود که عبارتی شبیه به ۲+۳*۵ از توالی مرسوم عملیات پیروی نمی‌کند (در Smalltalk ابتدا ۲ با ۳ جمع شده، حاصل آن در ۵ ضرب می‌شود که در نهایت عدد ۲۵ به جای ۱۷ بدست می‌آید.)




روش شناسی

برای نوشتن کد برنامه نویسی مفهوم این گام‌ها را پیشنهاد می‌دهد:

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

ابزارهای برنامه نویسی بسیاری اغلب فاقد قابلیت‌های نمادی هستند. بنابراین برنامه نویسی مفهوم در برخی موارد نیازمند استفاده از پیش پردازنده‌ها، زبان‌های مختص به دامنه یا روش‌های فرا برنامه نویسی است.




زبان‌ها

زبان برنامه نویسی XL تنها زبان شناخته شده ایست که تا به امروز به طور واضح برای برنامه نویسی مفهوم ایجاد شده است. اما برنامه نویسی مفهوم تقریباً در هر زبانی با درجات متفاوتی از موفقیت قابل اجراست. زبان‌های برنامه نویسی Lisp و Forth و مشتقات آنها نمونه‎هایی از زبان‌های از قبل موجود هستند که به خوبی قابلیت استفاده به عنوان برنامه نویسی مفهوم را دارند.




کارهای مشابه

پروژه‌هایی هستند که از ایده‌های مشابه بهره‌برداری کرده‌اند تا با سطح بالایی از انتزاع کد تولید کنند. دربین آنها این موارد را می‌توان نام برد:

برنامه نویسی هدفی
برنامه نویسی زبان گرا
برنامه نویسی ادیبانه
معماری مدل- محور






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




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



نمونه‌های مهم

برنامه‌نویسی دستوری در تضاد با برنامه‌نویسی تابعی
برنامه‌نویسی رویه‌ای در تضاد با برنامه‌نویسی شئ‌گرا
برنامه‌نویسی منطقی







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

مدل برنامه‌نویسی موازی (به انگلیسی: Parallel programming model) مفهومی است که عبارت‌های برنامه‌های موازی را قادر می‌سازد ترجمه و اجرا شوند. ارزش یک مدل برنامه‌نویسی معمولاً بر اساس فراگیری آن (اینکه چند مسئلۀ متفاوت می‌توانند توسط آن بیان شوند و با چند معماری مختلف می‌توان آن‌ها را اجرا کرد) تعیین می‌شود. ایجاد یک مدل برنامه‌نویسی می‌تواند چندین حالت بگیرد مانند الهام گرفتن کتابخانه‌ها از زبان‌های متوالی قدیمی، ضمیمه‌های زبان و یا مدل‌های اجرایی کاملاً جدید.

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




طبقه‌بندی و الگوهای اصلی

طبقه‌بندی‌های مدل‌های برنامه‌نویسی موازی را می‌توان به دو محدودۀ کلی تقسیم کرد: تعامل فرایند و تجزیۀ مسئله.




تعامل فرایند

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




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

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




موازی‌سازی تلویحی

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




تجزیۀ مسئله

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




موازی‌سازی وظیفه

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




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






مهندسی نرم‌افزار

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

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

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

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

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




مهم ترین شاخص مهندسی نرم‌افزار

مهم ترین شاخص در مهندسی نرم افزار تولید نرم افزار با کیفیت مناسب در جهت «نیازهای مشتری» است.




پیشینه مهندسی نرم‌افزار

اصطلاح مهندسی نرم‌افزار پس از سال ۱۹۶۸ میلادی شناخته شد. این اصطلاح طی نشست «مهندسی نرم‌افزار ناتو ۱۹۶۸» (که در گارمیش-پارتنکیرشن، آلمان برگزار شد) توسط ریاست نشست فریدریش ال باوئر معرفی شد و از آن پس به‌طور گسترده مورد استفاده قرار گرفت.

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

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

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



مطالعه روش‌های موجود در استاندارد IEEE

محدوده مهندسی نرم‌افزار و تمرکز آن

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

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

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




نیاز به مهندسی نرم‌افزار

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

با توجه به گسترش روزافزون دنیای رایانه امروزه بیش از هر زمان دیگری نیاز به متخصصان رایانه احساس می شود. متاسفانه این رشته در ایران بازار کار خوبی ندارد طبق آمارها ۶۳٫۲۷ درصد از فارغ‌التحصیلان در سال ۹۰ مشغول به کار در سایر مشاغل هستند. اما برای مهندسان سخت افزار هم امكان كار در شركت‌های تولیدكننده قطعات و دستگاه‌ها و مراكز صنعتی – تولیدی بسیار فراهم است و از نظر سطح درآمدی هم با توجه به دانش و پشتكار شخصی در حد متوسط قرار دارند. به طور کلی این رشته در ایران با استقبال چندانی رو به رو نیست؛ این نیز حاکی از نبود برخی از زیرساخت‌ها در ایران هست.




تکنولوژی‌ها و روش‌های عملی

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

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




ماهیت مهندسی نرم‌افزار

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

دیوان فعالیت‌های آماری آمریکا مهندسان نرم‌افزار را به عنوان زیرگروهی از «متخصصان رایانه»، با فرصت‌های شغلی‌ای مانند «دانشمند رایانه»، «برنامه نویس» و «مدیر شبکه» دسته بندی کرده‌است. BLS تمام مهندسان دیگر این شاخه علمی، که شامل مهندسان سخت‌افزار رایانه نیز هست، را به‌عنوان «مهندسان» دسته بندی می‌کند.






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




مهندس دانش کیست؟

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





سیستم‌های مدیریت دانش

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

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




تعریف مدیریت دانش

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




آفرینش و ربایش دانش

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




ذخیره سازی

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




انتشار و به اشتراک گذاری

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



به کارگیری دانش

پس از انجام گامه های فوق مدیریت دانش در سطح سازمان پیاده سازی می‌شود و مورد استفاده قرار می‌گیرد.




انواع دانش

چهار نوع دانش مشخص شده‌است:

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

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




تبدیل دانش

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

گروه افزار



سامانه های مکان یابی

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

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

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

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

ابزارهای مورد استفاده در این قسمت عبارتند از:

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

مراحل پیاده سازی نظام مدیریت دانش در سازمان

پیاده سازی یک نظام مدیریت دانش همچون سایر نظام ها و به تناسب موارد خاص آن در شش گامه صورت می‌گیرد:




گام نخست - امکان سنجی طرح

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




مرحله دوم- طراحی خام نظام

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




مرحله سوم- طراحی تفصیلی سیستم

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




مرحله چهارم- پیاده سازی

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




مرحله پنجم- نگهداری

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





مرحله ششم- ارزشیابی سیستم

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




سیستمهای کار- دانش

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




دانشگران

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




وظایف دانشگران

۱)وظیفه به روز رسانی دانش سازمان که در ارتباط با محیط خارج است را به عهده دارند.

۲)این افراد به عنوان مشاورین داخل سازمان به ارائه خدمات می‌پردازند.

۳)در راستای تغییر، ایجاد خلاقیت و ارتقا در داخل سازمان فعالیت می‌کنند.
نیازمندیهای سیستم کار دانش

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

حسین بن علی

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





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

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

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

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

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




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

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

روایاتی که در کتاب ابومخنف (مرگ ۱۵۷ هجری/ ۷۷۴ میلادی) و از شاهدان عینی واقعه نقل شده‌اند.
روایات متعددی که هشام بن محمد کلبی نقل شده که اکثراً از ابومخنف (استادش) نقل شده‌اند.
روایاتی دیگر از محدثان دیگر که اکثر اطلاع مهمی به دست نمی‌دهند.

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




دوران کودکی

محمد حائری می‌نویسد سال تولد حسین را سال ۳، ۴ یا ۵ هجری، روز تولدش را اکثراً ۳ شعبان، آخر ربیع‌الاول، اوایل شعبان، ۵ شعبان و زمانش را غروب پنج شنبه ذکر کرده‌اند. فاصله زمانی تولد حسن و حسین را ۶ ماه و ۱۰ روز، ۱۰ ماه و ۲۲ روز یا یک سال و دو ماه نوشته‌اند. اما مادلونگ معتقد است بنا به اکثر روایات، حسین در ۵ شعبان ۴ هجری/۱۰ ژانویه ۶۲۶ میلادی متولد شد. روایاتی هم وجود دارند که تاریخ تولدش را در جمادی‌الاول ۶ هجری/اوایل اکتبر ۶۲۷ میلادی ذکر می‌کنند.

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

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




دوران خلافت عمر و عثمان

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

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




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

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

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




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




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

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

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

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

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

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

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




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

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

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

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

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

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

ساعت :