Конструирование ПО — чек-лист
Доступ к данным — Основы БД, SQL, конфигурации. Карта — о разделе.
Проверьте себя по разделу "Конструирование ПО". Ответы — в статьях Конструирование ПО — понятие, жизненный цикл, стандарты–Тестирование на стадии конструирования и связанных главах энциклопедии.
Понятие и жизненный цикл
- Чем конструирование отличается от проектирования и от системного тестирования?
- Какие артефакты типичны для стадии конструирования?
- Что описывает ISO/IEC 12207 в контексте реализации?
- Как в Scrum конструирование встроено в спринт (DoD, инкремент)?
Модульность, связность, сцепление
- Дайте определения связности (cohesion) и сцепления (coupling).
- Назовите типы связности от лучшего к худшему (минимум три).
- Чем сцепление по данным лучше сцепления по содержимому?
- Что такое цикломатическая сложность и зачем она конструктору?
- Чем модульность отличается от "много файлов в репозитории"?
Модели жизненного цикла
- В чём суть каскадной (Waterfall) модели для этапа кодирования?
- Чем инкремент отличается от итерации?
- Какие фазы RAD и когда RAD уместен?
- Из чего состоит один виток спиральной модели Боэма?
- Чем CBSE как модель ЖЦ отличается от компонентной архитектуры (REP/CCP/CRP)?
Планирование
- Что такое критический путь в CPM?
- Что означают O, M, P в PERT и как считается ожидаемое время?
- Зачем нужен Planning Poker и чем он отличается от оценки в человеко-часах?
- Что такое резерв времени (float) у некритической задачи?
Языки и качество
- Какие классы языков используются на стадии конструирования (минимум четыре)?
- Зачем OpenAPI на этапе реализации backend?
- Чем DSL полезен и когда он избыточен?
- Как TDD связан с конструированием в XP?
Дополнительные вопросы
- Что такое ТКПО и из чего она состоит?
- Назовите шкалу СС для типов связности (минимум 4 уровня с числами).
- Назовите шкалу СЦ для типов сцепления.
- Сформулируйте два закона Myers о тестировании.
- Чем инкрементная стратегия (12207.2) отличается от эволюционной?
- Какие четыре стадии RUP и где в них массовое конструирование?
- Перечислите пять методов оценки длительности из PMBoK.
Связь с энциклопедией
- Где в энциклопедии читать про Scrum и Kanban подробнее?
- Где — про unit-тесты и пирамиду тестирования?
- Где — про 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 — упаковка в репозитории (Принципы компонентно-ориентированной архитектуры).
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, §6. 25. Принципы проектирования, Паттерны проектирования.
26–32: Дополнительные вопросы
26. Технология конструирования ПО — методы, средства, процедуры; CASE. 27. Функциональная 10 … по совпадению 0 — см. §2. 28. По данным 1 … по содержимому 9. 29. Все ошибки не найти; исчерпывающий вход невозможен. 30. Инкремент — все требования в начале; эволюционная — уточняются. 31. Inception, Elaboration, Construction, Transition. 32. Экспертная, по аналогам, параметрическая, три точки, резервы — §4.
Если на большинство вопросов отвечаете уверенно — базовый уровень по конструированию ПО можно считать закрытым. Спорные пункты — повод перечитать соответствующую статью, а не зубрить определения в отрыве от практики.