Перейти к основному содержимому

Чек-лист самопроверки

Разработчику Студенту

Проверьте себя по разделу «Конструирование ПО». Ответы — в статьях 15 и связанных главах энциклопедии.


Понятие и жизненный цикл

  1. Чем конструирование отличается от проектирования и от системного тестирования?
  2. Какие артефакты типичны для стадии конструирования?
  3. Что описывает ISO/IEC 12207 в контексте реализации?
  4. Как в Scrum конструирование встроено в спринт (DoD, инкремент)?

Модульность, связность, сцепление

  1. Дайте определения связности (cohesion) и сцепления (coupling).
  2. Назовите типы связности от лучшего к худшему (минимум три).
  3. Чем сцепление по данным лучше сцепления по содержимому?
  4. Что такое цикломатическая сложность и зачем она конструктору?
  5. Чем модульность отличается от «много файлов в репозитории»?

Модели жизненного цикла

  1. В чём суть каскадной (Waterfall) модели для этапа кодирования?
  2. Чем инкремент отличается от итерации?
  3. Какие фазы RAD и когда RAD уместен?
  4. Из чего состоит один виток спиральной модели Боэма?
  5. Чем CBSE как модель ЖЦ отличается от компонентной архитектуры (REP/CCP/CRP)?

Планирование

  1. Что такое критический путь в CPM?
  2. Что означают O, M, P в PERT и как считается ожидаемое время?
  3. Зачем нужен Planning Poker и чем он отличается от оценки в человеко-часах?
  4. Что такое резерв времени (float) у некритической задачи?

Языки и качество

  1. Какие классы языков используются на стадии конструирования (минимум четыре)?
  2. Зачем OpenAPI на этапе реализации backend?
  3. Чем DSL полезен и когда он избыточен?
  4. Как TDD связан с конструированием в XP?

Связь с энциклопедией

  1. Где в энциклопедии читать про Scrum и Kanban подробнее?
  2. Где — про unit-тесты и пирамиду тестирования?
  3. Где — про SOLID и GRASP?

Краткие ориентиры для ответов

1–4: Понятие и ЖЦ

1. Проектирование — структура; конструирование — код и сборка; системное тестирование — продукт целиком по требованиям. 2. Код, unit/integration-тесты, скрипты сборки, конфиг, lock-файлы. 3. Процессы ЖЦ, в т.ч. реализация, интеграция, traceability. 4. Основная работа спринта; DoD включает код + тесты; инкремент поставляем.

5–9: Модульность

5. Cohesion — внутри модуля; coupling — между модулями. 6. Функциональная → … → случайная (см. §2). 7. По данным — через DTO/интерфейс; по содержимому — лезем во внутренности. 8. McCabe — число путей; сигнал для тестов и сложности. 9. Модульность — границы и заменяемость, не счётчик файлов.

10–14: Модели ЖЦ

10. Кодирование после проекта; большой блок; изменения дороги. 11. Инкремент — новая функция продукта; итерация — очередной цикл работ. 12. Business/data/process modeling → generation → turnover; UI-критичные MVP. 13. Цели → риски → разработка/тест → план витка. 14. CBSE — процесс поставки; REP/CCP/CRP — упаковка в репозитории (103).

15–18: Планирование

15. Самая длинная цепочка без float; задержка сдвигает проект. 16. Optimistic, Most likely, Pessimistic; TE = (O+4M+P)/6. 17. Относительная оценка сложности в команде; не заменяет часы, но задаёт приоритет через velocity. 18. Запас некритической задачи.

19–25: Языки и энциклопедия

19. Программирования, проектирования, спецификации, конфигурации (+ DSL). 20. Contract-first, mocks, contract tests. 21. Правила предметной области; избыточен для одного редкого правила. 22. Тест → код → refactor на стадии конструирования. 23. 7-03. 24. 7-05/120. 25. 1112, 115.


Если на большинство вопросов отвечаете уверенно — базовый уровень по конструированию ПО можно считать закрытым. Спорные пункты — повод перечитать соответствующую статью, а не зубрить определения в отрыве от практики.


См. также

Другие статьи этого же раздела в боковом меню (как на странице «О разделе»).