بایگانی برچسب‌ها : software development

اشکال زدایی Debugging

اشکال زدایی یا Debugging چیست؟

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

اشکال‌زدایی در واقع یکی از مراحل فرایند توسعه‌ی نرم‌افزار (Software Development) به شمار می‌رود و می‌تواند شامل برطرف کردن خطاهای ساده تا نظارت روی عملکرد سیستم، بررسی وضعیت مموری هنگام بروز یک خطا و … شود.

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

برای یافتن عیوب یک نرم افزار، علاوه بر روش تعاملی (Interactive Debugging) که با استفاده از اغلب Debugger ها قابل انجام است روش‌های رایج دیگری از جمله اشکال زدایی مبتنی بر دستورات Print (یا Print Debugging) نیز وجود دارد که با کمک مقادیر ثبت شده، توسعه دهنده را از سیر اجرای برنامه با خبر می‌سازد. اشکال زدایی از راه دور (یا Remote Debugging که در آن نرم‌افزاری که قرار است مورد اشکال‌زدایی واقع شود روی سیستمی غیر از سیستم اشکال زدا قرار دارد) و همچنین اشکال زدایی پس از وقوع مشکل (یا Post-mortem Debugging که از طریق روش‌های ردیابی و تحلیل وضعیت حافظه هنگام وقوع مشکل میسر می‌شود) از دیگر روش‌های دیباگینگ به شمار می‌روند. گفتنی است برای اشکال زدایی سخت‌افزارها نیز ابزارهای مخصوص و متنوعی طراحی شده است.

توسعه دهنده Developer

توسعه دهنده یا Developer به چه معناست؟

توسعه دهنده نرم افزار (Software developer) به فردی اطلاق می‌شود که می‌تواند بخشی یا تمام وجوه مختلف تولید و ایجاد یک نرم‌افزار (Software Development) نظیر کدنویسی، طراحی، مستندسازی، تحلیل خواسته‌ها، تست، اشکال زدایی و نگه‌داری و … را انجام دهد.

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

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

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

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا