Форум студентов МТИ

Вернуться   Форум студентов МТИ > Основной раздел > Тесты

Важная информация

Ответ
 
Опции темы Опции просмотра
Старый 15.05.2015, 13:51   #1
Case
Новичок
 
Регистрация: 15.05.2015
Сообщений: 2
Сказал спасибо: 0
Поблагодарили 9 раз(а) в 2 сообщениях
Восклицание Ответы ИГА Информатика и вычислительная техника «Сети ЭВМ и телекоммуникации»

Ответы ИГА Информатика и вычислительная техника «Сети ЭВМ и телекоммуникации» 2015 год.

Добавлено через 11 минут
[FONT="Arial"]1. Понятие базы данных.
База данных – компьютерная система хранения информации.
2. Архитектура СУБД и ее основные функции.
СУБД-Специализированная программа (чаще комплекс программ), предназначенная для организации и ведения базы данных.
Основные функции СУБД
 управление данными во внешней памяти (на дисках);
 управление данными в оперативной памяти с использованием дискового кэша;
 журнализация изменений, резервное копирование и восстановление базы данных после сбоев;
 поддержка языков БД (язык определения данных, язык манипулирования данными).
По архитектуре организации хранения данных
 локальные СУБД (все части локальной СУБД размещаются на одном компьютере);
 распределенные СУБД (части СУБД могут размещаться на двух и более компьютерах).
3. Распределенные базы данных. СУРБД.
СУРБД–это программный комплекс (СУБД), предназначенный для управления РБД и позволяющий сделать распределённость прозрачной для конечного пользователя.
Прозрачность РБД заключается в том, что сточки зрения конечного пользователя она должна вести себя точно также, как централизованная.
Логические дынные БД разделяется на фрагменты, каждый из которых хранится на одном компьютере, а все компьютеры соединены линиями связи. Каждый из этих фрагментов работает под управлением своей СУБД.
4. Автоматизированные информационные системы.
АИС-Совокупность программных и аппаратных средств, предназначенных для хранения и/или управления данными и информацией и производства вычислений.
5. Методология проектирования баз данных.
Методология проектирования БД предусматривает разбиение всего процесса проектирования на несколько фаз, каждая из которых состоит из нескольких этапов.
Общепринятая методология проектирования БД разделяется на 3 основные фазы
 Концептуальное проектирование;
 Логическое проектирование;
 Физическое проектирование.
Концептуальное проектирование – это процедура конструирования информационной модели, не зависящей от каких-либо физических условий реализации.
Логическое проектирование – это процесс конструирования информационной модели на основе существующих моделей данных, не зависимо от используемой СУБД и других условий физической реализации.
Физическое проектирование – это процедура создания описания конкретной реализации БД с описанием структуры хранения данных, методов доступа к данным.
6. Инфологическое проектирование.
Концептуальное (инфологическое) проектирование — построение семантической модели предметной области, то есть информационной модели наиболее высокого уровня абстракции.
Чаще всего концептуальная модель базы данных включает в себя:
 описание информационных объектов или понятий предметной области и связей между ними.
 описание ограничений целостности, т.е. требований к допустимым значениям данных и к связям между ними.
7. Физическое проектирование.
Физическое проектирование — создание схемы базы данных для конкретной СУБД. Специфика конкретной СУБД может включать в себя ограничения на именование объектов базы данных, ограничения на поддерживаемые типы данных и т.п.
8. Язык SQL – функции запросов и основные возможности.
Язык SQL(Structured Query Language - структурированный язык запросов) основывается на некоторой смеси алгебраических и логических конструкций, в настоящее время является промышленным стандартом, который в большей или меньшей степени поддерживает любая СУБД, претендующая на звание "реляционной". Язык SQL - наиболее распространённый язык управления базами данных типа клиент – сервер. В SQL определены два подмножества языка:
 язык манипулирования данными (Data Manipulation Language, DML)
 язык определения данных (Data Definition Language, DDL)
 язык управления данными (Data Control Language, DCL).
Язык манипулирования данными используется, как это следует из его названия, для манипулирования данными в таблицах баз данных.
Язык определения данных используется для создания и изменения структуры базы данных и ее составных частей - таблиц, индексов, представлений (виртуальных таблиц), а также триггеров и сохраненных процедур.
Язык управления данными используется для управления правами доступа к данным и выполнением процедур в многопользовательской среде. Более точно его можно назвать "язык управления доступом.
9. Использование SQL в прикладном программировании.
Первый способ состоит в том, что все операторы SQL, с которыми может работать данная прикладная программа, собраны в один модуль и оформлены как процедуры этого модуля. Для этого SQL содержит специальный подъязык - язык модулей. При использовании такого способа взаимодействия с БД прикладная программа содержит вызовы процедур модуля SQL с передачей им фактических параметров и получением ответных параметров.
Второй способ состоит в использовании так называемого встроенного SQL, когда с использованием специального синтаксиса в программу на традиционном языке программирования встраиваются операторы SQL. В этом случае с точки зрения прикладной программы оператор SQL выполняется "по месту". Явная параметризация операторов SQL отсутствует, но во встроенных операторах SQL могут использоваться имена переменных основной программы, и за счет этого обеспечивается связь между прикладной программой и СУБД.
Некоторые соображения за и против каждого из этих двух способов. При использовании языка модулей текст прикладной программы имеет меньший размер, взаимодействия с СУБД более локализованы за счет наличия явных параметров вызова процедур. С другой стороны, для понимания смысла поведения прикладной программы потребуется одновременное чтение двух текстов. Кроме того, как кажется, синтаксис модуля SQL может существенно различаться в разных реализациях. Встроенный SQL предоставляет возможность производства более "само содержащихся" прикладных программ. Имеется больше оснований рассчитывать на простоту переноса такой программы в среду другой СУБД, поскольку стандарт встраивания более или менее соблюдается. Основным недостатком является некоторый PL-подобный вид таких программ, независимо от выбранного основного языка.
10. Обработка транзакций в SQL.
Обработка транзакций обеспечивает сохранение целостности базы данных за счет того, что пакеты операций SQL выполняются полностью или не выполняются вовсе.
Обработка транзакций — это механизм, используемый для управления наборами операций SQL, которые должны быть выполнены в пакете, т.е. таким образом, чтобы в базу данных не могли попасть результаты частичного выполнения этого пакета операций. При обработке транзакций вы можете быть уверенными в том, что выполнение набора операций не было прервано на середине — они или были выполнены все, или не была выполнена ни одна из них (если только не было явно указано иное). Если ошибки не произошло, результаты работы всего набора операторов фиксируются (записываются) в таблицах базы данных. Если произошла ошибка, должна быть выполнена отмена (аннулирование) всех операций, чтобы возвратить базу данных в известное и безопасное состояние.
11. Эталонная модель OSI.
Эталонная модель OSI базовая эталонная модель взаимодействия открытых систем. В настоящее время основным используемым стеком протоколов является TCP/IP, разработанный ещё до принятия модели OSI и вне связи с ней. Состоит из 7 уровней:
7. Прикладной (application)- верхний уровень модели, обеспечивающий взаимодействие пользовательских приложений с сетью.
6. Представительский (представления) (presentation)- обеспечивает преобразование протоколов и кодирование/декодирование данных.
5. Сеансовый (session)- обеспечивает поддержание сеанса связи, позволяя приложениям взаимодействовать между собой длительное время.
4. Транспортный (transport)- предназначен для обеспечения надёжной передачи данных от отправителя к получателю.
3. Сетевой (network)- предназначен для определения пути передачи данных.
2. Канальный (data link)- предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля за ошибками, которые могут возникнуть.
1. Физический (physical)- нижний уровень модели, который определяет метод передачи данных, представленных в двоичном виде, от одного устройства (компьютера) к другому.
12. Аппаратное обеспечение ЛВС.
Аппаратное обеспечение локальной вычислительной сети включает рабочие станции, сервер, коммуникационное оборудование.
13.Топологии сетей и методы доступа к среде передачи данных.
Существует три базовые топологии, на основе которых строится большинство сетей:
 Шина - в этой топологии все компьютеры соединяются одним кабелем.
 Звезда - базовая топология компьютерной сети, в которой все компьютеры сети присоединены к центральному узлу (обычно коммутатор), образуя физический сегмент сети.
 Кольцо - в данной топологии каждый из компьютеров соединяется с двумя другими, так что бы от одного он получал информацию, а второму передавал ее. Последний компьютер подключается к первому, таким образом, кольцо замыкается.
14. Понятие политики информационной безопасности. Назначение политики безопасности. Основные типы политики безопасности доступа к данным.
Информационная безопасность - это процесс обеспечения конфиденциальности, целостности и доступности информации.
Назначения политики безопасности: Набор законов, правил, практических рекомендаций и практического опыта, определяющих управленческие и проектные решения в области ЗИ. На основе ПИБ строится управление, защита и распределение критичной информации в системе. Она должна охватывать все особенности процесса обработки информации, определяя поведение ИС в различных ситуациях.
Основные типы политики безопасности управления доступом к данным: Дискретная (дискреционная) и мандатная политика безопасности.
Основой дискретной политики безопасности является дискреционное управление доступом, которое определяется двумя свойствами:
Все субъекты и объекты должны быть идентифицированы;
Права доступа субъекта к объекту определяются на основе некоторого задаваемого набора правил.
Мандатная модель политики безопасности основывается на том, что:
Все субъекты и объекты должны быть идентифицированы;
Задан линейно упорядоченный набор меток секретности;
Каждому объекту присвоена метка секретности, определяющая ценность содержащейся в ней информации - его уровень секретности;
Каждому субъекту системы присвоена метка секретности, определяющая уровень доверия к нему - его уровень доступа.
15. Идентификация и аутентификация при входе в информационную систему. Использование парольных схем. Недостатки парольных схем. Применение программно-аппаратных средств аутентификации.
Идентификация в информационных системах — процедура, в результате выполнения которой для субъекта идентификации выявляется его идентификатор, однозначно идентифицирующий этого субъекта в информационной системе.
Аутентификация (англ. Authentication) — процедура проверки подлинности, например: проверка подлинности пользователя путём сравнения введённого им пароля с паролем в базе данных пользователей; подтверждение подлинности электронного письма путём проверки цифровой подписи письма по ключу проверки подписи отправителя; проверка контрольной суммы файла на соответствие сумме, заявленной автором этого файла.
Недостатки парольных систем - многие недостатки парольных систем связаны с наличием человеческого фактора, который проявляется в том, что пользователь, зачастую, стремится выбрать пароль, который легко запомнить (а значит, и подобрать), записать сложно запоминаемый пароль. Легальный пользователь способен ввести пароль так, что его могут увидеть посторонние, передать пароль другому лицу намеренно или под влиянием заблуждения.
Программно-аппаратные средства аутентификации - Электронный ключ eToken. Электронный ключ, который представляет собой персональное средство аутентификации, авторизации и безопасного защищенного хранения данных. Данное аппаратное средство поддерживает работу с ЭЦП (электронной цифровой подписью) и цифровыми сертификатами. Формы eToken бывают в виде брелока, USB-ключа или смарт-карты. Существуют различные модели данного ключа, и все они обладают уникальными свойствами. К примеру, в модели eToken NG-OTP встроен генератор одноразовых паролей. Модуль flash-памяти, объем которого достигает до 4ГБ, есть в модели eToken NG-FLASH. Модель eToken PASS предназначена только для генерации паролей. Также есть вариант, когда в средствах eToken имеется встроенная бесконтактная радио-метка, которая позволяет доступ в помещение.
16.Сети Token Ring и FDDI.
Token Ring - технология локальной вычислительной сети (LAN) кольца с «маркерным доступом» — протокол локальной сети, который находится на канальном уровне (DLL)модели OSI. Он использует специальный трёхбайтовый фрейм, названный маркером, который перемещается вокруг кольца. Владение маркером предоставляет его обладателю право передавать информацию на носителе. Кадры кольцевой сети с маркерным доступом перемещаются в цикле.
FDDI - Волоконно-оптический интерфейс передачи данных.Cтандарт передачи данных в локальной сети, протянутой на расстоянии до 200 километров. Стандарт основан на протоколе Token Ring. Кроме большой территории, сеть FDDI способна поддерживать несколько тысяч пользователей.
Token Ring и IEEE 802.5 являются главными примерами сетей с передачей маркера. Сети с передачей маркера перемещают по сети небольшой блок данных, называемый маркером. Владение этим маркером гарантирует право передачи. Если узел, принимающий маркер, не имеет информации для отправки, он просто переправляет маркер к следующей конечной станции. Каждая станция может удерживать маркер в течение определенного максимального времени (по умолчанию — 10 мс).
Данная технология предлагает вариант решения проблемы коллизий, которая возникает при работе локальной сети. В технологии Ethernet такие коллизии возникают при одновременной передаче информации несколькими рабочими станциями, находящимися в пределах одного сегмента, то есть использующих общий физический канал данных.
Если у станции, владеющей маркером, имеется информация для передачи, она захватывает маркер, изменяет у него один бит (в результате чего маркер превращается в последовательность «начало блока данных»), дополняет информацией, которую он хочет передать, и отсылает эту информацию к следующей станции кольцевой сети. Когда информационный блок циркулирует по кольцу, маркер в сети отсутствует (если только кольцо не обеспечивает «раннего освобождения маркера» — early token release), поэтому другие станции, желающие передать информацию, вынуждены ожидать. Следовательно, в сетях Token Ring не может быть коллизий. Если обеспечивается раннее высвобождение маркера, то новый маркер может быть выпущен после завершения передачи блока данных.
Информационный блок циркулирует по кольцу, пока не достигнет предполагаемой станции назначения, которая копирует информацию для дальнейшей обработки. Информационный блок продолжает циркулировать по кольцу; он окончательно удаляется после достижения станции, отославшей этот блок. Станция отправки может проверить вернувшийся блок, чтобы убедиться, что он был просмотрен и затем скопирован станцией назначения.
17. Сети Frame Relay, ATM, 100VG-AnyLan.
Frame Relay -является сетью с коммутацией кадров или сетью с ретрансляцией кадров, ориентированной на использование цифровых линий связи. Первоначально технология Frame Relay была стандартизирована как служба в сетях ISDN со скоростью передачи данных до 2 Мбит/с. В дальнейшем эта технология получила самостоятельное развитие. Frame Relay поддерживает физический и канальный уровни OSI. Технология Frame Relay использует для передачи данных технику виртуальных соединений (коммутируемых и постоянных).
Стек протоколов Frame Relay передает кадры при установленном виртуальном соединении по протоколам физического и канального уровней. В Frame Relay функции сетевого уровня перемещены на канальный уровень, поэтому необходимость в сетевом уровне отпала. На канальном уровне в Frame Relay выполняется мультиплексирование потока данных в кадры.
Обеспечивает множество независимых виртуальных каналов (Virtual Circuits, VC) в одной линии связи, идентифицируемых в FR-сети по идентификаторам подключения к соединению (DLCI). Вместо средств управления потоком включает функции извещения о перегрузках в сети. Возможно назначение минимальной гарантированной скорости (CIR) для каждого виртуального канала. В основном применяется при построении территориально распределённых корпоративных сетей, а также в составе решений, связанных с обеспечением гарантированной пропускной способности канала передачи данных (VoIP, видеоконференции и т. п.).
ATM - асинхронный способ передачи данных. Сетевая высокопроизводительная технология коммутации и мультиплексирования, основанная на передаче данных в виде ячеек (cell) фиксированного размера (53 байта), из которых 5 байтов используется под заголовок. В отличие от синхронного способа передачи данных СТМ, ATM лучше приспособлен для предоставления услуг передачи данных с сильно различающимся или изменяющимся битрейтом.
100VG-AnyLAN - В качестве альтернативы технологии Fast Ethernet компаниями AT&T и HP был выдвинут проект новой технологии со скоростью передачи данных 100 Мб/с - 100Base-VG. В этом проекте было предложено усовершенствовать метод доступа с учетом потребности мультимедийных приложений, при этом сохранить совместимость формата пакета с форматом пакета сетей 802.3. В сентябре 1993 года по инициативе фирм IBM и HP был образован комитет IEEE 802.12, который занялся стандартизацией новой технологии. Проект был расширен за счет поддержки в одной сети кадров не только формата Ethernet, но и формата Token Ring. В результате новая технология получила название 100VG-AnyLAN, то есть технология для любых сетей (Any LAN - любые сети), имея в виду, что в локальных сетях технологии Ethernet и Token Ring используются в подавляющем количестве узлов.Летом 1995 года технология 100VG-AnyLAN получила статус стандарта IEEE 802.12.В технологии 100VG-AnyLAN определены новый метод доступа Demand Priority и новая схема квартетного кодирования Quartet Coding, использующая избыточный код 5В/6В.Метод доступа Demand Priority основан на передаче концентратору функций арбитра, решающего проблему доступа к разделяемой среде. Метод Demand Priority повышает коэффициент использования пропускной способности сети за счет введения простого, детерминированного метода разделения общей среды, использующего два уровня приоритетов: низкий - для обычных приложений и высокий - для мультимедийных. Технология 100VG-AnyLAN имеет меньшую популярность среди производителей коммуникационного оборудования, чем конкурирующее предложение - технология Fast Ethernet. Компании, которые не поддерживают технологию 100VG-AnyLAN, объясняют это тем, что для большинства сегодняшних приложений и сетей достаточно возможностей технологии Fast Ethernet, которая не так заметно отличается от привычной большинству пользователей технологии Ethernet. В более далекой перспективе эти производители предлагают использовать для мультимедийных приложений технологию АТМ., а не 100VG-AnyLAN.И хотя в число сторонников технологии 100VG-AnyLAN одно время входило около 30 компаний, среди которых Hewlett-Packard и IBM, Cisco Systems и Cabletron, общим мнением сетевых специалистов является констатация отсутствия дальнейших перспектив у технологии 100VG-AnyLAN.
18. Линии связи. Характеристики линий связи.
Любая сетевая технология должна обеспечить надежную и быструю передачу дискретных данных по линиям связи. И хотя между технологиями имеются большие различия, они базируются на общих принципах передачи дискретных данных. Эти принципы находят свое воплощение в методах представления двоичных единиц и нулей с помощью импульсных или синусоидальных сигналов в линиях связи различной физической природы, методах обнаружения и коррекции ошибок, методах компрессии и методах коммутации.
Линия связи состоит в общем случае из физической среды, по которой передаются электрические информационные сигналы, аппаратуры передачи данных и промежуточной аппаратуры. Синонимом термина линия связи (line) является термин канал связи(channel).
Типы линий связи:
Физическая среда передачи данных (medium) может представлять собой кабель, то есть набор проводов, изоляционных и защитных оболочек и соединительных разъемов, а также земную атмосферу или космическое пространство, через которые распространяются электромагнитные волны.
В зависимости от среды передачи данных линии связи разделяются на следующие:
 проводные (воздушные);
 кабельные (медные и волоконно-оптические);
 радиоканалы наземной и спутниковой связи.
 Кабельные линии представляют собой достаточно сложную конструкцию. Кабель состоит из проводников, заключенных в несколько слоев изоляции: электрической, электромагнитной, механической, а также, возможно, климатической. Кроме того, кабель может быть оснащен разъемами, позволяющими быстро выполнять присоединение к нему различного оборудования. В компьютерных сетях применяются три основных типа кабеля: кабели на основе скрученных пар медных проводов, коаксиальные кабели с медной жилой, а также волоконно-оптические кабели.
 Скрученная пара проводов называется витой парой (twisted pair). Витая пара существует в экранированном варианте (Shielded Twistedpair, STP), когда пара медных проводов обертывается в изоляционный экран, и неэкранированном (Unshielded Twistedpair, UTP), когда изоляционная обертка отсутствует. Скручивание проводов снижает влияние внешних помех на полезные сигналы, передаваемые по кабелю.
 Коаксиальный кабель (coaxial) имеет несимметричную конструкцию и состоит из внутренней медной жилы и оплетки, отделенной от жилы слоем изоляции. Существует несколько типов коаксиального кабеля, отличающихся характеристиками и областями применения - для локальных сетей, для глобальных сетей, для кабельного телевидения и т. п.
 Волоконно-оптический кабель (optical fiber) состоит из тонких (5-60 микрон) волокон, по которым распространяются световые сигналы. Это наиболее качественный тип кабеля - он обеспечивает передачу данных с очень высокой скоростью (до 10 Гбит/с и выше) и к тому же лучше других типов передающей среды обеспечивает защиту данных от внешних помех.
 Радиоканалы наземной и спутниковой связи образуются с помощью передатчика и приемника радиоволн. Существует большое количество различных типов радиоканалов, отличающихся как используемым частотным диапазоном, так и дальностью канала. Диапазоны коротких, средних и длинных волн (KB, СВ и ДВ), называемые также диапазонами амплитудной модуляции (Amplitude Modulation, AM) по типу используемого в них метода модуляции сигнала, обеспечивают дальнюю связь, но при невысокой скорости передачи данных. Более скоростными являются каналы, работающие на диапазонах ультракоротких волн (УКВ), для которых характерна частотная модуляция (Frequency Modulation, FM), а также диапазонах сверхвысоких частот (СВЧ или microwaves). В диапазоне СВЧ (свыше 4 ГГц) сигналы уже не отражаются ионосферой Земли и для устойчивой связи требуется наличие прямой видимости между передатчиком и приемником. Поэтому такие частоты используют либо спутниковые каналы, либо радиорелейные каналы, где это условие выполняется.
Основные характеристики линий связи условно можно разделить на 2 подтипа:
 Распространение рабочего сигнала от собственных параметров линии связи.
 Распространение рабочего сигнала в зависимости от влияния других сигналов.
Иными словами, основные характеристики линий связи делят на те, которые непосредственно влияют на дальность сигнала, и те, которые непосредственно защищают распространение сигнала от других сигналов, которые уменьшают радиус распространения.
Основными характеристиками каналов линий связи в целом являются:
Шумы, достоверность передачи данных, амплитудно-частотная характеристика (ЯЧХ), волновое сопротивление, затухание, помехоустойчивость, пропускная способность, полоса пропускания, удельная стоимость.
19. Цифровое кодирование. Требования к методам цифрового кодирования.
При передаче дискретных данных по каналам связи применяются два основных типа физического кодирования - на основе синусоидального несущего сигнала и на основе последовательности прямоугольных импульсов. Первый способ называют также модуляцией, или аналоговой модуляцией, второй способ обычно называют цифровым кодированием.
При цифровом кодировании дискретной информации применяют потенциальные и импульсные коды. В потенциальных кодах для представления логических единиц и нулей используются только значение потенциала сигнала, а его перепады, формирующие законченные импульсы, во внимание не принимаются. Импульсные коды позволяют представить двоичные данные либо импульсами определенной полярности, либо частью импульса - перепадом потенциала определенного направления.
Требования к методам цифрового кодирования:
При использовании прямоугольных импульсов для передачи дискретной информации необходимо выбрать такой способ кодирования, который одновременно достигал бы нескольких целей:
 имел при одной и той же битовой скорости наименьшую ширину спектра результирующего сигнала;
 обеспечивал синхронизацию между передатчиком и приемником;
 обладал способностью распознавать ошибки;
 обладал низкой стоимостью реализации.
