Вопрос №1. "Понятие системы. Примеры системы. Свойства сложных систем"

Вид материалаДокументы
Вопрос №32. Основные принципы тестирования и верификации программ
Вопрос №38. "Процесс передачи данных. Спектральное представление сигналов".
Подобный материал:
1   2   3   4   5   6   7

Вопрос №32. Основные принципы тестирования и верификации программ



Тестирование является одним из этапов жизненного цикла ПИ, направленным на повышение качественных характеристик. При создании типичного ПИ около 40% общего времени и более 49% общей стоимости расходуется на проверку (тестирование) разрабатываемой программы.

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

Применительно к ПИ тестирование – это процесс многократного выполнения программы с целью обнаружения ошибок .

Программа тестируется для того, чтобы повысить уровень ее надежности,

т.е. выявить максимальное число ошибок.

Цель тестирования – выявление как можно большего числа ошибок.

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

Принцип 1. Процесс тестирования более эффективен, если проводится не автором программы.

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

Принцип 2. Описание предполагаемых значений результатов тестовых прогонов должно быть необходимой частью тестового набора данных.

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

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

Принцип 3. Необходимо досконально изучать результаты каждого теста.

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

Принцип 4. Тесты для неправильных и непредусмотренных входных данных должны разрабатываться также тщательно, как для правильных, предусмотренных.

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

Принцип 5. Необходимо проверять не только, делает ли программа то, для чего она предназначена, но и не делает ли она то, что не должна делать.

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

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

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

Метод верификации

Один пользователь заполняет БД с документов, второй сравнивает на соответствие Таким образом выявляются ошибки. (массивный подход)

Один заполняет, второй заполняет посимвольно. При этом ошибки блокируются в дальнейшем заполнении БД. (символьный подход)

Верность данного метода составляет 95-98%. Остальные 2-5% достоверности информации обнаруживаются после использования БД.

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

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

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

Выявленные ошибочные данные подлежат исправлению, повторному вводу.


Вопрос №33. Физическая и логическая структуры данных на диске под управлением операционной системы MS-DOS.

Ответ:

Физический формат диска

Информация размещается в секторах фиксированной длины, расположенных на концентрических дорожках поверхности диска. Число секторов на дорожке конкретного носителя также постоянно.

Диск может иметь одну или две рабочих поверхности. НЖМД содержит один или более дисков. Однако под жестким диском обычно понимают весь пакет магнитных дисков. Число дорожек на поверхности дискеты (число цилиндров), как правило, составляет 40 или 80. Жесткие диски могут иметь несколько сотен тысяч цилиндров. Количество рабочих поверхностей и цилиндров является аппаратной характеристикой дисковода. Программист может (в рамках допустимого диапазона) изменить число цилиндров.

Число секторов на дорожке задается программно (драйвером устройства). Стандартными для различных НГМД являются величины 8, 9, 15 и 18. Жесткие диски имеют обычно 17, 32 или более секторов на дорожку. Также как и число цилиндров программист может изменить приведенные значения.

Каждый сектор состоит из поля данных и поля служебной информации, ограничивающей и идентифицирующей его. Размер сектора также устанавливается драйвером. Пользовательский интерфейс DOS поддерживает единственный размер сектора - 512 байт. BIOS же непосредственно предоставляет возможности работы с секторами 128, 256, 512 или 1024 байт. Можно также в ручную обрабатывать секторы с другими размерами.

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

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

Физический адрес сектора на диске представляется триадой [t-h-s], где t - номер цилиндра, h - номер рабочей поверхности диска, а s - номер сектора на дорожке. Номер цилиндра t лежит в диапазоне 0..T-1, где Т - количество цилиндров. Номер рабочей поверхности диска h принадлежит диапазону 0..H-1, где Н - число магнитных головок в приводе. Номер сектора на дорожке s указывается в диапазоне 1..S, где S - количество секторов на дорожке.

Напомним, что обмен информацией между ОЗУ и дисками физически осуществляется только секторами.

Логический формат диска

Каждая дискета обычно рассматривается DOS как единственный логический диск.

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

На логическом уровне считается, что секторы логического диска имеют непрерывную нумерацию от 0 до N-1, где N=T*H*S - количество секторов на диске. Соответствие между физическим адресом сектора и его логическим номером n (для дискет) определяется следующей формулой:

n=(t*H*S)+(h*S)+s-1 (2.1)

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

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

Формулу (2.1) можно использовать и в обратном направлении для определения физического адреса сектора по его логическому номеру:

t = n / (H * S) (2.2)

h = (n - (t * H * S)) / S (2.3)

s = n - ((t * H * S) + (h * S)) + 1 (2.4)

Здесь символ / обозначает целочисленное деление.

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

Логическое дисковое пространство любого логического диска делится на две области: системную область и область данных.

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

Системная область состоит из следующих, расположенных в логическом адресном пространстве подряд, компонентов:
  1. загрузочной записи (BR - Boot Record);
  2. зарезервированных секторов (RSec - Reserved Sector);
  3. таблицы размещения файлов (FAT - File Allocation Table);
  4. корневого каталога (RDir - Root Directory).

BR находится в секторе с физическим адресом [0-0-1] (для дискеты) и содержит блок параметров диска (DPB - Disk Parameter Block), а также блок начальной загрузки (БНЗ). Сектор, содержащий BR, называется стартовым.

За BR могут располагаться несколько RSec, используемых DOS. Стартовый сектор логического диска с BR относится к числу RSec. Обычно это единственный RSec на логическом диске. FAT является очень важной информационной структурой. Она представляет собой карту (образ) области данных, в которой описывается состояние каждого кластера и связываются в цепочку принадлежащие одному файлу (некорневому каталогу) кластеры. Кластер - это минимальная единица дисковой памяти, выделяемая файлу (или некорневому каталогу). Каждый из них занимает целое число кластеров. Последний кластер при этом может быть задействован не полностью. Кластер представляет собой один или несколько смежных секторов в логическом дисковом адресном пространстве (точнее - только в области данных). На дискетах кластер занимает один или два сектора, а на жестких дисках - обычно четыре или восемь секторов.

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

- уменьшается возможная фрагментация файлов;

- уменьшается размер FAT, а следовательно, и объем системной области логического диска;

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

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

В связи с тем, что FAT используется при доступе к диску очень интенсивно, она обычно загружается в ОЗУ (в буфера ввода-вывода или кэш) и остается там настолько долго, насколько это возможно.

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

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

Некорневые каталоги в области данных размещаются аналогично файлам (динамически), вследствие чего на их длину ограничение не накладывается.

В BR и FAT хранится дескриптор носителя, чтобы можно было быстро определить формат логического диска. Однако он обладает определенной неоднозначностью.

Особенности формата логического диска на винчестере состоят в следующем:

- увеличен размер кластера;

- увеличены размеры FAT и RDir;

- элементы FAT могут быть 16-битными;

- максимальное число элементов корневого каталога обычно составляет 512;

- дескриптором носителя является F8H.

На жестком диске имеется односекторная главная загрузочная запись (MBR - Master Boot Record), содержащая внесистемный загрузчик (NSB - Non-System Bootstrap), а также таблицу разделов (PT - Partition Table) и имеющая физический адрес [0-0-1]. Таблица разделов (Partition Table) - структура данных, указывающая на разбиение жесткого диска на части. Она описывает размещение и характеристики имеющихся на винчестере разделов.

Таким образом, в стартовом секторе физического жесткого диска находится не BR, а MBR.

NSB служит для копирования в ОЗУ блока начальной загрузки из BR логического диска в активном разделе и передачи на него управления, что осуществляется при загрузке DOS.

Вслед за MBR размещаются разделы.

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

Расширенный раздел DOS можно рассматривать как жесткий диск в миниатюре: он содержит вторичную MBR (SMBR - Secondary MBR), в состав которой вместо PT входит таблица логического диска (LDT - Logical Disk Table), ей аналогичная. LDT описывает размещение и характеристики раздела, содержащего единственный логический диск, а также может специфицировать следующую SMBR. Следовательно, если в расширенном разделе DOS создано m логических дисков, то он содержит m SMBR, связанных в список. Каждый элемент этого списка описывает соответствующий логический диск и ссылается (кроме последнего) на следующий элемент списка.


Вопрос №34 Организация разработки АРМ


  1. Предпроектное обследование объекта автоматизации (анализ функций разработчика, типы информации, типы информационных связей)

Создание документации на АРМ
  1. Цели, назначения системы(для чего этот АРМ предназначен)
  2. Описание объекта автоматизации (фиксируется ,что за должность выполнял работник до времени автоматизации)
  3. Требования к авт. функциям (каким требованиям будет удовлетворять объект после автоматизации)
  4. Требования к видам обеспечения:
  • ТО (согласуется с заказчиком);
  • ПО (более подробно расписать способность к адаптации, к изменению условий эксплуатации, граничные спецификации системы)
  • ИО :
  • указать структуру (поле, тип, длина, комментарии)
  • граничные спецификации
  • администрирование (способы реорганизации и реструктуризации)
  • ОИ (меры и действия, которые должен предпринять заказчик для эксплуатации системы)

План - график работ

Виды работ

Срок

Цена

Итоги:
  1. Этап проектирования (определение алгоритмов выполнения функций с выбором технических и программных средств)
  2. Этап реализации проекта (программирование и кодирование)
  3. Ввод в эксплуатацию и сопровождение



Вопрос №35. Состав типовых пакетов прикладных программ

По современным взглядам, ППП – это совокупность совместимых программ для решения определенного класса задач.

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

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

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

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

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

Составные части ППП:




ПВЯ Управляющая

программа Информационная

база







Обслуживающие Обрабатывающие

модули модули


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

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

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

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


Вопрос №38. "Процесс передачи данных. Спектральное представление сигналов".