fbpx

軟體設計與架構專業課程

Contents

關心優質軟體策略。像專業架構師一樣思考,

並使用設計模式( design patterns )和

原則( principles )開發出高品質的軟體。

在這軟體設計和架構專業課程中,你將學習如何應用設計原則 、模式和架構來創建可重用且靈活的軟體應用程式和系統。你將學習如何使用視覺記號來表達和記錄軟體系統的設計和架構。

應用你的知識的實際案例和機會將有助於你發展受軟體行業的僱用技能和相關專業知識。

報名參加課程

專案概略

總整專案( Capstone Project )涉及基於 Java 的 Android 應用程式,你將在專業的四個課程中評估和開發該應用程式。此應用程式將從將資料本地儲存到單個用戶應用程式演變為遠端儲存資料的多用戶應用程式。在每門課程中,你都將獲得一個 Java 程式庫基底( codebase)作為起點,並將使用你在課程中學到的知識來記錄和實践新功能。

提供的教學可幫助你了解啟動程式碼庫( starter codebase )並了解 Android 開發的基礎知識。

選前必備

你需要具備基本的 Java 程式設計知識。總整的應用程式將要求你使用 Android Studio,一個整合的開發環境。要詳細了解 Android Studio,請查看適用於 WindowsMac 的教學。

製作方  

alberta.png   University of Alberta

阿爾伯塔大學(University of Alberta),始建於1908年,位於加拿大亞伯達省省會艾德蒙頓市中心,北薩斯喀徹溫河南岸,是加拿大的一所綜合研究性大學。

阿爾伯塔大學是加拿大亞伯達省綜合實力最強的大學,也是加拿大U15大學聯盟的成員,多年來與多倫多大學、麥吉爾大學等居加拿大研究型大學前五,世界排名前百。學校的3M傑出教員(加拿大本科教學的最高榮譽)數量在全加拿大第一。隨著阿爾伯塔省經濟的繁榮和教育投入的增加,校方的目標是在2020年成為躋身全世界最好的20所公立大學。(來自維基百科)

阿爾伯塔大學在雅伯達省創造了國家和國際創新的聲音,在加拿大處於全球前茅方面發揮了主導作用。阿爾伯塔大學被認為是世界領先的公立研究和教學密集型大學之一。作為加拿大頂尖大學之一,其在人文、科學、創意藝術、商業、工程和健康科學領域享有卓越聲譽。

professor

第 1 門課程  物件導向設計

課程概述

本課程涵蓋物件導向的分析和設計,將 Java 初學者提升到更高的水準。你將了解如何通過應用物件導向的設計原則和指導來創建模組化、靈活且可重用的軟體。而且,你將能夠以被稱為統一建模語言(UML)的視覺化符號來交流這些設計。

你將在總整專案( Capstone Project )中受到挑戰,運用你物件導向設計的知識,演進和記錄具有相對 UML文件的 Android 應用程式的 Java 程式庫( codebase )。

完成本課程後,你將能夠:

  • 應用類別責任協作( CRC,Class Responsibility Collaborator  )技術來分析和設計問題的物件導向模型。
  • 解釋並應用物件導向的建模原則及其目的(例如,抽象、封裝、分解、泛化)。
  • 解釋並應用不同類型的繼承
  • 解釋關聯、聚合和組合依賴關係之間的差異。
  • 將物件導向的模型表示為統一建模語言類圖 ( UML class diagrams)。
  • 在 UML 類圖和相對的 Java 程式碼之間進行轉換。
  • 應用模組化、關注點分離、資訊隱藏和概念完整性的設計指南,以創建靈活、可重用、可維護的設計。
  • 解釋內聚力和耦合度之間的權衡。

第 1 週 :  Object-Oriented Analysis and Design

第 2 週 :  Object-Oriented Modeling

第 3 週 :  Design Principles

 第 4 週 :  Capstone Challenge



第 2 門課程  設計模式

課程概述

