Этапы разработки ПО
1. Описание потребностей и их анализ
2. Дизайн программного обеспечения
3. Разработка
4. Проверка
5. Выпуск и внедрение продукта
6. Обслуживание продукта
Методы разработки программного обеспечения
• Структурное проектирование — метод ПО, в основе которой лежит представление программы в виде иерархической структуры блоков. Из трёх базовых управляющих структур: последовательность, ветвление, цикл. Так же образуют иерархию наследования.
• Объекто-орентированное — представление программы в виде совокупности объектов
• Абстракция — использование всех характеристик объекта
Разработка ПО с открытым и закрытым кодом
• Программный код в общем случае делается Общедоступным, скрывается только пароли и прочая информация.
• Разработки систем с закрытым исходным кодом конечному пользователю доступен лишь готовый к установке продукта.
Программы с открытым кодом:
1. 7zip — Архиватор.
2. Mysql — База данных.
3. Dolphin
Программы с закрытым кодом:
1. Origin — Игровая платформа/площадка
2. Skype — программа для связи по интернету.
3. Steam — Торговая площадка.
Переменные
- В ходе программирования обычно запоминать некоторое количество
данных. - Эти значения приходится держать в памяти этого обьявляется место в паяти. Для этого обьявляется место в памяти, которое используется для хранения данных и это обьявленное место называется перемменой.
- При обьявлении переменной, обьявляется и тип данных, которые будут храниться в этой переменой (тип переменной).
Типы данных
Простые типы
У переменной простого типа под ключевым словом скрывается одно значение (зачастую читаемое как число) и к нему есть прямой доступ. Наиболее известные простые типы это:
- целое число int, integr
- дробное число (real, single; double,
- символ char(..), varchar() sting char(1) «A»
- логическое значение bool, (true(1)), false(0))
В различных языках они могут немного отличатся.
Структурированные типы
- Под одним ключевым словом группируются несколько совместных значений, (координаты точки или имя и фамилия человека)
- В таком виде набор данных разом легче передавать.
- Исользовать или изменять данные внутри структуры приходится по одному.
Массивы
Это набор данных одинакового типа, у которых одно имя и которые отделяются друг от друга при помощи индекса.
- Получение значения переменной из массива при помощи порядкого номера
- Массивы могут быть одномерными (ряд, строка), двумернными (таблица, матрица), трёхмерными (куб) и т.д
Типы языков программирования
- Функциональные: Функциональное программирование — способ организации вычислений без состояния. Строго говоря, состояние у такой программы конечно есть, это — совокупность контекстов всех её функций.
- процедурные: Процедурное программирование — Программа, написанная на процедурном языке, представляет собой последовательность команд, определяющих алгоритм решения задачи. Основная идея процедурного программирования — использование памяти для хранения данных
- структурные: заключается в том, что структура программы должна отражать структуру решаемой задачи, чтобы алгоритм решения был ясно виден из исходного (ИЕАРАРХИЯ) текста. При этом логика алгоритма и программы должны использовать три основные структуры: последовательное выполнение, ветвление и повторение.
- обьекто-ориентированные языки В основе концепции объектно-ориентированного программирования лежит понятие объекта — некой сущности, которая объединяет в себе поля (данные) и методы (выполняемые объектом действия). они позволяют использовать преимущества объектно-ориентированного подхода не только на этапах проектирования и конструирования программных систем, но и на этапах их реализации, тестирования и сопровождения.
Данные — это обьекты.
Языки низкого уровня первого поколения (1954 -1958)
Языком программирования считается машинный код.
В случае машинного кода всё программирование происходило в двоичном коде и в связи с этим его чтение, и отладка были очень трудоёмкими.
- FORTRAN I Математические формулы
- ALGOL-58 Математические формулы
- Flowmatic Математические формулы
- IPL V Математические формулы
Языки низкого уровня Язык второго поколения (1959-1961)
Разработан символьный ассемблер, в котором пявилось понятие переменной. Основная отличительная особенность ориентирование на абстрактный компьютер с такой же системой команд.
Пример
- MOV AL 19,
- ADD AL 4,
- OUT 2
Написанная программа переводится из ассемблера в машинный код и после этого процессор может начать её выполнение. Трансляторы — специальные программы, образующие программный код с языка программирования в машинный код.
FORTRAN II — подпрограммы, раздельная компиляция
ALGOL-60 — Блочные структруры, типы данных
COBOL — Описание данных, работа с данными
Lisp — обработка списков, указателей сборка мусора
Языки третьего поколения (1962 — 1970)
Языки программирования высокого уровня
- Относительная простота
- независимость от конкретного компьютера
- возможность использования мощных синтаксическиъ конструкций
Простота языка позволяет писать небольшие программы и людям которые не являются профессиональными программистами.
Основная отличительная особенность языка третьего поколения
ориентирование на алгоритм (алгоритмические языки)
- FORTRAN, COBOL, BASIC, Pascal, C, C++ (обьектно — ориентированный С) Java (язык разработанный на основе C++), Visual Basic, Delphi, Python, С#.
Всего в мире существует около 200 популярных языков программирования третьего поколения
Языки четвертого поколения (1970 — …)
Создаются языки, предназначенные ждя реализации крупных проектов проблемно-ориентированные языки, оперирующие конкретными понятиями узкой области.
SQL, SGML, (HTML, XML), Prolog
Правда ряд языков, которые относят к четвертому поколению, не являются языками программирования как таковыми
(не полноценные языки програмирования)
-
SQL является яызком запросов к базам данных,
-
HTML является языком разметки гипертекста
Языки пятого поколения
CASE средства
Нет чёткого определения, по каким критериям определяются языки 5ых поколений.
- С его помощью компьютер может решить с определённую проблему без участия программиста.
- Программисту нужно будет только задать, какую проблему должен решить комьютер и условия, которые нужно достичь, чтобы решить её. И это без необходимости того, чтобы реализовать алгоритм или процедуру для её решения.
Интерпретируемые и компилируемые языки
- До того, как компьютер сможет выполнить программу, написанную на языке высокого уровня, её приходится <<переводить>> на понятный компьютеру язык, т.е машинный код.
- Процесс перевода называют трансляцией, а программу-переводчик — транслятором. Трансляторы делятся на два класса интерпритаторы и компиляторы.
- Компиляция заключается в том, что программа в машинном коде преобразует другую программу, написанную на языке программирования в машиный код. После этого полученный машинный код, программы выполняются.
-
Примером коплируемых языков можно назвать С, Fortran, Pascal, … .
- Интерпретация заключается в том, что программа в машином коде (интерпретатор) записывает файл программы во внутрению память и начинает её построчно выполнять.
-
Примером может служить старый язык BASIC, Java.
Обычный разговорный язык состоит из:
Символов, слов словосочетаний, предложений.
Алгоритмический язык содержит:
Алфавит,
элементарные конструкции,
выражения,
операторы.
Алгоритмический язык, образуют три его составляющие:
- Алфавит — фиксированный для данного языка набор символов (букв, цифр, специальных знаков и т.д) которые могут быть использованы при написании программы.
- Синтакс — правила построения из символов алфавита специальных конструкций, с помощью которых составляется алгоритм.
- Семантика — система правила толкования конструкций языка.
Таким образом, программа составляется с помощью соединения символов алфавита в соответствии с синатксическим правилами и с учетом правил семантики.
Алгоритм
Это точное и понятное указание исполнителю совершить определённую последовательность действий, направленных на достижение указаной цели, или решение поставленной задачи.
Исполнители
Алгоритмов
- Человек
- Робот
- Компьютер
Исполнитель выполняет алгоритм формально
Указание выполнить конкретное действие называется командой.
Совокупность всех команд, которые могут быть выполнены некоторым исполнителем называется системой
Свойства алгоритмов
- Дискретность.
- Понятность
(Определённность). - Однозначность(детерминированность).
- Массовость
- Результативность(конечность).
- Правильность.
Способы описания
- Словестно-пошаговый
- Графический блок-схема
- Алгоритмический язык или программа
Виды алгоритмов
- Линейный — все действие выполняются в строгой последовательности (приготовление пирога)
- Разветвляющийся — действия выполняются в зависимости от выполнения или не выполнения условия (переход улицы по светофору)
- Циклический — содержит повторяющиеся действия (колоть дрова)
Блок-схемы
- Блок «Start»
- Блок «Input»
- Блок «Присваивания»