
- •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)Документирование результатов тестирования. Важность дефекта. Градации важности дефекта.
4)Надежность программного обеспечения.
Под надёжностью (ПО) понимается свойство этого обеспечения выполнять заданные функции, сохраняя свои характеристики в установленных пределах при определённых условиях эксплуатации. Надёжность ПО определяется его безотказностью и восстанавливаемостью.
Безотказность ПО – это свойство сохранять работоспособность при использовании его для обработки информации в ИС. Безотказностью ПО оценивается вероятность его работы без отказов при определённых условиях внешней среды в течение заданного периода наблюдения. В приведённом определении под отказом ПО понимается недопустимое отклонение характеристик функционирования этого обеспечения от предъявляемых требований. Определённые условия внешней среды – это совокупность входных данных и состояние самой ИС. Заданный период наблюдения соответствует времени, необходимому для выполнения на ЭВМ решаемой задачи.
Безотказность ПО может характеризоваться средним временем возникновения отказов при функционировании программы. При этом предполагается, что аппаратные средства ЭВМ находятся в исправном состоянии. С точки зрения надёжности, принципиальное отличие ПО от аппаратных средств состоит в том, что программы не изнашиваются и их выход из строя из-за поломки невозможен. Следовательно, характеристики функционирования ПО зависят только от его качества,
предопределяемого процессом разработки. Это означает, что безотказность ПО определяется его корректностью и зависит от наличия в нём ошибок, внесённых на этапе его создания. Кроме того, проявление ошибок ПО связано ещё и с тем, что в некоторые моменты времени на обработку могут поступать ранее не встречавшиеся совокупности данных, которые программа не в состоянии корректно обработать. Поэтому входные данные в определённой мере влияют на функционирование ПО. В ряде случаев говорят об устойчивости функционирования ПО. Под этим термином понимается способность ПО ограничивать последствия собственных ошибок и неблагоприятных воздействий внешней среды или противостоять им. Устойчивость ПО обычно обеспечивается с помощью введения различных форм избыточности, позволяющих иметь дублирующие модули программ, альтернативные программы для одних и тех же задач, осуществлять контроль за процессом исполнения программ.
Билет №2.
1)Языковые средства описания классов и объектов, уровни видимости и их использование. Примеры на языке С++.
Важнейшим расширением для языка С является новый тип данных - class, который имеется в С++. Классы позволяют объединить в единый тип данных как данные-члены, так и функции члены. Классы могут предоставлять различные права доступа к различным членам и также ограничивают область видимости идентификаторов, которые в них определены. Синтаксис определения класса в С++ следующий:
Тип_класса имя_класса [ : базовые классы ] { список членов класса
} [ объекты ] ;
Создание абстрактных типов данных (классов) - это основополагающая концепция в ООП. Абстрактные типы данных работают почти так же, как и встроенные типы: вы можете создавать переменные этого типа (называемые объектами или экземплярами, если говорить объектно-ориентированным языком) и манипулировать этими переменными. Так как класс описывает набор объектов, которые имеют идентичные характеристики (элементы данных) и черты поведения (функциональность), класс реально является типом данных, потому что, например, число с плавающей точкой также имеет набор характеристик и черт поведения.
Как только класс создан, можно создать столько объектов этого класса, сколько захотите, а затем манипулировать этими объектами так, как если бы они являлись элементами, которые существуют в проблеме, которую требуется решить.
Каждый объект может удовлетворять только определенные запросы. Запросы, которые вы можете сделать к объекту, определяются его интерфейсом и типом, который определяет интерфейс. Простым примером может стать представление электрической лампочки.
Пример создания экземпляра лампочки и запроса на включение:
Light lt = new Light(); lt.on();
В этом промере имя типа/класса - Light, имя этого обычного объекта Light - lt, а запросы, которые вы можете сделать для объекта Light - это включить его, выключить, сделать ярче или темнее. Вы создаете объект Light, определяя “ссылку” (lt) для объекта и вызываете new для запроса нового объекта этого типа. Для отправки сообщения объекту вы объявляете имя объекта и присоединяете его к сообщению запроса, разделив их (точкой).
В качестве типа класса могут быть использованы ключевые слова class, struct и union. Базовые классы - это список имен классов, разделяемых запятыми, элементы которых наследуются вновь определяемым классом. Доступ производного класса к наследуемым элементам родительского может указываться модификатором доступа - public, protected и private.
Пример описания класса:
class example { int value;public: example(){ value=1; } protected: int get_value(void){ return value; } private: int last_value(void);};
Модификатор доступа действителен для всех членов класса, которые расположены после него, до момента появления следующего модификатора доступа. Модификаторы доступа не могут комбинироваться. Модификатор доступа может быть неоднократно использован в описании класса. По умолчанию действует модификатор доступа private. Назначение модификаторов доступа раскрывает следующая таблица:
Атрибут доступа |
Значение |
public |
Можно использовать как внутри класса, так и вне. Доступ извне осуществляется через имя объекта и оператор расширения области видимости. |
private |
Доступ только в пределах данного класса и классов друзей. |
protected |
Доступ внутри класса, его друзей, а также внутри классов наследников и их друзей. |
При создании класса часть его членов "прячется" с помощью атрибута доступа private, оставляя возможность манипуляции только с членами класса, описанными как public. Доступ внутри класса означает, что внутри тела какой-либо функции-члена класса другие члены этого же класса (данные или функции) являются доступными.
2) Связывание данных. Создание на примере списка автомобилей корректно-сформированного XML-документа, в котором корневой элемент содержит не менее трёх элементов записей и каждый из элементов-записей имеет одинаковый набор не менее трёх элементов-полей. Создание HTML-страницы, отображающей не только символьные данные XML-элементов, но и фотографию авто (используя свойство сцепления с XML-элементами).
При связывании данных сначала XML-документ соединяется с HTML-страницей, а затем встраиваются стандартные HTML-элементы, такие как SPAN или TABLE, в отдельные XML-элементы.
Основные шаги при связывании данных
1. Установка связи XML-документа с HTML-страницей, на которой необходимо отобразить данные XML. Этот шаг обычно реализуется включением HTML-элемента с именем XML в HTML-страницу.
2. Сцепление HTML элементов с XML-элементами. При сцеп-лении HTML-элементов с XML-элементом, HTML-элемент автоматически отображает содержимое XML-элемента.
Табличное сцепление данных
Если данные XML-документа организованы в виде простого набора записей, т.е. если корневой элемент содержит множество элементов ("записей"), каждый из которых содержит одинаковый набор элементов ("полей"), а каждое "поле" содержит уже только символьные данные, вы можете использовать один единственный HTML-элемент TABLE для отображения XML-документа. В нашем случае такой документ и получиться.
<Cars>
<Car>
<Brand>VAZ</Brand>
<Model>2107</Model>
<Photo>vaz2107.jpg</Photo>
</Car>
<Car>
<Brand>Subaru</Brand>
<Model>Impreza</Model>
<Photo>subaruImpreza.jpg</Photo>
</Car>
<Car>
<Brand>YAZ</Brand>
<Model>Hunter</Model>
<Photo>yazHunter.jpg</Photo>
</Car>
</Cars>
<html>
<body>
<xml id="dsoCars" src="Cars.xml"></xml>
<TABLE datasrc="#dsoCars" border="1">
<THEAD>
<TH>Марка</TH>
<TH>Модель</TH>
<TH>Фото</TH>
</THEAD>
<TR>
<TD><SPAN datafld="Brand"></SPAN></TD>
<TD><SPAN datafld="Model"></SPAN></TD>
<TD><IMG datafld="Photo"></IMG></TD>
</TR>
</TABLE>
</body>
</html>