В.4. основные средства разработки программ, и платформа framework

      Комментарии к записи В.4. основные средства разработки программ, и платформа framework отключены

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

Отрасль, связанная с разработкой программного обеспечения, очень молода. Действительно, ей всего лишь около 50 лет, но накопленный в ней объем знаний, технологических решений, методик и просто практических рекомендаций к действию огромен.

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

В узком смысле, программирование рассматривается как кодирование – реализация одного или нескольких взаимосвязанных алгоритмов на некотором языке программирования.

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

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

Прежде всего, это система программирования.

Система программирования– это программная система для разработки ПО средствами конкретного языка программирования. Современные системы программирования обычно предоставляют пользователям мощные и удобные средства разработки программ. В них входят: средства создания («написания») и редактирования текстов программ (программного кода); трансляторы; библиотеки стандартных процедур; отладочные средства, помогающие находить и устранять ошибки в программе.

«Написать» программу – это означает реализовать алгоритм, или иначе, представить его в виде понятных компьютеру указаний того, что необходимо делать. К сожалению, компьютеры не умеют понимать словесное описание алгоритма, поэтому необходимо превратить его в абсолютно точный набор инструкций, которые однозначно будут интерпретировать ПК. Для этого были созданы языки программирования. Причем процесс «написания» программ за последние 50 лет прошел путь от программирования в инструкциях процессора (машинных командах), через программирование на низкоуровневых языках (языках ассемблера) до программирования на языках высокого уровня.

Уровень в данном случае – это уровень машинного восприятия. Так, языки низкого уровня (ассемблер) по возможности приближены к ПК, что делает соответствующие программы особенно эффективными с точки зрения их быстродействия. Однако существенная проблема использования таких языков заключается в том, что разработчик программы – прежде всего человек, и его способы восприятия информации весьма далеки от машинных, что чрезвычайно затрудняет написание программ на ассемблере. Подавляющее большинство программ пишется на том или ином языке программирования высокого уровня.

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

С языками программирования связанны следующие понятия:

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

Действительно, язык программирования – это искусственный (формальный) язык, предназначенный для записи алгоритмов. Язык программирования задается своим описанием и реализуется в виде специальных программ: компилятора или интерпретатора.

Под транслятором обычно понимают специальную программу, которая переводит код программы в последовательность машинных команд. Напомним еще раз: код программы понятен человеку, набор команд понятен компьютеру (процессору). Заметим, что трансляторы языков программирования высокого уровня, таких как Pascal, C, VB и других, обычно называют компиляторами. Этим подчёркивается общепринятый для подобных языков режим трансляции, при котором вначале осуществляется перевод программы в двоичное представление, а лишь затем программа передаётся на исполнение. Другой способ трансляции, называемый интерпретацией, состоит в совмещении перевода и исполнения программы (в этом случае объектный модуль не сохраняется и его, соответственно, нельзя повторно использовать).

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

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

Уже в самом начале развития методов программирования стал применяться простой и эффективный приём выделения часто используемых алгоритмов в самостоятельные программы, получившие название библиотекой стандартных подпрограмм. Примером могут служить процедуры вычисления элементарных функций (синус, косинус и др.), а также процедуры обмена с внешними устройствами компьютера. Однажды составленные и откомпилированные, они в дальнейшем могут применяться программистами в своих задачах путём подсоединения их к разработанному коду основного алгоритма. В более широком плане эта идея нашла своё выражение в технологии модульного программирования, которая заложена во всех современных системах программирования. В данный момент для нас важно обратить внимание на тот факт, что для обеспечения комплектации оттранслированной программы вспомогательными подпрограммами требуются специальные средства.

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

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

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

Трассировка – это отслеживание (ведение протокола) работы программы. В процессе трассировки программист может проследить порядок исполнения операторов, а также динамику изменения значений переменных программы.

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

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

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

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

В настоящее время при разработке программ существует возможность частично избавить себя от «рутины» с помощью, так называемых средств автоматизированной генерации кода, в некоторых случаях эти средства умеют самостоятельно создавать программный код, выполняющий определенные стандартные действия. Примером таких средств может служить MS Visual Studio .NET, которая автоматически создает и заполняет полями класс «Форма» при создании новой формы и наполнении его различными компонентами. Необходимость в создании документации неизбежно возникает в любом технологическом процессе. Процесс разработки программного обеспечения не является исключением. На всех этапах этого процесса создается масса документов различной направленности. Таким образом, создание документации – задача не менее важная, чем создание программного кода, и в ее решении нам помогают различные программные средства.

Мы рассмотрели компоненты, входящие в систему программирования. Это и редакторы кода, и трансляторы, и сборщики, и отладчики. При первом же знакомстве со всеми этими программами становится понятно, что каждая из них может работать с разными начальными установками. Так, например, можно настроить множество параметров для редактора кода: цвет фона, цвет шрифта, шрифт, размер символа табуляции и еще сотню разных характеристик. Для компилятора можно указать, как оптимизировать код: по скорости, по размеру, никак не оптимизировать, а также есть возможность управления многими другими параметрами. Аналогично обстоит дело практически со всеми составляющими системы программирования.

