Файл: Основы проектирования программ. Этапы создания программного обеспечения.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 28.04.2023

Просмотров: 105

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
  1. Формы объектов.

Формами объектов должны быть прямоугольник со скругленными углами, или окружность, так как они меньше «режут» глаз. Интерфейс должен притягивать, а не отталкивать.

  1. Выделение основных элементов.

Основные элементы интерфейса должны быть выделены цветом или формой. Это делает интерфейс более понятным, что и требуют принципы построения интерфейса.

  1. Понятные иконки.

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

  1. Размер элементов.

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

  1. Использование принципа «золотого сечения».

Визуальная привлекательность сайта зависит от пропорций. Принцип «золотого сечения» гласит, что целое относится к большей части так, как относится меньшая к большей. Числом, характеризующий данный принцип, является 1.62. Примером использования может являться программа, состоящая из нескольких визуальных блоков. Например, если у нас есть сайт, то принято под большую часть выделять:

ширину, равной ширине страницы, деленной на 1,62. Следовательно, под меньшую часть:

Ширина меньшей части= ширина страницы – ширина большей части.

  1. Группировка элементов.

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

  1. Привычность интерфейса.

Следует учитывать привычки пользователей по работе с программами. Например, если вы разрабатываете приложения под Windows, то кнопки закрытия, сворачивания и минимизации окна следует располагать с правой стороны, т.к. выполнено во всех окнах ОС. Если разрабатываете под Linux или MacOS, то лучше располагать слева.

  1. Монотонность интерфейса.

Монотонным считается интерфейс, в котором любое действие можно выполнить только одним способом. Такой тип интерфейса обеспечивает более быстрое привыкание.

  1. Отклик программы.

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


Интерфейс является лицом программы, и дополняет алгоритм и программный код.

Тестирование программы

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

Тестирование является самым ресурсо – и времязатратным этапом производства программ. Более 50% времени и средств уходит на данный этап.

«Удачным» считается тестирование, при котором были обнаружены какие-либо ошибки, и наоборот «неудачным», при котором их не было обнаружено.

Принципы организации тестирования:

  1. Основной частью тестирования является описание необходимых результатов, которые должно выдать программы. Это позволяет ускорить процесс выявление ошибок;
  2. Тестированием не должен заниматься разработчик программы, так как он не сможет объективно оценить результат работы программы;
  3. Необходимо подробное изучение результатов каждого тестирования, чтобы не упустить какую-либо ошибку;
  4. Тестирование необходимо проводить как для корректных входных данных, так и для некорректных;
  5. В ходе проведения теста, необходимо наблюдать за поведением программы. Программа не должна производить некорректных действий;
  6. Проведенные тесты и их результаты нельзя удалять. Это поможет выявить изменения в работе программы после отладки;
  7. В ходе тестирования необходимо совершать любые действия для получения ошибок;
  8. Нельзя забывать про «Принцип скопления ошибок», который гласит, что количество ненайденных ошибок прямо пропорционален количеству найденных.

Выделяют следующие виды тестирования:

  • По уровню тестирования
    • Модульное тестирование

Тестируется каждая отдельная функционально законченная часть программы (классы, функции);

    • Интеграционное тестирование

Тестируется взаимосвязь между компонентами программы;

    • Системное тестирование

Программа тестируется на соответствие поставленной задаче;

  • По объекту тестирования
    • Функциональное тестирование

Тестируется возможность программы решать требуемые задачи;

    • Тестирование производительности

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


    • Нагрузочное тестирование

Тестирование на способность работы программы при различных нагрузках. Данное тестирование помогает исключить потерю работоспособности программы, при максимальных нагрузках на нее;

    • Стресс – тестирование

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

    • Тестирование стабильности

Тестируется стабильность работы программы в течении большого промежутка времени;

    • Тестирование безопасности

Тестируется защита программы от взлома злоумышленниками;

    • Тестирование совместимость

Тестируется совместимость программы с различными платформами;

  • По знанию системы
    • Тестирование черного ящика

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

    • Тестирование белого ящика

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

  • По времени проведения тестирования
    • Альфа – тестирование

При данном виде тестирования происходит имитация работы пользователей с программой;

    • Бета – тестирование

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

    • Регрессионное тестирование

Данное тестирование проводится перед окончанием работы над продуктом. В ходе него проверяется исправление найденных раннее ошибок, а также основных функций программы

    • Дымовое тестирование

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


  • По степени автоматизации
    • Ручное тестирование

Данное тестирование проводится тестировщиками без использования какого-либо программного обеспечения;

    • Автоматизированное тестирование

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

Примерами таких тестов являются: TestComplete, HP QuickTest Pro и т.д.

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

Для сокращения количества ошибок были разработаны средства для анализа кода.

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

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

2. Пробный запуск программы;

3. Выделение необходимых параметров;

4. Анализ выходных данных.

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

Отладка программы

На этапе отладки программы происходит исправление ошибок, выявленных в ходе тестирования программы. Выделяют следующие типы ошибок:

  • Логические ошибки

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

  • Синтаксическая ошибка

Каждый язык программирования имеет свой синтаксис, то есть набор команд, которыми он оперирует. Данная ошибка может возникнуть при неверном написании команды, использовании команды, не существующей в данном языке, или логики использования команды. Такая ошибка исправляется путем исправления неверной команды;

  • Семантическая ошибка

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

  • Ошибка среды выполнения

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

  • Арифметическая ошибка

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

  • Ошибка ресурса

Распространёнными примерами данной ошибки являются: значение переменной превышает диапазон значений, переполнение буфера (стека), использование необъявленной переменной.

  • Ошибка компиляции

Данная ошибка может возникнуть как результат вышеизложенных ошибок. Также такую ошибку может вызвать неработоспособность самого компилятора.

  • Ошибка взаимодействия

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

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

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

Средства отладки IDE предлагают 3 вида отладки:

  1. Отладка с выполнением подпрограмм;
  2. Отладка с игнорированием подпрограмм;
  3. Отладка до точки остановки.

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

Второй вид отладки подходит, если подпрограммы уже отлажены.