Новости

Преобразование UML-Java в выпуски IBM Rational Software Architect и соответствующее программное обеспечение

  1. Обзор процесса
  2. Создать UML-модель системы заказов
  3. Рисунок 3. Диаграмма классов UML для образца модели
  4. Настройте преобразование
  5. Рисунок 5. Исходная и целевая страница мастера новой конфигурации преобразования
  6. Рисунок 6. Конфигурация преобразования
  7. Рисунок 7. Сгенерированный вывод преобразования
  8. Листинг 1. Класс Java OrderDetail
  9. Листинг 2. UML-операции calcSubTotal () и calcWeight () в классе OrderDetail
  10. Рисунок 8. @ генерируемые вкладки в целевом коде
  11. Установить отношение трассировки источник-цель
  12. Рисунок 9. Общая страница мастера настройки преобразования
  13. Листинг 3. URI EMF, представляющий исходный элемент UML
  14. Рисунок 10. Диалог Сохранить как для диаграммы Traceability
  15. Рисунок 11. Сгенерированная диаграмма прослеживаемости
  16. Рисунок 12. Вкладка Mapping редактора Transformation Configuration
  17. Рисунок 13. Мастер создания модели сопоставления
  18. Рисунок 14. Мастер редактирования сопоставленных имен
  19. Рисунок 15. Редактор мастера Mapped Names с ранее указанным именем для пакета
  20. Рисунок 16. Свойства артефакта Customer в модели Mapping
  21. Рисунок 17. Выходные данные, сгенерированные преобразованием UML-Java с включенной моделью отображения
  22. Листинг 4. Параметры, также сгенерированные с новым именем «NewCustomer»
  23. Решите, использовать ли смешанный или согласованный протокол
  24. Рисунок 18. Главная страница редактора конфигурации преобразования с выбранным смешанным протоколом
  25. Рисунок 19. Предупреждение, когда преобразование пытается заменить элементы UML
  26. Рисунок 20. Представление Project Explorer для вывода, сгенерированного преобразованием UML-to-Java...
  27. Рисунок 21. Представление схемы вывода, сгенерированного преобразованием UML-to-Java с использованием...
  28. Когда использовать согласованный протокол
  29. Рисунок 22. Конфигурация преобразования с выбранным протоколом Reconciled
  30. Исследуйте дальнейшие детали и получите образец модели
  31. Загружаемые ресурсы

Преобразования для поддержки протоколов управления проектными контрактами были представлены в выпусках Rational Software Archictect версии 7.5. Это введение в некоторые функции преобразования.

Замечания:
Для простоты приведенные здесь преобразования описаны в терминах Rational Software Architect. Однако эта информация также относится к этим выпускам и связанным продуктам IBM® Rational®:

  • Rational Software Architect RealTime Edition
  • Rational Software Architect Standard Edition
  • Rational Software Architect для программного обеспечения WebSphere®

Автор предполагает, что у вас есть базовые знания о спецификации Unified Modeling Language (UML) 2.0, Eclipse, выпуске Rational Software Architect и Java-разработке. В этой статье подробно не рассматривается моделирование UML и реализация кода Java.

Обзор процесса

Процесс разработки, включающий выполнение преобразования, состоит из следующих основных этапов:

  1. Создайте модель UML, отражающую структуру приложения.
  2. Используйте преобразование UML-Java для создания кода Java на основе созданной модели UML.
  3. Отредактируйте сгенерированный код и реализуйте бизнес-логику приложения.
  4. (Необязательно) Поддерживайте синхронизацию модели UML и приложения Java с помощью предоставленных преобразований Java.

Создать UML-модель системы заказов

  1. В Rational Software Architect откройте представление « Моделирование» и создайте новый проект модели, выбрав « Файл»> «Создать»> «Проект модели» в главном меню.
  2. Назовите заказ проекта и добавьте пустой пакет с именем Модель заказа в проект заказа на второй странице мастера. (см. рисунок 1).
