Онлайн-курс — сертифицированная профессиональная специализация в области проектирования программного обеспечения и архитектуры от Google и Университета Альберты.

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

Suggested by: Coursera (What is Coursera?)

Professional Certificate

начиная

No prior knowledge required

Time to complete the course

7-day free trial

No unnecessary risks

Skills you will acquire in the course

  • коммуникативные навыки
  • критическое мышление
  • тайм-менеджмент
  • работа в команде
  • решение проблем
  • Возможности анализа данных
  • креативность
  • Борьба с давлением
  • лидерские качества
  • Способность к самостоятельному обучению

What you will learn in the course

Courses for which the course is suitable

  • Разработчик программного обеспечения
  • инженер-программист
  • Разработчик Android-приложений
  • Архитектор программного обеспечения
  • Java-разработчик
  • Разработчик информационных систем
  • Full Stack разработчик
  • Бэкэнд-разработчик
  • Фронтенд-разработчик
  • Менеджер технологических проектов

Профессионализация — серия курсов из 4 частей.

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

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

Практический учебный проект

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

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

предпосылки

  • Требуется наличие базовых знаний программирования на Java.
  • Приложение Capstone потребует от вас использования Android Studio, интегрированной среды разработки.
  • Чтобы узнать больше об Android Studio, ознакомьтесь с руководствами для Windows или Mac.

Details of the courses that make up the specialization

Объектно-ориентированный дизайн

  • Курс 1 • 17 часов • 4,7 (2315 оценок)

Детали курса

чему ты научишься

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

В последнем проекте вам будет предложено применить свои знания объектно-ориентированного проектирования путем разработки и проверки базы кода Java для приложения Android с соответствующими документами UML.

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

Навыки, которые вы получите

  • Категория: Объектно-ориентированный дизайн
  • Объектно-ориентированный дизайн
  • Категория: Объектно-ориентированный анализ и проектирование
  • Объектно-ориентированный анализ и проектирование
  • Категория: Единый язык моделирования (UML)
  • Унифицированный язык моделирования (UML)

шаблоны проектирования

  • Курс 2 • 15 часов • 4,7 (1308 оценок)

Детали курса

чему ты научишься

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

В финальном проекте вам будет предложено перепроектировать существующее приложение Android на базе Java, чтобы реализовать комбинацию шаблонов проектирования. Также проверьте данную кодовую базу Javascript на наличие запахов кода.

После прохождения этого курса вы сможете:
  • Продемонстрируйте, как использовать шаблоны проектирования для решения проблем проектирования пользовательского интерфейса.
  • Определите наиболее подходящий шаблон проектирования для решения проблемы проектирования данного приложения.
  • Применяйте принципы проектирования (например, «открыто-закрыто», обращение зависимостей, минимальные знания).
  • Аудит кода путем выявления и исправления антиструктур.
  • Примените шаблон архитектуры модель-представление-контроллер.

архитектура программного обеспечения

  • Курс 3 • 9 часов • 4,5 (893 оценки)

Детали курса

чему ты научишься

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

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

После прохождения этого курса вы сможете:
  • Сравнивайте и противопоставляйте компоненты, соединения, протоколы, топологии, ограничения, дилеммы и вариации различных типов архитектурных стилей, используемых при проектировании приложений и систем (например, основная программа и подпроцедуры, объектно-ориентированные, паруса, каналы и фильтры, центры обработки данных, на основе событий).
  • Описывать особенности многоуровневых и многоуровневых архитектур.
  • Создавайте диаграммы UML, предназначенные для упаковки, компонентов и макета, чтобы выразить архитектурную структуру системы.
  • Объясните поведение системы, используя диаграммы деятельности в UML.
  • Документируйте многоприкладную систему с многоуровневой архитектурой.

Сервис-ориентированная архитектура

  • Курс 4 • 9 часов • 4,5 (570 оценок)

Детали курса

чему ты научишься

На основе понимания архитектурных стилей вы рассмотрите архитектуры веб-приложений, а затем изучите основы сервис-ориентированной архитектуры (SOA) в двух подходах: веб-службы (WS*) и архитектуру передачи репрезентативного состояния (REST). В конечном проекте вы подключитесь к приложению Android на базе Java с помощью Elasticsearch, веб-службы с интерфейсом программирования приложений REST (API).

После прохождения этого курса вы сможете:
  • Описать SOA (сервисно-ориентированную архитектуру) для проектирования сетевых систем.
  • Объясните службы WS* (т. е. SOAP через HTTP, WSDL, UDDI, BPEL).
  • Реализуйте архитектуру REST (т. е. JSON через HTTP, URI).
  • Определить принципы проектирования REST.
  • Создайте систему, используя интерфейсы REST.
  • Реализуйте микросервисную архитектуру.

Навыки, которые вы получите

  • Категория: сетевые услуги
  • сетевые услуги
  • Категория: Микросервисы
  • Микросервисы
  • Категория: Передача представительского состояния (REST)
  • Представительская государственная передача (REST)
  • категория: Сервис-ориентированная архитектура
  • Сервис-ориентированная архитектура