2 Обзор возможностей Visual Studio 2013. Компоненты и возможности IDE

Некоторые характерные для IDE компоненты

1) Единая интерактивная оболочка.

2) Текстовый редактор (включая code completion - автоматическое завершение кода).

3) Система поддержки сборки (build), предназначается для компиляции проектов из исходных кодов, включающая компилятор с исходного реализуемого языка и компоновщик (linker) объектных бинарных кодов в единый исполняемый код (загрузочный модуль); компоновщик используется либо штатный, входящий в состав операционной системы, либо специфичный для данной среды;

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

Некоторые компоненты и возможности современных IDE

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

Инструменты анализа кода (code analysis) - его семантической корректности: отсутствие некоторых видов ошибок, обнаруживаемых обычно при исполнении, например, недостиживые условия; отсутствие необходимых проверок и полномочий безопасности и др. Эти возможности соответствуют духу и принципам надежных и безопасных вычислений (trustworthy computing), сформулированным в 2002 г. корпорацией Microsoft и последовательно воплощаемым этой фирмой в жизнь. Также в современные среды встраиваются инструменты анализа кода в терминах метрик (metrics), характеризующих его сложность, - например, цикломатическое число графа потоков управления в программе, степень сцепления (взаимосвязанности) классов и т.д.

  • Рефакторинг (refactoring).
  • Генератор тестов (unit test generator) - JUnit, NUnit.
  • Система управления версиями исходных кодов (source code control system) - CVS, RCS, Mercurial, Visual SourceSafe.
  • Инструменты поддержки командной разработки программ (teamwork) - Team Foundation Server (TFS), Visual Studio Online.
  • Инструменты визуализации сгенерированного бинарного кода - ildasm (IL disassembler).
  • Инструменты "запутывания" кода (obfuscation) - DotFuscator.
  • Поддержка создания различных видов программных проектов (projects) и решений (solutions) на основе типовых шаблонов кода (code patterns); механизм разработки расширений (plug-ins, add-ins, add-ons).
  • Поддержка моделирования структуры программ на языке моделирования UML (Unified Modeling Language). UML поддерживает разработку моделей деятельности при разработке программ и взаимодействия разработчиков между собой (activity diagrams).

Вопросы

  1. Сформулируйте определение интегрированной среды разработки программ.
  2. Каковы основные компоненты интегрированной среды?
  3. Назовите наиболее популярные интегрированные среды и их фирмы-разработчики.
  4. Какую функциональность обеспечивала среда Турбо-Паскаль?
  5. Что такое текстовый редактор?
  6. Какие дополнительный функции по синтаксической проверке вводимого исходного кода встроены в современные редакторы в интегрированной среде?
  7. Что такое сборка программ?
  8. Что такое отладчик и каковы его типовые команды?
  9. Какую функциональность обеспечивает поддержка коллективной разработки программ?
  10. Что такое Team Foundation Server?
  11. Что такое рефакторинг?
  12. Какие функции реализует поддержка моделирования программ на языке UML?
  13. Что такое обфускация и с какой целью она выполняется?
  14. Что такое моноязыковые и многоязыковые интегрированные среды?

Темы для курсовых работ, рефератов, эссе

  1. Краткий обзор концепции интегрированной среды разработки программ (реферат)
  2. Обзор истории интегрированных сред разработки программ (реферат)
  3. Турбо-среды фирмы Borland и их возможности (реферат)
  4. Возможности среды GNU Emacs (реферат)
  5. Обзор функциональности современных инт егрированных сред разработки программ (реферат)