تجزیه و تحلیل کد مبتنی بر KPI
برخی از ویرایشها در این مقاله در چارچوب یک تکلیف دانشگاهی انجام شدهاند. این تکالیف توسط ؟ برای دانشجویان ؟ تعیین شدهاند. |
این مقاله، تجزیه و تحلیل کد مبتنی بر KPI، اخیراً بهواسطهٔ فرایند ایجاد مقاله ایجاد شدهاست. بازبینیکننده در حال بستن درخواست است و این برچسب احتمالاً بهزودی برداشته میشود.
ابزارهای بازبینی: پیشبارگیری بحث اعلان به نگارنده |
خطای اسکریپتی: پودمان «AfC submission catcheck» وجود ندارد.
تجزیه و تحلیل کد مبتنی بر KPI (KPI = شاخص عملکرد کلیدی) که روشی برای تجزیه و تحلیل کد منبع نرم افزار و کد منبع مرتبط با سیستم های IT برای به دست آوردن ذهنیتی درباره جنبههای حیاتی تجارت توسعه یک سیستم نرم افزاری مانند عملکرد تیمی، زمان عرضه به بازار، مدیریت ریسک، پیشبینی شکست و بسیاری از موارد دیگر است.
تجزیه و تحلیل کد مبتنی بر KPI - توسعه یافته در موسسه هاسو پلاتنر می باشد که یک تحلیل ایستای برنامه از کد منبع به منظور بهبود کیفیت نرمافزار است. با این حال، تجزیه و تحلیل کد مبتنی بر KPI تنها کد منبع را تجزیه و تحلیل نمیکند؛ بلکه از سایر منابع اطلاعاتی مانند فعالیتهای کدگذاری نیز برای ایجاد تصویری جامع از کیفیت و پیشرفت توسعه یک سیستم نرم افزاری استفاده می کند.
حالت عملکرد[ویرایش]
تجزیه و تحلیل کد مبتنی بر KPI یک فرآیند کاملاً خودکار است که به این ترتیب فعالیتهای تیم و اصلاحات در کد منبع کلی یک سیستم نرمافزاری را قادر میسازد که در زمان واقعی نظارت شود. به این ترتیب، روندهای منفی به محض ظهور آشکار می شوند. بنابراین "سیستم هشدار اولیه" ابزار قدرتمندی برای کاهش هزینه ها و افزایش سرعت توسعه ارائه می دهد. از طریق سیستم هشدار اولیه تجزیه و تحلیل کد مبتنی بر KPI، هر سطح پیچیدگی تازه معرفی شده به موقع کشف می شود و بنابراین می توان تأثیر آن را به حداقل رساند و توسعه دهندگان به جای هدر دادن زمان ارزشمند برای کاهش پیچیدگیهای قدیمی ،می توانند از زمان خود برای عملکردهای جدید استفاده کنند و به تیم کمک کنند تا بهرهوری را افزایش دهند.
عامل انسانی[ویرایش]
"عامل انسانی" در تجزیه و تحلیل کد مبتنی بر KPI گنجانده شده است، در حقیقت به این معنی که مشخص میکند کدام کد توسط کدام توسعهدهنده و در چه زمانی ثبت شده است. به این ترتیب می توان کیفیت نرم افزار ارائه شده توسط هر توسعه دهنده را مشخص کرد و هر گونه مشکل در صلاحیت، جهت دهی و انگیزه کارکنان را زود تشخیص داد و اقدامات مناسبی برای رفع آنها ارائه کرد.
منابع در نظر گرفته شده[ویرایش]
به منظور تعیین شاخصهای کلیدی عملکرد (KPI ها) - ارقامی که برای بهرهوری و موفقیت پروژههای توسعه نرمافزار حیاتی هستند - منابع دادههای متعدد مربوط به کد نرمافزار خوانده میشوند. برای این منظور، تجزیه و تحلیل کد مبتنی بر KPI، روشهای برگرفته از دادهکاوی و هوش تجاری را مورد استفاده قرار میدهد که در غیر این صورت در حسابداری و تجزیه و تحلیل مشتریان استفاده میشود. تجزیه و تحلیل کد مبتنی بر KPI ، داده ها را از منابع زیر استخراج می کند و آنها را در یک مدل داده تحلیلی ادغام می کند. در این مدل داده، مقادیر شاخص های کلیدی عملکرد محاسبه می شوند. منابع داده عبارتند از:
- کنترل نسخه(به انگلیسی: Revision control) ، همچنین به عنوان کنترل نسخه(به انگلیسی: Version control) شناخته میشود. در این سیستم هر مرحله از هر توسعه دهنده برای کل چرخه عمر سیستم نرم افزار ردیابی می شود. داده ها توضیح می دهند: "کدام توسعهدهنده چه زمانی را تغییر داد." این دادهها مبنایی برای پاسخ به این سوال فراهم میکند که «چه تلاش یا هزینه توسعه در کدام حوزههای کد سرمایهگذاری شده است؟» سیستم های کنترل بازنگری برجسته عبارتند از: ساب ورژن(به انگلیسی: Subversion)، گیت(به انگلیسی: Git)، پرفرس(به انگلیسی: Perforce)، مرکوریال(به انگلیسی: Mercurial)، هم افزایی(به انگلیسی: Synergy)، پاکسازی(به انگلیسی: ClearCase).
- سیستم های تست نرم افزار. این سیستمها اطلاعاتی را ارائه میدهند که شامل این است که کدام بخش از کد منبع قبلاً آزمایش شده است. با این اطلاعات، مشخص میشود که در چه مواردی در آزمایشها شکافهایی وجود دارد، احتمالاً حتی در مکانهایی که این شکافها عمداً باقی ماندهاند (به دلیل هزینه و تلاش قابل توجهی که در راهاندازی آزمایشها انجام میشود).
- سیستم های ردیابی اشکال ( ردیاب اشکال ). این اطلاعات را می توان در ترکیب با اطلاعات ارائه شده توسط سیستم کنترل بازبینی برای کمک به نتیجه گیری در مورد میزان خطای مناطق خاصی از کد استفاده کرد.
- سیستم های ردیابی مشکل . اطلاعات تولید شده توسط این سیستم ها، در ارتباط با اطلاعات حاصل از کنترل بازنگری، امکان نتیجه گیری در مورد فعالیت توسعه مرتبط با الزامات فنی خاص را فراهم می کند. علاوه بر این، می توان از داده های دقیق در مورد سرمایه گذاری زمانی برای تجزیه و تحلیل استفاده کرد.
- پروفایل های عملکرد ( پروفایلینگ (برنامه نویسی کامپیوتر) ). دادههای مربوط به عملکرد سیستم نرمافزاری به تجزیه و تحلیل این که کدام مناطق کد بیشترین منابع CPU(واحد پردازنده مرکزی) را مصرف میکنند، کمک میکند.
نتایج تجزیه و تحلیل[ویرایش]
با توجه به بسیاری از عوامل تأثیرگذار که در مدل داده های تجزیه و تحلیل تغذیه می شود، روش های بهینه سازی کد منبع و همچنین الزامات اقدام در زمینه های صلاحیت کارکنان، جهتدهی کارکنان و فرآیندهای توسعه قابل شناسایی است:
- دانش در مورد جایی که نیاز است کد منبع دوباره بررسی شود زیرا بسیار پیچیده است یا عملکرد زمان اجرای پایینتری دارد:
- لانه سازی عمیق که به طور تصاعدی تعداد مسیرهای کنترل جریان را افزایش می دهد.
- واحدهای کد عظیم و یکپارچه که در آنها چندین جنبه با هم مخلوط شده اند به طوری که برای تغییر یک جانبه، تغییرات باید در چندین نقطه اجرا شوند.
- شناسایی چند نخی غیر ضروری. چند نخی(به انگلیسی: Multi-threading) یک منبع خطای بسیار بزرگ است. درک رفتار زمان اجرای کد چند نخی دشوار است، به این معنی که هزینه و تلاش مورد نیاز برای توسعه یا نگهداری آن به نسبت بالاست. بنابراین، به عنوان یک قاعده کلی، باید از چند نخی غیر ضروری اجتناب شود.
- شناسایی عدم رسیدگی کافی به استثنا. اگر بلوکهای try-catch بسیار کمی در کد وجود داشته باشد یا هیچ چیزی در تابع catch اجرا نشود، در صورت بروز خطاهای برنامه، عواقب آن میتواند جدی باشد.
- شناسایی بخشهایی از کد منبع که از آخرین تست نرمافزار تغییر کردهاند، بهعنوان مثال، آزمونها باید کجا انجام شوند و کجا انجام نشوند. این اطلاعات به شما امکان میدهد تا تستهای نرمافزار را هوشمندانهتر برنامهریزی کنید: عملکرد جدید را میتوان با شدت بیشتری آزمایش کرد یا منابع را ذخیره کرد.
- آگاهی از میزان هزینه و تلاش برای توسعه یا گسترش یک ماژول نرم افزاری خاص:
- هنگام گسترش ماژولهای نرمافزاری موجود، توصیهای برای انجام دادن میتواند انجام بازآفرینی کد باشد.
- هر قابلیت جدید توسعه یافته را می توان برای تعیین اینکه آیا یک تجزیه و تحلیل هدف/عملکرد برای هزینه ها انجام شده است یا خیر، تجزیه و تحلیل کرد و اگر چنین است چرا. در صورت شناسایی علل انحراف از برنامه، می توان اقداماتی را برای افزایش دقت در برنامه ریزی های آتی انجام داد.
- با ردیابی اینکه کدام توسعهدهنده (تیم) کدام کد منبع را تولید کرده است و بررسی نرمافزار ایجاد شده در یک دوره طولانی، میتوان هرگونه نقص را بهعنوان لغزشهای یکباره در کیفیت، شواهدی مبنی بر نیاز به بهبود صلاحیت کارمندان یا اینکه آیا فرآیند توسعه نرمافزار نیاز به بهینه سازی بیشتر دارد شناسایی کرد.
در نهایت، مدل داده های تجزیه و تحلیل تحلیل کد مبتنی بر KPI، در مراحل اولیه، یک مرور کلی از وضعیت نرم افزار تولید شده، مهارتها و تلاش کارکنان و همچنین بلوغ توسعه نرم افزار را در اختیار مدیران پروژه فناوری اطلاعات قرار میدهد.
یکی از روش های نمایش دادههای تجزیه و تحلیل، به اصطلاح نقشه های نرم افزاری است .
جستارهای وابسته[ویرایش]
- تجزیه و تحلیل برنامه (علوم کامپیوتر)
- تحلیل برنامه پویا
- معناشناسی رسمی زبان های برنامه نویسی
- درستی یابی صوری
- تست نرم افزار
- مولد مستندسازی
This article "تجزیه و تحلیل کد مبتنی بر KPI" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:تجزیه و تحلیل کد مبتنی بر KPI. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.