Здравствуйте, dshe, Вы писали:
D>Привет,
D>В чем разница между архитектурой и дизайном?
Архитектура должна полностью охватывать технические аспекты решения проблем заказчика/пользователей. То есть, кроме софта — железо, сети, и пр. Когда речь идет о софте, то архитектура обычно оперирует понятиями компонент, слоев и т.п., не опускаясь до уровня реализации с помощью конкретного языка программирования или конкретного framework.
Дизайн — это реализация некоторых принципов программирования (принципов объектно-ориентированного дизайна, например). Он имеет дело с конструкциями языка, такими как класс. Ноги дизайна растут от необходимости сделать качественный продукт, который будет легко поддерживать.
Вообще, четкого понимания различия этих двух понятий у народа нет, поэтому архитектурой называют все подряд.
Здравствуйте, sereda, Вы писали:
D>>В чем разница между архитектурой и дизайном?
S>Архитектура должна полностью охватывать технические аспекты решения проблем заказчика/пользователей. То есть, кроме софта — железо, сети, и пр. Когда речь идет о софте, то архитектура обычно оперирует понятиями компонент, слоев и т.п., не опускаясь до уровня реализации с помощью конкретного языка программирования или конкретного framework.
+1. Могу сослаться на "Мифический человеко-месяц" Брукса. Архитектура — это полная пользовательская спецификация продукта.
Вот из Лармана (он цитирует Буча и др. The Unified Modeling Language User Guide, но его под рукой нет, на работе лежит):
"Архитектура — набор важнейших решений, касающихся организации программной системы, выбора структурных элементов и их интерфейсов, затрагивающих поведение и взаимодействие этих элементов, их группировку вболее крупные подсистемы и архитектурный стиль приложений".
Здравствуйте, cvoronin, Вы писали:
C>Вот из Лармана (он цитирует Буча и др. The Unified Modeling Language User Guide, но его под рукой нет, на работе лежит): C>"Архитектура — набор важнейших решений, касающихся организации программной системы, выбора структурных элементов и их интерфейсов, затрагивающих поведение и взаимодействие этих элементов, их группировку вболее крупные подсистемы и архитектурный стиль приложений".
Брукс "Мифический человеко-месяц":
Архитектор системы, как и архитектор, проектирующий здание, — агент пользователя. Его работа заключается в том, чтобы использовать свои профессиональные и технические знания исключительно в интересах пользователя, в противоположность интересам коммивояжера, производителя и т. д.
Необходимо тщательно отделять архитектуру от реализации. Как сказал Блау, «Там, где архитектура говорит, что происходит, разработка говорит, как это должно происходить». В качестве простого примера он приводит часы, архитектура которых — циферблат, стрелки и головка завода. Когда ребенок познакомится с этой архитектурой, он с одинаковой легкостью сможет определять время как по ручным часам, так и по башенным курантам. Разработка и реализация, однако, каждый раз описывают внутреннюю структуру — механизмы, приводящие часы в действие и обеспечивающие точность хода.
В Системе 360, например, одна машинная архитектура реализована совершенно по-разному в каждой из девяти моделей, и наоборот, одна реализация, средства обмена, память и микропрограммы модели 360/30 используются в четырех различных архитектурах: серия ЭВМ Системы 360, мультиплексный канал с 224 логическими независимыми подканалами, селекторный канал и вычислительная машина IBM-1401.
Такое разграничение в равной степени применимо и к системам программирования. Существует стандартный фортран IV. Он является архитектурой для многих трансляторов. В рамках этой архитектуры возможны самые различные реализации: программа в оперативной памяти пли транслятор в оперативной памяти, быстрая трансляция или оптимизация, синтаксически ориентированный или «прямой» транслятор. Подобным образом любой язык ассемблера или язык управления задачами допускает разные реализации ассемблера или планировщика.
Это из Грэхема:
"Крачтен признаёт, что архитектура программного обеспечения связана с абстракцией, композицией и декомпозицией, а также со стилем и эстетикой. Чтобы рассмотреть все эти аспекты, особенно с учётом крупных и перспективных систем, Крачтен предлагает общую модель, состоящую из пяти следующих представлений:
* Логическое представление — объектная модель этапа проектирования
* Представление процессов. Моделирует распараллеливание и синхранизацию проектного решения
* Физическое представление — модель установления соответствия между программным обеспечением и элементами аппаратных средств, включая вопросы распределения.
* Представление разработки. Статическая организация программного обеспечения в рамках соответствующей среды разработки.
* Сценарное представление — сценарии использования, благодаря которым отчасти определяется архитектура и проверяется правильность."
Здравствуйте, cvoronin, Вы писали:
C>Кстати говоря, "архитектура" — это один из самых неопределённых терминов. C>Нет желания собрать варианты определений?
S>Перевести имеющуюся статью или написать от себя? Первое проще, но требует специфичных навыков. Второе — это, вообще-то, немалая работа.
Лучше, наверное, от себя...
Дык вон народу-то сколько, если потихоньку — так и наберётся контент. Просто ведь и бонус — готовый FAQ будет...
S>Надо найти студента, который сделает это своей курсовой.
Ага! Отсканирует книжку, распознает и сольёт на вику — а там его и повяжут за нарушение авторских прав