Разработка программного обеспечения
Этапы разработки ПО:
- Описание потребностей и их анализ.
- Дизайн программного продукта.
- Разработка.
- Проверка.
- Выпуск и внедрение продукта.
- Обслуживание продукта.
Модели жизненного цикла ПО:
- Waterfall (каскадная модель).
- Интерационная, спиральная и инкрементная модели.
- Спиральная и инкрементная модели.
- Agile.
Проверка/тестирование:
- Белый ящик – проверка кода, тестирование как внутренней структуры, так и дизайна.
- Черный ящик – поведенческое тестирование, при котором специалист не знает наверняка, что за продукт он тестирует.
- Серый ящик – частичная осведомленность о внутренних процессах, комбинация тестирования белого и черного ящиков.
Типы ошибок при тестировании:
- Логические – связаны с неправильным применением алгоритмических конструкций.
- Синтаксические – нарушение синтаксических правил языка программирования.
- Семантические – нарушение семантических правил написания программы.
По объекту тестирования:
- Функциональное тестирование.
- Тестирование производительности.
- Нагрузочное тестирование.
- Стресс-тестирование.
- Тестирование стабильности.
- Конфигурационное тестирование.
- Юзабилити-тестирование.
- Тестирование интерфейса пользователя.
- Тестирование безопасности.
- Тестирование локализации.
- Тестирование совместимости.
- Тестирование чёрного ящика.
- Тестирование белого ящика.
- Тестирование серого ящика.
Классификация по степени автоматизации:
- Ручное тестирование
- Автоматизированное тестирование
- Полуавтоматизированное тестирование
Классификация по степени изолированности компонентов:
- Модульное тестирование
- Интеграционное тестирование
- Системное тестирование
Классификация по времени проведения тестирования:
- Альфа-тестирование
- Дымовое тестирование
Тестирование новой функции:
- Подтверждающее тестирование
- Регрессионное тестирование
- Приёмочное тестирование
- Бета-тестирование
Классификация по признаку позитивности сценариев:
- Позитивное тестирование
- Негативное тестирование
Классификация по степени подготовленности к тестированию:
- Тестирование по документации (формальное тестирование)
- Интуитивное тестирование (ad hoc testing)
Классификация ошибок по этапу обработки программы:
- Ошибки компиляции
- Ошибки компоновки
- Ошибки выполнения
Основные модели программирования:
- Императивное программирование
- Декларативное программирование
- Структурное программирование
- Функциональное программирование
- Логическое программирование
- Объектно-ориентированное программирование
- Компонентно-ориентированное программирование
- Прототипно-ориентированное программирование
Самые популярные языки:
- JavaScript, а также его библиотеки и фреймворки (React, Angular JS, Vue JS, Node JS, JQuery) — прототипно-ориентированное программирование, применяемое для разработки клиентской части веб-сайтов.
- Java — объектно-ориентированное программирование (ООП), применяется для разработки десктопных и мобильных приложений под Android.
- Python — процедурное программирование и ООП. Применяется как в веб, так и десктопной разработке.
- PHP (для серверной веб-разработки) — процедурное и ООП.
- C# — ООП, для программирования игр, софта и веб-приложений.
- Swift — программирование для iOS.
- Objective-C — программирование для iOS и macOS.
Разработка ПО с открытым и закрытым кодом:
- В случае разработки ПО с открытым исходным кодом программный код в общем случае делается общедоступным, скрываются только пароли и прочая подобная информация.
- В разработке систем с закрытым исходным кодом конечному пользователю доступен лишь готовый к установке продукт.
Алгоритм:
Алгоритм — это точное и понятное предписание (указание) исполнителю совершить определенную последовательность действий, направленных на достижение указанной цели или решение поставленной задачи.
Свойства алгоритмов:
- Дискретность — возможность разбиения алгоритма.
- Понятность (определенность) — за конечное число шагов либо должен быть получен результат, либо доказано его отсутствие.
- Однозначность (детерминированность) — строгое выполнение некоторого правила, инструкции.
- Массовость — возможность получения результата при различных исходных данных для некоторого класса сходных задач.
Виды алгоритмов:
- Линейный алгоритм: Все действия выполняются в строгой последовательности. Пример: приготовление пирога, где каждый шаг (например, подготовка ингредиентов, смешивание, выпекание) выполняется последовательно без пропусков.
- Разветвляющийся алгоритм: Действия выполняются в зависимости от выполнения или не выполнения определенного условия. Например, переход через улицу по светофору: если светофор горит зеленым, можно переходить, если красным – нужно ждать.
- Циклический алгоритм: Содержит повторяющиеся действия, которые выполняются определенное количество раз или до выполнения определенного условия. Пример: колоть дрова, где действие удара по дрову повторяется до тех пор, пока не достигнут определенный объем раздробленных дров или пока не кончатся дрова.
Boston Dynamics
создатель Марк Рэйберт
основан в 1992 г
первый робот BigDog (военный)