软件设计与开发范文
时间:2023-05-04 13:09:13
导语:如何才能写好一篇软件设计与开发,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。
篇1
关键词:管理信息、综合测评、VB
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2016)45-0262-02
一、引言
随着素质教育的不断深入,学生综合素质评价也成为了人才评价的一个标准,很多学校每年都要对学生进行综合测评,综合测评的计算量很大,而且由每个学生自己填表,再交给班委进行审核计算,打印,签字,存档,整个过程很繁琐,往往花了很大的力气还会出现一些问题,如统计失误、人为计算失误等。另外作为奖助学金评定的依据――学生综合测评分是否能够及时、准确、公平的算出来关系十分重大,所以急需一个计算简便,容易操作的软件来代替人为的手工计算,提高计算效率、准确度,使整个过程公开公平。该软件操作简单、不用维护,大大提高了学校的工作效率,减轻了班委、老师们的工作负担。
二、需求分析
综合测评软件开发的目的是自动计算、快速审核、统计测评数据,减少人工干预,降低计算失误,提高工作效率,将辅导员、班主任、班委从繁重的综合测评及日常管理中解放出来,使学校的综合测评工作系统化、规范化、自动化。通过调查,要求软件需要有以下功能:(1) 要求有良好的人机界面,操作简单。(2) 由于该软件的使用对象学生和班级管理人员。(3) 数据计算自动完成,尽量减少人工干预。
三、可行性分析
由于本软件的对象单一,都是在校学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用excel表格管理。熟悉VB编程。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其他程序的功能,因此完全可以实现。
四、 软件实现
(1) 统一命名功能主要代码
d = Dir(App.Path & "\*.xls")
Dim EXLAPP As Excel.Application
Dim xlBook As Excel.Workbook
Dim EXLSHEET As Excel.Worksheet
Set EXLAPP = CreateObject("excel.application")
EXLAPP.Visible = False
Dim FileNa As String
Set xlBook = EXLAPP.Workbooks.Open(App.Path & "\" & d)
Set EXLSHEET = xlBook.Sheets(1)
EXLSHEET.Activate
If EXLSHEET.Cells(1, 19) = "ZongHecePingBiao" Then '有效表
FileNa = KillSpace(EXLSHEET.Cells(2, 6))
EXLAPP.DisplayAlerts = False
EXLAPP.ActiveWorkbook.Close SaveChanges:=True
Name App.Path & "\" & d As App.Path & "\" & FileNa & "综合测评表" & num & ".xls"
End If
(2) 统计收文情况主要代码
d = Dir(App.Path & "\*.xls")
Call EXLAPP.Workbooks.Add
Set EXLSHEET1 = EXLAPP.ActiveSheet
EXLSHEET1.Cells(1, 1) = "综合测评表收回情况表"
EXLSHEET1.Cells(2, 1) = "序号"
EXLSHEET1.Cells(2, 2) = "姓名"
EXLSHEET1.Cells(2, 3) = "收回情况"
EXLSHEET1.Cells(2, 4) = "文件数"
Open "C:\evaluation_file\names.txt" For Input As #1
ReDim Preserve StrZ(I) As String
ReDim Preserve beizhu(I)
k = 0
While Not EOF(1)
Line Input #1, str1
k = k + 1
EXLSHEET1.Cells(k + 2, 1) = k
str1 = KillSpace(str1)
EXLSHEET1.Cells(k + 2, 2) = str1
EXLSHEET1.Cells(k + 2, 3) = "未收回"
StrZ(k) = str1
beizhu(k) = 0
Wend
Close #1
(3) 审核功能主要代码
On Error Resume Next
If (Option1.Value = True) And (Option2.Value = False) And (Option3.Value = False) Then
EXLSHEET.Cells(33, 19) = 1
EXLSHEET.Cells(1, 7) = Trim(Combo1.Text)
EXLSHEET.Cells(32, 4) = Trim(Text2.Text)
EXLSHEET.Cells(2, 3) = Trim(Text3.Text)
EXLAPP.DisplayAlerts = False
EXLAPP.ActiveWorkbook.Close SaveChanges:=True
FileCopy App.Path & "\" & d2, App.Path & "\已通过\" & d2
Kill App.Path & "\" & d2
ElseIf (Option1.Value = False) And (Option2.Value = True) And (Option3.Value = False) Then
EXLSHEET.Cells(33, 19) = 2
EXLSHEET.Cells(1, 7) = Trim(Combo1.Text)
EXLSHEET.Cells(32, 4) = Trim(Text2.Text)
EXLSHEET.Cells(2, 3) = Trim(Text3.Text)
EXLAPP.DisplayAlerts = False
EXLAPP.ActiveWorkbook.Close SaveChanges:=True
FileCopy App.Path & "\" & d2, App.Path & "\未通过\" & d2
Kill App.Path & "\" & d2
ElseIf (Option1.Value = False) And (Option2.Value = False) And (Option3.Value = True) Then
EXLSHEET.Cells(33, 19) = 0
EXLSHEET.Cells(1, 7) = Trim(Combo1.Text)
EXLSHEET.Cells(32, 4) = Trim(Text2.Text)
EXLSHEET.Cells(2, 3) = Trim(Text3.Text)
EXLSHEET.Cells(32, 13) = ""
EXLAPP.DisplayAlerts = False
EXLAPP.ActiveWorkbook.Close SaveChanges:=True
ElseIf (Option1.Value = False) And (Option2.Value = False) And (Option3.Value = False) Then
SetWindowPos Me.hWnd, -2, 0, 0, 0, 0, 3
MsgBox "" & vbCrLf & "您没有点选意见! " & vbCrLf, vbExclamation, "警告"
SetWindowPos Me.hWnd, -1, 0, 0, 0, 0, 3
Exit Sub
End If
五、 结论
在本软件系统必然会存在一些缺陷和不足。但其功能全面、易于日后程序更新、界面友好、操作方便、效率高是本软件系统的特点。在这次设计与开发中的最大收获并不是掌握这几门开发工具的应用,而是学会了软件设计的思维方法,以及与同学们之间相互帮助的精神。
参考文献:
篇2
【关键词】计算机软件开发;设计;难点;解决措施
众所周知,模块化在过去很长一段时间里称为软件设计的主要方式。事实证明,采用这种方式不仅仅能够很好的规避软件系统开发中的复杂性,可以在一定程度上简化程序。通常情况下,在整个软件的设计过程中需要将程序进行分解,这样来行程模块化层次结构,从而提高程序设计的可操作性和可读性,加强开发效率。但是值得注意的是,在设计过程中由于试用的分解系统以及设计人员的思考方式存在一定的差异性,最终设计出来的软件自然也会不尽一致。那么,我们需要具体问题进行具体分析,进而找出科学合理的解决办法。
一、计算机开发设计中的难点问题
但是就目前而言依然存在很多急需解决的难点问题。主要表现在以下几个方面。
1、需求分析比较欠缺。通常情况下,在设计软件的过程中需要对设计标的物进行彻底分析,但是我们发现在很多时候会出现分析不清晰、有纰漏,或者是太笼统的现象,这样一来就会导致软件在设计过程中出现各种各样的问题。就这一点而言,设计人员必须保持一颗严谨认真的心态,不管是从宏观还是微观细节方面都要进行完整而且详细的分析,确保万无一失。
2、测试不够充分。这种情况的发生主要是由于在设计软件结束之后需要对其进行充分的测试与相对应的检验,通过这种方式来最大限度的避免其在运营过程中出现问题,但是事实上我们发现正是因为测试不够充分,在出现系统崩溃之前无人发现问题的所在。
3、规划不合理。在软件设计过程中有很多的程序需要编辑,而这些程序往往都是比较复杂的,有些设计人员在设计过程中并没有严格按照相关规范进行计划的制定,对于规模比较大的系统工程却只肯花费一小部分时间去完成,并未真正的研究透彻,这样一来设计质量当然也就无法保证了。鉴于此,设计人员需要耐心的来安排整个工程包括设计、规划、测试以及后期的维护等等。
4、新特性的不断增加。在过去我们会经常发现,在开发软件完成之后,在运用过程中通常会根据需要增加一些新的内容,这样就会使得软件运行程序很容易变得复杂而且混乱,从而影响软件运行的稳定性。就这一点而言,如果没有十分特殊的要求,设计人员不要轻易添加新的需求进去,实在是需要添加,五笔要将计划进行调整之后方可进行接下来的工作。
二、解决计算机软件开发中难点问题的有效措施
1、根据实际需要切实规划软件设计。具体地说,就是要在软件设计中精心组织好一支优秀的队伍,并且严格按照规范要求制定出一套切之可行的设计计划,要从中理清设计的重点在哪里,从而最大限度的避免人力物力财力上的浪费。真正意义上来讲,设计一个软件不仅仅要设计好它的内容,还要设计好软件设计的行程安排,清楚设计的重点之处,以最短的时间做出最有效率的事情,尽可能的减少在一些与软件本身无关的工作环节上浪费太多的人力物力的财力。
2、要对设计需求加以合理分析。这主要是针对纳西在计算机软件开发过程中对软件的内容设计存在纰漏,导致在软件开发过程中出现对原本想要设计的内容较为笼统化以及不可被测试的问题,那么我们应该要求设计人员在设计的前期要结合实际需要综合考虑软件的设计内容来制定出一套合理并且完整的设计计划。
3、提供一个良好的工作环境。首先需要让设计人员拥有一套正规化的开发工具,与此同时要给他们一个良好的外部工作环境,让这些设计人员在一个舒适的环境中开始软件的研发。与此同时还要提供给他们一些硬件上的服务,让他们的研发软件切实为设计人员带来实际收益,通过这种方式来提高他们的工作热情。
三、结束语
综上所述,在科学技术蓬勃发展的今天,计算机软件的设计与开发在整个社会发展过程中起到极其重要的作用,因为它在很大程度上直接决定计算机的工作性能,一个好的计算机软件能够很好的帮助计算机用友更好的工作水平,通过上面提出的一些建议希望能够真正帮助计算机软件设计者打造出完美的软件,从而为计算机事业提供更好的服务。
参考文献
[1]郭玲.浅析计算机软件开发设计的难点和对策[J].计算机光盘软件与应用.2014,(04).
[2]任康.计算机软件开发设计的难点及解决措施[J].信息通信.2014,(09).
[3]贾钦勇.即时通讯系统的研究与实现[D].武汉理工大学:计算机软件与理论.2010.
篇3
1.Visual Basic
Visual Basic是一种微软公司开发事件驱动编程语言,是当前世界上使用最多的编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库。用户可以使用VB组件快速建立应用程序。自1991年,微软公司推出了Visual Basic 1.0,该创举可以说是软件开发史上的一个具有划时代意义的事件,自从软件开发有原来的“不可视”变为“可视”。在随后的几年内微软公司不断对其更新晚上。2002年,微软将.NET Framework与Visual Basic结合而成为Visual (),重新打造VB,再一次将VB推向一个新的高度。
2.打字软件设计思路
一个打字软件的设计主要是为了满足用户打字练习,其必须具备良好的界面与简易的支持系统。为此本打字软件系统包括登录系统与打字练习系统。登录系统主要是为了为用户保存每一次的练习准确率及时间;打字练习系统由键盘练习、拼音打字练习、五笔打字练习和打字游戏五部分构成。结构如图1所示。
3.软件开发
3.1 键盘练习模块
在练习的过程中如果你打入错误的键位,就会显示如图提示,红色错号,绿色显示是正确输入的键位。其关键代码如下:
If Jiantisi antisi Then ‘输入字符错误,而且按键也不对。
‘以下是打错了字符,也按错了键的红色提示。
3.2 键位练习正确率
作为打字练习测试系统,正确率的测试尤为重要,这个基于VB的打字系统的正确率测试更为准确,相比其他的测试软件,它在正确率和速度之间做了一些改善,比如:原本的一些测试系统中如果你输入的很快,但是错误率很高,但它在测试过程中任然会显示速度很好,就起不到练习的目的,在我的这个测试系统中,对被测试者的正确率也有一定的要求,如果你打字错误了,你仍然不改,就会停在那里,直到你改正了才可以再输入。
退出代码:
这个窗口主要是对打字方式的练习,只有掌握好打字的正确键位才能够成为打字高手。输入练习时屏幕上会显示要打的字母为绿色,尽力不要看键盘,进行盲打,手能够子如的在键盘上寻找键位,这就要求学习者对键位有个大概的记忆,不同的手指也是负责不同的键位。
3.3 拼音与五笔打字练习模块测试
文件/拼音或五笔打字练习,即可打开相应当前窗口,打开后工具栏成为当前激活窗口的工具栏,在当前工具栏点击:文件/导入文本,选择提前已经录入的TXT文本
正确输入时文本会是绿色背景,当你输入错误时会成为红色背景,可以退格更改。其中关键代码如下:
文本框2的改变事件中,将每输入的一个文字信息同文本1的副本作比较,若不正确则副本的文字变为红色,后退回去相应的文字变为黑色,可以再次录入。只有录入正确则颜色是蓝色。当单击开始比赛按钮时,文本框2获得控制焦点且计时开始。比赛根据时间的控制,一旦时间到了,系统强制控制停止使用所有的事件,同时出现相应的测试成绩。当然可以提前交卷,只需按结束交卷按钮(Cmdstop_click)成绩即可出现。
参考文献
[1]刘炳文.Visual Basic程序设计[M].北京:清华大学出版社,2006,8.
[2]李志云,用VB设计中英文打字测试软件[J].电脑编程技巧与维护,2006(11):12-13.
[3]沈国珍.《VB程序设计》课堂教学的探索与实践[J].福建电脑,2007,4.
[4]俞建,张燎军.数据库访问技术研究[J].计算机与现代化,2005.
[5]李志云.用VB设计中英文打字测试软件[J].电脑编程技巧与维护,2006,11.
[6]曾强聪.Visual Basic程序设计与应用开发案例教程[M].北京:清华学出版社,2004.
[7]袁锋.谈《VB程序设计》教学方法改革的五个转变[J].中国成人教育,2004,1.
[8]徐华丽.基于Visual Basic程序设计语言教学的实践与探索[J].皖西学院学报,2006,2.
[9]王满师.应用软件“中英文打字测试系统”的设计及在VB上实现的有关技术[J].北京交通管理干部学院学报,2002.
[10]李金山,张文丽.基于VB的中文录入测试系统的设计与实现[J].太原师范学院学报(自然科学版),2007,3.
篇4
关键词:云计算;软件;C/S架构;B/S架构
1引言
光纤通信、多媒体、大数据等计算机技术的快速改进和普及,为云计算的诞生和应用提供了强大的基础,利用云计算技术可以实现数据的分片存储、并发计算、虚拟化硬件资源等功能。目前,云计算技术已经在电子商务、金融证券、电力通信等领域得到了广泛应用,比如天猫商城利用云计算可以容纳数以亿计的用户同时访问;支付宝利用云计算技术可以实时的统计用户转账消费记录,保障支付宝金额数据的准确性;证金公司开发的结算系统利用云计算技术可以收集分布于全国各地的证券交易数据,实时的进行交易结算;铁路售票采用云计算技术可以满足数以亿计的用户同时访问系统,实时更新每一列客车的出票情况、余票情况等。云计算环境下软件系统需要采用一个强大的软件架构实现数据通信、资源共享,目前常用的架构主要包括C/S架构和B/S架构,其可以将软件系统划分为多个逻辑独立层次,每一个层次都可以使用接口相连,实现业务处理、数据存储等,并且具有良好的可扩展性、可移植性和可维护性。
2云计算信息系统功能设计
与传统通信技术相比,云计算可以采用矩阵的连接方式将数以千万的服务器、终端等计算机设备连接在一起,为用户提高更强大的数据通信、计算能力。云计算信息系统功能主要包括三个方面,分别是应用软件部署功能、中间件通信功能、基础硬件实施按需出租功能。
2.1应用软件部署功能
应用软件部署功能可以为用户提供多种软件系统部署功能,为应用软件分配存储空间、接入接口、云端管理接口,用户只需要输入云端账号和密码,就可以进入到应用软件进行操作,并且访问数据资源。
2.2中间件通信功能
云计算可以将硬件服务资源虚拟化,并且利用中间件实现通信功能,利用接口提供数据上下通信、资源调度、服务器负载均衡、用户访问管理、应用服务管理、计费管理和安全管理等功能,便于提高性能服务水平,实现多种应用软件与软硬件资源通信。
2.3基础硬件实施按需出租功能
云计算环境下,其可以为用户提供按需定制服务,不需要独占硬件资源,仅需要占据逻辑的服务资源即可完成业务操作,保证足够多的用户并发访问基础硬件资源,能够实现逻辑业务处理。
3云计算信息系统架构设计
3.1C/S架构设计
云计算环境下,软件设计师最常用的架构就是两层的C/S架构,该架构包括客户端和服务器端两个关键组成部分。基于云计算的分布式管理系统采用C/S架构进行开发,其需要安装一个客户端应用程序,为用户提供一个逻辑业务请求输入交互界面,并且客户端可以通过互联网与服务器端进行连接,传输逻辑业务处理流程。服务器端是系统的核心组成内容,服务器承载了逻辑业务处理、数据业务处理两个关键功能,可以将用户发送过来的功能处理任务进行有效地解析,进而可以实现数据的插入、修改、删除和查询。
3.2B/S架构设计
云计算技术的应用使得软件系统积累了海量的而数据资源,保存了成千上万的用户信息,为了提高分布式软件的交互性能、处理速度,许多计算机学者提出了一种三层的B/S架构,该架构包括表示层、业务功能处理层和数据功能处理层。
3.2.1表示层
表示层是B/S系统与客户进行交互的界面,用户在IE浏览器中输入系统的网络链接地址,就可以登陆到系统进行操作。表示层可以通过Web页面接收用户的功能任务请求,并且可以把业务功能处理和数据功能处理结果反馈给用户,并且反馈模式采用WebFormat模式,更加形象、条理的展示处理结果,便于用户查看处理结果。
3.2.2业务功能处理层
业务功能处理层是B/S架构的核心。业务功能处理层部署于Web服务器,其作为连接数据库、用户的纽带,承担着功能任务封装、数据业务解析、处理结果整合等关键功能。目前,业务功能处理层采用JavaBean接口、接口等程序实现上通、下达的功能,并且能够识别多种数据库处理语言,比如关系数据库、对象数据库等,采用Format格式反馈处理结果给表示层。
3.2.3数据功能处理层
数据功能处理层主要负责接收数据处理任务,其可以根据Web服务器解析出来的数据库操纵语句,比如SQL语句、关系代数语句等,根据这些语句的操作意义与数据库管理系统进行交互,数据库管理系统启动数据库操作引擎,可以对数据库中的数据实现查询、插入、修改和删除等,并且把数据操作的结果反馈给Web服务器,由其将处理结果整合在一起反馈给用户。B/S体系架构可以将云计算信息系统划分为三层,每一层之间负责处理相关的业务流程,并且能够通过接口进行通信,具有较强的逻辑独立性、可移植性、可扩展性。
4结束语
随着计算机技术的快速发展,云计算、大数据等在分布式管理系统中将会得到更多的应用,设计一个良好的系统架构可以提高软件执行效率,进而提高用户访问、资源调度、负载均衡能力,满足软件操作需求。
参考文献
[1]马宝军.基于云计算的电子商务平台搭建方案与分析[J].信息通信技术,2014(1):55-61.
[2]张标.云计算应用时代开启及案例分析[J].计算机光盘软件与应用,2014(8):19-21.
[3]宁艳.基于C/S架构的移动学习系统的设计与实现[J].计算机光盘软件与应用,2014(2):90-93.
篇5
明确课程开发目的
职业教育中的课程教育不同于本科教育,也不同于基础教育。课程目标与内容具有明显的职业导向性、基础知识实用性、技能知识主导性等特点。在实际工作中,课程开发是指在教学大纲的基础上对课程目标、内容、教材进行可行性研究。课程开发的目的是让学生能很快适应社会,能直接将学校所学的知识运用到工作中,体现“学以致用,知行合一”的方针。职业教育中课程开发应该基于学生自身特点,不同阶段进行不同的课程设计。
美术软件课程合理开发的重要方面
1.课程定位具有职业导向性
Photoshop、CorelDRAW两个软件课程是我校电脑美术专业学生在校学习的专业核心课程之一。通过对电脑美术软件课程的学习,让学生掌握图片前期处理
和广告设计的基本知识,以及提高书籍输出和排版等设计能力,毕业后可以在广告设计公司、传媒公司、网页制作公司、影楼等地方就职,就业市场广,前景好。授课主要采用项目教学法,使学生完成多种模式的设计工作过程,培养学生具备处理设计各种类型图片和画册书籍版式的能力,为学生以后从事设计工作打下坚实的基础。
2.课程设计注重校企合作
为了创设符合市场需求的电脑美术软件设计课堂,让我校毕业生能适应企业人才的需要,学校特别聘请了动漫电脑绘制设计师来校座谈,开阔学生的眼界,提高学生对美术设计软件的学习兴趣。教师还带领学生去江西婺源采风写生,与当地婺源企业合作。学生通过写生、摄影等方式提高了审美能力,在素材的整理中充分运用到photoshop图片处理软件,获得了大量的设计素材和资源。笔者参加了2012年中职学校国家级骨干教师培训,从中体会到,专业课程设计应该注重校企合作,充分利用企业资源。培训基地的部分土地,租用给了一个设计公司,在培训期间,学员用设计软件设计的图片就由这一设计公司输出打印,方便了学员,也方便了学校,更重要的是充分利用了现有的资源,学员也有更多的机会接触广告设计公司,对广告行业加深了了解,这种校企合作方式给了我很大的启发。在课程设计中的校企合作,不能单单理解成一般的合作模式,参观、交流、体验只是校企合作的皮毛,真正的校企合作应该体现在,能让学生加深对企业的了解。合作过程中,可以将学生实训和实习时间加长,并且根据学生能力的不同,在实习过程中针对一门技术进行专一的训练,而不是各种技术都去尝试,最后实训的结果是只懂皮毛,并没有对企业有深入的体会。
3.课程内容循序渐进
在课程内容的安排方面,应该综合考虑学生的能力和阶段性兴趣。教学内容应该有效地进行排序,也就是课程内容的序化结构问题。姜大源教授认为,知识只有在被序化的情况下才能被提供,而序化意味着确立知识组织的框架和顺序。课程内容的设置应该完全为学生服务,使学生能更容易接受老师教授的知识与技能。职业教育中的基础知识和技能充分体现工作过程,工作过程就是实际应用,可以在课堂中设置工作场景,将课堂内容充分与实际运用结合起来。在美术设计软件学习的课程中,软件种类是多样的,并且具有互通性。深入研究了解发现,设计软件种类之间,也有难易不同程度的差别。例如:Photoshop软件与CorelDRAW两种美术设计软件在课程内容安排应该循序渐进。Photoshop是专业的图片前期处理软件,也具有一定的排版功能,而CorelDRAW软件是专业的美术设计排版软件,这两种软件看似是没有关联的,好像可以随意安排先后顺序。其实不然,在CorelDRAW排版软件中设计的一些画册书籍中的图片先要进行图片的前期处理才能运用到排版中,这样设计出的作品才有高的输出质量。所以单纯从这两个软件来看,应该将Photoshop课程安排在CorelDRAW课程之前。由于一定的地域差异,美术软件种类的应用也有不同,例如:在中国中西部,广告公司一般运用CorelDRAW软件作为排版软件,而在中国东部或沿海城市,多用Inustrater软件进行排版,但是对于Photoshop软件的运用全国都是一样的,所以我们在课程内容设置上也应该将Photoshop软件教学内容设置更多,更深入。这样循序渐进地设计课程内容能让学生真正“学以致用”。
4.课程评价开放、客观
课程评价也是课程开发的一个重要环节。课程评价应该与课程目标结合起来,课程目标制定符合教学大纲的三维目标体系,那么,课程评价也应该以三维目标体系为基础,结合职业教育需求实际,进行综合评价。对学生目标任务的评价不能只看结果,应该更注重过程,这样才能使评价更开放、更客观。美术软件设计课程中对学生的评价应该从几方面考虑:
(1)素材搜集是否及时合理
搜集素材是作为设计工作者最基本的能力,素材在设计中是最基础并且最关键的,好的素材不需要过多的后期处理便可以达到高水平的设计要求,劣质的素材处理起来会耗费大量的时间,最后设计的质量也不一定好。教师通过讲解、示范和启发明确学习目标,下发任务书,鼓励学生通过各种方式选取素材,特别是自己拍摄的照片素材
(2)软件操作过程是否正确。
这是对操作速度提出一定的要求。在平时软件设计课堂中,教师演示完操作过程之后,学生完成任务的速度过慢,经常使得完成目标任务变得遥遥无期,最后学生也失去了学习的兴趣。广告企业竞争压力很大,职业学校学生想要脱颖而出找到自己理想的职位,必须在软件操作速度上更胜一筹。操作速度包括两个方面:一方面是对软件的熟练运用程度,另一方面是美术设计软件快捷键的运用熟练程度,熟练掌握快捷键的应用,可以大大的提高操作速度。
(3)设计理念更应顺应大众审美
每个人对设计作品的理解和评价都会不同,有些同学想要自己的作品具有独特的设计理念。介于以后学生就业的定位来看,更鼓励学生多欣赏外国和中国的优秀设计作品,先模仿后设计,开阔眼界才是根本。
课程评价运用多种形式,除了教师为学生作品打分以外,还可以组织学生互评,或者校内外作品展示。学校充分利用校内资源,给学生举办作品展览。我校在今年为电脑美术专业开展了一次大型的美术作品师生展,这样的活动可以增加学生信心,提高学生学习的兴趣。教师也可以帮助学生多参与校外的美术设计展,更要注重学生送投设计作品之前的过程。
通过培训有效提高教师职业能力和执教能力,有效实施课程体系
教师的执教能力与职业能力有很大差异。执教能力是教师将自己的职业知识,运用正确的方法传授给学生,让学生更易接受。职业能力是教师本身具备的除了教师以外职业技能的素养和技能操作知识。教师的执教和职业能力的高低会直接影响课程开发和课程实施的质量。
提高教师职业能力与执教能力的方式之一就是教师培训,这也是现在职业学校教师提高职业能力的主要方式。有调查显示:现阶段的职业教育教师的主要教学任务是教学实践,实践缺少理论指导,缺乏问题的研究,缺少行业技能实践经验,更多的是知识理论经验。在美术设计课程教学教师群体中,有些老师教授电脑美术设计课,但是并没有真正从事过设计工作,甚至没有进出过设计公司,对设计行业并不了解,这样的教师是不合格的。在美术软件设计课程中,学校应该多组织教师进行企业培训,只有教师亲身体会行业文化,才能正确引导学生。
校企合作的方式不仅可以用于学生实训中,教师培训也可以充分利用企业资源。通过培养教师职业能力,扩大学校“双师”型教师队伍,可以大大提高学校美术软件设计的专业技术实践能力。学校与企业合作对教师技能进行培训,也可以不断地更新教师专业知识,使教师专业化成长与时俱进,把最新的知识传授给学生。培训的目的也是挖掘教师的潜能,教师通过培训也会提高教学兴趣,打破一成不变的学校教学模式,将企业培训的新模式合理运用到课程开发和实施中来。
培训可以让教师站在学生的立场上思考问题。教师不能一味地给学生布置很多的课程目标任务,而是应该精选典型的案例来让学生操作,一味地布置大量的操作任务,只会让学生厌恶美术软件设计。
篇6
关键词:校园网 网络安全 防范策略
随着Internet和intranet技术的普及和近年来的迅猛发展,数字化校园的建设得到了蓬勃发展。校园网是学校教学管理信息化和网络化的基础。由于校园网具有开放性、互联性和共享性的特点,因此不可避免地受到病毒、黑客、恶意软件和其他不轨行为的安全威胁和攻击。校园网数据丢失、系统被攻击修改、网络瘫痪的事情时有发生。因此,基于校园网的软件开发过程,需要首先解决校园网运行环境的安全问题,无论是软件开发,还是网络运行环境的搭建,需要时时刻刻警惕可能出现安全问题的单元和模块。
为确保基于校园网的教学管理软件的安全稳定运行,需要对两个方面进行研究和分析:一、软件开发过程中出现的安全漏洞。任何软件都是会有一些漏洞的,即使最大的软件开发者“微软”也在不断更新安全补丁,因此从设计软件的模块到数据库的使用要时刻留意漏洞的出现。二、网络运行环境的安全漏洞。校园网的安全环境可以用“内外交迫”来形容。校园网外部Internet上的安全问题一直让网管员头痛,同时校园网内部有些人员的计算机相关技术水平非常高,甚至超乎管理人员的想象,据统计80%对校园网的攻击来自于校园网内部。在这种情况下,如何构建校园网安全屏障,保证网络的安全、稳定、高效地运行,同时又能提供丰富的网络资源,达到办公、教学以及学生上网的多种需求是学院必须面对的问题。
1.软件开发的安全设计分析
软件开发当前流行的开发结构包括C/S开发(客户端/服务器)和B/S开发(浏览器/服务器)。两种开发结构的程序运行入口都是从登录开始,但C/S开发结构中的登录要比B/S登录要安全许多,C/S程序需要为客户机安装相应的客户端软件才能运行,而B/S开发的程序在客户端仅需要浏览器就可以了,任何一台计算机目前都是安装浏览器的,也就是说任何一个人都可以运行B/S的程序。虽然用户是需要用户名和密码才允许访问,但黑客可能利用数据库和程序的“注入”和“旁注”漏洞,绕过用户名和密码的输入而得到程序的授权访问。还有就是黑客可能利用自制软件暴力破解用户名和密码,循环猜测用户名和密码。因此在程序登录窗口的设计中需要注意如下几部分:
1.1约束用户输入的用户名和密码尽量要复杂一些。比如密码长度、复杂度,这样可以有效防止黑客暴力破解密码。
1.2当输入账户和密码三次错误后,锁定软件一段时间。这样可以避免黑客使用工具循环猜测账户和密码,此方法对C/S开发的程序比较有效。若是B/S开发的程序可以设置图片验证码来代替锁定。
1.3用户名和密码内不允许输入敏感的特殊字符,例如“’、%、(、&、exec”等,这些敏感的字符可能会引起数据库程序的“注入”漏洞,使黑客越权登录。一般程序都设置成允许数字和英文字符可输入,可通过正则表达式来限定更加复杂的格式。
在B/S开发过程中要注意页面的用户状态识别、页面过期设定的设置,例如当用户长时间访问过的某个程序页面,有可能在BAIDU搜索引擎留下记录,黑客可通过搜索引擎来访问某页信息,通过在页中设置用户状态,可以防止这样的事情发生。另外页面过期也是要注意的问题,比如浏览器的历史记录中的“上一步”问题,当用户退出系统后,关闭浏览器之前,点击“上一步”有可能进入系统,这需要在编写程序时,特别注意做到页面过期时间调整和浏览器的缓存清除操作。
用户程序数据保存的数据库系统也会有一定的安全隐患,当前大多是数据库都是网络数据库,例如SQL2000、SQL2005、Oracle、MYSQL。这些网络数据库可以通过网络访问,这就会出现非法用户通过网络直接连接数据库,除了注意要将数据库的管理账户设置复杂一些以外,还要防止一些存储过程的调用例如SQL2000的xp_cmdshell,设置网络的访问权限,让非法的用户无法直接访问到数据库。
2.校园网网络安全的设计和分析
虽然在软件设计中可以解决一些运行的安全隐患,但没有安全的校园网络配置,是无法解决所有的安全的问题的。只有程序和网络两个方面共同发挥力量才能让校园网的管理软件安全、稳定的运行。
校园网的网络体系结构包括校园网的网络边界设备,核心及骨干设备,网络接入层设备,网络服务提供设备和这些设备的连接方式以及该结构采用的协议和技术。
校园网至少应采用1000M以太网主干技术,1000M或100M到楼,100M或10M到桌面,部分区域采用无线接入技术(802.11)实现无线接入。校园网络路由器,高性能的核心路由交换机,各分布层的三层路由交换机,大量的二层可网管接入交换机,以及防火墙,IDS(或IPS),内容过滤系统,流量分析系统,网络设备管理系统等网络硬件设备。教学管理软件服务器端程序应该放在DMZ(隔离区)内,它连接防火墙,且可以连接外网和内网。教学管理软件所有的重要数据库和资料则放在内网的重要数据区,严格限制访问,此区域连接DMZ区,为各种教学管理软件进行数据存取服务。这样做的优点是DMZ区可以为主机环境提供网络级的保护,能减少为不信任客户提供服务而引发的危险,是放置公共信息的最佳位置。即使DMZ区的公共服务例如WEB服务器、EMAIL服务器被黑客攻陷,由于重要的数据库和资料并不在此区域内,则不会对数据造成损失。
校园网主要面临的危险包括如下内容:
2.1操作系统的安全问题
目前,被广泛使用的网络操作系统主要是UNIX、WINDOWS和Linux等,这些操作系统都存在各种各样的安全问题,许多新型计算机病毒都是利用操作系统的漏洞进行传染。如不对操作系统进行及时更新,弥补各种漏洞,计算机即使安装了防毒软件也会反复感染。
2.2病毒的破坏
计算机病毒影响计算机系统的正常运行、破坏系统软件和文件系统、破坏网络资源、使网络效率急剧下降、甚至造成计算机和网络系统的瘫痪,是影响高校校园网络安全的主要因素。
2.3黑客
黑客入侵的常用手法有:端口监听、端口扫描、口令入侵、JAVA炸弹等。
2.4内部破坏
在高校中,有人为了报复而销毁或篡改人事档案记录;有人改变程序设置,引起系统混乱;有人越权处理公务,为了个人私利窃取机密数据;一些学生通过非正常的手段获取习题的答案或在考前获得考试内容,使正常的教学练习失去意义。这些安全隐患都严重地破坏了学校的管理秩序。
2.5设备受损
设备破坏主要是指对网络硬件设备的破坏。
2.6敏感服务器使用的受限
由于财务等敏感服务器上存有大量重要数据库和文件,因担心安全性问题,不得不与校园网络物理隔离,使得应用软件不能发挥真正的作用。
2.7技术之外的问题
校园网是一个比较特殊的网络环境。随着校园网络规模的扩大,目前,高校基本实现了教学科研办公上网,学生上网。由于上网地点的扩大,使得网络监管更是难上加难。由于高校部分学生对网络知识很感兴趣,而且具有相当高的专业知识水平,有的研究生甚至研究方向就是网络安全,攻击校园网就成了他们表现才华,实践自己所学知识的首选。其次,教工人员和学生的计算机网络安全意识薄弱、安全知识缺乏。学校的规章制度还不够完善,还不能够有效的规范和约束学生、教工的上网行为。
除去设备本身的受损情况其它的安全问题可分为外网的安全和内网的安全两部分。
外网的攻击主要包括破坏性攻击和侵入型的攻击。破坏性的攻击多采用DoS及DDoS(分布式DoS)攻击。在这种类型的攻击中,攻击者发送通过一台傀儡机(肉鸡)或大量的傀儡机发送大量的TCP SYN请求到某个服务器。在SYN请求被发送之后,“握手”行为就永远也不会结束。服务器,由于一直设法维持SYN连接的信息并且等待握手行为的完成,最终耗尽它的资源并停止接收任何进一步的TCP连接请求,因而拒绝了对真正用户的访问。攻击的目的就是让服务器忙得无法完成正常服务,破坏网络正常的运行。处理DDoS的攻击最有效的方法就是架设防火墙,目前防火墙的重要任务就是防止DDoS的攻击,在外网路由器加入防火墙可以有效屏蔽DDoS的数据包,同时若对外网ICMP和TCP的数据包进行检测,检查数据包的大小也可以过滤一部分攻击效果。侵入型的攻击多寻找服务器的漏洞和网络漏洞,侵入服务器获取有用数据,或将服务器变成傀儡机。要防止侵入攻击首要的任务就是为服务器打补丁,这样可以防范系统级的漏洞,其次在防火墙配置访问策略,限制端口的访问,例如提供WEB服务的服务器,只需要开80端口即可,服务器本身的135、139等端口应限制访问。再次就是软件开发过程中的登录安全设计,防止出现登录漏洞,数据库访问漏洞,DMZ区的设计多为此处设计考虑。
内网主要受到的安全危险包括病毒、非授权访问、技术之外的问题等。
病毒和木马是内网安全的一个非常重要的问题,病毒和木马疯狂复制自己,达到在网络中传播,占用大量网络,造成网络瘫痪,同时影响正常软件的运行。当前流行的病毒一般是通过网络下载运行,或移动设备运行传播。要控制病毒和木马的泛滥,首先要对计算机进行保护,例如系统还原软件,杀病毒软件,可以有效检测和快速处理病毒。然后为不同的机构设置不同的VLAN,限制VLAN间的访问,这样即使某一个机构的病毒泛滥,也不会影响另一个机构的网络状况。
非授权访问,对于校园网内的办公软件、财务软件、学籍管理部分,对于学生是不能随意访问的,虽然所有的办公软件等都是需要登录后才可以使用,但软件难免存在未知的漏洞,最好的解决办法是从网络访问策略中限制访问,例如在学院内的机房、办公楼设置好VLAN,且只有VLAN段内限定的IP地址范围可发送数据包出VLAN。在防火墙和交换机的配置中,限制仅允许指定IP地址段可访问DMZ区的办公软件。
一些非技术的安全问题:1、部分部门的教工管理不严格,造成具有恶意人员操作了受限制访问的内部网资源。例如学生操作了某部门领导的办公计算机,这可能使部分人员越权访问资源。2、教工对安全意识的淡薄,例如登录办公软件后没有安全退出,其他人可以任意访问。3、BT等点对点下载非教学相关内容,BT等点对点网络软件,具有很多优点,包括一些很重要的学习资料的网络共享,但也有一些是与教学等无关的娱乐资源,例如电影、游戏,这些内容的下载会严重影响网络的稳定运行,也有可能引入病毒和木马。对于上述这些问题则需要指定相应的政策和法规来进行约束。
该文通过软件开发过程和网络环境的配置两个方面叙述了校园网内教学管理软件开发运行中的一些问题,说明了软件的开发与网络的安全有着必然的联系,只有软件以及软件的运行环境都经过详细的安全设计和分析,才能确保软件安全稳定的运行,以发挥教学管理软件的功能和重要作用。
基金项目名称:国家教师科研基金“十二五”教育科研重点课题,编号:CTF120510。
参考文献:
[1]郭萍.浅析高校校园网安全隐患及防范技术[J].湖北三峡职业技术学院学院,2010,(12).
篇7
关键词:Android JDBC DBUtil MVC模式 课堂测试
中图分类号:TP311 文献标识码:A 文章编号:1672-3791(2014)12(a)-0002-01
学生举手发言在小学生的课堂上是一道亮丽的风景线,但在大学生的课堂上却仿佛是等待的多,老师一方面深知学生们不会主动发言,另一方面又对他们充满希望。学生仿佛在成长的阶段里逐渐丧失了某一种天性,举手不再是随心所欲而是有信心没勇气。如今,智能手机在大学生群体中盛行,学生上课玩手机已是普遍,但如果能将学生上课玩手机变成学生上课用手机与老师互动岂不更妙。课堂测试软件就可改善这一现状,它主要是指无线互联网和安卓技术在课堂上的应用,学生可通过手机终端接受教师的试题,并且可将自己的答案传送给web端的教师,教师通过该软件可以更好地掌握学生课堂学习情况,提高学生的听课效率。
1 软件设计
1.1 Android平台
Android是基于Linux平台的开源手机操作系统。该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件。Android最大特点在于它具有非常好的开发和调试环境,而且支持各种可扩展的用户体验。开发课堂测试软件是离不开智能手机平台的,而Android智能手机平台系统,以其开源、开放和优异便捷的开发架构,成为首选。
1.2 软件架构
课堂测试软件主要由三部分组成:PCweb端、服务器和手机Android端,需要实现的功能是:web端通过服务器发送题目给Android端,Android端通过服务器提交答案给web,web端可以将学生答案与正确答案进行比较分析。
1.3 服务器搭建
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问。DBUtil是Apache的一个开源项目,是JDBC的轻量级的封装。使用它最方便的地方在于,原来使用JDBC从数据库中查询得到的结果集需要将每一行数据封装到实体对象中,然后将实体对象加入到集合中,而使用DBUtil可以直接通过sql语句得到集合对象或者实体对象。
Android手机端的服务器和Web服务器需要连接同一个服务器,都需要调用DBUtil类的业务方法。将启动手机端服务器的代码写到Web容器的ServletContextListener监听器中,这样当Web容器启动时就会指定启动手机端服务器的代码。手机端的服务器启动后,会创建一个ServerSocket监听指定的端口,同时还会启动一个线程ServerThread负责监听用户的连接,每当有客户端进行连接时,创建并启动一个ServerAgent进程对象专门负责与该客户端进行通信。
1.4 PC web端和手机Android端的实现
Web端和Android端的实现主要采用MVC模式的技术,MVC全名是Model View Controller,即模型-视图-控制器,允许使用各种不同样式的视图来访问同一个服务器端的代码。视图层是提供给用户的操作界面,是程序的外壳;数据层,就是程序需要操作的数据或信息;控制层负责根据用户从“视图层”输入的指令,选取“数据层”中的数据,然后对其进行相应的操作,产生最终结果。它的提出是为了适应越来越复杂的项目开发,JSP+JavaBean+Servlet可以很好实现该模式。
DBUtil访问后台数据库,Servlet响应HttpRequest请求,并返回响应结果,后台采用MVC+DAO的设计模式及分层结构。服务器端主要包括采用DAO设计模式实现的访问数据库接口及其实现类。实现软件课堂测试的Servlet类包括:loginServlet用于接收用户登录的信息完成用户验证,把验证结果返回给前台,SentTestServlet和ReceiveAnswerServlet分别用于web端发送试题和接收答案,ReceiveTestServlet和SentAnswerServlet分别用于Android端接受试题和提交答案,AmountAnswerServlet用于统计答题人数等。
以试题功能为例,首先从request中读取试题项,调用PreparedStatement的executeUpdate方法向数据库的试题表中插入新的记录,根据executeUpdate的返回值设置writeNewNotice方法的返回值,最终将其设置到request中的属性。
2 结语
该文介绍了一种基于Android平台的课堂测试软件的设计与开发,该软件完成了包括Android端、web端和服务器端功能框架的整体的设计开发和系统部署。开发过程将web前台的设计和Android的开发使用同一服务器来绑定,选用便于操作的Dbutils操作数据库,采取重用性高的MVC模式构建程序,通过众多特色技术来实现课程测试软件的功能,不仅达到了要求,同时代码简练。此款软件在经过后期的一些安全问题及细节优化后,即将在小范围投入使用,相信它可以为师生提供一个更好的交流平台。
参考文献
[1] 欧阳零.Android核心技术与实例讲解(第2版)[M].北京:电子工业出版社,2013.
篇8
关键词关键词:Gtest;Gmock;单元测试;集成测试;企业软件
中图分类号:TP319
文献标识码:A 文章编号:16727800(2014)002007604
0引言
一个软件的生命周期,从用户需求规格说明开始,经过计划沟通(需求分析)、策划(制定计划、风险评估)、建模(概要和详细设计)、构建(编码与测试)和部署(交付、支持和反馈)过程,最终提供一个完整的软件设计,并提供持续的技术支持[1]。在整个生命周期中,测试(即质量控制QA)扮演着重要角色。软件测试不仅仅发生在软件生命周期后半部分,而是贯穿于整个软件生命周期,包括详细设计阶段,跟进项目设计测试大纲;在编码实现的同时,编写测试用例,进行单元测试和模块测试,继而进行集成测试、系统测试和压力测试等。
在软件系列测试中,单元测试和集成测试最能保证产品质量,也最能发现代码静态检查中的问题,单元测试易被忽视。对大型企业软件,特别是跨平台软件开发,由于软件分支多,项目庞杂,开发者疲于进行完整单元测试,错过了纠正错误的最佳时机[2]。根据经验,软件测试越早发现错误,纠正该错误的代价越小。
在工程实践领域,企业级软件产品通常实行敏捷开发,要求尽可能缩短迭代过程,不断集成,持续交付,对质量控制提出了更严格的要求。在持续集成过程中,软件代码不断变更,测试用例设计也经常改变,而企业级软件产品本身规模庞大、组件模块多,如果没有一套扩展性好的单元测试框架,在持续集成过程中极早发现问题,整个敏捷开发迭代过程都会受到影响,从而延迟产品,给开发者带来很大压力。
1.1Google C++ Testing Framework简介
Google C++ Test Framework (以下简称GTest)是Google专为C++项目开发的测试框架,该框架基于高独立性、高重用性、易迁移性、富信息性、高执行效率等原则设计。用户代码通过简单部署,进行批量化宏调用,就能完成所期望的绝大部分测试工作,并得到丰富的测试结果。
1.2GTest的三个级别和两种断言
GTest测试分为三个级别:测试、测试用例、测试程序。测试程序通常是一个项目的整体测试框架;测试用例是针对整个模块检测,一个测试程序会包括多个测试用例;测试则是对一个模块内具体方法的检测,因此一个测试用例包括很多个测试。这三个级别的具体实现方式将在后续给出试例。
断言是GTest的基础,它是一种监测被测代码行为的机制。一个断言是GTest宏的一次调用,而一次宏调用,就是一个测试。GTest的任何一个断言,将产生以下三种结果之一:成功、非致命错误、致命错误。成功和非致命错误不影响整个测试程序的进行,而致命错误会直接导致测试程序退出。
GTest将断言分为两类:EXPECT_*和ASSERT_*。前者在发生错误时,给出非致命错误,使后续测试继续进行;后者在发生错误时,强制整个测试程序退出。一般情况下,推荐使用EXPECT_*,除非该错误出现直接导致后续测试不能再按照所期望的情况执行[3],如出现重大内存溢出,数据驱动文件读写错误等。
1.3Google C++ Mocking Framework简介
Mock的编程行为,在任何一种语言实现的任何一个工程中都有其适用范围和意义。Mock行为使用户代码可以模拟所依赖的功能模块,自行构建伪模块,独立进行单元测试[4]。使开发者在缺少外部环境(如数据库、网络等)支持、项目设计人员支持或其他开发人员支持的情况下,也能较完整地对本模块进行测试,减少某一方法的测试对其它模块的依赖性。
Google C++ Mocking Framework (以下简称GMock) 是Google为配合GTest而设计实现的一套Mock机制。Mock存在以下问题:①Mock工作繁杂、机械且易出错;②手工Mock的准确度因人而异,不易度量,测试结果的参考价值大打折扣;③Mock工作更具体,更涉及业务。因此,在一个Mock上的经验,不大可能应用到另一个Mock上。
GMock被同时设计成自动化设计工具和测试工具。在接口设计过程中,尽可能使用GMock进行接口功能性和易用性考察;在具体功能实现后,可以独立对功能模块进行测试。
1.4GMock的Mock范围
GMock推荐将所有方法虚化(接口化)[6],因为Mock C++虚方法不论从编码角度,还是从GMock内部逻辑实现上,都更简单。这并不代表GMock只有这一种Mock支持。GMock几乎可以Mock任何C++方法机制,包括虚方法(接口)、实函数和静态方法。不论从测试代码实现难度上,还是用例维护难度上,都是目前市场上大部分C++测试和Mock框架所不能比拟的。
2CISCO JabberWerxCPP开发测试框架设计
CISCO JabberWerxCPP(以下简称JWCPP)是CISCO众多产品的底层通信库,是XMPP系列协议的C++跨平台实现。项目整体由数十个模块构成,实现代码约50余万行。其结构特点是功能组件化,模块之间依赖关系复杂。JWCPP的组件化模块组织方式如图1所示。
可见,JWCPP的最终产品,将JWXmppMgr、JWLoginMgr和JWConfigInfo三个模块暴露给上层用户,它们是API的提供者。iConnect模仿COM组件机制,将整个JWCPP的功能模块以组件化形式组织起来,对上述三个API模块而言,是功能的具体实例化者;在iConnect下层,则是每一个具体组件模块,它们从功能上被分为业务部分和工具部分。
基于JWCPP的产品特点可见:①对于集成测试,只需从上层接口入手,辅以良好的结构设计,执行产品标准初始化流程(iConnect的实例化过程),即可通过简单的接口调用,完成对功能的集成测试,通过GTest的断言机制,判断各功能实际执行结果;②对于单元测试,底层业务部分和工具部分中各个模块相互调用,关系错综复杂,而所有功能模块,都是从元组件conIUnknown、工厂组件conIClassFactory等组件中多重继承而来,继承层次繁多,在每一层继承中,又有各模块自己的静态方法、虚方法和方法覆盖与重构,这对单元测试的实现提出了挑战。GMock本身设计的出发点和特性,适用于这种庞大冗杂的项目测试。基于以上分析的开发测试框架如图2所示。
需要强调的是,本项目中单元测试和集成测试性质不同。集成测试关注功能完整性、各模块间信息传递的正确性和最终整个业务流程的正确性,要求集成测试必须模拟实际产品环境,将整个产品在内存中实例化,即执行标准组件初始化、子组件工厂化生产等过程。而单元测试更多关注代码级别的正确性,目的是尽可能遍历所有可能的逻辑分支,这就决定了单元测试不需要实例化整个库。该不同导致了集成测试的构建具有结构化、目标清晰、重用性良好的特点;而单元测试的构建则较为繁杂,庞大和琐碎。
3开发测试框架实现
3.1集成测试
3.1.1集成测试实现原理
由图1可知,将集成测试从产品代码中独立出来作为一个单独项目,继承产品所暴露的接口类,之后调用整个产品库的初始化API,在内存中实例化该库,并将其注册到操作系统中,即可实现集成测试。
在集成测试框架设计中,主要引入三个环境构建模块:TAWaitForMgr、TAWaitForTimer和TAEvents。整个集成测试框架,实际是一个调用-等待-处理回调-验证的过程,由事件机制驱动。TAWaitForMgr是事实上的API调用者,它调用API接口,激活TAWaitForTimer进行等待和轮询,当检测到状态变化时,激活事件机制TAEvents,产生回调事件,并对最终回调结果进行验证,给出测试结果。在实现上,API的调用和测试结果验证,都被包含在GTest的断言机制中。引入TestIClient模块,作为最终管理所有TA的功能模块。通过实例化一个TestIClient,可以实现对全局任意模块的即时调用。
3.1.2集成测试伪代码
3.2单元测试
3.2.1单元测试实现原理
就本项目而言,各模块间关系看似错综复杂,但采用GMock的Mock机制,实际上消除了模块间的依赖性,其实现要比集成测试更为简单。同时,由于单元测试不涉及业务逻辑,避免了集成测试实现过程中的调用—等待—处理回调—验证过程,也意味着单元测试不需要通过产品实例化过程进行耗时的初始化。本项目采用集成测试管理所有TA测试模块,引入TestUClient来统一管理TA单元测试模块。
3.2.2单元测试伪代码
5结语
本文在对企业级产品项目进行特性分析的基础上,阐述了采用基于GTest和GMock的测试框架的必要性;提供了集成测试和单元测试框架的设计实现过程;最后给出在实际环境中的运行结果,表明了该设计方案的可实现性、易用性和高效性。后续研究中,将尝试把该套测试框架与项目的持续集成系统相结合,实现项目开发测试的完全自动化。
参考文献:
[1]ROGER S PRESSMAN.软件工程:实践者的研究方法[M].郑人杰,译.北京:机械工业出版社,2011.
[2]RUNESON P.A survey of unit testing practices[J].IEEE Software,2006,23(4).
[3]BOEHM B,V BASILI.Software defect reduction top 10 list[J].IEEE Computer,2007,34(1):135137.
[4]THOMAS D,HUNT A.Mock object[J].IEEE Software,2002,19(3):2224.
篇9
1 平面设计软件二次开发现状探讨
目前,我国平面设计软件的二次开发主要由两种方式。一种是通过 adobe 公司的官方授权,而软件开发企业进行开发。另一种是软件平面设计人员或软件开发人员为了自身使用便捷性等进行的私自开发。受不同开发方式的特点使得两种方式开发中都存在着诸多的不足。例如:软件开发企业受市场利润、开发人员对平面设计专业理解不深等因素影响,软件开发中存在诸多的不足。而平面设计人员针对平面设计工作需求进行的二次开发虽然具有较高的效果,但是由于不能进行市场运作,好的软件系统只能在自己或朋友间使用。针对,adobe photoshop 的友好界面以及允许用户二次开发的特点,现代平面设计人员越来越多的根据自身习惯以及使用需求进行二次开发。而商业企业也通过编程人员对平面设计工作了解的加深、网络调查问卷等形式为二次开发提供了基础需求信息。针对这样的环境,现代平面设计软件如何进行二次开发是软件开发企业面临的首要问题。笔者以自身开发编程经验以及对平面设计人员的调查走访等作为基础,对平面设计软件的二次开发进行了简要论述。
2 平面设计软件二次开发重点与方式
2.1 以平面设计软件需求为基础确定开发方向与重点
现代软件开发企业在进行平面设计软件二次开发前,应加强对平面设计软件市场情况、应用需求等内容的调查与分析。以此为基础确定平面设计软件二次开发方向与重点。通过对市场情况、使用人群的调查使企业能够针对市场运营情况、平面设计人员使用需求等确定开发方向与重点。以此使二次开发后的平面设计软件能够更具市场竞争力、更加符合平面设计人员的需求,为提高平面设计软件二次开发市场价值、市场竞争力奠定基础。
2.2加强平面设计专业应用的深入了解与理解,实现科学的平面设计软件二次开发
加强平面设计专业应用的深入了解与理解是现代平面设计软件二次开发的关键。只有针对专业应用的、面向应用对象的二次开发才能够使二次开发后的平面设计软件符合专业应用需求,提高二次开发软件的市场竞争力。首先,平面设计软件二次开发企业应按照开发功能、开发方向等对平面设计工作、专业应用等进行深入的了解。并采用调查问卷、从业人员调查等方式对现代平面设计工作软件需求进行调研。在此基础上,分析平面设计软件允许二次开发的实际情况,开展软件二次开发。通过这样的方式能够使平面设计软件二次开发企业所开发的产品更加符合市场需求,促进企业产品市场竞争力的提高。
2.3 以 photoshop 为例对平面设计软件二次开发流程、重点进行分析
Photoshop 作为现代平面设计中最为常用的平面设计软件,从业人员对其功能需求、适用性等都有着较高的要求。虽然,adobe 公司通过不断地更新对软件系统进行了完善,但是,该软件的二次开发仍具有较高的市场价值。Photoshop 的开放体系结构是该软件获得全球平面设计用户认可与推崇的关键。通过允许用户和开发者采用高级编程语言进行扩充、修改等二次开发满足用户的特殊要求。首先,在软件二次开发过程中必须遵循一定的基本原则,使二次开发过程能够在基本原则的指导下有序的开展,实现平面设计软件二次开发的目的。在 photoshop 平面设计软件的二次开发中,应遵循模块化设计原则。以模块化设计原则使原有问题简单化、是复杂需求以模块方式逐个完成。通过模块设计原则使设计过程或测试过程中能够独立进行测试与优化,促进二次开发工作效率与工作质量的提高。遵循具有良好用户界面原则使减少使用过程工作量的关键,在photoshop 软件二次开发过程中应将良好用户界面的便捷操作、帮助等功能作为开发的重点,避免误操作等造成的损失。结构合理性是软件二次开发的重点。根据photoshop 原有结构为基础,在原有合理的结构基础上进行相应补充是现代 photoshop平键设计软件二次开发的主要方式。通过模块化设计将平面设计软件需求在原有合理结构下进行补充,实现二次开发的最终目的。
以 photoshop 第三方插件二次开发为例,首先应了解调用插件的主程序,以此为宿主进行二次开发。然后根据二次开发滤镜的功能需求对滤镜行为的饱和度、亮度、滤波等进行模块设定与开发。在此基础上,通过模块与主程序的兼容性测试、模块稳定性测试等确定开发质量与效果,实现平面设计软件二次开发设计的目的。Photoshop 中的 SDK 提供了一些插件实例,这为photoshop 的二次开发提供了很好的基础。我们在进行插件开发与编写时,可以通过对实例的简单变更实现插件的制作。void PluginMain (const short selector,PISelectionParams *selectionParamBlock,long*data,short *result);这是 photoshop 的入口函数原型,如果想通过插件的编写实现区域的选择可以通过selectionParamBlock ->documentInfo ->selection->bounds来获取。根据插件程序编写的实际需求对实例中的相关函数参数进行改变即可以实现基本的插件编写。
篇10
关键词 C++语言 跨平台 软件开发 设计实现
中图分类号:TP31 文献标识码:A
20世纪70年代,Bell实验室首先开发了C语言系列,经过十年的演化变迁,80年代C++语言便应运而生。C++语言是C语言的改良进化版本,除了沿用C语言直接运行在机器上,不需要虚拟机作为中介的高效率特点之外,根据软件开发的需求还融入了虚函数、模板、操作符重载等特,因此C++语言得到了特别广泛地应用。C++语言几乎所有的平台下进行使用,然而在不同平台之间的应用时却难以兼容,随着多元化软件系统开发的需求日益增加,如何在软件开发中设计并实现C++语言跨平台的方案将会是今后工作的重点。
跨平台是软件开发中的常用概念,指的是在一个操作平台Windows设计开发的应用程序在另一个操作平台Linux下同样能够使用运行,二者完全兼容。随着当前软件工程的迅猛发展,跨平台的软件开发能够给应用程序本身带来巨大的市场潜力,与此同时,如果应用软件针对不同的CPU提供并测试各自的编译版本,再到各自平台上而产生不同的软件版本,这样的工作量是特别庞大的,因此,跨平台的开发致力于是应用程序几乎不做修改就能运用到不同的平台上。
1跨平台软件开发的影响因素
在C++语言跨平台软件开发过程中,除了各个平台间差异性和兼容性之外,C++语言自身的特性以及编译环境对其都有影响,无形之中加大了跨平台软件开发的难度。
(1)不同平台之间的差异性
软件开发中的编程语言并不能直接地作用于计算机硬件设备,它们需要调用系统的API接口来实现对计算机的控制操作,然而目前许多操作平台的API接口都有自己的标准,并且相互之间差异性较大,例如Windows系统和Unix系统之间的API接口的实现方式和实现原理都不一样,这就在很大程度上阻碍了同一款软件应用于不同平台。在实际开发过程中,操作平台的差异性会贯穿始终,从设计、代码编写到最终测试都会涉及。
(2)编译器的定义不同
编译器的主要功能是根据特定的语言定义将源代码转变成为可执行控制的指令,它显然和C++语言的跨平台应用有着十分巨大的关联,由于语言定义的不同,同一种源代码在不同的编译器中最终得到的控制指令也不尽相同,这也就造成了跨平台软件开发难以开展实现。例如目前Windows平台上的Visual Studio C++编译器和Linux平台上的GCC编译器适用于C++程序代码的编译,然而由于C++的许多语言特性的实现细节都留给了编译器开发商,每个开发商对编译器的定义不同,从而致使C++源代码不能跨平台编译。
(3)编译系统的不同
编译系统可以简单到一个执行编译器和连接器的命令脚本,也可以复杂到整个命令程序的生成。跨平台的软件开发必须要使用一个统一标准的编译系统,这样才能达到对程序代码执行的一致性。例如Windows系统下的Visual Studio和Apple的Interface Builder编译系统完全束缚了跨平台编译系统的开发,这两者之间的编译定义、指令执行都有着十分巨大的差别,往往同一个源代码在各编译系统中得到的编译结果也完全不同,这也就导致跨平台软件开发无从谈起。
2 C++语言跨平台软件开发的设计实现
C++语言跨平台软件开发的实现还存在着一些因素的阻碍,因此,采取何种方法措施清除这些影响因素是实现跨平台软件开发的关键。
(1)避免语言的扩展特性
许多语言为了满足软件开发的需求,往往会增添新的扩展特性,然而新的特性由于缺乏长期的实践性和规范性,经常出现没有被确切测试和精确定义的意外情况,其中常常包含着许多的异常漏洞和非标准内容,另外跨平台开发对于程序的异常十分敏感,稍有瑕疵就难以排除障碍,因此,在实际的软件开发过程中应当使用C++的标准特性而避免使用其扩展特性。
(2)建立跨平台代码库
在跨平台软件开发过程中,通常会遇到某些特性定义一个平台上有而另一个平台上没有的问题,例如Windows平台有树形控件和递归互斥体,DOS下没有线程,Linux下的线程是依据进程来实现,因此这就需要建立跨平台代码库来解决这一问题,通过建立一套完善的跨平台代码库来实现某些特性统一化。
(3)采用脚本文件进行管理
一般来说,软件开发过程中将会编写大量的代码,特别是涉及到跨平台领域时,这一问题就显现地格外严重,因此为了是代码编写更加简单明了,通常使用脚本文件进行管理。利用脚本文件在程序编译之前将相关文件从中剥离出来,并分配到合适的位置上,然后再应用程序的运行过程中,再从配置文件中读取所需要的配置选项,另外在软件开发过程中要尽量隔离平台依赖程度较高的文件格式,而是采用脚本文件来进行可控管理。
总而言之,随着广大用户对软件便利性和实用的渴求,跨平台软件开发设计将会成为软件工程中的一门重要分支,同时也将是今后软件工程发展的方向趋势。
参考文献
- 上一篇:财政资金监管存在的问题
- 下一篇:结构化债券投资