Для устранения неудобств и повышения эффективности процесса разработки разработчики систем программирования стали строить их в виде так называемых интегрированных сред разработки. Термин «интегрированная» в названии среды означает, что она включает в себя в качестве элементов все необходимые инструменты для выполнения полного цикла работ над программой: написания, компиляции, построения исполняемого модуля, запуска, отладки.

Интегрированная среда разработки (IDE – Integrated Development Environment) – это специальная программная система, предоставляющая возможность удобной совместной работы с различными компонентами системы программирования.

Кроме того, интегрированные среды разработки ПО позволяют выполнять и другие операции: визуально (в диалоге) производить быструю настройку параметров каждого из компонентов системы программирования; сохранять разные системы настроек и загружать их по мере необходимости; осуществлять запуск одного или сразу нескольких компонентов системы программирования нажатием нескольких клавиш или выбором соответствующих пунктов меню и многое другое.

Единственный минус таких сред является прямым следствием их главного плюса – собрав «под одной крышей» большой набор инструментов, интегрированная среда сама становится весьма сложной программой системой. Однако время, потраченное на ее изучение, окупается в дальнейшем. И, наконец, еще один положительный момент – устройство большинства сред одинаково в концептуальном плане.

Платформа .NET – это совокупность всех средств разработки, распространения и выполнения приложений .NET, включая операционные системы, серверы, сервисы, стандарты, спецификации и документацию.

В состав платформы входят следующие программные средства. В первую очередь это средства разработки приложений – Visual Studio .NET. Созданные приложения выполняются при помощи надстройкой над операционной средой .NET Framework – и это второй элемент платформы. Специально для нужд .NET разработано семейство серверных операционных систем Windows. И наконец, расширяемый набор служб .NET объединяет службы со стандартными функциями, используемыми приложениями.

Архитектура .NET – это устройство платформы .NET со всеми ее составными частями и схемами взаимодействия между ними. Говоря об архитектуре, имеют в виду общие принципы и правила создания и использования приложений .NET, представленные в виде описаний, спецификаций и стандартов.

Операционная среда .NET Framework– это важнейшая составная часть платформы .NET, обеспечивающая разработку, распространение и выполнение приложений .NET. Ее роль настолько велика, что довольно часто происходит подмена понятий и под заголовком «Архитектура .NET» находишь хорошее, подробное описание .NET Framework. Поэтому всегда нужно помнить, что .NET Framework – это составная часть платформы .NET. Именно она представляет наибольший интерес для разработчиков. Хочешь писать приложения для .NET, – знай устройство .NET Framework.

Приложения .NET– тип приложений, которые могут выполняться только под правлением операционной среды, т. к. они откомпилированы не в двоичный код операционной системы, а в коды промежуточного языка MSIL. Такие приложения не могут напрямую вызвать, к примеру, функцию Win API, а всегда обращаются к операционной среде как промежуточному слою, изолирующему приложение от деталей реализации операционной системы.

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

Visual Studio .NET– это высокопроизводительный, интегрированный, расширяемый набор средств поддержки полного жизненного цикла, в том числе для командной разработки, приложений. Во все последние версии в состав VS входят компиляторы трех языков – VB, VC#, VC++, F# и Java. И все же именно первые два фактически олицетворяют собой эту системы. Ведь VC++, несмотря на появление в нем расширений для создания управляемого кода, все же ориентирован на разработку программ в классической архитектуре Win API, и его роль в создании прикладных решений заметно снижается.

Платформа.NET Framework является надстройкой над операционной системой, в качестве которой может быть Windows. Платформа .NET Framework включает в себя:

  • четыре официальных языка: VB, VC#, VC++ и F#;
  • объектно-ориентированную среду CLR (Common Language Runtime), совместно используемую этими языками для создания различных приложений;
  • ряд связанных между собой библиотек классов под общим именем FCL (Framework Class Library).

Библиотека классов FCL – статический компонент каркаса. Понятие каркаса приложений – Framework Applications появилось достаточно давно, оно широко использовалось еще в четвертой версии VS.

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

Единство каркаса. Каркас стал единым для всех языков среды разработки. Поэтому, на каком бы языке программирования не велась разработка, она использует классы одной и той же библиотеки. Многие классы библиотеки, составляющие общее ядро, используются всеми языками. Отсюда единство интерфейса приложения, на каком бы языке оно не разрабатывалось, единство работы с коллекциями и другими контейнерами данных, единство связывания с различными хранилищами данных и прочая универсальность.

