目录
前言
在当今数字化时代,软件开发已成为推动各行业发展的核心动力之一。软件开发过程的复杂性与日俱增,从需求分析、系统设计到代码编写与测试,每一个环节都要求高度的精确性与协同性。而有效的工具支持在这一过程中扮演着至关重要的角色。在众多工具中,Drawio 以其独特的优势,在软件开发领域逐渐崭露头角,成为开发团队不可或缺的助力。Drawio 是一款功能强大且灵活的绘图工具,它最初可能并未被广泛视为专门针对软件开发的工具,但随着软件开发实践的不断演进,人们逐渐发现它在多个开发环节中都能发挥出色的作用。从直观的流程图绘制到复杂的架构设计,再到与开发文档的紧密结合,Drawio 为开发团队提供了一种可视化的方式来表达和沟通复杂的技术概念,极大地提高了开发效率与质量。

随着软件开发方法论的不断发展,敏捷开发等现代开发模式越来越受到青睐。在敏捷开发中,快速迭代和持续交付是核心特点,开发团队需要在短时间内完成需求分析、设计、开发和测试等多个环节的循环。Drawio 的灵活性和易用性使其能够很好地适应敏捷开发的需求。团队成员可以快速地在 Drawio 中绘制和修改图形,及时反映需求变更和设计调整,确保整个开发过程的高效性和灵活性。此外,Drawio 还支持多人协作功能,团队成员可以在同一文档中实时进行图形绘制和编辑,方便团队成员之间的沟通和协作,进一步提高了敏捷开发的效率。本文即分享使用Drawio在软件研发各个过程中的实际应用,为软件过程提供积极助力。同时详细介绍Drawio的多类型输出成果和自定义绘制的介绍,让大家可以根据自己的需求进行选取使用。
总之,Drawio 在软件开发的各个阶段都展现出了巨大的应用价值。它不仅能够帮助开发团队更高效地完成开发任务,还能够提高软件的质量和可维护性。随着软件开发实践的不断深入,我们有理由相信 Drawio 将在软件开发领域发挥更加重要的作用,为开发团队带来更多的便利和创新。
一、Drawio在不同阶段的应用
本节详细介绍Drawio在不同阶段的应用,按照软件开发的生命周期进行管理,分别从需求分析阶段、系统设计阶段、系统开发阶段来进行说明。
1、需求分析阶段
在需求分析阶段,开发团队需要与客户进行深入沟通,准确理解客户需求并将其转化为可操作的需求文档。Drawio 可以帮助团队快速绘制思维导图,将客户的需求进行分类、整理和关联,以直观的图形方式呈现需求的全貌。通过这种方式,团队成员能够更清晰地把握需求的细节,及时发现潜在的矛盾和遗漏,从而在项目初期就为项目的成功奠定坚实的基础。同时,思维导图的可视化形式也便于与客户进行沟通,让客户能够更直观地理解开发团队对需求的理解,及时提出反馈和修改意见,减少因需求理解不一致而导致的后期返工。

比如上图是一个企业商业模型的结构图,用于分析企业的需求组成等。除此之外,我们还可以用来梳理项目的组织机构,以方便管理关键用户,如下图:

2、系统设计阶段
进入系统设计阶段,架构设计是整个软件开发的关键环节。一个清晰、合理的架构是软件稳定运行和易于扩展的保障。Drawio 提供了丰富的图形模板和组件,开发人员可以利用这些资源绘制出详细的架构图,包括系统模块的划分、各模块之间的交互关系以及与外部系统的接口等。

通过架构图,开发团队能够清晰地看到系统的整体结构,更好地规划各个模块的开发顺序和任务分配。在团队协作开发中,架构图还可以作为团队成员之间沟通的桥梁,确保每个成员都对系统的架构有准确的理解,避免因理解偏差而导致的开发冲突和集成问题。除了架构图的信息描述之外,详细的页面原型设计也是非常必要的,对前端开发和产品之间,我们需要一些交互原型来对项目或者产品功能进行说明。

此外,Drawio 的图形化设计方式还能够帮助团队在设计过程中进行模拟和验证,通过调整架构图中的元素和连接关系,快速评估不同设计方案的优劣,从而选择出最适合项目需求的架构方案。

