Font Size

SCREEN

Profile

Layout

Menu Style

Cpanel

بررسی روش Static Code Analysis

بررسی روش Static Code Analysis

 ازجمله کاربردهای مهم روش های تحلیل کد , بازنگری Source Code و تصحیح خطاها است. در اوایل دوران توسعه نرم افزار ها ,الزامی برای بررسی و بازبینی وجود نداشت تا این که در سال 1970 بازنگری رسمی برای تولید و توسعه محصولات نرم افزاری صورت گرفت. برای تحلیل , از 2 رویکرد ایستا  و پویا استفاده می شود. در ادامه با یکی از این روش ها آشنا خواهید شد ...

 برنامه نویسان اولیه تمایل به تحلیل کد به روش ایستا داشتند , اما این به معنی چشم پوشی از روش دیگر نیست , بلکه بهترین روش, استفاده ترکیبی از  هر دو رویکرد است. تعاریف معین شده  :

  • در روش تحلیل کد ایستا , کد اصلی , قواعد مهم  و نحوه استفاده از آرگومان ها بررسی می شود.
  • در روش تحلیل کد پویا , کد اجرا می شود و نتایج  وابسته به برنامه مورد تحقیق قرار می گیرد.

به طور دقیق تر , در رویکرد تحلیل ایستا , بررسی کد بدون اجرا شدن برنامه صورت می گیرد . در شرایطی خاص Source code  ها و در سایر موارد   Object Code ها بررسی می شوند.

یکی از روش های این رویکرد  Manual Review  است. این گونه بررسی , در هر مرحله ای از توسعه نرم افزار انجام می شود اما بهترین زمان برای انجام آن , مراحل آغازین کد نویسی است . زیرا با پیشرفت پروژه ،حجم کد نویسی بسیار زیاد می شود و تحلیل نقاط آسیب پذیر برنامه  به سختی انجام خواهد شد. این بررسی فقط منحصر به مشاهده کد های برنامه نیست , بلکه شامل بازنگری در  مستندات , نیازمندی ها و طراحی هم می شود و می تواند توسط دو دسته از افراد صورت گیرد :

  • افرادی که به تنهایی کار بررسی و تحلیل را انجام می دهند .
  • تیم تحلیل

برای دسته اول , مواردی که دانستن آن برای برنامه نویسان اهمیت دارد به قرار زیر است :

  1. مراحلی که در توسعه نرم افزار طی می شود , برای بررسی طبقه بندی نماییم .( طراحی , نیاز سنجی و ...)
  2. بلافاصله بعد از نوشتن کد , آن را به سرعت تحلیل نکنیم.
  3. یک لیست برای یادداشت کردن خطاها تهیه نماییم.

 اما برای دسته دوم , کار کمی پیچیده تر است. آن ها می توانند با تحلیل اولیه و ارائه آن به مخاطبانشان به نتیجه ای مطلوب برسند.

تصویر زیر نشان دهنده فرآیند تحلیل طبق دسته بندی بالا است .

 

کاربرد ابزارها تحلیل ایستا

ابزارهایی که برای این کار طراحی شده است , غالبا برای تسریع در تحلیل کد به کار می روند .بهترین ابزار های تحلیل ,ویژگی های بارزی همچون استفاده آسان و ایمن را دارند. اما باید این نکته را یادآوری کرد که این ابزار ها تمامی مشکلات و مسائل امنیتی برنامه را حل نمی کنند. مطابق زبان های برنامه نویسی مختلف, ابزار های مناسبی تولید شده است که در زیر فهرستی از آن را مشاهده می کنید:

زبان های تحت .NET

  • FxCop
  • StyleCop

زبان Java

  • FindBugs
  • PMD
  • Jlint

زبان C++/C

  • Lint
  • CodeSonar
  • Mygcc

 

نکته نهایی در استفاده از این ابزار ها :

ممکن است  تحلیل ابزاری ، متفاوت با آنچه برنامه نویس از کدنویسی مدنظرش بوده ، باشد. بنابراین نباید به عنوان اولین راهکار  از این ابزار ها استفاده کرد!

 

 

ترجمه ای آزاد از مقاله ی

An overview on the Static Code Analysis approach in Software Development

 

کتب و جزوات