教學大綱 Syllabus

科目名稱:軟體工程概論

Course Name: Introduction to Software Engineering

修別:群

Type of Credit: Partially Required

3.0

學分數

Credit(s)

50

預收人數

Number of Students

課程資料Course Details

課程簡介Course Description

本門課期望讓學生了解軟體開發的全貌,而非僅止於程式撰寫,以便讓學生能夠更容易接軌 未來的工程生涯。本門課程會需要學生積極參與課堂上的討論,亦會要求學生有程式開發的 基礎能力。相關計分方式與討論的安排請參考課綱內容。

核心能力分析圖 Core Competence Analysis Chart

能力項目說明


    課程目標與學習成效Course Objectives & Learning Outcomes

    1. 了解軟體生命週期

    2. 了解軟體工程的價值與目標

    3. 了解目前主流的軟體開發方法與軟體開發該顧慮的事情

    4. 學習如何在同儕間建立影響力,並且培養團隊協作能力

    5. 學習如何規劃與實作簡單的專案

    每周課程進度與作業要求 Course Schedule & Requirements

    教學週次Course Week 彈性補充教學週次Flexible Supplemental Instruction Week 彈性補充教學類別Flexible Supplemental Instruction Type

    週次

    WEEK

    課程主題Topic

    課 程內容與指定閱讀Content and Reading Assignment

    教學活動與作業 Teaching Activities and Homework

    課堂講授 In-class Hours

    課程前後 Outside-of -class Hours

    1 課程溝通 了解課程安排與規則

    1. 同學互動與交流

    2. 內容講述

    3

    3

    2

    課程啟動與認識 SDLC

    1. OST 活動

    2. 分組

    3. 介紹 SDLC

    1. 同學互動與交流

    2. 內容講述

    * 作業一(團隊型)

    3

    5

    3

    什麼是軟體工程

    1. 作業一各組報告

    2. 流程的角色

    3. 從工程到軟體工程

    4. 軟體工程的要素與全貌

    1. 同學互動與交流

    2. 內容講述

    3. 評比與回顧

    * 作業二(團隊型)

    3

    5

    4

    什麼是敏捷

    1. 針對作業二分組辯論

    2. 敏捷的核心精神與常見的運用方式

    3. 軟體工程與敏捷之間的關係

    1. 同學互動與交流

    2. 內容講述

    3. 評比與回顧

    3

    5

    5

    團隊

    1. 目標與一致性

    2. 團隊動態

    1. 同學互動與交流

    2. 內容講述

    3

    5

    6

    期末專案提案

    1. 學生介紹專題主題

    1. 評分與回顧

    2. 引導思考與提供建議

    3

    5

    7 民族掃墓節        
    8 需求Ⅰ

    1. 需求與故事

    2. MVP

    3. 調適性規劃的概念

    4. 拆解增量

    1. 同學互動與交流

    2. 內容講述

    3 5
    9 需求Ⅱ

    1. 從增量到開發目標

    2. 迭代開發

    3. 增量概念與文件化

    1. 同學互動與交流

    2. 內容講述

    3

    5

    10 需求Ⅲ

    1. 學生更新專題狀況

    2. Gitlab Issues

    1. 同學互動與交流

    2. 內容講述

    3

    5

    11 設計與開發

    1. 微服務

    2. 演進式架構

     1. 同學互動與交流

    2. 內容講述

    3

    5

    12 設計與開發

    1. 演進式架構

    2. C4 Model

    3. TDD

    1. 同學互動與交流

    2. 內容講述

    *作業三(團隊型)

    3

    5

    13 CI/CDⅠ

    1. 學生更新專題狀況

    2. 作業三各組報告

    3. CI/CD 概念與施行方式

    1. 評分與回顧

    2. 同學互動與交流

    3. 內容講述

    3

    5

    14 CI/CD Ⅱ

    1. 建置 Runner

    2. 了解變更方式,並且逐步 建置流水線

    1. 同學互動與交流

    2. 內容講述

    3

    5

    15 CI/CD Ⅲ 了解變更方式,並且逐步 建置流水線

    1. 同學互動與交流

    2. 內容講述

    * 作業四(個人)

    3

    5

    16 期末考試 期末考試

    1. 考試

    2. 作業四繳交

    3

    5

    17 期末專題報 告

    1. 學生實際展演專題實作

    2. 回顧與改善

    收尾、微調、繳交最終實 作

    3

    5

    18 產業演講 DevOps或雲端技術相關 補充教學,結束會點名, 佔學期成績 2 分

    3

    5

     

    授課方式Teaching Approach

    45%

    講述 Lecture

    20%

    討論 Discussion

    35%

    小組活動 Group activity

    0%

    數位學習 E-learning

    0%

    其他: Others:

    評量工具與策略、評分標準成效Evaluation Criteria

    * 總分將依各項成績按權重加總。

     1.團隊分數 (20%) - 期初便會進行分組,期末將由團隊成員彼此進行評鑑,評鑑將以問卷進行,分數則由各評鑑面向平均值按權重加總。評鑑面向如下:

    1. 團隊貢獻度 (50%) - 具五級等評定的問題

    2. 協作能力 (20%) - 具五級等評定的問題

    3. 參與程度 (20%) - 具五級等評定的問題

    4. 綜合評分(10%) - 按 0 ~ 100 分給分

       2. 作業與提案評分 (15%) - 共 5 次,評分機制為起點分與現場群體評分(0~100),各 別以不同百分比的加總,此項目最終分數為 5 次評分的平均值。

          a. 團隊作業(3次)起點分為 70 分,群體評分則為 30*(x/100),x=現場評分 (0~100)。最終分數為三次評分的平均

          b. 專案(3次)起點分為 80 分,群體評分則為 20*(x/100),x=現場評分 (0~100)

      3.期末專案 (40%) - 同組一致

    1. 專案產出吸引度與完整度 (50%)  - 由所有現場同學評分

    2. 自動測試 (30%) - 繳交原始碼需包含測試案例,並且說明進行了哪些測試及其理由,且保證測試能夠正常運行且全數通過。

    3. 建置流水線 (20%) - 將採用 Gitlab 作為預設的原始碼管理工具,程式碼的採用須有完整的自動流水線進行測試與建置。

     4. 期末考筆試(20%)

     5. 個人作業(1次),佔 3 分;補充教學(1次),佔 2 分。 

    指定/參考書目Textbook & References

    1.  建構微服務|設計細微化的系統 2/e,歐萊禮
    2.  Google 的軟體工程之道|從程式設計經驗中吸取教訓 (Software Engineering at Google),歐萊禮
    3. 建立演進式系統架構|支援常態性的變更 (Building Evolutionary Architectures: Support Constant Change), 歐萊禮
    4.  敏捷開發的藝術 第二版, 歐萊禮
    5. Modern Software Engineering: Doing What Works to Build Better Software Faster, David Farley, Addison-Wesley Professional

    已申請之圖書館指定參考書目 圖書館指定參考書查詢 |相關處理要點

    維護智慧財產權,務必使用正版書籍。 Respect Copyright.

    課程相關連結Course Related Links

    
                

    課程附件Course Attachments

    課程進行中,使用智慧型手機、平板等隨身設備 To Use Smart Devices During the Class

    Yes

    列印