Skip to content

Latest commit

 

History

History
278 lines (144 loc) · 24.5 KB

Lab2.md

File metadata and controls

278 lines (144 loc) · 24.5 KB

Лабораторная 2

Отрабатываемый материал

Применение порождающих паттернов, решение задач, связанных с созданием сущностей или групп похожих сущностей.

Задание

  • Реализовать объектную модель “конфигуратора” персонального компьютера и существующих вариантов комплектующих.
  • Реализовать механизмы
    • валидации готовой сборки
    • формирования заказа для отдела продаж
    • оповещений о проблемах несовместимости, отказа от гарантийных обязательств, замечаний/комментариев.
  • Покрыть полученное решение модульными тестами

Формулировка

Интернет магазину по продаже компьютерных комплектующих понадобился инструмент для подбора и создания готового системного блока. Необходимо реализовать «Конфигуратор», для того чтобы собрать из имеющегося набора деталей компьютеры для дальнейшей передачи заказов в отдел продаж. Основным требованием заказчика является возможность подбора совместимых комплектующих для осуществления продаж покупателям.

Сборка компьютера является сложным и чётко организованным процессом, состоящим из нескольких этапов, таких как подбор оборудования и проверка совместимости. Рядовой покупатель может не обладать знаниями о всех тонкостях процесса сборки ПК, поэтому необходимо удостоверится в том что комплектующие имеют физическую совместимость, всем компонентам достаточно энергопотребления и доступные шины/слоты удовлетворяют требованиям различных компонентов перед тем отправить такую сборку в отдел продаж для дальнейшей реализации.

Так же, существуют случаи когда покупатель просто хочет подобрать готовую систему и заменить лишь пару компонентов (например более мощную видеокарту), поэтому необходимо предусмотреть возможность запуска “конфигуратора” на базе какой-либо платформы (к примеру Amd Ryzen последнего поколения или Intel i7 на базе чипсета X99 и т.п.).

Компонентная база

Обязательные комплектующие отмечены звездочкой*

Материнская плата*

image

Это главная плата компьютера, соединяющая все компоненты системного блока в одно логическое целое. Её открытая архитектура позволяет собрать систему самому. Любой модуль, будь то процессор, оперативная память или видеокарта, имеет соответствующий только ему разъём, куда подаётся необходимое электропитание.

В зависимости от используемой платы и её чипсета вводятся ограничения на совместимость с другими частями, такими как процессор (в виду различий по сокету) и оперативная память (слоты под разные версии шины имеют различное количество контактов на печатной плате).

Атрибуты:

  • Сокет процессора

  • Кол-во распаянных на плате PCI-E линий

  • Кол-во распаянных на плате SATA портов

  • Чипсет (доступные частоты памяти, поддержка XMP)

  • Поддерживаемый стандарт DDR

  • Кол-во столов под ОЗУ

  • Форм-фактор

  • BIOS (Тип, Версия)

Процессор*

image

CPU – это «мозг» компьютера. Он состоит из нескольких миллионов транзисторов, сгруппированных в ядра. Каждое ядро ЦП способно обрабатывать отдельную задачу, поэтому их количество и тактовая частота непосредственно влияют на общую производительность. Важно понимать, что не каждый процессор, можно установить в конкретную материнскую плату, даже если сокет совпадает и есть физическая возможность разместить процессор на материнской плате, производитель/вендор может не поддерживать более новые версии вышедшие для конкретной платформы (см. таблицу совместимости в качестве примера). Данная проверка реализуется внутри встроенного компонента называемым BIOS. Это набор микропрограмм, реализующих низкоуровневые API для работы с аппаратным обеспечением компьютера, если процессор не поддерживает тот API который использует BIOS на материнской плате, то такой вариант сборки ПК не запустится.

Атрибуты:

  • Частота ядер

  • Кол-во ядер

  • Сокет

  • Наличие встроенного видеоядра

  • Поддерживаемые частоты памяти

  • Тепловыделение (TDP)

  • Потребляемая мощность (в ватт)

BIOS

image

BIOS - Basic Input/Output System.

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

