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

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

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

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

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

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

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

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

>ОСНОВНЫЕ СИСТЕМЫ ПРОГРАММИРОВАНИЯ  • Basic (разработан в 1963 году Томасом Куртом и ОСНОВНЫЕ СИСТЕМЫ ПРОГРАММИРОВАНИЯ • 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

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

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

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

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

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

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

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

> ТЕСТИРОВАНИЕ ПРОГРАММНОГО   ОБЕСПЕЧЕНИЯ   Классификация видов тестирования По знанию системы: ТЕСТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Классификация видов тестирования По знанию системы: • Тестирование чёрного ящика (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=Номер оценок  НИСХОДЯЩЕЕ ПРОЕКТИРОВАНИЕ Начало Ввод N I=Номер оценок MAX Удалить J=Номер Оценки(I)=0 MAX MIN Удалить S=Сумма MIN Оценки(J)=0 оценок Расчет S=S/(N-2) среднего Вывод результата Наличие процедур позволяет вести проектирование и разработку Конец приложения сверху – вниз. 18

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

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

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

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

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

>    ТЕМА 4. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ   ПРОГРАММИРОВАНИЕ    ТЕМА 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 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. ПОНЯТИЕ КЛАССА Паскаль: Си++: 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