اصطلاحات برنامه‌نویسی که باید بدانید

اصطلاحات برنامه‌نویسی که باید بدانید

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

اصطلاحات برنامه‌نویسی که باید بدانید

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

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

  • کد یا Code: منظور از کد در برنامه‌نویسی، دستوری است که توسط برنامه‌نویس نوشته می‌شود و پس از آن به وسیله‌ی ابزارهایی به زبان کامپیوتر تغییر پیدا می‌کند.
  • گیت یا Git: گیت، یک سیستم توزیع شده‌ی نگهداری و پیگیری تغییرات در کد‌ها است که در زمان تولید و گسترش نرم‌افزار مورد استفاده قرار می‌گیرد تا برنامه‌نویسان متعدد یک نرم‌افزار بتوانند کد‌های خود را در آن بارگذاری و مدیریت کنند و از تغییراتی که هر یک از همکاران در کد‌ها ایجاد کرده‌اند، به خوبی آگاه باشند.
  • رابط کاربری یا User Interface: رابط کاربری یا UI بر ارتباط بین کامپیوترها و انسان‌ها دلالت دارد. تمرکز این موضوع بر ظاهر و نحوه‌ی طراحی یک وب‌سایت معطوف است و معیارهای زیبایی شناختی در آن مورد بررسی قرار می‌گیرند.
  • تجربه‌‌ی کاربری یا User Experience: تمرکز تجربه‌ی کاربری یا UX بر راحتی و نحوه‌ی استفاده‌ی کاربران از وب‌سایت است. در دسترس بودن امکانات و حداقل شدن ابهامات در استفاده از یک وب‌سایت، بخش‌هایی از تجربه‌ی کاربری هستند. مفاهیم UI و UX معمولاً در کنار یکدیگر مطرح می‌گردند.
  • پایگاه داده یا Database: پایگاه داده یا DB مجموعه‌ای از اطلاعات سازماندهی شده است که به صورت الکترونیکی در یک سیستم کامپیوتری ذخیره شده، به روز رسانی می‌گردند و در دسترس قرار می‌گیرند.
  • تحلیل نیازمندی‌ها یا Requirement Analysis: تحلیل نیازمندی‌ها فرآیندی است که در آن تمام انتظارات کارفرما از یک اپلیکیشن یا نرم‌افزار تعریف می‌شود. این فرآیند شامل تمام فعالیت‌هایی است که می‌بایست در جهت شناسایی نیازهای تمام ذی‌نفعان انجام شود. برای مثال، به جهت راه‌اندازی یک وب‌سایت فروشگاهی، نیاز به بررسی تمام نیازهای مشتریان و کاربران، تأمین کنندگان و مالکان آن وب‌سایت الزامی است. داستان کاربری User story، از جمله مواردی است که می‌بایست در تحلیل نیازمندی‌ها به آن پرداخته شود. برای کسب اطلاعات بیشتر در رابطه با تحلیل نیازمندی‌ها و نکات مربوط به برون‌سپاری پروژه‌های برنامه‌نویسی به مقاله‌ی مربوطه مراجعه نمایید.
  • داستان کاربری یا User Story: داستان کاربری یک توضیح به زبان غیررسمی و عامیانه درباره‌ی سیستم نرم‌افزاری است که  یک یا چند ویژگی محصول را شرح می‌دهد. داستان‌های کاربری نقش بسیاری در تعیین وسعت پروژه دارا هستند. برای کسب اطلاعات بیشتر در رابطه با داستان کاربری به عنوان ابزاری بسیار کاربردی در تعریف پروژه، به مقاله‌ی داستان کاربری مراجعه نمایید
  • نیازمندی‌های کارکردی و غیرکارکردی (FunctionalNon-Functional Requirement): نیازمندی‌های کارکردی، تعیین کننده‌ی این موضوع هستند که یک سیستم می‌بایست چه وظایفی را انجام دهد و چه وظایفی را انجام ندهد. نیازمندی‌های غیرکارکردی، نشان دهنده‌ی آن است که این وظایف با چه صفات و مشخصاتی به انجام رسیده، و نکته‌ی قابل توجه در این باره، عدم تأثیر نیازمندی‌های غیرکارکردی بر کارکردی است. به عنوان مثال، ثبت‌نام در یک وب‌سایت، یک نیازمندی کارکردی بوده، و سرعت انجام اینکار و حافظه‌ای که اطلاعات در آن ذخیره می‌شوند، از جمله نیازمندی‌های غیرکارکردی شناخته می‌شوند.
  • طراحی نرم‌افزار یا Software Design: فرآیندی که پس از تحلیل نیازمندی‌ها انجام می‌شود، طراحی نرم‌افزار است. خروجی‌ این فرآیند، تبدیل نیازمندی‌ها به قالب‌هایی است که برای تبدیل شدن به برنامه‌های کامپیوتری مناسب هستند. برای مثال، نیاز به ارسال پیام به یک کاربر در یک وب‌سایت دیده می‌شود. حال تبدیل این نیاز به صورت یک نقشه‌ی راه و پیاده‌سازی نرم‌افزاری آن، طراحی نرم‌افزار نام می‌گیرد.
  • الگوی طراحی یا Design Pattern: الگوی طراحی در مهندسی نرم‌افزار، یکی از مفاهیمی است که در طول طراحی نرم‌افزار مورد استفاده قرار می‌گیرد. این الگو‌ها راه‌حل‌های عمومی هستند که به صورت تکراری، با هدف حل مسائلی که به صورت معمول در مرحله طراحی با آن مواجه هستیم استفاده می‌شوند.
  • معماری نرم‌افزار یا Software Architecture: معماری نرم‌افزار به عنوان یکی از مراحل طراحی نرم‌افزار مورد استفاده قرار می‌گیرد و بر ساختار اساسی یک سیستم نرم‌افزاری دلالت دارد و نظم‌‌وترتیب ساخت چنین سیستمی را بوجود می‌آورد. معماری نرم‌افزار شامل عناصر نرم‌افزار و ارتباط بین آن‌ها و همچنین خصایص آن‌هاست.
  • توسعه یا Development: توسعه در مهندسی نرم‌افزار، فرآیندی است که طی آن طراحی نرم‌افزار به کد تبدیل می‌شود.
  • تست یا Test: تست یک نرم‌افزار فرآیندی است که در آن ورودی‌ها و خروجی‌های مورد انتظار از اجرای یک برنامه مورد سنجش قرار می‌گیرند و هدف آن شناسایی باگ‌ها و خطاهای موجود در برنامه است. اصلی‌ترین هدف از انجام فرآیند تست، بررسی این موضوع است که آیا برنامه‌ی تولید شده نیازمندی‌های لازم را پوشش می‌دهد یا خیر.
  • تضمین کیفیت یا Quality Assurance: در فرآیند تست، کارکرد‌های یک برنامه مورد بررسی قرار می‌گیرند. اما هدف از فرآیند تضمین کیفیت این است که کل برنامه و کارکرد‌ها در کنار یکدیگر بدون خطا و ایراد اجرا شوند.
  • استقرار یا Deployment: استقرار یک نرم‌افزار، تمام فعالیت‌هایی است که در جهت آماده‌سازی یک سیستم نرم‌افزاری برای در دسترس قرار دادن و استفاده‌ی کاربران از آن نرم‌افزار انجام می‌شود.
  • نگهداری یا Maintenance: نگهداری از یک محصول برنامه‌نویسی فرآیندی است که در آن، نرم‌افزار یا برنامه پس از تحویل، با هدف تصحیح خطاها، بهبود عملکرد و به ثمر رساندن هر چه بهتر خروجی‌ها اصلاح می‌گردد.
  • آبشاری یا Waterfall: متودولوژی آبشاری یکی از سبک‌های ایجاد یک نرم‌افزار است. در این متودولوژی، تمام مراحل ایجاد یک وب‌سایت (تحلیل نیازمندی‌ها، طراحی، توسعه، تست و استقرار) به ترتیب و هر مرحله به طور کامل انجام می‌شود. در واقع، انجام پروژه با تحلیل نیازمندی‌ها آغاز گردیده، و پس از انجام هر مرحله به طور کامل، با استقرار نهایی برنامه و ایجاد آن به پایان می‌رسد.
  • چابک یا Agile: متودولوژی چابک، یکی از سبک‌های توسعه‌ی نرم‌افزار است که در مقابل متودولوژی آبشاری قرار می‌گیرد. در سبک چابک، مراحل ایجاد یک برنامه، که شامل تحلیل نیازمندی‌ها، طراحی، توسعه، تست و استقرار است، به ترتیب به انجام نرسیده، و در هر بازه‌ی زمانی، قسمتی از مراحل انجام می‌شوند. به عنوان مثال، قسمتی از تحلیل نیازمندی‌ها به اتمام می‌رسد و پس از طراحی، توسعه و تست آن قسمت انجام می‌شود و قبل از آغاز استقرار بار دیگر به مرحله‌ی طراحی برگشته و پس از آن، تحلیل نیازمندی‌های بخش دیگری از ایجاد یک برنامه آغاز می‌شود. توجه داشته باشید که در این سبک، هیچ‌کدام از مراحل حذف یا کنار گذاشته نمی‌شوند، بلکه فقط کل برنامه به بخش‌های کوچک‌تر تقسیم شده، و هرکدام از آن‌ها مراحل توسعه‌ی نرم‌افزاری را جداگانه طی می‌کنند.