باگ

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

باگ می‌تواند در یکی از معانی زیر به کار رود:


باگ چیست؟

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

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

BY:KING.ADE75