架构师论文备考-论面向对象建模及应用

摘要

        2022年3月1日,我有幸加入公司新智慧公交项目的开发团队,担任项目架构决策的关键角色,并主要负责核心调度模块的设计与开发。在项目启动阶段,我们采纳了再工程的方法论,深入分析了既有平台的核心代码和功能,从而提炼出本次新平台的关键需求。通过面向对象的设计和开发方法,我们对核心需求进行了细致的用例建模,并对复杂的业务流程进行了详尽的分析建模。这一过程最终孕育了一系列基于面向对象建模的文档,包括需求文档、设备协议文档、设备交互流程文档、接口规范以及需求概要设计等,这些文档为整个项目的开发工作提供了坚实的支撑。截至2022年12月1日,该项目成功在首个城市上线,并自那以来运行稳定,维护工作也进展顺利。总体来看,采用面向对象建模的策略极大地优化了文档的设计与编写流程,为项目的后续开发及长期运维奠定了坚实的基础。

正文

        在“互联网+”的时代背景下,城市公共交通作为一个传统行业,由于其业务复杂性,技术进步长期受限,行业整体技术水平相对较低。为应对公交行业在技术层面遇到的挑战,同时满足公众对高品质交通服务的期望,我们全新打造的公交智慧平台项目应运而生。智慧公交平台融合了物联网、大数据分析和云计算等先进信息技术,致力于对传统公交系统进行智能化升级。在政策引导和技术创新的合力作用下,公交智慧平台旨在通过实时调度、智能排班、小程序平台拓展等功能,推动公共交通系统向现代化、高效化和人性化方向发展,从而助力城市的可持续发展。

        在项目设计初期,我们基于现有调度平台的功能,对业务需求进行了深入剖析,构建了以用例图为核心的用例模型,并据此进一步细化和深化,形成了新系统的需求文档。在设备交互流程设计方面,我们依据公司S17设备网络协议层平台提供的协议文档,对设备间的交互流程进行了详细建模。我们利用UML活动图来清晰地标识复杂的交互流程,通过时序图来展现设备交互的整体时序,同时采用状态图,以车辆为基本单元,详细描述了车辆上线、下线、待发、运行等关键状态的变化过程。这样的设计不仅确保了系统的有序运作,也为未来的扩展和维护奠定了坚实的基础。

        在面向对象建模的过程中,我们首先着手进行了用例建模。以下是具体步骤的优化描述:

  1. 参与者识别:起初,我们确定了系统的使用者,包括人与外部系统,并对这些参与者的特征与行为进行了详细描述。
  2. 用例识别:通过与参与者的深入交流,我们理解了他们的需求和期望,并识别出系统必须实现的功能。为每个功能创建了一个用例,为之命名,并概述了其目的。
  3. 用例描述:我们对每个识别出的用例进行了详尽阐述,包括前置条件和后置条件。我们还描述了主成功流程,即用例的标准执行路径,并指出了潜在的扩展点和异常流程。
  4. UML用例图绘制:利用UML用例图,我们直观地展示了参与者与用例之间的关系,并运用包含、扩展和泛化关系来表示用例间的相互作用。
  5. 需求迭代:在需求不断演进的过程中,我们持续优化用例模型,确保其反映系统的真实需求。这包括根据反馈和变更请求更新用例及其描述,调整用例关系以体现新的认识。
  6. 验证与确认:最后,我们对用例模型进行了严格的验证和确认。通过需求评审会议,我们检查用例模型以发现遗漏、不一致或错误,并与参与者及其他利益相关方共同确认用例模型的准确性。我们进行了用例走查和场景分析,以验证用例的完整性和正确性。

        通过这一系列精细化的步骤,我们确保了用例模型能够精确地捕捉和表达系统的业务需求,为后续的开发工作提供了清晰的指导。

        在完成用例建模后,我们基本明确了新智慧公交平台的整体需求。随后,我们进一步细化了这些需求,并对关键部分进行了深入分析,利用UML构建了分析模型。以下是内容的优化描述:

  1. 类和对象定义:首先,我们通过类图和对象图明确了功能需求中的类和对象。我们为每个类确定了具体的属性和方法,并定义了每个类能够执行的操作。
  2. 类关系确定:接着,我们确立了类之间的各种关系,如关联、聚合、组合等,并对类和对象进行了进一步的精细化处理。这包括详细定义类的属性类型、属性范围以及施加的约束条件。
  3. 功能实现逻辑描述:为了详细阐述重点功能的实现逻辑,我们采用了时序图和活动图来描述功能的详细流程。
  4. 流程设计重点:
    1. 设备交互流程:参考原有流程,我们对设备信令的处理内容进行了深入研究,并采用了以IoT事件为中心的架构。利用Kafka作为消息队列,我们的Tap设备交互层从Kafka接收来自S17(设备网络层平台)封装的信令内容,进行异步的事件流处理。
    2. 业务调度流程:我们采纳了领域驱动设计(DDD)的架构方法,将核心业务流程封装在domain层,为业务功能提供底层支持。service层则负责其他业务的调用和核心逻辑的整合。此外,我们引入了业务流程引擎liteflow,以解耦并简化调度业务流程的复杂性。
  5. 分析模型文档化:通过对业务流程的设计和解耦,我们形成了一套以UML图为核心的分析模型设计文档。这些文档为后续开发人员提供了清晰的流程开发指导,从而便利了后续的设计开发工作。

        通过这一系列精细化的分析和设计,我们不仅确保了智慧公交平台的需求得到准确实现,也为平台的稳定运行和未来的扩展打下了坚实的基础。我们的架构文档经过面向对象设计建模过程,最终以4+ 1视图模型的方式展现。

  • 场景:场景主要展示了系统的功能设计和需求描述,并为其他视图提供了需求背景。这些视图都基于用例场景进行指导,对于系统分析人员来说,用例图是理解和沟通系统需求的关键工具。
  • 逻辑视图:逻辑视图主要支撑功能性需求,它描绘了系统应向用户提供的服务。系统被分解为一系列的抽象概念,这些概念源自问题域,并以对象或对象类的形式存在。最终用户通常更关注系统的功能,因此逻辑视图是他们的焦点。
  • 过程视图:过程视图通过序列图、通信图、状态图和活动图来表示,它关注系统的非功能性需求,如性能和可用性。此视图解决了并发性、分布性、系统完整性和容错性问题,并明确了逻辑视图中的抽象在哪个控制线程上执行操作。系统集成人员关注的是性能、可伸缩性和吞吐率等问题,因此他们会侧重于过程视图。
  • 开发视图:开发视图聚焦于软件的实际开发模块,主要由包图和组件图构成。程序员关心的是如何组织系统的开发模块和组件装配,因此开发视图是他们的主要关注点。
  • 部署视图:部署视图展示了软件如何映射到硬件上,它通常需要考虑系统的性能、规模和可靠性。系统工程师关注的是系统的部署、安装和拓扑结构问题,因此他们会侧重于部署视图。

        通过这种多维度的视图模型,我们能够全面地理解和设计系统,确保各个利益相关者(包括最终用户、系统分析人员、程序员和系统工程师)的需求和关注点都得到妥善考虑和满足。

        在新智慧公交平台的设计阶段,我们采纳了螺旋开发方法,通过持续的迭代、评审和重构,最终构建了一套以面向对象建模为核心的设计文档集。这套文档为项目后续的设计和开发工作提供了明确的指导。得益于良好的项目分析设计工作,平台自2022年12月上线以来,公交智慧平台凭借其卓越的性能、高可用性和优异的可修改性,赢得了用户和开发者的一致好评。

        随着项目的不断版本迭代和升级,虽然整体架构设计经历了一些调整,但其核心架构依然稳健。这主要归功于我们采用的面向对象设计思想,其高可扩展性为项目的持续发展提供了坚实基础。同时,UML图的强大表述能力也在项目成功中扮演了关键角色。通过这次项目,我在架构设计方面取得了显著进步,并熟练掌握了面向对象的建模开发方法。这些经验和技能为我在未来的架构设计和开发工作中奠定了坚实的基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值