2008年11月29日 星期六

規格書範例 - 評量系統

評量系統的需求規格書


評量系統的系統設計書

軟體架構師範例

拍賣網站軟體架構


軟體架構師的特質

2008年11月21日 星期五

流程整合的概念與範例

Entity: Customer, Contact, Location, Product, Order, PurchaseOrder
Activity: Check credit, Check inventory, send a notification, confirm a transaction, calculate total
Process: Add a new customer(open account), place & complete an order, Get a quotation

Business rule samples

biz rule: 驗證商業規則的boolean運算式, a boolean expression to validate conformance
1. 地址要包含zip code
1.1 zip使用3碼格式
1.2 未來增加檢查zip code的範圍,例如區分北台灣, 中台灣, 南台灣
1.3 zip code要在地址字串的最前面臨

2008年10月24日 星期五

2008年10月18日 星期六

2008年8月22日 星期五

評估程式設計師的能力

程式語言
Love to code (動機)
使命必達
Follow process/guidelines
Maintainable
Reuse available asset
Learn new technology
Code quality
User-friendly (使用者導性)
相容性(客戶導向)

2008年5月23日 星期五

Auction UC - Signout

http://cid-90dadd2e56b02895.skydrive.live.com/self.aspx/%e5%85%ac%e9%96%8b/Sign%20Out%20UC.doc

Auction UC - Sign In

http://cid-90dadd2e56b02895.skydrive.live.com/self.aspx/%e5%85%ac%e9%96%8b/Sign%20In%20UC.doc

Auction UC - Manage Account

http://cid-90dadd2e56b02895.skydrive.live.com/self.aspx/%e5%85%ac%e9%96%8b/Manage%20Account%20UC.doc

1.1 Brief Description
The Manage Account use case allows the User to update the user information maintained in the User's account, or to deactivate the User's account.
When modifying the account, the entered information is validated and stored in the User's account.
If new credit card information is entered, the system attempts to pay any pending payment notices via the Credit Service Bureau.
If there are any auctions in progress for the account, or the User has any pending payments, the account cannot be deactivated.
A deactivated account is not deleted from the system (it may be needed later for auditing purposes), but it cannot be accessed by the User. Thus, a deactivated account cannot be used to sign in. Deactivated user accounts are removed by a separate archiving process (see the Archive Deactivated Items use case). A new account with the same username cannot be reused until the “old” user account is archived.
The User must be signed in in order to update his/her account. See the Sign In use case.
For information on how a user account is created, see the Create Account use case.

Auction UC - Create Account

http://cid-90dadd2e56b02895.skydrive.live.com/self.aspx/%e5%85%ac%e9%96%8b/Create%20Account%20UC.doc

1. Create Account
1.1 Brief Description
The Create Account use case allows the User to create and activate an account that contains information for the User.
At the time the user activates the account the user is signed in.

Auction UC - Close Auction

http://cid-90dadd2e56b02895.skydrive.live.com/self.aspx/%e5%85%ac%e9%96%8b/Close%20Auction%20UC.DOC

1. Close Auction
1.1 Brief Description
At the expiration of the end of auction timer, this use case closes out an auction. The end of auction timer is set when the Seller specifies a bidding time limit when the auction is created. See the Create Auction use case.
When an auction is closed, the current best bid for the item is accepted (the best bid becomes the purchase price for the item). The system notifies the Buyer and Seller that the auction has completed and provides each with the final purchase price for the item, as well as contact information for the other.
The Seller's credit card (credit card information is maintained with the auction and/or with the user account) is charged the transaction fee.

Auction UC - Cancel Bid

http://cid-90dadd2e56b02895.skydrive.live.com/self.aspx/%e5%85%ac%e9%96%8b/Cancel%20Bid%20UC.DOC

1. Cancel Bid
1.1 Brief Description
A Buyer may bid on an item (see the Bid On Item use case). A bid may be cancelled by the Buyer or Seller.
The Seller can cancel a bid if:
· The Seller cannot verify Buyer’s identity
· They Buyer contacts the Seller and requests the cancellation of his/her bid
· The Seller decides to cancel the auction (see Cancel Auction use case)
The Buyer can cancel their bids if:
· The Buyer’s bid is the highest bid
Every time the Seller cancels a bid, s/he must provide an explanation that will be kept in the auction history.
The Seller must be signed in before s/he can cancel a bid (see the Sign In use case).

Auction UC - Bid on Item

http://cid-90dadd2e56b02895.skydrive.live.com/self.aspx/%e5%85%ac%e9%96%8b/Bid%20on%20Item%20UC.DOC

1. Bid on Item
1.1 Brief Description
When browsing an item currently available via auction (see the Browse Auction Catalog use case), a Buyer may opt to place a bid on the item. The entered bid must be greater than the current bid by an amount greater than the minimum bid increment specified by the Seller. Once accepted the entered bid becomes the current bid.
The User must be signed in in order to bid on an item. See the Sign In use case.
If the auction has been closed, the bid is not accepted. See the Close Auction use case.
If the Buyer has any pending payment notices, a message is displayed to the Buyer, reminding the Buyer that payment for the notices must be made (i.e., new credit card information must be entered) before the User can participate in any auction (as either the Buyer or the Seller. New credit card information can be entered via the Manage Account use case.

Auction UC - Browse Auction Catalog

http://cid-90dadd2e56b02895.skydrive.live.com/self.aspx/%e5%85%ac%e9%96%8b/Browse%20Auction%20Catalog%20UC.DOC

1. Browse Auction Catalog
1.1 Brief Description
This use case allows a User to browse the items currently available for auction. The User may search for a specific item, or may look at all of the items currently available for auction, sorted by category.
The system displays information on the requested item, including, but not limited to the item description, current best bid, minimum bid increment, and bidding history.
Once an auction item is displayed, the User has the option of bidding on the item. See the Bid on Item use case.
The User does not have to be signed on to browse the auction catalog.

Auction UC - Create Auction

Use Case Specification: Create Auction
1. Create Auction
http://cid-90dadd2e56b02895.skydrive.live.com/self.aspx/%e5%85%ac%e9%96%8b/Create%20Auction%20UC.DOC
1.1 Brief Description
The Create Auction use case allows a Seller to create an online auction. The Seller specifies auction information (including the start and end of the auction), his credit card information (if not provided or during account creation, see the Create Account use case, or different for this auction) and can provide an image of the item, and an online auction is created for the item. Buyers can then bid on the item in the auction (see the Bid on Item use case).
An end of auction timer is set for the entered end of the action day and time. When that auction time expires, the auction is closed (see the Close Auction use case).
The seller can use the credit card information that is stored with her/his account or input credit card information that will be used with this auction only.
The User must be signed in order to create an auction. See the Sign In use case.
If the User has any pending payment notices due, a message is displayed to the User informing him/her that an outstanding balance is due, and the User is not permitted to create an auction. The user must go into his/her account and modify the credit card information (see the Manage Account use case).
2. Flow of Events
2.1 Basic Flow
1. This use case starts when the Seller indicates to the system that he/she wishes to create an auction in order to sell an item.
2. The system prompts the Seller to enter the auction information and indicate if s/he wants to provide an image of the item.
3. The Seller enters the auction information. If the seller indicated that s/he wants to provide an image of the item, the systems prompts the seller to select the file with the item image (.gif or .jpag, …). The system validates the entered auction information.
4. The System displays the auction information and requests that the Seller confirm.
5. The Seller confirms the entered auction information.
6. The system prompts the Seller to enter credit card information to be used for payment of the auction fees. If the Seller provided credit card information when he/she created his/her account (see the Create Account use case), that credit information is displayed as the default values for the credit card information. The Seller can then use that credit card information (the credit card information “on file”), or the Seller can enter new credit card information.
Note: The new credit information is used for the auction being created (instead of the “on file” credit card information). The on file credit card information remains unchanged. The only way to change the on file credit card information is via the Manage Account use case.
Note: Any entered credit card information is not validated at this time since a credit card’s validity can change between when it is entered and when something actually needs to be charged to it. Thus, the credit card will be validated prior to charging something to it.
7. The system creates an auction with the entered information. The auction is now open for bidding.
8. The system sets an EndOfAuction timer to expire on the day and time specified for the auction duration.
9. The system displays an “auction created successfully” screen that the seller can print for his/her record.
10. The use case ends.
2.2 Alternative Flows
2.2.1 Seller Has Pending Payments
If the Seller has any pending payment notices, the following occurs at the start of the use case before the system prompts the Seller to enter the information for the new auction (i.e., before Step 2):
- The System displays a message to the Seller reminding him/her that he/she has pending payments that are due and that, until those payments are made, the Seller cannot participate in an auction, either as a Buyer or a Seller. To settle the payment notices, the Seller must enter new credit card information. Credit card information can be entered via the Manage Account use case.
- The use case ends (no auction is created).
-
2.2.2 Seller Cancels Create Auction Request
At any time, the User may choose to cancel the Create Auction request. In such a case, the use case ends and an auction is not created.
2.2.3 Seller Enters Invalid Auction Information
If the system determines that the Seller entered invalid auction information, the following occurs:
- The system describes which entered data was invalid and presents the Seller with suggestions for entering valid data.
- The system prompts the Seller to re-enter the auction information.
- The Seller re-enters the information and the system re-validates it.
- If valid information is entered, the auction information is stored.
- If invalid information is entered, the Seller Enters Invalid Auction Information alternative flow is executed again. This repeats until valid information is entered or the Seller cancels the create auction request.
3. Special Requirements
None
4. Pre-Conditions
4.1 Seller is Signed In
The Seller must be signed in before the Seller can create an auction. See the Sign In use case.
5. Post-Conditions
5.1 An auction is created.
An auction for the item with the entered auction characteristics has been created. Buyers may now bid on the item.
OR
5.2 An auction is not created because of pending payment notices or the Seller cancels the request
An auction for the item with the entered auction characteristics was not created because the User has pending payment notices (i.e., still owes the system money).
6. Extension Points
Step 2. If the Re-List Previously Listed Item use-case is implemented, the systems shows an potion to re-list as an extension of this use case.

2008年2月1日 星期五

use case sample - Maintain Issue Information

1. Abstract of Maintain Issue Information

1.1 Feature ID:

1.2 Actors: Tester, Developer, Manager

1.3 Description: 問題的追蹤與管理

1.4 Key Abstractions: Issue, Project, Role, Permission

2. Basic Flow

使用者進入問題追蹤系統

1. 系統顯示使用者可以查看的問題列表, refer 2.2

a. 顯示的欄位為Project name, issue id, description, category, reporter, report Time, priority, status, assign-to

2. 系統根據使用者角色顯示可以操作的功能

3. 使用者選擇功能

a. 新增問題

b. 選擇問題進行檢視

c. 輸入issue id進行檢視

d. 選擇問題進行修改

e. 選擇欄位進行排序

f. 撤銷問題

g. Import問題

h. export問題

4. 使用者登出系統

a. 使用者直接關閉browser

2.1 新增問題

1. 系統顯示輸入畫面

2. 使用者輸入問題報告

3. 系統建立問題,顯示詳細資料編輯功能

4. 使用者編輯詳細資料, refer 2.2

2.2 編輯詳細資料

1. 系統顯示issue id及詳細資料輸入畫面

2. 系統根據使用者角色顯示可以操作的功能

3. 使用者選擇功能

a. Attach file

b. 設定Mail notification list

c. Subscribe Mail notification

d. Send Mail

e. 設定關連的問題, relate to other issues.

f. Print

g. Export

4. 使用者完成動作

3. Alternative Flows

4. Subflows

5. Key Scenarios

6. Pre-Conditions

6.1 使用者已經登入系統

7. Post-Conditions

8. Extension Points

9. Special Requirements

9.1 Performance

9.1.1 每個畫面反應時間3 seconds

a) 上傳檔案另外規範

