服务热线:400-889-1636
在线咨询: 
网站建设,网站制作,企业网站建设,网上商城,网站推广,域名注册,求创科技
网站建设,网站制作,企业网站建设,网上商城,网站推广,域名注册,求创科技
首页 求创资讯 软件开发
求创动态行业资讯网站建设网页设计微网站手机网站H5动画系统开发APP开发交互设计微信小程序网站维护
  • 软件开发选什么语言比较好呢?

    现在由于,网络的普及网站功能的需要,java这种语言脱颖而出,它的语言风格建立在传统经典C的基础上同时又具有非常强大的网站编辑特效表现功能,现在网站开发的基础是一定要学习java语言,只是在网站中一般使用的是jsp脚本,是语言的一种应用表现;而C++是传统的程序开发语言C语言基础上发展起来添加符号化、图形化功能,可以应对大型专业的操作系统有应用系统开发; 两个语言的应用面不同,但都与C相通,所以一般都是先学C后再看自己的方向。 若一定要在软件开发上做个比较,JAVA与C++二者都是面向对象的语言,封装,继承,多态,C++自身兼容了C语言,照顾了大量C语言使用者,成为了带类的C语言,在面向对象方面多多少少都有影响。 反观Java,它倒是成为了目前最流行的编程语言之一,原因有几点:其平台无关性的特点;web的盛行,而java对于web项目来讲在开发周期上非常快;其对于初接触编程的人来说比较容易入门,就像你用的c﹢﹢得考虑指针吧,得考虑垃圾对象销毁吧,而java不用,因为其底层已经将这些功能封装。 java是通过虚拟机解释的语言。c++直接编译成2进制的,cpu直接执行。 但并不能说明Java会比c++效率慢,考虑到内存共享,进程通信,等等一系列之后,摆在我们面前的不是语言上的差异,而是实现的取舍。 总体上二者大致区别如下: 1、 c++支持多重继承,Java不支持多重继承,但C++多重继承功能虽然很强,但使用复杂,编译程序实现不容易。而Java允许一个类继承多个接口(extends+implement),实现了c++多重继承的功能,避免了c++中的多重继承实现方式的多种不便。 2、JAVA语言让编程者无法找到指针,但增添了自动的内存管理功能,不会像c/c++语言,若指针操作失误,如野指针所造成的系统崩溃。 3、Java完全面向对象,在基本数据类型外,对象将数据和方法结合起来,把它们封装在类中,这样每个对象都可实现自己的特点和行为。c++则将函数和变量定义为全局的。 4、Java程序中所有的对象都是用new操作符建立在内存堆栈上,这个操作符类似于c++的new操作符 若你现在学c++或Java就继续深入吧,c++学精了容易转向其他语言,何况现在c++用的也不算少。c++能更深入了解语言实质,学习阶段很适合,因为他包含面向过程以及面向对象。Java纯面向对象,入门比c++轻松些,但java应用之广泛加上它的开源,使得java在应用方面相当强大,短期内他的霸主地位还将延续。 相关的J2ee等框架在实际应用中要学的很多很实用,谁更有前途说不上,语言都相通的。

  • 软件工程五种典型的开发模型各自特点

    瀑布模型1.里程碑或基线驱动。2.过程逆转性很差或者说不可逆转。逆转可能会延误工期,增加成本,造成损失1.开发阶段清晰,便于评审、审计、跟踪、管理和控制。1.不可逆或很难可逆。2.问题会积累,错误会传递发散扩大,导致成本和质量失控。1.在开发时间内需求不变化或很少变化。2.分析设计人员对此领域非常熟悉。3.低风险项目。4.用户使用环境稳定(如系统软件,工具软件)快速原型模型1.容易适应需求的变化1.克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。1.所使用的开发工具和技术不一定符合主流的发展;快速建立起来的系统架构加上连续的修改可能会导致产品质量低下。1.需求不明确或复杂系统。2.用户无法自主提出应用需求。增量模型1.软件由一系列增量构件组成1.人员分配灵活,刚开始不用投入大量人力资源。如果核心产品很受欢迎,则可增加人力实现下一个增量。当配备人员不能在设定的时间内完成产品时,它提供了一种先推进核心产品的途径,这样即可先发部分功能给客户,对客户起到镇静剂作用。2.增量能够有计划的管理技术风险。1.由于各个构件是逐渐并入已有的软件体系结构中,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。2.在开发过程中,需求变化是不可避免的,增量的灵活性可以使其适应这种变化的能力大大优于瀑布和快速原型模型,但也容易退化为边改边做模型,从而使软件过程的控制失去整体性。3.如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析,这种模型将功能细化后分别开发的方法较适应于需求经常改变的软件开发过程1.系统容易拆分。2.开发人力比较少。3.特别适用于商业软件(如QQ,网游)螺旋模型1.是一种周期性的方法进行系统开发。2.有许多“中间版本”。3.每个周期都包括需求定义、风险分析、工程实现和评审4个阶段1.设计上灵活,可在项目各个阶段进行变更。2.以小的分段来构建大型系统,使成本计算变得简单容易。3.客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。1.建设周期长,而软件技术更新比较快,所以经常出现软件开发结束后,和当前的技术水平有了很大的差距,无法满足当前用户需求。1.系统庞大,风险高。2.需求不太明确。喷泉模型1.该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。1.提高软件项目开发效率,节省开发时间,适用于面向对象的软件开发过程。1.由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。2.要求严格管理文档,使得审核难度加大,尤其是面对可能随时加入的各种信息、需求与资料的情况。1.面向对象的软件开发过程详细介绍如下:瀑布模式特点:阶段间具有顺序性和依赖性:前一阶段完成后,才能开始后一阶段前一阶段的输出文本为后一阶段的输入文本推迟实现的观点质量保证:每个阶段必须交付出合格的文档对文档进行审核缺点:开始需要把需求做到最全惧怕用户测试中的反馈,惧怕需求变更mux螺旋模型限制条件:适应于内部的大规模软件开发:螺旋模型强调风险分析,许多客户都无法接受和相信这种分析因此适合于大规模软件项目(执行风险分析将大大影响项目的利润,进行风险分析就毫无意义)软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险优点:设计上的灵活性,可以在项目的各个阶段进行变更.以小的分段来构建大型系统,使成本计算变得简单容易客户始终参为保证了项目不偏离正确方向以及项目的可控性客户始终掌握项目的最新信息,从而他或她能够和管理层有效地交互.客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品.缺点:很难让用户确信这种演化方法的结果是可以控制的.建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求.核心:在于您不需要在刚开始的时候就把所有事情都定义的清清楚楚.在定义最重要的功能时,去实现它,然后听取客户的意见,之后再进入到下一个阶段.如此不断轮回重复,直到得到您满意的最终产品每轮循环包含如下六个步骤:确定目标,可选项,以及强制条件识别并化解风险评估可选项开发并测试当前阶段规划下一阶段确定进入下一阶段的方法步骤.模型:快速原型模型优缺点:优点: 克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。缺点: 所选用的开发技术和工具不一定符合主流的发展;快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。原型类型:探索型原型: 目的是要型清用户的需求,确定所期望的特性,并探索各种方案的可行性。它主要针对开发目标模糊,实验型原型: 主要用于设计阶段,考核;实现方案是否合适,能否实陋演化型原型: 主要用于及早向用户提交一个原型系统,该原型系统或者包含系统的框架,或者包含系统的主要功能,在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统原型的运用方式:抛弃策略是将原型用于开发过程的某个阶段,促使该阶段的开发结果更加完整、准确、一致、可靠,该阶段结束后,原型随之作废。探索型和实验型就是采用此策略的。附加策略是将原型用于开发的全过程,原型由最基本的核心开始,逐步增加新的功能和新的需求,反复修改反复扩充,最后发展为用户满意的最终系统,演化型快速原型就是采用此策略模型:增量模型构件思想:第一构件完成软件提供的基本最核心的功能后面的增构件是为了第一构件提供服务提供功能的而且避免吧难题退后,首先完成的应该是高风险和重要部分困难:每个新的构件集成到现有的软件结构中必须破坏原来以开发的产品,所以必须定义很好的接口优点:短时间内向用户提供可完成部分工作的产品逐步增加产品功能可以使用户有时间了解和适应新产品开放结构的软件拥有的维护性明显好于封闭结构的软件缺陷:容易退化为边做边改模型,从而使软件过程的控制失去整体性如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析模型:喷泉模型优点:喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动.该模型的各个阶段没有明显的界限,开发人员可以同步进行开发.其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程.缺点:由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理.此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况.模型:演化模型思想:演化模型主要针对事先不能完整定义需求的软件开发.用户可以给出待开发系统的核心需求,并且当看到核心需求实现后,能够有效地提出反馈,以支持系统的最终设计和实现开发顺序:根据用户的核心需求,设计,编码,测试,后提交用户精化:根据以能满足用户核心需求的核心系统上,增加用户反馈的其他全部功能优点:任何功能一经开发就能进入测试以便验证是否符合产品需求开发中的经验教训能反馈应用于本产品的下一个循环过程,大大提高质量与效率开发中的经验教训能反馈应用于本产品的下一个循环过程,大大提高质量与效率大大有助于早期建立产品开发的配置管理缺点:主要需求开始并不完全弄清楚的话,会给总体设计带来困难及削弱产品设计的完整性,并因而影响产品性能的优化及产品的可维护性缺乏严格过程管理的话,这生命周期模型很可能退化为“试-错-改”模式不加控制地让用户接触开发中尚未测试稳定的功能,可能对开发人员及用户都产生负面的影响

  • Python 最抢手、Java 最流行、Go 最有前途,7000 位程序员揭秘 2019 软件开发现状

    互联网的下半场,科技公司为面对更加严峻的竞争环境,越来越重视开源节流。而对于身处其中且撑起 IT 半边天的技术人,如今如何了?从技术角度来看,其又该作何改变顺应潮流? 接下来,我们将从 JetBrains 最新发布的《2019 开发人员生态系统现状》报告中一窥究竟。 JetBrains 通过调查全球 7000 名开发者,解析出开发者们在日常软件开发中最常使用的语言、框架,从而探索各种编程技术的最新趋势,希望可以帮助更多的开发者获取适合自己的技能。 过去一年,哪些编程语言被使用? 工欲善其事,必先利其器。作为程序员们的看家利器之编程语言,倘若开发者们对其掌握得越深那么对自己的职业发展越有益。但是由于每一年不同行业的技术发展各有偏重,导致数百种编程语言的流行度也会受到影响。 那么在过去一年中,开发者主要使用的编程语言有哪些? 对此,JetBrains 根据最新的数据报告结果得出,最受欢迎的编程语言是 Java 和 Python。其后是 C# 和 JavaScript,两者不相仲伯。但如果结果按示例大小标准化,那么 C# 是最受欢迎的语言。详情如下所示: 首选的编程语言有哪些? 在使用的编程语言中,并不意外,JavaScript 当选最常用的语言。其次为 Java、Python。 除此之外,JetBrains 还发现,似乎有一些“辅助”语言 即主要用作其他语言,包括:HTML、SQL 和 Shell 脚本语言。很多软件开发人员练习过这些辅助语言,但很少有人将它们作为主要语言。例如:56% 的人练习过 SQL,但只有 19% 的人称它为主要语言,仅 1.5% 的人将它作为第一语言。 从另一方面而言,Java 是独占鳌头的语言。其用户中有 44% 只使用或首先使用 Java。其后是 JavaScript,份额“仅有” 17%。 接下来,我们将详细解析。 最常用的整体编程语言——JavaScript 从上面的结果中,除了有 69% 的使用者外,还有 5% 的开发者计划采用/迁移到 JavaScript 语言。 其实一直以来,JavaScript 横扫了很多编程语言榜单,而它之所以如此流行,主要是因为在 Web 前端、客户端乃至物联网等项目开发中都避不开 JavaScript 的使用,且凭借简单易学、丰富的扩展功能等特性,JavaScript 也吸引了不少开发者的关注。 在 JavaScript 语言中,JetBrains 还针对常用的框架做了调查。根据报告显示,React 是业界流传的前端主流三大框架 React、Vue.js、Angular 中使用率最高的,占比高达 58%。同时,JetBrains 也表示,Vue.js 的流行度正逐年增长,自去年以来,份额已经占到 11%,几乎是 2017 年的一倍。在本次受访者中,也有 41% 的开发者表示主要使用 Vue.js 框架。 对于编辑器的选择,使用 JavaScript 的开发者中有 51% 的受访者称常用的 IDE 为 VS Code。 此外,还有 44% 的 JavaScript 开发人员经常使用 TypeScript。2019 年开发人员总计 1/4 在用它,而去年为 17%。在前端开发中,程序员们大多喜欢使用 CSS 为样式表语言。 最流行的编程语言——Java 如今已有 24 岁的 Java,早已不再年轻,但依然是最流行的编程语言。 不过,自从 Oracle 将 Java 的更新周期改为一年两次之后,很多开发者“苦不堪言”。这不 Java 12 刚发布了三个月,Java 13 就已进入了特性冻结阶段。但是根据报告调查结果显示,无论 Java 怎么更新,Java 8 依然是开发者最常用的版本,占比高达 83%。另一个长期版本 Java 11 的使用率仅占 22%。 另外,Java EE 8 版本也是开发者最常使用的,占比 39%。其次,有 14% 的受访者称经常使用 Java EE 7。 在 Java 开发者中,常用的应用程序服务器为 Apache Tomcat。 对于不用应用服务器的程序员而言,有 61% 的受访者表示会选用 Spring Boot 框架。与此同时,Spring Boot 也是最流行的 Java Web 框架,相较去年,其使用率增长了 14%。 根据 JetBrains 官方统计,有 93% 的 Java 开发人员使用 JUnit 进行单元测试,而 51% 的人使用 Mockito。 此外,与 JavaScript 开发者有所不同,Java 开发者更习惯使用 IntelliJ IDEA IDE。另外,使用 Eclipse 或基于 Ecplise 的开发者占比 17%。 最有前途的编程语言——Go 为软件开发而生的 Go 语言,可以在不损失应用程序性能的情况下降低代码的复杂性。而在一众编程语言中,Go 成为最有前途的语言。因为在 2017 年时,Go 语言的份额只有 8%,现如今在 Google 的不断扶持以及更多项目的应用下,Go 已经达到了 18% 的份额。此外,有 13% 的受访者还表示愿意采用或迁移到 Go 语言。 对于 Go 语言的使用,JetBrains 表示,多数人使用单个全局 GOPATH。在同时编辑多个项目的人中,甚至有 2/3 的人仍不倾向于每个项目使用一个 GOPATH。 据报告结果显示,才出现不久的 Go 模块,如今已经有 40% 的 Go 开发者已经在使用它,还有 17% 的人希望迁移过来。 此外,Gin 是 Go 程序员常用的 Web 框架。 学习最多的语言——Python 要论过去一年间最火的领域是哪个? 想必不少业界人士都有所了解,那就是人工智能领域。 要问最火的编程语言是哪种? 那么非 Python 莫属了。 在近几个月的 TIOBE 编程语言排行榜中,Python 更是力压 C++,占据最受欢迎排行榜的 Top 3。而在这次的调查中,Python 成为开发者最想要掌握的技能之一。且有 27% 的受访对象表示在过去 12 个月中开始或仍在持续学习 Python。对此,或许不少开发者发问,使用 Python 到底可以做什么? 据报告显示,49% 的开发者使用 Python 做数据分析,其次,46% 的受访者将其用于 Web 开发,还有 42% 的人用于机器学习方面。 而除了 Python 之外,58% 的受访者称还会使用 Numpy 数据科技框架。 相比 Java,Python 版本的碎片化显然没有那么严重。对于主流的 Python 2 和 Python 3 版本,越来越多的开发者开始向更新的 Python 3 版本迁移:去年还有 1/4 的人使用 Python 2,而今年有 9/10 的开发者宣布将使用 Python 3。探究其缘由,主要是因为 Python 2 和 3 版本之间存在诸多的不兼容性。 开发者常用的操作系统 因微软战略的改变,Windows 已从软件之列成为用户的一种服务。不过,大多数开发者的开发环境还是建立于 Windows 操作系统之上,其次 49% 的用户使用 macOS,48% 的受访者使用 Unix 或 Linux。整体而言,这三种操作系统的使用率相差并不大。 在移动领域,还是以 Android 系统为主。 工具 对于工具的选择,JetBrain 官方表示,89% 的开发人员在某种程度上自定义其 IDE。此外,据调查数据显示,多数开发人员投入暗黑的阵营:83% 的人更喜欢暗色调主题的 IDE 编辑器。 软件开发现状 一直以来,程序员这一行业是以高薪出了名,那么对于开发者而言,何种开发工作最受欢迎?其从事 IT 行业究竟是兴趣使然还是为了养家糊口? 根据《2019 开发人员生态系统现状》报告显示,Web 后端在程序员岗位中最受欢迎,有 60% 的受访者称选择 Web 后端以谋生,其中 39% 的 Web 后端开发者表示兴趣使然选择了该职位。 其次,受欢迎的岗位分别有 Web 前端、移动应用程序、库/框架。 在各大科技公司纷纷拥抱开源之际,事实上,很多开发者因工作、时间、后期维护等因素并不能完全拥抱开源。对此,仅有 21% 的受访者表示每年会有几次参与开源项目。 此外,有 16% 的开发者表示,在他们的项目中不做任何测试。但在全职高级开发人员中,这个统计数据降至 8%。 AI 是否会取代程序员? 古人有句谚语叫日有所思夜有所梦,据报告显示,工作中编程越多(作为主要活动)的人就越有可能在梦中编程。 在 AI 逐步渗透至各个领域之际,AI 威胁论一直从未停歇,就连英国著名物理学家史蒂芬·霍金曾经在采访时也表示过担忧,人工智能(AI)很快会成为一种新的生命形态,甚至某一天会超越人类。那么在相当于创造 AI 的开发者群体中,他们会怎么看? 据调查显示,57% 的受访者感受到了危险,并认为未来有一天 AI 会取代开发者的位置。不过也有 27% 认为 AI 绝不可能取代开发人员。

  • 面向国际市场的装置开发运维软件设计与实现

    保护测控装置已经实现了平台化、可视化、可配置和调试的功能,一些厂家的产品已经销售到国际市场,与国内的大客户定制化、标准化模式相比,国际市场区域分散、用户需求存在较大差异,装置软硬件平台、应用程序配置、用户运维软件等需要提升灵活性、可配置能力。 对过程控制系统(process control system, PCS)系列装置配套PCS- Explorer软件,在国内外工程实施进行调研总结,在获得用户的认可同时,亦存在如下不足: ①部分应用配置复杂度较高,即使深入阅读说明书,也存在理解和操作上的困难,例如针对主变高、中、低压侧的模拟量分配和保护功能连接关系的配置,需要提供50余页专项说明; ②限制于工具软件所能提供的功能,部分应用的灵活可配置能力有待提升,例如国外不同地区的间隔的接线方式非常灵活,往往超出预设的组合范围,一些特殊接线只能二次变更开发; ③IEC 61850采用全自动化建模方式,用户无法自主设置实例号,导致后续工程维护升级时新增/删除信号带来逻辑节点实例号的变化,加大了维护工作量; ④装置配置调试和变电站集成需要通过2个软件分步完成,缺少一体化设计交互能力。 针对上述反馈,结合新一代控制保护平台PCS-S系列装置的推广需求,新开发了配套的面向国际市场的装置开发运维软件PCS-Studio,本文介绍了该软件的设计理念和关键技术。 1 软件设计理念 软件需注重用户体验,实现所见即所得。按照支撑产品全生命周期的要求进行设计,从装置订货、研发调试、工程实施、运行维护等环节,提供装置选型、应用开发、插件选配、用户配置、整站集成、状态浏览、波形分析等功能模块。 1.1 概念定义 元件是完成特定功能逻辑、面向对象封装的一组数据和对数据进行处理的过程,处理完后输出的数据供其他元件使用。元件包含输入、输出、参数、逻辑节点、人机配置等内容。 驱动包是一个自定义格式的文件,把硬盘目录下整个装置的编程、配置、建模相关文件打包压缩形成*.dev。其包括装置的元件库、可视化页面、定值、事件录波、装置选型、液晶主画面等装置配置的源素材文件,还包括通过分析源素材文件形成的装置运行接口文件、ICD(装置能力描述文件)等。 研发人员通过PCS-Studio软件开发装置驱动包,将驱动包下载到装置运行。工程人员和用户可从装置中装上驱动包、或者从驱动包安装库中选择驱动包新建离线配置,进行本地化配置,形成新的驱动包。 1.2 配置调试集成一体化设计 PCS-Studio采用一体化设计,以变电站为单位创建工程,支持单装置配置调试、跨装置集成功能。 软件提供的功能包括: ①工程管理,创建、打开、关闭、删除、导入、导出工程;②装置选型:基于定货号进行MOT选型、系统配置选型、功能投退;③硬件配置:增加、删除、投退IO插件;④应用程序配置:应用程序新增删除加元件、用户逻辑编程;⑤信号连线:AI、BI、BO、LED拉线配置;⑥定值设置:定值分组整定、导入导出、下载上装和比较;⑦人机配置:信号分组、事件、录波、用户级菜单配置、LCD主画面绘制;⑧IEC 61850配置:创建和配置逻辑设备、逻辑节点、数据集、报告块;支持Ed1.0/Ed2.0可选建模;⑨通信管理:IEC 103、DNP、MODBUS等通信规约配置;⑩驱动包管理和维护:驱动包库入库、升级、比较、导入用户配置;在线调试维护:虚拟液晶调试、IEC 61850调试、可视化页面调试;权限管理:用户角色划分、离线在线操作权限管理;变电站集成配置:通信子网配置、网络光口配置、发送接收数据传输配置、导入导出变电站配置文件。上述功能覆盖了从单装置研发到现场运行调试的相关过程。软件的用户包括装置研发人员、生产制造人员、技术支持人员、产品代理人员、购买装置的用户。 以技术支持用户为例,其典型的操作流程: ①用户打开软件,新建工程、层次目录,从离线驱动包库中挑选驱动包或在线连接装置获取驱动包的方式新建装置;②进行装置MOT选型、系统功能配置和保护测控功能投退;③进行可视化页面配置(包括逻辑编程、用户级HMI图形化配置、IEC 61850过程层图形化配置);④进行定值整定、LCD主画面编辑、通信数据集、点表配置。对于智能变电站的装置,还可进行过程层变电站事件(generic object oriented substation event, GOOSE)、模拟量采样(sampled value, SV)的发送接收端子配置,形成单装置ICD文件。之后在资源管理器导入其他装置的ICD文件,将其他装置的GOOSE-SV发送数据集对应的发送端子选择拖入到ICD的Inputs节点内,并选择外装置的FCDA和本装置的接收虚端子DAI关联,通过ExtRef存储对应关系。 装置是以回路实例配置(configured circuit description, CCD)文件作为数字化传输的接口,配置软件根据ICD文件中的发送数据集和Inputs接收端子信息,形成该配置文件,通过1个软件,即完成了装置间的数据传输配置。完成相关离线配置后,将驱动包下载到装置进行在线调试。 1.3 以驱动包为核心衔接全流程设计 面向国内外市场,要求保护测控装置具备灵活的可配置能力和快速集成能力。基于传统的定制化编程方式,已经很难适应不同国家和地区用户需求。需提供可配置方法,支持用户二次开发,满足现场需求,而面向用户的可配置,要求风险可靠,避免用户进行程序编译等复杂度高的操作。 另外随着研发分工的细化,装置程序的研发也需分步实现,模块研发人员侧重于单个功能模块的设计,以提高模块的研发质量和运行效率,装置集成研发人员基于可复用的模块库,搭建装置功能,并设计开放给用户的配置接口,以提高装置集成速度。本软件以驱动包为核心,实现不同用户分权限、分步骤开发。 1)通过符号库编辑软件进行模块研发,将装置功能进行模块化设计,形成符号库。2)通过研发版配置软件进行装置功能集成研发,从模块库中挑选必需的功能模块,以图形化配置组合的方式搭建顶层功能,将各模块二进制目标文件和系统程序库链接为可执行程序;设计面向用户可配置数据,将模块库、可执行程序、配置页面数据、用户可配置数据打包为标准驱动包。3)用户通过用户版配置软件进行二次开发,用户基于标准驱动包进行用户级配置,形成新的驱动包下载到装置运行调试。用户版软件仅显示用户可见的模块、页面、定值、配置选项等数据,用户版本的逻辑编程数据处理采用动态注册技术,是免编译的。 1.4 提升装置可配置能力设计 在PCS-Explorer软件中,装置运行的主体功能使用图形化元件搭建,在保留该软件部分核心功能前提下,PCS-Studio新增了主接线功能、图形化跳闸矩阵功能,进一步提升母差保护装置、主变保护装置的可配置能力,降低上述应用的配置复杂度,并对IEC 61850建模配置进行了新的设计,提升用户自主配置修改方便性。 1)主接线配置 母差保护采用面向间隔对象的方法来形成差动构成图,该方法针对不同母差主接线情况下,只需要修改母差配置,不需要修改母差程序。之前的标准母差保护支持的主接线形式固定(通过MOT提供11种可选接线方式),无法满足一些较特殊的主接线方式,由研发人员进行二次开发实现。故需要通过绘制母差主接线图实现自动形成母差配置的功能。其主接线实现步骤如下: (1)软件提供符合IEC标准的电力系统图元,例如母线、互感器、刀闸、开关等。(2)装置研发人员基于基本图元创建复合图元,例如单母、双母、母联、分段等间隔对象,填写脚本。(3)用户基于基本图元和复合图元进行主接线绘制;并将各间隔符号和图形化页面的元件关联。(4)软件解析主接线图,执行脚本,生成实例化元件拓扑信息、参数设置信息。在进行变压器保护配置前,需要了解原理图、用户习惯,由于变压器主变接线方式和高中低压侧的分支数可变,所以对应的模拟量拉线、命名、HMI配置都有可能要修改,由于其灵活的可配置模式,对工程人员和用户来说,需要深刻理解掌握变压器保护的配置思路,专业门槛高,存在一定难度,也需要通过图形化的方式,以直观地进行模拟量和功能配置。其主接线配置实现步骤如下: (1)主变使用可视化主接线进行模拟量拉线配置。用户在该界面中新建保护对象,并定义变压器各侧有多少个分支。(2)用户在该界面,按照现场的实际情况安装三相电流CT,零序电流CT,三相电压PT(可带零序电压采集),模拟量用CT和PT实例化对应C3P元件和U3P元件,可直接关联采样通道。(3)用户可以对这些安装的互感器进行命名,这些命名将替换装置内部的相关定值。模拟量直接连线给预定义的功能对象,并设置描述。(4)用户再将需要配置的保护元件添加到图形中来,并和这些CT、PT建立连接关系。2)跳闸矩阵 主变三侧保护多,跳闸开关多,每个保护跳的开关不一样,如果都用继电器就需要定义很多压板。之前是通过定值整定或者通过搭建繁杂的逻辑页面实现,存在不直观、不易汇总的问题。跳闸矩阵先将要跳的每个开关的继电器固定,对每个保护要跳开关编码,用点击圆圈方式直接起动要跳开关继电器。 通过对各种保护跳闸进行统一需求分析,设计了通用的跳闸矩阵符号,其在数据建模是个通用的元件,包括输入、输出、参数、逻辑节点模型,在图形上进行特殊处理,根据输入个数,动态调整显示行数,固定32个输出和定值,采用围棋模式的按比特位进行整定,支持修改关联变量描述,其他页面可使用跳闸矩阵的输出变量。 3)IEC 61850建模 目前国际市场存在IEC 61850Ed1、Ed2两个版本建模的需求,需支持可选切换导出符合Ed1、Ed2标准的模型,为此构建了支持2个版本的SCL数据模型,通过传入形参数,动态形成对应版本的属性和子节点。针对单装置的IEC 61850建模,采用三类图形化符号实现。 (1)应用元件内嵌逻辑节点模型。例如零序过流保护元件采用类型为PDOC的逻辑节点关联,在符号库元件制作阶段,可导入2个版本的数据模板,将逻辑节点作为元件的成员模型,进行元件变量和逻辑节点的数据属性映射配置、数据集配置,元件实例化时逻辑节点也同步实例化,完成装置主体功能建模。 (2)提供通用逻辑节点图形化符号建模,例如MMXU、GGIO,进行用户级自定义模拟量、开关量符号建模,这类符号可以关联跨元件的变量。 (3)提供PTRC、TCTR、TVTR等过程层GOOSE、SV的数据发送接收符号,采用图形化方式进行发送压板控制、接收逻辑编程,通过分析上述符号的拓扑关系,进行过程层虚端子建模。 通过元件关联逻辑节点和图形化符号,实现IEC 61850的自动化、图形化建模,用户不用关心底层SCL语法,降低了配置建模复杂度,支持用户基于研发人员预配置的数据集,进行用户级数据集的创建,筛选装置侧上送给后台的信号。同时提供集中式浏览界面,汇总各个页面的逻辑节点模型,支持用户集中修改实例化、前缀等内容,驱动包升级时保留用户设置的属性。 1.5 可靠性设计 在提升软件可靠性方面,通过组件化的设计,提升系统的稳定性、可选升级能力;通过基于用户角色的权限管理(role-based access control, RBAC)进行用户操作控制;通过内置校验规则进行防误校验,实现用户操作的日志记录,用户驱动包下载前的配置合规检查。 1)基于组件的软件工程理念 软件系统比较庞大复杂,同时用户对软件的发布、升级的可靠性、运行过程的稳定性的要求越来越高,对软件的设计和开发带来挑战,需要有合适的软件工程方法来指导软件设计开发过程。基于组件软件工程是一种基于复用方法来定义、实现和组合松散耦合的独立组件,使之成为一个系统。组件是比对象更高层次的抽象,其接口的实现细节对其他组件是隐藏的。开发可靠易维护的软件设计原则如下: (1)组件是独立的,组件之间不影响彼此的操作。组件实现的改变可以不影响系统其他部分。(2)组件之间通过预先定义的接口进行交互,当接口保持不变或兼容的情况下,组件可以替换为另一个有更多功能的组件。(3)组件的基础支撑层提供一些可用的标准服务,减少了需要新开发的代码量,提升了模块复用程度。组件具有标准化、独立性、可组合性、可部署性、文档化等特征。基于组件复用的软件开发过程包括:系统需求概览定义、识别候选组件、根据发现的组件修改需求、体系结构设计、识别候选组件、组合组件并构建系统。本文的PCS-Studio软件采用了组件化设计理念。 2)权限管理 按照IEEE 1686规范进行角色权限设计。预设置7种用户角色,分别为“查看”、“控制”、“定值”、“测试”、“配置”、“调试”和“管理”。工具默认提供一个管理员账户,默认具有所有权限。用户第一次配置时使用admin账户进行登录,登录以后需要立即修改默认的用户名和密码。 管理员可以进行权限配置:①设置哪些权限不需要校验密码;②设置免密码操作的超时时间;③之后再创建角色,给角色分配权限,并且创建用户,将用户添加到角色组中。配置完成后相关设置信息保存到权限文件中,再下载到装置最终生效。 3)防误校验 软件在防误操作设计方面,在编辑过程中进行即时校验,例如定值设置超范围提示、IO插件不允许逻辑编程的控制、部分元件实例个数的控制、部分元件仅能在指定插件的范围内使用、连接线两端输出-输入变量类型不匹配提示等多项细节的提示,减少用户配置过程中的误操作。 软件梳理总结了装置侧系统软件相关配置检查规则,在驱动包形成处理过程中,进行逐条检测,并按照错误/告警/提示的级别进行展示,仅当零错误的配置才形成可下载的驱动包。此外客户端软件与装置之间的调试下载通信进行完整性校验机制,采用了MD5对敏感数据保护进行保护,通信报文采用加密处理,避免非法会话与攻击。 2 软件实现关键技术 2.1 可扩展脚本技术(略) 在MOT选型、系统配置、可视化主接线等场景,配置选项的修改,需要即时生效。例如投入退出插件、显示隐藏页面、修改内部参数等。QT库的QObject类和派生类有property属性和c++slot接口,可以在python解释引擎中注册相关实体对象,在脚本中调用注册对象的API接口,界面上点击保存或失去焦点时自动执行相关脚本,实现数据联动修改功能。 2.2 数据刷新同步技术 由于模块化元件支持该元件内变量菜单分组配置功能,在可视化页面组件和LCD菜单组件均可进行菜单分组配置,因此采用一次读取驱动包内容到共享内存、多处视图编辑浏览、即时刷新同步的策略实现数据一致性。 软件需实现离线HMI菜单配置和可视化页面配置的同步生效。将配置相关的数据源主体存储在可视化页面文件中,集中分组配置的菜单文件按顺序存储变量的ID。首次点击装置节点时,需一次读取菜单分组、定值、录波和可视化页面信息,确保需同步的数据在内存中。 以新建元件为例,从符号库中选择元件块释放到页面,则从变量库中获取默认实例名、默认的逻辑节点实例名,构建符号、变量的ID。读取符号内分组引用表的配置,汇总各个菜单引用表的变量ID,根据层次菜单英文名,查找离线HMI配置的数据(包括菜单、录波、事件、定值),将相关变量ID顺次添加到对应的离线分组内存数据中。 2.3 组件化集成技术 PCS-Studio软件采用组件加载和子进程调用的集成模式,设计了主进程-子进程-子组件的分层架构,分主框架、顶层界面组件层、数据模型层、公共服务驱动层,支持功能灵活扩展。 基于组件的开发设计要点包括:①实现对组件的管理,宿主程序可以搜索、加载、卸载组件和维护组件的状态。将这些功能放到组件配置树(组件容器)模块实现;②接口的设计和识别,接口是不同组件之间、宿主程序与组件之间的通信基础。宿主程序只有识别接口,才能加载组件;③资源的互斥和同步,多个组件的并行运行可能对申请资源产生竞争。 组件系统的功能由组件实现,设计了基础数据basedata.dll、基础界面basegui.dll、抽象组件basepackage.dll、消息总线msgbus.dll作为底层驱动公共服务模块,数据模块和应用能够组件继承自上述基础模块,组件之间通过消息总线交互数据,各应用层组件如图7所示,包括工程管理组件、图形化配置组件、全局配置组件等。 2.4 主界面框架设计技术 软件主框架的顶层窗体QWidget由区域1、区域2、区域3组成,3个区域使用QVBoxLayout竖式对齐。其中区域1为主标题窗体,显示软件名字和当前打开的工程名称。区域2包括菜单栏、工具栏。区域3为QMainWindow,由QSpliter和状态栏组成。 使用QSpliter作为中心窗体,依次竖式管理左侧工具栏、左侧停靠窗体、中间界面容器、右侧停靠窗体、右侧工具栏。中间界面容器分两个子区域,包括QWorkSpace工作空间、底部停靠窗体,使用横式排列。QWorkSpace用于管理各中子界面。整个软件的配色使用QSS的层次样式表设计,通过分层主界面框架,实现新型自定义软件界面风格。 结论 PCS-Studio软件采用模块化设计思想,通过可视化的方式配置调试PCS-S系列装置。以变电站为单位管理PCS-S系列装置,能有效管理全站的装置配置方案。使用驱动包和MOT创建装置,基于标准模板,可快速构建配置。提供功能丰富的离线配置和在线调试。支持跨装置的GOOSE-SV数据传输配置功能。软件在功能完善性、界面友好性、操作易用性、运行稳定性等方面有了较大改进提升,促进了PCS-S系列装置的市场推广。

  • 2019 年软件开发新趋势必知!

    大多数时候,为了顺利开展和维系你的业务,需要提供一些必要的软件,以帮助你能够获得详细且真实的运营数据并保存较长时间。不同的企业有不同的软件需求。例如,如果你正在经营一家酒店,酒店管理软件对你来说是至关重要的。同样,如果想以有效的方式管理客户数据,那么就必须拥有不错的客户管理软件(CRM)。在本文中,我们将讨论软件开发出现的一些新趋势,这对软件专业人员也非常重要,因为只有预知趋势,才能更好的调整自己顺应趋势。单页应用程序(SPA)需求和要求随着时间而变化。目前,单页应用程序变得越来越流行,这也就意味着我们不在需要庞大的网站。单页应用程序允许你加载单个HTML页面,该页面会在与你交互时动态更新。要创建这样一个响应迅速且简化的网站,你最需要依赖JavaScript。扫描器和传感器对于定制软件开发,传感器和扫描器至关重要。通常,传感器可以自己主动收集数据,而扫描器需要用户操作。因此,在使用扫描器时,需要在传感器中自动编程用户启动的操作。物联网物联网已经在软件开发趋势中存在了一段时间。通常,我们不会仅在一台设备上使用互联网,我们将多台设备接入网络以至于形成物联网。这时,各种设备都连接到互联网服务器,云等等,这是物联网所知的发展路径。随着物联网使用的增加,软件开发人员应该更加警惕,并确定如何正确编程设备,以便用户可以轻松控制它们。渐进式Web应用程序(Progressive Web apps)PWA位于Web应用程序和移动应用程序之间,为用户提供无缝跨设备的用户体验。PWA比标准的移动应用程序更容易开发和维护,因此这些应用程序的增长可能会增加。PWA的每个部分可以使用Service Worker在后台的浏览器脚本中运行,该脚本支持智能缓存,离线访问访问过的站点,更新后台,推送通知和其他关键功能,这有助于在首次访问后加快站点的加载速度。可穿戴设备我们正处于可穿戴技术的时代,因为我们可以看到像Apple,Pebble,Moto和LG等技术巨头推出都智能可穿戴设备,如智能手表。在此之前,开发人员只需开发移动应用程序,但现在软件开发人员也可以为这些可穿戴设备创建应用程序和服务,大多数这些设备都基于一些复杂的算法。安全软件你连接的越多,你遇到的安全问题就越多。软件开发应该推送新技术的发展,因为现在全世界的公司都在关注不断增长的移动体验。如果你的业务模型包括软件开发,那么建议根据当前趋势进行设计和构建,这样才能帮助你获得可以运行更长时间的定性产品。开发人员可以忽略之前的功能,但他们绝对不能忽视趋势,因为只有利用好趋势,才能在这个竞争激烈的世界中生存下去。AI驱动开发这种开发方式是涉及工具和技术以及用于将AI嵌入到软件应用程序中的一些最佳实践。通过使用AI工具,你可以开发AI增强型解决方案,如增强分析、自动化测试、自动代码生成和解决方案开发。例如,为消费者提供语音服务的家庭助理,洞察即服务,另外还可以通过大数据分析来帮助用户更好的进行某些操作。AI渗透率正在逐步提高,它们正在融入运输,金融,教育和医疗保健等领域。在人工智能的帮助下,供应链通过预测库存水平和重新安排交货来降低成本,机器学习还可以通过监控零件的状况来判断何时要对其进行维修。总结任何行业的趋势都将根据客户群和业务需求而变化。保持领先地位始终是任何一家企业的首要任务。但是,如果你希望在你的商业模式中取得成功,请尝试记住这些不断变化的趋势,这将有助于你保持竞争力。我们希望这些趋势能够帮助你准备下一次定制软件开发。

  • 上一页1... 9101112下一页
  • TOP

  • 关于我们

    上海求创科技有限公司成立于2001年,是一家专注于为客户提供高端网站策划、网站建设、网页设计、品牌网络营销以及相关的基于互联网应用服务的专业公司。

    更多

    全国客户服务热线

    400-889-1636

    网站建设,网站制作,企业网站建设,网上商城,网站推广,域名注册,求创科技-微官网 网站建设,网站制作,企业网站建设,网上商城,网站推广,域名注册,求创科技-手机网
    友情链接: 域名超市 | 苏州网站优化 | 营销型网站建设 | 企业网站建设 | 网页设计 | 网站建设 | 网站优化 | 网站设计 | IPv6 升级 | 微信开发 | H5开发 | 系统开发 | 网站维护 | 海外社会化媒体推广 | 上海网站设计 |
    热线电话:400- 889-1636 业务部:sales@dn.cn 售后服务:service@dn.cn 投诉邮箱:info@dn.cn
    地址:上海市松江区谷阳北路2399弄 御上海37号602室 邮政编码:201600
    版权所有©上海求创科技有限公司 沪ICP备13005298号-24  网站地图 沪公网安备 31010602003962号