HSDc. 定於端午節過後的隔一個星期六 (06/14)舉辦為期九週共 54 個小時的系統分析暨實作課程。底下是該課程介紹與課程大綱,相關的課程資訊,亦可參考:
http://www.hsdc.com.tw/course_signup/20080614_sa_sd_to_implement_by_java
【台北場】2008/06/14 起,每週六白天,每次上課為六個小時(AM 9:30~PM 4:30),共九個星期。
o 預定上課日期:06/14, 06/21, 06/28, 07/05, 07/12, 07/19, 07/26, 08/02, 08/08 。
HSDc. 於 2008 年度推出了完整的系統分析、設計至實作的課程,期能協助軟體開發人員在現實的工作中,能瞭解完整的開發流程與各個角色的工作執掌與產出。在基於以架構為中心來建立團隊具共識的整體觀下,能聚焦在適切開發單位的功能點內,快速地從需求分析導出到實作,找出並克服開發過程中,包括溝通、技能與技術等風險因子。而後基於這樣的框架目標內,得以對系統的結構作重整,卻又不至於影響已有的功能前提下,得以對程式碼施以重構的技巧,讓系統更有延展度與彈性。
傳統系統分析與設計的課程,經常是「昧於現實」,將需求分析/結構設計與程式碼實作拉得太遠,而造成軟體設計與實作的不一致。殊不知,所謂的軟體塑模與程式碼的實作必然是軟體系統的一體兩面,在軟體開發過程中,必然是要保持一致性,所以設計是要作精,而不是籠統的文件報告。關於文件,只是利用工具的文件產出功能,將平時已確實所作的設計,產出美輪美奐的文件報表而已。不要為文件而文件,還去加班熬夜,傷了身體,又浪費生命在不必要的地方,實在沒有意義。
還有系統開發與實作也不是「妥於現實」,利用 IDE 工具從 Web/Windows Form 直接連接資料庫的這種開發方式,只是讓軟體人員變得更笨,只要需求變動就導致牽一髮而動全身,系統是不會有任何的延展與彈性的。最起碼的一點設計良心,又能處在國內嚴苛的環境中,對於短線時程的專案,先將系統的命脈—企業邏輯的核心,全給統籌集中在中間層,也就是企業邏輯層—先求有! 再來才是求好!— 待系統能確實上線,能滿足使用者的需求後,再則老闆與客戶對開發團隊有了信心,肯給予更多的資源—包括人跟錢,團隊的技能也有了增長與更好的溝通默契。外在與內涵的條件均俱足下,就可以專致於對系統結構的重整,並對程式碼施以重構的技巧,而又不會影響既有的功能前提下,讓系統更具可重用性與延展性,甚而轉成產品以服務更多同類型性質的客戶,又能快速的客製化每一個單位的特殊化需求。
基於這樣的理念,我們主張系統分析與設計是要「務實」,不是「昧於現實」,也不是「妥於現實」,而是在現實與理想中找到那一個平衡點。所以課程規劃是分為兩個階段。第一個階段就是捕捉系統功能需求,快速設計,立即產出程式碼。重點就是要瞭解如何作好系統的需求分析與對應到程式碼的實作。本階段需要培訓的技能有物件導向的基礎知識、從使用者角度看待系統時的外部功能分析,抓出適切的功能點開發單位、從畫面、中間層物件到連結資料庫的實作能力等。還有,一定要配套的兩個設計措施,一為撰寫測試案例與功能測試程式碼,實現自動化的測試機制;另一為活用分析類別,先利用中間層的控制類別,集中與控管從畫面與資料庫而來的企業邏輯。 第二個階段就是傳統系統分析所說的 SD(System Design), 傳統是以資料庫的 E-R(Entity-Relation) 分析,在物件導向則是稱為領域模型的建立—包括找出物件與適切的分派責任。這可不是一件容易的事,事實上應該說要具備的抽象能力要相當高,所以為何我們覺得那種 SA->SD->PG 開發流程是不務實的,因為 SD 很難作得好,然後還要 PG 去等該階段的產出,又大部分是不正確,可以說是浪費開發資源與時間。程式碼可以直接反應功能的需求,但不一定要等結構分析,集中在控制控制類別的好處就是,我們可以很容易地對結構作重整、對程式碼作重構,卻又不會影響既有上線的功能。本階段的重點當然就是對所謂結構的分析技能培養,我們會兩種方式,一為從需求抓名詞的傳統方法、另一為揭露出以交易為核心的交易樣式,可以輕易地抓出一大串的企業元件。
總的來說: 作好功能需求分析-> 影響系統能不能做出來 ; 作好結構分析-> 影響系統有沒有彈性
觀念的傳授、設計的圖形化塑模表達、程式碼的實作三層次,是我們對於系統分析設計與實作課程的基本原則與態度。修習本次系統分析的學員們,也可以拿到完整的教材、完整案例的 Model 檔與實作程式碼的對應。程式碼是以 Java 再搭配最夯的 JSF/Spring/Hibernate Framework,當然,要直接對應 .NET 的實作程式碼,那也是相當直覺不是難事。我們期能讓學員們上完課後,能以我們所提供的案例,包括設計模型與程式碼,當成範本而可以應用於工作實務上,甚而可以創造所屬自己的 “Pattern”。 HSDc. 軟體開發團隊,關心每一位軟體人員的持續成長...。
【課程大綱】...
§ Iteration #1 (36 hrs)
o 課程階段目標: 捕捉系統功能需求,快速設計,立即產出程式碼一、軟體開發方法論—開發流程與塑模 (6 hrs)
o 開發模式的介紹
o 瀑布、循序的典型開發模式
o 漸增(Iteration)與漸進(Incremental)的主流開發模式
o 主流開發流程的簡介 — RUP/XP/AGILE
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 的十三種圖形二、物件導向觀念養成與應用 (6 hrs)—觀念、模型與程式碼的三面表達
o 介紹「概念(concept)」與「抽象(abstraction)」的觀念
o 確實瞭解「類別(class)」與「物件(object)」的區別與關係
o 結合(association)、組合(aggregiation)與
一般-特殊化(generalize-specialize)關係的說明
o 封裝(encapsulation)與多型(polymorphism)的設計觀與應用
o 瞭解繼承(Inheritence)與介面(Interface)」的設計原理
o 程式碼範例—
o 利用 Java 程式碼表達類別的結構關係(結合,組合,一般-特殊化)
o 利用 Java 程式碼呈現介面與多型的設計實作三、需求面的功能分析設計—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 利用類別圖設計與創建 Use Case 控制物件,以實現使用案例的功能需求
o 利用循序圖表達程式碼物件的互動設計
o 利用 EA “Code-generation” 功能產出控制物件的程式碼框架
o 測試先行—在 IDE 工具內撰寫該控制物件的測試程式碼
o 利用虛擬碼(Pseudo Code)撰寫程式碼內部的細節
o 實際執行應用程式碼的部署與執行功能測試
o 利用 EA 反向工程功能,在 IDE 環境內修改程式碼,並反轉(Reverse)回 UML Model。四、實做面 by Spring Framework (9 hrs)
o Spring Framework 綜觀介紹
o 輕量級(light-weigh)的應用系統容器架構介紹
o Spring 在實體 3-tier 的角色定位與架構設計
o Spring 重要特性介紹,包括 IOC與相依性關係、Domain-driven 的設計設計觀
o 利用 JSF(Java Server Faces) 實做 Web Form
o 將 UI 與企業邏輯確實分離的基礎設計觀
o Web 表單連結至中間層控制物件,實現 MVC 設計樣式
o 利用 Hibernate 實現永續性機制
o Hibernate 設定與實作
o HQL 語法與 O-R Mapping 原則
o 從中間層控制物件連結資料庫
o 利用 EA 快速建構資料庫表格
o 利用 Java 撰寫程式碼 (從控制物件透過 Hibernate 連結 DB)五、案例分析與實作 – Iteration #1 (實做部分涵蓋於上述課程內)
o 利用 EA UML 工具
o 實做使用案例模型(Use Case Model)、類別圖與E-R圖、循序圖
o 利用 Code-Generator 機制,產出程式碼框架
o 利用 Java Eclipse IDE 撰寫
o JSF Web 表單
o Java 控制(Control) 物件 by Spring
o Java 資料存取物件(DAO) by Hibernate
o 利用 JUnit 撰寫功能與單元測試程式碼
o 應用程式的部署(Deploy) – JBoss Application Server§ Iteration #2 (18 hrs)
o 課程階段目標: 重構程式碼與類別結構,讓系統更有彈性。一、軟體結構面的分析與設計 (12 hrs)
o 運用交易樣式(Transaction Patterns)找出核心交易物件
o 從使用案例的敘述中找出潛在的概念物件。
o 利用 Peter Coad 的交易樣式(transaction pattern)
o 利用 UML類別圖 建構領域的物件模型
o 從類別圖產出資料庫表格,並利用 EA 部署至資料庫
o 物件的責任分派(responsibility assign) — 屬性與行為的分析
o 活用設計樣式(design pattern)
o 合成(composite)樣式的設計 — BOM 表的最佳呈現
o Facade and Adapter 樣式,表達在 Control and Boundary 物件的設計原則
o 進行分析類別(Analysis Class)的設計
o Control 物件
o Entity (Business)物件
o Boundary 物件二、程式碼的重構 (6 hrs)
o Java Spring 的進階設計觀
o IOC 與 相依性的分析。
o Domain-driven 的設計原則。
o AOP 對非功能性需求的 crosscut(橫切) 與 Concern(考量)的設計觀念。
o 分析類別在 Middleware 的實現
o 實現 Controller by Java Spring
o 實現 O-R Mapping by Hibernate
o 實現 企業物件 by POJOs(Plain-old Java Objects)
o 利用委託(delegate)的設計原則,從控制類別分派責任給企業物件三、案例分析與實作 – Iteration #2 (實做部分涵蓋於上述課程內)
o 利用 Eclipse 重構程式碼結構
o 利用 EA 更新類別與E-R圖,並重新部署 DDL DB Schema 至 MySQL DB 內
o 利用 EA 實現正反向工程,達成程式碼與 Model 的同步
o 利用 Iteration #1 所撰寫的測試碼驗證與修正被重構的程式碼§ 整體開發流程總複習
o 檢視兩個循環(Iteration)開發所各自產出的設計圖與程式碼
o 回顧每一個流程開發階段的產出與所運用的設計、技術與技能
o 學員課程中的問題提問與回答總整理
§課程名稱: 系統分析設計與實作—活用 UML 塑模 與 Java (54 Hrs)
§課程簡述:
o 本課程引導與協助學員先對系統開發流程有全貌的認識,並傳授軟體設計必備的基礎功夫,然後才去了解如何利用 UML 表達設計思維,從系統外觀與結構等各個構面產出有效的設計。並強調馬上就可以從設計導出符合 J2EE 的實體三層式架構,還利用了最具彈性的 Spring Framework,結合 JSF 與 Hibernate,開發出高品質的 Enterprise 系統。快速產出程式碼(包含功能測試碼)的目的在於可以應付專案的交付,並且可以提昇團隊的信心(眼見為憑),然後在第二個開發的循環(Iteration),將程式碼重構,專注在系統的結構重整,而得以讓整體系統俱足彈性、延展性與可重用性。§課程特色:
1. 帶領學員實際走過(實戰練習與操作)兩個開發循環(Iteration):
o #1. 從使用案例轉循序圖,快速產出程式碼 — 實現系統功能,提昇團隊信心。
o #2. 重構程式碼,活用設計樣式(design pattern),專注核心結構設計 — 讓系統的結構更有彈性。
2. 贈送電子教學光碟:
o 讓學員可以帶回家,透過自動安裝方式,即可擁有實際的開發平台與應用系統。
o 包含了 Linux, J2EE Frameworks, JBoss, Eclipse IDE, 以及具體可執行的應用程式與原始程式碼。
3. 提供最少兩個完整的案例研討(Case Study),自然又流暢地整合:
o 開發流程,包含了各階段的設計產出(artifacts)與文件。
o 系統分析與設計 — 提供 UML Model 檔。
o 應用程式的實作與部署 — 提供每一層(tier)的原始程式碼。
4. 本課程均保留與提供了學員免費再旁聽乙次同樣課程的權利,以一次低廉的收費,就可以擁有兩次上課的收穫,課程的師資、內容與品質,我們有信心是不會讓學員們失望的。§課程目標:
1. 讓你瞭解:
o UML 2.0 各類設計圖的設計意涵與應用。
o 軟體設計必須修練的哲理,包括物件與類別、封裝、介面與多型等觀念。
2. 讓你知道:
o 軟體開發流程的全貌,包括了開發人員的角色與職責,以及各階段的實際產出。
o 如何利用 RUP 流程框架,制訂敏捷式(Agile)的開發流程,來找出適合自己團隊性格的流程。
3. 讓你活用:
o UML 三劍客,包括表達系統需求與功能的使用案例,表達系統靜態與動態結構的類別及循序圖。
o 只要能寫好使用案例,就可以確保直接快速產出程式碼。
o 如何利用正反向工程,來保持 Model 與程式碼的一致性。
4. 讓你學會:
o 如何應用 Spring Framework 在 J2EE 3-tier 的整體架構設計,包括:
o 如何利用 JSF 設計 Web UI 程式。
o 如何利用 Hibernate 設計永續性物件,並連結 MySQL 資料庫。
o 如何利用 Java Bean 設計企業物件。
o MVC 層次分明的物件合作與連結 — 從 Web 至 Middleware 至 Database。
o 如何善用 EA UML 塑模工具與 Java Eclipse IDE 工具的整合。
o 如何作好驗收測試,包括撰寫測試案例與利用 JUnit 撰寫功能測試碼。§使用工具:
o EA(Enterprise Architect) 7.1(Trial) UML Tool、JDK 1.6、Java Eclipse IDE、JBoss Application Server (均會附於教學光碟內)。
§授課講師:
o 賴信仁(Ringle Lai)、王克明(Kenming Wang)、宋敏如(Cathy Sung)、鄒順安(Steve Chou)。
o 擅長以非常淺顯易懂的比喻及說明,將複雜的系統抽絲剝繭,重新釐清脈絡,讓學員一清二楚,並善於引導學員具備設計應有的反思能力。
§適合學員:
o 系統分析/設計(SA/SD), PM, Programmer 等在職軟體開發者。
o 學校資訊講師/在學相關資訊科系學生。
o 學員最好有基本的程式設計能力(基本即可)。
§課程費用:
o $14800 (含稅)。 (同等課程原價學費為 $25,000 以上)
o 曾經上課過本公司的「單元系列課程」學員,優惠 $12800 (含稅)。 (請記得註明為舊生,本公司查詢確認即以優惠算)
o 三人同行,或同時報名另一單元課程,亦比照舊生的優惠折扣,每位只需$12800 (含稅)。
o 大學/研究所 資訊相關科系講師、助教或教授,出示相關證明,我們會以建教合作方式計費。(請另以電話聯絡)
o 清貧或由家扶中心推薦,能出示相關證明,所有費用 免費!!
§報名資訊:
授課日期:
o 2008/06/14 起,每週六白天,每次上課為六個小時(AM 9:30~PM 4:30),共九個星期。課後並留半個小時供學員自由提問。
o 預定上課日期:06/14, 06/21, 06/28, 07/05, 07/12, 07/19, 07/26, 08/02, 08/08 。
o 遇國定假日或颱風等因素,則延至下一週上課日(本中心會主動通知學員),以此類推。
授課地點:
o 開羅會議中心,地址:台北市光復南路65號B2 (光復南路、市民大道交接口)。
o 參考交通與地圖。 http://www.hsdc.com.tw/education/cario_mapo 由於本站線上報名系統尚未測試啟用,煩請報名學員填寫下列資料報名 (下列欄位前為 * 者請務必填寫),並以 Email 寄至: service.hsdc@gmail.com
————————————————————————————-
* 姓名:
* 電子郵件:
* 聯絡電話:
任職公司與職位:
備註(請填上如 ATM 轉帳帳號(後五碼即可)與新生或舊生等資訊):————————————————————————————-
o 報名經確認後,本站即會寄送確認通知信給報名學員。
o 報名系統分析與實作班學員,請先以 ATM 轉帳預約費用($1000),並請於報名表備註欄位內,註明您的轉帳帳號末 5 碼與轉帳金額。
o ATM 轉帳帳號: 新光銀行 (103) 帳號: 0772-50-100979-9
o 本課程上課學員需滿 20 人以上,若未達上課人數則延期至下一梯次開課,已報名學員,本中心會電話通知,並主動辦理退費(或可保留至下一梯次)。
林妙怡:
該系統分析課程是以具稍通 OOP 語言(VB.NET, C#.NET, Java …)等即可。
您倒是可以利用本課程,順便學習一下基本的 OOP 語言觀念。 🙂
我是系統規劃人員,沒有程式基礎,會一點ACCESS上起來會不會太吃力?
Hello zonghan:
大概只要稍微瞭解 Java 或 .NET 等 OOP 語法即可,我們只是利用它來呈現系統分析的一體兩面。 🙂
Kenming:
要報名此課程, 一定要會Java嗎?
Hi 对讲机:
這是軟體設計相關議題的課程。 🙂
水平有限.看不明白??????????????
Hello allen:
Iteration-1 只有 15 個小時是一樣的,其它如物件導向基礎觀在 UML 三劍客其實沒有。若是確定某一部份不上的話,煩請來電我們公司洽詢一下。
Hello Roger:
我們可能會規劃在暑假七或八月期間,將 UML 三劍客的課程於中、南部舉辦。
Hello Miss 邱:
謝謝提醒,待課程通知時會修正回來。 !^^
Hi 樹頭鳥:
機車連很不錯耶,比步兵還要舒服,不用行軍耶。 ^^
很期待你們再到台中開課,請問今年你們會有到台中開課的規劃嗎?(類似去年5月的那一場課程)
一直都很想報名參與你們開設的系統分析課程,不過在距離與時間的雙重因素下,一直都無法成行,真心期待你們也可以來台中開課,謝謝!
請問可以拆開來上嗎?
ex: iteration1 or iteration2 ?
因為 iteration1 跟上星期的一樣
m …
大致可以了解
這種
從 Controller 空降
建立據點 (Test First)
再深入敵後心臟
破壞 重建
(Refactoring …. Fine-Grained Domain Model)
發展出來的 “空降神兵” 戰術
—————————
我從來就不是 機車連 的 ..
08/08(五),應該是08/09(六)吧!