Разработка программного обеспечения по сравнению с [закрытой] программной архитектурой

Комментарии Флимзи помогают ответить на вопрос наверняка. Я наткнулся на группу Google , которая также имеет хорошую информацию

342
задан Yvette Colomb 30 November 2018 в 11:00
поделиться

16 ответов

Вы правы да. Архитектура системы является своим 'скелетом'. Это - высший уровень абстракции системы. Какое хранение данных присутствует, как делают модули взаимодействуют друг с другом, какие системы восстановления существуют. Точно так же, как шаблоны разработки существуют архитектурные шаблоны: MVC, 3-уровневая многоуровневая структура, и т.д.

Разработка программного обеспечения о разработке отдельных модулей / компоненты. Каковы обязанности, функции, модуля x? Из класса Y? Что это может сделать, и что нет? Какие шаблоны разработки могут использоваться?

Таким образом короче говоря, Программная архитектура больше о дизайне всей системы, в то время как разработка программного обеспечения подчеркивает на модуле / компонент / уровень класса.

329
ответ дан Robert Harvey 23 November 2019 в 00:33
поделиться

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

Например, Ваш бизнес о "Прибыли и Потере" для торговцев, и Ваши основные функции включили "оценку портфеля" и "вычисление риска".

Но когда Архитектор программного обеспечения будет детализировать свое решение, он поймет что:

"оценка портфеля" не может быть всего одним приложением. Это должно быть усовершенствовано в управляемых проектах как:

  • GUI
  • Средство запуска
  • Диспетчер
  • ...

(потому что включенные операции так огромны, они должны быть разделены между несколькими компьютерами, все еще будучи контролируемым в любом случае через общий GUI),

Разработка программного обеспечения исследует различные приложения, их технические отношения и их внутренние субкомпоненты.
Это произведет спецификации, необходимые для последнего уровня Architecture ("Техническая архитектура"), чтобы продолжить работать (с точки зрения технической платформы или трансверсальных компонентов), и для проектных групп (более ориентированный на реализацию бизнес-функций) для начала их соответствующих проектов.

2
ответ дан Community 23 November 2019 в 00:33
поделиться

Да это звучит правильным мне. Дизайн - то, что Вы собираетесь сделать, и архитектура является путем, которым будут объединены остатки дизайна. Это могло быть агностиком языка, но будет обычно указывать технологии, которые будут использоваться т.е. ЛАМПА v Windows, веб-сервис v RPC.

3
ответ дан MrTelly 23 November 2019 в 00:33
поделиться

Проектирование программного обеспечения имеет более длительную историю, в то время как термину "архитектура программного обеспечения" едва исполнилось 20 лет. Следовательно, сейчас она переживает растущие трудности.

Ученые склонны рассматривать архитектуру как часть более широкой области проектирования программного обеспечения. Несмотря на растущее признание того, что архитектура - это область в рамках своей собственной.

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

Точная граница между Arch и дизайном зависит от области программного обеспечения. Например, в области веб-приложений в настоящее время наибольшей популярностью пользуется многоуровневая архитектура (Biz Logic Layer, Data Access Layer и т.д.) Части нижнего уровня этой архитектуры считаются проектными (диаграммы классов, сигнатуры методов и т.д.) Это будет по-разному определяться в доменах встраиваемых систем, операционных систем, компиляторов и т.д.

.
1
ответ дан 23 November 2019 в 00:33
поделиться

Архитектура - это результирующая коллекция шаблонов дизайна для построения системы.

Я полагаю, что дизайн - это творческий подход, использованный для объединения всего этого вместе?

1
ответ дан 23 November 2019 в 00:33
поделиться

Версия Cliff Notes:

Дизайн: Реализация решения на основе спецификации желаемого продукта.

Архитектура: Основа/инструменты/инфраструктура/компоненты, поддерживающие вашу конструкцию.

Это довольно широкий вопрос, который вызовет множество ответов.

1
ответ дан 23 November 2019 в 00:33
поделиться

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

