Архитектура программы или компьютерной системы

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

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

Архитектура программной системы – это его строение, как оно видно (или должно быть видно) извне его, т.е. представление ПС как системы, состоящей из некоторой совокупности взаимодействующих подсистем.

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

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

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

КАК РАБОТАЕТ ПРОЦЕССОР | ОСНОВЫ ПРОГРАММИРОВАНИЯ

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

С точки зрения количества пользователей, работающих с одной копией программного обеспечения, различают:

1. Однопользовательскую архитектуру.

2. Многопользовательскую (сетевую) архитектуру.

Кроме того, в рамках однопользовательской архитектуры различают:

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

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

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

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

#Архитектура приложения и кода

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

Многопользовательскую архитектуру реализуют системы, построенные по принципу «клиент-сервер»

Источник: studopedia.su

Архитектура компьютерной системы: классификация и определение

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

Архитектура компьютерных систем как совокупность аппаратных компонентов

В чем заключается сущность понятия «архитектура компьютерной системы»? Под соответствующим термином прежде всего можно понимать совокупность электронных компонентов, из которых состоит ПК, взаимодействующих в рамках определенного алгоритма с использованием различных типов интерфейсов.

Архитектура компьютерной системы

Основные компоненты, которые входят в состав компьютерной системы:

  • устройство ввода;
  • главный вычислительный чипсет;
  • устройства для запоминания данных;
  • компоненты, предназначенные для вывода информации.

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

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

Классификация компьютерных систем

В соответствии с распространенным в среде экспертов подходом, компьютерные системы по своей архитектуре могут относиться:

  • к большим ЭВМ;
  • к мини-ЭВМ;
  • к персональным компьютерам.

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

Читайте также:
Где найти стандартные программы

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

Большие ЭВМ

Большие ЭВМ ,или мейнфреймы, чаще всего используются в промышленности — как центры обработки данных по различным производственным процессам. В них могут быть инсталлированы мощные, исключительно высокопроизводительные чипы.

Архитектура вычислительных систем и компьютерных сетей

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

Мини-ЭВМ

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

Современные мини-ЭВМ: возможности

Во многих случаях применение данных компьютеров осуществляется как раз в целях эффективного управления внутрикорпоративными сетями. Таким образом, рассматриваемые решения могут использоваться, в частности, как высокопроизводительные серверы. Они также оснащены очень мощными процессорами, такими как, например, Xeon Phi от Intel. Данный чип может работать со скоростью более 1 терафлопса. Соответствующий процессор рассчитан на производство по техпроцессу 22 нм и имеет пропускную способность памяти в значении 240 ГБ/с5.

Персональные компьютеры

Следующий тип компьютерной архитектуры — ПК. Вероятно, он является самым распространенным. ПК не столь мощны и высокопроизводительны как мейнфреймы и микро-ЭВМ, но во многих случаях способны решать задачи и в сфере промышленности, и в области науки, не говоря о типичных пользовательских задачах, таких как запуск приложений и игр.

Архитектура компьютера и проектирование компьютерных систем

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

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

Персональные компьютеры: классификация

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

Компьютерные системы архитектура компьютера

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

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

Как установить отнесение вычислительного решения к ПК?

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

Классификация ПО для компьютерных архитектур: мейнфреймы и мини-ЭВМ

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

Читайте также:
Кто разрабатывает программу инженерных изысканий

Лабораторные ПО архитектура компьютерных систем

Классификация ПО: персональные компьютеры

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

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

Уровни программной архитектуры ПК

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

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

Архитектура компьютерных систем лабораторные работы

Архитектуры программных уровней

Эксперты выделяют следующие основные архитектуры компьютерных систем в контексте рассматриваемого подхода к пониманию соответствующего термина:

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

Значение классификации программной архитектуры

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

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

Резюме

Итак, мы определили сущность термина «архитектура компьютерной системы», то, каким образом он может рассматриваться в зависимости от того или иного контекста. В соответствии с одним из традиционных определений, под соответствующей архитектурой может пониматься аппаратная структура ПК, предопределяющая уровень его производительности, специализацию, требования к квалификации пользователей. Данный подход предполагает классификацию современных компьютерных архитектур на 3 основные категории — мейнфреймы, мини-ЭВМ, а также ПК (которые, в свою очередь, также могут быть представлены различными разновидностями вычислительных решений).

Архитектура компьютерных систем учебник

Как правило, каждый тип указанных архитектур рассчитан на решение определенных задач. Мейнфреймы и мини-ЭВМ чаще всего находят применение в промышленности. С помощью ПК также можно решать широкий круг производственных задач, осуществлять инженерные разработки — для этого также приспособлена соответствующая архитектура компьютерных систем. Лабораторные работы, научные эксперименты с такой техникой становятся понятнее и эффективнее.

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

