در طول فعالیت های حرفه ای ، یک برنامه نویس مجبور است با بسیاری از موقعیت ها که نیاز به تجزیه و تحلیل پیچیده قطعات زیادی از کد منبع یا حتی کل برنامه ها دارد کنار بیاید. تحقیق در مورد راه حل ها و روش های موفقیت آمیز ، تجزیه و تحلیل الگوریتم های پیاده سازی شده یا انتقال ساده پروژه دیگر به تیم ، اغلب جدا کردن برنامه ای را که توسط شخص دیگری نوشته شده ضروری می کند.
ضروری است
- - برنامه مشاهده کد منبع ؛
- - احتمالاً مهندسی معکوس و ابزارهای موردی.
دستورالعمل ها
مرحله 1
جریان انتقال کنترل برنامه تجزیه شده را بررسی کنید نقطه ورود را مشخص کنید. به عنوان مثال ، این تابع اصلی در C و C ++ است ، آغاز یک بلوک ساختار سطح اول بدون نام ، با کلمه کلیدی END با نقطه به زبان پاسکال پایان می یابد. با شروع از نقطه ورود ، تمام مسیرهای فراخوانی به توابع ، رویه ها ، روش کلاس ها. نمودار جریان کنترل سطح بالا را ترسیم کنید. برای ساده سازی این فرآیند ، می توانید از ابزارهای مختلف مهندسی معکوس استفاده کنید. کد منبع عناصر ساختاری برنامه تجزیه شده را با جزئیات بیشتری تجزیه و تحلیل کنید. نمودارهای جریان کنترل یا نمودارهای جریان را برای عملکردها و روشهای جداگانه ترسیم کنید.
گام 2
جریان داده های برنامه در حال تجزیه و تحلیل را تجزیه و تحلیل کنید. ساختارهای مورد استفاده برای ذخیره اطلاعات را شناسایی کرده و آنها را بین عناصر کاربردی برنامه انتقال دهید. قطعه های کدی را که داده ها را از یک فرم به فرم دیگر تبدیل می کنند ، شناسایی کنید. لیستی از مکان های برنامه را که اطلاعات از محیط خارجی دریافت می شود و همچنین خروجی آن در جایی تهیه کنید. ابزارهای مهندسی مجدد و ابزارهای موردی (به عنوان مثال برای ساختن نمودار وراثت و نمودار وابستگی) نیز به این نوع تحلیل کمک می کند.
مرحله 3
با داشتن درک کامل از اصول عملکرد آن ، برنامه را جدا کنید. بر اساس دانش در مورد جریان انتقال کنترل بین عناصر ساختاری ، و همچنین در داخل آنها ، دانش جریانات و انواع تبدیل داده ها ، الگوریتم های اصلی کار را شناسایی کنید. الگوریتم های پردازش داده ها و کنترل رابط را جدا کنید. الگوریتم های پردازش معمولی را انتخاب کرده و آنها را طبقه بندی کنید. الگوریتم ها را بر اساس تعامل اجزای مختلف شناسایی کنید (به عنوان مثال جستجو می تواند به طور مستقل و به عنوان بخشی از یک نوع استفاده شود). در صورت لزوم ، نمودارهای جریان با درجات مختلف از جزئیات را برای نشان دادن عملکرد برنامه تهیه کنید.