- •Раздел «Базы данных» (15-45)
- •Раздел «Информационные системы»(46-60)
- •Раздел 2. Операционные системы, среды и оболочки
- •Вопросы к экзамену
- •Раздел 8. Управление информацией и ресурсами знаний в социальной сфере
- •Вопросы к экзамену
- •Раздел 9. Управление проектами информационных систем
- •Вопросы к экзамену
- •Раздел 10. Социальное проектирование и прогнозирование
- •Вопросы к экзамену
- •Типология бд: фактографические, документальные, мультимедийные; бд оперативной и ретроспективной информации. Соотношение основных требований и свойств субд: система компромиссов.
- •1. Иерархическая модель данных.
- •1. Иерархическая модель данных.
- •Декартово произведение
- •Соединение
- •Первая нормальная форма
- •Вторая нормальная форма
- •Концептуальное (инфологическое) проектирование [править]
- •Логическое (даталогическое) проектирование [править]
- •Физическое проектирование [править]
- •Инфологическое проектирование бд. Основные компоненты концептуальной модели. Преимущества использования er-моделирования. Краткая характеристика er-модели.
- •Раздел «Информационные системы»(46-61)
- •Обеспечение управления
- •Обеспечение бизнес-процессов
- •Модель сущность-связь.
- •Информационные системы как основа автоматизированных систем управления (асу). Состав асу. Основные квалификационные признаки асу. Функции асу. Виды асу. Классы структура асу.
- •Корпоративные информационные системы (кис). Общая характеристика кис. Классификация кис. Краткая характеристика модулей кис.
- •Понятие и основные характеристики программного модуля, критерии приемлемости выделенного модуля. Размер, прочность, рутинность, сцепление модуля
- •Основные характеристики программного модуля.
- •Динамические структуры данных линейные списки стеки очереди бинарные деревья
- •Основные понятия ооп: объект. Класс инкапсуляция. Наследование. Полиморфизм, абстрагирование устойчивость
- •1. Инкапсуляция
- •2. Полиморфизм
- •3. Наследовние
- •Объекты, определение, типы абстракций, используемые при построении объекта, категории объектов, интерфейс объекта.
- •Понятие класса. Управляющие предметные интерфейсные контейнерные классы. Методы классов конструктор, деструктор, аксессор, мутатор. Перегрузка классов и методов.
- •Определение термина «инкапсуляция» в языках объектно-ориентированной парадигмы программирования. Модульность. Примеры инкапсуляции.
- •Понятие события в объектно-ориентированной парадигме программирования: природа событий, виды событий, маршрутизация событий. Модификация и обработка событий. Реакция на события.
- •Обеспечение управления
- •Обеспечение бизнес-процессов
- •1 Этап. Разработка и анализ бизнес-модели
- •2 Этап. Формализация бизнес-модели. Разработка логической модели бизнес-процессов.
- •3 Этап. Выбор лингвистического обеспечения. Разработка по.
- •4 Этап. Тестирование и отладка аис.
- •5 Этап. Эксплуатация и контроль версии.
- •Жизненный цикл программного обеспечения. Понятие «жизненного цикла» ис. Модели жц ис. Стандарты, описывающие жц ис. Краткая характеристика основных процессов жц ис по стандарту (iso/iec 12207).
- •Каноническое проектирование информационных систем (ис). Определение, стадии канонического проектирования ис и их характеристика. Модель «как есть» (“as-is”). Модель «как должно быть» (“to-be”).
- •Техническое задание (тз) на разработку информационной системы. Состав и содержание технического задания (гост 34.603-89).
- •Состав и содержание технического задания (гост 34.602- 89)
- •Достоинства и недостатки тпр
- •Старшая (Precedence)
- •Потоки объектов (Object Flow)
- •Отношения (Relational Link)
- •Внутримашинное ио. Проектирование экранных форм электронных документов. Информационная база (иб) и способы ее организации.
- •Диаграмма классов (для 123. Рисовать без надписей на стрелках)
- •Диаграммах прецедентов
- •Диаграмма последовательности обработки заказа (вопр 123)
- •Кооперативная диаграмма прохождения заказа(вопр 123)
- •Физические основы вычислительных процессов. Основы построения и функционирования вычислительных машин, систем, сетей и телекоммуникаций.
- •Общие принципы построения и архитектуры вычислительных систем, сетей и телекоммуникаций. История возникновения компьютерных сетей (кс) и Интернета
- •Информационно-логические основы вычислительных систем, их функциональная и структурная организация.
- •Каналы и линии связи. Двухточечная схема передачи данных. Интерфейсы ввода вывода, терминальные устройства и оконечное оборудование кс.
- •Архитектурные особенности и организация функционирования вычислительных параллельных систем. (risc и cisc; sisd, simd, mimd).
- •Мультикомпьютеры и мультипроцессоры - типовые вычислительные структуры и программное обеспечение параллельных вс, режимы их работы.
- •Классификация вычислительных сетей. Топология сетей. Методы доступа к сети. Домашние и заводские компьютерные сети.
- •Информационное и программное обеспечение локальных проводных вс. Технические средства человеко-машинного интерфейса lan-сетей.
- •Структура и организация функционирования сетей - глобальных и региональных, проводных и беспроводных.
- •Структура и характеристики систем телекоммуникаций. Коммутация и маршрутизация.
- •Беспроводные сети – состав и технические устройства; методы доступа; стандарты и версии; программное обеспечение.
- •Цифровые каналы и сети связи, глобальные сетевые технологии. Аппаратура wan-сетей.
- •Стек протоколов Интернета. Протоколы прикладного уровня и сетевые команды.
- •Организация электронной почты. Протоколы. Сетевые команды. Почтовые серверы и клиенты.
- •Организация безопасной работы в локальной сети и Интернете. Протоколы безопасности.
- •Эффективность функционирования вычислительных систем, сетей и средств телекоммуникаций.
- •Перспективы развития вычислительных сетей и телекоммуникационных средств. Сближение локальных и глобальных технологий.
- •Общие сведения об информационных технологиях. Основные принципы, методы и свойства современных информационных технологий, их эффективность.
- •Понятие информационной системы, ее структура и состав. Примеры информационных систем.
- •Понятия компьютерной сети и арм. Классификация вычислительных сетей. Топологии вычислительной сети, преимущества и недостатки каждого типа топологии вычислительной сети.
- •Локальная вычислительная сеть, ее компоненты и особенности. Преимущества работы в локальной сети.
- •4.1. Основные компоненты
- •Рабочие станции
- •Сетевые адаптеры
- •Сетевые операционные системы
- •База данных, система управления базами данных, банк данных и компоненты автоматизированного банка данных. Классификация баз данных. Современные технологии, используемые в работе с данными.
- •Программные системы управления базами данных. Основные функции систем управления базами данных.
- •Основные функции субд
- •2.1.1. Непосредственное управление данными во внешней памяти
- •2.1.2. Управление буферами оперативной памяти
- •2.1.3. Управление транзакциями
- •2.1.4. Журнализация
- •2.1.5. Поддержка языков бд
- •Интегрированная информационная система, ее компоненты, примеры «электронных офисов».
- •Операционные системы и их атрибуты.
- •Прикладные программы.
- •Программы языковой обработки.
- •Компьютерные вирусы и вредоносные программы.
- •Понятия экспертной системы, искусственного интеллекта, интеллектуальной системы. Структура экспертной системы.
- •Структура экспертной системы
- •Базовые принципы построения сети Интернет. Что представляет собой современная структура (компоненты) Интернета? Международная система обмена информацией. Система адресации в Интернет.
- •Принципы защиты информации в Интернете. Характеристики, обеспечивающие безопасность системы.
- •Системы электронного документооборота. Системы поддержки принятия решений. Интеллектуальные системы. Цели их использования, структура
- •Система обработки данных, назначение, основные функции.
- •Автоматизированные рабочие места, основные компоненты.
Понятие класса. Управляющие предметные интерфейсные контейнерные классы. Методы классов конструктор, деструктор, аксессор, мутатор. Перегрузка классов и методов.
Класс - это абстрактное понятие, сравнимое с понятием категория в его обычном смысле. По определенным свойствам этого элемента можно установить, что он принадлежит к какой-то категории. Сама категория определяется общими свойствами, которые имеют все экземпляры этой категории.
Класс в ООП - это абстрактный тип данных, который включает в себя не только данные, но и функции и процедуры. Функции и процедуры класса называются методами и содержат исходный код, предназначенный для обработки внутренних данных объекта данного класса. После того, как Вы объявили состав класса, необходимо определить (описать), что делает каждая функция-член (метод).
Существует 2 способа включения метода в класс:
Определение метода при описании класса.
Объявление метода при описании, а его описание - при вызове.
Методы, определенные внутри класса, являются неявно встроенными.
|
Пример. |
class A { int x, y; int sum ( ) { return (x + y) ; } } ; Для определения метода вне класса укажите имя класса, за ним знак :: и имя функции-члена. Официальное название двойного двоеточия - оператор разрешения области действия. Он указывает, что данная функция-член является частью определенного класса.
Пример. |
Class B { int x, y; int sum ( ) } ; int B::sum ( ) { return (x + y) ; } Также как и структуры, классы можно задавать либо статически, либо динамически. Например, статически - Toplist foo; динамически - Toplist *bar ; bar=new Toplist; Для статических и динамических классов применимы те же правила и принципы, что и для статических и динамических переменных. Объект - экземпляр класса.
В объектно-ориентированной программе встречаются классы трех основных видов: - управляющие классы (Control classes). Они не занимаются обработкой данных и не продуцируют видимого результата. Вместо этого они управляют ходом выполнения программы. Например, классы приложения представляют саму программу. В большинстве случаев каждая программа создает ровно один класс приложения. В его задачи входит запуск программы, обнаружение факта выбора из меню и выполнение кода программы в соответствии с запросами пользователя; - предметные классы (Entity classes). Они используются для создания объектов, занимающихся обработкой данных. Например, класс Счет относится к предметным. Классы, представляющие людей, материальные объекты и события (например, деловые совещания) являются предметными. В большинстве объектно-ориентированных программ есть хотя бы один предметный класс, по которому создаются объекты. На самом деле в простейшем случае объектно-ориентированная модель данных строится из представления связей между объектами, созданными на основе предметных классов. - интерфейсные классы (Interface classes) Они занимаются вводом и выводом информации. Например, при работе с графическим пользовательским интерфейсом, то каждое окно или меню, встречающееся в программе, является объектом интерфейсного класса.
Во многих объектно-ориентированных программах используется еще четвертый вид классов - контейнерный (Container classes). Контейнерные классы служат вместилищем нескольких объектов одного и того же класса. Поскольку они собирают объекты вместе, иногда их называют также агрегатами. Контейнерный класс отвечал бы за хранение объектов в определенном порядке, их перебор и, возможно, поиск. Они предоставляют доступ ко всем объектам одного и того же класса.
- конструктор (Constructor) - метод, имя которого совпадает с именем класса. Он выполняется при создании объекта. Поэтому конструктор обычно содержит инструкции по инициализации переменных объекта; - деструктор (Destructor) - метод, выполняемый при уничтожении объекта. Не во всех объектно-ориентированных языках есть деструкторы. Обычно они применяются для освобождения системных ресурсов - например, оперативной памяти, - занимаемых объектом; - методы чтения (Accessors) - еще их называют get-методами - возвращают значение закрытого атрибута объекта. Именно так внешние объекты обычно получают доступ к инкапсулированным данным. - методы изменения (Mutators), set-методы, устанавливают новое значение атрибута. Таким образом, внешние объекты изменяют инкапсулированные данные.
Понятие конструктора в языках объектно-ориентированной парадигмы программирования. Назначение, свойства. Копирующий конструктор. Деструкторы. Назначение, свойства. Пример программы с использованием конструктора и деструктора.
Конструктор предназначен для инициализации объекта и вызывается автоматически при его создании.
Основные свойства конструкторов:
- Конструктор не возвращает значение, даже типа void. Нельзя получить указатель на конструктор.
- Класс может иметь несколько конструкторов с разными параметрами для разных видов инициализации (при этом используется механизм перегрузки).
Конструктор, вызываемый без параметров, называется конструктором по умолчанию.
Параметры конструктора могут иметь любой тип, кроме этого же класса. Можно задавать значения параметров по умолчанию. Их может содержать только один из конструкторов.
Если программист не указал ни одного конструктора, компилятор создает его автоматически. Такой конструктор вызывает конструкторы по умолчанию для полей класса и конструкторы по умолчанию базовых классов. В случае, когда класс содержит константы или ссылки, при попытке создания объекта класса будет выдана ошибка, поскольку их необходимо инициализировать конкретными значениями, а конструктор по умолчанию этого делать не умеет.
Конструкторы не наследуются.
Конструкторы нельзя описывать с модификаторами const, virtual и static.
Конструкторы глобальных объектов вызываются до вызова функции main. Локальные объекты создаются, как только становится активной область их действия. Конструктор запускается и при создании временного объекта (например, при передаче объекта из функции).
Конструктор вызывается, если в программе встретилась какая-либо из синтаксических конструкций:
имя_класса имя_объекта [(список параметров)];
Конструктор копирования — это специальный вид конструктора, получающий в качестве единственного параметра указатель на объект этого же класса:
T::T(const T&) { ... /* Тело конструктора */ }
где Т — имя класса.
Этот конструктор вызывается в тех случаях, когда новый объект создается путем копирования существующего:
при описании нового объекта с инициализацией другим объектом;
при передаче объекта в функцию по значению;
при возврате объекта из функции, а также при обработки исключений.
Если программист не указал ни одного конструктора копирования, компилятор создает его автоматически. Такой конструктор выполняет поэлементное копирование полей. Если класс содержит указатели или ссылки, это, скорее всего, будет неправильным, поскольку и копия, и оригинал будут указывать на одну и ту же область памяти.
Любой конструктор класса, принимающий один параметр какого-либо другого типа, называется конструктором преобразования, поскольку он осуществляет преобразование из типа параметра в тип этого класса
Пример:
В качестве примера рассмотрим объектный тип TString для представления строковых данных с более высокой степенью защиты от ошибок, чем это обеспечено стандартными функциями обработки строк из файла-заголовка string.h.
#include <iostream.h>
#include <string.h>
class TString
{ public:
TString(); // конструктор без параметров
TString(int n, char* s=0); // конструктор, создающий пустую строку
/* конструктор, преобразующий массив из char с завершающим нулем
в тип TString */
TString(char* s);
TString(TString& st); // конструктор копирования
~TString(); // деструктор
void print(); // вывод строки на экран
int sz; // длина строки
char* ps; // указатель на память для хранения строки
};
/* Методы класса TString */
TString::TString( ){sz=0; ps=0;}
TString::TString(int n, char* s)
{ sz=n; ps=new char[n+1];
strncpy(ps,s,n); ps[sz]='\0';
}
TString::TString(char* s)
{ sz=strlen(s)+1; ps=new char[sz];
strcpy(ps,s);
}
TString::TString(TString& str)
{ sz = str.sz; ps=new char[sz+1];
strcpy(ps,str.ps);
}
TString::~TString( )
{ if (ps != 0) delete [] ps; }
void TString::print( )
{ if (sz == 0 )
{ cout << " Строка пустая "<< endl; return;}
cout<<" Строка = "<< ps <<endl;
Деструктор — это особый вид метода, применяющийся для освобождения памяти, занимаемой объектом. Деструктор вызывается автоматически, когда объект выходит из области видимости:
- для локальных объектов — при выходе из блока, в котором они объявлены;
- для глобальных — как часть процедуры выхода из main;
- для объектов, заданных через указатели, деструктор вызывается неявно при использовании операции delete.
Имя деструктора начинается с тильды (~), непосредственно за которой следует имя класса. Деструктор: не имеет аргументов и возвращаемого значения; не может быть объявлен как const илиstatic; не наследуется; может быть виртуальным.
Если деструктор явным образом не определен, компилятор автоматически создать пустой деструктор.
Описывать в классе деструктор явным образом требуется в случае, когда объект содержит указатели на память, выделяемую динамически — иначе при уничтожении объекта память, на которую ссылались его поля-указатели, не будет помечена как свободная. Указатель на деструктор определить нельзя.
Деструктор должен выглядеть так:
monstr::~monstr() {delete [ ] name;}
