You are on page 1of 2

Лабораторна робота 1_5

Дослідження методів складання якісного коду


Робота розрахована на 6 пар
(Довідковий матеріал у конспекті лекції " Тема 1.5. Рекомендації щодо складання
якісного коду)

Робота призначена для колективного виконання та обговорення на форумі.


При її виконанні слід проаналізувати запропонований проект «Kvadrat2» і з’ясувати
наступні питання:
 Залежність коду від алгоритму, проекту та інструментарію програмування.
 Правила та прийоми складання якісного коду.
 Структурно-функціональна декомпозиція.
 Побудова ієрархії класів, абстрагування, вимоги до інтерфейсів.
 Обрання типів та оголошення змінних.
 Ефективний стиль програмування, його переваги та накладні витрати.
 Коментування і документування коду.

Мета роботи:
- дослідити на прикладах, завдяки чого досягається якість програмного коду.
- опанувати методи і прийоми, що забезпечують досягнення ефективності і
зрозумілості коду.
- розвивати здібність до якісного кодування.
Тобто вдосконалити своє вміння читати і аналізувати програмний код.
План роботи:
1. Проаналізувати надані приклади програмного коду. Виявити, в чому полягає
відмінність на концептуальному рівні, структурному рівні та на рівні кодування.
2. Порівняти надані фрагменти коду, що реалізують однакові функції, за різними
критеріями. З'ясувати, в чому переваги і недоліки різних реалізацій.
3. Розробити пропозиції щодо поліпшення коду розглянутого проекту.
4. Кожне з вказаних питань обговорити на форумі у MOODLE.
5. Скласти звіт про опановані прийоми складання якісного коду, ілюстрований
власними прикладами.
Задачі, завдання для колективного виконання:
Є проект Kvadrat2, реалізований на мові С#.
Проект містить головну форму з графічним полем pictureBox1 та двома
кнопками.
Проект складається з двох систем класів. Перша система містить класи Area та
Квадрат. Друга система містить класи Area2, Квадрат2, Зсув2 та Інтерфейси. Обидві
системи функціонально однакові. Вони призначені для моделювання і виведення на екран
зображень квадратів, котрі можуть переміщуватися мишкою в межах графічного поля.
Відмінність в тому, що вони побудовані за різними концепціями. І, як результат, мають
різну структуру, прийоми кодування, тощо. Кожен варіант має свої переваги і недоліки.
Треба проаналізувати і порівняти обидві системи. На такому прикладі з’ясувати та
обговорити на форумі наступні питання:
1. В чому відмінність концепцій, закладених в основу наданих систем класів? Як це
вплинуло на алгоритми та їх реалізацію у коді програми?
2. Які з наведених у лекції 1_5 правил та прийомів складання якісного коду
реалізовані в наданому проекті?
3. Як виконана структурно-функціональна декомпозиція в обох системах класів, в
чому відмінність? Де вона краща, і чому саме?
4. Як побудована ієрархія класів, досягнуте абстрагування, реалізовані вимоги до
інтерфейсів? Які якості проекту це забезпечило?
5. За якими принципами здійснено обрання типів та оголошення змінних? Де це
зроблено краще, і чому? Складіть власні пропозиції на вдосконалення коду.
6. Який з продемонстрованих стилів програмування Вам більш привабливий? Чому?
Які його переваги та накладні витрати?
7. Чи задовольняє Вас коментування і документування наданого коду? Чого не
вистачає? Додайте свої коментарі.

Завдання для індивідуальної роботи студентів


- Надати власні пропозиції відповідно вказаних питань.

Проект для аналізу та обговорення Kvadrat2 слід


завантажити з архіву до Теми 1.3.
Обговорення на форумі проводити на кожному занятті за
розкладом!

You might also like