Хелпикс

Главная

Контакты

Случайная статья





Вопросы к экзамену по дисциплине



Вопросы к экзамену по дисциплине

«Элементы структурной технологии программирования»

для студентов группы ПМ-41, зимняя сессия 2012-2013 уч. года

 

1. Предпосылки возникновения методологии структурного программирования. Основные принципы структурного программирования. Теорема Бёма-Якопини.

2. Структурное программирование. Проектирование сверху вниз. Модульное программирование. Структурное кодирование.

3. Правила присваивания содержательных имен переменным, функциям и другим программным единицам.

4. Функции. Компактность. Правило одной операции. Опасность смешения уровней абстракции.

5. Функции. Правило понижения. Паттерн «Абстрактная фабрика» и использование оператора switch.

6. Аргументы функций. Приемлемое количество и качество аргументов. Побочные эффекты в функциях. Примеры.

7. Комментарии. Основные правила написания хороших комментариев. Комментарии TODO.

8. Комментарии. Основные признаки плохих комментариев. Примеры.

9. Форматирование исходного кода. Цель форматирования. Вертикальное разделение концепций, вертикальное сжатие. Вертикальное расстояние.

10. Форматирование исходного кода. Горизонтальное форматирование. Горизонтальное разделение и сжатие. Отступы.

11. Объекты и структуры данных. Отличия процедурного и объектно-ориентированного кода. Случаи применения.

12. Закон Деметры. Опасность построения гибридов объектов и структур данных. Объекты передачи данных и активные записи.

13. Обработка ошибок. Исключения и коды ошибок. Использование паттерна «Особый случай».

14. Использование стороннего программного кода. Учебные тесты как инструмент исследования и анализа граничного кода.

15. Проблемы использования стороннего программного кода. Применение паттерна «Адаптер» для организации взаимодействия с недоступным кодом.

16. Класс. Размеры класса. Принцип единой ответственности (SRP).

17. Понятие связности класса. Влияние связности на размер классов.

18. Структурирование класса с учетом его изменений. Принципы проектирования классов в ООП.

19. Понятие эффективности программы. Выбор между эффективностью и удобочитаемостью. Оптимизирующие компиляторы.

20. Методология разработки через тестирование (TDD). Последовательность этапов разработки при использовании методологии TDD. Три закона TDD.

21. Тестирование как важный этап процесса разработки ПО. Чистота тестов. Тесты как средство обеспечения изменений. Правило «одна концепция на тест».

22. Экономические аспекты процесса тестирования. Тестирование методами «черного» и «белого» ящика. Невозможность исчерпывающего тестирования.

23. Основные принципы тестирования программного обеспечения.

24. Понятие отладки. Отличие между отладкой и тестированием. Средства отладки. Защитное программирование.

25. Понятие отладки. Основные принципы отладки. Принципы локализации ошибок. Принципы устранения ошибок.

26. Понятие отладки. Основные подходы к отладке программ. Методы «грубой силы», индуктивная отладка, дедуктивная отладка, обратная трассировка, отладка тестированием.

27. Проблема ограниченности вычислительных систем. Возможности преодоления некоторых типов ограничений.

28. Понятие правильности программ. Доказательство правильности программ.

29. Типы разложения вычислений (сочленение, выбор, повторение).

30. Неоднозначность определения программы. Проблема сравнения программ.  

31. Процесс поэтапного составления программ (на примере).

32. Понятие рефакторинга. Рефакторинги «Согласование различий», «Миграция данных», «Выделение метода».

33. Понятие рефакторинга. Рефакторинги «Встраивание метода», «Выделение интерфейса», «Перемещение метода».

34. Понятие рефакторинга. Рефакторинги «Метод в объект», «Добавление параметра», «Параметр метода в параметр конструктора».

 

Преподаватель кафедры ПМиТП                              Крощенко А. А.  



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.