软件设计范文10篇

时间:2023-03-24 02:31:03

软件设计

软件设计范文篇1

随着社会的发展,软件应用规模和应用领域的不断扩大,作为相应支撑的各种软件系统将与之相适应,使得软件开发成了一项的系统工程,而这对软件开发方式也提出了更大的挑战。基于架构的软件设计方法着重于在软件开发的设计阶段即按照业务特点及软件设计原则,在软件设计方法上采用一定的方法隔离业务关注点,设计及代码局部化,为需求变更及业务逻辑变化,采用递归分解的方法将大的业务分解,增加程序的可扩展性、可修改性,并将设计元素归类管理,在可预测范围内预留可变空间,应对需求变更及业务逻辑变化。基于架构的软件设计根据业务需求隔离关注点,它可以在可预见的范围内考虑可变性,为应对变化预留空间。信息技术的发展改变了人们的工作方式,由于软件工程管理的出现,促进了制造业等传统产业的发展,而软件开发也面临着现实的问题,即业务逻辑的易变性。如何将变化缩小到最小范围,业务功能的隔离无疑可以起到一定的作用。从另一方面讲,软件开发方式自身也存在一定的问题,开发过程中某些环节需要细化。软件架构是软件设计阶段的产物,具体地说,软件架构包含了结构、协作和技术等方面的重要决策,它对后期的软件维护,为系统的开发活动建立基础,对改动力度比较大的软件升级都起着重要的作用。现在,大多数企业都开始注重产品线的开发,完成从面向业务到面向技术的转换,因此要为整个产品线设计软件架构。一般内容是:上承业务目标、下接技术决策、.控制复杂性、组织开发、利于迭代开发和增量交付、提高质量。软件开发方法随着软件系统的规模增大而不断变化,20世纪70年代以前,软件开发基本上都是汇编程序设计;70年代中后期,软件开发中出现了概要设计与详细设计;90年代中期,是面向对象开发方法;90年代以后则是基于构件的软件开发。纵观软件体系结构技术发展过程,架构设计得到了充足的发展,并成为软件工程领域的研究热点。基于架构的软件设计方法能更好地隔离业务关注点及决策,可以更好地应对需求变更,以及更好地采用模块化设计方法。

二、基于架构的软件设计方法的理论

基于架构的设计提供了一个系统化的步骤,此方法在发展中不断在完善,用于设计概念性软件架构,包含了一些基础的理论概念,如设计元素、所采用的视图、用例及质量场景等。架构设计包括共性与可变性,软件模板与系统基础设施,架构驱动元组需求,质量属性、功能及架构模型。其中基于架构的设计关注对架构设计有影响的变化粒度,共性是指变化中的不变部分,可变性可以发生在功能、平台或环境中;软件模板与特定的设计元素相对应,包括设计元素与公共服务的交互模式、设计元素与基础设施的交互模式、自身职责功能。软件模板作用具体为有助于集成、对于系统中可重用的组件是一个库,并为构成系统架构提供基础。而对于一些质量属性建模技术,软件模板的定义决定了交互模式;架构驱动元组包括功能需求、质量属性及业务需求。架构驱动元素依赖抽象的功能需求,确定架构驱动元素要进行特定方面需求的详细调查,架构驱动元素满足了,设计就可以开始;架构模型包括组件类型集合及它们互操作模式,确定操作数量及功能的标准将会不同于驱动需求,架构风格就是实时计划策略。需求阶段结果包括功能需求、质量属性、业务需求及约束,运用基于架构的设计方法进行设计,为考虑决策跟踪,需要重新审视决策。基于架构的设计方法包括:抽象功能需求。基于架构的设计假定需求输出是抽象的功能需求,各种终端用户与特定系统相关联,理解需求间的相关性对设计来说是很重要,抽象功能的需求捕获可以对详细需求提供分类;用例。用例是终端用户与系统间互操作的具体描述;质量属性及业务目标。每个质量需求应当包括具体的输入及设想的应答,而业务目标与质量属性的区别不是很明晰。架构可选方案。方案的列举,逻辑上属于基于架构的设计阶段,它针对每,一个质量属性及业务目标,作为需求阶段的一个一输出,并将凡是满足需求的架构都应当列出来。质量场景。质量场景也可以具体化质量需求,应当对它们分优先级进行管理。约束。约束是预先指定的设计决策,约束来自于业务还是技术并没有关系,其设计过程就是做决策。很少有系统设计时无需考虑现存系统,遗留系统将影响当前系统的设计。

软件设计范文篇2

很多单片机的应用中都需要同时执行很多任务,对于这样的应用,我们可以利用实时操作系统来灵活地安排系统资源。RTX51是美国Keil公司开发的一种小型的应用于MCS51系列单片机的实时多任务操作系统,它可以工作所有8051单片机以及派生家族中,简化了复杂的软件设计,缩短了项目周期。我们实践中用RTX51来开发单片机软件。设计单片机控制的GPS接收板软件,取得了很好的效果。

2RTX51介绍

RTX51有2个模式:RTX51完全模式和最小模式。RTX51最小模式版是RTX51完全版的一个子集,可以很容易地运行在8051系统上,而不需要外部RAM(DXATA)。RTX51完全模式有4个任务优先级,可以和中断函数并行处理,各个任务之间通过使用“邮箱”系统来进行信号和消息的传递,可以从内存池中申请和释放内存;同时,可以强制一个任务停止执行,等待一个中断,或者是其它中断传来的信号量或者消息。RTX51对系统硬件的要求如表1所列。

2.1RTX51任务

RTX51区分2类任务:快速任务和标准任务。快速任务有很快的响应速度,每个快速任务使用8051一个单独的寄存器组,并且有自己的堆栈区域。RTX51支持最大同时有3个快速任务。标准任务需要多一点的时间来进行任务切换,因此使用的内部RAM相对快速任务要少,所有的标准任务共用1个寄存器组和堆栈。当任务切换的时候,当前任务的寄存器状态和堆栈内容转移到外部存储器中。RTX51支持最大16个标准任务。

RTX51任务状态:

①运行(RUNNIGN)——当前正在运行的任务处于RUNNING状态,同一时间只有1个任务可以运行。

②就绪(READY)——等待运行的任务处于READY状态,在当前运行的任务退出运行状态后,就绪队列中优先级最高的任务进入到运行状态。

③阻塞(BLOCKED)——等待一个事件的任务处于BLOCKED状态,如果事件发生且优先级比正在运行的任务高,此任务进入运行状态;如果优先级比正在运行的任务低,此任务进入READY状态。

④删除(DELETED)——没有开始的任务处于删除状态。

⑤任务切换——RTX51包含一个事件驱动的任务切换机制,它能够按照任务的优先级进行切换,也就是抢占式多任务系统;另外还有一个可选的时间片轮转切换任务模式,在时间片轮转模式下,同级别的任务是按照时间片分别占用CPU的。RTX51任务有4个优先级:0、1、2可以分配给标准任务,优先级3是为快速任务保留的。每个任务都可以等待事件的发生,而并不增加系统的负担;任务可以等待消息、信号、中断、超时事件或者它们的组合。任务切换是按照一定规则进行的,包括:进入到“就绪”状态的优先级高的任务先执行;如果“就绪”状态的几个任务是同一个优先级,那么最先进入“就绪”状态的先执行。

RTX51任务切换图如图1所示。

2.2RTX51事件

◇超时(timeout):挂起运行的任务指定数量的时间周期。

◇间隔(interval):类似于超时,但是软件定时器没有复位,典型应用是产生时钟。

◇信号(signal):用于任务内部同步协调。

◇消息(message):适用于RTX51Full,用于信息的交换。我们可以把一个消息交送到一个特定的邮箱。消息由2字节组成,可以是用户按照自己的需求定主的数据,也可以是指向数据的指针。如果邮箱的消息列表满,而且是中断发送消息,这个消息将会丢失;如果是任务发送消息,那么任务将会进入到等待状态,直到邮箱重新有了位置可以接收这一条消息。邮箱是按照FIFO的原则来管理消息的,如果几个任务都在等待接收消息,那么最先进入等待接收队列的将接收消息。一个邮箱最多可以存储8条消息。当邮箱满的时候,最多只能有16个等待任务。

◇中断(interrup):适用于RTX51Full,信号量用于管理共享的系统资源。通过使用“令牌”,允许在同一时刻只有一个任务使用某些资源。如果几个任务申请访问同一个资源,那么首先提出申请的将允许访问,其它的任务进入等待队列,直到第1个任务操作完毕,下一个任务才能继续。

Os_wait()函数挂起一个任务来等待一个事件的发生。这样可以同步2个或几个任务。它的工作过程如下:当任务等待的事件没有发生的时候,系统挂起这个任务;当事件发生时,系统根据任务切换规则切换任务。

2.3RTX51中断处理