20. Особенности протоколов канального уровня.
Протоколы канального уровня определяют удобный для сетевого обмена способ представления информации, а также необходимый набор правил, позволяющий упорядочивать взаимодействие абонентов.
На канальном уровне данные рассматриваются как последовательный поток битов. Перед передачей по физическим каналам этот поток, в соответствии с принципом пакетной коммутации, разделяется на "порции", каждая из которых снабжается заголовком, содержащим некоторую служебную информацию, т.е. формируется пакет. На канальном уровне пакет называется кадром (frame).
Структура заголовка кадра зависит от набора задач, которые решает протокол. Сложность канальных протоколов во многом определяется сложностью топологии сети. Очевидно, что организовать общение всего двух абонентов существенно проще, чем упорядочивать информационный обмен в сетях, где возможно параллельное взаимодействие нескольких пар абонентов. Поэтому канальные протоколы удобно разделять на две группы:
 Протоколы для соединений типа "точка-точка;
 Протоколы для сетей сложных топологий.
21. Передача данных с установлением соединения и без установления соединения.
При передаче кадров данных на канальном уровне используются как дейтаграммные процедуры, работающие без становления соединения (connectionless), так и процедуры с предварительным установлением логического соединения (connection-oriented).
При дейтаграммной передаче кадр посылается в сеть «без предупреждения», и никакой ответственности за его утерю протокол не несет. Предполагается, что сеть всегда готова принять кадр от конечного узла. Дейтаграммный метод работает быстро, так как никаких предварительных действий перед отправкой данных не выполняется. Однако при таком методе трудно организовать в рамках протокола отслеживание факта доставки кадра узлу назначения. Этот метод не гарантирует доставку пакета.
Передача с установлением соединения более надежна, но требует больше времени для передачи данных и вычислительных затрат от конечных узлов.
В этом случае узлу-получателю отправляется служебный кадр специального формата с предложением установить соединение. Если узел-получатель согласен с этим, то он посылает в ответ другой служебный кадр, подтверждающий установление соединения и предлагающий для данного логического соединения некоторые параметры, например идентификатор соединения, максимальное значение поля данных кадров, которые будут использоваться в рамках данного соединения, и т. п. Узел-инициатор соединения может завершить процесс установления соединения отправкой третьего служебного кадра, в котором сообщит, что предложенные параметры ему подходят. На этом логическое соединение считается установленным, и в его рамках можно передавать информационные кадры с пользовательскими данными. После передачи некоторого законченного набора данных, например определенного файла, узел инициирует разрыв данного логического соединения, посылая соответствующий служебный кадр.
22. Адресация в компьютерных сетях.
Для того, чтобы компьютеры могли идентифицировать друг друга в информационно-вычислительной сети, им присваиваются явные адреса. Основными типами адресов являются следующие:
 MAC-адрес - который также называют физическим адресом, Ethernet-адресом, присваивается каждому сетевому адаптеру при его производстве.
 IP-адрес - адрес является основным видом адресации в Internet. Он обозначает не только компьютер, но и сегмент сети, в котором находится данный компьютер. Например, адрес 192.123.004.010 соответствует узлу номер 10 в сети 192.123.004. У другого узла в этом же сегменте может быть номер 20 и т.д. Сети и узлы в них - это отдельные объекты с отдельными номерами.
 доменный адрес - позволяет присваивать компьютерам легко запоминаемые имена, например, yahoo.com, и отвечает за перевод этих имен в IP-адреса.
 URL - система обозначений для однозначной идентификации компьютера, каталога или файла в Internet.
23. Стек протоколов TCP/IP. Структура IP-пакета.
Стек протоколов TCP/IP это промышленный стандарт стека протоколов, разработанный для глобальных сетей.
Протоколы TCP/IP делятся на 4 уровня.
Самый нижний (уровень IV) соответствует физическому и канальному уровням модели для локальных сетей это Ethernet, Token Ring, FDDI, Fast Ethernet, 100VG-AnyLAN, для глобальных сетей - протоколы соединений "точка-точка" SLIP и PPP, протоколы территориальных сетей с коммутацией пакетов X.25, frame relay.
Следующий уровень (уровень III) - это уровень межсетевого взаимодействия, который занимается передачей пакетов с использованием различных транспортных технологий локальных сетей, территориальных сетей, линий специальной связи и т. п.
В качестве основного протокола сетевого уровня (в терминах модели OSI) в стеке используется протокол IP, который изначально проектировался как протокол передачи пакетов в составных сетях, состоящих из большого количества локальных сетей, объединенных как локальными, так и глобальными связями. Поэтому протокол IP хорошо работает в сетях со сложной топологией, рационально используя наличие в них подсистем и экономно расходуя пропускную способность низкоскоростных линий связи. Протокол IP является дейтаграммным протоколом, то есть он не гарантирует доставку пакетов до узла назначения, но старается это сделать.
Следующий уровень (уровень II) называется основным. На этом уровне функционируют протокол управления передачей TCP (Transmission Control Protocol) и протокол дейтаграмм пользователя UDP(User Datagram Protocol). Протокол TCP обеспечивает надежную передачу сообщений между удаленными прикладными процессами за счет образования виртуальных соединений. Протокол UDP обеспечивает передачу прикладных пакетов дейтаграммным способом, как и IP, и выполняет только функции связующего звена между сетевым протоколом и многочисленными прикладными процессами.
Верхний уровень (уровень I) называется прикладным. За долгие годы использования в сетях различных стран и организаций стек TCP/IP накопил большое количество протоколов и сервисов прикладного уровня. К ним относятся такие широко используемые протоколы, как протокол копирования файлов FTP, протокол эмуляции терминала telnet, почтовый протокол SMTP, используемый в электронной почте сети Internet, гипертекстовые сервисы доступа к удаленной информации, такие как WWW и многие другие.
Структура IP пакета:
Версия — для IPv4 значение поля должно быть равно 4.
IHL — (Internet Header Length) длина заголовка IP-пакета в 32-битных словах (dword). Именно это поле указывает на начало блока данных (англ. payload — полезный груз) в пакете. Минимальное корректное значение для этого поля равно 5.
Длина пакета — длина пакета в октетах, включая заголовок и данные. Минимальное корректное значение для этого поля равно 20, максимальное — 65 535.
Идентификатор — значение, назначаемое отправителем пакета и предназначенное для определения корректной последовательности фрагментов при сборке пакета. Для фрагментированного пакета все фрагменты имеют одинаковый идентификатор.
3 бита флагов. Первый бит должен быть всегда равен нулю, второй бит DF (don’t fragment) определяет возможность фрагментации пакета и третий бит MF (more fragments) показывает, не является ли этот пакет последним в цепочке пакетов.
Смещение фрагмента — значение, определяющее позицию фрагмента в потоке данных. Смещение задается количеством восьмибайтовых блоков, поэтому это значение требует умножения на 8 для перевода в байты.
Время жизни (TTL) — число маршрутизаторов, которые может пройти этот пакет. При прохождении маршрутизатора это число уменьшается на единицу. Если значение этого поля равно нулю, то пакет должен быть отброшен, и отправителю пакета может быть послано сообщение Time Exceeded (ICMP тип 11 код 0).
Протокол — идентификатор интернет-протокола следующего уровня указывает, данные какого протокола содержит пакет, например, TCP или ICMP (см. IANA protocol numbers и RFC 1700). В IPv6 называется «Next Header».
Контрольная сумма заголовка — вычисляется в соответствии с RFC 1071
24. Протоколы маршрутизации.
Протокол маршрутизации — сетевой протокол, используемый маршрутизаторами для определения возможных маршрутов следования данных в составной компьютерной сети. Применение протокола маршрутизации позволяет избежать ручного ввода всех допустимых маршрутов, что, в свою очередь, снижает количество ошибок, обеспечивает согласованность действий всех маршрутизаторов в сети и облегчает труд администраторов.
Протоколы маршрутизации делятся на два вида, зависящие от типов алгоритмов, на которых они основаны:
 Дистанционно-векторные протоколы, основаны на Distance Vector Algorithm (DVA) – RIP; IGRP; BGP; EIGRP; AODV.
 Протоколы состояния каналов связи, основаны на Link State Algorithm (LSA) - IS-IS; OSPF; NLSP; HSRP и CARP; OLSR; TBRPF.
Также протоколы маршрутизации делятся на два вида в зависимости от сферы применения:
 Междоменной маршрутизации – EGP; BGP; IDRP;IS-IS level 3.
 Внутридоменной маршрутизации – RIP; IS-IS level 1-2; OSPF; IGRP; EIGRP.
25. Особенности корпоративных сетей.
Решение задачи планирования подразумевает разработку логической структуры функционирования сети. На этом этапе необходимо разделить сеть на виртуальные подсети (VLAN) таким образом, чтобы это деление соответствовало инфраструктуре и бизнес процессам предприятия. Доступность ресурсов. Структурированные кабельные системы, согласно требованиям прикладных задач, должны планироваться с учетом достаточного резерва для будущих применений, особенно это относится к оптоволоконной части СКС. Под необходимым резервом подразумевается не только увеличение числа возможных соединений, но и увеличение пропускной способности. Задача планирования сети заключается в оценке имеющихся на сегодня решений, предвидении того, что станет доступным и необходимым завтра, и объединении этих решений в эффективно функционирующую сеть.
26. Средства настройки и проверки работоспособности стека TCP/IP. На примере ОС Windows 2000/XP/2003.
Утилиты ipconfig, ping, netstat, nbtstat, nslookup, netsh.
Утилита NETSTAT-Отображение статистики протокола и текущих сетевых подключений TCP/IP.
Утилита NBTSTAT- Отображение статистики протокола и текущих подключений TCP/IP с помощью NBT (NetBIOS через TCP/IP).
27. Протоколы электронной почты и файлового обмена.
Файловый обмен - это доступ к файлам, распределенным по различным компьютерам. В сети Internet на прикладном уровне используется протокол FTP. Доступ возможен в режимах off-line и on-line. В режиме off-line посылается запрос к FTP-серверу, сервер формирует и посылает ответ на запрос. В режиме on-line осуществляется интерактивный просмотр каталогов FTP - сервера, выбор и передача нужных файлов. Для осуществления указанных операций на ЭВМ пользователя должно быть установлено программное обеспечение FTP-клиент. При запросе файла по протоколу FTP пользователь должен знать, где находится нужный ему.
Протоколы получения почты:
 POP3.В концепции почтового хранилища почта на сервере хранится временно, в ограниченном объёме (аналогично почтовому ящику для бумажной почты), а пользователь периодически обращается к ящику и «забирает» письма (то есть почтовый клиент скачивает копию письма к себе и удаляет оригинал из почтового ящика). На основании этой концепции действует протокол POP3.
 IMAP. Концепция почтового терминала подразумевает, что вся корреспонденция, связанная с почтовым ящиком (включая копии отправленных писем), хранится на сервере, а пользователь обращается к хранилищу (иногда его по традиции также называют «почтовым ящиком») для просмотра корреспонденции (как новой, так и архива) и написания новых писем (включая ответы на другие письма). На этом принципе действует протокол IMAP и большинство веб-интерфейсов бесплатных почтовых служб. Подобное хранение почтовой переписки требует значительно больших мощностей от почтовых серверов, в результате, во многих случаях происходит разделение между почтовыми серверами, пересылающими почту, и серверами хранения писем.
28. Протоколы удаленного доступа и интерактивного взаимодействия.
SSH (Secure Shell) — сетевой протокол прикладного уровня, позволяющий производить удаленное управление компьютером и передачу файлов. По функциональности аналогичен протоколу Telnet с той лишь разницей, что использует алгоритмы шифрования передаваемой информации. Криптографическая защита протокола SSH может быть построена на различных алгоритмах шифрования. Как клиенты, так и серверы, поддерживающие данный протокол, многоплатформенны, однако с уклоном на UNIX: поддержка SSH реализована во всех UNIX-системах, и на большинстве из них в числе стандартных утилит присутствуют клиент и сервер ssh. Однако любителям Windows сильно уж огорчаться по этому поводу вовсе не стоит: на сегодняшний день существует множество реализаций SSH-клиентов и для Windows-платформ.
FTP (англ. File Transfer Protocol — протокол передачи файлов) — стандартный протокол, предназначенный для передачи файлов по TCP-сетям (например, Интернет). Использует 21й порт. FTP часто используется для загрузки сетевых страниц и других документов с частного устройства разработки на открытые сервера хостинга. Протокол построен на архитектуре «клиент-сервер» и использует разные сетевые соединения для передачи команд и данных между клиентом и сервером. Пользователи FTP могут пройти аутентификацию, передавая логин и пароль открытым текстом, или же, если это разрешено на сервере, они могут подключиться анонимно. Можно использовать протокол SSH для безопасной передачи, скрывающей (шифрующей) логин и пароль, а также шифрующей содержимое.
TELNET (англ. TErminaL NETwork) — сетевой протокол для реализации текстового интерфейса по сети (в современной форме — при помощи транспорта TCP). Название «telnet» имеют также некоторые утилиты, реализующие клиентскую часть протокола.
29. Протоколы защищенной передачи данных. Создание VPN. Цифровые сертификаты.
TLS (англ. Transport Layer Security — безопасность транспортного уровня), как и его предшественник SSL (англ. Secure Sockets Layer — уровень защищённых сокетов) —криптографические протоколы, обеспечивающие защищённую передачу данных между узлами в сети Интернет[1]. TLS и SSL используют асимметричную криптографию для аутентификации, симметричное шифрование для конфиденциальности и коды аутентичности сообщений для сохранения целостности сообщений. Данный протокол широко используется в приложениях, работающих с сетью Интернет, таких как веб-браузеры, работа с электронной почтой, обмен мгновенными сообщениями и IP-телефония (VoIP).TLS даёт возможность клиент-серверным приложениям осуществлять связь в сети таким образом, чтобы предотвратить прослушивание и несанкционированный доступ. Так как большинство протоколов связи могут быть использованы как с, так и без TLS (или SSL), при установке соединения необходимо явно указать серверу, хочет ли клиент устанавливать TLS. Это может быть достигнуто либо с помощью использования унифицированного номера порта, по которому соединение всегда устанавливается с использованием TLS (как например порт 443 для HTTPS), либо с использованием произвольного порта и специальной команды серверу со стороны клиента на переключение соединения на TLS с использованием специальных механизмов протокола (как например STARTTLS для протоколов электронной почты). Как только клиент и сервер договорились об использовании TLS, им необходимо установить защищённое соединение. Это делается с помощью процедуры подтверждения связи. Во время этого процесса клиент и сервер принимают соглашение относительно различных параметров, необходимых для установки безопасного соединения.
VPN состоит из двух частей: «внутренняя» (подконтрольная) сеть, которых может быть несколько, и «внешняя» сеть, по которой проходит инкапсулированное соединение (обычно используется Интернет). Возможно также подключение к виртуальной сети отдельного компьютера. Подключение удалённого пользователя к VPN производится посредством сервера доступа, который подключён как к внутренней, так и к внешней (общедоступной) сети. При подключении удалённого пользователя (либо при установке соединения с другой защищённой сетью) сервер доступа требует прохождения процесса идентификации, а затем процесса аутентификации. После успешного прохождения обоих процессов, удалённый пользователь (удаленная сеть) наделяется полномочиями для работы в сети, то есть происходит процесс авторизации.
SSL — это сокращение от Secure Socket Layer — это стандартная интернет технология безопасности, которая используется, чтобы обеспечить зашифрованное соединение между веб-сервером (сайтом) и браузером. SSL сертификат позволяет нам использовать https протокол. Это безопасное соединение, которое гарантирует, что информация, которая передается от вашего браузера на сервер остается приватной; то есть защищенной от хакеров или любого, кто хочет украсть информацию. Один из самых распространенных примеров использования SSL — это защита клиента во время онлайн транзакции (покупки товара, оплаты).
30. Классификация сетевых угроз и методы защиты информации.
Сетевые атаки могут быть классифицированы следующим образом:
 Сниффер пакетов (sniffer – в данном случае в смысле фильтрация) – прикладная программа, которая использует сетевую карту, работающую в режиме promiscuous (не делающий различия) mode (в этом режиме все пакеты, полученные по физическим каналам, сетевой адаптер отправляет приложению для обработки).
 IP-спуфинг (spoof – обман, мистификация) – происходит, когда хакер, находящийся внутри корпорации или вне ее, выдает себя за санкционированного пользователя.
 Отказ в обслуживании (Denial of Service – DoS). Атака DoS делает сеть недоступной для обычного использования за счет превышения допустимых пределов функционирования сети, операционной системы или приложения.
 Парольные атаки – попытка подбора пароля легального пользователя для входа в сеть.
 Атаки типа Man-in-the-Middle – непосредственный доступ к пакетам, передаваемым по сети.
 Атаки на уровне приложений.
 Сетевая разведка – сбор информации о сети с помощью общедоступных данных и приложений.
 Злоупотребление доверием внутри сети.
 Несанкционированный доступ (НСД), который не может считаться отдельным типом атаки, так как большинство сетевых атак проводятся ради получения несанкционированного доступа.
Классификация средств защиты информации:
1. Технические (аппаратные) средства. Это различные по типу устройства (механические, электромеханические, электронные и др.), которые аппаратными средствами решают задачи защиты информации. Они либо препятствуют физическому проникновению, либо, если проникновение все же состоялось, доступу к информации, в том числе с помощью ее маскировки. Первую часть задачи решают замки, решетки на окнах, защитная сигнализация и др. Вторую – упоминавшийся выше генераторы шума, сетевые фильтры, сканирующие радиоприемники и множество других устройств, "перекрывающих" потенциальные каналы утечки информации или позволяющих их обнаружить. Преимущества технических средств связаны с их надежностью, независимостью от субъективных факторов, высокой устойчивостью к модификации. Слабые стороны – недостаточная гибкость, относительно большие объем и масса, высокая стоимость.
2. Программные средства включают программы для идентификации пользователей, контроля доступа, шифрования информации, удаления остаточной (рабочей) информации типа временных файлов, тестового контроля системы защиты и др. Преимущества программных средств – универсальность, гибкость, надежность, простота установки, способность к модификации и развитию. Недостатки – ограниченная функциональность сети, использование части ресурсов файл-сервера и рабочих станций, высокая чувствительность к случайным или преднамеренным изменениям, возможная зависимость от типов компьютеров (их аппаратных средств).
3. Смешанные аппаратно-программные средства реализуют те же функции, что аппаратные и программные средства в отдельности, и имеют промежуточные свойства.
4. Организационные средства складываются из организационно-технических (подготовка помещений с компьютерами, прокладка кабельной системы с учетом требований ограничения доступа к ней и др.) и организационно-правовых (национальные законодательства и правила работы, устанавливаемые руководством конкретного предприятия). Преимущества организационных средств состоят в том, что они позволяют решать множество разнородных проблем, просты в реализации, быстро реагируют на нежелательные действия в сети, имеют неограниченные возможности модификации и развития. Недостатки – высокая зависимость от субъективных факторов, в том числе от общей организации работы в конкретном подразделении.
31. Эволюция парадигм программирования. Основные идеи и принципы ООП.
ООП возникло в результате развития идеологии процедурного программирования, где данные и подпрограммы (процедуры, функции) их обработки формально не связаны. Для дальнейшего развития объектно-ориентированного программирования часто большое значение имеют понятия события (так называемое событийно-ориентированное программирование) и компонента (компонентное программирование, КОП).
Взаимодействие объектов происходит посредством сообщений. Результатом дальнейшего развития ООП, по-видимому, будет агентно-ориентированое программирование, где агенты — независимые части кода на уровне выполнения. Взаимодействие агентов происходит посредством изменения среды, в которой они находятся.
Языковые конструкции, конструктивно не относящиеся непосредственно к объектам, но сопутствующие им для их безопасной (исключительные ситуации, проверки) и эффективной работы, инкапсулируются от них в аспекты (в аспектно-ориентированном программировании). Субъектно-ориентированное программирование расширяет понятие объекта посредством обеспечения более унифицированного и независимого взаимодействия объектов. Может являться переходной стадией между ООП и агентным программированием в части самостоятельного их взаимодействия.
Первым языком программирования, в котором были предложены принципы объектной ориентированности, была Симула. В момент его появления в 1967 году в нём были предложены революционные идеи: объекты, классы, виртуальные методы и др., однако это всё не было воспринято современниками как нечто грандиозное. Тем не менее, большинство концепций были развиты Аланом Кэем и Дэном Ингаллсом в языке Smalltalk. Именно он стал первым широко распространённым объектно-ориентированным языком программирования.
В настоящее время количество прикладных языков программирования (список языков), реализующих объектно-ориентированную парадигму, является наибольшим по отношению к другим парадигмам. В области системного программирования до сих пор применяется парадигма процедурного программирования, и общепринятым языком программирования является Cи. При взаимодействии системного и прикладного уровней операционных систем заметное влияние стали оказывать языки объектно-ориентированного программирования. Например, одной из наиболее распространённых библиотек мульти платформенного программирования является объектно-ориентированная библиотека Qt, написанная на языке C++.
Объектно-ориентированное программирование (ООП) — парадигма программирования, в которой основными концепциями являются понятия объектов и классов (либо, в менее известном варианте языков с прототипированием — прототипов).
32. Понятия класса и объекта.
Класс-разновидность абстрактного типа данных в объектно-ориентированном программировании (ООП), характеризуемый способом своего построения. Суть отличия классов от других абстрактных типов данных состоит в том, что при задании типа данных класс определяет одновременно и интерфейс, и реализацию для всех своих экземпляров, а вызов метода-конструктора обязателен.
Объект — некоторая сущность в виртуальном пространстве, обладающая определённым состоянием и поведением, имеющая заданные значения свойств (атрибутов) и операций над ними (методов). Как правило, при рассмотрении объектов выделяется то, что объекты принадлежат одному или нескольким классам, которые определяют поведение (являются моделью) объекта. Термины «экземпляр класса» и «объект» взаимозаменяемы.
33. Структура класса и синтаксис декларации класса.
Структура является типом значения. При создании структуры переменная, к которой она назначается, сохраняет фактические данные структуры. При назначении структуры новой переменной выполняется ее копирование. Поэтому новая переменная и исходная переменная содержат две отдельных копии одних данных. Изменения, внесенные в одну копию, не влияют на другую копию.
Как правило, классы используются для моделирования более сложного поведения или данных, которые, как предполагается, будут изменены после создания объекта класса. Структуры лучше всего подходят для небольших структур данных, которые содержат преимущественно те данные, которые не предназначены для изменения после создания структуры.
Синтаксис деклараций
Декларации — или объявления — это определение имени и формирование типа, прикрепляемого к этому имени. Т.е. если вам нужно место для хранения целого числа, вы должны объявить переменную, с понятным вам именем, типа данных целое (int). К слову, int = integer = целое число. И помните, декларация не создает объект и не выделяет память — это только закрепление имени за типом. Для создания декларированного объекта необходимо его инициализировать (или определить), т.е. либо присвоить начальное значение, либо запустить конструктор.
Декларация классов, функций и переменных на уровне класса требует указания модификатора доступа. Впрочем, если не указывать будет, использован стандартный, обычно private. Модификаторы доступа — это ключевые слова, определяющие, откуда можно будет получить доступ к декларированной переменной/функции и пр.
Структуры используют большую часть того же синтаксиса, что и классы, однако они более ограничены по сравнению с ними.
 В объявлении структуры поля не могут быть инициализированы за исключением случаев, когда они объявлены как постоянные или статические.
 Структура не может объявлять используемый по умолчанию конструктор (конструктор без параметров) или деструктор.
 Структуры копируются при присваивании. При присваивании структуры к новой переменной выполняется копирование всех данных, а любое изменение новой копии не влияет на данные в исходной копии. Это важно помнить при работе с коллекциями типов значений, такими как Dictionary<string, myStruct>.
 Структуры являются Типами Значений, а классы — Ссылочными Типами.
 В отличие от классов, структуры можно создавать без использования оператора new.
 Структуры могут объявлять конструкторы, имеющие параметры.
 Структура не может быть унаследованной от другой структуры или класса и не может быть основой для других классов.
 Структуры могут реализовывать интерфейсы.
 Структура может использоваться как тип, допускающий значение NULL, и ей можно назначить значение NULL.