Рисунок 1. Мастер создания модели UML
Преобразования для поддержки протоколов управления проектными контрактами были представлены в выпусках Rational Software Archictect версии 7
  1. Добавьте пакет orderingApplication в созданную модель (рисунок 2).
Рисунок 2. Образец модели UML создан
  1. Разработать модель UML. Вы можете добавить элементы в основную диаграмму пакета orderingApplication на вкладке Класс палитры и использовать помощь в моделировании на диаграмме.

На рисунке 3 показана модель примера приложения, которое позволяет владельцу бизнеса сгенерировать заказ и принять платеж от клиента.

Рисунок 3. Диаграмма классов UML для образца модели

Используйте преобразование для генерации кода Java на основе модели

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

Настройте преобразование

  1. Чтобы создать новую конфигурацию преобразования UML-Java, выберите « Моделирование»> «Преобразование»> «Новая конфигурация» в главном меню.
  2. В поле « Имя» открытого мастера настройки новой трансформации (рисунок 4) введите имя конфигурации трансформации: MyUMLtoJavaTransform в поле «Имя».
  3. Нажмите кнопку с многоточием ( ... ), чтобы перейти к порядку проектов UML.
  4. В списке развернутых преобразований откройте папку « Преобразования Java » и выберите преобразование UML-в-Java .
  1. Вы должны выбрать тип протокола на этой странице мастера (рисунок 4).
Рисунок 4. Главная страница мастера настройки нового преобразования

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

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

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

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

Замечания:
Использование преобразования UML-to-Java в контексте концептуального протокола будет обсуждаться здесь в первую очередь. Использование преобразования в контексте смешанных и согласованных протоколов будет рассмотрено далее в этой статье.

  1. Выберите концептуальный протокол в мастере настройки преобразования.

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

  1. Нажмите кнопку « Далее» в мастере настройки преобразования (рисунок 4), чтобы перейти на новую страницу мастера, где вы можете указать исходные и целевые элементы для преобразования.
  2. Выберите модель с именем Order Model из созданного UML-проекта в качестве источника, а затем выберите Create Target Container (рисунок 5). Откроется мастер New Java Project.
  3. Создайте новый проект Java с именем myOrderCode и выберите его в качестве цели в мастере настройки преобразования.
Рисунок 5. Исходная и целевая страница мастера новой конфигурации преобразования
  1. Нажмите кнопку Готово (рисунок 5), чтобы создать новый файл конфигурации преобразования, MyUMLtoJavaTransform.tc , в указанном порядке проекта.

Созданные файлы проекта Java и конфигурации преобразования отображаются в представлении Project Explorer, а конфигурация Transformation открывается в представлении Editor (рисунок 6).

Рисунок 6. Конфигурация преобразования

Запустите конфигурацию преобразования

  1. Нажмите кнопку « Выполнить» в мастере настройки преобразования, чтобы запустить настройку.

Код Java будет сгенерирован в целевом проекте (рисунок 7).

Рисунок 7. Сгенерированный вывод преобразования

Преобразование генерирует код Java на основе содержимого исходной модели UML:

  • Для классов и интерфейсов создаются соответствующие файлы xyz.java. Преобразование назначает имена файлов по умолчанию (указанные в модели UML) для файлов и папок. Например, создается класс Java OrderDetail, соответствующий классу UML OrderDetail.
  • Преобразование также генерирует методы Java и свойства Java внутри файлов классов Java.

Например, количество свойств Java, соответствующее количеству атрибутов UML, генерируется внутри класса Java OrderDetail, как показано в листинге 1.

Листинг 1. Класс Java OrderDetail

/ ** * <! - begin-UML-doc -> * <! - end-UML-doc -> * @ сгенерированный UML для Java (com.ibm.xtools.transform.uml2.java5.internal. UML2JavaTransform) * / private Целое число;

