2 面向对象建模过程 领域分析

在进行系统构思之后,我们会进行领域分析领域分析的目的是为了构建与业务对应的模型,领域分析步骤如下

 

领域类模型

1. 寻找类

根据名称和概念,我们可以初步提取一些类

如:销售不同剧院剧目入场券的预定系统,我们提取的暂定类有 剧院,剧目,入场券,预定,系统

 

不是所有类都符合我们的系统,所以我们需要移除与领域无关的类

移除冗余类:如客户和用户,这两个概念是相同的,所以我们需要移除一个

不相关的类:观看演唱会的人有不同的职业,但我们的演唱会系统不关心他们的职业,所以移除职业

移除属性:如“我们需要测量体检人的身高体重”,身高体重虽然是名词,但是在更多时候,他们更适合做为属性而不是类

移除操作:如“用户可以通过电话预约我们的房间”,电话预约是一个操作,如果我们不想记录这个操作,那么我们可以移除这个类

移除实现制品:如进程,cpu,用户工厂,xx管理器等,在实现阶段才会用到,在领域分析中不应该出现

 

2. 准备数据词典

数据词典就是一份类名的说明文档,数据词典用于解释我们每个类的意义

 

3. 寻找关联

类之间的关系有:依赖,关联,聚合,泛化

关联:指2个类之间非临时性的引用,聚合是一种强类型的关系

寻找关联就是确定类之间的关系,如:”公司招聘雇员“,”银行拥有出纳柜台“,”ATM打印收据“,这些语句都描述了两个类之间的关系

 

我们需要从语句中判断类之间的关系,或者其隐含的关系

删除无关关联:有些关联对于我们所做的系统是无关的

动作:动作一般隐含两个类之间的关系,如”公司招聘雇员“隐含公司具有雇员(公司1——*雇员),而”ATM接收银行卡“并不能说明ATM具有银行卡(即ATM和银行卡没有关联)

三元关联:一般三元关系我们可以消为二元关联,你要问我怎么消,我也不知道

限定关联:对于 *——*,1——* 我们应该考虑是否加上限定符使 * 变为 1

聚合:有时候我们会纠结是否是使用聚合还是关联,我们不用过多的纠结这个问题,用你觉得合适的就行

 

4. 属性

提升为对象:如”联系人地址“地址是一个属性还是作为一个对象,要看情况而定,一般我们能不提升为对象就不提升

提升为限定符:有些属性会作为限定符,如Name,多数情况下,Name都是唯一的(例,一个站点的用户名不能相同,但不同站点的用户名可以相同)

 

5. 使用继承细化

如”我们有2种支付方式,可以使用现金支付,也可以使用微信支付“现金支付和微信支付就是支付的一个继承

 

领域状态模型

1. 确定具有状态的类

并不是每个类都需要有状态图,很多类就只有创建和销毁,我们不需要为其话状态图

 

2. 寻找状态

3. 寻找事件

事件就是推进类状态改变的动作

4. 构建状态图

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值