Известно, что не каждый процессор запустится на материнской плате, даже при условии совместимости сокета. Покупая процессор и материнскую плату новички, смотрят на поддержку чипсета и совместимость сокета, это правильно, но не гарантирует, что такая "связка" запустится. Это потому, что, выпуская материнскую плату, например, в 2022 году производитель не знает о процессоре, выпущенном в 2023 году. Конечно это устраняется путем корректирования БИОС, но тут важно учесть, что для обновления BIOS компьютер должен работать, а потому важно еще на этапе покупки процессора быть уверенным, что БИОС поддерживает выбранную модель процессора. Набор микропрограмм материнских плат отличаются по "прошивке". Поэтому еще на этапе сборки важно знать с какими процессорами совместима купленная материнская плата.

Атрибуты:

  • Тип

  • Версия

  • Список поддерживаемых процессоров

Система охлаждения процессора*

image

Система охлаждения компьютера — набор средств для отвода тепла от нагревающихся в процессе работы компьютерных компонентов. Данные системы обладают конкретными пиковыми величинами максимально возможной рассеиваемой массе тепла. В случаях, когда на достаточно производительный процессор устанавливается слабая система охлаждения могут происходить сбои в работе, но при этом, такой вариант сборки необходимо разрешить к продаже, добавив соответствующий комментарий об отказе ответственности от гарантийных обязательств, т.к. покупатель может эксплуатировать данную систему (не смотря на нарушения рекомендаций об эксплуатации).

Атрибуты:

  • Габариты

  • Поддерживаемые сокеты

  • Максимально рассеиваемая масса тепла (TDP)

Оперативная память*

image

ОЗУ выполняет функцию временного хранителя данных, которые нужны для работы процессора в конкретный момент времени. Ключевые показатели «оперативки» выражаются скоростью приёма/передачи информации и объёмом хранимых данных. Чем они выше тем эффективнее работа CPU. При этом, нужно понимать, что “быстрая” память может работать в не до конца совместимых с ней материнских платах, на более медленных частотах, но не наоборот. Если есть проблемы с совместимостью материнская плата самостоятельно подберет из списка доступных ближайшую рабочую частоту. Так работает DRAM по стандартам JEDEC. Также на планках памяти устанавливается микросхема с прошивкой. Производитель вписывает в нее несколько профилей в виде «частота/тайминги», из которых компьютер выбирает подходящий режим для стабильной работы системы. Но от базовых стандартов его отличают максимальные рабочие настройки. Если JEDEC ограничивает характеристики микросхем на уровне технологии DDR, то XMP — это частный случай для каждой модели, за который отвечает только производитель этого комплекта.

Атрибуты:

  • Количество доступного размера памяти

  • Поддерживаемые пары частот JEDEC и вольтажа

  • Доступные XMP/DOСP(A-XMP) профили

  • Форм-фактор

  • Версия стандарта DDR

  • Потребляемая мощность (в ватт)

XMP Profile

image

XMP — аббревиатура от Extreme Memory Profiles. Это технология, разработанная Intel специально для быстрого разгона оперативной памяти. У AMD есть аналогичная технология — DOCP (Direct Overclock Profile)

Профиль содержит характеристики которые можно применить к конкретному модулю памяти для модификации его характеристик и блокировки непосредственно тех значений, которые заданы в профиле, не смотря на поддерживаемые пары JEDEC.

💡 При покупке памяти, совместимой с XMP, необходимы также материнская плата, совместимая с XMP, и центральный процессор, который поддерживает указанные скорости.

Атрибуты:

  • Тайминги (ex. 18-18-36-54)

  • Вольтаж

  • Частота

** - Обязательный компонент при невыполнении конкретных условий.

Видеокарта **

image

Графический адаптер выводит изображение на монитор компьютера. Данное устройство обязательно в сборках где процессор не имеет встроенного видеоядра, т.к. без возможности вывода изображения покупатель не сможет пользоваться компьютером.

Атрибуты:

  • Высота и ширина видеокарты

  • Количество видеопамяти

  • Версия PCI-E

  • Частота чипа

  • Потребляемая мощность (в ватт)

SSD накопитель **

image

Это твердотельное устройство хранения информации. Быстродействие у SSD-накопителя значительно выше чем у жёсткого диска, поэтому его целесообразно использовать для систем в высоком ценовом сегменте.

Атрибуты:

  • Вариант подключения (PCI-E / Sata)

  • Ёмкость в Гб

  • Максимальная скорость работы

  • Потребляемая мощность (в ватт)

Жесткий диск **