3、系统开发阶段
在经过需求分析和系统的设计之后,软件开发进入最重要的开发过程中,代码编写是一个相对抽象的环节,但 Drawio 依然可以发挥作用。例如,在进行数据库设计时,开发人员可以使用 Drawio 绘制实体关系图(ER 图),直观地展示数据库中各个实体之间的关系,如一对一、一对多、多对多等。

这种可视化的方式有助于开发人员更好地理解和设计数据库结构,确保数据库的合理性和高效性。

同时,在编写复杂的算法或逻辑代码时,开发人员可以借助 Drawio 绘制流程图,将代码的执行流程以图形的形式呈现出来。相信在研发过程中,大家使用的最多的就是类图和时序图,流程图。这不仅有助于开发人员自己梳理代码逻辑,还可以在团队代码审查过程中,让其他成员更快速地理解代码的运行过程,发现潜在的逻辑错误或优化点,提高代码质量和可维护性。


在软件开发的后期,测试和文档编写也是至关重要的环节。Drawio 可以用于绘制测试用例的流程图,帮助测试人员清晰地定义测试步骤和预期结果,确保测试工作的全面性和系统性。同时,在编写开发文档时,Drawio 绘制的各种图形可以作为文档的重要组成部分,使文档更加直观、易懂。

开发团队可以通过将架构图、流程图、ER 图等嵌入到文档中,让其他开发人员、运维人员以及未来的维护团队能够更快速地理解和掌握软件的结构和功能,降低软件的维护成本和风险。

本节围绕软件开发的过程,分别介绍在不同的开发过程中如何跟Drawio进行整合使用。从不同的阶段的不同使用方式,让大家有一个直观的认识和了解。
二、自定义绘制
Drawio的强大功能不仅是平台本身支持很多类型的图形绘制,同时还支持多源数据的接入。而且数据接入后,还能进行标准绘制。当然,drawio本身的绘制功能已经非常丰富和完善了,但是加入了其它的自定义导入的绘制功能,就使得drawio的功能更加完善,如虎添翼。本节将简单介绍如何在drawio中使用文本导入、Mermaid和SQL导入的方式进行图形绘制的过程。
1、文本导入
在Drawio的主界面中,点击"调整图形"菜单,在下面的界面中点击"插入"按钮。

在新打开的选择窗口处选择"从文本"导入

点击从文本后在弹出的窗口中可以输入文本内容,内容可以是类图的主要文本。下面以类图为例,文本内容入下:
bash
Person
-name: String
-birthDate: Date
--
+getName(): String
+setName(String): void
+isBirthday(): boolean
Address
-street: String
-city: String
-state: String
上面的代码表示有两个类,Person和Address类,按照面向对象的设置,这两个类分别有一些属性和方法,点击完成后,可以在页面中看到以下效果。

2、Mermaid导入
Drawio不仅支持文本的导入,同时也支持标准的Mermaid的导入,操作步骤跟文本导入类似,只是导入的内容有一点差异。前面导入的是一个文本,这里是读取Mermaid的文档来生成,关于Mermaid格式有很多种,大家感兴趣的话可以去搜索引擎中进行检索学习,在此不再赘述,简单来说,可以设置类图、时序图、对象图等等。
bash
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
上述是一个比较简单的Mermaid格式的文本,在编辑状态下完成上述输入后,点击确定即可完成插入。与文本不一样的是,Mermaid格式的内容,还可以双击图形进行标记。文本貌似没有编辑的地方。

