[案例研討] 雲端與安卓系統分析與實作-以豪小子App為例-02

三、 利用使用案例 (Use Case)圖界定系統範圍與定義系統功能

o 雲端系統 (Cloud Server) use case model

圖 3、Cloud Server use case model
(點擊圖片鏈接看原圖)圖3、Cloud Server use case model

    o Use Case (使用案例):表達系統功能 (system functions)。

  • 彙整豪小子相關消息。
  • 設定豪小子搜尋條件。
  • 查詢豪小子新聞訊息。
    o Primary Actor (主要參與者):使用系統所提供的服務 (系統功能)。

  • Scheduler System (排程系統):定時啟動「彙整豪小子新聞資訊」批次作業 (Batch Job)。
  • Administrator (系統管理者):管理者可編輯並設定豪小子搜尋的條件 (condition)。
  • Android App System (安卓豪小子App):安卓App至雲系統查詢已整理過的豪小子新聞資訊。
    o Supporting Actor (支援性參與者):系統需要取得外部系統支援的服務。

  • Google Custom Search Server:雲系統所下的搜尋條件,透過 Google Search APIs 將搜尋的結果儲放至該伺服器內。後續的程序再由雲系統取得已搜尋的結果。

閱讀全文 »

[案例研討] 雲端與安卓系統分析與實作-以豪小子App為例-01

前言

這是今年 (9月底)至大陸「深圳」軟件園區-「北京大學產學研究中心」授課所使用的案例研討 (case study)。

短短兩天的授課時間,展現如何整合「雲端 Cloud) 資料彙整」與「安卓 (Android) App」的系統分析開發至程式寫碼等涵蓋一個開發循環 (iteration)。

第一版的 Model 檔在此提供下載,可作為一個小型專案的範本參考 (Java eclipse 源碼待至後續論及開發寫碼時提供下載)。讀者可至 EA Saprx System 下載免費的 EA Viewer 以讀取該 Model 檔。

o 豪小子_雲端與安卓系統分析 Model 檔。
o EALite.exe (free, EA UML Viewer)

案例簡述

HSDc. 軟件設計公司 打算因應「林來瘋 (Lin-Sanity)」熱潮,開發一個手持式裝置的行動App (暫先命名為 「豪小子」 ),初步的版本先以「安卓 (Android)」系統為開發平台,後續的版本則準備擴展至「iOS」、「Windows Phone」等主要系統平台。

主要的功能需求 (functional requirement),行動用戶可以透過「豪小子App」隨時得知關於「Lin-Sanity」的相關新聞 (news)。用戶不需至各個相關的網站自行搜尋關於林的新聞,而是已由「雲系統 (Cloud System)」彙整其相關的新聞資訊,行動App僅需連至「雲系統」取得相關新聞的索引鏈結 (index link)即可。

「雲系統」的建構可以至「ISP (Internet Service Provider)」租賃,以減少建置與維護成本。本例的「雲系統」係架設在「Amazon EC2 (Elastic Compute Cloud)」。

一、利用 EA UML 工具規劃塑模 (modeling)專案目錄

圖 1、利用EA UML工具規劃塑模專案目錄
(點擊圖片鏈接看原圖)圖 1、利用EA UML工具規劃塑模專案目錄

    重點摘要:

  • UML 目錄規劃如同文件管理一般,每個人/每個團隊 均有屬於自己風格的整理方式,沒有絕對的規範。
  • 文件管理以「資料夾 (folder)」為容器 (container)收納單位;UML 專案則以「套件 (package)」為容器單位。
  • 一般建議的「root-package」有兩大面向-「需求 (requirement) view」與「結構 view」,但這也不是絕對。
  • 「package」內可容納「sub-package」與「uml 元素 (elements, 如同 files)」。

閱讀全文 »

[烏龜訂購系統開發與實作-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 作為開發與測試用的資料庫系統。

閱讀全文 »

軟體思維顧問

專職軟體輔導與教育訓練的獨立顧問。輔導企業資訊單位如何有效組織系統開發與維護;輔導開發人員達成有效的專業分工。傳授如何把軟體作軟 (Keeping Software Soft)的技能,得以提昇系統的彈性/延展,並進而創造系統的再利用價值。

Personal