1. 程式人生 > >第二章.給客戶所需之物(1)

第二章.給客戶所需之物(1)

pan tin 外部 starting tar simulator color exc 運行

用例:用例是捕捉新系統或軟件變更的潛在需求技術。每個用力提供一個或多個場景(scenario),傳達系統如何與終端用戶(end user)或其他系統交互以實現特定目標。

什麽意思?我也沒看懂?

一個用例,三個部分。

1.清楚的價值:

每個用例對於系統都必須有明確的價值(clear value)。加入用例無助於客戶實現目標,這個用例便沒有什麽價值。

2.起點與終點:

每個用例都必須有明確的起點(starting point)和終點(stopping point)。某件事開始此流程,然後要有條件(condition)指明此流程已完成。

3.外部啟動者:

每個用例由外部啟動者(external initiator)開啟。有時啟動者是人,有時可能是系統外的任何事物。

看個具體的用例:

技術分享

上圖是一個用例,關於用例的解讀:

技術分享

用例就是完成特定目標的具體步驟。

根據用例寫代碼:

技術分享

DogDoor.java:

 1 package com.headfirst.dogdoor;
 2 
 3 public class DogDoor {
 4     private boolean open;
 5     
 6     public DogDoor(){
 7         this.open = false;
 8     }
 9     
10     public void open(){
11         System.out.println("The dog door opens.");
12 open = true; 13 } 14 15 public void close(){ 16 System.out.println("The dog door closes."); 17 open = false; 18 } 19 20 public boolean isOpen(){//返回門的狀態 21 return open; 22 } 23 }

Remote.java:

 1 package com.headfirst.dogdoor;
 2 
 3 import
java.util.Timer; 4 import java.util.TimerTask; 5 6 public class Remote { 7 8 private DogDoor door; 9 10 public Remote(DogDoor door){ 11 this.door = door; 12 } 13 14 public void pressButton(){ 15 System.out.println("Pressing the remote control button ..."); 16 if(door.isOpen()){ 17 door.close(); 18 }else{ 19 door.open(); 20 } 21 22 Timer timer = new Timer(); 23 timer.schedule(new TimerTask(){ 24 public void run(){ 25 door.close(); 26 timer.cancel(); 27 } 28 }, 5000); 29 } 30 }

DogDoorSimulator.java:

 1 package com.headfirst.dogdoor;
 2 
 3 public class DogDoorSimulator {
 4     public static void main(String[] args){
 5         DogDoor door = new DogDoor();
 6         Remote remote = new Remote(door);
 7         
 8         System.out.println("Fido barks to go outside...");
 9         remote.pressButton();
10         System.out.println("\nFido has gone outside...");
11         System.out.println("\nFido‘s all done...");
12         
13         try{
14             Thread.currentThread().sleep(10000);//獲取當前運行線程對象並讓其休眠10s
15         }catch(InterruptedException e){}
16         System.out.println("...but he‘s stuck outside!");
17         System.out.println("\nFido starts barking...");
18         System.out.println("...so Gina grabs the remote control.");
19         remote.pressButton();
20         System.out.println("\nFido‘s back inside...");
21     }
22 }

參考網址:

timer.schedule():http://blog.csdn.net/tiancizhenai/article/details/7050302

TimerTask():http://blog.csdn.net/ahxu/article/details/249610

timer.cancel():http://www.cnblogs.com/lingiu/p/3782813.html

第二章.給客戶所需之物(1)