انجمن های تخصصی  فلش خور
باگ چیست (Bug یا حفره امنیتی) - نسخه‌ی قابل چاپ

+- انجمن های تخصصی فلش خور (http://www.flashkhor.com/forum)
+-- انجمن: رایانه (http://www.flashkhor.com/forum/forumdisplay.php?fid=27)
+--- انجمن: امنیت و روش های مقابله با هـک (http://www.flashkhor.com/forum/forumdisplay.php?fid=85)
+--- موضوع: باگ چیست (Bug یا حفره امنیتی) (/showthread.php?tid=272520)



باگ چیست (Bug یا حفره امنیتی) - امیر‌حسین - 17-01-2019

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

 
چرا نرم افزارها باگ دارند؟
چرا هیچ وقت شر این باگ ها از سرمون کم نمی شود ؟
 
شاید هیچ مفهوم و موضوع دیگری در علوم مهندسی رو نتونیم پیدا کنیم که به اندازه مفهوم باگ، این واقعیت مهم را برای انسان روشن کرده باشه که هیچ فرمول و قانون ساخت انسان،بی اشکال و نقص نیست و در هر طرح و برنامه ای، بدون شک نقصان ها و لغزش هایی وجود داره که در نگاه اول به چشم نمیاد.بنابراین همواره باید در جهت اصلاح طرح ها، برنامه ها، قوانین و فرمول ها تلاش کنین.
باگ از نظر لغوی یعنی حشره کوچک و در تاریخ مهندسی نرم افزار گفته می شود .
این اصطلاح رو اولین بار گریس هوپر خانمی که در دانشگاه هاروارد مشغول تحصیل و تحقیق در رشته کامپیوتر بود ، به کار برد و اون که در حال کار با کامپیوترهای Mark II و Mark III بود ، یک بار با مشکل مواجه شد و تکنسین هایی که برای بررسی مشکل و تعمیر کامپیوتر، آن را باز کرده بودند سوسکی را پیدا کردند که وارد دستگاه شده بود و آن را از کار انداخته بود .
البته در حقیقت این واژه رو اولین بار همون تکنسین هایی که این حشره را داخل دستگاه پیدا کرده بودند، به شوخی به کار برده بودند البته این تکنسین ها یا خانم هوپر اولین کسانی نبودند که از این واژه برای اشاره به یک ایراد در دستگاهی استفاده می کردند و اونها صرفاً برای اولین بار از این اصطلاح در دنیای کامپیوتر استفاده کردند ، ولی اعتقاد بر اینه که اصطلاح Debugg توسط همین افراد ابداع شد .
موضوع باگ یکی از سرفصل های مهم رشته مهندسی نرم افزار  هست و از این رو متون و کتاب های مفصلی در زمینه Debugging یا اشکال زدایی از نرم افزار و متدهای اون تالیف شده و همچنان هم ادامه داره و برنامه نویسان تازه کار معمولاً از این شاخه مهندسی نرم افزار گریزانند و امیدوارند برنامه هایی بنویسند که به قدری خوب باشه که اصلاً کارش به اشکال زدایی نکشه، ولی پس از دو سه سال کار حرفه ای در این زمینه سرانجام تسلیم میشن و آشنایی با اصول علمی اشکال زدایی برایشان به یک ضرورت تبدیل می شه، مگر اینکه نخواهند به اصول اخلاقی و حرفه ای مهندسی نرم افزار متعهد باشند و از اینکه برنامه های ساخت آنها پر از انواع باگ و ایراد باشه ابایی نداشته باشن اما برطرف کردن باگ ها برای بسیاری از برنامه نویسان غیرآماتور یکی از قسمت های چالش برانگیزه و لذت بخش کاره و تقریباً مثل حل کردن معماست .
 
وقتی در دنیای سیستم های دیجیتالی و کامپیوتری از باگ صحبت می کنیم ، هدفمون بیشتر یک نقص نرم افزاری است و کمتر پیش میآد یک نقص دیجیتالی سخت افزاری را باگ نامگذاری کنیم هرچند این لغت از نظر تاریخی در مهندسی مکانیک و ادوات سخت افزاری ریشه داره  بنابراین اون دسته از وسایل دیجیتالی که فاقد نرم افزارند ، اصولاً در این بحث جای نمی گیره .