Як розібрати програму

У процесі професійної діяльності програмісту доводиться стикатися з безліччю ситуацій, що вимагають комплексного аналізу великих фрагментів вихідного коду або ж навіть цілих додатків. Дослідження вдалих рішень і практик, аналіз вже реалізованих алгоритмів або ж просто переклад в команду іншого проекту часто викликає необхідність розібрати програму, написану кимось ще.
Як розібрати програму

Вам знадобиться

  • - програма для перегляду вихідного коду;
  • - можливо, кошти реверс-інженерії та case-засоби.

Інструкція

1


Досліджуйте потоки передачі управління розглядуваної програми. Виявити точку входу. Їй, наприклад, є функція main в C і C ++, початок неіменованого структурного блоку першого рівня, що завершується ключовим словом END з точкою, в pascal.Начіная від точки входу, прослідкуйте всі маршрути викликів функцій, процедур, методів класів. Складіть укрупнену діаграму потоків управління. Для спрощення цього процесу можна використовувати різні засоби реверс-інженерінга.Более детально проаналізуйте вихідний код структурних елементів розглядуваної програми. Складіть діаграми потоків управління або блок-схеми алгоритмів, що реалізуються окремими функціями і методами.
2



Здійсніть аналіз потоків даних розглядуваної програми. Виявити структури, використовувані для зберігання інформації і її передачі між функціональними елементами програми. Виявити фрагменти коду, в яких здійснюється перетворення даних з однієї форми в іншу. Складіть перелік місць програми, в яких відбувається отримання інформації з зовнішнього середовища, а також її висновок куди-небудь. При проведенні аналізу подібного роду також допоможуть засоби реінжиринг і case-засоби (наприклад, для побудови діаграми успадкування та діаграми залежностей).
3
розберіть програму, склавши повне уявлення про принципи її функціонування. На основі знань про потоках передачі управління між структурними елементами, а також всередині них, знань про потоках і типах перетворень даних, виявите основні алгоритми работи.Разделіте алгоритми обробки даних і управління інтерфейсом. Серед алгоритмів обробки виділіть типові, классифицируйте їх. Виявити алгоритми, засновані на взаємодії різних компонентів (наприклад, пошук може використовуватися як самостійно, так і в складі сортування). При необхідності складіть блок-схеми різного ступеня деталізації, що ілюструють роботу програми.


Увага, тільки СЬОГОДНІ!


Оцініть, будь ласка статтю
Всього голосів: 188
Увага, тільки СЬОГОДНІ!