RTX51完全模式提供2种方法来处理中断:一种是C51的中断函数,另一种是RTX51的断。它又可以分为快速任务中断和标准任务中断。对于中断函数这种方法,它同时也可以在不使用RTX51的情况下使用,当中断发生的时候,程序就跳到了相应的中断函数,它和正在运行的任务是互相独立的,中断的处理是在RTX51系统之外,和任务切换规则没有关联。对于任务中断的方法,不管使用快速是标准任务来处理中断,如果中断发生,等待中断的任务就从“等待”状态进入到就绪状态,并按照任务切换规则进行切换。这种中断处理是完全集成在RTX51的内部,硬件中断事件的处理和信号、信息的处理是完全相同的。在系统响应中断使能寄存器,这样才能遵守任务的切换规则并保证中断程序的无误进行。必须注意中断使能寄存器是由RTX51完全控制的,禁止用户手动的修改。

3应用实例

以下给出RTX51在单片机控制的GPS接收板上的应用。

(1)系统硬件组成

单片机W77E58,快速8051内核、32KBROM、1KB的XDATARAM,符合使用RTX51的硬件要求;键盘、GPS定位模块、液晶显示模块。

(2)系统软件构成

软件运

行环境KEILuVision26.20集成开发环境加上RTX51完成版。任务KEY-BOARD,监测键盘的情况,如果有按键按下,把按键的编码发更新到邮箱1,外部中断1等待接收GPS数据,并把数据存储起来,向DISPLAY任务发出信号。任务DISPLAY根据接收到的不同的信号和消息,进行处理。任务SEND-OUT,把接收到的数据进行处理,并发送出去。任务VOICE进行语音输出。

系统硬件、软件结构如图2所示。

下面给出简写的源程序:

#include<RTX51.h>//包含RTX51头文件

#defineDISPLAY0

#defineSEND_OUT1

#defineKEY_BOARD2

#defineVOICE3

voidmain(void)

{initsystem();//系统初始化

osstartsystem(DISPLAY);//启动RTX51

}

voidtask0(void)_task_DISPLAY

{os_set_slice(1000);//设置时间片大小

os_enable_isr(0);//允许外部中断0

os_creat_task(SEND_OUT);//启动SEND_OUT任务

os_creat_task(VOICE);//启动VOICE任务

for(;;){

switch(os_wait(K_SIG+K_MBX+1,255,&keyboard))//等待接收信号和键盘消息,分类处理

{display1();break;

caseEVENT_MBOX;//当从邮箱接收到数据的时候switch(keyboard)

{case''''1'''';

os_send_signal(SEND_OUT);//向任务SEND_OUT发送信号

os_send_signal(VOICE);}//向任务VOICE发送信号

…;}

…;}

}

voidtask1(void)_task_SEND_OUT//处理发送数据任务

