Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Тема 1.1 Технология программирования в историческом аспектеСтр 1 из 26Следующая ⇒
Содержание Введение…………………………………………………………………………3 Раздел 1 Программное обеспечение Тема 1.1 Технология программирования в историческом аспекте …………..5 Тема 1.2 Основные понятия и определения ……………………………..........11 Тема 1.3 Классификация ПО…………………………….…………………......14 Раздел 2 Разработка программного обеспечения Тема 2.1 Инструментальное обеспечение разработки и сопровождения программных средств ……………………………………………………...…..18 Тема 2.2 Инструментальные системы технологии программирования .........26 Тема 2.3 Структура проекта Delphi …………………………………………...29 Тема 2.4 Особенности объектно-ориентированного программирования в Delphi …………………………………………………………………………....37 Тема 2.5 Создание собственных компонентов ……………………..………...43 Тема 2.6 Обработка исключительных ситуаций……………………..……….48 Тема 2.7 Создание пользовательских библиотек, процедур и функций в Delphi ……………………..……………………………………………………..52 Тема 2.8 Создание DLL-библиотек в Delphi …………………………………55 Тема 2.9 Создание многопоточных приложений в Delphi ……………….….60 Тема 2.10 Создание приложений баз данных в среде Delphi ……………….64 Тема 2.11 Создание консольных приложений……………………..…………69 Тема 2.12 Использование динамической памяти в приложениях……...........72 Тема 2.13 Создание справочной системы……………………..……………...77 Список литературы…………………………………………………………..86 Введение В условиях информатизации общества одной из важнейших задач профессионального образования является подготовка специалистов, свободно ориентирующихся не только в предметной области, но и в уже используемых, а также перспективных информационных и коммуникационных технологиях, связанных с их профессиональной деятельностью. Задача усложняется ростом объемов профессиональной информации, что требует от системы профессионального образования обновления его содержания и разработки качественно новых педагогических технологий, позволяющих обеспечить эффективность образовательного процесса. В настоящее время существует много изданий различного уровня, описывающих работу с указанными программными продуктами. Данное пособие содержит материал, необходимый для реализации в курсе «Инструментальных средств разработки ПО» дидактических единиц государственного образовательного стандарта, связанных с освоением программного обеспечения. Компьютер является рабочим инструментом для решения профессиональных задач. Любой специалист в своей области должен знать, какие профессиональные задачи можно решать, используя компьютер, и уметь это делать. Таким образом, ИСРПО является предметом не только общеобразовательным, но и профессиональным, в котором очень важна система межпредметных связей, усилить которые предполагается содержанием заданий для практического выполнения, ориентированным на задачи из предметной области, что является особенностью предлагаемого практикума. Теоретический материал, практические задания и подробно рассмотренные примеры позволяют студентам с различным уровнем начальной подготовки самостоятельно изучить ряд вопросов, связанных с освоением приемов решения прикладных задач средствами указанных программных продуктов. Цели и задачи дисциплины 1. Изучение основных принципов, используемых в разработке интегрированных программных продуктов. 2. Изучение структуры, состава и назначения компонентов интегрированного ПО, а также средств организации взаимодействия между компонентами и инструментальных средств расширения функциональности. 3. Формирование навыков работы со средствами автоматизации решения прикладных задач. 4. Формирование навыков использования встроенных средств разработки. В результате изучения дисциплины студенты должны: 1. знать принципы построения прикладных информационных систем 2. уметь использовать современные программные средства для обработки разнородной информации; 3. уметь автоматизировать процесс решения прикладных задач с помощью встроенных языков программирования; 4. иметь представление о современном состоянии и тенденциях развития рынка прикладного ПО. Раздел 1 Программное обеспечение Тема 1.1 Технология программирования в историческом аспекте
Революционным было появление в языках средств, позволяющих оперировать подпрограммами. (Идея написания подпрограмм появилась гораздо раньше, но отсутствие средств поддержки в первых языковых средствах существенно снижало эффективность их применения.) Подпрограммы можно было сохранять и использовать в других программах. В результате были созданы огромные библиотеки расчетных и служебных подпрограмм, которые по мере надобности вызывались из разрабатываемой программы.
Рис. 1.3. Архитектура программы, использующей подпрограммы с локальными данными Сложность разрабатываемого программного обеспечения при использовании подпрограмм с локальными данными по-прежнему ограничивалась возможностью программиста отслеживать процессы обработки данных, но уже на новом уровне. Однако появление средств поддержки подпрограмм позволило осуществлять разработку программного обеспечения нескольким программистам параллельно. Объективно все это было вызвано несовершенством технологии программирования. Прежде всего стихийно использовалась разработка «снизу—вверх» — подход, при котором вначале проектировали и реализовывали сравнительно простые подпрограммы, из которых затем пытались построить сложную программу. В отсутствие четких моделей описания подпрограмм и методов их проектирования создание каждой подпрограммы превращалось в непростую задачу, интерфейсы подпрограмм получались сложными, и при сборке программного продукта выявлялось большое количество ошибок согласования. Исправление таких ошибок, как правило, требовало серьезного изменения уже разработанных подпрограмм, что еще более осложняло ситуацию, так как при этом в программу часто вносились новые ошибки, которые также необходимо было исправлять... В конечном итоге процесс тестирования и отладки программ занимал более 80 % времени разработки, если вообще когда-нибудь заканчивался. На повестке дня самым серьезным образом стоял вопрос разработки технологии создания сложных программных продуктов, снижающей вероятность ошибок проектирования. В отличие от используемого ранее процедурного подхода к декомпозиции, структурный подход требовал представления задачи в виде иерархии подзадач простейшей структуры. Проектирование, таким образом, осуществлялось «сверху—вниз» и подразумевало реализацию общей идеи, обеспечивая проработку интерфейсов подпрограмм. Одновременно вводились ограничения на конструкции алгоритмов, рекомендовались формальные модели их описания, а также специальный метод проектирования алгоритмов — метод пошаговой детализации. Поддержка принципов структурного программирования была заложена в основу так называемых процедурных языков программирования. Как правило, они включали основные «структурные» операторы передачи управления, поддерживали вложение подпрограмм, локализацию и ограничение области «видимости» данных. Среди наиболее известных языков этой группы стоит назвать PL/1, ALGOL-68, Pascal, С. Дальнейший рост сложности и размеров разрабатываемого программного обеспечения потребовал развития структурирования данных. Как следствие этого в языках появляется возможность определения пользовательских типов данных. Одновременно усилилось стремление разграничить доступ к глобальным данным программы, чтобы уменьшить количество ошибок, возникающих при работе с глобальными данными. В результате появилась и начала развиваться технология модульного программирования. Модульное программирование предполагает выделение групп подпрограмм, использующих одни и те же глобальные данные в отдельно компилируемые модули (библиотеки подпрограмм), например модуль графических ресурсов, модуль подпрограмм вывода на принтер (рис. 1.4). Связи между модулями при использовании данной технологии осуществляются через специальный интерфейс, в то время как доступ к реализации модуля (телам подпрограмм и некоторым «внутренним» переменным) запрещен. Эту технологию поддерживают современные версии языков Pascal и С (C++), языки Ада и Modula.
Использование модульного программирования существенно упростило разработку программного обеспечения несколькими программистами. Теперь каждый из них мог разрабатывать свои модули независимо, обеспечивая взаимодействие модулей через специально оговоренные межмодульные интерфейсы. Кроме того, модули в дальнейшем без изменений можно было использовать в других разработках, что повысило производительность труда программистов. Третий этап — объектный подход к программированию (с середины 80-х до конца 90-х годов XX в.).Объектно-ориентированное программирование определяется как технология создания сложного программного обеспечения, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного типа (класса), а классы образуют иерархию с наследованием свойств. Взаимодействие программных объектов в такой системе осуществляется путем передачи сообщений (рис. 1.5). Объектная структура программы впервые была использована в языке имитационного моделирования сложных систем Simula, появившемся еще в 60-х годах XX в. Естественный для языков моделирования способ представления программы получил развитие в другом специализированном языке моделирования — языке Smalltalk (70-е годы XX в.), а затем был использован в новых версиях универсальных языков программирования, таких как Pascal, C++, Modula, Java. Основным достоинством объектно-ориентированного программирования по сравнению с модульным программированием является «более естественная» декомпозиция программного обеспечения, которая существенно облегчает его разработку. Это приводит к более полной локализации данных и интегрированию их с подпрограммами обработки, что позволяет вести практически независимую разработку отдельных частей (объектов) программы. Кроме этого, объектный подход предлагает новые способы организации программ, основанные на механизмах наследования, полиморфизма, композиции, наполнения. Эти механизмы позволяют конструировать сложные объекты из сравнительно простых. В результате существенно увеличивается показатель повторного использования кодов и появляется возможность создания библиотек классов для различных применений.
1. фактически отсутствуют стандарты компоновки двоичных результатов компиляции объектов в единое целое даже в пределах одного языка программирования. Компоновка объектов, полученных разными компиляторами C++, в лучшем случае проблематична, что приводит к необходимости разработки программного обеспечения с использованием средств и возможностей одного языка программирования высокого уровня и одного компилятора, а значит, требует наличия исходных кодов используемых библиотек классов; 2. изменение реализации одного из программных объектов, как минимум, связано с перекомпиляцией соответствующего модуля и перекомпоновкой всего программного обеспечения, использующего данный объект. Таким образом, при использовании этих языков программирования сохраняется зависимость модулей программного обеспечения от адресов экспортируемых полей и методов, а также структур и форматов данных. Эта зависимость объективна, так как модули должны взаимодействовать между собой, обращаясь к ресурсам друг друга. Связи модулей нельзя разорвать, но можно попробовать стандартизировать их взаимодействие, на чем и основан компонентный подход к программированию. Четвертый этап — компонентный подход и CASE-технологии (с середины 90-х годов XX в. до нашего времени).Компонентный подход предполагает построение программного обеспечения из отдельных компонентов физически отдельно существующих частей программного обеспечения, которые взаимодействуют между собой через стандартизованные двоичные интерфейсы. В отличие от обычных объектов объекты-компоненты можно собрать в динамически вызываемые библиотеки или исполняемые файлы, распространять в двоичном виде (без исходных текстов) и использовать в любом языке программирования, поддерживающем соответствующую технологию. На сегодня рынок объектов стал реальностью, так, в Интернете существуют узлы, предоставляющие большое количество компонентов, рекламой компонентов забиты журналы. Это позволяет программистам создавать продукты, хотя бы частично состоящие из повторно использованных частей, т. е. использовать технологию, хорошо зарекомендовавшую себя в области проектирования аппаратуры. |
||
Последнее изменение этой страницы: 2018-04-12; просмотров: 698. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |