应用服务程序设计(共12篇)
应用服务程序设计 篇1
驱动程序运行在内核模式, 不能主动调用用户模式下的程序[1]。应该设计一个程序, 用来调用驱动, 并根据驱动传来的遥控器按键信息, 调用其他应用程序。我们设计的系统中, 是将遥控器按键信息发送给外部的核心操作引擎程序, 由其具体完成相应操作。为了方便使用, 将驱动调用程序做成一个Windows下的服务, 使用UDP协议与核心操作引擎程序等外部进程通信, 使用UDP协议也容易通过网络进行远程操作。
一、系统设计
服务主程序中判断服务运行状态, 线程中负责与驱动程序通信, 并与其他进程进行UDP通信。程序开启中断读操作, 读取按键信息。中断读操作中, 使用异步方式在循环中不停发送获取按键信息的命令, 直到收到停止中断读信号。程序将获取的按键信息, 通过UDP通信, 发给其他进程。系统整体流程图如图1所示。
二、应用程序与驱动程序的通信
应用程序与驱动程序进行通信时, 先使用CreateFile函数打开设备, 然后使用DeviceIoControl与驱动程序进行通信, 包括读和写两种操作。传送的自定义命令使用宏CTL_CODE定义。应用程序的开发环境为Microsoft Visual Studio 2008, 语言为Visual C++。
2.1CreateFile
CreateFile函数不但可以创、打开Windows系统中的文件, 还可以打开管道对象和串口、并口、网络等设备设备。在此使用CreateFile函数打开USB设备。
如果调用成功, 则返回文件或设备句柄。
创建的U S B设备在系统中的符号链接名称为.DDDRC-1.0, 创建的句柄使用异步操作, 这样不必等待。具体代码如下:
2.2CTL_CODE宏
CTL_CODE用于产生一个唯一的32位大小的系统I/O控制代码 (I/O control code, 简写为IOCTL) 。IOCTL值的意义是由驱动程序指定的, 系统根据参数来判断驱动中的操作, 一般为了方便操作, 会在驱动中和应用程序中都定义了同样的名称。宏CTL_CODE的语法定义如下:
DeviceType, 设备类型, 16-31位。微软公司保留使用0-32767, 32768-65535被原始设备制造商 (OEM) 和独立硬件供应商 (IHV) 保留使用。在此我们使用的值为FILE_DEVICE_UNKNOWN (0x00000022) 。
Access, 访问限制, 14-15位。访问限制有FILE_A N Y_A C C E S S表明用户拥有所有的权限, F I L E_READ_DATA表明权限为只读, FILE_WRITE_DATA表明权限为可写, FILE_WRITE_DATA|FILE_READ_DATA表明权限为可读可写。我们使用的都是FILE_ANY_ACCESS。
Function, 功能代码, 2-13位, 用来区分操作类型。0-2047被微软公司保留使用, 2048-4095被OEM和IHV保留使用。系统中使用了自定义代码0x8000-0x8004。
Method, I/O访问内存时缓冲方式, 第1位。有四种类型:
METHOD_BUFFERED表明输入输出都用系统缓冲, 这种策略下输入输出指向的是同一个内存块, 该内存块由IO Manager管理。输入的时候把数据拷贝到缓冲中, 然后缓冲再拷贝到驱动;输出的时候数据拷贝到缓冲中, 然后缓冲拷贝到用户空间。
METHOD_IN_DIRECT表明输出用缓冲, 输入用直接IO。这种策略下输出和上面的方法一致, 而输入则是直接访问指定的内存区域, 不通过缓冲。
METHOD_OUT_DIRECT表明输入用缓冲, 输出直接IO。
METHOD_NEITHER表明输入输出都不用缓冲。
2.3DeviceIoControl
应用程序可以通过API函数DeviceIoControl来实现对设备的访问——获取信息, 发送命令, 交换数据等。利用该接口函数向指定的设备驱动发送正确的控制码及数据, 然后分析它的返回结果。
设备句柄用来标识访问的设备。发送不同的控制码, 可以调用设备驱动程序的不同类型的功能。在头文件winioctl.h中, 预定义的标准设备控制码, 都以IOCTL或FSCTL开头。向驱动程序发送的自定义命令, 都通过CTL_CODE进行定义。如果调用成功, 返回值非0。
获取驱动程序版本时, 只需要输出缓冲区, 其调用代码如下:
GET_DRIVER_VER是CTL_CODE定义的自定义命令, 成功执行后, 版本信息会存放到pDervierVer指向的缓冲区中。
开启中断读操作时, 不需要输入缓冲区和输出缓冲区, 其调用代码如下:
中断读取按键信息时, 只需要输出缓冲区, 其调用代码如下:
读取到的按键保存在缓冲区pKeyBuf中。
三、UDP通信
使用UDP协议进行按键信息传送时, 接收端程序必须开启UDP服务器端, 监听相应端口, 并处理接收到的数据。发送端只需要不停发送按键信息即可, 不需要服务器的响应。UDP通信方式实现上比较简单, 客户端操作分为初始化UDP客户端和发送数据两个部分。
初始化部分, 需要建立套接字 (socket) , 设置好服务器地址、端口。
四、注册服务
应用程序只读取按键并发给其他程序, 不需要客户界面, 不需要用户干预操作。为了便于使用, 制作成为Windows的服务。服务是一种标准的Windows应用程序, 使用服务控制管理器 (Service Control Manager, SCM) 加以控制并且监视应用程序的执行。服务程序以控制台程序的形式编写, 入口函数是main () 。服务的入口函数在程序中定义, 由操作系统调用。
4.1 服务的入口函数
服务程序由三部分组成:main () 、ServiceMain () 、Handler () 。其中main () 函数是服务程序的入口函数 (也可能是WinMain) , ServiceMain函数和Handler函数是定义的回调函数, 具体名称可以自行定义。ServiceMain函数用作服务的入口函数, Handler函数用来接收和处理SCM的控制消息。
服务能被调用, 首先需要告诉操作系统服务的入口函数在哪。服务程序的入口函数中初始化一个SERVICE_TABLE_ENTRY数组, 这个结构记录了这个服务程序里面所包含的所有服务的名称和服务的入口函数。然后主函数main () 应立即调用StartServiceCtrlDispatcher来注册服务的入口函数。成功注册后, SCM就可以在服务启动的时候调用服务的入口函数ServiceMain。在入口函数RCServiceMain中, 调用RegisterServiceCtrlHandler完成Handler函数的注册。
4.2 服务的安装和卸载
服务的安装与卸载主要是用到了四个函数OpenSCManager、CreateService、ControlService和DeleteServices。OpenSCManager用于打开服务控制管理器;CreateService用于创建服务;OpenService用于打开已有的服务, 返回该服务的句柄;ControlService用于控制已打开的服务状态;DeleteService用于删除指定服务。
五、结束语
驱动程序运行在内核模式, 不能主动调用用户模式下的程序。应该设计一个程序, 用来调用驱动, 并根据驱动传来的遥控器按键信息, 调用其他应用程序。我们设计的系统中, 是将遥控器按键信息发送给外部的核心操作引擎程序, 由其具体完成相应操作。为了方便使用, 将驱动调用程序做成一个Windows下的服务, 使用UDP协议与核心操作引擎程序等外部进程通信, 使用UDP协议也容易通过网络进行远程操作。
摘要:本文设计的驱动程序通过对运行在后台的服务程序的调用, 实现对用户透明。主要介绍了所完成的应用服务程序的开发, 包括驱动程序的调用、UDP通信和服务程序。驱动程序的调用是文章的重点, 进行了详细介绍。
关键词:驱动程序,UDP通信,服务程序
参考文献
[1]杨珺.基于Win2000下的WDM驱动程序探究[D].天津大学, 2005.
应用服务程序设计 篇2
魏 勇
(北京工业大学 计算机学院 , 北京 100022)
摘 要 本文是作者为 SEL System公司开发基于RDP的声音服务终端程序(Terminal Server)的总结,这个程序是建立在Microsoft 未公开的RDP协议之上的。文中
描述了程序设计中遇到的各个方面,特别是针对声音数据数据量大的特点提出了我们的解决方法,这些方法也适用于其他的类似场合,具有一定的普遍意义。
关键字 RDP , 声音, DirectX,DirectSound COM , 环缓冲(ring buffer)
1 Remote Desktop Protocol (RDP)
RDP (Remote Desktop Protocol) 是微软根据ITU (International Telecommunications Union) 的T.120协议族制订的一套未公开发表的数据传输协议,是终端服务器 (Terminal Server) 和客户端之间的通信协议,它使得远程用户可以使用键盘和鼠标通过网络在应用程序之间进行通信。
RDP的目的是把NT/终端服务器上的显示等数据信息平滑地传送到客户端。这里的客户端可以是使用各种系统的不同结构的PC或non-PC设备,如运行UNIX 、Linux 、DOS等各种不同OS平台的计算机。通过RDP协议客户端的计算机可以与远程服务器上正在运行的`服务程序进行交互以获得相应的服务。
RDP的体系结构支持多点数据传输,能够实时地将数据从终端服务程序传送到各个客户点。RDP的数据传送使用的是一种栈
(stack),和通用的OSI七层模型相似。从服务方发送的数据顺序通过各层协议栈,形成网络包,最终通过网络送达终端客户;从终端客户发来的数据则以相反的顺序送达服务程序端。
设计服务——当代设计观念的转变 篇3
关 键 词:设计观念 设计行为 设计服务
1.概述
在人类社会演进过程中,人类的各种活动,尤其是劳动生产活动,总是依循着生产力发展的基本法则,以及人类自身发展的时代特征来进行。
设计行为,也是一种劳动生产活动。本文在在探讨设计观念的转变,也是在探讨这种人类活动的转变,因此不只局限于设计专业领域本身,而将其置于整个社会化大生产、市场经济为主导的大的经济环境中来分析、探讨。其目的是通过这样的探索过程,寻求到符合国情特色、以及当代中国经济发展特点的具有发展眼光的设计观。
强调设计服务是当代设计观念转变的一个要点,也符合我国设计行业发展的客观需求。本文将通过时代背景、专业发展的沿革、当前设计行业发展所面临的问题与挑战等,就当代设计观念转变的必须性和必然性进行阐述。
2. 设计观念发展影响因素
2.1时代及社会特征
纵观近现代及当代的生产力发展史,时代特征对于设计观念的影响深远。例如第一次工业革命中,在蒸汽机的推动下,西方资本主义国家开始进入工业社会,产品实现批量生产,设计与制造开始出现分工;第二次工业革命,电力的运用及内燃机的发明,进一步实现了科学与技术的紧密结合,便造出多种新产品,电灯、汽车、飞机等都具有划时代的意义,西方国家率先进入电气化时代。 两次工业革命期间,出现了包括现代主义在内的多种设计思潮,如工艺美术运动、新艺术运动、芝加哥学派、包豪斯学派等。他们都倡导着西方文明的价值观。
而第三次工业革命产生了计算机技术、航空技术、原子能应用、生物技术应用等。特别是基于计算机技术产生的数字技术及信息网络技术,在全球范围内,深远地影响了全人类。目前人们所处的时代,与过去最深刻的变化在于:这是一个虚拟与现实并重的时代。伴随着互联网越来越深的渗透,人们的生活方式、生存状态都发生了前所未有的变化。几次由于生产力变革引发的产业革命,显示出鲜明的时代特征,也影响着着设计的理论及观点。
2.2国家发展方略的支持
但凡设计业发达的国家,从国家相关政策的制定上,都非常关注设计作为社会大生产中的一个产业部分,并强调其价值,对其进行一系列的扶持与鼓励。事实证明这样的政策支持,对设计行业的发展促进是影响巨大的。
上世纪80年代以来,众多发达国家将设计的地位提升到国家发展的核心层面:美国提出“设计美国”的口号,日本实施“设计立国”的战略,新加坡进行“设计新加坡”的计划,韩国成立设计振兴院(KIDP)等。通过一系列的战略层面对设计的重视,上述国家的设计行业蓬勃发展,其设计理念及实践的更新也更为积极,为本国的经济增长作出令人瞩目的贡献。
2.3先进科学技术的支持
在新技术支持下的设计成果,不仅比以往更关注成品的物质实用性,而且通过新兴科技,实现着比以往更包含着人性化的趣味与人文关怀思想设计方案,特别是虚拟与现实交互,网络应用等方面。设计行业开始与其他学科比如心理、信息学、社会学等产生越来越密切的关系,设计专业也呈现出越为越明显的跨学科性质。
3.为什么强调“设计服务”?
通过上一章节的分析,可以看出影响设计理念发展的各项因素,其中最重要的是生产力的发展。生产力的发展变迁是社会发展的核心动力,在此基础上,科技日新月异,国家政策积极扶持,为设计理念插上与时俱进的翅膀。当下强调设计行为中的“设计服务”,也是基于对当前社会生产力及国家经济发展方向的基本认识。
3.1 正确认识“设计”
设计行为,伴随着我国五千年的文明发展史,但现代设计,在清末民初,才被中国人开始了解。从19世纪末20世纪初,中国现代艺术设计教育开始发端,新中国成立之初,特别重视“工艺美术”,以换取外汇积累国家资本,而改革开放后,则越来越重视“设计”对于产品副加值的作用。由于历史的原因,所形成具有中国特色的设计行业发展脉络,使人们容易将“设计”理解为“艺术”的一个分支,隶属于“艺术”的门下。而近三十年的高考按艺术类招收设计专业,更是加深了这种印象。
在本文的“设计服务”中,“设计”一词,主要是指现代设计,包括如工业产品设计、环境设计、视觉传达设计、建筑及规划设计等,但在论述过程中,也会有一定程度的外延与扩展。
设计行为与艺术创作之间存在着天然区别,虽然二者都有创作,但出发点是不一样的。 “设计服务”中的设计,是参与到社会化大生产中的一个环节。它如同艺术创作一样需要运用专业训练的技法以及独特的想像力,但其基本动机却是为最终端的用户服务,提供包括使用适宜及精神愉悦等一系列功用。
设计事实上一种劳动生产行为。
3.2 强调设计服务的原因
由于历史发展的原因,许多大专院校所设立的设计学院大都依附在“艺术”这个光环之下,从而模糊了艺术与设计的界限,也阻碍了我们对于设计在社会化大生产环境中所处角色的认识。
强调设计服务,是从行业发展的角度、从我们思维的角度以及设计创意时的立足点出发,明确设计的服务性,将自己的设计行为与纯艺术创作区别开来 ,从而脚踏实地作出真正有意义的设计。
从古希腊的哲学开始,人类就在探求真、善、美的真谛,并积极从实践到理论,验证及寻求与之有关的知识,积累了无数的经验与理论。
从英国的工艺美术运动起,对于工业化时代的设计探索与追求就一直伴随着时代发展进行着。积累了丰富的设计方法与设计资源。可以说,除开当时尚未出现的表现形式,能够进行的研究已经非常深入了。
科学技术高速发展,理论、资源、技术几乎都已经非常成熟和完备,那当前的设计,还能做些什么样的探索呢?我们还能有何突破?简单的说,就是——整合。
以何种依据来整合呢?本文提出就是以设计服务为主导观念,进行整合,以满足当前人类生活中的各种需求。 这既符合设计行为本身的属性,也符合当前设计行为的最终导向。
3.3我国设计行业的处境
我国大中城市生活中,人们生活已经进入一个快速消费的时代,快速消费各种有形或无形的产品,在大设计领域中,各门类的设计从业者也正因此经历着前所未有的机遇与挑战。绝大部分人的生活远离自然,被包围在人造物的环境中,而所有的“人造物”都可以认为是广义的设计作品,我们生活的方方面面都离不开设计。
设计专业院校众多,设计从业人员也成为了一个数目庞大的群体,但设计行业的发展及处境,却存在低水平重复、创造力匮乏以及未能在社会化大生产中表现出足够的重要性等问题。从设计行业在目前社会生产中的事实地位来看,当代的设计行为,已经不再是指简单的、附加性的装饰与美化,或者追求纯美学形态上的表达 ,它是社会经济这个巨系统中的一个环节 ,是现代服务业中的一员。
4.“设计服务”观念所包含的内容
4.1明确设计行为的服务本质,与艺术创作相区别
设计与艺术创作,既有相同之处,又有明显区别。从人的创造力层面来讲,设计行为与艺术创作是有共同之处的。设计与艺术创作都强调这一行为的实施者——设计师或者艺术家的主观能动性,强调他们的创造性以及由这种创造性而产生的经济价值。正因为这种共同点以及艺术在文化中的深远影响力,使得我国当前的设计专业,在历史发展的客观限制之下,形成了一种曾经“寄居”在艺术创作之下的专业,这在某种程度上误导了普通民众对于设计的理解,更限制了设计的健康发展。
本章论述 “设计服务”所包含的内容,虽然前文对于艺术与设计的区别已作较多论述,但在阐述“设计服务”这一观念时,从思想观念层面,仍然要强调“设计”与“艺术”的区别。形成这一区别的关键点,就在于“设计服务”,即强调设计行为作为劳动生产中的一个环节,它所具有的服务性。
4.2“设计服务”的重要属性
在探讨“设计”在当前社会生产活动中的地位之前,有必要了解两个相关概念:“创意产业”与“现代服务业”。在现实中,设计行为兼具着“创意”与“服务”的双重属性。
1)创意产业
创意产业这一提法最早源自英国,在1997年,《英国创意产业路径文件》中,提出了创意经济的概念,之后英国创意产业特别工作组还对创意产业进行过定义,界定为其界定为“源自个人创意、技巧及才华,通过知识产权的开发和运用,具有创造财富和就业潜力的行业”。 随着知识经济的发展和信息技术的普及,传统的产业结构划分方式,已经无法描述经济发展的结构特征。作为一种新型的产业类型,创意产业正在显示出蓬勃的生命力,围绕这一新兴产业所进行的研究也在各种思潮的涌现中发展壮大。
2)现代服务业
“设计服务”这一观念中的“设计”,在当前的社会化大生产格局中,扮演着为企业提供服务的角色,属于现代服务业的范畴。随着全球产业结构呈现出“工业型经济”向“服务型经济”转型的总趋势,服务业发展水平成为衡量一个国家或地区生产社会化程度和市场经济发展水平的重要标志。自20世纪80年代开始,世界产业结构呈现出“工业型经济”向“服务型经济”转型的总趋势,在西方发达国家,服务业在国内生产总值中的比重达到70%左右,而“现代服务业”在服务业增加值中的比重达到70%,其增长速度超出了服务业增长速度的平均水平。“现代服务业”的提出,在我国最早见于1997年9月党的十五大报告,是具有中国特色的一种说法,在2000年10月党的十五届五中全会,关于十五计划建议中也提出“发展现代服务业,改组和改造传统服务业”。目前,国内外对现代服务业的称谓有很多种,如称为知识密集型服务业、生产性服务业、高增值服务业、新兴服务业、创新服务业等。比较有影响的一种表述为:“现代服务业是指在工业化比较发达的阶段产生的,主要依托信息技术和现代管理理念发展起来的、信息和知识相对密集的服务业” 。
通过以上描述,我们可以看到“现代服务业”一些基本属性与当前设计服务是具体运作模式是吻合的。因此,设计服务的另一个重要属性,就是从它在经济社会生活中具体实践,是属于现代服务业范畴的。
4.3 “设计服务”在当前经济社会中的定位
从实践性质上看,“设计服务”具有创意产业和现代服务业这两个主要属性,其在经济社会中的定位,也可以通过创意产业和现代服务业在当前经济生产生活中的重要性显示出来。
联合国《2008创意经济报告》曾指出,创意产业是世界贸易中最有活力的新兴产业之一。在过去的5年里,其产品和服务交易额年平均增长8.7%,世界创意产品的出口总额从1996年的227.5亿美元提高到2005年的424.4亿美元,保持了8.8%的增长率 。创意经济的发展将成为发展中国家经济社会发展的新增长点和推动力。之后,在2010年底,联合国又发布《2010创意经济报告》,这一轮报告提出,创意产品需求的增加将有助于各国、尤其是发展中国家的经济从全球衰退中尽快恢复;如果能得到政府积极地政策支持,创意产业将成为全球化世界中推动经济增长和促进社会发展的强大动力。报告数据显示,虽然世界金融危机导致全球需求剧减,国际贸易额减少了12%。然而,对音乐、动漫、电影、手工艺品、多媒体以及广告等创意产品和服务的需求却在这一年保持增长态势,其世界出口额达到了5920亿美元,年均增长率达到14%。创意产业促进了经济格局的多元化发展,也是目前世界经济最具活力的产业之一。但相比较而言,中国2008年的创意经济服务业出口值仅为约4亿美元,而美国却以140亿美元领先世界。由此可见,类似“设计服务”这一类型的创意产业在中国的发展力度还明显不够,在提升产品附加值方面,“设计服务”需要发挥作用的领域很广阔,后续发展潜力巨大。
目前国内的一些关于创意产业集群的研究也显示,当前的设计服务的生产实践越来越体现出系统性、知识密集性、高技术性等特征,与传统服务业具有明显区别。它不再是由单一的个人或企业所提供的简单活动,而是由多个企业的协同服务环节所构成的复杂产业链,是具有高度协同和分布特性的复杂行为构成的社会化系统。而产业集群的模式,使得设计服务更加趋向于结构化、标准化、集成化,通过集群的模式,使得创新能力聚集,提升区域竞争力。
综上所述,设计服务在当前经济社会中的定位,可以描述成最具活力的经济增长点,为企业创造高附加值的法宝以及推动区域发展的重要动力。
4.4将“设计服务”的观念贯彻始终
笔者认为,只有将“设计服务”的观念贯彻始终,才能真正实现其价值,为国民经济的发展创造效益。这个贯彻始终,是一种整体观,它将设计服务系统化,不仅在产品开发设计环节中体现设计服务观念,包括整个设计流程的管理,产品推向市场以后的运用。更为重要的是,在设计专业的学科设置中,加大对“设计服务”相关理论知识的学习,比如将“感性工学”等与设计服务理念相关度高的理论知识,作为设计教学的核心主干课程或者加强针对性的研究等。
从联合国发布的《2010创意经济报告》中的数据可以看到,中国即使创意产品的产值位居世界前列,创意服务所创造的价值却明显不如发达国家,这不得不引起我们的重视,中国制造走向中国创造这一历程中,我们并不缺人才,也不缺技术,而是需要一种符合当前创意经济发展所需要的观念作为指导,在笔者看来,设计服务无疑是非常具有现实指导意义的一种设计观念。
在论述设计服务这一观念所包含的内容时,整体观和系统论是不能忽略的,要从全局视野把握,强调这一观念的贯彻。
5.结论
设计行为自古以来就是强调应用,强调为劳动生产服务的,当然其本身也是一种生产行为。在设计理论及相前研究已经相当丰富的今天,结合我国当前设计行业的发展现状,笔者认为,将“设计服务”这一概念明确化,作为指导当前服务观念的转变非常重要。因为现代设计比以往设计行为相比,更强调系统性和创造性,而产品在创造和使用过程中,更加关注用户体验,而一种“服务”的心态,可以使得设计行为更加贴进现实需求,并通过对相关理论如“感性工学”的深入理解与运用,对已有的技术和信息进行功能集成、重构和体系再造,创新性地满足市场及农户需求、甚至创造新的需求,这样才有可能真正实现设计的价值。
目前全国各地区都在响应国家发展规划,努力打造创意产业,而只有在“设计服务”这一观念的指导下,我们的设计人员和设计实体,才能结合现实,与相关工业、制造业、信息产业等相匹配和协调,逐步增加产品的设计附加值,加快产业结构优化,推进生产方式和产品的升级换代,引导需求结构的改变,真正的促进设计行业的发展。
参考文献
[1] 张卫星.创意经济方兴未艾[EB/OL]. http://szw.wuxi.gov.cn/xyyd/xxth/2547837.shtml/2011-5-26
[2] 程建刚.现代服务业可重构服务包系统研究[D].天津:天津大学,2009
[3] 姚恒美. 世界创意产业发展动态 [EB/OL].http://www.hyqb.sh.cn/publish/portal0/tab132/info4396. htm/2009-12-01
[4] 王大军,杨正.论工业设计中的创新[C]. 2005年工业设计国际会议论文集.北京:机械工业出版社,2005:52-55
[5] 安静,路由,杨正. 当代工业设计教育的思考——急待改进的教育[C] . 2005年工业设计国际会议论文集.北京:机械工业出版社,2005:642-644
[6] 关长海.城市现代服务业竞争力研究[D] .天津:天津大学,2007
[7] 李永锋, 朱丽萍.基于感性工学的产品设计方法研究[J].包装工程,2008 (11):112-114
基于Web服务的应用程序设计 篇4
1.1 基于服务的应用程序的设计描述
基于服务的应用程序的设计过程中, 根据程序应用系统需求以及项目特点确定建模目标的结构, 并保证建模目标结构符合基于服务的应用程序的开发要求。一般建模目标结构具有以下特点时, 可以运用基于服务的应用程序的开发模型进行程序的设计开发工作。
1.1.1 建模目标结构具有较低的程序运行实时性要求
Web服务是在SOP协议的基础上开展的, 在程序运行过程中, SOP协议中的XML文档数据现象会延迟数据的运算与传输, 在实时性要求较高的程序系统中, 数据的延迟现象会导致同步通讯失真现象, 造成系统运行故障等。相反的, 当实现Web服务的过程中, 如果系统结构复杂, 需要较长的计算时间时, 数据延迟对Web服务功能的实现没有影响, 可以利用远程设备进行复杂的计算等, 从而实现We服务的目的。
1.1.2 大量异构系统并存
基于服务的应用程序的开发模型可以用于大量异构系统并存的程序开发大幅度提高了程序开发的效率, 同时也有效降低了程序开发设计的成本。由于计算机硬件设备配置不是完全相同的, 计算机操作系统以及编程语言也存在一定的差异, 在进行程序的开发与设计时, 尤其是对于复杂度较高的程序, 程序的开发与设计很难与不同的计算机硬件设备完全匹配, 不利于程序的推广与普及, 也提高了程序开发设计的难度。
1.1.3 软件在高速网络支持的环境下运行
基于Web服务的应用程序的运行优势是在网路环境能与其它系统共享数据, 实现不同系统的交流与沟通, 这也是利用基于服务的应用程序方法开发设计软件的基础。
1.1.4 软件结构清晰简单
基于服务的应用程序的设计与开发要考虑程序的实际运行速度, 结构过于复杂的结构实现某一功能所需的时间较长, 不仅不利于程序的运行与功能的实现, 同时也增加了网络的运行负担与程序运行的成本。
1.2 基于服务的应用程序的开发描述
基于服务的应用程序的开发过程不是单一的对程序功能进行分解与控制, 而是对程序功能进行部署, 建立程序的功能实体, 并将各部分功能实体组合成为软件系统, 从而实现程序在应用过程中适应网络运行的特点, 提高程序开发设计质量。基于服务的应用程序的开发过程包括软件静态结构建模、软件动态结构建模、管理人员分析与反馈、组件软件、软件成型与测试以及软件投入使用等。
2 Web服务技术及架构分析
2.1 Web服务特点
Web服务是基于XML技术而建立的Web规范技术, 是通过包含、模块化的应用程序实现在网络功能的发布、描述、查找以及调用, 具有封装性、松耦合性、互操作性以及较高的程序集成能力。其中, 封装性是指在可以对网络技术进行保护, 用户通过服务列表选择所需服务。松耦合性是指Web服务界面是不随Web服务的变化而变化, Web服务的变化对Web服务功能的实现没有影响。互操作性是指Web服务允许符合网络技术要求的设备对网络进行访问并实现网络服务, 同时也允许Web服务与其它Web服务进行通讯, 避免了不同网络协议存在差异造成的不便。
2.2 Web服务架构
Web服务的体系结构的建立是基于面向服务的体系结构, 将应用Web网络的服务进行组合成为应用程序是Web服务体系结构的主要思想, 实现Web网络服务在程序间的共享, 并对程序实现某一功能细节进行封装。Web服务体系架构主要包括三个部分:Service provider、Service broker、Service requester。其中Service provider主要功能是发布服务并响应自身服务的请求, Service broker的主要功能是对Web网络服务中发布的服务进行注册与分类, 以便于使用者根据自身需求进行搜索, Service requester则是在使用者进行搜索时, 利用UDDI查找所需服务并实现服务器与与某一特定服务的绑定。
3 基于Web服务的程序集成
传统的程序集成模式是在Web服务的支持下, 为集成应用程序提供了推广平台, 通过服务捆绑等多种形式, 在最小的运营成本下实现对Web服务的开发、发布与推广。基于Web服务的程序集成模式则是在Web网络服务的基础上, 制定程序的集成方案并实现应用程序的集成, 基于Web服务的程序集成是通过封装应用程序的功能接口, 并通过Web网络进行发布, 利用不同系统、不同应用之间数据的共享功能实现应用程序的集成。
基于Web服务的程序集成模式主要包括客户端应用程序、适配器以及Web服务等三个部分, 各部分的基本结构与功能为: (1) 客户端应用程序的功能是创建适配器并在程序运行过程中对基本函数的调用, 从而实现程序功能。基于Web服务可以实现远程操作与控制, 客户端应用程序可以根据自身运行需求对现有应用进行修改, 提高客户端应用程序与客户实际需求保持一致。 (2) 适配器是在客户端应用程序不具备相应的访问接口的情况下, 通过适配器构造可访问接口, 为程序与Web网络之间构架了一个桥梁, 便于实行程序的互操作等。 (3) Web服务的实现过程主要为提取应用程序的函数调取与计算功能, 并在Web服务层上完成Web服务的集成。Web服务的具体调用功能的实现首先要浏览注册服务器查询自身所需要的Web服务, 并下载所需服务的WSDL文件, 下载完成后利用本地服务器的组件生产客户端带来程序, 通过在本地服务器运行该代理程序调用Web服务, 从而满足自身服务需求。
4 总结
基于Web服务的程序设计是一种新型的程序设计方法, 能适应多种运行环境, 不仅缩短了程序开发设计时间, 降低了程序开发成本, 同时也有效提高了程序运行的效率与可靠性, 是值得推广的一种程序设计方法。在基于Web服务的程序设计中, 也要不断对其技术与结构进行优化, 进而完善基于Web服务的程序设计水平, 提高程序的使用性能与经济性能。
摘要:基于服务的应用程序设计在Web服务组件基础上开展程序的开发设计工作, 有效提高了硬件资源以及组件资源的利用率, 是我国应用程序设计的主要方向。论文对基于Web服务的应用程序的设计开发进行了分析, 并阐述了Web服务技术架构与程序的集成。
关键词:Web服务,应用程序设计,技术架构
参考文献
[1]张强, 夏阳, 王亮.基于Web服务的程序设计新思路[J].计算机工程与设计, 2006, 27 (22) :31-32.
计算机应用强化及程序设计周总结 篇5
刚开始接到实习内容与实习通知的时候,大家开始都很想知道计算机实习到底是实习什么内容,当看到实习内容的时候,大家都有“学校太侮辱我们智商”的想法,大家都为实习的内容感到沾沾自喜,以为自己都会,以为自己太了不起,windows操作系统多熟悉?Word、PowerPoint、Excel文档编辑和V.B.程序设计多轻松?其他办公软件谁没用过?……不过这些想法都被一点一点的实际问题所击溃。
下面我谈一下对Word软件的使用方法得感受。我们都
知道Word是Microsoft公司的一个文字处理器应用程序,它主要用与日常的文字处理工作,通过它可以编排精美的文档、绘制图片、设计表格,还可以制作包含图片、声音、视频的多媒体文件等。可以说Word功能之强大远远超出了我们的想象,刚开始认为老师所布置的实习任务太容易满足了,因为不就是写一篇在学报上面发表的文献吗?打字谁不会啊,最后当听说所有的内容,图表,函数…都得与文献保持高度一直的时候都觉得这个其实真的很难,当初我的想法
也是这样的,不过最后我还是决定恶补一下Word。我把以前的《计算机文化基础》书拿了出来把Word这一章仔细的看了一遍,并且上网查询了很多关于Word编辑的实际问题,也主动的向班内的高手请教,毕竟Word这个办公软件很强大而自己知道的与掌握的却有太匮乏了。
我充分应用在上机实习课上所学的word操作技能,完成了老师要求的文章的制作。这使我真正感受到了计算机的好处和上机实习所带来的实际的效果,这使我更加认识到学习计算机的重要性,和学好计算机的好处。通过对老师布置的文章的输入,编辑和排版,我更加熟悉了Word软件的一些操作技巧,也学会了很多Word的小技巧,例如,通过对文章的输入,编辑与排版,我学会了制作文章的页眉与页脚,学会了Word的强大的制表功能,Word软件可以自动制表,也可以手动制表。Word的表格线自动保护,表格中的数据可以自动计算,表格还可以进行各种修饰。在Word软件中,还可以直接插入电子表格。用Word软件制作表格,既轻松又美观,既快捷又方便,我也学会了Word的一些特殊符号的输入,学会了怎么插入函数,怎么实现文档字体间距的缩进,怎么分栏,以及如何在Word中调整汉字与英文字母间的距离……总之我学到了很多,也认识到很多自己的不足。随着社会的发展,科技的进步,当今社会已步入了信息社会,知识经济将成为新世纪的主导产业。伴随计算机的逐步推广
和使用,计算机已在科研、生产、商业、服务等许多方面创造了提高效率的途径,学习计算机有着十分重要的意义,如果不会使用或者不了解计算机,无疑就会变成新时期的“文盲”。
而在计算机的操作实习中,我们又重新学习和熟练了计算机的基本操作和相关的知识,这使我们在原有的计算机水平上有了进一步的提到,使我们在处理一些较为基本的软件方面能够比较熟练。我想,这些基础知识的巩固,为我们以后在计算机方面的学习打下了一个良好的基础,并能使我们在其他的一些相关的工作中带来很大的方便。通过实践,我们自身的计算机的操作技能也得到了加强,这充分起到了理论联系实践,使得理论知识和实践能够很好的进行互相补充与互相进步,并能在实践的认真操作中,得到有效的融合与渗透。我想,这种新的体会与认识只有你亲自上机实践才可以理解与感受到,这无疑是我们今后学习的宝贵经验与财富。在上机操作中,的确让我学到了很多有用的知识。
这次的实习我用Word制作了一份个人简历,利用了Word的强大的制表功能,我首先初始化了页面,新建了一个Word文档,然后为表格添加标题“个人简历”并利用了Word的插入表格命令,经过反复的调整(合并单元格,单元格对齐,字体调整等)并最终把个人简历制作成功,虽然不够完美,不过我已经尽力让它看起来很像那么回事,也很认真的填写
了个人简历,经过这次的制作表格的过程,我认识到确实自己还很“不够熟练”,纸上得来终觉浅,绝知此事要躬行。这句话是我对此次的最深体会,以前只是学习书本的理论知识,现在猛然面对实际问题显得那么的不知所措,不过通过自己的反复摸索最终克服了各种难关,把简历做好,引用马克思主义的一句经典的话就是“理论联系实际”。
目前,计算机的应用也变得越来越广泛,我们大学生,尤其是我们电信的学生更应该好好努力的学习,毕竟,计算机课程,对我们专业是非常有用。知识是无穷的,而学习更是无止境的。计算机是这把知识宝库的钥匙,用这把钥匙去打开知识的大门。这样,你便可以在知识的天空里遨游,在知识的海洋里泛舟。有了知识,你便有了生活的资本,便有了向科学高峰攀登的绳索。
应用服务程序设计 篇6
[关键词] PBL教学方法程序设计
一、引言
随着计算机技术的不断发展,计算机的应用领域日趋广泛,各种各样的程序设计语言应运而生,程序设计课程作为计算机专业的一门专业基础课程,与其它依靠记忆的课程不同,强调理解和灵活运用,不但可以培养学生的编程能力,增强学生的逻辑思维能力,而且可以为学生学好后续的专业课程打好基础,所以说,能否学好这么这门基础课直接影响到学生后来的专业水平的提高。
而教学方法的使用是否恰当,对学生学习的效果是有很大影响的,传统的教学方法是“以教师为主体,以讲课为中心”的,教师向学生全程灌输知识,学生始终处于消极的被动地位,最后导致学生的思维能力、创新能力、团队合作能力相对较低,针对这种不足,在程序设计课程中的教学过程中引入PBL教学方法。
PBL教学方法能够为学生营造了一个主动的学习氛围,使学生能积极主动的表达自己的观点,也可以使有关课程的问题尽可能多地展现出来,并加以讨论,在讨论中可以加深对问题的理解。在传统教学方式的基础上使用PBL教学方法能够调动学生学习的积极性并能达到良好的效果,使得学生的动手能力得到较大的提高。
二、PBL的概念
PBL(Problem Based Learning)[1]是以问题为基础的学习,最早起源于20世纪50年代的西方医学教育,后来扩展到教育学院、商学院及工程学院等的教学改革中,现已成为国际上流行的教学方法。
美国的南依利诺斯大学的霍华德·白瑞斯(Howard Barrows)和安·凯尔森(Ann Kelson)博士给PBL下了一个定义[2]:“PBL既是一种课程又是一种学习方式”。作为课程它包括精心选择和设计的问题,而解决这些问题要求学习者能够获取关键的知识,具备熟练的解决问题的技能、自主学习的策略以及参与小组活动的技能;作为一种学习方式,学习者要有使用系统的方法去解决问题以及处理在生活和工作中遇到的难题的本领,锻炼了学生多方面的能力,如文献检索、查阅资料的能力、综合理解的能力、逻辑推理、口头表达的能力,自主学习的能力,这些都为以后的学习过程打下坚实的基础。
PBL教学方法将学习与问题关联起来,以问题为学习的起点,即把学习置于复杂的有意义的问题情境中,以学生为中心,强调学习者的认知主体作用,要求学习者投入问题中,担负起学习的责任,通过学生以小组合作的形式共同解决复杂的、实际的问题,使学生在早期就能够自主探究并思考问题,充分发挥学生学习隐含于问题背后的知识的主动性,激发和支持学习者讨论,这样有助于培养学生的解决问题的能力、利用信息资源的能力和主动学习的能力。通过以小组讨论的形式,注重培养学生的语言表达能力和团队协作精神。
三、应用PBL的困难
由于长久以来一直实行传统的课程教育体系的现状和经济发展状况,让我国实行PBL教学方法有许多不利因素[3]。主要存在以下困难。
1、学生角色的转变
在传统教育观念下学生习惯了“填鸭式”的教育模式,不习惯从单纯的接受知识变成能够独立自主的探索知识,合作观念不强,缺少主动发现问题、解决问题的能力,信息获取途径多为教材上的信息,不善于从互联网上获取知识。
PBL 教学方法需要学生能够独立进行学习计划的制定,能够自行组织、安排自己的学习计划;对于在解决问题的过程中出现的困难,首先要能自己在查找问题并解决。
2、教师观点的转变
许多教师只是觉得PBL的理念是好的,但实施起来缺少经验,没有切实可行的教学思路,因此参与积极性不高。开展PBL教学,对教师自身的素质和教学技巧都有很高的要求,不但要求教师能够融会贯通学科知识资源,还要能够为学生的自主性发挥创造一个很好的学习氛围和环境,并善于调动学生的积极性,要求教师更新教育观念,打破原有的教学体系及方法,在教材的组织上对传统教学内容有所取舍。
3、教学评价的体系的完善
教学方式的变革,与之相配套的教学评价体系也有待于完善。在PBL教学方法中倡导以学习者为中心,强调学习者的认知主体作用,这样对教学评价的对象必然从教师转向学生,评价学生的学习动机、学期兴趣和学习能力等,并且要评价教师的教学是否有利于学生的学习,是否为学生创设了有利于学习的环境及是否能够引导学生自主学习等。PBL教学效果评价对持续开展PBL教学有重要的指导作用,而目前这方面的评价工具还有待于完善[4]。
四、程序设计课程的PBL模式
由于程序设计课程是一门基础课,是计算机专业的学生走入编程技术的入门课程,如果直接引入PBL模式,实施起来困难太大,所以在开始阶段,需要把问题布置下去,然后采用传统的教学方法进行组织教学,让学生带着问题去学习知识,等到学生入门后,再引入PBL模式效果要好的多。
首先,要提高学生的兴趣。
在课堂开始阶段,介绍PBL的优点,把问题布置下去,把学生的兴趣调动起来,俗话说,兴趣是最好成绩的老师,兴趣能激发学生求知的欲望,促进活跃的思维,并能够保持持久的学习过程。
其次,对学生进行分组。
小组合作是PBL的核心[5]。采用分组的形式进行思考学习,并为每个组配备一个小组长,在学习过程中,整个小组互相帮助,共同讨论所分配的问题,并汇报问题进展,在平时的学习和研究过程中提出问题的解决方案。
再次,对学生进行传统知识的传授。
在传统知识的教授过程中,由于学生有明确的目的,并有自己专门的团队,所以学生带着问题学习起来具有针对性,能够勤于思考,主动学习,在各个部分知识点的学习过程中,逐步学习问题要求中各个部分功能的程序设计方法,在此过程中,还可以培养学生团队意识。
最后,引入PBL模式。
在学生入门之后,让小组的学生采用根据开始的问题进行各个部分功能的程序设计,问题的解决激发学生的学习的热情,通过研究和解决问题,培养学生分析和解决问题的能力,以及培养学生综合所学知识解决实际问题的能力,在PBL模式下,始终贯穿“以问题为中心,以学生为主力,以教师为指导”的教学思想,培养学生独立思考的能力,提高学生的编程技能,增强学生的团队意识,调动学生的探索精神,为学生学习其他编程语言打下良好的基础。
五、总结
问题教学法就是指导学生分析问题并解决问题的过程,在这个过程中能够提高学生自主学习的能力,培养学生的自觉性、主动性及创造性,以便学生达到有兴趣去思考和参与讨论等的目的。
“教者有心,学者得益”。在不断的教学实践中,要找到能够激励唤醒学生潜在的学习能力、激发学生学习的积极性,帮助学生自主学习的方法,而PBL模式正好能够达到这些目标。
所以要引领学生从传统的教学方式转向PBL的教学方式来提高教学效率,培养学生良好的学习习惯、增强学生的团队意识,提高学生分析问题和解决问题的能力,进而促进学生实际编程能力的提高。
PBL教学方式的引入,可以为学生提供一个展示自己能力的空间,能够开发学生潜在的能力。但是如何能更有效的发挥PBL的优势,更好的在教学中推广,需要知识和经验的积累,需要大家共同的研究探讨,时机成熟后PBL将成为效果良好的教学模式。
参考文献:
[1] 王志军 用PBL教学方法培养学生创新实践能力.实验技术与管理,2009,Vol.26,No.6
[2] 刘璐,古继宝 PBL教学方法的理论与实践探讨,教育与现代化2004年第2期
[3] 刘利平, 方定志, PBL教学方法的调查和探索, 医学教育探索, 2006. Vol.5 No.1
[4] 王玉环, 以问题为基础的教学法评价体系研究进展, 护理研究, 2009, Vol.23, No.5
面向对象程序设计的应用 篇7
1 面向对象
面向对象是当前计算机界关心的重点,它是当今软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。
1.1 基本概念
1)对象:对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
2)对象的状态和行为:对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。
3)类:具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的实体化就是对象。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。
4)消息和方法:对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。
类中操作的实现过程叫做方法,一个方法有方法名、参数、方法体。
1.2 特征
1)对象唯一性:每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。
2)分类性:分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。
3)继承性:继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。
4)多态性:多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。
1.3 要素
1)抽象:抽象是指强调实体的本质、内在的属性。在系统开发中,抽象指的是在决定如何实现对象之前的对象的意义和行为。类实现了对象的数据(即状态)和行为的抽象。
2)封装性(信息隐藏):封装性是保证软件部件具有优良的模块性的基础。面向对象的类是封装良好的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的作用域提供保护。
3)共享性:面向对象技术在不同级别上促进了共享。如同一类中的共享,在同一应用中共享,在不同应用中共享。
1.4 面向对象技术
面向对象技术包括面向对象分析(object-oriented analysis,简称OOA)、面向对象设计(object-oriented design,简称OOD)及面向对象程序设计(object-oriented programming,简称OOP)三部分内容:
1)面向对象分析(OOA)指软件需求分析的一种带有约束性的方法,用于软件开发过程中的问题定义阶段。其主要活动是对问题进行抽象建模(包括使用实例建模、类和对象建模、组件建模和分布建模等),产生一种描述系统功能和问题论域基本特征的综合文档。
2)面向对象设计(OOD):将面向对象分析所创建的分析模型转变为作为软件构造蓝图的设计模型。面向对象设计的独特性,在于其具有基于抽象、信息隐蔽、功能独立性和模块性建造系统等四个重要软件设计概念的能力。
3)面向对象程序设计(OOP):指使用类和对象以及面向对象特有的概念进行编程。
2 计算机程序设计
计算机程序设计的本质就是把现实生活中我们遇到的问题,通过抽象然后利用计算机语言转化到机器能够理解的层次,并最终利用机器来寻求问题的解。在此过程中,涉及到两方面问题:一,如何把我们所面对的问题抽象化?使问题能够很好的被抽象语言描述。二,如何把已经抽象解决了的问题映射到机器能够理解的语言里面去。从第一方面体现了程序设计思想而第二方面则体现了程序设计语言,有此可见,两者是有密切关系的,其中的连接点就是抽象机制。
2.1 程序设计语言的概论
程序设计语言的发展是一个不断演化的过程,其根本的推动力就是抽象机制更高的要求,以及对程序设计思想的更好的支持。具体的说,就是把机器能够理解的语言提升到也能够很好的模仿人类思考问题的形式。
2.2 程序设计范型的演化
1)过程式程序设计:过程式程序设计范型是:确定需要哪些过程;采用能找到的最好的算法。
2)模块程序设计:设计程序的着重点已经从有关过程的设计转移到了对数据的组织,这种转移也反映了程序规模增大的情况。相关的过程与他们所操作的数据组织在一起,通称为一个模块,程序设计范型变成:确定需要哪些模块;将程序分为一些模块,使数据隐藏于模块之中。
3)基于对象程序设计:允许程序员直接定义类型,这种类型的行为方式与内部类型几乎完全一样,这样的类型常常被称为抽象数据类型,其程序设计范型是:确定需要哪些类型;为每个类型提供完整的一组操作。
4)面向对象程序设计:在基于对象程序设计范型的基础上,加入继承和多态这两个重要的概念就演变出了现在最流行的程序设计方法———面向对象程序设计,其范型是:确定需要哪些类;为每个类提供完整的一组操作;利用继承去明确地表示共性。
3 面向对象程序设计
传统的结构化分析与设计开发方法是一个线性过程,以过程为中心进行功能组合,软件的扩充和复用能力很差。区别面向对象的开发和传统过程的开发的要素有:对象识别和抽象、封装、多态性和继承。
面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。
下面将使用C++的类机制来设计一个数组抽象
1)数组类的实现中有内置的自我意识,首先它知道自己的大小。
2)数组类支持数组之间的复制,比较等操作。
3)可以查询数组里面的最大植和最小值,以及需要的数值。
4)可以排序。
关键字private和public控制地类成员的访问,一般来说公有成员提供该类的接口—即实现这个类的行为的操作的集合。私有成员提供私有实现代码—即存储信息的数据。这种类的公共接口与私有代码的分离称为信息隐藏。这样我们就可以对数组进行整体操作,实现了数据和算法的捆绑。一般来说我们的实现也许就是针对特定用户的,而不具有普遍性,也就是说有的用户也许根本不需要排序这样的功能,但是我们却为其加入了,我们如何才能支持各种用户对于我们的数组类的要求呢?面向对象程序设计方法为我们提供了这样的一种能力,即继承机制和多态机制。
我们可以把普遍和共同的属性通过基类来实现,而各种特殊的要求,我们通过继承和多态来表达需要的更多于基类的行为。
通过一个数组的演化,我们可以清楚的看到面向对象程序设计的核心思想是:抽象数据类型,继承和多态。我们也可以清晰的感受到面向对象程序设计对于过程式程序设计的好处和优点。
4 结束语
计算机硬、软件技术的发展日新月异,在很短的时间内即涌现出大量的各种各样的软件开发工具,并在迅速不断地更新换代,为编程人员提供了多样化的开发平台,带来了极大的方便,面向对象程序设计技术必将应用到更多的程序设计方法中。
摘要:面向对象技术提供了一种新的认知和表示世界的思想和方法,它对计算机工业的影响是深远的。面向对象技术包括面向对象分析(object-oriented analysis,简称OOA)、面向对象设计(object-oriented design,简称OOD)及面向对象程序设计(object-orientedprogramming,简称OOP)三部分内容。面向对象程序设计是一种方法,这种方法为数据和函数提供共同的独立内存空间,这些数据和函数可以作为模板以便在需要时创建类似模块的拷贝。
关键词:面向对象分析,面向对象设计,面向对象程序设计,函数
参考文献
[1]Stroustrup.C++程序设计语言[M].北京:机械出版社,2004.
[2]Lippman.C++PRIMER中文版[M].李师贤,蒋爱军,梅晓勇,等,译.中国电力出版社,2008.
[3]Yourdon E.Object-Oriented System Design,An Integrated Approach[M].Yourdon Press/Prentice Hall,1994.
应用服务程序设计 篇8
一、《网络应用程序设计》课程教学现状及存在的问题
1. 课程的教学现状
近年来, 国家对应用型本科院校的建设越来越重视, 国家计算机网络基础设施也逐渐完善, 各高校在观念上对计算机网络实验教学也更加重视。有不少应用型本科院校甚至直接与市场接轨, 与企业合作, 这种以学生为本的办学思想极大地提高了教书育人的效率, 提高了学生的就业率[1]。
在这种计算机网络规模不断扩大的基础上, 网络应用也层出不穷, 对于计算机网络应用程序设计人员的需求也越来越多。当前, 市场上该方面的主要有三类:即以套接字网络编程接口为基础的基于TCP/IP协议栈的网络编程、基于WWW应用的网络编程和基于.NET框架的Web Services网络编程[2]。而套接字网络编程接口为基础的基于TCP/IP协议栈的网络编程是主要是借助于套接字达到网络上不同主机中应用程序之间通信的目的, 而其也正是本文要种重点探讨的内容。即通过分析该课程当前教学中存在的问题, 从教学内容、教学方法、实践教学及考核方式等方面进行适当的改革, 以达到应用型本科院校对网络工程师方向学生培养的要求。
2. 存在的问题
通过对不少高校《网络应用程序设计》课程开设情况的调查研究, 当前该门课程存在的问题主要表现在以下几个方面。
(1) 课程内容设置不当。《网络应用程序设计》课程涉及到的知识点比较多, 覆盖面也相当广泛, 要想让学生在有限的时间内达到完全的掌握并不是很容易的事情。因此, 在过去的教学中, 存在着“贪多嚼不烂”、内容取舍混乱、课程内容陈旧等问题。即有的学校试图把所有相关的内容都教给学生, 从而导致学生哪一块也没学好;还有的学校使用陈旧的教材, 很少涉及科学发展前沿的东西, 缺少时代发展所需要的新的内容, 从而导致授课内容过于陈旧, 跟不上时代的步伐, 对学生就业的帮助大打折扣。
(2) 实践教学环节安排不合理。根据市场调查发现, 当下不少网络工程师方向的学生动手能力较差, 而导致这种情况的原因无非就是对相关课程的实践环节重视不够或实践环节安排不合理。《网络应用程序设计》又恰恰是对动手能力要求很强的一门课程, 在调查中发现, 开设该门课程的学校, 有的是重理论、轻实践, 如笔者所处的学校原来对该门课程设置为每周三节理论, 只有一节实验, 从而导致实践教学在教学中地位不突出, 达不到预期的效果;有的是实践环节设置不合理, 学生在实验课上只是简单地验证书本上或是老师在理论课堂上讲授的程序, 从而不能充分调动学生的创新能力及实际的动手设计能力。
(3) 教学方法过于程式化, 不够灵活。《网络应用程序设计》课程有其自身的特点, 实践性很强。而笔者调查发现, 有不少院校在实际授课中还是以传统课堂讲授为主, 程式化地使用先原理、后示例的传统演绎教学法, 从而导致学生反映原理过于抽象、而示例又不够生动, 因此不能提高学生学习的兴趣, 预期的教学效果也没有达到。
(4) 考核方式不合理。传统的考核方式大都是理论性知识较多的闭卷考试, 但是考虑到本门课程的特点, 传统的考核方式并不能很好地检验学生的学习效果。
二、应用型本科院校《网络应用程序设计》课程教学改革的思路
1. 实施改革的依据
自1998年国内大学生扩招以来, 高等教育逐渐由“精英化”走向“大众化”[3]。由此可以看出, 高等教育已不只是专业人士的事情, 它关系到社会的发展和每个人的生活, 所以, 它再也无法只由专业人士来决定了。而在大众教育阶段, 评价高等教育质量优劣的主体也不再是高校自己, 而是社会各方面的需求。这也是高等教育质量观众最受关注的内容, 有利于改变以往长期存在的高等教育部适应社会的状况。高等教育将更加关注它所培养的人才是否是社会真正需要的人才;高等教育的整个教育教学过程也更可能进行进一步的分析, 以判断它们是否符合既定的目的以及这些目的和过程是否是学生所接受的[4]。
因此, 能够培养真正满足社会需要的人才, 能否培养出应用型本科特点的学生, 是我们在《网络应用程序设计》课程改革中需要解决的问题。
2. 教学内容的改革
教学内容是随教学目标而定的, 而教学目标又是随着技术发展和人才市场需求而动态发展的, 因此, 教学大纲应该是指导性的, 在适当的周期后需要进行适当的调整。《网络应用程序设计》课程一开始开设时主要是面向传输层设计网络通信程序, 以SOCKET为技术主线, 讲授客户机/服务器的工作模式、网络编程的基本原理、Win Sock编程技术等, 此后, 随着Internet技术的进一步发展, 网络安全迅速成为关注焦点, 也成为了网络开发的两点, 所以结合应用型本科院校网络工程师方向学生培养的目标, 也应适时加上端口扫描编程基础、活动主机发现的编程技术、木马及远程监控类的编程技术, 甚至网络信息加密传输与基于信息隐藏的网络隐蔽通信技术等等, 并且随着网路技术的进一步发展及市场需求, 势必还要根据需要进一步更新或添加新的教学内容。
所以, 从教学思路上, 教师一定要认识到这一点, 不断了解新的需求, 不管完善自己的知识结构, 尽可能给学生传授能跟上时代需求的内容, 为学生在今后的综合设计即将来的工作打下良好的基础。同时, 教师要树立与时俱进的观念, 及时在不违背大纲的前提下修正与完善教学内容, 去掉过时的与现实联系不太密切的内容。甚至, 在必要的时候, 可以与院系进一步研究, 适当修订教学大纲。
3. 实践环节的教学改革
《网络应用程序设计》课程强调的是学生的网络编程能力, 实践性很强, 学生只听不练很难达到学习该课程的目的, 所以, 在完成课堂理论的讲授后, 教师应加强实践环节的教学及指导。因此在理论教学的同时还要加强上机实验教学来切实提高其动手能力, 并应将动手环节贯穿于教学的全过程。
在实验内容的设计与组织上, 老师应充分考虑到实验内容和理论教学的衔接, 以及实验题目的综合可操作性和难易程度。以往的实验教学, 大都是验证性实验, 验证课堂上讲授的知识点, 把书上有的或是老师讲过的程序运行一遍即可, 延续的都是基础程序设计课程的教学模式, 并没有把各个知识点之间的联系结合起来, 不利于培养学生的综合编程能力。针对这门课程的教学特点和学生已经掌握的基本编程语言的基础, 必须改革实验内容, 适当增加设计性实验和综合性实验, 并加强过程的管理。
4. 教学方法的选择
有很多老师都在提倡并使用“任务驱动”的教学方法。在我看来, 任何一个教学方法的使用, 都必须结合课程本身的特点进行具体的使用, 而不是简单的照搬。考虑到这门课程的特点, 我认为应当将“任务驱动”与“项目驱动”有机地结合起来, 即每一部分尽量结合具体的项目进行, 然后在具体实施时, 根据具体情况将项目分为一个个独立但是彼此之间又有联系的任务, 采用“项目驱动”与“任务驱动”相结合的教学方法。在解决每一个小的任务时, 做到理论与实践相结合, 通过给出任务、学生分析讨论、教学总结及深入讲解、直观演示, 最后加上学生自己动手加以巩固的流程进行。从而可以使学生能够更好地理解理论知识, 切实提高其创新能力及网络编程的动手能力。
通过改变传统的授课方法, 将“项目驱动”和“任务驱动”结合起来, 从而可真正提高学生学习的兴趣和主观能动性, 切实提高其网络应用程序的编程能力。
5. 考核方式的改革
为更好地评价学生的学习效果, 该门课的考核方式也应当进行改革。更合理的考核方式应当是实践和理论相结合, 平时的过程考核和期末的闭卷考试相结合。具体如下:
(1) 由于平时上课过程是任务驱动和项目驱动相结合, 所以每当完成一个项目时就及时地让学生根据自己所学独立或分小组完成相关的项目, 并根据完成的情况进行检验并给出阶段性成绩。
(2) 实践必须以理论作为基础, 所以期末的闭卷考试也不能完全的不用。为了更好地巩固所学, 更好地指导学生的实际动手能力, 在期末也安排传统的闭卷考试, 以理论基础知识为主。
(3) 各个学校可根据自己学校学生的学情及特点设定平时考核及期末考核的权重, 确定学生该门课程的最终成绩。
6. 教学效果
通过该教学改革的实施, 比较完善的教学体系及教学方法已初步建立并运行良好;一些过时的、与现实联系不够密切的教学内容已逐步被淘汰掉, 并注入了新的血液;理论教学和实践教学结合的更加自然, 学生学习的主观能动性已极大地被调动了起来, 学生对该门课程的学习兴趣得到了极大的提高, 学生的网络编程能力随之也得到了提升。
参考文献
[1]高广银.本三院校网络编程技术课程的教学改革[J].科技信息, 2010 (27) :163-164.
[2]罗丽琴, 詹祖桥.Windows网络编程[M].北京:人民邮电出版社, 2011.
[3]李志仁.以就业为导向——培养高校办学的新思路[J].计算机教育, 2005 (5) :66-67.
设计阶段的限额设计应用研究 篇9
关键词:限额设计,投资控制,设计全过程
0 引言
建设项目投资控制是指以建设项目为对象, 为在投资计划值内实现项目而对工程建设活动中的投资所进行的规划、控制和管理[1]。然而在传统的建筑业发展经营模式下, 建设单位对于经营过程中的成本控制与效用水平不够重视, 造成了资源的不必要浪费。回顾近年来企业发展的历程, 投资控制是企业强化管理、提高效益的重要措施。建设单位为了提高工程建设的投资效益, 必须在保证工程项目质量和工期的前提下, 对成本进行有效的控制。投资控制贯穿于项目的全生命周期中, 在不同的阶段有不同的控制重点。项目定位与策划阶段决定了开发总成本的90%, 项目的前期与设计阶段决定了开发总成本的70%~80%, 而在施工及后续阶段决定开发总成本的比例只占到10%左右。投资控制的关键在于决策与设计阶段, 而我国建设领域普遍轻视工程项目建设前期和设计阶段的投资控制, 将主要精力放在施工阶段, “抓小放大”的模式使得投资控制工作效率低下, 而控制前期与设计阶段的才是投资控制的最有效途径。
1 设计阶段投资控制的不足
设计阶段是决定建筑产品价值形成的关键阶段。对设计阶段开展投资控制是非常重要的, 需要加以充分的重视。在工程建设的各类费用中, 设计费虽约占总投资的1%, 但设计阶段对工程投资的影响程度占75%以上。
1.1 建设单位的工作重心偏移
“重技术轻管理”是建筑业的通病, 这虽使技术得到进步, 却因经济上的不重视而导致技术的无法适用。实践证明, 落后的技术不会主动退出市场, 如果没有有效地经济管理措施, 先进的技术也往往难以得到有效地应用。因此, 建设单位在设计阶段的不重视也会使得投资控制效果不明显。
1.2 设计人员缺乏经济意识
设计行业人员普遍存在缺乏经济观念, 不重视设计中的投资控制措施和技术经济分析论证等。由于考虑到安全性能与责任风险, 设计单位在满足国家强制设计规定要求下, 尽量使用安全系数更高的设计方案, 追求最大的安全效用, 避免承担安全责任风险, 而经济因素并不在设计人员的考虑范围之内, 这必然会导致项目投资的增加。
1.3 薪酬激励机制存在问题
据了解, 目前的设计单位计取报酬是按项目总投资的比例计取设计收费, 因此, 从设计方角度考虑, 在建设单位不采取激励措施的情况下, 设计单位关心的只有总设计额[2]。为了按照建设单位的要求进行规模扩大, 就需要提高标准以取得更多的设计费用, 但是会导致项目投资膨胀。
2 限额设计相关概念
所谓限额设计是按照批准的设计任务及投资估算控制初步设计, 按照批准的初步设计总概算控制施工图设计。各专业在保证达到使用功能的前提下, 按分配的投资限额控制设计, 严格控制设计不合理变更, 保证总投资限额不被突破[3]。
限额设计应以合理的限额为目标, 将上一阶段审定的投资额作为下一设计阶段投资控制的总体目标。将该项总体限额目标层分解后确定各专业、各工种或各分部分项工程的风险目标。限额设计的目标设置, 要与项目的规模、建设设计的标准、可持续性发展的目标和目前社会经济的发展相吻合。
限额设计目标是在初步设计前, 根据可行性研究报告及投资估算合理分析确定的, 是对整个建设项目进行投资分解后, 对各个单项工程、单位工程、分部分项工程的技术经济指标提出科学、合理、可行的控制额度[4]。
3 设计全过程的限额设计应用
首先工程造价保持在建设单位同意的限额之内, 通常就是使初步设计概算控制在工程估算之内, 施工图设计预算控制在设计概算之内, 而承包合同价及以后的合同价调整控制在设计预算内的控制指标。限额设计具体的实施过程, 应是目标确定、经济分析、信息反馈与检查、问题纠偏的循环, 直至上一步的限额满足要求才开始下一步工作。这个控制过程是一个动态的过程, 可用图1来表示。
3.1 方案设计阶段
投资估算应贯穿于整个项目的决策过程中。在投资机会研究与可行性分析研究中根据实际的考察情况, 应用多方案评比选出最优方案, 应用价值工程进行方案优化。在方案设计中, 要求设计与造价控制同步进行, 成果由设计内部进行评审。若投资超出限额, 则要进行优化, 从技术和经济指标上同时进行比较, 满足限额设计目标, 成果经评审通过后, 确定工程项目的总投资[5]。
3.2 初步设计阶段
设计任务书获批之后, 首先应进行的工作就是投资分配, 即按设计任务书的总体框架将设计总投资分配到各个专业, 各专业进行多方案评选, 并对各个技术经济方案的关键设备、工艺流程、总图方案、总图建筑和各项费用指标进行比较和分析, 从中选出既能达到工程要求, 又不超过投资限额的方案, 作为初步设计方案。各专业根据分配到的限额作为初步设计的投资控制目标。
3.3 施工图设计阶段
已批准的初步设计及初步设计概算是施工图设计的依据, 在施工图设计中, 无论是建设项目总造价, 还是单项工程造价, 均不应该超过初步设计概算造价。设计单位按照造价控制目标确定施工图设计的构造, 选用材料和设备。进行施工图设计应把握两个标准:一个是质量标准, 一个是造价标准, 防止只顾质量放松经济要求。当然也不能因为经济上的限制而消极地降低质量。因此必须在造价限额的前提下优化施工图设计。
4 关于限额设计的思考
在推行限额设计的同时, 我们还应清醒地认识到它所存在的不足之处, 并在以后的投资控制过程中有效避免。
首先, 限额设计缺乏一种控制的主动性。我们进行限额设计时, 要先把任务分解, 并根据各专业分到的部分进行限额规定, 若设计完成后发现并不满足限额要求, 再进行设计变更, 那么就会降低设计的合理性, 进而降低投资控制的效果。因此其可操作性还需要进一步探索;其次, 由于限额设计强调的是设计限额的重要性, 使价值工程中有两条提高价值的途径在限额设计中不能得到充分运用, 即造价不变, 功能提高;造价提高, 功能有更大程度提高。尤其后者, 在限额设计中运用受到极大限制, 这样也就限制了设计人员在这两方面的创造性, 使一些新颖别致的设计往往受设计限额的限制不能得以实现;最后, 限额设计主要是针对设计阶段及后续施工阶段成本的考虑, 我们应从项目的全生命周期进行分析, 即要把项目使用阶段的使用维护费与拆除阶段的拆除费用也考虑在内, 这一点在后续的推广应用中应注意。
5 结语
限额设计是在控制工程造价的基础上, 能够提高投资控制的主动性, 以此抓住工程造价的核心, 防止“三超”的现象发生, 为了将限额设计贯穿于整个设计阶段, 就需要制定好目标, 把责任具体到个人, 这样才能更好地把限额设计系统工程充分落实到位, 并根据不同项目的不同特点设置不同的限额设计标准。限额设计方法的合理运用, 将会给项目的投资控制带来可观的效益。
参考文献
[1]丁士昭.工程项目管理[M].北京:中国建筑工业出版社, 2006.
[2]徐友全, 成存朋.关于建设项目设计阶段投资控制的探讨[J].建筑经济, 2011 (06) .
[3]徐大图.建设项目投资控制[M].北京:地震出版社, 1993.
[4]赵姗.造价控制与限额设计[J].管理与决策, 2008, 36 (2) .
视觉化程序设计软件的应用与发展 篇10
19世纪的50年代到60年代初,程序设计为手工艺式的,从而高德纳把程序称为艺术品。在19世纪60年代末到70年代初,随着程序发展规模的不断扩大,出现了软件危机。一方面需要大量的程序软件系统;但另一方面,程序软件的设计周期长,可靠性差。一直以来,程序设计的核心是:编写出的程序结构清晰,程序语言简单、易阅读、方便修改的程序设计软件。然而,在当时的程序设计模型中,也面临着错误随着代码的扩大而级数般的扩大的困难,甚至到了无法控制的地步。这个时候就出现了一种新的程序设计模型——面向对象程序设计,由此也产生了一批支持此技术的程序设计语言,比如C++或Java。 现如今,程序设计软件又发生了许多变化,呈现出了以可视化与叙事为显著特征的发展趋势,受到了程序设计软件学习者的广泛关注。
2程序设计软件的发展及其特征
由于像C++或Java类似的程序语言设计类软件所反映的教学内容过于抽象、概念复杂、语言编写规则繁多、编程容易出错等原因,导致了现在的学习者对程序设计的学习兴趣越来越低。在过去的十几年里,信息科学教育研究者发展了很多视觉化的程序设计软件,为学习者提供富有乐趣的程序设计环境, 如:Alice、Scratch、Lego Mindstorms、RAPTOR、Game Maker、Baltie、Jeroo等,可以帮助学习者充满兴趣地学习程序设计。为学习者降低了学习程序设计的难度,让学习者在学习程序设计时能够获得学习兴趣,这也是现今可视化程序设计软件成功的关键所在。
随着社会的发展,视觉化程序设计软件已经在信息科学教育界中受到极大的关注。因为相比于以前程序语言编写抽象、 复杂的教学软件,这些视觉化的程序设计软件具有以下的共同特征:
1)具有叙事和可视化功能的特征。能够吸引初学者的兴趣,便于进行教学活动;学习者在学习过程中可以收获很大的乐趣和信心,对学习者产生事半功倍的学习效果。
2)简单、易操作。它们并不过多地要求使用者需要过多的程序设计技能和知识,只需要使用者的想象力,并且通过点击和拖拽鼠标就基本上可以完成程序设计。
3)重在培养初学者的逻辑性思维。这些程序设计软件有助于提高学习者读对程序设计的认识,并培养初学者程序设计的逻辑性思维。
4)适用于初学者。这些视觉化程序设计软件最大的特征就是降低了初学者以前学习程序语言设计的难度,避免了对复杂的程序设计语言的编写。因为这些软件能把一些抽象概念形象地展现出来,为进一步学习难度较大的C++、Java打下良好基础。
3视觉化程序设计软件的分类
虽然,现如今开发的程序设计软件都基本具有视觉化特征,但在某些功能上还是存在着差异。鉴于此,对程序设计软件进行了简单分类:
1)叙事功能的程序设计软件(narrative tools):让初学者通过程序设计语言编写一个故事情节,如:Alice,Scratch和Jeroo。
2)特定输出实现的程序设计软件(specialized output realizations):用非文本的方式提供程序操作的回馈,譬如多媒体等方式,如:Lego Mindstorms,JES。
3)流程功能的程序设计软件(flow-model tools):通过程序语言组件的连结,用以呈现计算的程序,如:RAPTOR,Iconic Programmer,Visual Logic。
4)分层语言的程序设计软件(tiered language tools):让初学者在进一步学习中,可以逐渐使用更复杂的版本,如:Baltie, Professor J,Robo Lab。
4常用视觉化程序设计软件介绍
依照应用的常用性,针对目前适于教育领域中常用的程序设计软件进行简单的介绍。
4.1 Alice
Alice(http://www.alice.org)是由美国卡耐基·梅隆(Carnegie Mellon)大学开发的以学习者为中心的程序设计软件,也被称为3D交互式图形编程环境(3-D Interactive Graphics Programming Environment),其作用是让学习者在设计3D动画的同时学习事物转向的程序设计概念,适合初学者使用。Alice提出了这种支持面向对象程序设计的三维虚拟世界动画教学软件,具有叙事和可视化的功能。卡耐基·梅隆大学开发Alice的主要目标是:用以帮助更多的青少年学会如何在3D的环境下编写计算机程序,并希望在学习Alice这一软件的基础上,青少年能够学习更为复杂的Java和C++编程。
Alice最显著的特点就是支持图形化程序设计,并能够生成三维虚拟世界中的对象,然后可以将场景的设计同程序设计结合起来。Alice根据功能划分为5个区域(如图1所示):1)对象树。在这一区域中显示的是场景中出现的对象。2)World窗口。把对象添加到这一窗口,可以进行场景设计。3)事件区。 这一区域是对事件的响应而进行的编程。4)函数方法细节区。这一区域显示的是每个对象的属性、方法和函数。5)代码编辑区。通过把对象的属性、方法、函数拖拉到这一区域,然后根据提示,并自动生成相应的代码。Alice提供互动、立体的模拟环境,所有的物体都具有前后、左右和上下六个方向,并提供程序语法的标签,学习者不需要输入程序码,只要利用鼠标拖拽的方式将成式语法标签放到界面右下的程序编辑区即可完成程序设计编辑。
Alice系统为学习者提供了一种全新的方式去学习程序编程。尤其是对初学者而言,避免了对复杂的程序设计语言的编写。因为在Alice程序设计中,一些抽象概念可以形象地展现出来,所以初学者在学习Alice的过程中,就能更加直观地理解和学会类、对象、方法及事件驱动等概念,并为进一步学习C++和Java程序设计语言打下良好的基础。在美国,现今有300多所高等院校将Alice纳入了初学编程的课程中。有的小学把Alice编程课程放在小学高年级(5、6年级)的Science课中,从小培养孩子学习编程的兴趣与能力;不仅如此,在美国政府部门的大力支持下,很多中学和大学中,也将Alice编程课程作为选修课,面向对编程有兴趣的学生开设。像Intel、Oracle、Google等公司也设立了各种奖项,以此鼓励中、小学生开展具有创意的Alice编程。
4.2 Scratch
Scratch(http://scratch.mit.edu/)是由麻省理工大学(Massachusetts Institute of Technology, MIT)的媒体实验室终身幼儿园组(Media Lab Lifelong Kindergarten Group)开发的一套可视性程序语言的开发平台,旨在让程序设计语言初学者不需先学习语言语法便能设计创作产品。作为可视性程序语言,初学者不用担心语言文法,可以透过探索、实验去学习创造交互式故事、动画等技术。Scratch包含视觉化和叙事的两种特征,学习者可以用来创作互动式故事、动画、游戏、音乐和艺术,并在网络上分享自己设计的每个作品。
Scratch的界面主要分为四大板块(如图2所示):舞台、角色列表、程序指令区和程序编辑区。Scratch的主要特色在于它适用于初学者学习程序设计,学习者只需利用鼠标点击和拖拽的方式进行程序设计,完成可视化编程。不需要牢记任何指令码或编写复杂的程序码,解除了学习者在程序语言输入方面的困难,有助于提高学习者读对程序设计的认识,并培养学习者的逻辑思维。因为Scratch是一款面向少年儿童的程序设计软件,其创作的程序简单、易操作,而且界面的卡通形式也能够吸引儿童的兴趣,运用Scratch创作的作品进行教学活动,在儿童认知发展初期有着事半功倍的效果。
4.3 Lego Mindstorma
目前的研究表明,使用机器人可以帮助程序设计学习者更易理解计算机类课程中抽象的基本概念。1986年,丹麦的LEGO(乐高)公司和美国麻省理工学院的媒体实验室(Media Lab)进行的一项“可程式积木(Programmable Brick)”的合作案。1996年LEGO公司发布了Mindstorms机器人开发和编程工具包。而Lego Mind-storms(http://www.lego.com/zh-cn/Mindstorms/support)则是集合了电动马达、传感器、可编程主机、 Lego Technic部分(轮轴、插销、横梁、齿轮)的统称。
Mindstorms是由益智玩具中可编程的传感器模具(programmable sensor blocks)的发展而来。乐高机器人套件(LEGO Mindstorma Robotics Invention System)是面向对机器人有兴趣的大人和12岁以上的小孩而设计的一个教育玩具。Lego Mindstorms的第一个零售版本Robotics Invention System(RIS)于1998年上市。目前的最新版本是2013年上市的Lego Mind-storms EV3。在免费的EV3编程软件中,拥有25个好玩的任务,EV3软件是给机器人编程,赋予机器人生命的关键,使用者只需编写一个程序,就可以让机器人按照指定的路径前进,让机器人服从使用者的命令。
Lego Mindstorma是一套可以对其进行编程的机器人拼装套装(如图3所示),它能赋予使用者创建和指挥专属于自己的乐高机器人的非凡能力。目前的最新版本Lego Mindstorms EV3套装中包含了使用者需要的一切,根据不同的编程设置, 其控制的机器人可以移动、行走、说话。总而言之,使用者可以利用直观的编程软件(例如:智能EV3第三代机器人程序块或智能设备)来自由地指挥机器人。
Mindstorms平台最初由于LEGO机器人缺乏与高等教育相符的程序设计环境,也缺乏对大学水平的程序设计语言(如: C++和Java)的支持,所以并不适用于高等教育。十几年以后,随着Mindstorms使用群体的日益扩大, Mindstorms平台为C++和Java开发了有效的程序设计环境,从而让更多的高校开始选用低价的LEGO机器人作为其教学的平台。
1)麻省理工学院(Massachusetts Institute of Technology)的电子技术和计算机科学系专门开设了自主机器人设计课程。 学生可以在这门课程中,运用之前学到的编程知识,通过搭建物理模型,进行编程并自由地控制机器人的活动。最后再以比赛的形式完成实验,查看学习效果。
2)卡耐基·梅隆(Carnegie Mellon)大学作为第三方利用自身资源,开发了Robot C程序设计环境,如今Robot C已成为LEGO机器人最流行的程序设计语言之一。
3)加利福尼亚州立大学(California State University)在相应的课程中,使用物理模型来促进学生对程序设计结构的理解,使用LEGO机器人作为了他们的教学实验平台。
到2006年,在LEGO公司发布Mindstorms NXT机器人套装时,机器人在计算机教育中的作用已得到了普遍认同和欢迎。
4.4 RAPTOR
RAPTOR(http://raptor.martincarlisle.com/)是一种流程软件形态的程序设计软件(如图4所示)。RAPTOR是一种基于流程图的可视化程序设计软件,并提供发展算法的一种可视化环境,从而让学习者在可视化程序设计的环境中进行算法的撰写,并为程序和算法设计的基础课程的教学提供了一种实验环境。学习者通过鼠标拖拉左侧的流程图符号至右侧流程图编辑区,可以随时增减流程图符号或改变流程图符号的位置,使其在撰写的过程中不断地进行思考、安排和控制。
RAPTOR作为一种可视化程序设计的软件,已经为以卡内基·梅隆大学等为代表的世界上20个以上的国家的高等院校使用,在计算机基础课程教学中,也取得令人满意的效果。在RAPTOR的可视化操作环境中,使用者无须单独编译和执行, 只需在其环境中执行相应的算法流程,所以使用RAPTOR来解决问题,就可以让原本抽象的概念变得越加清晰。这说明程序运作的逻辑顺序不必再利用传统程序设计的文字环境来进行设计和调试,可以直接在RAPTOR可视化的表达环境中进行, 这也能够极大减轻使用多种软件时带来的学习负担。对初学者而言,RAPTOR并没有强制要求自上而下的分解程序设计目标,而是让学习者尝试着逐步去开发代码,利用交互的图形库, 创造出更有趣的算法。
4.5 Game Maker
Game Maker(http://www.yoyogames.com/)是由Mark Overmars使用Delphi语言开发的视觉化程序设计软件(如图5所示)。Game Maker是一款可灵活编程、拥有图形界面、以2D游戏设计为主的游戏开发软件。Game Maker允许学习者使用图形、按钮和文本创作游戏,而无需学习复杂的诸如C++或Java编程语言,并可以在游戏设计过程中,附带上精美的背景、动画、音乐和声音效果。学习者只需要拖拽图形、输入文字、点击很少的几个按钮,选择一些控制选项,游戏很快就可以编写成功。凭借这些优点,Game Maker极大地促进了欧美乃至全世界独立游戏界的发展。
Game Maker是个专为设计游戏而制作的软件,不同于其他程序设计软件的是它将复杂的游戏功能融于简单的操作方式, 适合提供给程序设计的初学者使用。因为Game Maker主要是为2D游戏而设计的程序软件,它提供贴图、移动、游戏规则以及其他多种功能,所以初学者只需通过拖拽Game Maker界面上的选项,就可以让初学者轻松设计和制作一个中型以下简单游戏。通过Game Maker提供的有趣环境和设计过程,让学习者从中学会游戏设计的概念、技巧和流程;学会物体、事件等程序设计概念。当学习者对程序设计的概念越来越熟悉之后,学习者就可以使用越来越多的程序设计语言,从而可以创作更高水平的游戏。
4.6 Baltie
Baltie4C# Pro(http://www.sgpsys.com/en/)是一款视觉化和分层语言式的程序设计软件(如图6所示)。学习者使用鼠标点选上方软件列表中的符号选项进行程序设计,适合程序设计的初学者使用。初学者可以使用Baltie的互动模式和图形区域进行程序设计;较高水平的程序设计学习者则还可以结合语法命令和图像区域的C#语言进行程序设计。学习者通过使用Baltie软件,可以学会逻辑、条件和事件等程序设计概念。
Baltie是面向图形的可视化编程软件。相比于Balties会帮助使用者很快意识到什么是计算机、如何掌握和计算机程序而言,使用Baltie可以更加锻炼使用者的逻辑思维,它并不要求使用者需要过多的程序设计技能和知识,只需要使用者的想象力。
4.7 Jeroo
Jeroo(http://www.jeroo.org/)也是一款具有叙事功能的程序设计软件。Jeroo适合初学者使用,学习者可以选择Java、C++和Python等任何一种程序设计语言应用于Jeroo中,让学习者根据自己的实际情况学习事物转向的程序设计概念。Jeroo的左侧提供编辑来源码的区域;它的右侧则呈现程序编辑的结果;它的下方则显示目前程序设计的状态信息(如图7所示)。 根据信息科学领域中的研究者的研究结果显示,Jeroo能够显著提高学习者在学习程序设计的兴趣与自信心;使用过Jeroo的学习者几乎都指出:Jeroo是一套值得他们去推荐别人学习的程序设计软件,并且适合作为学习Java程序设计语言之前的学习软件。
5结束语
程序设计软件越是简单易学、易操作、可视化和智能化,越是能获得初学者的喜爱。因为对于非计算机专业的使用者而言,他们只需要有一定的计算机操作认知基础,只需要花较少的时间和精力就可以掌握程序设计的基本知识,最好不需要用复杂的语言编程就可以实现大部分交互作用,减少他们学习程序设计软件的认知负荷。面向对象的可视化程序设计软件在现代程序设计思想中占有很重要的地位,未来程序设计软件将会以一种可视化,更易表达现实世界,更易为人编写的功能得到进一步发展,其使用将不再只是为专业的编程人员服务,人们完全可以用基础的程序设计知识来完成编程。
摘要:视觉化程序设计软件,有助于提升学习者的学习兴趣,降低学习者的学习困难。为此,信息技术与教育领域的研究者开发了许多程序设计软件,如Alice、Scratch、Lego Mindstorms、RAPTOR、Game Maker、Baltie、Jeroo等等,它们具有可视化和叙事性等功能,受到了社会的广泛关注。
园林设计中现代设计理论的应用 篇11
【关键词】现代设计理念;园林设计;应用
随着人们生活水平的不断提高,为了不断满足人们日益增长的物质文化的需要,在现代各种先进的设计理论不断引入的前提下,现代园林设计创造了一个全新的时代。在当前园林建设的过程中,在现代理念的运用上还存在诸多的问题。因此,园林设计师要具体结合当前园林发展的实际情况,充分把握现代设计理论的内涵,从而将其更好地融入到设计中来,积极提高园林的性能以及效益。
1.现代设计理念概述
现代设计理念作为一种新型的园林设计指导思想,在现代园林设计中起着举足经重的作用,主要的设计原则包括四个方面:一是注重功能需求。现代设计理念坚持作以人为最终的服务目标,主要强调设计的功能主义;二是注重自然与生态的协调发展。生态理念始终贯穿整个设计理论,合理利用不可再生资源,减少能源的消耗;三是简洁实用。现代的设计理论摆脱了传统的设计形态,进行了技术的不断,提倡运用几何单体,强调简洁实用的设计;四是注重工艺美。现代设计理念实现了技术和艺术的相互结合,在遵循自然规律的前提下,进行了技术的创新,在工艺美术上取得了巨大的进步。
2.园林设计中现代设计理论的应用
园林设计,即在一定的地域下,充分运用相关的园林艺术以及工程技术手段,结合一定的人文因素,通过改造地形、种植草木、营造建筑、布置园路,从而创建美的自然环境的过程。在现代设计理论中,主要的核心理论有三类:一是平面构成,二是色彩构成;三是立体构成,这三大类理论在园林设计中发挥着重要的作用,主要可以从以下方面来阐述。
2.1平面构成理论在园林设计的应用
平面构成,即视觉元素在二次元的平面上,通过分析美的视觉效果,力学的原理,从而进行编排和组合,主要建立在理性的基础上,通过逻辑推理进而创造形象,同时研究形象与形象之间的排列的方法。平面构成作为一种独特的艺术表现形式,已经逐渐渗入到园林设计的整个过程中。
平面构成主要有三个基本要素,即点、线、面。在园林景观设计的平面布置和界面设计中,主要是通过点、线、面来进行创造性的设计,这是园林造型的基础因素。从平面构成基础的美学角度出发,可以通过具体分析园林设计中的各个景点、园路,从而发现点线面的存在,在整体上来讲,平面构成有利于园林的设计以及组织。在园林的设计中,点的存在,通常都是指景点,没有针对性,主要是相对存在的,在大小、方向以及形态上都没有严格的限制。平面构成理论在园林设计中的运用,主要通过点、线、面相结合的原则,从而使园林景观在整体的空间上呈现一个有序的形态美。例如在设计中心广场时,可以通过人们视觉的敏感点来构图,从而引起人们的注意。在设计园路时,可以把园林看成一条线,通过运用不同的线性设计,使园路不仅具备交通上的功能,还能拥有美学上的功能,从而呈现不同的视觉效果。在设计的过程中,可以把点、线、面三者具体结合起来,例如在进行台阶的设计时,在结构上可以进行排列重复设计,从而在整个视觉给人很强的秩序感以及韵律感。在进行用地设计时,也可以在总体上进行规划,例如在总用地面积为210002的地带上,要实现各个景观的分区,主要可以通过平面构建理论来实现,如下表所示。
2.2色彩理论在园林设计的应用
在园林设计的过程中,园林景观的色彩造型已经成为了设计中的一大要素。由于色彩具有节奏感、轻重感、距离感以及质感,能够体现一个城市的精神文化素养。在园林景观的设计中,运用色彩能够使景观更加生动形象,从而调节人们的情绪。例如利用红色,可以渲染喜庆的氛围。同时,在园林景观设计中,色彩造型、色彩过渡、色彩组合以及建筑的设色上都能带给人们视觉上的享受。例如在实际的设计过程中,可以利用色彩的造型能力,从而使园林景观小品成为人们视觉上的焦点,同时也能够成为景观的标识。在景观空间的设计中,当空间与空间之间需要进行过渡设计时,可以通过运用色彩的色相、明度以及彩度来营造不同的空间,从而在整体的视觉上给人强烈的节奏感以及韵律感。同时,在进行园林植物的配置时,也可以通过运用色彩的色相、明度以及彩度来进行构图。当植物的色彩过于单调时,可以通过加入其它的颜色来进行调和,从而使整体感观趋于柔和。在加入彩色的过程中,可以通过色相来区分色彩,从而使景观能够协调、有序,从而激发了人们的游玩兴趣。
2.3立体构成理论在园林设计中的应用
立体构成,即空间构成,主要通过运用一定的材料以及力学理论,从而按照一定的构成原则,将造型要素组合成美好的形体的构成方法。立体构成主要是由点、线、面、对称以及肌理形成的,能够给人意境上的享受。空间作为园林设计的本质以及核心,不管是园路设计、小品设计、植物设计,还是铺装设计、地形以水体设计,在实际的设计过程中都要统一于空间。在实际的园林设计中,主要立体构成主要可以从三个方面来阐述:一是粒体。粒体在进行园林设计时,可以联想为雕塑、纪念碑等,在空间上可以给人营造活泼的氛围,常常起到画龙点睛的作用;二是线体。在园林设计中,线体具有界定和边界效应、例如园路的设计,通过不同的线性设计,从而使景观的格局更加明确;三是面体。在园林设计中,面体作为空间的限定方式,可以营造出不同的意境及空间。
3.结束语
综上所述,在当前园林建设的过程中,要不断结合实际的发展状况,不断引进先进的现代设计理念,充分把握现代设计理念的内涵,提高现代园林的设计水平,从而不断满足人们日益增长的物质和文化需要,促进社会的可持续发展。
【参考文献】
[1]刘强.探析园林设计中现代设计理论的应用[J].科技与企业,2013(11).
[2]谢炜德.浅析园林设计中现代设计理论的应用[J].城市建设理论研究(电子版),2012(21).
[3]任慧玲,何振峻.现代设计理论及在园林设计中的应用研究[J].城市建设,2013(09).
应用服务程序设计 篇12
1 应用程序的设计
1.1 建立应用对象
在开发Power Builder应用程序时, 用户必须创建一个应用程序对象, 因为应用程序对象是用户应用程序的入口点, 就像C语言中由main () 函数作为程序入口点一样。应用程序和数据库一起将构成Power Builder开发工作的主要框架。本章主要介绍应用程序对象的使用、库文件的管理及事务对象的使用, 本文是在e:student下建立工作区newapp.pbw。
1.2 创建数据库
数据库信息管理系统的核心部分是数据库, Power Builder本身并不是一个数据库, 但Power Builder这个前端开发工具最主要特色之一是方便有效地访问和管理数据库。它不仅可以创建和管理自己的本地数据库, 并对数据库进行各种设置和操作, 而且还可以通过专用接口可以操作目前绝大多数流行的数据库。为了便于开发, Power Builder8.0自带了一个Adaptive Serve Anywhere7.0的数据库, 在Power Builder8.0环境下, 用户可以直接操作此数据库实现对数据库的一系列管理工作。
运行Power Builder8.0, 在Power Builder8.0工具栏中单击Database图标, 进入数据库画板, 打开ODB ODBC列表项, 再打开其下面的Utilities列表项, 如图1所示。
双击Create ASA Database项, 系统弹出Create Adaptive Server Anywhere Database对话框, 在Database Name中输入e:studentnewdata.db, 其余用默认值, 单击OK按钮, 系统将开始创建数据库。并自动连接数据库。创建数据库完成后, 打开资源管理器, 在选定的目录下能找到数据库文件newdata.db。
1.3 创建数据表
数据表是以记录的形式存放数据的, 表相当于一个二维表格, 是一种按行与列排列的相关信息的逻辑组。数据表中的行称为记录, 列称为字段。每一条记录都是对这种实体完速性的描述;记录的顺序可以是任意的, 一般按插入的先后顺序排列;每一个字段描述了它的一个属性值, 字段的顺序也可以是任意的, 一个表中不可能有相同名称的两列。创建数据表newtable, 主关键字为学号 (xh) 。
1.4 创建数据窗口对象
可以说, 任何一个Power Builder应用程序的核心都是数据库和用户与数据库的交互, 因此数据窗口就是Power Builder应用程序开发的重点。它们定义要使用的数据以及用户怎样来查看和编辑这些数据。它们能自动实现对这些接口的编码。
单击工具栏上的N e w按钮, 然后在弹出的N e w对话框中选择Data Window标签页, 选择Grid (网格) 显示风格后, 单击OK按钮, 将会弹出选择数据源对话框, 选中Quick Select数据源, 单击Next按钮, 在Tables列表中单击newtable, 然后单击Add All按钮, 单击OK按钮, 弹出Select Color and Border Settings对话框后, 单击Next按钮, 会弹出列出了数据窗口的基本属性的对话框, 点击Finish按钮, 进入数据窗口画板。如图2所示。单击工具栏上的save按钮或选择菜单File︱Save As, 键入数据窗口对象名:d_newtable, 再单击OK按钮存盘, 如图2所示。
1.5 创建窗口对象
应用程序的窗口把所有Datawindow、控件和用户对象结合在一起, 形成完整的用户界面。本文中创建如图3所示的窗口对象w_newtabel。
1.6 创建菜单对象
在应用程序的主窗口中都有一个下拉菜单, 这个菜单是在Menu画板中创建的。在Menu画板中, 可以定义显示在菜单中的菜单项和子菜单, 以及当菜单项被选中时执行什么代码。
单击工具栏中上的图标, 或者选择File/New菜单项, ) 选择PB Object选项卡, 选中图标后单击OK按钮, 打开菜单画板。在菜单栏上插入第一个菜单项 (菜单标题) 。选择Insert/Submenu Item菜单项, 或者单击鼠标右键, 在弹出式菜单中选择Insert Submenu Item菜单项, Power Builder显示一个空的文本输入框, 在文本框内输入菜单标题:插入, 然后按Enter键, 选中刚输入的【插入】菜单项, 右击选择Insert Menu Item At End菜单项, 在新的文本编辑框内输入删除, 按回车键。仿此过程再加入菜单项【存盘】、【退出】, 这样菜单栏中所有的菜单项建立完毕如图2-15所示。单击画板工具栏上的save按钮, 或在系统菜单中选择File Save选项, 弹出Save Menu对话框, 输入菜单文件名m_main, 同时在菜单对象窗口的标题栏显示m_main。
(1) 双击【插入】菜单项, 输入代码:
w_newtable.cb_1.triggerevent (clicked!)
//触发窗口对象w_newtable上的插入按钮的单击事件
(2) 双击【删除】菜单项, 输入代码:
w_newtable.cb_2.triggerevent (clicked!)
//触发窗口对象w_newtable上的删除按钮的单击事件
(3) 双击【存盘】菜单项, 输入代码:
w_newtable.cb_3.triggerevent (clicked!)
//触发窗口对象w_newtable上的存盘按钮的单击事件
(4) 双击【退出】菜单项, 输入代码:
close (parentwindow)
//关闭菜单所在的窗口
(5) 给窗口配上菜单
双击窗口对象w_newtable, 通过在Menu Name属性中输入m_main菜单名或者单击右边的Browse的按钮来选择需要关联的菜单。
(6) 运行程序
单击Power Builder 8.0工具栏中的按钮或按
2 结语
本文为初学者提供一种基于Power Builder程序设计的一种模式和方法, 但只是展现一个程序的大致轮廓, 读者可结合工作实际采用模块化程序设计方法, 利用Power Builder进行信息系统开发, 当前企业信息管理系统正在从C/S结构向B/S结构转移, 但是由于安全性等方面的因素, C/S结构的管理信息系统仍然占据企业管理信息系统的主流。
参考文献
[1]贾国栋.PowerBuilder查询模式支持的模糊查询设计[J].计算机与现代化.2013 (04) .
[2]董崇杰.基于PowerBuilder的酒店客房管理系统的设计与实现[J].现代计算机 (专业版) .2012 (10) .