Автор работы: Пользователь скрыл имя, 10 Ноября 2014 в 02:32, шпаргалка
Методология процедурно-ориентированного программирования.
Методология объектно-ориентированного программирования.
Методология объектно-ориентированного анализа и проектирования.
Пользовательский контроль внешнего описания выражает участие пользователя (заказчика) в принятии решений при разработке внешнего описания и его контроле. Если разработка требований к ПС велась под управлением пользователя, то пользовательский контроль внешнего описания, по-существу, означает его смежный контроль сверху. Однако, если представителю пользователя оказывается трудно самостоятельно разобраться во внешнем описании, создается специальная группа разработчиков, выполняющая роль пользователя (и взаимодействующая с ним) для проведения такого контроля.
Ручная имитация выражает своеобразный динамический контроль внешнего описания, точнее говоря, функциональной спецификации ПС. Для этого необходимо подготовить исходные данные (тесты) и на основании функциональной спецификации осуществить имитацию поведения (работы) разрабатываемого ПС. При этом эту имитацию осуществляет специально назначенный разработчик, выполняющий, по-существу, роль будущих программ ПС.
Архитектура программного средства – это его представление как системы, состоящей из некоторой совокупности отдельно функционирующих и взаимодействующих подсистем. В качестве таких подсистем, как правило, выступают отдельные программы любой направленности (консольные, сервисные утилиты, прикладные приложения, web), системные программы, участвующие в функционировании программного средства, облачные технологии, необходимые для функционирования программного средства (протоколы, сетевые программы-маршрутизаторы, программы-репитеры). Разработка архитектуры программного средства является одним из принципов устранения сложности программного средства и реализация его в виде отдельных независимых компонент.
Основные задачи, стоящие перед разработкой архитектуры программного средства:
1. Выделение
программных подсистем и
2. Определение
способов взаимодействия между
выделенными программными
На практике выделяют следующие классы архитектур программных средств:
1. Программное
средство как цельная
Представляет вырожденный случай архитектуры программного средства, т.е. в состав входит только одна программа. Данную архитектуру выбирают в том случае, если программа должна выполнить четко выраженную последовательность действий или алгоритмов и нет необходимости выделять эти части в отдельные компоненты. Такая архитектура, как правило, не требует подробного описания.
Документация к цельной программе составляется при условии того, что с ней могут работать разные пользователи, но при этом алгоритм ее функционирования никогда не меняется.
2. Комплекс
автономно-выполняемых
Состоит из набора программ такого, что:
- во-первых,
любая из этих программ может
быть активирована или
- при
выполнении активированной
- все
программы программного
Таким образом, программы данной архитектуры по управлению никак не взаимодействуют между собой, т.е. взаимодействие между ними осуществляется только через общую информационную среду.
3. Слоистая программная система.
Состоит из некоторой упорядоченной совокупности программных подсистем, называемых слоями, такой, что:
- на каждом
слое ничего не известно о
свойствах и даже
- каждый
слой может взаимодействовать
по управлению с
- каждый
слой располагает
Как правило, в слоистой структуре не все компоненты и программы выполняют заложенный предметной областью алгоритм. Для функционирования такой архитектуры, как правило, разрабатывают прикладные программы, которые контролируют следующие области:
1. Корректное и последовательное обращение к памяти в избежание ошибок чтения и записи внутренних данных программ.
2. Управление,
диспетчеризация и
3. Управление и контроль вводимых данных во все программы программного средства, т.е. контролируется объем вводимых данных, тип, формат и корректность данных для внесения в БД (конкретные алгоритмы по преобразованию данных).
4. Осуществление
связи с пользователем
В результате, слоистая программная система как таковая может являться основой для построения на ней других архитектурных элементов, например, верхний слой может являться цельной программой, а на каждом их последующих слоев реализовываться комплекс независимо выполняемых программ.
4. Комплекс
параллельно выполняющихся
Данная архитектура представляет собой набор программ, способных взаимодействовать между собой, находясь одновременно в стадии выполнения. Это означает, что такие программы, во-первых, одновременно загружены в оперативную память компьютера, активированы и могут попеременно разделять по времени один или несколько ЦП для своего выполнения; во-вторых, осуществлять между собой динамически (во время выполнения) взаимодействия, на базе которых обязательно должна выполняться синхронизация. Обычно такое взаимодействие между такими процессами производится с помощью передачи сообщений, за которым следует поток передаваемой информации. Простейшей разновидностью данной архитектуры является реализация конвейера, для которого существуют несколько выполняемых программ, при этом ввод и вывод данных осуществляются только через одно любое приложение.
Для обеспечения взаимодействия между подсистемами в ряде случаев не требуется создавать какие-либо дополнительные программные компоненты. В общем случае для взаимодействия достаточно использовать набор фиксированных соглашений и стандартных возможностей базового программного обеспечения (это функции ОС, возможности сервисных утилит и функционал программного обеспечения информационной системы). В комплексе автономно-выполняемых программ для обеспечения взаимодействия достаточно описание и построение общей информационной среды и использование функций ОС для запуска программ.
Для слоистой программной системы может оказаться достаточным спецификаций выделенных программных слоев и общий аппарат обращения к процедурам, т.е. у нас есть «Библиотека процедур», у каждой процедуры должен быть один механизм доступа (одинаковый). Аппарат доступа – единый для всей программной системы. Для организации такого взаимодействия используются стандартные утилиты ОС.
В программном конвейере взаимодействие между программами также может обеспечивать операционная система, при этом каждая связь между двумя компонентами может оперировать своими форматами данных. Однако, в ряде случаев для обеспечения взаимодействия между программными подсистемами может потребоваться создание дополнительных программных компонент. Такие компоненты, как правило, несколько усложняют архитектуру программной системы, но для управления работой всей системы такие компоненты могут оказаться очень востребованными.
Создание дополнительных компонент может потребоваться в следующих случаях:
1. Когда
программной системе необходим
свой командный интерпретатор (функции
которого отличаются от
2. Когда
необходима дополнительная
3. Когда
программная система в своем
функционировании использует
Пример: подсистема преподавателя по учету и контролю учебного процесса.
В комплексе параллельно-выполняемых программ может потребоваться дополнительное управление портами для отправки сообщений (данных). В классическом случае данные функции можно возложить на ОС, за исключением тех моментов, когда встраивание компонента управления может привести к неправильной работе программной системы в целом.
Контроль архитектуры программных систем
Есть только 2 способа контроля:
- составной (смежный) контроль
- ручная имитация
1.1. Составной
контроль архитектуры
1.2. Составной
контроль, проводимый снизу –
это контроль со стороны
Составной контроль считается пройденным, если результаты контроля сверху соответствуют результатам контроля снизу.
2. Ручная
имитация архитектуры
На практике практически любая система состоит из модулей или отдельных составных частей, каждая из которых выполняет определенные возложенные на нее функции. Модульную систему проще разрабатывать, контролировать и управлять отдельными частями, чем всей системой в целом.
Программный модуль – это фрагмент описания процесса, оформляемый как самостоятельный программный продукт, пригодный для использования в других процессах системы. Это означает, что каждый программный модуль программируется, компилируется и отлаживается отдельно от других модулей системы, тем самым обеспечивая свою физическую независимость. Помимо этого, модуль может включаться в состав других программ и модулей, если выполнены условия его использования, задекларированные в документации к модулю. Таким образом, модульное программирование, с одной стороны обеспечивает несложную разработку системы в целом, с другой стороны – обеспечивает исключение дублирования информации и дублирование выполняемых функций.
В концепции модульного программирования закладывается характеристика «хорошего» программного модуля. Под этим понимают, с одной стороны, выполнение определенных требований к функционалу данного модуля, с другой стороны – отображение структуры системы и места модуля в ней с помощью древовидной структуры, т.е. иерархии.
Не всякий программный модуль будет взаимодействовать и упрощать систему в целом. В 1997 году было предложено 2 критерия оценки качественности модуля:
1. Качественный модуль снаружи проще, чем внутри (функции, которые вызываются из модуля, должны быть односложными, т.е. иметь мало параметров, в идеале вызываться без параметров, за исключением функций, которые используются внутри модуля). Данный эффект может достигаться только тем, что вся обработка информации, как и сама информация находится в отдельном хранилище данных. Модуль может использовать только перманентные структуры данных (по принципу ОЗУ).
2. Качественный модуль проще использовать, чем построить.
Разработчик должен организовать взаимодействие модулей и внутреннюю их реализацию с полным просчетом исключительных ситуаций и непродуктивных действий пользователя.
Майес предлагает использовать более конструктивные характеристики программного модуля для оценки его качественности и приемлемости.
Он вводит следующие характеристики:
Информация о работе Шпаргалка по "Программированию и компьютерам"