Главная страница
Навигация по странице:

  • 5.1. Введение в системы программирования 5.1.1. Основные понятия и определения

  • О связи систем программирования и операционных систем

  • 5.1.2. История и эволюция 5.1.2.1. Некоторые важные даты

  • 5.1.2.2. Основные этапы в формировании состава систем программирования

  • 5.1.2.3. История развития системы программирования компании Borland Inc. на базе языка Pascal

  • 5.1.3. Классификация 5.1.3.1. Классификация по ориентации на поддержку процессов

  • 5.1.3.2. Функциональная классификация

  • 5.1.3.3. Классификация по категориям

  • 5.1.3.4. Классификация по предоставляемому интерфейсу

  • 5.1.4. Проблемы и перспективы развития Обстоятельства меняются, принципы нет.О. Бальзак

  • 5.1.5. Рекомендации по литературе Читайте книги - некоторые из них специально для этого написаны.Михаил Генин

  • 5.2. Процесс-ориентированный инструментарий

  • 5.2.1. Возникновение и исследование идеи

  • 5.2.2. Управление Сильный действует рукой, мудрый - умом, а хитрый - кем-то еще.Владислав Гжегорчик

  • 5.2.2.1. Системы управления проектами

  • 5.2.2.2. Организационные средства

  • инт.среды. 5. Системы программирования


    Скачать 175.93 Kb.
    Название5. Системы программирования
    Дата05.09.2022
    Размер175.93 Kb.
    Формат файлаdocx
    Имя файлаинт.среды.docx
    ТипДокументы
    #663216
    страница1 из 7
      1   2   3   4   5   6   7


     5. Системы программирования

    В этой главе мы подробно поговорим о нескольких группах инструментов, которые относятся к системам программирования.

    • Инструментарий поддержки технологических процессов. Мы выделим инструменты, ориентированные на один процесс и применяемые только в нем, и универсальные (независимые от процесса).

    • Инструментальные системы (инструментальные среды программирования, средства автоматизации разработки программ, интегрированные среды и репозитории проекта).

    • Инструментарий поддержки коллективной разработки.

    Глава включает обзор систем поддержки естественно-языкового интерфейса.

    5.1. Введение в системы программирования

    5.1.1. Основные понятия и определения

    Система программирования - часть базового программного обеспечения, поддерживающая процесс программирования. Системы программирования представляют собой единство средств статической (инструментальной) и динамической (исполнительной) поддержки.

    К настоящему моменту сложилось представление о традиционном составе системы программирования, в который входят следующие программные инструменты и библиотеки:

    • редактор для построения программ;

    • транслятор для перевода программ с языка программирования на машинный язык;

    • отладчик для проверочных запусков программ и исправления ошибок;

    • библиотеки периода трансляции и периода исполнения;

    • средства управления компиляцией и построением программного проекта;

    • монитор, интегрирующий в себе вышеперечисленные средства и организующий функционирование системы программирования в целом

    Этот минимум, позволяющий достаточно эффективно вести процесс создания программ, был представлен еще в начале 70-х годов XX века. Однако настоящую популярность такой интегрированный набор инструментов приобрел в середине 1980-х годов благодаря компании Borland Inc. (http://www.borland.com/). Пакет Turbo Pascal впервые появился в 1983 году для операционной системы СР/М, а в начале 1984 года был перенесен в MS-DOS. Практически все начало истории персональных компьютеров IBM PC связано с системой Turbo Pascal - наиболее популярной средой разработок.

    Программный инструмент - это программа, предназначенная для поддержки разработки программных продуктов. Например, отладчик, облегчающий программисту выполнение отладки продукта.

    Утилита - программа, обеспечивающая некоторые общие функции (например, копирование файлов, подготовку текстов, организацию перекрестных ссылок и т. п.).

    Библиотеки процедур - наборы процедур различного назначения, упрощающие разработку приложений. Например, библиотека функций ввода-вывода или математических функций.

    Программы предоставления дополнительных услуг - программы, предлагающие необязательные, но полезные функции (например, калькулятор или надстройка над полезной утилитой, реализующая графический пользовательский интерфейс к ней).

    О связи систем программирования и операционных систем
    Очень часто многие компоненты систем программирования вводятся производителями операционных систем в качестве вспомогательных модулей операционной системы.


    5.1.2. История и эволюция

    5.1.2.1. Некоторые важные даты

    Вот некоторые вехи истории систем программирования.

    • 1952 г. - Грейс Мюррей Хоппер (Grace Murray Hopper) разработала "А-О" - первый компилятор.

    • 1957 г. - Джон Бэкус (John Backus) и его сотрудники установили в IBM первый компилятор языка FORTRAN.

    • 1986 г. - Статья в Wall Street Journal сыграла большую роль в популяризации понятия CASE (Computer-Aided Software Engineering). На русский язык этот термин обычно переводится как "средства автоматизации разработки программ".

    5.1.2.2. Основные этапы в формировании состава систем программирования

    Можно выделить три основных этапа в формировании состава систем программирования.

    • Для начала 70-х годов XX века было характерно наличие "монолитных" систем программирования, состоящих из одной-двух больших программ, выполняющих множество разнообразных функций, начиная с редактирования и трансляции исходного модуля и заканчивая некоторыми сервисными возможностями.

    • По мере развития отдельных функций программы происходит их выделение в самостоятельные компоненты, такие как текстовый редактор, отладчик, загрузчик.

    • Следующим шагом явилось распространение инструментальной поддержки на все технологические процессы жизненного цикла программ.

    5.1.2.3. История развития системы программирования компании Borland Inc. на базе языка Pascal

    За особые заслуги компании Borland Inc. в области систем программирования приведем историю развития такой системы на базе языка Pascal.

    • 1983 г. - Создание Андерсом Хейлсбергом (Anders Hejlsberg) программы Turbo Pascal для операционной системы СР/М.

    • 1984 г. - Перенос Turbo Pascal в MS-DOS.

    • 1990 г. - Представление Turbo Pascal для Windows.

    • 1992 г. - Последний выпуск Borland Pascal версии 7.0.

    • 1995 г. - Появление Delphi - доведенной до логического совершенства и кульминационного пика интегрированной среды Turbo Pascal.

    5.1.3. Классификация

    5.1.3.1. Классификация по ориентации на поддержку процессов

    Начнем с основной классификации систем программирования, которая положена в основу структуры данной главы.

    • Инструментарий поддержки технологических процессов:

      • инструментарий, поддерживающий определенный технологический процесс (процесс-ориентированный инструментарий);

      • универсальный инструментарий, который можно использовать в нескольких технологических процессах (процесс-независимый инструментарий).

    • Инструментальные системы разработки и сопровождения программных продуктов:

      • инструментальные среды программирования;

      • средства автоматизации разработки программ (CASE-средства);

      • интегрированные среды и репозитории проекта.

    • Инструментарий поддержки коллективной разработки.

    5.1.3.2. Функциональная классификация

    Еще одну классификацию систем программирования можно провести, отражая их функциональную ориентацию в технологическом процессе. Эта классификация относится к группе инструментария поддержки технологических процессов.

    Рассмотрим четыре группы инструментов [Жоголев 1996].

    • Редакторы, поддерживающие конструирование (формирование) многочисленных программных документов.

    • Анализаторы, производящие:

      • статическую обработку документов, осуществляя различные виды их контроля, выявление определенных свойств и накопление статистических данных;

      • динамический анализ программ.

    • Преобразователи, позволяющие:

      • автоматически приводить документы к другой форме представления;

      • синтезировать какой-либо документ из отдельных частей.

    • Инструменты поддержки процесса выполнения программы, позволяющие исполнять:

      • описания процессов или отдельных их частей, представленных в виде, отличном от машинного кода;

      • машинный код с дополнительными возможностями его интерпретации.

    5.1.3.3. Классификация по категориям

    Классификация систем программирования по категориям [Калянов 1996] определяет уровень их интегрированности по выполняемым функциям и включает:

    • вспомогательные программы (tools) - пакеты, решающие небольшую автономную задачу, принадлежащую проблеме более широкого масштаба;

    • пакеты разработчика (toolkit) - совокупность интегрированных программных средств, обеспечивающих помощь для одного из классов программных задач;

    • инструментальные средства (workbench) - интеграция программных средств, которые поддерживают системный анализ, проектирование и разработку программного обеспечения. При этом используется репозиторий, содержащий всю техническую и управляющую информацию о проекте.

    5.1.3.4. Классификация по предоставляемому интерфейсу

    Системы программирования предоставляют два ярко выраженных типа программного интерфейса.

    • Интерфейс командной строки (Command Line Interface - CLI). Это традиционный интерфейс систем программирования в операционной системе Unix. В современных диалектах Unix практически все инструменты имеют и надстройку с графическим пользовательским интерфейсом.

    • Графический пользовательский интерфейс (Graphic User Interface - GUI). Этот интерфейс традиционен для систем программирования в Windows.

    5.1.4. Проблемы и перспективы развития

    Обстоятельства меняются, принципы нет.
    О. Бальзак


    Характеризуя современное развитие систем программирования, можно отметить сложное взаимоотношение между дифференциацией и интеграцией инструментальных средств. Развитие и совершенствование отдельного инструментария вело к росту дифференциации, отделения и образования новых инструментов. Жесткая архитектура традиционных систем программирования часто оказывалась не в состоянии обеспечить их последующую интеграцию в гибкую согласованную систему.

    Отечественные системы программирования и трансляторы характеризовалась в большей степени исследовательским уровнем, чем промышленным качеством [Поттосин 1995]. Отсутствие реального рынка и конкуренции программных продуктов привело к тому, что даже широко использовавшиеся трансляторы не соответствовали международным требованиям на программный продукт.

    Часто может оказаться, что достаточно быстро разработать инструментарий для собственных нужд может практически любая команда. Любопытную и поучительную историю приводят в Интернете (http://progstone.nm.ru/): "Одна команда пришла в волнение, когда они увидели инструменты, которые давали им все возможности для получения и просмотра перекрестных ссылок. Однако небольшие отличия между этими инструментами и набором скриптов, которые у них уже были, и на написание которых понадобилось одно утро, заключались в том, что:

    • инструменты нельзя было модифицировать;

    • инструменты стоили 20 000 фунтов стерлингов, плюс 5000 за каждое рабочее место;

    • инструменты требовали несколько недель на установку и настройку;

    • инструменты были с графическим интерфейсом.

    Следует обратить внимание на необходимость создания принципиально новых инструментов, а не излишней шлифовке давно существующих. В ряде случаев шлифовка подобна улучшению молотка путем раскрашивания его ручки хохломской росписью.

    Воздействие сети Интернет на развитие систем программирования также велико. Перспективными направлениями развития систем программирования в Интернете являются:

    • проектирование и реализация инструментария, обеспечивающего кросс-платформенную разработку приложений на языках Java, С и C++ в средах ОС Unix и Windows NT;

    • разработка инструментария для эффективного написания программ, поддерживающих распределенные вычисления;

    • разработка высокопроизводительных систем программирования;

    • разработка средств отладки Интернет-приложений;

    • разработка инструментария с высоким уровнем абстракции для проектирования интерфейсов.

    Упомянем и возможности, которые предлагает Интернет для доставки систем программирования до пользователя.

    Пусть нам потребовался высокопроизводительный оптимизирующий компилятор с языка программирования C++ для SPARC-архитектуры. Два его наиболее удачных варианта.

    • Профессиональный коммерческий C++ компилятор компании Sun Microsystems Inc. (http://accessl.sun.com/).

    • Свободно распространяемый под General Public License (GPL) лицензией C++ (http://gcc.gnu.org/).

    Интернет содержит достаточное количество ресурсов и для образовательных целей. Конечно, особый интерес для ВУЗов представляют свободно распространяемые программы. Многие учебные заведения используют язык Pascal для первоначального обучения программированию. В Интернете можно найти свободно распространяемые компиляторы с языка Pascal:

    • Free Pascal (http://www.freepascal.org/);

    • GNU Pascal (http://agnes.dida.physik.uni-essen.de/

    gnu-pascal/).

    Среди других доступны компиляторы с языков С, C++, Eiffel, Lisp, Clos, FORTRAN и многие другие.

    5.1.5. Рекомендации по литературе

    Читайте книги - некоторые из них специально для этого написаны.
    Михаил Генин


    Не издано книг, дающих хороший обзор и сравнительный анализ существующих систем программирования. В то же время можно отметить прекрасные работы, отражающие разные аспекты наиболее часто используемых инструментов. Например, для трансляторов с языков программирования это

    Следующие книги:

    • "Теория синтаксического анализа, перевода и компиляции" [Ахо, Ульман 1978] и "Компиляторы: принципы, технологии и инструменты" [Ахо, Сети, Ульман 2001], содержащие теоретические основы конструирования компиляторов;

    • "Конструирование компиляторов для цифровых вычислительных машин" [Грис 1975], в которой рассматриваются практические вопросы реализации компиляторов;

    • "Как Паскаль и Оберон попадают на "Самсон", или искусство создания трансляторов" [Кожохарь, Евстюнин, Терехов, Уфнаровский 1992], в которой приведены примеры практически готовых трансляторов для отечественной ЭВМ "Самсон";

    • "Языки и методы программирования в системе "Эльбрус" [Сафонов 1989], в которой приведены практические сведения об использовании систем программирования, реализованных на вычислительных комплексах "Эльбрус";

    • "Текущее состояние российских исследований и разработок в области трансляции" [Поттосин 1995]. Эта работа дает представление об отечественных разработках последних лет и содержит ссылки на российские коллективы и центры, занимающиеся разработкой систем программирования.

    Ссылки на литературу по другим системам программирования будут приводиться в тех разделах, где эти системы рассматриваются. Обратим внимание, что программисту всегда следует ориентироваться на два основных документа, сопровождающих каждый программный продукт - руководство пользователя и справочное руководство.

    5.2. Процесс-ориентированный инструментарий

    Всякий инструмент будет наилучшим образом удовлетворять своему назначению, если он предназначен для исполнения одной работы, а не многих. 
    Аристотель


    Теперь подробно перечислим инструменты, относя их к одной из следующих групп.

    5.2.1. Возникновение и исследование идеи

    Вдохновение нужно в поэзии, как и в геометрии. 
    Александр Сергеевич Пушкин


    Для поддержки данного процесса предлагается использовать два типа инструментов.

    • Поисковые информационные системы. Эти системы по сделанному запросу выдают ссылки на найденные документы. Подробно такие системы будут рассмотрены в разд. 5.3.6. Наиболее известными поисковыми системами являются:

      • поисковые системы общего назначения (например, Яndex (http://www.yandex.ru/) и Google (http://www.google.com/));

      • тематические каталоги Интернета (например, Yahoo (http://www.yahoo.com/));

      • базы данных патентов в Интернете (например, Questel-Orbit (http://www.questel.orbit.com/));

      • индексы цитирования научных статей (например, Researchlndex (http://www.citeseer.nj.nec.com/cs)).

    • Системы поиска решений. Эти системы представляют собой структурированный набор разнообразного рода эвристических приемов и методов (http://www.triz.minsk.by/index0.htm). Они объединяют предшествующий опыт различных авторов и коллективов и должны способствовать увеличению количества рождающихся идей.

    5.2.2. Управление

    Сильный действует рукой, мудрый - умом, а хитрый - кем-то еще.
    Владислав Гжегорчик


    Инструментарий поддержки процесса управления разделим на три группы.

    • Системы управления проектами.

    • Организационные средства.

    • Средства оценки качества.

    5.2.2.1. Системы управления проектами

    Перечислим группы средств, предназначенных для управления проектами:

    • средства описания комплекса работ проекта, связей между отдельными работами и их временных характеристик;

    • средства поддержки информации о ресурсах и затратах по проекту и его отдельным работам;

    • средства контроля над ходом выполнения проекта;

    • графические средства представления структуры проекта и средства создания отчетов по проекту.

    Система должна позволять динамически пересматривать планы и сроки работ в ходе выполнения проекта. Возможно, система будет иметь средства отслеживания назначений сотрудников.

    Подробную информацию о системах управления проектами, включающую описание их характеристик, можно получить в Интернете (http://www.aproject.ru/tools/tools.html). Перечислим ряд наиболее интересных систем:

    • Microsoft Project (компании Microsoft (http://www.microsoft.com/office/project/default.htm)) - самая распространенная в мире на сегодняшний день система, которая может быть рекомендована для планирования несложных проектов. Пакет достаточно прост, имеет традиционные средства помощи и удобные инструменты создания отчетов;

    • система Time Line (компании Time Line, Inc. (http://www.timeline.com/)) - также предназначена для несложных проектов. Содержит минимально необходимые функции управления проектами;

    • Primavera (компании Primavera Systems, Inc. (http://www.primavera.com/)) - более мощная система, применяемая для управления средними и крупными проектами.

    5.2.2.2. Организационные средства

    К организационным средствам относятся:

    • электронная почта;

    • электронный календарь;

    • интранет.
      1   2   3   4   5   6   7


    написать администратору сайта