Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Интегрированные среды разработки программ ( Microsoft Visual Studio )

Содержание:

ВВЕДЕНИЕ

Важнейшим элементом современного программирования является программные средства, позволяющие создавать программы. Такой класс инструментального программного обеспечения получил название интегрированных сред разработки (integrated developer environment – IDE). Современные среды разработки программного обеспечения предоставляют разработчику-программисту высокоразвитые инструменты, которые существенным образом сокращают время проектирования и реализации программ, а также позволяют сделать разрабатываемое программное обеспечение значительно более качественным. Наряду с этим, использование интегрированной среды разработки существенным образом облегчает труд программиста.

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

Хорошо известно, что на сегодняшний день законодателем «мод» в области разработки системного и прикладного программного обеспечения в целом и интегрированных сред разработки в частности является корпорация Microsoft. Наиболее известной и используемой интегрированной средой разработки этого производителя является пакет Visual Studio.NET, в котором поддерживаются такие языки программирования как Visual Basic.NEТ, Visual C++, Visual C# и Visual J#.

1. Теоретические основы интегрированной среды разработки приложений

1.1. Концепция интегрированной среды разработки приложений

Интегрированная среда (integrated development environment – IDE) – набор инструментов для разработки и отладки программ, имеющий общую интерактивную графическую оболочку, поддерживающую выполнение всех основных функций жизненного цикла разработки программы – набор и редактирование исходного текста (кода), компиляцию (сборку), исполнение, отладку, профилирование и командную разработку [7].

Использование интегрированной среды – один из возможных подходов к разработке программ. Альтернативой ему является более ранний, традиционный подход системы UNIX, основанный на использовании набора инструментов (toolkit, toolbox), родственных по тематике и функциональности, но не объединенных в одну интегрированную интерактивную среду и подчас (в ранних версиях системы UNIX) вызываемых в режиме командной строки (command line interface).

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

Одной из первых интегрированных сред стала среда Turbo Pascal [4] фирмы Borland, руководителем разработки которой в середине 1980-х гг. стал Филипп Кан, ученик Никлауса Вирта.

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

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

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

Обычно IDE ориентирована на определенный язык программирования, предоставляя набор функций, который наиболее близко соответствует парадигмам этого языка программирования.

Однако, есть некоторые IDE с поддержкой нескольких языков, такие как Eclipse, ActiveState Komodo, последние версии NetBeans, Microsoft Visual Studio, WinDev, и Xcode. IDE обычно представляет из себя единственную программу, в которой проводилась вся разработка. Она обычно содержит много функций для создания, изменения, компилирования, развертывания и отладки программного обеспечения.

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

Также считается, что трудная интеграция задач разработки может далее повысить производительность. Например, IDE позволяет проанализировать код и тем самым обеспечить мгновенную обратную связь и уведомить о синтаксических ошибках. В то время как большинство современных IDE является графическим, они использовались еще до того, как появились системы управления окнами (которые реализованы в Microsoft Windows или X11 для unix-систем). Они были основано на тексте, используя функциональные клавиши или горячие клавиши, чтобы выполнить различные задачи (например, Turbo Pascal). Использование IDE для разработки программного обеспечения является прямой противоположностью способа, в котором используются несвязанные инструменты, такие как текстовый редактор, компилятор и т.п.

1.2. Компоненты интегрированной среды разработки приложений

Компонентами интегрированной среды разработки приложений являются:

– инструменты управления процессами;

– инструменты управления проектом;

– инструменты конфигурационного управления;

– инструменты верификации;

– инструменты поддержки разработки документации.

Выделяют три уровня интеграции инструментов в интегрированных средах.

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

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

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

Особенности интегрированных сред:

– поддерживают различные методологии;

– определяют технологию разработки;

– применяются командами, работающими вместе над несколькими проектами;

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

– разрабатываются одной компанией, но имеется возможность интеграции с инструментами третьих фирм [5].

2. ИСТОРИЯ ПОЯВЛЕНИЯ И РАЗВИТИЯ ИНТЕГРИРОВАННЫХ СРЕД

2.1. Краткие сведения

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

Dartmouth BASIC был первым языком, который был создан с ИСР, и был также первым, который был разработан для использования в консоли или терминале. Эта ИСР (часть Dartmouth Time Sharing System) управлялась при помощи команд, поэтому существенно отличалась от более поздних, управляемых с помощью меню и горячих клавиш, и тем более графических ИСР, распространённых в XXI веке. Однако она позволяла править исходный код, управлять файлами, компилировать, отлаживать и выполнять программы способом, принципиально подобным современным ИСР.

Maestro I – продукт от Softlab Munich, был первой в мире интегрированной средой разработки для программного обеспечения в 1975 г. и, возможно, мировым лидером в этой рыночной нише в течение 1970-х и 1980-х годов. Он был установлен у 22000 программистов во всем мире. До 1989 года 6000 копий было установлено в Федеративной Республике Германия [6]. Ныне Maestro I принадлежит истории и может быть найден разве что в Музее Информационной технологии в Арлингтоне (рисунок 1).

Рисунок 1 – Клавиатура Maestro

2.2. Предпосылки создания ИСР в России

Идея интегрированных сред достигла еще большего развития к середине 1980-х гг., когда появились две группы популярных интегрированных сред:

1. Турбо-среды (Turbo Pascal, Turbo C, Turbo C++, Delphi и др.) фирмы Borland для поддержки программирования на этих языках, реализованные сначала для операционной системы MS DOS, затем – для ОС Windows;

2. GNU Emacs – многоязыковая и многоплатформная интегрированная среда разработки, реализованная для MS DOS, затем для Windows, OpenVMS и для Linux.

Следует также упомянуть интегрированную среду тех лет для разработки программ на объектно-ориентированном языке Smalltalk фирмы Xeror PARC – одну из первых интегрированных сред ООП, в которой впервые появилось понятие байт-кода как бинарной постфиксной формы промежуточного представления программы и понятие just-in-time (JIT, динамического) компилятора, выполняющего при первом вызове метода его компиляцию в платформно-зависимый (native) код целевого компьютера [9].

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

Турбо-среды имели встроенный механизм сборки (build) для полной компиляции всех исходных текстов проекта в бинарный код, а также режим make (F9), аналогичный функциональности классической утилиты make системы UNIX, для повторной компиляции только измененных модулей исходного текста.

Самым важным нововведением в среде Турбо-Паскаль было расширение входного языка объектно-ориентированными концепциями (класс, объект) и конструкцией unit (модуль), воплощающей в себе идею независимой единицы компиляции (compilation unit). Поддержка ООП появилась в версии 5.5. Впоследствии эти идеи были развиты, уже на платформе Windows, в новых версиях интегрированных сред фирмы Borland – Borland Pascal и Delphi (язык программирования фирмы Borland, развивающий идеи Паскаля в сочетании с ООП).

В России в начале 1990-х гг. было разработано большое число инструментов и приложений на объектно-ориентированном Турбо-Паскале (5.5, 6.0), объемом до нескольких десятков тысяч строк исходного текста (компиляторов, экспертных систем, систем расчета непотопляемости судов, для ВМФ, и др.), используя, по современным понятиям, более чем скромную конфигурацию оборудования – IBM PC с 640 килобайтами памяти под управлением MS DOS. Для размещения в памяти попеременно больших исполняемых модулей использовалась оверлейная структура (overlay).

Ограничение в 640 килобайт (максимальный размер исполняемой программы в MS DOS) накладывало весьма серьезные ограничения на размер единицы компиляции, даже если фактически память компьютера имела больший объем, например, 2 МБ. Вследствие ограниченного объема памяти приходилось искусственно разбивать модули (units) на части.

2.3. История развития Microsoft Visual Studio

Visual Studio (1995). Иитегрированная среда Microsoft Visual Studio берет свое начало с 1995 года, когда была выпущена первая версия продукта под таким названием. До этого в начале 1990-х гг. Microsoft выпускала отдельные продукты для поддержки программирования на языках высокого уровня [11]:

- Microsoft Visual C++ – интерактивная среда программирования на языке Visual C++, расширении языка C++, разработанном и реализованном фирмой Microsoft. Язык Visual C++ в составе всех версий Visual Studio и ныне остается наиболее популярным и широко используемым языком программирования в мире;

- Visual Basic – объектно-ориентированное расширение языка BASIC, разработанное и реализованное фирмой Microsoft, которое сразу начало активно использоваться программистами всего мира, так как сочетало в себе простоту языка BASIC с новейшими объектно-ориентированными расширениями. Многие коллеги- программисты еще в начале 1990-х гг. рассказывали об удобстве Visual Basic и предпочитали именно на нем разрабатывать программы управления GUI;

