Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТРПО.doc
Скачиваний:
83
Добавлен:
24.12.2018
Размер:
1 Мб
Скачать
☆

30 Особенности объектного подхода к разработке внешнего описания пс

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

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

Объектная модель определяет то, с чем случается, динамическая - когда это случается, функциональная - что случается.

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

Класс объекта = имя + список артибутов + список операций

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

Виды ассоциаций: 1) взаимодействие состояний объектов - объекты классов в таком отношении могут быть параметрами некоторых операций; 2) агрегирование (структурирование) - объект одного из классов, находящийся в таком отношении, включает или может включать в себя часть объектов другого из этих классов; 3) абстрагирование (порождение) - один из классов, находящихся в таком отношении, наследует свойства другого из этих классов и может обладать другими дополнительными свойствами.

Обычно используют графические языки спецификации (UML). Классы объектов обозначаются в нем прямоугольниками, а отношения - линиями и надписями.

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

Динамическая модель необходима, если в объектной модели имеются активные объекты.

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

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

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

32 Источники ошибок в ПС: интеллектуальные возможности человека, модель перевода информации. Причины появления ошибок.

Интеллектуальные возможности человека

Дейкстра выделил три интеллектуальные возможности человека, используемые при разработке ПС:

  1. Способность к перебору;

  2. Способность к абстракции;

  3. Способность к математической индукции.

1 — Возможность последовательно переключать внимание с одного объекта на другой, позволяя узнавать искомый предмет. Эта способность ограничена. Средний человек может перебрать до 1000 предметов.

Средство преодоления ограниченности — 2. Можно объединить предметы и экзамепляры в одно понятие, заменить множество одних, элементом другого рода.

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

Понять систему — значит осмысленно перебрать пути взаимодействия между ее элементами.

Различают простые и сложные системы. В простой можно перебрать все пути взаимодействия элементов системы, в сложной — нет.

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

n < 7 — система простая (малая).

Малая всегда простая, большая может быть простой или сложной.

Задача технологии программирования — научиться делать большие программы простыми.

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

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

Рисунок

Модель перевода

Рисунок

  1. Человек получает информацию с помощью читающего механизма R;

  2. Он записывает полученную информацию в памяти M;

  3. Выбирает из памяти преобразованную информацию и информацию, описывающую процесс преобразования, выполняет перевод и посылает результат пишущему механизму W;

  4. С помощью W фиксирует представление Б.

На каждом из этих шагов он может совершать различные ошибки:

  1. Ошибки в описании задачи;

  2. Ошибки в выборе алгоритма;

  3. Ошибки анализа — неполный учет всевозможных ситуаций;

  4. Ошибки общего характера: низкая квалификация программиста;

  5. Ошибки документации.

Методы обнаружения ошибок:

  1. Проверка перед монитором;

  2. Проверка исходных данных;

  • Искажение данных аппаратными средствами

  • Ошибки перезаписи при копировании данных до входа в вачислительную систему;

  • Стандартные ошибки;

  • Неправильное размещение данных;

  • Введение некомпетеными пользователями.

  • Метод последовательных исключений — снижение области поиска.

    Ошибки выполнения:

    1. Определения данных;

    • Передачи;

    • Преобразования;

    • Перезаписи;

    • Неправильные данные.

  • Логические;

    • Неприемлемый подход;

    • Неверный алгоритм;

    • Неверная структура данных;

    • Другие;

  • Кодирования;

    • Проектирования;

    • Некорректная работа с переменными;

    • Некорректные вычисления;

    • Ошибки интерфейсов;

    • Неправильная реализация алгоритма;

    • Другие.

  • Накопления погрешностей;

    • Игнорирование ограничений разрядной сетки;

    • Игнорирование способов уменьшения погрешностей.

    Причины появления ошибок:

    1. Технологические — включающие возможности описания задачи и ее решения;

    2. Организационные — распределение рабочей нагрузки, доступность информации средств связи и ресурсов;

    3. Психологические — желание сотрудничать, распределение ролей, микроклимат в коллективе;

    4. Индивидуальные — квалификация, талант, личные качества.

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

    Отладка ПС - это деятельность, направленная на обнаружение и исправление ошибок в ПС с использованием процессов выполнения его программ. Тестирование ПС - это процесс выполнения его программ на некотором наборе данных, для которого заранее известен результат применения или известны правила поведения этих программ. Указанный набор данных называется тестовым или просто тестом. Таким образом, отладку можно представить в виде многократного повторения трех процессов: тестирования, в результате которого может быть констатировано наличие в ПС ошибки, поиска места ошибки в программах и документации ПС и редактирования программ и документации с целью устранения обнаруженной ошибки. Другими словами:

    Отладка = Тестирование + Поиск ошибок + Редактирование

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

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

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

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

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

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

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

    Достоинства восходящего тестирования:

    1. Простота подготовки тестов;

    2. Возможность полной реализации плана тестирования модуля.

    Недостатки восходящего тестирования:

    1. Тестовые данные готовятся, как правило, не в той форме, которая рассчитана на пользователя;

    2. Большой объем отладочного программирования;

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

    Достоинства нисходящего тестирования:

    1. Большинство тестов готовится в форме, рассчитанной на пользователя;

    2. Во многих случаях относительно небольшой объем отладочного программирования;

    3. Отпадает необходимость тестирования сопряжения модулей.

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

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

    Случаи, когда программа должна работать со всеми данными, чрезвычайно редки.

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

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

    В исключительных ситуациях значения за допустимым диапазоном.

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