文章目录
一、前言
笔记目录大纲请查阅:【软考速通笔记】系统架构设计师——导读
关注【小康师兄】微信公众号,回复【系统架构设计师】即可获取PDF和详细教程。
二、论题
- 概要叙述你所参与分析和设计的软件项目,以及你在其中所承担的主要工作。
- 软件系统开发中常用的软件架构风格有哪些?详细阐述每种风格的具体含义。
- 详细说明你所参与分析和设计的软件系统是采用什么软件架构风格的,并分析采用该架构风格设计的原因。
三、摘要(300~330字)
2022年10月,作为系统架构师,我深度参与了实验室信息管理系统的规划、设计与开发。该系统旨在解决实验室数据量大、流程繁琐、权限管理混乱等问题,需要提供便捷的实验室数据提交/导入、校对/审核/签发、存储和查询汇总等服务,同时为管理员提供细粒度的数据管理、人员管理和权限分配能。
常见的软件架构有数据流风格、调用/返回风格、面向对象风格、独立构件风格、虚拟机风格和仓库风格等,我们经过综合考虑,选择了了数据流风格和分层次风格的优势。数据流风格优化数据处理,分层次风格强化模块化和层次化。结合两种风格,我们实现了数据流程优化和权限管理细化,成功达成项目目标,基本达成预期的成本、时间和质量等方面的目标,并得到客户和我方领导的正面肯定。
四、正文(2000~2500字)
4.1 背景介绍(500字左右)
实验室信息管理系统旨在提供一个集数据提交/导入、校对/审核/签发、存储和查询等功能于一体的综合性平台。该系统需要解决的核心问题包括:实验室数据量大且分散,数据提交、校对、审核和签发流程繁琐,数据权限管理混乱等。通过该系统的实施,我们期望能够提升实验室的管理效率,降低数据处理成本,同时保障数据的安全性和准确性。
2022年6月,我作为系统架构师,我深度参与了系统的需求分析、架构设计、技术选型、开发指导以及后期测试等多个环节。具体来说,我的工作包括以下几个方面:
- 需求分析:与实验室管理人员、工作人员及开发团队密切合作,深入理解实验室的实际需求,明确系统的功能目标和非功能目标。
- 架构设计:根据需求分析结果,设计系统的整体架构,包括前端界面、后端逻辑、数据库设计以及数据流程等。
- 技术选型:根据项目需求和技术发展趋势,选择合适的开发语言、框架、数据库等技术栈。
- 开发指导:与开发团队紧密合作,确保开发过程符合架构设计,解决开发过程中的技术难题。
- 测试与评估:参与系统的测试工作,确保系统的稳定性和可靠性,并根据测试结果进行必要的调整和优化。
本项目计划工期为12个月,从2022年6月开始,于2023年6月结束。本项目预算总额为500万元人民币,涵盖了软件开发、硬件购置、系统集成、测试验收等各个环节的费用。本项目的主要干系人包括项目开发团队、实验室领导和工作人员等。他们分别承担着项目开发、项目决策、业务需求提出和软件系统测试与试用等职责。
4.2 论点论据(1500字左右)
主流的架构风格有数据流风格、调用/返回风格、独立构件风格、虚拟机风格、仓库中心风格等。
- 数据流风格是让构件按定义好的顺序,一个接一个的执行,比如批处理、管道-过滤器。
- 调用/返回风格是指两个构件之间存在互相调用的关系,一般是显示调用,比如主程序/子程序、面向对象、层次风格。
- 独立构件风格是指构件之间完全独立,没有显示的调用关系,一般构件之间通过事件驱动来联系,比如进程通信、事件驱动风格。
- 虚拟机风格是定义好一套规则,然后让用户按这套规则开发代码,比如解释器和规则系统架构风格。
- 仓库中心风格是以数据为中心,所有的操作都围绕数据,比如黑板架构风格、仓库架构风格。
在综合考虑了实验室信息管理系统的需求、技术发展趋势以及软件架构风格的特点后,我们决定采用数据流风格和分层次风格相结合的方式来设计系统的架构。

数据流风格的应用,实验室信息管理系统需要处理大量的实验数据,包括现场记录、实验记录、流转记录、样本信息、质控信息、设备状态和仪器信息等。这些数据在系统中需要进行多次转换和处理,包括了数据提交、数据校对、普通审核、主任审核、质控审核、报告生成、报告审核、报告签发等多个步骤,且每个步骤都存在被驳回到上一步重新修改的流程。因此,我们采用了数据流风格来设计系统的数据流程。通过明确数据的输入和输出接口,以及数据在系统中的流动路径和转换过程,我们实现了数据的清晰流动和高效处理。
分层次风格的应用,考虑到数据读写混乱的根源在于所有业务代码都可以直接访问底层数据库的问题。因此我们最终决定了使用层次风格,将整个平台分成了3层,分别为数据应用层、数据接口层、数据实现层。根据层次风格的定义,每一层只能和它的上下相邻两层通信。
数据实现层主要实现对MySQL数据库进行读写,并没有做太大的改动,只是对数据库进行了优化,比如增加了冗余列,减少复杂的表连接操作,提高查询效率。比如增加了派生列,减少了每次查询时的重复计算,提高查询性能。比如增加了数据热备份,保证数据的安全和一致性,不丢失。比如增加了读写分离,减轻主数据库的压力,提高系统吞吐量和响应时间。
数据接口层提供了一个统一的入口。所有对数据的操作都需要经过数据接口层来处理,之后数据接口层根据请求的类型生成不同的任务,交给下层的任务调度层处理。数据接口层的引入不仅很好的解决业务随便调用底层服务的问题,同时因为所有对数据的请求都要经过这层,因此我们可以很好的对数据进行有效的管理,比如对表进行分类、表之间的血缘识别、冷热表识别等等。数据接口层还解决了权限问题,根据事先定义好的权限规则,我们可以对提交上来的查询请求进行解析,判断其是否有权限查询。除此之外,我们还加了操作审计的功能。另外,我们还在这一层加入了SQL的解析和优化功能,我们在将sql提交到底层之前,会先对其进行解析,判断是否有隐患,对于有隐患的sql我们会进行拦截,比如查询数据量过大,join表时没有写join条件。如果有些sql写的不太合理,有一定的调整空间,我们也会建议其调整。
数据应用层主要就是各个业务自己的服务,它会调用数据入口层提供的相关接口进行数据的操作。对于查询出来的数据,我们还支持将查询结果转为各类图表的功能,方便用户进一步分析数据。
4.3 收尾(200字左右)
基于数据流风格和分层次风格相结合的方式,经过团队的共同努力和不懈奋斗,实验室信息管理系统项目最终取得了圆满的成功。系统不仅满足了实验室的实际需求,降低系统的复杂度和耦合度,提高系统的可扩展性和可维护性,得到了客户和我方领导的广泛赞誉和认可。然而,我们也深知这个项目仍有许多可以改进和完善的地方。例如,我们可以考虑引入更多的智能化技术,如人工智能、大数据分析等,以进一步提升实验室的管理水平和创新能力。未来,我们将继续深化对实验室业务流程的理解和研究,不断优化和完善系统功能,为实验室的可持续发展和创新提供更加有力的支撑。
五、其他
关注【小康师兄】微信公众号,回复【系统架构设计师】即可获取PDF和详细教程。
若觉得文章对你有帮助,随手『点赞』、『收藏』、『关注』,也是对我的支持。