- •Высокоуровневые методы информатики и программирования.
- •Основные направления технологий программирования.
- •Технология программирования включает:
- •Базовые этапы развития технологии программирования:
- •Проблема разработки сложных программных систем:
- •Блочно-иерархический подход к созданию сложных систем.
- •Жизненный цикл и этапы разработки программного обеспечения.
- •Модели жизненного цикла по.
- •Алгоритм и его свойства:
- •Виды структур алгоритмов:
- •Языки программирования:
- •Переменная:
- •Выражения:
- •Правила написания выражений:
- •Функции:
- •Формы и их свойства.
- •Основные свойства:
- •Основные свойства объекта:
- •Основные элементы управления:
- •Программные способы ввода/вывода информации:
- •Управление вычислительным процессом на основе применения логики.
- •Элементы управления логического выбора.
- •Динамические массивы (объекты):
- •Value - Целое число характеризующее положение ползунка на полосе прокрутки Основные события:
Высокоуровневые методы информатики и программирования.
Г.С. Иванова «Технологии программирования» (1-ый раздел)
Основные направления технологий программирования.
Программа – последовательность команд компьютера, приводящая к решению задач.
Программный продукт (ПП) – комплекс взаимосвязанных программ предназначенных для реализации определенной задачи массового спроса.
Задача – некоторая проблема, подлежащая решению с помощью средств вычислительной техники.
Приложение – программная реализация заданной задачи, установленной на компьютере.
Основу современных программных продуктов составляют социальное математическое и программное обеспечение (СНПО). Высшую форму СНПО составляют комплексы задач и математических моделей различного назначения, логически и информационно увязанные между собой.
Программное обеспечение (ПО) – программные продукты и техническая документация к ним.
Технология программирования включает:
Указание последовательности выполнения технологических операций;
Перечисление условий, при которых выполняется та или иная операция;
Описание самих операций, где для каждой операции определены исходные данные, результаты, а также инструкции нормативы, стандарты, критерии и методы оценки.
Технология также определяет способ описания проектируемой системы и моделей, используемой на конкретном этапе разработки.
Базовые этапы развития технологии программирования:
Стихийное программирование (от момента появления первых ЭВМ до середины 60-х годов). Программирование было скорее искусством, технология программирования отсутствовала. Первые программы имели простейшую линейную структуру и состояли из собственно программы на машинном языке и обрабатываемых ею данных. Длина программы ограничивалась возможностью программиста по способности отслеживать последовательность выполняемых операций и местонахождения данных (около 4500 строк). Революционным стало появление средств, управляющих подпрограммами;
Структурный подход к программированию (60-70-е годы) – представляет собой совокупность рекомендуемых технологических приемов, охватывающих выполнение всех этапов ПО.
В основе подхода лежит принцип декомпозиции (деление на части) сложных систем с целью последующей реализации их виде отдельных небольших подпрограмм. Подход требовал представление задачи в виде иерархии подчиненных задач простейшей структуры. Проектирование должно вестись сверху вниз от общего к частному. Одновременно были введены ограничения на конструкции алгоритмов. Рекомендовались формальные модели их описания и методы проектирования, основанные на пошаговой детализации.
Рост сложности и размеров разрабатываемого ПО потребовал дальнейшей структуризации данных с повышением уровня локализаций. Это привело к появлению модульного программирования, предполагающего объединение групп подпрограмм, использующих одни и те же данные в отдельные модули, связи между которыми осуществлялись через специальный интерфейс на уровне данных.
Практика показала, что структурный подход в сочетании с модульным программированием позволяет получить достаточно надежные программы, размер которых не превышает 100000 операторов. В противном случае резко возрастает вероятность ошибки за счет сложности отслеживания межмодульных интерфейсов. С некоторого времени отследить взаимное влияние модулей друг на друга не представляется возможным.
Объектный подход к программированию (середина 80-х – конец 20 вв.).
Объектно-ориентированное программирование – технология создания сложного программного обеспечения, основанная на предоставления программ в виде совокупности объектов, каждый из которых является экземпляром определенного типа (класс), а классы образуют иерархии с наследованием свойств. Взаимодействие между объектами осуществляется путем передачи объектами сообщений о происходящих с ними событиях.
Основным достоинством ООП является более естественная декомпозиция области решения задачи на объекты. Это приводит к более полной локализации данных и объединении в единое целое программ и их обработки. Появляется возможность новой организации программ, основанная на принципах наследования, полиморфизма, инкапсуляции и др. Механизмы ПОП позволяют резко повысить качество написания программ, однако существуют недостатки:
Снижение скорости работы программы за счет низкой скорости передачи сообщений;
Необходимость ручного переписывания объекта при переходе на другой язык.
Компонентный подход и CASE-технологии (с конца 20 в – по наше время) – предполагает построение программного обеспечения из отдельных компонентов – физически отдельно существующих частей программы, которые взаимодействуют между собой через стандартные двоичные интерфейсы. Объекты-компоненты в отличие от обычных объектов можно собирать в динамические библиотеки или использовать файл выполняемого типа, который можно распространять в двоичном виде без использования исходных текстов программ. Компонентный подход лежит в основе двух технологий:
COM – разработчик – Microsoft, является дальнейшим развитием технологии OLE и определяет общую идею взаимодействия программ любых типов – библиотек, приложений, ОС и т.д. Она позволяет одной части ПО использовать функции и службы другой, независимо от того функционируют ли эти части в пределах одного процесса, в разных процессах на одном компьютере или на разных компьютерах при сетевом подключении. Данная технология строится на специальных объектах, одновременно способных реализовывать несколько интерфейсов, обеспечивающих доступ к своим полям и функциям.
Объект всегда функционирует в составе сервера – динамической библиотеке или исполняемого файла, которые обеспечивают функционирование объекта в процессе решения поставленной задачи.
Различают три типа серверов:
Внутренний сервер – реализуется динамическими библиотеками, которые подключаются к приложению клиента и работают в одном с ним адресном пространстве (наиболее эффективный сервер, не требующий специальных средств).
Локальный сервер – создается отдельным процессом (программой с расширением exe), который работает на одном компьютере с клиентом.
Удаленный сервер - создается процессом, который создается на другом компьютере.
CORBA – разработчик – OMG – реализует подход во многом аналогичный COM, но на базе собственных объектов и интерфейсов. Программное ядро данной технологии реализовано для всех основных аппаратных и программных платформ и поэтому данную технологию можно использовать для создания распределенного ПО в разнородной вычислительной среде. Взаимодействие между объектами клиента и сервера в данной технологии осуществляется с помощью специального посредника VisiBroker, а также других, адаптированных к конкретным программным системам продуктов.
Для повышения качества разработки программных продуктов были созданы автоматизированные продукты для разработки и сопровождения сложных программных продуктов, получивших название CASE-технологий. Идея заключалась в автоматизированной обработке графических символов, несущих смысловую нагрузку с учетом информации о входных и выходных данных, нормативной документации и инструментов выполнения, на уровне облика разрабатываемых подсистемам применительно к ее суб-элементам (модулям, процедурам, объектам).