[軟件培訓] 系統分析設計與實作—活用 UML 塑模 與 C#.NET (04/23, 54 Hrs)

** 由於 04/02 為春假,所以本課程為方便學員返鄉過節等,因而開課日期順延至 4/23 (星期六)。 **

[軟件培訓] 系統分析設計與實作—活用 UML 塑模 與
C#.NET (04/23, 54 Hrs)
報名資訊
  • 日期:2011/04/23 起,每週六白天。
    每次上課為六個小時(AM 9:30~PM 4:30),共九個星期。
  • 預定上課日期:04/23, 04/30, 05/14, 05/21, 05/28, 06/04, 06/11, 06/18, 06/25。
    (5/07 因隔日為母親節假日,故順延乙週。)
  • 地點:中國生產力中心,台北市承德路二段 81號B1(首府經貿大樓)。
    http://www.cpc.tw/Train/Place.aspx
  • 附贈完整系統分析文件範本 (Word 格式)與可執行的 C#.NET 程式原始碼。
  • 線上預約報名者,贈送 UML 著書:「UML 協同合作與管理第二版(C#.NET版)
  • 同課程可保留再旁聽乙次的權利
    (.NET/J2EE 系統分析課程均可。報名時註明舊生旁聽即可)。
  • 修習課程完成的學員均有結業證書 (諸多公司已認同本單位所傳授的課程與理念)。
  • 下午均附有免費從外特別特購精緻的咖啡與點心。
課程宗旨

HSDc. 軟體團隊,期望能透過教育訓練,以低於一般軟體設計高階課程不到一半的費用,就是希望能回饋於軟體業界,期能提攜軟體後進人員,習得正知正覺的觀念。

講師群均為豐富的軟體實務開發經驗,且仍持續刻苦研讀軟體哲理與技術等原文著作,除了身體力行、不做空談謾罵的嘴砲,實踐在現實的輔導工作與專案開發上,更希望能將其所學與經驗傳承,帶給有志向學的軟體開發人員們。

今年(2011)於農曆年後所舉辦的第一個課程即為完整性的「系統分析、設計與實作 by C#.NET and UML」。期能協助軟體開發人員在現實的工作中,能瞭解完整的開發流程與各個角色的工作執掌與產出。

並在基於以架構為中心來建立團隊具共識的整體觀下,能聚焦在適切開發單位的功能點內,快速地從需求分析導出到實作,找出並克服開發過程中,包括溝通、技能與技術等風險因子。

而後基於這樣的框架目標內,得以對系統的結構作重整,卻又不至於影響已有的功能前提下,得以對程式碼施以重構的技巧,讓系統更有延展度與彈性。

另外我們提供給學員們最大的一個福利就是,每一位學員都能有免次再次旁聽同性質課程乙次的權利。所以,當學員聽完 C#.NET 課程後,仍可再登記聽下一期的 Java 版本課程 (每一期開發8位旁聽名額,先報名者優先)。

課程介紹
HSDc. 於 2011 年度推出了完整的系統分析、設計至實作的課程,期能協助軟體開發人員在現實的工作中,能瞭解完整的開發流程與各個角色的工作執掌與產出。在基於以架構為中心來建立團隊具共識的整體觀下,能聚焦在適切開發單位的功能點內,快速地從需求分析導出到實作,找出並克服開發過程中,包括溝通、技能與技術等風險因子。
而後基於這樣的框架目標內,得以對系統的結構作重整,卻又不至於影響已有的功能前提下,得以對程式碼施以重構的技巧,讓系統更有延展度與彈性。

傳統系統分析與設計的課程,經常是「昧於現實」,將需求分析/結構設計與程式碼實作拉得太遠,而造成軟體設計與實作的不一致。殊不知,所謂的軟體塑模與程式碼的實作必然是軟體系統的一體兩面,在軟體開發過程中,必然是要保持一致性,所以設計是要作精,而不是籠統的文件報告。關於文件,只是利用工具的文件產出功能,將平時已確實所作的設計,產出美輪美奐的文件報表而已。不要為文件而文件,還去加班熬夜,傷了身體,又浪費生命在不必要的地方,實在沒有意義。

還有系統開發與實作也不是「妥於現實」,利用 IDE 工具從 Web/Windows Form 直接連接資料庫的這種開發方式,只是讓軟體人員變得更笨,只要需求變動就導致牽一髮而動全身,系統是不會有任何的延展與彈性的。最起碼的一點設計良心,又能處在國內嚴苛的環境中,對於短線時程的專案,先將系統的命脈—企業邏輯的核心,全給統籌集中在中間層,也就是企業邏輯層—先求有! 再來才是求好!—待系統能確實上線,能滿足使用者的需求後,再則老闆與客戶對開發團隊有了信心,肯給予更多的資源—包括人跟錢,團隊的技能也有了增長與更好的溝通默契。外在與內涵的條件均俱足下,就可以專致於對系統結構的重整,並對程式碼施以重構的技巧,而又不會影響既有的功能前提下,讓系統更具可重用性與延展性,甚而轉成產品以服務更多同類型性質的客戶,又能快速的客製化每一個單位的特殊化需求。

基於這樣的理念,我們主張系統分析與設計是要「務實」,不是「昧於現實」,也不是「妥於現實」,而是在現實與理想中找到那一個平衡點。所以課程規劃是分為兩個階段。

第一個階段就是捕捉系統功能需求,快速設計,立即產出程式碼。重點就是要瞭解如何作好系統的需求分析與對應到程式碼的實作。本階段需要培訓的技能有物件導向的基礎知識、從使用者角度看待系統時的外部功能分析,抓出適切的功能點開發單位、從畫面、中間層物件到連結資料庫的實作能力等。還有,一定要配套的兩個設計措施,一為撰寫測試案例與功能測試程式碼,實現自動化的測試機制;另一為活用分析類別,先利用中間層的控制類別,集中與控管從畫面與資料庫而來的企業邏輯。

第二個階段就是傳統系統分析所說的 SD(System Design), 傳統是以資料庫的 E-R(Entity-Relation)
分析,在物件導向則是稱為領域模型的建立—包括找出物件與適切的分派責任。這可不是一件容易的事,事實上應該說要具備的抽象能力要相當高,所以為何我們覺得那種 SA->SD->PG 開發流程是不務實的,因為 SD 很難作得好,然後還要 PG去等該階段的產出,又大部分是不正確,可以說是浪費開發資源與時間。程式碼可以直接反應功能的需求,但不一定要等結構分析,集中在控制控制類別的好處就
是,我們可以很容易地對結構作重整、對程式碼作重構,卻又不會影響既有上線的功能。本階段的重點當然就是對所謂結構的分析技能培養,我們會兩種方式,一為從需求抓名詞的傳統方法、另一為揭露出以交易為核心的交易樣式,可以輕易地抓出一大串的企業元件。

總的來說:作好功能需求分析-> 影響系統能不能做出來 ;
     作好結構分析-> 影響系統有沒有彈性

** 基於已上課學員們普遍的意見與期望的內容,我們把 功能實作/結構設計 的內容比例調整為 60%/40%。不特別鑽研 .NET 的實作技術(爾後會依主題開設技術性的單元課程)、而更多在結構的設計與分析,如設計樣式的解釋與範例演練、大型系統的結構萃取技巧等傳授。

觀念的傳授、設計的圖形化塑模表達、程式碼的實作三層次,是我們對於系統分析設計與實作課程的基本原則與態度。

修習本次系統分析的學員們,也必然可以拿到完整的教材、完整案例的 Model 檔與實作程式碼的對應,帶回去自行練習,並能對映於工作上,如此才會有顯著且實質的效益。

我們期能讓學員們上完課後,能以我們所提供的案例,包括設計模型與程式碼,當成範本而可以應用於工作實務上,甚而可以創造所屬自己的"Pattern"。

HSDc. 軟體團隊,關心每一位軟體人員的持續成長...。

課程費用
  1. 大學/研究所資訊相關科系講師、助教或教授,出示相關證明,我們會以建教合作方式計費。(請另以電話聯絡)
  2. 清貧或由家扶中心推薦,請出示相關證明,所有費用 免費!!
適合學員:
  • 系統分析/設計(SA/SD),PM, Programmer 等在職軟體開發者。
  • 學校資訊講師/在學相關資訊科系學生。
  • 學員最好有基本的 OOP 程式設計能力 (基本即可)。
師資簡介:
  • 賴信仁(Ringle Lai), 王克明(Kenming Wang), 陳亞瑟 (Arthur Chen),
    宋敏如(Cathy Sung)
  • 擅長將複雜抽象的概念,以非常淺顯易懂的比喻及說明,讓學員一清二楚,並善於引導學員具備設計應有的反思能力。
使用教材與工具:
  1. 提供物件導向教材,包括內容、案例、Model 與程式碼等,同時並附有完整教學光碟乙片。
  2. 學員可攜帶相關 物件導向 參考書籍,並對於書中內容有問題者,可以直接提問。
  3. EA (Enterprise Architect) 8.0(Trial) UML Tool、 VS.NET
    Express 2010/SQL Express(均會附於教學光碟內)。
備註:
  1. 教室設備包括白板與投影機,由講師親自說明與操作示範。(學員可攜帶錄音筆)
  2. 學員最好能攜帶 Notebook(可無線上網),可以於課程中實際操作與練習。
  3. 上過本課程(.NET/Java 均可)學員,仍可免費旁聽本課程。(保留 10 名學員名額。)
  4. 本課程上課學員需滿 20 人以上,若未達上課人數則延期至下一梯次開課,已報名學員,本中心會電話通知,並主動辦理退費(或可保留至下一梯次)。
  5. 開課前一週會以電子郵件聯絡與通知學員。
課程大綱
§ Iteration #1 (27 hrs)
o 課程階段目標: 捕捉系統功能需求,快速設計,立即產出程式碼

一、軟體開發方法論—開發流程與塑模 (6 hrs)
 o 開發模式的介紹
  o 瀑布、循序的典型開發模式
  o 漸增(Iteration)與漸進(Incremental)的主流開發模式
  o 主流開發流程的簡介 — RUP/XP/AGILE/SCRUM
 o 簡介專案開發的工作流程
  o 專案中各個角色人員的工作執掌
  o 專案中各個階段的產出(artifacts)介紹
 o 軟體開發的最佳實務
  o 以架構為中心(architecture centric)的開發
  o I&I(Iteration and Incremental) 漸增與漸進
  o 視覺化的方式設計軟體模型 (Visually Model Software)
  o 需求的變動管理與持續驗證軟體的品質
  o 侷限與收斂軟體的變動性
 o 軟體塑模— 統一塑模語言(UML, Unified Modeling Language)的綜觀介紹
  o 利用完整案例導引來介紹 UML 的十三種圖形
  o Flash 操作錄影檔(附於教學光碟內),導引 UML 工具繪製 UML 圖的步驟

二、需求面的功能分析設計—Modeling by UML 三劍客 (15 hrs)
 o 建構使用案例模型,實現企業流程的需求
  o 利用使用案例圖表達系統的功能需求
   o 如何界定系統範圍(System Boundary)
   o 如何找出使用案例與參與者(Actor)
   o 使用案例之間的關係— include and extend
   o 利用使用案例圖表達架構觀點
  o 從表達企業流程(Business Process)的活動圖導出到使用案例圖
  o 使用案例敘述(Description)的寫作實務
   o 如何寫出高品質的使用案例敘述
   o 如何依據使用案例範本完成使用案例敘述的撰寫
   o 如何表達正常、替代、擴充與例外事件流程的敘述
   o 寫好每一條動作步驟陳述的要領
  o 針對每一個使用案例,撰寫測試案例 (Test Case)
  o 利用 EA "Document Generation" 機制產出美輪美奐的需求報表文件
 o 使用案例的實現(Realization)與實作(從使用案例到循序圖到產出程式碼)
  o 利用類別圖 (Class Diagram)設計與創建 Use Case 控制物件,以實現使用案例的功能需求
  o 利用循序圖 (Sequence Diagram)表達程式碼物件的互動設計
 o 利用 EA "Code-generation" 功能產出控制物件的程式碼框架
 o 測試先行—在 IDE 工具內撰寫該控制物件的測試程式碼
  o 利用虛擬碼(Pseudo Code)撰寫程式碼內部的細節
 o 實際執行應用程式碼的部署與執行功能測試
 o 利用 EA 反向工程功能,在 IDE 環境內修改程式碼,並反轉(Reverse)回 UML Model

三、案例分析與實作 - Iteration #1 (6 hrs)
 o 利用 EA UML 工具
  o 實做使用案例模型(Use Case Model)、類別圖、循序圖
  o 利用 Code-Generator 機制,產出 C#.NET 程式碼框架
 o 設計控制 (Control)物件,實現使用案例所交付的功能需求
  o 利用 DataSet,成為 UI 與控制物件 間的參數傳遞型別
  o 利用 DataSet,實現虛擬DB (Virtual DB)的設計觀
 o 利用 Visual C# 2010 Express IDE 撰寫
  o ASP.NET Web 表單
  o 控制(Control) 物件 by C#.NET
  o 利用 NUnit 撰寫功能測試程式碼

§ Iteration #2 (27 hrs)
o 課程階段目標: 重構程式碼與類別結構,讓系統更有彈性。

一、物件導向觀念養成與應用 (6 hrs)—觀念、模型與程式碼的三面表達
 o 介紹「概念(concept)」與「抽象(abstraction)」的觀念
 o 確實瞭解「類別(class)」與「物件(object)」的區別與關係
  o 結合(association)、組合(aggregiation)與
   一般-特殊化(generalize-specialize)關係的說明
 o 封裝(encapsulation)與多型(polymorphism)的設計觀與應用
 o 瞭解繼承(Inheritence)與介面(Interface)」的設計原理
 o 程式碼範例—
  o 利用 C#.NET 程式碼表達類別的結構關係(結合,組合,一般-特殊化)
  o 利用 C#.NET 程式碼呈現介面與多型的設計實作

二、軟體結構面的分析與設計 (12 hrs)
 o 建構領域至物件模型的技巧與方法
  o 從使用案例的敘述中找出潛在的概念物件。
  o 運用交易樣式(Transaction Patterns)找出核心交易物件
 o 資料庫表格的設計
  o E-R (Entity-Relationship) Model 的分析與設計
  o 利用 EA UML 工具設計 E-R 圖,並轉為可以匯入資料庫的 DDL SQL 敘述檔
 o 企業物件的設計
  o 物件的責任分派(responsibility assign) — 屬性與行為的分析
  o 利用 UML類別圖 建構領域的物件模型 (Business Object Model)
 o 活用設計樣式(design pattern)
  o Design Pattern Overview - 生成類、結構類、行為類 總覽介紹
  o 合成(composite)樣式的設計 — BOM 表的最佳呈現
  o Facade and Adapter 樣式,表達在 Control and Boundary 物件的設計原則
 o 分析類別(Analysis Class)的設計
  o Control 物件
  o Entity (Business)物件
  o Boundary 物件

三、程式碼的重構 (12 hrs)
 o 程式碼重構的設計原則
  o 利用委託(delegate)的技巧,確實釐清物件的責任分派 (Responsibility Assign)
 o 分析類別在 中間層 (Middleware) 的實現
  o 實現 Controller by C#.NET
  o 實現 O-R Mapping by DataSet
  o 實現 企業物件 by C#.NET
 o 連結實體資料庫
  o VDB (Virtual DB) 虛擬資料庫物件的設計與實作
 o 控制物件, 企業物件, DAO 物件 三者的職掌與相依性分析
  o 控制物件連結 DAO 與 企業物件
  o 企業物件連結 DAO 物件

四、案例分析與實作 - Iteration #2 (實做部分涵蓋於上述課程內)
 o 利用 Visual C# 2008 Express 重構程式碼的結構
 o 利用 EA 更新類別與E-R圖,並重新部署 DDL DB Schema 至 SQL Express Server
 o 利用 EA 實現正反向工程,達成程式碼與 Model 的同步
 o 利用 Iteration #1 所撰寫的測試碼驗證與修正被重構的程式碼

§ 整體開發流程總複習
 o 檢視兩個循環(Iteration)開發所各自產出的設計圖與程式碼
 o 回顧每一個流程開發階段的產出與所運用的設計、技術與技能
 o 學員課程中的問題提問與回答總整理

 o 諮詢專線:TEL: 092236977
 o 服務信箱:gnimnek168@gmail.com
 o FB社團:軟體設計鮮思維

文章導覽

   

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *