برنامه نویسی مدرن

ساخت وبلاگ

نیازهای کیفیتیویرایش

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

  • قابلیت اطمینان: این که چقدر نتایج یک برنامه درست باشند، به صحت طراحی الگوریتم و به حداقل رساندن اشتباهات برنامه‌نویسی مربوط می‌شود. اشتباهات برنامه‌نویسی شامل اشکالاتی مثل اشکال در مدیریت منابع (مثل سرریز شدن بافر یا وضعیت رقابتی) و اشکالات منطقی (مثل تقسیم بر صفر یا خطاهای off-by-one).
  • پایایی: این که یک برنامه چگونه اشکالاتی (نه باگ‌ها) را که ممکن است پیش بیایند، پیش بینی کرده است. این شامل حالتهایی مانند دریافت اطلاعات نادرست، نامناسب یا غلط می‌شود؛ همچنین کمبود منابعی مانند حافظه، سرویسهای سیستم عامل یا اتصال به شبکه و سایر اشکالات مانند خطای کاربر یا اشکالات قطع برق نیز در این دسته قرار می‌گیرند.
  • کاربرد پذیری: ارگونومی یک برنامه: آسانی استفاده از برنامه برای شخصی که می‌خواهد از آن برای کار در نظر گرفته شده استفاده کند یا گاهی برای کارهای پیش بینی نشده آن را به کار برد. این مورد می‌تواند به تنهایی و علی‌رغم تمام موارد دیگر باعث موفقیت یا شکست شود. طیف وسیعی از عناصر متنی، تصویری و گاهی سخت‌افزاری وجود دارند که می‌توانند باعث ارتقای وضوح، درک، پیوستگی، کامل بودن واسط کاربری برنامه شوند.
  • قابلیت انتقال: طیف سخت‌افزارها و سیستم عاملهاییکه کد منبع برنامه را بتوان روی آنها با مترجم یا مفسراجرا کرد. این قابلیت بستگی به تفاوت در تسهیلاتی دارد که سیستمهای مختلف از نظر منابع سخت‌افزاری و سیستم عاملها برای برنامه‌نویسی ارائه می‌کنند. همچنین رفتار پیش بینی شده سخت‌افزارها و سیستم‌های عامل، و در دسترس بودن مترجم‌ها (و منابع کتابخانه‌ای) اختصاصی در آن سیستمها برای کد منبع موجود نیز مهم است.
  • نگهداشت پذیری: این که سازندگان و ارتقا دهندگان فعلی برنامه یا افراد دیگری در آینده بتوانند به راحتی ارتقاها یا تغییراتی در برنامه انجام دهند تا خطاها وحفره‌های امنیتی را رفع کنند یا بتوانند آن را برای محیط جدیدی تطبیق دهند. در این مورد تلاش مناسب اولیه[۱] در ایجاد برنامه است که نقش عمده‌ای بازی می‌کند. این خاصیت ممکن است تأثیر خیلی زیادی روی کاربر نهایی برنامه نداشته باشد ولی در بلند مدت برای سرنوشت یک برنامه خیلی مهم است.
  • کارایی / عملکرد :اندازه‌گیری منابع سیستمی مورد نیاز برای یک برنامه (زمان پردازنده، فضای حافظه، وسایل کند مثل دیسکها، پهنای باند شبکه و موارد دیگری مثل تعامل با کاربر): هر چقدر کمتر، بهتر. این خاصیت همچنین شامل مدیریت صحیح منابع مانند پاک کردنفایلهای موقت و از بین بردن نشتی‌های حافظه نیز می‌شود.

خوانایی کد منبعویرایش

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

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

پیروی از یک سبک برنامه‌نویسی منسجم معمولاً به خوانایی کمک می‌کند؛ اگر چه خوانایی چیزی بیش از فقط سبک برنامه‌نویسی است. عوامل زیادی که معمولاً دخالتی در توانایی رایانه برای ترجمه مناسب و اجرای بهتر برنامه ندارند، به خوانایی کمک می‌کنند. بعضی از این عوامل اینها هستند:

  • بلوک بندی متفاوت (فاصله سفید)
  • یادآورها
  • تکه‌تکه کردن نوشته‌های طولانی
  • قواعد نامگذاری برای اشیا (مثل متغیرها، کلاسها، روالها و غیره)

جنبه‌های دیداری برای این کار (مثل تورفتگی، شکستن خطوط، علامت گذاری رنگی و مانند اینها) معمولاً به وسیلهویرایشگر کد منبع فراهم می‌شود، اما جنبه‌های محتوایی بازتابی از استعداد و توانایی‌های برنامه‌نویس است.

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

پیچیدگی الگوریتمیویرایش

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

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

روشهاویرایش

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

محبوب‌ترین زبانویرایش

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

اشکال زداییویرایش

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

مهندسی نرم افزار...
ما را در سایت مهندسی نرم افزار دنبال می کنید

برچسب : نویسنده : programminghistory بازدید : 218 تاريخ : يکشنبه 12 آذر 1396 ساعت: 12:42