- Microsoft Visual FoxPro – интерактивная среда программирования на языке Visual FoxPro – объектно-ориентированном языке с элементами процедурного программирования, разработанном под названием FoxBase первоначально небольшой фирмой Fox Software. Привлекательной чертой этого языка для многих пользователей стали возможности обращения непосредственно из программы на этом языке к базам данных, основанных на языке SQL, в частности, программирование SQL-запросов на языке FoxPro;

- Microsoft Visual SourceSafe – разработанная фирмой Microsoft система управления версиями исходных кодов, впоследствии интегрированная со средой Visual Studio.

Все эти продукты были объединены с 1995 г. «под одной крышей» под названием Visual Studio. Новая среда получила сразу номер версии 4.0, видимо, потому, что в отдельном виде описанные выше компоненты среды уже выпускались до этого в течение нескольких лет.

Даже в столь ранней версии среда Visual Studio обрела весьма широкую популярность. Например, фирма Sun Microsystems, которая в том же 1995 г. выпустила новый язык и технологию программирования Java, – в качестве основы для реализации своих платформно-независимых Java-библиотек Abstract Windows Toolkit (AWT) для поддержки разработки GUI для платформы Windows использовала именно среду Visual Studio и реализованный в ней язык Visual C++.

В 1990-х гг. в среде университетских программистов среда Visual Studio называлась ласковым дружеским именем «вижуалка», с ударением на первое «а». Это не случайно: среда Visual Studio уже к тому времени стала надежным партнером в разработках наших программистов, что подтверждает дружественность и удобство ее интерфейса. Для сравнения, к тому времени та же фирма Sun не имела столь же популярной среды программирования. Среда NetBeans для программирования на Java появилась немного позднее – в 1997 году, как результат работы небольшой группы пражских студентов-программистов из Карлова университета. Важную роль в широком распространении среды Visual Studio внесла подписка на MSDN (Microsoft Developers' Network), благодаря которой стало возможным получать новейшие программные разработки Microsoft.

Visual Studio 97 (5.0). Новая (пятая) версия Visual Studio, известная также как Visual Studio 97 и под кодовым названием Boston, была выпущена в 1997 году. Ее новыми возможностями и инструментами стали Visual Studio InterDev – инструмент разработки интерактивных Web-сайтов на основе технологии ASP (Active Server Pages) – и Visual Java++ – среда программирования на Java «от Microsoft».

Технология ASP – выдающаяся разработка фирмы Microsoft в области Web-программирования, появилась в 1994-1995 гг. Предназначена для разработки активных Web-страниц – шаблонов для генерации HTML-страниц для клиентских браузеров в качестве ответов на Web-запросы. Она используется до сих пор на многих сайтах. На ее основе впоследствии была разработана технология ASP.NET[12].

Что касается инструмента Visual Java++, то с ним связаны события совсем другого рода – иногда подобное, к сожалению, происходят в мире ИТ, что неизбежно при острой конкуренции компаний. Фирма Microsoft познакомилась с новой Java-технологией фирмы Sun и, в качестве ответа на нее в конкуренции с фирмой Sun, разработала собственное расширение языка Java и реализовала его в новой среде под названием Visual Java++. Однако, к сожалению, эти действия не вполне соответствовали официальному порядку реализации Java, введенному фирмой Sun. До сих пор (хотя ныне владельцем Java-технологии является фирма Oracle, этот порядок фактически не изменился) название Java является официально зарегистрированным товарным знаком. Поэтому, чтобы выпустить новую реализацию Java, необходимо приобрести лицензию у фирмы-владельца Java-технологии, и пропустить для новой реализации Java специальный набор тестов на реализацию языка, библиотек и виртуальной машины, под названием Java Compatibility Kit (JCK) для проверки соответствия реализации ведомственным стандартам Java. Только если все эти тесты полностью, на 100%, пройдут, новая реализация получает право именоваться «Java». К сожалению, для реализации Visual Java++ фирмы Microsoft тесты JCK не прошли, ввиду реализованных в системе Visual Java++ расширений языка. Дело вылилось, к сожалнению для обеих компаний, в длительное судебным разбирательство между Sun и Microsoft, которое было выиграно фирмой Sun, в результате чего продукт фирмы Microsoft был переименован в VJ++ (без явного упоминания названия Java). С моей точки зрения, подобные инциденты хотя и неизбежны, но весьма нежелательны, так как с обеих сторон в них участвуют, иногда в течение нескольких лет, выдающиеся технические специалисты, тратя на все это много времени, сил и здоровья. Однако впоследствии, в 2004 году, фирмы Sun и Microsoft пришли к мировому соглашению, заключив беспрецедентное соглашение об интеллектуальной собственности сроком на 10 лет.

Таким образом, версия Visual Studio 5.0 является интегрированной средой программирования на языках Visual C++, Visual Basic, VJ++, имеющей в своем составе также инструмент Visual Studio InterDev для разработки интерактивных Web-сайтов по технологии ASP.

Visual Studio 6.0 (1998). Следующая версия Visual Studio (6.0, под кодовым названием Aspen) вышла в 1998 году. В нее, кроме уже новых версий уже известных нам компонент – Visual C++, Visual Basic, VJ++ и InterDev, (в максимальном варианте – Visual Studio Enterprise Edition) вошли также следующие новые компоненты для поддержки визуального моделирования и анализа производительности программ:

– Application Performance Explorer;

– Automation Manager;

– Microsoft Visual Modeler;

– RemAuto Connection Manager;

– Visual Studio Analyzer.

Visual Studio 6.0 – версия, использованная фирмой Microsoft в качестве основы для создания новой версии интегрированной среды, включающей единую многоязыковую виртуальную платформу для выполнения программ – .NET.

Visual Studio.NET (2002). Версия Visual Studio 7.0, известная также под названием Visual Studio.NET и под кодовым названием Rainier, была выпущена в 2002 году. Наиболее важное нововведение в данной версии – реализация многоязыковой платформы .NET Framework, обеспечивающей надежное и безопасное программирование с полным контролем типов и безопасности на базе управляемого кода (managed code), общей инфраструктуры языков (Common Language Infrastructure – CLI), единого промежуточного языка (Common Intermediate Language – CIL), общей системы типов (Common Type System – CTS).

Платформа .NET описана в многих источниках. На платформе .NET все компиляторы транслируют исходный код с соответствующего языка (C#, C++, Visual Basic и т.д.) в бинарный формат единого промежуточного кода CIL – постфиксную запись инструкций виртуальной машины .NET – Virtual Execution System (VES). Обеспечиваются: совместимость в рамках одного .NET-приложения кодов, откомпилированных с различных языков; единый механизм контроля типов и безопасности на основе метаданных; единая среда выполнения, включающая единый многоязыковый механизм обработки исключений.

Версия Visual Studio .NET 2002 была выпущена в четырех вариантах (изданиях): Academic, Professional, Enterprise Developer, Enterprise Architect.

Поистине замечательные изменения и дополнения были реализованы в языках, поддерживаемых в среде Visual Studio.

Прежде всего, был разработан и реализован новый язык программирования – C#, на мой взгляд – наиболее мощный, современный и полный язык программирования в настоящее время [1].

Значительные расширения были реализованы в языках Visual C++ и Visual Basic. Фактически, несмотря на некоторую разницу в синтаксисе, эти языки стали «равновеликими» языку C#, предоставляя почти аналогичные возможности. Новая версия языка Visual C++, совместимая с .NET, получила название Managed C++, а новая версия языка Visual Basic, совместимая с .NET, – название Visual Basic.NET.

Visual Studio.NET 2003. В следующем, 2003 году была выпущена новая версия Visual Studio.NET под кодовым названием Everett. С точки зрения развития продукта в целом, данная версия не внесла существенных изменений: основная цель выпуска новой версии состояла в том, чтобы обеспечить обновление до версии .NET Framework 1.1. Однако весьма важным нововведением Visual Studio 2003 была реализация версии .NET для мобильных устройств – .NET Compact Framework и поддержка разработки приложений для мобильных устройств средствами Visual Studio.

Как и предыдущая версия, Visual Studio 2003 выпущена в четырех изданиях: Academic, Professional, Enterprise Developer, Enterprise Architect. Причем в «максимальном» варианте – Enterprise Architect – в Visual Studio 2003 реализована поддержка средств моделирования программ в стиле другого популярного продукта – Microsoft Visio, в том числе – поддержка UML-диаграмм, визуализирующих архитектуру приложения.

Visual Studio.NET 2005. Следующая версия интегрированной среды Visual Studio 2005 (под кодовым названием Whidbey) вышла в 2005 году.

Основные нововведения версии касались параметризованных типов данных (generics). Они были реализованы в версии языка C# 2.0 и в .NET Framework 2.0. Интересно отметить, что в это же время аналогичные возможности были реализованы в языке Java 1.5, однако подчеркнем, что механизм generics на платформе .NET и в языке C# реализован в более удобном, гибком и расширенном варианте, по сравнению с Java.

Другая группа усовершенствований касалась ASP.NET – развития технологии ASP, предназначенной для реализаци и активных Web-страниц, в сочетании с надежностью и безопасностью кода, присущими платформе .NET. В версии Visual Studio 2005 впервые были реализованы дополнительные виды проектов для поддержки концепции ASP.NET Web-сервисов. Отметим, что средства Web-программирования в .NET заслуживают особого внимания для изучающих эту платформу и Web-программирование в целом. Только ради одного их изучения и использования каждый программист должен хорошо знать платформу .NET и практически владеть ею.

Именно для этой версии среды Visual Studio был реализован plug-in под названием Aspect.NET Framework – GUI для управления аспектами в стиле, близком к визуальному стилю самой интегрированной среды. Интерактивные возможности и удобство Aspect.NET были высоко оценены пользователями, и именно в этом варианте система Aspect.NET распространилась в 26 странах мира.

Другой известный проект, реализованный как plug-in к Visual Studio.NET 2005, – это проект Knowledge.NET, расширение языка C# средствами представления знаний (фреймами, наборами правил, онтологиями), позволяющий сочетать традиционный стиль программирования на языке C # с использованием знаний [3].

Visual Studio.NET 2008. В 2008 году была выпущена следующая версия Visual Studio – Visual Studio.NET 2008 (Orcas). Внутренний номер версии среды Visual Studio в корпорации Microsoft – Visual Studio 9. Эти номера полезно иметь в виду, так как при описании развития Visual Studio сотрудники Microsoft (например, в блогах) часто используют эти внутренние номера версий. Версия Visual Studio 2008 предназначена для ОС Windows Vista. Она соответствует версии другого популярного продукта Microsoft Office 2007 и содержит развитые средства поддержки Web-программирования. Версия .NET Framework, соответствующая версии Visual Studio 2008, – это .NET Framework 3.5.

В версии VS 2008 введен новый визуальный дизайнер приложений, использующих Windows Presentation Foundation (WPF) – API для поддержки GUI.

В отладчике VS 2008 реализована поддержка отладки многопоточных приложений.

В версию VS 2008 впервые не была включена поддержка языка J#, – расширения языка Java фирмы Microsoft, о котором говорилось выше. Вместо этого пользователям был предложен входящий в среду инструмент Java Language Converter Assiatant (JLCA) для переноса приложений из языка и среды Java в среду .NET.

Версия VS 2008 – на данный момент последняя версия среды Visual Studio, в которой имеется поддержка важного внутреннего продукта Microsoft – Phoenix, инструментария для разработки оптимизирующих компиляторов и языковых процессоров. Это совместный продукт Microsoft Research и Microsoft Product Team. Phoenix использовался для реализации внедрения (weaving) аспектов в целевые приложения в системе Aspect.NET, так как Phoenix имеет удобное высокоуровневое внутреннее представление – Phoenix High-Level IR (HIR), в терминах которого удобно выполнять трансформации программ. Также Phoenix содержит удобный инструмент для генерации бинарной сборки .NET по этому внутреннему представлению, который и выполняет в нашей системе Aspect.NET генерацию результирующей бинарной сборки после внедрения в нее аспектов. В настоящее время Phoenix используется для проекта Microsoft Research Midori – новой операционной системы, написанной полностью в среде .NET на managed-коде.

Visual Studio.NET 2010. В апреле 2010 г. была выпущена версия Visual Studio 2010. Наиболее важное нововведение в Visual Studio (внутренний номер версии – 10, кодовое название – Dev10) – появление в «джентльменском наборе» поддерживаемых языков еще одного языка – функционального языка F#. Автором языка является Дон Сайм (Don Syme) из Microsoft Research, Кембридж, Великобритания. Язык F# сочетает в себе возможности чисто функционального программирования со средствами объектно-ориентированного программирования, параллельного программирования и средствами интеграции со всеми остальными возможностями .NET Framework и Visual Studio. Это весьма перспективный язык, нашедший себе много приверженцев, в особенности среди молодых программистов.

Первоначально планировалось, что в состав Visual Studio 2010 войдет продукт Phoenix и разработанный на его основе оптимизирующий компилятор с языка Visual C++, который должен был по производительности генерируемого бинарного кода превзойти имеющуюся, прежнюю, версию компилятора Visual C++. Однако, к сожалению, эти планы не были осуществлены – команда Phoenix не уложилась в сроки, поставленные руководством проекта Visual Studio [10].

В «максимальной» версии – Visual Studio 2010 Ultimate – имеются средства отображения структуры проектов с помощью UML-диаграмм, а также компонента Test Impact Analysis для оценки влияния модификации исходного кода проекта на пропускаемые группы тестов, что удобно, так как позволяет избежать излишних пропусков тестов. Имеется также отладчик IntelliTrace, позволяющий запоминать историю отладки и полностью ее состояние, включая историю многопоточности (а не только стек текущего потока).

Следует отметить поддержку в Visual Studio 2010 облачных вычислений. Для этого появились новые виды проектов Microsoft Azure Project. Для их использования необходимо инсталлировать для Visual Studio 2010 специальный инструментарий – Microsoft Azure SDK.

Visual Studio 2012. В августе 2012 года вышла версия Visual Studio 2012 под кодовым названием Metro Theme. В ней был улучшен пользовательский интерфейс, разработан новый инструмент просмотра проектов (solution explorer), улучшена поддержка цветов для выделения фрагментов кода. Как отмечает Microsoft, общий размер исходного кода для Visual Studio 2012 достиг 50 миллионов строк.

3. ВОЗМОЖНОСТИ СОВРЕМЕННЫХ ИНТЕГРИРОВАННЫХ СРЕД

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

  1. Единая интерактивная оболочка, обеспечивающая вызов всех других компонент, не выходя из среды, с широким использованием функциональных клавиш;
  2. Текстовый редактор для набора и редактирования исходных текстов программ. В недавнем прошлом в отечественной традиции использовался именно термин исходный текст, впоследствии стал использоваться термин исходный код (source code);
  3. Система поддержки сборки (build), то есть компиляции проектов из исходных кодов, включающая компилятор с исходного реализуемого языка и компоновщик (linker) объектных бинарных кодов в единый исполняемый код (загрузочный модуль); компоновщик используется либо штатный, входящий в состав операционной системы, либо специфичный для данной среды;
  4. Отладчик (debugger) для отладки программ в среде с помощью типичного набора команд: установить контрольную точку остановки; остановиться в заданной процедуры (методе); визуализировать значения переменных (или, на более низком уровне, регистров и областей памяти).
  5. Современные текстовые редакторы в интегрированных средах обеспечивают также режим автоматического завершения кода (code completion), который в них включен по умолчанию и в котором редактор среды подсказывает разработчику кода возможные и синтаксически правильные его продолжения – например, отсутствие закрывающей скобки, отсутствие точки с запятой; возможные варианты имен методов при вызове метода от объекта какого-либо определенного класса, и т.д.

В современных версиях интегрированных сред появились также следующие возможности (компоненты) [8]:

  1. Профилировщик (profiler) – инструмент для накопления и анализа статистических данных, полученных в результате исполнения программы под управлением интегрированной среды: число вызовов процедур (методов), объем памяти, используемой при выполнении программы, и т.д.
  2. Рефакторинг (refactoring) – инструментарий систематических групповых модификаций программ в среде, без принципиальных изменений их функциональности, с целью улучшения кода. К типичным подобным действиям относится, например, изменение имени метода в его определении и во всех использованиях, добавление его аргумента, добавление try/catch – блока для обработки ранее не учтенного исключения и т.п.
  3. Генератор тестов (unit test generator) – инструмент для генерации типовых тестов для тестирования модулей (units) – методов или процедур – с различными возможными сочетаниями значений аргументов; типичные примеры – инструмент JUnit в интегрированных Java-средах и аналогичный инструмент NUnit в среде Visual Studio
  4. Система управления версиями исходных кодов (source code control system) или инструмент интеграции среды с одной из существующих версионных систем (CVS, RCS, Mercurial, Visual SourceSafe и др.) – поддержка управления версиями файлов исходных кодов проектов в среде при сопровождении программ
  5. Инструменты поддержки командной разработки программ (teamwork) – этапов жизненного цикла программы (требования и спецификации, проектирование, реализация, тестирование), распределения заданий по разработке среди участников команды программистов, контроля выполнения заданий менеджером проекта. В среде Visual Studio такая компонента называлась сначала Team Foundation Server (TFS), а, начиная с версии Visual Studio 2013, она реализована в виде облачного интерфейса и получила название Visual Studio Online.
  6. Инструменты анализа кода (code analysis) – его семантической корректности: отсутствие некоторых видов ошибок, обнаруживаемых обычно при исполнении, например, недостижимые условия; отсутствие необходимых проверок и полномочий безопасности и др. Эти возможности соответствуют духу и принципам надежных и безопасных вычислений (trustworthy computing), сформулированным в 2002 г. корпорацией Microsoft и последовательно воплощаемым этой фирмой в жизнь. Также в современные среды встраиваются инструменты анализа кода в терминах метрик (metrics), характеризующих его сложность, – например, цикломатическое число графа потоков управления в программе, степень сцепления (взаимосвязанности) классов и т.д.
  7. Инструменты визуализации сгенерированного бинарного кода – методов, переменных, их имен и т.д. Например, в среде Visual Studio для этой цели имеется утилита ildasm (IL disassembler), позволяющая визуализировать единый промежуточный (бинарный) код платформы .NET – Common Intermediate Language – CIL, сгенерированный одним из компиляторов среды
  8. Инструменты «запутывания» кода (obfuscation), выполняющие именно с этой целью замену имен элементов кода – классов, методов, полей и т.д. на непонятные, «случайные», «запутанные» имена, с целью затруднения изучения декомпилированного бинарного кода, для защиты от «взлома» кода злоумышленниками, которые хотят несанкционированным образом присвоить себе новые идеи, содержащиеся в коде, либо изучить его со злонамеренными целями организации атак. Например, в среде Visual Studio имеется «штатный» обфускатор – DotFuscator.
  9. Поддержка создания различных видов программных проектов (projects) и решений (solutions) на основе типовых шаблонов кода (code patterns);
  10. Механизм разработки расширений (plug-ins, add-ins, add-ons). При современной разработке программ подчас требуется создавать очень сильно отличающиеся друг от друга разновидности приложений и инструментов – консольные (простейшие) приложения, Web-приложения и Web-сервисы, мобильные приложения, облачные приложения и др. Для каждой из этих разновидностей требуется разработка специфической структуры файлов исходного кода, а также конфигурационных файлов (configuration files), специфицирующих, например, полномочия безопасности кода, Web-конфигурации и др. Современные интегрированные среды автоматизируют создание различного рода проектов, предоставляя шаблоны исходного кода и генерируя автоматически необходимые для проекта конфигурационные файлы. Трудно представить в настоящее время программирование без использования готовых шаблонов кода, которое неизбежно будет чревато ошибками, – например, очень легко забыть вручную создать тот или иной файл, неотъемлемую часть проекта, либо упустить из вида какой-либо важный фрагмент кода (например, инициировать асинхронный вызов, но не предусмотреть парный к нему вызов, его завершающий). Поэтому поддержка интегрированными средами различных видов проектов особенно важна. Кроме того, набор возможных видов проектов в современных интегрированных средах является расширяемым, т.е. разработчик может ввести в среду при необходимости новый вид проекта. Например, при реализации нашего инструмента аспектно-ориентированного программирования Aspect.NET как расширения интегрированной среды Visual Studio мы ввели новый вид проекта – аспект (aspect) с соответствующим шаблоном кода
  11. Поддержка моделирования структуры программ на языке моделирования UML (Unified Modeling Language). Современная версия языка UML (2.x) обеспечивает построение моделей различного рода программ и соответствующих этим моделям диаграмм. Кроме того, UML поддерживает разработку моделей деятельности при разработке программ и взаимодействия разработчиков между собой (activity diagrams).

4. ПЕРСПЕКТИВЫ РАЗВИТИЯ ИНТЕГРИРОВАННЫХ СРЕД

Первоначально интегрированные среды разрабатывались для программирования на каком-либо одном исходном языке. Например, среда Турбо-Паскаль – для программирования на расширении языка Паскаль фирмы Borland.

Однако постепенно проявилась тенденция к превращению таких моноязыковых интегрированных сред в многоязыковые, поскольку для разработки проектов на различных языках используются сходные принципы и механизмы и, кроме того, иногда удобно использовать в большим проекте фрагменты программы, написанные на разных языках. Например, хотелось бы использовать готовый унаследованный код (legacy code), написанный на более раннем языке (например, Си), чтобы не переписывать его заново, например, на C#, с единственной целью включения в проект.

Например, широко известная интегрированная среда NetBeans первоначально создавалась как студенческий проект Карлова университета в Праге для программирования на языке Java. В настоящее время среда NetBeans развилась в мощную многоязыковую интегрированную среду, в которой реализована компонента C / C++ development pack, обеспечивающий поддержку разработки проектов на языках C и C++ [2].

Отметим, что среда Visual Studio.NET с самого начала создавалась как многоязыковая среда. Это принципиальная установка фирмы Microsoft – дать возможность разработчикам выбрать наиболее удобный язык (или языки) для соответствующих частей разработанного проекта, а затем собрать проект из бинарных компонент (сборок – assemblies), полученных путем компиляции с соответствующих языков в единый бинарный промежуточный код CIL. Ниже мы еще раз рассмотрим подробнее эту удобную особенность Visual Studio и поддерживаемый ею набор языков.

ЗАКЛЮЧЕНИЕ

Интегрированная среда разработки программ Microsoft Visual Studio является уникальным примером активного инновационного развития и воплощает в себе целый сплав новых идей и инструментов в области разработки программного обеспечения.. За 23 года, с 1995 г., выпущено 12 ее версий, каждая из которых содержит большое число нововведений, включая новые языки программирования, средства командной разработки программ и многие другие.

Интегрированная среда Visual Studio активно развивается фирмой Microsoft и является одной из наиболее популярных в мире интегрированных сред разработки. За 19 лет выпущено 12 версий среды Visual Studio, реализованы такие новые языки, как C#, Visual C++ (и его расширение Managed C++ для платформы .NET), Visual Basic и его расширение для платформы .NET, функциональный язык F#, средства управления проектами, средства коллективной разработки и тестирования программ, средства разработки облачных приложений для платформы Microsoft Azure; выпущена и активно развивается многоязыковая объектно-ориентированная платформа Microsoft.NET. Все эти результаты являются уникальными, инновационными, новейшими, имеющими широкое распространение в мире.

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. C Sharp — Википедия. [Электронный ресурс]. - https://ru.wikipedia.org/wiki/C_Sharp
  2. NetBeans — Википедия. [Электронный ресурс]. - https://ru.wikipedia.org/wiki/NetBeans
  3. Е.Ф. Жарко Оценка качества программного обеспечения АСУ ТП: Теоритические основы, основные тенденции и проблемы // Sicpro. 2015. №15.
  4. Информатика. Базовый курс : учебное пособие для техн. вузов / под ред. С. В. Симоновича. – 2-е изд. – СПб. : Питер, 2004. – 640 с. – (Учебник для вузов).
  5. Макарова Н. В. Информатика: Учебник для вузов: учебное пособие / Макарова Н.В., Волков, В. Б. – Питер, 2011. – 412 с. – (Учебник для вузов)
  6. Михеева Е. В. Информационные технологии в профессиональной деятельности: учеб. пособие. – М.: Проспект, 2010. – 448 с.
  7. НОУ ИНТУИТ | Лекция | Концепция современной интегрированной среды разработки приложений [Электронный ресурс]. - https://www.intuit.ru/studies/courses/21188/1223/lecture/23386
  8. Основные возможности современных интегрированных сред. [Электронный ресурс]. - https://lektsii.org/6-69056.html
  9. Основы программирования / С. М. Окулов. – 6-е изд., перераб. – М.: БИНОМ. Лаборатория знаний, 2013. – 336 с.: ил. – (Развитие интеллекта школьников).
  10. Программная инженерия. [Электронный ресурс]. - http://software-testing.ru/files/se/3-10-software_engineering_quality.pdf
  11. Угринович, Н. Д. Информатика и информационные технологии. Учебник для 10-11 кл. / Н. Д. Угринович. – 4-е изд. – М. : БИНОМ. Лаборатория знаний, 2007. – 511 с. : ил.
  12. "ЭВМHISTORY": MS Visual Studio [Электронный ресурс]. - http://evmhistory.ru/programming/msvs.html