34. Доступ к членам класса. Закрытые и открытые члены класса.
По существу, имеются два типа членов класса: открытые и закрытые, хотя в действительности дело обстоит немного сложнее. Доступ к открытому члену свободно осуществляется из кода, определенного за пределами класса. А закрытый член класса доступен только методам, определенным в самом классе. С помощью закрытых членов и организуется управление доступом.
Ограничение доступа к членам класса является основополагающим этапом объектно-ориентированного программирования, поскольку позволяет исключить неверное использование объекта. Разрешая доступ к закрытым данным только с помощью строго определенного ряда методов, можно предупредить присваивание неверных значений этим данным, выполняя, например, проверку диапазона представления чисел. Для закрытого члена класса нельзя задать значение непосредственно в коде за пределами класса. Но в то же время можно полностью управлять тем, как и когда данные используются в объекте. Следовательно, правильно реализованный класс образует некий "черный ящик", которым можно пользоваться, но внутренний механизм его действия закрыт для вмешательства извне.
Правильная организация закрытого и открытого доступа — залог успеха в объектно-ориентированном программировании. И хотя для этого не существует твердо установленных правил, ниже перечислен ряд общих принципов, которые могут служить в качестве руководства к действию:
 Члены, используемые только в классе, должны быть закрытыми;
 Данные экземпляра, не выходящие за определенные пределы значений, должны быть закрытыми, а при организации доступа к ним с помощью открытых методов следует выполнять проверку диапазона представления чисел;
 Если изменение члена приводит к последствиям, распространяющимся за пределы области действия самого члена, т.е. оказывает влияние на другие аспекты объекта, то этот член должен быть закрытым, а доступ к нему — контролируемым;
 Члены, способные нанести вред объекту, если они используются неправильно, должны быть закрытыми. Доступ к этим членам следует организовать с помощью открытых методов, исключающих неправильное их использование;
 Методы, получающие и устанавливающие значения закрытых данных, должны быть открытыми;
 Переменные экземпляра допускается делать открытыми лишь в том случае, если нет никаких оснований для того, чтобы они были закрытыми.
35. Принцип инкапсуляции.
Инкапсуляцией называется упаковка данных и/или функций в единый компонент.
В объектно-ориентированных языках инкапсуляция, как правило, реализуется посредством механизма классов. Некоторые исследователи классифицируют инкапсуляцию как понятие, присущее исключительно объектно-ориентированному программированию, и необходимое для управления сокрытием, но существуют и другие механизмы, рассматривающие эти понятия независимо. Например, применение средств инкапсуляции для многих задач оказывается ненужным в языках, использующих лексическую область видимости, которая обеспечивает полное сокрытие компонентов. Примерами таких языков служат Scheme и Standard ML.
В общем случае, в разных языках программирования термин «инкапсуляция» относится к одной из или обеим одновременно следующим нотациям:
 языковая конструкция, позволяющая связать данные с методами, предназначенными для обработки этих данных;
 механизм языка, позволяющий ограничить доступ одних компонентов программы к другим.
Итак, зачем же нам нужна инкапсуляция? Ответ прост, мы - люди. А человеку свойственно ошибаться. Никто не застрахован от ошибок. Применяя инкапсуляцию, мы, как бы, возводим крепость, которая защищает данные, принадлежащие объекту, от возможных ошибок, которые могут возникнуть при прямом доступе к этим данным. Кроме того, применение этого принципа очень часто помогает локализовать возможные ошибки в коде программы. А это на много упрощает процесс поиска и исправления этих ошибок.
36. Методы в ООП. Способы передачи параметров.
Метод в объектно-ориентированном программировании — это функция или процедура, принадлежащая какому-то классу или объекту.
Как и процедура в процедурном программировании, метод состоит из некоторого количества операторов для выполнения какого-то действия и имеет набор входных аргументов.
Различают простые методы и статические методы (методы класса):
 простые методы имеют доступ к данным объекта (конкретного экземпляра данного класса),
 статические методы не имеют доступа к данным объекта и для их использования не нужно создавать экземпляры (данного класса).
Методы предоставляют интерфейс, при помощи которого осуществляется доступ к данным объекта некоторого класса, тем самым, обеспечивая инкапсуляцию данных.
В зависимости от того, какой уровень доступа предоставляет тот или иной метод, выделяют:
 открытый (public) интерфейс — общий интерфейс для всех пользователей данного класса;
 защищённый (protected) интерфейс — внутренний интерфейс для всех наследников данного класса;
 закрытый (private) интерфейс — интерфейс, доступный только изнутри данного класса.
Такое разделение интерфейсов позволяет сохранять неизменным открытый интерфейс, но изменять внутреннюю реализацию.
Для реализации разных способов передачи параметров в методы используются модификаторы.
 (нет) / in- Входной параметр.
 Out-Выходной параметр. Значение, записанное в этот параметр, будет доступно в методе, из которого данный метод был вызван.
 Ref-Передача параметра по ссылке. Переменная, передаваемая в качестве такого параметра, должна быть проинициализирована до вызова метода; при изменении значения параметра будет изменяться значение переданной переменной, а не ее копии.
 Params-В качестве данного параметра указывается одномерный массив произвольной размерности, передан, может быть, массив или явно перечисленные значения. Данный модификатор может быть использован только последним в списке параметров метода.
Различие между модификаторами ref и out в том, что out не требует, чтобы вызывающий метод инициализировал передаваемый аргумент.
При вызове метода необходимо указывать модификатор передаваемого параметра (это правило не относится к модификатору params).
37. Реализация методов класса. Конструкторы и деструкторы.
Конструкторы и деструкторы отвечают за существование объекта в памяти, т.е. выделяют память для экземпляра класса, затем и освобождают ее.
Конструктор — это специальный вид подпрограммы, присоединенный к классу. Его назначение — создавать представителей (экземпляры) класса. Он ведет себя как функция, которая возвращает ссылку на вновь созданный экземпляр класса, т.е. на объект. Одновременно выделяется память для хранения значений полей экземпляра класса.
Деструктор — это специальная разновидность подпрограммы, присоединенной к классу. Его назначение заключается в уничтожении экземпляра класса, т.е. объекта и освобождении памяти, выделенной под экземпляр.
Реализация конструкторов:
В задачу конструктора входит создание экземпляра класса и выполнение операторов, содержащихся в его теле. Назначение кода внутри конструктора — инициализировать только что созданный экземпляр объекта.
Реализация деструкторов:
Деструктор уничтожает экземпляр класса, который был использован при его вызове, автоматически освобождая любую динамическую память, которая ранее была зарезервирована конструктором, закрывает файлы и т.п. операции. Программист ответственен за вызов деструкторов для всех экземпляров класса, если были зарезервированы подчиненные объекты.
38. Полиморфизм, перегрузка методов.
Полиморфизмом называется способность функции обрабатывать данные разных типов.
Существует несколько видов полиморфизма. Два наиболее различных это специальный полиморфизм и параметрический полиморфизм. Кратко специальный полиморфизм описывается принципом «много реализаций с похожими интерфейсами», а параметрический полиморфизм — «одна реализация с обобщённым интерфейсом».
Полиморфизм является фундаментальным свойством системы типов. Различают статическую не полиморфную типизацию , динамическую типизацию и статическую полиморфную типизацию. Параметрический полиморфизм и динамическая типизация намного существеннее, чем специальный полиморфизм, повышают коэффициент повторного использования кода, поскольку определенная единственный раз функция реализует без дублирования заданное поведение для бесконечного множества вновь определяемых типов, удовлетворяющих требуемым в функции условиям. С другой стороны, временами возникает необходимость обеспечить различное поведение функции в зависимости от типа параметра, и тогда необходимым оказывается специальный полиморфизм.
Параметрический полиморфизм повсеместно используется в функциональном программировании, где он обычно обозначается просто как «полиморфизм». В сообществе же объектно-ориентированного программирования под термином «полиморфизм» обычно подразумевают ad hoc полиморфизм методов классов, связанных в иерархию наследования; а использование параметрического полиморфизма называют обобщённым программированием, или иногда «статическим полиморфизмом».
Перегрузка методов. Определение внутри одного класса двух или более методов с одним именем, если только объявления их параметров различны. В этом случае методы называют перегруженными, а процесс — перегрузкой методов. Перегрузка методов — один из способов поддержки полиморфизма.
39. Принцип наследования. Виртуальные и абстрактные методы.
Наследование — механизм языка, позволяющий описать новый класс на основе уже существующего (родительского, базового) класса. Класс-потомок может добавить собственные методы и свойства, а также пользоваться родительскими методами и свойствами. Позволяет строить иерархии классов. Является одним из пяти типов ассоциации. Является одним из основных принципов объектно-ориентированного программирования.
Абстрактный метод - в объектно-ориентированном программировании, метод класса, реализация для которого отсутствует. Класс, содержащий абстрактные методы, также принято называть абстрактным (там же и пример). Абстрактные методы зачастую путают с виртуальными. Абстрактный метод подлежит определению в классах-наследниках, поэтому его можно отнести к виртуальным, но не каждый виртуальный метод является абстрактным.
Виртуальный метод (виртуальная функция) — в объектно-ориентированном программировании метод (функция) класса, который может быть переопределён в классах-наследниках так, что конкретная реализация метода для вызова будет определяться во время исполнения. Таким образом, программисту необязательно знать точный тип объекта для работы с ним через виртуальные методы: достаточно лишь знать, что объект принадлежит классу или наследнику класса, в котором метод объявлен.
Виртуальные методы — один из важнейших приёмов реализации полиморфизма. Они позволяют создавать общий код, который может работать как с объектами базового класса, так и с объектами любого его класса-наследника. При этом базовый класс определяет способ работы с объектами, и любые его наследники могут предоставлять конкретную реализацию этого способа. В некоторых языках программирования, например в Java, нет понятия виртуального метода, данное понятие следует применять лишь для языков, в которых методы родительского класса не могут быть переопределены по умолчанию, а только с помощью некоторых вспомогательных ключевых слов. В некоторых же (как, например, в Python), все методы — виртуальные.
40. Классы и структуры.
Классы и структуры являются двумя основными конструкциями системы общих типов. Каждая, по сути, является структурой данных, инкапсулирующей набор данных и поведение, связанные как логическая единица. Данные и поведение являются членами класса или структуры, и в них включены методы, свойства, события и т.д.
Объявление класса или структуры подобно чертежу, который используется для создания экземпляров или объектов во время выполнения. При определении класса или структуры с именем Person, Person является именем типа. При объявлении или инициализации переменной p типа Person, p считается объектом или экземпляром Person. Возможно создание нескольких экземпляров одного типа Person, и каждый экземпляр может иметь разные значения в своих свойствах и полях.
Класс является ссылочным типом. При создании объекта класса переменная, к которой назначается объект, сохраняет только ссылку на память. При назначении ссылки на объект к новой переменной новая переменная ссылается на исходный объект. Изменения, внесенные через одну переменную, отображаются в другой переменной, поскольку обе они ссылаются на одни данные.
41. Переопределение методов базового класса. Вызов метода базового класса.
Переопределение метода в объектно-ориентированном программировании — одна из возможностей языка программирования, позволяющая подклассу или дочернему классу обеспечивать специфическую реализацию метода, уже реализованного в одном из суперклассов или родительских классов. Реализация метода в подклассе переопределяет (заменяет) его реализацию в суперклассе, описывая метод с тем же названием, что и у метода суперкласса, а также у нового метода подкласса должны быть те же параметры или сигнатура, тип возвращаемого результата, что и у метода родительского класса. Версия метода, которая будет исполнятся, определяется объектом, используемым для его вызова. Если вызов метода происходит от объекта родительского класса, то выполняется версия метода родительского класса, если же объект подкласса вызывает метод, то выполняется версия дочернего класса[2]. Некоторые языки программирования позволяют программисту защищать методы от переопределения.
На примере языка программирования C# . Ключевое слово base используется для доступа к членам базового класса из производного класса:
 Вызов метода базового класса, который был переопределен другим методом.
 Определение конструктора базового класса, который должен вызываться при создании экземпляров производного класса.
