|
所在平台: Coursera |
课程主页: https://www.coursera.org/learn/software-architecture
课程评论:没有评论
课程名称:软件架构 课程概述:软件组件(如子程序、类、函数等)的排列方式及其相互作用称为架构。在本课程中,您将学习如何用UML及其他可视化工具表示这些架构。我们将介绍最常见的架构类型、它们的特性和权衡。您还将了解如何评估架构、判断何为优秀架构,以及如何改进架构。同时,课程将探讨架构与软件开发过程之间的关系。在结课项目中,您将使用UML图文档记录一个基于Java的Android应用,并使用架构权衡分析方法(ATAM)分析和评估该应用的架构。 完成本课程后,您将能够: - 比较和对比不同类型架构样式在应用程序和系统设计中使用的组件、连接、协议、拓扑、约束、权衡和变体(例如:主程序和子程序、面向对象、解释器、管道与过滤器、数据库中心、事件驱动等)。 - 描述分层架构和n层架构的特性。 - 创建UML包、组件和部署图,以表达系统的架构结构。 - 使用UML活动图解释系统的行为。 - 用分层架构记录一个多应用系统。 课程大纲: 1. UML架构图 - 学习软件架构的重要性、需要考虑的不同视角,以及如何使用UML交流架构。 2. 架构样式 - 探讨选择不同架构对软件的安全性、效率、模块化和可维护性等各个方面的影响。 3. 实践中的架构 - 学习开发团队如何描述架构、基于质量属性规划成功的架构并评估所产生的架构,以及架构与组织结构和产品规划的关系。 4. 结课挑战 - 在课程的最后一模块中,评估所提出的架构,以拓展示例Android代码库的功能。
Part: 1
Title:UML Architecture Diagrams
Description:In this module you will learn about software architecture. You will learn why architecture is important, what perspectives need to be considered, and how to communicate architecture using UML.
Part: 2
Title:Architectural Styles
Description:Software comes in all shapes and sizes. The architecture you choose will affect every part of your software, from its security and efficiency, to its modularity and maintainability. In this module we will examine the different architectures that you have to choose from to shape your software.
Part: 3
Title:Architecture in Practice
Description:The architecture is the most fundamental aspect of software. You will learn how development teams describe architectures, plan successful architectures based on quality attributes, and evaluate the resulting architecture. You will also learn how architecture relates to organization structure and even product planning!
Part: 4
Title:Capstone Challenge
Description:Now, in the final module of the course, you will evaluate the proposed architecture to extend the functionality of the example Android code base.
The way that software components — subroutines, classes, functions, etc. — are arranged, and the interactions between them, is called architecture. In this course you will study the ways these architectures are represented, both in UML and other visual tools. We will introduce the most common architectures, their qualities, and tradeoffs. We will talk about how architectures are evaluated, what makes a good architecture, and an architecture can be improved. We'll also talk about how the architecture touches on the process of software development. In the Capstone Project you will document a Java-based Android application with UML diagrams and analyze evaluate the application’s architecture using the Architecture Tradeoff Analysis Method (ATAM). After completing this course, you will be able to: • Compare and contrast the components, connections, protocols, topologies, constraints, tradeoffs, and variations of different types of architectural styles used in the design of applications and systems (e.g., main program and subroutine, object-oriented, interpreters, pipes and filters, database centric, event-based). • Describe the properties of layered and n-tier architectures. • Create UML ipackage, component, and deployment diagrams to express the architectural structure of a system. • Explain the behaviour of a system using UML activity diagrams. • Document a multi-application system with a layered architecture.