ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ ТЕМА 1.
Общий курс информатики_18.ppt
- Количество слайдов: 34
ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ ТЕМА 1. СИСТЕМЫ ПРОГРАММИРОВАНИЯ 1
ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ Технологией программирования называют совокупность методов и средств, используемых в процессе разработки программного обеспечения: Указание последовательности выполнения технологических операций; Перечисление условий, при которых выполняется та или иная операция; Описание самих операций.
ОСНОВНЫЕ ЭЛЕМЕНТЫ СИСТЕМ ПРОГРАММИРОВАНИЯ Система программирования — это среда для Система программирования разработки новых программ на конкретном языке программирования. • Текстовый редактор • Компилятор или интерпретатор • Библиотеки стандартных функций • Редактор связей (сборщик) Исполняемый код – это законченная программа, Исполняемый код которую можно запустить на любом компьютере, где установлена ОС для которой эта программа создавалась. Как правило, итоговый файл имеет расширение. exe 3
ИНТЕГРИРОВАННАЯ СРЕДА ПРОГРАММИРОВАНИЯ Интегрированная среда программирования (англ. IDE, Integrated development environment) — система программных средств, используемая для разработки программного обеспечения. • Специализированный текстовый редактор • Компилятор или интерпретатор • Библиотеки стандартных функций • Редактор связей (сборщик) • Отладчик 4
ОСНОВНЫЕ СИСТЕМЫ ПРОГРАММИРОВАНИЯ • 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
ТЕМА 2. ЭТАПЫ РЕШЕНИЯ ЗАДАЧ НА КОМПЬЮТЕРАХ 8
ОСНОВНЫЕ ЭТАПЫ СОЗДАНИЯ ПРОГРАММНЫХ ПРОДУКТОВ 1. Постановка задачи 2. Этап формализации: замена реального объекта или процесса его формальным описанием построение информационной модели задачи: информационной модели задачи вербальной, графической, табличной, математической, формально-логической. Уровни информационных моделей: • концептуальная модель; • логическая; • математическая. 9
ОСНОВНЫЕ ЭТАПЫ СОЗДАНИЯ ПРОГРАММНЫХ ПРОДУКТОВ 3. Разработка алгоритма (проектирование) : выбор метода решения задачи; выбор формы записи алгоритма; выбор тестов и метода тестирования; проектирование алгоритма. 4. Программирование (кодирование): выбор языка программирования; уточнение способов организации данных; запись алгоритма на языке программирования. 5. Отладка (1) и Тестирование (2) программы : синтаксическая отладка; отладка семантики и логической структуры; тестовые расчеты и анализ результатов тестирования; совершенствование программы. 10
ОСНОВНЫЕ ЭТАПЫ СОЗДАНИЯ ПРОГРАММНЫХ ПРОДУКТОВ 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
АЛГОРИТМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ 16
ПОНЯТИЕ ПОДПРОГРАММЫ Структурное программирование — методология Структурное программирование разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Процедура (англ. subprogram) — набор операторов, роцедура выполняющих нужное действие и не зависящих от других частей исходного кода. Возможность применения подпрограмм относит язык программирования к классу процедурных языков. 17
НИСХОДЯЩЕЕ ПРОЕКТИРОВАНИЕ Начало Ввод 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. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ 24
ООП – НОВЫЙ ПОДХОД К ПРОГРАММИРОВАНИЮ По мере развития ВТ требовалось написание все более сложных и длинных программ. По мере увеличения сложности и длины программ, требовался новый подход к их написанию, чтобы программа оставалась читаемой, управляемой, поддерживаемой. ООП позволяет писать объемные и сложные программы.
ИДЕЯ ООП В ООП проблема раскладывается на связанные между собой задачи. Каждая задача становиться самостоятельным объектом, содержащим свои собственные коды и данные. Каждый объект может программироваться самостоятельно, с учетом взаимодействия с другими объектами программы.
ПОНЯТИЕ ОБЪЕКТА Объект — совокупность Схема организации объекта Объект свойств (структур данных, характерных для этого объекта), методов их обработки (подпрограмм изменения свойств) и событий, на которые данный объект может реагировать и которые приводят к изменению свойств объекта 27
ИНКАПСУЛЯЦИЯ (ENCAPSULATION) Объединение данных и методов в одном типе, манипулирующего этими данными; Защита объединенных данных и кода от внешнего вмешательства и неправильного использования. Модель «черного ящика» - все необходимые данные и коды находятся внутри него, мы не знаем, что в нем находится, знаем только как он функционирует и пользуемся этой функциональностью.
ИНКАПСУЛЯЦИЯ (ENCAPSULATION) Объект – объединенные и защищенные Объект по принципу инкапсуляции коды и данные. Коды и данные объекта могут быть: закрытыми – private - (доступны только самому объекту) открытыми – public - (доступны всем желающим – составляют интерфейс объекта)
ПОЛИМОРФИЗМ (POLYMORPHISM) Использование одного и того же имени для обозначения схожих по смыслу, но разных по способу реализации задач. Пример: В С для нахождения модуля числа вызывается abs() для целого, labs() для длинного целого, fabs() для вещественного – нет полиморфизма. В С++ вызывается abs() для целых, длинных целых и вещественных чисел – полиморфизм – задачи схожие по смыслу, но разные в реализации. Задание единого класса действий. Выбор конкретного действия возлагается на компилятор.
НАСЛЕДОВАНИЕ (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. 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