Этапы разработки ПО

  • Описание потребностей и их анализ
  • Дизайн программного продукта
  • Разработка
  • Проверка
  • Выпуск и внедрение продукта
  • Обслуживание продукта

Модели жизненного цикла ПО

  • Waterfall ( каскадная модель)
  • Итерационная, спиральная и инкрементная модели
  • Спиральная и инкрементная модели
  • Agile

Проверка / Тестирование

  • Белый ящик – Тестирование, которое учитывает внутренние механизмы системы или компонента.
  • Черный Ящик – Не используется знание о внутреннем устройстве (Коде) / Beta test
  • Серый Ящик – Beta test c возможностью увидеть определённые коды

Типы ошибок при тестировании

  • Логические – Её можно найти смотря на результат, Правильно написаный код (Перепутал знак меньше и Больше)
  • Синтаксические – Ошибка (не та буква, не та цифра)
  • Семантические – Например – Должно быть подключение к базе данных а сервер рухнул. (Должны быть заглушки чтобы сервер не вылетел)

Основные модели программирования

  • Императивое программирование – Это код которую программа сразу начинает выполнять без начальной компиляции / низкий уровень языка (асемблер)
  • Декларативное программирование – это парадигма программирования, в которой задаётся спецификация решения задачи: описывается, что представляет собой проблема и ожидаемый результат, но без описания способа достижения этого результата.
  • Структурное программирование – делает текст программы более понятным – алгоритм решения ясно
    виден из исходного текста. / Согласно принципу модульности программа разбивается на отдельные смысловые части (модули). / Каждый модуль программируется отдельно, а затем модули объединяются в единую программу.
  • Функциональное программирование – Смысл в том, что мы задаём не последовательность нужных нам команд, а описываем взаимодействие между ними и подпрограммами. /В нём весь код — это правила работы с данными. Вы просто задаёте нужные правила, а код сам разбирается, как их применять.
  • Логическое программирование – Основанная на выводе новых фактов из данных фактов согласно заданным логическим правилам. / Возникло как упрощение функционального программирования для математиков и лингвистов, решающих задачи символьной обработки.
  • Объектно-ориентированное программирование – Суть ООП заключается в том, чтобы представить программу в виде объектов, которые каким-то образом взаимодействуют друг с другом. / Объект — это экземпляр какого-то класса. / Класс — это шаблон, в котором описаны все свойства будущего объекта и его методы.
  • Компонентно-оринтированное программирование – её основная идея — это складывание воедино компонентов, чем-то похожих на кусочки Lego.
  • Прототипно-оринтированное программирование – в котором классы определены неявно, а производные классы получаются добавлением свойств и методов в экземпляр другого класса или, значительно реже, к пустому объекту.

Самые популярные языки

  • Javascript – а также его библиотеки и фреймворки (React, Angular JS, Vue JS, Node JS, JQuery) – прототипно-ориентированное программирование, применяемое для разработки клиентской части вэб-сайтов;
  • Java – объектно-ориентированное программирование (ООП), применяется для разработки десктопных и мобильных приложений под Андроид
  • Python – процедурное программирование и ООП. Применяется как в вэб, так и десктопной разработке;
  • PHP – (для серверной веб разработки) – процедурное и ООП;
  • C# – ООП, для программирования игр, софта и вэб-приложений
  • Swift – программирование для IOS
  • Obective C – программирование для IOS и MAC OS.

Алгоритм

Это точное и понятное предписание (указание) исполнителю совершить определенную последовательность действий, направленных на достижение указанной цели или решение поставленной задачи.

Указание выполнить конкретное действие называется Командой.

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

Свойства Алгоритмов

  • Дискретность – возможностью разбиения алгоритма
  • Понятность (определенность)– за конечное число шагов либо должен быть получен результат, либо доказано его отсутствие
  • Однозначность (детерминированность)строгое выполнение некоторого правила, инструкции
  • Массовость – возможность получения результата при различных исходных данных для некоторого класса сходных задач
  • Результативность (конечность)– обязательным получением некоторого результата (числа, таблицы, текста, звука, изображения и т. д.) или сигнала о том, что данный алгоритм неприменим для решения поставленной задачи
  • Правильность

Виды Алгоритмов

  • Линейный – все действия выполняются в строгой последовательности (приготовление пирога)
  • Разветвляющийся – действия выполняются в зависимости от выполнения или не выполнения условия (переход улицы по светофору)
  • Циклический – содержит повторяющиеся действия (колоть дрова)

Условные графические обозначения символов

Блок начала или Окончания выполнения алгоритма

Блоки Ввода – Вывода

Блок присваивания / Расчета

Условия и действия

Koosta plokkskeem