9.2 Usability

9.3 Security

10. Additional Information

10.1 User Interface

10.1.1 新增問題畫面需求

Description欄位提供textbox

Project欄位提供預設值, project listbox

Category欄位提供Category listbox

Priority欄位提供Priority listbox

Status欄位提供Status listbox

AssignTo欄位提供AssignTo listbox (如果是Manager自行submit, 可以指派處理人員)

Comment欄位提供textbox

10.1.2 Data Definition

Issue: Project name, issue id, description, category, reporter, report Time, priority, status, assign-to

Category: bug, enhancement, task, question

Priority: hi, me, lo

Status: new, in progress, checked in, re-opened, closed

2008年1月20日 星期日

UML tools

List of UML tools from wiki

Netbean UML features

StarUML supports most of the diagram types specified in UML 2.0.
It is currently missing object, package, timing and Interaction overview diagrams
(though the first two can be adequately modeled through the class diagram editor).
StarUML is an open source UML tool, licensed under a modified version of GNU GPL.

Telelogic Modeler is a Unified Modeling Language (UML) 2.1 based environment for systems and software in applications ranging from enterprise IT to embedded device development.s

2008年1月18日 星期五

物件導向設計 - OOD Object Oriented Design

Migrate from code-centric to model-centric development

OpenUP In a Nutshell

OpenUP In a Nutshell

Software development process - 軟體開發流程

雖然工作繁複困難, 但如果是客戶付了一大筆錢, 刖仍然應該把他做好

如果要重複很多次做類似的事情, 則應該有較好的程序與技術把事情做好

如果無法預測未來的事情, 那就是風險

RUP introduction in wikipedia

book: "The Rational Unified Process, An Introduction" by Philippe Kruchten

RUP walkthrough: Applying Rational tools to a simple J2EE-based project

Use case design - OOD

Getting from use cases to code: Use Case Design from IBM-Rational

Use case analysis - OOA

Getting from use cases to code

use case resources

Use Cases: Yesterday, Today, and Tomorrow by Ivar jacobson, who is the 1st master of use case methodology

Use case in Wikipedia

Putting use cases to work from IBM-Rational

Managing use-case detail from IBM-Rational

Use cases best practices: get the pdf from IBM-Rational

Adopting use cases: Understanding types of use cases and artifacts from IBM-Rational

book: "Use Case Driven Object Modeling With UML: A Practical Approach" By: Doug Rosenberg, Kendall Scott

Software Cost Estimation With Use Case Points

Design pattern - persistence with spring+hibernate




2008年1月16日 星期三

Effective Process 有效的流程

提供產出良好品質的軟體開發準則(Guidelines)
協助管理人員規劃資源與時程
協助提高預測性與專案透明度
協助降低風險
提供工具與工具的有效用法

UML resources

UML forum

UML basics: An introduction to the Unified Modeling Language

IBM Rational UML Resources

A Hands-On Introduction for Developers

UML tutorial with Netbean

del.icio.us UML slides

A UML Introduction Tutorial