首页 > 代码库 > 第二章.给客户所需之物(1)
第二章.给客户所需之物(1)
用例:用例是捕捉新系统或软件变更的潜在需求技术。每个用力提供一个或多个场景(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)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。