Скачать презентацию ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ ТЕМА 1 СИСТЕМЫ ПРОГРАММИРОВАНИЯ 1 Скачать презентацию ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ ТЕМА 1 СИСТЕМЫ ПРОГРАММИРОВАНИЯ 1

Общий курс информатики_18.ppt

  • Количество слайдов: 35

ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ ТЕМА 1. СИСТЕМЫ ПРОГРАММИРОВАНИЯ 1 ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ ТЕМА 1. СИСТЕМЫ ПРОГРАММИРОВАНИЯ 1

ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ Технологией программирования называют совокупность методов и средств, используемых в процессе разработки программного ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ Технологией программирования называют совокупность методов и средств, используемых в процессе разработки программного обеспечения: Указание последовательности выполнения технологических операций; Перечисление условий, при которых выполняется та или иная операция; Описание самих операций.

ОСНОВНЫЕ ЭЛЕМЕНТЫ СИСТЕМ ПРОГРАММИРОВАНИЯ Система программирования — это среда для Система программирования разработки новых ОСНОВНЫЕ ЭЛЕМЕНТЫ СИСТЕМ ПРОГРАММИРОВАНИЯ Система программирования — это среда для Система программирования разработки новых программ на конкретном языке программирования. • Текстовый редактор • Компилятор или интерпретатор • Библиотеки стандартных функций • Редактор связей (сборщик) Исполняемый код – это законченная программа, Исполняемый код которую можно запустить на любом компьютере, где установлена ОС для которой эта программа создавалась. Как правило, итоговый файл имеет расширение. exe 3

ИНТЕГРИРОВАННАЯ СРЕДА ПРОГРАММИРОВАНИЯ Интегрированная среда программирования (англ. IDE, Integrated development environment) — система программных ИНТЕГРИРОВАННАЯ СРЕДА ПРОГРАММИРОВАНИЯ Интегрированная среда программирования (англ. IDE, Integrated development environment) — система программных средств, используемая для разработки программного обеспечения. • Специализированный текстовый редактор • Компилятор или интерпретатор • Библиотеки стандартных функций • Редактор связей (сборщик) • Отладчик 4

