- •1)Объектно-ориентированный подход к разработке программного обеспечения: основные понятия, концепции и принципы.
- •3) Понятие нормальных форм в отношении. Особенности приведения отношений к 1nf, 2nf, 3nf.
- •2Нф (Вторая Нормальная Форма)
- •3Нф (Третья Нормальная Форма)
- •4)Надежность программного обеспечения.
- •3)Основные этапы проектирования баз данных.
- •4)Основные показатели надёжности программного обеспечения
- •2) История развития операционной системы Windows. Введение в операционную систему Windows. Особенности и различия версий операционной системы Windows. Архитектура операционной системы Windows nt
- •Специальные реляционные операторы
- •3) Операции над данными (включить, удалить, обновить, объединение, пересечение, вычитание, декартово произведение, выборка, проекция, соединение, деление).
- •Операции над множествами
- •4)Категории тестируемых требований к программному обеспечению.
- •2) Модели данных (сетевая, иерархическая, реляционная).
- •3) Критерии, используемые при тестировании требований.
- •Ненумерованные списки
- •Нумерованные списки
- •Раскрывающейся список
- •Переход внутри одного документа
- •Переход к другому документу или ссылки
- •2)Селекторы css: класса, id, тега. Способы подключения таблиц стилей.
- •Селекторк лассов
- •Селектор id
- •3)Уровни абстракции в субд.
- •4)Содержание плана тестирования.
- •2)Сервлеты. Жизненный цикл сервлета. Класс HttpServlet. Интерфейсы HttpServletRequest, HttpServletResponse.
- •Интерфейс Servlet и жизненный цикл сервлета
- •Класс HttpServlet
- •3)Субд в многопользовательских системах. Архитектура многопользовательских субд (с телеобработкой, файл-серверные, клиент-серверные).
- •2)Сервлеты. Обработка http-запросов get и post.
- •3)Основные функции субд. Типовая организация субд. Основные компоненты типичной субд.
- •4)Основные этапы проведения системных испытаний.
- •1)Библиотека stl: назначение, основные элементы.
- •2)Субд. Классификация субд. Технология использования субд
- •3)Стратегии «белого» ящика. Покрытие операторов. Покрытие решений.
- •4)Jsp. Архитектура jsp-страницы. Жизненный цикл jsp.
- •1)Диаграммы idef0: элементы, правила построения, демонстрационный пример.
- •2)Стили. Общий синтаксис. Назначение, возможности. Каскадность css.
- •3)Понятия базы данных, банка данных. Классификация баз данных.
- •4)Стратегии «белого» ящика. Покрытие условий. Покрытие решений/условий.
- •1)Диаграммы idef0: иерархия диаграмм, правила построения, стратегии декомпозиции и критерии завершения декомпозиции.
- •2)Формы в html. Назначение, теги, параметры, примеры.
- •3)Файловые системы и файловые базы данных. Особенности и основные характеристики.
- •5)Стратегии «белого» ящика. Комбинаторное покрытие условий.
- •1) Диаграммы idef1x: назначение, элементы, правила построения.
- •2)Теги таблиц. Назначение, примеры.
- •3)Язык sql (Structured Query Language). Интерактивный и встроенный sql. Составные части sql. Типы данных sql. Основные типы команд sql.
- •4)Тестирование приложения методом «черного» ящика.
- •1)Диаграмма вариантов использования uml 2: назначение, элементы и правила построения.
- •Понятие тега
- •3)Язык sql. Команды манипулирования данными.
- •1)Диаграмма классов uml 2: назначение, классы и их обозначение.
- •3)Архитектуры приложений. Основные различия между архитектурами приложений.
- •1)Диаграмма деятельности uml 2: назначение, действия и деятельности, объекты, дуги деятельности
- •2)Http-протокол. Идеология построения протокола http. Общая структура сообщений, методы доступа. Заголовок и данные http-запросов. Стандартные коды ответов.
- •4)Структуры данных, основанные на хеш-таблицах.
- •1)Создание и использование статических библиотек в операционной системе Windows. Создание и использование динамических библиотек в операционной системе Windows: раннее и позднее связывание.
- •2)Диаграмма развертывания uml 2: назначение, элементы и правила построения.
- •3)Понятие экспертной системы. Назначение и основные свойства экспертных систем, основные области применения и примеры экспертных систем.
- •4)Деревья двоичного поиска. Методы их реализации.
- •1)Логическая организация файловой системы: типы файлов, иерархическая структура файловой системы, имена файлов, адресация файлов.
- •2)Жизненный цикл программного обеспечения. Классическая модель жизненного цикла: основные этапы, принципы организации, преимущества и недостатки
- •3)Архитектура и особенности экспертных систем.
- •4)Алгоритм Хаффмена, структуры данных для его реализации. Пример построения кода.
- •1)Физическая организация файловой системы: диски, разделы, секторы, кластеры, адресация файла.
- •2)Классификация экспертных систем
- •4)Сбалансированные и несбалансированные деревья поиска.
- •1)Иерархия запоминающих устройств. Кэш-память. Способы отображения основной памяти на кэш. Схемы выполнения запросов в системах с кэш-памятью.
- •2)Жизненный цикл программного обеспечения. Эволюционная модель жизненного цикла: основные этапы, принципы организации, преимущества и недостатки.
- •3)Разработка экспертных систем. Этапы разработки экспертной системы. Человеческий фактор при разработке экспертной системы.
- •5)Алгоритмы быстрой сортировки
- •1) Страничное распределение памяти. Сегментное распределение памяти. Сегментно-страничное распределение памяти.
- •2)Диаграмма последовательностей uml 2: назначение, линия жизни и сообщения.
- •3)Модели представления знаний: продукционные модели, семантические сети, фреймы и формальные логические модели.
- •4)Алгоритмы внешней сортировки.
- •1)Понятие операционной системы. Иерархическая и многослойная структуры операционной системы. Многослойная структура ядра операционной системы.
- •2)Диаграмма последовательностей uml 2: назначение, комбинированные фрагменты взаимодействия и их применение.
- •3)Знания и данные. Глубинные и поверхностные знания. Интенсионал и экстенсионал понятия. Классификация моделей представления знаний.
- •4)Документирование результатов тестирования. Важность дефекта. Градации важности дефекта.
3)Основные этапы проектирования баз данных.
В основу проектирования БД должны быть положены представления конечных пользователей конкретной организации — концептуальные требования к системе.
При рассмотрении требований конечных польз-й необходимо:
БД должна удовлетворять актуальным инф-м потребностям организации. Получаемая информация должна по структуре и содержанию соответствовать решаемым задачам.
БД должна обеспечивать получение требуемых данных за приемлемое время, то есть отвечать заданным требованиям производительности.
База данных должна удовлетворять выявленным и вновь возникающим требованиям конечных пользователей.
БД должна легко расшир-я при реорганизации и расширении предм-ой области.
БД должна легко изменяться при изменении программной и аппаратной среды.
Загруженные в базу данных корректные данные должны оставаться корректными.
Данные до включения в базу данных должны проверяться на достоверность.
Доступ к данным, размещаемым в базе данных, должны иметь только лица с соответствующими полномочиями.
В результате анализа поставленной заказчиком задачи и обработки требований конечных пользователей составляется концептуальная модель.
При разработке логической модели базы данных необходимо решить, какая модель данных наиболее подходит для отображения конкретной концептуальной модели предметной области. Коммерческие системы управления БД поддерживают одну из известных моделей данных или некоторую их комбинацию. Почти что все популярные системы для персональных компьютеров поддерживают реляционную модель данных.
Каждый прямоугольник концептуальной модели отобр-я в одно отношение, которое отражает предст-е польз-я в удобном для него таб формате. Простота отобр-я связана с тем, что при разработке концептуальной модели использ-я реляционный подход.
4)Основные показатели надёжности программного обеспечения
1. Вероятность безотказной работы P(tз) – это вероятность того, что в пределах заданной наработки отказ системы не возникает.
2. Вероятность отказа – вероятность того, что в пределах заданной наработки отказ системы возникает.
Это показатель, обратный предыдущему.
Q(tз) =1 – P(t з) где tз – заданная наработка, ч.; Q(tз) – вероятность отказа.
3. Интенсивность отказов системы – это условная плотность вероятности возникновения отказа ПИ в определенный момент времени при условии, что до этого времени отказ не возник.
4. Средняя наработка на отказ Тi - математическое ожидание времени работы ПИ до очередного отказа:
5. Среднее время восстановления T - математическое ожидание времени восстановления работоспособности.
где ti — время восстановления i-го объекта;
n — число объектов, подлежащих восстановлению.
6. Коэффициент готовности K - вероятность того, что ПИ ожидается в работоспособном состоянии в произвольный момент времени его использования по назначению:
где
-
суммарное время исправной работы
изделия;
-
суммарное время вынужденного простоя.
7. Все приведенные показатели надежности ПО характеризуют наличие ошибок программы (производственных дефектов), но ни один из них не характеризует характер этих ошибок и возможные их последствия. Поэтому предлагается ввести новый показатель надежности ПО – средняя тяжесть ошибок (СТО):
B=1/Q СУММ(bi*pi*zi)
где Q – вероятность сбоя ПО;
СУММ – оператор суммирования по переменной i;
bi – функция принадлежности тяжести последствий ошибки, возникшей при i-ом наборе входных данных, к максимально тяжелым последствиям;
pi – вероятность ввода i-го набора входных данных при эксплуатации ПО;
zi – дихотомическая переменная, равная 1, если при i-ом наборе входных данных был зафиксирован сбой, и 0 в противном случае;
m – общее число наборов входных данных.
Билет №3.
1) Способы создания и разрушения объектов. Конструкторы и деструкторы, их виды и порядок вызова. Примеры на языке С++.
В процессе создания и удаления объектов в программе обязательно участвуют особые методы класса – конструктор и деструктор, назначение которых интуитивно понятно.
Конструктор – выделяет память для объекта и инициализирует данные-члены класса.
имя конструктора совпадает с именем класса;
конструктор не имеет возвращаемого значения (даже void);
классу без конструктора предоставляется конструктор по умолчанию;
при явно описанном конструкторе конструктор по умолчанию не генерируется;
конструкторы могут быть перегружены;
не могут быть описаны с ключевыми словами virtual, static, const, mutable, volatile;
не могут явно вызываться в программе;
частным случаем конструктора является конструктор копирования, у которого в аргументах передается ссылка на другой объект того же класса.
Деструктор – вызывается автоматически при разрушении объекта, его задача - освободить память и корректно уничтожить объект.
имя деструктора также совпадает с именем класса но предваряется символом тильда "~" (~имя_класса);
деструктор не имеет ни какого возвращаемого значения;
не может быть описан как static, const, mutable, volatile;
без явного задания генерируется деструктор по умолчанию;
могут быть описаны как virtual - у всех производных классов деструкторы автоматически будут виртуальными;
могут явно вызываться.
Объявление конструктора: ComplexType(); Определение пустого конструктора:
ComplexType() {}
В классе может быть объявлено (и определено) несколько конструкторов. Их объявления должны различаться списками параметров. Такие конструкторы по аналогии с функциями называются перегруженными (или совместно используемыми). Транслятор различает перегруженные конструкторы по спискам параметров. В этом смысле конструктор не отличается от обычной функции-члена класса:
ComplexType(double rePar, double imPar); /* Объявление… */
ComplexType(double rePar, double imPar) { /*…*/ }
Конструктор вызывается не для объекта класса, как другие функции-члены, а для области памяти. Для её преобразования ("превращения") в объект класса.
Конструктор копирования (пример):
class demo { char *p; public: demo(void) { p="NULL"; } demo(char* s){ p=s; }
demo(demo& demo_o){ p=o.p; } void out(void){ puts(p); }}
void main(){ demo a("Ok"), b(a); a.out(); b.out();}
В C++ конструктор копирования является единственным средством создания копий объекта. Конструктор копирования - обязательный элемент любого класса. Он также может быть переопределён подобно конструктору умолчания. Спецификатор const (конструктор копирования работает с адресом объекта) предохраняет объект-параметр от случайной модификации в теле конструктора.
Операторы new и delete предназначены для динамического распределения памяти и могут использоваться в С++ - программах вместо функций malloc() и free().
Оператор new имеет два допустимых формата вызова:
[::] new [список_аргументов] тип [инициализатор]
[::] new [список_аргументов] (тип) [инициализатор]
Тип - это тип данных, для которых необходимо зарезервировать память.
Инициализатор - значение, используемое для инициализации данных в памяти.
Для удаления элементов классов вызывается деструктор. В некоторых реализациях языка вызов оператора delete для несуществующего или пустого указателя приводит к возникновению исключения.
