Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Бонус от Юли Захаровой Гос экзамены с ответами

.pdf
Скачиваний:
12
Добавлен:
12.06.2015
Размер:
2.74 Mб
Скачать

1

Билет 1

1. +Жизненный цикл программного обеспечения. Модели жизненного цикла программного обеспечения

Жизненный цикл по АСОИУ Одним из базовых понятий методологии проектирования АСОИУ является понятие жизненного цикла ее программного обеспечения (ЖЦ

ПО). ЖЦ ПО - это непрерывный процесс, который начинается с момента принятия решения о необходимости его создания и заканчивается в момент его полного изъятия из эксплуатации.

Основным нормативным документом, регламентирующим ЖЦ ПО, является международный стандарт ISO/IEC 12207 (ISO - International Organization of Standardization - Международная организация по стандартизации, IEC - International Electrotechnical Commission -

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

Структура ЖЦ ПО по стандарту ISO/IEC 12207 базируется на трех группах процессов:

основные процессы ЖЦ ПО (приобретение, поставка, разработка, эксплуатация, сопровождение);

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

организационные процессы (управление проектами, создание инфраструктуры проекта, определение, оценка и улучшение самого ЖЦ, обучение).

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

включает в себя, как правило, анализ, проектирование и реализацию (программирование).

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

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

Управление конфигурацией является одним из вспомогательных процессов, поддерживающих основные процессы жизненного цикла ПО, прежде всего процессы разработки и сопровождения ПО. При создании проектов сложных ИС, состоящих из многих компонентов, каждый из которых может иметь разновидности или версии, возникает проблема учета их связей и функций, создания унифицированной структуры и обеспечения развития всей системы. Управление конфигурацией позволяет организовать, систематически учитывать и контролировать внесение изменений в ПО на всех стадиях ЖЦ. Общие принципы и рекомендации конфигурационного учета, планирования и управления конфигурациями ПО отражены в проекте стандарта ISO 12207-2.

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

Модели жизненного цикла ПО

Стандарт ISO/IEC 12207 не предлагает конкретную модель ЖЦ и методы разработки ПО (под моделью ЖЦ понимается структура, определяющая последовательность выполнения и взаимосвязи процессов, действий и задач, выполняемых на протяжении ЖЦ. Модель ЖЦ зависит от специфики ИС и специфики условий, в которых последняя создается и функционирует). Его регламенты являются общими для любых моделей ЖЦ, методологий и технологий разработки. Стандарт ISO/IEC 12207 описывает структуру процессов ЖЦ ПО, но не конкретизирует в деталях, как реализовать или выполнить действия и задачи, включенные в эти процессы.

К настоящему времени наибольшее распространение получили следующие две основные модели ЖЦ:

каскадная модель (70-85 г.г.);

спиральная модель (86-90 г.г.).

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

Рис. 2.1. Каскадная схема разработки ПО

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

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

на каждом этапе формируется законченный набор2проектной документации, отвечающий критериям полноты и согласованности;

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

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

Рис. 2.2. Реальный процесс разработки ПО по каскадной схеме

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

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

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

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

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

Рис 2.3. Спиральная модель ЖЦ

2.-Стандартные типы данных

Кстандартным относятся целые, действительные, символьный и адресный типы.

Целые типы определяют константы, переменные и функции, значения которых реализуются множеством целых чисел, допустимых в

данной ЭВМ.

тип диапазон значений требуемая память

__________________________________________________________

Shortint

-128 .. 127

1 байт

3

 

Integer

-32768 .. 32767

2 байта

 

Longint -2147483648 .. 2147483647

4 байта

 

Byte

0 .. 255

1 байт

 

Word

0 .. 65535

2 байта

 

__________________________________________________________

Над целыми операндами можно

выполнятьследующие арифметические операции: сложение, вычитание, умножение, деление,

получение остатка от деления. Знаки этих операций:

+- * div mod

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

Например:

 

17 div 2 = 8,

3 div 5 = 0.

17 mod 2 = 1,

3 mod 5 = 3.

Операции отношения, примененные к целым операндам, дают результат логического типа TRUE или FALSE ( истинаили ложь ).

В языке ПАСКАЛЬ имеются следующие операции отношения: равенство =, неравенство <>, больше или равно >=, меньше или равно <=,больше >, меньше < .

К аргументам целого типа применимы следующие стандартные (встроенные) функции, результат выполнения которых имеет целый

тип:

Abs(X), Sqr(X), Succ(X), Pred(X),

икоторые определяют соответственно абсолютное значение Х, Х в квадрате, Х+1, Х-1.

Следующая группа стандартных функций для аргумента целого типа дает действительный результат:

Sin(X), Cos(X), ArcTan(X), Ln(X), Exp(X), Sqrt(X).

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

Результат выполнения функции проверки целой величины на нечетность

Odd(X) имеет значение истина,

если аргумент нечетный, и значение ложь, если аргумент четный:

X=5 Odd(X)=TRUE , X=4

Odd(X)=FALSE.

Для быстрой работы с целыми числами определены процедуры:

Inc(X) X:=X+1

Inc(X,N) X:=X+N

Dec(X) X:=X-1

Dec(X,N) X:=X-N

Действительные типы

определяет

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

данной ЭВМ.

 

 

 

 

 

 

Тип

Диапазон

Количество цифр

Требуемая

 

значений

 

мантиссы

память (байт)

---------------------------------------------------------------

 

Real

2.9e-39 ..

1.7e+38

11

6

 

Single

1.5e-45 ..

3.4e+38

7

4

 

Double

5.0e-324

.. 1.7e+308

15

 

8

Extended

3.4e-4932 ..

1.1e+4932 19

 

10

Comp

-9.2e+18

.. 9.2e+18

19

 

8

---------------------------------------------------------------

Тип Real определен в стандартном ПАСКАЛЕ и математическим сопроцессором не поддерживается.

Остальные действительные типы определены стандартом IEEE 457 и реализованы на всех современных компьютерах.

Для их использования при наличии сопроцессора или при работе на ЭВМ типа 80486 необходимо компилировать программу с ключом {$ N+}, а при отсутствии сопроцессора - с ключами {$N-,E+}.

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

Над действительными операндами можно выполнять следующие арифметические операции, дающие действительный результат: сложение + , вычитание - ,умножение * ,деление / .

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

Кдействительным аргументам применимы функции, дающие действительный результат:

Abs(X), Sqr(X), Sin(X), Cos(X), ArcTan(X), Ln(X),Exp(X),

Sqrt(X), Frac(X), Int(X), Pi.

Функция Frac(X) возвращает дробную часть X, функция Int(X)4- целую часть X.

Без аргументная функция Pi возвращает значение числа Пи действительного типа.

К аргументам действительного типа применимы также функции

Trunc(X) и Round(X),

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

ЛОГИЧЕСКИЙ тип (Boolean) определяет те данные, которые могут принимать логические значения TRUE и FALSE.

К булевским операндам применимы следующие логические операции: not and or xor.

Логический тип определен таким образом, что FALSE < TRUE. Это позволяет применять к булевским операндам все операции отношения.

В ТУРБО ПАСКАЛЬ введены еще разновидности логического типа:

ByteBool, WordBool и LongBool, которые занимают в памяти ЭВМ один, два и четыре байта соответственно.

Символьный тип (Char) определяет упорядоченную совокупность символов, допустимых в данной ЭВМ. Значение символьной переменной или константы - это один символ из допустимого набора.

Символьная константа может записываться в тексте программы тремя способами: -как один символ, заключенный в апострофы, например: 'A' 'a' 'Ю' 'ю';

-с помощью конструкции вида #K, где K - код соответствующего символа, при этом значение K должно находиться в пределах 0..255;

-с помощью конструкции вида ^C, где C - код соответствующего управляющего символа, при этом значение C должно быть на 64 больше кода управляющего символа.

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

Ord(C) Chr(K).

Первая функция определяет порядковый номер символа С в наборе символов, вторая определяет по порядковому номеру К символ, стоящий на К-ом месте в наборе символов. Порядковый номер имеет целый тип.

К аргументам символьного типа применяются функции, которые определяют предыдущий и последующий символы:

Pred(C) Succ(C). Pred('F') = 'E' ; Succ('Y') = 'Z' .

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

Для литер из интервала 'a'..'z' применима функция UpCase(C), которая переводит эти литеры в верхний регистр 'A'..'Z'.

Адресный тип (Pointer) определяет переменные, которые могут содержать значения адресов данных или фрагментов программы. Для хранения адреса требуются два слова (4 байта), одно из них определяет сегмент, второе - смещение.

3. +Модель OSI. Уровни модели OSI (физический, канальный, сетевой, транспортный, сеансовый, представительский, прикладной)

Понятие "Открытая система" основано на двух основных принципах: стандартизация (любая новая технология только тогда приобретает «законный» статус, когда ее содержание закрепляется в соответствующем стандарте) и многоуровневый подход.

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

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

Эта модель называется моделью взаимодействия открытых систем (Open System Interconnection, OSI).

Физический уровень (Physical layer) имеет дело с передачей битов по физическим каналам связи, таким, например, как коаксиальный кабель, витая пара, оптоволоконный кабель или цифровой территориальный канал. К этому уровню имеют отношение характеристики физических сред передачи данных, такие как полоса пропускания, помехозащищенность, волновое сопротивление и другие. На этом же уровне определяются характеристики электрических сигналов, передающих дискретную информацию, например, крутизна фронтов импульсов, уровни напряжения или тока передаваемого сигнала, тип кодирования, скорость передачи сигналов. Кроме этого, здесь стандартизуются типы разъемов и назначение каждого контакта.

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

На физическом уровне просто пересылаются биты. При этом не учитывается, что в некоторых сетях, в которых линии связи используются (разделяются) попеременно несколькими парами взаимодействующих компьютеров, физическая среда передачи может быть занята. Поэтому одной из задач канального уровня (Data Link layer) является проверка доступности среды передачи. Другой задачей канального уровня

является реализация механизмов обнаружения и коррекции5ошибок. Для этого на канальном уровне биты группируются в наборы, называемые кадрами (frames). Канальный уровень обеспечивает корректность передачи каждого кадра, помещая специальную последовательность бит в начало и конец каждого кадра, для его выделения, а также вычисляет контрольную сумму, обрабатывая все байты кадра определенным способом и добавляя контрольную сумму к кадру. Когда кадр приходит по сети, получатель снова вычисляет контрольную сумму полученных данных и сравнивает результат с контрольной суммой из кадра. Если они совпадают, кадр считается правильным и принимается. Если же контрольные суммы не совпадают, то фиксируется ошибка. Канальный уровень может не только обнаруживать ошибки, но и исправлять их за счет повторной передачи поврежденных кадров. Необходимо отметить, что функция исправления ошибок не является обязательной для канального уровня, поэтому в некоторых протоколах этого уровня она отсутствует,

например, в Ethernet и frame relay.

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

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

Вглобальных сетях, которые редко обладают регулярной топологией, канальный уровень часто обеспечивает обмен сообщениями только между двумя соседними компьютерами, соединенными индивидуальной линией связи. Примерами протоколов «точка-точка» (как часто называют такие протоколы) могут служить широко распространенные протоколы РРР и LAP-B.

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

Сетевой уровень (Network layer) служит для образования единой транспортной системы, объединяющей несколько сетей, причем эти сети могут использовать совершенно различные принципы передачи сообщений между конечными узлами и обладать произвольной структурой связей. Функции сетевого уровня достаточно разнообразны. Начнем их рассмотрение на примере объединения локальных сетей.

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

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

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

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

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

На пути от отправителя к получателю пакеты могут быть искажены или утеряны. Хотя некоторые приложения имеют собственные средства обработки ошибок, существуют и такие, которые предпочитают сразу иметь дело с надежным соединением. Транспортный уровень (Transport layer) обеспечивает приложениям или верхним уровням стека - прикладному и сеансовому - передачу данных с той степенью надежности, которая им требуется. Модель OSI определяет пять классов сервиса, предоставляемых транспортным уровнем. Эти виды сервиса отличаются качеством предоставляемых услуг: срочностью, возможностью восстановления прерванной связи, наличием средств мультиплексирования нескольких соединений между различными прикладными протоколами через общий транспортный протокол, а главное - способностью к обнаружению и исправлению ошибок передачи, таких как искажение, потеря и дублирование пакетов.

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

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

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

Сеансовый уровень (Session layer) обеспечивает управление диалогом: фиксирует, какая из сторон является активной в настоящий момент, предоставляет средства синхронизации. Последние позволяют вставлять контрольные точки в длинные передачи, чтобы в случае отказа можно было вернуться назад к последней контрольной точке, а не начинать все с начала. На практике немногие приложения используют сеансовый уровень, и он редко реализуется в виде отдельных протоколов, хотя функции этого уровня часто объединяют с функциями прикладного уровня и реализуют в одном протоколе.

Представительный уровень (Presentation layer) имеет дело с формой представления передаваемой по сети информации, не меняя при этом ее содержания. За счет уровня представления информация, передаваемая прикладным уровнем одной системы, всегда понятна прикладному уровню другой системы. С помощью средств данного уровня протоколы прикладных уровней могут преодолеть синтаксические различия в представлении данных или же различия в кодах символов, например кодов ASCII и EBCDIC. На этом уровне может выполняться шифрование и дешифрование данных, благодаря которому секретность обмена данными обеспечивается сразу для всех прикладных служб.

Прикладной уровень (Application layer) - это в действительности просто набор разнообразных протоколов, с помощью которых пользователи сети получают доступ к разделяемым ресурсам, таким как файлы, принтеры или гипертекстовые Web-страницы, а также организуют свою совместную работу, например, с помощью протокола электронной почты. Единица данных, которой оперирует прикладной уровень, обычно называется сообщением (message).

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

Билет 2

1. +Понятие «открытая система» на примере сетевых технологий

Модель OSI, как это следует из ее названия (Open System Interconnection), описывает взаимосвязи открытых систем. Что же такое открытая система?

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

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

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

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

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

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

Если две сети построены с соблюдением принципов открытости, то это дает следующие преимущества:

возможность построения сети из аппаратных и программных средств различных производителей, придерживающихся одного и того же стандарта;

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

возможность легкого сопряжения одной сети с другой;

простота освоения и обслуживания сети.

2. +Представление основных структур программирования: итерация, ветвление, повторение

На практике редко встречаются задачи, алгоритм решения которых является линейным. Часто оказывается, что алгоритм решения даже элементарной задачи не является линейным.

Выбор в точке разветвления алгоритма очередного шага программы может быть реализован при помощи инструкций if и case. Инструкция if позволяет выбрать один из двух возможных вариантов, инструкция case — один из нескольких.

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

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

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

3. +Основные принципы, лежащие в основе теории надежности

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

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

Теория надежности ПС оперирует теми же понятиями, что и теория надежности аппаратных средств, однако, в этом случае они имеют свою специфику.

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

Здесь также следует учесть, что в вычислительных системах сбои (не смотря на аппаратные противосбойные мероприятия, такие как введение проверок на четность, кодов Хемминга), появляются на порядок чаще, чем устойчивые отказы. Для оценки показателей надежности по отношению к сбоям могут применяться такие же оценки, как и по отношению к устойчивым отказам. Наиболее часто используются: вероятность бессбойной работы (вероятность того, что в заданном интервале времени t будут отсутствовать сбои ЭВМ), средняя наработка на сбой (отношение наработки восстанавливаемого объекта к математическому ожиданию числа его сбоев в течение этой наработки).

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

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

контроля данных, поступающих из внешней среды и

средств обнаружения аномалий функционирования ПС.

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

Наработка на отказ (совпадает с характеристикой для аппаратных средств). Для ее определения измеряется время работоспособного состояния между двумя последовательными отказами или началами нормального функционирования системы после них. Обычно вероятностные характеристики этой величины используются как критерии надежности.

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

Коэффициент готовности отражает вероятность иметь восстанавливаемую систему в работоспособном состоянии в произвольный момент времени.

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

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

По определению в ГОСТ 13377-75 надежность – это свойство объекта выполнять заданные функции, сохраняя во времени значения установленных эксплуатационных показателей в заданных пределах, соответствующих заданным режимам и условиям использования, технического ремонта, хранения и транспортирования.

В основе теории надежности программных средств (так же как и в случае аппаратных средств) лежит понятие о работоспособном и неработоспособном состоянии объекта или системы.

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

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

Для этого используются методы и средства контроля и диагностики функционирования системы. Эти методы и средства предназначены для:

установления степени работоспособности системы;

локализации отказов;

определения характеристик и причин отказов;

восстановления работоспособности;

для накопления и анализа данных, которые8характеризуют работоспособность системы.

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

Существует группа нормативных документов, посвященная формализации показателей качества программных средств. Например, международный стандарт ISO, ГОСТ 28195-89, ГОСТ 28806-90. Стандарт ISO рекомендует 6 основных характеристик (21 субхарактеристику) качества ПС:

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

Надежность (уровень завершенности, т.е. отсутствие ошибок, устойчивость к ошибкам, перезапускаемость); Применимость (понятность, обучаемость, простота использования), Эффективность (ресурсная экономичность, временная экономичность), Сопровождаемость (удобство анализа, изменяемость, стабильность, тестируемость),

Переносимость (адаптируемость, структурированность, замещаемость, внедряемость).

Билет 3

1. +Стадии жизненного цикла программного обеспечения

В состав жизненного цикла ПО обычно включаются следующие стадии:

1.Формирование требований к ПО.

2.Проектирование.

3.Реализация.

4.Тестирование.

5.Ввод в действие.

6.Эксплуатация и сопровождение.

7.Снятие с эксплуатации.

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

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

проведение обследования деятельности автоматизируемого объекта (организации), в рамках которого осуществляются:

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

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

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

модели "ТО-ВЕ" ("как должно быть"), отражающей представление о новых технологиях работы организации.

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

Переход от модели "AS-IS" к модели "ТО-ВЕ" может выполняться двумя способами:

1)совершенствованием существующих Технологий на основе оценки их эффективности;

2)радикальным изменением технологий и перепроектированием бизнес-процессов (реинжиниринг бизнес-процессов).

Построенные модели имеют самостоятельное практическое значение. Например, модель "AS-IS" позволяет выявлять узкие места в существующих технологиях и предлагать рекомендации по решению проблем независимо от того, предполагается на данном этапе дальнейшая разработка ЭИС или нет; Кроме того, модель облегчает обучение сотрудников конкретным направлениям деятельности организации за счет использования наглядных диаграмм (известно, что "одна картинка стоит тысячи слов").

Стадия проектирования. Она, как правило, включает следующие этапы:

разработка системного проекта. На этом этапе дается ответ на вопрос: "Что должна делать будущая система?", а именно: определяются архитектура системы, ее функции, внешние условия функционирования, интерфейсы и распределение функций между пользователями и системой, требования к программным и информационным компонентам, состав исполнителей и сроки разработки. Основу системного проекта составляют модели проектируемой ЭИС, которые строятся на основе модели "ТО-ВЕ". Документальным результатом этапа является техническое задание;

разработка технического проекта. На этом этапе на основе системного проекта осуществляется собственно проектирование системы, включающее проектирование архитектуры системы и детальное проектирование. Таким образом, дается ответ на вопрос: "Как построить систему, чтобы она удовлетворяла предъявленным к ней требованиям?". Модели проектируемой ЭИС при этом уточняются и детализируются до необходимого уровня.

Содержание последующих стадий совпадает в основном с соответствующими процессами ЖЦ ПО.

2. -Принцип модульного построения программ

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

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

3. +Основные показатели надежности невосстанавливаемых объектов (вероятность безотказной работы, средняя наработка до отказа, гамма-процентная наработка до отказа, интенсивность отказов)

Надежность программ.

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

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

Теория надежности ПС оперирует теми же понятиями, что и теория надежности аппаратных средств, однако, в этом случае они имеют свою специфику.

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

Здесь также следует учесть, что в вычислительных системах сбои (не смотря на аппаратные противосбойные мероприятия, такие как введение проверок на четность, кодов Хемминга), появляются на порядок чаще, чем устойчивые отказы. Для оценки показателей надежности по отношению к сбоям могут применяться такие же оценки, как и по отношению к устойчивым отказам. Наиболее часто используются: вероятность бессбойной работы (вероятность того, что в заданном интервале времени t будут отсутствовать сбои ЭВМ), средняя наработка на сбой (отношение наработки восстанавливаемого объекта к математическому ожиданию числа его сбоев в течение этой наработки).

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

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

контроля данных, поступающих из внешней среды и

средств обнаружения аномалий функционирования ПС.

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

Наработка на отказ (совпадает с характеристикой для аппаратных средств). Для ее определения измеряется время работоспособного состояния между двумя последовательными отказами или началами нормального функционирования системы после них. Обычно вероятностные характеристики этой величины используются как критерии надежности.

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

