07-30
2020
由于传统的软件开发模式其最终生成产品是程序代码,难以适应需求的快速变化。虽然目前部分生产环节已经有模型可以参与,但模型仍不能应用于大规模的软件开发中,因此软件开发过程中不可避免地出现非标准化与非自动化的问题。为了解决软件开发中存在的这些问题,OMG组织发布了模型驱动架构(Model Driven Architecture,MDA)。本文在介绍MDA开发过程的基础上,探讨了平台无关模型和平台相关模型的定义、映射和转化等,并将MDA开发方法和传统软件开发方法进行了分析比较。一、MDA体系结构模型驱动式软件开发是指通过对问题进行分析然后建模、转化和精化模型,最终生成可执行代码的过程。模型驱动架构是一种建立业务逻辑抽象模型并自动产生完备的应用程序的方法,其核心思想是通过计算无关模型(Computation Independent Mode,CIM)描述系统的行为与功能,用与使用平台无关的建模语言(例如UML)来构建在实现时无需关心所用技术的平台无关模型(Platform Independent Mode,PIM),随后平台无关模型通过一定的转化规则与辅助工具被转化为平台相关模型(Platform Specific Mode,PSM),最后PSM精化生成可执行代码。MDA软件开发方法将标准的系统模型放在了驱动架构的核心位置,如图1所示。MDA通过PIM和PSM将系统说明和实现技术与平台独立开来,确保软件开发成果不受需求变化与技术变迁的影响。MDA模型组织分为4层结构,如图2所示。下一个层次是上一个层次的应用,上一个层次是下一个层次的基础,MOF位于M3层,其是MDA框架中基础与核心的模型,同时也是M2层所有模型的元模型。M2层为MOF上不同模型所对应的模型语言,不同的领域通过M2层能够获取与所在领域相匹配的建模语言,为M1层的建模提供了建模符号。M1层是软件开发过程中建模人员采用模型语言为企业应用建立的模型描述,PIM,CIM,PSM应用模型就位于该层之中。最底层为M0层,即实例层,其将M1层的模型转化为具体的可使用的应用程序。MDA的核心是由OMG制定的一系列标准,元对象设施(Meta Object Facilit,MOF)、统一建模语言(UnifiedModeling Languag,UML)、数据仓库元模型(CommonWarehouse Metamodel,CWM)、XML元数据交换(XML⁃based Metadata Interchange,XMI)以及对象约束语言(Object Constraint Language,OCL)。这些标准构成了一个构建模型驱动架构的基准,其不但决定了MDA的核心架构,并在State⁃of⁃art的系统建模中起到了关键性的作用。二、MDA实现与基于模型驱动架构的软件开发基于MDA的软件开发过程可分为:(1)模型驱动软件开发过程。此方案中使用的模型为PIM和PSM,利用模型驱动代码的产生,具体操作步骤为代码通过模型产生,接着通过人工的方式进行商业逻辑代码的编写,最后将手工编写的商业逻辑代码进行部署及发布。(2)通过模型驱动来控制系统运行时的行为。此时软件模型能够被一个操作系统运行时通用模型直接执行,该过程无需产生具体的软件代码,最后部署和发布的仅是模型,因为模型中已经将应用程序的各个层面均做出了表达。基于MDA的软件开发包括建模、开发和发布三个阶段,如图3所示。模型阶段:创建无关平台模型PIM,并以此为核心,ISM和PSM均可通过PIM自动转换生成。该模型应用如XMI的MOF映射方法进行映射。开发阶段:产生平台无关代码,即MDA工具自动产生和程序员手工编写客户端及服务器端的代码。MDA中代码的生成是MDA工程的最终目标,其具体是指PSM到代码的映射,映射生成ISM模型。发布阶段:该阶段将诸多内容放在一起组成可运行组件,其包括模型、MOF映射、手工编写的代码和MDA运行时库及待发布的配置信息,最终将组建发布到运行平台上。三、软件开发过程比较虽然基于MDA的软件开发过程是一种新型模型驱动软件开发方法,与传统的软件开发方法相比具有以下优点:(1)模型变换可自动实现。相比较传统的软件开发过程由手工完成模型与模型、模型与代码之间的变换,基于MDA的软件开发过程均是MDA开发工具自动完成的。(2)便于维护,模型与代码同步。在基于MDA的软件开发过程中,模型通过转换即可直接生成可执行代码,无需要其他步骤,从而实现模型与代码的同步。软件开发人员对软件的维护重点从程序代码变为与技术平台无关、与业务逻辑相关的平台无关模型。(3)开发效率高,软件可靠性强。MDA模型架构对系统的不同层次进行抽象,每一层代表的含义简单易懂,从而使得系统的整个框架可被软件开发人员清晰地了解与掌握,而不必困惑于具体的实现技术。由于模型通过转换即可直接生成可执行代码,使得开发过程中减少了编码环节,所以若构建PIM正确,整个系统的正确性便可得到保证。(4)业务逻辑模型独立于技术实现平台。PIM模型可根据技术平台的不同,自动生成基于该模型的软件系统,从而实现PIM模型与技术实验平台的独立。(5)模型是程序生成的基础设施。在基于MDA的软件开发过程中,模型被作为其生命周期中的设计工作,是程序生成的基础设施。模型通过一系列转化最终可自动生成可执行代码。总结本文在介绍和分析了MDA的架构和基于其软件开发过程的基础上,将其与传统软件设计方法进行了对比,说明了其在软件开发过程中的显著优势,并在文中最后设计基于MDA的决策支持系统,证明了使用MDA开发方法设计的软件系统独立于技术平台,通用性强、可移植性强,其可通过建模、转化和精化模型,直至最终生成可执行代码,大幅降低了设计成本且提高了开发效率。以上就是我们深圳市组创微电子有限公司为您介绍的基于MDA的软件开发方法的研究。如果您有智能电子产品的软硬件功能开发需求,可以放心交给我们,我们有丰富的电子产品定制开发经验,可以尽快评估开发周期与IC价格,也可以核算PCBA报价。我们是多家国内外芯片代理商,有MCU、语音IC、蓝牙IC与模块、wifi模块。我们的拥有硬件设计与软件开发能力。涵盖了电路设计、PCB设计、单片机开发、软件定制开发、APP定制开发、微信公众号开发、语音识别技术、蓝牙wifi开发等。还可以承接智能电子产品研发、家用电器方案设计、美容仪器开发、物联网应用开发、智能家居方案设计、TWS方案开发、蓝牙音频开发、儿童玩具方案开发、电子教育产品研发。
07-29
2020
数据库技术在ARX软件开发中的应用工程实践中为提高绘图与设计的效率,采用ARX技术对CAD进行二次开发,这一方法在工程中广泛应用,为设计流程提供了规范的模式。在CAD的三种开发接口技术中,ARX程序是最适合对CAD进行二次开发的工具,可以对ARX提供的资源进行有效利用,以及在VC开发环境下,利用丰富的资源从而将产品对外发布。对CAD进行二次开发时,可以发现,其软件的设计仅仅只能满足对图形的绘制,对数据及软件结构不能进行有效的管理。因此数据库技术在ARX程序软件开发中的应用,能对二次软件开发的框架体系进行改善,对软件开发后期的管理工作提供便利,从而实现CAD系统与ERP、PDM数据进行集中管理,以及其他子系统集成工作。一、ARX程序含义简介ARX是现代最新的软件二次开发技术,支持c语言的编写及应用程序,允许开发者对CAD图形软件的充分利用,并可以直接访问,ARX程序可以与CAD软件的编程接口一起配合使用,在ARX程序中开发的应用程序实质上是动态链接库,即DLL,从而使得CAD与其地址空间共享,进行通信。ARX程序的运行速度得到提高,程序的功能也得到增强,通过ARX程序建立新的派生物,对其他程序进行共享,从而对编程能够充分利用。ARX程序与其LISP、VBA程序这三个属于第三发软件开发工具,ARX程序是一歌开放式的体系结构,对CAD软件可以进行直接的访问与操作,ARX程序可以通过对数据库的库外函数进行调用,从而对图形数据库进行初始化操作,并对数据库的对象进行创建,并对数据库的对象进行编辑与保存,从而使图形数据库CAD生成可见及不可见的实体几何对象,构建符号表与字典,其本质是对CAD增加块表记录,形成动态链接,使CAD软件与其他应用系统能够进行共享,提高程序的功能,对CAD软件进行直接访问和浏览。二、ARX程序中数据库技术选择ARX程序对外部数据库的访问,可以根据CAD提供的编程接口ASI,在VC开发平台上对提供的数据库进行访问并开发。用ASI库函数对数据库外部进行访问需要开发人员学习ASI的相关专业知识,由于ASI编程的资料严重匮乏,不利于外部数据库对CAD进行二次开发。对MFC进行编程需要在ARX程序在一定的初始化进程后进行,对ARX程序的开发需要根据MFC提供的类库函数,访问外部数据库,可以有效缩小开发周期,降低开发的难度,还可以使程序功能得到增强,从而为实现ARX程序的C/S模式提供便利。三、数据库技术在ARX程序中的应用3.1基于ADO的ARX程序开发应用对CAD进行二次开发,首先需要建立标准件与基本零件库,标准件及与基本零部件的形状结构一般为定型,可形成系列,零部件之间的尺寸关系用参数表明,工程数据库的重要组成部分及相关基础数据首先需要对零部件的几何关系数据特有的静态性与共享性进行确定。一般在化工设备中,零部件应按照国家标准进行设计与制定研发。且化工设备当中零部件的数量大,形式多,其数据的规律性较强,因此在化工设备也常常使用,并通过数据库对零部件的数据进行管理。本文根据JBFF4713~92这一支座零部件的开发为例,支座的开发主要有四种系列,分别是A、AN、B、BN这四种形式,这四种系列当中大多数都是具有标准化的数据,通过标准化公式进行表示,通过函数的重载实现,将这四种系列的支架进行独立分别,主要是由于其他的模块有可能会单独调用某一支架,为了能更加清晰的描述。而ARX程序的数据公式是在用户输入及选定数据之后,对相应的结构函数进行数据调用,并将数据进行传递,再根据所得数据从数据库中提出相应的数据,即相的应类,对数据的正确性进行详细的检查,最后根据ARX程序提供的类库函数对图形进行绘制,完成MFCDAO的数据库看访问。3.2基于ODBC的ARX程序开发在工程图纸管理中的应用PDM是对工程图纸进行计算机化管理的技术,根据PDM技术建立工程图纸管理系统,从而实现工程电子文档与资料管理,工作流程与产品配置管理,及项目的分类检索管理等多种管理功能。工程图纸的设计一般是由设计者在设计后向服务器提交设计方案,并通过审核与校验等详细流程。在审核过程中图纸的设计将会被浏览及做出修改,且图纸的设计一般是在CAD软件上进行长时间的设计,与工程图纸管理系统没有进行融合。目前可通过多种技术对CAD软件与工程图纸管理系统进行连接,但在特定场合下,例如对工程图纸的设计与修改,CAD与工程图纸管理系统仍没有彻底的融合,设计者在不同软件下存在操作上的多种问题,例如使用OLE技术将CAD与工程图纸管理系统建立通信,其内嵌的方式仍不满足用户的需求,且系统的反应迟缓,对用户的使用造成不便。对ARX程序进行开发,需要与MFC在开发数据库的优势进行结合,才能使CAD软件与工程图纸管理系统进行有效的融合,保证设计人员在CAD软件熟悉的环境下进行办公和设计。但如果对图纸进行只读浏览,采用OLE技术与快速浏览工具结合较为实用。工程图纸的提交,需要采用ARx程序实用MFCODBC对数据库进行访问,而提交绘制的CAD文件可以采用多种方法,例如在数据库中运用varbinary字段以及Winsock。ARX程序是根据CAD客户端建立只读文件夹,为服务器管理者提供使用,并在只读文件夹中将ARX提供的类库函数保存为dwg格式文件,调用数据库执行的系统命令,将拷贝下来的文件复制到服务器的相关文件夹中,保证服务器的安全,避免服务器目录的安全性受损。具体流程如图1所示。结语数据库技术在ARX程序中对软件进行二次开发主要是对外部数据库进行调用,并将数据库的开发技术与CAD技术进行综合利用,根据CAD软件在图形上的优势,提高软件开发的质量,为ARX软件开发提供规范的数据管理,有效解决CAD系统与其他子系统之间的集成问题,为CAD软件的二次开发提供新的解决思路与方法。以上就是我们深圳市组创微电子有限公司为您介绍的数据库技术在ARX软件开发中的应用。如果您有智能电子产品的软硬件功能开发需求,可以放心交给我们,我们有丰富的电子产品定制开发经验,可以尽快评估开发周期与IC价格,也可以核算PCBA报价。我们是多家国内外芯片代理商:松翰、应广、杰理、安凯、全志、realtek,有MCU、语音IC、蓝牙IC与模块、wifi模块。我们的拥有硬件设计与软件开发能力。涵盖了电路设计、PCB设计、单片机开发、软件定制开发、APP定制开发、微信公众号开发、语音识别技术、蓝牙wifi开发等。还可以承接智能电子产品研发、家用电器方案设计、美容仪器开发、物联网应用开发、智能家居方案设计、TWS耳机开发、蓝牙耳机音箱开发、儿童玩具方案开发、电子教育产品研发。
07-28
2020
基于MCAPI的多核软件开发方法随着技术的进步,电子产品更新换代的速度越来越快。单纯提高主频来提升系统性能的方式已经接近瓶颈,而使用多片处理器搭建系统又不符合产品的小型化要求。传统的单核处理器已经不能满足日益增长的性能需求,能够完成并行任务处理的多核处理器应运而生。现代多核处理器主要依靠增加核数而不是频率来提升性能,同时芯片的高集成度也带来了资源调度和功耗等问题。随着多核处理器并行度的增加,各类同构、异构多核处理器的出现使得软件开发面临着巨大的挑战。如何在多核上高效地实现算法,如何合理地分配资源都是需要解决的问题。一、多核DSP器件简介TMS320C6678是德州仪器公司(Texas Instruments,TI)在2010年推出的一款经典的同构多核数字信号处理器(Digital Signal Processor,DSP),包含8个DSP内核,每个核在1.4GHz的最高工作频率下性能可达到22.4G每秒浮点运算次数(FLoating—point Operations Per Second,FLOPS),支持Hyperlink等多种高速接口,可广泛用于移动通信、医疗电子、高性能计算等领域。核间通信(InterP rocessor Communication,IPC)以及核与外设的通信是多核软件开发的关键所在。针对这一需求,德州仪器公司在其新一代Keystone架构的处理器上提供了多核导航器,包括硬件队列管理器和基于包的直接存储访问(Direct Memory Address,DMA),以实现核间高速数据传输。使用多核导航器进行核问通信,可以通过软件对相应的控制寄存器进行读写和查询实现,也可通过内部硬件进行事件触发实现,这种方式可大大简化核间通信处理,但是仍存在缺点。一旦软件拓扑结构发生改变,或者需要调整核的运算负载来提升系统性能时,这部分工作量很大,而且应用受限于厂商。二、多核通信应用程序接口概述多核通信应用程序接口MCAPI(Muhicore Communications Application Program Interface)是由多核联盟提出的基于消息传递的轻量级应用程序接口标准,特别适用于嵌人式系统处理器核间通信和同步。MCAPI的应用不受处理器核的数目、处理器架构以及操作系统的限制,并且提供了源码级的兼容性支持,可扩展性很强。相对于普通的多片处理器间通信来说,多核处理器的核间通信普遍要求低延迟、高带宽。大部分多核处理器都包含片上存储器或高速缓存(cache)。为了避免出现计算瓶颈,核间通信需要减少不必要的存储器访问。MCAPI中定义了域(domain)、节点(node)、端点(end.point)、通道(channe1)等关键概念。域是依赖于具体实现的,既可以是具有多个处理器核的单个芯片,也可以是板上的多个处理器。节点可以是线程、处理器或硬件加速器等,通常可用处理器核作为节点。端点是类似于套接字的通信点,一个节点通常包括多个端点。通道提供了一对端点之间的点到点的先人先出First In First Out,FIFO)存储器用于通信,方向为单向的。此外,MCAPI定义了3种通信基本类型:消息、包通道和标量通道。消息是最常用的通信类型,提供了端点之间收发数据的机制,支持优先级动态调整,可用于同步、初始化和负载平衡。包通道和标量通道提供了轻量级的流通信机制,相应的程序开销很小。三、基于Poly—Platform工具的多核软件开发流程3.1Poly—Platform工具简介Poly—Platform是Poly Core公司提供的针对多核软件开发的集成开发工具套件,包含Poly-Mapper、Poly-Generator、Poly—Messenger/MCAPI、Poly—Templates等功能模块。采用该工具进行开发可以基于MCAPI标准建立应用程序节点,利用用户图形界面(Graphical User Interfaces,GUI1向导自动生成代码,在几乎不修改源代码的基础上,实现应用程序在同构多核、异构多核、多处理器等不同平台上的灵活配置和扩展,不受限于厂商,应用前景广阔。3.2多核软件开发流程将Poly—Platform软件使用插件方式集成到Eclipse软件环境中后会在TI的Code Composer Studio开发环境下出现相应的菜单和选项,即可进行基于Poly—Platform的多核软件开发。这里选择TMS320C6678多核DSP器件进行开发,并且以8个DSP核之间依次相连并传递数据的环形拓扑结构为例描述开发流程。(1)建立拓扑结构。首先建立一个拓扑(Topology)工程,拓扑主要描述了应用程序在(多核)平台上的映射关系。借助Poly—Mapper工具在建立工程后生成的拓扑映射文件中进行属性设置,选择处理器类型,设置节点个数为8(对应8个DSP核),名称分别为N0一N7,操作系统为TI的DSP专用操作系统。然后在拓扑图中绘制8个节点,并在每个节点中间绘制一条链路(1ink),得到环形结构的8节点拓扑结构图。(2)建立内存映射文件并分配资源。建立内存映射文件并分配若干个段(section1,设置其起始地址、大小、方向等参数。这些段分别用于内存访问区域(Memory Access Regions,MARs)和链路(1ink)。其中内存访问区域包括一些常用的资源池(poo1),如消息池、消息队列池、数据池、等待池等,不同节点之间通过MARs共享资源可以提高资源利用效率,提升系统性能。(3)在拓扑结构图中进行内存映射。针对每一个节点(N0一N7),设置其可访问的内存访问区域。然后,还需要对内存访问区域包含的每一个资源池进行参数设置,如起始地址等。同样地,对链路也需要进行参数设置。(4)建立节点工程。这里与常规的DSP开发流程基本一致,针对8个节点(对应处理器核)分别建立节点工程,然后需要将这8个节点工程与第一步建立的拓扑工程建立映射关系。(5)编写初始化代码和配置文件。首先利用Poly—Generator工具将拓扑结构图转化为基于拓扑定义的C语言和相应的头文件,并存放到每个节点工程的工作目录下。然后利用Polv—Template工具,按照软件自带的MCAPI模板,自动为每个节点工程生成节点初始化文件和硬件初始化文件。最后编写TI专用的实时软件组件Real Time Software Component,RTSC)配置文件和用于存储器分配的连接器命令文件。(6)编写每个节点工程的主函数。主函数主要内容包括调用节点初始化函数,硬件初始化函数,以及节点之间消息收发的函数(基于MCAPI)等。这些都可以利用Poly—Template工具提供的模板快速完成。(7)编写每个节点工程的应用程序。将用户的算法进行代码实现并加入节点工程,这一步与常规的DSP开发流程完全一致。(8)建立目标配置文件和RTSC平台。首先建立用于仿真调试的目标配置文件,然后建立RTSC平台用于硬件配置,并将其加入节点工程。这些都是TI专用的文件。(9)编译、调试、运行。对每个节点工程进行编译、调试、运行,观察程序运行结果。注意不要编译拓扑工程。(10)程序性能分析和优化。借助Poly—inspector工具提供的交互式报告环境,可以对多核软件实现进行性能分析,方便用户进行程序优化和调整。结论当前计算环境变得越来越多元化,DSP、可编程逻辑器件(Field Programmable Gate Array,FPGA)、图形处理器(Graphics Processing Unit,GPU)都具有较强的运算能力,并适用于不同的应用场合。多核处理器是当前的研究热点,而高集成度的异构多核处理器是未来的发展趋势。基于多核的软件开发始终是一个难点,给软件开发人员带来了巨大的挑战。本文提出的基于MCAPI的多核软件开发方法可应用于同构多核、异构多核以及多处理器平台,通用性较强,不受厂商、处理器、操作系统的限制,可帮助用户简化软件设计和优化过程中的拓扑设计、运算负载平衡以及核间通信和资源分配等工作,显著地提升开发效率。以上就是我们深圳市组创微电子有限公司为您介绍的基于MCAPI的多核软件开发方法。如果您有智能电子产品的软硬件功能开发需求,可以放心交给我们,我们有丰富的电子产品定制开发经验,可以尽快评估开发周期与IC价格,也可以核算PCBA报价。我们是多家国内外芯片代理商:松翰、应广、杰理、安凯、全志、realtek,有MCU、语音IC、蓝牙IC与模块、wifi模块。我们的拥有硬件设计与软件开发能力。涵盖了电路设计、PCB设计、单片机开发、软件定制开发、APP定制开发、微信公众号开发、语音识别技术、蓝牙wifi开发等。还可以承接智能电子产品研发、家用电器方案设计、美容仪器开发、物联网应用开发、智能家居方案设计、TWS耳机开发、蓝牙耳机音箱开发、儿童玩具方案开发、电子教育产品研发。
07-27
2020
软件开发中的三层架构技术分析三层架构技术,其实就相当于在客户端与数据库端之问加了一个“中间层”,也可以称之为组件层。这个“中间层”,并不是实际物理意义上的中间层,而指的是逻辑上的中间层,把应用程序中的业务规则、数据访问、合法性校验等工作放到了中间层进行处理,客户端不再直接与数据库进行数据交互,而是通过中间层来建立连接,再由中间层和数据库进行数据的交互,最终实现客户端和数据库端的数据的交互。三层架构软件技术的规则在软件开发的三层架构技术中,第四层数据实体层是基本的数据源,是必不可少的一层,是软件操作的基础,它的运算效果取决于计算机的硬件和数据库设计的合理性。而对于另外三层,并不是只要项目被划分成了表示层、业务逻辑层和数据访问层就称之为三层架构,这三层之间还必须要遵守一些约定的规则:(1)表示层仅仅只是一个和用户进行对接的界面,因而可以将其任意移植到其他类似环境的项目中。(2)数据实体层只能通过数据访问层进行数据读取,其他层都不能够直接从数据实体层中读取数据。(3)数据访问层只能作为一个对数据库实体的读取中间层,而不能进行任何业务逻辑的处理操作。(4)软件设计应该以业务逻辑层为核心,而不是数据访问层或是数据实体层,更不应该是表示层。在业务逻辑层应该以面向对象的方式,实现所有的有业务逻辑操作。(5)数据层中所有的数据都应该在一定的抽象程度上做到与系统无关。(6)设计的时候,所有的远程对象技术都应该考虑到不同的服务器和多台服务器之间的负载均衡作集群。(7)这3个模块中的任意模块都可以运行在不同的服务器上。一个项目是否需要进行三层设计,首先要看这个项目的复杂度。实际上,很多项目只需要编辑一个W e bAp plicatio n就足够实现全部功能了,根本不需要更复杂的技术,而只有真正复杂的项目,才需要利用三层架构技术进行设计和开发。三层架构技术的优势通过对三层架构技术的工作原理的理解,我们可以得到通过三层架构技术开发出来的软件的优点。(1)结构清晰,耦合度低。三层架构技术中层次分明,层与层之间结构清晰,软件编写人员分工明确,层与层之间的关联不多,降低层与层之间的依赖性,编写人员可以只关注整个结构中的某一层,从而极大地避免了二层技术开发的软件中存在的耦合度问题。(2)可维护性高,可扩展性高。用三层架构技术开发的软件在后期维护的时候,极大地降低了维护成本和维护时间。软件的任意一部分的功能更改和升级,仅需更改某层的设计和编写,而不需要对整个系统做出改变,而不像用二层技术开发的软件那样,一个小程序的变化都需要调整整个软件开发,极大地提高了软件的维护性和扩展陛。(3)利于开发任务同步进行,容易适应需求变化。三层架构技术极大地解决了软件开发的问题,特别是大型软件开发的问题,让软件开发实现任务的同步。在二层技术开发软件时,由于仅有2个端点,故软件开发时就存在一个编程的先后,必须由一个团队对整个软件流程十分清楚,并从始至终编写所有环节的程序。而三层架构技术把软件分成4个层次,而且层与层之间关联不大,故可以将软件分成4个不同层次进行同步开发,实现任务的同步,从而大大缩短了软件开发的时间,更容易适应需求的变化。软件三层架构技术的缺点(1)降低了整个系统的读取数据的速度。在二层技术结构中,大部分数据的读取是通过客户端直接造访数据库而得到的结果,而三层架构技术却必须经1/4个层次的完整过程才能得到最终结果,无形中增加了中间环节,从而降低了系统的性能。(2)有时会导致关联层次的修改。由于三层架构技术中层与层之间存在逻辑关系,当其中一个层次由于需要而发生功能的改变或增加时,很有可能导致其他层次的代码改变。例如:当表示层中增加了一个功能,为了保证其各层设计的结构合理性,可能需要在对应的业务逻辑层和数据访问层中都增加相应的代码,从而达到最终数据的一致性。(3)整体代码编写的工作量增加。由于三层架构技术增加了层与层之间的接口,有些能够直接使用的代码现在不得不分开使用,无形中增加了代码的编写工作量。(4)增加了开发成本。原先一个整体的软件开发,现在首先必须将其分割成不同功能的层次,而且需要考虑层与层之间的连接接口,无形中增加了整个软件开发的过程和工作量,从而增加了软件开发的成本。总结总体而言,针对如今软件开发的日趋大型化、规模化的特点,三层架构技术解决了很多二层架构技术中无法解决的问题,从而真正实现了软件开发的同步性、可维护性和可扩展性,是软件开发进步的重要标志。以上就是我们深圳市组创微电子有限公司为您介绍的软件开发中的三层架构技术分析。如果您有智能电子产品的软硬件功能开发需求,可以放心交给我们,我们有丰富的电子产品定制开发经验,可以尽快评估开发周期与IC价格,也可以核算PCBA报价。我们是多家国内外芯片代理商:松翰、应广、杰理、安凯、全志、realtek,有MCU、语音IC、蓝牙IC与模块、wifi模块。我们的拥有硬件设计与软件开发能力。涵盖了电路设计、PCB设计、单片机开发、软件定制开发、APP定制开发、微信公众号开发、语音识别技术、蓝牙wifi开发等。还可以承接智能电子产品研发、家用电器方案设计、美容仪器开发、物联网应用开发、智能家居方案设计、TWS耳机开发、蓝牙耳机音箱开发、儿童玩具方案开发、电子教育产品研发。
07-26
2020
现今,计算机已经成为人们日常生活必不可少的物品。随着计算机技术的不断发展,人们对软件的要求越来越严格,对软件的开发和安全性的关注度不断加强。本文对计算机软件开发与保护技术进行总结,希望引起大众对计算机开发与软件安全应用的重视。一、计算机软件开发的安全设计随着科技水平的提高,市面上出现许多能够直接应用于程序,且设计成熟的安全性产品。安全功能产品不仅能提高整个计算机系统的统一性、整体性,而且还能构建应用程序模块,提高原有安全产品的功能,增强安全性。比如,一般情况下,安全产品不会提供数字签名的功能,但是通过安装相关的应用就能够实现该功能安全程序开发过程就是程序员将有效的安全服务模块安装在一起的过程。在软件开发的过程中,技术部门要先调查开发相关需求,再通过计算机内部建设构建安全工程方面的内部控制流程,总结流程特殊性及相应的运行参数,从而降低开发成本,提升开发效率。这种开发方案不仅能够加强软件各环节的安全性,而且还能提高系统的稳定性、可靠性。应用程序和文档管理的保密工作关键在于是否能够有效的进行输入输出和处理控制,确保输入输出数据完整性、准确性和安全性。进行交易时,为避免出现错误,需要进行数据传输及处理的程序控制,一旦发现程序出错,程序会发出错误提示和修改意见。同时,应加强对系统更正完整性、正确性的跟踪和审计,务必达到开发程序符合业务需要的要求。如果设计时出现各模块间产生矛盾或者密码模式不充分的情况,导致安全需要不能全部实现,则应对其进行取舍或选择其他安全运行机制,努力满足安全需求的可行性。二、计算机软件保护技术分析计算机软件保护技术开发的首要目的是预防、阻止不法商贩对正版软件的复制传播,其主要包括以下两个方面:一是以保护硬件为目的开发软件保护技术;二是以软件开发为目的开发软件保护技术。目前,软件保护技术应用范围广泛,包括应用软件、操作系统、驱动、网络等领域。判定软件保护技术及其产品的安全性需要进行综合评判,仅仅通过单一方面评价安全性是不可取的。2.1硬件层面(1)加密狗:加密狗是外形酷似u盘的一种硬件设备,正名加密锁,后来发展成如今的一个软件保护的通俗行业名词,其是一种插在计算机并行口上的软硬件结合的加密产品一般都有几十或几百字节的非易失性存储空间可供读写,现在较新的狗内部还包含了单片机。软件开发者可以通过接口函数和软件狗进行数据交换,即对软件狗进行读写,来检查软件狗是否插在接口上;或者直接用软件狗附带的工具加密自己EXE文件。这样,软件开发者可以在软件中设置多处软件锁,利用软件狗做为钥匙来打开这些锁;如果没插软件狗或软件狗不对应,软件将不能正常执行。虽然加密狗优点较多,但是却有便捷性较低、成本造价高的弊端,不能被大范围推广。(2)光盘、软盘。软盘、光盘均可通过在其存储空间中隐藏密钥的方式保护存入的电子信息此外,软盘具有写保护状态,可防止误写操作,也可避免病毒对它的侵害。在使用的时候最好将一些重要的软盘(如程序安装盘和数据备份盘)制成写保护状态。将写保护按钮推向里面盖住软盘左后角的孔,露出写保护按钮的方孔,软盘即可处于书写状态,软盘可接受输入记录。一个软盘可以记录存储多个文件,它同时也像录音磁带一样可以重复使用。但是,光盘、软盘保护具有两个缺点:首先,如若光盘、软盘遭到损坏,存储在其中的电子信息将无法修复。其次,专业技术强的黑客很容易判断密钥的位置,破解后进行盗版。2.2软件层面(1)序列号:序列号保护是现今最流行的软件保护方式,软件通过验证用户名与序列号之间的换算关系,确保序列号的合法性。当用户购买软件并下载到电脑上,如果想进行安装和正常使用,需要进行软件注册。用户将个人信息发送给软件公司,注册属于自己独有的私人账号,软件公司会提供给客户一个具有唯一性的序列号。客户必须准确输入序列号,并且通过验证才能使用软件全部功能。这种方式的优点是操作简捷,成本低廉,容易推广。(2)Nag窗口:软件未注册或软件的试用版经常会弹出一些提示要求注册的窗口,这些窗口被称为Nag窗口。Nag窗口在软件试用期过后,很可能屏蔽软件的正式窗口或某些具有重要功能的窗口,从而使软件不能正常使用。同时,软件可以控制Nag窗口的弹出时间和弹出次数,但由于弹窗会给用户带来不佳的印象,因而使用的越来越少。(3)时间、功能限制:对软件进行时间限制的保护方式现在比较普遍,其包括两类:一是进行单次运行时间限制,超过限定时间数据自动停止软件运行;二是进行使用次数或期限的限制。对软件功能进行限制,就是对软件中的模块功能进行处理,使用户不能正常使用,目前此项限制的效果反馈较好。(4)反反汇编:反反汇编是一种较为综合的软件保护技术,通过结合本文中提到的各种保护技术特点实施保护,效果较为理想。此种技术现在主要用于防范Cracker的动态跟踪与分析。总结现阶段,计算机技术与网络飞速发展,软件、系统程序逐渐深入我们的工作和学习之中,以后甚至可能影响到我们的衣食住行,所以对计算机软件的开发应予以高度的重视。而相对的计算机信息安全也更会够影响到我们正常的工作生活,因此对计算机软件保护技术的研究刻不容缓。以上就是我们深圳市组创微电子有限公司为您介绍的计算机软件开发与保护技术研究。如果您有智能电子产品的软硬件功能开发需求,可以放心交给我们,我们有丰富的电子产品定制开发经验,可以尽快评估开发周期与IC价格,也可以核算PCBA报价。我们是多家国内外芯片代理商:松翰、应广、杰理、安凯、全志、realtek,有MCU、语音IC、蓝牙IC与模块、wifi模块。我们的拥有硬件设计与软件开发能力。涵盖了电路设计、PCB设计、单片机开发、软件定制开发、APP定制开发、微信公众号开发、语音识别技术、蓝牙wifi开发等。还可以承接智能电子产品研发、家用电器方案设计、美容仪器开发、物联网应用开发、智能家居方案设计、TWS耳机开发、蓝牙耳机音箱开发、儿童玩具方案开发、电子教育产品研发。
07-25
2020
小型应用软件快速开发方法研究计算机由硬件与软件构成,软件是其核心,是完成计算机各种控制和操作的指令集合,硬件是保障计算机系统正常运行的各种元器件。软件又分为系统软件和应用软件,系统软件是运行在计算机硬件上的基础软件,是其他应用软件运行的基础平台,而应用软件是为了满足使用者对于计算机系统的不同需求而设计开发的具有专业性和较强应用性的程序,其最大的特点就是其应用性。软件开发是一项特殊工作,其特殊性表现在工作内容复杂且工作量大、开发时间紧张、需求不清晰、进度难保证、错误难杜绝,而且软件产品是一种逻辑产品,不具有实物特征,开发过程具有一定隐蔽性,因此,应用软件开发应严格遵循软件工程思想、建立一套严密的开发流程才能保证软件产品满足用户需求。与大型应用软件开发相比,小型应用软件开发工作量较小、复杂度可控、只需完成特定功能、应用范围窄、功能针对性强,小型应用软件只需少量开发人员或一人独立开发就能完成。一、小型应用软件开发流程软件的开发过程和技术是由软件的性质决定的。小型应用软件开发流程与大型应用软件开发流程基本类似,都应遵循软件工程思想,经过需求分析、概要设计、详细设计、编码、内部测试、软件部署、用户测试等环节才能上线使用。对大型应用软件开发而言,因其开发过程复杂、开发成本高,为确保开发的软件符合用户需求,大型应用软件开发的每个步骤都需要多人精心调研、策划、论证、确认,形成相应开发文档,而小型应用软件开发相对来说复杂度较低、工作量较小,每一个开发环节要简单并且可控,开发者对小型应用软件的全局和细节都能完全掌控,开发效率自然就有了很大提高,但开发过程中每一个环节都不能少。(如图1)二、提高小型应用软件开发效率方法2.1提高软件页面开发效率方法在开发过程中,我们主要采用VS(Microsoft visual studio2008)集成开发工具,该开发工具既适合开发C/S结构软件,也可以开发B/S结构软件,但VS工具更适合服务端程序的开发,在页面开发效率上,VS不如Dreamweaver工具来得快。为了提高系统页面开发效率,我们可以把同一个软件页面文件在VS和Dreamweaver中同时打开,并在Dreamweaver中对系统页面进行设计、修改,VS开发工具中会自动弹出该文件在其他地方已经进行修改,提示是否需要保存,我们在VS中保存该修改的文件,那么在Dreamweaver工具中设计的软件页面就能被VS开发工具识别、认可。在Dreamweaver工具中完成软件页面设计,在VS开发工具中完成服务端程序开发,我们将VS开发工具与Dreamweaver页面设计工具两者结合应用,将大大提高软件页面开发效率,从而提高应用软件开发效率。2.2提高软件开发代码编写效率方法代码编写是应用软件最终实现的基础。在小型应用软件开发中,我们在代码编写时使用有规律的变量名称,在控件命名时也使用有规律的名称来命名控,这样一方面容易查错,避免变量使用的错位、遗漏,另一方面可以对代码有规律的修改,提高编写效率。总结相较于人工操作而言,计算机的软件处理能力具有更高的效率,其质量也有了很大提高,能明显降低出错率。小型应用软件虽然规模小、应用范围窄,但它针对性强,能解决特定问题,如年终考核测评、民主推荐等小型应用软件的应用不仅能提高工作效率,同时也可以满足公平、公正、保密等方面的要求,投入与产出比高。文中提成了两种方法来提高小型应用软件的开发效率,首先是将VS开发工具与Dreamweaver页面设计工具两者结合应用,将大大提高软件页面开发效率,其次,当软件系统中使用到大量同类型控件情况下,利用Excel软件、记事本软件来自动生成的代码文本没有错误,节省代码编写和检测时间,从而提高了小型应用软件的开发效率。以上就是我们深圳市组创微电子有限公司为您介绍的小型应用软件快速开发方法详情。如果您有智能电子产品的软硬件功能开发需求,可以放心交给我们,我们有丰富的电子产品定制开发经验,可以尽快评估开发周期与IC价格,也可以核算PCBA报价。我们是多家国内外芯片代理商:松翰、应广、杰理、安凯、全志、realtek,有MCU、语音IC、蓝牙IC与模块、wifi模块。我们的拥有硬件设计与软件开发能力。涵盖了电路设计、PCB设计、单片机开发、软件定制开发、APP定制开发、微信公众号开发、语音识别技术、蓝牙wifi开发等。还可以承接智能电子产品研发、家用电器方案设计、美容仪器开发、物联网应用开发、智能家居方案设计、TWS耳机开发、蓝牙耳机音箱开发、儿童玩具方案开发、电子教育产品研发。
07-24
2020
微信官方给出的小程序的解释是:“小程序是不需要下载安装便可以使用的应用,它实现了应用触手可及的梦想,用户扫一扫或搜一下即可打开应用,也体现了用完即走的理念,用户不用关心是否安装太多应用的问题,应用将无处不在,随时可用,但又无需安装卸载。”微信小程序自2017年1月9日正式上线以来,就引起广泛关注。微信团队也不停地对小程序进行更新。微信小程序的优势十分明显,小程序触及了PC网页,公众号,H5,APP无法触及的地方,其无需安装,用完即走的理念能够满足用户需求且节省手机内存。站在小程序的拥有者的立场,其开发成本大大减小,同时可借助微信强大的流量入口,因而也降低了推广的难度。总的来说,微信小程序是一种全新的方式,能够更好地在用户和服务中建立连接,并且可以在微信中便捷地获取和传播,具有不错的使用体验。一、小程序开发前准备小程序采用了类似React Native和Weex一样的解析技术,开发者可以编写一套程序在多种客户端运行,同时,相比于公众号、微商城具有更好的原生体验。全面开放申请以后,作为企业、政府、媒体、其他组织或者个人的开发者,都可以申请并注册小程序。小程序和微信的订阅号、服务号以及企业号是并行的体系,具有独立的注册以及发布流程。1、小程序接入流程小程序的接入主要有4个步骤。(1)小程序注册:在微信公众平台官网首页(mp.weixin.qq.com)注册并提交注册信息、完善主体信息和管理员信息。(2)完善小程序信息:完善小程序的基本信息如名称、头像及服务范围等。开发前需绑定开发者并获取APP ID,以保证程序可以通过手机进行扫码测试。(3)开发小程序:下载安装微信开发者工具,微信官方提供了一套完整的开发框架,开发者可以根据微信开发文档进行小程序的开发与调试。(4)代码审核及发布:小程序开发完成后,不能够直接发布,需提交代码与开发配置信息提交审核,完成后尚可发布。2、微信Web开发者工具官方公布的微信开发工具名为微信Web开发者工具,小程序前端开发框架是微信官方提供的框架。微信Web开发工具是一种基于Native System系统层的框架,由于并不是运行在浏览器中,所以JavaScript在Web中的一些诸如Document,Window等方法均不可使用,以往HTML5在加载的时候在网络环境会有所限制,需要逐步加载HTML,CSS,JS,然后返回数据,最后渲染页面展现在浏览器中。用户总是需要等待很久,这样使得用户体验感大大降低。相比之下,小程序的两个线程:Appservice Thread和ViewThread会同时进行、并行加载,甚至Appservice Thread会更早执行,当视图线程加载完,通知Appservice,Appservice会把准备好的数据用setData的方法返回给视图线程。小程序的这种优化策略,可以减少用户的等待时间,加快小程序的响应速度。微信Web开发者工具区别于H5的开发工具+浏览器Device Mode预览的模式,而是基于自己的开发者工具,可以实现同步本地文件+开发调试+编译预览+上传+发布等一整套流程。同时小程序自己开发了一套WXML标签语言和WXSS样式语言,并非直接使用标准的HTML5+CSS3。同时提供了很多原生APP的组件,之前在HTML5中需要模拟才能实现的功能,在小程序中可以直接调用组件来实现。二、小程序的结构及其核心技术1、小程序的文件结构使用微信Web开发工具新建一个项目,框架会自动生成描述整体程序的APP和多个描述页面的page文件。完整的小程序主要组成有:一个入口文件:app.js;一个全局样式:app.wxss;一个全局配置:app.json;在页面pages下将页面安装文件夹划分,每个页面存在4个文件,分别是:视图层:wxml文件、wxss文件;逻辑层:js文件、json文件(页面配置,不是必须)。(1)app.js是控制小程序逻辑的脚本文件,app.json是小程序的配置文件,负责对小程序的全局配置。app.wxss是全局样式表,作用范围是项目的每一个页面。(2)wxml是一种类似xml格式的语言,具有数据绑定、条件渲染、列表渲染、自定义模板、事件回调和外部引用等功能。page.wxml主要通过使用基础组件构建页面结构。wxss和css格式的语言有相同之处,用于描述wxml的组件样式,page.wxss的优先级比app.json的Window高。同时,微信为小程序新增了尺寸单位rpx,rpx可以根据屏幕宽度进行自适应,rpx实际上就是系统级的rem(把页面按比例分割750份,1rpx=innerWidth/750)。page.json可以对独立定义的页面进行一些属性的设置,以满足实际需要。config.json可以设置一些个性化配置,当重新安装工具或者换一台电脑时,只要导入相同的代码包,开发工具就会自动恢复到开发这个项目时的个性化设置。JS文件主要用于用户交互、响应用户点击等。在小程序中,通过JS脚本来响应用户操作。2、小程序的框架微信小程序的开发是基于框架的,从软件设计角度来说,框架是一个可复用的软件架构解决方案,规定了应用的体系结构,阐明软件体系结构中各层次间及其层次内部各组件间的毅力关系,责任分配和控制流程,表现为一组接口、抽象类以及实例间协作的方法,是指对某一指定应用领域中的应用系统的部分设计与实现子系统的整体结构。小程序开发框架的核心是一个响应的数据绑定系统。分为视图层(View)和逻辑层(APP Service),小程序开发工具提供了视图层描述语言WXML和WXSS,以及基于JavaScript的逻辑层框架,并在视图层与逻辑层间设置了数据传输和事件系统,使得开发者能够很简单地将重心放在数据与逻辑上。处理事务逻辑的地方被称为逻辑层。在微信小程序中,所有.js脚本文件的集合构成逻辑层。逻辑层与视图层相互配合,完成数据处理及接收事件反馈。框架的视图层由WXML与WXSS编写,通过组件进行展现。对于小程序本身,.wxml文件与.wxss文件的集合构成了视图层,逻辑层处理数据之后,会发送给视图层用于与用户的交互,同时接收用户对视图层的反馈。视图层以给定的样式展现数据并反馈事件给逻辑层,数据展现是通过组件来进行的。视图的基本构成是组件。3、小程序的相关组件微信提供了一系列基本组件,可以通过使用这些基本组件组合形成来进行小程序的开发。这里说明几个比较有特点的组件。(1)<view/>和html5中的<div/>类似,是布局中最基本的一个组件,任何一种复杂的布局都可以通过嵌套<view/>组件来实现,<view/>是一个块级容器组件,默认display:block,它是盒模型,在布局过程中一般推荐display:flx的写法。(2)<textarea/>是多行输入框,与HTML中不同的是,它的值需要赋值给value属性,而不是被标签包裹,是一个自闭合标签,css动画对<textarea/>组件无效。(3)<navigator/>是页面链接,和HTML中超链接标签<a/>一样,主要进行页面跳转控制。链接的内容可以是一个字、词或者一幅图片,通过点击内容实现页面的跳转。(4)<canvas/>主要用于绘制图形,其本身是一块无色透明区域,并没有绘制的能力,仅仅是图形容器,需要调节相关的应用程序编程接口(Application ProgrammingInterface,API)来完成实际的绘图任务。4、小程序的API及其配置(1)域名配置:根据小程序提供的组件,开发者可以根据需要设计UI界面,然而小程序的一些功能就要依赖框架提供的API来实现。在使用API时,首先要对小程序进行服务器域名的配置,每个小程序都需要设定通信的域名,小程序可以跟指定的域名进行网络通信。目前支持的有HTTPS(request)、上传文件(uploadFile)、下载文件(downloadFile)和WebSocket通信。(2)常用API:1)wx.request(Object):实现小程序与开发者的服务器实现数据交互。request方法的作用是发起HTTPS请求,在小程序中,只能使用HTTPS请求而不能使用HTTP请求,一个微信小程序同时只能有5个网络请求连接。2)WebSocket:request方法是通过客户端主动向服务器发起请求,而服务器端响应返回数据来实现通信的目的。这种方法存在缺点,那就是服务器不能主动向客户端发送消息。因此要实现服务器和客户端之间的即时通信只能采用轮询的方法,而且request的Header是十分长的,为了传输一个很小的数据会占用很多的宽带。针对这种情况,开发者可以通过小程序提供的WebSocket相关API创建WebSocket,WebSocket只需要服务器和浏览器通过HTTP协议进行一个握手的动作后单独建立一条传输控制协议(TransmissionControl Protocol,TCP)的通信通道就可以进行数据的传送,实现长连接以达到通信的目的。三、小程序设计的项目发布1、小程序发布流程项目开发完成后,管理员需手动打包上传代码,填写相关配置类目并将代码提交审核,若第一次审核未通过,再次提交审核将开放提供测试的入口,该入口由开发者提供,用于微信审核人员审核微信小程序时登录。审核后手动发布即可。2、小程序上传原理管理员手动将代码打包上传是怎样实现的呢?编辑器本身是基于Web技术体系实现的。简单是说就是node+webkit,node提供给我们本地api的能力,而webkit提供给我们Web的能力,两者结合之后便可以使用JS+HTML实现本地应用程序。既然有nodejs,那打包选项里的功能就好实现了。其中ES6转ES5就是引入babel-core的node包,CSS补全是引入postcss和autoprefixer的node包,代码压缩则是引入uglifyjs的node包。结语微信小程序站在月活跃用户9亿人次的微信的肩膀上,自带流量趋势,入口多,功能简单便捷。小程序功能快速迭代,意味着围绕小程序的开发和生态工具建设将会是移动互联网的一个巨大机会。目前各行业内诸多企业单位纷纷加入了小程序开发,开通了小程序功能。虽然前段时间不少声音都不看好小程序,但小程序进行优化后,开放了很多入口,使得开发者和用户关注度不断提升。纵使一些高频和复杂应用暂时无法被小程序取代,但是一些低频应用的主要功能,只要能在小程序上实现,APP就可以完全卸载了。总的来说,微信小程序目前发展空间甚好,至于以后未来的发展仍旧不能够准确预测。以上就是我们深圳市组创微电子有限公司为您介绍的微信小程序开发技术详情。如果您有智能电子产品的软硬件功能开发需求,可以放心交给我们,我们有丰富的电子产品定制开发经验,可以尽快评估开发周期与IC价格,也可以核算PCBA报价。我们是多家国内外芯片代理商,有MCU、语音IC、蓝牙IC与模块、wifi模块。我们的拥有硬件设计与软件开发能力。涵盖了电路设计、PCB设计、单片机开发、软件定制开发、APP定制开发、微信公众号开发、语音识别技术、蓝牙wifi开发等。还可以承接智能电子产品研发、家用电器方案设计、美容仪器开发、物联网应用开发、智能家居方案设计、TWS方案开发、蓝牙音频开发、儿童玩具方案开发、电子教育产品研发。
07-23
2020
基于HTML5的Web前端APP开发伴随着互联网信息技术的飞速发展,人们的生活已经发生了翻天覆地的变化,移动互联网技术给人们的生活带来了巨大便捷和变化。现如今,只用一个智能手机在手,几乎一切问题都可以随时随地解决,吃饭、炒股、打电话、在线学习、网上购物、网上求职、游戏娱乐等等。APP的开发层出不穷,HTML5作为一种新的技术形式,最早是应用于桌面浏览器,给用户以使用浏览器却又有使用一个应用的感觉体验。现在,HTML5应用到Web前端APP的开发,极大地推动了移动互联网技术的发展。一、HTML5简介HTML5是超文本标记语言(HTML)的第五次修改,是W3C(World Wide Web Consortium,万维网联盟)与WHATWG(Web Hypertext Application Technology Working Group,Web超文本应用技术工作组)合作的结果。WHATWG致力于Web表单和应用程序,而W3C专注于XHTML2.0。二、HTML5的一些新特性(1)用于绘图的Canvas元素:本身没有绘图功能,通过JavaScript在网页上绘制2D图形。<canvas id="myCanvas1”width="300”height="200"></canvas>(2)视频video元素和声频audio元素:HTML5中解决了移动设备上音频和视频的关键问题,不需要插件,通过audio元素就可以渲染音频,用户就可以很好地聆听音乐。在video元素中加上preload=”preload”或只是preload,当用户访问页面时便可以进行视频预载,用户就可以欣赏丰富的视频。为移动APP开发带来了极大地便利,增添了更多色彩。(3)HTML5能够实现离线存储:无论互联网技术发展得多么迅速,总会有出乎意外的时候,比如因为天气或是其他原因导致网络信号不好或是网络不稳定,HTML5能够使网络应用程序离线使用,有效地解决了这个问题,为移动开发带来了便捷。(4)新的标签元素:如calendar、date、time、email、url、search和article、footer、header、nav、section。三、基于HMTL5的Web前端APP开发3.1 H5 Web App构成与分类每个应用都是由多个页面组成,而HTML5、JS代码、CSS样式构成了一个页面描述。在页面中能调用服务,实现访问后台数据库的功能,还可以通过调用本地设备API调用设备硬件能力。目前,分为三类基于移动设备的应用:Native App(原生应用),是特别为某种操作系统开发的,比如IOS、Android、黑莓等等,它们是在各自的移动设备上运行的;Hybrid App(混合应用),是原生应用和Web应用的结合体,分别采取了原生应用和Web应用的一部分,所以部分在Web上运行,部分在设备上运行;Web App(Web应用),本质上是为移动浏览器设计的基于Web的应用,它们是用普通Web开发语言开发的,可以在各种智能手机浏览器上运行。对于想要使用哪一种应用,可以结合具体情况而定,针对不同需求和开发不同类别的Web App。3.2 HMTL5技术的优势HTML5的显著优势一次开发,跨平台使用,摆脱了对平台的依赖,且很多浏览器(如Chrome(谷歌浏览器)、Firefox(火狐浏览器)、Safari(苹果浏览器)、IE(微软浏览器)、Opera(欧明浏览器)以及基于IE或Chromium所推出的360浏览器、搜狗浏览器、QQ浏览器和猎豹浏览器等国产浏览器)都支持HTML5,节省时间,提高了运行效率;并且HTML5支持手机端的跨应用切换,不需要回到桌面,用户便可以在不同的APP之间进行来回切换,如此,为人们使用APP带来了便捷,节省了时间,带来了更好的用户体验;其书写代码清晰简洁易懂并且全部都进行了加密,本地应用解密后再运行,变得更加安全,如今已经被很多公司采用,HTML5技术如已经被百度网站看中并使用,被很多人学习运用投入到生活实际,待到HTML5规范开发完成时,将成为主流。3.3基于HTML5的Web前端APP开发的发展前景从现代社会层出不穷的移动应用就知道,在这个智能手机和平板电脑等移动设备大爆炸的时代,移动优势已经成为势不可挡的趋势,不管开发什么,现如今都是以移动为主,HTML5开发技术降低了对适配终端和应用的技术门槛,跨平台跨网络,使得成本大大降低,有利于促进行业的良性发展。目前全球将有10亿手机浏览器支持HTML5,同时Web开发者的数量迅猛提升,数量将达到300万。按照互联网的发展速度,人们现在的生活方式,已经离不开网络,以后对于APP的需求变得更大,未来极有可能生活中的一切都会与智能手机,Web应用有关,一切可以在网上实行。总结如今移动互联网已经成为时代的潮流,而HTML5技术的发展将会是一种无法阻挡的趋势,虽然HTML5技术仍然在不断完善和改进中,但是在未来移动互联网的发展的大趋势下,将为HTML5的发展锦上添花,使得HTML5的发展空间更为广阔,发展前景更加光明,在目前未来的一段时间内一定是发展的主流,值得人们学习研究并应用。以上就是我们深圳市组创微电子有限公司为您介绍的基于HTML5的Web前端APP开发方法。如果您有智能电子产品的软硬件功能开发需求,可以放心交给我们,我们有丰富的电子产品定制开发经验,可以尽快评估开发周期与IC价格,也可以核算PCBA报价。我们是多家国内外芯片代理商:松翰、应广、杰理、安凯、全志、realtek,有MCU、语音IC、蓝牙IC与模块、wifi模块。我们的拥有硬件设计与软件开发能力。涵盖了电路设计、PCB设计、单片机开发、软件定制开发、APP定制开发、微信公众号开发、语音识别技术、蓝牙wifi开发等。还可以承接智能电子产品研发、家用电器方案设计、美容仪器开发、物联网应用开发、智能家居方案设计、TWS耳机开发、蓝牙耳机音箱开发、儿童玩具方案开发、电子教育产品研发。注:部分图片内容来源于网络,如有侵权,请联系删除。
07-22
2020
基于OCR技术的室内定位APP开发随着我国经济的不断发展、人民生活水平的日益提高,各种室内场所也趋向于大型化、复杂化,例如图书馆、医院、大型超市、高铁站、地下车库等,在大型室内环境下的定位需求也随之产生。不同于GPS、北斗卫星定位系统等室外定位系统,室内定位系统是移动应用领域的一大挑战。基于OCR技术的室内定位系统,是通过建立室内的标志物上的文字信息与其对应坐标的数据库,使得用户在GPS信号弱的室内,也可以享受较为精确的定位服务。通过手机上的APP对室内标志物的文字信息进行拍照,如店铺名、路牌、展品介绍等,APP中接入的OCR识别引擎会识别图中的文字信息,然后传输到服务器,在数据库中对文字信息进行检索和匹配,匹配成功后返回坐标,并在APP上以地图和坐标点的形式显示位置。一、室内定位APP的系统分析1.1定位APP系统架构软件的架构需要UI组件、UI处理组件、百度OCR引擎、高德地图SDK、数据访问组件等。UI组件用来显示用户界面,百度OCR引擎提供文字识别服务,高德地图提供地图源,软件通过数据访问组件和数据库交换信息。此外,还需考虑到通信、运行管理以及系统安全性等方面的问题。软件架构如图1所示。1.2室内定位APP主要功能模块室内定位APP主要包括6大功能模块。(1)注册模块:注册方式为手机号或者邮箱注册,点击获取验证码来验证手机号或者邮箱的正确性,防止恶意注册或错误注册。验证成功后需要设置登录密码,填写两次且两次密码相同才算注册成功,然后自动登录系统,无需再次输入账号和密码,同时系统将注册信息传输到服务器端,插入用户表中。(2)登录模块:用户需要输入账号和密码,如果不记得密码的话可以点击“忘记密码”,验证手机号或者邮箱后可以重置密码。点击登录后,登录信息会传输到数据库中进行比对,完全正确才能进入主界面。(3)设置模块:在主界面中点击齿轮图标后会进入设置界面,可以在设置中选择修改密码、地图管理、是否允许管理员进行消息推送、是否允许WiFi下自动下载最新版本软件、清除缓存以及退出登录等功能。其中,地图管理是指可以下载指定城市的地图,这样可以节省流量,不必每次打开软件后都要联网接收地图资源。(4)OCR识别模块:点击顶部搜索栏右侧的相机图标后,软件会打开系统相机进行拍照,然后自动调用百度OCR引擎进行识别,识别出的文字显示出来后,用户可以选择手动修改文字,修改好后上传至服务器,或者直接上传。(5)地图模块:使用高德提供的地图,根据服务器返回的坐标信息,在地图上显示当前位置。(6)历史记录模块:在主界面点击时钟图标后会进入历史记录界面,可以看到用户定位的记录,包括时间、地点和OCR识别的文字信息。1.3定位APP系统流程打开软件后点击搜索框右侧的相机图标,打开手机相机,拍摄照片后,系统会调用百度OCR引擎识别照片中的文字,识别失败会提示用户重新拍摄清晰的照片,识别成功后系统会将识别出的文字显示出来,让用户检查是否正确,若有错误可以选择手动修改文字,无错误则直接上传至服务器,然后在数据库中进行查询和匹配,匹配失败就会返回到拍照界面,提示用户重新选择标志物,匹配成功则会返回坐标值,然后系统调用高德地图源,显示室内地图和坐标点,一次室内定位完成。二、APP设计的主要技术2.1数据库设计本系统在服务器端的MySQL数据库中创建数据库表,根据不同的数据格式,将数据分为用户登录数据、用户行为数据以及位置坐标数据3大类进行存储。用户登录数据包括用户的登录账号和密码等信息,由于这类数据相当重要,不应以明文的方式存储在数据库中,通过使用MySQL的AES_ENCRYPT函数加密数据,因为加密后的数据比较难看,所以再使用to_base64函数转码数据,将加密后的用户信息存储在数据库中。用户行为数据包括用户使用该软件进行室内定位的时间、OCR识别出的文本、用户修改后的文本以及定位后的位置坐标。该数据内容供用户在历史记录中查看,用户可自行删除。位置坐标数据包括室内环境下特征物上的文字信息以及对应的坐标值。通过匹配用户上传的字符串,返回坐标,用于在手机客户端显示当前所在位置并在地图上进行标注。2.2调用OCR接口该软件使用百度的OCR进行文字识别,百度的OCR服务免费,不过每天有次数的限制,但对于学生项目来说够用。首先,在百度AI开放平台中进入控制台,找到文字识别的产品服务,创建应用后填写相关信息,获得AK、SK。然后,下载license文件,在项目中如果直接用AK、SK明文调用百度的OCR,很不安全,可能会被别人反编译之后获得用户的AK、SK,而license文件集成了AK、SK,放在项目中可以防止别人破解。之后,再下载百度OCR的Android SDK,添加进项目中。准备工作完成后就可以开始调用百度的OCR接口了。在需要进行识别的页面所在的文件中创建根据License文件初始化OCR实例的函数,并在onCreate()方法中调用。接下来新建一个可以存放OCR的识别方法的类RecognizeService,在onActivityResult方法中,调用刚刚新建的类的recAccurateBasic方法,此方法接收3个参数,分别是context、拍照获取的图片路径和在RecognizeService类中定义的监听接口,在onResult方法中,返回的result字符串即为识别结果的json字符串,只需要对JSON进行解析就能得到识别结果。2.3获取室内地图服务该软件使用高德提供的地图服务。在高德开放平台中进入控制台,创建应用,获取API KEY,下载Android平台下的地图SDK文件,将解压后的jar包导入工程中。开发环境配置好后,在工程的“AndroidManifest.xml”文件中添加用户KEY和所需要的权限,在布局xml文件中添加地图控件,创建地图Activity,管理地图生命周期。总结本文基于Android平台设计并开发了基于OCR技术的室内定位APP,为室内定位提供了一个新的解决方案。现阶段比较成熟的室内定位方案,是需要基础设施的,比如室内部署密集的接入点或者基站,例如各种传感器,信号接收装置,信号发射器等,成本较高,且需要维护设备。而基于OCR技术的室内定位方案的成本是很低的,并不需要各种用来定位的设备,较为麻烦的只是第一步,建立坐标库。将室内标志物上的文字信息提取出来,并建立坐标库。这的确是不小的工作量,但是随着OCR技术和人工智能技术的发展,未来可能只需用无人机将室内所有场景拍摄下来,然后系统便可以自动整理出图片并匹配其对应的坐标,导入数据库中,这样就可以大大降低工作量,甚至可以打开摄像头,通过录像的方式来实现室内的实时定位。作为一种无需传感器的室内定位方案,它可以给我们提供更多的创新想法和研究方向。以上就是我们深圳市组创微电子有限公司为您介绍的基于OCR技术的室内定位APP开发技术。如果您有智能电子产品的软硬件功能开发需求,可以放心交给我们,我们有丰富的电子产品定制开发经验,可以尽快评估开发周期与IC价格,也可以核算PCBA报价。我们是多家国内外芯片代理商:松翰、应广、杰理、安凯、全志、realtek,有MCU、语音IC、蓝牙IC与模块、wifi模块。我们的拥有硬件设计与软件开发能力。涵盖了电路设计、PCB设计、单片机开发、软件定制开发、APP定制开发、微信公众号开发、语音识别技术、蓝牙wifi开发等。还可以承接智能电子产品研发、家用电器方案设计、美容仪器开发、物联网应用开发、智能家居方案设计、TWS耳机开发、蓝牙耳机音箱开发、儿童玩具方案开发、电子教育产品研发。
07-21
2020
软件工程的出现是为了应对因为软件的需求量大量增加而出现软件开发的“软件危机”而产生的。所谓的软件工程就是借鉴传统工程的方法进行软件开发,软件工程中经典的软件开发流程包含几个阶段,分别是需求分析、概要设计、详细设计、编码、测试、运行和维护。软件工程的出现,使得研发出质量过关、成本合算的软件产品成为常态,“软件危机”的问题得到了解决,但是随着软件使用的进一步广泛,软件产品在人们生产和生活中所占的地位越来越重要,出现了新的问题,就是软件安全。而原有的软件开发的工程流程无法很好地解决软件安全问题。以原有的软件工程中的软件开发流程为基础,并参考已有的软件安全开发流程SDL,进行适当的改造,提出一种新的软件安全开发流程。一、现有的软件安全开发流程1、SDL介绍随着软件使用的普及,已经有一些有识之士对软件安全问题有所研究,并有一些可以使用的成果,在这之中,软件安全开发流程也应运而生。迄今,最为普及的软件安全开发流程是微软提出的软件安全开发周期—-SDL,这个流程的典型之处在于它把安全工作贯穿于整个软件开发的生命周期中,而且,即使仅仅是对其中的一个过程进行安全工作,也能大大提高软件的安全性。下面对SDL进行简单的说明。在一个完整的软件SDL实施过程中,一共可以分为13个阶段。(1)安全教育和提高安全意识;(2)项目启动;(3)定义并遵从设计最佳实践;(4)产品风险评估;(5)产品风险分析;(6)为客户创建安全文档,工具;(7)安全编码策略;(8)安全测试策略;(9)安全推动活动;(10)产品最终安全评审;(11)安全响应计划;(12)产品发布;(13)执行安全响应。SDL可以有效地提高软件安全性,降低软件安全问题。据微软提供的相关数据显示,使用SDL进行开发的WindowsVista所发现的安全漏洞比没有使用SDL的Windows Xp减少45%;使用SDL开发流程的sQLServer2005发现的安全漏洞比没有使用SDL的SQL Server2000减少91%。SDL具有一些明显的优势,它既可整体使用也可以在某一个阶段使用,灵活性高,而且它与一般的开发流程比较匹配,所以实用性很高。另外,SDL不仅仅适合微软的平台,还适用于多种平台;SDL有比较充分的工具支持,例如威胁建模和静态源代码分析工具;SDL属于微软开发,所应有的文档非常详细。2、SDL应用现状通过2010年在美国旧金山的RSA会议上对软件开发流程与安全结合的调查数据发现,目前的软件公司已经开始关注软件的安全问题,而且其中超过50%的调查参与者表示对SDL进行关注。但是进一步的调查数据显示,在开发过程中真正应用了SDL的参与者仅仅13%。没有使用软件安全开发流程的调查参与者也给出了自己的理由,主要是其时间成本、资源成本以及暂时的安全意识。由此看来,即使对软件安全开发流程的关注度越来越高,但是其实际使用情况仍不够理想。通过调查发现,企业规模是影响是否使用安全开发流程的重要因素之一。大企业可以承担更大的资源投入,保证安全工具和安全活动的费用,而一些中小企业对投入有一定的担忧。二、对SDL的改进有大量的数据证明,软件安全测试介入的时间越晚,所需要的付出越多。在软件发布后对安全漏洞的修复所需的成本至少是在软件设计和编码阶段就进行修复的30倍。SDL的出现正是为了解决上述问题,但是现有的SDL具有一定的限制性,为了提高SDL的适用对象,降低其经济要求,将SDL进行了适当的改造。经过改造的软件安全开发流程的核心是安全知识库,安全知识库在软件生命周期中一直有效,并起到不同的作用。为了将软件开发流程变得更加灵活,将软件开发周期简化为需求、设计、测试、维护4个阶段。在这4个阶段中,采取不同的活动来提高软件安全性。1、软件安全知识库在所改造的软件开发流程中,安全知识库是最核心的存在,它可以包含很多内容,包括产品风险库,软件安全漏洞库,软件安全开发设计规则,安全工具,甚至包括一些相应的安全知识培训。产品风险库:包括在项目开展之初的需求风险和已经评估的风险。安全工具:包括网络安全测试工具以及白盒安全测试工具。例如AppScan,Sninffer;白盒安全测试工具包括Fortify或者CheckMarx。安全知识文档:项目累积的安全经验文档或者培训文档。安全漏洞库:能够收集到的相关的产品安全漏洞,包括网络和代码级。安全设计规则:安全开发基础知识,例如编码规则。安全知识库在软件安全开发流程中的地位极其重要,在每一个开发阶段都可以使用安全知识库中的内容。2、软件开发需求阶段需求阶段的主要工作是需求收集和需求分析。在这个阶段,可以根据安全知识库的产品风险库对产品需求进行分析,把隐含安全风险的需求重新设计,或者计算针对某些功能或者过程不进行安全活动将会有多大的损失。3、软件安全设计阶段设计阶段分为概要设计和详细设计。概要设计阶段,将主要是对软件架构设计,软件模块功能定义,在这一阶段需要参考产品风险库和漏洞库,对一些已知的安全问题进行预处理,尤其是一些网络软件,面对各种广为人知的攻击手段做出相应的设计。详细设计阶段的工作主要是代码编写,这时要根据漏洞库---主要是白盒安全漏洞和安全设计规则进行编码。对于白盒安全漏洞,现在已经有比较成熟的定义,例如fortify对白盒安全漏洞的分类和定义,参考这些漏洞分类,结合已经比较成熟的保证编码质量的编码规则进行详细设计工作。4、软件安全测试阶段软件安全的测试工作,主要分为3种类型,第一种是模糊测试:这种测试的原理是向目标系统发送非预期的输入并观察结果来发现软件漏洞。一般是设置大量非正常形数据进行解析,并包含了对网络协议和不信任的访问所产生的问题代码的测试。第二种是渗透测试:这种测试是为了证明网络防御按照预期设置正常运行的一种机制。它主要用来测试网络和主机系统的操作配置以及补丁的修复程度,较多的是使用模拟攻击发现信息系统中的漏洞,发现系统的脆弱性。第三种是运行时验证:对运行中的问题进行验证,用来完成常规运行中的测试和对问题日志的分析。可以使用缺陷分类表或者风险分类表来对测试出的缺陷进行统计,使用相应的测试方法修复发现的缺陷。在这一阶段,可以大量的使用安全工具进行测试,比如网络软件的安全,使用一些渗透性测试工具进行测试(如Ac-tivePerl,Sniffer);代码级的安全测试,主要依靠一些静态测试工具和动态测试工具,比如专门代码静态安全测试的forti-fy,CheckMarx;还有一些对于软件使用环境和整体软件系统的安全测试,例如美国的安全软件nessus。现在,软件安全测试工具越来越多,已经涌现出许多成熟的或者有特点的商业的或者开源的软件安全测试工具,国内也有一些不错的软件安全工具,例如启明星辰天镜或者安华明鉴,这些都为实施软件安全的测试工作提供便利。在这一阶段,从成本考虑出发,大量的开源工具是优先考虑的。5、软件维护阶段维护阶段的工作主要是处理已经出现的安全问题并且将问题和处理方法搜集入安全知识库,为以后的软件安全开发提供知识储备。经过简化后的软件安全开发流程仅仅包括了需求、设计、测试、维护4个阶段,这4个阶段都需要使用到安全知识库,所以建立的这套流程核心仍然是安全知识库。改造后的软件安全开发流程更加灵活,可是适应不同的开发流程,一旦建立安全知识库后,也可以在不同的阶段开展软件安全开发工作,降低安全成本。总结软件安全开发生命周期的应用主要是为了减少安全漏洞和降低安全漏洞的影响。但是软件开发仅仅是基于目前最优的安全方案,新的攻击手段层出不穷,所以安全问题和软件漏洞是不可能被彻底消除的。软件安全工作现在更多的是体现在安全测试上,在软件安全开发上进行的工作仍然稀少,这与现有的软件开发流程所需成本较高,流程复杂有一定关系。通过对现有的软件安全开发流程SDL进行简化以适应中小企业的需要,也可以作为一些敏捷开发或者流程简单的开发使用。优化后的软件开发流程主要有这几个优点:开发时间更灵活,强调安全工具包括免费工具的使用,流程进行了简化,成本有所降低。以上就是我们深圳市组创微电子有限公司为您介绍的对软件安全开发流程的研究。如果您有智能电子产品的软硬件功能开发需求,可以放心交给我们,我们有丰富的电子产品定制开发经验,可以尽快评估开发周期与IC价格,也可以核算PCBA报价。我们是多家国内外芯片代理商,有MCU、语音IC、蓝牙IC与模块、wifi模块。我们的拥有硬件设计与软件开发能力。涵盖了电路设计、PCB设计、单片机开发、软件定制开发、APP定制开发、微信公众号开发、语音识别技术、蓝牙wifi开发等。还可以承接智能电子产品研发、家用电器方案设计、美容仪器开发、物联网应用开发、智能家居方案设计、TWS方案开发、蓝牙音频开发、儿童玩具方案开发、电子教育产品研发。
07-20
2020
近年来,网络社交工具应用越来越多,比如QQ、微博、微信、MSN等等,这些社交工具无疑席卷了现代社会,已经走进每个人的生活、工作和学习,教育领域也受到强烈影响。一方面,网络社交中存在大量不良信息的传播,对青少年的危害很大,严重影响学生的健康成长。另一方面,网络社交工具存在积极的有利的因素,可以促进教育教学的改革增效。比如,笔者通过调查发现微信公众号在教育领域的应用场景就越来越多,很多学校、老师尝试使用微信公众号进行教育、教学、宣传、推广工作,取得了可喜的成绩。但微信公众号在教育领域的应用目前还处于一种自发的状态,也存在很多不确定的问题。因此,兴利除弊,因势利导将网络变成一个有利于大学生成长的工具就是本项目研究所要达到的目标。一、微信公众号需求分析当前,高职院校内已经部署有网络中心、电子教室、多媒体教室和实验室等信息化教育教学环境,在这种条件下只需要再部署移动网络即可以实现移动校园内场景的学习。然后在软件环境上实现平台的搭建,可以实现学生随时随地利用自己的移动网络进行学习。通过调研发现,本项目所研究的基于HTML5和微信公众号的直播课堂需要解决一下问题:1)移动端应用,系统不需要安装,直接通过微信公众号进行访问。2)针对不同手机平台,只需开发一套。3)版本不需要时常更新,服务器更新代码,所有客户访问即可更新。4)可实现客户实时流与直播服务器传输。5)可实现直播服务器流的转发与中继。6)白板和文档演示。7)视频流、音频流、白板信息、文档信息同步。8)直播数据的云存储与云播放。9)满足轻量级的在线直播服务。二、微信公众号系统设计系统设计的主要理论依据是软件工程原理、加涅的九段教学策略、建构主义学习理论、教学传播优化原理中的重复作用和共同经验原理。根据设计需求可以将平台功能分为三大部分:教学信息发布、交流反馈、辅助平台学习。根据教学内容、教学环节、教学安排等情况可以进一步细分为:预习、讲授、复习、拓展、总结、交互和考核7个功能模块。预习:主要是让学生了解学习目标、学习重点、学习难点、学习方法等。讲授:可以是直播讲授,也可以是微课、MOOC等制作好的课程资源讲授。复习:主要是巩固重点知识,解决难点问题,加深记忆和理解。拓展:提供拓展资源,拓宽学生视野,激发学生思维,促进知识向应用转化。总结:通过提炼内容框架,让学习者掌握知识的脉络,自我评测、自主建构知识体系。考核:提供考核资源,自动组卷,自主检测,也可统一考核。交互:主要是师生间答疑解惑,学习交流,资源共享。预习、讲授、复习、拓展、总结、交互、考核等7个模块相辅相成,构成一个学习过程的完整闭环,可激发学习动机,明确学习目标,巩固学习基础,拓宽学习视野,建构学习体系,交流学习经验,共享学习资源,考核学习成效。三、微信公众号开发和应用该平台主要解决教育教学场景下的如下问题:①教学内容发布,可以在平台上发布通知、消息、学习资料,学习资料可以是文本、图片、PPT、录音、微课、MOOC、源程序等,用于学生的课前课后自主学习。②个性化设置,公众平台可以用关键字实现“对话即搜索”的服务,也可以通过用户设置,实现自动回复。③留言板管理,在平台上开辟出留言板区域,可以实现发布交流主题或者就某些问题提问、发表自己的看法,实现问题的深层次、多用户交流。④应用情况统计,如用户人数、交流主题数、点赞人数等,用图表形式展示。⑤资源管理,资源库分为教学资源库、拓展资源库、考核资源库,资源提前放置到管理库中。⑥用户管理,可以对用户进行分级、分组,用户自己也可以修改某些信息等。根据公众号和我们要求的功能,要实现需求,结合实际情况我们选择以下技术的支持。1、RTSPRTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议。该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。该协议有如下特点:①传输方式灵活,RTSP在体系结构上位于RTP和RTCP之上,可以根据网络情况选择TCP或UDP完成数据传输。②双向请求,HTTP与RTSP相比,HTTP请求由客户机发出,服务器作出响应;使用RTSP时,客户机和服务器可以双向请求。③多媒体流,RTSP是用来控制声音或影像的多媒体串流协议,并允许同时多个串流需求控制。④支持多方视频应用,允许同时多个串流需求控制可以降低服务器端的网络用量,支持多方视频应用。该技术和项目的应用场景高度契合,非常适合分布式教育应用,可实现单播和组播,现场数据和存储剪辑数据的应用。2、WebrtcWebRTC实现了基于网页的视频会议,标准是WHATWG协议。项目的最终目的主要是让Web开发者能够基于浏览器快捷开发出丰富的实时多媒体应用,而无需下载安装任何插件。①该协议功能强大,提供了视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能。②并且还支持跨平台:windows,linux,mac,android。便利的交互体验,丰富的产品功能。③支持大规模观看可以在全球范围内进行音视频高清、大规模、稳定的直播教学。④丰富的课件类型除传统的静态课件,还支持动态ppt课件。支持全格式多媒体的播放,支持本地文件直接推流,秒级打开,流畅还原。3、HTML5万维网的核心语言、标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改即为HTML5。HTML5的设计目的是为了在移动设备上支持多媒体。用HTML5的优点主要是可以进行跨平台的使用。另外,它是一种自适应网页设计技术,可以根据不同大小的屏幕,自动调整布局。正是这些优点,本项目在web技术上选择HTML5。项目完成后,经过动漫软件与教育学院软件16级和17级师生的应用验证。在实践中,通过手机等移动式设备随时进行学习,使学习不受时空的限制。在这种学习方式下,学生互动得到激励,教师利用微信公众号推送学习内容,学生参加在线讨论,帮助学生积累知识,优化知识结构,学生的学习积极性得到显著提高,学习成效显著。同时,微信公众号作为师、生、家长间有效的沟通工具,开创了一种新的交往模式,给人们之间的交往活动提供了许多便利,实现三方的有效沟通,能够及时了解和掌握学生的学习情况,并使资源通过网络实现利益最大化。平台满足各类教室的需求允许创建各类教室,支持课前暖场,现场排麦,录播课。丰富的互动功能支持各种常用的授课功能,聊天问答,桌面共享,点名签到,抽奖投票等。支持桌面,区域,程序等屏幕共享手段。服务器端录制、回放支持服务器端1080P高清录制,自动生成回放,可上传下载。针对回放亦可进行二次编辑,生成定制的录制件。开放的接口,网页互动直播全终端覆盖,支持网页和客户端,PC(MAC)和移动端。总结通过项目开发和实践应用,基于微信公众平台的直播课堂能够激发学习者的学习兴趣,可以使学习者反复练习和巩固,夯实基础,拓展提高,学习效果提升明显。实践结果表明基于HTML5的微信公众平台直播课堂简单易用,快速直连,场景多样化满足直播课堂、学术讲座、公开课等各类大规模教学场景的应用需求,是教育教学手段的有益补充,在条件允许的情况下可以推广使用。以上就是我们深圳市组创微电子有限公司为您介绍的基于HTML5微信公众号的直播课堂设计方法。如果您有智能电子产品的软硬件功能开发需求,可以放心交给我们,我们有丰富的电子产品定制开发经验,可以尽快评估开发周期与IC价格,也可以核算PCBA报价。我们是多家国内外芯片代理商,有MCU、语音IC、蓝牙IC与模块、wifi模块。我们的拥有硬件设计与软件开发能力。涵盖了电路设计、PCB设计、单片机开发、软件定制开发、APP定制开发、微信公众号开发、语音识别技术、蓝牙wifi开发等。还可以承接智能电子产品研发、家用电器方案设计、美容仪器开发、物联网应用开发、智能家居方案设计、TWS方案开发、蓝牙音频开发、儿童玩具方案开发、电子教育产品研发。
07-19
2020
软件开发项目人工成本控制流程设计与应用一、国内软件开发项目人工成本管理现状及存在的问题项目成本包括直接成本和间接成本。直接成本包括直接人工成本、软硬件采购成本、差旅费等直接费用。间接成本包括管理费用分摊等。软件开发项目中人工成本所占比重很高,管理好人工成本意义重大。人工成本等于人员工时投入乘以人员单价。对人工成本的管理,可以简化为对工时的管理。人工成本管理包含两个方面,一方面要准确估算,制定合理的成本基准;另一方面要控制成本投入,使实际成本控制在成本基准之内。目前,国内IT行业在这两个方面都还不是很成熟,存在的问题主要有如下几个方面。1.1没有统一的估算标准,估算结果偏差大整个软件行业长期以来缺乏科学的估算方法和估算标准,成本定额计算问题一直没有得到很好解决,导致在软件开发项目招投标活动中,频频出现恶意竞标现象,这已成为软件产业进一步发展的障碍。为了解决行业的迫切需求,工业和信息化部于2010年正式立项启动了《软件研发成本度量规范》制定工作,该规范将作为国家电子行业标准进行发布。该标准以快速功能点方法衡量软件功能规模,估算软件工作量,从而确定软件研发成本。尽管行业标准即将出台,但由于很多企业不了解标准内容,不掌握估算方法,在估算时仍然依据个人经验进行,估算结果千差万别。在合同签订或招投标阶段,即使用户提出了明确的软件开发项目需求,不同的供应商采用不同的估算方式,考虑不同的估算因素,产生不同的估算结果,导致同一个项目估算成本相差巨大。由于没有统一的标准,作为甲方,面对相差悬殊的合同报价,很难判断哪个供应商的估算结果和报价是接近客观事实的、合理的,哪个供应商在哄抬价格或恶意竞争?作为乙方,估算不准往往导致在预算阶段利看项目利润很高,但在决算时发现实际利润很低甚至亏本。估算不准对甲乙双方都可能造成伤害。基于不准确的估算制定的项目人工成本基准也不准。基准缺乏科学性,导致项目人工成本管理从源头上缺乏执行的严肃性。1.2管理粗放,仅做人工成本统计,但分析、控制不够一般情况下,各IT企业都统计软件开发项目投入的工时,用统计的工时作为项目人工成本预决算的参考数据,但是,很多企业仅做统计,不做分析和控制,或分析和控制很弱。之所以出现这样的现象,有几方面原因。首先,思想认识问题,即工时分析控制工作动力不足。由于估算不准,大家认为后期工时基准可以变更,进行工时分析和控制意义不大,统计一下实际投入就够了。其次,很多企业的管理还不够精益化。项目管理的精益化是需要成本的,也是管理能力水平的体现。例如,从理论上讲,在项目执行过程中,应当进行挣值分析,关注成本绩效指数,出现偏差时,立刻分析原因,进行纠正。但是,要真正做到,需要建立挣值分析模型,制定相关的制度要求,配备管理人员等。第三,信息化支持不够。如果没有信息化手段做支撑,仅通过手工方式完成工时统计分析,效率低、成本高、准确性差,即使有精益化管理思想和要求,也很难在操作层面执行。二、软件开发人工成本管理解决思路针对软件开发项目人工成本管理中存在的问题,主要解决思路是,学习掌握先进的估算方法,依据即将颁布的行业估算标准,进行科学的估算,从源头上控制人工成本基准,并在此基础上设计控制流程,在各个环节设置明确的控制点,通过信息系统保障管理思想落地实施。具体如下:(1)跟踪行业标准,掌握标准内容,在实际估算操作中应用标准,形成重视估算、尊重科学的企业文化。依据标准进行估算,将使人工成本估算更趋准确,并彻底解决甲乙双方对软件开发人工成本计算口径不统一的问题。(2)引入精益化管理手段,加强项目执行过程中的成本分析和控制。对成本的管理不是等项目结束时做分析,而是每周统计分析成本绩效指数CPI,并且与进度绩效指数SPI进行匹配分析,实时关注人工成本的使用情况。在项目结束时,要重新对软件规模进行计数统计,根据实际发生的人工工时计算企业的生产率,用于指导新项目人工成本估算过程。(3)提出人工成本管理需求,开发信息系统,使管理思想、管理流程通过信息系统进行固化和不断优化。只有通过系统实现项目预算、项目计划、工作任务包、实际填报的工作日志工时、项目进度绩效指数、项目成本绩效指数等的联动,才能使人工成本控制高效、准确、透明。三、软件开发人工成本控制流程设计(1)从项目售前阶段开始,控制估算和预算。设专岗进行工时成本审核。软件开发项目,可以采用快速功能点法,也可以采用类推/类比法,或德尔菲方法。工时专员根据事先准备的审核检查表进行审核。审核重点在于估算、预算过程的规范性及有关参数选择的合理性。(2)预算表导入项目管理系统,自动形成里程碑,作为后续控制依据。(3)项目计划导入系统,或直接在系统中拆分工作包,形成项目组员的工作计划。(4)项目组成员在系统中填报工时,由系统自动生成工时相关的各统计数据报表,如SPI、CPI、完工率、人员使用率、人员产出率等。(5)项目管理办公室QA定期分析异常数据的形成原因,发现存在的问题或风险,与项目组一起制定改进措施。(6)公司对异常数据产生的原因、问题风险等统一管理,不断改进,形成度量库和相应的数据基线,作为后续项目估算人工成本的参考,使得人工成本控制越来越科学、越来越精益。四、软件项目管理系统需实现的主要需求及技术实现4.1软件项目主要需求(1)预算表导入:根据公司的项目预算体系,针对不同合同类型,实现不同的预算模板。预算表导入后直接形成一级摘要。项目的各个里程碑、里程碑的开始日期、结束日期、工作量等全部自动形成。预算表导入的一级摘要只能由QA手工修改。如预算表变更,由QA手工修改。(2)项目计划导入:项目计划导入项目管理系统时,具体要求为:计划中的标题生成摘要,且自动将责任人设为项目经理;计划中的具体任务生成工作包,任务中的资源对应工作包资源;如计划中为虚拟人员,则导入系统时默认为项目经理;预算表生成的一级摘要不能被修改。4.2软设计技术实现人工成本控制方式在原有工时填报系统的基础上扩展实现。采用Microsoft.NET平台,B/S方式,数据库是SQLserver2000。该系统实现excel导入、导出;project导入、导出等功能。总结从跟踪行业标准、依据标准进行估算、工时专员独立审核、通过系统实现工时填报、到SPICPI定期分析、发布生产率基线和提升目标,从各个环节进行有效的人工成本控制,该方式实现了对软件开发项目人工成本控制的目标,帮助组织提升了项目管理能力和赢利能力。以上就是我们深圳市组创微电子有限公司为您介绍的软件开发项目人工成本控制流程设计与应用。如果您有智能电子产品的软硬件功能开发需求,可以放心交给我们,我们有丰富的电子产品定制开发经验,可以尽快评估开发周期与IC价格,也可以核算PCBA报价。我们是多家国内外芯片代理商:松翰、应广、杰理、安凯、全志、realtek,有MCU、语音IC、蓝牙IC与模块、wifi模块。我们的拥有硬件设计与软件开发能力。涵盖了电路设计、PCB设计、单片机开发、软件定制开发、APP定制开发、微信公众号开发、语音识别技术、蓝牙wifi开发等。还可以承接智能电子产品研发、家用电器方案设计、美容仪器开发、物联网应用开发、智能家居方案设计、TWS耳机开发、蓝牙耳机音箱开发、儿童玩具方案开发、电子教育产品研发。