{while(1)

{os_wait(K_SIG,255,0)//等待信号

operation_send();

}

voidtask3(void)_task_VOICE

{while(1){

os_wait_signal(K_SIG,255,0);//等待语音处理信号

voice();}

}

voidinterrupt(void)interrupt2using1

{read_gps_data(p_gps_data);//接收数据

isr_send_signal(DISPLAY);//向DISPLAY任务发信号

}

#pragmaREGISTERBANK(2)//使用寄存器组2

voidtask2(void)_task_KEYBOARSD_priority_3//设置为快速任务

{os_attach_interrupt(0);//绑定任务和外部中断0

while(1){

os_wait(K_INT,255,0);//等待中断的发生

KEY=iic_read_keyboard();

os_send_message(1,KEY,0);}//将键盘编码发送到邮箱1

}

4结论

软件设计范文篇3

关键词:高校;财务报销;软件设计

当前,随着社会生产力的不断发展,高校事业突飞猛进,财务收支水平发生了翻天覆地的变化。但这些变化一定程度上也给高校的财务管理工作带来了新的挑战。很多高校会出现这样的情况,教职工对财务报销业务不满意,认为报销单据填写困难,审批程序繁琐,财务人员报账效率低下等。所以适当改变传统的报销模式能够提高财务报销效率和公众满意度。而改变传统的报销模式首要的就是设计全新的适合时展需要,能够满足广大教职工意愿,提高工作效率的财务报销软件。

一、需求分析

(一)用户需求。这里的用户指的是高校财务报销管理系统即财务报销软件软件的直接使用者和服务对象,具体包括系统管理员、财务处工作人员、普通报账人员、各部门负责人、学校领导等。(1)系统管理员作为财务报销软件的最核心人员,负责整个系统的后台处理。他的需求是能够通过软件后台进行相关设置,包括设置账套、添加人员、分类设置权限、科目、经济分类科目设置、项目录入、额度控制等一系列具体初始化工作。可以说好的财务报销软件本身设计是一方面,优秀的系统管理员做的初始化工作是关系将来财务报销软件执行好坏的另一个重要因素。(2)财务处工作人员指除了系统管理员以外的财务处一般工作人员,日常由他们具体负责接待财务报销人员,认真审核报销票据、报销流程等是否规范,审核通过后根据网上填报信息及票据实际内容通过报销软件进行制单、办理结算,审核不通过时则负责填制报销问题汇总清单并及时反馈给报账人员。(3)普通报账人员指到财务处报账的学校的普通教师、管理人员、教辅后勤人员等。这些人跟财务处人员直接接触,活跃在报销的第一线,他们的需求是根据系统管理员设置的工号等识别信息登录网上报账系统,在已分配的权限范围内根据原始票据录入报销凭证,并提交财务审核,不再需要跑财务处报账,款项直接存入报账人员银行卡。(4)各部门负责人根据系统管理员设置的级别具有相应的审批权限,从最低级的负责本部门经费签批,到高级的负责全校某一类专项经费审批等,他们的需求是在自己职权范围内可以查看使用自己负责审批经费的报销单据,对符合规定的进行签批,可以汇总或明细查看自己负责审批经费的具体使用情况等。(5)学校主要领导。这其中包括财务处领导及学校领导,他们的需求是根据系统管理员设置的权限可以查询具体每一笔报销内容,但更必要的是通过软件可以获得他们想要的强大的分析汇总功能,可以综合查询学校某一项目支出情况,汇总分析各类收支,针对性提供各种统计报表,以便能为学校整体决策提供财务依据。(二)业务流程分析。结合时展及财务知识更新,财务报销系统的报账流程应由传统的手工审批向电子审核转变。具体思路如下:首先,普通报账人员根据购货或购买服务时取得的发票、文件资料等,进行整理并顺序粘贴工整;其次,报账人员到财务网站或学校网站报账系统中填制电子报账单,并留下相关影像资料;再次,财务处工作人员对报账人填的报账单和影像资料进行初步审核;第四,报账人员将已填写完毕并经初步审核的报账单通过网络报至相关部门负责人,相关部门负责人根据系统中影像资料及报账单进行审核,通过后进行电子签批(以前这一步的实现需要报账人员带纸质凭证实地、挨个找部门负责人亲笔签字),并加盖电子印章,报账人将纸质单据封袋投入报账单搜集箱;第五,财务处人员定期搜集报账单,通过财务报账系统上再次审核已填制的电子报账单据,无误并签批合格的直接导入账务系统生成记账凭证、办理结算付款,打印单据装订,并通过微信、短信方式告知报账人员具体付款信息,发现有误则填写问题清单,联系并反馈给报账人员。(三)报账软件功能分析。高校财务报账系统需要实现三个主要功能:(1)报账单录入。报账人员通过该节点进行报账单的录入。具体来讲,该节点应包括报账单录入、报账单管理(包括查看、修改、删除、排序、送审、状态查询等功能)。(2)单据审核。对于已送审的报销单据,在该节点进行审核,应包括审核通过、退回(附退回原因)、暂缓处理等功能。这里既包括财务人员对报销单的初审,也包括职能部门负责人对报销单据的签批过程。(3)单据处理:对于完全审核通过的报销单据在该节点进行制单、审批单打印等操作,该节点还应设置短信通知、单据状态查看、问题清单填写等功能。

二、流程设计

财务报销管理总体功能包括报销单录入、审批管理和单据处理等。财务报销管理模块大致包括四个部分。(1)报销人员报销单录入。普通报销人员登录系统后,在报销单录入界面,点击“增加”按键弹出报销单录入对话框,通过对话框,录入报销事项具体内容,包括摘要、金额、预算项目编码、报账日期和附件张数、收款单位银行账户信息等基础资料。点击“保存”按键,将上述录入结果保存。如有其他报销单需要录入,点击“增行”按键继续增加,录入完毕保存。通过“影像上传”将报销单据影像拍照上传至系统中,通过“查看”“修改”按键可以对已录入报销单进行查看和修改操作。点击“报送”按键将已录入完毕报销单送财务部门初审,点击“送审签批”将单据转至相应项目审批负责人审批。财务部门初审完成前,不能送审签批。“状态查询”可以查看报账人员送审报销单目前的审批状况。(2)审批人审批。审批人登录系统,在待审批事项界面查看待审批报销单汇总表格。双击具体单据名称,弹出报销单具体信息,包括报销人、报销事项摘要、报账金额、预算项目代码、报账日期、附件张数、收款单位银行账户信息等,审核人不可以直接修改报销人员已录入报销单,审批人审批权限包括:批准、退回、暂缓处理等。点击“批准”按键通过审批,加盖审批人电子印章,转至下一审批流程;点击“退回”按键,需要填写退回原因,填写完毕将退回给报销单录入人。(3)财务人员报账单处理。财务人员登录系统,在欢迎界面显示已审批通过的报销单汇总表格。双击具体单据可查看报销单具体信息包括报销人、报销事项摘要、报账金额、预算项目代码,报销日期、附件张数、收款单位银行账户信息等,另外还有所有审批人员电子签章,财务人员审核无误后,点击“制单”按键,直接由网上报账系统导入账务系统直接生产记账凭证,点击“审批单打印”按键,打印所有审批人电子印章,与事先取回的原始票据装订。出纳人员登录系统根据已审核制单报账单中银行账户信息办理结算。首付款成功后,点击“短信通知”按键,将结算信息发送至报账人手机。

三、结语

综上所述,高校财务管理工作在整个高校的管理工作中占据着重要地位,而适用的高校财务报销软件对于促进高校财务管理工作水平提高具有重要作用。本文根据《高等学校会计制度》,结合标准软件工程思路,通过需求分析和流程设计,对高校财务报销软件进行重新设计,将一定程度上有助于设计出优质的财务报销软件,使得财务报销过程得以简化,有效减少报账人员及财务人员的工作量,提高工作效率,达到事半功倍的效果。

参考文献:

[1]赵斌.财务报账系统的研究与实现[D].西安电子科技大学,2014.

[2]蒙焕.面向财务共享服务中心的财务报账系统设计与实现[D].上海交通大学,2014.

软件设计范文篇4

目前用作DDC的PC总线工控机(IPC)大部分工作在DOS界面上,而DOS不具有像Windows那样美观方便的图形用户接口(GUI)。生成工艺流程图等复杂图形若用程序设计语言直接编程需花费大量精力和代码,且不易修改。设计出数据文件小,占用内存少的图形编辑软件是控制界的一个研究课题。这里介绍一种生成图素数据文件的通用图形编辑软件的设计方法。

一、数据结构与数据文件格式

由于所有的操作都基本建立在图素的基础之上,故数据结构也以图素为中心。以下以圆、直线、矩形、字符串为例,其它图素类似。

1.定义所需图素

structcircle/*定义圆*/

{

intx,y,r;/*圆心,半径*/

charlinecolor,linestyle;/*圆线的颜色,线型*/

charfillcolor,fillstyle;/*填充颜色,模式*/

};

structline/*定义直线*/

{

intx1,y1;

intx2,y2;

charlinecolor,linestyle,linethick;/*线颜色,模式,粗细*/

};

structbox/*定义矩形*/

{

intx1,y1;

intx2,y2;

charlinecolor,linestyle;

charfillcolor,fillstyle;

};

structstring/*定义字符串*/

{

intx,y;

charstr[10]

charbackcolor,dir;

charstr-color,str-style;

};

.

./*定义其它图素*/

.

2.将各图素置于一条链表之中

typedefstructtagElementList

{

charElementType;/*标识元素类别*/

intElementID;/*元素标识符,在接口中用来控制其属性*/

uniontagElement{

structcirclecircle;

structboxbox;

structstringstring;

structlineline;

.

./*可在此说明其它元素*/

.

}Element;

structtagElementList*next;

}ElementList;

利用这种数据结构可在内存中形成一个图素链表,所有操作都可以此链表为基础。

3.定义几个指针,以备各种操作

ElementList*List-head.*List-end,*List-temp,*List-here;

4.定义一个全局变量,记录图素个数

staticintElementcount=0;

图形文件格式为:第一字节(char),表示整个图形的背景颜色;接下来一个字(word),对应于Elementcount,表示图素个数;后面是内存链表中每个图素的属性值。

二、图形编辑功能的实现

本软件包含的图形编辑功能主要有:作图、修改、移动、删除、复制,下面仅举几例说明实现的方法。

1.作图

以圆为例,其它图形类似。

drawcircle()

{

inti;

chars[20],c;

intcx,cy,cr;

intcls,clc,cfc,cfs;

movecursor();/*移动光标,确定圆心*/

cx=cursor-x;

cy=cursor-y;

movecursor();/*确定半径*/

cr=(int)sqrt((cursor-x-cx)*(cursor-x-cx)+(cursor-y-cy)*(cursor-y-cy);

setcolor(WHITE);

circle(cx,cy,cr);/*画圆*/

cls=selectlinestyle();

clc=selectcolor("select-line-color");

setcolor(clc);

for(i=0;i<=cls;i++)

circle(cx,cy,cr-i);

cfs=selectfillstyle();

cfc=selectcolor("set-fill-color");

setfillstyle(cfs.cfc);

floodfill(cx,cy,clc);/*填充*/

temp(ElementList*)malloc(sizeof(ElementList));

temp->ElementType=''''c'''';

temp->Element.circle.x=cx;

temp->Element.circle.y=cy;

temp->Element.circle.r=cr;

temp->Element.circle.lcolor=clc;

temp->Element.circle.lstyle=cls;

temp->Element.circle.fcolor=cfc;

temp->Element.circle.fstyle=cfs;

addtolist(temp);/*将图素加入图素链表*/

}

其中addtolist()可以如下实现:

addtolist(ElementList*Etemp)

{

if(List-head==NULL)

{

List-head=Etemp;

List-end=Etemp;

}

else

{List-end->next=Etemp;

List-end=Etemp;

Etemp->next=NULL;

}

Elementcount++;

}

2.图形的移动、删除、复制功能

以移动为例,首先用箭头键或鼠标框取要移动的区域,区域矩形的左上,右下坐标分别为(block-x1,block-y1),(block-x2,block-y2),然后移动标识矩形到要到达的地方,确定。这样标识矩形的终止位置与初始位置存在一个偏差,水平与垂直偏差分别为dl-x,dl-y。

接下来搜索内存图素链表,确定每个图素的外接矩形,判断外接矩形是否在初始标识矩形内,若在,则将该图素的坐标属性值改变dl-x,dl-y。清除图形区,根据新的图素链表作图。

图形的删除功能类似,只需将符合条件的图素从链表中清除,再修改Elementcount值即可。

拷贝图形则只需将符合条件的图素备份一个结点,修改结点的坐标属性值,再将该结点加入链表,相应增加Elementcount的值。

以下为移动图形的代码。

fnMove()

{

Rectrect;/*定义的矩形*/

inti;

selectblock();/*选择要移动的块*/

moveblock();/*移动块*/

List-temp=List-head;

for(i=0;i<Elementcount;i++)

{

getrect(&rect,List-temp);/*计算List-temp所指图素的外接矩形*/

if(inblock(rect.x1,rect.x2,rect.y1.rect.y2))

/*判断外接矩形是否在所选块内*/

change(List-temp,dl-x,dl-y);

/*改变图素的坐标属性*/

List-temp=List-temp->next;

}

clearscreeen();/*清除作图区*/

drawlink();/*依据图素链表画图*/

}

其中,change()可以实现如下。

change(ElementList*Ctemp,intdl-x,intdl-y)

{

switch(Ctemp->ElementType)

{

case''''c'''':Ctemp->Element.circle.x+=dl-x;

Ctemp->Element.circle.y+=dl-y;

break;

case''''b'''':Ctemp->Element.box.x1+=dl-x;

Ctemp->Element.box.x2+=dl-x;

Ctemp->Element.box.y1+=dl-y;

Ctemp->Element.box.y2+=dl-y;

break;

case''''l'''':Ctemp->Element.line.x1+=dl-x;

Ctemp->Element.line.y1+=dl-y;

Ctemp->Element.line.x2+=dl-x;

Ctemp->Element.line.y2+=dl-y;

break;

case''''s'''':Ctemp->Element.string.x+=dl-x;

Ctemp->Element.string.y+=dl-y;

break;

.

.

.

}

}

三、文件功能的实现

存盘时,打开文件,写入图形的背景颜色,写入图素个数Elementcount,再将内存链表中各图素的属性值依次写入文件即可。

读盘时,在内存中动态建立图素链表,将文件中的图素属性值依次放入链表中,再根据背景颜色、图素属性值在屏幕上显示图形。

存盘过程实现如下。

savefile(char*filename)

{

FILE*fp;

inti;

List-temp=List-head;

Eid=0;

if((fp=fopen(filename,"w+b"))==NULL)

{

printf("%s","Cant''''topenthefile");

exit(1);

}

fwrite(&back-color,sizeof(char),1,fp);

fwrite(&Elementcount,sizeof(int),1,fp);

for(i=0;i<Elementcount;i++)

{List-temp->ElementID=Eid;

fwrite(List-temp,sizeof(ElementList),1,fp);

List-temp=List-temp->next;

Eid++;

}

fclose(fp);

}

四、应用程序编程接口

应用程序编程接口主要功能是读图形文件并显示,对画面图素进行动态刷新。这些接口均以函数形式出现,供控制应用程序调用。

1.draw-chart(char*filename)功能:读图形文件,在内存中建立图素链表,显示图形。

2.change-chart(intElement-ID,inthow)功能:改变图素Element-ID的特性,怎样改变由how决定。该接口能方便地实现图形的动态刷新。

软件设计范文篇5

基于VXI总线虚拟仪器组建的测试系统作为测试领域里一个新的应用方向,引起了我国兵器测试界的关注,并开发应用了适合兵器行业的测试系统。本人在对基于VXI总线仪器组建的压力测试系统进行开发的过程中,由于系统要求完成多信道压力信号测试,故将使用到多个同种VXI功能模块。在VXI测试系统中,每个功能模块都相当于一个具有独立面板的传统仪器,若按该思想方法进行本测试系统应用软件设计,无疑将重复设计并使用同样的仪器面板和源代码,造l成软件的冗长。而利用计算机软件功能较好地解决了这个问题。

2压力测试系统硬件结构

根据测试任务的需要,所需的仪器模块为具有4路通道的电荷放大器模块和数据采集模块。系统硬件结构图如图1所示。系统选择了实现成本低,数据传输速率快,具有热插拔和即插即用功能等优点的IEEE-1394总线作为外挂控制计算机和VXI机箱的连接总线,相应采用HPE8491B作为零槽控制器;主机箱选用测试方便的HP公司的C尺寸6槽高功率主机箱HPE1421B;外挂计算机选用PⅡ266工业控制计算机;电荷放大器模块是自主研制开发的2通道VXI总线寄存器基的高阻抗电荷放大器模块,其增益连续可调并具有滤波功能;数采模块选用HP公司的4通道、最高采样速率为800kSa/s数字化仪HPE15644A,该模块能够满足一般兵器压力测试要求,不选用采样频率过高的数采模块,避免引入高频干扰。

3压力测试系统软件结构

VXI测试系统软件开发所遵循的基本原则是VPP规范。其中,从通用性和零槽控制器工作环境要求考虑,操作系统选用32位操作系统Windows95,I/0库选用HPVISA;数字化仪的仪器驱动程序选用商家HP公司提供的,电荷放大器则使用自行编制的符合VPP规范的仪器驱动程序;软件开发平台采用美国NI公司的面向仪器交互式C语言的LabWindows/CVI。测试系统软件的设计主要集中在用户界面设计和源代码程序编写两方面。

3.1用户界面(系统多级虚拟面板)设计

按照功能模块的应用将虚拟面板划分为一个测试系统主面极和电荷放大器设置面板、数字化仪设置面板两个子面板。

在设计电荷放大器设置面板时,由于有两块同种功能的电荷放大器模块,它们的面板完全相同,为避免用户界面的重复设计以及源代码程序的重复编写,采用的办法是:针对多个同种功能的VXI模块,制造一个公用面板,当其中之一模块被使用时,才享用该面板,不用时即释放。具体到本压力测试系统,针对两个功能相同只是逻辑地址不同的电荷放大器模块,只设计一个公用的电荷放大器设置面板。当电荷放大器a或b被使用时,该公用面板即显现为当前被使用模块的用户界面,完成对该模块硬件的参数设置。

3.2源代码程序编写

在此着重介绍如何通过源代码的编写来实现用户界面设计中的解决思想。

(1)为公用面板上各控件的回调函数添加相应的代码。并定义了公用面板的面板句柄chargepanel和仪器通道句柄chargevi。

(2)在变量定义中定义一个结构体数组:

structsystem

{Visessionhandle;

intpanel;

}device[2];

(3)在测试系统初始化过程中:

①放置公用电荷放大器设置面板CHARGE。

chargepanel=LoadPanel(0,“压力测试系统.uir”,CHARGE);

②将公用面板复制成面板名为VXIcharge_1和VXIcharge_2,面板句柄为device[0].panel和device[1].panel两块面板,分别对应电荷放大器模块a和b。d

evice[0].panel=DuplicatePanel(0,chazgepane,“VXIcharge_1”,50,80);

device[1].panel=DuplicatePanel(0,chargepane,“VXIcharge_2”,50,80);

(4)在设置相应VXI模块参数时:

①初始化相应模块(以电荷放大器模块a为例)。

Charge_init(“VXI0::224::INSTR”,VI_FALSE,VI_FALSE,&device[0].handle);

②显示相应模块的设置面板。

DisplayPanel(device[0].panel);

(5)在控制相应模块时(如复位、发送设置参数等):

①确定正在享用公用面板的模块。

Panel=GetActivePanel();

②将该模块的面板句柄及仪器通道句柄赋给公用面板中定义的面板句柄和仪器通道句柄。

for(i=0;i<2;i++)

{if(Panel=device[i].pane1)

{chazgepanel=device[i].panel;

chargevi=device[i].handle;

}}

当用户激活面板上某一控件时,程序将运行(1)中对应已写好的回调函数,从而实现对被激活模块的操作。在系统应用软件编制完成后,进行了系统软、硬件联调,并将动态压力标定装置接至该系统进行了实验.图2所示为同时采集到的四路压力信号。

软件设计范文篇6

在计算机软件的开发过程中,嵌入式实时操作系统软件所承担的功能主要有缓存、指令的执行等。这可以使计算机整体上平稳可靠的运行,也使得软件的处理效果得到保障,以此使软件的应用性能得到提升[1]。在计算机软件实际操作控制的过程中必须要实现对应用程序的控制,以以上内容为基础来对软件进行科学合理的控制。微处理器是嵌入式实时操作系统当中的核心硬件,可以实现对各项功能的处理,而且还可以有效的保护计算机当中的内部设备。

2、计算机软件设计中的嵌入式实时操作系统设计

2.1硬件设施配备。本次设计研究所采用的计算机处理器为TI公司生产的芯片,其型号为TMS320C6701型号,该处理器的工作主频为150MHz,存储器为128k双字数据存储器以及flash存储器等。计算机交互功能的实现需要借助于串行异步全双工,总数据传输接口的芯片型号为BU61580。2.2整体布局设计。关于计算机嵌入式实时操作软件系统的布局以及组织时,需要使ROM和FLASH当中存储的数据得到保障,同时也需要确保系统整体上能够可靠稳定的运行。嵌入式软件的设计与应用可以优化计算机内部软件设计[2]。当然,其主要任务是可以实现对程序命令的快速调取,从而执行相关的代码,使ROM的运行速度可以得到迅速提升,进而提升数据处理的效率。构建信息系统可用性评价机制。首先需要实施信息系统可用性评价标准初始集合;其次去除系统没有关联的因素;最后优化设计可用性评价准则,并进一步构建系统评价准则以及内容体系结构。在系统没有关联影响因素去除中主要针对的是那些重复及容易受到主观因素,去除和系统没有关联的使用场景。另外在如果在准则中发现可见性也需要对其实施去除,基于一般交互过程以及新手交互过程准则实施效率以及有效性准则分解,确保能够实现和应用场景的有效适应,因此需要去除。在准则中的防错及灵活性等的多维性,均需要注重准则单一维度准则,有助于实现可用性评价准则集合[3]。组间平均连接法的应用,有助于进行各个评价准则的二维空间坐标聚类分析,在将聚类过程谱系条件上实施可用性评价准则的相容性、操作安全性、用户支持度、功能支持度以及便捷性等的分类。首先关于安全性则也就是要提升人机交互系统的安全性,用户支持、流程支持度以及功能支持度可以对任务流程实施有效支持。优化设计同纬度可用性评价准则,对相关准则含义进一步明确。关于系统的相应分析,与其他准则集合比较,在对系统实施可用性评价准则特点分析过程中,重要的也就是安全性以及流程组织,在安全性评价过程中分为人因安全性以及操控安全性。在系统应用中需要注重实现可用性检查要素内容和可用性评价准则的相互匹配。对于各个评价准则在检查中无法全部应用,因此在可用性检查过程中,注重实现内容功能和评价准则的匹配性,积极开发相关可用性检查问题,并在此基础上构建系统可用性检查列表。在研发过程中为能够提高可用性检查列表,针对相关问题均需要实施信息系统研发人员和可用性专家的详细检查后、修改以及确认,有效防范疑问和模糊的出现[4]。2.3软件任务功能划分。在具体设计时,需要看重嵌入式实时操作软件的软件区功能划分。随着更多应用软件的投入使用,将会增加嵌入式实时操作软件的负荷,因此在实际工作中嵌入式实时操作软件能够依照实际需求进行任务划分,以此显著提升计算机软件设计的便利性。同时,嵌入式实时软件可以科学分析系统中的应用程序,并且与其他相关软件进行协调,确保其可以更可靠的运行。任务功能的划分需要遵循基本的原则,比如时间的紧迫性、周期执行性以及功能内聚性等。图1为嵌入式实时操作系统的功能设计划分:纵观各种不同的处理事件,从整体上可以把事件分为随机与周期性两种不同的类型。其中周期性的事件主要是指数据的采集、输入以及输出,同时包含解算数据指令等。系统的启动需要通过IMU来数据,然后触发应用程序,因此在任务建立时必须要首先建立起IMU周期任务,在这个周期当中需要根据IMU所传递出的信息来进行解算。随机事件包含接受与处理命令等,将其设置为最低优先级[5]。2.4调度与控制功能。嵌入式实时操作软件主要负责调度与控制,其实时性包含软与硬两个方面。其最大的不同就是软实时性当中,计算机在处理命令的过程中不可避免的会出现延迟现象,因此其对于命令的处理时间也会有弹性;但是硬实时性的处理时间就没有弹性[6]。在具体设计过程中需要考虑到这两个方面的实时性特点,从而使计算机的工作效率得到进一步的提升。如果计算机的任务比较重,一般会选择最优调度方案,提升调度和处理效率。2.5评价体系。分布式嵌入式系统是指将通过较大计算能力才能够解决的任务分装为多个小任务,之后通过消息传递的方式将任务分配到网络计算机群中实现处理,最后将计算机结果进行综合处理,从而得到最后的处理结构,实现分布式嵌入式系统评价主要通过资源分配及调度算法两方面。调度算法指的是保证分布式嵌入式计算机的优先级较高的任务能够优先被处理。资源分配主要保存存储、处理器、网络及其中的一系列外部设备,如果资源较多,那么就表示系统的能力较强。分布式嵌入式系统中的可靠性指的是通过全面考虑系统的安全性、可靠性及完整性等多种属性,提高系统在运行过程中的可靠性。可靠性的衡量主要包括多种方式,分别为设计、验证、分析及评估。分布式嵌入式系统中器件的可靠性指的是嵌入式系统在指定作业环境和时间中具备连续服务能力,其能够对计算机系统中的硬件设备服务能力指标进行全面的衡量。为了能够更加全面且准确的将嵌入式计算机自身的性能反映出来,选择的性能指标要满足以下需求:首先,能够表示某方面的特点,也就是代表原则;其次,具备全面的数据资料的支持,也就是可信原则;然后,根据自身的实际需求进行选择,也就是使用原则;最后,选择较小关联度的性能,也就是独立原则。通过上述的原则使分布式嵌入式计算机性能评价指标根据相应的属性联系创建多级递阶的层次结构,以此创建分布式嵌入式计算机的性能评估模型。

3、嵌入式实时操作系统在计算机中的应用案例分析

软件设计范文篇7

1界面设计

1.1潜油电泵选井选泵软件界面设计。软件包括基础数据、气体计算、产能预测、机组选型设计等多个部分(图1)。本文介绍产能预测部分设计功能,基础参数设置见表1。1.2产能预测界面设计。在产能预测功能区,设置1个Frame控件、7个Label控件、2个ComboBox控件、5个TextBox控件。其中,分离器配用可选,油井渗流类型包括纯液硫、油气两相渗流、油气水渗流三种类型可选,设计泵吸入口气液比由“气体计算模块”得到,预测结果包括泵吸入口压力、油层中部流压、预测油井产能三项2)。各控件的属性及参数值设置如表2所示。摘要:当前在区域小气候观测项目中,随着社会发展的需要出现了不同主题的小气候站;典型的代表有农业气象,交通气象,空气质量,湖泊生态监测等;这些小气候站的构成一般包括支架地基、供电系统、传感器组合、采集系统、传输模块及应用软件等;随着科技的发展,这些小气候站硬件方面不断采用新技术,结构和传感器也朝着一体化趋势演进;但是应用软件却没有跟随软件开发技术的更新而升级换代,还普遍停留在较旧的技术体系;软件整体功能性不强,扩展性较差,无法兼容其他厂家的设备;数据结构也缺少规范统一;针对区域站应用软件的建设情况,结合实际项目情况,充分利用分层设计、软件复用、插件开发等设计模式提出了一种架构合理、功能规范、数据统一、兼容性强的基于区域自动气象观测站的应用软件架构设计。

2应用软件的架构设计

软件架构也称为软件体系结构,是一系列相关的抽象模式,用于指导软件系统各个方面的设计[15-17]。首先,可将软件在功能上分层,各层在逻辑上可以保持相对独立,使得整个系统逻辑更加清晰,能提高系统和软件的可维护性和可扩展性。其次,在各层中遵循软件设计的基本原则即信息隐蔽性和模块独立性,设计出独立性比较强的高内聚低耦合的模块。最后,通过使用设计模式,在模块中进行逻辑设计和编码实现。设计模式包括创建型模式、结构型模式和行为型模式三大类几十种模式,常用的模式有模板方法、抽象工厂方法、策略、装饰者、观察者、访问者和组合等模式[11]。抽象工厂模式,是一种面向对象的设计模式,指提供一个创建一系列相关或相互依赖对象的接口,而无需在编码阶段指定具体实现它们的类[18-20]。本文即以分层及模块化思想为指导,采用抽象工厂设计模式,利用插件控制器等方法实现通用区域自动气象观测站系统的设计和实践应用。按照分层思想,从低往高将软件功能分为基础服务层、业务服务层、用户界面层等3个层次。按照模块化思想,在各个层次中将功能分成功能独立的模块。其中,基础服务层包括设备交互、质控警示、统一存储等3个模块;业务服务层包括统计分析、系统监控、数据交换等3个模块;用户界面层包括统一API、显示、文档知识等3个模块。如图1软件整体架构图所示。图1中的层次划分充分考虑了区域站的观测业务需要。基础服务层主要面向观测设备和主程序,是连接设备和主程序的纽带。通过该层主程序可以控制设备,与之交互,接收设备上传的数据。然后对数据进行分析和质控处理,对异常进行警示,然后提供统一的存储方式进行存放。可以看出基础层虽然仅仅实现了设备的交互和数据的处理与存储,但这是整个系统的基础部分,而对数据的进一步加工处理就由业务服务层实现。业务服务层主要完成三个工作:一是对数据加工形成统计分析报表;二是对异常数据及系统异常进行监控;三是将加工后的观测数据及系统异常对第三方进行交换分享。业务服务层立足业务需求,同时起到承上启下的作用,为用户界面层提供数据。用户界面层首先通过统一接口服务(API),可以为不同的应用类型提供数据支持。如可以是窗口桌面程序(Windows),也可以是网站应用(WebSite),还可以是移动应用(APP),不管哪种应用都可以通过该API进行数据的显示和。其次,可以将观测业务常用的小工具、小常识、经验总结等知识,文档化,格式化存储和展示给用户查看。以上,通过3个逻辑层次实现了从设备接入到基础数据解析再到数据加工和异常监控,最后再通过API的集中控制,实现了包括常见软件类型的观测数据显示和功能。2.1基础服务层基础服务层包括设备交互、质控警示和统一存储三大模块,是应用软件的基础模块。1)设备交互:面向各气象设备,采用有线或无线的方式实现软件与设备的交互,可向设备发送命令,也能接收原始数据,并将数据初步解析和转换为格式化的数据。2)质控警示:对格式化的观测数据进行气候学阈值检查,缺值处理,异常值人工订正干预,利用业务预警模型对观测值进行分析和发出报警。3)统一存储:对原始数据、订正后的格式化数据及其它加工后的数据提供统一的管理,主要包括统一数据存储,统一数据访问,统一数据缓存。存储形式可以是文件、关系型数据库等。在本层还有其它辅助类、公共操作类,方便软件复用。本层可以作为独立程序运行,推荐以服务方式运行,不需要提供界面即能完成气象设备的数据采集和处理及存储功能。其数据流程图如图2基础服务层数据流程图。从数据流程图中可以看出,设备交互模块是系统获取数据的第一入口,担负着数据接收和设备交互的工作,是此类系统的关键模块。为提高系统稳定性、适应性和可扩展性,需要此模块具备各种气象设备数据接收和处理的能力。此处采用抽象工厂模式,将与设备交互的各种方法抽象为一个设备工厂类接口,交互方法主要有建立通讯连接、接收数据,数据格式化操作,发送数据,向设备发送命令等。农业小气候站、能见度站等设备分别继承并实现这个接口,在接口内部分别根据自身数据协议实现相应方法。在软件运行阶段,程序主体即可以根据配置参数实例化不同的工厂子类,从而完成不同类型设备的通讯连接,数据接收,数据格式化及其它交互操作。抽象工厂模式实现了在编码阶段已经确定的设备类型的接入,采用插件式开发方法,可对未知设备类型的动态接入提供便利。插件式开发方法由一个插件控制器完成,插件控制器可以将系统内部实现了抽象工厂接口的设备类加载编译[21-23]。当系统中增加新的气象设备类型时,如大气电场仪,只需新建大气电场仪类实现抽象工厂接口,在主程序中增加参数配置项,重启主程序后,大气电场仪类就会被插件控制器加载然后动态编译为一个整体类库,抽象工厂实例化时就能选择到大气电场仪设备类型进行后续操作。图3中IDeviceFactory为抽象工厂接口,假设已有农业小气候站和能见度观测站,并分别实现了该抽象工厂接口。PlugController为插件控制器,当主程序运行后,会调用插件控制器,该控制器就自动把实现了抽象工厂接口的各种设备工厂类动态编译到主程序中,从而作为主程序的一部分被调用。通过插件控制的方法,可以很方便地将诸如大气电场观测设备(ElectricDevice,如图3中虚线框内所示)等设备的工厂类动态加载到主程序中。2.2业务服务层面向区域气象观测业务实际,提供切实可行的统计分析、系统监控及数据交换功能。主要包括以下三个模块。1)统计分析:提供小时、日、月极值统计,月报表分析等功能。2)系统监控:提供系统运行日志、业务日志、硬件运行情况、传感器状态、网络通讯状态等监控功能。3)数据交换:对外提供统一接入接口,可以快速接入其它外部系统的观测数据或集成设备。对外提供统一访问接口,用通用且规范的方式向外部传输数据。气象观测业务需求并不完全统一,需要根据实际情况进行开发,此处也是整个系统中变化较多的部分。但是,在系统初始建设阶段,可以考虑依据气象法规,形成标准地面气象观测规范中建议的报表格式。这样后续系统只需对规范外的特殊需求做少许改动即可。2.3用户界面层用户界面层主要面向使用用户,是联系用户与主程序的桥梁,向用户展示软件功能的窗口。在逻辑上分为以下三个部分。2.3.1显示即用户看到的最终界面。按照不同的软件技术体系可以有不同的实现方式。目前无外乎桌面应用程序、网站、移动应用及微信公众号等形式。但不管采用哪种表现形式,一般都包含以下功能要求:1)提供多种监测界面,显示实时数据、状态数据、警示信息及观测时间;2)可以查询历史数据、历史数据趋势图;3)可以查询数据统计和分析结果等;4)通过电脑屏幕、电视墙、手机或者现场显示设备显示数据功能。2.3.2统一APIAPI服务层是一组定义好的功能接口类库,通过该接口类库,可以为不同的应用界面提供功能统一、数据一致、访问规范、安全可控的数据服务。2.3.3文档知识:一个好的软件设计,不仅软件的功能强大,易用性较好,而且软件相关文档的完整性和帮助手册的易用性也要求较高。因此,在业务功能之外,强调文档知识模块很有必要。文档模块包括软件使用手册、常见问题问答。知识模块包括业务观测知识、观测技巧等知识汇总显示。与之前的基础服务层和业务服务层不同,用户界面层直接面向用户,除了实现用户需求,满足用户要求外,界面是否炫酷,操作是否易用直接影响用户的使用感受和对软件的印象评价。因此,本层除了实现以上三个模块,还采用主题技术、模版技术、开源框架等方式为用户提供风格统一,支持皮肤定制等功能。

