Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Основная проблема проектированияКаждый уровень многоуровневой системы (см., например, модель OSI на рис. 2) скрывает подробности и технологии, предоставляя вышележащему уровню упрощенный доступ к ресурсам. Скрытие подробностей и упрощение доступа является по своей сути абстрагированием. С каждым новым уровнем скрывается все больше и больше деталей реализации. Таким образом получается, что с повышением уровня возрастает и уровень абстракции проблемы. С уровнями абстракции тесно связан т. н. провал (зазор) абстракции, который называют основной проблемой проектирования [6].
У заказчика имеется представление о том, что должна представлять собой система, какими потребительскими характеристиками должна обладать, какой функциональностью и пр. Свои требования заказчик обычно формулирует в виде технического задания. Но заказчик плохо представляет себе то, каким образом требования к системе превратятся в ее реализацию, т.е. в конкретную конструкцию, аппаратуру, кабели, разъемы, сигналы, биты, байты и пр. С другой стороны, разработчик хорошо разбирается в аппаратуре, технологиях, инструментариях разработки, но часто хуже представляет себе область применения конечного продукта. В процессе проектирования преодолевается разрыв между техническим заданием на продукт и его реализацией. Эффективность технологий разработки можно оценивать по скорости и затратам на преодоление этого разрыва. Преодоление разрыва снизу вверх называют абстракцией, а сверху вниз – уточнением задания (рис. 4).
Разработчик, решая некоторую задачу, интуитивно чувствует, что полученное частное решение может быть использовано повторно, например, в других проектах. Он оформляет решение в виде «заготовки», в которой скрываются детали реализации. При необходимости, такой заготовкой (полуфабрикатом) можно будет воспользоваться в будущем. При накоплении значительного количества заготовок разработчик начинает мыслить в терминах заготовок, а не в терминах низкоуровневой реализации, т.е. мыслить в абстракциях более высокого уровня. Заготовки являются непосредственным примером повторного использования решений и накопления опыта. Рассмотренный пример демонстрирует преодоление провала абстракции снизу-вверх путем абстрагирования. Рассмотренные в предыдущем пункте многоуровневые системы и характерные для них общесистемные слои также являются примером преодоления провала абстракции снизу-вверх путем абстрагирования. С другой стороны, заказчик, видя те или иные проблемы разработки, помогает принять проблемные или неоднозначные решения, в которых разработчики не достаточно компетентны. По сути, он уточняет задание, постепенно вникая в реальные возможности разработки. Таким образом, провал абстракции преодолевается сверху-вниз. Опытные проектировщики настоятельно рекомендуют привлекать заказчика к процессу разработки, объясняя ему преимущества и недостатки принимаемых решений и используемых технологий. В этом случае заказчик будет реально оценивать реализуемость своих пожеланий, а также помогать разработке, осознанно и грамотно принимая «генеральские» решения. Провал абстракции и соответствующие способы его преодоления не зря называют основной проблемой проектирования. В дальнейшем понятия и приемы абстрагирования будут регулярно использоваться в данном документе.
|