3、从SQL插入
假如我们有一个SQL的物理表模板,然后需要使用drawio来进行绘制,我们可以选择使用手动编辑的方式进行绘制。同时,我们也可以直接将SQL语句进行转换,从SQL语句直接进行建模。假如sql语句如下:
sql
CREATE TABLE "biz_province" (
"id" int8 NOT NULL,
"code" varchar(16) COLLATE "default" NOT NULL,
"name" varchar(64) COLLATE "default" NOT NULL,
"type" varchar(32) COLLATE "default",
"geom" "geometry",
CONSTRAINT "pk_biz_province" PRIMARY KEY ("id")
);
CREATE INDEX "idx_biz_province_code" ON "biz_province" USING btree (
"code" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
);
CREATE INDEX "idx_biz_province_geom" ON "biz_province" USING gist (
"geom" "gist_geometry_ops_2d"
);
COMMENT ON COLUMN "biz_province"."id" IS '主键ID';
COMMENT ON COLUMN "biz_province"."code" IS '省份编码,对应行政区划编码';
COMMENT ON COLUMN "biz_province"."name" IS '省份名称';
COMMENT ON COLUMN "biz_province"."type" IS '类型';
COMMENT ON COLUMN "biz_province"."geom" IS 'geom';
CREATE TABLE "biz_provincial_city_distance" (
"pk_id" int8 NOT NULL,
"province_code" varchar(16) COLLATE "default" NOT NULL DEFAULT ''::character varying,
"province_name" varchar(64) COLLATE "default" NOT NULL DEFAULT ''::character varying,
"distance" numeric(10,4) NOT NULL DEFAULT 0,
"city_name" varchar(64) COLLATE "default" NOT NULL DEFAULT ''::character varying,
"geom" "public"."geometry",
"source" varchar(10) COLLATE "default" NOT NULL DEFAULT ''::character varying,
CONSTRAINT "pk_biz_provincial_city_distanc" PRIMARY KEY ("pk_id")
);
COMMENT ON COLUMN "biz_provincial_city_distance"."pk_id" IS '主键';
COMMENT ON COLUMN "biz_provincial_city_distance"."province_code" IS '省份code';
COMMENT ON COLUMN "biz_provincial_city_distance"."province_name" IS '省份name';
COMMENT ON COLUMN "biz_provincial_city_distance"."distance" IS '距离';
COMMENT ON COLUMN "biz_provincial_city_distance"."city_name" IS '城市名称';
COMMENT ON COLUMN "biz_provincial_city_distance"."geom" IS '路线信息';
COMMENT ON COLUMN "biz_provincial_city_distance"."source" IS '来源';
COMMENT ON TABLE "biz_provincial_city_distance" IS '省市距离信息表';
点击确认插入后生成出来的数据库图下图所示:

三、Drawio的成果导出
通常来说,我们使用Drawio进行绘制之后,最终我们需要输出成图片或者网页来进行数据的整理和汇报,此时就需要将Drawio进行导出。本家将从两个方面来介绍Drawio的成果输出内容,第一个方面是介绍多种数据格式的支持,第二个是如何支持高质量出图的设置等。
1、多种数据格式的支持
在Drawio中我们完成了这个的成果制作后,我们可以将成果导出,在drawio中,支持的数据格式非常多,可以在下面的操作中进行选择,点击"文件",然后选择"导出为",就可以看到以下的数据格式的支持,

可以看到,导出的成果类型可以是PNG、JPEG、SVG、PDF、HTML、XML、URL等。选择具体的格式之后,再设置参数即可。

最后点击导出即可。
2、高质量出图设置
如果有写过论文的朋友一定知道,在论文的图文排版中,对于图片的质量是有一定的要求的,比如很多常见的期刊,他们的图片至少是300dpi的,那么如果我们使用Drawio来进行相应的路线图绘制,是否可以支持高质量的出图呢?答案是肯定的。操作方式与普通导出差不多,只是选择的格式使用最后一项,采用高级,最后出来的项目如下:

在这个界面就可以选择不同的DPI,需要说明的是,支持DPI设置的类型就没有之前的类型多,当然这也是格式的需要。其它很多不属于图片的文件格式,在具体开发时使用慎重。点击导出后,在我们的成果目录中可以看到:


到此,我们就可以导出符合期刊要求的图片精度。
四、总结
以上就是本文的主要内容,本文即分享使用Drawio在软件研发各个过程中的实际应用,为软件过程提供积极助力。同时详细介绍Drawio的多类型输出成果和自定义绘制的介绍,让大家可以根据自己的需求进行选取使用。总之,Drawio 在软件开发的各个阶段都展现出了巨大的应用价值。它不仅能够帮助开发团队更高效地完成开发任务,还能够提高软件的质量和可维护性。随着软件开发实践的不断深入,我们有理由相信 Drawio 将在软件开发领域发挥更加重要的作用,为开发团队带来更多的便利和创新。行文仓促,定有许多的不足之处,欢迎各位朋友在评论区批评指正,不胜感激。