第9章面向对象分析设计的过程


9.1 面向对象分析设计的基本过程

第9章面向对象分析设计的过程_第1张图片

第9章面向对象分析设计的过程_第2张图片

OOA是面向对象软件工程方法的初始阶段,是对业务问题和系统功能进行调查和分析整理的过程。

第9章面向对象分析设计的过程_第3张图片

SAP所处理的企业级应用业务可以说纷繁复杂,但大体上可以总结为几句话:1)人员驱动了系统运作;2)事件体现了业务过程;3)事物记录了业务结果;4)规则控制了业务过程。理清了上述问题,基本的分析结果也就理清了。
系统分析时,就是要理清业务系统的4种对象:1)人员角色;2)业务事件;3)业务事物;4)业务规则。
创建领域模型的第一步,是找到“人”,需要找出用户,定义用户的职责、权限,用户业务关系定义为类。
创建领域模型的第二步,是找到“事”,需要确定每个用户要做的具体事件,绘制业务用例图。
创建领域模型的第三步,是找到“物”,采用领域类图,找出记录了事物结果的业务事物实体。
创建领域模型的第四步,是找到“规则”,明确系统范围,哪些是采用系统实现的,哪些是线下实现的,有什么详细的业务规则,采用UML活动图或者非UML的业务流程图。

OOD是根据OOA的分析结果,设计出可实施的解决方案的过程。其主要作用是对OOA的分析结果做进一步规范化的整理,以逻辑化的形式表达出来,以便能够被下一阶段OOP所接受。

OOD主要采用实现类图来进行设计,实现类图由面向对象的系统设计师设计,包含详细的属性和方法,多用于可以直接指导编程的系统的架构描述,可以直接指导程序开发人员进行编码。

第9章面向对象分析设计的过程_第4张图片

第9章面向对象分析设计的过程_第5张图片

第9章面向对象分析设计的过程_第6张图片

标准的面向对象设计可以使用UML图进行设计,UML图的类型很多,在使用中可以进行适当的裁剪,以下几种类型的图较为常用。
类图(Class diagram):静态图,是面向对象的分析设计中最重要的图,必不可少。
用例图(Use Case diagram):需求模型,是分析业务、开展面向对象分析的基础,尽量使用。
活动图(Activity diagram):辅助模型,描述业务的逻辑和对象的操作流程,实际工作中也可以使用一般的非UML的业务流程图来替代。
顺序图(Sequence diagram):辅助模型,表示一组对象之间的交互关系,可对类图起到补充作用。一般在交互情况较复杂时使用。
在实际工作中,有两类图形是必不可少的,具体如下。
1)详细的业务流程图(非UML图形)。
2)UML的类图(OOA的领域类图和OOD的实现类图)。
我们不会完全使用UML图和形式逻辑来表达业务与设计,文档中还是需要大量的语言描述。

9.2 设计思维在SAP程序实际中的应用

第9章面向对象分析设计的过程_第7张图片

9.3 敏捷SCRUM在SAP开发中的应用

第9章面向对象分析设计的过程_第8张图片

采用敏捷的Scrum方法论,其主要的目的是为了适应变化,降低沟通成本,降低试错成本。采用的方式是快速迭代,小步快跑。
即便在实际的ABAP开发中,也可能不完全适用Scrum的要求(如Scrum开发团队会集中于一个开发任务,而现实中往往是一个ABAP开发者要做好几个开发任务),我们也可以借鉴敏捷的开发理念:及早提交试用版本,多做迭代;多做沟通,始终让客户参与设计与开发进程;对可接受范围内的变化报以正面的态度。保证产出程序具有用户可接受的开发质量,从而保证客户、团队和ABAP开发者的共同利益

9.4基于面向对象的单元测试

单元测试(Unit Testing)又称为程序模块测试,是针对程序模块来进行正确性检验的测试工作。

第9章面向对象分析设计的过程_第9张图片

第9章面向对象分析设计的过程_第10张图片

第9章面向对象分析设计的过程_第11张图片

第9章面向对象分析设计的过程_第12张图片

第9章面向对象分析设计的过程_第13张图片

第9章面向对象分析设计的过程_第14张图片

如图9-35所示,该方法的“Method type”中出现了以下图标“Test Method(ABAP Unit)”,即测试方法。

第9章面向对象分析设计的过程_第15张图片

图9-35 出现图标“Test Methode(ABAP Unit)”(SE24)
如图9-36所示,为测试方法TEST_GET_VALUE写入代码,在方法中创建被测试类的实例,然后调用被测试类的被测试方法GET_VALUE。
方法中调用SAP标准的测试类CL_AUNIT_ASS-ERT的方法ASSERT_EQUALS对预期值和实际值进行比对。预期值exp为600,实际值为被测试方法的返回结果lv_result。当发生值不一致的情况时,返回消息“result iswrong”。
TEST_GET_VALUE的代码如示例程序9.5所示。
第9章面向对象分析设计的过程_第16张图片
图9-36 定义TEST_GET_VALUE方法的代码(SE24)

测试类Zcl_caculate_unit_test, 源代码根据help做了修改。增加了risk level 和 duration

第9章面向对象分析设计的过程_第17张图片

如图9-37所示,编译完成后,在测试类的菜单中执行“Class”->“Run”->“Unit Tests”触发单元测试。

第9章面向对象分析设计的过程_第18张图片

第9章面向对象分析设计的过程_第19张图片

第9章面向对象分析设计的过程_第20张图片

ABAP还可以在被测试类中,用菜单“Utilities”->“Test Class Generation”自动生成测试类的框架,但依然需要在测试类中手工写入具体的测试代码。

尤其是对ABAP开发,很多时候并不是对简单数值的计算和比较,而是需要对运行系统功能模块,或者查询数据库而得出的内表记录等进行比对。这就更增加了单元测试的难度,一般来说,如果为测试考虑的话,我们需要将代码分成更小的功能才方便进行单元测试,但一定要掌握划分的细度,以避免影响业务逻辑。

9.5分析实例: IoT物料网应用设计与开发

你可能感兴趣的:(ABAP,开发语言,前端)