Для каждого свойства Java методы get и set - например, getQuantity () и setQuantity (Integer) - генерируются преобразованием. Java-методы calcSubTotal () и calcWeight (), которые соответствуют операциям UML calcSubTotal () и calcWeight (), генерируются внутри класса Java OrderDetail (листинг 2).

Листинг 2. UML-операции calcSubTotal () и calcWeight () в классе OrderDetail

/ ** * (не Javadoc) * @see Autirization # autorized () * @ сгенерированный UML для Java (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform) * / public void calcSubTotal () {// begin-user-code // TODO Автоматически генерируемый тупик метода // end-user-code} / ** * (не Javadoc) * @see Autirization # autorized () * @ сгенерированный UML для Java (com.ibm.xtools .transform.uml2.java5.internal.UML2JavaTransform) * / public void calcWeight () {// begin-user-code // TODO Сгенерированный автоматически метод заглушки метода // end-user-code}

Как вы можете заметить, преобразование добавляет аннотацию @generated к элементам в сгенерированном коде (рисунок 8).

Рисунок 8. @ генерируемые вкладки в целевом коде

Эта аннотация предназначена для защиты кода. Если аннотация @generated для элемента, содержащего код реализации, будет удалена или изменена, код будет защищен и не будет обновлен при повторном запуске преобразования в тот же целевой проект. (Расширенные параметры для обеспечения защиты пользовательского кода, которые также предусмотрены в проекте преобразования, в этой статье не показаны.)

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

Установить отношение трассировки источник-цель

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

  1. Чтобы сгенерировать отношения трассировки между источником преобразования и целевым элементом, установите флажок « Создать отношения трассировки» на странице «Общие» редактора конфигурации преобразования (рисунок 9).
Рисунок 9. Общая страница мастера настройки преобразования

Когда кто-то запускает преобразование, аннотация для каждого сгенерированного элемента, который поддерживает аннотацию @generated, изменяется, чтобы включить URI EMF, который представляет исходный элемент UML, как показано в листинге 3.

Листинг 3. URI EMF, представляющий исходный элемент UML

/ ** * @generated sourceid: platform: /resource/UMLS/UMLS.emx#_NLHDQIr0Edu0eunV5GC2yg * / открытый класс Order {}

Это установило связь трассировки между исходным элементом UML и целевым элементом Java. Установленные отношения трассировки позволяют улучшить слияние между целевым и исходным элементами при повторном запуске преобразования. (Расширенная функциональность выходит за рамки этой статьи.)

  1. Установив отношения трассировки, для каждого класса или интерфейса UML можно отслеживать реализацию Java, выбрав элемент в Project Explorer, а затем выбрав « Запрос»> «Отслеживаемость»> «Реализации» в раскрывающемся меню.
  2. Нажмите кнопку ОК в ответ на диалоговое окно «Сохранить как» (рисунок 10).
Рисунок 10. Диалог Сохранить как для диаграммы Traceability

Будет создана новая диаграмма, которая отслеживает отношения между выбранным классом UML и классом Java, который его реализует (рисунок 11).

Рисунок 11. Сгенерированная диаграмма прослеживаемости

Укажите альтернативные имена файлов Java с помощью моделей сопоставления

В процессе разработки может потребоваться указать альтернативные (не по умолчанию) имена для целевых файлов Java или пакетов Java. Например, вы можете создать несколько пакетов Java, которые содержат определенную информацию для разных клиентов или предоставляют разные имена классов. В преобразовании UML-Java могут быть указаны альтернативные имена или логическая организация в модели отображения.

  1. Чтобы сгенерировать режим сопоставления, откройте вкладку «Сопоставление» в редакторе конфигурации преобразования и установите флажок « Включить функцию сопоставления для этой конфигурации» (рисунок 12).
Рисунок 12. Вкладка Mapping редактора Transformation Configuration
  1. Нажмите кнопку « Создать» , а затем нажмите кнопку « ОК», чтобы принять значения по умолчанию в мастере создания модели сопоставления (рисунок 13).

