Чек-лист самопроверки
Проверьте себя по разделу «Конструирование ПО». Ответы — в статьях 1–5 и связанных главах энциклопедии.
Понятие и жизненный цикл
- Чем конструирование отличается от проектирования и от системного тестирования?
- Какие артефакты типичны для стадии конструирования?
- Что описывает 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?
Связь с энциклопедией
- Где в энциклопедии читать про 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 — упаковка в репозитории (103).
15–18: Планирование
15. Самая длинная цепочка без float; задержка сдвигает проект. 16. Optimistic, Most likely, Pessimistic; TE = (O+4M+P)/6. 17. Относительная оценка сложности в команде; не заменяет часы, но задаёт приоритет через velocity. 18. Запас некритической задачи.
19–25: Языки и энциклопедия
Если на большинство вопросов отвечаете уверенно — базовый уровень по конструированию ПО можно считать закрытым. Спорные пункты — повод перечитать соответствующую статью, а не зубрить определения в отрыве от практики.
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). Что такое конструирование программного обеспечения, как оно связано с другими стадиями SDLC, какие артефакты и стандарты применяются на этапе реализации. Модульность программной системы: определение связности (cohesion) и сцепления (coupling), классические типы, примеры и метрики сложности. Классический, инкрементный, RAD, спиральный и компонентно-ориентированный подходы — как они влияют на стадию конструирования ПО. Планирование производства компонентов: диаграмма Ганта, критический путь, PERT, Planning Poker и связь с тестированием. Языки программирования, проектирования, спецификации и конфигурации на стадии конструирования ПО — роли, примеры, выбор. Краткие итоги раздела «Конструирование ПО».Конструирование ПО — понятие, жизненный цикл, стандарты
Связность и сцепление модулей
Модели жизненного цикла для конструирования
Планирование конструирования — PERT, CPM, оценки
Языки конструирования программных систем
Итоги — конструирование ПО