3实验结果与分析

近年来,针对农业生产经营特点设计的区域自动气象监测站(农业小气候站)被越来越多地建设和使用。农业小气候站不仅监测要素齐全,而且还能实现实地监测和远距离数据监测。主要监测传感器有温度、湿度、风向、风速、雨量和气压等6种常规传感器,以及土壤湿度、光照度、叶面湿度和土壤水分等多种专业传感器,另外还会配置显示屏(多为发光二极管LED显示屏)以在实地实时显示采集的数据。在用户界面方面,多以GIS地图方式展示观测数据[24]。本次实验通过以下步骤和方法进行该系统设计的可行性验证。首先,通过分析农业小气候站的功能需求,确认可以采用上述方法,在该系统上通过增加“农业小气候站”工厂类,实现农业小气候观测数据的接入和分析处理。其次,参照图3,编码实现农业小气候站工厂类(Agricul-tureDevice),该类与“能见度站”(VisiDevice)工厂类类似,都继承自接口工厂类(IDeviceFactory),通过实现接口工厂类中定义的格式化数据方法和命令交互等方法即可对该代码进行编译,形成农业小气候站工厂类静态类库。然后,将编译后的类库放入主程序执行文件夹内,启动主程序后,新增加的农业小气候站工厂类即可被插件控制器自动识别和加载。当农业小气候站建设完毕,采用无线通讯方式接入到主程序中。在通电后设备会主动向主程序发起连接,主程序通过设备标识,识别出该设备。然后利用工厂实例自动找到农业小气候工厂类进行数据的解析及与设备的交互工作。自此,实现了农业小气候站的数据接入和交互。针对农业小气候站的业务应用,可以直接利用之前的用户界面实现数据的展示等功能。最后,根据前文所述软件设计架构方法,系统软件整体结构图如图4所示。图4软件整体结构图相比图1,图4给出了设备层的概念,其它从低到高依次为基础服务层、业务服务层、用户界面层。提出设备层是为了方便将硬件与软件功能整体展示,设备层不仅可以是不同厂家的农业小气候站,还可以是不同类型的监测设备,可以是一台设备独立监测,也可以多台设备进行组网监测。基础服务层实现农业小气候站的数据接入和交互,然后形成格式统一,质量完整的基础数据,并存入数据库等文件中。业务服务层从数据库中取出基础数据,然后对基础数据加工分析得到统计数据和监控等数据,最后存回数据库中备用。用户界面层利用统一API服务将各种加工后的数据提供给中心站软件、Web客户端网站及移动APP应用等使用。通过本次实验,仅需增加一个“农业小气候”工厂类,即可快速实现农业小气候观测数据的接入和处理。极大地提高了工作效率,不但降低企业的开发成本,还因为功能高度集成、功能模块化、软件复用等优势,保证了软件的开发质量和软件的稳定性,这将有利于降低软件的维护成本,同时提高企业履约能力和盈利能力。