Доступ к базовому классу разрешен только в конструкторе, методе экземпляра или методе доступа экземпляра.
Использование ключевого слова base в статическом методе является недопустимым.
Базовый класс, к которому осуществляется доступ, является базовым классом, заданным в объявлении класса. Например, если указать class ClassB : ClassA, члены ClassA будут доступны из ClassB, независимо от базового класса ClassA.
42. Свойства и методы в ООП.
Основной единицей в объектно-ориентированном программировании является объект, который заключает в себе, инкапсулирует, как описывающие его данные (свойства), так и средства обработки этих данных (методы).
Свойства объекта. Чтобы изменить состояние объекта, необходимо определить новые значения его свойств. Для присваивания свойству конкретного значения используется знак равенства.
Синтаксис установки значения свойства объекта следующий:
Объект.Свойство = ЗначениеСвойства
Методы объекта. Чтобы объект выполнил какую-либо операцию, необходимо задать метод. Многие методы имеют аргументы, которые позволяют установить параметры выполняемых действий. Для присваивания аргументам конкретных значений применяется двоеточие и знак равенства, а между собой аргументы отделяются запятой.
Синтаксис команды применения метода объекта следующий:
Объект.Метод :=значение, арг2:=значение
43. События и методы в ООП.
Событие в объектно-ориентированном программировании — это сообщение, которое возникает в различных точках исполняемого кода при выполнении определённых условий.
События предназначены для того, чтобы иметь возможность предусмотреть реакцию программного обеспечения.
Для решения поставленной задачи создаются обработчики событий: как только программа попадает в заданное состояние, происходит событие, посылается сообщение, а обработчик перехватывает это сообщение. В общем случае в обработчик не передаётся ничего, либо передаётся ссылка на объект, инициировавший (породивший) обрабатываемое событие. В особых случаях в обработчик передаются значения некоторых переменных или ссылки на какие-то другие объекты, чтобы обработка данного события могла учесть контекст возникновения события.
Самое простое событие — это событие, сообщающее о начале или о завершении некоторой процедуры. Событие, по сути, сообщает об изменении состояния некоторого объекта. Наиболее наглядно события представлены в пользовательском интерфейсе, когда каждое действие пользователя порождает цепочку событий, которые, затем обрабатываются в приложении.
Методы объекта. Чтобы объект выполнил какую-либо операцию, необходимо задать метод. Многие методы имеют аргументы, которые позволяют установить параметры выполняемых действий. Для присваивания аргументам конкретных значений применяется двоеточие и знак равенства, а между собой аргументы отделяются запятой.
Синтаксис команды применения метода объекта следующий:
Объект.Метод :=значение, арг2:=значение
44. Обработка исключительных ситуаций.
Обработка исключений – это механизм, позволяющий двум независимо разработанным программным компонентам взаимодействовать в аномальной ситуации, называемой исключением.
Исключение – это аномальное поведение во время выполнения, которое программа может обнаружить, например: деление на 0, выход за границы массива или истощение свободной памяти. Такие исключения нарушают нормальный ход работы программы, и на них нужно немедленно отреагировать.
45. Технологии конструирования программ. Основные определения и понятия.
Существуют различные определения технологии разработки программного обеспечения. К наиболее распространенным относятся следующие.
 Технология разработки программного обеспечения (ПО) – это совокупность процессов и методов создания программного продукта.
 Технология разработки программного обеспечения – это система инженерных принципов для создания экономичного ПО, которое надежно и эффективно работает в реальных компьютерах. Данное определение имеет частный характер, поскольку учитывает только две из шести характеристик качества ПО – надежность и эффективность. С учетом этого можно сформулировать более общее определение.
 Технология разработки программного обеспечения – это система инженерных принципов для создания экономичного ПО с заданными характеристиками качества. Любая технология разработки ПО базируется на некоторой методологии. Под методологией понимается система принципов и способов организации процесса разработки программ. Цель методологии разработки ПО – внедрение методов разработки программ, обеспечивающих достижение соответствующих характеристик качества.
 В настоящее время широкую известность приобрели два базовых принципа разработки программных средств (ПС): модульный принцип и объектно-ориентированный принцип. Разработка модульных программ основывается на использовании таких классических методологий, как нисходящее проектирование, расширение ядра, восходящее проектирование и их комбинации, а также ряда современных методологий разработки ПО.
 Объектно-ориентированная разработка базируется на применении методологий объектно-ориентированного анализа и объектно-ориентированного программирования.
 Одним из базовых понятий технологии разработки программного обеспечения является понятие жизненного цикла программного средства или системы. При этом под системой подразумевается комплекс, состоящий из процессов, технических и программных средств, устройств и персонала, обладающий возможностью удовлетворять установленным потребностям или целям.
46. Основные характеристики программных продуктов.
Программный продукт — комплекс взаимосвязанных программ для ре¬шения определенной проблемы (задачи) массового спроса, подготовленный к реализации как любой вид промышленной продукции.
Все программы по характеру использования и категориям пользователей можно разделить на два класса - утилитарные программы и программные продукты (изделия). Утилитарные программы ("программы для себя") предназначены для удов-летворения нужд их разработчиков. Чаще всего утилитарные программы выполняют роль сервиса в технологии обработки данных либо являются программами решения функцио¬нальных задач, не предназначенных для широкого распространения. Программные продукты (изделия) предназначены для удовлетворения по¬требностей пользователей, широкого распространения и продажи.
В настоящее время существуют и другие варианты легального распространения про¬граммных продуктов, которые появились с использованием глобальных или региональных телекоммуникаций:
 freeware — бесплатные программы, свободно распространяемые, поддерживаются самим пользователем, который правомочен вносить в них необходимые изменения;
 shareware — некоммерческие (условно-бесплатные) программы, которые могут ис¬пользоваться, как правило, бесплатно. При условии регулярного использования подоб¬ных продуктов осуществляется взнос определенной суммы.
 Ряд производителей использует OEM-программы (Original Equipment Manufac¬turer), т.е. встроенные программы, устанавливаемые на компьютеры или поставляемые вместе с вычислительной техникой.
Программный продукт должен быть соответствующим образом подготовлен к эксплу¬атации, иметь необходимую техническую документацию, предоставлять сервис и гарантию надежной работы программы, иметь товарный знак изготовителя, а также желательно нали¬чие кода государственной регистрации. Только при таких условиях созданный программ¬ный комплекс может быть назван программным продуктом.
47. Классы программных продуктов.
Программные продукты можно классифицировать по различным признакам. Рассмотрим классификацию, в которой основополагающим признаком является сфера (область) исполь¬зования программных продуктов:
Системное программное обеспечение (System Software) — совокупность программ и программных комплексов для обеспечения работы компьютера и сетей ЭВМ.
Пакет прикладных программ (application program package) — комплекс взаимосвязанных программ для решения задач определенного класса кон¬кретной предметной области.
Инструментарий технологии программирования — совокупность про¬грамм и программных комплексов, обеспечивающих технологию разработ¬ки, отладки и внедрения создаваемых программных продуктов.
48. Основные тенденции развития программного обеспечения.
Основными тенденциями развития программного обеспечения являются:
— стандартизация, как отдельных компонентов программных средств, так и интерфейсов между ними, которая позволяет использовать то или иное приложение на разных аппаратных платформах и в среде разных операционных систем, а также обеспечить его взаимодействие с широким кругом приложений;
— ориентация на объектно-ориентированное проектирование и программирование программных средств, что позволяет в совокупности с их стандартизацией перейти к новой технологии — технологии «сборки» того или иного приложения, ориентированного на конкретные потребности конкретного пользователя, из отдельных модулей-«кубиков», избегая тем самым ненужных пользователю функций. При этом снижаются объем и стоимость и повышается надежность «собранного» таким образом приложения (существующие офисные системы, например, используются абсолютным большинством обычных пользователей не более чем на 20 — 30%). Одновременно во многом снимается проблема модификации приложения при изменении информационных потребностей пользователя. Кроме того, ориентация на технологии «сборки» приложения в сочетании с возможностями сетевого доступа к этим приложениям как требуемым программным ресурсам позволяет в перспективе не приобретать в «личное пользование» то или иное приложение, а брать его во временную «аренду», снижая тем самым затраты на программное обеспечение;
— интеллектуализация интерфейса пользователя, обеспечение его интуитивной понятности, непроцедурности и приближение языка общения с компьютером к профессиональному языку пользователя; настройка интерфейса пользователя на особенности и потребности конкретного пользователя при организации его диалога с компьютером; использование средств мультимедиа при реализации интерфейса пользователя;
— интеллектуализация возможностей программ и программных систем; все шире при проектировании приложений используются методы искусственного интеллекта, что позволяет сделать приложения более «умными» и решать все более сложные, плохо формализуемые задачи;
— универсализация отдельных компонентов (модулей) прикладных программ и постепенный переход этих компонентов, а затем и самих программ из области специализированного прикладного ПО в область универсального прикладного ПО. Подобная ситуация сложилась с текстовыми процессорами, которые в свое время относились к специализированному прикладному ПО;
— ориентация на совместную, групповую работу пользователей при решении той или иной проблемы при помощи программных средств. В связи с этим при разработке ПО все большее внимание уделяется коммуникационным компонентам. Примером является включение в ОС Windows коммуникационных средств, обеспечивающих работу пользователя в сети Интернет;
— внедрение ПО в аппаратную составляющую технических средств (товаров) массового потребления — телевизоров, телефонов и т. п. Это, с одной стороны, повышает требования к надежности ПО, интерфейсу пользователя, а с другой — требует от пользователя в определенной мере более полных знаний как об основных понятиях ПО (файлы, папки и т. д.), так и о типичных действиях в программной среде;
— постепенный переход компонентов ПО, характерных для специализированного прикладного ПО, в универсальное прикладное ПО. Те программные средства, которые ранее были доступны специалистам в конкретной проблемной области, становятся доступны широкому кругу пользователей. Еще 15—20 лет назад текстовые редакторы были доступны в основном работникам подразделений, занимавшихся издательской деятельностью.
49. Жизненный цикл программных средств.
Жизненный цикл программного обеспечения (ПО) — период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации. Этот цикл — процесс построения и развития ПО.
50. Стратегии конструирования ПО.
Существует три стратегии конструирования программных систем:
 Однократный проход (каскадная стратегия, рассмотренная выше) – линейная последовательность этапов конструирования;
 Инкрементная стратегия. В начале процесса определяются все пользовательские и системные требования, оставшаяся часть конструирования выполняется в виде последовательности версий. Первая версия реализует часть запланированных возможностей, следующая версия реализует дополнительные возможности и т. д., пока не будет получена полная система;
 Эволюционная стратегия. Система также строится в виде последовательности версий, но в начале процесса определяются не все требования. Требования уточняются в результате разработки версий.
51. Критерии качества программ по стандартам ISO (ГОСТ Р ИСО/МЭК 9126-93).
Качество программного обеспечения может быть оценено следующими характеристиками.
 Функциональные возможности (Functionality):
Набор атрибутов, относящихся к сути набора функций и их конкретным свойствам. Функциями являются те, которые реализуют установленные или предполагаемые потребности.
 Надежность (Reliability)
Набор атрибутов, относящихся к способности программного обеспечения сохранять свой уровень качества функционирования при установленных условиях за установленный период времени.
 Практичность (Usability)
Набор атрибутов, относящихся к объему работ, требуемых для использования и индивидуальной оценки такого использования определенным или предполагаемым кругом пользователей.
 Эффективность (Efficiences)
Набор атрибутов, относящихся к соотношению между уровнем качества функционирования программного обеспечения и объемом используемых ресурсов при установленных условиях.
 Сопровождаемость (Maintainability)