HDD – это устройство хранения информация. Скорость вращения дисков «винчестера» непосредственно влияет на комфорт пользователя от работы с ОС. Низкий уровень шума, высокая отказоустойчивость и оптимальное соотношение цена/объём определили HDD как устройство для сохранения важной информации.

Атрибуты:

  • Ёмкость в Гб

  • Cкорость вращения шпинделя

  • Потребляемая мощность (в ватт)

** Сборка должна содержать как минимум один из видов накопителя, иначе покупатель не сможет установить операционную систему.

Корпус*

image

Корпус системного блока служит местом установки блока питания ПК, его рабочих модулей, материнской планы и прочих вспомогательных компонентов. Основным свойством является размеры. Необходимо проверять что выбранная покупателем материнская плата с установленным куллером помещается внутрь и боковая крышка может закрываться без соприкосновений с тепловыми трубками системы охлаждения процессора.

Атрибуты:

  • Максимальная длина и ширина видеокарты

  • Поддерживаемые форм-факторы материнских плат

  • Габариты

Блок питания*

image

В некоторой степени блок питания выполняет функции стабилизации и защиты от незначительных помех питающего напряжения. Мощность, отдаваемая в нагрузку БП, зависит от мощности компьютерной системы и варьируется в пределах от 300 (офисные платформы малых форм-факторов) до пары тысяч Вт (наиболее высокопроизводительные рабочие станции, серверы или мощные игровые машины). В случаях, когда покупатель устанавливает блок с недостаточной мощностью, необходимо считать такую сборку невалидной. Также, производители комплектующих часто завышают показатели потребляемого количества мощности, поэтому при несоблюдении рекомендуемых мощностей, можно оповещать об этом покупателя и отпускать такую сборку в отдел продаж.

Атрибуты:

  • Пиковая нагрузка (в ватт)

Wi-Fi адаптер

Wi-Fi адаптеры представляют собой специальные устройства, которые используются для подсоединения к беспроводной сети. Этот компонент является опциональным, но, при попытке его добавления в компьютер, материнская плата которого, уже имеет встроенный Wi-Fi модуль, необходимо считать такую сборку не валидной, в виду конфликта сетевого оборудования.

Атрибуты:

  • Версия стандарта WiFi

  • Наличие встроенного модуля Bluetooth

  • Версия PCI-e

  • Потребляемая мощность

Acceptance criteria

  • Реализован контракт для работы с “конструктором”
  • Реализованы все бизнес правила проверяющие совместимость оборудования в процессе создания сборки
  • Реализована возможность изменения компонентов ранее созданной сборки.
  • Unit-тесты

Функциональные требования (Что ваше решение должно уметь делать)

  • Создание новых компонентов
    • с нуля (например выпуск новой видеокарты, ранее не существовавшей в природе)
    • на базе уже имеющихся (например новая материнская плата с обновленным BIOS)
  • Регистрация новых компонентов в репозитории существующих на рынке комплектующих
  • Возможность создания сборки ПК с использованием имеющейся компонентной базы
    • Формирование чек-листа для проверки совместимости комплектующих между собой поэтапно
      • Поддержать установку строгого порядка установки комплектующих
      • Попытка установки комплектующих до установки всех предварительных требований - исключительная ситуация.
    • Запуск проверок и получение результата сборки { Успешность результата, замечания/комментарии, отказ от гарантийных обязательств }
  • Возможность создания сборки ПК на базе предыдущей сборки

Test cases

  • Попытка сборки из точно совместимого комплектующего должна проходить без отказе от гарантийных обязательств и ошибок
  • Попытка сборки из совместимого комплектующего с заявленным потреблением больше чем максимально доступное, но достаточного для запуска системы должно проходить с предупреждением.
  • Попытка сборки с совместимым кулером, но с недостаточной мощностью рассеивания тепла производимого процессом должна проходить с обязательным выставлением комментария при передаче заказа в отдел продаж.
  • Попытка сборки несовместимого комплектующего в различных вариациях должна заканчиваться неудачей с указанием чётких причин.

Выбор конкретных значений для различных компонентов системы (частота оперативной памяти, название вендоров оборудования, сокеты и т.д.) отдаётся на откуп студенту, главное сохранить корректность значений согласно условиям лабораторной и здравому смыслу в реальном мире.

Если очень интересно то можно почитать ещё больше технических деталей про устройство материнской платы