Анализ и прогноз развития возможностей Visual Studio;. достоинства Visual Studio и рекомендации по дальнейшему развитию интегрированной среды и поддержке в ней надежных и безопасных облачных вычислений.
Данная лекция посвящена перспективам Visual Studio, которые я считаю очень большими, несмотря на очень жесткую конкуренцию с другими интегрированными средами.
Говоря о перспективах Visual Studio, нельзя не упомянуть об одном недавнем расширении Visual Studio, которое так и называется - Перспективы (Perspectives).
Расширение Perspectives аналогично по возможностям одноименному расширению другой широко известной интегрированной среды - Eclipse. Расширение Perspectives появилось в 2011 году, после выпуска Visual Studio 2010. Оно предназначено для управления конфигурациями окон, используемыми при работе в среде. С его помощью можно создать удобную конфигурацию окон, соответствующую часто повторяемым действиям. Расширение содержит менеджер окон, позволяющий управлять их конфигурациями.
На рис 19.1 изображен вызов расширения Perspectives в Visual Studio 2010.
(рис 19.1) Вызов расширения Perspectives в Visual Studio 2010
Однако в текущей версии (Visual Studio 2013, Update 2, июнь 2013 г.) расширение ).
(рис 19.2) Отказ в инсталляции расширения Perspectives для VS 2013, Update 2
Однако подобную ситуацию не следует рассматривать как какой-либо мрачный прогноз. Уверен, что в одной из следующих версий Visual Studio это полезное расширение появится, по крайней мере, в виде существующего, инсталлируемого, работоспособного и полезного инструмента.
Популярность Visual Studio в мире очень высока. Ее "творческий дух" расширяемости и постоянного развития впечатляет и вдохновляет (надеюсь, что читатели почувствовали это из моего курса). Поэтому многие разработчики не только хотят продолжать использовать Visual Studio и с нетерпением ждут новых версий, но и сами стремятся дополнить и расширить Visual Studio своими полезными разработками.
Для таких разработчиков фирма Microsoft организовала программу .
(рис 19.3) Начальная страница MSDN программы VSIP и интеграции с Visual Studio
Имеется также несколько видов интеграции программного обеспечения с Visual Studio c некоммерческими (учебными и исследовательскими) целями:
Наиболее простая и реальная возможность участия в развитии Visual Studio - разработка add-ins (расширений) Visual Studio, позволяющая интегрировать с ней Ваши разработки. По такому пути пошла и наша команда, разработав add-in для Visual Studio под названием Aspect.NET Framework [62], реализующий инструмент аспектно-ориентированного программирования для платформы .NET. По этому же пути идут и сами разработчики Microsoft, создавая новые инструменты как add-ins к Visual Studio. Пример: проект Spec# разработки Microsoft Research, неоднократно упоминающийся в моем курсе.
В заключение курса сформулирую некоторые мои идеи по расширению Visual Studio, которые, надеюсь, могут оказаться полезными. Они могут быть реализованы как в виде плагинов, так и, если Microsoft сочтет это целесообразным, их реализация может быть включена в будущие версии Visual Studio.
В лекции 18 рассмотрена существующая поддержка надежных и безопасных вычислений в Visual Studio 2013. Она достаточно удобна и развита. Однако хотелось бы высказать идеи и предложения по ее развитию.
Как видно из описаний в лекции 18, концепция trustworthy очень широка. К сожалению.многие ее важные рекомендации по разработке кода существуют только "на бумаге", хотя и в таких выдающихся трудах, как книга "Writing Secure Code". Хотелось бы, чтобы сама среда Visual Studio рекомендовала и подсказывала в ходе разработки соответствующие элементы TWC разработчику, обеспечивая создание "только надежных и безопасных" программных продуктов, без необходимости впоследстии "задним числом" реализовывать требования и элементы TWC, тратя на это гораздо больше времени.
Под моим руководством один из дипломников разработал подобное экспериментальное расширение (plug-in) к Visual Studio 2010, обеспечивающее поддержку шаблонов "правильного" надежного и безопасного кода для некоторых типовых ситуаций, представляющих сложность при программировании.
Это лишь первый шаг. Хотелось бы, чтобы среда Visual Studio, аналогично тому, как она подсказывает возможные завершения кода (синтаксиса конструкции, выбор имен вызываемых методов и т.д.), подсказывала бы надежные и безопасные продолжения кода в некоторых ситуациях. Например, при программировании на C++ среда не давала бы возможности использовать потенциально небезопасные операции пересылки строк, чреватые атакой "переполнение буфера". При программировании на C# многопоточных приложений среда не допускала бы даже набора в редакторе кода, содержащего потенциальный deadlock, и многое другое. Эти идеи могут быть реализована в экспериментальных версиях Visual Studio, созданных на базе инструментов интеграции (Visual Studio SDK и др.), рассмотренных выше в данной лекции.
Также, на мой взгляд, могут быть значительно расширены возможности анализатора кода. Он может быть реализован на основе расширяемой базы знаний, содержащей расширяемый набор правил, по которым производится проверка кода. В частности, хотелось бы иметь возможность выполнения проверок, набор которых не менее полон, чем набор проверок, выполяемых классическим инструментом lint, разработанным еще в 1970-х годах. Необходимо, чтобы среда исключала возможность "проваливания" (fall through) в операторе switch на C++, чтобы выполнялись проверки достижимости условий, и многое другое. Все это значительно повысило бы надежность и безопасность кода, разрабатываемого в среде Visual Studio.
Я уже неоднократно писал в статьях и книгах о том, что любой современный язык программирования, в том числе - реализованный в среде Visual Studio, - это "айсберг", полученный путем наслоения новых идей и заимствования старых. Поэтому хотелось бы, чтобы старые, но полезные заимствованные идеи в части языков программирования получали бы в среде Visual Studio свое наиболее полное воплощение.
Отмечу в связи с этим две идеи, которые, на мой взгляд, заслуживают реализации в языках Visual Studio и поддержки в виртуальной машине .NET (CLR).
Stack с двумя параметрами: первый - тип элементов стека, второй - максимальный размер (глубина) стека. Я имел возможность обсудить эту идею с представителями Microsoft в 2002 г. во время семинара Microsoft Research в Кембридже, но пока, к сожалению, мне не удалось их убедить в целесообразности такого расширения C#process M и process N, то сопрограммное взаимодействие можно представить следующим образом. Внутри каждого процесса имеется локальное управление (ссылка на текущую команду). Процесс M может переключить управление на процесс N оператором: resume N. При этом локальное управление в M запоминается, и активизируется процесс N, начиная с начала, если он пока не исполнялся, либо с приостановленного места, если он был ранее приостановлен. Обратная операция ("возврат" в M) не обязательна, в отличие от подпрограммной (процедурной) взаимосвязи.
Например, процесс N может выполнить оператор resume K, и т.д. Другой оператор, который может быть выполнен для каждого из процессов, - это оператор detach. Этот оператор останавливает сценарий выполнения процесса и превращает его в пассивные данные, доступ к которым возможен через поля (атрибуты) процесса. Описанный механизм удобен для задач моделирования систем с дискретными событиями и впервые использован в языке SIMULA 67 в 1960-х гг. Несмотря на свою важность, сопрограммы пока не представлены в общем виде в .NET CLR. Пока в языке C# реализован лишь частный случай сопрограммного взаимодействия - взаимосвязь заголовка цикла по коллекции с его телом, при котором очередной обрабатываемый элемент коллекции передается от заголовка цикла к его телу оператором yield return (обозначения и семантика почти совпадают с оператором yield, используемым в итераторах языка CLU).
Мне кажется, было бы целесообразно реализовать сопрограммы в общем виде в языке C#, либо даже в .NET CLR. Опять-таки, мне довелось рассказывать о сопрограммах представителю Microsoft в 2002 г., входящему в команду CLR, на семинаре Microsoft Research в Кембридже. Он заинтересовался, но пока никаких конкретных шагов по реализации сопрограмм не было предпринято.
Вот мой скромный вклад в развитие Visual Studio.
Разумеется, можно было бы предлагать для расширения Visual Studio и .NET еще очень многие полезные идеи и механизмы. Будущее покажет, насколько все это будет признано целесообразным, и по какому пути пойдет развитие Visual Studio.
Несомненно одно: уже сейчас Microsoft Visual Studio - выдающийся программный продукт и современнейший инструмент, которым пользуются многие миллионы программистов во всем мире, и круг пользователей и ценителей Visual Studio (к которым, конечно, отношусь и я, и представители моей научной школы) будет еще более расширяться.
Желаю разработчикам Visual Studio (среди которых у меня есть добрые знакомые и друзья) новых выдающихся успехов. Мы благодарны вам за чудесный программный продукт, использовать который для специалиста-разработчика - поистине профессиональное и эстетическое наслаждение.
Visual Studio - выдающийся программный продукт, у которого замечательные перспективы. Одно из недавних его расширений - инструмент, который так и называется Перспективы (Perspectives), монитор управления конфигурациями часто используемых окон. Разработчики Visual Studio предлагают различные формы расширения Visual Studio - плагины, инструментальные комплексы (SDKs) для расширения самой среды Visual Studio, Team Foundation Server и Visual Studio Online. Поддерживается программа VSIP - Visual Studio Industrial Partner.
Среди расширений функциональности, которые я предлагаю, - расширенная поддержка надежных и безопасных вычислений, а также ряд важных расширений языков .NET и виртуальной машины .NET CLR: параметры-константы в generics; сопрограммы.
| - расширение Visual Studio для управления конфигурациями часто используемых окон. | |
| - программа сотрудничества Microsoft и фирм-пользователей Visual Studio. | |
- классический механизм взаимодействия процессов, при котором управление явно передается от одного процесса другому оператором resume. |
Visual Studio - выдающийся программный продукт, у которого замечательные перспективы. Одно из недавних его расширений - инструмент, который так и называется Перспективы (Perspectives), монитор управления конфигурациями часто используемых окон. Разработчики Visual Studio предлагают различные формы расширения Visual Studio - плагины, инструментальные комплексы (SDKs) для расширения самой среды Visual Studio, Team Foundation Server и Visual Studio Online. Поддерживается программа VSIP - Visual Studio Industrial Partner.
Среди расширений функциональности, которые я предлагаю, - расширенная поддержка надежных и безопасных вычислений, а также ряд важных расширений языков .NET и виртуальной машины .NET CLR: параметры-константы в generics; сопрограммы.
Презентация к данной лекции: VS_2013_Course_19.pptx.
В курсе рассмотрены возможности новой версии интегрированной среды Visual Studio 2013 - выдающегося программного продукта фирмы Microsoft, имеющего миллионы пользователей во всем мире. Рассмотрены как базовые возможности, так и новые уникальные черты. Особое внимание уделено использованию Visual Studio 2013 для облачных вычислений на платформе Microsoft Azure.
При подготовке курса инсталлированы самые новые версии самой среды (Visual Studio 2013 Ultimate Update 2) и сопутствующих инструментов - Windows Phone 8.1 SDK, Team Foundation Server. Я испытал удивительное, ни с чем не сравнимое ощущение того, как столь интересный и мощный программный продукт и его новые контуры как бы "рождаются из-под пера" талантливых разработчиков из Microsoft, за что выражаю корпорации Microsoft огромную благодарность.
Материал отражает текущее состояние на момент написания курса - июнь 2014 года.
Выражаю благодарность Microsoft также за многократно предоставленный мне и представителям моей научно-педагогической школы доступ к платформе облачных вычислений Microsoft Azure.
Желаю разработчикам Microsoft новых выдающихся успехов, а читателям и пользователям Visual Studio - успешной работы в этой удивительной среде.
| Генератор тестов (unit test generator) | - инструмент для генерации типовых тестов для тестирования модулей (units) - методов или процедур - с различными возможными сочетаниями значений аргументов; типичные примеры - инструмент JUnit в интегрированных Java-средах и аналогичный инструмент NUnit в среде Visual Studio |
| Инструменты поддержки коллективной разработки программ (teamwork) | - инструменты поддержки этапов жизненного цикла программы (требования и спецификации, проектирование, реализация, тестирование), распределения заданий по разработке среди участников команды программистов, контроля выполнения заданий менеджером проекта. В среде Visual Studio такая компонента называлась сначала Team Foundation Server (TFS), а, начиная с версии Visual Studio 2013, она реализована в виде облачного интерфейса и получила название Visual Studio Online. |
| Интегрированная среда (integrated development environment - IDE) | - набор инструментов для разработки и отладки программ, имеющий общую интерактивную графическую оболочку, поддерживающую выполнение всех основных функций жизненного цикла разработки программы - набор и редактирование исходного текста (кода), компиляцию (сборку), исполнение, отладку, профилирование и др. |
| Набор инструментов (toolkit, toolbox) | - набор инструментов разработки программ, родственных по тематике и функциональности, но не объединенных в одну интегрированную интерактивную среду и вызываемых в командном режиме |
| Рефакторинг (refactoring) | - инструментарий систематических групповых модификаций программ в среде, без принципиальных изменений их функциональности, с целью улучшения кода. К типичным подобным действиям относится, например, изменение имени метода в его определении и во всех использованиях, добавление его аргумента, добавление try-catch - блока для обработки ранее не учтенного исключения и т.п. |
| Система поддержки сборки (build) | - инструментарий для компиляции проектов из исходных кодов, включающая компилятор с исходного реализуемого языка и компоновщик (linker) объектных бинарных кодов в единый исполняемый код (загрузочный модуль); компоновщик используется либо штатный, поставляемый вместо с ОС, либо специфичный для данной среды |
| Турбо-среды (Turbo Pascal, Turbo C, Turbo C++, Delphi и др.) | - интегрированные среды фирмы Borland для поддержки программирования на конкретных языках, реализованные сначала для операционной системы MS DOS, затем - для Windows |
| GNU Emacs | - многоязыковая и многоплатформная интегрированная среда разработки, реализованная для MS DOS, затем для Windows, OpenVMS и для Linux |
| .NET | - объектно-ориентированная многоязыковая платформа программирования, стандартизированная международными стандартами ISO и имеющая несколько реализаций, в том числе - Microsoft.NET, разработанную фирмой Microsoft |
| C# | - новейший объектно-ориентированный язык программирования, разработанный и активно развиваемый фирмой Microsoft, являющийся основным языком программирования для платформы .NET |
| Visual Basic | - язык программирования, объектно-ориентированное расширение языка Basic, разработанный и развиваемый фирмой Microsoft |
| Visual C++ | - язык программирования, расширение языка C++, разработанное и развиваемое фирмой Microsoft |
| Visual FoxPro | - один из ранних объектно-ориентированных языков программирования, разработанный фирмой Microsoft, содержащий средства обращения к базам данных, совместимым с языком запросов SQL |
| Visual Studio | - интегрированная среда разработки фирмы Microsoft. |
| CLI (Common Language Infrastructure) | - общая инфраструктура языков платформы .NET |
| CIL (Common Intermediate Language) | - единый промежуточный язык платформы .NET, бинарная форма постфиксной записи инструкций виртуальной машины .NET |
| CTS (Common Type System) | - общая система типов платформы .NET |
| WSDL (Web Service Description Language) | - синхронный протокол для реализации Web-сервисов и взаимодействия с ними, используемый, в частности, для платформы .NET |
| Add-in (расширение) | - Расширение среды Visual Studio дополнительным пользовательским интерфейсом для управления специализированными функциями |
| GUID | - глобальный уникальный идентификатор объекта; используется в компонентной модели COM |
| NuGet | - инструмент Visual Studio для управления программными пакетами |
| Spy++ | - инструмент для управления окнами, потоками, процессами и сообщениями среды Visual Studio |
| Team Foundation Server (TFS) | - инструмент для поддержки командной разработки программ в среде Visual Studio |
| Контрольная точка (breakpoint) | - точка (строчка) в программе, которая может быть установлена в отладчике для постедующей контрольнойё остановке в данной точке в ходе отладки. |
| Проект (project) | - концепция среды Visual Studio, предназначенная для поддержки разработки программы того или иного назначачения |
| Решение (solution) | - концепция среды Visual Studio, предназначенная для группировки проектов. |
| Сборка (build) | - компиляция проекта в среде |
| Отладка (debugging) | - поиск ошибок и исследование программы путем установки и использования контрольных точек и визуализации динамической картины выполнения программы, состояния стек3а и переменных в каждой контрольной точке. |
| Профилирование (profiling) | - получение динамических характеристик программы (использование процессора, вызовы методов, использование памяти и др.) путем контрольных прогонов программы и сбора статистической информации в ходе прогонов в специальной базе данных, файле или директории). |
| Шаблон (template) | - заготовка кода для какого-либо вида проектов, в которую разработчик должен добавить свой конкретный код |
| JavaScript | - динамический объектно-ориентированный язык, широко используемый в браузерах для анимации Web-страниц |
| TypeScript | - расширение языка JavaScript со строгой типизацией, реализованное фирмой Microsoft в обновлении 2 среды Visual Studio 2010 |
| Итератор (iterator) | - конструкция в языках программирования для перебора элементов коллекции |
| Параметризованные типы (generics) | - возможности обобщенного программирования в современных языках, обеспечивающие разработку в общем виде алгоритмов обработки коллекций |
| Верификация | - проверка корректности разработки программы в виде тестирования (прогона набора тестов) или в виде формального доказательства корректности программы (т.е. соответствия ее реализации ее спецификации). |
| Водопадная модель жизненного цикла | - классическая модель разработки программы в виде совокупности этапов, выполняемых последовательно. |
| Жизненный цикл разработки программы | - последовательность этапов, из которых состоит разработка программы: выработка требований, спецификация, проектирование, реализация, верификация (тестирование), сопровождение, выпуск программного продукта. |
| Моделирование программы | - разработка формальной модели программы, выполняемая, как правило, на языке Unified Modeling Language (UML). |
| Рефакторинг (refactoring) | - систематические автоматизированные преобразования программного кода с целью улучшения его структуры, без коренных изменений в его семантике. |
| UML (Unified Modeling Language) | - язык моделирования для построения формальных моделей программ и процессов их разработки. |
| Бригада главного программиста | - классический метод организации командной разработки программ Ф.П. Брукса (IBM) |
| Командная разработка программы | - процесс выполнения жизненного цикла разработки программы командой проекта. |
| Agile development | - современная схема организации процесса гибкой разработки программ, с кратковременными этапами и анализом результата в конце каждого этапа. |
| CMMI | - современный метод командной разработки программ на основе тщательно разработанных количественных критериев оценки работы каждого члена команды и специальных программных инструментов для этой цели. |
| Security Development Lifecycle | - современный метод организации процесса разработки безопасных программ (Microsoft). |
| Scrum | - одна из современных схем организации процесса гибкой разработки программ, с кратковременными этапами и анализом результата в конце каждого этапа, относящаяся к группе методов agile development |
| Team Foundation Server | - инструмент для организации командной разработки проектов в Visual Studio. |
| Visual Studio Online | - новый облачный инструмент для организации командной разработки проектов в Visual Studio. |
| Microsoft Azure | - облачная платформа фирмы Microsoft |
| SQL Azure | - облачная версия СУБД Microsoft SQL Server. |
| Архитектор облака | - главный разработчик его архитектуры. |
| Внутренние приложения (on-premises applications) | - приложения, исполняемые на локальном компьютере пользователя. |
| Интегратор облака | - его системный администратор, отвечающий за добавление компонент в облако и их изменение. |
| Инфраструктура как сервис (Infrastructure as a Service - IaaS) | - модель обслуживания клиентов облака, при которой провайдер облака предлагает реальные или виртуальные машины и их ресурсы: образы дисков, виртуальные локальные сети и др. |
| Облако сообщества (community cloud) | - менее масштабная модель облака, при которой облачная инфраструктура предоставляется какому-либо сообществу, т.е. более узкому кругу лиц. |
| Облачные вычисления (сloud computing) | - вычисления, основанные на масштабированных и виртуализованных ресурсах (данных и программах), которые доступны пользователям через Интернет и реализуются на базе мощных центров обработки данных (data centers). |
| Облачные приложения (cloud applications) | - приложения, фактически исполняемые в среде облачных вычислений (например, Microsoft Azure) на компьютерах центра обработки данных. |
| Общедоступное облако (public cloud) | - модель облака, при которой облачные приложения, память и другие ресурсы доступны любому пользователю. |
| Платформа как сервис (Platform as a Service - PaaS) | - модель обслуживания клиентов облака, при которой провайдер облака предлагает клиентам компьютерную платформу: операционную систему, окружение для выполнение программ на языках программирования, базу данных и Web-сервер. |
| Поставщик облака | - центр обработки данных, поддерживающий облачные вычисления. |
| Программное обеспечение как сервис (Software as a Service - SaaS) | - модель обслуживания клиентов облака, при которой провайдер облака инсталлирует в облаке прикладные программы, которые используются клиентами облака. |
| Уровень инфраструктуры | - предоставление полной виртуализованной платформы через облако, например, Amazon AWS. |
| Уровень клиента | - клиентское ПО, используемое для доступа к облачным сервисам, например, web- браузер. |
| Уровень памяти | - поддержка хранения данных пользователя и доступа к ним через облако. |
| Уровень платформы | - программная платформа, объединяющая полный набор инструментов для развертывания и использования облачных вычислений на пользовательском компьютере (без дополнительных инсталляций, покупки оборудования и др.). |
| Уровень приложений | - программы, доступные через облако и не требующие инсталляции на компьютере пользователя (в последнем - одно из главных преимуществ облачной модели). |
| Уровень сервисов | - облачные сервисы, используемые через облачную модель. |
| Центр обработки данных (ЦОД, data center) | - мощный вычислительный центр, состоящий из компьютеров, объединенных в локальную сеть, обслуживающих сервисы облачных вычислений некоторой компании. |
| Частное облако (private cloud) | - модель облака, при которой облачные услуги предоставляются только сотрудникам какой-либо организации. |
| Azure SDK | - инструментальный программный комплекс для поддержки разработки облачных сервисов в среде Visual Studio 2013 |
| http://manage.windowsazure.com | - портал Microsoft Azure |
| ServiceDefinition.csdef.xml | - конфигурационный файл определения облачного сервиса, после публикации в облаке преобразуемый в спецификацию WSDL-интерфейса |
| ServiceConfiguration.Cloud.cscfg.xml | - конфигурационный файл для развертывания сервиса в облаке; содержит число экземпляров Web-роли. |
| ServiceConfiguration.Local.cscfg.xml | - конфигурационный файл для запуска сервиса на локальном компьютере на эмуляторе облака; содержит число экземпляров Web-роли. |
| VM-роль | - виртуальная машина, развернутая в облаке Azure. |
| Web-роль | - облачный сервис с Web-интерфейсом, развернутый в облаке Azure. |
| Worker-роль | - фоновый вычислительный процесс, развернутый в облаке Azure. |
| Развертывание в облаке | - запуск облачного Web-сервиса с целью его последующего использования. |
| Публикация в облаке | - создание Web-сайта с URL-адресом специального вида в домене облака Azure с целью его последующего развертывания. |
| NuGet | - утилита интегрированной среды VS 2013 для поиска и инсталляции внешних программных пакетов. |
| Push-уведомления | - сообщения и экранные формы, отправляемые мобильным сервером мобильным клиентам |
| Windows Phone SDK | - инструментальный комплекс для разработки и отладки мобильных приложений и мобильных сервисов для платформы Windows Phone. |
| Мобильное приложение | - клиентское приложение, выполняемое на мобильном устройстве и взаимодействующее с облачным мобильным сервисом и обслуживаемым им облачной базой данных. |
| Мобильный сервис | - облачный сервис, обеспечивающий взаимодействие с клиентскими мобильными приложениями. |
| Магазин приложений Windows (Windows Store) | - приложение в новых операционных системах фирмы Microsoft - Windows 8 / 8.1 и Windows RT, предназначенное для обмена полезными программами, их продажи и покупки |
| XAML | - язык разметки гипертекста на основе XML, позволяющий сочетать разметку Web-страницы с фрагментами кода на языках C# или Visual Basic |
| Аспектно-ориентированное программирование (АОП) | - новый перспективный подход к разработке и модернизации программ, предназначенный для поддержки сквозной функциональности (cross-cutting concerns) в программах |
| Aspect.NET | - инструмент АОП для платформы .NET, разработанный группой под руководством автора курса. |
| Microsoft Enterprise Library Integration Pack for Windows Azure | - решение компании Microsoft для выделения "сквозной функциональности" при разработке облачных приложений ( требует для этого модификации их исходного кода). |
| Анализатор кода в среде Visual Studio 2013 | - часть интегрированной среды, обеспечивающая анализ кода проекта (решения) на типичные ошибки и проблемы безопасности, надежности и другие проблемы truatworthy computing. |
| Надежные и безопасные вычисления (trustworthy computing) | - актуальное направление ИТ, имеющее целью на улучшение надежности и безопасности кода, соблюдение конфиденциальности информации, оперативность и корректность бизнеса по разработке и сопровождению программ. |
| Безопасность (security) | - устойчивость кода программного продукта к внешним угрозам и атакам, способность к их предотвращению и отражению (ослаблению их эффекта). |
| Надежность (reliability) | - способность кода программного продукта обеспечивать специфицированное для него ожидаемое поведение в заданных условиях. |
| Соблюдение конфиденциальности информации (privacy) | - сохранение кодом программного продукта конфиденциального статуса для любой используемой им частной или корпоративной информации о пользователе, его приложениях и инфраструктуре. |
| Оперативность и корректность бизнеса (business integrity) | - быстрота, качественность и полнота сопровождения программного продукта, а также соблюдение фирмой-разработчиком программного продукта всех законодательных актов и юридических установлений. |
| lint | - классический верификатор исходного кода в системе UNIX. |
| Perspectives | - расширение Visual Studio для управления конфигурациями часто используемых окон |
| VSIP (Visual Studio Industrial Partner) | - программа сотрудничества Microsoft и фирм-пользователей Visual Studio |
| Сопрограммы | - классический механизм взаимодействия процессов, при котором управление явно передается от одного процесса другому оператором resume. |
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.