(из Википедии, http://en.wikipedia.org/wiki/Software_architecture)

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

(из Википедии, http://en.wikipedia.org/wiki/Software_design)

Лучше бы я сам этого не сказал :)

.
3
ответ дан 23 November 2019 в 00:33
поделиться

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

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

.
3
ответ дан 23 November 2019 в 00:33
поделиться

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

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

Вы могли бы рассматривать проектирование как "проектирование макета", хотя...

3
ответ дан 23 November 2019 в 00:33
поделиться

Хороший вопрос... Хотя линия между ними едва ли является яркой четкой линией, имхо, если вы используете оба термина, то Architecture охватывает более технические или структурные решения о том, как построить или построить что-то, особенно те решения, которые будет трудно (или труднее) изменить после реализации, в то время как Design охватывает те решения, которые либо легко изменить позже (например, имена методов, файловая организационная структура класса <->, шаблоны дизайна, использовать ли одноэлементный или статический класс для решения какой-то конкретной проблемы и т.д. ) и/или те, которые влияют на внешний вид или эстетические аспекты системы или приложения (Человеческий интерфейс, простота использования, внешний вид и т.д.)

.
3
ответ дан 23 November 2019 в 00:33
поделиться

Программное обеспечение архитектура "занимается вопросами... выходящими за рамки алгоритмов и структур данных вычислений.

Архитектура конкретно не касается... подробностей реализаций (например, ) Архитектурное проектирование включает в себя более богатый набор абстракций, чем обычно предоставляется ООД" (объектно-ориентированное проектирование)

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

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

Посмотрите на эту ссылку.

Определение терминов "архитектура", "дизайн" и "реализация"

3
ответ дан 23 November 2019 в 00:33
поделиться

Архитектура - стратегическая, а дизайн - тактическая.

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

Проектирование - это деятельность, связанная с местными ограничениями, такими как шаблоны проектирования, программные идиомы и рефакторинг.

55
ответ дан 23 November 2019 в 00:33
поделиться

В некоторых описаниях SDLC (жизненный цикл разработки программного обеспечения) они взаимозаменяемы, но суть их заключается в том, что они отличаются друг от друга. Они являются одновременно разными (1) -этапами , (2) -областями ответственности и (3) -уровнями принятия решений .

  • Архитектура - это более широкая картина: выбор рамок, языков, сферы охвата, целей и методологий высокого уровня (Rational, waterfall, agile и т.д.).
  • Design - это меньшая картина: план того, как будет организован код; как будут выглядеть контракты между различными частями системы; текущее внедрение методологии и целей проекта. На этом этапе написана спецификация.

Эти два этапа по разным причинам будут казаться слитыми воедино.

  1. Более мелкие проекты часто не имеют достаточных возможностей для разделения планирования на эти этапы.
  2. Проект может быть частью более крупного проекта, и поэтому части обоих этапов уже решены. (Существуют уже существующие базы данных, конвенции, стандарты, протоколы, рамки, код многократного использования и т.д.)
  3. Более новые подходы к SDLC (см. Agile methodologies) несколько меняют этот традиционный подход. Проектирование (архитектура в меньшей степени) происходит во всем SDLC специально . Часто бывает больше итераций , где весь процесс происходит снова и снова.
  4. Разработка программного обеспечения является сложной и трудной для планирования в любом случае, но клиенты / менеджеры / продавцы, как правило, делают это труднее, изменяя цели и требования в середине потока. Проектные и даже архитектурные решения должны приниматься на более поздних стадиях проекта, независимо от того, является ли это планом или нет.

Даже если этапы или области ответственности смешиваются и происходят повсюду, всегда полезно знать, на каком уровне принимаются решения. (Мы можем продолжать это вечно. Я пытаюсь подвести итог.) Я покончу с этим: Даже если кажется, что ваш проект не имеет формальной архитектурной или проектной стадии/AOR/documentaiton, это происходит независимо от того, сознательно ли кто-нибудь это делает или нет. Если никто не решает заниматься архитектурой, то по умолчанию происходит то, что, вероятно, плохо. То же самое можно сказать и о дизайне. Эти концепции почти более важны , если не существует формальных этапов, представляющих их.

.
80
ответ дан 23 November 2019 в 00:33
поделиться

Довольно субъективно, но мое мнение:

Архитектура Общий дизайн системы, включая взаимодействие с другими системами, требования к аппаратному обеспечению, общий дизайн компонентов и поток данных.

Дизайн. Организация и движение компонента в общей системе. Сюда также входит API компонента для взаимодействия с другими компонентами.

.
3
ответ дан 23 November 2019 в 00:33
поделиться

Лично мне нравится это:

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

SCEA for Java ™ EE Study Guide Марка Кейда и Хамфри Шейла

5
ответ дан 23 November 2019 в 00:33
поделиться

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

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

0
ответ дан 23 November 2019 в 00:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: