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