Набор атрибутов, относящихся к объему работ, требуемых для проведения конкретных изменений (модификаций).
 Мобильность (Portability)
Набор атрибутов, относящихся к способности программного обеспечения быть перенесенным из одного окружения в другое.
52. Модель СММ.
Capability Maturity Model — модель зрелости возможностей создания ПО : эволюционная модель развития способности компании разрабатывать программное обеспечение.
53. Методологии проектирования ПО. CASE-технологии, их содержание и классификации.
CASE (англ. Computer-Aided Software Engineering) — набор инструментов и методов программной инженерии для проектирования программного обеспечения, который помогает обеспечить высокое качество программ, отсутствие ошибок и простоту в обслуживании программных продуктов.[1] Также под CASE понимают совокупность методов и средств проектирования информационных систем с использованием CASE-инструментов.
Средства автоматизации разработки программ (CASE-средства) — инструменты автоматизации процессов проектирования и разработки программного обеспечения для системного аналитика, разработчика ПО и программиста. Первоначально под CASE-средствами понимались только инструменты для упрощения наиболее трудоёмких процессов анализа и проектирования, но с приходом стандарта ISO/IEC 14102 CASE-средства стали определять как программные средства для поддержки процессов жизненного цикла ПО.
Современные методологии и реализующие их технологии поставляются в электронном виде вместе с CASE-средствами и включают библиотеки процессов, шаблонов, методов, моделей и других компонент, предназначенных для построения ПО того класса систем, на который ориентирована методология. Электронные методологии включают также средства, которые должны обеспечивать их адаптацию для конкретных пользователей и развитие методологии по результатам выполнения конкретных проектов.
Процесс адаптации заключается в удалении ненужных процессов, действий ЖЦ и других компонентов методологии, в изменении неподходящих или в добавлении собственных процессов и действий, а также методов, моделей, стандартов и руководств. Настройка методологии может осуществляться также по следующим аспектам: этапы и операции ЖЦ, участники проекта, используемые модели ЖЦ, поддерживаемые концепции и др.
Электронные методологии и технологии (и поддерживающие их CASE-средства) составляют ядро комплекса согласованных инструментальных средств среды разработки ИС.
CASE-инструменты классифицируются по типам и категориям.
Классификация по типам отражает функциональную ориентацию средств на те или иные процессы жизненного цикла разработки программного обеспечения, и, в основном, совпадают с компонентным составом крупных интегрированных CASE-систем, и включает следующие типы:
 средства анализа — предназначены для построения и анализа модели предметной области;
 средства проектирования баз данных;
 средства разработки приложений;
 средства реинжиниринга процессов;
 средства планирования и управления проектом;
 средства тестирования;
 средства документирования.
Классификация по категориям определяет степень интегрированности по выполняемым функциям и включают — отдельные локальные средства, решающие небольшие автономные задачи, набор частично интегрированных средств, охватывающих большинство этапов жизненного цикла и полностью интегрированных средств, охватывающий весь жизненный цикл информационной системы и связанных общим репозиторием.
Типичными CASE-инструментами являются:
 инструменты управления конфигурацией;
 инструменты моделирования данных;
 инструменты анализа и проектирования;
 инструменты преобразования моделей;
 инструменты редактирования программного кода;
 инструменты рефакторинга кода;
 генераторы кода;
 инструменты для построения UML-диаграмм.
54. CASE-средства. Общая характеристика и классификация.
Современные CASE-средства охватывают обширную область поддержки многочисленных технологий проектирования ИС: от простых средств анализа и документирования до полномасштабных средств автоматизации, покрывающих весь жизненный цикл ПО.
Наиболее трудоемкими этапами разработки ИС являются этапы анализа и проектирования, в процессе которых CASE-средства обеспечивают качество принимаемых технических решений и подготовку проектной документации. При этом большую роль играют методы визуального представления информации. Это предполагает построение структурных или иных диаграмм в реальном масштабе времени, использование многообразной цветовой палитры, сквозную проверку синтаксических правил. Графические средства моделирования предметной области позволяют разработчикам в наглядном виде изучать существующую ИС, перестраивать ее в соответствии с поставленными целями и имеющимися ограничениями.
В разряд CASE-средств попадают как относительно дешевые системы для персональных компьютеров с весьма ограниченными возможностями, так и дорогостоящие системы для неоднородных вычислительных платформ и операционных сред. Так, современный рынок программных средств насчитывает около 300 различных CASE-средств, наиболее мощные из которых, так или иначе, используются практически всеми ведущими западными фирмами.
Обычно к CASE-средствам относят любое программное средство, автоматизирующее ту или иную совокупность процессов жизненного цикла ПО и обладающее следующими основными характерными особенностями:
 мощные графические средства для описания и документирования ИС, обеспечивающие удобный интерфейс с разработчиком и развивающие его творческие возможности;
 интеграция отдельных компонент CASE-средств, обеспечивающая управляемость процессом разработки ИС;
 использование специальным образом организованного хранилища проектных метаданных (репозитория).
Интегрированное CASE-средство (или комплекс средств, поддерживающих полный ЖЦ ПО) содержит следующие компоненты;
 репозиторий, являющийся основой CASE-средства. Он должен обеспечивать хранение версий проекта и его отдельных компонентов, синхронизацию поступления информации от различных разработчиков при групповой разработке, контроль метаданных на полноту и непротиворечивость;
 графические средства анализа и проектирования, обеспечивающие создание и редактирование иерархически связанных диаграмм (DFD, ERD и др.), образующих модели ИС;
 средства разработки приложений, включая языки 4GL и генераторы кодов;
 средства конфигурационного управления;
 средства документирования;
 средства тестирования;
 средства управления проектом;
 средства реинжиниринга.
Все современные CASE-средства могут быть классифицированы в основном по типам и категориям. Классификация по типам отражает функциональную ориентацию CASE-средств на те или иные процессы ЖЦ. Классификация по категориям определяет степень интегрированности по выполняемым функциям и включает отдельные локальные средства, решающие небольшие автономные задачи (tools), набор частично интегрированных средств, охватывающих большинство этапов жизненного цикла ИС (toolkit) и полностью интегрированные средства, поддерживающие весь ЖЦ ИС и связанные общим репозиторием. Помимо этого, CASE-средства можно классифицировать по следующим признакам:
 применяемым методологиям и моделям систем и БД;
 степени интегрированности с СУБД;
 доступным платформам.
55. Размерно-ориентированные метрики.
Размерно-ориентированные метрики прямо измеряют программный продукт и процесс его разработки. Основываются такие метрики на LOC-оценках (Lines Of Code).
LOC-оценка - это количество строк в программном продукте. Принято регистрировать следующие показатели:
- общие затраты (в человеко-месяцах - чел.-мес);
- объем программного изделия (в тысячах строк исходного кода -KLOC);
- стоимость разработки (в тыс. рублей или в долларах $);
- объем документации (в страницах документов -СД);
- ошибки, обнаруженные в течение первого года эксплуатации (число ошибок - ЧО);
- число людей, работавших над изделием (человек);
- срок разработки (в календарных месяцах).
На основе перечисленных показателей вычисляются размерно-ориентированные метрики производительности и качества (для каждого проекта):
Достоинства размерно-ориентированных метрик:1) широко распространены;2) просты и легко вычисляются.
Недостатки размерно-ориентированных метрик:1) зависимы от языка программирования;2) требуют исходных данных, которые трудно получить на начальной стадии проекта;3) не приспособлены к непроцедурным языкам программирования.

56. Метрики сложности.
При оценке сложности программ, как правило, выделяют три основные группы метрик: метрики размера программ, метрики сложности потока управления программ и метрики сложности потока данных программ.
 Метрики размера программ - Традиционной характеристикой размера программ является количество строк исходного текста. Под строкой понимается любой оператор программы.
 Метрика сложности потока - Вторая наиболее представительная группа оценок сложности. Как правило, с помощью этих оценок оперируют либо плотностью управляющих переходов внутри программ, либо взаимосвязями этих переходов.
 Метрика сложности потока данных, то есть использования, конфигурации и размещения данных в программах.
57. Документирование программ.
Последней составляющей процесса программирования является документирование. Оно включает широкий спектр описаний, облегчающих процесс программирования и обогащающих результирующую программу. Постоянное документирование должно составлять неотъемлемую часть каждого шага программирования. Постановка задачи, проектные документы, алгоритмы и программы – все это документы. Внутренняя документация, включенная непосредственно в программу, облегчает чтение кода. Назначение учебного пособия (еще одной формы документации) – научить пользователя применять новую программу; справочное руководство позволяет ознакомиться с описанием команд программного обеспечения.
При разработке программы создается большой объем разнообразной документации. Она необходима как средство передачи информации между разработчиками программы, как средство управления разработкой программы и как средство передачи пользователям информации, необходимой для применения и сопровождения программы.
Пользовательская документация программы - пользовательская документация программы объясняет пользователям, как они должны действовать, чтобы использовать данную программу. Она необходима, если программа предполагает какое-либо взаимодействие с пользователями. К такой документации относятся документы, которыми руководствуется пользователь при установке программы.
Документация по сопровождению программы - Документация по сопровождению программы описывает программу с точки зрения её разработки. Эта документация необходима, если программа предполагает изучение того, как она сконструирована.

Последний раз редактировалось Case; 15.05.2015 в 14:03. Причина: Добавлено сообщение
Case вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Старый 15.05.2015, 14:04   #2
Case
Новичок
 
Регистрация: 15.05.2015
Сообщений: 2
Сказал спасибо: 0
Поблагодарили 9 раз(а) в 2 сообщениях
По умолчанию Продолжения ответов

58. Оптимизация программ.
Оптимизацией программы называют такие преобразования, которые позволяют сделать ее более эффективной, т.е. сделать ее более экономной по памяти и/или более быстрой по выполнению тех же функций, что и до оптимизационного преобразования.
59. Отладка и тестирование программ.
Отладка — этап разработки компьютерной программы, на котором обнаруживают, локализуют и устраняют ошибки. Чтобы понять, где возникла ошибка, приходится:
 Узнавать текущие значения переменных;
 Выяснять, по какому пути выполнялась программа.
Существуют две взаимодополняющие технологии отладки.
1. Использование отладчиков — программ, которые включают в себя пользовательский интерфейс для пошагового выполнения программы: оператор за оператором, функция за функцией, с остановками на некоторых строках исходного кода или при достижении определённого условия.
2. Вывод текущего состояния программы с помощью расположенных в критических точках программы операторов вывода — на экран, принтер, громкоговоритель или в файл. Вывод отладочных сведений в файл называется журналированием.
Тестирование программного обеспечения — процесс исследования, испытания программного продукта, имеющий две различные цели:
 продемонстрировать разработчикам и заказчикам, что программа соответствует требованиям;
 выявить ситуации, в которых поведение программы является неправильным, нежелательным или не соответствующим спецификации.
