[軟件書推薦] Ringle 著作-UML團隊開發流程與管理第二版
UML團隊開發流程與管理第二版 UML團隊開發流程與管理第二版
-----------------------------------
作者: 賴信仁
出版社:悅知文化
出版日期:2011年07月20日
ISBN:9789866072246

內容簡介
  ■從情境案例學習UML 2.3版中,14張圖形的應用時機
  ■完整分析如何透過UML正確表達軟體設計的精神
  ■可依據不同平台的需求,學習使用Java或C#為軟體開發工具
  ■內含LAB練習單元,可藉由實作確實了解軟體開發的種種面向
  ■使用工具的進階功能,了解團隊合作開發的基本精神

對於軟體設計的初學者來說,面對大量資訊時,往往不知從何處著手。本書作者依據多年教學經驗,以情境案例為教學主軸,適合以下需求的讀者作為學習指引:

  • 想要了解UML及其應用時機
    本書第一篇設計了一個完整案例,並將UML的14張圖形應用在該案例中,利用對話的方式,說明14張圖形的基本精神及應用方式,讓讀者可以透過實際案例了解UML的基礎。
  • 想要了解如何在實際專案中應用UML
    本書第二篇設計了另一個完整案例,搭配工具軟體,並配合UML、MDA及不同平台的程式語言(Java、C#),藉此可學習到如何在實際案例中應用UML,並提供LAB練習單元,讓讀者可以「從做中學」。
  • 想要學習如何充份發揮軟體開發團隊合作模式
    本書第三篇設計了團隊合作的情境案例,透過虛擬專案的進行,讓讀者可以了解團隊中的各個角色,以及如何挑選適合的工具。
  • 想要了解Enterprise Architect 8如何使用
    Enterprise Architect是一套完整的UM L支援工具,完整支援UML 2.3版的14張圖形,並支援多種程式語言及資料庫,且提供了強大的客製化空間。書中範例使用此軟體進行實作,藉此提供軟體操作及客製化之技巧。

去年底 Ringle 的著作-「UML 團隊開發流程與管理 (繁體/簡體版)」第一版就已賣光。原來他答應出版社作些錯誤修正後就準備要在今年初再版,結果他竟然又再整本書內容重寫過一次,足足花了兩個多月的時間,甚至再加上 Java 程式碼的範例 (第一版只有 VB.NET),不得已再版日期也就延宕到七月中旬,總算鋪貨到各經銷書商了。

繼續閱讀 »

大業務流程塑模的MSS三層次原則

越是大型公司的 IT 資訊單位,無論是外包或是自行維護/開發的系統,在作「需求分析」階段時,往往都會表達到所謂的「業務流程 (Business Process)」。

甚麼是業務 (或稱為企業)流程? 這裡節錄 Jacobson 《Object Advantage》一書中,將企業流程定義為:

Put simply, a business process is the set of internal activities performed to serve a customer.(《Object Advantage》, Ivar Jacobson, 1994, p. 3)
(簡單地說,企業流程就是要能夠服務客戶的一連串企業內部的活動)

或者更簡單的解釋,業務流程表達的就是:某個人在某個時間點所作的某件事 (而這些事會呈現出關聯性與先後順序)。

而甚麼是「大業務流程」?簡單的說,就是業務流程範圍更為廣泛,參與的人更多,所涵蓋的時間更長。而且往往因為現實上基於功能執掌,還是不同部門或不同地點就有不同的作業規範與範疇,但彼此這些作業之間仍需要連串在一起。

例如,物流零售業領域,為了表現出從門市的「訂貨/退貨」,到總部的「進貨/出貨」,乃至於轉入財會單位的「帳務處理」,每一個業務範疇,就有其作業流程/作業規範;而把「訂貨/退貨」→「進貨/出貨」→「帳務處理」等作業流程串聯成更大的流程,即為所謂的「大業務流程」。

我走訪過許多大型的 IT 單位,包括顧問輔導或教學等。檢視從該單位 SA (System Analyst, 表示為需求分析師)所整理的業務流程設計圖,無論是使用傳統的流程圖 (flow-chart),甚或採用 UML 語法所表達出來的活動圖 ((activity diagram),幾乎普遍是存在兩大問題:

  1. 想要利用一張圖表現出所有的細節。
  2. 把資料作為主體,呈現的就是資料傳遞的流程。

第二個問題最難解,這裡牽涉到的就是「資料導向 (data-oriented)」 vs. 「服務導向 (service-oriented)」的分析/設計態度。

若從上述對業務流程的定義,或是後續利用使用案例 (use case)的分析技術,國外軟體大家的最佳實務經驗 (best practices),均是偏向「服務導向」的開發模式。簡而言之,就是將資料封裝 (encapsulate)至服務之內,如此可避免過早揭露繁瑣的細節。

第一個問題則比較容易調整,主要就是把握住一個最基本的原則:設計圖要能維持「簡潔」

「簡潔」的目的在於要能適切突顯出「焦點」之所在,而把諸多繁瑣的細節給封裝住。待決定集中的焦點後,再來才是將其內部「剖開」,探究細節的組成與關聯性。

而要能達成簡潔,就需要考量兩個構面-「廣度」與「深度」,要讓設計有「層次感」。

簡而言之,「廣度」考量的是所涵蓋的範圍;「深度」則是考量所揭露出細節的精細度。

以「大業務流程」的設計呈現,我這裡推薦採用「三層次」的表達,我把它稱為 MSS (Multiple - Single - System) 塑模表示法

  • M (Multiple) Process-表達多個業務流程 (Business Process)之間的關聯性,利用「Erickson Penker (俗稱火箭圖) 流程擴展語法」表達。
  • S (Single) Process-表達單一業務流程內的作業活動 (activities)。利用 UML 「活動圖」表達。
  • S (System) -表達資訊系統所擔負的功能。利用 UML「使用案例 (use case)圖」表達。

繼續閱讀 »

[烏龜訂購系統開發與實作-10]-從 EA 工具建立資料模型,並產出 DDL SQL敘述

下列步驟主要目地在於建立資料庫的資料表格,並實現由中間層控制物件連結至資料庫,以達成實際存取資料的目地。

十、從 EA 工具建立資料模型,並產出 DDL SQL敘述

  • 透過 EA 建立資料模型 (Data Model)的原因,在於 EA 具備了視覺化的資料塑模機制。且透過其轉換 (transform)功能,可以產出支援多達十數種資料庫的 DDL (Data Definition Language) SQL敘述。
  • 當然也可以使用如 eclipse 插件 (plugin)的資料庫管理工具,來規劃與建立資料表格。
  1. 在 [Logical View] 套件內,新增子套件 (sub-package)名為「Data Model」。
  2. 在該套件內新增一設計圖名為「Order Model」,設計圖類型為「Data Modeling」。
  3. 打開設計圖,從工具箱 (toolbox)中將「Table」圖形元件拖曳至設計圖內。本例會使用到兩個表格,其表格名稱與資料欄位參考如下:
    CREATE TABLE ORDER
    (
    	id INTEGER AUTO_INCREMENT,
    	item_no VARCHAR(3) NOT NULL,
    	order_date DATE,
    	PRIMARY KEY (id)
    )
    CREATE TABLE Item
    (
    	id VARCHAR(3) NOT NULL,
    	name VARCHAR(24),
    	price INTEGER,
    	PRIMARY KEY (id)
    )
  4. 繼續閱讀 »

[案例研討] 烏龜訂購系統開發與實作 by UML and Java-09

九、撰寫控制類別的功能測試程式碼框架

** 至本實作步驟可以先把 EA Model 檔與 Eclipse Java 專案存檔。將整個專案目錄備份至 /Stage-1_1 目錄下,視為第一個開發階段的版本。 **
 o 下載 Java 專案與 Model 檔Stage1_1.rar

在 eclipse 環境下要撰寫測試程式碼是非常簡單的一件事,原因是 eclipse 已內建了 JUnit 測試框架 (JUnit Test Framework),作為一位程式撰寫人員,最起碼要為每一個控制性的功能(服務)類別撰寫功能測試程式碼 (functional test code),可以說是軟體品質的最基本保障,也是應該要具備的責任與良心了

  1. 在 Eclipse 內的 [Project Explorer],選擇 「訂購烏龜_Control.java」,按下滑鼠右鍵,選擇 [New] → [Other…],然後在 Wizard 對話框內,選擇 [Java] → [JUnit] → [JUnit Test Case] ,然後點擊 【Next】,在出現的對話框內,填入以下資訊:
    • 點選 「New JUnit 4 Test」。 (新版本的測試框架可以根據 Java 5.0 以上版本的新特徵特性來建構;更簡單、易於使用,以及更敏捷的初始化與清理等工作)
    • Package: com.order.test (端看開發人員的習慣,這裡是採用將測試程式碼均放置於原始程式碼所在位置的子目錄下)
    • Name:訂購烏龜_Control_Test (測試類別命名的建議為 原類別名稱 + _Test)
    • 勾選 setUp() method (讓測試類別可進行初始化的工作)。

    圖 13、新增 JUnit 測試程式碼的對話框
    (點擊圖片鏈接看原圖)圖 13、新增 JUnit 測試程式碼的對話框

  2. 繼續閱讀 »

[案例研討] 烏龜訂購系統開發與實作 by UML and Java-08

八、新增 Java Model 專案,撰寫控制類別程式碼

 

1. 新增 Java Model 專案:
    (1) 將 Eclipse 切至「Java Perspective」。
    (2) 新增「Java Project」專案,專案名稱為「烏龜Model」。

圖 12、在 Eclipse 下新增 Java 專案
(點擊圖片鏈接看原圖)圖 12、在 Eclipse 下新增 Java 專案

2. 撰寫控制 (control)類別與資料傳遞 (data transfer)類別的程式碼框架 (skeleton)

訂購烏龜_Control.java:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.order.control;
 
import java.util.*;
import com.order.dto.*;
 
public class 訂購烏龜_Control {
	public ArrayList<vo_ 烏龜資訊> list烏龜清單() {
		return null;
	}
 
	public VO_訂購確認資訊 結帳(VO_結帳資訊 m_結帳) {
		return null;
	}
 
	public boolean SaveOrder() {
		return false;
	}
}
</vo_>

繼續閱讀 »

[案例研討] 烏龜訂購系統開發與實作 by UML and Java-07

七、Java 開發環境平台與建置

 

1. 下載與安裝所需 Java 開發工具
  • Tomcat 的角色如同在 Visual Studio .NET IDE 的 IIS,均是充當在 Web 專案開發下的 Web Container 機制。
  • VS.NET 幾乎無可選擇地,均是採用 IIS 作為 Web Container;而 Java Eclipse IDE,則可以選擇多種類型的 Web Container。本實作案例,以採用最普遍的 Tomcat 作為 Eclipse IDE 的主要 Web Container。
  • 除了 Web Container,當然也需要有開發 (兼測試)用的資料庫。相較於 VS.NET 採用自家 SQL Express 作為開發用的資料庫,Java Eclipse 則從以往所常用的 hsqldb,如今更多開發人員推薦的是更為開放、輕巧的 apache derby、可被內嵌於 eclipse 的輕量級 (lightweight)資料庫系統,且亦可以利用 eclipse DTP (Data Tools Platform) 輕易地操作存取 derby 資料庫。本實作案例,即採用 apache derby 作為開發與測試用的資料庫系統。

繼續閱讀 »

Page 1 of 179123456789101112...203040...Last »