地图网站开发,值得买wordpress,企业计划书,新手学seo1. 简介 作为一个软件开发人员#xff0c;平时免不了做一定的软件设计#xff0c;标准做法就是采用UML来设计#xff1a;
讨论功能流程时采用时序图、活动图来表达#xff1b;做业务功能架构时采用组件图来表达#xff1b;做系统部署架构时采用部署图来表达#xff1b;做…1. 简介 作为一个软件开发人员平时免不了做一定的软件设计标准做法就是采用UML来设计
讨论功能流程时采用时序图、活动图来表达做业务功能架构时采用组件图来表达做系统部署架构时采用部署图来表达做需求分析时采用用例图来表达做系统内部设计时采用包图、类图、对象图来表达 二十年前我们用Rational Rose过了五六年感觉PowerDesign更好之后十多年一直钟爱PD直到上个月用了7年的笔记本坏了新笔记本重装环境时再也不想去破解PowerDesign而是寻找一个开源的UML工具软件来用用看一通baidu之后发现了StarUML是由思密达主导开发的一款开源UML工具软件看看官网的图片介绍还是不错的。 官网地址StarUML 开源地址https://github.com/staruml 这里有很多工程。一般我们直接去官网下载已经制作好的安装包即可安装都很简单。 2. 破解 直接采用官网制作好的安装包在每次保存时总是提示去注册让人很烦把UML设计图导出png, jpeg图片时更是留下了unregisted之类的水印根本没法在文档里使用。我们需要解决两个问题
去掉注册提示框去掉图片上的水印。 解决这两个问题很简单去StarUML安装目录下寻找app.asar文件修改这个包里的两处地方即可。 app.asar是一个压缩包需要用asar来生成和解压asar用npm来安装 npm install -g asar npm自然是安装nodejs就有了搞点前端的人都不用说了。 执行asar看看 $ asar -h Usage: asar [options] [command] Manipulate asar archive files Options: -V, --version output the version number -h, --help display help for command Commands: pack|p [options] dir output create asar archive list|l [options] archive list files of asar archive extract-file|ef archive filename extract one file from archive extract|e archive dest extract archive * help [command] display help for command 2.1 解包app.asar 我们进入StarUML安装目录找到app.asar文件如我的安装目录C:\Program Files\StarUML\resources下有如下文件 app.asar app-update.yml elevate.exe* mdj.ico 解压app.asar asar extract app.asar app 得到app目录 进入目录app\src\engine C:\Program Files\StarUML\resources\app\src\engine $ ls clipboard-manager.js default-commands.js engine.js font-manager.js pdf-graphics.js selection-manager.js update-manager.js command-manager.js diagram-export.js factory.js license-manager.js project-manager.js unicode.js 最关键的是两个文件license-manager.js和diagram-export.js看看英文都知道一个管注册license一个管图片导出。
2.2 去掉注册提示 打开license-manager.js找到如下代码 checkLicenseValidity() { if (packageJSON.config.setappBuild) { setStatus(this, true); } else { this.validate().then( () { setStatus(this, true); }, () { setStatus(this, false); UnregisteredDialog.showDialog(); }, ); } } 修改为 checkLicenseValidity() { if (packageJSON.config.setappBuild) { setStatus(this, true); } else { this.validate().then( () { setStatus(this, true); }, () { //setStatus(this, false); //UnregisteredDialog.showDialog(); setStatus(this, true); }, ); } } 那么我们的注册提示就去掉了。
2.3 去掉图片水印 打开diagram-export.js找到如下代码 // Draw watermark if application is not registeredif (app.licenseManager.getStatus() ! true) {diagram.drawWatermark(canvas,canvasElement.width,canvasElement.height,70,12,UNREGISTERED,);} else if (app.licenseManager.getLicenseInfo().licenseType STD) {const dgmType diagram.constructor.name;if (app.licenseManager.isProDiagram(dgmType)) {diagram.drawWatermark(canvas,canvasElement.width,canvasElement.height,45,12,PRO ONLY,);}}// Draw diagram to the new canvasdiagram.arrangeDiagram(canvas);diagram.drawDiagram(canvas);// Return the new canvas to base64-encoded datavar data canvasElement.toDataURL(type).replace(/^data:image\/(png|jpeg);base64,/, );return data;
} 修改为 // Draw watermark if application is not registered/*if (app.licenseManager.getStatus() ! true) {diagram.drawWatermark(canvas,canvasElement.width,canvasElement.height,70,12,UNREGISTERED,);} else if (app.licenseManager.getLicenseInfo().licenseType STD) {const dgmType diagram.constructor.name;if (app.licenseManager.isProDiagram(dgmType)) {diagram.drawWatermark(canvas,canvasElement.width,canvasElement.height,45,12,PRO ONLY,);}}*/// Draw diagram to the new canvasdiagram.arrangeDiagram(canvas);diagram.drawDiagram(canvas);// Return the new canvas to base64-encoded datavar data canvasElement.toDataURL(type).replace(/^data:image\/(png|jpeg);base64,/, );return data;
} 就是把两个处理水印的代码注释掉即可。
2.4 打包app.asar 在安装目录C:\Program Files\StarUML\resources下执行 asar pack app app.asar 新的app.asar已经生成成功则我们重新去打开StarUML以上两个问题都完美解决了。 3. 总结 StarUML6.0.1还是很好使用的很小巧建议使用UML做架构设计的同仁来试试看到很多年轻开发人员做设计时随意用word里的图形功能来设计或者其它脑图来设计我还是推荐采用UML来做软件设计毕竟是一个很成熟的标准何必放着标准不用而去用其它呢。