Источник: fb.ru

Архитектура программной системы

Архитектура программы или компьютерной системы — это структура или структуры системы, которые включают элементы программы, видимые извне свойства этих элементов и связи между ними. [Басс (Bass) и др.]5

[Архитектура — это] структура организации и связанное с ней поведение системы. Архитектуру можно рекурсивно разобрать на части, взаимодействующие посредством интерфейсов, связи, которые соединяют части, и условия сборки частей. Части, которые взаимодействуют через интерфейсы, включают классы, компоненты и подсистемы. [UML 1.5]6

Читайте также:
Как установить скачанную программу на компьютер с флешки

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

Модель архитектуры 4+1 (RUP)

Представление прецедентов

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

Логическое представление

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

Представление реализации (выполнения)

  • Модель реализации в терминах модулей, пакетов и уровней (в многослойных архитектурах)
  • Распределение пакетов и классов логического представления в пакетах и модулях модели реализации
  • Подмножество модели реализации.

Представление процесса

  • Описание задач (процессов и нитей), их взаимодействия и распределения объектов и классов по задачам
  • Используется для существенно распараллеленных систем
  • Подмножество проектной модели.

Представление развертывания

  • Описание физических узлов для типичных конфигураций платформы
  • Распределение задач по физическим узлам
  • Используется для распределенных систем
  • Подмножество модели развертывания.

» Круг интересов» архитектуры

  • Структура
  • Контекстная диаграмма (например, DFD)
  • Диаграмма пакетов
  • Диаграмма классов
  • Диаграмма компонентов
  • Диаграмма развертывания.
  • Поведение
  • Возможности
  • Сервисы
  • Варианты использования.
  • Значимые элементы
  • Критические прецеденты
  • Главные классы
  • Основные протоколы взаимодействия
  • Схемы управления.
  • Потребности заинтересованных лиц
  • Конечный пользователь заинтересован в интуитивно понятном и корректном поведении, производительности, надежности, удобстве использования, доступности и безопасности;
  • Системный администратор заинтересован в интуитивно понятном поведении, управлении и инструментах мониторинга;
  • Специалист по маркетингу заинтересован в конкурентоспособных функциях, времени до выхода программы, позиционировании среди других продуктов и в стоимости.
  • Клиент заинтересован в цене, стабильности и возможности планировать;
  • Разработчик заинтересован в понятных требованиях и простом и непротиворечивом принципе проектирования;
  • Руководитель проекта заинтересован в предсказуемости хода проектирования, планировании, продуктивном использовании ресурсов и бюджета;
  • Специалист по сопровождению заинтересован в понятном, непротиворечивом и документируемом принципе проекта, а также в легкости, с которой можно вносить изменения.
  • Логическое обоснование
  • Документирование архитектуры
  • Документирование аргументов в пользу тех или иных архитектурных решений
  • Архитектурный стиль
  • Окружение
  • Окружение влияет на архитектуру («Архитектура в контексте»):
  • Особенности бизнеса
  • Позиции заинтересованных лиц
  • Внутренние и внешние ограничения
  • Архитектура влияет на окружение.
  • Команда разработчиков.
  • Архитектура влияет на команду:
    • Архитектура определяет компетенции
    • Архитектура определяет параллелизм выполнения.
    • Команда влияет на архитектуру.

    Значимые элементы

    • Критические прецеденты
    • Главные классы
    • Основные протоколы взаимодействия
    • Схемы управления.

    То есть общие механизмы проектируемой системы

    Архитектурный стиль

    Архитектурный стиль, по своей сути, мета-модель или шаблон проектирования макро-архитектуры — на уровне модулей, «крупноблочного» взгляда. Например, архитектура распределенной сервисно-ориентированной системы может строится в стиле обмена сообщениями через соответствующие очереди сообщений, может проектироваться на основе идеи взаимодействия между компонентами и приложениями через общую объектную шину, а может использовать концепцию брокера как единого узла пересылки запросов. В то же время, на более концептуальном уровне, мы можем говорить о выборе клиент-серверного стиля или распределенного стиля архитектуры системы. Таким образом, архитектурный стиль – набор ограничений, определяющих семейство архитектур, которые удовлетворяют этим ограничениям.

    Метафора «что и как»

    По сути своей это понимание того, что и как система будет делать.

    Проведение аналогий часто приводит к важным открытиям. Сравнив не совсем понятное явление с чем-то похожим, но более понятным, вы можете догадаться, как справиться с проблемой. Такое использование метафор называется моделированием».

    Анализ и Проектирование

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

    К числу решаемых задач при этом относятся:

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

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

    Источник: studfile.net

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...
    EFT-Soft.ru