|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Инструментальные средства программирования
Инструментальные средства программирования подразделяют на средства для создания приложений (системы программирования и среды визуального программирования) и средства для создания информационных систем (CASE-технологии). На ЭВМ первых трех поколений (см. раздел 1) для создания работающей программы в виде исполняемого файла применялись системы программирования, включающие в себя: язык программирования (например, Фортран, Кобол и др.) – для записи текста программы и используемых ею подпрограмм-процедур, компилятор – для преобразования текстов программы и процедур в объектные модули (см. также раздел 4), редактор связей – для увязывания программы и процедур в одном исполняемом файле, отладчик – для организации слежения за решением тестовых задач с помощью создаваемой программы, библиотекарь – для ведения библиотек объектных модулей. В наиболее продуманных системах программирования редактор связей не применялся, его функции выполнял интеллектуальный загрузчик: загружая в ОП объектный модуль программы, он разрешал внешние ссылки путем загрузки с диска из библиотеки объектных модулей требуемых подпрограмм с одновременной заменой символических ссылок на адреса фактически загруженных в ОП процедур. Такой подход применялся на ЭВМ БЭСМ-6, Cyber и на многих других, используемых в научных исследованиях, в военной, нефтяной и других наукоемких областях. Применять редактор связей на этих ЭВМ не было никакого смысла. Например, на ЭВМ Cyber-173 загрузка практически любой программы вместе с загрузкой из объектных библиотек всех используемых подпрограмм, включая редактирование связей, длилась не более 1 секунды, а работа программы в упомянутых предметных областях обычно продолжалась несколько минут или часов. При этом для хранения программного обеспечения на дисках требовалось в сотни раз меньше места, чем для хранения исполняемых программных файлов: ведь многие подпрограммы включались в десятки или сотни программ, а изобретенные в IBM и других фирмах редакторы связей включали в исполняемые файлы не только код программ и подпрограмм, но и пустое место, резервируемое в программах для размещения массивов данных. Применение объектных модулей вместо загрузочных позволяло также автономно корректировать и компилировать процедуры, не заботясь о редактировании многих программ, в которых изменяемые модули использовались в качестве подпрограмм. На компьютерах четвертого поколения применение редакторов связей уже не выглядит таким непродуманным, как на ЭВМ третьего поколения. Во-первых, хранение больших по размерам исполняемых программных файлов перестало быть проблемой при использовании современных дисков. Во-вторых, на смену системам программирования, включающим в себя описание языка программирования, другую документацию, компилятор, редактор связей и вспомогательные инструментальные средства (отладчик, библиотекарь и т.п.), пришли среды визуального программирования (Delphi, Visual Basic и др.), автоматически изменяющие исполняемую программу в случае корректировки любой используемой процедуры. В-третьих, результатом разработок в области программирования стали не многочисленные программы, а многофункциональные приложения, каждое из которых по числу функций заменяет множество программ, разработанных ранее для машин третьего поколения; следовательно, любая общая для многих функций процедура теперь включается не во много программ, а в одно приложение. Что же касается программных модулей, используемых многими приложениями, то их стали оформлять в виде динамически связываемых библиотек (DLL – Dinamic Linking Libraries), близких по своему назначению к библиотекам объектных модулей на ЭВМ третьего поколения. Правда, последнее несколько усложнило передачу разработанных приложений пользователям. Например, программист, создавший программу в среде Visual Basic и подготавливающий ее к тиражированию, должен знать, какие файлы DLL, обычно автоматически подключаемые системой программирования, используются данной программой. Эти файлы должны входить в комплект поставки приложения вместе с EXE-файлом и файлом, содержащим документацию. Для программистов, работавших на ЭВМ третьего поколения, большое значение имел выбор языка программирования. В науке и технике преимущественно использовался Фортран, причем часто в сочетании с Ассемблером. Фортран был прост в освоении, содержал множество встроенных математических функций, позволял пользоваться обширными библиотеками объектных модулей, причем формат объектного модуля был одинаковым для откомпиллированной подпрограммы, текст которой написан на Фортране, Ассемблере или другом языке. Благодаря этому в крупных системах обработки данных основные программы и большая часть подпрограмм создавались на Фортране, а те функции, которые Фортран, из-за своей универсальности не позволял гибко реализовывать на конкретной машине, программировали на Ассемблере – машинно-ориентированном языке, позволяющем символически записывать прямо машинные команды и макрокоманды. На Ассемблере обычно создавались подпрограммы ввода-вывода (гибкая работа с магнитными лентами, дисками и т.п.), динамического управления памятью и самых массовых вычислений, когда требовалось минимизировать число обращений к ОП путем активного использования регистров арифметического устройства конкретной ЭВМ. С включением небольшого числа ассемблерных подпрограмм на Фортране строились мощные системы обработки данных во многих предметных областях. Эти системы управлялись путем задания параметров для каждого этапа обработки данных, например, X0=300, Y0=100 и т.п. Результаты распечатывались на широкоформатном алфавитно-печатающем устройстве (АЦПУ) или выводились на графопостроитель в виде схем, карт и других документов. В сфере экономики и финансов на машинах третьего поколения часто применялись такие языки программирования, как PL-1 и Кобол. Эти языки постепенно сошли со сцены, в то время как программы, созданные на Фортране еще применяются, но обычно не как самостоятельные программные продукты, а как EXE-модули, динамически вызываемые (непосредственно или в составе командного файла) из современного событийно-ориентированного приложения, обладающего унифицированным графическим интерфейсом. На персональных компьютерах в первые годы их применения большое распространение получили такие языки программирования, как Си, Паскаль и Бейсик. Фортран также продолжал использоваться. Бейсик первое время рассматривался как учебный язык, причем после написания текста программы ее не надо было компилировать и редактировать – программа исполнялась в режиме интерпретации команд. Это означает, что все команды программы (вычисления, проверки условий, передачи управления и др.) последовательно воспринимались интерпретатором Бейсик и немедленно исполнялись. Это гораздо медленнее, чем исполнение готовой программы – EXE-файла, так как каждая языковая инструкция, находящаяся внутри цикла, преобразуется в машинные команды не один раз, как при компиляции, а ровно столько раз, сколько исполняется цикл. Но зато такой подход проще в реализации и удобен для обучения. Кстати, роль интерпретации программ (как альтернативы компиляции) в последнее время вновь начала расти благодаря взрывообразному росту производительности вычислительных систем и в связи с удобством включения интерпретируемых текстов программ в HTML-документы и макросы документов, создаваемых текстовыми и табличными процессорами. Си и Паскаль в 80-х и первой половине 90-х годов получили наибольшее распространение при разработке программ для ПК. Постепенно совершенствуясь, эти языки стали сочетать в себе высокий уровень (большую информационную емкость языковых инструкций) с возможностью учета конкретных технических особенностей ПК. Си преимущественно использовали крутые профессионалы, а Паскаль – широкая программирующая публика. Си позволяет программисту больше полагаться на себя, выигрывая в краткости программного кода, а компилятор Паскаля, который первоначально также создавался как учебный язык, постоянно контролирует программиста, принуждая его следовать строгим правилам, особенно при работе с данными разных типов. На базе Си и Паскаля были созданы различные версии систем программирования, которые содержали удобные редакторы для подготовки текстов программ, быстрые компиляторы, мощные средства для отладки программ. Системы программирования Си++ и Борланд Паскаль для Windows ориентированы уже на создание событийно-объектно-ориентированных приложений с унифицированным графическим интерфейсом. Но принципиально технология создания программных продуктов изменилась в середине 90-х годов после того, как завоевали всеобщее признание среды визуального программирования, среди которых наибольшее распространение для ПК получили Delphi (разработка корпорации Borland) и Visual Basic (разработка корпорации Microsoft). Основные идеи современного визуального программирования тесно связаны с особенностями современных программ, рассмотренными в разделе 2. Приложение строится из крупных блоков – компонентов. Важнейшим компонентом является форма. Это как бы площадка для размещения объектов, видимых в окне. Главному окну программы (см. раздел 2) соответствует главная форма, диалоговым окнам – диалоговые формы и т.п. Компоненты, из которых можно строить программу, представлены в палитре компонентов. Программист выбирает в палитре компонентов требуемый ему объект, например, кнопку и “затаскивает” его мышью на форму. После этого в специальном окне он устанавливает свойства данного объекта, если его не устраивают те значения свойств, которые предусмотрены по умолчанию. Каждый объект имеет свои свойства и методы, в том числе процедуры реагирования на события. Например, свойствами кнопки являются ее цвет, шрифт надписи, сама надпись (Caption – заголовок) и др. Если в режиме конструирования приложения по командной кнопке щелкнуть мышью, то откроется окно текстового редактора с заготовкой событийной процедуры. В этой заготовке присутствует только заглавная и конечная часть процедуры, а само тело процедуры программист должен написать на языке программирования, применяемом в данной среде. В Delphi используется Pascal, а в Visual Basic – Basic. При написании текста процедуры программист может использовать методы объектов, размещенных им на форме. Например, “затащил” на форму Delphi объект Таблица с именем Table1, и можно использовать методы этого объекта: открыть (Table1.Open), встать на первую запись (Table1.First), извлечь из очередной записи поле X (X:=Table1.FieldByName('X').AsFloat), перейти к следующей записи (Table1.Next) и т.д. Кстати, этот пример показывает, что компонент - это не обязательно видимый объект (как кнопка, меню, список и др.), но использование готовых методов объекта резко упрощает программирование. Что же касается видимых объектов, то в них встроены многие процедуры реагирования на события. Например, когда пользователь щелчком мыши выбирает элемент списка, этот элемент изменяет свой цвет – и это не надо программировать. Таким образом, идеи событийного объектно-ориентированного программирования не только изменили интерфейс и облик современных приложений, но и технологию их создания. Естественно, что программист не в состоянии помнить свойства, методы всех объектов и события, на которые каждый объект реагирует. Но это и не требуется. Разместив объект, например, символическое изображение таблицы в виде значка, на форме, программист может выделить этот объект, щелкнув по нему мышью, и далее нажать клавишу <F1>. В ответ на эти действия он получит исчерпывающую хорошо формализованную справку о свойствах, методах объекта и о событиях, на которые он реагирует. Важным достоинством сред визуального программирования также является их ориентация на работу с таблицами баз данных, хотя предусмотрены и удобные средства для работы с обычными файлами. Пример некоторых инструкций Delphi для работы с таблицей был приведен выше, хотя, конечно, перед организацией доступа к записям таблицы устанавливаются некоторые ее свойства, определяющие, в частности, в какую базу данных эта таблица входит. С помощью Delphi и Visual Basic теперь успешно создаются системы программного обеспечения крупнейших организаций. Эти системы обычно опираются на технологию клиент/сервер и на информационно-логическую модель предприятия (см. раздел 9), в соответствии с которой все данные размещаются в десятках и сотнях взаимоувязанных таблиц, характеризующих финансы, кадры, состояние складов, различные сделки, технологические процессы и т.д. Главный принцип таких систем: каждый элемент данных должен вовремя оказаться на своем месте – в соответствующей таблице. В таких системах, например, нет необходимости бухгалтеру начислять зарплату сотрудникам. Бухгалтерия и отдел кадров должны только позаботиться о том, чтобы вся информация (кадровая, табельная, нормативная и т.п.) была вовремя введена в свои таблицы, а процедура начисления зарплаты, хранимая на сервере, сама включится по таймеру в определенный день и час каждого месяца и сформирует необходимые документы. Опыт создания информационных систем предприятий привел разработчиков к типовой технологии, включающей в себя определенный набор действий: распределение всех исходных, промежуточных и конечных данных в плоских таблицах «объекты-свойства», создание этих таблиц, создание приложений, позволяющих осуществлять ввод данных в таблицы, их корректировку, выполнение типовых расчетов и т.п. Осознание и формализация этой технологии позволили разработчикам СУБД и некоторым независимым фирмам-создателям ПО сделать очередной шаг в автоматизации формирования информационного и программного обеспечения предприятий. Таким шагом стали CASE-технологии (CASE – Computer-Aided Software Engineering).Они реализуются с помощью инструментальных программных комплексов, позволяющих на основе формализованного описания модели предприятия автоматически сформировать пусковой комплекс его информационного и программного обеспечения. Инструментальные средства CASE включают в себя методы моделирования, позволяющие формализовать необходимые для работы системы процессы и данные. В результате разработка системы превращается в логичный, документируемый и достаточно быстрый процесс. Кроме того, инструментальные средства CASE дают реальную отдачу, так как с самого начала позволяют разработать надежную систему. Пользователи могут начать продуктивно работать уже с первой версией приложения, а разработчикам и администраторам не нужно тратить много времени на исправление непредвиденных проблем или на неучтенные в процессе разработки изменения в дизайне приложения. Средства CASE имеют и другие возможности, которые позволяют сэкономить время на обслуживании системы в процессе ее работы. Например, инструментальные средства Oracle CASE [11] имеют утилиты анализа влияния, которые помогают получать ответы на вопросы типа: «На какие модули приложения повлияет изменение определения в данной таблице?»
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |