Информатика и математика, (для юристов), 2011. Информатика и математика проблемнотематический комплекс
Скачать 3.34 Mb.
|
Т ЕМА 5 А ЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ – ИНСТРУМЕНТАРИЙ ИНФОРМАТИКИ Основные вопросы темы 1. Алгоритмизация и программирование – основа информатики. 2. Классификация программных продуктов. 3. Инструментарий и методы программирования. 4. Типы программных продуктов по характеру создания и использования. 1. Алгоритмизация является одним из основных инструментариев ин- формационной технологии. Существуют государственные стандарты по алгоритмизации и среди них – стандарт по описанию алгоритма. Стандар- ты позволяют составлять унифицированные алгоритмы и применять эле- менты автоматизации процессов алгоритмизации и программирования, ис- пользуя соответствующие формализованные языки и готовые алгоритмы. Алгоритмизация информационных процессов немыслима без наведе- ния порядка в языковых средствах общения. При этом существенную роль играет лингвистическое обеспечение – средство формализации естествен- ного языка. Процесс программирования задачи, а именно составление взаимоувя- занной системы программных модулей, или, как иногда говорят, пакетов прикладных программ (ППП),является одним из самых трудоемких при создании информационной технологии. Чаще всего используются имею- щиеся в обращении готовые программные изделия и настраиваемые инте- рактивные программные оболочки. При этом осуществляется настройка программного изделия на конкретные информационные структуры и пото- ки – обучение системы. В перспективных программных оболочках процесс настройки – обучения системы автоматизирован до уровня вариантной ин- 2. План-конспект лекционного курса 89 терактивной подсказки и встроенных метаязыковых средств, включающих в себя одновременно средства автоматизации алгоритмизирования и про- граммирования. На этапе программирования также возможен возврат к этапу поста- новки задачи в смысле ее уточнения. В настоящее время в области про- граммирования и требований к программам и программным системам про- ведена достаточно широкая и глубокая стандартизация на международном и национальном уровнях. Алгоритм относится кфундаментальным понятиям информатики. На понятии алгоритма построены все основные принципы составления про- грамм для вычислительных машин. Алгоритм – это точное предписание выполнения вычислительного процесса от варьируемых исходных данных к искомому результату. Алгоритм – это система точно сформулированных правил, опреде- ляющая процесс преобразования допустимых исходных данных (входной информации) в желаемый результат (выходную информацию) за конечное число шагов. Алгоритм решения задачи имеет ряд обязательных свойств: • дискретность – разбиение процесса обработки информации на бо- лее простые этапы (шаги выполнения); • определенность – однозначность выполнения каждого отдельного шага преобразования информации; • результативность – конечность действий алгоритма решения задач, позволяющая получить желаемый результат при допустимых ис- ходных данных за конечное число шагов; • массовость – пригодность алгоритма для решения определенного класса задач. В алгоритме отражаются логика и способ формирования результатов решения с указанием необходимых расчетных формул, логических усло- вий, соотношений для контроля достоверности выходных результатов. В алгоритме обязательно должны быть предусмотрены все ситуации, кото- рые могут возникнуть в процессе решения комплекса задач. Алгоритм решения комплекса задач и его программная реализация тесно взаимосвязаны. Специфика применяемых методов проектирования алгоритмов и используемых при этом инструментальных средств разра- ботки программ может повлиять на форму представления и содержание алгоритма обработки данных. Процесс создания алгоритмов называется алгоритмизацией. Для описания алгоритмов используются графические методы в виде блок-схем или структурированная текстовая запись с использованием псевдокода. Достоинство блок-схемы – ее безусловная наглядность. Однако блок-схемы приходится рисовать, а не записывать. Самое неприятное – это Информатика и математика 90 внесение изменений и исправлений в блок-схемы, требующее перерисовки рамок и стрелок, а иногда и всей блок-схемы. Еще более сложно искать ошибки в запутанных блок-схемах. Однако язык блок-схем определяется отечественными стандартами документирования алгоритмов и программ. Достоинство структурированной записи алгоритмов заключается в простоте их чтения и ввода с экрана ЭВМ. По форме они могут просто совпадать с записью программ, а разница между ними в том, что алгорит- мы записываются на родном языке, понятном широкому кругу людей, а программы – на языке программирования, понятном компьютерам. Следующее достоинство структурированной записи – это простота внесения исправлений и изменений с использованием даже простейших редакторов текстов. По этим причинам за рубежом блок-схемы не используются ни для документирования, ни для обучения, а все современные языки программи- рования построены на принципах структурной записи текстов. Программа – это непрерывная последовательность кодов, которые воспринимаются процессором как команды и выполняются. 2. Программные продукты можно классифицировать по различным признакам. Рассмотрим классификацию, в которой основополагающим признаком является область использования программных продуктов, а именно: • аппаратная часть автономных компьютеров и сетей ЭВМ; • функциональные задачи различных предметных областей; • технология разработки программ. В соответствии с этим выделяются три класса программных продуктов: • системное программное обеспечение; • пакеты прикладных программ; • инструментарий технологии программирования. Системное программное обеспечение направлено: • на создание операционной среды функционирования других про- грамм; • обеспечение надежной и эффективной работы самого компьютера и вычислительной сети; • проведение диагностики и профилактики аппаратуры компьютера и вычислительных сетей; • выполнение вспомогательных технологических процессов (копи- рование, архивирование, восстановление файлов программ и баз данных и т.д.). Системное программное обеспечение тесно связано с типом компью- тера и является его неотъемлемой частью. Программные продукты в ос- 2. План-конспект лекционного курса 91 новном ориентированы на квалифицированных пользователей – профес- сионалов в компьютерной области: системного программиста, администра- тора сети, прикладного программиста, оператора. Однако знание базовой технологии работы с этим классом программных продуктов требуется и конечным пользователям персонального компьютера, которые самостоя- тельно не только работают со своими программами, но и выполняют об- служивание компьютера, программ и данных. Программные продукты данного класса носят общий характер приме- нения, независимо от специфики предметной области. К ним предъявля- ются высокие требования по надежности и технологичности работы, удоб- ству и эффективности использования. Пакеты прикладных программ (ППП) служат программным инстру- ментарием решения функциональных задач и являются самым многочис- ленным классом программных продуктов. В данный класс входят про- граммные продукты, выполняющие обработку информации различных предметных областей. Установка программных продуктов на компьютер выполняется ква- лифицированными пользователями, а непосредственную их эксплуатацию осуществляют, как правило, конечные пользователи – потребители инфор- мации, деятельность которых во многих случаях весьма далека от компью- терной области. Данный класс программных продуктов может быть весьма специфичным для отдельных предметных областей. Пакет прикладных программ – это комплекс взаимосвязанных про- грамм для решения задач определенного класса конкретной предметной области. Инструментарий технологии программирования обеспечивает про- цесс разработки программ и включает специализированные программные продукты, которые являются инструментальными средствами программи- ста. Программные продукты данного класса поддерживают все техно- логические этапы процесса проектирования, программирования (кодиро- вания), отладки и тестирования создаваемых программ. Пользователями технологии программирования являются системные и прикладные про- граммисты. Инструментарий технологии программирования – совокупность про- грамм и программных комплексов, обеспечивающих технологию разра- ботки, отладки и внедрения создаваемых программных продуктов. 3. Ядро системного программного обеспечения составляет базовое программное обеспечение, представляющее минимальный набор про- граммных средств, обеспечивающих работу компьютера. В базовое программное обеспечение входят: • операционная система; Информатика и математика 92 • операционные оболочки (текстовые и графические); • сетевая операционная система. Операционная система предназначена: • для начального запуска компьютера; • контроля и диагностики всех основных частей и ресурсов компью- тера; • управления вычислительным процессом и ресурсами ЭВМ; • обеспечения общения пользователя с компьютером посредством набора пользовательских команд. Операционная система – это главная программа, управляющая рабо- той компьютера в целом. На персональных компьютерах типа IBM PC ис- пользуются в основном операционные системы MSDOS и Windows, UNIX, LINUX. В персональных компьютерах Macintosh применяется операцион- ная система OS/7. Операционная системаWindows – это наиболее современная и удоб- ная операционная система для старших моделей персональных компьюте- ровIBM PC. Сетевые операционные системы (ОС) – комплекс программ, обеспе- чивающий обработку, передачу и хранение данных в сети. Сетевая ОС предоставляет пользователям различные виды сетевых услуг (управление файлами, электронная почта, процессы управления сетью и др.), поддер- живает работу в абонентских системах. Сетевые операционные системы используют архитектуру клиент-сервер или одноранговую архитектуру. Вначале сетевые операционные системы поддерживали лишь локальные вычислительные сети (ЛВС), сейчас эти операционные системы распро- страняются на ассоциации локальных сетей. Наибольшее распространение имеют LAN Server, NetWare, VINES, Windows NT. Они оцениваются по комплексу критериев: производительность, раз- нообразие возможностей связи пользователей, возможности администри- рования. Операционная система Windows NT является многозадачной, предна- значенной для архитектуры клиент-сервер и использования различных протоколов транспортного уровня сетевой операционной системы, имеет 32- (64-)разрядную архитектуру и обеспечивает функции локальной сети: • возможность каждой абонентской системы в сети быть сервером или клиентом; • совместную работу группы пользователей – адресацию оператив- ной и внешней памяти большого размера; • многозадачность и многопоточность обработки данных; • поддержку мультипроцессорной обработки и др. 2. План-конспект лекционного курса 93 Операционные оболочки – это специальные программы, предназна- ченные для облегчения общения пользователя с командами операционной системы. Операционные оболочки имеют текстовóй и графический вари- анты интерфейса конечного пользователя. Эти программы существенно упрощают задание управляющей ин- формации для выполнения команд операционной системы, уменьшают на- пряженность и сложность работы конечного пользователя. Расширением базового программного обеспечения компьютера явля- ется набор сервисных, дополнительно устанавливаемых программ, кото- рые можно классифицировать по функциональному признаку следующим образом: • программы диагностики работоспособности компьютера; • антивирусные программы, обеспечивающие защиту компьютера, обнаружение и восстановление зараженных файлов; • программы обслуживания дисков, обеспечивающие проверку каче- ства поверхности магнитного диска, контроль сохранности файло- вой системы на логическом и физическом уровнях, сжатие дисков, создание страховых копий дисков, резервирование данных на внешних носителях и др.; • программы архивирования данных, которые обеспечивают процесс сжатия информации в файлах с целью уменьшения объема памяти для ее хранения; • программы обслуживания сети. Эти программы часто называются утилитами. Утилиты – программы, служащие для выполнения вспомогательных операций обработки данных или обслуживания компьютеров (диагности- ки, тестирования аппаратных и программных средств, оптимизации ис- пользования дискового пространства, восстановления разрушенной на магнитном диске информации и т.п.). Класс прикладных программных средств наиболее представителен, что обусловлено прежде всего широким применением средств компьютер- ной техники во всех сферах деятельности человека, созданием автоматизи- рованных информационных систем различных предметных областей. Типовые представители прикладного программного обеспечения в области экономики представлены проблемно-ориентированными ППП – это самый представительный класс программных продуктов, в него входят: • ППП: а) автоматизированного бухгалтерского учета; б) финансовой деятельности; в) управления персоналом (кадровый учет); г) управления материальными запасами; д) управления производством; Информатика и математика 94 • банковские информационные системы; • корпоративные информационные системы; • системы поддержки принятия решения; • экспертные системы. Основные направления в развитии проблемно-ориентированных про- граммных средств включают: • создание программных комплексов в виде автоматизированных рабочих мест (АРМ) управленческого персонала; • создание интегрированных систем управления предметной обла- стью на базе вычислительных сетей, объединяющих АРМ в еди- ный программный комплекс с архитектурой клиент-сервер; • организация данных больших информационных систем в виде рас- пределенной базы данных на сети ЭВМ; • наличие простых языковых средств конечного пользователя для запросов к базе данных; • настройка функций обработки силами конечных пользователей (без участия программистов); • защита программ и данных от несанкционированного доступа (па- рольная защита на уровне функций, режимов работы, данных). Наиболее важно для данного класса программных продуктов создание дружественного интерфейса для конечных пользователей. ППП автоматизированного проектирования предназначены для под- держания работы конструкторов и технологов, связанных с разработкой чертежей, схем, диаграмм, графическим моделированием и конструирова- нием, созданием библиотеки стандартных элементов (темплетов) чертежей и их многократным использованием, демонстрационных иллюстраций и мультфильмов. Отличительной особенностью этого класса программных продуктов являются высокие требования к технической части системы обработки данных, наличие библиотек встроенных функций, объектов, интерфейсов с графическими системами и базами данных. ППП общего назначения – это программные продукты, поддержи- вающие преимущественно информационные технологии конечных пользо- вателей. Они включают: • системы управления базами данных (СУБД); • текстовые процессоры; • табличные процессоры; • средства электронных презентаций; • интегрированные пакеты, представляющие набор нескольких про- граммных продуктов, функционально дополняющие один другого, поддерживающих единые информационные технологии, реализо- ванные на общей вычислительной и операционной платформе; 2. План-конспект лекционного курса 95 • программы – переводчики, средства проверки орфографии и рас- познавания текста; • органайзеры (планировщики) – программное обеспечение для пла- нирования рабочего времени, составления протоколов встреч, рас- писаний, ведения записной и телефонной книжек; • ППП электронной почты; • настольные издательские системы, обеспечивающие информаци- онную технологию компьютерной издательской деятельности; • программные продукты мультимедиа; • системы искусственного интеллекта. Программирование – теоретическая и практическая деятельность, свя- занная с созданием программ. Программирование является собирательным понятием и может рас- сматриваться и как наука, и как искусство, на этом основан научно- практический подход к разработке программ. Программа – результат интеллектуального труда, для которого харак- терно творчество, а оно, как известно, не имеет четких границ. В любой программе присутствует индивидуальность разработчика, программа от- ражает определенную степень искусства программиста. Вместе с тем про- граммирование предполагает и рутинные работы, которые могут и должны иметь строгий регламент выполнения и соответствовать стандартам. Программирование базируется на комплексе научных дисциплин, на- правленных на исследование, разработку и применение методов и средств разработки программ (специализированного инструментария создания про- грамм). При разработке программ используются ресурсоемкие и наукоем- кие технологии, высококвалифицированный интеллектуальный труд. Программирование – это развитая отрасль хозяйственной деятельно- сти, связанная со значительными затратами материальных, трудовых и фи- нансовых ресурсов. По данным зарубежных источников, в середине 1990-х гг. в мире было занято программированием до 2% трудоспособного насе- ления. Совокупный оборот в сфере создания программных средств дости- гает нескольких сот миллиардов долларов в год. В связи с ростом потребности в разнообразных программах обработки данных весьма актуален вопрос применения эффективных технологий про- граммирования и их перевода на промышленную основу. Это означает: • стандартизованность, тиражируемость и воспроизведение различ- ными разработчиками методов программирования; • внедрение прогрессивных инструментальных средств разработки программ; • использование специальных методов и приемов организации работ по разработке программ. Информатика и математика 96 В настоящее время бурно развивается направление, связанное с тех- нологией создания программных продуктов. Это обусловлено переходом на промышленную технологию производства программ, стремлением к со- кращению сроков, а также трудовых и материальных затрат на производ- ство и эксплуатацию программ, обеспечению гарантированного уровня их качества. Это направление часто называют программотехникой. Програм- мотехника – технология разработки, отладки, верификации и внедрения программного обеспечения. Инструментарий технологии программирова- ния – программные продукты поддержки (обеспечения) технологии про- граммирования. В рамках этих направлений сформировались следующие группы про- граммных продуктов: • средства для создания приложений, включающие: локальные сред- ства, обеспечивающие выполнение отдельных работ по созданию программ, и интегрированные среды разработчиков программ, обеспечивающие выполнение комплекса взаимосвязанных работ по созданию программ; • СASE-технология (Computer-Aided System Engineering), представ- ляющая методы анализа, проектирования и создания программных систем и предназначенная дли автоматизации процессов разработ- ки и реализации информационных систем. Средства для создания приложений – совокупность языков и систем программирования, а также различные программные комплексы для от- ладки и поддержки создаваемых программ. Локальные средства разработки программ включают языки и системы программирования, а также инструментальную среду пользователя. Язык программирования – формализованный язык для описания алго- ритма решения задачи на компьютере. Языки программирования, если в качестве признака классификации взять синтаксис образования его конструкций, можно условно разделить на классы: • машинные языки – языки программирования, воспринимаемые ап- паратной частью компьютера (машинные коды); • машинно-ориентированные языки – языки программирования, ко- торые отражают структуру конкретного типа компьютера (ассемб- леры); • алгоритмические языки – не зависящие от архитектуры компьюте- ра языки программирования для отражения структуры алгоритма (Паскаль, Фортран, Бейсик и др.); • процедурно-ориентированные языки – языки программирования, где имеется возможность описания программы как совокупности процедур (подпрограмм); 2. План-конспект лекционного курса 97 • проблемно-ориентированные языки – языки программирования, предназначенные для решения задач определенного класса (Лисп, РПГ, Симула и др.); • интегрированные системы программирования. Другой классификацией языков программирования является их деле- ние на языки, ориентированные на реализацию основ структурного про- граммирования, и объектно-ориентированные языки, поддерживающие понятие объектов и их свойств и методов обработки. Программа, подго- товленная на языке программирования, проходит этап трансляции, тогда происходит преобразование исходного кода программы в объектный код, который далее пригоден к обработке редактором связей. Редактор связей – специальная программа, обеспечивающая построение загрузочного модуля, пригодного к выполнению. Трансляция может выполняться с использованием средств компиля- торов или интерпретаторов. Компиляторы транслируют всю программу, но без ее выполнения. Интерпретаторы, в отличие от компиляторов, выпол- няют пооператорную обработку и выполнение программы. Существуют специальные программы, предназначенные для трасси- ровки и анализа выполнения других программ, так называемые отладчики. Лучшие отладчики позволяют осуществлять трассировку (отслеживание выполнения программы в пооператорном варианте), идентификацию места и вида ошибок в программе, «наблюдение» за изменением значений пере- менных, выражений и т.п. Для отладки и тестирования правильности рабо- ты программ создается база данных контрольного примера. Системы программирования включают: • компилятор; • интегрированную среду разработчика программ; • отладчик; • средства оптимизации кода программ; • набор библиотек (возможно с исходными текстами программ); • редактор связей; • сервисные средства (утилиты) для работы с библиотеками, тексто- выми и двоичными файлами; • справочные системы; • документатор исходного кода программы; • систему поддержки и управления проектом программного ком- плекса. Средства поддержки проектов, как новый класс программного обес- печения, предназначены: • для отслеживания изменений, выполненных разработчиками про- грамм; Информатика и математика 98 • поддержки версий программы с автоматической разноской изме- нений; • получения статистики о ходе работ проекта. Инструментальная среда представлена специальными средствами, встроенными в пакеты прикладных программ, такими как: • библиотека функций, процедур, объектов и методов обработки; • макрокоманды; • клавишные макросы; • языковые макросы; • программные модули-вставки; • конструкторы экранных форм и отчетов; • генераторы приложений; • языки запросов высокого уровня; • языки манипулирования данными; • конструкторы меню и многое другое. Средства отладки и тестирования программ предназначены для подготовки разработанной программы к промышленной эксплуатации. Интегрированные среды разработки программ. Дальнейшим разви- тием локальных средств разработки программ, которые объединяют набор средств для комплексного применения на всех технологических этапах создания программ, являются интегрированные программные среды разра- ботчиков. Основное назначение инструментария данного вида – повыше- ние производительности труда программистов, автоматизация создания кодов программ, обеспечивающих интерфейс пользователя графического типа, разработка приложений для архитектуры клиент-сервер, запросов и отчетов. CASE-технология создания информационных систем. Средства CASE-технологии – сформировавшееся на рубеже 1980-х гг. направление. Массовое применение затруднено крайне высокой стоимостью и предъяв- ляемыми требованиями к оборудованию рабочего места разработчика. CASE-технология – программный комплекс, автоматизирующий весь технологический процесс анализа, проектирования, разработки и сопрово- ждения сложных программных систем. Средства CASE-технологий делятся на две группы: • встроенные в систему реализации – все решения по проектирова- нию и реализации привязаны к выбранной системе управления ба- зами данных (СУБД); • независимые от системы реализации – все решения по проектиро- ванию ориентированы на унификацию начальных этапов жизнен- ного цикла и средств их документирования, обеспечивают боль- шую гибкость в выборе средств реализации. 2. План-конспект лекционного курса 99 Основное достоинство CASE-технологии – поддержка коллективной работы над проектом за счет возможности работы в локальной сети разра- ботчиков, экспорта/импорта любых фрагментов проекта, организационного управления проектом. Некоторые CASE-технологии ориентированы только на системных проектировщиков и предоставляют специальные графические средства для изображения различного вида моделей: • диаграмму потоков данных (DFD – data flow diagrams) совместно со словарями данных и спецификациями процессов; • диаграмму «сущность – связь» (ERD – entity relationship diagrams), являющуюся инфологической моделью предметной области; • диаграмму переходов состояний (STD – state transition diagrams), учитывающую события и реакцию на них системы обработки данных. Диаграмма DFD устанавливает связь источников информации с по- требителями, выделяет логические функции (процессы) преобразования информации, определяет группы элементов данных и их хранилища (базы данных). Описание структуры потоков данных, определение их компонентов хранятся в актуальном состоянии в словаре данных, который выступает как база данных проекта. Каждая логическая функция может детализиро- ваться с помощью DFD нижнего уровня согласно методам нисходящего проектирования. Выполняются автоматизированное проектирование спецификаций программ (задание основных характеристик для разработки программ) и ведение словаря данных. Другой класс CASE-технологий поддерживает только разработку про- грамм, включая: • автоматическую генерацию кодов программ на основании их спе- цификаций; • проверку корректности описания моделей данных и схем потоков данных; • документирование программ согласно принятым стандартам и ак- туальному состоянию проекта; • тестирование и отладку программ. Кодогенерация программ выполняется двумя способами: созданием каркаса программ и полного продукта. Каркас программы служит для по- следующего ручного варианта редактирования исходных текстов, обеспе- чивая возможность вмешательства программиста; полный продукт не ре- дактируется вручную. В рамках CASE-технологий проект сопровождается целиком, а не только его программные коды. Проектные материалы, подготовленные в CASE-технологии, служат заданием программистам, а само программиро- Информатика и математика 100 вание скорее сводится к кодированию – переводу на определенный язык структур данных и методов их обработки, если не предусмотрена автома- тическая кодогенерация. Большинство CASE-технологий использует также метод «прототипов» для быстрого создания программ на ранних этапах разработки. Кодогене- рация программ осуществляется автоматически – до 85–90% объектных кодов и текстов на языках высокого уровня. Программные продукты для создания приложений. Данный класс программных средств, как уже отмечалось выше, весьма представителен. Приведем характеристику некоторых продуктов, которые предлагает фирма Microsoft. Макроассемблер MASM, обеспечивающий создание программ, быстро манипулирующих с данными большой размерности, поддерживающих различные форматы объектных файлов. Кроме того, можно создавать ди- намические библиотеки (DLL, VBX) для Microsoft Visual Basic, генериро- вать DOS-, Windows-приложения. Средства данного языка наиболее часто используются для разработки драйверов – специальных программ для эму- ляции нестандартных устройств, подключаемых к компьютеру, различных преобразований форматов данных, поддержания интерфейсов доступа к данным в разнородных программных системах. Компилятор Visual C++ for Windows Professional Edition является сис- темой программирования объектно-ориентированного типа, обеспечиваю- щей просмотр иерархии классов объектов приложения (Source Browser), работу отладчика (Debugger), компилятора и др. В состав пакета входит библиотека классов MFC (Microsoft Foundation Classes Library), содержа- щая классы для реализации сложного пользовательского интерфейса, сред- ства изготовления структуры пользовательского интерфейса (App Wizard), создания диалогов, меню, икон, растров, курсоров (Арр Studio), свойств новых интерфейсных классов, наследующих свойства классов MFC (Class Wizard). Компилятор полностью поддерживает стандарт OLE 2.0 системы Windows, ODBC (Open DataBase Connectivity) – для обеспечения доступа к данным в различных форматах, хранимых как в локальной базе данных, так и на сервере баз данных. Visual Basic for Windows – система программирования объектно- ориентированного типа, транслирующая команды по мере их ввода, позво- ляющая создавать и управлять множеством объектов (кнопками, флажками, комбинированными списками, окнами ввода, переключателями, линейками и т.п.), обеспечивающая поддержку объектов OLE 2.0. Данный язык явля- ется языковой платформой приложений Microsoft Office и имеет диалект Microsoft Basic for Application. Microsoft IMSL Mathematical and Statistical Library – математическая и статистическая библиотеки набора функций и примеров их использования (более 1000), которые можно вызвать из программ, написанных на языке C++. 2. План-конспект лекционного курса 101 Средства поддержки проектов Microsoft Delta for Windows, исполь- зуемые для независимой от всего проекта новой версии программного модуля, отслеживания новых версий, автоматической разноски изменений по копиям проекта программной системы. Технологические стандарты Microsoft, которые могут быть использо- ваны разработчиками прикладных программ. OLE (Object Linking and Embedding) – позволяющий создавать прило- жения, включающие в свой состав объекты, полученные из других прило- жений. Объект имеет две составляющие: • внешнее представление объекта; • способ редактирования объекта. Любой объект может либо внедряться, либо связываться с приложением. Технология OLE 2.0 обеспечивает: • редактирование «чужого» объекта внутри приложения; • экономию трудовых затрат на разработку программ за счет ссылок на существующие внешние объекты; • информационную интеграцию приложений. ODBC (Open DataBase Connectivity) – создание единого интерфейса доступа к различным базам данных на различных платформах. Программа выступает в качестве клиента, а база данных – в качестве сервера, доступ реализуется с помощью драйвера. Разработчики новых СУБД обеспечивают создание соответствующих их форматам драйверов. Для создания прикладных программ, использующих стандарт ODBC, ис- пользуется инструментарий ODBC Sowtware Development Kit (SDK). MAPI (Messaging Application Program Interface) – обеспечение незави- симости приложений от систем связи в режиме телекоммуникаций, кото- рый также работает по принципу драйвера. MAPI поддерживает стандарт Х.400 Association's Common Messaging Calls (CMC), a также ряд других интерфейсов (API, SDK, DDK). Существуют также и интегрированные инструментальные среды для разработчиков программ других фирм: • Delphi; • Clarion for Windows и др. Специфика современной информационной технологии состоит в бур- ном развитии сетевых комплексов вычислительных машин, создании про- грамм для работы в архитектуре сети типа файл-сервер и клиент-сервер. Различают такие методы программирования, как: • метод нисходящего проектирования, который предполагает после- довательное разложение общей функции обработки данных на простые функциональные элементы («сверху вниз»). В результате строится иерархическая схема, отражающая состав и взаимопод- Информатика и математика 102 чиненность отдельных функций, носящих название «функцио- нальная структура алгоритма (ФСА) приложения». На основе этой структуры разрабатывается программный продукт; • модульное программирование, основанное на понятии модуля – логически взаимосвязанной совокупности функциональных эле- ментов, оформленных в виде отдельных программных модулей. Модуль характеризуют: а) один вход и один выход – на входе программный модуль получает определенный набор исходных данных, выполняет содержательную обра- ботку и возвращает один набор результатных данных, т.е. реализуется стандартный принцип IPO (Input – Process – Output) – вход–процесс– выход; б) функциональная завершенность – модуль выполняет перечень рег- ламентированных операций для реализации каждой отдельной функции в полном составе, достаточных для завершения начатой обработки; в) логическая независимость – результат работы программного модуля зависит только от исходных данных, но не зависит от работы других модулей; г) слабые информационные связи с другими программными модулями – обмен информацией между модулями должен быть по возможности ми- нимизирован; д) обозримый по размеру и сложности программный элемент; е) структурное программирование, которое основано на модульной структуре программного продукта и типовых управляющих структурах ал- горитмов обработки данных различных программных модулей. 4. Все программы по характеру создания, использования и категориям пользователей можно представить двумя типами: утилитарные программы и программные продукты (изделия). Утилитарные программы («программы для себя») предназначены для удовлетворения нужд их разработчиков. Чаще всего утилитарные про- граммы выполняют роль сервиса в технологии обработки данных либо яв- ляются программами решения функциональных задач, не предназначен- ных для широкого распространения. Программные продукты (изделия) предназначены для удовлетворения потребностей пользователей, широкого распространения и продажи. Программный продукт разрабатывается на основе промышленной технологии выполнения проектных работ с применением современных ин- струментальных средств программирования. Специфика заключается в уникальности процесса разработки алгоритмов и программ, зависящего от характера обработки информации и используемых инструментальных средств. На создание программных продуктов затрачиваются значитель- 2. План-конспект лекционного курса 103 ные ресурсы – трудовые, материальные, финансовые; требуется высокая квалификация разработчиков. Как правило, программные продукты требуют сопровождения, кото- рое осуществляется специализированными фирмами – распространителя- ми программ (дистрибьюторами), реже – фирмами-разработчиками. Со- провождение программ массового применения сопряжено с большими трудозатратами – исправлением обнаруженных ошибок, созданием новых версий программ и т.п. Сопровождение программного продукта – поддержка работоспособ- ности программного продукта, переход на его новые версии, внесение из- менений, исправление обнаруженных ошибок и т.п. Программные продукты должны обладать следующими свойствами: • мобильностью, что означает их независимость от технического комплекса системы обработки данных, операционной среды, сете- вой технологии обработки данных, специфики предметной области и т.п. Мобильный (многоплатформный) программный продукт может быть установлен на различных моделях компьютеров и опе- рационных систем, без ограничений на его эксплуатацию в услови- ях вычислительной сети. Функции обработки такого программного продукта пригодны для массового использования без каких-либо изменений; • надежностью работы, которая определяется бесперебойностью и устойчивостью в работе программ, точностью выполнения пред- писанных функций обработки, возможностью диагностики возни- кающих в процессе работы программ ошибок; • эффективностью, которая оценивается как с позиций прямого его назначения – требований пользователя, так и с точки зрения рас- хода вычислительных ресурсов, необходимых для эксплуатации программных продуктов. Расход вычислительных ресурсов оцени- вается через объем внешней памяти для размещения программ и объем оперативной памяти для запуска программ; • учетом человеческого фактора, что означает обеспечение дружест- венного интерфейса для работы конечного пользователя, наличие контекстно-зависимой подсказки или обучающей системы в соста- ве программного средства, хорошей документации для освоения и использования заложенных в программном средстве функцио- нальных возможностей, анализ и диагностику возникших ошибок и др.; • модифицируемостью, что означает способность к внесению изме- нений, например, расширение функций обработки, переход на дру- гую техническую базу обработки и т.п.; Информатика и математика 104 • коммуникативностью, которая основана на максимально возмож- ной их интеграции с другими программами, обеспечении обмена данными в общих форматах представления (экспорт/импорт баз данных, внедрение или связывание объектов обработки и др.). В условиях существования рынка программных продуктов важными характеристиками являются: • стоимость; • количество продаж; • время нахождения на рынке (длительность продаж); • известность фирмы-разработчика и программы; • наличие программных продуктов аналогичного назначения. Программы любого вида характеризуются жизненным циклом, со- стоящим из отдельных этапов: • маркетинг рынка программных средств, спецификация требований к программному продукту; • проектирование структуры программного продукта; • программирование (создание программного кода), тестирование, автономная и комплексная отладка программ; • документирование программного продукта, подготовка эксплуата- ционной и технологической документации; • выход на рынок программных средств, распространение про- граммного продукта; • эксплуатация программного продукта пользователями; • сопровождение программного продукта; • снятие программного продукта с продажи, отказ от сопровожде- ния. Подробнее см.: 6. |