Коэффициент готовности отражает вероятность иметь восстанавливаемую систему в работоспособном состоянии в произвольный момент времени.

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

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

Билет 4

1. +Локальные и глобальные сети, их особенности, отличия, тенденции к сближению

К локальным сетям - Local Area Networks (LAN) - относят сети компьютеров, сосредоточенные на небольшой территории (обычно в радиусе не более 1-2 км).

Глобальные сети - Wide Area Networks (WAN) - объединяют территориально рассредоточенные компьютеры, которые могут находиться в различных городах и странах.

Основные отличия локальных сетей от глобальных:

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

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

Скорость обмена данными. Одним из главных отличий локальных сетей от глобальных является наличие высокоскоростных каналов обмена данными между компьютерами. За счет этого у пользователя локальной сети, подключенного к удаленному разделяемому ресурсу (например, диску сервера), складывается впечатление, что он пользуется этим диском, как «своим». Скорости стандартных технологий: Ethernet 10 Мбит/с, Token Ring 16 Мбит/с, FDDI, Fast Ethernet 100 Мбит/с, Gagabit Ethernet 1 Гбит/с. Для глобальных сетей типичны гораздо более низкие скорости передачи данных – от 2400 бит/с до 64 Кбит/с, и только на магистральных каналах - до 2 Мбит/с (frame relay). Сети с технологией ATM имеют скорости 622 Мбит/с, но используются как в качестве локальных, так и глобальных сетей.

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

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

