Файл: Интегрированные среды разработки программ ( Microsoft Visual Studio ).pdf
Добавлен: 04.04.2023
Просмотров: 355
Скачиваний: 2
СОДЕРЖАНИЕ
1. Теоретические основы интегрированной среды разработки приложений
1.1. Концепция интегрированной среды разработки приложений
1.2. Компоненты интегрированной среды разработки приложений
2. ИСТОРИЯ ПОЯВЛЕНИЯ И РАЗВИТИЯ ИНТЕГРИРОВАННЫХ СРЕД
2.2. Предпосылки создания ИСР в России
2.3. История развития Microsoft Visual Studio
3. ВОЗМОЖНОСТИ СОВРЕМЕННЫХ ИНТЕГРИРОВАННЫХ СРЕД
Следует отметить поддержку в 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. ВОЗМОЖНОСТИ СОВРЕМЕННЫХ ИНТЕГРИРОВАННЫХ СРЕД
Приведем основные возможности интегрированных сред разработки программ. Для каждой из них характерно наличие следующих компонент:
- Единая интерактивная оболочка, обеспечивающая вызов всех других компонент, не выходя из среды, с широким использованием функциональных клавиш;
- Текстовый редактор для набора и редактирования исходных текстов программ. В недавнем прошлом в отечественной традиции использовался именно термин исходный текст, впоследствии стал использоваться термин исходный код (source code);
- Система поддержки сборки (build), то есть компиляции проектов из исходных кодов, включающая компилятор с исходного реализуемого языка и компоновщик (linker) объектных бинарных кодов в единый исполняемый код (загрузочный модуль); компоновщик используется либо штатный, входящий в состав операционной системы, либо специфичный для данной среды;
- Отладчик (debugger) для отладки программ в среде с помощью типичного набора команд: установить контрольную точку остановки; остановиться в заданной процедуры (методе); визуализировать значения переменных (или, на более низком уровне, регистров и областей памяти).
- Современные текстовые редакторы в интегрированных средах обеспечивают также режим автоматического завершения кода (code completion), который в них включен по умолчанию и в котором редактор среды подсказывает разработчику кода возможные и синтаксически правильные его продолжения – например, отсутствие закрывающей скобки, отсутствие точки с запятой; возможные варианты имен методов при вызове метода от объекта какого-либо определенного класса, и т.д.
В современных версиях интегрированных сред появились также следующие возможности (компоненты) [8]:
- Профилировщик (profiler) – инструмент для накопления и анализа статистических данных, полученных в результате исполнения программы под управлением интегрированной среды: число вызовов процедур (методов), объем памяти, используемой при выполнении программы, и т.д.
- Рефакторинг (refactoring) – инструментарий систематических групповых модификаций программ в среде, без принципиальных изменений их функциональности, с целью улучшения кода. К типичным подобным действиям относится, например, изменение имени метода в его определении и во всех использованиях, добавление его аргумента, добавление try/catch – блока для обработки ранее не учтенного исключения и т.п.
- Генератор тестов (unit test generator) – инструмент для генерации типовых тестов для тестирования модулей (units) – методов или процедур – с различными возможными сочетаниями значений аргументов; типичные примеры – инструмент JUnit в интегрированных Java-средах и аналогичный инструмент NUnit в среде Visual Studio
- Система управления версиями исходных кодов (source code control system) или инструмент интеграции среды с одной из существующих версионных систем (CVS, RCS, Mercurial, Visual SourceSafe и др.) – поддержка управления версиями файлов исходных кодов проектов в среде при сопровождении программ
- Инструменты поддержки командной разработки программ (teamwork) – этапов жизненного цикла программы (требования и спецификации, проектирование, реализация, тестирование), распределения заданий по разработке среди участников команды программистов, контроля выполнения заданий менеджером проекта. В среде Visual Studio такая компонента называлась сначала Team Foundation Server (TFS), а, начиная с версии Visual Studio 2013, она реализована в виде облачного интерфейса и получила название Visual Studio Online.
- Инструменты анализа кода (code analysis) – его семантической корректности: отсутствие некоторых видов ошибок, обнаруживаемых обычно при исполнении, например, недостижимые условия; отсутствие необходимых проверок и полномочий безопасности и др. Эти возможности соответствуют духу и принципам надежных и безопасных вычислений (trustworthy computing), сформулированным в 2002 г. корпорацией Microsoft и последовательно воплощаемым этой фирмой в жизнь. Также в современные среды встраиваются инструменты анализа кода в терминах метрик (metrics), характеризующих его сложность, – например, цикломатическое число графа потоков управления в программе, степень сцепления (взаимосвязанности) классов и т.д.
- Инструменты визуализации сгенерированного бинарного кода – методов, переменных, их имен и т.д. Например, в среде Visual Studio для этой цели имеется утилита ildasm (IL disassembler), позволяющая визуализировать единый промежуточный (бинарный) код платформы .NET – Common Intermediate Language – CIL, сгенерированный одним из компиляторов среды
- Инструменты «запутывания» кода (obfuscation), выполняющие именно с этой целью замену имен элементов кода – классов, методов, полей и т.д. на непонятные, «случайные», «запутанные» имена, с целью затруднения изучения декомпилированного бинарного кода, для защиты от «взлома» кода злоумышленниками, которые хотят несанкционированным образом присвоить себе новые идеи, содержащиеся в коде, либо изучить его со злонамеренными целями организации атак. Например, в среде Visual Studio имеется «штатный» обфускатор – DotFuscator.
- Поддержка создания различных видов программных проектов (projects) и решений (solutions) на основе типовых шаблонов кода (code patterns);
- Механизм разработки расширений (plug-ins, add-ins, add-ons). При современной разработке программ подчас требуется создавать очень сильно отличающиеся друг от друга разновидности приложений и инструментов – консольные (простейшие) приложения, Web-приложения и Web-сервисы, мобильные приложения, облачные приложения и др. Для каждой из этих разновидностей требуется разработка специфической структуры файлов исходного кода, а также конфигурационных файлов (configuration files), специфицирующих, например, полномочия безопасности кода, Web-конфигурации и др. Современные интегрированные среды автоматизируют создание различного рода проектов, предоставляя шаблоны исходного кода и генерируя автоматически необходимые для проекта конфигурационные файлы. Трудно представить в настоящее время программирование без использования готовых шаблонов кода, которое неизбежно будет чревато ошибками, – например, очень легко забыть вручную создать тот или иной файл, неотъемлемую часть проекта, либо упустить из вида какой-либо важный фрагмент кода (например, инициировать асинхронный вызов, но не предусмотреть парный к нему вызов, его завершающий). Поэтому поддержка интегрированными средами различных видов проектов особенно важна. Кроме того, набор возможных видов проектов в современных интегрированных средах является расширяемым, т.е. разработчик может ввести в среду при необходимости новый вид проекта. Например, при реализации нашего инструмента аспектно-ориентированного программирования Aspect.NET как расширения интегрированной среды Visual Studio мы ввели новый вид проекта – аспект (aspect) с соответствующим шаблоном кода
- Поддержка моделирования структуры программ на языке моделирования 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. Все эти результаты являются уникальными, инновационными, новейшими, имеющими широкое распространение в мире.