Замечания:
Вы можете выбрать любой доступный проект для хранения модели Mapping, но модель Mapping должна быть создана в том же рабочем пространстве, где хранится исходная модель.

Рисунок 13. Мастер создания модели сопоставления

В результате создается новая модель UML, содержащая артефакты UML для каждого элемента UML исходной модели, и устанавливаются взаимосвязи между созданными артефактами и соответствующими элементами UML. В этой модели вы можете указать альтернативные имена файлов для любого из файлов Java или пакетов Java, которые генерирует преобразование.

  1. На вкладке «Сопоставление» редактора конфигурации преобразования нажмите кнопку « Изменить сопоставление» .
  2. Когда вы увидите окно «Редактировать сопоставленные имена» мастера Model Element (рисунок 14), выберите элемент UML, для которого вы хотите указать альтернативное имя.
  3. В поле «Сопоставленное имя» введите новое имя для выбранного элемента, который должен быть создан в целевом проекте.

На рисунке 14 выбран пакет orderingApplication и в качестве имени указан orderingCD.

Рисунок 14. Мастер редактирования сопоставленных имен
  1. Нажмите Применить .
  2. Затем вы можете выбрать другой элемент (например, класс Customer) и указать для него имя сопоставления.

Совет:
Вы можете использовать полное имя, например com.ibm.NewCustomer.com, или неквалифицированное имя, например NewCustomer.

На рисунке 15 NewCustomer является именем сопоставления. Обратите внимание, что указание альтернативных имен в модели отображения не изменяет исходную модель.

Рисунок 15. Редактор мастера Mapped Names с ранее указанным именем для пакета
  1. Нажмите « Применить», а затем « ОК», чтобы закрыть представление «Редактировать сопоставленные имена» в диалоговом окне «Элемент модели».

В модели Mapping значение свойства File Name для артефакта Customer устанавливается равным NewCustomer (рисунок 16).

Рисунок 16. Свойства артефакта Customer в модели Mapping
  1. Сохраните измененную конфигурацию преобразования и запустите преобразование.

При запуске преобразования с выбранной моделью сопоставления альтернативные имена файлов или пакетов, указанные в модели сопоставления, применяются к элементам, которые генерирует преобразование. Все классы ниже пакета с указанным именем сопоставления будут сгенерированы под новым пакетом (рисунок 18). В этом примере создается новый пакет Java orderingCD, содержащий все классы Java, доступные в исходной модели UML. В этом пакете создается UML-класс Customer с новым именем NewCustomer, указанным в модели Mapping.

Рисунок 17. Выходные данные, сгенерированные преобразованием UML-Java с включенной моделью отображения

Типы полей Java и параметры операций также генерируются с новым именем NewCustomer (см. Листинг 4).

Листинг 4. Параметры, также сгенерированные с новым именем «NewCustomer»