Встроенные примитивные типы. Важной частью библиотеки FCL стали классы, задающие примитивные типы, те типы, которые считаются встроенными в язык программирования. Типы каркаса покрывают основное множество встроенных типов, встречающихся в языках программирования. Типы языка программирования проецируются на соответствующие типы каркаса. Тип, называемый в языке VB– Integer, а в языках С++ и C# — int, проецируется на один и тот же тип каркаса System.Int32. В языке программирования, наряду с «родными» для языка названиями типов, разрешается пользоваться именами типов, принятыми в каркасе. Поэтому, по сути, все языки среды разработки могут пользоваться единой системой встроенных типов, что, конечно, способствует облегчению взаимодействия компонентов, написанных на разных языках.

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

Архитектура приложений. Существенно расширился набор возможных архитектурных типов построения приложений. Помимо традиционных Windows- и консольных приложений, появилась возможность построения Web-приложений. Большое внимание уделяется возможности создания повторно используемых компонентов – разрешается строить библиотеки классов, библиотеки элементов управления и библиотеки Web-элементов управления.

Общеязыковая исполнительная среда CLR – динамический компонент каркаса. Важным шагом в развитии каркаса Framework .Net стало введение динамического компонента каркаса – исполнительной среды CLR. С появлением CLR процесс выполнения приложений стал другим.

Двухэтапная компиляция. Управляемый модуль и управляемый код. Компиляторы языков программирования, включенные в VS, создают код на промежуточном языке IL (Intermediate Language) – ассемблерном языке. В результате компиляции проекта, содержащего несколько файлов, создается так называемый управляемый модуль – переносимый исполняемый файл (Portable Executable или PE-файл). Этот файл содержит код на IL и метаданные – всю информацию, необходимую для CLR, чтобы под ее управлением PE-файл мог быть исполнен. Метаданные доступны и конечным пользователям. В зависимости от выбранного типа проекта, PE-файл может иметь разные уточнения — exe, dll, mod или mdl.

Исполнительную среду следует рассматривать как виртуальную IL-машину. Эта машина транслирует «на лету» требуемые для исполнения участки кода в команды реального процессора, который в и выполняет код.

Виртуальная машина. Отделение каркаса от студии явилось естественным шагом. Каркас Framework .Netперестал быть частью студии, а стал надстройкой над операционной системой. Теперь компиляция и создание PE модулей на IL отделено от выполнения, и эти процессы могут быть реализованы на разных платформах.

Framework .Net является свободно распространяемой виртуальной машиной. Это существенно расширяет сферу его применения. Производители различных компиляторов и сред разработки программных продуктов предпочитают теперь также транслировать свой код в IL, создавая модули в соответствии со спецификациями CLR. Это обеспечивает возможность выполнения их кода на разных платформах.

Компилятор JIT, входящий в состав CLR, компилирует IL код с учетом особенностей текущей платформы. Благодаря этому создаются высокопроизводительные приложения.

Исключительные ситуации. Что происходит, когда при вызове некоторой функции (процедуры) обнаруживается, что она не может нормальным образом выполнить свою работу? Возможны разные варианты обработки такой ситуации. Функция может возвращать код ошибки или специальное значение, может выбрасывать исключение, тип которого характеризует возникшую ошибку. В CLR принято во всех таких ситуациях выбрасывать исключение. Косвенно это влияет и на язык программирования. Выбрасывание исключений наилучшим образом согласуется с исполнительной средой. В языках VB и C# выбрасывание исключений, их дальнейший перехват и обработка – основной рекомендуемый способ обработки исключительных ситуаций.

События. У CLR есть свое видение того, что представляет собой тип. Есть формальное описание общей системы типов CTS. В соответствии с этим описанием, каждый тип, помимо полей, методов и свойств, может содержать и события. При возникновении событий в процессе работы с тем или иным объектом данного типа посылаются сообщения, которые могут получать другие объекты. Механизм обмена сообщениями основан на делегатах – функциональном типе. Надо ли говорить, что в язык VB встроен механизм событий, полностью согласованный с возможностями CLR.

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

В настоящее время компания Microsoft выпустила версию Visual Studio 2013, которая покрывают потребности всех категорий разработчиков – от начинающих программистов до профессионалов высшего класса.

На сайте компании Microsoft (http://www.visualstudio.com) можно получить любую информацию по интегрированной среде Visual Studio.

Мы рекомендуем остановить свой выбор на версии Visual Studio Professional 2013. Для того, чтобы установить на свой компьютер VS, необходимо, прежде всего, провести инсталляцию этой системы.

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

Для получения бесплатных версий VS, можно воспользоваться акцией Microsoft – DreamSpark (https://www.dreamspark.com/Default.aspx), которая создана для поддержки технического образования путем предоставления доступа к программному обеспечению компании учебных, преподавательских и исследовательских целей.

Статьи к прочтению:

Разработка MVC приложения на Java за два часа | Компьютерная школа Hillel


Похожие статьи: