Разработка программного обеспечения
Этапы:
- Описание потребностей и их анализ
- Дизайн программного продукта
- Разработка
- Проверка
- Выпуск и внедрение продукта
- Обслуживание продукта
Модели жизненного цикла ПО:
- Waterfall (каскадная модель)
- Интерационная, спиральная и инкрементная модели
- Agile
Проверка/тестирование
- Белый ящик- люди получают готовый продукт/ модули, и люди тестируют
- Черный ящик – Тоже самое, что и бета тест готового продукта
- Серый ящик – это метод тестирования программного продукта или приложения с частичным знанием его внутреннего устройства.
Типы ошибок при тестировании:
- Логические
- Синтаксические
- Семантические
Основные модели программирования
- Императивное программирование – разработчик указывает конкретные шаги, которые должен выполнить компьютер для достижения результата.
- Декларативное программирование – это парадигма программирования, в которой задаётся ожидаемый результат, а не способ его получения.
- Структурное программирование – это методологический подход к написанию программного кода, который представляет программу в виде структуры из набора блоков, расположенных в иерархической последовательности. (Pascal)
- Функциональное программирование – команды можно собирать в подпрограммы, но их последовательность не имеет значения.
- Логическое программирование – парадигма программирования, основанная на математической логике — программы в ней задаются в форме логических утверждений и правил вывода.
- Объектно-ориентрированное программирование – это парадигма программирования, набор правил и критериев, по которым пишут код. (C++)
- Компонентно-ориентированное программирование – соединение составляющих в единое целое, для того, чтобы это была рабочая программа. (C#)
- Прототипно-ориентированное программирование – объектно-ориентированного программирования, в отличии от объектно-ориентированного тут классы не наследуются, копируются.
Самые популярные языки:
- JavaScript
- Java
- Python
- PHP
- C#
- Swift
- Obective-C
Алгоритм– это точное и понятное предписание (указание) исполнителю совершить определенную последовательность действий, направленных на достижение указанной цели или решение поставленной задачи.
Свойства алгоритмов:
- Дискретность – возможность разбиения алгоритма
- Понятность (определенность) – за конечное число шагов либо должен быть получен результат, либо доказано его отсутствие
- Массовость – возможность получения результата при различных исходных данных для некоторого класса сходных задач
- Однозначность (детерминированность) – строгое выполнение некоторого правила, инструкции
- Результативность (конечность) – обязательным получением некоторого результата (числа, таблицы, текста, звука, изображения и т.д.) или сигнала о том, что данный алгоритм неприменим для решения поставленной задач.
Виды алгоритмов:
- Линейный – все действия выполняются в строгой последовательности (приготовление пирога)
- Разветвляющийся – действия выполняются в зависимости от выполнения или не выполнения условия (переход улицы по светофору).
- Циклический – содержит повторяющиеся действия (колоть дрова).
Условия графические обозначения символов
Название блока | Обозначение | Назначение блока |
Терминатор | Действие | Начало, завершение программы или подпрограммы |
Процесс | Действие | Обработка данных (вычисления пересылки и т.д.) |
Данные | Данные | Операции ввода-вывода |
Решение | Условие | Ветвления, выбор, интерационные и поисковые циклы |
Vnreal Script