4结论

软件设计范文篇8

(一)会计报表的作用

1.会计报表提供的经济信息是企业加强和改善经营管理的重要依据企业管理部门及决策者通过会计报表,可以全面系统地了解企业生产经营情况、财务情况和经营成果,能及时发现企业经营中存在的问题,检查分析财务计划的执行情况,迅速作出决策,采取有效的措施,改善生产经营管理。同时,利用会计报表提供的信息,为制定企业经营计划、企业经营方针等提供准确的依据。

2.会计报表提供的经济信息是国家经济管理部门进行宏观调控和管理的依据政府部门利用企业报送的会计报表提供的财务信息,及时掌握各企业单位的经济情况和管理情况,便于对企业的生产经营情况进行检查分析。国家宏观经济管理部门可以通过企业的会计报表提供的资料进行汇总分析,以掌握国家经济总体运行状况,从中发现国民经济运行中存在的问题,为政府进行国民经济宏观调节和控制提供依据。

3.会计报表提供的经济信息是投资者和债权人进行决策的依据由于债权人和部分投资者一般不能亲自参与企业的生产经营活动,不能直接获得企业经营方面的信息,因此,债权人和投资者为了进行投资等方面的决策,需要通过对企业会计报表的分析,了解企业的财务状况及生产经营情况,分析企业的偿债能力和盈利能力,从而,作出投资、融资等决策。同时,投资者通过会计报表了解企业情况,监督企业的生产经营管理,以保护自身的合法权益。

(二)会计报表的分类会计报表可以根据需要,按照不同的标准分类按照会计报表反映的内容,可分为动态会计报表和静态会计报表。动态会计报表是指反映一定时期内资金耗费和资金回收的报表,如损益表是反映企业一定时期内经营成果的报表;静态报表是指综合反映资产、负债和所有者权益的会计报表,如资产负债表是反映一定时期企业资产总额和权益总额的报表,从企业资产总额方面反映企业的财务状况,从面反映企业资产的变现能力和偿债能力。

按照会计报表的编制时间,可分为月报、季报和年报。按照会计报表的报送对象,可分为内部报表和外部报表。二、会计报表的软件设计方法实现会计电算化后,会计报表一般都采用计算机软件来实现,即整个会计报表的形成过程:采集、计算、打印均由计算机来自动完成。

根据计算机对不同报表的数据采集和报表形成的不同处理方法,会计报表的软件设计方法可分为三类:专用报表的固定化设计、专用报表的通用化设计和通用报表的设计三类。

(一)专用报表的固定化设计早期的会计电算化报表设计一般均采用此种方法。此种方法针对某个企业进行定点开发时,用专用报表的固定化设计。这种方法的设计要点是:针对某个企业报表格式固定不变,报表的数据固定单一,程序中只需将某帐簿文件的期末余额(或期末发生额)读出并输入报表文件中某行即可。其特点是:简单直观,不能通用。

(二)专用报表的通用化设计此种方法的设计要点是:报表格式固定不变,但数据来源有所不同,不同用户可以根据自己的实际需要自行定义数据来源和计算公式。其特点是:灵活机动,便于通用。

下面以资产负债表为例,详细介绍一下这种固定报表通用化的设计思想与实现方法。

1.数据结构记录号xmlhc1bs1kmh1

1流动资产

2货币资金12101+102

3短期投资21111

4应收票据31112

5应收帐款41113

6减:坏帐准备51114

7应收帐款净额634-5...

32资产总计45320+35+40+41

记录号xm2hc2bs2kmh2

1流动负债:

2短期借款461201

3应付票据471202

4应付帐款481203

5预收帐款491204

6其他应付款501209...

32负债及所有者权益总计90365+85

2.程序设计

***资产负债表自动读帐-ZCFZDZ.PRG

*初始处理

(三)通用报表的设计此种方法的设计要点是:报表格式(表头和表体)自行定义,数据来源也由用户自行定义,即不同用户可以根据自己的实际需要自行定义表格的表头栏目,自行定义数据来源和计算公式。其特点是:自行定义,自行设计。

1.通用报表的数据文件组织

(1)报表名称数据库报表名称数据库用于存放定义的报表名称、报表编号、定义的日期,通过该数据库实现会计报表的管理,即增、删、改会计报表。

(2)报表框架结构该数据库由三个字段组成:表号、标识字段和表结构内容字段。标识字段取值为:xt、lh、xw,分别表示“直接显示表头内容”、“栏号”和“直接显示表尾内容”。若标识字段各记录取值都为“xt”则可全屏幕手工制表(数据由键盘直接录入,与wps等字处理软件制表相似)。

软件设计范文篇9

现代分层技术在计算机软件设计中的应用文/郭娟自改革开放以来,我国的经济发展速度迅猛,科学技术也在不断地发展。如今已经完全进入了一个计算机网络时代,人们的生活已经离不开计算机网络技术,并且计算机技术是整个信息网络中的主要部分,其中关键技术在于计算机软件开发上,而分层技术是当前最为受欢迎的软件设计开发技术之一,在计算机领域中应用广泛,分层技术在计算机软件开发设计中能够实现更好的业务处理,可以对服务内容进行扩充。本文将针对现代分层技术在计算机软件开发设计中的应用进行分析。1.1分层技术的含义。在进行计算机软件设计开发过程中,需要对分层技术的知识理论了解清楚,才能够在设计开发过程中,充分应用分层技术,将分层技术的功能充分发挥出来。针对分层技术,其实其相关概念不仅仅在计算机技术领域当中存在,并且在物理领域也存在着分层技术的概念,但是相对而言,分层技术在计算机技术领域当中,其概念更为复杂一些。在计算机技术领域中,分层的含义是指在计算机软件开发的过程中进行分层,将软件的开发分成不同的层,每一层都拥有不一样的解决方案,并且每一层都有自己的一个工作流程,开发的每一层看似是一个个单独的模块,在等级上都一模一样的,但是它们又不是完全独立的,在各个开发层之间还存在一定的联系,从而构建成为一个系统整体。在计算机软件开发中,分层技术应用最多的部分就是软件的架构设计开发上,网络架构是整个软件开发过程中的关键。在计算机刚刚起步阶段,软件开发人员在进行开发过程中采取的网络架构搭建只是单层次的,比较简单,但是随着20世纪80年代,在计算机领域中小型数据库以及网络编程技术的发展,极大地促进了单层结构的应用,与此同时,网络技术与计算机之间的联系也推进了单层结构发展,使计算机软件的架构设计开发过程中从之前的单层结构逐渐转变成双层结构。但是随着计算机技术的不断发展,双层结构也不能够满足新型计算机数据需求,并且在计算机软件设计开发过程中,发现了很多问题,需要运用新的技术来解决这些问题,使计算机软件开发效率更高。因此,人们对分层技术越来越关注,对分层技术的研发投入的也很多。如今计算机分层技术已经成为了计算机软件开发中的最为重要的技术手段之一,在计算机软件开发过程中应用十分广泛。1.2分层技术的优点。分层技术被广泛应用于计算机软件开发的过程中,凸显出许多的优点。采用分层技术进行开发时,可以对计算机软件从功能上进行不同层次的划分,然后针对不同层级可以进行改造以及升级,将整个复杂的软件系统分解成一个一个小模块,然后对其进行修改,或者进行上下层的修改,从根本上优化整个软件。分层技术的应用使得软件不仅仅是在质量以及性能上能够达标,并且可以很大程度上节约开发时间,使开发时间更短。另外分层技术还能够保证软件运行的稳定性,使用户在使用软件时用户体验度更佳。同时分层技术还可以将之前的计算机系统进行优化和改造,使复杂的软件开发更为简化,流程更为清晰,在开发时间上消耗更少的时间,提高了效率。并且通过计算机系统的升级,使新软件的开发质量会有很大的提升,为新计算机软件的质量提供有力的保障。在计算机软件的后期维护、优化以及二次使用上,分层技术拥有特别的优势,因为分层技术可以使整个软件根据功能特性划分为一个个不同的层,然后把每一层进行接口的定义,每个接口对应不同的软件功能,然后在对软件进行维护和改造时可以根据功能接口来进行逐一优化。分层技术给计算机软件开发带来了很多的好处,应用十分广泛,深受人们的欢迎。

2分层技术在计算机软件设计中的应用

随着时代的发展,如今的社会已经进入了一个网络技术的年代,在人们的日常生活中随处可见信息网络,各个不同的领域当中都需要用到计算机,计算机已经成为当下人们工作以及生活娱乐的必备工具,人们通过对计算机中的软件的使用,可以为人们的生活提供便利以及欢乐。由于科学技术在蓬勃发展,在计算机软件的开发上,已经不再局限于以前那种简单而单一的业务处理方式,而是从不同层面可以进行全方位的业务处理。2.1双层技术在计算机软件开发中的应用。通过双层技术的应用,使计算机软件在开发的过程中不仅仅在质量上有所提升,并且在软件开发所需的时间上也有效地缩短了,提高了开发的速度以及效率。所谓的双层技术其实主要的组成部分就是客户端和服务器,由这两项来实现双层技术。首先是客户端,由名称便可以直接了解到其是客户可以直接进行操作的对象,它主要是为用户提供一个可操作的界面,并且还会进行一定的逻辑程序地处理。客户端是可以进行实质性操作的一个界面,与用户直接打交道。而服务器并不会直接和用户打交道,服务器的功能主要是将所有用户发来的消息进行一个处理以及整合,然后再将信息回传到客户端,显示给用户。在进行双层技术应用时,需要有一定的前提条件,才能充分发挥其功能。首先是需要保证计算机的服务器拥有较好的效能,并且在用户的访问量上也有所限制,如果用户的访问量太多,会导致计算机软件在实际运行中出现一系列的问题,会在访问时抛出系统错误等,并且访问数量过大,也会影响性能,使软件在运行速度上相对来说比较慢,因此就很难满足用户实质的需求,不能带给用户很好的体验。所以双层技术在应用的过程中,需要保证其服务器的效能和用户访问的数量。2.2三层技术在计算机软件开发中的应用。三层技术是在双层技术上进一步优化形成的,相比双层技术而言,三层技术的作用以及功能点会更加完善。首先,三层技术会使应用服务器数量在一定程度上提高,用户数据在计算机存储中的使用也得到了优化,具有一定的优势。计算机软件开发的过程中通过应用三层技术,能够实现计算机与用户之间信息的真正的交互,并且在信息的访问速度上也加快了不少。三层技术主要分为业务处理层次、界面层次以及数据层次,由这三个部分进行构成。首先业务处理层直接对接点就是用户的需求,核心功能就是对客户的需求进行分析,找到其中的要点,并且在需求整合清楚后,会发出请求。对于界面层而言,主要的核心功能就是搜集,因为用户的各种需求首先对接的都是界面,因此界面层可以将用户所需进行一个集中,在搜集需求后需要对数据进行一定的处理,然后将数据处理结果传递给业务处理层进行处理,主要是用户需求搜集的功能。2.3四层技术在计算机软件开发中的应用四层技术主要包含的有业务处理层、Web层、数据库层以及存储层,由这四层组合而成。四层技术是在三层技术上进行了提升,进一步完善。业务处理层主要是搜集用户的需求,并且对其进行整理,然后会发送请求到数据层。数据层主要功能是将接收到的申请进行处理,并将其发送给Web层,最后Web层会对通过程序的运行,直接反应出数据库与计算机对象的关系。四层技术相对三层技术而言更为复杂一些,但是其技术等级更高,使软件开发效率更高。2.4中间件技术在计算机软件开发中的应用。由于科学技术地不断进步,现在已经完全进入了一个信息技术的时代,数据通信以及计算机网络也在不断地发展,深入人们的日常生活中。随着计算机结技术的不断完善,出现了中间件技术,其在计算机软件的开发过程中应用十分广泛。中间件技术不同于其他层次技术,它比较独立,通过对其的应用可以将一些比较复杂的技术完全规避,使计算机软件在开发的过程中比较通畅,不会涉及过于复杂的技术,很大程度上减轻了开发的难度,使实现效率更高。中间件技术的使用具有很多的优点,首选中间件技术可以在很大程度上提高计算机软件的开发效率,与此同时,中间件技术还能够从根本上优化操作系统,应用软件和数据库之间的某种关系,另外中间件技术可以有效地保障系统运行的安全,可以降低软件在开发过程中的风险性。中间件技术的使用,能够将计算机中的各项资源有效地结合在一起,充分发挥其功能特性。另一方面中间件也具有一定的局限性,中间件服务一般都是有专门的API和协议,导致在很难实现不同厂家的产品上的相互操作。同时在开发人员在中间件服务基础上开发自己应用存在很大的风险,因为科学技术在不断地发展,开发人员重新开发软件的几率很大。2.5五层技术在计算机软件开发中的应用。针对一些比较特殊的领域,或者是一些比较复杂的计算机数据运行环境,只是运用四层技术来进行计算机软件的设计与开发往往是不足够的,需要在四层的基础上进一步将数据层分成集成层以及资源层,这可以在很大程度上提高系统的运行效率,同时还能够满足一些特殊的机械的运行需要。五层技术是对架构分工进行更为细致地分化。五层技术在J2EE环境中使用是最为广泛的,五层技术是在三层上进行扩展形成的,包括Web应用层、资源层、客户层、集成层。其中的客户层以及Web应用层就是从三层结构的表示层分化过来的。客户层即为在客户机上运行的层级,而在服务器上运行的层级就是Web应用层级。集成层以及资源层是通过数据层分化过来的,集成层主要是应用在数据持久性的访问场景中,其中包含数据库的映射系统以及事务处理之类的。资源层其实相当于数据库,是来进行数据、文件的存储。通过使用五层技术,可以形成多个组件,这些组件能够在不同的机器上进行安放。举个实例说明,一个在J2EE平台上实现的购物系统,首先用户通过浏览器看到购物系统的页面,然后在页面上进行操作,输入用户自己的需求,这就是客户端,通过客户端可以对用户进行管理和维护。SLB就是来维护整个系统的平衡,它可以将用户输入的需求,在服务器上进行分配,可以有效地扩展系统的功能服务,如果出现有Server不能够进行分配的情况时,可以采取增加Server,帮助分摊,使各个Server的基本工作量一致,从而能够有效地保证系统最佳的运行状态。HTTP服务器可以实现将动态的页面传递给客户机。应用服务器主要是实现整个购物流程的进行,其中包含对用户所购买的物品,货物清点等。