Разделение каналов. В локальных сетях каналы связи используются, как правило, совместно сразу несколькими узлами сети, а в глобальных сетях - индивидуально.

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

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

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

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

Сближение в методах передачи данных происходит на платформе оптической цифровой (немодулированной) передачи данных по оптоволоконным линиям связи. Из-за резкого улучшения качества каналов связи в глобальных сетях начали отказываться от сложных и избыточных процедур обеспечения корректности передачи данных.

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

2. -Понятие об объектно-ориентированном программировании

Принципы ООП Абстрагирование (объект - конкретное представление абстракции, обладает индивидуальностью, структурой и поведением, класс

описание совокупности объектов, обладающих общей структурой и поведением)

Инкапсуляция – объединение данных и кода, работающего с этими данными в одну синтаксическую конструкцию (класс). Обеспечивает разделение элементов, описывающих объект на 2 группы: интерфейс (характер поведения объекта) и реализация самих методов + границы полей.

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

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

Основными свойствами ООП являются инкапсуляция, наследование и полиморфизм.

Под инкапсуляцией понимается сокрытие данных и операций АТД (абстрактные типы данных) от внешних программ, использующих их. Наследование - это средство получения новых типов данных (классов) из уже существующих типов, называемых базовыми классами. При этом повторно используется существующий код. Порождённый класс образуется из базового путем добавления или изменения кода. Различают единичное наследование, когда имеется только один базовый класс, и множественное наследование, когда базовых классов несколько. Наследование напрямую связано с идеей многократного использования или универсальности, программных компонент. Единожды разработав конструкцию такого компонента, в дальнейшем на ее основе можно строить новые компоненты, не переделывая того, что уже было заложено в старую.

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