Слайд 1
Разработка программного кода и тестирование сложных программ
Руководитель:
Тестова И.В., доцент кафедры
ПМиВВ
Выполнили:
Поташев Никита и Садыкова Анастасия
Группа 371512, направление подготовки 01.03.02 «Прикладная
математика и информатика»
Архангельск, 2018 г.
Северный (Арктический) федеральный университет
имени М. В. Ломоносова
Слайд 2Содержание
Архитектура программных систем.
Методики и подходы к программированию.
Правила структурного программирования.
Средства
разработки.
Тестирование и отладка программ.
Финишные этапы разработки программных систем.
Слайд 3Цель и задачи работы
Цель работы – определить этапы процесса разработки
программного кода и принцип тестирования сложных программ.
Для достижения цели
необходимо выполнить следующие задачи:
определить архитектуры программных систем;
провести анализ основных методик и подходов к программированию;
выделить этапы развития языков программирования и средств разработки;
провести обзор видов и способов тестирования и отладки программ;
определить финишные этапы разработки программной системы.
Слайд 4Архитектура программных систем
Архитектура программной системы – это первичная организация системы,
сформированная её компонентами, отношениями между компонентами и внешней средой системы,
а также принципами, определяющими структуру и эволюцию системы.
Модуль – это один объект или функция, где хранятся наборы необходимых объектов, функций и процедур.
Уровни – это совокупности модулей, отвечающие за интерфейс с пользователем (уровень представления данных), содержащие основные алгоритмы обработки информации (уровень прикладной логики), предоставляющие доступ к хранимым данным (уровень данных).
Слайд 5Архитектура программных систем
Принцип клиент-сервер – принцип, в котором модуль, выступающий
в роли клиента, может отправить запрос другому модулю, выступающему в
роли сервера.
Сервисы – это серверные модули, выполняющие повторяющиеся, типовые задачи и имеющие стандартный, унифицированный интерфейс.
Стандарты межмодульного взаимодействия для концепции «сервис ориентированной архитектуры»:
Протокол Simple Object Access Protocol (SOAP),
Язык eXtensible Markup Language (XML),
Текстовый формат обмена данными JSON
Слайд 6Методики программирования
Методика восходящего программирования:
Путь от простого к сложному – сначала
разрабатываются относительно простые функции и процедуры, а затем – более
сложные конструкции.
Методика нисходящего программирования:
Разработка одним программистом общей структуры программы исходя из декомпозиции решаемой задачи, а затем – разработка отдельных модулей программы группами программистов.
Заглушки – программы, которые имитируют работу реальных программных модулей, получая на вход необходимую информацию для работы реального модуля и возвращая информацию, похожую на обработанную по формату и содержанию.
Слайд 7Различные подходы к программированию
Процедурный подход:
Основан на применении правил структурного программирования,
заключается в составлении структурированных программ с выделенными по смыслу, замкнутыми
алгоритмами-процедурами.
Объектный подход:
Основан на создании иерархической системы классов, нацелен на легкость многократного использования программного кода и простоту построения сложных систем и готовых объектов. Практически все современные сложные программные системы строятся с использованием объектного подхода.
Слайд 8Правила структурного программирования
Главное правило структурного программирования:
При создании программного кода можно
использовать только три основные алгоритмические конструкции — линейную, ветвление и
цикл.
Дополнительные правила:
требование открыто объявлять используемые в программе переменные и максимально возможное ограничение области видимости переменных, функций и подпрограмм.
включение в код программы явных обработчиков ошибок, которые защищают программы от неожиданных ситуаций.
Слайд 9Документирование кода
Правило:
Всякий создаваемый программный код необходимо снабжать содержательными комментариями.
Важно:
Использовать при
разработке программного кода единые правила именования переменных и модулей и
единые стандарты в одной команде разработчиков.
Слайд 10Средства разработки. История
Первый этап (1950-е — начало 1960-х гг.).
Появились первые языки программирования высокого уровня (Fortran, Algol).
Была сформулирована фундаментальная для технологии разработки программ концепция модульного программирования.
Второй этап (конец 1960-х — 1970-е гг.). Разработана целая группа языков программирования высокого уровня, таких как Pascal, C, Ada, Basic и др. Начало исследований в области методологий программирования и программной инженерии. Сформулированы законы и правила структурного программирования.
Слайд 11Средства разработки. История
Третий этап (1980-е гг.).
Появились персональные компьютеры и интегри-рованные
среды разработки. Разработаны объектно-ориентированные языки программирования.
Четвёртый этап (1990-е гг.).
Повсеместное распространение
объектно-ориентиро-ванного подхода в программировании. Появление средств визуальной разработки приложений.
Пятый этап (2000-е гг.).
Быстрое развитие средств создания Web-приложений.
Слайд 12Рейтинг языков программирования
Таблица 1 – Рейтинг языков программирования.
Слайд 13Тестирование и отладка программ
Тестирование – это процесс анализа или эксплуатации
программного обеспечения в целях выявления дефектов (ошибок).
Под дефектом или
ошибкой понимается случайное, непреднамеренное искажение (погрешность) в компонентах программной системы, проявляющееся в процессе их анализа или функционирования.
Цель тестирования – это проверка соответствия тестируемого компонента которым установленным требованиям.
Отладка – целенаправленный процесс обнаружения, локализации и исправления ошибок в программных компонентах на этапе их реализации.
Слайд 14Тестирование и отладка программ
Методы тестирования:
Статическое тестирование – это тестирование, проводимое
без запуска на выполнение программного кода.
Динамическое тестирование – это тестирование,
проводимое посредством запуска на выполнение программного кода, с подачей на вход тестовых наборов входных данных.
Слайд 15Тестирование и отладка программ
Методы тестирования:
Метод «белого ящика» – динамическое тестирование,
проводимое с учетом внутренней структуры программы.
Метод «черного ящика» – динамическое
тестирование, при котором программа представляется в виде объекта, внутренняя структура которого неизвестна, а формирование тестовых наборов и анализ полученных результатов строятся только на основании имеющихся спецификаций и наборов требований к программе.
Слайд 16Тестирование и отладка программ
Методы тестирования:
Модульное тестирование – тестирование отдельных программных
модулей.
Тестирование интерфейсов – тестирование межмодуль-ных связей.
Системное тестирование – тестирование
всей или части системы, собранной из модулей.
Слайд 17Тестирование и отладка программ
Методы тестирования:
Восходящее тестирование – сначала тестируются отдельные
компоненты системы, стоящие на нижнем уровне иерархии, затем их взаимодействие,
и на следующем этапе – подсистема из этих связанных компонентов.
Нисходящее тестирование – сначала тестируются компоненты системы, стоящие на верхнем уровне иерархии, когда большинство из них заменены заглушками. В процессе тестирования заглушки заменяются реальными модулями.
Слайд 18Тестирование и отладка программ
Виды тестирования:
Приемочное.
Функциональное.
Регрессионное.
Тестирование граничных условий.
Тестирование на ошибочных данных.
Нагрузочное.
Стрессовое.
Бета-тестирование.
На
соответствие стандартам, стабильности и т.д.
Слайд 19Тестирование и отладка программ
Тестирование надежности
Теория надежности – наука, которая занимается
проблемой надежности технических средств и изделий.
Рисунок 1 – Иерархическая классификация
моделей надежности.
Слайд 20Тестирование и отладка программ
Модели надежности
Непрерывные модели:
модель Литтлвуда-Верралла;
модель Джелинского—Моранды;
модель особых
ситуаций;
модель переходных вероятностей.
Дискретные модели:
модель Муса;
модель Шумана.
Статические модели:
модель
Миллса;
простая интуитивная модель;
модель Нельсона.
Слайд 21Тестирование и отладка программ
Организация процесса тестирования
Тестирование на начальном этапе.
Внутреннее
тестирование – тестирование, в котором тесты основаны на внутренних показателях
качества.
Внешнее тестирование – тестирование, для которого тесты основаны на внешних показателях качества.
Пользовательское тестирование – тестирование, в котором тесты основаны на показателях пользовательского качества.
Слайд 22Тестирование и отладка программ
Рисунок 2 – Схема
взаимодействия внутреннего, внешнего и пользовательского тестирования
Слайд 23Финишные этапы разработки программ
Сопровождение – процесс внесения изменений в эксплуатируемую
программную систему.
Документация программы — неотъемлемая составная часть программной системы.
Интеллектуальная
собственность — собирательное понятие, означающее совокупность исключительных прав на результаты творческой деятельности и средства индивидуализации.
Это понятие впервые введено в 1967 г. Конвенцией, учредившей Всемирную организацию интеллектуальной собственности, участником которой является Россия.
Слайд 24Финишные этапы разработки программ
Авторские права – это интеллектуальные (неиму-щественные) права
на произведение (например, программу или базу данных).
Исключительное право —
это право использования результата интеллектуальной деятельности по своему усмотрению, т.е. право распоряжаться произведением как собственностью.
Рисунок 3 – Схема разделения интеллектуальных прав.
Слайд 25Финишные этапы разработки программ
Рисунок 4 – Регистрация программ для
ЭВМ и баз данных.
Слайд 26Финишные этапы разработки программ
Защита интеллектуальной собственности при использовании программ
Право на
использование чужой программы обычно оформляется в виде лицензионного договора (соглашения).
Исключительное
право на программу
Неисключительное право
Рисунок 5 – Процедура заключения лицензионного договора.
Слайд 27Выводы
В результате выполнения работы были сделаны следующие выводы:
представлены основные понятия
архитектуры программных систем;
проанализированы методики и подходы к программированию;
выделены этапы развития
средств разработки;
проведен обзор видов и методов тестирования программных систем;
определены финишные этапы разработки программных систем.
Слайд 28Список используемых источников
[1] Технология программирования: учебник / Г.С. Иванова. –
М.: КНОРУС, 2011. – 336 с.
[2] Стандартизация и разработка
программных систем: учебник / В.Н. Гусятников, А.И. Безруков. – М.: Финансы и статистика; ИНФРА-М 2010. – 288 с.
[3] Росстандарт [Электронный ресурс]. – Режим доступа: https://www.gost.ru/portal/gost/ (дата обращения: 10.11.18).