/ ** * * / упаковка заказа CD; import java.util.Set; / ** * <! - begin-UML-doc -> * <! - end-UML-doc -> * @author Administrator * @ сгенерировал UML для Java (com.ibm.xtools.transform.uml2. java5.internal.UML2JavaTransform) * / открытый класс Order {/ ** * <! - begin-UML-doc -> * <! - end-UML-doc -> * @ сгенерированный UML для Java (com. ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform) * / частный клиент NewCustomer; / ** * @ вернуть клиента * @ сгенерированный UML в Java (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform) * / public NewCustomer getCustomer () {// begin-user-code return customer; // код конечного пользователя} / ** * @param customer, чтобы клиент установил * @generated UML на Java (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform) * / public void setCustomer (клиент NewCustomer ) {// begin-user-code this.customer = customer; // код конечного пользователя}

Совет:
Использование модели Mapping при выполнении преобразований может быть особенно полезным, если вы планируете доставить несколько приложений Java, сгенерированных из одной модели UML.

Решите, использовать ли смешанный или согласованный протокол

Когда использовать смешанный протокол

Выберите этот протокол, если вы хотите продолжить разработку в целевой области, а не в исходной модели. Если вы выберете Смешанный протокол для преобразования, элементы UML в исходной модели будут преобразованы в визуальные представления элементов Java во время преобразования, и выходные данные станут основным артефактом.

  1. На главной странице редактора Transformation Configuration (рисунок 18) установите флажок Смешанный в качестве протокола.
Рисунок 18. Главная страница редактора конфигурации преобразования с выбранным смешанным протоколом
  1. Сохраните конфигурацию.

Не все функции преобразования, которые были доступны для концептуального протокола, теперь могут быть использованы; например, опция создания трассировочных связей на вкладке Общие отключена. Однако вы все равно можете создать и использовать модель Mapping, чтобы указать альтернативные (не по умолчанию) имена файлов для вывода преобразования. Когда преобразование выполняется, элементы UML в исходной модели заменяются ссылками на файлы Java.

  1. Запустите преобразование и нажмите OK в ответ на диалоговое окно с предупреждением (рисунок 19).

Замечания:
Отображаемое диалоговое окно информирует вас о том, что элементы UML в исходной модели исчезнут. Только визуальные представления элементов Java будут доступны в исходной модели, если вы нажмете ОК в диалоговом окне с предупреждением. Если вы нажмете кнопку « Отмена» в диалоговом окне предупреждения, код все еще будет сгенерирован в целевом проекте, и элементы UML в исходной модели не будут заменены ссылками.

Рисунок 19. Предупреждение, когда преобразование пытается заменить элементы UML

В Project Explorer в модели UML (рисунок 20) отображаются ссылки на файлы Java, а не на элементы UML.

Рисунок 20. Представление Project Explorer для вывода, сгенерированного преобразованием UML-to-Java с использованием смешанного протокола

На диаграмме, существовавшей в исходной модели, элементы UML также заменяются визуальными элементами Java (рисунок 21). Обратите внимание, что ассоциации UML заменяются сгенерированными атрибутами в классах Java.

Рисунок 21. Представление схемы вывода, сгенерированного преобразованием UML-to-Java с использованием смешанного протокола

Двойной щелчок по любой из ссылок в Project Explorer или на диаграмме откроет код Java для элемента в редакторе Java. Если вам нужно восстановить элементы UML в модели, используйте этот путь в главном меню: « Правка»> «Отменить преобразование UML в Java 5» .

В будущем вы можете полностью перейти на домен Java или продолжить добавление элементов UML в исходную модель и повторно применить преобразование UML-Java.

Когда использовать согласованный протокол

Если вы хотите независимо развивать проект в доменах Java и UML и в определенных точках цикла разработки синхронизировать артефакты, выберите согласованный протокол для преобразования UML-в-Java. Эта опция соответствует протоколу управления проектными контрактами с именем Reconciled Modeling.

На главной странице редактора конфигурации преобразования выберите « Согласованный протокол» . Обратное преобразование Java в UML включено, и в редакторе появляются дополнительные вкладки, специфичные для преобразования Java в UML (рисунок 22): «Параметры Java в UML» и «Ассоциации Java в UML». Эти вкладки можно использовать для настройки обратного преобразования Java в UML.

Рисунок 22. Конфигурация преобразования с выбранным протоколом Reconciled

При запуске прямого преобразования (UML-to-Java) код Java генерируется так же, как описано ранее в этой статье. Вы можете заняться будущей разработкой в ​​доменах Java и UML независимо. В любой точке цикла разработки модель UML можно синхронизировать с кодом Java, выполнив преобразование Java-в-UML и объединив результат с существующей моделью. Если модель развивалась независимо от кода, дальнейшая синхронизация может быть достигнута путем выполнения преобразования UML-в-Java с использованием существующего проекта Java в качестве цели. (Подробное описание итеративной разработки с использованием протокола Reconciled выходит за рамки этой статьи.)

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

Исследуйте дальнейшие детали и получите образец модели

В этой статье были рассмотрены основы применения преобразований Java, включенных в семейство продуктов Rational Software Architect, для использования протоколов Design Contract Management для интерактивной разработки приложений Java. См. Справочную документацию в программном обеспечении для получения более подробной информации.

Проект UML, содержащий модель заказа, можно загрузить, извлечь и импортировать в рабочую область Rational Software Architect (см. Загружаемые ресурсы ).

Загружаемые ресурсы

похожие темы

Подпишите меня, чтобы комментировать уведомления

Похожие

Новости, советы и рекомендации для технических специалистов
... рисунок A ) и нажмите «Электронная почта» в разделе «Услуги». На вкладке «Общие» перейдите в раздел «Поддержка Outlook и Blackberry» и установите флажок, чтобы включить Google Apps Sync. Рисунок А
FreeMind - основанное на Java программное обеспечение для составления карт разума - LinuxLinks
... иложение для составления карт разума, написанное на Java. Поэтому он работает на самых разных операционных системах, включая Linux. Это программное обеспечение позволяет пользователю визуализировать идеи, проекты, мозговые штурмы, концепции, интернет-исследования или любую деятельность, для которой полезно иметь структурированный обзор. FreeMind имеет модульную конструкцию и может использоваться для редактирования любых данных, в зависимости от текущего режима. Данные представлены
Kaspersky AdCleaner: Анти-Баннер для iOS
Обновление: приложение, описанное в этом посте, больше не поддерживается. Пользователи Kaspersky Internet Security и Kaspersky Total Security знакомы с Анти-Баннером, удобным компонентом, который блокирует надоедливую рекламу на веб-сайтах и ​​в программных интерфейсах. Рекламные блоки действительно полезны в наши дни. Их использование позволяет быстрее открывать веб-сайты, делает веб-страницы
SC2 Виниловый Резак с Контурной Резкой
... преобразования изображений (включая JPG, BMP, GIF, PNG) для резки Создание шаблонов со стразами и решетчатых фигур Распечатать и вырезать Включает в себя более 200 встроенных фигур, и многие другие доступны через магазин eshape. Интерфейс WYSIWYG - то, что вы видите, это то, что вы режете Доступно для Windows и Macintosh OSX Сохраните макеты дизайна, чтобы вы могли сохранять и делиться своими дизайнами Бесплатная техническая
Лучшее бесплатное программное обеспечение для графического дизайна
... самое лучшее бесплатное программное обеспечение для графического дизайна, чтобы стать графическим дизайнером в этой дорогой, высокотехнологичной индустрии. Мы нашли лучшие из лучших вариантов, чтобы охватить основы того, что вам нужно. Бесплатное программное обеспечение для графического дизайна: Быстрые ссылки Хотя вам, возможно, не обязательно учиться официально, чтобы стать дизайнером, вам нужно знать, как работать с программным обеспечением для графического дизайна, а это
Как заработать деньги в Интернете. написание статей
Если вы любите общаться на форумах, оставлять комментарии в блогах или умеете писать интересные статьи, вы можете зарабатывать в Интернете неплохие деньги. На сегодняшний день это самый надежный способ заработка на дому. В Интернете существует несколько систем, которые оплачивают за общение на форумах (примерно по 1 центу за сообщение), но достаточно серьезные деньги можно заработать в системе Адвего (Несколько долларов в час). Это наиболее
Как удалить свой аккаунт Google
... исковой системой. На сегодняшний день Google предлагает сотни продуктов и услуг, почти все из которых управляются через учетную запись Google. Среди них есть сервисы для электронной почты, чата, карт, видео, фотографий, музыки и социальных сетей. Большая часть вашей жизни в Интернете может находиться за единым замком и ключом, который является вашей учетной записью Google. Преимущество этого соглашения заключается в том, что все без проблем, и переключение между различными службами обычно
Исправлено предупреждение об использовании кэширования в браузере
Коди Арсено Обновлено 19 июня 2018 г. В какой-то момент времени, когда вы запускаете тесты скорости на своем веб-сайте, вы, скорее всего, столкнетесь со всем популярным предупреждением «использовать кэширование браузера» в Google PageSpeed ​​Insights. В этой статье мы покажем вам, как использовать кэширование браузера в целом, а также пару опций о том, как
Когда узнаешь, что такое биткойн - захочешь его мать
Укринформ объясняет, что такое деньги XXI века - биткойны, откуда берутся, чем обеспечиваются и чем опасны для государства Что такое биткойн? Это слово звучит отовсюду, его повторяют люди и тексты. Но что это значит? Формально, все очень просто: бит - елементарна единица информации, койн - монета. Но чем вызван резонанс по всей Украине, не утихает уже несколько недель? А тем, что, если разобраться, мы все живем в выдающийся время: в мире утверждается новый вид обеспечения денег Сначала
... ��я на +1 или подписчиков Google+? Решение уравнения Google+ Раньше «+1» использовался только ...
... ��я на +1 или подписчиков Google+? Решение уравнения Google+ Раньше «+1» использовался только для обозначения приглашения на свадьбу, но Google+ изменил все это. Теперь люди могут добавлять +1 к страницам, сообщениям или фотографиям в Google+. Кнопка +1 раньше была единственным вариантом для встраивания на сайт, пока Google не развернул кнопка подписки в Google+ и другие значки
Обзор McAfee AntiVirus Plus
Основанная более 30 лет назад, McAfee превратилась в одну из крупнейших компаний в области кибербезопасности с расширяющимся корпоративным бизнесом и широким кругом потребителей. антивирус инструменты для всех основных платформ. McAfee AntiVirus Plus имеет длинный список функций, включая антивирус, блокировку вредоносных URL-адресов, уничтожение файлов, инструменты ускорения работы с ПК, защиту от кражи для мобильных устройств

Комментарии

Я пропустил фактор или хак, который мог оказать серьезное влияние?
Я пропустил фактор или хак, который мог оказать серьезное влияние? Пожалуйста, оставьте свой отзыв в комментариях ниже! Кредиты изображения: Серп , Olly
Должны ли бренды ориентировать��я на +1 или подписчиков Google+?
Должны ли бренды ориентировать��я на +1 или подписчиков Google+? Решение уравнения Google+ Раньше «+1» использовался только для обозначения приглашения на свадьбу, но Google+ изменил все это. Теперь люди могут добавлять +1 к страницам, сообщениям или фотографиям в Google+. Кнопка +1 раньше была единственным вариантом для встраивания на сайт, пока Google не развернул кнопка подписки в Google+ и другие значки
Д в кого ты чаще обращаешься за советом или подсказкой: к друзьям или к Google?
Д в кого ты чаще обращаешься за советом или подсказкой: к друзьям или к Google? Да! Именно Google стал для нас лучшим помощником, другом и советчиком. Мы так привыкли к нему, что не представляем своей жизни без Google. Одесская область, посмотреть карту, воспользоваться почтой, создать документ и кто знает что еще. Но все это лишь незначительный процент того, на что способен Google. Он имеет много других полезных и интересных сервисов. Поэтому заглянем за кулисы самой популярной поисковой
Они действительно хотят создать какую-то экосистему или их цель - просто собрать деньги?
Они действительно хотят создать какую-то экосистему или их цель - просто собрать деньги?" - рассуждает Дубневич. В результате юрфирма ни один проект не сопровождала, так как ни один из них не прошел проверку. О реальных намерениях таких заказчиков говорят состав команд, дедлайны и цели проектов. Большинство проектов просто собирают деньги под "хайпову" идею. Никто не собирается строить заводы, дома или электростанции. Все хотят собрать деньги, потому что рынок готов их
Org сосредоточиться на самом большом сроке в мире или установить отдельные блокады GEO для каждой страны?
org сосредоточиться на самом большом сроке в мире или установить отдельные блокады GEO для каждой страны? Выход из этой сложной ситуации неизвестен. Оглядываясь назад, было бы разумно, если бы С. Фишер негласно принял законно незаконное предложение нескольких названий на Gutenberg.org. Но теперь, когда литературная корова на законном льду, дочь Хольцбринка, безусловно, не отступит. И Фонд Гутенберга должен бояться быть пораженным поражением в суде или даже крахом требований блокады со
Ли наблюдаете часов?
Ли наблюдаете часов? Поздравляю, Вы счастливый человек. Я рад за вас. Хотя, возможно, Вы не видите часов, потому что у Вас не установлены часы на рабочий стол? В отличие от Вас, большинству людей очень важно следить за временем. Как же еще узнать, что рабочий день закончился и пора домой? Советую Вам установить замечательные, анимированные часы на рабочий стол. Облака проплывают, капельки дождя стекают по экрану, цифры заносит снегом ... ну не прекрасно ли?
Это хороший кусок задержка , Но задержка не единственное соображение - как насчет пропускная способность (т. е. количество информации, которую можно отправить в каждой поездке)?
Как же еще узнать, что рабочий день закончился и пора домой? Советую Вам установить замечательные, анимированные часы на рабочий стол. Облака проплывают, капельки дождя стекают по экрану, цифры заносит снегом ... ну не прекрасно ли? А в комплекте с часами идут - погодный информер, виджет фото галереи и новостей. Убедил? Производители этих
Ли оцифровывает компьютер его?
Ли оцифровывает компьютер его? Современные технологии дошли до того, что французский художник Рафаэль Фабре получил паспорт за изображением своего лица, которое он полностью сгенерированный с помощью компьютера. Это он сделал с помощью 3D-программ, которые используют для создания спецэффектов в кино и игровой индустрии. Если смотреть
Как бы вы эффективно проводили мобильные мультимедийные кампании без головной боли при показе рекламы в разных приложениях от разных издателей?
Как бы вы эффективно проводили мобильные мультимедийные кампании без головной боли при показе рекламы в разных приложениях от разных издателей? Как насчет затрат на разработку рекламы для разных приложений и платформ устройств? Теперь давайте посмотрим, как MRAID может решить эти проблемы. Дополнительные ресурсы: - Создайте последние объявления MRAID с помощью этого бесплатного создателя
Но как насчет этих приложений?
Но как насчет этих приложений? Там все немного сложнее. Первое, что нужно знать, это то, что 64-разрядные версии Windows могут запускать 32-разрядные приложения, но 32-разрядные версии Windows не могут запускать 64-разрядные программы. Еще одна небольшая проблема, которая распространяется только на очень небольшое количество людей, заключается в том, что 32-разрядные версии Windows могут запускать старые 16-разрядные приложения, но эти 16-разрядные приложения не будут работать в 64-разрядной версии
Как на практике используются ставки на спред и на что стоит обратить внимание?
Как на практике используются ставки на спред и на что стоит обратить внимание? Мы предоставляем вам много интересных фактов о торговле ставками на спред. содержание Краткая информация о ставках на спред: 1.) Что такое торговля спредом? 2.) Практический пример из мира спред-трейдинга 3.) Также в торговле на рынке Форекс, спред ставки могут быть полезны 4.) Заключение: Спред-беттинг заключается в сделках с разницей

Но что это значит?
Но чем вызван резонанс по всей Украине, не утихает уже несколько недель?
?я на +1 или подписчиков Google+?
?я на +1 или подписчиков Google+?
Я пропустил фактор или хак, который мог оказать серьезное влияние?
Д в кого ты чаще обращаешься за советом или подсказкой: к друзьям или к Google?
Они действительно хотят создать какую-то экосистему или их цель - просто собрать деньги?
Org сосредоточиться на самом большом сроке в мире или установить отдельные блокады GEO для каждой страны?
Ли наблюдаете часов?
Хотя, возможно, Вы не видите часов, потому что у Вас не установлены часы на рабочий стол?