ОСНОВНЫЕ СИСТЕМЫ ПРОГРАММИРОВАНИЯ • Basic (разработан в 1963 году Томасом Куртом и Basic Джоном ОСНОВНЫЕ СИСТЕМЫ ПРОГРАММИРОВАНИЯ • Basic (разработан в 1963 году Томасом Куртом и Basic Джоном Кемени): Microsoft Visual Basic; • Pascal (разработан в 1968 -69 годах Никлаусом Pascal Виртом): Borland Delphi; • C++ (разработан в начале 1980 -х годов Бьёрном ++ Страуструпом): Microsoft Visual C++; • Java (разработан в 1995 году компанией Sun Java Microsystems): Borland JBuilder; • C# (разработан в 1998— 2001 годах компанией C# Microsoft): Microsoft Visual Studio . NET, Borland C#Builder. 6

ПРИМЕРЫ ПРОГРАММ Программа на Бейсике INPUT ПРИМЕРЫ ПРОГРАММ Программа на Бейсике INPUT "N = "; N : DIM A(N) FOR I = 1 TO N PRINT "A("; I; ") ="; INPUT A(I) NEXT I SUM = 0 FOR I = 1 TO N SUM = SUM + A(I) NEXT I PRINT "Сумма ="; SUM END Программа на Cи # include # include void main() { float a[100], sum; int i, n; clrscr(); printf(“n=“); scanf(“%d”, &n); for (i = 1; i <= n; i++) { printf("a[%d]=", i); scanf("%f", &a[i]); } sum=0; for (i = 1; i <= n; i++) sum = sum + a[i]; printf(“Сумма = % f n”, sum); } 7

ТЕМА 2. ЭТАПЫ РЕШЕНИЯ ЗАДАЧ НА КОМПЬЮТЕРАХ 8 ТЕМА 2. ЭТАПЫ РЕШЕНИЯ ЗАДАЧ НА КОМПЬЮТЕРАХ 8

ОСНОВНЫЕ ЭТАПЫ СОЗДАНИЯ ПРОГРАММНЫХ ПРОДУКТОВ 1. Постановка задачи 2. Этап формализации: замена реального объекта ОСНОВНЫЕ ЭТАПЫ СОЗДАНИЯ ПРОГРАММНЫХ ПРОДУКТОВ 1. Постановка задачи 2. Этап формализации: замена реального объекта или процесса его формальным описанием построение информационной модели задачи: информационной модели задачи вербальной, графической, табличной, математической, формально-логической. Уровни информационных моделей: • • • концептуальная модель; логическая; математическая. 9

ОСНОВНЫЕ ЭТАПЫ СОЗДАНИЯ ПРОГРАММНЫХ ПРОДУКТОВ 3. Разработка алгоритма (проектирование): выбор метода решения задачи; выбор ОСНОВНЫЕ ЭТАПЫ СОЗДАНИЯ ПРОГРАММНЫХ ПРОДУКТОВ 3. Разработка алгоритма (проектирование): выбор метода решения задачи; выбор формы записи алгоритма; выбор тестов и метода тестирования; проектирование алгоритма. 4. Программирование (кодирование): выбор языка программирования; уточнение способов организации данных; запись алгоритма на языке программирования. 5. Отладка (1) и Тестирование (2) программы: синтаксическая отладка; отладка семантики и логической структуры; тестовые расчеты и анализ результатов тестирования; совершенствование программы. 10

ОСНОВНЫЕ ЭТАПЫ СОЗДАНИЯ ПРОГРАММНЫХ ПРОДУКТОВ 6. Анализ и документирование результатов решения задачи 7. Сопровождение ОСНОВНЫЕ ЭТАПЫ СОЗДАНИЯ ПРОГРАММНЫХ ПРОДУКТОВ 6. Анализ и документирование результатов решения задачи 7. Сопровождение программы: её доработка для решения конкретных задач, составление технической документации к решенной задаче, к математической модели, к алгоритму, к использованию … (ЕСПД) 11

ОТЛАДКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Отладка — этап разработки компьютерной программы, Отладка на котором обнаруживают, локализуют ОТЛАДКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Отладка — этап разработки компьютерной программы, Отладка на котором обнаруживают, локализуют и устраняют ошибки. Технологии отладки: • Использование отладчиков. • Вывод текущего состояния программы с помощью расположенных в критических точках программы операторов вывода — на экран, принтер, или в файл. Вывод отладочных сведений в файл называется журналированием. 12

ТЕСТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ - процесс выявления ошибок в ПО. Классификация видов тестирования По объекту ТЕСТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ - процесс выявления ошибок в ПО. Классификация видов тестирования По объекту тестирования: • Функциональное тестирование (functional testing) • Нагрузочное тестирование § Тестирование роизводительности perfomance/stress п ( testing) § Тестирование стабильности (stability/load testing) • Тестирование опыта пользователя (usability testing) • Тестирование интерфейса пользователя (UI testing) • Тестирование безопасности (security testing) • Тестирование совместимости (compartability testing) 13

ТЕСТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Классификация видов тестирования По знанию системы: • Тестирование чёрного ящика (black ТЕСТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Классификация видов тестирования По знанию системы: • Тестирование чёрного ящика (black box) • Тестирование белого ящика (white box) • Тестирование серого ящика (gray box) По версиям тестирования: • α-тестирование (alpha testing) § Тестирование приёмке (smoke testing) § Тестирование новой функциональности(new feature testing) § Тестирование при сдаче (acceptance testing) • β-тестирование (beta testing) 14

ТЕМА 3. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ 15 ТЕМА 3. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ 15

АЛГОРИТМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ 16 АЛГОРИТМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ 16

ПОНЯТИЕ ПОДПРОГРАММЫ Структурное программирование — методология Структурное программирование разработки программного обеспечения, в основе которой ПОНЯТИЕ ПОДПРОГРАММЫ Структурное программирование — методология Структурное программирование разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Процедура (англ. subprogram) — набор операторов, роцедура выполняющих нужное действие и не зависящих от других частей исходного кода. Возможность применения подпрограмм относит язык программирования к классу процедурных языков. 17

НИСХОДЯЩЕЕ ПРОЕКТИРОВАНИЕ Начало Ввод N оценок I=Номер MAX Удалить MAX Оценки(I)=0 Удалить MIN Расчет НИСХОДЯЩЕЕ ПРОЕКТИРОВАНИЕ Начало Ввод N оценок I=Номер MAX Удалить MAX Оценки(I)=0 Удалить MIN Расчет среднего Вывод результата Конец J=Номер MIN Оценки(J)=0 S=Сумма оценок S=S/(N-2) Наличие процедур позволяет вести проектирование и разработку приложения сверху – вниз. 18

ПРОЦЕДУРЫ И ФУНКЦИИ Функции Бейсик Паскаль Си++ FUNCTION имя (список_параметров) Заголовок Тип возвращаемого функции ПРОЦЕДУРЫ И ФУНКЦИИ Функции Бейсик Паскаль Си++ FUNCTION имя (список_параметров) Заголовок Тип возвращаемого функции значения определяется специальным символом function имя (список_параметров): тип_функции; тип_функции имя (список_параметров) после имени функции begin Последовательность последовательность операторов end; Тело { }; нет Завершение END FUNCTION 19

ПРОЦЕДУРЫ И ФУНКЦИИ Подпрогра ммы Бейсик Паскаль Си++ Заголовок SUB имя procedure имя Void ПРОЦЕДУРЫ И ФУНКЦИИ Подпрогра ммы Бейсик Паскаль Си++ Заголовок SUB имя procedure имя Void имя процедуры (список_параметров); (список_параметров) begin Последовательность последовательность операторов end; Тело { }; нет Завершение END SUB 20

ПРОЦЕДУРЫ И ФУНКЦИИ Бейсик Паскаль function SQR(X: integer) : integer; FUNCTION SQR% (X AS ПРОЦЕДУРЫ И ФУНКЦИИ Бейсик Паскаль function SQR(X: integer) : integer; FUNCTION SQR% (X AS INTEGER) begin SQR% = X*X SQR : = X*X END FUNCTION end; Си++ int SQR(int x) { return x*x; }; int а, у; а = 5; у = SQR(a); 21

МОДУЛЬНОЕ (ВОСХОДЯЩЕЕ) ПРОЕКТИРОВАНИЕ Модульное программирование предполагает программирование выделение групп подпрограмм, использующих одни и те МОДУЛЬНОЕ (ВОСХОДЯЩЕЕ) ПРОЕКТИРОВАНИЕ Модульное программирование предполагает программирование выделение групп подпрограмм, использующих одни и те же глобальные данные в отдельно компилируемые модули (библиотеки подпрограмм), например, модуль модули графических ресурсов, модуль подпрограмм вывода на принтер. Связи между модулями при использовании данной технологии осуществляются через специальный интерфейс, в то время как доступ к реализации модуля интерфейс, (телам подпрограмм и некоторым «внутренним» переменным) запрещен. 22

СОБЫТИЙНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ События могут быть: • пользовательскими • системными • программными 23 СОБЫТИЙНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ События могут быть: • пользовательскими • системными • программными 23

ТЕМА 4. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ 24 ТЕМА 4. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ 24

ООП – НОВЫЙ ПОДХОД К ПРОГРАММИРОВАНИЮ По мере развития ВТ требовалось написание все более ООП – НОВЫЙ ПОДХОД К ПРОГРАММИРОВАНИЮ По мере развития ВТ требовалось написание все более сложных и длинных программ. По мере увеличения сложности и длины программ, требовался новый подход к их написанию, чтобы программа оставалась читаемой, управляемой, поддерживаемой. ООП позволяет писать объемные и сложные программы.

ИДЕЯ ООП В ООП проблема раскладывается на связанные между собой задачи. Каждая задача становиться ИДЕЯ ООП В ООП проблема раскладывается на связанные между собой задачи. Каждая задача становиться самостоятельным объектом, содержащим свои собственные коды и данные. Каждый объект может программироваться самостоятельно, с учетом взаимодействия с другими объектами программы.

ПОНЯТИЕ ОБЪЕКТА Объект — совокупность Объект свойств (структур данных, характерных для этого объекта), методов ПОНЯТИЕ ОБЪЕКТА Объект — совокупность Объект свойств (структур данных, характерных для этого объекта), методов их обработки (подпрограмм изменения свойств) и событий, на которые данный объект может реагировать и которые приводят к изменению свойств объекта Схема организации объекта 27

ИНКАПСУЛЯЦИЯ (ENCAPSULATION) Объединение данных и методов в одном типе, манипулирующего этими данными; Защита объединенных ИНКАПСУЛЯЦИЯ (ENCAPSULATION) Объединение данных и методов в одном типе, манипулирующего этими данными; Защита объединенных данных и кода от внешнего вмешательства и неправильного использования. Модель «черного ящика» - все необходимые данные и коды находятся внутри него, мы не знаем, что в нем находится, знаем только как он функционирует и пользуемся этой функциональностью.

ИНКАПСУЛЯЦИЯ (ENCAPSULATION) Объект – объединенные и защищенные Объект по принципу инкапсуляции коды и данные. ИНКАПСУЛЯЦИЯ (ENCAPSULATION) Объект – объединенные и защищенные Объект по принципу инкапсуляции коды и данные. Коды и данные объекта могут быть: закрытыми – private - (доступны только самому объекту) открытыми –public - (доступны всем желающим – составляют интерфейс объекта)

ПОЛИМОРФИЗМ (POLYMORPHISM) Использование одного и того же имени для обозначения схожих по смыслу, но ПОЛИМОРФИЗМ (POLYMORPHISM) Использование одного и того же имени для обозначения схожих по смыслу, но разных по способу реализации задач. Пример: В С для нахождения модуля числа вызывается abs() для целого, labs() для длинного целого, fabs() для вещественного – нет полиморфизма. В С++ вызывается abs() для целых, длинных целых и вещественных чисел – полиморфизм – задачи схожие по смыслу, но разные в реализации. Задание единого класса действий. Выбор конкретного действия возлагается на компилятор.

НАСЛЕДОВАНИЕ (INHERITANCE) Приобретение одним объектом свойств другого (-их) объектов. Объект может наследовать основные свойства НАСЛЕДОВАНИЕ (INHERITANCE) Приобретение одним объектом свойств другого (-их) объектов. Объект может наследовать основные свойства другого объекта и добавлять к ним черты, характерные только для него. Наследование поддерживает концепцию иерархии классов. Например, конкретная Например, морковь – объект класса моркови, который является частью класса (наследует свойства) корнеплодов овощей растений и т. д.

НАСЛЕДОВАНИЕ Позволяет использовать существующие классы, добавляя в них новые свойства Внутри одной программы Повторное НАСЛЕДОВАНИЕ Позволяет использовать существующие классы, добавляя в них новые свойства Внутри одной программы Повторное использование кода

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ Взаимодействие программных объектов в системе объектно-ориентированного программирования осуществляется путем передачи сообщений Объект ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ Взаимодействие программных объектов в системе объектно-ориентированного программирования осуществляется путем передачи сообщений Объект 1 Объект 2 Объект n Объект 3 33

ПОНЯТИЕ КЛАССА Паскаль: Си++: class TMy. Class Item 1: integer; { Item 2: string; ПОНЯТИЕ КЛАССА Паскаль: Си++: class TMy. Class Item 1: integer; { Item 2: string; int Item 1; function Get. Sum(n: integer): integer; int Item 2; procedure Initialize; int Get. Sum(int n); end; void Initialize (); }; 34

ПОНЯТИЕ КЛАССА Паскаль: Си++: procedure TMy. Class. Initialize; void TMy. Class: : Initialize() begin ПОНЯТИЕ КЛАССА Паскаль: Си++: procedure TMy. Class. Initialize; void TMy. Class: : Initialize() begin { Item 1: =1; Item 1=1; Item 2: =0; Item 2=0; end; }; На основе класса описывать конкретные объекты (экземпляры класса): Паскаль: var С 1, С 2: TMy. Class; Си++: TMy. Class C 1, С 2; Доступ к свойствам объектов: С 1. Item 1: =5; С 2. Initialize; X: =C 1. Get. Sum(21); 35