本課程通過結合設計模式創建互動式應用程式來擴展物件導向的分析和設計。通過對既有的設計模式的勘查,你將獲得更複雜軟體應用程式的基礎。最後,你將以參考程式碼怪味( code smells )目錄來識別有問題的軟體設計。

你將在總整專案( Capstone Project )中受到挑戰,重新設計現有的基於 Java 的 Android 應用程式,以實現設計模式組合。你還將評論某一 Java 程式碼基底( codebease )照出程式碼怪味。

完成本課程後,你將能夠:

  • 展示如何使用設計模式來解決用戶界面設計問題。
  • 識別最適合的設計模式來解決給定的應用程式設計問題。
  • 應用設計原則(如 open-closed、dependency inversion、least knowledge)。
  • 通過識別和重構反模式( anti-patterns )來批判程式碼。
  • 應用模型 – 視圖 – 控制器架構模式。

第 1 週 :  Introduction to Design Patterns: Creational & Structural Patterns

第 2 週 :  Behavioural Design Patterns

第 3 週 :  Working with Design Patterns & Anti-patterns

  第 4 週 :  Capstone Challenge



第 3 門課程  軟體架構

課程概述

軟體組件(子程序、類、函數等)的安排方式以及它們之間的互動被稱為架構。在本課程中,你將學習這些架構在 UML 和其他視覺化工具中的表現方式。我們將介紹最常見的架構、其品質和權衡。我們將討論如何評估架構,什麼可建構一個好的架構,以及如何改進架構。我們還將討論架構如何影響軟體開發的過程。

在總整專案( Capstone Project )中,你將使用 UML 圖文檔描述基於 Java 的 Android 應用程式,並使用架構權衡分析方法(ATAM)分析評估應用程式的架構。

完成本課程後,你將能夠:

  • 比較和對比在設計應用程式和系統中所使用的不同類型架構風格( architectural styles )的組件、連結、協議、拓撲、約束、權衡和變數。(架構風格如主程序和子程序、物件導向、解釋程序、管道和過濾器、以資料庫為中心、基於事件)
  • 描述分層和 n 層架構的屬性。
  • 創建 UML ipackage、組件和佈署圖來表示系統的架構格局。
  • 使用 UML 活動圖( UML activity diagrams )解釋系統的行為。
  • 用分層架構記錄多應用系統。

第 1 週 :  UML Architecture Diagrams

第 2 週 :  Architectural Styles

第 3 週 :  Architecture in Practice

第 4 週 :  Capstone Challenge



第 4 門課程  服務導向架構

課程概述

基於對架構風格的理解,你將回顧 Web 應用程式的架構,然後通過兩種方法探討服務導向架構( SOA,Service-Oriented Architecture )的基礎知識:Web 服務(WS *)和 REST ( Representational State Transfer )架構。

在總整專案( Capstone Project )中,你將使用 Elasticsearch 連接基於 Java 的 Android 應用程式,這是一個 REST 應用程式介面( API )的 Web 服務。

完成本課程後,你將能夠:

  • 描述構建基於 Web 的系統的 SOA ( 服務導向架構 )。
  • 解釋WS *服務(即 SOAP over HTTP,WSDL,UDDI,BPEL)。
  • 應用 REST 架構(即 HTTP 上的 JSON,URI)。
  • 確定 REST 設計原則。
  • 使用 REST 界面創建一個系統。
  • 應用微服務( microservice )架構。

第 1 週 :  Web Technologies

第 2 週 :  Web Services

第 3 週 :  REST Architecture for SOA

 第 4 週 :  Capstone Challenge


到官方網站了解本課程與上課

Sponsored by Coursera

你可能會有興趣

找其它課程?試看看 Soft & Share 網站搜尋引擎

✍ 搜尋結果太多?可參考 Soft & Share 搜尋引擎使用技巧


幫我們個小忙!

使用 e-mail 追蹤 Soft & Share

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

Powered by WordPress.com.

Up ↑

%d 位部落客按了讚: