顯示具有 軟體設計 標籤的文章。 顯示所有文章
顯示具有 軟體設計 標籤的文章。 顯示所有文章

2011年11月30日 星期三

UML - Extension point in Usecase diagram 說明

甚麼是 Extension point
定義一個使用者案例的例外事件,可以將看它看成一到多個 exception path。以「使用者登入」這個使用這案例來舉例的話,這個使用者案例會有下面幾個extension point:
  1. Invalid Username
  2. Invalid Password
  3. Account has been blocked
而這幾個extension point需要被對應到相對處理的使用者案例
  1. handle invalid username
  2. handle invalid password
  3. handle account block
下面是完整的使用者案例圖,說明了使用者使用「login」這個使用者案例,而這個案例會有三個extension points,而這三個extension points分別有各自的使用者案例處理。


2011年11月24日 星期四

Android aapt 指令應用

Android asset packaging tool 是 aapt 的全名,就像名字一樣這個工具是用來進行 apk (Android package )檔案的管理,最常用到的是當程式開發完成後就會使用它來將所有的 application asset 打包成最後能夠安裝的程式。

除了這個功能之外也可使用來進行 apk 檔案的管理,例如:檔案刪除, 新增, 更新, 取出。
這個工具在進行 reengineering 的時候更是不可或缺的工具,不過現在也有很多開發好的 open source 工具可以使用,像是 apktool。

指令位置
{android-sdk location}/tools/aapt
簡單的使用指令說明

查看使用方式很簡單,只要不帶參數執行便會顯示詳細的使用說明
aapt 

下面來說一下怎樣使用這個程式來進行 apk 的管理,下面只介紹基本的操作其餘參數請自行參照說明,文件執行環境:
  • MAC OSX 10.7.2
  • Android Asset Packaging Tool, v0.2
打包安裝檔

aapt p -v -z -x -u -M {AndroidManifest.xml 檔案位置} -A {asset 目錄位置} -S {res 目錄位置} -F {產生的 apk 儲存路徑包含路徑}

查看檔案內容清單

aapt l -v {apk 檔案完整路徑}
可搭配 grep 快速地查找自己所要的結果


刪除檔案

aapt r -v {apk 檔案完整路徑} {刪除的檔案所在 apk 內的完整路徑,若多檔則使用逗號分隔}

新增檔案
aapt a -v {apk 檔案完整路徑} {所要新增的檔案,若多檔則使用逗號分隔}

更新檔案
aapt r -f -v {apk 檔案完整路徑} {所要新增的檔案,若多檔則使用逗號分隔}


相關聯結
Android developer guide - Building and Running (http://developer.android.com/guide/developing/building/index.html#detailed-build)
Android-apktool (http://code.google.com/p/android-apktool/)


2011年11月23日 星期三

IOS Cocoa Touch Static Library 開發教學

提升軟體開發效率最有效的方式就是建立可重用的元件,基本上只要在一個專案中被重復使用兩次以上的功能都可以被納入元件設計的範圍中,這樣的概念是通用於所有開發語言的。

在IOS的開發中這樣的概念在XCode中就已經有支援了,因此今天這篇文章就使用一個簡單的範例來展示一下如何達到。

開發環境

  1. XCode 4.1 build 4B110
  2. iPhone 4.3 Simulator
下面會使用XCode建立一個 Cocoa Touch Static Library Project 與一個 View-based Application,先建立一個static library然後引入到 view-based application中進行開發使用。

建立靜態元件(Static Library)
建立Cocoa Touch Static Library Project
File > New > New Project > Framework & Library > Cocoa Touch Static Library
(這裡建立的專案名稱為: BikeLibrary)

編輯BikeLibrary.h 加入功能宣告

編輯BikeLibrary.h 並實作功能

選擇目標裝置 iPhone 4.3 Simulator & 編譯 (Product > Build)


建立一個新的資料夾 BikeLibrary 將 libBikeLibrary.a + BikeLibrary.h 複製到目錄中就完成了共用元件的製作。


建立專案並使用靜態元件
建立一個View-based Application Project
File > New > New Project > Application > View-based Application
(這裡建立的專案名稱為: BikeController)

複製靜態元件到專案目錄中


編輯 BikeControllerViewController.h 加入 BikeLibrary.h


編輯 BikeControllerViewController.m 呼叫靜態元件

執行模凝器 iPhone 4.3 Simulator 並且觀察 Output Console 是否正確輸出 debug訊息

Comment 
好的元件設計能夠替開發人員省去寶貴的開發時間,在面臨需求變更與效能調教時也能夠很快速地達成。省下來的時間拿來增進自己的知識或是研究更好的技術這才是根本的解決之道。