1.问题域
学习从面向对象的角度出发分析一个问题并提出解决方案,
首先从问题陈述开始,包括:
- 对现有问题的定义.
- 定义问题所包含的范围
- 理解问题域相关词汇
例如:对于银行工作计算机化,目的就是实现对现有工作模式中的重复性工作由计算机代替.
银行向客户提供了储蓄服务,所谓的服务也就是提供n多中帐户类型,活期,定期,银行卡,自主存取也就是ATM,其中参与的人包括银行员工,储蓄客户等.
这是一个模糊的概念定义,但是这也是分析问题的第一步,工作也从这里开始,一步步的使得客户的需求更加明晰,解决的问题更加准确.
2.用例分析
就现有的系统而言,他拥有几个用户,每个用户为不同目的而使用该系统.
例如:
管理员要做统计.
出纳为客户提供服务.
用户存取现金.
他们都用到了系统的某一个部分.
而每个使用过程都是一个用例(use case),每个案例中用户就是一个行动者(actor).
和系统交互的每个事物都可以叫做actor.
查找actor也可以是扮演某个角色的用户,也就是一个人可以有多种角色,而每个角色扮演的不同的actor.
这样,用例的定义也就来了:
一个用例是扮演某个角色的用户对系统的一次操作,use case由actor和他对系统交互的方式构成.
例如:
一个用户开了一个帐户;
定期存款系统计算定期利息;
打印一位客户的交互记录.