在线课程 – 来自 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 开发人员
  • 信息系统开发人员
  • 全栈密钥
  • 密钥后端
  • 前端密钥
  • 技术项目经理

专业化 – 由 4 部分组成的课程系列

在这一系列专门研究软件设计和体系结构的课程中,您将学习如何应用设计原则、模式和体系结构来创建可重用且灵活的应用程序和软件系统。您将学习如何使用视觉标记来表达和记录软件系统的设计和架构。

应用您的知识的实际示例和机会将帮助您培养软件行业的相关求职技能和培训。

实践学习项目

最终项目包括一个基于 Java 的 Android 应用程序,您将在该专业的四门课程中对其进行编辑和开发。该应用程序将从在本地存储数据的单用户应用程序发展为远程存储数据的多用户应用程序。在每门课程中,您都将获得一个 Java 代码库作为起点,并且必须使用您在课程中获得的知识来记录和实施新内容。

您将找到可帮助您了解基本代码并学习 Android 开发的基础知识的教程。

先决条件

  • 您需要具备 Java 编程的基本知识。
  • Capstone 应用程序将要求您使用 Android Studio,这是一个用于开发的集成环境。
  • 要了解有关 Android Studio 的更多信息,请参阅适用于 Windows 或 Mac 的教程。

Details of the courses that make up the specialization

面向对象的设计

  • 课程 1 • 17 小时 • 4.7 (2,315 个等级)

课程详情

学习内容

本课程通过涵盖分析和面向对象设计,将 Java 初学者提升到一个新的水平。您将了解如何通过应用面向对象的设计原则和指南来创建模块化、灵活且可重用的软件。您还可以使用称为统一模型语言 (UML) 的视觉标记来传达这些设计。

在这个最终项目中,您将面临挑战,通过开发和认证具有 UML 中适当文档的 Android 应用程序的 Java 代码库,来应用您的面向对象设计知识。

完成本课程后,您将能够:
  • 应用跨部门协作 (CRC) 责任技术来分析和设计面向对象的问题模型。
  • 解释和应用面向对象模型的原则及其目标(例如,抽象、封装、解构、泛化)。
  • 解释并应用不同类型的继承。
  • 解释关联依赖关系、聚合和组合之间的区别。
  • 在 UML 中将面向对象的模型表示为类图。
  • 在 UML 中的类图和相应的 Java 代码库之间进行转换。
  • 应用模块化、字段分离、信息隐藏和概念完整性的设计准则,以创建灵活、可重用和可维护的设计。
  • 解释整体主义和连通性之间的困境。

您将获得的技能

  • 类别: 面向对象设计
  • 面向对象的设计
  • 类别: 面向对象的分析和设计
  • 面向对象的分析和设计
  • 类别: 统一模型语言 (UML)
  • 统一模型语言 (UML)

设计模式

  • 课程 2 • 15 小时 • 4.7 (1,308 个等级)

课程详情

学习内容

本课程通过结合设计模式来创建交互式应用程序,从而扩展了面向对象的分析和设计。通过查看已建立的设计模式,您将获得更复杂的软件应用程序的基本知识。最后,您将通过参考 Code Scent Guide 来识别有问题的软件设计。

在最终项目中,您将面临重新设计现有基于 Java 的 Android 应用程序以实现设计模式组合的挑战。您还将访问有关代码味道的给定 Javascript 代码库。

完成本课程后,您将能够:
  • 演示如何使用设计模式来解决 UI 设计问题。
  • 确定最合适的设计模式来解决给定应用程序的设计问题。
  • 应用设计原则(例如,open-closed、依赖项删除、最少的知识)。
  • 代码控制器。
  • 应用 model-view-controller 架构模式。

软件架构

  • 课程 3 • 9 小时 • 4.5 (893 个等级)

课程详情

学习内容

软件组件(子过程、部门、功能等)的排列方式以及它们之间的交互称为体系结构。在本课程中,您将学习如何在 UML 和其他可视化工具中表示这些架构。我们将介绍最常见的架构、它们的特点和困境。我们将讨论如何欣赏建筑,什么是好的建筑,以及如何改进建筑。我们还将讨论架构如何影响软件开发过程。

在最后一个项目中,您将使用 UML 图记录基于 Java 的 Android 应用程序,并使用架构困境分析 (ATAM) 方法评估应用程序的架构。

完成本课程后,您将能够:
  • 比较和区分用于设计应用程序和系统的不同类型架构风格的组件、连接、协议、拓扑、限制、困境和差异(例如,总体规划和子程序、面向对象、帆、管道和过滤器、数据中心、基于事件)。
  • 描述多层和多级架构的功能。
  • 创建专为打包、组件和布局而设计的 UML 图,以表达系统的体系结构结构。
  • 在 UML 中使用活动图解释系统的行为。
  • 记录具有多层架构的多应用程序系统。

面向服务的体系结构

  • 课程 4 • 9 小时 • 4.5 (570 个等级)

课程详情

学习内容

基于对架构风格的理解,您将回顾 Web 应用程序的架构,然后通过两种方法探索面向服务的架构 (SOA) 的基础知识:网络服务 (WS*) 和代表性状态传输 (REST) 架构。在最终项目中,您将使用 Elasticsearch 连接到基于 Java 的 Android 应用程序,Elasticsearch 是一种具有 REST API 的 Web 服务。

完成本课程后,您将能够:
  • 描述 SOA(面向服务的体系结构)以设计基于网络的系统。
  • 解释 WS* 服务(即基于 HTTP 的 SOAP、WSDL、UDDI、BPEL)。
  • 实施 REST 架构(即 JSON over HTTP、URI)。
  • 确定 REST 设计原则。
  • 使用 REST 接口创建系统。
  • 实施微服务架构。

您将获得的技能

  • 类别: Web 服务
  • 网络服务
  • 类别: 微服务
  • 微服务
  • 类别: 代表模式传输 (REST)
  • 代表模式传输 (REST)
  • 类别: 面向服务的体系结构
  • 面向服务的体系结构