эстапы разработкти ПО
- Описание потребностей и их анализ
- Дизайн программного продукта
- Разработка
- Проверка
- Выпуск и внедрение продукта
- Опслуживание продукта
Модели жизненного цикла По
- Waterfall (каскадная модель)
- Инерационная, спиральная и инкреметная модел
- Спиральная и инкрементная модел
- Agile
Проверка тестирование
- Белый ящик — метод тестирования программного обеспечения, который предполагает, что внутренняя структура/устройство/реализация системы известны тестировщику
- Чёрный ящик — Главным отличием двух техник, как уже было замечено, является наличие доступа к коду
- серый ящик — Главным отличием двух техник, как уже было замечено, является наличие доступа к коду
Типы ошибок при тестировании
- Логические
- Синтаксические
- Семанческие
Основные Модели программирования
- Императивное программирование
- Декларативное программирование
- Структурное программирование
- Функциональное программирование
- Логическое программирование
- Объектно-ориентированное программирование
- Компонентно-ориентированное программирование
- Прототипно-ориентированное программирование
Императивное программирование:
это парадигма, основанная на составлении алгоритма действий (инструкций/команд), которые изменяют состояние (информацию/данные/память) программы. Первыми языками программирования, основанными на таком подходе, были машинные коды и ассемблеры.
Фактически, программа на этих языках — это код, который выполняется компьютером сразу, без предварительной компиляции.
Декларативное программирование:
это парадигма программирования, в которой задаётся спецификация решения задачи: описывается, что представляет собой проблема и ожидаемый результат, но без описания способа достижения этого результата.
При создании HTML мы с помощью тегов описываем, какую хотим получить страничку в браузере, а не то, как нарисовать на экране заголовок статьи, оглавление и текст.
В SQL, если нам нужно посчитать количество сотрудников с фамилией «Сидоров», мы напишем SELECT count(*) FROM employee WHERE last_name = ‘Сидоров’;.
Структурное программирование:
делает текст программы более понятным – алгоритм решения ясно
виден из исходного текста.
Согласно принципу модульности программа разбивается на отдельные смысловые части (модули).
Модуль – это функционально законченная часть программы. Например, модуль вычисления
определителя матрицы; модуль нахождения суммы элементов ряда.
Каждый модуль программируется отдельно, а затем модули объединяются в единую программу.
Модуль на языке программирования – это функция или процедура.
Использование при разработке модуля композиции трех базовых структур
- Линейной
- Ветвления
- Циклической
Структурное программирование называют программированием без GOTO.
Функциональное программирование
Смысл в том, что мы задаём не последовательность нужных нам команд, а описываем взаимодействие между ними и подпрограммами.
В нём весь код — это правила работы с данными. Вы просто задаёте нужные правила, а код сам разбирается, как их применять.
Команды можно собирать в подпрограммы, но их последовательность не имеет значения. Нет разницы, в каком порядке вы напишете подпрограммы — это же просто правила, а правила применяются тогда, когда нужно, а не когда про них сказали.
Логическое программирование
- ´парадигма программирования, а также раздел дискретной математики изучающий методы и возможности этой парадигмы, основанная на выводе новых фактов из данных фактов согласно заданным логическим правилам.
- ´Логическое программирование возникло как упрощение функционального программирования для математиков и лингвистов, решающих задачи символьной обработки.
Объектно-ориентированное программирование
стиль объектно-ориентированного программирования, при котором отсутствует понятие класса, а наследование производится путём клонирования существующего экземпляра объекта — прототипа. Каноническим примером прототип-ориентированного языка является язык Self.
Самые популярные языки
- ´JavaScript, а также его библиотеки и фреймворки (React, Angular JS, Vue JS, Node JS, JQuery) — прототипно-ориентированное программирование, применяемое для разработки клиентской части вэб-сайтов;
- ´Java — объектно-ориентированное программирование (ООП), применяется для разработки десктопных и мобильных приложений под Андроид;
- ´Python — процедурное программирование и ООП. Применяется как в вэб, так и десктопной разработке;
- ´PHP (для серверной веб разработки) — процедурное и ООП;
- ´С# — ООП, для программирования игр, софта и вэб-приложений;
- ´Swift — программирование для IOS;
- ´Obective-C — программирование для IOS и MAC OS.
- Go (Golang) — это компилируемый многопоточный язык программирования от Google с открытым исходным кодом. Считается языком общего назначения, но основное применение — разработка веб-сервисов и клиент-серверных приложений.
Алгоритм
это точное и понятное предписание (указание) исполнителю совершить определенную последовательность действий, направленных на достижение указанной цели или решение поставленной задачи.
Указание выполнить конкретное действие называется командой.
Совокупность всех команд, которые могут быть выполнены некоторым исполнителем называется системой команд.
СВОЙСТВА АЛГОРИТМОВ.
1. Дискретность — возможностью разбиения алгоритма
2. Понятность (определенность)— за конечное число шагов либо должен быть получен результат, либо доказано его отсутствие;
3. Однозначность (детерминированность)— строгое выполнение некоторого правила, инструкции;
4. Массовость — возможность получения результата при
различных исходных данных для некоторого класса сходных
задач;
5. Результативность (конечность)— обязательным получением некоторого результата (числа, таблицы, текста, звука, изображения и т. д.) или сигнала о том, что данный алгоритм неприменим для
решения поставленной задачи;
6. Правильность
Виды алгоритмов
- Линейный – все действия выполняются в строгой последовательности (приготовление пирога)
- Разветвляющийся – действия выполняются в зависимости от выполнения или не выполнения условия (переход улицы по светофору)
- Циклический – содержит повторяющиеся действия (колоть дрова)
Условные графические обозначения символов




