构建实现
业务实现
如何集成面向对象软件
除了单独完成目标软件的各个业务类和软件构件以外,面向对象实现的另一个重要工作内容,是实现目标系统的业务功能。
是指软件开发人员根据面向对象设计阶段的工作成果,实现用例涉及的业务内容,同时将相关的软件模块进行集成。
在面向对象设计阶段,软件设计人员在面向对象分析的基础上,结合软件架构设计,采用UML顺序图对完成各个业务活动的对象交互过程进行了建模。
在面向对象实现阶段,软件开发人员的工作,就是按照面向对象设计阶段的设计结果以得到的软甲架构,来实现软件设计的各个业务场景。

结合面向对象设计结果可以发现,面向对象实现阶段的内容可以分为构建实现和业务实现两个部分。

按照面向对象设计阶段约定的业务规则,“以构建接口为导向”来封装构建的各个组成部分。
因此,在构建实现中,必须按照面向对象设计阶段约定的业务规则。在项目文件准备阶段,软件开发人员已经对构件涉及的内容进行了设计和组织。在构建实现阶段,软件开发人员主要是根据构件的软件架构和工作机制,利用构件项目来封装构件,让构建能够通过指定的接口向外界提供服务和资源。除了集成构建的各个组成部分以外,软件开发人员也可以同步编写构建的测试用例,及时对目标构件开展基于接口的单元测试。在测试过程中,软件开发人员可以排除构件内容与面向对象设计结果的不一致性,确保软件构件能够正确实现约定的构件功能,以及确保构件功能和资源的完整性。当然,软件开发人员也可以采用测试驱动开发,确保完成的构件能够通过各项测试用例,从而验证实现的构件能够从功能和接口上符合设计要求。

技术架构:
确定系统使用的技术栈(如编程语言、框架)。
确定系统架构(如分层架构、微服务架构)。
基础设施:
数据库设计:表结构、索引优化。
中间件支持:如消息队列、缓存服务。
安全机制:身份验证、授权管理。
设计模式:
应用常见的面向对象设计模式,如单例模式、工厂模式、代理模式。
系统非功能性需求:
性能优化。
容错机制。
系统扩展性设计。
接口设计:
定义模块之间的接口,提供可复用的公共功能。
如 RESTful API 的定义和实现。
数据库设计
表:Users、Products、Orders。
主键:user_id、product_id。
缓存实现
使用 Redis 缓存商品信息,减少数据库查询。
API 网关
提供统一的入口,管理用户认证和请求路由。
日志服务
记录系统运行日志,支持问题排查。
软件业务实现是指软件开发人员利用得到的软件架构设计,实现用户要求的业务处理流程。此时,软件开发人员必须按照面向对象设计阶段得到的对象交互设计来实现目标软件涉及的所有业务逻辑,也就是说,“以业务为导向”来实现目标软件的各个业务逻辑。由于不同软件涉及的用户和使用环境不同,不同软件内部的业务逻辑差异较大,因此,相对于以功能封装的软件构件而言,软件业务逻辑的复用程度较低。

业务需求分析:
将用户需求转化为具体的功能和逻辑。
定义系统的用例和用户故事。
业务规则建模:
使用类图、活动图、状态图等建模工具描述业务逻辑。
模块划分与实现:
划分功能模块(如用户管理、订单管理)。
实现具体功能,如用户注册、订单支付。
数据处理:
数据校验:如输入格式检查。
业务规则应用:如折扣计算、订单状态流转。
服务设计:
实现面向服务的架构,每个服务处理一类业务逻辑。
如用户服务、订单服务。
用户管理模块
注册:验证用户输入,保存到 Users 表。
登录:验证用户名和密码,生成会话令牌。
订单管理模块
下单:检查库存,创建订单记录,扣减库存。
支付:处理支付网关回调,更新订单状态为 "已支付"。
促销模块
折扣计算:根据用户会员等级和活动规则应用折扣。
构建实现提供业务实现运行所需的基础设施和技术支持。
业务实现依赖构建实现的功能,如数据库操作、API 调用等。
构建实现解决的是技术问题,关注系统的稳定性、性能和可扩展性。
业务实现解决的是功能问题,关注用户需求和业务规则。
| 区别与关联 | 构件实现 | 业务实现 |
|---|---|---|
| 核心关注点 | 技术实现、基础设施支持 | 用户需求、业务逻辑实现 |
| 主要任务 | 搭建数据库、实现缓存、构建接口等 | 实现业务流程,如下单、库存验证等 |
| 关注点 | 系统稳定性、性能、可扩展性 | 功能完整性、业务逻辑正确性 |
| 开发阶段的目标 | 提供支持业务运行的基础结构和工具 | 实现满足用户需求的具体业务功能 |
| 示例 | 订单表结构设计、Redis 缓存、RESTful API | 检查用户登录、验证库存、计算总价、保存订单 |
| 关联 | 构建实现为业务实现提供运行环境和技术支持 | 业务实现依赖构建实现来访问数据和接口 |
构建实现:
设计订单表结构,包括 order_id、user_id、total_price 等字段。
实现 Redis 缓存机制,减少订单查询的数据库压力。
通过 RESTful API 暴露下单接口。
业务实现:
实现下单逻辑:
检查用户是否登录。
验证商品库存。
计算订单总价。
保存订单记录。

在面向对象实现过程中,软件开发人员可以使用多种方式来集成软件模块,实现目标软件包含的业务内容。
传统集成:采用非渐进式组装,或者自底向上、自顶向下集成等渐增方式集成软件模块。
协作集成:逐一针对目标软件的具体功能,将相互协作完成该功能的类进行集成。
基于事件(消息)的集成:从消息角度出发,渐增堆集成与该消息路径相关联的各个构件或类方法,直到所有与消息相关的构件和类被集成为止。
基于使用的集成:分析类之间的依赖关系,从对其他类依赖最少的类开始,依次将其依赖的类集成到系统中,最后完成整个软件系统的集成。
客户端/服务器模式集成:从客户端业务开始集成服务器内容。在业务集成初期,可以将服务器需要完成的内容携程桩模块,通过客户端调用,将桩模块逐替换为实际软件模块。
分布式集成:分别集成各个软件构件。构件之间通过消息或者信令来提供目标服务。
在集成面向对象软件的各个组成部分时,软件开发人员可以结合面向对象分析阶段得到的脚本设计或活动图,以目标软件架构为依据,依次实现目标软件的各个业务逻辑。

软件开发人员也可以先根据面向对象设计,将复杂用例的业务逻辑处理过程封装为软件构件,然后通过构件集成来降低软件实现的复杂度。
