质量软件开发的意识策略。像专家架构师一样思考,并使用设计模式和原则创建高质量的软件。
Suggested by: Coursera (What is Coursera?)
No prior knowledge required
No unnecessary risks
在这一系列专门研究软件设计和体系结构的课程中,您将学习如何应用设计原则、模式和体系结构来创建可重用且灵活的应用程序和软件系统。您将学习如何使用视觉标记来表达和记录软件系统的设计和架构。
应用您的知识的实际示例和机会将帮助您培养软件行业的相关求职技能和培训。
最终项目包括一个基于 Java 的 Android 应用程序,您将在该专业的四门课程中对其进行编辑和开发。该应用程序将从在本地存储数据的单用户应用程序发展为远程存储数据的多用户应用程序。在每门课程中,您都将获得一个 Java 代码库作为起点,并且必须使用您在课程中获得的知识来记录和实施新内容。
您将找到可帮助您了解基本代码并学习 Android 开发的基础知识的教程。
本课程通过涵盖分析和面向对象设计,将 Java 初学者提升到一个新的水平。您将了解如何通过应用面向对象的设计原则和指南来创建模块化、灵活且可重用的软件。您还可以使用称为统一模型语言 (UML) 的视觉标记来传达这些设计。
在这个最终项目中,您将面临挑战,通过开发和认证具有 UML 中适当文档的 Android 应用程序的 Java 代码库,来应用您的面向对象设计知识。
本课程通过结合设计模式来创建交互式应用程序,从而扩展了面向对象的分析和设计。通过查看已建立的设计模式,您将获得更复杂的软件应用程序的基本知识。最后,您将通过参考 Code Scent Guide 来识别有问题的软件设计。
在最终项目中,您将面临重新设计现有基于 Java 的 Android 应用程序以实现设计模式组合的挑战。您还将访问有关代码味道的给定 Javascript 代码库。
软件组件(子过程、部门、功能等)的排列方式以及它们之间的交互称为体系结构。在本课程中,您将学习如何在 UML 和其他可视化工具中表示这些架构。我们将介绍最常见的架构、它们的特点和困境。我们将讨论如何欣赏建筑,什么是好的建筑,以及如何改进建筑。我们还将讨论架构如何影响软件开发过程。
在最后一个项目中,您将使用 UML 图记录基于 Java 的 Android 应用程序,并使用架构困境分析 (ATAM) 方法评估应用程序的架构。
基于对架构风格的理解,您将回顾 Web 应用程序的架构,然后通过两种方法探索面向服务的架构 (SOA) 的基础知识:网络服务 (WS*) 和代表性状态传输 (REST) 架构。在最终项目中,您将使用 Elasticsearch 连接到基于 Java 的 Android 应用程序,Elasticsearch 是一种具有 REST API 的 Web 服务。