3总结

如今是信息技术的时代,社会通过计算机技术、网络技术、通信技术等各项技术的应用,有效地促进了经济的增长,同时丰富了人们的生活,提高了人们的生活品质,为人们的生活提供了便利。往后,计算机技术应用只会越来越广泛,因此对于计算机软件的开发技术需要引起人们足够的关注。现在已经出现的分层技术在计算机软件设计开发应用中,占据很重要的位置,通过分层技术的应用,使计算机软件在开发过程中降低了难度,在开发时间上也缩短了很多,并且在开发质量上也得到了很好的保障,在效率上有了很大的提升,并且分层技术的应用,也为日后计算机软件维护提供了方便,使改造和优化更为快速。分层技术还有很大的发展前景,需要人们对其进行更为深层次的研究。

参考文献

[1]吴宇.基于新时期下计算机软件开发技术应用及发展趋势的探析[J].中国新通信,2017(04).

[2]郭长江.新时期计算机软件开发技术的应用及发展趋势[J].通讯世界,2017(02).

[3]蒲灵兴.浅论新时期计算机软件开发技术的应用及发展趋势[J].电脑迷,2017(01).

[4]周兰蓉,余国清.计算机软件开发中的分层技术探讨[J].科技创新导报,2017(16).

[5]陈小英.计算机软件开发中分层技术运用的探讨[J].现代工业经济和信息化,2017(14).

软件设计范文篇10

关键词:飞机通讯寻址和报告系统;航空气象;高空风和温度预告图;C#ACARS

(AircraftAddressingandReportingSystem)是一种地-空数据链系统,该系统由飞机系统和地面系统两个子系统组成。ACARS的通信设施能够使飞机成为航空公司运营系统的子系统命令,控制和管理系统。ACARS是航空公司内部数据通信系统不可或缺的组成部分。同样可以利用飞机机载ACARS数据链通讯以及定位功能,实时跟踪飞机,监测ACARS数据链的下传报文。根据航空气象服务需要,从ACARS报文中提取数据,可以获取比一次雷达、二次雷达更丰富的数据,如:垂直高度、风速、温度等[1]。航空气象服务是民用航空运输所必需的重要组成成分之一,是航班运行安全有效保障的必要基础。本文针对目前航空气象预报所使用的主要预报资料“高空风和温度预告图”,选择ACARS报文中的气象信息来制作“高空风和温度预告图”并显示。

1ACARS数据链研究

ACARS报文主要有表1所示的几种类型。在进行ACARS报文的传输时,报文的主体组成部分最大为220个字符,大于220个字符的报文会被系统分成多个部分并分别进行传输,地面设备也会在收到所有部分的报文后再统一对这份报文进行处理。此外ACARS具有两种报文传输的物理链路:VHF链路传输和卫星链路传输。1.1ARINC标准。ACARS规则主要依据ARINC解析标准来制定,AR-INC解析标准主要文件有ARINC618、ARINC620等。AR-INC618文件重点解释了ACARS的电报结构和各组成部分的定义,其中包括全部的空/地报文的格式和其中每一个字段的信息定义。还定义了ISO-5字符集字符的授权使用范围和ACARSMU消息传递协议的优先级多模块处理和ACARS通过甚高频收发器用于音频的传输这样一个功能。ARINC620文件具体介绍了ACARS报文中地/地信息的结构和各组成部分的定义,用来向数据链路用户开发应用程序提供其所需要的信息,对数据传输服务和数据文档的使用提供了相应的指导,并且使链接服务提供商在传输信息时具有一定的标准性[3],此外ARINC620文件规定了ACARS报文的基本格式,所以当进行对ACARS报文的解析时,可以将报文的报头部分和正文部分分开并分别进行解析。1.2ACARS报文基本结构。ACARS的空/地下行报文和地/空上行报文的格式一般由报头部分、正文部分和BCS校验码部分组成。其基本结构如表2所示。ACARS地-地报文结构如表3所示。1.3高空风和温度预报图。高空风和温度预报图用来显示某一高度上的风速、风向和温度的分布情况,高度的选择为固定的标准等压面高度。在高空风和温度预告图上,风速的单位为节(Kt,海里/小时);温度的单位为摄氏度(℃);气压单位为百帕(hPa),这些数据通过风标在图中进行定位标注,不同的风速对应不同的风标,间隔为5节,风向为风标杆所指示的方向。温度显示在风标旁,并不能与风标重叠,当温度小于零度时,去掉负号直接显示数字,当温度大于零度时,在数字前加“+”或“PS”进行表示[4]。高空风和温度预告图的底图用麦卡托投影方式显示低纬度的地图,用兰勃托投影方式显示中纬度的地图,底图上还会显示所包含范围的经纬线,每隔10°进行标注并显示经纬线的信息[5]。

2基于ACARS数据的航空气象应用软件设计

2.1软件设计流程。软件设计思路如图1所示。2.2软件运行实验分析。所使用的ACARS接收机实时接收200海里范围上空的ACARS信息,并将其按照飞机注册号显示在不同日期的数据库中。所接收的报文将在数据库中保存一个月的时间,直至下一月的同一日期新的ACARS报文将其覆盖更新,数据库如图2所示。在编程环境中,通过数据库AcarsData.Edmx.组建远程连接到数据库,可以方便快捷的获得实时的ACARS数据,进行高空风和温度预告图的制作。(1)运行软件,显示软件窗口,如图3所示。(2)选择要查看的高度,按高度提取数据,可供选择的高度如图4所示。(3)通过“选择时间”窗口,可以选择高空风和温度预告图显示的时间范围。然后点击显示图像,生成所选高度的高空风和温度预告图。如图5所示。(4)除此之外,还可以通过选择提取所有,获得当天所有ACARS数据。如图6所示。通过软件运行得知,该软件能够将接收到的完整的正常报文中的数据顺利提取出所需要的数据,并显示在软件的表格中,并通过其中所需要的信息制作而成了高空风和温度预告图,因此达到了论文开题时的要求。但是由于本软件制作所使用的ACARS数据来自于实验接收机,使得ACARS数据的来源只能是小范围内的区域,所制作而成的高空风和温度预告图也只有这一小块区域有气象信息。因此,想要制作一幅完整的高空风和温度预告图,需要更广泛的ACARS基站去接收更多的ACARS报文。

3结束语

ACARS航空气象数据精准度远高于传统气象观测数据。从ACARS报文中提取航空气象数据,不仅提高了气象数据的准确性,而且提升航空气象数据更新频率,从而使得高空风和温度预告图中的风温信息更加准确可靠。由于大部分的ACARS报文是飞机在飞行航线中由机载ACARS设备发出,所以报文中的气象信息具有地域性、实时性、关联性、环境适应性等特点,具有较高社会经济价值和科研价值。此外,报文中的气象信息大多来自于飞机所飞行的高度层,所制作的高空风和温度预告图可通过软件进行不同高度的选择,告别了以标准等压面高度为选项的传统选择方式,从而可以使高空风和温度预告图的高度选择更加灵活,查询更加方便。随着ACARS与ADS-B的应用融合,可通过实时收集航空气象数据,制作一个实时更新且2D/3D立体化的航空气象数据观察软件,为航空气象决策提供辅助性帮助。

参考文献:

[1]张召悦,韩邦村,高春燕.基于数据融合的ADS-B/ACARS空域监视系统设计[J].航空计算技术,2013,43(04):91-94.

[2]新一代高空气象探测系统综合业务观测手册[S].北京:中国气象局,中国气象局气象探测中心,2011.

[3]ARINCspecification620-6,Air/groundcharacter-orientedpro-tocolspecification[S].Annapolis:ARINC,2007,11-39.

[4]AP-117-TM-02R1,民用航空气象地面观测规范[S].北京:中国民用航空局,2012.