60. Источники и классификация ошибок.
Классификация ошибок.
По степени критичности (Severity). Принципом такой классификации ошибок является степень их критичности для работы системы в целом. Набор групп, по которым они делятся, отличается в зависимости от области применения этих программ.
Блокирующие (Blocker) – Ошибки, из-за которых дальнейшая работа с системой становится невозможной. Пример: Работа на сайте доступна только зарегистрированным пользователям, а вход возможен только после подтверждения e-mail, указанного при регистрации. На почту не приходит письмо. Работа с системой, соответственно, невозможна.
Важные (Major) — Из-за таких ошибок система, в целом, работает, но что-то работает не так.
Например, опять же, беря в пример наш абстрактный сайт, на сайт можно загрузить аватар, но файл не сохраняется на сервере. Либо письмо для активации приходит, но в неверной кодировке.
Обычные (Normal) — Как правило, к этой категории баги относят очень редко. В качестве примера, могу написать что-то вроде не работает кнопка «Запомнить меня» на сайте.
Малозначимые (Minor) — к таким, как правило, относятся небольшие баги, типа опечаток, «плавания» вёрстки в IE6 на определенной странице в админке и т.п. Редко исправляются по одному, собираются в несколько десятков/сотен/тысяч в зависимости от продукта и фиксятся «пачкой»
По приоритету (Priority). Как быстро надо пофиксить тот или иной баг.
FIX IN RELEASE — Пофиксить в новой версии продукта. Как правило, относится к багам, обнаруженным в процессе тестирования нового функционала.
MUST FIX — Пофиксить как можно быстрее. Как правило, включает в себя блокирующие баги, которые должны быть исправлены в специальном сервис паке, до выхода новой версии.
FIX IF TIME — «Пофиксить, если есть время» — к этой категории, как правило, относятся минорные баги.
NEVER FIX — «Не фиксить никогда». Например, какая та фича будет удалена из следующей версии продукта, либо найдена в продукте, который уже более не поддерживается, или его поддержка прекратится в ближайшее время.
Возникновение всех программных ошибок можно свести к двум общим случаям.
Нарушается физическая или логическая структура файлов, папок и дисков. Грубо говоря, где-то на диске вместо единицы записан ноль (или наоборот) или часть файла не читается вовсе. Возможно, нужный файл был просто удалён, то есть сведения о нём исчезли из файловой системы. Это можно сравнить с опечаткой, кляксой или вырванной из книги страницей. Система пытается найти и прочитать очередной файл, ей это не удаётся, и в ходе загрузки происходит ошибка.


61. Объектно-ориентированное проектирование.
Объектно-ориентированное проектирование (ООП) — это часть объектно-ориентированной методологии, которая предоставляет возможность программистам оперировать понятием «объект», нежели понятием «процедура» при разработке своего кода. Объекты содержат инкапсулированные данные и процедуры, сгруппированные вместе, отображая т.о. сущность объекта. «Интерфейс объекта», описывает взаимодействие с объектом, то, как он определен. Программа, полученная при реализации объектно-ориентированного исходного кода, описывает взаимодействие этих объектов.
62. Язык UML.
Язык графического описания для объектного моделирования в области разработки программного обеспечения. UML является языком широкого профиля, это — открытый стандарт, использующий графические обозначения для создания абстрактной модели системы, называемой UML-моделью. UML был создан для определения, визуализации, проектирования и документирования, в основном, программных систем. UML не является языком программирования, но на основании UML-моделей возможна генерация кода.
63. Современные технологии проектирования приложений.
CASE (англ. Computer-Aided Software Engineering) — набор инструментов и методов программной инженерии для проектирования программного обеспечения, который помогает обеспечить высокое качество программ, отсутствие ошибок и простоту в обслуживании программных продуктов.[1] Также под CASE понимают совокупность методов и средств проектирования информационных систем с использованием CASE-инструментов.
Средства автоматизации разработки программ (CASE-средства) — инструменты автоматизации процессов проектирования и разработки программного обеспечения для системного аналитика, разработчика ПО и программиста. Первоначально под CASE-средствами понимались только инструменты для упрощения наиболее трудоёмких процессов анализа и проектирования, но с приходом стандарта ISO/IEC 14102 CASE-средства стали определять как программные средства для поддержки процессов жизненного цикла ПО.
Основной целью CASE-технологии является разграничение процесса проектирования программных продуктов от процесса кодирования и последующих этапов разработки, максимально автоматизировать процесс разработки. Для выполнения поставленной цели CASE-технологии используют два принципиально разных подхода к проектированию: структурный и объектно-ориентированный.
Структурный подход предполагает декомпозицию (разделение) поставленной задачи на функции, которые необходимо автоматизировать. В свою очередь, функции также разбиваются на подфункции, задачи, процедуры. В результате получается упорядоченная иерархия функций и передаваемой информацией между функциями.
64. Проблемы человеко-машинного взаимодействия.
В связи с тем, что человеко-компьютерное взаимодействие изучается как с человеческой стороны, так и с компьютерной, то знания, полученные в ходе исследования, опираются как на человеческий фактор, так и на компьютерный. С компьютерной стороны важны технологии компьютерной графики, операционных систем, языков программирования и среды разработки. С человеческой стороны, теория коммуникации, графическое и производственное проектирование, лингвистика, социология, когнитивная психология и такие человеческие факторы как удовлетворение пользователей.
Также имеет значение инженерия и проектирование. Благодаря междисциплинарному характеру человеко-компьютерного взаимодействия, люди с разным уровнем подготовки вносят вклад в его успех. Иногда человеко-компьютерное взаимодействие называют как человеко-машинное взаимодействие, так и компьютерно-человеческое взаимодействие.
Важным критерием является внимание к человеко-компьютерному взаимодействию, так как плохо разработанные интерфейсы могут стать причиной многих непредвиденных проблем. Классическим примером этого является авария на АЭС Три-Майл-Айленд, где в ходе расследования было выявлено, что, по крайне мере, частичную ответственность за катастрофу несёт на себе проектирование интерфейса. Подобным образом, аварии в авиации возникали вследствие решения производителей использовать нестандартные воздушные приборы и/или расположение штурвала. Хотя предполагалось, что новые конструкции более совершенны касательно основного человеко-компьютерного взаимодействия, пилотам было присуще «стандартное» расположение и, таким образом, концептуально хорошая идея, не повлекла желаемые результаты.
65. Законы восприятия информации человеком.
Закон восприятия информации практически говорит сам за себя. Если информация или указания не преподносятся в доступной форме, то данная информация будет неэффективна и от неё не будет никакого положительного действия. В большинстве случаев лучшие указания – самые короткие и самые простые. Использование в равной мере аудио и видео форматов, включая графику и текст, могут сделать указания более информативными и при этом несложными для восприятия.
Использование разнообразных элементов для объяснения важных инструкций, указаний и информационных ключей работает на вас.
66. Цветовые модели.
Цветовая модель — математическая модель описания представления цветов в виде кортежей чисел (обычно из трёх, реже — четырёх значений), называемых цветовыми компонентами или цветовыми координатами. Все возможные значения цветов, задаваемые моделью, определяют цветовое пространство.
Цветовая модель обычно используется для хранения и обработки цветов в дискретном виде, при представлении ее в вычислительных устройствах, в частности, ЭВМ.
Цветовая модель задаёт соответствие между воспринимаемыми человеком цветами, хранимыми в памяти, и цветами, формируемым на устройствах вывода (возможно, при заданных условиях).
67. Основы проектирования пользовательского интерфейса. Этапы и средства проектирования.
Пользовательский интерфейс – это совокупность информационной модели проблемной области, средств и способов взаимодействия пользователя с информационной моделью, а также компонентов, обеспечивающих формирование информационной модели в процессе работы программной системы.
Основное достоинство хорошего интерфейса пользователя заключается в том, что пользователь всегда чувствует, что он управляет программным обеспечением, а не программное обеспечение управляет им. Для создания у пользователя такого ощущения «внутренней свободы» интерфейс должен обладать целым рядом свойств:
Естественность интерфейса - такой, который не вынуждает пользователя существенно изменять привычные для него способы решения задачи. Это, в частности, означает, что сообщения и результаты, выдаваемые приложением, не должны требовать дополнительных пояснений.
Согласованность интерфейса - согласованность позволяет пользователям переносить имеющиеся знания на новые задания, осваивать новые аспекты быстрее, и благодаря этому фокусировать внимание на решаемой задаче, а не тратить время на уяснение различий в использовании тех или иных элементов управления, команд и т.д. Обеспечивая преемственность полученных ранее знаний и навыков, согласованность делает интерфейс узнаваемым и предсказуемым.
Дружественность интерфейса (Принцип «прощения пользователя») - пользователи обычно изучают особенности работы с новым программным продуктом методом проб и ошибок. Эффективный интерфейс должен принимать во внимание такой подход. На каждом этапе работы он должен разрешать только соответствующий набор действий и предупреждать пользователей о тех ситуациях, где они могут повредить системе или данным; еще лучше, если у пользователя существует возможность отменить или исправить выполненные действия.
Принцип «обратной связи» - необходимо всегда обеспечивать обратную связь для действий пользователя. Каждое действие пользователя должно получать визуальное, а иногда и звуковое подтверждение того, что программное обеспечение восприняло введенную команду; при этом вид реакции, по возможности, должен учитывать природу выполненного действия.
Простота интерфейса - интерфейс должен быть простым. При этом имеется в виду не упрощенчество, а обеспечение легкости в его изучении и в использовании. Кроме того, он должен предоставлять доступ ко всему перечню функциональных возможностей, предусмотренных данным приложением. Реализация доступа к широким функциональным возможностям и обеспечение простоты работы противоречат друг другу. Разработка эффективного интерфейса призвана сбалансировать эти цели.
Гибкость интерфейса - это его способность учитывать уровень подготовки и производительность труда пользователя. Свойство гибкости предполагает возможность изменения структуры диалога и/или входных данных. Концепция гибкого (адаптивного) интерфейса в настоящее время является одной из основных областей исследования взаимодействия человека и ЭВМ. Основная проблема состоит не в том, как организовать изменения в диалоге, а в том, какие признаки нужно использовать для определения необходимости внесения изменений и их сути.
Эстетическая привлекательность - корректное визуальное представление используемых объектов обеспечивает передачу весьма важной дополнительной информации о поведении и взаимодействии различных объектов. В то же время следует помнить, что каждый визуальный элемент, который появляется на экране, потенциально требует внимания пользователя, которое, как известно, не безгранично.
Этапы проектирования.
Выбор структуры диалога — это первый из этапов, который должен быть выполнен при разработке интерфейса. Существует 4 разновидности структур диалога:
Диалог типа «вопрос-ответ».
Диалог на основе меню.
Диалог на основе экранных форм.
Диалог на основе командного языка.
Позиционные параметры уменьшают объем вводимой информации, но их существенным недостатком является то, что вводимые значения должны указываться в строго определенном порядке, нарушение которого плохо диагностируется системой и может повлечь серьезные последствия.
Ключевые параметры уменьшают нагрузку на память пользователя в том отношении, что отпадает необходимость в запоминании порядка их следования; кроме того, можно опускать необязательные параметры. С другой стороны, в этом случае пользователю необходимо запомнить множество ключевых слов, а разработчику —подобрать для них «осмысленные» имена.
Разработка сценария диалога. Развитие диалога во времени можно рассматривать как последовательность переходов системы из одного состояния в другое. Ни одно из этих состояний не должно быть «тупиковым», т.е. пользователь должен иметь возможность перейти из любого текущего состояния диалога в требуемое (за один или несколько шагов). Для этого в ходе разработки интерфейса необходимо определить все возможные состояния диалога и пути перехода из одного состояния в другое. Другими словами, необходимо разработать сценарий диалога.
Темп ведения диалога. Процесс общения пользователя с компьютером связан с рядом существенных объективных и субъективных ограничений и должен соответствовать психофизиологическим возможностям человека. В связи с этим при разработке сценария диалога должны учитываться такие психофизиологические особенности потенциальных пользователей, как моторные навыки, время реакции, восприимчивость цветовой гаммы и т.д.
Время ответа (отклика) системы определяется как интервал между событием и реакцией системы на него. Данная характеристика интерфейса определяет задержку в работе пользователя при переходе к выполнению следующего шага задания.
68. Основные правила проектирования программ с точки зрения отображения информации.

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

Добавлено через 4 минуты
Всем кому не очень так удобно читать выделите текст и вставьте в Word.

Последний раз редактировалось Case; 15.05.2015 в 14:08. Причина: Добавлено сообщение
Case вне форума   Ответить с цитированием
7 пользователя(ей) сказали cпасибо:
Старый 19.05.2015, 22:11   #3
lolerrom
Новичок
 
Регистрация: 15.03.2015
Сообщений: 1
Сказал спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию

а с 68 по 70 есть ответы?
lolerrom вне форума   Ответить с цитированием
Ответ

Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 17:51. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot